*Coder Blog

Life, Technology, and Meteorology

Category: General (page 1 of 5)

Traveling Nightmare

2008 shall now forever be known as the year of the shitty holiday travel episode. I’m writing this at 2:30am on December 24th while sitting at Chicago O’Hare airport, waiting for our flight to take off “tomorrow” morning at 8am. For some reason, our travel this year has been plagued by delays and abnormalities.

Most of this has been caused by the unseasonably snowy weather we’ve had this year. In Mount Pleasant, for instance, we’ve already had over 45 inches of snowfall this year. With our typical total seasonal average around 50-60 inches, we’re approaching that quickly with 2-3 winter months still to go. We’ve broken records for the most snow in December (around 35 inches so far). The previous record was 21 inches back in 1907…

This has made for a pretty miserable travel season. For us, it started late last week when we were driving to Rochester, NY. We were planning to leave Friday morning, but a storm was coming in, so we decided to get a head start on it Thursday night. We left at 5pm, and ended up near St. Catharines, Ontario around midnight, so we decided to stop for the night. Of course on Friday morning, we woke up to blizzard-like conditions and 4-6 inches of new snow already on the ground. We decided to tough it out, after all we only had 2 hours left to the drive, so how bad could it be? We have snow tires on the car, which make driving so much easier (usually). We spent 3 hours battling our way to Buffalo in near white-out conditions, where we decided to hold off at a family member’s house until the snow let up, passing who knows how many cars stuck in ditches along the way. Finally, after another 3 hours driving that evening, we made it to Rochester. A day and a half of traveling when it should have only taken us 8 hours.

Then, this past Sunday we were planning to get together with the family, but of course after the large storm passed, we were left with some pretty strong lake-effect snow. Some areas around Buffalo got another foot of snow that day, and it was bad enough to cancel our family party for that evening. Bummer…after spending all that time driving to NY, a good part of the reason we went didn’t end up happening at all…

Monday, we drove from Rochester back to Grand Rapids, MI. Driving this day was pretty good in general, though it was snowing pretty heavily by the time we got to Grand Rapids. We stayed the night in a hotel, with our flight to California leaving the next afternoon (Tuesday, the 23rd). Tuesday morning we woke up to another 6 inches of snow. We ran some errands that morning, and between the snow and a busy Christmas shopping day, it took us about an hour to drive 5 miles in town. We made it to the airport by around 3:30pm, without seeing any break in the snow at all during the day we were there.

Of course, with our flight going through O’Hare, I kind of expected that we might be setting ourselves up for a long travel day. Our 4:45 flight from Grand Rapids to Chicago didn’t end up leaving until 7:45pm. Our connecting flight to San Francisco was delayed until 9:15pm, and with the time change we thought we had a good chance to make it. Sure enough, we landed in Chicago at 8:10, plenty of time to make our connection, until American Airlines pulled some stupid shit…

First, we couldn’t park at our gate because there was already another plane there. Then we proceeded to taxi for 45 minutes before getting to our new gate. To top it all off, the walkway on the new gate wasn’t working, so we had to wait until they figured out WTF was going wrong. Finally off the plane, I ran over to the next departure gate (it was only 3 gates away) to find our connecting plane sitting there being de-iced. Except nobody was at the gate, and the doors were locked. I ran over to the next gate to see if they would re-open the doors (there were 10 of us making this same connection). Seems simple…finish de-icing the plane, open the door, let 10 of us on the flight, close the door back up and let’s go. Nope…they wouldn’t do it.

Now rebooking a flight shouldn’t be a problem, but with all the cancellations today, everyone is trying to rebook. We ended up waiting in line for 2 hours, but finally got a connection on United for tomorrow morning at 8am. Walking to the other terminal took us around a half hour, and then we had to wait for another hour in line at a United counter to get our new tickets issued, only to find out that American booked the tickets without actually reissuing them to United, so while our seats were reserved, United couldn’t actually give us tickets for them. A call to American and another hour waiting in line finally resulted in some tickets on the next flight out tomorrow morning.

I suppose we should consider ourselves lucky…I can’t count how many people we’ve run into that have been delayed until the 26th; had to call off their trip completely; or even worse, made it halfway to their destination only to have to turn around a fly back home. Now as long as that flight at 8am doesn’t get cancelled…

Thailand Group Study Exchange

Every year, the local Rotary Foundation district participates in a Group Study Exchange (GSE) with a Rotary district in another country. The idea behind the exchange is that the local district sends 5 people over to the remote district for 4 weeks, and on the flip side the remote district sends 5 people over here for 4 weeks as well. During the trip, the team participants offer several presentations talking about life and culture here in the U.S., or more specifically in the area in which we live. Obviously, the team also spends time touring the other country and learning about their culture. Almost everything is paid for by the local and remote Rotary districts–airfare, lodging and food are all provided. After the team returns, they are expected to share their experiences with local Rotary clubs and other organizations.

Last year the exchange was with a Rotary district in Australia, and next year I hear they are going to Spain. This year, the exchange is with a Rotary district in Bangkok, Thailand. After submitting my application and interviewing with members of the Rotary Foundation this past Tuesday evening, yesterday afternoon I was pleasantly surprised to get a call inviting me to become a member of the team this year.

My first reaction to hearing the news can be summed up in a single word: Whoa… While I had spent a good amount of time talking to Katrina and deciding whether or not to apply for the GSE, it wasn’t until I was invited to join the team that it became real. I mean, it’s 4 weeks of being away from family and friends in a country where very few people speak English and the culture is vastly different. On top of that, this is definitely not a vacation, in that we have full schedules almost every day of the trip. Gaucho Software would have to be put on hold for a month and the meteorology courses I’m taking a Central Michigan University would have to be put on hold for a semester.

On the other hand, I would get to go to Thailand! I’ve never been to Asia or even outside of North America before, so this would be quite an experience. Over there, team members are matched with someone in the other country who has the same profession, so I would get to see first-hand how software engineering and/or meteorology differs in that part of the world. 95% of the Thai people are Buddhist, so I would get to learn more about that religion and see tour Buddhist temples. Not to mention the architecture of other buildings, the excellent food, and the list goes on and on.

This morning, I formally accepted the invitation and now the preparation begins. Wish me luck…

Customer Service

There have been two instances of excellent customer service that I’ve experienced recently. The service offered in both instances was so good, that I decided to blog about them.

The first experience took place just before WWDC this year. Usually after a year of hammering on a laptop battery, I pick up a fresh battery before the conference, simply because it’s important that the laptop works all day while taking notes in the sessions. Usually I replace the battery with an Apple standard battery, but this year I decided to give a third party a shot. FastMac has a battery for the MacBook Pro that claims it will last longer than the Apple one, and it’s about $20-30 cheaper too. I ordered it and waited patiently for it to arrive.

After hearing nothing for about a week (and WWDC getting dangerously close), I decided to give them a call. The person I talked to was apologetic, stating that they ran out of stock just before my order was placed. Bummer. Fortunately, FastMac did have new Apple batteries in stock, and not only did they offer to switch my order, they added rush shipping to make sure it would arrive before the conference, and knocked the price down to $10 less than they were charging for their own battery. The unit arrived with a day or two to spare, and overall it was a great example of a company going the extra mile.

The second experience happened just a few days ago. I’m installing a new network here at the office, and part of that new network was a Cisco router. As usual, I ordered the new equipment from NewEgg. It arrived, and seemed to work okay out of the box, but for some reason I was unable to connect to the device using the ASDM or over the web configuration interface. I called up Cisco, and the tech I spoke with there spent an hour and a half on the phone with me trying to troubleshoot the issue. The nice thing was their use of WebEx to help troubleshoot, so they could share my Desktop here and work with the router themselves directly. In the end, it was determined that the router I received had a corrupted flash chip, because we were unable to write any new data to the flash disk.

I went through NewEgg’s online exchange interface, and it was looking like I needed to pay to ship the damaged router back to them (shipping of the replacement device was free). I was a bit put off by this. While I agree it wasn’t NewEgg’s fault I received a bum router, I also shouldn’t pay extra for something that wasn’t my fault either. When calling up NewEgg to ask an unrelated question, the representative I was speaking to noticed that I was charged shipping to return the damaged device. Not only did he refund the return shipping amount, but he also put through an order for the new device to ship before they received the damaged one. To top it all off, he upgraded the shipping on the replacement to next-day air for free.

In this last situation, both Cisco and NewEgg get major props for great service. The new router arrived and it’s worked perfectly from the get-go.

MacSanta Brings Seasonality and Dash Monitors to You!

MacSanta has been bringing popular Mac software from indie developers to your stocking this year, and Gaucho Software is joining in on the fun.  Save 20% when you purchase Seasonality or Dash Monitors today, just in time to watch that big storm slamming the Eastern U.S. with rain and snow… 🙂

Since many of you are offline during the weekend, enjoy the same 20% discount tomorrow too!  Just use coupon code MACSANTA07 when checking out from the Gaucho Software Store.  After that, you can save 10% through December 31st by using the coupon code MACSANTA07TEN.

Happy Holidays!

Summer Update

It’s been almost two months since I’ve posted here, so to avoid the risk of this blog becoming a dinosaur, I thought I would post an update.

Katrina and I returned from our 6-7 week road trip in the beginning of July. We drove out to California at the end of May, and stayed with family for several weeks (also hitting WWDC, of course). On the way out there, we took the northern route, hitting Mt. Rushmore, Yellowstone, the Tetons, and the Salt Flats. On the way back, we started in Santa Monica and drove Route 66 all the way through St. Louis, taking the freeway the rest of the way home after running out of time. We’ll have to drive the rest of Route 66 from St. Louis to Chicago sometime soon. Overall, it was quite a trip. Watch my Flickr stream for photos of the trip.

Been working on finishing up DynDNS Updater 2.0, which will hopefully be ready soon. The app is looking pretty good. A lot of smaller details have been improved upon since beta 5, that collectively improve the application quite a bit.

Trying to spend some time working on Seasonality’s international forecast as well. I’ll post more on this at a later point in time, but I’ve created some cool imagery and animations that I’ll be using to tweak the forecast generator to make it more accurate.

C4 is coming up this weekend! I’ll be taking off for Chicago tomorrow for a weekend of Indie fun. I’ll be showing an entry for the Iron Coder Live contest…which reminds me I still need to fix a bug or two there. Should be a blast. I’ll most likely be keeping my Twitter feed up to date more than posting here about stuff.

Speaking of Twitter, I started Twittering (is that a word?) a few months ago, and I’m hooked. If you don’t know, Twitter is a place to post Tweets, which are short bits of text (no longer than 160 characters), usually telling others what you’re up to. My first thought was how much time I would be wasting by doing this, but the whole idea is that posting a Tweet is supposed to be really quick. It provides some nice breaks throughout the day, and the community building around the site is pretty amazing. Check out my Twitter page, and if you’re interested, sign up and start using Twitter yourself.

That’s all folks…

8 Random Facts

Logtar tagged me with a meme to post 8 Random Facts about yours truly. These are things that most people don’t know about me, so I thought it would be pretty fun. So, off we go…

  • I have visited over half of the 50 states in the U.S., but I’ve never left North America. I’m hoping to change this soon.
  • I had an opportunity to go on a 35 mile backpacking trek in the Sierras back during my early teen years when I was in scouts. Hiking past the tree line up to 14k feet where there is snow, even in the middle of July, was really damn cool.
  • I’ve broken my nose while bodyboarding (face first, right into the sand in shallow water).
  • I’ve broken my head while mountain biking… Took off a jump and bit it hard. Walked a few miles back to my apartment with my shirt held on the top of my head to stop the bleeding. The doctors used the medical equivalent of a staple gun to sew me back up. That event taught me to always wear a helmet while riding.
  • I met my wife, Katrina, at the same location that Katrina’s parents met several years earlier.
  • I have not seen any movie of the Star Wars trilogy in it’s entirety.
  • Cereal makes a good breakfast, lunch, or dinner.
  • I can’t stand going to see doctors or dentists… I do have regular dentist cleanings, but I haven’t been to see a doctor in the past 4+ years.

Gauchos Win NCAA Soccer Championship

Go Gauchos! The UCSB Mens Soccer team just took the NCAA title this past Sunday. But how can some enthusiastic UCSB students celebrate such a victory? I know, let’s throw one of the stadium goal posts into the ocean! 🙂

Of course someone was able to catch the event on video and post it to YouTube…

Ole!

I ran across a problem in the latest betas of Seasonality where the graphs would show up blank when printing. It took me awhile to fix this issue, so I thought I would post my solution here in the hopes that it might save someone else time in the future. Here’s a screenshot of print output before the fix:

The problem is that the Seasonality graphs are drawn using Core Graphics routines instead of the higher-level Quartz routines. I did this to squeeze a little more speed out of the drawing code, and also gained more customization with transparency settings and layered drawing. Basically, I grab a CGGraphicsRef using [[NSGraphicsContext currentContext] graphicsPort], and use it to draw all the other elements.

From what I could find online, it seemed that the problem was that while printing, the context isn’t referenced until later than it is when drawing it to screen, so the context doesn’t stick around long enough for the printing code to pick up on it and draw. So either I could find a way to retain the graphics context long enough for the printing to complete, or I could find a new way to draw my view for the printer. I didn’t want to retain a graphics context object because I think that makes the code a little messy, so I tried to find a new way to draw my view.

The first thing that came to mind was to not use all the Core Graphics routines to draw the graphs when printing. That would be a very large code change, and it’s a lot of extra code that isn’t used too frequently. The better solution I found was to draw everything to an NSImage first, and then draw the NSImage to the printer. Here’s some code…

- (void)drawRect:(NSRect)rect {
   NSImage *lockedImage;
   BOOL printing = ![NSGraphicsContext currentContextDrawingToScreen];
   if (printing) {
      lockedImage = [[NSImage alloc] initWithSize:rect.size];
      [lockedImage lockFocus];
   }

   // Get our graphics context.
   CGContextRef cgContext = [[NSGraphicsContext currentContext] graphicsPort];

   // Drawing code here...

   if (printing) {
      [lockedImage unlockFocus];
      [lockedImage drawInRect:rect
                     fromRect:NSMakeRect(0, 0, rect.size.width, rect.size.height)
                    operation:NSCompositeCopy
                     fraction:1.0];
      [lockedImage release];
   }
}

Here’s a screenshot of the output after the fix:

This solution has a small disadvantage, you don’t get the ability to print using the printer’s full resolution. Since Seasonality users don’t print too often, this tradeoff is okay, but it might be an issue to consider for other applications.

Some Excellent Blog Postings

There has been a flood of excellent blog postings these past couple of days. Most are related to WWDC, but I threw in a few others as well. Here are the ones that caught my eye…

Brent’s WWDC talk: Brent has posted several entries on his blog, requesting tabbed interface updates (I second this), the open sourcing of Cocoa, UI requests for Leopard, and other random WWDC speculation.

Gus’ WWDC Predictions: Gus predicts resolution independence, VMware for Mac goodness, and other changes in Leopard.

Happy WWDC Guesses: Luis de la Rosa over at HappyApps has a few guesses up his sleeve as well.

Mike McCracken Cards: Mike McCracken won’t be able to make it to WWDC this year, but he’ll be there in spirit thanks to these hilarious cards he put together and posted on his blog today.

My imaginary friend hates your imaginary friend: Logtar talks about religion with respect to the latest political events unfolding in the Middle East. Very insightful.

The Price Is Wrong: Daniel Jalkut at Red Sweather Software talks about pricing shareware applications. Very good read.

St. Croix

Katrina and I took a much-needed vacation and spent the last week down on St. Croix in the Caribbean. I have to say, this is the best time of year to vacation down there. It’s off-season, so very few tourists were around and that made the trip much more enjoyable. St. Croix doesn’t get as many tourists as the other U.S. Virgin Islands (St. Thomas and St. John) to begin with. No crowds to compete with at the beach, traffic wasn’t an issue, and overall everything was much more relaxed.

We stayed at a resort that was right on the ocean, and our room happened to be on the first floor. We were able to walk off our back patio onto the sand, and it was gorgeous. Nothing beats reading on a hammock tied to two palm trees, snorkeling was just a short walk away, and the island is small enough that nothing is too far by car. Down there they drive on the left side of the road, which took some getting used to, but after a day or two it was second nature.

I’ll post some pictures to my Flickr account in the next few days. Of course a lot of things can happen in a week, and I’m still trying to catch up. Here’s some of the more notable online events…

Logtar interviews Dan Lacher: The weekend before we left, Logtar interviewed Dan Lacher at the local MiaMUG meeting. I was on the scene to take some pictures, which can be found on my Flickr page. The Podcast itself can be found on Logtar’s blog.

Happy Apps releases WebnoteHappy 1.0: Luis de la Rosa just released his first shareware application. Back in January, Luis released WebnoteHappy Lite, the free version of the app. I mentioned it here back then and all the same things apply for the full version. I gave Luis a quote about the software, and he ended up using it on the product page so that’s pretty cool. WebnoteHappy is a really great bookmark manager, so if you’re looking for something along those lines I would suggest checking it out.

Apple released the MacBook: Not going to say much about this because it’s been on all the news sites. It’s a pretty cool notebook though for a great price. Looks great in black too…

Older posts

© 2017 *Coder Blog

Theme by Anders NorenUp ↑