Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 994 posts.
Creating a Slack app that uses fewer resources
I recently created a macOS app called Slack Lite, which beats Slack's desktop app across a few performance metrics. Slack Lite uses Slack's official UI, so it's visually indistinguishable from the official client. Even so, Slack Lite uses 5x fewer threads, 3.5x less time to startup, and significantly less CPU. In the…
Finding Goroutine Bugs with TLA+
My job these days is teaching TLA+ and formal methods: specifying designs to find bugs in them. But just knowing the syntax isn’t enough to write specs, and it helps to have examples to draw from. I recently read Chris Siebenmann’s Even in Go, concurrency is still not easy and thought it would make a good case study…
Fast high-level programming languages
Python and R are slow when they can’t rely on functionality or libraries backed by C/C++. They are inefficient not only for certain algorithm development but also for common tasks such as FASTQ parsing. Using these languages limits the reach of biologists. Sometimes you may have a brilliant idea but can’t deliver a…
Classes are a way of writing higher order functions
Joe and I recently kicked off a re-read of SICP . I can say that it is the most interesting textbook I have gone through. Imagine, you begin with just 4 or 5 constructs, and you end up building algebraic equation solvers, circuit simulators, and even logic programming languages. Because you start off with such few…
Conventions for Command Line Options
This article was discussed on Hacker News and critiqued on Wandering Thoughts ( 2 , 3 ).
Reverse Engineer Amazon's Whispersync
I am a big fan of my Kindle. This is the device I’d bring over to a desert island. I am also a fairly frequent user of the highlight feature where you can select a bit of text you like and save it. One thing is bothering me though: the lack of open API on the Kindle to retrieve the data about me. Amazon provides the…
Create No-JavaScript friendly sites
Create usable sites, even if JavaScript is blocked
Teaching our five year old to code by cheating
Teaching our five year old daughter to code by cheating.
Stories about the B5000 and people who were there (1979)
OCRed and HTMLed by Ed Thelen from a very poor copy provided by "anonymous" - Click for operational characteristics of the processors for the Burroughs B5000 - 5 MByte .pdf
I don’t have time for coding challenges
It tends to be standard recruitment practice in the tech industry to require candidates to complete some sort of coding test or challenge. Sometimes this takes the form of the much-feared whiteboard interview – where candidates are expected to work through a problem on the aforementioned whiteboard, in front of an…
Emacs as Email Client
Email with mu4e and offlineimap
Domain Logic and SQL (2003)
A long-form article entitled: "Domain Logic and SQL"
Implementing Rust's dbg! in Python
Rust has an amazing dbg macro that lets you quickly set up an expression printer that will also put in the source line. It also returns the value of the expression so you can even easily inline the printing when you want to!
Reasons to Learn Redux as a JavaScript Developer
Redux greatly shaped how we develop modern JavaScript applications nowadays. Here I want to give a walkthrough on all the mindset changes we went through as JavaScript developers ...
Division by zero in type theory: a FAQ
How can a theorem prover use the convention that 1/0=0 and still be consistent?
My Favorite Shortcuts for JetBrains' IDEs
JetBrains, the makers of the popular IntelliJ IDEA, offer a range of powerful IDEs for all kinds of programming languages. I would like to share my favorite shortcuts for their IDEs.
CQRS: Command Query Responsibility Segregation (2011)
CQRS (Command Query Responsibility Segregation) is the notion that you can use a different model to update information than the model you use to read information
CuPy Accelerates NumPy on the GPU? Hold My Cider, Here's Clojure
Everyone knows that Java is slow and Clojure is not a great choice for number crunching, but as soon as I dig anywhere with my software, I discover that the ...
Curl will now output JSON
This is not a command line option of the week post, but I feel a need to tell you a little about our brand new addition! --write-out [format] This option takes a format string in which there are a number of different "variables" available that let's a user output information from the previous transfer. For … Continue…
Python Generated Sequence Diagrams
Understanding a system or software architecture simply, truly, absolutely, undoubtedly requires an occasional sequence diagram. I left ...
Lisp: Good News, Bad News, How to Win Big (1991)
Lisp has done quite well over the last ten years: becoming nearly standardized, forming the basis of a commercial sector, achieving excellent performance, having good environments, able to deliver applications. Yet the Lisp community has failed to do as well as it could have. In this paper I look at the successes, the…
Actix Web: Optimization Amongst Optimizations
It’s already been a great reading day for retrospectives on the last ten years / predictions for the next. Here’s to hoping that everyone had a good break (or at least a few days off), set or didn’t set resolutions, and is refreshed and ready for what comes next.
Combinatris: Tetris with SKI Combinators
Combinatris