New
The latest blog posts to take off on Hacker News. 21,822 posts.
JSON vs. XML
Today's guest is Douglas Crockford. He's sharing the story of JSON, his discovery of JavaScript's good parts, and his approach to finding a simple way to build software. Also, his battles against XML, against complexity, his battles to say that there's a better way to build software. This is foundational stuff for the…
C Strings and my slow descent to madness
I’ve been on a C kick recently as I learn the intricacies involved in low level programming. As a Data Scientist/Python Programmer I work with strings all the time. People say that handling strings in C range anywhere from tricky to downright awful. I was curious so I decided to see how deep the rabbit hole went.
Simply explained: How does GPT work?
By now, you have probably heard of OpenAI’s ChatGPT, or any of the alternatives GPT-3, GPT-4, Microsoft’s Bing Chat, Facebook’s LLaMa or even Google’s Bard. They are artificial intelligence programs that can participate in a conversation. Impressively smart, they can easily be mistaken for humans, and are skilled in a…
MutexProtected: A C++ Pattern for Easier Concurrency
In this post, we will discuss the challenges of programming with locks and how the C++ language offers some useful tools to make it easier. We will start with an example in C and then use C++ to improve upon it in steps. The example APIs are based on real-life APIs from the SerenityOS kernel.
The real “must have” tools for programming
Forget programs. The most important productivity tool for programming is your mind. And the next best set of software development tools are ones that take care of you. It isn’t about Git. Or Docker. Or testing frameworks. These are all useful tools. I use them daily. But they are not the most important software…
Calling Purgatory from Heaven: Binding to Rust in Haskell
Calling hell from heaven and heaven from hell is a classic paper from the previous century, introducing the Haskell foreign function interface (FFI). It describes the facilities that Haskell offers for calling functions written in C (and vice versa). In this blog post, we will consider how to call functions written in…
PWAs in App Stores
Progressive Web Apps can be submitted to app stores like the Android Play Store or the Microsoft Store and more.
New tool from curl creator – trurl – for URL parsing and manipulation
trurl is a tool in a similar spirit of tr but for URLs. Here, tr stands for translate or transpose. trurl is a small command line tool that parses and manipulates URLs, designed to help shell script authors everywhere. URLs are tricky to parse and there are numerous security problems in software because of this. ……
Make your CLI demos a breeze with zero stress and zero mistakes
<p> Running live demos can be stressful. You know what you want to say and show. You prepare the CLI commands you want to run to best showcase what you...
Mindset shifts for functional programming (with Clojure)
For more experienced functional programmers, most of this post will seem introductory, but I introduce some more advanced stuff near the end. Functional Programming over Canadian Programming Lately, I've been thinking about this Functional Programming journey I've been on. I thought it started when I was twenty, but
How to be a -10x Engineer
To become a -10x engineer, simply waste 400 engineering hours per week. Combine the following strategies:
Even if you can't write assembly, you can read disassembly
This is a very concise introduction to x86 disassembly. It shows that you probably have all the skills to start reading disassembly right now even if you thought it was too complicated for you. It really isn't, see it for yourself.
How SerenityOS declares ssize_t
This post explores one of my favorite hacks in SerenityOS. I don’t recommend doing this in your codebase, but it has worked for us so far. :^)
How HyperCard got its color back
Uli’s blog on programming, game development, pop culture and other boring things.
Introducing Agents in Haystack: Make LLMs resolve complex tasks
LLMs can now make use of the right tools to resolve complex queries and tasks
C++17 creates a practical use of the backward array index operator
Possibly more than just a curiosity.
Django 4.2 Released
Posted by Mariusz Felisiak on April 3, 2023
Parquet: An efficient, binary file format for table data
Quicker, but also more convenient
Saying Goodbye to GitHub
I've been using GitHub since I was eleven years old. To be fair, I didn't really understand git at the time, but I was able to fumble my way through it...
A Reply to Josef Průša
On the state of open source 3D printing in 2023
Optimizing Open Addressing
Your default hash table should be open-addressed, using Robin Hood linear probing with backward-shift deletion. When prioritizing deterministic performance over memory efficiency, two-way chaining is also a good choice.
XUL Layout is gone
So this week I landeda fewpatches thatcompletely removed XUL layout from the Firefox codebase.
Moving from Rust to C++
Note to readers: this is an April Fools post, intended to satirize bad arguments made against Rust. I have mixed feelings about it now, as I think people who understood the context appreciated the humor, but some people were confused. That’s partly because it’s written in a very persuasive style, and I mixed in some…
The secret life of fsync
What kind of durability guarantees fsync system call provides in Linux? Let's find out.
Clocks and Causality – Ordering Events in Distributed Systems (2022)
In distributed systems, logical clocks play a key role in the ordering of system events. What are the various logical clock designs, and how do they help with event ordering? This article answers these questions.
Postgres as a graph database
You don't need Neo4j for graph data. Walking through nodes, edges, and recursive traversals in plain Postgres, with working SQL.
Nim 2.0.0 RC2
The second release candidate (RC2) for Nim version 2.0 is ready for testing.