Hey buddy, couldja spare a text message?

I experienced a new kind of panhandling yesterday. I was walking back from the bike shop, when a slightly disheveled man walking the other way stopped me and asked me if he could make a call on my phone. Apologizing for already being late to get somewhere (it was true, after all), I continued on my way, without lending my phone. As I continued walking, I wondered to myself just who he might need to call.

Bandwagon

Couple of quick updates: * I made a few changes to templates on the site, including using the very cool MTOtherBlog plugin from David Raynes to cross-list new posts from the new Medium Archive on this page, and vice-versa. I've also been using the beta release of MT-Textile 2, which has a bunch of new features in it, the coolest so far being the footnoting feature. * Since it seems to be the new hotness, I'm also posting a screenshot of my desktop. Like the background? * Ryan emailed me a picture from my night out with both sisters in Philly, which I've added to that post.

The Medium, unveiled.

Ok, I have a special treat for everyone. A few days ago I was able to grab copies of most of the issues of the student paper I had written articles in at Rutgers (thanks, Josh). My plan is to type in all the articles of interest (which, of course, will include all my columns), so that way I'll have a nice electronic format for them, and I won't have to worry about them disintegrating. While the writings are funny/disgusting/irreverant (at least, they're _meant_ to be), they still feel very personal to me, and are from an important time in my life, and I'm happy to share them. A few notes:

* A lot of the language and potential pictures (I'm not doing scans, but will try and find the same images I used for clip art back then) are very much NSFW(Not Safe For Work). You have been warned. * I've prefaced articles so you have an idea about the context in which it was written (italicized at the top). * Much of the humor takes the form of (extremely) inside jokes. I've tried to footnote things that would make no sense otherwise, and hopefully I'll be able to flesh these out even further as time permits. * Names have been shortened to protect the innocent. No last names, unless someone contacts me and wants their full name restored to bylines or footnotes. If you want to be removed completely, I can do that too... just let me know. * Posts are dated the day the issue they're from was published. I'm going to try and add in chronological order. I only have a few articles up right now, and they're probably the ones I'm the least proud of, but it will get better, I promise. * I have absolutely nothing to do with the current incarnation of The Medium. From what I've skimmed, they've gone even further down the pointless nudity route. I only include the links so you can see how much nicer it would have been if we had the all-digital publishing that they apparently do now, instead of printing out our pages from Pagemaker and gluing it onto boards.

Astute visitors will see I've put a link and a list of recent additions (right now there's only 3) in the right-hand sidebar on the homepage. For those of you who didn't see, the link is below. Enjoy!

The Medium Archive

Morning Commute™, Now With 33% Less Swamp-Ass®

Can I tell you how much I like bike shorts? Even though it was humid enough this morning to feel like I was riding through a lake the whole way here, thanks to the patented Hot Chamois Action(TM) in the shorts my crotch was quite pleasant when I got to work. This was on top of the fact that I shaved a good 5-10 minutes off my normal time, probably due in part to my smooth new chain/tires. (But mostly I think it was the shorts)

Attention, Fuckwads

When a traffic light is out (due to a storm or other mechanical problems), the intersection becomes like there's a 4-way stop sign there. No exceptions. I'm sure you're in a huge hurry to get to your crap-ass minimum wage job, and I'm also sure that because you watch NASCAR you feel you can drive like an ace, and I'm even more sure that because you have at least 2 cars up on cinderblocks in your front yard you feel you know all about automobiles as well, but that doesn't mean that you're allowed to tear through the intersection because you "see some daylight". My next car needs to be a piece of crap. Something huge and hulking and American, with armor-plated doors and steel seats. Something that if someone parks too close to me, opening my door into their car will make it look like it just went 3 rounds with Godzilla. Something that will make SUV drivers feel nervous, for a change. Something that I can pull into the middle of that intersection, glare defiantly at all the other drivers, and force everyone to stop, like they're supposed to.

Sitehack

Taking a cue from Douglas Bowman's current move to MT(Movable Type), I figured out how to remove the ugly "default.aspx" from all my PermaLinks and archive links. The trick was a little inline C#, turning this:

into this:

== <% Response.Write(Regex.Replace("","default.aspx","")); %> ==

Nerdy, but cool. I like to be able to hide the implementation details (i.e. if I'm running PHP, ASP(Active Service Pages), ASP.Net, etc.) from my users.

Harder than it looks

It's time for me to face up to the fact that I'm completely mechanically un-inclined. Sure, if it involves software, or drivers, or anything involving pecking away at little keys, I'm super. But once actual real-world objects start to get in the picture, I have problems. I was changing my bike tires last night. Changing the front one was very straighforward... got that one back on in record time. The back tire requires you to take off the chain, since the cassette is attached to the wheel. So, I break out my chain tool, pop the link, and like a dumbass I push the pin all the way out. Apparently I don't have anything in my toolkit to help you get a pin back in once you've pushed it all the way out, but I sat for awhile and tried in vain to just "line it up" and make it work. This obviously did not work, so then I thought I'd just shorten my chain by one link. That was going alright, until the new link I put back together wouldn't really bend right. Then I don't even know if I had it going through my derailleurs right, because it was making all these awful sounds and jumping around.

So, I'm going to do what I always do in these situations, and just throw money at the problem. I don't want to ask my friend who totally helped me set it up last time, because I feel like I wasn't a good student, and didn't learn all the stuff he was showing me while he was doing it.

It just frustrates me and makes me feel like an idiot to not know how to do basic operations on my bike, especially because it's become a more prominent part of my life in the last year. (sigh) And it would have been a beautiful day to ride today, too. Instead, I'm sitting at my desk, feeling fat and unsatisfied, and I still have grease all over my hands, repeated scrubbings and all.

*Update:* If you check the comments you'll see that I have the <ComicBookGuy>Greatest. Friends. Ever.</ComicBookGuy>

Weekend Wrapup

Oh, man am I tired today. I was basically on the go since last Thursday night, and this weekend was an exceptionally busy one. Went to Byram first Friday night right after work, and had a beer with my high-school buddy Jen. We were at a local bar that's right in the middle of all these cutesy shops, and I was amazed at how busy it was at 10 p.m. on a Friday... all sorts of NY license plates, which means that the city folk now think they've found another lovely "quaint" spot to see natives "in their own environment." Saturday I went and met my younger sister at the NJRG(New Jersey Rock Gym). We climbed for about 3 hours, and had a great time. My sister just started rock climbing not all that long ago, so it was great to get to climb with her for the first time. She really enjoyed leading on the overhanging Eldo walls, and I was content to just boulder. She's remarkably strong for how long she's been climbing, and tenacious, to boot. Once she's on a climb, she's going to finish it... kind of like a rabid pitbull tearing into a cow with Epstein-Barr. The bouldering was really good, and I miss when I was flying to NJ every week to work for my old company, and getting to go to that gym on a regular basis. They set problems that are hard, but use good holds. They also were doing this color-coding thing which was pretty cool... using tape based on how hard the problems were, i.e. all orange problems were around V0/V1, all yellow were V3/V4, etc. Made it easy to wander around and try and do all the problems at a particular level of difficulty.

One other little humorous observation: they were doing some sort of kid's birthday party while we were there; lots of little 6-to-10-year olds running around, and at the same time they have The Crystal Method blaring over the house sound system: "Listen all you motherfuckas!"

The sisters and me in PhillySaturday night both of my sisters and I went down to Philly to visit Ryan. We went to the scary bar right across the street from Jane's place, and had a blast. Many shots were done, and my sister discovered that taking Tums makes your puke neon-colored.

Sunday a.m. Kyra and I dragged our asses to my grandmother's in northeast Philly, and took her shopping. We loaded her up with catfood, picked up some bath towels, and then went food shopping. I must admit I went a little crazy, because my grandmother has a pretty set routine as far as food goes, but is always happy to try new things, but doesn't know what to try. I got her Boca burgers and "chicken" patties, some sort of granola/meusli cereal, and some other snackies that seemed to be of interest. I made us Boca burgers when we came back; on toasted english muffins, with swiss chese and a slice of tomato. She really seemed to enjoy them, which was great.

The only bad thing that happened was my sister left her keys at Ryan's place, so I had to hop in the car, drive back down to Center City, and then back up to my grandmother's again, and then hop in the car right away again and start heading home.

The drive home last night was uneventful, but just long. There was an overturned mobile home coming the other way, so I drove past about 10 miles of stopped traffic. Ha! Suckers......

I was so tired this morning that I completely fell back asleep after turning off my alarm, and was about 1/2 hour late for work. I feel pretty good now, tho, so I think I'm all back to normal. Tomorrow the weather should be good, which means I'll be riding in. If I have time tonight I'll even put my new bike tires on.

West Virginia, cultural wasteland?

I'm enjoying going through the Photoshop contest entries on Fark to "design the WV state quarter". Then I went and had a look at the source images they were using. It strikes me as sort of odd that 3 of the 5 final possible designs are of the New River Gorge Bridge/Bridge Day. Is WV so devoid of any other landmarks or notable qualities? I would think that even New Jersey came up with more than 5 different shots of Washington crossing the Deleware river.

Variable Scope

Let's talk for a minute about scoping of variables. Let's say that you have, oh I don't know, a fairly complex billing web app. An administrator logs in, selects a customer, bills time for that customer, and goes on his/her merry way. No problem, right? Well, let's say (strictly for the sake of argument, mind you), that you were storing the unique id of the customer as you were working with them like this:

== Module modReports

  Public g_iCustomerID As Integer

End Module ==

What this means is that the value for g_iCustomerID is now both Public and Global, which means that any class, function, etc. can access that value, *regardless of who is accessing*. Here's what can happen:

# User A logs in and picks a customer. g_iCustomerID is now set to a value, say 132. # While User A is still logged in, User B also logs in. The default edit page tries to be clever and sees if there's a value stored in g_iCustomerID, so you can bop around the site, and still maintain which user you've selected. So, since g_iCustomerID has a value of 132, the application assumes that User B selected it, and loads all the data for Customer #132.

You can see how this could be A Bad Thing(tm). The solution is to go around and do a global search-and-replace on every occurance of this variable, and substitue a session-level variable instead. Of course, g_iCustomerID is just one of about 10 other variables that are being stored globally that shouldn't be. Grrrrr.

Mozilla's Thunderbird

I started using Thunderbird at work yesterday. I'm trying to move away from using IE as much as possible, since IE6 is the new IE5 (which, coincidentally, is the new Netscape 4). I know that the project isn't all that far along, all things considered, but I was still very impressed by how solid the build is. I imported my address book and messages from OE(Outlook Express) without a problem, and it's now running as my default mail client. I really like how configurable everything is. Want to quote the original email in a reply and start your typing underneath? Sure. Want to start at the top instead? Sure. Set preferences as far as sending HTML(HyperText Markup Language) email, plaintext or a combination of both? Systemwide or by domain? Sure.

A few small gripes so far (and ones I hope they'll fix eventually... after all, it's still in development):

* A keyboard shortcut for "Get New Mail", please! I'm very used to a little Ctrl+M action in OE(Outlook Express) to get new messages without having to use the mouse, which I'm trying to cut down on lately since I've noticed my hand hurting a bit. * Some sort of indicator in the message list pane to show which messages I've replied to. OE(Outlook Express) has a couple of different icons to show read, unread, replied and forwarded. I'd like to see the same thing here.

A look at Jitneys on Plastic

Nice writeup on Plastic, with a link to a good article about the Pittsburgh phenomenon of unlicensed cabs, the jitenys. I think that one of the major contributing causes of PGH's "youth flight" is the lack of straight bars open downtown, and the fact that you can't get anywhere easily without a car (The fact that they're going to cut back on bus service doesn't help, either). I've called for a Yellow Cab, waited 45 minutes, and had it not show up before. Jitneys fill a need, but it's still not enough.

Crisis Averted

I have a confession to make. While I'm normally a fairly well-adjusted person, I have at least one significant quirk (that I know of). If I can't find something, it drives me absolutely bonkers until I do. I don't know if this qualifies as OCD(Obsessive Compulsive Disorder) or not, but it's definitely a problem. I have two examples, just from the last 12 hours. First, I was sort of idly checking for the car adapter for my camera's external battery pack. I knew I had it with me when the SLF(Special Lady Friend) and I went to Stone Harbor, but I didn't find it on my desk, which is where I keep all my camera crap. On the phone with the SLF(Special Lady Friend) as she's on her way down to a quick vacation with the folks in Deep Creek, MD, asking if I left it in the car. Nope. Gah! I went back and looked at my desk a little more closely, and there it was, under a notepad. Yay!

Next, I was running around this morning, getting ready to bike in. I was down in my basement storage, pumping up the tires, when I slung my bag on and felt around back for the cross strap. Maybe it's just caught on.... no, it's just not there. Oh, great... now I have to run upstairs and get the strap off my other bag. Stop at the car on the way out to see if it got caught in the seat and pulled out... nope. Guess I'll have to order a replacement. Walking up to the street from the car, and what do I see on the sidewalk, but my lonely little chest strap! Double yay! Everything's comin' up Millhouse!

Movie Review: 28 Days Later (With Spoilers)

After seeing the ads on tv, I found a download for a DVD-rip of 28 Days Later. It was released in England last year, so it was already out on DVD (Remember when it used to take _years_ for a movie to go from the theatre to VHS/DVD? Now it's on PPV(Pay-Per-View) within 6 months of release, and on DVD soon after). It was a pretty standard B-movie zombie flick. Your standard virus-escapes-lab, virus-spreads-across-Europe, boy-wakes-in-hospital, boy-finds-no-one, boy-wanders-eerily-empty-London, boy-meets-zombies, boy-kills-zombie, boy-meets-girl (and boy), boy-escapes-more-zombies-with-girl (and boy), boy-watches-girl-kill (boy), boy-and-girl-meet-boy-and-daughter, boy-and-girl-and-boy-and-daughter-flee-to-countryside, boy-with-daughter-gets-virus, Army-kills-boy-with-daughter, Army-takes-boy-and-girl-and-girl, boy-is-left-for-dead, boy-returns-and-kicks-ass, Army-gets-virus, boy-and-girl-and-girl-flee-and-are-saved-by-Swedes movie.

Ok, so the plot wasn't anything extraordinary, but the cinematography was really great. A lot of the action scenes used the same sort of gritty, over-sped filming technique that made the battle scenes in Saving Private Ryan so cool. The long shots of boy wandering through a completely empty London were great, very Kubrick-esque. It was certainly tense and scary... a few "jump out of your seat" moments, for sure.

I'm not sure I'd pay $8 to see it (in fact, I'm pretty sure I already didn't), but it'll definitely be worth a rental when it comes out.

*Update:* A good article about some of the behind-the-scenes stuff in filming 28DL. That jittery effect on the fast shots? Shoot on DV(Digital Video) and crank the shutter speed up to 250? The shots of empty London streets? Use pretty girls to stop traffic since you don't have money for permits to block off the streets properly.

The RIAA can eat my ass.

Came home from work today to find this message window popped up in KaZaA Lite: bq. COPYRIGHT INFRINGEMENT WARNING: It appears that you are offering copyrighted music to others from your computer. Distributing or downloading copyrighted music on the Internet without permission from the copyright owner is ILLEGAL. It hurts songwriters who create and musicians who perform the music you love, and all the other people who bring you music.

bq. When you break the law, you risk legal penalties. There is a simple way to avoid that risk: DON'T STEAL MUSIC, either by offering it to others to copy or downloading it on a "file-sharing" system like this.

bq. When you offer music on these systems, you are not anonymous and you can easily be identified. You also may have unlocked and exposed your computer and your private files to anyone on the Internet. Don't take these chances. Disable the share feature or uninstall your "file-sharing" software. For more information on how, go to http://www.musicunited.net/5_takeoff.html.

bq. This warning comes from artists, songwriters, musicians, music publishers, record labels and hundreds of thousands of people who work at creating and distributing the music you enjoy. We are unable to receive direct replies to this message. For more information about this Copyright Warning, go to www.musicunited.net.

Um, excuse me?!!? First of all, I have sharing turned off, just like they suggest. Second of all, I have my firewall set to not allow any sort of "server" activity at all for that program. My guess is they're just getting a list of logged-on users, and spamming them en-masse.

To quote jwz, please choke on a bucket of cocks.

Holy crap, that's annoying!

So, apparently all the "GO" statements that SQL Enterprise manager spits out when you create an export of tables/stored procedures/etc. _aren't understood by SQL Server_! I've been sitting here banging my head against a wall for a day now, trying to figure out why my installer program isn't working, and is spitting back errors about "syntax error near 'GO'", and all along I just needed to rip those statements out. Motherfucker.