Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 1,357 posts.
Active Oberon Language Report Update 2019
D-INFK GitLab Service
Swc – Fast JavaScript to JavaScript compiler
SWC (Speedy Web Compiler) is a super-fast JavaScript and TypeScript compiler.
Concurrency in Python: CSP and Coroutines
Communicating Sequential Processes and Python coroutines as a structured approach to concurrency.
Faster arithmetic by flipping signs
Over the years, I picked up a number of tricks to optimize code. Today I’ll talk about one of them.
Let the callers of your API control allocations
This is a post about performance. Most of the time when worrying about the performance of a piece of code the overwhelming advice should be (with apologies to Brendan Gregg) don’t worry about it, yet. However there is one area where I counsel developers to think about the performance implications of a design, and that…
Software Is Hard (2007)
"Software is hard," reads the quote from Donald Knuth that opens Scott Rosenberg's Dreaming in Code . The 400 pages that follow examine why: Why is software in a never-ending state of crisis? Why do most projects end up horribly over-budget or cancelled or both? Why can't we ship code without bugs? Why, everyone asks…
Go.dev: a new hub for Go developers
Announcing go.dev, which answers: who else is using Go, what do they use it for, and how can I find useful Go packages?
Architecting UIs for Change
Techniques for keeping your app code under control even when requirements shift dramatically.
Clever Functional Design
An entry on some of the cleverest (and clearest) functional designs I've worked on, and how it came to be
A guide to OCR with Tesseract, OpenCV and Python
Dive deep into OCR with Tesseract, including Pytesseract integration, training with custom data, limitations, and comparisons with enterprise solutions.
SpaCy v2.2
Version 2.2 of the spaCy Natural Language Processing library is leaner, cleaner and even more user-friendly. In addition to new model packages and features for training, evaluation and serialization, we've made lots of bug fixes, improved debugging and error handling, and greatly reduced the size of the library on…
Unintuitive JSON Parsing
Despite the goal of JSON being a subset of JavaScript — which it failed to achieve (update: this was fixed ) — parsing JSON is quite unlike parsing a programming language. For invalid inputs, the specific cause of error is often counter-intuitive. Normally this doesn’t matter, but I recently ran into a case where it…
Lock-free multithreading with atomic operations
Synchronizing threads at a lower level.
High-performance, exactly-once, failure-oblivious distributed programming (2018)
This is one post in a series about programming models and languages for distributed computing that I’m writing as part of my history of distributed programming techniques.Relevant ReadingTrill: A h...
How I Side Project
This post started out as a long-form response to this tweet by Raj Kunkolienkar:
Commit Graph Drawing Algorithms
This article is one chapter of my master thesis entitled “Design and implementation of a graphical user interface for git”. It describes the algorithm I designed to draw the commit graph in my own prototype git client called gitamine. I have adapted the content so that it fits better with this blog. Drawing graphs is…
Uniform Structured Syntax, Metaprogramming and Run-Time Compilation
Real world example where uniform syntax enables unthinkable solution
Apache Arrow Flight: A Framework for Fast Data Transport
This post introduces Arrow Flight, a framework for building high performance data services. We have been building Flight over the last 18 months and are looking for developers and users to get involved.
Introduction to LSM Trees: May the Logs Be with You
LSM Trees overview This post is a part of a newsletter that I run: “Scamming The Coding Interview“, which is geared towards helping people ACE their coding interviews. We send a coding qu…
A Failed Experiment with Python Type Annotations
I like Python, but wish it had static typing. The added safety would go a long way to improving quality and reducing development time. So today I tried to make use of type annotations and a static type-checker called mypy. After a few basic tests, I was excited. But my glee turned to disappointment rather […]
Build me a Lisp
Read on kirit.com
RaptorQ and performance optimization in Rust
I recently decided to learn more about Rust, and wrote a high performance RaptorQ (RFC6330) library. RaptorQ is a fountain code, and the core of the algorithm is a lot of matrix math over GF(256) – which translates into lots of XORs and reads from lookup tables. After getting the initial implementation working, I set…
Programming Sucks
E very friend I have with a job that involves picking up something heavier than a laptop more than twice a week eventually finds a way to slip something like this into conversation: “Bro, 1 [1] you don’t work hard. I just worked a 4700-hour week digging a tunnel under Mordor with a screwdriver.”