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
Status update, October 2020
I’m writing this month’s status update from a brand-new desktop workstation (well, I re-used the GPU), my first new workstation in about 10 years. I hope this new one lasts for another decade! I aimed for something smaller and lightweight this time — it’s a Mini-ITX build. I’ve only been running this for a few days, so let me tell you about the last few accomplishments which are accountable to my venerable workstation’s final days of life.
First, there’s been a ton of important work completed for SourceHut’s API 2.0 plans. All of the main blockers for the first version of meta.sr.ht’s writable GraphQL API are resolved, and...
Four principles of software engineering
Software should be robust. It should be designed to accommodate all known edge cases. In practice, this means predicting and handling all known error cases, enumerating and addressing all classes of user inputs, reasoning about and planning for the performance characteristics of your program, and so on.
Software should be reliable. It should be expected to work for an extended length of time under design conditions without failures. Ideally, it should work outside of design conditions up to some threshold.
Software should also be stable. It should not change in incompatible or unexpected ways; if it works today it should also work tomorrow. If it has to change, a...
Programming Languages
While I never got much into natural languages (beyond my native tounge, a halfway solid english, and some bits and pieces of french), I have always been fascinated by (some) programming languages – I even wrote books about some of them. I (literally) grew up with BASIC and 6502/6510 ASSEMBLER – on the VC20 and the C64. Later on, learned to hate C and love 680x0 ASSEMBLER – on the AMIGA. During the 90s, I enjoyed PASCAL and MODULA II, and then found a preliminary home in Python. The 2000s were largely affected by C++ (which I always found much...
Spamtoberfest
https://oc.todon.fr/@val/104960502585461740/embed
As I’ve written before, the best contributors to a FOSS project are intrinsically motivated to solve problems in your software. This sort of contribution is often fixing an important problem and places a smaller burden on maintainers to spend their time working with the contributor. I’ve previously contrasted this with the “I want to help out!” contributions, where a person just has a vague desire to help out. Those contributions are, generally, less valuable and place a greater burden on the maintainer. Now, DigitalOcean has lowered the bar even further with Hacktoberfest.
Disclaimer: I am the founder of a FOSS project hosting company similar to GitHub.
As I write...
A tale of two libcs
I received a bug report from Debian today, who had fed some garbage into scdoc, and it gave them a SIGSEGV back. Diving into this problem gave me a good opportunity to draw a comparison between musl libc and glibc. Let’s start with the stack trace:
==26267==ERROR: AddressSanitizer: SEGV on unknown address 0x7f9925764184 (pc 0x0000004c5d4d bp 0x000000000002 sp 0x7ffe7f8574d0 T0) ==26267==The signal is caused by a READ memory access. 0 0x4c5d4d in parse_text /scdoc/src/main.c:223:61 1 0x4c476c in parse_document /scdoc/src/main.c 2 0x4c3544 in main /scdoc/src/main.c:763:2 3 0x7f99252ab0b2 in __libc_start_main /build/glibc-YYA7BZ/glibc-2.31/csu/../csu/libc-start.c:308:16 4 0x41b3fd...Drew DeVault's blog
TOFU recommendations for Gemini
I will have more to say about Gemini in the future, but for now, I wanted to write up some details about one thing in particular: the trust-on-first-use algorithm I implemented for my client, gmni. I think you should implement this algorithm, too!
First of all, it’s important to note that the Gemini specification explicitly mentions TOFU and the role of self-signed certificates: they are the norm in Geminiland, and if your client does not support them then you’re going to be unable to browse many sites. However, the exact details are left up to the implementation. Here’s what mine does:
First, on startup, it finds the known_hosts file....
The unrealized potential of federation
There are some major problems on the internet which may seem intractable. How do we prevent centralization of our communication tools under the authority of a few, whose motivations may not align with our interests? How do we build internet-scale infrastructure without a megacorp-scale budget? Can we make our systems reliable and fault-tolerant — in the face of technical and social problems?
Federation is an idea which takes a swing at all of these problems.
Note: apparently some cryptocurrency enthusiasts are parading this article around to peddle their garbage. Cryptocurrency is the digitally woke techbro’s ponzi scheme, and is a massive waste of electricity and developer effort. Anyone who tells...
Making Music with Computers: Two Unconventional Approaches
I love music. I really, really love music. Hopefully you’ll forgive the departure from the usual topics.
[…]