Tag: programming
-
Last year, a colleague introduced me to lazygit, a TUI git client with a wealth of value-added features.
Somehow, though, my favourite feature is the animation you see if you nuke the working tree. ๐ Excellent.
-
Recreational programming
Foone shares that "the world needs more recreational programming". I agree.
-
Even when it's technical, not all of my International Volunteer Day work for Three Rings has been spent using our key technologies (LNMR [Linux, Nginx, MariaDB, Ruby] stacks).
Today, I wrote some extra PHP for our WordPress-powered contact form to notify our Support Team volunteers via Slack when messages are sent. We already aim to respond to every message within 24 hours, 365 days a year, and are often faster than that... but this might help us to be even more-responsive to the needs of the charities who we help look after.
Alt
A filled contact form alongside a Slack message and a resulting ticketing system message.
-
Not every code review is fireworks, but most Three Rings changes come from the actual needs of the voluntary organisations that Three Rings supports. Some of our users were confused by the way the Admin > Roles page was laid out, so one of our volunteers wrote an improved version.
And because we're all about collaboration, discussion, learning from one another, and volunteer-empowerment... I've added a minor suggestion... but approved their change "with or without" it. I trust my fellow volunteer to either accept my suggestion (if it's right), reject it (if it's wrong), or solicit more reviews or bring it to Slack or our fortnightly dev meeting (if it requires discussion).
Alt
GitHub screenshot showing a suggested change to a pull request. Dan-Q is suggesting that the new sentence 'These roles belong to .' should not have a full stop at the end, for consistency with other similar headings.
-
Good news! It turns out that the new code to fix the mail merge fields in Three Rings doesn't introduce an inconsistency with established behaviour. It was important to check, but it turns out all is well.
I touched bases with a fellow volunteer on Slack. Three Rings volunteers primarily communicate via Slack: it helps us to work asynchronously, which supports the fact that our volunteers all have different schedules and preferences. Some might do a couple of evenings a week, others might do the odd weekend, others still might do an occasional intense solid week of volunteering with us and then nothing for months! A communication model that works both synchronously and asynchronously is really important to make that volunteering model work, and Slack fits the bill.
Alt
Slack screenshot showing a discussion between Dan Q and another volunteer about whether it's reasonable for a volunteer to be able to send another volunteer an email containing private information accessible only to the second volunteer, so long as it's embedded via a merge field and the actual value is never shown to the first volunteer. Ultimately, Dan suggests that we stick to the established behaviour, which turns out after testing to be that volunteers can't send such private information to one another.
We get together in person sometimes, and we meet on Zoom from time to time too, but Slack is king of communication at Three Rings
-
My first task this International Volunteer Day is to test a pull request that aims to fix a bug with Three Rings' mail merge fields functionality. As it's planned to be a hotfix (direct into production) we require extra rigor and more reviewers than code that just goes into the main branch for later testing on our beta environment.
My concern is that fixing this bug might lead to a regression not described by our automated tests, so I'm rolling back to a version from a couple of months ago to compare the behaviour of the affected tool then and now. Sometimes you just need some hands-on testing!
Alt
Screenshot showing web application Three Rings viewed on a local development machine, being used to compose an email about International Volunteer Day. A merge field called 'first_name' is included in the email, and it's hand-annotated with the question 'working?'. Alongside, GitHub Desktop shows that we've rolled-back to a revision from two months ago.
-
Me, hacking challenging Javascript at work: "Damn, I need a holiday."
Alt
Dan sits at a laptop in a hotel bar, a view of Barcelona out of the window behind him, a beer bottle alongside him.
Me, hacking challenging Javascript on sabbatical: "Ah, so relaxing."
-
The Beeb continue to keep adding more and more non-news content to the BBC News RSS feed (like this ad for the iPlayer app!), so I've once again had to update my script to "fix" the feed so that it only contains, y'know, news.
Alt
Screenshot from a web-based RSS reader, showing an item "Download the BBC iPlayer app"
-
This morning's actual breakfast order from the 7-year-old: "A sesame seed bagel with honey, unless there aren't any sesame seed bagels, in which case a plain bagel with honey on one half and jam on the other half, unless there aren't any plain bagels, in which case a cinnamon and raisin bagel with JimJams on one half and Biscoff on the other half."
Alt
Dan, looking confused, next to a cinnamon and raisin bagel with JimJams on one half and Biscoff on the other half (and their respective jars).
Some day, this boy will make a great LISP programmer. ๐
-
Calculating the Ideal "Sex and the City" Polycule
When Juan Pablo Sarmiento thought to himself "couldn't Sex and the City's love triangles be squared-away by polyamory?" he didn't just sit down and write slashfic. No; he came up with a formula for idealised polycules, and open-sourced the algorithm. That's my kind of nerdity!
-
AI posts on social media are the chicken nuggets of human interaction
Ruth shares her thoughts on the current state of generative AI, and I had a surprising amount to say about them. But mostly, I just love her metaphor about AI-generated social media posts!
-
Roll Your Own Antispam
The Web contact form of a nonprofit I founded started attracting a huge volume of spam, and conventional tools weren't helping. But a little analysis allowed us to block almost all of it without compromising on accessibility, privacy, or the false-positive rate.
-
So... I'm A Podcast
As you might have already noticed, I started a podcast. Let's take a look (or listen!) into how and why I adapted my WordPress installation to double as a podcast host, and discuss what kind of content you're likely to find on it...
-
Where Should Visual Programming Go?
Niki has some great thoughts on the future of visual programming. I consider that maybe the IF community are already getting ahead of the curve.
-
The Elegance of the ASCII Table
ASCII, a standard whose legacy defines to this day how most of the letters and numbers in your computer get encoded into ones and zeroes, is elegant and beautiful. Via lessons in computer history, punched tape, and typewriters, I'd love to share some of its logic with you.




