Feed digilinux.ru [copy] http://digilinux.ru/feed/ has loading error: cURL error 22: The requested URL returned error: 403 Forbidden
Feed freepost [copy] https://freepo.st/rss/new has loading error: cURL error 6: Could not resolve host: freepo.st
Why I chose Flask to build sr.ht's mini-services
sr.ht is a large, production-scale suite of web applications (I call them “mini-services”, as they strike a balance between microservices and monolithic applications) which are built in Python with Flask. David Lord, one of the maintainers of Flask, reached out to me when he heard about sr.ht and saw that it was built with Flask. At his urging, I’d like to share the rationale behind the decision and how it’s turned out in the long run.
I have a long history of writing web applications with Flask, so much so that I think I’ve lost count of them by now - at least 15, if not 20. Flask’s simplicity...
Why I use old hardware
Recently I was making sure my main laptop is ready for travel1, which mostly just entails syncing up the latest version of my music collection. This laptop is a Thinkpad X200, which turns 11 years old in July and is my main workstation away from home (though I bring a second monitor and an external keyboard for long trips). This laptop is a great piece of hardware. 100% of the hardware is supported by the upstream Linux kernel, including the usual offenders like WiFi and Bluetooth. Niche operating systems like 9front and Minix work great, too. Even coreboot works! It’s durable, user-serviceable, light, and still looks brand new...
From Wordpress To Lektor
Every five to six years I'm revamping my website. This is now the 4th major incarnation. I created my first website somewhere in the 1990s – back then handcoded with HTML. I vaguely remember that it looked better than many others due my use of Bitstream's TrueDoc Technology. In 1999, I started my blog. It was a custom development based on the web framework Spyce, something like PHP using Python. To create a new article, I just copied a new file to a dedicated directory and it appeared after reloading the page. Some years later facilities like HTML-based live editing...
I'm going to work full-time on free software
Sorry for posting two articles so close to each other - but this is important! As I’m certain many of you know, I maintain a large collection of free software projects, including sway, wlroots, sr.ht, scdoc, aerc, and many, many more. I contribute to more still, working on projects like Alpine Linux, mrsh, musl libc, and anything else I can. Until now, I’ve been working on these in my spare time, but just under a year ago I wrote “The path to sustainably working on FOSS full-time” laying out my future plans. Today I’m proud to tell you that, thanks to everyone’s support, I’ll be working on free...
Backups & redundancy at sr.ht
sr.ht1 is 100% open source and I encourage people to install it on their own infrastructure, especially if they’ll be sending patches upstream. However, I am equally thrilled to host sr.ht for you on the “official” instance, and most users find this useful because the maintenance burden is non-trivial. Today I’ll give you an idea of what your subscription fee pays for. In this first post on ops at sr.ht, I’ll talk about backups and redundancy. In future posts, I’ll talk about security, high availability, automation, and more.
As sr.ht is still in the alpha phase, high availability has been on the backburner. However, data integrity has always been...
The state of things in 2019
And another year has passed – pretty quickly, if you ask me. Last year was the chance to close a bunch of construction sites and start new ones. Next to releasing two iOS apps that I have been working on for a while, I finally got the time to publish another book. I'm currently working on a round of updates to my existing apps in the iOS AppStore, namely Surveillance Pro, OBD2 Expert, and Wellenreiter. With regard to closed source platforms, I'm pretty excited about what's likely to happen this year. In autumn, Apple will release a way to compile...
Patches welcome
Happy new year! This is always a weird “holiday” for me, since all of the fun happened last night. Today is just kind of… I guess a chance for everyone to sober up before work tomorrow? It does tend to invite a sense of reflection and is the ideal time to plan for the year ahead. One of my goals in 2019 is to change more people’s thinking about the open source community and what it means to count among their number.
I think there’s a certain mode of thinking which lends itself to a more productive free software community and a happier free software contributor. Free software...
Introducing ThinMusic
At the peak of my career as a software engineer, I spent most of my free time either playing video games or reading books about engineering management. These days, my day job is mostly engineering management, and so I find myself carving out play-time to write some code (and of course, still indulge in video games).
A result of that play-time over this winter break merits broader sharing than my usual side project. I built a web player for Apple Music, called ThinMusic, to scratch two of my itches:
As an Apple Music subscriber, I had no way to play...Anatomy of a shell
I’ve been contributing where I can to Simon Ser’s mrsh project, a work-in-progress strictly POSIX shell implementation. I worked on some small mrsh features during my holiday travels and it’s in the forefront of my mind, so I’d like to share some of its design details with you.
There are two main components to a shell: parsing and execution. mrsh uses a simple recursive descent parser to generate an AST (Abstract Syntax Tree, or an in-memory model of the structure of the parsed source). This design was chosen to simplify the code and avoid dependencies like flex/bison, and is a good choice given that performance isn’t critical for...