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
Friends of mine
Stuff I have for sale
layout hack
layout hack
layout hackPersonal Newslayout hack
layout hack
March, April.
January, March, August.
Jan, Feb, Apr, May, July, August, September, October.
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
Jan, Feb, Mar, Apr, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
Jan, Feb, Apr, May, Jun, Jul, Aug, Oct, Nov, Dec.
Jan, Feb, Jun, Oct, Dec.
Jul, Aug, Sep, Nov.
layout hack
layout hack
layout hackGeek Stuff (computer related)layout hack
layout hack
Digital Music
Why LiveWire Sucks
Why ASP Sucks (a bit)
layout hack
layout hack
layout hack(some of) My Interestslayout hack
layout hack
Sony Playstation
layout hack
layout hack
layout hackSearchlayout hack
layout hack

layout hack
layout hackAdslayout hack
layout hack

Valid HTML 4.01!

January 31, 2004

Al Franken tackles unruly LaRouche supporter - wacky.

Need a strategy guide for your next assault on Ikea?

January 29, 2004

Apparently, "LAST CAR ON THE BART IS ALWAYS THE PARTY CAR!". Wait, is that Nader in the party car? Yes.

You know that lame story that keeps coming up in movies... "yeah, I had a really hot girlfriend I met last summer... she was, um, from Canada, yeah. We did it, but then we both went home and stuff so you'll never meet her." The old "imaginary girlfriend." Cory Doctorow reveals that there are imaginary girlfriend auctions on eBay. Pathetic? Yes. But look at the completed auctions... people are bidding. (Whether or not they actually pay, I dunno.) It appears that being a "Hooters girl" is the ultimate feature in an imaginary girlfriend, or at least the imaginary girlfriends seem to think so.

Before the internet, the pretty girl or boy had to actually dedicate face time in order to extract money from a lonely person. Now, remote internet golddigging is only a few clicks away. Well, at least it can't be one click away, since that's patented.

Yeeaaaaah Boyeeeee! it's time to wake up!

January 28, 2004

First day of classes!

All my classes seemed fun. One of them is located halfway between two floors, in a room you get to by going halfway down a certain stairwell and then entering the door that looks like a janitorial closet. Nope, it's a lecture hall that seats about 100. Did they have some sort of special clinically insane architect outreach program going on when they were designing this building? I wonder.

I think I've gotten the hang of the educational bureaucracy. One of my classes was super over-full, and the instructor said that 12 students was the max. (It's a music class that requires lots of individual instruction, so that makes sense, and makes me happy.) The instructor was quite the stickler for making sure that students met the prerequisites for the class, and had all the backup paperwork for the students on hand already. One student said "uh, yeah, I, like, auditioned for that last semester," to which the instructor replied "Yeah I give that audition and you weren't there. I would have remembered you." Suh-mack! I was about 6th in line and he came to me and asked when I had auditioned for placement in this series of classes. I said "last August." He said (with a tone of surprise) "Ah, and here you are! Done. See you next time!" There you have it. Hmm, it zeems your paperss are in orderr. Ja wohl!

Books are interesting. The bookstore has a fairly lenient return policy, so I basically bought every book I could possibly need on Monday and asked lots of questions today to make sure I knew which ones I needed and which ones I didn't. I found a few of them on but the prices weren't astounding. Nowhere else had prices that were any better than the bookstore. One book was super cheap there so I ordered it... let's hope it shows up soon. I returned $230 worth of books today.

One class is super overbooked and I've been trying to get in for 2 semesters now. I keep having some sort of unavoidable conflict during my Super Special Priority Registration Window, so the stinkin' frosh keep stealing my spot. I might get into one of the super-overbooked sessions that wasn't held today for some unexplained reason, but I doubt it. That's yet another opportunistically purchased textbook that I get to return. Next semester I vow to crush them.

When you have the ability to rate every song in your music collection (a feature of iTunes, and I'm sure many other desktop computer music apps), it's really tempting to sit at your computer for hours and hours doing nothing but rating your songs.

I have a Krups espresso machine, which Kim picked up for me at a yard sale somewhere. I've figured out how to make a decent Iced Mocha with it. The general Iced Mocha recipe involves espresso, milk or even condensed milk, and chocolate sauce. I've found that Silk Chocolate Soymilk plus espresso makes a damn good Iced mocha, and Trader Joe's chocolate soymilk, which costs about half as much, is almost as good. So I can make a 24 oz iced mocha at home for about $1 that is about as good as the $3.50-$4.00 fancy coffee shop version. (Drink one a day for a week and that $2.50 savings starts to add up, plus I can make it at home.) The only problem is, god damn I am ingesting a lot of caffeine.

As a (self-diagnosed) ADHD sufferer I don't see too much harm in that as long as I keep it down to about 2 shots' worth of espresso per day, but still... I'm thinking it might be time to try Adderall. I'm trying to stay away from prescription stuff but the more I read about adult ADHD, the more I realize that those behaviors that everybody has but which ADHD people have in absurd excess are ones that I have, big time. There are books and web sites that try to help you figure out if you have a normal degree of human flakiness or if you have full-on ADHD, and I've tried quite a few of them and keep winding up in the "gee, how do you function in society?" category. Answer: I dive into work and make a lot of money working all the time, and I use that money to buy my way out of all the problems that that causes. Except now I'm not working all the time anymore, and it's getting really hard to juggle, because ADHD people can't juggle tasks. They can focus on one task super hard for hours and hours without stopping, or they can get distracted and not do anything useful for hours and hours. So far I've managed to immerse myself in work so that I can use that focus to my advantage, but it's hard when I have to think of 10 different tasks in a day. Just when I get into something, it's time to stop and move on. Dammit. I'm trying to mitigate this with my schedule (day of school, day of work) but it's tricky. Kim is a saint for putting up with all this. Seriously, I frequently stay up for 48+ hours straight just because I'm so wound up that I'm afraid to stop or else I'll be lost for the next few days.

I'm basically afraid to stop abusing caffeine and to see a doctor, but I'm just about fed up with my own barriers of motivation and focus. I know that when I'm "turned on' I can do anything, and when I'm "turned off" I can waste days at a time, apparently without doing anything. I can spend several days straight crushing a difficult problem, or learning something complicated, but I can also waffle and not get anything done for hours and hours. It's really frustrating. I've tried a lot of non-medicative stuff and I'm not quite there yet, but I kind of wonder how much worse it could be.

Anyway, to paraphrase Bill Cosby, I told you all that to tell you this: Baileys and Espresso: why didn't I think of this sooner? Cooking was never so fun. (BTW, check out the heinous URL that you get when you go to the Baileys site!!)

January 27, 2004

SFSU has moved up its Freshman admissions deadline and is refusing to admit lower division transfer students and 2nd degree seekers, because they are overwhelmed with new applications. This doesn't affect me, since I'm already in, but it is kinda scary to see. If I had waited a year more before applying to SFSU, I'd be screwed now. Whew.

I guess as a state school, they lose money on every student who is accepted, so in a budget crisis, after all the departmental cuts have been made, there's nothing left to cut (or cap, in this case) but students. Enrollment was already at record levels last fall, tuition was increased, and President Corrigan sent a letter last fall detailing all of the cuts they had already made in places other than the class schedule, so it seems like there really isn't anything else that can go. Although students seem to want to demonize Corrigan for it, or maybe Bush, but that's misguided. This isn't It's a Wonderful Life; there is no one Mr. Potter behind all it all. The economy sucks; the CSU Budget has been slashed. If anything is to be done, it should be to prosecute the folks who caused the California energy crisis, and the financial swindlers behind the larger economic troubles. The bubble wouldn't have disappeared without Enron and Worldcom and Tyco, but it wouldn't have been so bad. The California budget wouldn't be all better without the drain put on by bailing out PG&E from its bankruptcy scam. (Remember Erin Brockovich? That's just the story of the time they got caught by someone attractive enough to convince Hollywood to make a movie out of it.)

(If I seem to be all lefty and aggravated, that's at least partially because I'm listening to The Weed of All Mankind by Kaipa right now.)

January 26, 2004

I no longer have a car, but I can still appreciate the trunk monkey.

Creep yourself out with Cats Painted in the Progression of Psychosis of a Schizophrenic Artist. For more creepification, view the whole Art by Psychotics art gallery.

January 25, 2004

Being a techie is a lot of fun most of the time. I've built a geek environment around myself that most non-techie people just don't get. Why would I want faster than dialup internet access? Why would I want to control my own email and domain name instead of just using some free service? Why do I carry a PDA around? Why do I have a web site about myself? How come I have so many computers at home? The list of questions I've been asked over the last few years goes on and on.

Slowly, though, other non-techie people are getting it. I'm beginning to realize that I'm a cultural early-adopter, rather than a product early-adopter. It's not just about new gizmos, though I used to be more into that than I am now. More important is the transformational effect of these technologies on my life. I had an Apple Newton PDA; it sucked. It didn't change my life at all. I got a Palm V several years later and that did change my life. I became much more organized and was able to throw away my little black phone book and countless scraps of paper with notes scribbled on them. I got back in touch with friends I hadn't seen in years, did better at work, started a quote file, kept appointments, got stuff done, never forgot another password, and on and on. Likewise with my ReplayTV - I honestly can't remember what life was like before I got it, and I would freak out if it was taken away. How did people live without Quicken and eBay and online maps and restaurant guides? I have no idea.

So finally I'll get to the point: after years of providing goofy high-cost, confusing phone service to guests, and super-lame TV-based internet service that doesn't work (or maybe some bizarre "data port" attached to the wacky phone), hotels are starting to grasp the concept of providing guests with broadband access. If I were to have suggested 5 years ago that a hotel should have an Ethernet jack in every room, can you imagine the blank stare that would have greeted me? But now it's catching on. The dorks at the DoubleTree Rockville blew it, though, and only have service in the lobby, via a third party wireless connection that you have to sign up for... and yet that lets them say that they have internet access for guests. Hyatt seems to have a clue: on the desk in the room is a box with an Ethernet jack on the side (turned on for you if you ask), and you can borrow a cable if you forgot one. And now, even Best Western will be installing high speed internet access in all of their hotels. Sweet! Seriously, when you're travelling, it's so nice to be able to make reservations online, look up directions and get maps, check your email, etc. etc. And what the heck, I'd pay a few bucks extra per night for that. Hopefully it won't be long before internet access is considered a standard item just like phone service and cable TV - only the cheapest motels won't have it.

Now, if I can only get JetBlue to install power sockets on all of its planes... :)

January 24, 2004

Dean Goes Nuts is totally hilarious. I recommend "Welcome to Dean's Jungle", "Ozzy Osbourne's Crazy Train (Dean's Aboard)", "You Sit Down - Requiem", "Dean's Living in America"... damn, they're just all so funny.

January 21, 2004

Alex Lifeson still kicks ass after all these years. If you haven't heard the O Canada with Terrence and Philip joined by Alex Lifeson and Geddy Lee, you should.

Lately I've heard about the "blood type diet" too many times to ignore it. Dr. Weil says "Nonsense." I tend to agree - I haven't read the studies his theory is based on, but if you think about blood type just a bit, it's obvious that in the hundreds of generations since humans were split into tribes of hunter-gatherers or agricultural societies, there has been ample opportunity for genes from different tribes to mingle. Meanwhile, blood type is not part A part O and part + part -; it is what it is. So any theory that assumes that a certain blood type means that you have a strong genetic predisposition toward being a hunter seems preposterous on its face. On the other hand, combine the placebo effect with the effect of actually paying attention to what you eat and following a specific nutritional formula, and it might work regardless of what blood type you are. I guess a real study to prove whether it works or not would be to put people on the diet and have a second group that you put on the "wrong" diet for their blood type to see if they get positive results anyway.

Ever wonder what $15,000 or so will buy in a guitar or bass? Wonder no longer: the Alembic Featured Custom Vault will show you. I have an '82 Alembic Exploiter (photo here - 40K JPEG), and it's great, but it's a stock model, and so it isn't nearly as sexy as this one or this one.

This weekend I saw a Panasonic Toughbook. Wow. This is the Hummer of laptops. I'm pretty sure it was a Toughbook 28.

January 13, 2004

Wonder Shaper is awesome. What is it? Well, it's a script for Linux (kernel 2.4 or later) that sets up some prioritization rules for network traffic, so that you can be downloading or uploading big huge files, serving web sites, sending mail, etc. and still have very responsive interactive sessions (with SSH, VNC, Terminal Server, etc.) at the same time. Usually when you're downloading, or especially when uploading, and your connection is completely saturated, interactive sessions are unusable. This is because when you do something in an interactive session, the network traffic that action generates gets queued behind the big fat download or upload, and you don't see the results for a couple of seconds. Downloads can cause latency too, because ISPs use very large buffers at the other end of your connection so that when you decide to judge them by download speed, they look good. In that case, the response to your actions is stuck in that queue and you see a lag again. When you're typing or moving the mouse, a multi-second lag is really annoying.

What Wonder Shaper does is to configure the Linux kernel's built-in Advanced Routing & Traffic Control functionality so that interactive session traffic gets put at the front of the queue, sorta like when someone at the grocery store lets you cut in front of them because you just have one item. It also costs you a bit of bandwidth, because it has to throttle the traffic so that the DSL modem's queue and your ISP's queue, both of which Linux can't directly control, stay empty. This is kinda like an HOV / carpool lane on the freeway - you lose some overall capacity but for the purpose of letting a certain kind of traffic get through much faster. But, based on my testing, this isn't a big deal - you have to tune it (using ping) to figure out where the bandwidth "cliff" is (throttling it at that point suddenly gives you super responsive interactive sessions again), and for me it was at 1250Kbit/sec on a 1536Kbit/sec DSL line. OK, so that's 19% of my maximum theoretical bandwidth, but in exchange for that I can actually use the remaining 81% much more effectively. Plus, you can turn it on or off at will, with no reboot or disconnection inconvenience, so if you have a specific situation that needs this (such as uploading backups to a remote backup server) you can leave it off most of the time.

January 4, 2004

Happy New Year, and stuff. I know most people aren't coder types, but maybe you're Excel types... doesn't the date 1/1/04 look like a computer mistake to you? If so, it's probably because it's the "epoch" on MacOS - that is, the human-readable date that corresponds to the internal numeric representation whose value is zero. So if your computer was broken, or a file was somehow modified on the time & date "0", you saw 1/1/04, and said "ack!" Now you have to get over it. (On Unix the epoch is 1/1/1970, and on Windows it's 1/1/1601.) Here's a somewhat random but interesting fact if this stuff tickles your fancy: in just a few days, we're halfway between the Unix epoch and the dreaded 2038 rollover. That means that on Saturday, January 10, Unix dates will need to have the 31st (most significant) bit hold a 1 for the first time.

Wow! PHP 5 looks like a major improvement. Specifically, I like the Zend Engine 2.0 improvements, including:

  • Private and protected members and methods - this makes it a lot easier to "program defensively" (kind of like driving defensively). There are those who think that this functionality is patronizing or that it prevents Real Programmers from doing super cool tricky code stunts, but to me it's crucial to encapsulation: your class does something, and it's not the caller's business nor problem how it works, which is good. The more the caller knows or has to know about how your class does what it does, the harder it will be to maintain the caller's code when you decide to change implementation details of your class.
  • Abstract Classes & Interfaces - awesome. Now you can write code that defines an API, and give that code away, without nailing down implementation details. This is helpful at a component level (that is, a bunch of classes that work together to provide a specific service) for allowing one component to depend on a precise set of capabilities of another component without acutally being tied to a specific implementation of that component. Example: an email application might depend on an email server API without knowing whether it's talking to a POP3 server, IMAP4 server, or local mailbox, because it just depends on some message manipulation interfaces and you can provide an IMAP4 back-end that implements that interface if you want to do so.
  • Exceptions - kick ass! Exceptions are a mechanism for error reporting and handling that really cleans up and simplifies the process of writing code that never silently ignores errors. The excellent Java Tutorial has a lesson called "What's an Exception and Why Do I Care?" which you should read if you're asking yourself that question.
  • Overloadable Method calls and Property accesses - if this means what I think it means, you can forget about getXXX() and setXXX() methods, while still retaining the ability to intercept accesses to properties so that you can do something smart. You can just say foo.x = 2 (instead of foo.setX(2)) and still get your code to do something such as foo.area = foo.x * foo.y. The key here is that you don't have to write accessor methods ("getters and setters") just in case you want to do something clever later, and the caller never sees the difference between a plain old property assignment (foo.x = 2) and an accessor method that you overloaded it with (foo.setX(2) in a language that doesn't have this feature), because semantically it's the same (foo.x = 2). Ada, Eiffel, and C# all have this feature and it really seems nice given that I've been a good little Java programmer and written lots of accessors just in case that created lots of extra boilerplate code that does almost nothing except ensure that future modifications will be less painful. That's a worthy goal but it's a PITA to accomplish in Java right now. (Typically, the best practice I've seen is to lean on tools to generate this code for you. Ugh. Callers still have to use the ugly accessor methods.)
  • Reflection - objects can examine themselves or each other at runtime to do extraordinarily clever things, most of which involve writing code that can gracefully deal with "unforeseeable" classes. For example, if you wanted to write a tool or framework that did something with a class no matter what class it was (such as dumping all of its elements, or making a database table that would correctly store all of its properties, or providing a GUI editor that let you set its values), reflection is important. It's also possible to do stupid stuff with it that would better be done with static techniques like interfaces and abstract methods, but those are already there. I can't wait to see what uses the PHP community comes up with for this.
OK so in general it seems like PHP is becoming a Real OO Language (at least by my definition) as of version 5. It has some differences from Java but they seem like trade-offs rather than straight disadvantages: no compilation step, lack of automated documentation generation, lack of obfuscatable binary/bytecode representation. Or maybe some of those are true now too. Are they? Enlighten me. I'm tired and I need to stop reading about PHP 5 now. :)