Some favourite/interesting links for reference, assuming I remember to save the link. The presence of a link in this list is not necessarily an endorsement, it just means I found something interesting about it.
- Simple Made Easy by Rich Hickey
Simplicity and easy-of-use are not the same thing, familiarity has a part to play. Added
- Growing a Language by Guy Steele
- The Future of Programming by Bob Martin
- Beyond Features: Rethinking Agile Planning and Tracking by Dan North
Features are not the point of delivery, maybe there are other kinds of work that we could recognise, schedule and track as first class citizens. Discusses how we model ourselves on the construction industry today, and how perhaps software development could be closer to surgery. Added
- CPU Caches and Why You Care by Scott Meyers
A great talk on the performance impact of CPU caches, memory access patterns and concurrency. Added
- Hammock Driven Development by Rick Hickey
Your most powerful problem solver is your subconscious mind. Added
- The Unreasonable Effectiveness of Dynamic Typing for Practical Programs by Robert Smallshire types
Looks at the cost/benefit trade-off of static and dynamic type systems. Added
- Apple did not invent emoji by Eevee
- A Story about Magic funny
- 500 Miles funny
- The half-life of code & the ship of Theseus by Erik Bernhardsson
How long before half the code in a project has been replaced? Short half-life: willingness to discard cruft or poor design? Long half-life: bloated or correct and flexible design? Added
- Stroustrup's Rule and Layering Over Time by Dave Herman
Discussing Rust's error propagation and Stroustrup's Rule:
- For new features, people insist on LOUD explicit syntax.
- For established features, people want terse notation.
- The Dark Path and the follow-up Types and Tests by Robert C. Martin (Uncle Bob) types
Talks about a recent static typing trend in new languages (Swift and Kotlin) and the effect on expressiveness. Follow-up article elaborates on how types are not tests and the existence of a good balance point for type safety.
- Why Racket? Why Lisp?
A somewhat successful attempt to explain the benefits of Lisp to non-lisp programmers in more concrete terms.
- All File Systems are Not Created Equal: On the Complexity of Crafting Crash Consistent Applications
Working with file systems is difficult! - "essential reading if you’re building (or operating!) anything that you expect to be able to recover from crashes and that interacts with a file system". Take a look to see how poorly your database of choice handled crashes (though sqlite continues to impress!).
- Acing the technical interview by Kyle Kingsbury (Aphyr) funny
- Enough with the microservices by Adam Drake
- How my car insurance exposed my position by Andrea Scarpino security
more fun with the 'internet of things'
- nomx: The world's most secure communications protocol by Scott Helme funny security
- Most of the web really sucks if you have a slow connection by Dan Luu
- This is not the DRY you are looking for
The original DRY principle and our misinterpretation of it. Basically, beware early decomposition and abstraction (as you'd expect - though I hadn't thought about the developer obsession with DRY in relation to this). Added
- to errno or to error C
Different approaches to error handling in C
- How to Write Portable C Without Complicating Your Build C
Some good advice on writing portable C programs from Chris Wellons
- readscheme.org scheme
Links to various papers on the Scheme programming language. Added
- The Animated Guide to Paredit emacs
A tutorial-like guide to implementing a hobby operating system in Rust. Added.
- Lists and Lists by Andrew Plotkin (1996)
Interactive fiction which teaches you Scheme using an embedded interpreter inside Z-machine.
A board game invented by a computer program (and it looks fun), added