Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,844 posts.
GCC and C vs C++ Speed, Measured
With the imminent release of gcc 4.8, GCC has finally switched to C++ as the implementation language. As usual, LWN has excellent coverage. Those with long memories will remember Linux trying to use g++ back in 1992 and retreating in horror at the larger, slower code. The main benefit was stricter typechecking…
Haskell’s State monad is not a monad (2014)
Haskell’s State monad has a shameful secret. It’s not a monad [ State monads don’t respect the monad laws in Haskell, Simon Marlow ] . Look:
Why I’m rewriting my SaaS
I started HostiFi, a Ubiquiti cloud hosting service, 1 year ago this month. Since then, it has grown from 0 to $5,735 monthly recurring…
The sad history of Unicode printf-style format specifiers in Visual C++ (2019)
Getting ahead of the standard, which went a different way.
Going Simple with JavaScript
I was making a change to a page that needed to pull from a remote API and make changes to various parts of the page. Sounds like the time to pull out jQuery and Ajax, doesn't it? Instead, I just u...
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…
Lisp is sin
Access to this page requires authorization. You can try signing in or changing directories .
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...
Webhooks Are Magic
Around the Iron.io office, I’m known as a bit of a webhook enthusiast. When asked what my favourite features of the Iron.io platform are, our webhook
Lefthook: Knock your team’s code back into shape
Meet Lefthook, the fastest polyglot Git hooks manager in our galaxy that requires zero setup from your contributors
Running Forth Unikernels
Forth has been called lots of things and it was something that I figured we could easily unikernelize so I dove into it. I think it's safe to say I've never written any production Forth nor do I see myself doing so but having said that - let's begin!
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?