I mentioned in last week's post that there were several intertwined reasons for my silence here. I will tell these stories individually these next few weeks. This is the first.
In spring 2009, a dark, tense cloud hung over P.I. Engineering. The recession had taken its toll on the company's bottom line, and micro-managing had driven morale to an all time low. By looking at the books, the TrainMaster group was showing negative return on investment for the company.
From inside the TrainMaster group, we were starting to see the first fruits of our labor as we were finally courting new customers beyond our initial R&D contracts. Our first strides of sales growth were quickly squandered by the "leadership" at P.I. Engineering.
Early autumn 2009 brought us the dire news that P.I. Engineering could not afford to keep the TrainMaster group on the books for very much longer. The rest of the team and I began prepping our resumes while P.I. Engineering searched for a buyer for our division. Later that autumn, the news came that Union Pacific Corporation had entered negotiations to purchase the TrainMaster group. Over six months of haggling and double dealing, contract scares and power plays stood between us and the eventual purchase date, June 1, 2010.
After those dark days, being a Union Pacific employee felt like I had reached the Promised Land. On the day of the buyout, we hired one of our most satisfied customers as our full time salesman, turning our now "off the shelf" training simulation into quick profits for our new company. It is such a great feeling to know that the people in charge actually care about our team and want to help us flourish.
I probably could have told this story soon after June 1, 2010. However, those dark days toyed with my emotions in a way very similar a more personal struggle that took place over the same two years. That struggle is a story for another day.
Showing posts with label work. Show all posts
Showing posts with label work. Show all posts
2011-08-14
2009-04-02
April Fool's Day
I love all manner of games and jokes. This makes April Fool's Day significant for me. I have never pulled a huge prank like filling a friend's dresser drawers with packing peanuts or rotating all the furniture in room by 90 degrees. However, subtle pranks can be just as fun if executed well.
Last year was my first April Fool's Day as a professional programmer in an office environment. I hoped to make an impression by "infecting" some of my coworkers computers with a little joke program. A quick Google search lead me to a list of free possibilities, but my Anti-Virus software wouldn't even let me try them. I then decided to replicate my top choice by hand. I picked a few people around the office and found images that they would hate, such as an MSU Spartans logo for the die-hard U of M fan and a Green Bay helmet for the Lions fan. The program briefly flashed the selected image periodically, after the idea of subliminal advertising. It worked well to annoy the targeted individuals, but it felt like a rush job.
I realized about a month ago that I hadn't put any thought into a joke program for this year. As I was pouring over the possibilities, two memories collided in my head. The first was a programming term that I must have read somewhere: "Trapping the mouse." The term means restricting the movement of the mouse cursor to a particular range, such as the canvas of a photo editor or to the window of a game. The second memory was of a TV show I watched on PBS as a kid, Ghostwriter. The show featured a ghost that could only communicate by manipulating written words, but had free range to create text in a computer. The collision of the these memories sparked the idea of having a ghost randomly appear and drag the mouse cursor around the computer screen.
I started by mocking up quick version with a stick figure graphic and simple angular movement. Once I got the mouse trapping to my liking, I upgraded the graphics to the little ghost you see to the left. I then set about making the movement based on the rotation of a simple vector. I started experiencing some "rotational loss," meaning the vector would shorten each time it was rotated, which lead to the ghost eventually coming to a standstill while still trapping the mouse. After I solved that problem, I added some bounds checking to keep the ghost on the available screens at all times. My first pass at the bounds checking would occasionally lead to an infinite loop of corrective action, so I added a loop counter that would bailout of the corrective loop and allow the suspect move, assuming the next move would also need bounds correction, but would be easier to calculate. As a "finished product," I settled on each trap event lasting only 3 seconds. I had the program compile to the innocuous "afd9.exe" and stored it on my shared folder, so I could launch it from any computer on the network.
I started the program secretly on 6 coworkers computers. I also demonstrated it to 5 other coworkers. All responses were positive, from "That's cute, now get it off my computer" to "Very clever, well done." One of the secretly started instances was never trigger, but I showed him how it triggered when he said he felt left out. I am very pleased with the final product and the response. I think it was a good pick me up for the office morale. Now, what should I do next year?
Last year was my first April Fool's Day as a professional programmer in an office environment. I hoped to make an impression by "infecting" some of my coworkers computers with a little joke program. A quick Google search lead me to a list of free possibilities, but my Anti-Virus software wouldn't even let me try them. I then decided to replicate my top choice by hand. I picked a few people around the office and found images that they would hate, such as an MSU Spartans logo for the die-hard U of M fan and a Green Bay helmet for the Lions fan. The program briefly flashed the selected image periodically, after the idea of subliminal advertising. It worked well to annoy the targeted individuals, but it felt like a rush job.
I realized about a month ago that I hadn't put any thought into a joke program for this year. As I was pouring over the possibilities, two memories collided in my head. The first was a programming term that I must have read somewhere: "Trapping the mouse." The term means restricting the movement of the mouse cursor to a particular range, such as the canvas of a photo editor or to the window of a game. The second memory was of a TV show I watched on PBS as a kid, Ghostwriter. The show featured a ghost that could only communicate by manipulating written words, but had free range to create text in a computer. The collision of the these memories sparked the idea of having a ghost randomly appear and drag the mouse cursor around the computer screen.
I started by mocking up quick version with a stick figure graphic and simple angular movement. Once I got the mouse trapping to my liking, I upgraded the graphics to the little ghost you see to the left. I then set about making the movement based on the rotation of a simple vector. I started experiencing some "rotational loss," meaning the vector would shorten each time it was rotated, which lead to the ghost eventually coming to a standstill while still trapping the mouse. After I solved that problem, I added some bounds checking to keep the ghost on the available screens at all times. My first pass at the bounds checking would occasionally lead to an infinite loop of corrective action, so I added a loop counter that would bailout of the corrective loop and allow the suspect move, assuming the next move would also need bounds correction, but would be easier to calculate. As a "finished product," I settled on each trap event lasting only 3 seconds. I had the program compile to the innocuous "afd9.exe" and stored it on my shared folder, so I could launch it from any computer on the network.I started the program secretly on 6 coworkers computers. I also demonstrated it to 5 other coworkers. All responses were positive, from "That's cute, now get it off my computer" to "Very clever, well done." One of the secretly started instances was never trigger, but I showed him how it triggered when he said he felt left out. I am very pleased with the final product and the response. I think it was a good pick me up for the office morale. Now, what should I do next year?
2009-03-29
Benjamin J Hobbs: Terrible Blogger

I wanted to start this blog to tell the anecdotes of my life, but I left you all with a cliff hanger almost 2 months ago. I could give you the very valid excuse that I've been busy with new customers coming online at work, but that feels like a cop out. So let me give you Cliff Notes version as a catch up.
The car was only down for one week. The day after the accident, Enterprise switched us out of the Delivery Van and into a Nissan Sentra. Nice ride, but not really my size. State Farm completely covered the repair, so we threw in some maintenance work while it was in the shop. The Malibu ended up coming back to us in better condition than before the accident.
Jenny and I filed our taxes in late February and got a sizable return due to the First-Time Home Buyer's credit. I've got to thank President Bush for getting that one through congress. The return allowed us to each get new computers. Jenny got a little pink Netbook from Dell, and I built a cool looking powerhouse for gaming and development. The return also helped us make some much needed repairs around the new house. We gave a list a mile long to our plumber friend, and bought paint for every room.
I decided to do something significant for Lent this year. The Church I attend doesn't make a big deal about the forty days of Lent, but I still try to use the time to make myself a better person and a better follower of Christ. This year I decided to do quite a serious fast. I didn't give up food altogether, as that is reckless and dangerous for a 40 day period. I did reduce my intake to one meal of my choosing each day. Jenny worried about my health, and encouraged me to supplement my single meal with juice. I took her advice and started drinking V8 Splash and V-Fusion during the mealtimes I skipped each day. The goal of the fast is to improve my Bible study. I have not seen as much improvement in the quantity of study as I originally planned, but the quality of study has made a marked increase so far. There are two more weeks until Easter, which will mark the end of my physical hunger and hopefully a continued hunger for the Bread of Life.
I think that covers the major bullet points of the last two months. I hope to write more frequently in the near future. In fact, check back this Thursday as I will have a scheduled post telling of my April Fool's Day joke program for this year.
2009-01-10
Where did December go?
It is hard to believe we are already a third of the way through January. I had been planning to post about an overly busy weekend at the beginning of December. I also planned to post about the busy end of year deliverables that piled up. Then again I hoped to post about all the different Christmas parties I went to. When I finally got time to breath, I found my time filled with a return to the free MMORPG that I'd been playing with some of my friends. By then, New Year's Day had come and gone, and I was back at work setting an aggressive bug fighting schedule. And here we are on January 10th and I'm blogging for the first time in a month, so let's make it a good one.
The first weekend of December had Jenny and I driving all over the Greater Lansing Area for an assortment of dinner parties. Saturday night was spent in Grand Ledge, and my first visit to the home of my pastor, Frank Weller. He had invited us and a number of other couples to a dinner party and informational meeting for a program called Joshua's Men. This program is a year long leadership training course. I look forward to participating in Joshua's Men in 2009, and I'll have more to say about it once it kicks off. Sunday night was spent in Williamston, for the annual P.I. Engineering Christmas Dinner. This year, the party was held at our new warehouse space, which is currently being rented by a textbook binder. It was a delicious dinner and and a fun evening touring our newest facility. Monday night was spent in Lansing, at Jenny's work party. The Elmwood Nazarene Child Care party was a potluck dinner, and was fairly awkward for me. I only knew one other couple at this party, and I was feeling ill that evening. Lucky for me, Jenny knew in advance, and didn't parade me around in front of all her coworkers. Three completely different dinner parties, one busy weekend.
Early December was spent delivering our first Mainline Simulator. The project director was on site with the customer, installing the hardware. I was in the office in Willamston, sending through software and content updates from myself and the other members of our team. Overall, it was a successful install, but there is more to be deliver on the software and content side in 2009. The rest of December was spent fixing bugs for our first Train Yard Simulator customer, and then cloning that code for the training facility they resold our project to. I also had to set up a generic Yard Simulation for a brand new customer looking to spend some of their 2008 budget. Finally, just before the office holiday break, I had to make a copy of the source code for our Escrow Lawyer. Five big deliverables, one busy work month.
Friday, December 19th was a terribly snowy day. So snowy, in fact, that every district in Ingham county was closed. Snowy enough to change the plans Jenny and I had to change our plans for celebrating our 4th Anniversary. We also had to reschedule the Getchel family Christmas feast from Saturday the 20th to January the 3rd. Christmas Eve brought a half day of work, the Jardine family gift exchange, and Christmas Eve Candlelight Service at SLCC. On Christmas day, I spent time with a sick Jenny at home, my parent's house and her parent's house. She found the most comfortable place to nap at each place. So many Christmases, so many fun times.
I spent three whole days in my pajamas, on my sofa and playing ShadowBane. ShadowBane is a free to play Massively Multiplayer Online Role Playing Game. Some close friends introduced me this fun game. It has an open world to play in, an aggressive Player vs Player format, and highly customizable character classes. I had neglected playing with my friends for a few weeks and logged back on to find our guild had captured our own city. I spent those few day catching up and enjoying myself. If you feel so inclined, you can download the free software, send me a message and I'll help you get started in the game and induct you as a member of the Keepers of Dawn.
Jenny and I spent our New Year's Eve celebrating with our small group. The Cohoons, the Batdorffs, the Simmons, and all their kids stayed up until midnight to witness the turning of the calendar and the dropping of the ball. We filled the lead up to midnight with Wii gaming, Apples to Apples, Darts and deep fried anything. It was a great evening that spilled over into the next day with Bowl games and Board games. Great times with close friends.
Friday, Janurary 2nd was a bit of a write off. I had to return to work, but had very little to do. Most people spent the day cleaning up their work stations and work spaces. I took the opportunity to defragment my hard drives. The following Monday, I met with the project manager and discussed all that needed to be done for our Mainline customer. He suggested i set the schedule for the tasks ahead. I set an aggressive one that forced me to make the changes and improvements to our software that had been stewing around in my brain for a while. I spent most of the week on track, but encountered some un expected hold up late in the week. Next week should witness me getting back on track and completed on schedule.
All told, I ended 2008 pretty busy, but I wouldn't have it any other way. Life has been good for Jenny and I. 2009 looks to be just as busy and better than ever. I have new opportunities to learn and grow. I look forward to grabbing on to each of those opportunities and becoming a better programmer, a better husband, a better leader, and a better man. And maybe, just maybe, I'll blog more often.
The first weekend of December had Jenny and I driving all over the Greater Lansing Area for an assortment of dinner parties. Saturday night was spent in Grand Ledge, and my first visit to the home of my pastor, Frank Weller. He had invited us and a number of other couples to a dinner party and informational meeting for a program called Joshua's Men. This program is a year long leadership training course. I look forward to participating in Joshua's Men in 2009, and I'll have more to say about it once it kicks off. Sunday night was spent in Williamston, for the annual P.I. Engineering Christmas Dinner. This year, the party was held at our new warehouse space, which is currently being rented by a textbook binder. It was a delicious dinner and and a fun evening touring our newest facility. Monday night was spent in Lansing, at Jenny's work party. The Elmwood Nazarene Child Care party was a potluck dinner, and was fairly awkward for me. I only knew one other couple at this party, and I was feeling ill that evening. Lucky for me, Jenny knew in advance, and didn't parade me around in front of all her coworkers. Three completely different dinner parties, one busy weekend.
Early December was spent delivering our first Mainline Simulator. The project director was on site with the customer, installing the hardware. I was in the office in Willamston, sending through software and content updates from myself and the other members of our team. Overall, it was a successful install, but there is more to be deliver on the software and content side in 2009. The rest of December was spent fixing bugs for our first Train Yard Simulator customer, and then cloning that code for the training facility they resold our project to. I also had to set up a generic Yard Simulation for a brand new customer looking to spend some of their 2008 budget. Finally, just before the office holiday break, I had to make a copy of the source code for our Escrow Lawyer. Five big deliverables, one busy work month.
Friday, December 19th was a terribly snowy day. So snowy, in fact, that every district in Ingham county was closed. Snowy enough to change the plans Jenny and I had to change our plans for celebrating our 4th Anniversary. We also had to reschedule the Getchel family Christmas feast from Saturday the 20th to January the 3rd. Christmas Eve brought a half day of work, the Jardine family gift exchange, and Christmas Eve Candlelight Service at SLCC. On Christmas day, I spent time with a sick Jenny at home, my parent's house and her parent's house. She found the most comfortable place to nap at each place. So many Christmases, so many fun times.
I spent three whole days in my pajamas, on my sofa and playing ShadowBane. ShadowBane is a free to play Massively Multiplayer Online Role Playing Game. Some close friends introduced me this fun game. It has an open world to play in, an aggressive Player vs Player format, and highly customizable character classes. I had neglected playing with my friends for a few weeks and logged back on to find our guild had captured our own city. I spent those few day catching up and enjoying myself. If you feel so inclined, you can download the free software, send me a message and I'll help you get started in the game and induct you as a member of the Keepers of Dawn.
Jenny and I spent our New Year's Eve celebrating with our small group. The Cohoons, the Batdorffs, the Simmons, and all their kids stayed up until midnight to witness the turning of the calendar and the dropping of the ball. We filled the lead up to midnight with Wii gaming, Apples to Apples, Darts and deep fried anything. It was a great evening that spilled over into the next day with Bowl games and Board games. Great times with close friends.
Friday, Janurary 2nd was a bit of a write off. I had to return to work, but had very little to do. Most people spent the day cleaning up their work stations and work spaces. I took the opportunity to defragment my hard drives. The following Monday, I met with the project manager and discussed all that needed to be done for our Mainline customer. He suggested i set the schedule for the tasks ahead. I set an aggressive one that forced me to make the changes and improvements to our software that had been stewing around in my brain for a while. I spent most of the week on track, but encountered some un expected hold up late in the week. Next week should witness me getting back on track and completed on schedule.
All told, I ended 2008 pretty busy, but I wouldn't have it any other way. Life has been good for Jenny and I. 2009 looks to be just as busy and better than ever. I have new opportunities to learn and grow. I look forward to grabbing on to each of those opportunities and becoming a better programmer, a better husband, a better leader, and a better man. And maybe, just maybe, I'll blog more often.
Subscribe to:
Posts (Atom)