Best Practices for Testing in Java (2019)
Modern best practices for unit tests and integration tests in Java and in general
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 4,417 posts.
Modern best practices for unit tests and integration tests in Java and in general
Efficient software development benefits from local development, it enables faster iteration, better debugging and ensures consistency between local and production environments.
Updated version If you haven’t read My Comparison Between Anki and SuperMemo, please do so. It’s not a prerequisite but if you do, you will understand the following content better.
The demise of Authy desktop has brought about a number of changes, probably the one of which I most appreciate is a mobile app which lets me edit codes: with 2FAS I can edit labels on codes, and I’...
tl;dr: Use an old-fashioned USB 2.0 flash drive, format it FAT32, download the firmware, make sure it's named correctly, and use the motherboard's 'BIOS Flashback' option after powering off the computer. This past week, I devoted far too much time to the task of updating my brand new motherboard's BIOS. It started…
Confusing corners of the unix utilities
A blog about software craft and quality
We do this software development thing. I don’t have to tell you at times, it’s a very trying process. You shouldn’t have to deal with tools that get in your way or make your experience any less pleasurable. Okay. So you got the fancy chair. How about
An overview of my work on optimizing phone keyboard layouts for Swype and T9. There's some interesting history here as well as a novel simulation-based approach to keyboard optimization.
Vannevar Bush's 1945 essay "As We May Think" prefigured the invention of hypertext and the Internet. He imagined a "memex", a desk equipped with a microfilm apparatus, "in which an individual...
Android is one of the most popular operating systems in the world. I is probably also one of the most versatile, used on PCs, phones, cars, autonomous devices such as drones, fridges, and many more.
Yes, I do—and probably more than I should admit. But a few things led to this situation. For one, I’d gotten too used to relying on Touch ID. As a result, if my muscle memory failed me, I was stuck. On top of that, I kept entering my office Active Directory (AD) password instead of my Mac password—again, muscle memory…
Custom GPTs by OpenAI are practically free new hires. But as as new hires go, most are not very useful.
Initially I wanted to write articles on those two topics separately (mocking time and testing event loops), but during the process I realized that the things I want to talk about are too interrelated: when I need to mock time, it's usually to test some event loop with it, and when I test event loops, typically mocked…
"I love C". "I enjoy writing in C". "I don't feel well when I have passed a day without coding a line of C". "My conversation with my wife simply doesn't flow without the C language". "I want to write everything in C, even the everyday scripting, but due to the steps required for writing make files and other things, I…
The package version selection problem is to find a set of dependencies that can be used to build a top-level package P that is complete (all dependencies satisfied) and compatible (no two incompatible packages are selected). There may be no such set, because of the diamond dependency problem: perhaps A needs B and C…
An article series where I show you how to write a fully functional Python debugger.
Posted to HN. Comments and discussion highly encouraged. Introduction This will be a short example-based guide to (a) awk (b) gnuplot and (c) using them in a script. I needed to graph some data based on the output of a command run a couple times. So what better way to solve that five minute task than to spend an hour…
I love linters. A linter is a program that looks for problems in code without running it. There is something gratifying about running a linter on a codebase and seeing a big list of warnings and errors. Sometimes it can even be fun to fix them!
I am a Vim user. And a Vim fan.I was fiddling around for some time, you know, just knowing the basics, because it is convenient to do small changes on servers without having to worry about installi…
I’ve recently started a new job as a documentation engineer. While my work is largely the same as that of a technical writer, …
The very same week we signed our first ever angel investor for Plastic SCM, in early summer of 2005, Linus Torvalds announced Git. I had spent more than a year pitching investors to build a new version control, and suddenly the creator of Linux was building one himself. That week I understood the road ahead was going…
Alternative configuration formats solve superficial problems. Configuration languages solve the deeper problem: the need for abstraction.
Confession time: I don't fully understand how terminals, shells and SSH really work (and my guess is you don't either). And I don't mean the cryptography behind SSH. I mean how SSH and the terminal — and the shell for that matter — interact with one another.