The Repeated Deaths of OOP (2015)
Object Oriented Programming died several times already. This time might be the last.
The latest blog posts to take off on Hacker News. 21,828 posts.
Object Oriented Programming died several times already. This time might be the last.
personal web-log
When learning a new programming language, I like having a well defined yet non-trivial problem to solve. Conway’s Game of Life (GoL) fits this definition. It has enough depth to uncover various tradeoffs. So naturally, when I picked up Chisel hardware description language (HDL), I wanted to build Game of Life in FPGA…
Zig is a general-purpose programming language and toolchain for maintaining robust , optimal , and reusable software.
The PyCon US 2021 recordings are available on our YouTube channel . Be sure to subscribe to our channel for notifications of new content. T...
POKEGB: A gameboy emulator that only plays Pokémon Blue, in 62 lines of c++. source: https://t.co/AGt7RUTr9H pic.twitter.com/o0BUUmzNOt
A case study of how Elixir is being used at Mozilla.
In this series, we will explore how to write a compiler for a small subset of C to LLVM in Haskell. Our language, Micro C, is basically a small subset of real C. We'll have basic numeric types, a real bool type, pointers, and structs. At the end of the series, we'll have a beautiful executable, mcc (Micro C…
I my previous blog post, I documented how one might proceed to compute the number of digits of an integer quickly. E.g., given the integer 999, you want 3 but given the integer 1000, you want 4. It is effectively the integer logarithm in base 10. On computers, you can quickly compute the integer logarithm … Continue…
Native Go fuzzing is now ready for beta testing on tip.
At Red Planet Labs we’ve been quietly developing a new kind of developer tool for many years. Our tool reduces the cost of building large-scale end-to-end applications by multiple orders of magnitu…
Although the main interface between applications and a Vitess database is through the MySQL protocol, Vitess is a large and complex distributed system, and all the communication between the different services in a Vitess cluster is performed through GRPC .
Artwork courtesy of the Jenkins project. At Slack we manage a sophisticated Jenkins infrastructure to continuously build and test our mobile apps before release. We have hundreds of jobs running in a variety of different environments. One day something very odd happened — our Jenkins UI stopped working although the…
Learn the theory behind how to perform sensor and camera calibration.
I got the chance to investigate an interesting bug in SerenityOS this week. It was related to the decoding of JPG images in the operating system. For some reason, when a JPG image is viewed, it comes out like this: Lenna, showing up with incorrect colors. Weird, huh? Also seems like a simple confusion of RGB vs. BGR…
In the late 1990s, the Windows Shell and Internet Explorer teams introduced a bunch of brilliant and intricate designs that allowed extension of the shell and the browser to handle scenarios beyond…
JavaScript in the browser runs many times faster than it did two decades ago. And that happened because the browser vendors spent that time working on intensive performance optimizations.
Here's a few patterns I've picked up based on using Docker since 2014. I've extracted these from doing a bunch of freelance work.
How to decide what to use for autogenerated primary keys: UUID, serial or identity column? Recommendations are given!
How to put a price on the limits of knowledge
After showing an impressive demo last year and unleashing recently with the UE5 preview, Nanite is all the rage these days. I just had to go in and have some fun trying to figure it out and explain…
Twenty years ago today, the first email on the postgis users mailing list (at that time hosted on yahoogroups.com) was sent, announcing the first numbered release of PostGIS. The early history of PostGIS was tightly bound to a consulting company I had started a few years prior, Refractions Research. My first contracts…
You can mount code from your development machine into a container and save yourself tedious waiting times during development.
Edsger W. Dijkstra? Alan Perlis? Jacques Arsac? George Johnson? Donald Knuth? Matthew Dennis Haines? Anonymous?
For sqlite-utils issue 250 I needed to locate some test CSV files that start with a UTF-8 BOM.
In this article, the author explores why JRuby, an alternative Ruby interpreter that runs on the Java Virtual Machine (JVM), is slower than other R...
Hello friends! :^) Let me tell you a story…
UPDATED July 2023: How to use EXPLAIN ANALYZE in PostgreSQL, learn tools to visualize the output. See query execution time and row count.