2020
For people who've worked through Mastery with SQL, a common question I get is "What's next?" If you completed the course and all 150+ exercises, at this point you'll have a very strong grasp of SQL and should be comfortable writing all sorts of...
One of the greatest sins in the entire software industry has got to be the way developers are hired. It is irredeemably broken and needs to be torn down and completely rebuilt. I've been a software developer now for around 15 years. In that time,...
Recently I've been working on a project that sets up a number of permanent (HTTP 301) redirects on localhost. While that's useful for that project, after stepping outside of that project these redirects got in the way of other development...
When working on a Django project it can be useful to see the raw SQL queries being made to your database - you can quickly and easily identify when there are too many calls being made and look for other inefficient access patterns (queries asking...
Yes. But also, no. Let me explain. One important concept to understand right away is that Microsoft Teams apps never directly communicate with your web services. A Teams app as installed in the client is actually just a JSON manifest file and...
When you're building an app for Microsoft Teams, or really, anything that's going to end up using the Azure Bot Service, at some point in the process you have to create and manage a Microsoft App ID and password. When you first do this, it feels...
When working with Azure Functions, a common thing you'll want to do is get data out of the POST body inside your function. Handily, if you make your POST request in JSON format, you'll be able to simply access the object properties by name,...
Recently I've been working with Azure and have been using the Azure CLI to script up creation of a Node.js webapp (btw, the Azure CLI Tools extension is excellent for this). I found however that when scripting up the creation of the webapp, if...
When building your first app or bot for Microsoft Teams, one error you might come across during your development when you're using the tool ngrok is in App Studio. In the Manifest Editor, when you go to the Test and Distribute tab, if you've been...
Many years ago, I built what I believe was the best-selling BlackBerry app of all-time, BBSmart Email Viewer. It feels strange to write that, and it's not something I'd say I'm really known for outside of the small niche community of BlackBerry...
For over six years now, I've been studying mathematics on my own in my spare time - working my way through books, exercises, and online courses. In this post I'll share what books and resources I've worked through and recommend and also tips for...
2019
A quick HOWTO to show you how to setup psql to use Visual Studio Code for interactive editing. Updating your EDITOR When you're working in psql, it can be handy to jump to a richer text editor, particularly when typing up longer queries. In psql,...
SQL Server supports a TOP (N) WITH TIES clause which can be used to return the top N rows from a query along with any additional rows that have the same sort value as the Nth row. It's handy functionality that can come in use in many situations....
When establishing the join condition between two tables in PostgreSQL, and you're performing an equality join where the columns are named the same in both tables, a nice shorthand syntax to establish the join is with USING. You might think this...
COPY FROM is commonly used to import data from a file (CSV, plain text, etc.) in to PostgreSQL. Likewise, COPY TO is used to export data from a table or a query result to a file. When you're using these commands if you're getting a "Permission...
My new course Mastery with SQL is out now! I'm so thrilled with how it's turned out. My goal when I set out was to build a course that's exercise-centric. I'm an avid learner who loves studying new domains, and in my experience one of the best...
The DISTINCT keyword has a bunch of interesting use-cases in ANSI SQL and offers some additional functionality when used in PostgreSQL. Let's dive in and take a look with an example (you can find the full source code to reproduce this example on...