You could have invented Parser Combinators
Computer Science, Machine Learning, Programming, Art, Mathematics, Philosophy, and Short Fiction
Let's build a browser engine Part 3: CSS
This is the third in a series of articles on building a toy browser rendering engine. Want to build your own? Start at the beginning to learn more:
Go Is a Shop-Built Jig
Alex Payne wrote an excellent essay called Thoughts on Five Years of Emerging Languages. It called to mind something I wrote a while ago for a …
Put Yourself Out There: The Myth of the Genius Programmer
A year ago I decided to put myself out there and face my fear of being vulnerable by starting a blog. I look at what has happened since then and how great of an experience it has been.
ImageMagick, four point perspective distortion in a video
Step 1) Download the video from Youtube using JDownloader . The best one was the original Japanese upload, The Game Awards 2014 å‡ºå±•æ˜ åƒ ã‚¼ãƒ«ãƒ€ã®ä¼èª¬ 最新作 , which is 720p. I saved this file as zelda_720p.mp4.
Terminals Are Weird
Terminals 1 are quite weird. Most modern users assume that they can just have straightfoward keybindings. Right? To bind Ctrl+i to something, they listen for Ctrl+i in their application. If they want to bind Ctrl+Shift+i to something different, they certainly can, they just listen for Ctrl+Shift+i as well. Naturally…
On compiling 34 year old C code
The 34 year old C code is the C code for ed and sed from Unix Version 7. I’ve been getting it to compile on a modern POSIXish system. Some changes had to be made. But not very many. The union…
What's left of NoSQL?
What’s left of NoSQL if they start adding ACID and SQL support?
Microservices for the Grumpy Neckbeard
Recently microservices have been getting a lot of attention, both positive and negative. Articles about them tend to fall into two camps, which I'll affectionately label the hipster camp and the neckbeard camp. The hipster camp tends to strongly favor microservices, due to the excellent benefits they provide regarding…
Bye Bye JavaScript Promises
In my previous post , I explored how programming with promises can be made close to programming with values. After some more work on it, and some learning from bluebird , I came to conclude that my brain doesn’t think well with promises. So I wrote a macro for Javascript that expands “tasks” into async state machines…
Running ASP.NET vNext on OS X and Linux
So what is ASP.NET vNext ? Microsoft have recently released a preview of the next iteration of their ASP.NET platform. I’m not going to go into …
Libtls – New TLS API from LibreSSL
tls_init , tls_config_new , tls_config_free , tls_config_error — initialize TLS client and server API
Parsing PHP in Go
An elegant open source and mobile first theme for hugo made by @mdo . Originally made for Jekyll.
Git Source Code Review
Since its release in December 2005, git has taken over the software industry. In combination with GitHub it is now a powerful tool to publish and share code: From big teams ( linux kernel , id Software , Epic Unreal ) to single individual ( Prince of Persia , Another world , Rick Dangerous ), many have adopted it as…
Dissecting the 128-byte raycaster
Lately a Reddit post caught my attention which is about a raycaster demo, animated, with mouse control and texture mapping, in only 128 byt...
Hindley-Milner in Clojure
I wrote a lambda-calculus interpreter and an implementation of Hindley-Milner to type check it.
Programming Modern Systems Like It Was 1984
It's not about technology for its own sake. It's about being able to implement your ideas.
Laying Out iOS UIs in Code
Software Engineer in New York specializing in Apple platforms
Critiquing Facebook's new PHP spec
The CircleCI blog is your home for DevOps, continuous integration and delivery, and engineering productivity. Explore tutorials, guides, and best practices.
Parallelism in one line
A Better Model for Day to Day Threading Tasks