Saturday, December 17, 2005

2005 Jamacia trip

Saturday (12/10)

5:30 pm - we have arrived and are in our room waiting on our luggage.  Oops, there's the bell hop at the door with our bags.

-         buffet outside and a couple of drinks before we decide to turn in for the evening.  It has been a long day traveling and we are wiped out.  After heading to bed, Emily decides she needs a snack in bed, so I hit the grill for some Jamacian Jerk chicken, French fries, and snagged a couple of cold beverages from the bar.

Sunday (12/11)

          In the morning we had breakfast at the buffet, then hit the beach for some fun in the sun.   The water is warm and clear, and the weather is spectacular at better than 80 degrees.  After lunch, we setup set appointments for snorkeling and a cruise at the watersports stand.  The water sports stand also has sail boats, water skiing, windsurfing, etc.  Everyone here is very nice and truly fun (laughing and singing all the time).  These people really like their music.  We chose to attend the buffet dinner again.  Each night there was some type of fresh seafood, and I had several different types of snapper throughout the trip.      

 

Monday (12/12)

          Today’s big event was snorkeling at 1:30pm which consisted of a long narrow shaped banana boat with dual 40hp outboard motors taking on a ride about 15 minutes in length to a coral reef and tying up to an anchor.  The water was a little rough, but Emily and I took a lot of underwater photos using an underwater disposable camera that we purchased at gift shop for $17.50 US.  Note to self:  bring underwater camera next time. J  When we got back on board, some folks mentioned seeing an boat anchor, cannon, and stingrays which we did not see.  So, we will need to schedule another trip to find these artifacts.  Also, the sea was pretty rough this afternoon, so next time, we will try to catch the morning snorkeling trip.  Looking back on the trip, the morning is typically good for snorkeling and waterskiing; leave the afternoon for sailing, wind surfing, and drinking on the beach.

 

This evening, we also discovered the ping pong table.  We found out that we are pretty evenly matched at ping pong, and this lead to a week long battle at the ping pong table.  Our favorite ping pong table was the one in the shade by the pool.

 

After returning to our room, we were surprise to find a bottle of champagne that is probably because we marked this trip as our honeymoon.

 

Tuesday

Catamaran cruise loaded at 2:45pm for a trip to “Pirates Cave”.  The boat had a small boat on board, and it was pretty cool to sail the seas with a Red Strip beer in hand.  The scenery was cool with lots of rock shoreline and beautiful beaches.  The boat dropped anchor and passed out life jackets to those that wanted to go for a swim.  Emily and I swam into shore to check out the caves while others climbed the ladder, paid $2 for a beer and an opportunity to jump of the cliffs.  After seeing a couple of people in casts walking around the resort, we decided to swim only. J  The sunset coming back from the cruise was fantastic.  We were seated on the back of the boat and headed in a NE direction, so we had a great view of the setting sun.  Luckily, the clouds had not covered up this opportunity as it had the previous couple of days.

 

Wednesday

We showed up for a lesson on sailing at 9:30am, but there was no wind.  So, we signed up for snorkeling the next morning at 9:30am.  At 1:30pm, we returned for the sailing lesson.  After a quick review of how to control the boat, the instructore drew a digram in the sand to show how you can return depending on the wind.  Basically, you can not sail directly with or against the wind, and must zigzag to get to your destination.  Then, it was time to give a try.  The instructor set the “man” a sail to show his lady that he was sea worthy.  After a slow start, I got the hang of it pretty quick.

-         always turn into the wind, when the sail comes toward you, switch to the other side.

-         Tighten the sail to increase speed, loosen the sail to decrease speed. 

-         Sailing slightly angled into the wind, makes returning easier.

 

We really enjoyed the sailing.  The water is so clear, you can see all of the rocks on the bottom.  After our first short sail, we said this is something we are going to do again.

 

Thursday

We had breakfast in bed this morning, and at 9:15am pushed off for another snorkeling trip.  After our first experience, we had plans and did find our targets cannon, large anchor, and several small sting ray.  In addition, we found two unwanted surprises in jelly fish.  They were about 4 feet below the surface, almost transparent, and very difficult to see.  We emerged unscathed and satisfied with our 2nd snorkeling trip.  Unfortunately, there were no pictures left on the underwater camera, so we don’t have any pictures.

 

Dinner was at a special restaurant on the resort where we had to make reservations several days in advance.  The dinner and service was fantastic.  Rick had too much red, red wine.  After dinner, we attended the bon fire on the beach where they had a singer perform, and beach chairs surrounding the fire.  This was a fantastic time, but Rick was not feeling 100%, staggering, and wife helped him to bed.

 

Friday

The last full day in paradise.  This started on the beach, sitting in the shade, and reading our books.  It is at this point, that I realized that my MSDN magazine had an advertisement for www.pluralsight.com training that I am scheduled to attend, and the dates differed from my reservations.  A quick trip to the pc lab in the lobby to email pluralsight to verify the dates.  A quick response and everything is good.

 

Emily and I sailed this morning for a long time, making several trips around the bay.  Later in the day, we had our first rain of the trip.  Not significant, but enough to kill the wind for the day.  In fact, there were several sail boats (from another resort) that had to be “rescued” late in the day.  If I where those people, I would have been pissed that they left you out there all day.

 

After lunch and some liquid courage, I decide to show the visitors how to waterski.  With a little rain and no wind, I snapped on the slalom ski and took my turn at carving some turns in salt water.  I am a bit rusty, and seriously out of shape.  The wife has a bum hamstring and decided not to take a turn.  It was a little unsettling while skiing and seeing the large rocks under you, not knowing how deep they are.  If I bite it, am I going to smash my head on the rocks?  The ski boat was a little disappointing out of the whole with what seemed less than adequate power, but once on top of the water, it had plenty of power.

 

Em and I also tried bocche ball on the beach.  The wife beat me at the game she seemed to make-up.

 

For dinner, we had grilled lobster tail.  Wow, what a treat!!!

 

Saturday

-         6:30 am wake up call

-         7:15 am heading to breakfast.  We just set our luggage outside our room, and the bell hop picked it up and delivered it to the lobby.

-         8:00 am breakfast is over and we are sitting in the lobby waiting for the bus to load.

-         8:20 am bus ride starts from Couples Negril to Montego Bay airport.

-         9:30 am bus arrives at Montegoy bay.  I did not count, but I bet the bus driver beeped the horn on the bus at last 100 times during the trip targeting other passing buses, pedestrians, and other cars.

-         10:00 am – Our bags are checked into the airline without having attendants dig through our bags.  For some reason, they let us pass without any trouble.  Contrary to our experience with getting through immigration on the way in, there was no line, and it took about 2 minutes to get through immigration.

-         10:05 am – We are sitting in the bar at the airport writing notes on our trip.

Saturday, December 10, 2005

Jamacia trip

Well, we forgot to tell Harv that our flight from CMH to Charlotte was
not the international flight, so no need to show up two hours early.
He did anyway and had the car warmed up. We felt bad, but what you
gonna do.

He dropped us off and we made it through the security checkpoint no
problems. We used the kiosk to get our tickets, and having a passport
really makes the process easy.

I stuffed my power supply in our check luggage, and am concerned about
burning a lot of battery power on the laptop.

Thursday, November 17, 2005

Debug vs Release Mode - StackTrace problem

Recently, I created a base class for a series of components that would replace a Windows DNA architecture written in VB6.  Migrated components are intended to be called from Classic ASP and, as they are rewritten, ASP.NET applications.  The majority of VB6 components used a strongly-typed public property interface.  To consolidate property accessors, I created a method and System.Data.DataSet in a base class that used the System.Diagnostics.StackTrace.

 

One requirement of the base class was to return a default value to Classic ASP clients while raising exceptions to .NET clients that accessed properties with null values.  (The base class also contains a method allowing the caller to determine whether the property is null prior to requesting the value.)  The StackTrace allowed the base class to determine whether the caller was a COM client or .NET client, and return appropriate default values.

 

To my surprise, this worked flawlessly while the components were compiled in Debug mode, but when compiled in Release mode, the code did not work.  After reviewing the instrumentation code, it become obvious that the call stack was different from Debug and Release modes of the code.  A quick check with Reflector revealed that public properties were being in-lined obviously an optimization technique used in Release mode.

 

I was searching for an attribute that would allow me to control the optimization of these properties.  I found the attribute I was looking for [MethodImpl(MethodImplOptions.NoInlining)]; however this does not currently work with properties, only methods.  So, our solution is a little overkill, but under the time constraints seemed to solve our problem by having our base class inherit from System.MarshalByRefObject.  No inlining optimization, and we can continue with the current release.  Since this is a little heavy-handed approach, we may revisit to find a different solution.

Tuesday, March 29, 2005

COM and .NET Interop - Part II

Out of curiosity, I have been working through some of my COM and .NET Interop issues, and most specifically, working with passing arrays between to / from a C# component from Visual Basic 6.0.  As my earlier post indicates, this is in response to a client’s desire to replace VB6 COM+ components with a .NET implementation in c# while minimizing changes to Classic ASP.  Here are some of my findings.  In cases for strongly-typed arrays, I used strings; loosely-coupled means object in .NET and variant in VB6.

 

  • System.Array is not easily (not sure if it is possible) used with interop
  • Single dimension, strongly-typed arrays are easily used with interop.  In my case, I used strings. However, when used as input parameters, they must be passed byref and zero indexed.
  • Two dimension, strongly-typed arrays are easily used with interop.  They also have the same constraints as single dimension arrays (must be passed byref and must be zero indexed).
  • Zero-indexed arrays could cause a ripple effect in COM client code and requires more investigation.

Sunday, March 20, 2005

Virtual Server 2005 - Part II

I installed the “Virtual Machine Additions” and this significantly improved performance. My virtual machine is Windows XP running on a Compaq ML370, and the performance is definitely reasonable. I just installed Visual Studio 2005 Beta (December) and then Office 2003. I think there were 2 warnings during the install, but everything seems to be fine so far.

By the way, why does Visual Studio 2005 beta require Office 2003 to be installed to create a project? At least, this was one of the warnings I received after installing Visual Studio 2005.

Virtual Server 2005

I have been looking for away to get my feet wet with Visual Studion .NET 2005 but was hesitant to install on any of my properly configured development machines. After some hacking around with Virtual PC 2004, I happened to stumble across Virtual Server 2005. This has some potential. The only big downside is performance.

I found a tidbit about Virtual PC 2004 performance improvements by using a fixed virtual hard drive size; however, I have noticed less performance improvement using the same trick on Virtual Server 2005.

COM and .NET Interop

I have been doing some proof-of-concept work for a client that has a series of n-tier Classic ASP web applications. You will all remember the n-tier architecture of the late 1990’s with Classic ASP pages that call MTS / COM+ components to perform business logic and handle distributed transactions.

My client has implemented all COM+ components as Visual Basic 6.0 components. With the VB end-of-life in 2008 in mind (but not VBScript), my client has requested my to investigate options for migrating VB6 components to .NET and c#.

Some aspects of their architecture lend itself to interop rather easily; however, there is one particular aspect where I have yet to come up with a good alternative. The issue I am referring to is when COM components use two-dimensional arrays to transport data from COM+ components to Classic ASP. When n-tier architecture was the key to a good resume, a common design issue for architects was whether to expose ADORecordset as a parameter in the method signature. One alternative to exposing ADOR on the interface was to use a two-dimensional variant array. This provided a loose-contract avoiding re-compilation when data structure of the parameter changed. For example, if a stored procedure returns a variant array of name/value pairs used to populate a drop-down box in the user-interface.

I have yet to find a clear example of how to replace VB components that expose multi-dimensional variant arrays on their interface. So, if I come up with a good solution, I will be sure to post here, so it is documented for your reference.

If you have seen such an example, be sure to let me know; otherwise, stay tuned.

Sunday, March 13, 2005

Home Improvement

We'll we decided it was time to make the Buckeye room a reality. A trip to Home Depot to get some paint (sweatshirt grey and Stadium Red should do the trick).

1 1/2 hours to remove all furniture, remove outlet covers, blinds, and remve outlet covers.

going to grab some pizza then start cutting in the room. By weeks end, we should have a totally different room.

Thursday, March 10, 2005

First post

Finally moving into the blog world with a place to write about my research.