I was recently performing an analysis on the database for my dissertation software, and wanted to look at one particular set of rows. The table I was looking at is called Nodes, and because each node (represented by a row in the table) can optionally belong to a group, the group_id column allows for NULL…
In order to get an undergraduate degree from MIT, at least when I was there, you needed to take a certain number of humanities and social-science courses. This was to stop you from coming out a complete one-dimensional student; the idea was that rounding out your education with knowledge from other fields was good for…
So far, this series has looked at how to create PostgreSQL arrays, how to retrieve data from them, and how to get the length of an array’s outer and inner dimensions. But one of the most common actions that we’ll want to do with an array is look inside to see if a particular value…
Friends of mine, who are not software developers, have a small, retail Internet business. The original developers created the application in Python, and my friends are looking for a full-stack Web/Python developer to help them. Frustrated with their inability to find someone who can commit to their project, my friends have decided to hire offshore developers, which…
I’ll admit it: When arrays were added to PostgreSQL a number of years ago, I thought that this was a really bad idea. I’m a firm believer in normalization when it comes to database design and storage; and the idea of putting multiple values inside of a single column struck me as particularly foolish. Besides,…
If you use a modern, open-source Unix shell — and by that, I basically mean either bash or zsh — then you really should know this shortcut. Control-R is probably the shell command (or keystroke, to be technical about it) that I use most often, since it lets me search through my command history. Let’s…
It’s always fun to start a new project. I should know; I’ve been a consultant since 1995, and have started hundreds of projects of various shapes and sizes. It’s tempting, when I first meet a new client and come to an agreement, to dive right into the code, and start trying to solve their problems.…