June 2024

It’s a clickbait title, but: “Bad Apple!! But It’s An Animated QR Code of Bad Apple!!”

If something exists, Bad Apple!! will be played on it. In this post, @a talks about SWANTV/Epilepsend, a project for sharing data without a network using a giant animated colorful QR code. Additionally, it demonstrates that this data transmission scheme works under severe noise, for example, having the Bad Apple contour imposed on the image.

The intricacies of POSIX user management

The exozyme server recently switched from LDAP to PAM for user management, so both @a and @iacore wrote articles about some of the subtleties of the standard user management systems on Linux and other Unix-like OSes. On Linux, PAM authentication by default requires being root or having access to the password hashes in /etc/passwd, but @a found that it’s possible to use a tool called SSSD to get around that for better security. @iacore’s article, among other things, discusses how it’s legal for a UID to have more than one username and its the cursed consequences. I can’t really think of legitimate use cases for that, so I guess this is one example where POSIX has too much flexibility. Another prime example is how only the null character and slashes are forbidden in filenames. That opens up filenames to a whole host of sketchy characters like control characters and newlines that have no business being in filenames and just cause bugs.

Static site hosting providers

If you are thinking about hosting a static site, in this post @iacore covers 3 static site hosting providers and the experience using them.

Executable toki pona

@iacore was so bored that it made an interpreter for a dialect of toki pona and wrote a simplified version of the game 2048 in that language. You will have to read its source code to understand the potency of this one.

Hackathon! Hackathons!

After a long hiatus, exozyme hackathons are back! On June 2nd, we hosted a hackathon and did code golf and status page fixes. (Last month, @a and @iacore also implented HTTP basic auth and increased the timeout for the status page.)

If you missed the last hackathon, don’t worry, since we’ll have another one coming up on 06-16 at 15:00 UTC. We’ll have the same options as last time (code golf, status page) but this time we’ll also have a blogathon. If you don’t have a blog, we can help you get one set up.

Puzzle of the month is back!

We sadly didn’t have a puzzle last month, so to make up for that, you get several puzzles this time! Go to our Golfathon repo and try out the problems. Have fun!

Modulating signals in Python

@dragongoose has been learning some DSP (digital signal processing) for an SDR (software-defined radio) project (sorry for the acronym dump) and shared their progress on Matrix:

Nothing more than just my laptop, the python script loads audio or text then modulates it (only AM, BPSK and QPSK right now) and exports the real and imaginary components into an IQ file, then SDR++ shows the FFT of those IQ signals and gives the tools needed to interact and demodulate the given signals

Pretty much the script is generating the signals that would otherwise come from an actual radio, and theoretically I could play the IQ components through the sound card and mix them to actual RF frequencies and have a very rudimentary SDR transmitter

@dragongoose began with Python (which is surprisingly fast for this) in order to learn the concepts and prototype, but will switch to C soon.

Licensing exozine and the status page

We recently noticed that both exozine and the status page didn’t have licenses, so we chose CC BY-SA 4.0 for exozine and AGPL for the status page. However, it’s not so simple: to license or relicense software, you have to ask all the contributors to agree to the new license! The two projects have four and seven contributors respectively, so it took two days to ask everyone. Fortunately, everyone agreed! For much larger projects, relicensing can be a major headache, such as the Dolphin emulator going from GPLv2 to GPLv2+.

@nvpie’s Linux desktop workflow

In this post, @nvpie goes through all the components in their Linux desktop workflow, so check it out if you enjoy tiling window managers and customizing software. The post also mentions some cool CLI software.

@a: I have to admit that as a huge KDE fan, I’ve never been patient enough to configure a window manager, and I love how KDE just works out-of-the-box. Still, I can understand the appeal of WMs, such as being able to bend the software to exactly how you want it and make it look really cool if you want. So, there’s no correct answer to the DE vs WM debate, but rather we should focus on more important debates like Vim vs Emacs… just kidding. (Although I have to agree with @nvpie on Vim vs Emacs.)

Syncthing to sync all things

@nvpie wrote a blog post all about Syncthing a handy tool to synchronize files across devices.

@a: I recently switched from Nextcloud to Syncthing for file sync and the difference has been night and day. @nvpie’s post says Syncthing uses “magic” which is honestly a pretty accurate description (in reality, it sends to the IPv4 broadcast address to discover devices in the LAN and uses UPnP, UDP hole-punching or a relay server for NAT traversal because NAT is evil). Honestly, Nextcloud is an amazing piece of software, but its scope is just too wide and their developers are stretched thin. File sync should be their core feature, but instead there’s one guy maintaining their Android file sync app, which often breaks with each update. They definitely need many people polishing on their main features rather than adding “AI integration” or dozens of other tangential features that no one will ever use. Nextcloud has the potential to be great, but in the meantime I’ll just use Syncthing.

Website rewriting adventures

@daudix made a cool blog post about rewriting their Neocities website, sharing their experience of the rewriting procees.

@moksha: Neocities have given a space for people to come up with all sorts of cool and weird websites, so I recommend you to experiment with it.

Short story series

A group of friends play Gartic Phone with words, the constraint being, every article can only use the words that appeared in the previous article. Words are counted individually.

The result might look like a summary of the previous article at first, but when you look closer, it’s not.

Discuss

If you want to discuss anything from this issue, feel free to join our Matrix space and chat with our community!