Oct 04 2011 You walk into work tomorrow morning, and your boss says this: Boss: Hey, we’re gonna need to go ahead and have you implement require_relative in rubinius. We have some new servers coming in, and we’ll be running it in production, but we use some 1.9.2 features of MRI that haven’t been implemented yet. So if you could just go ahead and get to implementing that, that would be terrific, OK? Wat do? (Disregard that...
Oct 01 2011 I finally got to see Zach Holman give his talk, How GitHub Uses GitHub to Build GitHub. It was awesome. Zach is a great speaker, and the slides don’t do it justice. I highly recommend catching it on video or in person sometime. Anyway, there’s something that I found really interesting about GitHub’s ‘process’: it’s basically anarchism, applied to...
Sep 28 2011 I came across a blog post the other day titled Modern Ruby Development. While it’s a perfectly fine blog post (other than the digs at rvm…) it really should have been titled something more along the lines of “My default tooling to build a Rails application.” I thought of this yesterday, as I was invited to show up at
Sep 26 2011 Well, it’s the end of the web as we know it. I’d already been thinking about this all weekend, and last night, I decided. I just can’t deal with Facebook’s crazy privacy stuff anymore. I mean, I already basically forked Twitter over their ToS, and Facebook has been a lot more evil for a lot longer. Frictionless...
Sep 23 2011 Hey everyone! I just wanted to share One More Thing with you about this rstat.us refactoring. The main thrust of the last article I posted was to show you a technique for extracting a class, getting it under some kind of test, and then refactoring it a bit. Refactoring is always an iterative process, and Ryan Bates from the always awesome Railscasts asked me why I made the Salmon class into a module,...
Sep 22 2011 Hey everyone! We’ve been doing a lot of refactoring on rstat.us lately, and I wanted to share with you a refactoring that I did. It’s a real-world example of doing the domain models concept that I’ve been talking about lately. Step one: check the tests I don’t know how much more emphasized step 1 of refactoring could be: don’t touch anything that doesn’t have coverage. Otherwise, you’re not...
I spent about a month in my spare time reading the source code of Quake II. It was a wonderful learning experience since one major improvement in idTech3 engine was to unify Quake 1, Quake World and QuakeGL into one beautiful code architecture. The way modularity was achieved even though the C programming language ...
At today’s keynote of the Intel Developer Forum 2011, Intel CEO Paul Otellini presents Intel’s vision about the future of computing. It came by surprise to see Google’s Senior Vice President of Mobile Andy Rubin get on stage during the keynote. Paul Otellini and Andy Rubin announced a strategic partnership between Google and Intel for […]
Recently, the issue of Contributor License Agreements came up again on various forums, LWN included, when Project Harmony launched in, I think, June, and now The Covenant, a proposal by Bruce Perens appeared. Now, I have a fundamental issue with both approaches... Though, I must say, that I do...
Sep 12 2011 Programmers like to think that software is the purest form of meritocracy. We like to consider ourselves scientists; what we do is entirely impersonal. I’m at Lone Star Ruby right now, and the first two talks are entirely about software as a science. But this is a fallacy. There’s a human element to open source that’s often totally forgotten, and it drives people away. Software Celebrity and Hero...
100% completed: All codes from kevin mitnick book ("Ghost in The Wires") have been broken. . More...
Sep 09 2011 My last blog post caused a bit of a stir in some circles. I got a bunch of emails. Apparently, I need to expand on a few things. So here we go. Let’s rap about the Presenter pattern, shall we? No seriously, helpers suck In Ruby, everything is an object. Every bit of information and code can be given...
And centuries later when the Angel awoke, her mind tormented by the words that he spoke: I give to you, love, a new life to waste I take from you, your very soul for feast I give to you, eternal life to taste I take from you, every inch of living space Let me tell you one thing, my dear: ...
"You'll see a hundred or more people standing in front of a broken image, wondering who might have stolen their courage to look at the picture beneath." A winter's night it was, when the first rays of the dawn started to pierce through the forest. On the icy lake among the trees, one could almost see a faint...
I received today my copy of Kevin Mitnick's book: Ghost in The Wires. It is a great read so far. But even more interesting are the cyphered sentences at the beginning of each chapters. I am trying to solve all of them but if you can contribute, comment or send me an email ! . More...
Over the summer I worked at Microsoft Research, which has a fantastically smart bunch of people working on really cool and interesting problems. I just noticed that they've posted the video of my end-of-internship talk, Monitoring Untrusted Modern Applications with Collective Record and Replay. Please take a look if you're curious about what it...
Sep 06 2011 UPDATE: I also have a follow-up here. I often tell people that I learned Ruby via Rails. This is pretty much the worst way to do it, but I’d learned so many programming languages by then that it didn’t hinder me too much. The one thing that it did do, however, was give me a slightly twisted sense of how to properly design the classes needed in a Rails app....
Sep 04 2011 By now, the pomodoro technique is pretty well-known amongst programmers. I forget where I heard of it first, but if you haven’t, here it is: Break your day up into 30 minute chunks. Work for 25 minutes, break for 5. Repeat. It’s easy to stay concentrated when you know a break is coming up soon, the fact that you can fit two in an hour fits with my natural sense of order in the world, and once you...
Aug 22 2011 Okay! So, if you’d read my previous article on this, you’d know how easy it is to contribute to Ruby’s Documentaiton. But Steve, I’m still kinda scared. Okay, so here we go: I’m making it even easier on you. Send me what you want changed, and how, and I’ll make a patch and submit it on your...
As of a couple of hours ago, dpatch 2.0.32 has arrived to Debian unstable. This marks my return as maintainer, after six years of absence. To celebrate, the upload closes an impressive number of bugs: 20. However, sad as it may be, I still stick to my opinion about dpatch, which I expressed on a short talk I...
Earlier, on my work blog I mused about a simple Clojure function, that trims a string at word boundaries (more or less), and compared it to Haskell and Python code. Today, I will revisit the same code here, and fix a little bug in it. For reference, here's how the original Clojure function looked like: (defn...
syslog-ng 3.3.0beta2 has been released a couple of days ago, with a ton of fixes since beta1 - it's actually in such a good shape, that I will be deploying it everywhere where I'm not using it already. But for that to work smoothly, I needed Debian packages of it, and for squeeze, not only unstable. So I sat down...
Back in May, I was thinking of repurposing this site. However, it turned out it's better kept, so that I have a place to post things that have no place anywhere else (more on that later - but readers will probably notice the new stuff eventually, anyway). So instead of repurposing, the site was moved from a Django + ...
Experimenting with GHCJS, the Haskell→JavaScript compiler body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height:...
I’ve posted the final slides from my talk this year at DEFCON and Black Hat, on breaking out of the KVM Kernel Virtual Machine on Linux. Virtunoid: Breaking out of KVM from Nelson Elhage [Edited 2011-08-11] The code is now available. It should be fairly well-commented, and include links to everything you’ll need to get the exploit up and running...
Aug 07 2011 This is a follow-up post to my post here. You probably want to read that first. UPDATE: Please note that ‘REST is over’. ’Hypermedia API’ is the proper term now. A few words on standards versus...
Jul 24 2011 When I spoke on a panel at RTLM NY ’11, I got a little rise out of the crowd when I said “Twitter is too important to be owned by Twitter.” This is still absolutely true, and yesterday was a great example of that: the #fuckyouwashington debacle. If you haven’t heard, Jeff Jarvis started something on Twitter last night:...
The greatest video game ever sold? Wizkid was born in a time when British video game developers ruled the world. That such a time existed may seem strange today, as developers from Japan and the USA roll out one blockbuster game after another whilst British development companies quietly wonder where it all went wrong. Back in the early 90s a...
Hacker Monthly July edition has published my article in which I described the internals of Doom engine.. . More...
A while ago (well, actually a long time ago since I had this blog post laying around as a draft, until I stumbled across a stack overflow question that this post would answer) I wanted to customize Django’s admin app, by adding a link to a statistics page that I had built, on the index.html page of the admin app. I could have copied the...
Jul 03 2011 HI HN, PLEASE READ THIS!!! Since I’ve posted this, I’ve refined a few of my positions on things. Everyone learns and grows, and while I still stand by most of what I said, I specifically don’t agree that versioning the media type is how to properly version APIs. Hypermedia APIs should not actually use explicit versioning, but I’d...
I have decided to release the full source code of "Shmup" a shoot'em up 3D engine specially designed for mobile platform and released on iOS in 2010. The game and engine are fairly inspired of Ikaruga, the legendary shmup from the 1999 DreamCast. Anything you saw in Ikaruga, this engine can do it too. The license is GPL which mean you have to...
Back in the summer of 2009 I was working on a 3D engine that would power my next game: A 3D shoot'em up a la Ikaruga. The target was the very first iPhone (now called iPhone 2G). Despite being impressive on paper (600Mhz with dedicated GPU), the hardware had several issues and the lack of dedicated VRAM was a huge bottleneck. ...
Some insights from The Mythical Man Month starting from Chapter 11 body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height:...
Here is some code I modified from DynamicDrive to disable right clicking on my school website: