Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,544 posts.
Value Type Hygiene
Briefly put, types in L-world are ambiguous, leading to unhygienic mixtures of value operations with reference operations, and uncontrolled pollution from null s infecting value code.
Computing the number of digits of an integer even faster
I my previous blog post, I documented how one might proceed to compute the number of digits of an integer quickly. E.g., given the integer 999, you want 3 but given the integer 1000, you want 4. It is effectively the integer logarithm in base 10. On computers, you can quickly compute the integer logarithm … Continue…
White space does matter in C23
Usually in C identifiers are not directly followed by strings. But when U prefixed literals were introduced in C. there still were some rare clashes with existing code. This happened were a macro U…
The Rest of the Lenna Story
Home Page for Charles Rosenberg
Notes on concurrency bugs
Do concurrency bugs matter? From the literature, we know that most reported bugs in distributed systems have really simple causes and can be caught by trivial tests, even when we only look at bugs that cause really bad failures, like loss of a cluster or data corruption. The filesystem literature echos this result …
A Rust match made in hell
I often write pieces that showcase how well Rust can work for you, and how it can let you build powerful abstractions, and prevents you from making a bunch of mistakes. If you read something like S...
An Inconsistent Truth: Next.js and Typesafety
Next.js is a great framework. The frontend and backend have never been closer. Can we bridge the remaining gap in a typesafe way?
Using GCC's Nested Functions with Wide Pointers and No Trampolines II
When the address of a nested function is taken, GCC creates at trampoline at run-time. This trampoline is placed on the stack, which means that the stack has to be executable. This is problematic because a non-executable stack is an important security feature. For some time now, GCC has the option to place the…
Fold-... and Monoids
A blog about computers, functional languages, Lisp, and Scheme.
Thoughts on Conway's Law and the Software Stack
Some thoughts on Conway's Law and its effect on the software stack and open source ecosystem.
Regular expressions that work “everywhere”
What regular expression features work everywhere. Very few unless you relax your definition of "everywhere."
How to Do a TypeScript Conversion
Addressing a very common question: do-it-as-you-go or follow the dependency graph?
A commit history of BERT and its forks
What a commit history of version-controlled research papers could look like?
Building a ChatGPT-enhanced Python REPL
In this blog I share my experience in building a Python REPL augmented with ChatGPT. I explore how the application is built, and speculate on software engineering patterns and paradigms that might emerge in systems built on Large Language Models (LLMs). GEPL - Generate, Evaluate, Print, Loop Link to this section…
Strange line of Python
Hi 👋 you're reading a pretty old post! I started writing on here back in high school and this page may not reflect my current views. Recommend checking out related articles and categories down below, I've likely published more recent thoughts on this topic.
Brainfuck Optimization Strategies
In almost every computation a great variety of arrangements for the succession of the processes is possible, and various considerations must influence the selection amongst them for the purposes of a Calculating Engine. One essential object is to choose that arrangement which shall tend to reduce to a minimum the time…
A Simulated Annealing FPGA Placer
Academic website for Stefan Abi-Karam.
Bringing Faster Exceptions to Rust
Three months ago, I wrote about why you might want to use panics for error handling. Even though it’s a catchy title, panics are hardly suited for this goal, even if you try to hack around with macros and libraries. The real star is the unwinding mechanism, which powers panics. This post is the first in a series…
Writing a chat application in Django 4.2 using async StreamingHttpResponse
StreamingHttpResponse now supports async iterators when Django is served via ASGI.