Web development in C: Crazy?
Preliminary verdict: crazy like a fox (ish)
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,541 posts.
Preliminary verdict: crazy like a fox (ish)
A script for automatically lowering the volume during radio advertisements and DJ announcements and turns the volume back up when songs are playing. It controls a Sonos speaker using the Soco-cli P…
Monoids are a pretty interesting concept in software development. Monoids are everywhere. Monoids are simple yet powerful. And Monoids have a lot to teach us about software, in particular about com…
I've long been impressed by shell one-liners. They seem like magical incantations. Pipe a few terse commands together, et voilà! Out pops the solution to a problem that would seem to require pages of code. Are these one-liners real or mythology? To some extent, they're both. Below I'll give a famous real example. Then…
In a post-apocalyptic future with no internet or stackoverflow, let's try to build a programming environment from scratch.
From the highly eclectic blog of Mark Dominus
Matthew Childs / Reuters We live in a golden age of software reuse. We’ve never before had such a wealth of freely available code, in so many languages, so easy to find and install. And yet, …
Many ingredients go into developer productivity. Some are obvious and easy to measure (build times are an easy example to point to). But I think we tend to miss other important factors, perhaps because they are hard to directly measure. For example, no system collects a number that shows how well each developer…
Over the last 25 years, I’ve written a lot of event-driven code in C++. A typical example of event-driven code is registering a callback that gets invoked every time a socket has data to be read. Once you have read an entire message, possibly after many invocations, you parse the message and invoke another callback…
I rewrote my personal website using basic libraries and the flexibility is incredible.
A few weeks back, I was at XDC and gave a talk about various current and past input stack developments (well, a subset thereof anyway). On...
Against dependency cooldowns as a response to supply chain attacks
These LLMs are shockingly good at deobfuscation, transpilation and structure to structure conversions. I discovered this back around Christmas where I asked an LLM to make me an Haskell audio library by transpiling a rust implementation. An “oh fuck” moment in timeOver the Christmas break I’ve been critically looking
Why Go’s stability and simple deployments is a good fit for a serverless environment.
I tried it out, ran through their tutorial, and built a few small things. And I can honestly say that I think writing Svelte feels even faster and easier than React. Svelte gave me the same spark, the same feeling of “wow!” that I had with React.
Many applications benefit from a mix of a graphical and textual interface. This has ranged from entire environments, like the Lisp Machine and the follow-on Common Lisp Interface Manager (CLIM), to specific applications like Mathematica and others which employ a "notebook interface". There have also been various…
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…
Some companies use an isolated network or even the complete lack of a network as a security measure to protect from unauthorized access. Working on these systems can be a struggle but it is still possible, and perhaps even more important, to use a proper version control tool like Git.
Integer overflow detection/handling in Rust is sometimes misunderstood.
Slides and notes for the Being Glue talk.
TLDR: we are making progress on the Rust implementation of the GNU coreutils. Well, it is an understatement to say my previous blog post interested many people. Many articles, blog posts and some …
Archiving 104K files into tar.gz reduced I/O time by 43x and total processing time by 2.3x. The bottleneck was not disk speed, it was syscall overhead.
Whenever I have a chance, I extol the virtues of message-passing and event-loops in structuring concurrent workflows in Rust. However, in…
Following up on my recent Scala posts , some commented that because I haven't used Scala seriously, my opinion is of little value. I respo...
About a year ago, I published a Rust crate called inline-python, which allows you to easily mix some Python into your Rust code using a python!{ .. } macro. In this series, I’ll go through the process of developing this crate from scratch.
Part 3 covers functions, closures, if-else, while, for..in, range and iterators