layout hack
layout hackMain Pagelayout hack
layout hack
RSS Feed RSS Feed Main page
layout hack
layout hack
layout hackAbout Melayout hack
layout hack
Software I wrote
Resume
Friends of mine
Pictures
Musicianship
Stuff I have for sale
layout hack
layout hack
layout hackPersonal Newslayout hack
layout hack
2010:
March, April.
2009:
January, March, August.
2008:
Jan, Feb, Apr, May, July, August, September, October.
2007:
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
2006:
Jan, Feb, Mar, Apr, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
2005:
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
2004:
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
2003:
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
2002:
Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
2001:
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
2000:
Jan, Feb, Apr, May, Jun, Jul, Aug, Oct, Nov, Dec.
1999:
Jan, Feb, Jun, Oct, Dec.
1998:
Jul, Aug, Sep, Nov.
layout hack
layout hack
layout hackGeek Stuff (computer related)layout hack
layout hack
Digital Music
Java
Why LiveWire Sucks
Why ASP Sucks (a bit)
Linux
MacOS
Unix
Oracle
Perl
Emacs
O'Reilly
layout hack
layout hack
layout hack(some of) My Interestslayout hack
layout hack
Humor
Sony Playstation
Cars
layout hack
layout hack
layout hackSearchlayout hack
layout hack

layout hack
layout hackAdslayout hack
layout hack



Valid HTML 4.01!

spacer
July 31, 2002

A follow-up to my earlier post about the folly of "what kind of music do you like?"... in my MP3 playlist right now is Binky, King Diamond, Tupac, Tenacious D, Ozzy, Bjork, Iron Maiden, Allan Holdsworth, Bis, Genesis (old school, with Peter Gabriel and Steve Hackett), Jethro Tull, Pink Floyd, and the Notorious BIG. I don't think this kind of cross-genre taste is unusual. Do you? Run any P2P app, pick an artist or song, search for it, and then use the "find more from this user" feature to see everything in that user's collection. I guarantee you they won't be 100% country or 100% hip hop or 100% metal. It'll be all over the place.


July 25, 2002

Someone asked me about my upcoming trip to Las Vegas for the DEFCON X security conference:

> Why (outside of Defcon) would you WANT to go there?

So my friends who do the double-confirmation will shut up:

me: "I've never been..."
friend 1: "YOU'VE NEVER BEEN TO VEGAS!?!?!?!" [that's 1]
me: "Did I stutter?"
friend 1: "YOU'VE.... NEVER BEEN TO VEGAS!?!!?" [there's the second one]

me: "NO GOD DAMMIT I'VE NEVER BEEN THERE!!! ARE YOU FUCKING DEAF!?!?!"
friend 1: "Dude. I can't believe you've NEVER BEEN TO VEGAS. Whoa"
me: "If you say that again I'm going to sharpen two pencils and bury
them in your eyeballs. Seriously. You'll have graphite in your optic
nerve. Then I'll push on the eraser end, hard, and then start twirling
them, and after tha-"
friend 2: "What's up?"
friend 1: "Dude! Jamie's never been to Vegas!"
friend 2: "YOU'VE NEVER BEEN TO VEGAS!?!?!?!" [1 of 2...]
me: (starts looking around for 4 pencils)
etc.


July 23, 2002

It's really hard to debug code when it's complex, poorly written AND is all the variable names and comments are written in a foreign language.

Here are my definitions of what "developer" and "senior developer" in SF have been interpreted as over the last few years:

Developer: Can almost complete a task without asking for help. Unfortunately, should ask for help a LOT more often, but is too proud/stubborn. Spends a lot of time with nose buried in book trying to get the code working at all. Results work, barely, and are hideous. Motto: "I can do it!"

Senior Developer: Can complete tasks without help, in theory. In practice, is always Almost Done. Would be available to help Developers, but is too busy optimizing performance of the config file loader. Writes clean code that works. Has read 3 or 4 books on programming languages and is working on a book about object oriented design. Motto: "Leave me alone, I need to increase the buffer size and add more worker threads to the config file loader!"

this is fun, let's continue...

Architect: Can picture every component in the whole app and how to do it. Has debugged / ripped-and-replaced enough code to know how to write good code the first time. Has read at least 10 books on programming languages and object oriented design, and has read one or two on software development methodologies and software project management. Tends toward overly elaborate designs that are hard for Developers to grasp at first, in anticipation of massive requirements changes. Is responsible for the 15 detailed architecture diagrams on the company web site that nobody else cares about. Is at the level that CEO types think all developers are at. If the whole team were at this level there wouldn't need to be a QA department. Is sick of being told "You're too important to code." Motto: "How can I do more a bit more work now to avoid massive pain later?"

Senior Architect: Has built an app that was 50% similar to this app before, and already knows how to design that part correctly. Knows that there is no award given for Most Design Patterns Used In An Object Model. Has read at least half of the "must read" books about OO design, software development methodologies, and software project management. Dreams about having sex on a whiteboard, because they are so useful for everything else. Chuckles quietly every time someone says "we'll clean up that code in the next release". Motto: "We did this in a past project and it was really cool. Everything else about that project sucked, though."


July 18, 2002

I just spoke to my stepbrother Bourke for the first time in a long long time. I'm busy, he's busy, and unfortunately when I've gotten together with my parents in Richmond or D.C. for holidays he hasn't been there. So we haven't seen each other for a long time either. I think it has probably been at least a year! But we talked for a while and sorta caught up with the latest stuff. He was in Minority Report! No shit. I can't believe I didn't know that but I didn't. I still haven't seen it. Maybe I should see it tonight... people keep telling me it's pretty good, including one person I know who is a die hard Philip K. Dick fan who says it's "actually not that bad" or something to that effect. So I imagine that for one such as myself who is ignorant of Philip K. Dick's books :(, I'll probably like it.

Today, there's a story about Ozzy Osbourne on the cover of the Wall Street Journal. I love it!

Kim and I are moving next month. We'll be 4 blocks away from our current apartment, but we'll have our own 2 bedroom apartment instead of a 4 (well 3 1/2 really) bedroom apartment with 2 roommates. Jason has already moved out (mostly) and is in Orange County working for eBuilt. We're trying to decide if we realy need a truck, or just a lot of carts and dollies! We'll probably just get a truck. :)

Last night I went over to Joe's house to drink Scotch and talk shit with him, Sekhar, and Fiid. Joe has a new BMW motorcycle that looks Hella Cool. Sekhar is working for Apple hacking audio code that will hopefully make it into MacOS X (!). Fiid just bought a 1973 Porsche 914. We need to hang out more!

I'm taking bass lessons and music theory lessons at the Blue Bear School of American Music now. My bass teacher tells me I need to calm down and practice slowly with a metronome. I know, but the temptation to play fast is very strong. I've definitely been seduced by the dark side of speed over precision. That's why I'm taking lessons! So, I need to really be disciplined and unlearn, Dagobah style, so I can re-learn. Anyway, I hardly have time to practice since I'm working so much, and that really pisses me off. It's almost not worth taking lessons, but I really want to force myself to practice, so I've spaced the lessons out. I took my first music theory lesson last Saturday and was amazed at how quickly the teacher could write! I was barely keeping up since I had to both read and listen to what he was saying, and try to figure out how to play it on the piano (since I have no piano experience or skills at all, really). But I wanted to study theory on the Piano for visualization reasons, to help force me to think less positionally (patterns of frets and fingerings and shapes etc.) and more about just note names and intervals and chord names. That was a lot of fun. I have 7 pages full of notes that he gave me! I need some time to chew on this stuff and really understand it. It really sucks, though, that I don't have time to work on this since I'm so busy at work. But, this will change over the next few weeks, so I just have to suck it up for a little while.


July 15, 2002

SQL is fun. On my current project at work (as [software] architect), I'm playing database designer, DBA, and database engineer. That means:

  • I ran meetings with the functional folks talking about the data model requirements and asking the pointed "is it OK if a ____ exists without any ___?" questions.

  • I drew the entity relationship diagram. That's the picture made up of rectangles, lines, and text saying things like "one employee has to be in exactly one department" or "a business unit has zero or more departments" (formally called "cardinality") and defining what all the names of tables and fields will be. The leading product that does this is ERWin, and that costs about $2800. I did it initially on a whiteboard and captured it on pen and paper (2 or 3 times, as we were figuring it out), and then more permantently using an evaluation copy of SmartDraw that cost $0 (it wouldhave cost $198 to buyt it). I could have used Visio ($179ish) or one of the $500ish ERWin competitors but they all force you to make ALL the decisions about every detail of the data model as you create it, and I wanted to defer that so I could concentrate on things like "what are all the things we need to store about an Employee" rather than "is EMPLOYEE.NAME a varchar2(30) or a text or a numeric(10,2)".

  • I reviewed all the table designs with the developers when I was over in Slovenia so we got to argue about the best way to represent stuff for speed and ease of writing SQL, while still being able to meet the requirements I had identified with the functional folks.

  • I wrote all the SQL to create the tables in the database. This would have been done automagically by ERWin or whatever but those tools always jam in all sorts of strange extra stuff, and make it hard to see exactly how the constraints are defined for your DB. Also, those tools only have built-in intelligence about certain things that a database product can and can't do, and when you get past that built-in knowledge to things like data validation rules and referential integrity constraints, the GUI doesn't help you: you just get a text field so you can paste in the SQL fragment that makes up a validation rule. The tools won't check that, and you'll only find out they're wrong when you try to use the ERD tool to forward-engineer the database anyway. So I don't think they save all that much time. Maybe it'd be useful to use such a tool to reverse engineer a working DB for documentation purposes. Maybe on a HUGE project there is an advantage (such as if there are 2 or 3 database modelers working on the data model). Anyway, I got to devise and code the validation rules and integrity constraints.

  • I wrote all the SQL insert statements to put in the test data.

Writing the constraints was fun. I am a stickler for very, very rigorous error checking in code so that new code with bugs fails very quickly as old, tested code says "yuck, you can't do that!" instead of sorta kinda silently failing in an obscure way because it assumed you were handing it valid data and something unexpected happened. So that translates into a data model with LOTS of very strict constraints. That can cause performance problems in production, because every time you change anything in the database, the database server has all these rules you told it to check before accepting the change. So following some advice from Howie Spielman (former boss at Viant), I plan to take those out in production if we find that they're causing problems in performance testing. But they stay in there for development, and I fight hard every time a developer wants to remove or weaken them. That includes looking at the source code for the database installer, finding places where the developers have secretly removed constraints without telling me, putting them back in, and then Having A Talk with them about it. :)

To do that, though, I had to learn a fair amount about how SQL Server's Transact-SQL works. I had to write little things like this to test my constraint expressions:

declare @R_D_PCT int
declare @USEDEFAULTPCT bit
set @R_D_PCT = NULL
set @USEDEFAULTPCT = 0
SELECT 1 WHERE

(
 (@R_D_PCT between 0 and 100)
 OR
 (@R_D_PCT IS NULL)
)
AND
(
 ((@R_D_PCT IS NOT NULL) AND (@USEDEFAULTPCT = 0))
 OR
 ((@R_D_PCT IS NULL) AND (@USEDEFAULTPCT = 1))
)

Mmm, tasty. That bit of code was used to test my constraint code, so that I could make sure that the constraint itself was correct.

Apparently it has been proven that Mac users are smarter than PC users. Discuss.


July 11, 2002

Customers want full disclosure of security vulnerabilities according to Hurwitz Group. No, I haven't heard of Hurwitz Group either, but it's interesting research. Also, their CEO, Gary Haliwell, has a name quite similar to ex Spice Girl Geri Halliwell.

Some construction was done in the office (at work) last night. There's a thin film of dust covering everything on the 2nd floor. We were aware that there would be construction but I don't think we were aware of just how much dust there would be - we moved everything far away from the area being worked on but that clearly wasn't enough. I had to use a wet paper towel to clean off my chair enough to sit in it.

Kim was playing WarCraft III last night and complained about video performance. We tweaked the video settings and all is well. But, I was wondering why the game uses 3D at all since you can't move the camera. I looked in the manual and it turns out you can move the camera! To rotate it you use the Insert and Delete keys. Well, the old G4 keyboard doesn't have Insert or Delete keys. Oops. Way to go, Blizzard QA. I bought a third party replacement keyboard because I hate the old G4 keyboard (partially since I need to use VNC to administer PCs, and not having a Delete key causes much annoyance. But for her that sucks. The root of the problem is that some dumbass designer at Apple decided that they could just remove some keys from the 101 key standard keyboard layout, and make some other ones ridiculously small. It's part of Apple's new Form Over Function affliction. Seriously - where's the left control key? I need that. Why are the arrow keys half height (and right where I expect the control key to be)? It's not a laptop keyboard, for crying out loud. I get Blizzard's QA folks had a brand new G4 with the new standard Apple keyboard, which has all the proper keys which are all the right size, even if they are labelled strangely.


July 10, 2002

Somebody please explain to me why Akamai's business model doesn't suck. Forget for a moment that you've heard of them and liked the idea of broadband not sucking. Their service of "edge" caching doesn't really hold up in light of (a) multicasting and (b) optical networking technology. OK, so they have a patent and are fighting over the idea of caching. Big whoop, that was licensed from MIT and has been invalidated in court anyway in favor of Digital Island. But, their service really only helps with backbone and server load issues. Multicasting solves both of those issues but will take a while to roll out. In the meantime, backbone networks are getting faster and faster. Remember, once you bury fiber you can still upgrade the equipment at both ends and make it go faster. It's the "last mile" that's a so hard because twisted pair copper phone wiring sucks. As far as I can tell their entire revenue stream will disappear as soon as multicasting becomes widespread.

Holy shit, Gene Kan is dead. (CNN story) That really sucks. He was a nice guy and wrote/was involved with some cool software (Gnutella and Litestream among others).

http://www.litestream.net has been down for a long time - a year or more? I don't remember. But there doesn't seem to be anywhere else to get the source, so you can get the litestream source here. It may be an obsolete version, I don't know. Also, I'm not maintaining it, I'm just putting the source tarball out there in case somebody wants to continue working on it. Hopefully they'll host it themselves if they do. There are other streaming servers that you can use but I've never looked at them so I don't know if Litestream is obsolete compared to the others.


July 9, 2002

I just bought something on eBay tonight, in the last 30 seconds of the auction. It's called Sniping and it was recommended in a Fortune magazine column, I think. It's totally irrational and it annoys me but it works! Bidding Is My Business... And Business Is Good!

Joe says: "Okay. Reality sucks. I want a virtual universe where the Right Answer is the right answer all of the time." Yes!! "I want to confine my universe of Shit that I Care About to a universe which is congruent with the universe of Shit that I have Control Over." Yes yes!!!

I just got this email from the FDIC, telling me my NextCard credit card is cancelled because the bank folded and nobody wanted to buy the loans. Good thing I paid it off already...

There is also a closure FAQ. Interesting stuff! Also sad.


July 8, 2002

It's hot at work. It's not as hot as it is in Austin, as shown in this video, but it's hot.

Kim and I went to Fry's on Saturday to return the NetGear 8-port 10/100 Ethernet switch I bought there which just went completely bonkers last week. I mean, imagine pulp sci-fi movie blinkenlights, but on a switch, that used to work. Work work work, BLINKY BLINKY BLINK WOOO WOOO, not working. Huh? That was freaky. Looked kinda like when it powers on but 10 times as long and strange blinking patterns. Check cables, OK. Replug cables. Unplug some. Move cables to different ports. Still b0rked. Hmm... 60 seconds later, work work work work, yay it's happy again! Musta been a loose cable. Back to what I was doing. Work work work BLINKY BOO BLINKAH BLINK, not working. What the...? Unplug and plug in again, no difference. Unplug for a whole day, no difference. Replace with old inferior 10Mbit 5 port hub, all is well (just slower). He's dead, Jim. 5 year warranty, yay! Dug up reciept, got to Fry's, they say after 30 days it's not their problem, call NetGear. I was wondering if they'd make me do that, but I had to try. Plus, now I was at Fry's! With a wallet full of credit cards! Uh oh... :)

The StarCraft battle chest is now $19.95. But... WarCraft III is out, and there's even a Collector's Edition available. Guess which one we got? Guess what I did with my free time on Sunday (aside from the various chore type stuff I do every Sunday)?

I was sufficiently inspired by the extreme cheapness of CD-R/RW and DVD-R[W] devices and media to write a whole chunk of a /. post remarking on how much it reminds me of floppy disk prices in the late 80s.


July 5, 2002

Fusion Anomaly is a seriously bizarre web site. I think it's a Wiki for the LSD psychedelic-intellectual crowd, but it's hard to tell.

Prog rock rules. How many 40MB mp3s do you have? :)


July 2, 2002

Long time no blog. I worked about 12 hours a day each day last week, Workin workin workin.

Now I have database design experience in SQL Server 2000. It's not bad really, from the POV of someone trying to implement a logical data model. I was able to create the whole data model in hand-coded DDL (which is actually a pretty good way to define a physical data model, IMO) without any design compromises. The online documentation is fairly thorough. The Query Analyzer tool is nice, as is the Enterprise Manager. It's very user friendly for making databases and playing with SQL statements, and MUCH nicer than what comes with Oracle 8i. On the other hand, we had a pretty serious locking problem on SQL Server 7 that had to do with uncommitted reads, and Oracle doesn't have that problem by design ("writers never block readers"). So we'll see what the database engine is like in use as opposed to just how nice a place it is to put a data model.