Folk wisdom on visual programming – Brought to you by Hacker News readers.
Programming language memory models – “Programming language memory models answer the question of what behaviors parallel programs can rely on to share memory between their threads.” Here’s a look at formalizing programming language memory models from Go language team lead Russ Cox.
Zip: How not to design a file format – The Zip file format is now 32 years old. You’d think being 32 years old the format would be well documented. Unfortunately it’s not.
Towards inserting one billion rows in SQLite under a minute – Recently, I ran into a situation where I needed a test database with lots of rows and needed it fast. So I did what any programmer would do: wrote a Python script to generate the DB. Unfortunately, it was slow. Really slow. So I did what any programmer would do: went down the rabbit hole of learning more about SQLite, Python, and eventually Rust… in my quest to get a 1B row database under a minute. This blog post is a summary of this fun and educational exercise.
How to Master Python Fast and Easy – A Complete Simple tutorial Based on the Official Documentation of Python.
Visualizing a codebase – How can we “fingerprint” a codebase to see its structure at a glance? Let’s explore ways to automatically visualize a GitHub repo, and how that could be useful.
How to write really slow Rust code – Renato Athaydes ported Peter Norvig’s Lisp solution to Lutz Prechelt’s phone encoding problem to Java, Rust, Julia, and Dart. Rust was sloooow—showing the lowest memory usage and the highest LOC (lines of code). Here’s how Renato fixed that.
Leaving a legacy – Document your code. Just do it.
Best practices for writing code comments – While there are many resources to help programmers write better code—such as books and static analyzers—there are few for writing better comments. While it’s easy to measure the quantity of comments in a program, it’s hard to measure the quality, and the two are not necessarily correlated. A bad comment is worse than no comment at all. Here are some rules to help you achieve a happy medium.
Zero based versioning – With software releases at an all-time high, the consensus has never been clearer: Major versions are over. So what does the past, present, and future of software versioning look like? Welcome to ZeroVer 0.0.1
There is no benefit for developers to create quality code – Quality is the responsibility of the culture of the team and the senior members of the development team. The customer and non-technical people won’t understand or value the quality steps in development, but you have to insist on it.
20 questions a software engineer should ask when joining a new team – Different software development teams do things quite differently. Even within a single company, many of the variables can vary from team to team. As a software engineer, it is usually very exciting to start working with new people and on new software. On a personal note, I recently have started with a new team and on new (to me) software. Because this isn’t a regular or frequent occurrence, I took the opportunity to really think about things that I needed to learn in the short term.
How to Setup Vault in Kubernetes- Beginners Tutorial – This article aims to explain each of the Kubernetes vault components and step-by-step guides to set up a Vault server in Kubernetes. Towards the end of the article, we will also discuss how an application can make use of the vault with a simple demo.
I processed 558K transactions on AWS Lambda in 5 minutes – How Mohamed Latfalla did it. And why you might want to do it too (or not).
5 GitHub Projects – to make you a better DevOps Engineer.
A future for SQL on the web – Lots of interesting software and systems observations in this post. Things now possible with WASMm the perils of abstractions, performance profiling amongst other topics.
An interesting tale of debugging a DNS round robin networking issue that nicely points to the complexities of real world client/server applications.
A post on SLOs and error budgets, the difference between SLOs and SLAs and how they can be used to improve systems reliability.
HTTP/3 From A To Z: Core Concepts – After almost five years in development, the new HTTP/3 protocol is nearing its final form. Earlier iterations were already available as an experimental feature, but you can expect the availability and use of HTTP/3 proper to ramp up over in 2021. So what exactly is HTTP/3? Why was it needed so soon after HTTP/2? How can or should you use it? And especially, how does it improve web performance? Let’s find out.
DevOps 101 : Introduction to Ansible – Ansible is an open-source IT Configuration Management, Deployment and Orchestration tool. It aims to improve the scalability, consistency, and reliability of your IT environment. It is simple to use yet powerful enough to automate complex multi-tier IT application environments.
Donald Sherman orders a pizza using a talking computer, Dec. 4, 1974.
700,000 lines of code, 20 years, and one developer: How Dwarf Fortress is built – Dwarf Fortress is one of those oddball passion projects that’s broken into Internet consciousness. It’s a free game where you play either an adventurer or a fortress full of dwarves in a randomly generated fantasy world. The simulation runs deep, with new games creating multiple civilizations with histories, mythologies, and artifacts. I reached out to him to see how he’s managed a single, growing codebase over 15+ years, the perils of pathing, and debugging dead cats. Our conversation below has been edited for clarity.
Solving the Prototype Puzzle – Curious what you can expect from a product prototype. Here is how we suggest getting the most out of a prototyping effort.