logo
I'm the lead developer at The Onion. When I'm not working I enjoy long moonlit walks along the beach with robots, the history of science and technology, and warm fuzzy kittens.

contact me

A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. —Robert A. Heinlein
  • Divide By Zero

    Tue Dec 30 7:30 pm, 2008

    inline
    On globalnerdy today

       « add a comment

  • Cheap Is The New Black, Again

    Mon Dec 29 10:42 pm, 2008

    A couple weeks ago Business Week ran a story about Digg's monetary shortfalls. Now that the economy has become a shriveled turd, is it in bad taste to lose that much money? Funny how the fashion comes and goes "We're spending oodles of cash!" (applause) then "We're spending oodles of cash!" (boo's). I suppose the only thing that shocks me is that the pattern isn't immediately apparent, and so easily forgotten. Perhaps Jay Adelson doesn't remember the last round too well, and perhaps he can pull it off (I dunno sell it? Or continue to effectively sell that space via long term sponsor?) But this is all good IMHO, and maybe I am just a jerk to sigh relief about a society with less cash, because if I remember the last time correctly, it did a great job of weeding the tech garden. Hey, if being cheap is back in, then I'm so damn in.

       « add a comment

  • facebook.Ulysses

    Fri Dec 26 1:30 am, 2008

    -
    Why I'm on Facebook while having so much concern about their privacy record, account deletion practices and ad serving can only be expressed with the phrase "when in Rome". Look, if it goes bad, then we're all in this together. And I gotta admit, the UI and the work the developers have done on FB is really good. But, as I mentioned before, I don't feel like I have time for it. I mean, how do people manage to post X times a day, photos, videos, status, comments, and have jobs and a family and a social life? Which of those are you cutting back on to do this? Did I fall for some trick where I have to work at work all day? Anyway, what I'm realizing is that what I really want is a Facebook cutup directly to my brain (extended cognition device pending). Status lines are pretty boring ("I just woke up!" etc.) but documenting what you're truly doing all day is probably going to be boring unless you're, like, a lion tamer ("making lion jump through flaming hoop again!") -- maybe a good book will suffice. So, I'll take Joyce's Ulysses, and autopost it one line at a time every 8 hours -- that way I get to at least look like I'm actively on Facebook a few times a day.

    First, sign up for an app. The API documention is thorough. I'm using PyFacebook to connect from my linode server. The immediate problem I ran into is that the "login()" method seemed required and calls the python webbrowser module to actually let me (aka the user) login. And lynx is a facebook no go. So it's assuming a real desktop application there rather than a server's cron. I know why they're forcing folks to login, Facebook is a walled garden and I do in fact respect the things they've put in place to keep Facebook from, say, turning into insecure crapola. (During this playing around I did get familiar with the excellent cookie module, with using urllib/urllib2 I was able to do a real connect without a browser.) But you don't have to login each time, you can use a Facebook "infinite session" if you first go to "http://www.Facebook.com/code_gen.php?v=1.0api_key=(key)" and recording the result, using that in the call script. The important part to avoid here is the createToken, login and getSession methods since you've got an infinite session. There are a couple of other things I needed to do:

    http://www.Facebook.com/authorize.php?api_key=(key)&v=1.0&ext_perm=offline_access

    http://www.Facebook.com/authorize.php?api_key=(key)&v=1.0&ext_perm=status_update

    you're agreeing with these to let the Facebook app to work when you're not logged in and also to update your status. Which in my case is to have over time the novel Ulysses. The user setStatus code itself is extremely simple:

    import facebook
    fb = facebook.Facebook('YOUR_API_KEY', 'YOUR_SECRET_KEY')
    fb.uid = THE_USER_ID
    fb.auth_token = THE_INFINITE_SESSION
    fb.users.setStatus(status, False, True, fb.uid)


    At that point I guess if I wasn't working my way through Ulysses, I could set status to whatever I'd like, parse a feed using ElementTree or something. If it's on the web at that point it's game.

       « add a comment

  • Mars In Thrilling 3D

    Thu Dec 11 8:30 am, 2008

    -
    New images from the Mars Reconnaissance Orbiter show the Red Planet's surface in extraordinary detail -- and in three dimensions. The photos, known as anaglyphs, come from the orbiter's High Resolution Imaging Science Experiment, or HiRISE, billed as the most powerful camera ever placed in another planet's orbit. Oh, and importantly, where to get 3D glasses or make your own.

    science    « add a comment

  • TightVNC

    Wed Dec 10 8:30 am, 2008

    A smallish simple version of VNC that's optimized to run over slower connections, I've used with TightVNC for years. On my mac I use the humorously named Chicken of the VNC for a client client. (I don't even know if there's a better one for mac, I guess in this case I'm just a sucker for a silly name.) Set up for Xubuntu is a snap, do 'sudo apt-get install tightvncserver', then in the '.vnc' directory in your user home, replace the content of the xstartup file with

    #!/bin/sh
    unset SESSION_MANAGER
    exec startxfce4

    backend    « add a comment

  • Katamari

    Tue Dec 9 8:30 am, 2008

    -
    In my brief period of owning a console (I may yet get a wii, but I prefer PC games), the only game I really liked was Katamari Damacy. I liked it the same reason everyone else did, people just like to collect stuff, people like to roll stuff up into a gigantic ball for some reason. People do this all day long. And programmers are asked to figure out what's in the katamari. First, make a group of all the green things. Then make a group of all the sharp things. Then, make another group of the things not in the first two groups, but which can be both green and sharp. Now, paginate them each, and when being looked at only on the Moon replace 'green' with 'red'. And this has to happen while the katamari is growing larger and larger, with more and more things and more kinds of things. "Don't worry about airplanes, we don't come across those often at all. But they're green. Sometimes red." And when I'm working on cataloging someone's katamari I always hear this song in my head... (naaaa, na na na na na-na na na na)

    theories    « add a comment

  • Sitepoke

    Sun Dec 7 11:21 pm, 2008

    -
    I had a few days off, which was pretty amazing. Although I was sick much of it (great timing!). But I did get to leisurely do SitePoke which is an old monitoring script I rewrote and created a front end for in Django. While I've got a decent amount of Django experience under my belt, it was on a long term project, so doing something small in a couple days was actually pretty fulfilling -- and reminds me that yes, as a framework, Django does kick some ass. In fact, I think I spent longer trying to get xml structured for some pretty flash graphics than the rest of it. So, the site's open if you want to give it a try, given any more time I'll add some functionality to it, particularly the difflib data I'm doing on returned pages (how much has a page changed, and what has changed over the last few pokes, etc.). Oh, and I did the whole thing on my Eeepc ;)

    python, backend    « add a comment

  • Linode

    Sun Dec 7 1:22 pm, 2008

    So I'm tired of dinky $5-10 a month hosts, which might be fine for blogging, but not good for much else. They don't let you control the machine, obviously, install what you like, select what distro you want or let you have long running processes. Damn it, I want to do some real Django stuff outside-of-work. I want to play around with postgres, etc. And yet I'm still a cheap bastard, don't want to pay over 20-25 a month for something that's not serving much traffic. Fortunately, in the last couple years virtual machines, Xen in particular, to the rescue... But I'm suspicious of Slice Host, feels like there's some hype there (although I've never heard anything really bad). I'm just like that. So as an alternative I came across Linode -- pluses in my mind are: you can do it month by month, don't like it, just move on. You can upgrade VPS specs on the fly, memory, etc. Need to add machines in a couple spots across the country? Sure. The distro selection is good, Centos, Arch, Slackware, SuSE, Gentoo, Debian, Fedora and Ubuntu (which I chose since setup is so crazy simple). There's a nice control panel to manage the machine, a monitor to reboot in case it goes down, stats, even a little ajax console if you can't get to a terminal for some reason. And setup of the VPS was instant. No shit, I had a webserver going in 1/2 an hour. Sweet.

    hardware    « add a comment

  • Python 3000 Prod Ready

    Wed Dec 3 11:56 pm, 2008

    Python 3.0 (a.k.a. "Python 3000" or "Py3k") is a new version of the language that is incompatible with the 2.x line of releases. The language is mostly the same, but many details, especially how built-in objects like dictionaries and strings work, have changed considerably, and a lot of deprecated features have finally been removed. Also, the standard library has been reorganized in a few prominent places. Have I ever been excited about a backwards breaking release before? Just goes to show that as a language Python tends to get it right, I hope it continues -- here's what's changing.

    python    « add a comment

  • s3cmd

    Tue Dec 2 8:52 pm, 2008

    Highly recommend s3cmd as a way to interface with your S3 service if you're always on the command line anyway -- feels as close as a single line away. I'm often syncing files up, and it does a nice combo of GPG and https for the transfers. I'm not using S3 for anything like media, just small files, knowing that if there were some kind of complete failure of both my backup drive, main HD at the same time, I've got S3 (for which I'm paying much less than a dollar a month -- yeah, again, no media files).

    security    « add a comment

  • Blip Festival 08

    Mon Dec 1 11:00 pm, 2008

    Highlighting the chipmusic phenomenon and its related disciplines, the festival aims to showcase emerging creative niches involving the use of legacy video game & home computer hardware as modern artistic instrumentation. Devices such as the Nintendo Entertainment System, Commodore 64, Atari ST, Nintendo Game Boy and others are repurposed into the service of original, low-res, high-impact electronic music and visuals - sidestepping game culture and instead exploring the technology's untapped potential and distinctive intrinsic character. In NYC this weekend, be there, or be square.
    puss - 3step


    nullsleep - says it's not the end


    bit shifter - particle change

    filler    « add a comment

  • MySQL To PostgreSQL For Django

    Mon Nov 17 6:45 pm, 2008

    -
    The idea was that you'd use MySQL for speed, PostgreSQL for features, although with PostgreSQL 8 that seems to have changed, and MySQL has caught up a little on features. But with day to day use, I gotta say, I prefer PostgreSQL. Not that I don't love unexpected MySQL table locks. Anyway, didn't your mother ever tell you not to walk into the middle of a database fight? The point is I'm converting part of an app to Django and the previous was stored in MySQL. I could of course write something that iterates over the data and puts it in place in a new postgres home. But that's time consuming. So, take the the MySQL dump, convert it to something postgres understands, once there use Django's inspectdb helper to generate the basics for the model, then work on whatever scrubbing and altering need to be done, cuz that's so much easier once you've got Django on hand to work on the data.

    backend    « add a comment

  • Google's Bitch

    Tue Nov 11 7:30 pm, 2008

    Back when I used to do tech support, I was trying hard to get people off of Internet Explorer, there were a couple options even then -- but I kept having this conversation:

    - I don't want to use Netscape/Opera/Mozilla, Internet Explorer is perfect.
    - And how many other browsers have you used before?
    - Well, I haven't used any others, but IE is perfect.

    I also had this conversation about word processors (remember them?), and OS's. It was extremely hard to get anyone to look at Linux as a server with MS and Sun around. The conversations always went like:

    - I don't want to use another X, this X is perfect.
    - And how many other kinds of X have you used?
    - Well, I haven't used any others. But this one is perfect.

    Google does some things really well, obviously. Which is probably why companies are switching over their mail, their ad serving, some of their web applications, their project management, their collaborative word processing, and their code repositories to Google. What worries me about this is that somewhere down the line, folks are going to forget anything else was possible, that "this one is perfect". It's not going to be now, but maybe years from now, when you realize that you've become Google's bitch. It will be the folks that come after the people who made the decision to switch off of Exchange Server, who have used little else but Google for their mail, search, projects. What frightens me honestly, is the return of old fashioned monoculture, while Google currently feels like little companies grouped together under a brand, there's an unprecedented level of trust in the word 'Google' that gives me shivers.

    theories    « add a comment

  • Plumbing

    Sat Nov 8 11:58 am, 2008

    -
    I once had a Steve-Jobs-Type classic A-personality boss toward the end of the dotcom era who would always tell our team that we were one day going to be the equivalent of plumbers and mechanics (he also had the unfortunate power to make women who worked for him cry almost on cue). I didn't disagree with him, but asked what he had against plumbers and mechanics? Why was this a thing we should, apparently, be frightened of? Who makes and or fixes your shit? Who makes your car run? Where would you be without these folks? I think of Douglas Adams B-Ark, which held a world's middle managers, TV producers, consultants (and phone sanitizers) tricked to be sent off alone to crash on a prehistoric earth. The fictional A-Ark held the world's leaders and thinkers, and C-Ark held the people who made things, the plumbers, bricklayers, carpenters, computer programmers, farmers. I'm quite happy to be on the C-Ark.

    theories    « add a comment

  • More Important Than Bombs

    Fri Nov 7 8:30 am, 2008

    "I am thinking about something much more important than bombs.
    I am thinking about computers."
    -- John von Neuman, 1946,

    theories « 1 comments

next >> first 123456 last    showing 1-15 of 80