Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 1,420 posts.
Curl doesn’t spew binary anymore
One of the least favorite habits of curl during all these years, I've been told, is when users forget to instruct the command line tool where to store the downloaded file and as a direct consequence, curl instead sends a lot of binary "gunk" to the terminal. The end result of that is at best … Continue reading curl…
Building a QNX 7 Desktop
Describes the process of building a QNX 7 x86_64 machine from (almost) scratch.
Windows 3.1 All Over Again
Reactive programming and thread sharing. Javascript, Node.js, Go, Rails, Elixir and Erlang. Rewind the clocks to Windows 3.1 In 1992 with Windows 3.1 we had this thing non-preemptive multitasking, i.e. “Cooperative Multitasking”. Cooperation is a funny term, it should actually be “Programmer Controlled Multitasking”…
On mutex performance and WTF::Lock
One of the things I’ve been doing this quarter is removing Gecko’s dependence on NSPR locks . Gecko’s (non-recursive) mutexes and condition variables now use platform-specific constructs, rather than indirecting through NSPR. This change makes things smaller, especially on POSIX platforms, and uses no dynamic memory…
How Many X86-64 Instructions Are There Anyway?
Personal website of Stefan Heule
Type-safe GraphQL with OCaml
In July 2016, I spent some time writing a GraphQL endpoint for an existing application in Go. I chose to implement the endpoint in Go based on prior experience, good concurrency support and the desire to have static type system. The GraphQL library for Go, graphql-go , worked pretty well, and I was able to build the…
Announcing Remacs: Porting Emacs to Rust
programming, language design, and human factors
Clojure Linear Algebra Refresher: Eigenvalues and Eigenvectors
I stumble upon eigenvectors and eigenvalues regularly when reading about machine learning topics. They seem to be important. They are not introduced in those...
Matrices from a geometric perspective
Graphics is all about geometry. In particular, there are points that have a certain color, and the pattern of colors gives you a certain picture. You can change the way the points are distributed by applying certain transformations like translation (movement), rotation and scaling. While most people familiar with the…
An Introduction to Deep Learning for Language Modeling
Language models assign probability values to sequences of words. Those three words that appear right above your keyboard on your phone that try to predict the next word you’ll type are one of the uses of language modeling. In the case shown below, the language model is predicting that “from”, “on” and “it” have a high…
Pointer Free Programming and the Future of Nim
What do ParaSail, "modern" C++ and Rust have in common? They focus on "pointer free programming" (ok, maybe Rust doesn't, but it uses similar mechanisms). In this blog post I am exploring how we can move Nim into this direction. My goals are:
Finding bugs in Haskell code by proving it
Last week, I wrote a small nifty tool called bisect-binary , which semi-automates answering the question “To what extent can I fill this file up with zeroes and still have it working”. I wrote it it in Haskell, and part of the Haskell code, in the Intervals.hs module, is a data structure for “subsets of a file”…
Open sourcing the Firebase SDKs
The latest news from Google on open source releases, major projects, events, and outreach programs for early career developers.
Welp, there go my Git signatures
Hello! If you already know about the RoCA vulnerability, and you know what I did about it (or you don’t care), then feel free to skip down to the good stuff! Signs of Trouble Monday morning,…
Programmer Competency Matrix (2016)
A matrix for rating programmers on computer science, software engineering, programming, security, infrastructure, data, AI-assisted development, experience and knowledge, from 2ⁿ to log(n).
Compiler Optimizations are Awesome
Another reason for optimizing compilers: It allows us to write simple and obvious code expecting that the compiler will do the optimization. This both reduces the initial defect count and makes the code more maintainable in the long-run. Note that these are also often the simplest optimizations (e.g. a calculation…
How to Make Python Run as Fast as Julia (2015)
IBM Developer is the source for hands-on training and in-demand learning on relevant technologies such as generative AI, data science, Java, and more.
Common Multithreading Mistakes in C# – Unsafe Assumptions
An in-depth look at exactly what the CPU and runtime can do to subvert us when we don't write properly thread-safe code.
How Jet Built a GPU-Powered Fulfillment Engine with F# and CUDA
Have you ever looked at your shopping list and tried to optimize your trip based on things like distance to store, price, and number of items you can buy at each store? The quest for a smarter…
Assembling WebAssembly
WebAssembly in WebKit.
Modernizing the DOM Tree in Microsoft Edge
The DOM is the foundation of the web platform programming model, and its design and performance impacts the rest of the browser pipeline. However, its history and evolution is far from a simple story. Over the past three years, we’ve embarked on an in-flight refactoring of the DOM in Microsoft Edge, with our eye on
Introducing Yelp's GraphQL API
Introducing Yelp's Local Graph Tomer Elmalem, Software Engineer May 3, 2017 We’re continuously adding new features to our API to make it easier for developers to integrate with our data...
Bloaty McBloatface: a size profiler for binaries
I’m very excited to announce that today I’m open-sourcing atool I’ve been working on for several months at Google.It’s called Bloaty McBloatface, and it lets...
Std::visit is everything wrong with modern C++
Yet another programming blog. Thoughts on software and related misadventures.