Software
Joel On Software :: Things You Should Never Do
A classic that deserves perennial review: Things You Should Never Do, Part I
They did it by making the single worst strategic mistake that any software company can make:
They decided to rewrite the code from scratch.
As if source code rusted.
Thursday, November 2, 2023
Postgresql When It's Not Your Job
Christophe Pettus’ Software Development blog PostgreSQL When It’s Not Your Job
Useful site with information about using / administering Postgres.
Wednesday, March 29, 2023
Quick Tip: Fix Apt GPG error NO_PUBKEY
In the Ubuntu (Debian) packaging world of Apt, the use of apt-key
has been deprecated (other than apt-key del
to remove keys).
I’ve run into errors like the following periodically, and have had to spend more time than I should reminding myself of how to fix the issue:
|
|
Wednesday, February 22, 2023
Quick Tip: Get Absolute Path to Directory Script is Running in
When running a bash script, it’s sometimes convenient to get a fully qualified path to the directory that the source of the running script is in.
I continually have to remind myself of the exact syntax for this tip, so I’ve posted it for posterity. This approach should work around most issues of symlinked files, sourced files, etc.
Tuesday, January 17, 2023
12 Factor App Revisited
A revist of the 12-factor app after a few years. One persons take.
12 Factor App RevisitedTuesday, December 20, 2022
Little Languages Are The Future Of Programming
Little Languages Are The Future Of ProgrammingI’ve become convinced that “little languages” — small languages designed to solve very specific problems — are the future of programming, particularly after reading Gabriella Gonzalez’s “The end of history for programming” and watching Alan Kay’s “Programming and Scaling” talk.
Tuesday, December 20, 2022
Everything I Wish I Knew When Learning C
Everything I Wish I Knew When Learning CThis page is a living collection of summaries, signposts, and advice for these broader points that made my journey with C and other compiled languages easier.
Wednesday, December 14, 2022
Go Style Styleguide
This is the foundational Go style guide at Google.
Go Style | StyleguideThe Go Style Guide and accompanying documents codify the current best approaches for writing readable and idiomatic Go.
Friday, November 18, 2022
Bit Twiddling Hacks
A useful collection of bit manipulation techniques and hacks.
Bit Twiddling HacksFriday, October 28, 2022
Expectations Of Professional Software Engineers
In a 2019 talk/rant titled “Everyone Watching This Is Fired”, games industry veteran Mike Acton rattled off a sample of 50 things he expects of developers he works with. The title refers to his tongue-in-cheek suggestion that anyone who doesn’t meet all these requirements would be immediately fired.
Although his sense of humour isn’t for everyone, the suggestions are valuable. The list forms a baseline for software engineers to compare themselves against, and it’s not very specific to the games industry.
Adam Johnson make a textual version of the suggestions in the talk, and provided it for reference.
Friday, October 14, 2022
How To Write A Git Commit Message
This is a classic; I regularly return to this post for a refresher.
How To Write A Git Commit MessageBut a well-cared for log is a beautiful and useful thing.
git blame
,revert
,rebase
,log
,shortlog
and other subcommands come to life. Reviewing others’ commits and pull requests becomes something worth doing, and suddenly can be done independently. Understanding why something happened months or years ago becomes not only possible but efficient.
Wednesday, September 7, 2022
Quick Tip: Run Bash Commands in Parallel
I have a useful script that demonstrates a few different bash techniques.
This script:
- Executes multiple commands on multiple SSH client hosts
- Connects to each host in parallel, and waits for all host processes to terminate
- As a freebie, demonstrates running apt in a non-interactive process
Wednesday, May 18, 2022
Use Internal Packages to Reduce Public API Surface
An oldie, but goodie. This came up in discussion today, and wanted to link it for future reference.
If your project contains multiple packages you may find you have some exported symbols which are intended to be used by other packages in your project, but are not intended to be part of your project’s public API. Although Go has limited visibility modifiers – public, exported, symbols and private, non exported, symbols – internal packages provide a useful mechanism for controlling visibility to parts of your project which would otherwise be considered part of its public versioned API.
Wednesday, May 26, 2021
Should we rebrand REST?
Interesting take by Kieran Potts on the ongoing REST discussion.
So, we should not abandon the term REST altogether, but as an adjective for API it just doesn’t make a whole lot of sense. Even in the context of the ongoing efforts to realise truly RESTful APIs, hypermedia is a better, more expressive classification.
Wednesday, May 26, 2021
C++ Core Guidelines
C++ Core GuidelinesThis document is a set of guidelines for using C++ well. The aim of this document is to help people to use modern C++ effectively. By “modern C++” we mean effective use of the ISO C++ standard (currently C++20, but almost all of our recommendations also apply to C++17, C++14 and C++11).
Monday, February 8, 2021
Quick Tip: create ico from png or jpg
I regularly have to look up the ImageMagick syntax for converting image files to ico formats when I’m creating a favicon.ico
The convert
command, part of the ImageMagick suite, is quite helpful and versatile.
Wednesday, April 24, 2019
Deploy AWS Lambda functions with Terraform
I built a GitHub project to explore and document some basic Terraform scripts, both to learn Terraform, and to figure out how to deploy to AWS Lambda without using serverless or the web UI.
Tuesday, March 5, 2019
Quick Tip: Copy Files from LXC host to LXC Container
Today, I wanted to copy some files to the container filesystem of an lxc container I was spinning up.
There are a number of different approaches to achieve this, and they’re all great, but I wanted the simplest thing I could do, rather than grepping through fstab records, and copying into arcane folders, etc.
Tuesday, June 7, 2016
Quick Tip: Remove Query Param from URL in Go
How to easily remove query string parameters from a url.URL
in Go.
Today’s short post shows how simple it is.
Wednesday, June 1, 2016
Powershell Scripts - from the Archives
Way back in the day - circa 2007 or 2008 I had a website that included some sample code and snippets that demonstrated things I’d learned at the time.
The content isn’t really that valuable any longer, but there are some nifty things.
Thursday, July 2, 2015
Mail Queue Dispatcher
When writing web applications, one often has to send email as a part of the notification or registration process.
Sending email through an SMTP server directly from your main web application thread can block for an unreasonable amount of time while serving a response page that is waiting for the email to be delivered.
Wednesday, July 1, 2015
Up to all Categories