Rust as the New C Part 1: Building and Combining Native Libs into C API
Evaluating Rust as the common denominator of modern development
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,544 posts.
Evaluating Rust as the common denominator of modern development
I'm the kind of person who thinks about the design and implementation of hash tables. One design which I find particularly cute, and I think deserves a bit more publicity, is Robin Hood open-addressing with linear probing and power-of-two table size. If you're not familiar with hash table terminology, that might look…
It's been a while since I've posted so figured it's about time I started a new series on my blog.
Simple guide to extending your browser with Chrome extensions
Today we’re talking about ALF. It’s a surprising move for Nicole Express; we do not condone cat-eating. But neither did Alf, eventually. In any case, we’re n...
This post is preceded by a description of two types of command line interfaces . The more command line-like of these two types integrates into a normal shell session ( python , telnet , bash ) instead of using the alternate screen to present a fullscreen text user interface ( top , vim , emacs ). Sometimes programs…
Sandspiel is a falling sand game I built in late 2018. I really enjoyed writing this game, and wanted to put into writing some of my goals, design decisions, and learnings from that process. If you’re reading this but haven’t played sandspiel, you should probably go try it !
a bare minimum introduction to modern program synthesis
Collaboratively editing strings of text is a common desire in peer-to-peer applications. For example, a note-taking app might represent each document as a single collaboratively-edited string of text.
Python Programming tutorials from beginner to advanced on a massive variety of topics. All video and text tutorials are free.
Collected together all for your convenience.
I used to call myself a Rust hater, but really I was doing it just to compensate for the perceivable fanboyism e.g. Rust tops on stackoverflow surveys as most-loved language. There are many reasons to hate C++, and I hate C++ too. Lots of people were waiting for a better programming language, but got Rust instead.
As I mentioned in my previous post , my Mastering Regular Expressions book was just reviewed on Slashdot . One thing that struck me in reading all the resulting comments was the (several different copies of an) apparently famous quote that goes something like:
For the past few days, I have been toying with an idea for a board game. To test it out, I wanted to write a simple implementation of it. Here’s an example of a type we might need in a critical phase of the game.
It’s largely known that counting commits and pull requests as a measure of engineering productivity is a bad idea.
Yesterday I received a new serious bug report against Mono in Debian. For those not in the know, “serious” severity is release critical, and can trigger removal of a package from the di…
After my recent vitriol about unit testing, a couple of people sent me Why TDD is Crap as a thorough debunking of TDD and unit testing. As someone very interested in software correctness, I ended up writing a debunking of his debunking. Transcriptions will be in quotes, my responses below. Some important notes: From…
A blog, mostly about programming
Goroutines are the single feature that distinguishes Go from other languages. They look very much like threads, but they are cheap to create and manage. Go's runtime schedules goroutines onto real threads efficiently so you can easily create lots of goroutines.
Current ideas about the best way of building a software system are heavily influenced by the ideas that captured the attention of previous generations of developers. Can anything of practical use be learned from studying long gone techniques for building software systems?
And why I am trying to minimize my dependence on external libraries (whenever possible).
Spring framework is arguably one of the most popular application development frameworks used by java developers. It currently consists of a large number of modules providing a range of services. These include a component container, aspect oriented programming support for building cross cutting concerns, security…