New
The latest blog posts to take off on Hacker News. 1,517 posts.
Measuring memory usage in Python: it’s tricky
Measuring your Python program’s memory usage is not as straightforward as you might think. Learn two techniques, and the tradeoffs between them.
Python Best Practices for a New Project in 2021
Intro The goal of this tutorial is to describe Python development ecosystem. It can be helpful for someone coming to Python from another programming language. They say that you should stick to algorithms and data structures, that you can learn a new language in just a couple of weeks, that it’s just a new syntax. I…
Write a time-series database engine from scratch
It covers how to make a time-series database engine from scratch
Dynamic Linking Best Practices
In this article we’ll learn how to build shared libraries and install them properly on several platforms. For guidance, we’ll examine the goals and history of dynamic linking on UNIX-based operating systems.
When static makes your C code 10 times faster
Addendum : Many Hacker News commenters correctly point out that the right way to indicate to the compiler that a value does not change is const . This post is not about C best practices, but just about how one can easily get to the bottom of this kind of surprising behavior by looking at the compiler output. This…
Stop mocking your system
Yes, mocking has a mostly negative meaning! Only this - to imitate (someone or something) closely - doesn't feel negative.
Let's build a simple interpreter for APL, part 2 (2020)
Today is the day! Today is the day we take our APL programs and interpret them, so that something like ÷ 1 2 3 -⍨ 1.1 2.2 3.3 can output 10 5 3.33333333.
Commit often, perfect later, publish once: Git best practices (2013)
Best Practices vary from environment to environment, and there is no One True Answer, but still, this represents a consensus from #git and in some cases helps you frame the discussion for the generation of your very own best practices.
Where are we going from here? Software engineering needs formal methods
The job of a software engineer is not to produce code, but to solve problems; we just happen to solve most of those problems by producing code. Ultimately, producing code is hard, and we need help. That's why GitHub's Copilot is exciting, but it's far from ideal, and it's the tip of the iceberg of what's been done and…
The Dawn of Formalized Mathematics
Here are the slides of my talk “The dawn of formalized mathematics” from the 8th European Congress of Mathematics , which is taking place online and in Protorož, Slovenia, from June 20 to 26, 2021:
Things I wish Git had: Commit groups
Everyone 1 and their dog 2 loves Git. I know I do. It works, it’s efficient, it has a brilliant data model, and it sports every feature under the sun . In 13 years of using it, I’ve never found myself needing a feature it didn’t have. Until recently.
In JS functions, the ‘last’ return wins
An edge case has convinced me it's the 'last' return that always wins…
Ways to ship software
An open letter from a former Facebook and VMware engineering executive on how startups can best structure their release processes.
The Haskell Phrasebook (2019)
The Haskell Phrasebook is a free quick-start Haskell guide comprised of a sequence of small annotated programs.
Folk wisdom on visual programming
I’m a fairly frequent Hacker News lurker, especially when I have some other important task that I’m avoiding. I normally head to the Active page (lots of comments, good for procrastinat…
REPL vs CLI: IDE wars
An unfair heavily biased apples-to-oranges comparison… unless?
Don't encode POST bodies like GitHub Copilot, use URLSearchParams
Don't do it like GitHub Copilot!
Treat Kubernetes clusters as cattle, not pets
ZITADEL is the identity infrastructure platform that is built for developers and works for all users and applications.
Lessons from Building a Static Site Generator (2020)
The backstory behind Elder.js and the thinking behind the 5 biggest design decisions.
Book Review: A Philosophy of Software Design (2020)
View this page on my new site This review is largely in response to the article "It's probably time to stop recommending Clean Code", and the ensuing Redd...
Data notation in Clojure
Homoiconicity (code as a data structure) is one of the pillars of the Clojure language. It gives the extensibility and flexibility to the language.
Ignoring bulk change commits with Git blame (2019)
A long-standing objection to making bulk changes to code using automated tools (e.g. to conform to a given code style) is that it clutters the output of git blame. With git 2.23, this does not have to be the case anymore! In this post I will start by explaining the value of git blame and […]
I loved jQuery, and still do (2019)
In defense of one of the most important JavaScript libraries ever
Learn by reading code: Python standard library design decisions explained
On your Python learning journey, you may have heard that a great way to get better is to read code written by other people. That's true, but finding good code to study is not easy, mostly because the design philosophy and the reasoning behind the code are rarely documented. The Python standard library is special in…