Things I hate about Rust, redux
Two years ago, I wrote a post with a handful of grievances about Rust , a language that I then (and still) consider my favorite compiled language.
Topics /
The most popular blog posts about software engineering on Hacker News. 1,001 posts.
Two years ago, I wrote a post with a handful of grievances about Rust , a language that I then (and still) consider my favorite compiled language.
A simple principle to help structure code better
Understanding how the group by and having clauses work can help us write more efficient SQL. I want to demonstrate this with an example…
Emacs now has a builtin cheat sheet for a large swathe of common elisp functions. If you can't remember exactly how to do something, then this is a great place to look for it first.
I run the Ganglia Monitoring System on the home lan to keep an eye on temperatures, loads, disk usages, network throughput and such on the gateway and, more recently, my desktop workstation as well 1 1 The primary reason is that I have noticed some instability, and I would like to know if it’s related to temperature…
Hi, I'm Peter Bex, a Scheme and free software enthusiast from the Netherlands. See my user page on the CHICKEN wiki or my git server for some of my projects.
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Let’s say we want to store some data on multiple drives, so that we can recover from drive failures.
Many recent Intel processors benefit from a new family of instructions called AVX-512. These instructions operate over wide registers (up to 512 bits) and follow the Single instruction, multiple data (SIMD) paradigm. These new AVX-512 instructions allow you to break some speed records, such as decoding base64 data at…
Have you ever wanted to call into your Lisp library from C? Have you ever written your nice scientific application in Lisp, only to be requ...
There are various ways in software to handle error conditions. In C or Go, one returns error code. Other programming languages like C++ or Java prefer to throw exceptions. One benefit of using exceptions is that it keeps your code mostly clean since the error-handling code is often separate. It is debatable whether…
Like many hackers, my first real programming language love was Lisp. Paul Graham, who inspired my own explorations of the language, is a particular advocate and has written quite a bit about Lisp a…
A common issue when writing tests for real-world software is how to deal with third-party dependencies. Let’s examine an old, but counter-intuitive principle.
Whether I’m teaching new Pythonistas or long-time Python programmers, I frequently find that Python programmers underutilize multiple assignment....
Speculations and specifications. If you were a Winamp user back in the day, or curate an MP3 collection currently, you might recognize the humble ID3 tag. It is what the metadata in the MP3 file is made up of. First it was pretty limited in the version later dubbed ID3v1. Like any good 2.0 they added a ton more…
I sometimes find myself in a position of needing to write some code that I’m just not sure how to write. Been there have you? Here are the steps I take when I’m stumped. No huge revelations here, just hard-earned advice.
The image alignment and registration pipeline takes two input images that contain the same scene from slightly different viewing angles. The picture above displays both input images side by side with the common scene (object) being the painting Las Meninas (1656) by Velázquez, currently at the Museo del Prado in…
Most Emacs advice you'll find on the internet is largely good, and will improve your Emacs abilities, but people do occasionally share outright bad advice that harms your learning.
Two years ago, I started out building a new software product. From the start, it would require mobile, web, and backend components to make it work, so I had to make quite a few technology choices. Here is how those turned out.
7 years ago I left Heroku. Heroku has had a lot of discussion over the past weeks about its demise, whether it was a success or failure, and the current state. Much of this was prompted by the recent, and on-going security incident, but as others have pointed out the product has been frozen in time for some years now…
One could say I have a bit of an obsession with build times. I believe having a “tight feedback loop” is extremely valuable: when I work on a large codebase, I want to be able to make small increme...
Whatever your stance on async/await, I’d like to pitch to you on why, in my experience, async/await tends to make code more complicated…
The system memory allocator free operation zeroes out all deallocated blocks in iOS 16.1 beta or later. Invalid accesses to free memory might result in new crashes or corruption, including NULL -pointer dereferences and non-zero memory being returned from calloc .
On June 9th, 2020, early into a still raging pandemic, I received my PinePhone UBports Community Edition. It's incredible how fast these two years went by, and how much the PinePhone experience improved in the meantime. This is just a subjective post about what I remember, you may also consider it a
What abstraction really means in programming, from PL theory, by Jimmy Koppel: why functions, interfaces, and indirection are not abstraction.
While considering concurrent queue design I came up with a generic, lock-free queue that fits in a 32-bit integer. The queue is “generic” in that a single implementation supports elements of any arbitrary type, despite an implementation in C. It’s lock-free in that there is guaranteed system-wide progress. It can…
Some of the most creative, wacky explorations of what you can do in TypeScript's type system!