New Job, Day 1

Just a free minute or two on my first day, so I thought I'd do an update. Had a very nice weekend in N.J., although my friend Jen had a run-in with her landlord that I'll have to update further on. Highlight of the weekend? I was talking with my dad about my new camera lust, and he suggested that I should perhaps have his "old" camera, an Olympus C-3030, which is basically the precursor to the one I was looking to get anyway! My dad is probably as big of a gadget geek as I am, so of course he has it already all pimped out with extra memory cards, an external super-long-life battery pack, and other various stuff. Yay Dad! I just have to figure out how much money I should give him for it, but I don't think he wants much.

Work so far is cool, just getting VS.NET installed on my machine, which took an extrodinarily long time, and now just familiarizing myself with the app I'll be working on before I dive in.

My so-called life.

Man, so much stuff going on I don't even know where to begin. * First off, as Brian alluded to, I have indeed found new gainful employment, and I'll be finishing up here this week. Tons of stuff left to do, lots of little projects to clean up, documentation to write, knowledge to transfer, paradigms to shift, etc. I'm pretty stoked about the new position. It's a pure .Nizzle development job, although they work mainly with VB.Nizzle (ick.) Pehaps I will convince them of the beauty and love that is C#. * One of the cooler things about the new job is that it'll be a longer bike ride, up to about 14-15 miles from my current 8. That will be a nice healthy run... I'll probably do it just once or twice a week and feel great about it. I was worried that the roads I thought I'd have to go on were too dangerous, but various people have told me that there's ways I can go to get there without getting my brains splattered all over the road, so sometime soon Dave and I will probably do a dry run in the car. In order to get ready for the longer ride, I'll be picking up a mini-pump ("This sort of thing ain't my bag, baby"), a spare tube, and a patch kit. * I've gotten it in my head recently that I'd like to have a new digital camera that actually takes half-decent pictures. I've settled on the Olympus C-4000, partly because it gets really good reviews, and partly because my current camera is an Olympus, which means my SmartMedia cards will work in that one, too. I really don't want to spend the money on a new one, so I'll just sort of troll eBay and see if I can find one for around $200-250, or a little more if it comes with a case/SmartMedia card/NiMh batteries/etc. * One of the features of MT(Movable Type) that's turned out to be the most interesting has been the Activity Log. One of the things it shows me is what people are searching on, in a more real-time way than my weekly stats. It's neat to see what people are looking for, whether they're trying to find out info about my best friend, or just doing some straight narcissurfing (Hi Paul Fontana! :-P).

Vampire-Free Zone

I would just like to apologize in advance to my pod-mates at work. The SLF(Special Lady Friend) and I went to Gullifty's last night, and stuffed ourselves at their bi-annual Garlic Fest . We had a roasted garlic spread appetizer, and for dinner I had the 20 clove garlic chicken hoo-hah. And today you'll know it. There's been pure garlic coming out of my butt since first thing this morning. I also rode in, so I'm probably sweating it as well. Forewarned is forearmed, and all that. It's Chic to Reek(TM)!

Flush, Part II (or, I really mean it this time)

Not flushing the urinal is slightly annoying, but today was worse. Went into the Executive Washroom (i.e. the handicapped stall) to throw on shorts for the bike ride home, and had to pee while I was in there. Lifted up the seat (so as not to make a mess, you see...), and saw that someone had a horrible ass-splosion in there, forceful enough to splatter all over the underside of the seat (although thankfully not where I grabbed it to lift it). Ok, if you have that big of a "paintball" (as Pat so eloquently put it), you're gonna feel it on your ass, which means you're gonna know that it's all over. You're gonna be washing your hands afterwards anyway (at least, I hope you are you sick bastard), so just grab a big wad of toilet paper and wipe that shit up! Sheesh!

Work

"So, how's work been these days?" you ask... Abbi sums it up quite nicely, thank you.

update: I saw this missive on Andre Torrez's site, and it gave me pause. Not because I think that I'm exactly in his situation, but because I wonder what it all exactly means to me. Perhaps he's right about the apparent lack of old programmers. I certainly don't ever want to become "the stapler guy", but I also don't think I ever want to do management, either. As much as I like to tell people I work with how shortsighted, schizophrenic, or otherwise idiotic they are, I usually like to do it to people who are in a different discipline than programming, and I know it would be hard to be telling a younger version of myself what to do and when to have it done by.

I kind of like where I'm at right now; I work with other programmers who want to learn about new things, and I can "mentor" or "coach" or whatever the fuck (both of those are too strong of terms, I just find something that's cool/fun/makes business sense and we all basically learn it together)... but I sometimes wonder how much longer I can keep doing it. Programming seems to be a young person's game, but I think I'm interested enough in new technologies to keep myself marketable. Besides, I have both my parents to look up to for examples; my dad still does basically what i do, writes code, talks to customers, and still looks forward to going to work in the morning. My mom even got back in game after sending all us kids off to college; becoming a Java developer until she got laid off (along with everyone else) from Lucent.

So, I suppose all is not dark. I might not always be "the smart programmer" at work, but I can always hope to be "the weird one", or at the very least, "the old one." I don't think there's anything wrong with that, actually.

Guilt-free

So, a leisurely hike to the bus stop and a stroll through downtown later, and I'm at work. Pat is the only other person in our department in today; apparently our manager was the only one who actually bothered to call his/her team and tell them they didn't have to come in to work! (Oh, wait.. there was the email from my boss at 7 AM that would have done nobody any good unless they happened to check their work email between 7 and when they would leave for work) I went out for a little spin in the snow a few times yesterday, and it wasn't so bad. Apparently there's some sort of salt shortage, because PENNDOT ain't doing jack shit out there. It was fun spinning around, practicing handbrake turns, and in general just trying to stay out of other people's way. My car is pretty good in the snow, but I still can't wait until I get my next car.

It was a very nice weekend. The SLF has had to work every night since Friday, including tonight, so we're going to do our VD dinner tomorrow night. Not quite sure where yet, but there are some good options out there. Paul once again came over Saturday to help me finish putting the bike together. I took a few pictures, but left my Flash card at home. I'll post those tomorrow. If the weather cooperates at all I might even get to ride late this week, but we'll see how much snow melts by then.

Yesterday I cleaned up my place some, and then sat and watched an "Academy consideration" DVD copy of LOTR:TTT. Makes me think I should find a DVD burner soon to store these little treasures when I come across them.

Tonight having some people over for WRC Rally Sweden party. Always a good time with that group.

Snow day (or, on being a guilt-ridden mess)

Finally! A decent amount of snow! Now, don't get me wrong. I hate winter. I can't wait for winter to be over. But, some days you get lucky, and enough snow falls that you don't have to go to work. Got a call from my mgr. this morning, and she said that while my boss didn't explicitly tell everyone to stay home, he also didn't say that we had to come in, either. So, now I'm in a bit of a dilemma; on one hand, I would really really like to enjoy a 3-day weekend, and work isn't so jam-packed that I would feel like I was getting behind. On the other, I've been IM-ing with some of my co-workers who actually did make it in, and it sounds like there's a decent amount of people actually in the office. I already slept in late, so maybe after a quick round of THPS4 I'll drag my carcass into the office. All the benefits of a snow day, but none of the guilt of not actually going in. Then I can post about my weekend, too.

flush (or, how to gross out your co-workers)

ok, so i drink a lot of liquid during the day, so that means i go to pee a lot. the urinals in the men's room are the slightly old-fashioned type, in that you have to pull the handle when you're done; there's no little red eye that knows when you're through tapping a kidney and flushes for you. i've noticed that at least once a day, maybe more often than that, i'll go in and see that someone has used the urinal and not flushed. now, i know that since most urinals do this auto-flush thing, maybe people have been conditioned to not think about flushing so often, but i still really think that you could realize that you're leaving a stinky puddle of urine and give the handle just a little flick...

Why MAC addresses suck

any idea how much of a pain it is to find info about obtaining hardware MAC addresses from clients using an ASP page? for windows machines:

strIP = Request.ServerVariables("HTTP_X_CISCO_BBSM_CLIENTIP")
strMac = GetMACAddress(strIP)

Function GetMACAddress(strIP)
	Set net = Server.CreateObject("wscript.network")
	Set sh = Server.CreateObject("wscript.shell")
	sh.run "%comspec% /c nbtstat -A " & strIP & " > c:\" & strIP & ".txt",0,true
	Set sh = nothing
	Set fso = createobject("scripting.filesystemobject")
	Set ts = fso.opentextfile("c:\" & strIP & ".txt")
	macaddress = null
	Do While Not ts.AtEndOfStream
		data = ucase(trim(ts.readline))
		If instr(data,"MAC ADDRESS") Then
			macaddress = trim(split(data,"=")(1))
			Exit Do
		End If
	loop
	ts.close
	Set ts = nothing
	Set fso = nothing
	GetMACAddress = macaddress
End Function 

for *nix boxes:

strIP = Request.ServerVariables("HTTP_X_CISCO_BBSM_CLIENTIP")
strMac = GetMACAddress(strIP)

Function GetMACAddress(strIP)
	Set net = Server.CreateObject("wscript.network")
	set oShell = CreateObject("Wscript.Shell")
	cmd = "%COMSPEC% /c ping -n 2 " & strIP & ">nul"
	oShell.Run cmd,0,1
	set oShell = nothing
	Set sh = Server.CreateObject("wscript.shell")
	sh.run "%comspec% /c arp -a " & strIP & " > c:\" & strIP & ".txt",0,true
	Set sh = nothing
	Set fso = createobject("scripting.filesystemobject")
	Set ts = fso.opentextfile("c:\" & strIP & ".txt")
	macaddress = null
	Do While Not ts.AtEndOfStream
		data = ucase(trim(ts.readline))
		If instr(data,strIP) Then
			macaddress = trim(split(split(data,strIP)(1),"DYNAMIC")(0))
			Exit Do
		End If
	loop
	ts.close
	Set ts = nothing
	Set fso = nothing
GetMACAddress = macaddress
End Function 

substitute "REMOTE_ADDR" for "HTTP_X_CISCO_BBSM_CLIENTIP" if you're not using this weak-ass cisco proxy software like i am. i hate ASP.

How to say "poo" to the client and not get fired.

two funny work stories that have to do with the same client (a toy manufacturer): * we're working on a database-driven website for the aforementioned client, and we need to have it done in time for the big toyfair show. there's lots of problems with their db, since it's to be used by their manufacturers, suppliers and other non-consumer-types and there are lots of missing images, and unfriendly descriptions of products and their categories. so, this morning abbi and i are on a call with their db guy. we were talking about categorization of licensed products, one of them being winnie the pooh. so, of course, i made it a point to use that in all my examples.

bq. me: so, how do i know if other things are poo? the guy: well, we actually have several different lines of pooh products. me: holding back my giggles of mirth so hard that i'm jumping up and down in my chair waving my arms ok, so do i need to worry about the different brands of poo? or can i just *snort* "lump" *snark* them all into one category called "poo"? the guy: yes, that will be fine.

* one of the other things this client makes is skateboard/bike ramps, so we have lots of little ramps and grindrails and a skateboard and a small bmx bike scattered around the office. well, one of their new products is a plastic quarterpipe, and we have a demo of one sitting in the office. i was all ready to grab the board and try to do a drop-in, but then someone told me that my boss and his young son had put the thing together, and there was a bag full of "extra" pieces sitting on top. uuuhhhh, no thanks.

whew! after a few fits

whew! after a few fits and starts (including one scary moment when uploading the web.config file made everything go boom), we launched the new site around 7 p.m. new year' eve. our guy who does all the file promotion over at gnc was late for a party, so he just opened up ftp permissions and i was uploading directly to the live site, which was a scary thing, especially when it's exploding. so far, all quiet on the western front. spent most of yesterday fixing a few tweaky little things (problems with layouts in ie5, which has recently been as annoying to code workarounds for as netscape 4.7 was with older-style layouts), catching some files which were updated but not promoted, and reformatting some pages that had slipped through the cracks, which gets easier and easier as our templates get more solid.

nye was very nice; low-key. the slf's sister and neice came over, and we watched monsters inc. and a bug's life, two very enjoyable "kid" cartoons. i snuck out for a short while to go to dave's little wing-ding too, and he and casey had great food and refreshments... that girl can bake.

i was going to take a "sick" day today, but i thought maybe i'd come in and get a little bit of work done, especially since pat is out today. if it's really quiet this afternoon i might go home early, but we'll see. work is actually going to be sort of interesting in the near term; i have one from-scratch site that will have to be put together fairly quickly, but it's going to be kinda cool, and since it's all-new, it should be a little bit easier for me to create it as a compliant site. a big problem with gnc was tons of legacy content, and just lack of foresight on my part. we have lots of little content-management tools that we did for them, and rather than putting in my own markup tags for linebreaks and such (like blogger does, i left it free-form, and told them what tags to put in. of course, i didn't know last year that we were going to try and go down the road of xhtml/css, so i didn't tell them that a paragraph tag needs to be with a lowercase "p", and you need a closing tag for it, or that you have to close all your <li> tags, too.

this weekend should be fun. going to a comp at the "other" climbing gym in wexford (which i've never been to). i wasn't going to go, since i'm climbing like poo ever since the holidays when i couldn't keep to a steady schedule, but then i found out that some friends of mine are competing, and jen will be there hanging out and watching as well, which will be nice.

sunday i'm going to try and get to see lotr, ttt with the slf, if we can squeeze it in before she has to go to work. we watched the extend-o version of "fellowship" on dvd over the weekend, so she's all fired up to see the next one now.

finally, i think i found what i'm going to ask my dad to get me for my birthday next month. this little beauty should help my problem of having too many/too complicated remote controls.

go time (or, "ya say you want a resolution, well.. you know...")

moment of truth.... pages are about to be pushed live, which means that pretty soon i'll know of the site is a fantastic success or a horrible crushing failure. while i'm waiting for the final go and the nailbiting while the pages are propagated to the 3 webservers that will show the new baby to 30,000 visitors a day i figure i'll do my new year's resolutions. matt's 2003 resolutions --i will try my best to be good to my friends and family; because i love them all dearly. --i will climb V7 outside. --i will pay off at least 2 of my credit cards. --i will climb at least 5 5.12s this season. --when the spring hits, i will ride my bike to work at least twice a week. --i will learn at least one new programming language or major technology, and use know it well enough to be able to us it casually in a sentence. --and finally (held over from previous resolutions by popular demand), in 2003 nobody will wonder what i'm thinking.

trials and tribulations (or, it's christmas time in hollis, queens)

i drove out the day before xmas eve right after work, and went to my best friend's house. his parents are like my adopted 3rd set, and i always spend xmas eve with them. rather than making the drive all the way out to their new place (which takes about 6, 6 1/2 hours without traffic), i went to philly to go meet ryan, who was staying at his friend jane's house in center city. the drive there was fairly uneventful, except for the otherworldly radio reception i was getting. i don't know if it was atmospheric conditions or alien visitors, but i was getting crazy am reception on the drive out. i was about midway across pa, and picking up broadcasts from boston, nyc, chicago, cleveland, and d.c. i even got to listen to most of the exciting tie between the rangers and devils. we went out for a bit in philly that night, hit a few bars, and then went back to jane's and passed out.

christmas eve we drove to ryan's folks' house, and started doing some christmas-y stuff. ran out to the liquor store and picked up some presents as well as supplies for that evening, and ryan even managed to do all of his shopping for xmas presents at 5 p.m. at the eckerd. you'd be amazed at the sorts of things you can find there when you're a bit desparate. ryan's brother showed up a short while later, and we started taking our xmas pictures, which every year involves some props, and usually the dog. this year we had some bum polaroid film, so we had to make do with triplets of izone pictures, instead of just one of the 600 variety. too bad, because we had some really good ones. we all wore cloth napkins on our heads (sorta like the flying nun) (the dog included) and posed with various gifts for baby jesus; an apple, a box of godiva truffles, what have you... we also had a really good one of us posing by the *ahem* posed wooden reindeer. ryan and i take great delight in posing them this way every time we're at his house over xmas. you know the ones, thin wooden cutouts, and one has their head down. you can sorta make the one with his head up straight mount the other one, and it's extremely funny. too bad we weren't the first to think of it, or at least the most famous to think of it.

xmas day my plans went all to hell. the nor'easter prevented me from making it to see either my mom or my dad, so i just hung out at ryan's house all day, watching "a christmas story" (and researching the actor from it who became a porn star) at least 7 times during the marathon, eating prime rib, and in general being lazy.

the drive back to pgh was similarly uneventful, although when i was flipping across the dial i did come across this nutjob on a "rush limbaugh" station... his comments were so amazingly sexist that i wasn't quite sure what to do; talking about his wife's "job" as cooking and cleaning, and how he doesn't want her to have any sort of free time or anything. my guess is they put him on to make rush seem that much more moderate in comparison.

anyway, got a couple of pretty cool presents. although i didn't see my mom, she had mailed me my present a few weeks ago, some new pedals for my soon-to-be cross bike (which reminds me, i really need to give paul some benjamins for that). along with that, the slf got me this awesome windbreaker, which will come in quite handy for the bike rides on the chillier spring mornings.

so, the stress of the holidays is (mostly) over, but i still have a bunch of work to do on the project i'm trying to finish before the deadline. i'm happy that i get to redo such a highly visible site using all the hot new xhtml/css web standards and everything, but it is quite an undertaking. there's tons of legacy content in the db, and time is just so short that i don't know if i'm going to get to it all. very few of the pages validate (if any), but we're still much closer to a compliant site. there are just so many issues to be addressed; here are some of my fun problems of the moment:

--problems with character encoding (pages that are "utf-8" encoded can't handle "glyphs", which are special characters which have a character for them, instead of using an html equavalent; i.e. ™ instead of &trade;). i can change the encoding from "utf-8" to "charset=iso-8859-1", but that causes pages to barf in the validator since they're being encoded utf-8 in .nizzle by default. it also throws a monkey wrench in all the product and category detail pages, which are using xml/xslt transformations (with the xml data being utf-8). the "right" thing to do would be to re-code these pages in .nizzle, but i just don't have the time right now. actually, the Really Right Thing(™) would be to expose category and product data as a web service (which was my original intent when we redesigned last year, except i used a VB COM object to create an xml string using the msxml4 dom object, which works fine, but it's clunky and does not easily lend itself to having that data reused by other sites/applications). (a little note: i think i might have found the answer while looking for relevant links for this post... i can set a global attribute for output response encoding, as shown here. set the encoding to iso-8859-1 in the web.config, and that should solve much of my problems.

--font size. i'm trying to stay away from hardcoded font sizes, and using named base fonts and just percentages in my stylesheets. one problem so far with that is the store locator page... it uses some funky mapquest webservice-esque process to get its results back, which would be fine except that it puts some html comments in the top few lines of the page, which means that my <!DOCTYPE> tag is not the first line in the html, which causes weird font size problems in ie, but not netscape/mozilla or opera.

so, i worked for about 7 hours today (as did amy, bless her heart), and i figure i'll be back in the office tomorrow, too. thursday (new year's day) the office is off, and we launch wednesday, and if all goes well i have a feeling i'll be "sick" friday.

quickies: -yesterday was a most

quickies: -yesterday was a most craptacular day at work, and it's not going to get better anytime soon. we have an insane deadline for a project (actually, several projects all rolled into one) that i have no idea how i'm going to hit, and to top it all off i'm going to be spending two and a half glorious days in rhode island doing a lovely dog 'n' pony show for another client that has a deadline 6 months from now.

-i see that tivo is finally going to add one of the features i've been asking them for for awhile; being able to program your tivo through a website. it would be very cool to be away from home, say, on a hellish two day trip to rhode island with your boss, and OH NO!!! you forgot to tivo joe millionaire! so, you log on, put in the instructions to record the show (assuming you don't already watch a ton of reality-tv crap, or at least your tivo thinks you do), and when you get home, it'll be there. that's a nice feature, especially since my cats don't know how to work the remote, and don't even know how to answer the phone when i call.

-more comp stuff: results have been posted from the prg comp, and although they misspelled my name (i emailed them and they're going to correct it next update), i placed 13th out of 56!!! i'm pretty stoked about that, considering how hard everyone there was crankin'. i also emailed jim horton (organizer of hound ears) to get him to put up scores.

whew! (or, dodging bullets)

ok, so last week i had a very funny post or two involving an email that i had gotten at work... poking a bit of fun at a "morale-boosting" initiative that most people found rather silly. all a harmless bit of fluff, until i put up my auto-comment system this a.m. one of the first comments was under one of the posts in question, referring me to an entry on the fc website (see if you can find which one it is!). apparently a disgruntled former-or-current co-worker decided to send in a copy of the email, exactly as i had edited it to protect the last names of the innocent. while i don't think this was any more or less appropriate than my posting of the email in the first place, the simple truth is that the memo, posted to internal memos, now had a much wider audience than i had intended, and with my company's name out in plain view (whereas i hadn't put up the company name in my post (although an astute reader could have gone back through my archives and figured out where i work fairly easily)).

the end result of all this is that i yanked the two posts in question for the time being. i don't like to do stuff like this, but i also don't like being unemployed. my boss is the easily exciteable type, and i could easily see myself being summarily dismissed, even though i hadn't sent the memo in to be posted. luckily, i was able to pull down the posts before they were cached by google.

Look for the Rooster

this is, no shit, the email that was in my box this a.m. From: John B To: staff Subject: Look for the Rooster!

Some of you may have noticed a wooden rooster around the office. There is a significance to the rooster that you may not be aware of.

In ancient Greek culture, the rooster was a symbol of pride and innovation. While chickens were routinely devoured, roosters were treated as Gods and given special privileges. Soldiers returning from waging successful wars were often presented with roosters as a symbol of appreciation.

It was often said that if you were born under the sign of the rooster, you were going to lead a long and successful life.

In the Greek congress, roosters were presented to leaders who best represented the will of the people. The saying, "proud as a rooster" , goes back to this ancient culture.

In keeping with this age old tradition, I would like to introduce the Proud Rooster Award to our office. Each Monday we will present a member of our staff with the rooster award. The award will be based upon outstanding performance in the call of duty. The individual will have demonstrated outstanding attention to quality, performed exceptionally well under duress, demonstrated innovative thinking or simply work their but off so hard that we all feel it is necessary to recognize their effort.

The rooster will "roost" in their office in plain site for all to see for the week. The nominating party will send an e-mail out to the entire staff notifying them of this outstanding performance. This e-mail will be added to their personnel file for future gloating.

By now, I'm sure you are wondering, "What can I do to get that rooster?" It's simple, go above and beyond the call of duty to the point where your leaders and peers recognize your effort. If you see someone over achieving, let your team leader know and they'll go to war with the other managers to bring the Rooster home to that person.

This week's winner of the "Proud Rooster" is Sara H. Sara earned her first Proud Rooster with two (note two, not one) outstanding achievements. Sara organized the paper library for all of us as well as produced the Holiday Poster under considerable duress from me. While she had a great team to help her, she earns the first "Proud Rooster" award for self motivation and achievement. Stop by Sara's office today and check out her rooster! Thanks Sara.

Note: Family members of Greek mythology are not eligible. Roosters may not be awarded for personal favors or as prizes in drinking contests. Decisions of the judges is final.

so... let me get this straight. my motivation is to work hard so i can have my boss's cock in my face for a week?

wow (or, awash in good luck)

lots of stuff has been happening... i think i'll work backwards. first and foremost, verisign finally got their act together. i had recieved another phonecall wednesday evening telling me that the fax i sent them was fine and dandy, but they still needed an "authorizing signature" to make everything go through. sent that thursday morning, and finally got an email just a short while ago telling me that they have finally reset my password. you can even see my fancy new dns mappings! by the time i get back from this weekend, the dns should be all propagated and stuff, and i'll be able to start developing on my new .net site.

i had to stay a little bit late at work tonight in order to get my latest project out the door. on the walk to the bus, i was going right through the middle of "light-up night". it was a zoo, and the rain was starting to come down and get even colder, so i was happy to get out of there. (btw, what's up with that woman's hair???)

so, after reading my entry about bike-hunting, my homeslice paul hooked me up! he has a gently used trek cross bike (and it was even housed in my building; mutual friend holding on to it for him), so i'm going to take that off his hands, and put some swanky components on it.

wednesday night i watched the penguins lose to the canadiens in overtime. the slf had gotten some really kickass seats, tho. we were in prime puck-catching territory, if not for those snazzy nets.

a co-worker of mine

feralboy.com/log/ barcode a co-worker of mine and i were talking the other day about barcodes. we started off talking about the whole trendy "barcode-on-the-back-of-the-neck" thing, and then the co-worker suggested taking it a step further. he wondered how cool would it be to have your frequent shopper card code tattooed on your arm, so when you went to check out a movie or get your discount, you'd just swipe your arm over the scanner and check out the stunned reaction.

i got myself a safety light last night. i think i'll go with "chase" lights on the ride home.