/usr/bin/env -S uv run
This is a really neat pattern. Start your Python script like this: #!/usr/bin/env -S uv run # /// script # requires-python = ">=3.12" # dependencies = [ # "flask==3.*", # …
Topics /
The most popular blog posts about software engineering on Hacker News. 1,116 posts.
This is a really neat pattern. Start your Python script like this: #!/usr/bin/env -S uv run # /// script # requires-python = ">=3.12" # dependencies = [ # "flask==3.*", # …
So I was working on improving a DOS emulator, when I found that something seemingly trivial wasn’t working right when COMMAND.COM was asked to do the following:
Collection of side projects, conference talks and blog posts experimenting with frontend technologies and human-computer interaction
This post is dedicated to the memory of Niklaus Wirth, a computing pioneer who passed away January 1st. In 1995 he wrote an influential article called “A Plea for Lean Software”, and in what follows, I try to make the same case nearly 30 years later, updated for today’s computing horrors. The really short version: the…
You can come to McDonalds and order a salad, but you won't. Same with notebooks, you can write NASA-production-grade software in a notebook, but most likely you won't. Notebooks make you lazy, and encourage bad practices.
When writing code, you can call any function as long as it’s public, and similarly, you can access any object’s public properties or methods. Usually, access to code is all or none – a piece of code can be either public or private. Lately, I’ve been thinking about ways to implement more fine-grained access controls…
Crazy Mac lady. Mac author & developer. Lover of Apple computers and devices. Swift & SwiftUI enthusiast. Unofficial Mac app dev evangelist
tl;dr: I made ViHN to read Hacker News without having to move my hands away from the keyboard. It’s freely available on Firefox and Chrome. This is about yet another Hacker News extension. But other people with my obsession for killing the mouse might enjoy it. Most of the content of this article is just […]
A look ahead at some ongoing projects in PostgreSQL in 2024 and beyond
I do a lot of electronics projects in my spare time, and I tend to try to make reusable parts to save myself effort in the future. Because I have to order ingredients in certain quantities, I often wind up with more than I need for my project.
Before I got into reverse engineering, executables always seemed like black magic to me. I always wondered how stuff worked under the hood, and how binary code is represented inside .exe files, and how hard it is to modify this ‘compiled code’ without access to the original source code.
Let me set the right expectations first. This bug I found is actually not that complicated, it's very straightforward once you see what's going on. But I still think the process it took me to uncover this bug could be interesting. It's also kind of interesting that a simple bug stayed undiscovered for so long. I will…
Understanding the real world is not always easy. A Python simulation can help. And let's find ways of making it efficient, too.
This article is about the Y combinator, a fixed-point combinator that provides a way of using recursion in scenarios and programming languages where symbols are not available. The concept of the Y combinator itself is closely related to lambda calculus (λ-calculus) and functional programming languages. More…
In a previous post, I’ve shown how to use the rayon framework in Rust to automatically parallelize a loop computation across multiple CPU cores.Disappointingly, my benchmarks showed that this only provided a 2x speedup for my workload, on a computer with 8 CPU threads.Worse, the total “user” and “system” times…
When doing systems programming we often need to wait for something to happen. Common examples might be waiting for some data to come through a socket or waiting on a lock. We also often want to wait on any of several conditions to become true. A web server might be handling many sockets at once, waiting for any number…
I recently learned Spotify provides downloads for users’ streaming history. For me, this is over 10 years worth of data, so at the very least it seemed like a good nostalgia trip. This post covers some of my analysis of my personal export, and hopefully is a good starting place if you’re interested in exploring your…
To help crime analysts get started with python, I am early releasing Data Science for Crime Analysis with Python, an introductory book for analysts.
Author: Eduardo Ochs eduardoochs@gmail.com https://anggtwu.net/ https://www.lua.org/gems/ https://www.lua.org/gems/selected.html Version: 2008feb17 Listings: http://anggtwu.net/miniforth/miniforth5.lua http://anggtwu.net/miniforth/miniforth5.out Preprint version: https://anggtwu.net/miniforth/miniforth-article.pdf
In distributed systems, for instance when scaling out some workload to multiple compute nodes, it is a common requirement to select a leader for performing a given task: only one of the nodes should …
Resolving PS2SDK Soft Reset Issues
I've been thinking a lot about personal data lately: where it's stored, how to extract it, and what to do with it. Here's where I landed.
MIT student who enjoys performance engineering, compilers, and creating unconventional code
Sometimes, programming projects are too easy and boring. Sometimes, they're too hard, never ending or producing subpar results.
I did a livestream where I talked about Object Storage. The how and why. The Bad Old Days. And also the neat and interesting stuff just beyond the basics. I figured I'd cover that in text as well.
Inspiration of how we can use PDF as an attack vector and perform multiple attacks with huge subsequences to the victim.
OCaml's let … = … in … is very confusing. When nested, you can't tell how it's nested.