Tux Machines

Programming Leftovers

Posted by Roy Schestowitz on Mar 24, 2023

=> today's howtos | Microsoft Bans Free Software, SJVN Covers Chaffbots, Microsoft Antitrust Issues Again, Apple Also

Linearity and Control

=> ↺ Linearity and Control

A week ago Niko published a post on linear types, introducing the idea of "must move" types, which he suggested could be implemented through some form of ?Drop bound. It's far from the first time linear types have come up. Five years ago Gankra also published a post on linear types, explaining what they are and why they're hard to get right.
In this post I want to build on these two posts; expanding on what linear types are, why they're useful, how they would interact with Rust, and share a novel effect-based design — which unlike many previous attempts would preserve our ability to implement and use destructors.

Planning Go 1.21 Cryptography Work

=> ↺ Planning Go 1.21 Cryptography Work

This is the planning overview for the Go 1.21 release. There is some exciting API work going on, as well as some satisfying follow-ups on stuff that landed in Go 1.20.
Now is a very good time to provide feedback (and you can do that by just replying to this if you’re reading it in your inbox)! You can also take a look at my public GitHub Projects planning board.

Fascination of AWK

=> ↺ Fascination of AWK

AWK is a delightful mini-language almost unchanged for decades.
A bare minimum of features includes strings, numbers, functions, associative arrays, line-by-line I/O and shell invocation. Perhaps, if it had fewer features, it would be impossible to program in it at all.
There is an opinion that AWK is not suitable for writing serious programs. Even Brian Kernighan (the K in AWK) is convinced that his language is only good for small one-liners. However, this does not prevent enthusiasts from creating rather voluminous programs in AWK: [...]

Speeding up text processing in Python (is hard)

=> ↺ Speeding up text processing in Python (is hard)

If you’re doing text or string manipulation in Python, what do you do if your code is too slow? Assuming your algorithm is reasonably efficient, the next step is to try faster alternatives to Python: a compiled extension.
Unfortunately, this is harder than it seems. Some options don’t offer an easy path to optimizations, others are actually slower. To see this limitation in action, we’ll consider some alternatives: [...]

Cytron CM4 Maker Board Review: Versatility in PCB Form

=> ↺ Cytron CM4 Maker Board Review: Versatility in PCB Form

Cytron’s CM4 Maker Board is designed for the Raspberry Pi Compute Module 4 and offers a veritable bounty of ways in which we can build projects. From simple sensors, to SSD powered servers, all are possible with this pleasantly purple PCB.

=> gemini.tuxmachines.org

Proxy Information
Original URL
gemini://gemini.tuxmachines.org/n/2023/03/24/Programming_Leftovers.gmi
Status Code
Success (20)
Meta
text/gemini;lang=en-GB
Capsule Response Time
139.236512 milliseconds
Gemini-to-HTML Time
0.704072 milliseconds

This content has been proxied by September (ba2dc).