Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 1,357 posts.
2FA on the command line
OTP: One-Time Password TOTP: Time-based One-time Password algorithm 2FA: Two-factor authentication There is no shortage of OTP 2FA apps availiable for your phone, such as Google Authenticator or Duo Mobile. These apps take an initial secret code, and create a TOTP anytime you need a 2FA code for login.… …
OpenCV-Python Cheat Sheet: From Importing Images to Face Detection
What is OpenCV-Python? OpenCV is an open source computer vision and machine learning library. It has 2500+ optimized algorithms—a comprehensive set of both classic and state-of-the-art computer vision and machine learning algorithms. It has many interfaces, including Python, Java, C++,… Continue reading OpenCV-Python…
AgileFall – When Waterfall Sneaks Back into Agile
This article previously appeared in the Harvard Business Review AgileFall is an ironic term for program management where you try to be agile and lean, but you keep using waterfall development techn…
A Quick and Easy Guide to Tmux (2015)
Become a master of tmux in a few minutes
A Thought Experiment: Using the ECS Pattern Outside of Game Engines
It’s been about 6 months since I watched Catherine West’s excellent Using Rust for Game Development sent me down the Entity-Component-System (ECS) rabbit hole, and I thought I’d share some of my findings. I’ve been meaning to write about this for quite a while now but it took a while to put my thoughts into a cohesive…
Efficient GraphQL Queries in Ruby on Rails and Postgres
We discuss what N+1 queries are, how they are easily produced in GraphQL, and how to solve them using the graphql-batch gem along with a few custom batch loaders.
Introduction to TLA+ Model Checking in the Command Line
Otherwise known as “wait, you mean I can use the TLA toolbox from the command line?”
Catching use-after-move C++ bugs with Clang's consumed annotations
This post describes a compile-time technique for catching use-after-move bugs in modern C++. It’s currently used to prevent some mistakes in the Serenity Operating System.
Java JIT vs. Java AOT vs. Go for Small, Short-Lived Processes
Mario Macias' handcrafted blog
New WebKit Features in Safari 12.1
There are many improvements and new web platform features in WebKit that are now available with the release of Safari 12.1, included with macOS Mojave 10.14.4 and iOS 12.2.
Photon Micro GUI
Update: Renamed the library to avoid the name Clash with QNX Photon.Let me tell you a bit about Elements... From my previous post about Ascend, some folks noticed its existence and actually found the github repository. The repository is rather underwhelming, I thought to myself, devoid of any do
Moving the Linux desktop to another reality
Today, we are very excited to announce xrdesktop, a new open source project sponsored by Valve, enabling interaction with traditional Linux desktop environments, such as GNOME and KDE, in VR.
Unicode programming, with examples in C
Most programming languages evolved awkwardly during the transition from ASCII to 16-bit UCS-2 to full Unicode. They contain internationalization features that often aren’t portable or don’t suffice.
Racket-On-Chez Status: January 2019
posted by Matthew Flatt For background information about Racket on Chez Scheme (a.k.a. Racket CS), see the original announcement, last January's report, and the report at Scheme Workshop 2018. Racket on Chez Scheme is done in a useful sense. All...
Why I rewrote the mesh generator of Dust3D from Rust to C++
Dust3D is a free, open source low poly 3D modeling tool for video games and 3D printing. Features sketch-to-mesh, auto-rigging, procedural animation, and single-tool GLB/FBX export.
Idiomatic Monads in Rust
A pragmatic new design for high-level abstractions Monads (and, more generally, constructs known as “higher kinded types”) are a tool for high-level abstraction in programming languages1. Historically, there has been a lot of debate inside (and outside) the Rust community about whether monads would be a useful…
The Principles of Versioning in Go
This blog post is about how we added package versioning to Go, in the form of Go modules, and the reasons we made the choices we did. It is adapted and updated from a talk I gave at GopherCon Singapore in 2018 .
How Many Type Parameters Can a Java Method Have?
and this made me wonder how many type parameters a method could have. As far as I can tell, the Java Language specification says nothing about this question. 1
Minimum Viable Phoenix
Let’s walk through the process of building a dead simple Phoenix application from the ground up.
Write Junior Code
A plea to Haskellers everywhere.
Alan Kay and OO Programming
Dr. Alan Kay invented the term "OO Programming", but he states that modern OO programming isn't what he meant. What did he mean?