Wifibroadcast – Analog-like transmission of live video data
Wifibroadcast is a project aimed at the live transmission of HD video (and other) data using wifi radios. One prominent use case is to transmit camera images for a first person view (FPV) of remote…
Why I'm Excited About Native CSS Variables
A few weeks ago CSS variables—more accurately known as CSS Custom Properties—shipped in Chrome Canary behind the Experimental Web Platform Features flag.[1] When Chrome engineer Addy Osmani first tweeted about the release, he was met with a surprising amount of negativity, hostility, and skepticism. At least, it was…
Homemade synthetic aperture radar
Second version of the 6 GHz FMCW radar now with SAR images
Make a Doom level, part 1: the basics
I love Doom. Or, well, I love Doom 2, which is the game we actually had when I was nostalgia years old. I love the aesthetic — pixely in a 3D(ish) environment, and consistent in a way that meshes together really well. The classic levels are abstract (occasionally too abstract), but still detailed enough to feel like…
Exploiting the Superfish certificate
As discussed in my previous blogpost, it took about 3 hours to reverse engineer the Lenovo/Superfish certificate and crack the password. In...
More Rust compared to C++
More about the programming language Rust
My Weird Ruby
Over the past year, I've been rewriting large portions of the Middleman codebase to better reflect how I like to write code (as opposed to the silly version of me who did the original version 6 years ago). I've learned a lot since then, spent pretty much every day writing mostly Javascript and trying to find any…
Real time bidding in Erlang (2012)
I'm still on my way back from the Bay Area Erlang Factory 2012 (in fact I finished this post after coming back entirely), in San Francisco, and I've been starting to see a bunch of twitter posts regarding people posting their slides online. Although it is a good idea, I tend to view my slides as pure visual support…
Happy Little Words – Analyzing the Bob Ross Twitch Chat
In late October the video game streaming site Twitch.tv launched "Twitch Creative" , essentially giving people permission to stream non-video game related creative content on the site. To celebrate the launch they streamed all 403 episodes of The Joy of Painting with Bob Ross in a giant marathon.
The lack of HTTPS at Amazon: identifying items purchased via information leakage
If you were to browse Amazon right now and someone was eavesdropping on your connection, they could tell exactly what you were looking at. They could even tell what you've bought.
Instant Web Application
Instant TodoMVC demo (please use Chrome Desktop for now!), source Uses bottle-service library to implement self-rewriting Open your favorite web application, even a simple TodoMVC would work. Let it
Binary in JavaScript
Over the last week or so, I've spent my spare time working on a new roguelike game, with a focus on extensive and interesting planet generation. A key characteristic of the genre is that the game world is procedurally generated and this one is no exception.
AEADs: getting better at symmetric cryptography
I gave a talk a couple of weeks ago at the Yahoo Unconference . The conference was at the end of a particually hard week for a bunch of reasons and I fear that the talk wasn't that great. (Afterwards I got home about 3pm and pretty much slept until the following morning.) This post is a, hopefully clearer…
Greece’s Proposals to End the Crisis
The only antidote to propaganda and malicious ‘leaks’ is transparency. After so much disinformation on my presentation at the Eurogroup of the Greek government’s position, the only response is to post the precise words uttered within. Read them and judge for yourselves whether the Greek government’s proposals…
Time travel in Braid
I bought Braid on the promise of lavish visuals and neat puzzles with temporal mechanics, and on this basis I was rewarded. I found some frustration with the controls, which I eventually traced to dodgy keyboard drivers - the game wouldn't register the up or down arrows while I ...
A simple explanation of Chinese characters
This was originally posted as an answer to a Quora question about how long it takes Chinese kids to learn their “alphabet”. I’m editing it…
Python to Scheme to Assembly (2014)
In 2001, my favorite programming language was Python. In 2008, my favorite programming language was Scheme. In 2014, my favorite programming language …
“Information asymmetry” cuts both ways
– A Soviet-era political joke according to Wikipedia , though I've only seen it in an English text describing the C++ object model