New
The latest blog posts to take off on Hacker News. 14,541 posts.
I Hacked Google App Engine: Anatomy of a Java Bytecode Exploit
Back in college, I was very interested in Java bytecode. When I got an internship at Google in 2013, I was skeptical of the security of the Java version of Google App Engine and got permission to spend the last week of my internship doing a mini red team exercise, trying to break into App Engine. This is the story of…
Six years of professional Clojure development
Over the last couple of years me and my colleagues here at doctronic have been busy creating and maintaining more than a dozen of individual software systems for our clients.
HTML Tips (2020)
20 HTML tips with examples: mailto and tel links, opening links in a new tab, lazy loading, a native accordion, range sliders, download links and more.
Threaded Code (1999)
What is threaded code? What is it good for? What are the differences between the various threading techniques? How do I implement threaded code portably? How fast are various threading techniques?
Branchless Coding in Go
So, I was recently inspired by a coworker’s design to pack what would have been JSON (JavaScript Object Notation) data into a bunch of bit fields in an array of 64-bit elements. Binary arithmetic, bit-packing, and high performance are fun for me, so I thought of some ways to improve it, for learning purposes. Then I…
Chiptunes on an ATtiny4 and the 3 Cent Micro
Ever since hearing about Rob Miles' Bitshift Variations in C Minor , a 4-voice polyphonic 16 minute piece of algorithmically generated music, I wanted to implement it in hardware. Getting it onto just any microcontroller seemed too easy , so I wanted it to run on the smallest µC I could find — the ATtiny4. A while…
Building video chat into my personal website using WebRTC, WebSockets, and Go
Recently I've become more and more interested in how WebRTC works, so a few weeks ago I decided to add a page to my website where I could set up peer-to-peer video chats. There are plenty of libraries and services out there to make this extremely easy, but knowing that WebRTC is now well supported natively across…
Programming in Z3 by learning to think like a compiler
Programming in logic can help you produce better optimized, more secure, bug-free code … if only you knew how to do it.
The art of solving problems with Monte Carlo simulations
Using the power of randomness to answer scientific questions.
My Favorite One Liners
My favorite Linux command-line one-liners: turn shell output into an image, find your biggest directories, list your most-used commands, serve files over HTTP.
Dave Herman’s contributions to Rust
I think the Rust language is a big success. When I think back on it I am in awe: so much had to go right to get where we are, and there were so many opportunities to go wrong. It took many tiny miracles for the Rust language to become what it has. Those miracles didn’t happen by accident though: each one was created…
Python vs Common Lisp, workflow and ecosystem (2019)
I learned Java and C at school, I learned Python by myself and it was a relief. After 8 years working and doing side projects in Python and JavaScript (mostly web dev, Django/Flask/AngularJS/Vuejs), I am not satisfied anymore by the overall experience so I’m making Common Lisp my language of choice.I am not here…
The compiler will optimize that away
A lot of programmers believe that compilers are magic black boxes in which you put your messy code in and get a nice optimized binary out. The hallway philosophers will often start a debate on which language features or compiler flags to use in order to capture the full power of the compiler’s magic. If you have ever…
Will Linux phones stay around this time?
While working through the old posts in order to adjust the front matter (and sometimes more), I thought: Will this last? Or will this go south soon, like it did around with previous projects again? A recent reddit post reinforced this line of thought, so I decided to write down my thoughts on the issue.
How many engineers does it take to make subscripting work?
The select part is actually fine. But for updates, especially for complex updates, it could be pretty verbose and far from being ergonomic. What would you say to this syntax instead?
Making Generative Art with Rust
Artists as technical experts and an interview with generative artist Alexis André
Implicit In-order Forests: Zooming a billion trace events at 60fps
In the course of trying to figure out how to smoothly zoom timelines of a billion trace events, I figured out a cool tree structure that I can’t find elsewhere online, which it turned out two of my friends have independently derived after not finding anything on their own searches. It’s a way of implementing an index…
Evolution of Random Number Generators
Prime powers have a kinda chaotic pattern in their bits. We bootstrap this idea into a good random number generator, recapitulating history.
Inheritance was invented as a performance hack
It's well known that inheritance was invented by Simula . The History of Programming Languages session on Simula tells us the motivations behind that invention. Let's take a look.
On UML
A little context: I got introduced to UML in around 2008, at an employer who had a site licence for Enterprise Architect. I was sent on a training course run by a company that no longer exists called Sun Microsystems: every day for a week I would get on a coach to Marble Arch, then...
Ideal divisors: when a division compiles down to just a multiplication
The division instruction is one of the most expensive instruction in your CPU. Thus optimizing compilers often compile divisions by known constants down to a multiplication followed by a shift. However, in some lucky cases, the compiler does not even need a shift. I call the corresponding divisors ideal. For the math…
Film simulations from scratch using Python
Disclaimer: The post is more about understanding LUTs and HaldCLUTs and writing methods from scratch to apply these LUTs to an image rather than coming up with CLUTs themselves from scratch. Outlin…
What’s wrong with Git? A conceptual design analysis (2016)
What’s wrong with Git? A conceptual design analysis De Rossi & Jackson Onward! 2013 We finished up last week talking about the how to find good concepts / abstractions in a software desig…
Why UML “Really” Died
There's this post going around the internet called Has UML died without anyone noticing?, In the piece, Ernesto Garbarino says that UML was killed by...