June 11, 2008

An interesting social experiment

We currently have an expensive radio in our office--expensive when it was purchased anyway. We have tasked an eMac that we used to use for development work. Often times we're listening to the music that the oldest guy in the office has on his ipod. Sometimes we'll listen to internet radio, but that gets tired pretty quickly.

Pandora has been the radio of choice for the last week or so. If you don't know what Pandora is, run--don't walk--to go check it out. You seed a "station" with an artist or song, and it will find songs that relate. They've gone through most non-classical music and categorized it pretty excessively. You have the ability to add seeds, and thumbs up (you like it) or thumbs down (you despise it) songs that it plays. Over time it generates a pretty good algorithm for tunes.

Today we got into a discussion about what a "lowest common denominator" radio station would play that would cater to all of our tastes. I suggested that we should create an office station, with the following rule: anyone can thumbs down a song, but we all have to agree to thumbs up a song. It will be interesting to see what the station ends up with.

I'll report back in a few weeks.

Posted by molson at 12:24 PM

April 7, 2008

On living

I came across this quote on another blog that I read and thought I would share it with all y'all...

"The man who does not work for the love of work but only for money is not likely to make money nor find much fun in life."

--Charles Schwab (the founder of Bethlehem Steel, not the pioneering discount broker)

Posted by molson at 3:27 PM

December 4, 2007

Insurance Oddities

As some of you may remember, my company got bought a little while back. They have been assimilating us little by little into the mother ship.

About a month ago we were sent to Indian cross culture training, and now I know what the wiggly head means, among other things.

Recently we've been charged with getting our benefits all signed up and stuff. I was looking over the information on our health insurance and something caught my eye:

In addition, there is a unique feature of the plan, that also provides for an option for treatment in India, should one be interested.

Apparently, they will cover airfare and lodging for you and a companion, as well as treatment at a facility in India, as long as the services are expected to be expensive here. That's an interesting benefit, and in the event that I have to have an expensive procedure done, I may even consider it for the trip to India :). Although, being a fairly healthy young lad, I probably won't need that anytime in the near future.

Posted by molson at 10:41 AM

August 6, 2007

Make that 4

I've been sitting at the same desk--err $50 plastic banquet table--and in the same chair (another $50 office depot special) for just over 5 years. During that time I have had 3 different names in the upper left hand corner of my paycheck, and 2 different signs on the door (the current company is too <adjective> to change it).

According to the news today, there will shortly be a 4th name to worry about.

Maybe we can eventually get some real desks and chairs (I've been saying that for the past few years since the first time the name changed).

Posted by molson at 11:39 AM

November 21, 2006

Prolonging the solution

When I posted a couple of links the other day relating to software/management consultants, little did I know that today I would be living in an Office Space moment.

Long story short, my boss's boss needs to show that he is doing something about some of the issues we've been having (most relating to 3rd party tools, but I digress) so he brought in a consultant to find the silver bullet.

What's the first thing this consultant asks for? SLOC.

The next thing he asked for, however, really and truely boggles my mind. He wants to know the number of columns in our database schema. Not tables, but columns. This seems even more assanine then knowing SLOC.

Apparently he has some sort of tool that will tell him how many man hours it took to build, etc. Not sure how that factors in, but I'm sure it doubles the estimates or something. There's some geeking out after the jump, but I leave you with this fun little motivational poster.

Let's take a further look at why SLOC is bad. I present the following two pieces of code as an example (sorry for those that can't read C, that was easiest for me). They both print "Hello World!" however the second one introduces some error, and some potential for error (if you're a geek, you should be able to spot it immediately).

#include <stdio.h>
int main(int argc, char **argv) { printf("Hello World!\n"); return(0); }

And the output from the SLOC tool:

Total Physical Source Lines of Code (SLOC) = 6
Development Effort Estimate, Person-Years (Person-Months) = 0.00 (0.01)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months) = 0.04 (0.45)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule) = 0.02
Total Estimated Cost to Develop = $ 126
(average salary = $56,286/year, overhead = 2.40).

#include <stdio.h>
int main(int argc, char **argv) { char *p, *out_str;
if ((out_str = (char *) malloc(11 * sizeof(char))) == NULL) { fprintf(stderr, "Unable to allocate memory\n"); return(-1); }
p = out_str; *p++ = 'H'; *p++ = 'e'; *p++ = 'l'; *p++ = 'l'; *p++ = 'o'; *p++ = ' '; *p++ = 'W'; *p++ = 'o'; *p++ = 'r'; *p++ = 'l'; *p++ = 'd'; *p++ = '!';
printf("%s\n", out_str); return(0); }

And the output from a SLOC tool:

Total Physical Source Lines of Code (SLOC) = 25
Development Effort Estimate, Person-Years (Person-Months) = 0.00 (0.05)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months) = 0.07 (0.80)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule) = 0.06
Total Estimated Cost to Develop = $ 562
(average salary = $56,286/year, overhead = 2.40).

I could have made the second one even more complex, but I decided not to. According to SLOC tools and consultants, the second option is worth more even though it is more prone to errors (buffer overruns), and is slower (dynamic memory allocation). Apparently the first example took a little under 2 hrs to write, and the second took just over 8 hrs--or one working day--of effort. Egads.

For comparison, here are the stats from the current project I am working on:

Total Physical Source Lines of Code (SLOC) = 459,796
Development Effort Estimate, Person-Years (Person-Months) = 124.95 (1,499.36)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months) = 3.35 (40.25)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule) = 37.25
Total Estimated Cost to Develop = $ 16,878,548
(average salary = $56,286/year, overhead = 2.40).

Posted by molson at 9:53 AM

September 6, 2006

The best part of Dayton

I'm sitting in my hotel room and thinking about what's good about Dayton, OH. About the only thing I can think of is the Speedway station I can see out my window.

Yeah, gas is $2.259 a gallon here. Haven't seen that price in a loooong time.

Other than that? Not much.

UPDATE: It was $2.209 this morning. Can't wait to get back to Chicago.

Posted by molson at 10:13 PM

November 10, 2005

Reason #627 why I hate IE


If Microsoft isn't going to accurately support the DOM in their web browser, they should consider renaming their functions to what they actually do. After beating my head against an IE problem (which has the worlds worst javascript debugger--motto: "What's a javascript debugger?"), I finally realized that when trying to do a document.getElementById(), if you don't have an element with the ID, but you do have one with the name, it'll try to be helpful and give you the one with the name--even though that one has a different ID.

They should consider renaming the function to getElementByIdOrNameDependingOnWhatIsAvailable().

Posted by molson at 10:43 AM

August 4, 2005

Nerf. It does an office good

Ahhh... The ever familiar sound of the [Fedex|UPS] delivery guy. This morning it was FedEx ( their logo has an arrow in it) with 4 boxes with a smiling phallus on them. Hmmm.. I wonder who sent us stuff from Amazon... Oh yeah, I seem to remember someone from the home office making sure that we could get FedEx deliveries (

).

Open up the boxes to find 7 Nerf Rapid Fire 20 guns--one for each of us, plus an extra (maybe someone couldn't count? maybe it's for when people visit?). Ahhh... the joy of Nerf. These things can empty twenty darts in just a few seconds. The only problem is that it takes a few minutes to gather enough ammo reload them.

Mental note: watch out for the ambush whenever I come into the office--we already did it once when half the office came back from lunch, it'll happen again, I'm sure.

Posted by molson at 12:36 PM

July 21, 2005

Life without Internet

Where were we 7 years ago before the Goog became popular?

Where were we before Mosaic came out?

What did we ever do when we had to look up a phone number or get directions?

I really had forgotten life without internet until yesterday when our connection at the office went out. Yes folks, work slowed down, but surprisingly it didn't come to a screaching halt. Nope, we got stuff done, and when we got blocked on something we had to look up on the big I (an API spec perhaps), we moved on to something else.

Unfortunately as a remote office we tend to rely on being connected to our mothership for quite a few things. I know that my boss is going nutso because he can't get to his email (but he's insane and checks it every minute anyway [Hi Matt!]), and can't IM people. It truly is amazing how much an office--especially a remote technology office--relies on a data connection.

I guess it's time to use the phone. Or maybe find a dialup ISP to use. Ewww...

Let's hope SBC figures out what happened soon. They're losing money on this one.

Posted by molson at 8:53 AM

June 9, 2005

AAAARRRRGGGGHHH!!!

That is all.

Posted by molson at 4:23 PM

May 10, 2005

Busy

code code code
all day long
code code code
while I sing this song
-- hastily adapted from Adam Sandler's janitor skit

Posted by molson at 6:35 PM

April 29, 2005

I give...

I give up.

I've had it with exploding hard drives.

Either I got a bum replacement for my laptop drive, or the problem is worse--my laptop is hungry and likes platters of magnetic particles.

Yup, that's right. It looks like something is hosed. I'm hoping that it's just a few corrupted files, so I'll be upgrading the linux install over the next day or two, but I am fearing the worst.

Wish me luck.

In other news, looks like May 16th will be made through putty instead of linux ssh. Here goes nothing.

Posted by molson at 3:45 PM

April 21, 2005

Bad Hard Drive Luck

I guess I have bad luck with hard drives. I got a notice on bootup yesterday that SMRT--oops, SMART--detected an error on my laptop drive. This morning, I had to boot twice. The first time, I got a seek error on the drive, the second time was fine.

Let's just hope that the new drive gets here before this one decides to go tango uniform.

Posted by molson at 1:43 PM

April 11, 2005

Waste of a day

What a waste of a day. I finally got everything loaded back on. I was able to recover *most* of my data by throwing the drive in the freezer for about an hour and then copying it onto the new drive.

I think including office, but discounting the reboots for connecting and disconnecting the drive, my final post install reboot count is at 8. That's pretty rediculous if you ask me.

Now I have to figure out how I'm going to makeup the lost day. Who needs sleep?

Posted by molson at 10:26 PM

Clunking is Bad

I get into work this morning to a dead computer. I turned it on and the hard drive started clunking. Nice way to start a week...

I dig up a new to me hard drive and begin the windows installation process. At which point my laptop decides to hang. This will be a fun morning, won't it?

Anyway, working on getting windows back up, and maybe I'll be able to get some of my data off.

Post-install Windows XP Reboot Count: 5 (ah ah ah)

Posted by molson at 1:57 PM

November 29, 2004

Exchange problems Fixed (for now)

My gripes about Reply All and Slow Connections have been solved for now.

I found that the reply-all was a residual problem caused by the Windows 2003 UpgradeMigration that our company did back in September. When there are multiple people in the address book with the same name, Outlook doesn't know which one is which when doing a reply all. In this case, there were multiples of me in my address book, and it didn't know which one was sending the email, so it didn't know if it should remove the one that was sending hte email. You'd think it would be able to tell by email address, or some sort of GUID or something, but alas it doesn't. I had created a new profile in the same install of Lookout to handle the new account. With both profiles, Lookout knew about two different address books (even though they were attached to different logins/accounts), and this got it confused. To solve the problem I got rid of the other profile and accompanying local files.

To correct the slow link problem, Jeromey was nice enough to point me to a KB article (870926) on Microsoft's website and a document entitled "Enabling a Superior Client Experience with Outlook 2003" that described cached exchange mode. I won't go into details, but I really don't understand why this isn't enabled by default on EVERY install (upgrade or otherwise) of Lookout 2003? I would think that it would greatly improve the performance not only of Lookout, but also the Exchange server.

I think the next step in improving general Windows networking from our remote office is to setup an Active Directory server at our office, and possibly put our exchange mailboxes on that server as well. That is currently in the works, and we'll see if that helps some of the other issues we are having with connecting to fileshares, etc.

Posted by molson at 9:48 AM

September 10, 2004

Network Migration Rule #1 ...

Network Migration Rule #1 == PLAN everything out first.

Other rules include:
- don't make work harder for yourself than it needs to be by changing the domain name
- Microsoft does in fact make tools to upgrade Win2K AD/domains to Win2K3 so that you don't need to migrate to a whole new server, etc.
- don't make your users do anything to complete a transition
- migrate everyone at the same time--especially internal email
- don't do the migration during the middle of the day on a business day--get your butt into the office on the weekend and take care of it then
- don't piss off people that are higher on the food chain than you are

Posted by molson at 3:41 PM

June 2, 2004

IE JavaScript Woes

I am trying to create a progress bar, using a combination of server side php and client side javascript, to display the software installation status on our appliances. Unfortunately the web server pacakge needs to be taken down, upgraded, brought back up.

If I use a straight refresh, and it refreshes while apache is down, I get a blank page/server error page, and the refresh goes away. To combat this I decide to use a page with two frames--one at 100% size, and another that is "hidden" from view. The parent frame has a simple JavaScript that reloads the hidden frame and sets a timer to do it again. The hidden frame calculates the installed packages, the remaining packages, and an estimated time. This is all spewed back to the browser encased in JS that writes it into the main page.

This all works fine in both Mozilla and IE.

That is until the server goes down. Mozilla happily keeps on trying the page every time the timer goes off. IE on the other hand gets the server not found error and pukes. The problem lies in the "security patch" for cross frame scripting (found here) that basically disallows frames to control other frames if they are in different domains.

Apparently the server not found error is "served" from localhost, thus changing the domain of the hidden frame. Once I hit the downed apache and get the error, I IE throws an "Access is Denied" JavaScript error every time the timer goes off and the page reloads.

I've heard rumors that there is a way to trick IE and allow this to happen, without having to change browser security settings, but haven't been able to find anything in about 4 hours of digging.

ARGH!

Posted by molson at 7:27 PM

April 26, 2004

Fun with cardboard

With Matt (now my boss, and original writer of the filtering software) travelling to our home office in Boston more frequently we've been lax on our usual tradition of "playing" with the desk of whoever is gone for more than a day or two. That is until this past week.

We got some new 4x8 whiteboards (nice!) for the office, and they were nice enough to ship them in boxes that were about 4x8. With 5 of them, there was plenty of cardboard to do some "creative construction" with them. Our office has ceilings that are somehwere between 8.5 and 9 feet tall--Perfect! We took a few of the boxes and made an "office" for our VP.

Not bad for about 30-45 minutes worth of labor, although I don't really know how we are going to top this one...

Any ideas out there for what to do next?

Posted by molson at 8:57 PM

January 27, 2004

Sun Stinks

I want to take this opportunity to personally thank all of the wonderful people at Sun that ARE THE REASON THAT I AM STILL AT THE OFFICE AT 1030P.

Disksuite blows.

That is all.

EDIT: It's now 11:30P and it doesn't look like I will be out of here until 1230 or 1A. **sigh**

Posted by molson at 10:17 PM

January 15, 2004

Another Day, Another Reason Why I hate Sun


I have a server that crapped on me forcing me to reboot it. Upon reboot, I get the following "friendly" error:
mount: the state of /dev/md/dsk/d5 is not okay
        and it was attempted to be mounted read/write
mount: Please run fsck and try again
mount: the state of /dev/md/dsk/d3 is not okay
        and it was attempted to be mounted read/write
mount: Please run fsck and try again
mount: the state of /dev/md/dsk/d6 is not okay
        and it was attempted to be mounted read/write
mount: Please run fsck and try again
So I do what every good little Solaris admin does--follow the directions. I reboot into SINGLE USER MODE (emphasis Solaris) to run fsck. Here's what I get:
red:~# fsck -m /dev/md/rdsk/d3
** /dev/md/rdsk/d3
ufs fsck: sanity check: /dev/md/rdsk/d3 okay
The sanity check looks okay, so let's see if there really is anything else... full fsck...
red:~# fsck /dev/md/rdsk/d3
** /dev/md/rdsk/d3
** Last Mounted on /mx01
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
48997 files, 2018615 used, 4565662 free (42742 frags, 565365 blocks,  0.6% fragmentation)
Hmm... looks ok. Let's try to mount it, shall we?
red:/# mount /mx01
mount: the state of /dev/md/dsk/d3 is not okay
        and it was attempted to be mounted read/write
mount: Please run fsck and try again
POS Sun. Is it ok, or isn't it? Make up your mind, and tell me why mount thinks it's broken, but fsck thinks its fine.
</rant>

Posted by molson at 4:36 PM

November 14, 2003

Fun With The Home Office

Our Boston office is always sending out emails that there are sugary treats available in the kitchen--from donuts to brownies to leftover lunch food... Today I grabbed a Krispy Kreme and noticed that there were quite a few left. If we weren't going to eat, them, we should probably offer them up to everyone, right? I suggested this to Matt and he sent an email to everyone. I guess there were quite a few injuries as the people out there fought their way to the office. It started quite a riot.

Ahhh.... Friday afternoon punchy humor. Gotta love it!

Posted by molson at 3:08 PM