Friday, May 30, 2008

under pressure

Vanilla Ice might have ruined the hoook for an entire generation, but it's still a good song.

Tuesday, May 27, 2008

enough talk, time for code

So I've been talking about a railish routing scheme for GAE. Finally after nibbling on the problem whenever I could score some free time, I've got something that's working (if not perfect) here - railsish_gae.

In short, it's a mechanism for automagically loading up a controller, executing an action, and rendering a template based on the URL that was called.

Dunno if it'll be useful to anyone else, but I'm just glad I can quit OCD'ing on this relatively small problem. :)

Friday, May 23, 2008

twitter problems

This Techcrunch article does a nice job of summarizing the problems at twitter, and someone at twitter wrote a decent blog entry the tries to explain what they see the problem as and make a subtle call for help by way of a challenge.

And I gotta admit, as a code monkey, I'm tempted to answer that challenge. ;) Only hitch is that the job's in San Fran, and I've got my own agenda to pursue. :P

Still, it sounds like they are complaining that the messaging system isn't one-message-to-one-recipient and how the relationships between users creates a rat's nest of dependencies. I've got to wonder exactly what it is about twitter that makes this a hard problem to solve, since IRC has handled the same problem since 1991.... the message routing isn't in the actual rails code, is it?

rats live on no evil star

Today's submission is Weird Al's Bob and his clever use of palindromes :)

Wednesday, May 21, 2008

gettin' closer

After having to restart the code for a railsish controller dispatch.cgi equivalent for GAE (3 hard drive crashes in as many months? Really? C'mon...), I've managed to get something just about working on the dev server. The hard part is figuring out what python calls stuff, and keeping what exactly "self" is straight.

update: and nevermind... got it. \o/ Will post the hack later on. I really wish python wouldn't just pass around instances of self implicitly. :(

Tuesday, May 20, 2008

[book] Restful Web Services

RESTful Web Services
by Leonard Richardson; Sam Ruby
Publisher: O'Reilly
Pub Date: May 01, 2007
Print ISBN-10: 0-596-52926-0
Print ISBN-13: 978-0-59-652926-0

I found this to be a pretty good reference book. What was most helpful was chapter 12 which covered several of the web frameworks. The chapter on Django walked through the framework from a Rails perspective, which was perfect for me since that's where I'm coming from. Also had some nice examples on dealing with JSON and how to organize your site around the concept of web services.

It did a nice job of explaining the difference between the Rails and DJango MVC philisophies, and even included a decent example of how to handle routing of actions.

I'd recommend this for the bookshelf mainly as a reference if you're in a situation where you need to jump between different languages and frameworks as it's pretty agnostic. Don't think I have the attention span to read it from cover-to-cover, though.

Monday, May 19, 2008

wow stuff

And even though I said I'm not doing anything with it this week... I found a video of a 5 man Gruul kill with a rogue tanking. I'm starting to ponder the merits of decking a shaman out in straight +agi gear and heading to the arena.... I'm also starting to wonder if a shaman tank might not also be possible (maybe even better) with sufficient dodge gear.

Also wanted to point out that I have uploaded the sound effect for Bloodlust for the freaks who said they wanted to use it on their desktops, and that WoW Model Viewer is a pretty slick tool if you're looking into making some machinima. If you simply want to dig out sounds or check out pixmaps, MyWarcraftStudio is the way to go.

still freaking out about the ring

So, busy weekend with not much to show for it. Well, not much for me, at least. Little bro got hitched. I managed to not completely pooch the toast. I also managed to work up such a nice case of OCD about losing the ring that I've suffered about 7 moments of panic when I realized it wasn't on my pinky since handing it over to the pastor during the ceremony.

Feelin' kind of Frodo Baggins right about now. :(

Any rate, the plan this week is to drop WoW time for some App Engine time. I've also reactivated the Safari account only to discover that they now offer a "Library" option which gets rid of the stupid "bookshelf" crap... no more having to checkout a book for at least 30 days, and no more limits on how many you can check out. And I mention that to mention that since I've now got a decent idea of how I'd do restful routing myself, I'm going to take another peek at Django to see if the overhead is worth it. Yet another Crazy Ivan.

Also found a book called "Visualizing Data" by Ben Fry that in addition to talking about how to visualize data also serves as a primer for Processing. Hoping to skim through that and get some ideas about the capabilities.

standing next to a mountain

For today's Friday Video That's So Overdue It Didn't Get Posted Until After Close of Business on Monday(tm), let's try some SRV:

Wednesday, May 14, 2008

are we married to that name?

For mere mortals like myself, keeping an eye on lkml is a test of attention and intelligence beyond our capabilities.

Fortunately, Kernel Trap exists and provides an RSS feed. :)

What brings the site up today is its mention of the Parallel Optimized Host Message Exchange Layered File System, or POHMELFS for short. Could NFS's days be numbered?

We can only hope.

Tuesday, May 13, 2008


So, last week John Resig announced that he'd created a Processing port to javascript. The net effect is that you can do some very flash-esque animations in javascript with it, which is pretty cool because I've found Flash development to be Teh SuckNess(tm) on sooo many levels.

I'd been unaware of the Processing language itself until I saw the post, so I decided to check it out and see what's up. It's basically a programming language allowing you to script animations, visualizations, or interactions. In short, everything people are currently abusing Flash for beyond platform independent web video. :) Very slick, and I wish I had more time to play around with it.

everything you wanted to know about hard disk recovery

Once again, procrastination pays off.

A slashvertisement recently pointed to a spam article extolling the virtues of a particular disk recovery service with the summary hinting at "insights into disk recovery techniques". The article itself got ripped to shreds in the comments, but someone did post a link to a Defcon presentation about disk recovery that I found extremely informative (links below).

I'd put off attempting to recover data myself as, quite frankly, I didn't know what I was doing and because this is the kind of thing you could conceivably only get one shot at doing. After the presentation, I think I've got a better grasp on what's happening and feel like I've got a decent understanding of the drive anatomy. Given the symptoms of the crash, I suspect I can get by with simply cooling the drive and not having to engage in swapping out boards or cracking open the casing. Going to add one of those USB drink coolers and a USB firewire IDE adapter to the shopping list and give this a shot.

DefCon Video:

Part 1
Part 2
Part 3
Part 4
Part 5

google friend connect

At the recent Campfire One dealie, the google folks unveiled their "Friend Connect" stuff. The elevator pitch is that it lets you add "social networking features to your website".

Being a curmudgeonly hermit, I usually skip over anything with the word "social network" in it because it means radically different things to different people. But I decided to investigate a little more and check out the demo video so I'd at least know something about it.

Turns out, it's kind of interesting in that you can turn a static site into a "community" pretty quickly. It's as easy as dropping some HTML into your site to get stuff like member login, photo sharing, ratings and reviews, and stuff like that.

Basically, all the gnarly crap on my TODO list for a GAE app that I was putting off addressing until the last minute because I really, really don't want to write another damned login system.

In short, google is slowly providing all the tools (available in a Fisher-Price, snap together fashion) that you'd need to build a fairly complex (and hopefully useful) site and removing them from the equation so all developers are left with is creating content. They're trying to shift the focus of developers from worrying about what to provide instead of how to provide it.

Vurrah cool, and anyone who's business plan uses the words "digg clone" should be getting kind of nervous right about now. :)

Monday, May 12, 2008

making GAE a little less pythonic and more railsish

After spending time earlier in the week trying to achieve some level of zen on GAE's datastore stuff, I hit kind of a brick wall on what to do about the VC part of the term MVC. The option everyone is pushing is "just use django", but.. I don't like that answer. I don't know what it is specifically, but django just doesn't feel like the "right solution" for what I wanna do, as if it'd bring in more stuff than I want to deal with.

After mucking around a little with python this weekend, I think I've figured out how to create a crude replacement for Rails's dispatch.cgi, and just that to handle all the routing for URLs in my app. The dispatch script would be responsible for sussing out the right class and the right action based on the url, creating an instantiation, and calling the correct method. All methods will probably just return a dictionary of values to pass to a call to the page render, and there ya go.

Will try to get some sample code up later on, but I'm not promising anything this week... my little bro is getting hitched on Saturday, so time is an scarcer commodity now. :/

a death knight named.... stevedave

Blizzard shrewdly held a press day to talk about their new WotLK expansion about 2 weeks before the rival Age of Conan was released, and they spent a lot of time talking about the new Death Knight class. The short version is that they've found a way to give warlocks plate armor and reduce their dependency on mana. There is no way that this is going to end without servers becoming 85% DKs and the remaining 15% of the players being those who are forced/bribed to play support/healing classes.

And being an MMO herd animal, I too am looking at the DK. I wanted to name him SteveDave just so I could make someone in the raid yell out, "Tell him, SteveDave!" when I start thrashing something, but someone already ganked the name.

I suppose I could level up a Hunter and call him Waltflanagan so I could name the pet Waltflanagansdog.

But it's just not the same. :(

Thursday, May 8, 2008

and it worked... yes it did!

Check it out... Music Video Friday on a Thursday!! \o/

The song's kind of repetitive, but the video is extremely well done:

strongly agree

So, I'm working with a company that's working with another company that does contract work for the VA. I will never see a VA employee, nor will I ever be anywhere close to VA property, nor will I have access to any VA data. But because the money I get will be originating with the VA, I am required to undergo "training" in the inifitely awesome areas of Privacy Protection and Awareness (as a direct result of some jackass having the entire list of veterans and their social security numbers on a laptop that was stolen from his home) and the always-popular Sexual Harassment Awareness.

Fortunately, this requirement is easily completed by taking an online "course" in which you are given information and then submitted to a short quiz. Unfortunately, for paperwork purposes I'm supposed to print out a copy of the certificate that verifies that I've been properly trained in these fields. More unfortunately, the only way to get the Sexual Harassment cert is to fill out an online "how'd we do" survey that's longer than the actual Sexual Harassment quiz.

And here's the cool part... one of the questions in that survey was: "I am often presented with situations in my work environment to apply the knowledge I learned in this course."

web games the future, eh?

So there's starting to be more talk that the web is the game platform of the future, or more specifically that Flash gaming is where the audience (and money) is going to be.

Why, then, are there so many game companies who think their biggest selling feature is level of detail in their game? Why do all the game rags gush about how realistic graphics are if Flash (or even worse, Silverlight) level graphics are going to be the foundation for next generation games? We're talking about a platform where the best you can hope for is "campy cartoony" because rendering 3d primitives or anything resembling raytracing isn't gonna be happening.

I suspect that they're right, in as much as the web as a gaming platform will (already has?) open up the casual gaming market. I'd also guess that major studios will start hiring ActionScript and Silverlight monkies to pursue online exploitations of game franchises. We might even see a couple more iD-like rags-to-riches stories as indie game houses give up on trying to wallpaper over 3 year old engines and opt for lower-cost-of-development web games.

But I don't think the console (or even PC gaming) is going anywhere any time soon.

In the meantime... are there any current web games you're playing now that fun/addictive?

playtpus genome sequenced

It seems like every time I hear something about the duckbilled platypus (is there a non-duckbilled version out there somewhere?), I learn something new about it. Just looking at the damned thing, it's obviously a taxonomist's nightmare, but now that the genome has been sequenced we're finding out that its genotype is just as funky as its phenotype. It doesn't just look like a Nature 2.0 mash up between mammal, reptile, and bird... it is a Nature 2.0 mash up of mammal, reptile, and bird.

And did you know that the platypus has 10 sexes? And have electroreception ability? And the males have a fscking poisonous spike in their hind feet?

Saturday, May 3, 2008

from google.appengine.api import users dilema

App engine comes with a library to handle user authentication off of Google's gmail servers. The idea is that anyone with a valid gmail account would instantly get access to your application, and you don't have to sweat the details of session management, password recovery, setting up CAPTCHAs and filtering out spam accounts, or any of that truly annoying stuff.

Authorization is handled through an admin console for your application. You can specify which libraries/urls require different levels of access (choices are "none", "login", or "admin") and help protect different parts of the site. Pretty simple, and pretty flexible.

There are a couple of hitches in the plan, though. First off, there's no unique identifier for a user account other than the email address. The doco claims they're mulling solutions, but nothing appears to be promised or hinted at (note to googledudes: gmail auth is a good starting point, add in support for creating and managing personal certs for the win). Second problem is that there's recently been news that spammers have found a way to beat the audio CAPTCHAs google is using and thus have been establishing spam accounts with it like it's the new hotmail or something.

A third problem really isn't that huge of a problem, but it is something to keep in mind: the standalone webserver in the SDK merely checks for the existence of a gmail account.. it doesn't do any password validation. Worse, you can give it a non-google email address and it just uses that. The problem here is that kind of nerfs the idea of releasing the source code for a web app and allowing people to run their own standalone instances of it on their own hardware.

One solution to all of this is to simply use your own user authentication and authorization system and clip out google.appengine.api.users from the equation. But now you've got the hassle of session management again, only this time no database to use to solve the problem (the BigTable datastore *could* be used here, but you wouldn't want to do it because writes are much more expensive than to a traditional database making ill-suited for temporary data). You could stand up a server somewhere else, but now you've got the cost and complexity you were trying to avoid by using GAE in the first place.

Using something like Google Gears and allowing users to have offline access to your app is one possible solution, but offline support isn't the same thing as owning your own instance of an application.

For the ideas I've got and that I'm monkey around with, this isn't really a deal breaker, but it does limit options for future projects.

Next GAE whine session: how having multiple places to handle URL routing can cause headaches. :)

Friday, May 2, 2008

can't keep track of where it's travelling

Yet another video that captures 3am fairly well, but this time instead of insomnia it's having weird dreams.

Seriously, what's up with the kid sitting on the hand?