Felix Crux

Technology & Miscellanea

Tags: , , ,

How do you follow your favourite online creators and their blogs, articles, videos, podcasts, comics, or what have you? How do you choose what to read when you have a few minutes to kill on the bus, or when you want to get caught up in the morning with a cup of coffee?

Most people hand this choice over to social media, inviting along the whole associated host of problems like clickbait; outrage amplification; snooping targeted advertising; radicalising rabbit-holes; echo-chambers and filter bubbles; algorithms choosing what to show you based on “engagement” rather than what you’d want for yourself; and on and on.

There’s a better way — and there has been for decades! Amazingly, it seems underused even within tech circles, and almost completely unknown to the general public. It’s super easy to use, actually more convenient than social media apps, and leaves you in complete control of what you see.

I’m talking, of course, about RSS/Atom web feeds, and I contend that they are not only a better alternative, but in fact I’d go so far as to say that a feed reader is the only tolerable and civilised way to read online! The system works really well and more in line with what (I think) most people actually want; it minimizes the use of harmful social media platforms; and it helps foster a more vibrant, independent, creative, and non-commerical Web. So drop your non-chronological algorithmically-obscured sponsored timeline, and let’s have a whirlwind overview of what feeds are and how to use them!

Tags: , ,

I’ve started putting together a list of the “core” books I recommend for people interested in exploring different facets of our field. I certainly don’t think you need to read all of them to be a capable software professional; rather it is the list I would put together if asked about how to learn more about specific areas.

This list came about because after compiling similar lists two or three times over the years in various places and formats, I’m following good development practice and factoring it out for reuse and sharing.

You can find the list itself here.

The list is far from complete; in fact today I’m starting with just one area: the culture and history of our field. Over time I will add sections on technical system design and architecture; project and people management; data visualization, information presentation, and user experience design; etc. Let me know if there are areas you want covered, or if you have recommendations of your own!

Tags: , , ,

The Ledger accounting system is a powerful (but not very easy to adopt) software tool for double-entry bookkeeping. It can be used for far more than just basic finances: tracking billable hours, calculating taxes and tithes, reporting on the asset class balance of your investment portfolio… almost anything you can think of — if you can figure out how to do it.

Most of the information I could find just presented a basic overview of the simplest possible use of the tool. The official documentation, on the other hand, is very comprehensive, but it's like being given a pile of logs and some nails when you're trying to find out how to build a house.

I therefore will be writing up a series of posts on “Ledger Practices”, describing how I actually use the system for intermediate-complexity personal accounting. These should be “recipes” for solving real problems or answering real questions using ledger.

Tags: ,

I recently remembered that I hadn't yet cleaned up and done an “official” public release of my pdfmunge utility. It's a little Python script that I wrote about a month ago to help me deal with PDFs more effectively on my eBook reader. If you're lucky enough to own a big-screened Kindle DX, you can stop reading now. The rest of us have to deal with reflowing the text of PDFs in order to bring them up to a legible size on tiny screens. Of course, most PDFs don't take kindly to being reflowed, and if they contain any kind of technical diagrams, source code, or images, you're pretty much out of luck. That's where pdfmunge comes in.

Tags: , ,

Makefiles are the granddaddy of build systems. Though falling out of favour relative to more modern systems like SCons and ant, make is still the lingua franca of software builds, particularly in the C and C++ parts of the open source world. Because of this, it is imperative to have at least a basic understanding of makefiles and their use.

There are plenty of tutorials introducing the fundamentals of makefile syntax, and a handful that show off some advanced features. There are very few, however, that actually show how to write a useful makefile, or that introduce makefile conventions and patterns. For me, this meant that writing makefiles became an arduous process of stringing together snippets from various places, and hoping they interoperated harmoniously. Frustratingly, I'd often learn of a new feature months later and rip out half of the file and replace it with a single line. Worst of all, I had no idea if what I was doing was “conventional” or even passable as a serious makefile.