Switching from Common Lisp to Julia
I have written this post for developers in the Common Lisp community who asked why I am switching to Julia. It may only be relevant for the small set of people who use Common Lisp for scientific computing.
The Door Problem (2014)
“So what does a game designer do? Are you an artist? Do you design characters and write the story? Or no, wait, you’re a programmer?”
Myspace lets you hijack any account just by knowing the person’s birthday
In April this year whilst roaming the plains of the wild world web, I stumbled across an old Myspace account of mine. Attempting to gain access and delete the account I discovered a business process so flawed it deserves its own place in history. I wrote to Myspace describing my
Equifax or Equiphish?
More than a week after it said most people would be eligible to enroll in a free year of its TrustedID identity theft monitoring service, big three consumer credit bureau Equifax has begun sending out email notifications to people who were able to take the company up on its offer. But in yet another security stumble…
Creating an Autonomous System for Fun and Profit
The thoughts and projects of an engineer who likes to convert solder, firmware, and wire into all sorts of different forms of entertainment.
Look before you paste from a website to terminal
All about making life easier and efficient with Linux
Gaussian Distributions Are Soap Bubbles
This post is just a quick note on some of the pitfalls we encounter when dealing with high-dimensional problems, even when working with something as simple as a Gaussian distribution. Last week I wrote about mixup [https://www.inference.vc/mixup-data-dependent-data-augmentation/] a new data-augmentation...
Weaponizing PostScript
In a recent pentesting assignment, there was a service which converted uploaded files to PDF/A format, to make them safer for handling. Afte...
How much traffic do I get from North Korea anyway?
While the president of the United States and the leader of North Korea were/are currently beefing on Twitter about who should destroy the world first, North Korea was also causing me some personal frustration on data quality.
The Story of a Rust Bug
A while ago, I built a system-tray application in Rust to notify me of new e-mail called buzz. It was working fine, but every now and again, it would fail to connect to the mail server on boot if it started before my network connection was up. Sounds easy enough to fix, so I just added a loop around my connect (even…
Cracking Encrypted PDFs
I performed a brute-force attack on the password of an encrypted PDF and a brute-force attack on the key of (another) encrypted PDF, both PDFs are part of a challenge published by John August. The …
Why undefined behavior may call a never-called function
My twitter feed has recently been filled with discussions about the following program #include <cstdlib> typedef int (*Function)(); s...
“There Is No Reason for Any Individual to Have a Computer in Their Home”
Question for Quote Investigator: I was looking through a collection of woefully inaccurate pronouncements delivered by experts, and I saw a remark attributed to Ken Olsen, a prominent computer industry pioneer who founded the Digital Equipment Corporation (DEC) which built minicomputers. DEC was perfectly positioned…
Web Development in Go
You should write your next web server in Go. Yes, you! Compared with Ruby, PHP, Python, or Javascript, you're going to get great memory and latency performance, and libraries that do what you expect .
What is a Source Map
These days web assets such as JS and CSS aren’t simple text files. Instead, they’re typically minified or come from a complex build process involving compili...
On Norbert Blum’s claimed proof that P does not equal NP
Edited 8/16 to correct attributions to Alon and Boppana and to Tardos, thanks to an anonymous commenter for the correction Yesterday, Norbert Blum posted a preprint with a claimed proof that $latex…
Java Reflection, 1000x Faster
A few weeks ago I got to make some of my code 1000 times faster, without changing the underlying complexity! As the title implies, this involved making Java reflection calls faster.
Compiling a Mac OS 8 Application on MacOS Sierra
A light hearted look back at my time programming in the 1990s as I try to get an old Minesweeper implementation of mine from 1999, written in C++ using PowerPlant for Mac OS 8, compiling in Xcode 8 and running on macOS Sierra.
Building and using a 29-year-old compiler on a modern system
In this post I’ll share my experience of building and using one of the earliest versions of the GNU C Compiler — GCC 1.27 (released in 1988) on a modern system.
Attack of the week: DUHK
Before we get started, fair warning: this is going to be a post about a fairly absurd (but non-trivial!) attack on cryptographic systems. But that’s ok, because it’s based on a fairly a…