Write JavaScript like it’s 2005Permalink

Mu-An Chiou:

“Write JavaScript like it’s 2005” had been GitHub’s front-end team’s guideline since its inception, until React got pushed down from Microsoft management and most of us on the front-end team quit. If you are a user of github.com, consider how it has changed since 2020.

This is an old practice that has gotten lost in the ways with the manufacture of JavaScript industrial complex/ecosystems and frameworks. I hate to be the one to tell old tales but this is just another reminder that you can absolutely avoid dependency hell, We used to review every single dependency that goes into GitHub Dotcom and during our time the JS bytes continuously decreased as features were added.

That guideline was certainly evident as a user, as was the change post 2020. In some ways, the post-2020 pages have more features and respond to interactions faster but at the same time the new React based source view is infuriating at times: trying to select text and having it highlight the whole symbol for the symbol view/search, or Ctrl-f not always invoking the browser UI, for example.

Challenges Using systemd on Embedded SystemsPermalink

Kevin Boone:

I’ve found that many systemd components are less effective in an embedded environment than the traditional alternatives. I’ve shown some illustrative examples in this article, but I really don’t think there’s much controversy here: this simply isn’t the environment that systemd was designed for. But it’s getting increasingly difficult to find a mainstream Linux distribution that doesn’t use systemd – even Raspberry Pi distributions use it.

As systemd absorbs more functionality into itself, there’s going to be little motivation to maintain alternatives. After all, if everybody uses systemd, what motivation is there to support anything else? My concern is that we’re moving towards a future where Linux is inconceivable without systemd. That will be a problem for those environments where systemd really doesn’t shine.

Dinit feels like it could be a good option:

Dinit fits in the middle ground between extremely simple supervision suites and the more complex service managers.

It’s the init system used on Chimera Linux, which I’m running on a number of systems, including the WSL2 install that I’m writing this post on. Dinit has been great in my experience, although that’s admittedly also on desktop and server machines. It’s a lot smaller in scope than systemd so it would allow embedded systems to continue to use tools like Chrony and syslog-lite mentioned in the post.

QuickTime as a Tape Archival FormatPermalink

Chris Hanson:

A lot of people think QuickTime is a “video format,” but that’s not really accurate. Video and audio playback are applications atop the QuickTime container format; the container format itself is a means of representing multiple typed tracks of time-based media, each of which may have their own representation in the form of samples interpreted according to their own CODECs.

All of these are represented within a file as atoms which represent well-identified bags of data with arbitrary size and content, making it very easy to write general-purpose tooling and also to extend over time. (The last major extension to the low-level design was in the 1990s, to support 64-bit atom sizes, so it’s quite a stable format already.)

QuickTime, like TrueType before it has proven to be quite a well-designed format. If you’re looking for inspiration for a binary data format these feel like great candidates.

Everybody Codes Programming ChallengesPermalink

Unleash your problem-solving skills by tackling puzzles with code, in any programming language you love. Whether you’re a seasoned developer or just starting out, our platform offers challenges for all levels, allowing you to learn, grow, and have fun along the way!

I’m Emil Kaczyński, and I’m the one behind the madness you’re going to experience here (sorry!). I was just a regular full-stack developer who loved programming. One day, a friend showed me Advent of Code, and I got really into solving programming puzzles! I completed every event from 2015 multiple times, using different programming languages, and then I got curious about what it’s like to create something similar. I hope you’ll have a great time here!

If you’ve taken part in Advent of Code before this will be quite familiar. Emil notes:

Have you heard of Advent of Code? If yes, then you’re ready for Everybody Codes! It’s similar, but with its own twists. Everybody Codes is both easier and harder at the same time, yet friendlier and trickier too!

Blackberry Releases QNX Everywhere Free for Non-Commercial UsePermalink

I can’t seem to find a decent announcement post on the QNX website, so here’s Thom Holwerda writing on OSNews:

Well, it seems the company is trying to reverse course, and has started courting the enthusiast community once again. This time, it’s called QNX Everywhere, and it involves making QNX available for non-commercial use for anyone who wants it. No, it’s not open source, and yes, it requires some hoops to jump through still, but it’s better than nothing. In addition, QNX also put a bunch of open source demos, applications, frameworks, and libraries on GitLab.

Notably there is now a pre-built image for the Raspberry Pi 4 with an accompanying book: Introduction to the QNX RTOS with Raspberry Pi by Elad Lahav. The source of the book is also on GitLab.

Many years ago I used QNX for a project at university. We used its built-in RPC mechanism to coordinate behaviour across multiple machines and wrote a GUI using its built in toolkit. I remember QNX being quite usable, with a familiar and capable GUI. It was also quite compact, having a version that could run from a single floppy disk. The system was quite responsive due to low system requirements and real-time nature.

QNX was also quite straightforward to program for, with a comprehensive suite of C++ libraries for the system. I can certainly recommend playing around with it if you’re interested in learning about alternate operating systems, especially hard real-time ones.