Saturday, December 20, 2008

game over... steams wins, best buy loses

In the previous and unbacked-up incarnation of this blog, I had a few posts gushing about how Steam was cool because it basically offered up online delivery of PC games.

A while back, Activision (now Activision Blizzard) started releasing their stuff through Steam, and now EA has jumped aboard for the big win.

I like Steam because it gets rid of the hardcopy, real-world product. That means it takes less time to purchase a game through Steam than it does to jump in the Spoonmobile and run down to Best Buy or Wally World and grab it from amongst the shuffle hordes of shopping zombies. After I get the game, I don't have to enter the ever-growing string of alphanumeric characters just to play it. Nor do I have to worry about finding the CD or hunting down a nocd crack and rolling the dice on picking up a virus when I want to play it later on down the road.

What the game companies like about Steam is that the authentication system providing proof of purchase. It doesn't make piracy impossible, but it does make your product more customer friendly and removes the need to license DRM and other copyright protection schemes. That decreases the cost to deliver the product to the customer, and oddly enough might contribute to actual legit sales because the lower price might make the hassle/risk of pirating a game less likely. They also like that Steam opens up the potential for episodic releases of game content, which further drives down production costs because instead of needing $10m and 2 years to produce art for a 30 hour AAA title, you can just break off $1m and 6 months for the first episode and see if the game is popular enough to warrant going on to episode 2, etc.

This is absolutely crucial for us PC gamers, because Steam is about the last ray of hope for convincing publishers to stick with the PC platform. They have been increasingly looking towards consoles as the solution to the problems of being able to reuse IP and reduce piracy, and the PC game market has taken a hit as more and more stuff gets designed for the Xbox first.

Saturday, December 13, 2008

no such thing as a free lunch

I think this guy was going for a Guinness record ponzi scheme or something.

He was basically taking cash from one client to pay off dividends to another customer. No one bothered to ask how, because, hey, who turns down free money and 12% returns, amirite? But now that the music has stopped, everyone's complaining about how there aren't enough chairs. $15,000,000,000 has already just disappeared, that could close in on $50B before all is said and done.

But the really sad thing? Think what $15B reinvested into your local economy to fund real startups (and I'm not talking about the "I have an idea for a website" crowd here) could have done.

Tuesday, December 9, 2008

fallout 3

So, the dude who does Zero Punctuation has a pretty spot-on review of Fallout 3 (warning: naughty language... put the headphones on). I just wrapped up the game, and liked it a lot.

It's kind of like a mix between a first person shoot and an role playing game. You have the option of calling your shots with the V.A.T.S. system, or if you're set for ammo and have the twitch monkey reflexes you can just use the crosshairs and score your own headshots.

There's quests to run, and different factions (basically towns) that you can build rep with. Aside from a few core missions that move you along the story line, everything else is just kind luck-to-find. There's a surprising amount of stuff to explore in the game, and I found the levelling up part to be practically unnoticeable. I would recommend that you invest early talent points in stuff like lock picking, science, explosives, repair, etc instead of going for nothing but weapons and stats improvements. The game becomes a lot easier once you can "hack" into any computer (that's basically just a game of hangman where you guess the password) and pick locks. Also, figure out how to repair stuff early on in the game... you'll save a lot of money and improve the amount damage your weapons do.

The moral choices in the game are also interesting, in that they affect future quest opportunities later on. Much like the decision to go carnivore in Spore, I ended up going Good-Guy in FO3, which actually ends up causing more problems than you'd think as bounty hunters are out to get you, and you lose a couple of support options early on in the game.

Overall, though, it was well done and worth the price of the game. Thumbs up, Bethesda, and thanks for showing me around DC. ;)

Thursday, December 4, 2008

change != innovation

innovation -noun
1. something new or different introduced.
2. introduction of new things or methods.

change -noun
1. a transformation or modification; alteration.
2. a variation or deviation.
3. the substitution of one thing for another.
4. variety or novelty.

In the push to differentiate products, marketing folks tend to confuse the two together. The hype for Windows 95 (and now, for Vista) is a good example of this. Although the product had a lot of modifications and at least the surface was transformed, it's not really a new product. Going from win32 (Windows 98) to win32s (Windows 2000) was innovation because that was the point that they actively switched from bolting crap on to the old DOS kernel and used the new NT kernel as their base.

Apple showed innovation by dropping it's old and rapidly aging MacOS for NeXT (aka Rhapsody, aka MacOS X). The iPod was innovation, not so much because of the hardware, but rather because of iTunes.

This is a small distinction, but it's an important one that anyone who makes a product (including software developers) would do well to remember because while innovation is an opportunity to create and grow into a new market, change is usually little more than an opportunity for your customers to leave you. This is especially true for Software as a Service type offerings where your customer doesn't have the option of ignoring the new version and sticking with the old one (ie, World of Warcraft expansion, changes to iGoogle, Facebook pages, cellphone apps, etc).

The reason for that is because even though you might give advanced warning, and even though you might give people a perfectly reasonable amount of time to test out the new interface, you are still ultimately causing them migration headaches on a date of your choosing, not theirs, for your own benefit, not theirs. It's a disruption to their routine, and if you're not careful about it they can easily decide that the added cost of simply going somewhere else isn't that much higher than the cost of upgrading to your shiny new 2.0.

Wednesday, November 19, 2008

meh of the lich king

I snagged a copy of Wrath of the Lich King on my way home last Thursday, got it installed, and was promptly greeted with a 2 hour wait to get online thanks to the insane queues that have popped up after the release.

Maybe it's just a function of the server being overcrowded, but I really, really don't like playing this expansion. Mobs respawn as you're killing them, and a bunch of quests form a kind of bottleneck where the NPC will become unavailable for turnins if someone else beats you to him and starts goofy animation sequence for the next phase or where you're stuck waiting in line to kill some special mob to complete a quest.

My real gripe, however, is that the fun part of the game had been raiding, not levelling up. And now that I'm forced to do it again, I really think I'd rather not.

Friday, November 14, 2008

active directory authentication for linux

Found this article via Linux Weekly News.

Personally, I don't like AD as the sole repository of all auth info. I see nothing wrong with using LDAP for auth (and the author makes a mistake in saying that you can change/reset passwords in LDAP), replication is tricky to setup but simple to maintain, and you can dump everything to a flat file for easy integration with your backup system.

But this article is a pretty good overview of how Linux nss <-> Windows AD works (not to mention a good summary of why directory services rock and a little historical context), and I haven't seen an explanation of how to use winbind before, so... here's the link.

Thursday, November 6, 2008

the zen of programming

Programmers get paid to write lines of source code.

Good programmers get paid to delete them.

Awww... c'mon. That was clever. :(

Any rate, the distinction occurred to me as I was slogging through a project a couple weeks ago as I was revising some work on a project. Code written for a specific application seems to generally sort itself out a few revisions, and you find that as objects and APIs mature, you need less and less code to get the job done.

End result is that I seem to end with less SLOC in my final version than I had in my 2nd revision and everything just feels more snug.

Wednesday, October 29, 2008

vmware esxi is free

Just found out that VMWare's ESXi offering is free. It's basically a hypervisor based virtual server offering... like Xen, but without the need for hardware VT support to run unmodified hosts.

MS Azure

Did a little investigation into the announcement of Azure. It basically sounds like MS's response to Google App Engine, except for And apparently giving you access to a bunch of Live services for your web app. And integrated with the Visual Studio EE stuff.

Might be of interest to folks looking to get some experience with MS's enterprise tools without actually having to shell out cash for them.

Monday, October 20, 2008


Noticed this in the safari rss feed: Expert F#.

I had no idea such a beast existed, let alone had existed long enough for someone to become an expert in it. ;)

tl;dr version: It's a functional programming language for .Net. They talk about OCaml a lot.

After messing around with Erlang, I found that I really, really like functional programming. You skip a lot of the shullbit and get straight down to business of working with the data... the problem for everyday use is that the users kind of like all that shullbit, and so that's what you get paid to write. I'd been thinking that the only way to sneak functional programming in would be as a web/system service, but if it's a .Net assembly... \o/

Will have to check it out more later.

Tuesday, October 14, 2008

dead robot society

Found an interesting podcast about writing: Dead Robots Society. Some interesting discussions about stuff like Campbell's Hero Arch and how it applies to not just books and movies, but news and video games, how to handle dialog in a story, a tool called Dramatica you can use to analyze your plots, and an interview with an independent publisher that gives some insight into the business side of things.


Think I already mentioned it before, but Unity3D is an engine/platform you can use to design games/sims. Cool features include a web based plugin, MS/Mono support, Wii and iPhone dev, and apparently MMO dev in their 2.1 release. Basically, it's in the same niche as Torque X. My main concern remains development tools (ie, art and assets, not game code), but it looks like they're both coming along nicely.

I'm not ready to spend money on either one yet as I'd prefer to get a little more experience with the fundamentals (namely, SDL/OpenGL), but I'm kind of leaning towards Unity atm.


An alternative to using XNA for .net game/sim development is to go with SDL (simple directmedia layer) (or its .net wrapper assembly

The good news is that SDL takes care of the 2d, input handling, sound, and some networking crap. The bad news is that 3d is outside of aegis, and the best it can do is setup a surface for drawing OpenGL stuff on. That means you need an OpenGL library, which The Tao Framework provides. Bad news there is that it's basically just wrappers for unmanaged code, so you still need to keep track of what you allocated to prevent memory leaks and setup a Dispose() for stuff.

But the sunny side is: works for MS and Mono. \o/

Jabuka has written up some decent tutorials and example code in his physics engine implementation project, which gives some real-world examples of how to use Tao.

So I'm thinking, what, 2.. maybe 3 months for World of Spooncraft 1.0 launch?

Monday, October 13, 2008

bad start

October has gotten off to a bad start. Suffered a big loss, and everything else seems to be crumbling to dust around me.

Personal hacking has been on hold while I'm in the funk... maybe I've just trying to avoid thinking in my private time and trying to avoid that just vegging out and doing my somber Martian style of "socializing".

Professional hacking has gone pretty good, though. It's good to have something to focus in on, and that's a quick, attainable goal so that not everything is Tantalus's picnic. :)

Sunday, September 28, 2008

celtx - open source script writing tool

If you're interested in script writing, you might want to check out Celtx. It's a free, open source script writer that has some really cool features. You can write scripts in different formats (ie, stagescript, comic book, or film script), hook up storyboard art and actors/props to scenes, and schedule everything with a calendar.

Very cool stuff.

Friday, September 26, 2008

and speaking of spore

I like it.

While not every choice you make influences aspects of later gameplay, there are some major ones. Ie, spend more time killing your neighbors than negotiating with them, and you'll end up with an aggressive, warlike tech tree when you get to later stages in the game.

The tragedy is that I find it's much easier to just conquer my neighbors than impress them with dances or music performances. My little one celled organisms quickly grew up into goofy bipedal killing machines that gave up all pretense at diplomacy and rapidly established an authortarian empire on both continents of my homeworld. It only got worse once I attained spaceflight.

Will Wright games take me to a scary place. :(

Any rate, the game itself is pretty well crafted. Replay value is in the infinite (and I mean fscking infinite) variety of creatures and cultures you can create. There's some civilization micro-management in the later stages of the game, but it's nothing major and in the worst scenario where you ignore a planet and it drops back to a T0 barren rock... it only takes about 5 minutes work to resculpt it into a T3 paradise.

Only thing I'd ding the game for is that the explanation on how to terraform wasn't clear and it's not covered in the manual. But once I finally doped it out, it's hellah fun.

Main focus of the game is definitely the space stage... most of the other stuff was kind of just phases you had to go through, but I also suspect that there's some good replay value in there. Ie, see how far you can get by being a peaceful herbivore instead of just melting everyone's face.

It's also worth pointing out that during the creature phase, as you're gaining brain capacity the size of your "pack" grows. You can charm multiple creatures to help you out. I made it through most of this stage flying solo, but decided to pick up 3 of my own buddies to help take down the last nest I had to conquer. There was definitely a "goat leg drops onto the roof of the car" moment when you realize that one goofy, almost bashful looking creature is cute... but 4 of them racing through the forest on a dark errand appear to be perfectly tuned killing machines and intent on one terrible goal that might not be suited for children to watch.

Plus, they can spit venom. :o

Still not sure I'm down with the DRM thing, but overall I like the game. Not quite what I'd thought it'd be a year ago, but it's by no means a disappointment.

waaaagh not so much :(

Turns out that there's an issue with 8X00 nvidia cards and WAR. Turns out that this was discovered in beta, but quietly ignored. Turns out a week after launch, they still have no solution to the problem but are more than happy to crow about the 500K subscribers they've got (I thought there were 1.5 million pre-orders??)

tl;dr version: Fsck it, I'll just go finish dominating the galaxy in Spore.

Tuesday, September 23, 2008

revisiting cuil

Almost 2 months ago, I mentioned cuil and how it offered up a different way to organize search results.

Since then, I've actually used to research a couple of topics... namely, Amazon Web Services tools, the Battle of Hastings, and how to generate UV light.

On the Battle of Hastings, it did a nice job since there was plenty of multimedia type stuff surrounding the topic. The left-right layout and page previews helped me zero in on some information, get a refresher on the topic, and then find a couple of places to dive in deeper.

On the technical stuff, though, it fell kind of flat. The UV light research turned up lots of links to what UV light is and how it works, but not so much on the "help, vampires are attacking and I need a weapon NOW!!" front. For the AWS tools, I basically got links back to Amazon's forums. Thanks a lot.

So. As things stand now, it's pretty much going into my webz toolbox as "the place to go instead of the library". Will be nice if it sticks around, but I can't say there'd be a huge impact if it didn't.

Monday, September 22, 2008

did you know..

That UV lights are really just flourescent lights with small amounts of mercury added to them? When energized, mercury emits UV photons.

Also works with a laser, too. Zap mercury gas with a laser, and you get a UV laser that can be seen when you put a piece of paper in front of it (the UV reacts with the blue fibers manufacturers add to paper to make it appear white instead of mashed-up-tree-goo-brown). But.. realistically.. who's got a portable lasers laying around?

Any rate.

If you're trapped in an Alaskan town when vampires attack, just find a mercury based thermometer, modify a flash light, and there ya go. Point the beam at a sheet of white paper and make sure there's a glowing blue dot before you go on offense, though.

Friday, September 19, 2008

other games

I also picked up Sins of a Solar Empire and Spore. Planning on giving those a test drive this weekend as go-me rewards for getting the S3sync project into a usable state and coming up with a plan to refactor the code.

first impressions of warhammer

So, got the beast installed (2 dvd's!!) and took it for a test run.

Overall, I'm not very impressed with the game. Let me give you a taste of the gameplay so far:

*) create your account with EA/Mythic (note the name.. it becomes important later on)
*) start up WAR, wait for 45 mins for the 255MB patch to download (seriously?)
*) finally get the patch downloaded, start the game, agree to the license and ToS
*) begin selecting your character and deciding which set of tusks best describes you as a hulking minion of the Armies of Destruction
*) frown as the game starts to lag during the character customization phase until it gets so bad you just give up and hit the "PLAY" button hoping it'll go away
*) enter the game and begin walking to the first quest giver only to be struck by crippling lag after taking 2 steps
*) spend 5 minutes fighting through the lag in an attempt to get the visual config menu opened up and turning everything down to lowest possible settings
*) give up when that doesn't do anything, and try restarting the game
*) agree to the ToS a second time
*) re-enter game, resume your walk to the first quest giver, and get hit with crippling lag inside of 5 steps this time
*) hunt for the in-game help feature to report the problem, and experience a complete lockup of the game and a tone that sounds ominously like a flatlining EKG machine for 10 seconds
*) wait for lag/death tone to subside, hit the help button, and begin filling out your report only to discover there's a hidden character limit on the input box labelled "be as descriptive as possible"
*) revise your bug report down into "terribad lag, bad tone + lockup, plzhlp" (all the while experiencing said terribad lag... we're talking IRC on a 2400 bps modem here, folks) and have the game completely crash before you can submit it
*) sigh, and decide to use the web form to report the bug... spend a while typing in your WAR account/pass and your EA Mythic website account/pass before noticing that in order to report a bug you have to have an account
* register with, wait a few mins for site to accept your new credentials, and submit bug report
* go whine about the whole experience on your blog that only 2 people read

It's not a very fun game, so far. :)

In seriousness, though, I did get a chance to kill a couple of dwarves and get to level 2 before things got too bad. It's got some major differences from WoW... the two big ones for me are that there's no autoattack (ie, you have to use an ability from your action bar for each swing of your weapon) which slows things down with what appears to be a 1.5s cooldown between swings. I'm thinking that it's going to be tricky to get into a button-mashing groove later on and such grooves will depend on your action bar layout as much as your talents. Hrm.

The other complaint is the orc quests are written in orc "flavor" language... which is some funky hybrid of Cockney, Sottish, and gangsta rap. It's kind of difficult to tell what the hell the plot is, and tempting just to read the list of stuff you need to go grab.

The interface is pretty well laid out, and it preserves a lot of controls and features from the WoW interface, so... at least that transition has been eased. I find the compass much easier to read, and there's a lot of stuff there natively that you had to rely on add-ons for in WoW.

Not too bad.

Other than the sever, crippling lag thing. And the byzantine maze you have to navigate to submit a bug report.

Wednesday, September 17, 2008


So even though in the 10 days since I quit playing WoW I've ripped through 2 ora books, learned enough ActionScript to become dangerous, started the downward slope of a project I'm running solo on, gotten the hard logic of the S3sync tool knocked out, rehabbed my home network and got some big boy security in place.... I'm probably going to snag Warhammer: Age of Reckoning tonight.

The big diff seems to be that unlike WoW, WAR does not demand every freaking minute of your life. Also unlike WoW, WAR seems to be more realistically designed around the concept of "more is better" rather than requiring you to break up into small, specialized, and closed groups.

Got some pals (Titans of Soria) heading for Iron Rock, Destruction side (apparently the server's got a 3-1 Destruction:Order ratio.. for once, I'll be in the majority). I'm thinking I'm going to stick with my tanking tradition and go with a Black Orc.

Named Parkerlewis. \o/

Sunday, September 14, 2008

simplify, eh?

One of the things that used to amaze me in Calculus class was how you could take a fairly innocuous looking little function, apply a few theorems to it, and it would suddenly explode into this half page nightmare monster of fractions, lost negative signs, and how in the hell did a csc() get in there?!?

And yet, that was the right answer. You had "simplified" the equation by wasting a bunch of #2 lead and paper. It was as far as you could go towards getting a solvable answer with the tools at your disposal. In other cases, some small precondition wouldn't be met and you could just write down "DNE" for "does not exist" and move on to the next problem. In these cases, the correct answer was to simply give up and not worry about the problem anymore.

As I'm getting back into the swing of CLI development, I'm struck by how many situations that a programmer can be tempted to just write "DNE" and move on. In GUI development, you must constantly check for errors/exceptions, and you must handle them gracefully lest your user think that your software is a piece of crap and uninstalls it. Sometimes the error checking can be larger than the actual code to run the program (and about 7 times less fun to write). But at the command prompt... ah... we can easily punish the user for incorrect input by saying, "WRONG ANSWER! Go to the back of the line and start over!!" and escape from having to write the error checking code.

It's a seductive trap, and one I'm finding I have to stay vigilant against falling into. Today's mantra is "DNE is not an acceptable answer".

why is jill greenberg surprising?

I've gotten a bunch of emails from friends and family trying to make me aware of the Jill Greenberg controversy, and I'm left wondering: Why is it a big deal?

By way of background, Greenberg is a photographer who was hired by some rag called The Atlantic to shoot some pics of John McCain for a story they were doing. She basically didn't retouch the photos that the mag used, and so McCain ends up with red eyes and "bad looking skin" on the cover shot. She also apparently used the shoot as an opportunity to sneak in some strobe light pics that makes McCain look like he's casting an ominous shadow or something. The laundry list of complaints is here, and her response has been a sophomoric "not my fault" using the reasoning that The Atlantic knew she was anti-Bush, so it's they're fault for hiring her.

And it's impossible for me to give less of a crap. I don't read The Atlantic... didn't even know it existed until today. But even if I did, I would probably assume that the editors of the mag were just like the editors of other magazines, who are just like the editors of newspapers, who are just like producers of TV news, and who are just like the lone freaks creating the blogs I read:

Freaking biased and not above lying by omission or resorting to cheap images or loaded language to further their own agenda.

Let's face it. The ideal of objective journalism is gone, people, and it's the editors who strangled it. I give as much credence to CNN and the NYT as I do slashdot... maybe even less as at least the latter allows a forum for its consumers to debate the slant of the article.

Everyone knows this already. How can you be surprised when they do what you know they're going to do?

s3 for backups

So I'm reading up on Amazon Web Services; S3 is the current target.

What's been tripping me up with S3 is that I keep wanting to treat it like a remote filesystem... I was having trouble finding a good "model" to use for backups, but I think I've settled on using something like rsync as the answer. Put stuff you want to backup into a folder, specify a bucket, and run a program that will periodically check the stats on all files in the dir and upload anything new or that has changed up to S3.

Gonna check to see if anyone's already put something together for it yet, but if not will probably whip up a utility based on the Right Scale AWS ruby libs.

EC2 next.

Saturday, September 13, 2008

Thursday, September 11, 2008

now that I've gotten to know it better...

ActionScript has replaced javascript as the #1 Thing I Would Hate to Be Stuck Doing for All Eternity When I Go to Hell.

All these kidlets rushing out to embrace AJAX and doing some hellaciously complex stuff in js for the past 3 years suddenly makes a hell of a lot more sense.

I'm also seeing a lot of parallels between Adobe's AS and MS's AFX^H^H^HMFC stuff. I wonder if Adobe knows that this evolutionary branch is a doomed one, and whether or not they've started thinking about how they're going to handle their very own version of the VB6 developer .Net revolt that's looming in the far off future.

Tuesday, September 9, 2008

mysql replication

Found a decent howto on MySQL DB replication. Looks straightforward enough... thinking about using it for a friend's server that had to be taken offline for Gustav and that I was hosting a backup for.

Gonna need to do some checking on MySQL security, though... opening the database up to the network on a public just strikes me as asking to get hit. :)

Sunday, September 7, 2008


So. I decided not to re-up my sub for WoW. Ever. Not even for the expansion.

I'm hoping to return to more mainstream hobbies now.

Like hacking on AWS or creating specialized appliance-style Linux distros. Or maybe watching every single episode of Airwolf on hulu.

Hmm? What's that? Spore's out, eh? Hrm...

Saturday, September 6, 2008

here's some rock and some roller

Andy Freeland - We Want Your Soul

And, yes. I'm aware that I'm posting a link to a video about the dehumanization of people through mass marketing being E-ville(tm) on a free blog hosted by a company whose primary source of revenue is automated, wholesale mass marketing. I just wanted to see how high we could get the irony meter to go.

And I like the hook for some reason.

Friday, August 29, 2008

a language too far

So I'm learning Flash now.


Please shoot me if I start talking about my new Prius, the Dave Matthews Band, or how I wished there was a Starbucks closer to where I lived.

Tuesday, August 26, 2008


Some science dudes have put out a quick report where they used Google Earth to check out pictures of cows, and have found that 2/3 of cows will align themselves pointing towards magnetic north... assuming no overriding conditions exist (ie, arctic wind, rabid wolf, etc).

I wonder how long it takes before Bear Grylls finds a way to work that factoid into a show. Although, I guess, there can't be really be that much Wild to versus if you're near cows in the first place.

Saturday, August 23, 2008

LHC about to kill us all

CERN's LHC is about to fire up soon, and that means before too long one of three things will happen:

1) we'll have the first evidence Higgs particles exist
2) we'll have more evidence of Higgs particles not existing
3) the universe will implode as the creation of antimatter sparks a chain reaction tearing apart the fabric of space and time itself

One of the biggest questions in cosmology is, "What existed before the Big Bang?"

It is my hope that the answer is not "an anti-Earth that had anti-Europeans who spent an 60 billion anti-euros on creating an anti-LHC". :)

But, what the hell. Here's to hoping we're all here after they flip the switch, and a geek rap video about what they're doing:

Wednesday, August 20, 2008

catch 22

And while we're talking about stuff from novels here....

I had a chance to finally scratch Catch 22 by Joseph Heller off my Stuff to Read(tm) List.

I wish I hadn't, because now that I have I keep grinding my teeth everyone uses "catch 22" when they're talking about a paradox. A chicken-or-egg situation. In order to get venture capital to finance development of your software, you need to have developed your software. That kind of thing.

But the real definition of a catch 22 is revealed at the end of the book: those who are stronger than you can do anything to you that you are unable to stop them from doing. The problem isn't that the rules don't make sense... it's that you have to obey any rules in the first place. Or, to put it even more concisely: might makes right.

Heller's solution to the problem? Fscking flee. Get out from underneath the power behind the rules and remove the constraint altogether.

It's a good book, I highly recommend checking it out if you haven't.

on the gripping hand

I think I caused some confusion with the last post.

I'm not opposed to "version 2.0"'s. I fully recognize that there are business constraints on any software development project, and that a lot of times you can't implement functionality that's needed in the time you've been given. So you get the software into a useful state and save the stuff you can't get to for later releases.

No problem with that, we're all in agreement.

But, there's also a finish line with any software development project. A point where it does what you need for it to do. It's functionally complete, and the only way to justify further development is to create tangential features that don't really do much to boost the functionality of the software.. it just adds bullet points for the marketing people to put on the box. You're no longer solving a real problem: you're attempting to turn a final-purchase sale into a subscription.

That's what I don't get.

If you've got a long list of new "features" that truly need to be added, then you need to take a step back, reassess the problem, and figure out where your software fails to solve the problem, and start from scratch (from an infrastructure standpoint... I'm not saying you chuck out all the useful algorithms or recode UIs) for the next generation of the product.

Monday, August 18, 2008

on being an engineer motie

There's this book by Niven and Pournelle called The Mote in God's Eye, right? It's got these weird little aliens in it called Moties that have 3 arms, a population problem, and a rigid caste system determined by genetics. The moties with brown fur are the Engineers, and basically aren't too creative but can work wonders with materials on hand to build something new.

Technology for the Moties, then, is not a static deal. When something ceases to be useful, it's cannabilized for parts and used to assembling something that will be useful. There's not much aesthetic or art to what the Engineers create.. it's truly function over form. In short: Brown Moties always, always leave the cables dangling out and never, ever put the lid back on.

Being a system developer type, I'm kind of inclined towards the Brown Motie way of building things. The important things are how elegant the ORM scheme is to use, whether or not the data structures make sense, and what functionality your API gives you with the least amount of effort (and distraction) possible. Why are we quibbling about where the submit button goes or what the background color for the input box is? How on earth is getting an iTunes icon setup a bigger, more noteworthy accomplishment than integrating the authentication and authorization systems between a CMS and forum software? WTF do you mean by "version 2.0"... is this specification not already feature complete for the task at hand?

I swear, you mundanes make no sense to me.

Friday, August 8, 2008

rackspace ipo is a done deal

Rackspace's first day of trading ended with shares at $10. IPO price was set at $12.50, so that's a loss of around 20% in value (and I'm pretty sure a lot lower than what the shares were valued at internally when it was still private). While I don't think it was ever reasonable to expect the value to skyrocket to $200/share (I mean, it is just webhosting after all), I think $10 is a little unfair by the market. Interland suffered the same fate during the start of the dotcom implosion... and there's no way in hell I'd ever equate the value of the two companies.

On a personal note, assuming that I'd stuck around with company, could exercise my options at the strike price I had for today's closing.... I would have made more money if I'd gotten an $5K bonus each year than from the IPO. Moral of the story: cash over stock, kidlets.

But any rate, congrats to the folks still there... enjoy the payoff :)

Tuesday, August 5, 2008

moar bananas pleez kthx

Biologists have discovered an estimated 125,000 gorillas belonging to a group that's currently on the endangered species list.

It's clear that these gorillas aren't endangered.... they've been amassing an ape army all along.

Mark my words... we're only 2 short steps away from Dr. Xaius and the Monkey Bunch here, folks.

Monday, July 28, 2008

screw teron gorefiend

Earlier in the day on Sunday, one of my guildmates mentioned that since I'd expressed some interest in the Lich King beta information he was wondering if that might mean I'd reversed my decision to leave the game in September. I told him no, he was skeptical and asked "but why?", I got busy with some other stuff and didn't end up answering him.

Later that night, we get to Teron Gorefiend for the first time. The gimmick in this fight is that T-dawg will place a curse on a random player that will last 60 seconds. At the end of the 60 seconds, the player "dies" and is immediately turned into a ghost. 4 bad guy ghosts (constructs) also appear around the dead player, and they start running for the rest of your raid.

You have to try and destroy the constructs before they run up to the rest of the living players in the raid and start attacking them because the constructs are invulvnerable to all living players. As a ghost, you get some slowing spells to fight them... if you do it quick and do it right, no one in the raid will get hurt. If you fail and they make it to the raid, everyone dies and blames you.

It's tricky, but not impossible to pull off.

But here's the rub: there's no way to prepare for that part of the fight.. or to see what glitches might occur during the transition.

When you get turned into a ghost, your user interface is replaced with a new one with the ghost spells. If you are using the standard bar menu that Blizzard provides in the game, any macros that you had made are wiped out and you have to spend a few seconds trying to find the right buttons to hit on your new action bar (which is enough time for the constructs to get into the raid and start killing people). If you are using a customized bar menu mod (like Titan Panel) then this doesn't happen.

We spent 2 hours trying to figure out why some people were having problems and others weren't as the raid coordinators were using Titan Panel and trying to explain it in terms of what was working for them. Most of the folks in the raid weren't, however, so what they were telling people to do was actually causing confusion and getting us killed. When we finally got it sorted it out, we managed to drag Teron down to 30% health before we got overwhelmed, wiped, and weren't able to run back in because trash had started to respawn.

So... what's the point of this wall of text?

That a fight that we could have gotten done in an hour cost us 2, and we got nothing for our trouble. The fight was obviously designed to retard progress by presenting a challenge for the first guilds, but the flaw in the design is that now its technological glitches are tripping up newcomers and denying them anyway to find out about the glitches until it's too late.

In short, Blizzard has managed to engineer another a week of subscriptions through poor design.

And I tell you all that so I can tell you that when we figured out why people were dying, I sent a message to my friend saying simply:


how do you search the web?

Short version blurb about search engines: google's an index, yahoo is a directory. Go to google when you want to learn more about a subject, yahoo when you want to find specific information on something you already know about.

Today a 3rd contender has launched: cuil (pronounced "cool"... thank you web 2.0 phonetics). They're deal is that they index, too, but the results are presented in a "magazine" layout. The page is meant to be read left-to-right instead of top-to-bottom, and they wedge in images from the sites that the blurb they show you came from.

From my quick survey of it, it looks interesting and has the potential to fill in the 'research' niche. Let's you quickly browse through pages and figure out what's relevant and what isn't. Also, they're supposedly focusing more on the content of the page instead of page rank for their search results, so the idea is that you're more likely to get pages about the subject your looking for rather than 50 copies of some SEO's honeytrap site designed around getting you to click on a banner ad.

Cuil's also saying they won't be tracking user histories, which raises the question of "just how do they expect to monetize and subsequently profit of their search engine?"

Will be interesting to see how it works out. Don't think it'll replace google, but it's nice to have some options.

Thursday, July 17, 2008

so much for android

Back before The Crash(tm) on the older blag, I had a post about how I was interested in Google's Android platform. Based on Linux, Java APIs for hardware access, and some neat abstraction for stuff like location (can use either geolocation off of wifi network, builtin GPS transcievers, etc)... what wasn't to love?

Except for the fact that it was software without any hardware behind it. Originally, we were supposed to see phones in Q308, but that's starting to look like it'll slip. Providers are being jackasses because they don't want free messaging via XMPP to cut into the if-they-had-a-gun-it'd-be-robbery pricing on SMS. Phone manufacturers are balking at some of the requirements.

And now we find out Google's only issuing updated SDKs to the 50 participants of their Android Development Challenge.

So, nuts to that... It's gonna be the same story, different kernel as all the other phones. Time to give up and snag an iPhone. :)

Tuesday, July 15, 2008

dr. horrible is live

Finally got a chance to watch Act I of Dr. Horrible after the site was hosed earlier today.


The actors do a good job of selling their emotions and the writing is pretty clever.

I definitely hope this goes on for more than just the 1 episode. :) Can't wait for Act II on Thursday.

Friday, July 11, 2008

O_o napster support is pretty awesome

2 posts ago, I used Napster as an example of my main beef with DRM: when the provider can't (or won't) authenticate your access anymore, you lose the content and thus you're renting it instead of buying it.

I just got an email from Napster's support team with instructions on how to fix the problem and who to contact if it doesn't work out.

What's amazing is that the previous entry was the only place I'd mentioned the problem... I hadn't created a ticket or anything because I wasn't really concerned with recovering the music. They just found the post, figured out my account and the tracks, setup a ticket, and sent me instructions. Within 2 days.

That's some pretty fscking impressive customer service, fellahs. :)

let me tell you about my boat

I ran across this story about some folks who apparently haven't learned anything from the Jaws movies (great white sightings + kids regattas = bad news). Eric suggested that I blog about it so I could retain my status as intarweb shark attack expert, but I'm kind of over that.

Instead, here's a video clip from the making of The Life Aquatic by Seu Jorge covering David Bowie's "Life on Mars" for a scene. In Portugese. He shows up in the background doing this a lot in the movie, and it adds a nice sense of surreality to it when you hear something familiar but kind of "alien".

Plus it sounds pretty cool.

Without any further jaw jacking:

Wednesday, July 9, 2008

back on steam, but the account is empty

Purely digital distribution is nice for a lot of reasons, but the one drawback is huge.

In 2005, I purchased the album "With Teeth" from Napster for $11. Cheaper than buying the CD, but it was great in that 1) it allowed me to make an impulse purchase, and 2) I was able to get the music on my workstation (where I listen to about 95% of music). The drawback was that it was DRM encrypted and that now, 3 years later on a different PC, Napster has "forgotten" that I purchased the album and thus I no longer have access to the tunes -- unlike purchasing a CD, I merely ended up renting the music for a couple of years.

Same deal with Steam. It's an awesome content distribution system that has grown a huge library of available games and has gotten to the point now where you almost have to wonder if Valve is making more money as an online vendor than they did as a game developer. I purchased Half-Life 2 off of Steam the night it was released and was able to play the game within less time than if I'd jumped in the truck and driven to Wal-Mart for some 2am shopping.

The only problem is that now, 3 years later, I have an mild interest in replaying part of the game but am out of luck because I forgot the clever username/password combo, and don't remember what anti-spam address I gave them during registration time. From a self-help perspective, there's no way to recover the account. I don't have a CD and thus no CD key to use. Fortunately, the fact that I thought about all this before consciously making the decision to purchase (I guess "rent" is a better word now) the game and that this was the only game on the old Steam account have made it fairly painless to walk away from.

But it does give me a moment's pause when considering spending $20 on other casual games they have for sale there.

Tuesday, July 8, 2008

depressing thought for the day

A lot of hay has been made that President Bush has a low approval rating, shedding 9 percentage points since January 2007 and hitting a current low of 32%.

Now the congress critters have hit single digit approval ratings. Yes, they're at 9%.

That's bad enough by itself.

But keep in my mind that both of the candidates from the major US policital parties that are up for election this year are, indeed, Senators and thus members of that 9% bunch.

Monday, June 30, 2008

my days as an epic'd out prot warrior are numbered

I got a note the other day letting me know that my tri-monthly subscription to WoW was successfully paid and that I was free to continue playing until September 8th.

Don't know what it was, but that made me realize that playing the game isn't really fun anymore and that while the expansion offers hope of change and some freshness:

1) there's still no hint as to when it will be released
2) the shine will wear off in a month, then it's back to the grind and scanning patch notes to try and figure out where the cheese got moved to this time

The fact is, I've done everything that I wanted to do in WoW. I've seen the parts of the game that only 13% of the player base has been to (and with a trip to Sunwell tonight, will join the 7% club). My gear is mostly outranked by only T6 stuff, and even then only slightly. And most significantly, it's a pleasure to play with the other folks in my guild... there's a level of teamsmanshipiness that I haven't seen in a long, long time.

But the problem is that the game itself is pretty fscking boring now. Taking down a raid boss isn't really a matter of "how?" but rather "when?". Instance runs are basically just a matter of calling out a series of plays from the playbook, tactics depend more on the specialization of the other people with me than what the monsters can do, and party wipes are merely annoying moments that slow down the run rather than crushing defeats.

There's just something wrong when your team downs the Curator before he finishes his first Evocation round. It feels about as rewarding as beating up a 13 year old.

And so, barring meeting a Spurs cheerleader with a thing for guys who play undead prot warriors, I've decided to let the subscription run out in Sept and find something new to obsess over before I get to the point where I can't even stand to login anymore.

The question now is... what next to conquer? ;)

Friday, June 20, 2008

new website idea

How about a site that just adds captions to pics pulled off of drudge report?

About 30 more of those, slap some google ads on there, and we got a $300 million valuation!! \o/

Wednesday, June 18, 2008

where was that agile stuff?

Hackaday posted a link to's online copy of Code Rush... a documentary about Netscape open sourcing Navigator and creating Mozilla. The amount of progress over the past decade on this code base is truly amazing when you step back and look at it from a historical perspective.

What I think is interesting is that you get a glimpse of the development process, which appears to be: controlled chaos. The only real metric they used was simply "are there any bugs left".

When I look at how much time we spend today fussing over which methodology to use or having to make "business cases" for the existence of software devs on the payroll, I can't help but wonder if the task of trying to explain and quantify software development in business terms isn't killing progress in getting-stuff-done terms.

Maybe getting to zaroo boogs is the only thing we should really be tracking because maybe that's the only thing that matters.

Tuesday, June 10, 2008

handling xml in .net

For some funky reason, MS has decided to only offer two extremes when it comes to dealing with XML. You may either use the XmlTextReader method, which requires you to create your own parser from scratch, or you may use XmlDocument, which reads everything into memory and gives you a tree to work from. The problem with XmlDocument is that it will toss an exception on "malformed" (but acceptable to other XML parsers) XML.

It quickly turns into a gooey, tarry mess... especially if you have a 6000 line xml file that you know is malformed and you're trying to read it into a program so that you can fix it. /o\

I found a tutorial on how to build a simple DOM parser (along with sample code) in C# that helped me stop thrashing around with the nuances of XmlDocument and get going in about 20 minutes. Perfect for the Perl/Ruby/Python hacker caught in this strange world of strong types. :)


So this past week, I've been hammered with a project that was "beneath muh skillz"... hand fscking editting HTML. A lot of HTML. It had to be done by hand because it was one of those situations where there wasn't a repeating pattern to latch onto. Each change needed human judgement to determine what the right thing to do was.

The mission at hand was rescuing a federal agency from a Congressional mandate. As of June 30th, federal agencies are expected to have their websites "508 compliant", which means that they have to be "accessible". Accessibility is generally the practice of making software or content available to someone who has a handicap such as being deaf (or maybe just partially deaf) or blind. Blindness is the big one because a website has to be convertible into text that can be read by a text-to-speech program or a braille terminal.

We managed to get a lot of the site fixed, but there was still the fundamental problem that certain content was just designed in a way that it's nearly impossible for someone stuck having to read a page from top-down, text only to use. Stuff where you click on a button and hidden caption text magically coalesces back into existence under an image in the middle of a page presents a real problem.

This isn't a call to arms or anything. I'm not demanding that we scrap Web 2.0 and head back to black-and-grey pages. But I do think that designers need to start thinking about it more and keep it in mind as they do their thing so that when they make choices the exclude entire segements of the population it's at least a conscious decision whose consequences can be noted (and possibly addressed later on).

Friday, June 6, 2008

nicest car thieves ever

Horrible news: the cops found my car.

It was sitting in front of some lady's house off of Culebra. About 2 blocks away from gang land and a bunch of seedy looking muffler/used tire stores.

Worse, there was no damage to the truck. Anywhere. It was almost as if they had a key or something. No windows smashed, the steering wheel housing wasn't jacked up, not even a scratch on the ignition. The trip odometer had 57 miles on it, and they left me with a quarter tank of gas.

But hold on, it gets even worse. :( They left a leather jacket, some jumper cables, and a toolbox. They did score a broom, a couple of cd's, and smoked my last 3 Marlb's, but they were also nice enough to take out the garbage (Mickey D's and Sonics bags) I'd left in the backseat.

Even the spare tire's still there.

So why is this bad news? Because my car getting ganked obviously wasn't part of June's master plan. :( And that means, the ides haven't made their play yet.

Seriously. Who's ever heard of car thieves that actually clean your stuff up and only steal stuff worth less than $7?!? The only way it could have been better is if they'd taken it to a car wash and parked it back in the original spot.

Ah, well. In honor of the reunion and by way of saying, "Thanks for not being more of a dick than you had to be about this and I'm sorry for asking God to give you brain cancer every night this past week," here's some Gary Numan:

Monday, June 2, 2008

I hate june with such a passion

So, this Shakespeare dude once wrote a play about Julius Caesar getting jumped by 12 senators or something. The most famous line from that play is "Et tu, Brute?", which is what Caesar (who I have to imagine is feeling kind of low about being knifed by 12 dudes) says to some dude named Brutus.

A slightly less famous line is "Beware the Ides of March", which is supposed to be some dramatic foreshadowing of the knife attack... ides is the middle of the month, and Caesar is teamkilled in the middle of March.

For me, it's been the Somewhere Around the Ides of Fscking June. If something unfortunate is going to happen, this is when it always seems to hit. Deaths of folks I care about, car wrecks, sickening crunching sounds coming from my ankle, system compromises, and Martian Crust Devils launching an invasion of Earth. All happen in June.

The Ides got off to an early start this year by having me do my own little rendition of "Dude, where's my car?" when I tried to leave for work this morning. 2 months ago, I'd finally snagged a Trailblazer LTZ with the color I wanted, the exact perfect feature set, and managed to finagle a more-than-reasonable price for it. Looks like someone else thought it was a good deal, too.

So I got to spend the day talking with cops, insurance people, and car salesman to get a replacement lined up. Ended up heading back behind the wheel of an F150, and I'm back in the land of V8's and wide turns. \o/

And I'm fully expecting this sucker to explode in a ball of flame on the 15th.

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?

Tuesday, April 29, 2008

rackspace ipo

Apparently the S-1 got filed yesterday, and it's an illuminating read:

  • you get a short history lesson on Henry Ford ;)

  • it costs $28,761/month to rent out the 6th floor

  • the remaining founders' names only appear once in the entire document

  • operational costs are trending around 1/3 of revenues (except in 2006 when they were about 1/4)

  • due to incentives from Windcrest, Bexar County, and the State of Texas, RS needs to create about 2,500 more jobs than it currently has (probably more, since it's committed to 4,500 employees at the Windcrest location by 2012), and median salary has to be at $56K

  • executives and officers control around 45% of the stock, about 24% (counted as part of the 45) belonging to Graham Weston

To the folks who are still there, congrats and I hope the IPO goes well. :)

hardware upgrade

For the first time since 2005, I've finally got a new system. Actually, due to hardware prices being low, I got 2 (and for less than what I paid for my old workstation. I snagged a couple of Intel Core2 Quad Q6600's from Ascend Tech with 4GB of mem, Nvidia 8400GS vid cards, Audigy sound cards, DVD-ROMs, and 160GB SATA drives. I opted to go with prebuilt systems because it was actually cheaper than getting all the parts seperately.

This was the first time I'd purchased anything from AscendTech. It took a little while to get the systems (about 9 days.. UPS ground delivery, 2 days for build, 2 days for burnin), but everything arrived well packed and ready to roll.

The big feature I was interested was that these CPUs support VT, and I wanted to play around with how that works in Xen. I'm currently installing XP Pro 64 on one, and have decided to try out Ubuntu's Hardy Heron release.

I ended up setting up a PXE installer on my old workstation to handle the Ubuntu install. Other than me pooching the DHCP configuration and an installer package dependency error, the install went fairly easily. I ended up going with a base X system and plan on adding packages as I need them. Haven't had time to setup the Xen kernel yet, and it'll be interesting to see how their apt system handles the Nvidia driver package.

For the Winders side, the install was just like every other: Put in cd, wait, wait, press a few buttons, wait, wait, press a few more buttons, reboot, wait, wait, reboot, etc. XP64 can luckily run 32bit programs, so I was able to get the staples installed: Firefox, pidgin, msys, python, perl. I left the machine in the process of downloading WoW (5GB of stuff to download!!) and MS VS 2008, planning on slapping XNA on it later. I also got blender on there. Gonna be interesting to see how well everything runs.

Sunday, April 27, 2008

nerd warning sign #12,572

When you watch Cloverfield, you catch yourself getting pissed off at Hud for not holding the camera steady and getting a better shot of Big Monster(tm) so you could study it better, but then that gives way to you wondering what kind of metabolism it has to let it knock down freaking skyscrapers and spawn thousands of those terrifying little bug soldier things when its only food source appears to be the random human fleeing from it that it occasionally snags and by the way, didn't the grumpy prof you had in bio 101 say that there's was a limit to how big any cell (and consequently any organism) can get due to the constraints of physics?

Sorry, but I found the creature 100x more fascinating than 20-somethings running around yelling, "Ohmigawdohmigawdohmigawd". Amirite?

Friday, April 25, 2008

but on stage call me dynamutt

Today's Friday video comes from A Tribe Called Quest, with some help from De La Soul.

Wednesday, April 23, 2008

absolutely nothing

This post is about absolutely nothing.

Except testing out the python feedparser library.

Tuesday, April 22, 2008

this can't be a good sign

Over the past couple of years, every time Stephen Hawking's name has come in up in a news article it has mentioned his advice that we become a starfaring civilization. While he holds exploration up as a good reason for this, his main point is that if we don't get off the planet we're more likely to be wiped out as a species by a planetary disaster.

It makes me nervous when a guy who's smarter than me and makes his living as a cosmologist starts showing signs of obsessing about space travel for the purpose of surviving epic Newtonian diasters...

Monday, April 21, 2008

sorry, I don't see the lock-in

One of the big complaints about google's App Engine was that they were trying to induce some sort of vendor lock-in by requiring the use of their python libs. After having stumbled through the getting started guide, I don't see what the foundation for that complaint is.

The way this works is that python has something called the WSCGI (google around for the spec for more info). This basically allows you to route web server requests to different portions of your python code. It's kind of like having "dispatch.cgi" embedded into Apache for a Rails application. From a programming standpoint, you simply route URls to functions, and since WSCGI is a python community standard it's the same thing that stuff like Django uses. Other than support for BigTable (which I suspect can be ORM'd out of the way) and gmail account authorization (which you can sidestep if you want to do something like run your own LDAP service on a remote server), there's not a whole lot in there that's trying to pin you down to google.

The only thing I see that's going to trip up the rails and php folks is the lack of anything similar to WSCGI in those communities.

the black temple is now tainted

On of the huge injusticies...nay, travesties of the World of Warcraft 2.4 patch was that it removed the attunement process for entering some of the higher end raid instances. The 7% of the player population who had worked hard to go through the attunement process were ticked that any scrub off the street could just waltz into the Mount Hyjal or Black Temple zones and start killing stuff.

Tonight, I was that scrub. I also got the position of off-tank by default, since our other experienced warrior stayed spec'd for mortal strike and we were missing our prot paladins.

No boss kills yet, but I think we have Naj figured out. Also, the trash hits hellah hard. A lot of folks in my guild are in dire need of equipment upgrades before we can stroll through BT content, but it was fun to join the exclusive club of folks who've run out of pots and stamina food trying to get the rhythm of the Naj fight.

Sunday, April 20, 2008

my numbers, my lucky numbers

Tonight's Friday Video on a Sunday Morning(tm) entry is the incredibly difficult-to-describe "Pure Genius" by Tweaker with David Sylvian on vocals. If drifting off to sleep at 3am after a full night of mad scientisting had a soundtrack, this song would be it.

Saturday, April 19, 2008

in like flynn

There goes my free time. :)

Only drawback seems to be that appengine is tied to my gmail account, so I can't share access with other folks. I think. Haven't read any docs yet, but will be checking it out later on tonight.

Thursday, April 17, 2008

and some pics

actually, I lied

Surface is on display today (at least in San Antonio).

Some key things to keep in mind is that it's not really a touch screen. It uses IR cameras to figure out where you're touching the screen, so the one-handed pinch move that works on the iPhone is kind of flakey on Surface... it works better if you use the index fingers from each hand. Also, the system isn't fully functional. It's currently reading information about phones off this huge pack on the back of the phone instead of over bluetooth. This means that the cool stuff about being to pull up your photo album from your phone and sort through it on the desktop doesn't work today (but I was told they're Working On It(tm)). Lastly, the input can get kind of laggy if you're moving fast (tossing windows around, have 2 people resizing multiple windows) and MS's version of Maps isn't too very snappy.

Overall, it's pretty cool to play with multi-touch on a non-portable device. AT&T is using it a promotional tool to help customers get more information about their different phones. Basically, there's no need to ask a sales rep, "Does this have 3G?" anymore... just toss the phone on the desk and check out the feature list yourself. The interface is pretty intuitive, and this is a perfect application for the technology.

We managed to get a quick video of me monkeying around with the display, but right now it's only playing in VideoLAN's VLC player... quicktime and WMP don't seem to like it. Here's a link, and I'll try to get a transcoded AVI up later on tonight.

update: Here's a version encoded in h.264 that should be good for QT and WMP. Or, on youtube:

MS surface to be on display in SA tommorrow

Microsoft's Surface computer will be on display in San Antonio tommorrow according to Boy Genius.

Gonna try and find out when they open up and slide in there.

Wednesday, April 16, 2008

creative rick rolling

Genius. :)

sims franchise hits 100 million

Cnet's got a story about how the Sims franchise has shipped 100 million units. If you assume sales at around $30 per box as an average (to account for folks purchasing from the bargain bin), that's... $3 billion.

For a franchise whose core concept is basically playing dolls.

Something else to keep in mind here is that for a "triple A" title, selling 500,000 units is considered Pretty Darned Good(tm).

Maybe there's more money to be made in letting players dress up their avatars and "socialize" with others than there is in machine guns, misanthropic aliens, and grumpy dragons. Or maybe the Sims just did an excellent job of appealing to a wide range of casual players by not really having any objectives in the first place. What will be interesting to see is if this is repeated with Spore (which should be released later on this year).

Tuesday, April 15, 2008

oh hai!!

Can has my networkz?

At least this cable modem isn't as crappy as the last one I had from Motorola.

Also... a special thank you to Linksys*cough*Cisco for hiding the default IP address for your 802.11n router. Most other people put that sort of stuff in an insert in the box or up at the top of the PDF. :)

Despite your best efforts, however, my shelf'o'compute is online now. \o/

Friday, April 11, 2008

more progamming crazy ivans

A while back, an old friend I hadn't talked to in a while asked me what I was up to in a phone conversation. He knew me back in the day when I was all about Linux and generally tried to steer away from anything Windows (except for playing a few video games). Thus, he was
truly shocked when I informed him that I was messing around with and thinking about using it as a platform for a project.

There was about 10 seconds of dead air on the phone. I imagine he spent the time checking the calendar to make sure it wasn't April Fools, then checking his cell phone to ensure he'd called the right number. He then asked if I was kidding, to which I replied "Negative, Ghostrider."

Now. As big of a shock as that was, here's an even bigger one. I've recently been forced to pickup Python and, with the help of 10 minutes of expert tutoring, achieved some minimal amount of zen on the language. It's still not my first choice, I still hate whitespace-is-important, the documentation is still missing something, and I'm still peeved that int's aren't really objects...

But I have to grudgingly admit that it's not plague on humanity I once painted it as.

So. My bad for burning all those pythonistas at the stake over the years. I feel just awful about it now.


Stolen shamelessly from a voice over in Confidence:

Jack Kerouac said that if you own a rug, you own too much. I don't necessarily like Kerouac and driving cross country isn't exactly my idea of a good time, but the guy's got a point...

i first produced my pistol

Continuing on with the tradition of Sporadic Friday Morning Music Video Posts(tm), here's Metallica's take on Whiskey in the Jar

Yeah, yeah... the Thin Lizzy version is better, blah, blah. It's one of the few decent Metallica songs since they got haircuts, sought therapy, and started suing their fans, though.

Plus I think the song sounds better with the faster tempo.

Thursday, April 10, 2008

google app engine

Google announced their App Engine service earlier this week. I didn't make it into the first 10,000 who gets to monkey with it, but I don't really have any firm plans for a project that would be useful for it right now, either.

The announcement has been met with a lot of negativity, though. Aside from python winning the bragging rights to being the first language supported by app engine, a lot of other folks are worried about the whole "google took muh data!" problem, "vendor lock-in" from the Rails and MS crowd, and the occasional "but it doesn't do backend processing like EC2 so you couldn't build twitter with it" point (which has some merit).

As far as the trust thing goes... unless you have a DS3 running into the closet where you're storing your 40 servers, chances are you're already trusting your content to someone else anyway. I don't see vendor lock-in as too much of an issue, either, since the only truly google-only feature is BigTable support (which you can only get to through the python API), and I think we can expect that to be abstracted into an ORM pretty quickly. Backend processing and access to the filesystem? Well, then, make REST requests back to a server not running on App Engine (like, say, an EC2 instance?).

The fact is that App Engine is poised to take away the single biggest nightmare for small developers who have big ideas and limited cash: infrastructure. Over the past couple of years, I've talked with a number of folks who are looking at whipping up the next social networking site and have even looked at doing a couple of my own. The big stumbling block from an architectural standpoint always seemed to be the catch 22 of infrastructure at the tipping point where you go from being a cool, underground, niche site into something that's getting hammered on by thousands of people.

Scylla is that you ignore the scaling issues until you actually have to deal with them, which means you're going to be stuck rewriting your site right as it's hitting the tipping point and the massive amounts of new users that you'll need to be successful are forming their first impressions: not a good time for "request timed outs". Charibis is spending the time to architect the site to scale before you launch so when (if) you get the traffic, it'll be as simple as just calling up the hosting provider and adding more boxes. Most web Oddyseuses opt for the devil over the deep blue sea, and a lot of them end up folding when they find they don't have the resources (or money to hire the resources) to survive the onslaught of new users Not many make it to MySpace/Facebook/Digg land.

If you're a one-man shop (or even three-man) who's doing this more as a hobby than a lynchpin for a Web 2.0 business plan, success is almost something to be avoided and you end up praying that if digg or /. ever does take note of your humble project that your code will cause the server to fail before too many of the new visitors see enough of the site to want to come back on a regular basis.

App Engine, assuming it lives up to the promises made in the presentation, basically takes that worry off the table. Don't sweat the infrastructure, and just focus on the code and the stylesheet. And on top of that, the pricepoint is "free"? Yeah, that's worth studying up on python for. It'll make experimenting with ideas a hell of lot less risky by punishing success less.

Tuesday, April 1, 2008

or maybe not outsourcing

Got an email yesterday from informing that their advanced spam detection AI had flagged this as a potential spamblog. I'm guessing that my nasty habit of putting href's in to sites for software and services I'm talking about was what did me in.

Any rate, the process appears to be thus:

1) you are accused by the bot
2) the account is locked out
3) you are sent an email giving you a link to click on to request that your blog be reviewed
4) wait until someone gets around to it (possibly up to 4 days)

I don't really blame blogger as spam is a huge, huge problem and spammers have proven to be resourceful enough to adapt to whatever antispam measures we come up with. I'm happy to not have to deal with the maintenance aspect of leaving a piece of PHP code flapping out in the wind (with a database behind it, even).

What's new is suddenly being at someone else's mercy.

It got me to noticing stuff like there's no (obvious) way to insert jump breaks into posts. Or wondering just exactly you go about backing up posts. Or categories to organize content.

Maybe this is getting back to the old idea of "I should probably be using a wiki". Either way, the concept of distributed/outsourced services isn't looking quite as hot to the control freak in me as it was on Saturday night.

Sunday, March 30, 2008

bye apache, hello lighty

One of the things that I'd wanted to clean up was jettisoning Apache as my web server. In 2003, it was the cat's pajamas and the only real choice if you were interested hosting virtual sites. In 2008, it's an awesome and truly flexible piece of software that is way overkill for what I need: virtual name based hosting is no longer a big deal, and some of the web frameworks I'm looking at fit the CGI script model better than "runs as an embedded module server" model.

All I really need is a basic traffic cop to point people to the right resources for what they're looking for. Apache can do this, but it's kind of like using a hammer to swat a fly. :)

And that's where lighttpd comes.

It's basically a lightweight web server that can't do everything Apache can, but it's got most of the good stuff. URL rewrites and redirects, ssl support, authentication modules, etc. The config file reads more like a perl script than an laundry list of XMLish options, and it just seems easier to Get Stuff Done with it.

Right now, I've got it setup with two simple rules... if you ask for a url that ends with "" and starts with "/blog", you get punted over to this site. Everything else takes you to a temporary "we're br0kened" page via rewrite regardless of the sitename you used.