Shellcode Injection
Injecting shellcode by overflowing the buffer - Demonstration
400 days of Go
It's been 418 days since my first Github commit of Go code. In that time I've written a Syslog-to-Kafka producer, a Raft-based distributed SQLite database, a near real-time log search system, and become a core developer of InfluxDB. So if there is one word to summarize Go, it's productive. I haven't had the same burst…
Stop Misquoting Donald Knuth
DISCLAIMER: The following are my own personal opinions and are not shared, sanctioned or endorsed by anybody in particular, especially my employer. Any criticisms expressed herein are of a general nature and are neither inspired by nor directed at any person, entity, or product in particular. Links to other online…
Let’s Build a Web Server. Part 1
Out for a walk one day, a woman came across a construction site and saw three men working. She asked the first man, “What are you doing?” Annoyed by the question, the first man barked, “Can’t you see that I’m laying bricks?” Not satisfied with the answer, she …
Master Concurrent Processes with core.async
One day, while you are walking down the street, you will be surprised, intrigued, and a little disgusted to discover a hot dog vending machine. Your scalp tingling with guilty curiosity, you won’t be able to help yourself from pulling out three dollars and seeing if this contraption actually works. After accepting…
LLVM 3.6 Release Notes
This document contains the release notes for the LLVM Compiler Infrastructure, release 3.6. Here we describe the status of LLVM, including major improvements from the previous release, improvements in various subprojects of LLVM, and some of the current users of the code. All LLVM releases may be downloaded from the…
Debugging Lisp, Part 5
This post is for all of the miscellaneous features that arent large enough to get their own individual posts. If you havent read all of them, here are the links to the previous posts on recompilation, inspection, class redefinition, and restarts. One somewhat obscure tool for debugging is SBCLs trace. SBCLs trace goes…
The compiler flag that time forgot
I’m often surprised how long software can keep trying to use compatibility features ages after their best-by date. Now that GCC 4.8 builds on Tige...
Redundancy vs. dependencies: which is worse? (2008)
I think that all other considerations are of the extrinsic real-world kind – domain modeling, usability, schedules, platforms, etc. I also think that I can show how any "good" programming practice is mainly aimed at minimizing redundancy, dependencies, or both. I even think that you can tell a "good" programmer from a…
The Groovy project is looking for a new home
Pivotal ends sponsorship for Groovy & Grails; these popular JVM projects now seek new funding and partners to continue their vital development.
UUIDs generally do not meet security requirements
Some time ago, I was doing a web application penetration test, and noticed that the authentication tokens were UUIDs. This I knew was risky, and in fact if you read the UUID rfc, section 6 of it wa…
I Wrote a Book to Teach the Wolfram Language
Take a walk with Stephen Wolfram through the topics in his new book that introduces non-programmers to the Wolfram Language and computational thinking.
IntelliJ IDEA 15 Released, Adds Kotlin to the Family of Supported JVM Languages
Great news from the JetBrains team: today we're announcing the release of IntelliJ IDEA 15!As always, the new IntelliJ IDEA release brings a rich set of new features, better user interface, more bui
Explore the ownership system in Rust
Articles and tutorials about Rust, Embedded development and Computer Graphics.
Fix your damned data races
Nathan Froyd recently wrote about how he has been using ThreadSanitizer to find data races in Firefox, and how a number of Firefox developers — particular in the networking and JS GC teams — have been fixing these.
LALRPOP, an LR(1) parser generator for Rust
Around four years ago, when I had first decided to start at Mozilla research, I had planned to write an LR(1) parser generator. It seemed like a good way to get to know Rust. However, I found that newborns actually occupy somewhat more time than anticipated (read: I was lucky to squeeze in a shower), and hence that…
Creating a Pluto flyby using unaligned New Horizons images
Last month, a few days before NASA’s New Horizons probe made its historic flyby of Pluto, I posted a GIF of it doing so to Reddit .