Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 2,470 posts.
The ABC conjecture has still not been proved
Five years ago, Cathy O’Neil laid out a perfectly cogent case for why the (at that point recent) claims by Shinichi Mochizuki should not (yet) be regarded as constituting a proof of the ABC conjecture. I have nothing further to add on the sociological aspects of mathematics discussed in that post, but I just wanted to…
The Myers diff algorithm: part 1
If you enjoy this article, I have published a book explaining the internals of Git through implementation: Building Git .
Building a Regex Engine in Fewer Than 40 Lines of Code
A blog about programming and modern web development, particularly Node.js and React
Hotswapping Haskell
Bluesky: @simonmar.bsky.social Github: simonmar Email: marlowsd@gmail.com LinkedIn: Simon Marlow
Flare: Clojure Dynamic Neural Net Library
I wrote Flare, a Dynamic Neural Net library in Clojure.
What I believe II
Unrelated Update: To everyone who keeps asking me about the “new” P≠NP proof: I’d again bet $200,000 that the paper won’t stand, except that the last time I tried that, it d…
What AlphaGo Zero teaches us about what’s going wrong with innovation
It is hard not to be impressed — and perhaps a little alarmed — by the progression. In 1997, IBM’s supercomputer Deep Blue beat the world’s greatest chess player, Garry Kasparov. It was a hugely ex…
Vue.js and Brunch: Webpack Alternative
Do you develop your Vue.js app in a lo-fi ES5 environment without cool features like single-file components? Or do you use Webpack and spend forever on config? Brunch is a simple build tool that provides a happy medium.
Demystifying Floating Point Precision
Floating point numbers have limited precision. If you are a game programmer, you have likely encountered bugs where things start breaking after too much time has elapsed, or after something has mov…
Add a const here, delete a const there
Update, February 2019: Two years later the VC++ bug I reported here still exists, even in VS 2019 preview. However Chromium no longer builds with VC++ so I’m reverting the changes where I del…
Predict the future with Machine Learning
Learn Machine Learning (ML) and be ahead of the pack in the Software industry. Machine Learning is a sub-field of Artificial Intelligence (A.I), which is heavily used in modern software systems. Machine Learning algorithms can improve software (a robot) and it's ability to solve problems through gaining experience and…
How Command Line Parameters Are Parsed (2016)
It's difficult to get the Windows Console to display Unicode characters, so here's a C++ WinForms program that will display the arguments in a TextBox.
How I stopped procrastinating, learned to code, and launched my first product
I discuss the six major barriers that I had to break through in order to go from lurker to launcher.
The Design and Use of QuickCheck
QuickCheck is the grandfather of property-based testing libraries. Despite being imitated in over thirty languages, the original implementation remains pre-eminent due to the type system and consistent logic of the Haskell language in which it is written.
Origins and History of Unix, 1969-1995 (2003)
A notorious ‘second-system effect‘ often afflicts the successors of small experimental prototypes. The urge to add everything that was left out the first time around all too frequently leads to huge and overcomplicated design. Less well known, because less common, is the ‘third-system effect’; sometimes, after the…
Not Explicit
Oftentimes when I am conversing about the design of Rust with other users - as on RFCs or the internals forum - I witness a peculiar remark about “explicitness.” It usually goes something like this: I do not like Feature Design X because it is too implicit. Magic is okay in Other Language Y, but Rust is supposed to be…
DotNetAnywhere: An Alternative .NET Runtime
Recently I was listening to the excellent DotNetRocks podcast and they had Steven Sanderson (of Knockout.js fame) talking about ‘WebAssembly and Blazor’.
A primer on Elixir Stream
ReactJS Elixir Erlang Golang D3 scalable web services developers
“Insanity Is Doing the Same Thing and Expecting Different Results”
Albert Einstein? Al-Anon? Narcotics Anonymous? Max Nordau? George Bernard Shaw? Samuel Beckett? George A. Kelly? Rita Mae Brown? John Larroquette? Jessie Potter? Werner Erhard?
Influenza A (H1N1) – How many bits does it take to kill a human? (2009)
I read a fantastic article in Nature magazine (vol 459, pp931-939 (18 June 2009)) that summarizes not only the current state of novel H1N1 (aka Swine Flu) understanding, but also a compares H1N1 against other flu strains. In particular, it discusses in-depth how the pathogenic components — i.e., the stuff that kills…
IBM Punched Card Typography
C ard punches of various types, models and makes featured an option to print the characters encoded by the holes punched in any of the columns in human readable form onto the top of the card. While it is well known that these characters were printed by a 5 × 7 dot matrix, comprehensive information on what these…