Archive for the ‘Tom’ Category

Falling Behind

Tuesday, November 1st, 2005

Damn, Ravi outnumbers me in posts 2 to 1… and I’m only level 36 in WoW. I’m not sure exactly what we might be competing for, but I think Ravi is winning.

I’ve become sold on the whole Pragmatic Programmer site, philosophy, whatever. Automated build and testings systems, for which the proper term is Continuous Integration, seem especially cool. Check out the DamageControl CI comparison site. I wanted to try out Tinderbox 2.0 which is what Mozilla is using (not Tinderbox 3.0), but I can’t find anywhere to download it. I only see how to view the interface to it on mozilla’s site. Right now I’m liking DamageControl and BuildBot. I don’t really want to run a Java system… since I don’t use Java much except when I have to for school, and I also don’t have a windows server to run cruise control.net.

In outher programming news in my life, WiX caused me a bit of pain because I thought it was more mature that it appears to be. Inno Setup kicks ass though for a Windows Installer.

Hmm… well more later… just felt pressured to post :)

Perl Switch considered painfully slow

Sunday, September 25th, 2005

The Switch perl modules is much slower than and if/elsif/else block. The below benchmark code puts it at about 40 times slower.

I used this program to generate some test data.
#!/usr/bin/perl

@options = ('a','b','c','d','e','f','g','h','i','j');

for($i=0; $i<1000000; $i++) {
print $options[int(rand($#options))] . "\n";
}

Then I timed these two:
#!/usr/bin/perl

my $a = 0;
while($line = <>) {
chomp $line;
if($line eq 'a') { $a = $a+1; }
elsif($line eq 'b') { $a = $a+2}
elsif($line eq 'c') { $a = $a+3; }
elsif($line eq 'd') { $a = $a+4; }
elsif($line eq 'e') { $a = $a+5; }
elsif($line eq 'f') { $a = $a+6; }
elsif($line eq 'g') { $a = $a+7; }
elsif($line eq 'h') { $a = $a+8; }
elsif($line eq 'i') { $a = $a+9; }
elsif($line eq 'j') { $a = $a+10; }
}

print $a . "\n";

And:
#!/usr/bin/perl

use Switch;

my $a = 0;
while($line = <>) {
chomp $line;
switch($line) {
case 'a' { $a = $a+1; }
case 'b' { $a = $a+2}
case 'c' { $a = $a+3; }
case 'd' { $a = $a+4; }
case 'e' { $a = $a+5; }
case 'f' { $a = $a+6; }
case 'g' { $a = $a+7; }
case 'h' { $a = $a+8; }
case 'i' { $a = $a+9; }
case 'j' { $a = $a+10; }
}
}

print $a . "\n";

The Mythical Sustainable Technological Advantage

Monday, September 19th, 2005

Everyone in software startups is looking for the sustainable technological advantage. Something they can do that will set them apart from everyone else. VCs definitely tell you this is something you must have. They say this is one of the main things they looks for in a startup.

Some say it is some radical new technology no one else would ever think of. Some say it is having the right team. That you may not completely know what you want, but with the right time you will discover it as you go along. And be agile enough to stay ahead of everyone.

However I believe it doesn’t exist for startups. I think anything you can do at a boot strap or seed funding level anyone else can do. Sure you may have some new idea but once you do implement the idea, it will not be very hard for someone else to copy it and there is no real protection against this. No patents don’t count. First they are generally easy to get around, and second you can’t afford to enforce it.

At first I thought maybe this just applied to software. The cheap reproduction of it meant that it was commoditized easily, like how no one pays for a compiler, operating system, web server, web browser, office suite, video editing software, enterprise CRM, etc. any more.

But this doesn’t only apply to software, … well my brialliant non-software anecdoctal example is escaping me now. But I still believe that the same applies to any industrial revolution process like the assembly line, bicycle, tractor, cotton gin, light bulb, telephone. They are pretty easy to make after someone already built it. And I don’t think that much is stopping someone from doing it.

However all is not lost. Software still sucks. Everyone is stuck in their ways. And no one has time to do anything. There is still plenty of room to add value.

Just don’t fool yourself into thinking no one else could ever do it, too. That’s just silly.

In fact this paper is probably at least half stolen from ideas I have overheard from other people at the office.

(I plan on revising this at some point. Just a quick rant right now.)

The only two places where I see people sustaining advantages are not in tech. They are in trendiness, being a fad, or having a critical mass, like Google. Or out powering people by sheer number of lines of code that is in your software, and having the software deployed to customers providing you feedback, in a sense critical mass, like Microsoft.

And even then it is fleeting fads pass. And while you are so attached to all the code you have already written and leveraging your existing codebase you miss out on new opportunities. Or something?

1.7 Patch Woes

Monday, September 19th, 2005

CrushRidge and my iMac have not gotten along well since the release of the 1.7 patch for WoW. My Connection is always laggy like 1-2seconds of lag.

Please help, Blizzard!

Newb’s Revenge

Monday, September 19th, 2005

WoW needs a trinket to fend off this ganking by high level characters of newbs like myself.

Based on ideas from discussing this around the office, I’ve decided there should be an item that has some chance of dealing 100 times the level difference between you and the attacking character (if difference greater than 10) every 3 seconds over 15 seconds.

Basically you get attacked and even if they kill you in one or two hits they should get hit with a big surprise.

So if any GM’s out there are reading this, [Newb’s Revenge] should be in the next revision.