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.
The latest blog posts to take off on Hacker News. 14,541 posts.
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.
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.
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…
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:
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.
An edge case has convinced me it's the 'last' return that always wins…
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…
An unfair heavily biased apples-to-oranges comparison… unless?
Don't do it like GitHub Copilot!
The backstory behind Elder.js and the thinking behind the 5 biggest design decisions.
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...
Homoiconicity (code as a data structure) is one of the pillars of the Clojure language. It gives the extensibility and flexibility to the language.
In defense of one of the most important JavaScript libraries ever
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…
Picture this: Toward the end of the development cycle, your game crawls, but you don’t see any obvious hotspots in the profiler. The culprit? Random memory access patterns and constant cache misses. In an attempt to improve performance, you try to parallelize parts of the code, but it takes heroic efforts, and, in the…
Since I first started working on my website at age fourteen, the site has gone through many revisions, and hopefully changed for the better. This blog was originally dynamically served using a Python/Flask backend, having a custom login system and post “editor” (just an input box). One of the more strange things about…
Mistral Contrastin's thought bubble, blog, and personal revelations.
Writing your own TCP/IP stack may seem like a daunting task. Indeed, TCP has accumulated many specifications over its lifetime of more than thirty years. The core specification, however, is seemingly compact[^tcp-roadmap] - the important parts being TCP header parsing, the state machine, congestion control and…
The biggest sea change in software development since the OO revolution is knocking at the door, and its name is Concurrency.
One person's entry-level contribution is another person's difficult bugfix or backport.
Title is literally true. This may not be the best place to learn about these concepts for the first time, because I'm going to focus on knocking down the misconceptions about them.
I’ve seen a lot of poorly implemented spinlocks floating around the internet.
Part 1 of this series about my toy renderer covers the most fundamental design decisions. Over the years, I have written many renderers and for a long time their complexity kept growing. This time, I took the opposite route. I wanted to maximize the fraction of code that implements crucial functionality rather than…
I started a Twitter conversation last week about API endpoints that stream large amounts of data as an alternative to APIs that return 100 results at a time and require …
Modelling hierarchical/team/categorical/tag data with arbitrary depths.
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
At the least, AI-generated code is much more readable than the average human’s.
Some of my personal thoughts on how we design open source projects