The Python I Would Like To See
What I would imagine an better Python would look like.
Rust, an Anti-Sloppy Programming Language
Arthur’s thoughts on coding, software engineering, and other interesting things.
I/O Thoughts
This year was the first time I've attended the Google I/O conference, and it was a fascinating experience. As someone who is primarily an iOS developer and h...
What every computer programmer should know about floating point, part 1
Author’s note: this article used to be called “What Every ComputerProgrammer Should Know About Floating Point, part 1”. Some peoplenoted that this was perh...
Anti-Patterns in Python Programming
A collection of the most unfortunate but occasionally subtle issues I’ve seen in code written by students new to writing Python.
I made a patch for Mozilla, and you can do it too
In this article, I will tell how I contributed code to Mozilla during a Bug Squashing Party. I hope to provide some tips and advice about how to start contributing to a Mozilla project (or any other open-source project). I will talk about Firefox and Servo, which, I think, are somehow representative of two common ways…
Software engineers should write
In elementary school, there were “math kids” and there were “English kids”. You were classified by the other kids’ impression of your prowess in each subject.
Computers are fast
Computers are *fast*!
Programming Sucks
E very friend I have with a job that involves picking up something heavier than a laptop more than twice a week eventually finds a way to slip something like this into conversation: “Bro, 1 [1] you don’t work hard. I just worked a 4700-hour week digging a tunnel under Mordor with a screwdriver.”
Why Deleting Sensitive Information from GitHub Doesn't Save You
Security and Programming Blog
Transcribing Piano Rolls, the Pythonic Way
In this post I use Fourier transforms to revive a forgotten Gershwin piano piece. Piano rolls are these rolls of perforated paper that you feed to …
How to create 2D visibility/shadow effects for your game
How to create 2D visibility/shadow effects for your game.
Bash 'shellshock' bug is wormable
Early results from my scan: there's about 3000 systems vulnerable just on port 80, just on the root "/" URL, without Host field. That doesn'...
Zeroing buffers is insufficient
With a bit of care and a cooperative compiler, we can zero a buffer — but that's not what we need. What we need to do is zero every location where sensitive data might be stored. Remember, the whole reason we had sensitive information in memory in the first place was so that we could use it; and that usage almost…
Toward a better programming
When I built the original prototype of Light Table I didn’t have any grand purpose or goal in mind. I simply had some ideas on how programming could be better and I wanted to see how hard they would be to build. Until fairly recently, it never dawned on me that I’ve actually spent the past decade trying out ideas on…
Go Performance Tales
This entry is cross-posted on the datadog blog . If you want to learn more about Datadog or how we deal with the mountain of data we receive, check it out!
Emacs, naked
When it gets too cold, you can always put on more layers of clothing. But when it gets too hot, after a while you can't take off any more. -- RMS This is GNU Em...
Hints for writing Unix tools
The workaday world of a modern programmer abounds with Unix tools, stitched together in myriad ways. While good tools integrate seamlessly with your own environment, bad ones will constantly frustrate your efforts. Good tools have a seemingly limitless application, constrained only by your own imagination. Bad tools…
Chrome Is The New C Runtime
At Dropbox, security is our highest priority. Find out how Dropbox secures your files and data, and why millions of people trust us with what matters most.
How I wrote Game Programming Patterns
Update 2014/04/28: In case you missed the link, the web site for my book is gameprogrammingpatterns.com .
Beyond Light Table
I have three big announcements to make today. The first is the official announcement of our next project. We’ve been quietly talking about it over the past few months, but today we want to tell you a bit more about it and finally reveal its name: