Public musings, often on software development RSS 2.0
# Sunday, June 12, 2005

Time for a more technical entry here in my blog.  As you can probably tell, I have a pretty strong belief that my blog, should not be a flat one-dimensional product.  After all it's important that we maintain interests outside of our job, so as I sit here watching a bit of OLN's Cyclism Sunday I figure I'll put in a quick technical entry before I go for my own Sunday ride down the coast.

In this case I want to talk about the use of GUID's.  First I'm going to talk about the characteristics of what a GUID is...  Historically of course Microsoft introduced the GUID structure around the same time that UUID's were introduced.  SO let's start with what's a UUID.  Good definitions are available here: http://www.dsps.net/uuid.html and here: http://www.opengroup.org/onlinepubs/9629399/apdxa.htm.  As you can see the UUID is defined as a Universally Unique Identifier and it is a 128 bit or 16byte value.  A value of this size is represented bya seres of hexadecimal (base 16) pairs.  This format is the same one used by Microsoft in the implementation of the GUID.  One of my favorite lines which I remember hearing from a Microsoft employee was that Microsoft had named their implementation of UUID as GUID, because they didn't consider a value of this size to be unique across the universe but hopefully something which would be valid at the global level. 

in part I'm going to allow Microsoft to give us a complete defintion available from MSDN here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemguidclasstopic.asp  I happen to really like this definition from Microsoft because it clarifies something which people sometimes mistake: GUIDs are NOT guaranteed to be unique.  In fact let me quote the way that Microsoft phrases from this page: "Such an identifier has a very low probability of being duplicated."  This is an important statment because it recognizes the reality that GUIDs aren't guaranteed to be unique and shouldn't be treated as such in every instance.  The reason that a GUID can be treated as unique is that it uses a number range that is large enough to make random generation of the same values a low probability.  However, it is the use of random generation which also causes GUID's to repeat before the entire range of values can be used.

So what are the 'system' characteristics where a GUID makes sense?

Let me break the answer into a series of bulleted characteristics:

  • A decentralized model where several disconnected or different systems need to generate identifiers.
  • Identifiers will generally be unique. (meaning they might not always be unique, so uniqueness is not a true requirement)
  • it should be possible to easily change the identifier assigned to any given system with little or no impact to account for those instances where a duplicate GUID is created.  
  • the order that the identifiers are created and assigned should have no impact on behavior.

So what are some example systems where these characteristics fit well, well for starters the 'system' for which they were originally created, as identifiers for objects.  For developers using Microsoft technology GUIDs became famous during the progression of COM.  As an object is created a unique GUID is assigned to that object and when deployed those objects which may have been created by any software vendor should be unique.  Every now and then a collision does occur and sometimes those collisions even make it out into the world at large, but when that happens the next version of software can change out the GUIDs associated with that software with little or no system impact.  (Yes I've seen it in comercial products and I would prefer to not name the vendor involved, but in short they had an object which collided with a GUID used by a driver on certain PC's) Similarlly the value of the GUID that is assigned to an object does not change the performance of that object either during installation or at runtime.

Of course developers fell in love with this model and became focused on the word 'unique' in the title.  As a result, whenever a developer thinks they need a 'unique' value they immediately think of GUIDs.  However there are situations where a GUID is not a good solution, and in fact SQL Server presents a common one.  So in my next post I'm going to discuss why GUIDs should never be used as the unique identifier for rows in a transaction database.... I'll also discuss how a transaction database is different from a data warehouse and as a result why a GUID might work just fine for that solution.

Sunday, June 12, 2005 4:00:02 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Technology | SQL Server

I've blogged in the past on making apheresis donations to the San Diego Blod Bank.  In that post I discussed how the blood bank tries to ensure you always make a two unit donation of some form.  Since that post I had a couple updates.  The first is that I'm regularly finding myself as a double platlet donor.  This means I can potentially donate every two weeks, but more importantly it means that about every other donation (3 donations out of 4) I actually am a triple unit donor.  That's pretty cool, but I've also learned some more details of the advantages of this method of donation.

The first things I learned was that while I knew that platlets are used to help cancer patients and red cells are used for  anemia, blood during surgery etc, but I wondered what plasma was used for?  Turns out one of the primary uses of Plasma is for the treatment of severe burns.  Burn victims need additional blood volume because their bodies are essentially taking that liquid portion of their blood and using it to help rebuild damaged skin etc.  Since plasma makes up the majority of your actual blood volume having transfusions of it on hand can allow your boddy to heal faster.  I also learned that Plasma was one of the longest lasting blood products in terms of how long the blood bank can store it.

More importantly however is the second thing I learned.  While I'm type 0 which makes my red blood cells very valuable, Plasma works in the opposite fashion.  Thus people who are type AB whose blood type is fairly rare can make universal Plasma donations.  These plasma donations are then available to people of any blood type.  So remember regardless of your blood type, the local blood bank (whether the American Red Cross or San Diego Blood Bank here in San Diego) is pretty much in constant need of a donation of your blood.  After all ~95% of people will habe a blood donation at some point in their life, even though only ~5% of the population actually donates.

Sunday, June 12, 2005 2:22:31 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
About the Nerd
# Friday, June 10, 2005

I mentioned it's been awhile since I did a bike update.  Three log hits for this entry. 

First is my current mileage for the year, my odometer reads 4926, or just over 1075 for the year thus far.  Thus I'm getting the month of June to get ahead for the coming 6 months and to put me on track to possibly even reach all the way to 6,000 on my odometer by the end of the year.  A good portion of this was done over my vacation when I took my bike and every other morning of my vacation I got in a 52 mile ride from Laughlin, NV to Needles, CA on River Rd. which lies West of the Colorado River, then returning up Arizona Rt. 95 through Bullhead.  The 'fun' part of this ride, is when I leave at 7AM the light winds are from the South and in my face, but as the sun starts to heat the environment the winds shift and they come from the North so that by the time I am headed through Bullhead I am facing a steady 10-20mph wind from the North.  Its a good training ride, although portions of the road could really use some maintenance.

Second regards the Tour de Cure in East San Diego County.  The ride was the 21st of May.  The Tour de Cure is the American Diabetes association annual fund raising ride.  The ride is held around the country in different locations and the Spring, and this year only ride in San Diego (last year I helped organize a 100+ mile ride over Mt. Palomar, but we not holding that ride this year).  At any rate the 62.5 miles includes over 6,000 feet in elevation gain and generally draws between about 250-350 people.  We departed at 7:00AM and headed up into the mountains of East San Diego county.  Unfortunately it was a hot day with the temperature for the day hitting well over 90 degrees farenheit.  I was 5 minutes late starting so I got to ride without the benefit of a group for almost the entire day.

After the first 10 miles the route starts heading up and the next 22 miles (on the metric century course) are predominently uphill as your elevation goes from ~1000 to ~5000 ft. above sea level.  It took me from 7AM till 10AM to reach this halfway point and by the time I got there my left foot was numb... never a good sign so I spent a little time at the halfway point in the shade and watched one or two people drop out of the ride.  Then I started the return, fortunately it is mostly downhill (along a different route) but unfortunately it does have some good uphill sections.  In the end it took me till Noon to finish the ride and I did the 62.5 miles with an average speed of 13.9mph.  All told it was a great ride and we raised quite a bit of money for the ADA.

Finally, I'm going for a ride tomorrow with the NCCC again.  It's been like 5 weeks since I last rode with them and we're doing what is now known as Route 58.  Jeff Gross who lays out the Saturday rides has started posting them on his wife's website, so the route for tomorrow is here: http://www.kimberlygross.com/PageManager/Default.aspx?PageID=932815&NF=1.  The nice thing with Jeff's new system is he includes a map so you can get a feel of where the ride should go if you are unfamilar with it.  In this case he recently added a new portion to the end of the ride so instead of it being a 34 mile ride it's a 38 mile ride.  I put it into my topo software and came up with the following elevation profile which I'm including to test embedded graphics in my cross posting.  The total elevation gain for the ride is about 2500ft, and it should be a good ride.

Of course I've skipped over quite a bit in this quick update.  Let's see I've been managing to keep up a minimum of once a week to work on my bike and several mtn bike rides both with co-workers in Carlsbad and on my own up in the Mountains of Big Bear, including the use of the Sky Chair at Snow Summit to explore some of the Southern side of Big Bear Lake.  I'll try to get organized enough to post one or two pictures from up in the mountains this weekend.

Friday, June 10, 2005 11:29:54 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -

# Thursday, June 09, 2005

Many of you may be familiar with the Yellow wristbands supported by Lance Armstrong's live strong foundation to support the fight against cancer.  Some of you who know me may have noticed that I've transferred my yellow band to a red band... not that I'm particularly consistent on wearing any wristband, and nothing against cancer research. I have several family members (both living and deceased) touched by it. 

The red wrist bands support Diabetes and are available from the American Diabetes Association.  As most people know my wife Tracie and I are very involved in the fight against Diabetes (since I have Type 2 Diabetes).  You can order the wrist bands online from the ADA at: http://store.diabetes.org/products/product_category.jsp?FOLDER%3C%3Efolder_id=2534374302024093&bmUID=1123024922007   (Alternatively you can contact your local ADA office who can help you obtain a wrist band.)

They contain the ADA's message for Care-Cure-Committment since unlike many organizations the ADA isn't just out to find a cure, but also to ensure that the 18million or so Americans who have Diabetes (many similar to high blood pressure don't know it) learn to care for themselves.  The ADA plays an important role in Diabetes education especially in those communities such as the Hispanic and Native American populations where incidence of this genetic disease is much higher.

Thursday, June 09, 2005 1:07:49 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Diabetes
Look at Byetta and my historical numbers...
Thursday, June 09, 2005 12:56:05 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Diabetes
# Saturday, June 04, 2005

I found a few issues thus far with cross posting... I'm not sure however which system is truly at fault.

The first issue has to do with the date time stamp of my post.  It appears that in the interface Das Blog is sending GMT and that .Text isn't converting this to local time... it's not a big issue but an issue all the same.

The second issue is also minor but interetesting to see... So I the other day I tried to transfer one of my older entries from my personal blog over to blogs.interknowlogy.com by editing the entry from April and then selecting it for cross posting.   So far so good, my blog on blogs.interknowlogy.com shows this as a posting from April and sorts it near the bottom.  However, the common post area apparently just pulls the entries based on when they appear on the .Text engine.   As a result my post from April sorts near the top of the entries, which is interesting since it discusses the remaining snow here in Fawnskin/Big Bear CA... however the snow is mostly gone now and skiing ended several weeks ago. 

My next test is with an image, but I'm saving that for tomorrow when I'm home with a high speed connection.  Will it go smoothly and see how or if the interface will transfer the image... the interface may simply link to the image on my other site of some other event may occur... look for it tomorrow.

Saturday, June 04, 2005 9:48:35 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Technology
# Thursday, June 02, 2005

Just a quick note, on yesterday June 1st I was one of the presenters for a web cast from Windows IT Pro magazine related to Software Packaging Workflow Best Practices.  The presentation was sponsored and partially presented by Macrovision which is the company behind InstallShield. 

The presentation itself focuses on using workflow to manage the software packaging and delivery process.  To paraphrase the session synopsis, the session deal with best practices for managing the software package preparation process including the experience of the package requestor, the ability to approve or decline permission for the package to be installed, the ability to have a historical reference and the need to have integration between the various installation tools like SMS and AdminStudio that people are using.

My copresenter from Macrovision Steve Schmidt goes through a demonstration (not just slides) of the Macrovision AMS 2.5 product which is of course why Macrovision was interested in sponsoring this event.  That product is designed to provide a standard set of templates to allow you to manage the software packaging process.  You can see a rebroadcast of the event at:

https://event.on24.com/eventRegistration/EventLobbyServlet?target=registration.jsp&eventid=12491

Thursday, June 02, 2005 1:38:16 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Technology
# Monday, May 30, 2005

One of the great things with working with blogging software is the ability to cross post.  Tonight I sat down with my existing blog for about an hour and figured out how to configure that blog to cross post onto my new Blogs.Interknowlogy.com site.  Aside from the dearth of documentation it was actually a relatively simple procedure.  I use Das Blog on my other site while InterKnowlogy has decided to use .Text (for it's multiple blogger support).  Once I found the API hidden under the Services/metablogapi.aspx interface the pieces fell into place rather quickly.  In particular the Das Blog feature which allows you to autofill the majority of the information makes life easier as it dug up the services/metablogapi.aspx endpoint for me once I realized what it would autopopulate.

In this way instead of cutting and pasteing content or ignore one site in preference to another I can place content in both places at once.  The really nice feature is that Das Blog allows me to choose which posts I send across the wire to InterKnowlogy and doesn't just blindly send everything I choose to blog on here on NerdNotes.Net.  Now I just have to repost a couple of my early blogs.interknowlogy posts so I can have them all in a single location.

Quick followup, the cross post feature also supports remote editing and deletion of the posts so I can even correct my rather common mistakes in grammar and spelling.

Monday, May 30, 2005 9:11:59 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings | Technology
# Saturday, April 02, 2005

So I’m up in Big Bear, CA for the weekend over in Fawnskin (aka. the North Shore) and it’s a beautiful weekend (high in the 60’s).  I’m presented with an option… here in Fawnskin there is no more snow (of course we had 4+ feet on the ground at one point), but there is still skiing available at the resorts in Big Bear.  So I have a choice, I've finished with my 'chores' and it's 2:00 and I can either head over to the resort, rent some ski’s for about $25.00 and ski till almost 6PM.  All told I’ll probably get between 2-3 hrs of skiing in for that $25, but the slopes will be damp and or icy….

 

Alternatively, I brought up my mountain bike and can for FREE go for a ride on the fire roads that surround Fawnskin and maybe head down into Holcomb Valley.  Given that it’ll be my first mountain ride of the year (by that I mean ride in the mountains I’ve been out locally in Carlsbad) and given that one of my favorite all time rides was at the end of April when there was still a hint of snow on the mountain (off the side of the fire roads) I opt for the bike.

 

So I head out and up Polique Canyon Rd heading toward Holcomb Valley.  The ride starts out great it’s a beautiful day and while I hit the occasional snow melt, the road is in reasonable shape as I ascend up past 2N71.  But then the road gets ugly, real ugly, with lots of snow on the road.  I proceed about 1/4 mile up the road in the ruts made by the various cars which have made the climb hoping it’ll get better. But unfortunately I’ve entered a valley without much sun and there is still 2+ feet (1/2 meter) of snow on the ground.  Given that I still haven’t made it over the ridge to head down into Holcomb Valley on a slope where I expect some snow, plus I’m facing a climb back out of the valley that may also be snow covered I decide retreat is the better part of valor.

 

So I return to 2N71, which is my default route around Fawnskin.  2N71 is a solid fire road that crests at just under 8,000 ft elevation.  So I continue my ascent after my failed attempt to get into Holcomb Valley.  I hit my first snow as I wrap into one of the valleys.  It’s only about 20 yards and here’s where I introduce the first rule of biking over snow.

Don't expect to climb more then 1-2 bike lengths through snow that is more then 2 inches in depth.

 

I walk through the majority of the snow section and resume my climb.  On the way up I pass through about 3 or 4 different sections and bypass what is essentially a small lake over part of the fire road, but I basically crest the road which is in acceptable shape and now it’s time to head down hill.  As I start downhill I run into a much larger section of snow, but I see I’m not the first biker to attempt this route so I forge ahead.  I get through this section and then run into small sections on downhill slopes.  This is the second rule:

When going downhill you can make it through snow up to the depth of your axel, any deeper and your front wheel is likely to bind.

 

Of course the view from up on top is awesome.  It was great to get up and get a look over an almost full lake and see the snow covered San Bernardino Mountains from altitude.  Unfortunately I didn’t have a camera so I can’t share that view, but in some ways it’s OK since there is more to this adventure and a camera might not have survived.  By now I’ve realized that based on the snow pattern, yes I am the second biker, but no cars/trucks/motorcycles have continued on this path.   This is explained when I find a huge 3+ foot (1+ meter) diameter tree has crashed across the fire road blocking it.  This brings up the third rule:

If the off road vehicles have avoided a fire road there is probably a good reason.

 

Now a sane person might have turned back, I still had almost 5 miles of my descent remaining and was on a road which was becoming increasingly snow covered and muddy (I'm talking 2+ feet of snow in many cases).  I however had already been out on more then a couple mud rides this year, demonstrating my lack of sanity/good judgment and riding/walking through the snow obstacles was an interesting challenge so I forged ahead, plus I was already the second guy to try this so it had to be possible…

 

Below one of the larger sections of snow I ran into a portion of 2N71 which was facing a lot of erosion due to the melting snow, the result in a dirt fire road are ruts.  However, the ruts didn’t start to form till well after I was doing a solid 10-15 mph (~20kph) when I suddenly caught my front wheel on the edge of a rut.  The result, a spectacular wipe out, fortunately not an endo, but a great wipe out that separated me from my bike and left me with a thoroughly scratched up leg.  This is of course the challenge associated with this sport, but in this case it falls under adding injury to the insult of being mud covered.

 

So I continue my descent, the road conditions remain ugly as I continue down the side of the mountain into Fawnskin.  I don't have any other major incidents with exception of a 6inch mud puddle that I walk through because I'm concerned about my open cuts, and encounters with a ton of water - a small pond in the middle of the road that couldn’t be bypassed and a full-on stream in one section.  The good news is on my return I had pictures taken of a mud covered me and a good shot of my scratched up knee which I will post below.  However, the ride also taught me the most important rule of mountain biking in Big Bear:

 

If they still have skiing available – go skiing and leave the bike at home.

Saturday, April 02, 2005 10:46:28 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Cycling
# Sunday, March 27, 2005

Today I got out for a second ride of the weekend with NCCC.  The group has added a 'regular' ride for Sundays and I've been participating in it the past few weeks.  This Sunday was South (down) the coast.  We headed down to Torrey Pines and climbed the seaside cliff.  I highly recommend this climb, it's difficult (more so then taking the large and easily graded coast highway) but the view is nothing short of fantastic.  If you ever head down the Southern (below Camp Pendelton) coast, this is one climb not to miss.  I actually wound up with some long riders for a the southbound portion of the ride, before they dropped me on the Northbound portion... as expected.   All told this makes the 3rd straight weekend were I've managed to get in two rides each of 40+ miles.  The net result is I've been catching up with my goal distances.  To get to 2000 miles this year I need to average about 500 miles per quarter.  I'm currently at 4384 which is just over my 500 mile goal for the quarter, and I still have a couple days of riding to work before this month ends, so I might make it close to 4450 which would be most excellent.

Aside from that my bike computer freaked for a little while today, I'm concerned the battery is going bad.  I'm going to give it a couple more rides before I panic.  I lost about 3 miles in the total mileage since I just got and am carrying a Timex data recorder.  This is a cool set of hardward and software oriented around GPS and a Heart Rate Monitor (HRM).  The combination allow you to track your speed and distance along with your heart rate.  I'm still getting familiar with the combination and will talk more as I learn more about it....

Sunday, March 27, 2005 2:37:01 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Cycling
Archive
<June 2005>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2012
Bill Sheldon
Sign In
All Content © 2012, Bill Sheldon