Public musings, often on software development RSS 2.0
# Friday, October 09, 2009

I’ll publish some of the blog posts which I finish and then think – nope not ready to share that with the world… someday – maybe… or maybe I’ll just leave them somewhere the boys can find them.

Friday, October 09, 2009 9:17:43 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
About the Nerd | Musings
# Tuesday, June 02, 2009

Windows 7 is to quote one Microsoft person “A lot closer than most people imagine”… in fact they just announced that general availability (ie. boxes on the shelves) will occur on 10/22/09.  Of course this was old news 5 minutes after it was posted and refers to general availability – not the Release To Manufacturing (RTM) date that really represents when the software will be done and start being available for download if you have an MSDN subscription.

However the focus of this post since I installed a few copies (or more) and since I’m using it on a few machines, are my three (yes only three, and in no particular order) top features and have some notes on using one of them.  (OK actually they are ordered inverse to how much I’m going to write about them…)

The first is the boot to VHD feature.  As I noted you need to ensure you’ve enabled hardware virtualization on your PC, but this feature rocks.

The second which I’m only just starting to work with is the backwards compatibility XP host support.  The idea is that there are several older apps which for a variety of reasons will not run on Vista/Windows 7 natively.  For example old Access applications which leverage the MS Grid OCX stop working when you move beyond XP.  To resolve this, while preserving the core security of the new environment, the Windows team created a compatibility mode which essentially uses a Windows XP VPC in the background, but allows these applications to ‘seem’ to run on the newer system.  The idea sounds like a good way to bring these two opposing needs (I need this old application, and I need all the newest security and capabilities on my computer) together.

My third feature is pinning.  Windows 7 makes it easy to add new items to the Start Menu and to the Windows Task Bar.  The feature makes it easy to keep the most frequently used lists from betraying you.  However there is a way to really leverage this feature better than the default.  You’ll note in the image below I’ve placed both Visual Studio 2008 and Windows Explorer on my start menu. 

 image

By default Windows Explorer comes on the task bar in the RC and I’ve gone to the trouble of moving it.  The reason has to do with how the different locations behave.  When I click on an item pinned to my Start Menu, I get a new instance of that item, even if an instance is already running by default.  To be honest whether copying from one folder to another folder on my local machine, to a USB device or across the network there are a lot of times that I want 2 instances of Windows Explorer.  Similarly I often open two instances of Visual Studio, I’ll be working on one solution and want to review how I did something or examine some sample solution, or access one of my junk test code projects where I quickly test some code… the result is I’ve pinned these items to the start menu.

On the other hand items pinned to the Task Bar do not by default open a second instance of that application.  Thus you’ll note I’ve placed Outlook, Virtual PC, the Snipping Tool, Windows Sticky Notes, and although not shown in the image below SQL Management Studio.  In each of these cases I only need a single instance.  Yes I can ask for a second instance by right clicking on the icon and then selecting the application from the context menu – but creating a second instance isn’t the default and is thus more involved, and in the case of most of my choices isn’t really the desired behavior.

image

My suggestion to you as you might guess is consider where you want to pin items.  Keep in mind that when something is on the Start Menu not only can I open multiple instances, I can pin target documents/folders from the most recently used selection into the context menu next to that item. 

You also may not I skipped Internet Explorer in my list above.  I’m still deciding – for now I’m trying it on the taskbar on separate instances plus tabs.

Finally however, I have a request with regard to the task bar…. I know it won’t be a change to Windows 7 but let’s talk about icons vs. icons and description on the task bar.  When I pin a program to the task bar, you add the icon which is good.  However, For things which aren’t pinned to my task bar I like the description.  As noted above things I pin to the taskbar only typically have one instance – as a result I don’t really ever need to see the label associated with that icon.  On the other hand items like Visual Studio on the task bar show the name of the current project in the label, which is useful.  Yes I realize I can just hover over that item and you’ll give me pictures of what each instance contains – but if you are familiar with Visual Studio you know that isn’t the most useful way of recognizing which is which – on the other hand I can look down at the task bar and know which instance I want even before I can move the mouse to it when it’s labeled.  This isn’t to say I’m not willing to stack similar task bar items when I run out of space – just that if we could keep the items pinned to the taskbar as icons I would have more space for those items where the label is actually useful to me.

Tuesday, June 02, 2009 4:49:36 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings | Technology | Windows
# Saturday, May 30, 2009

A few weeks ago while I was up at Tech Ed during one of the presentations, someone’s phone rang.  We’ve all had that person in the meeting… and in some ways, since everyone has on some occasion forgotten to turn off their phone, let me not cast the first stone here.  The offender headed out to take the call and headed back in after the call… and as soon as they sat down – AGAIN their phone starts ringing.   So at this point its fair game to throw stones… but I thought about my own situation.

I once rarely thought of turning off my phone but a few months ago I set it to vibrate… again… and something strange happened – I forgot to turn the ringer back on.  The next call came in and I knew it and that was it, I’ve just permanently left it on vibrate.  In considering this I thought about all the places where I ‘should’ have the ringer turned off vs. on.  Then I considered the cases where if my phone was in vibrate mode and I wanted the call I wouldn’t know.  For example if I’ve left my phone in another room while I’m playing with my son – I don’t care if it’s “ringing”.  The challenge of course – some women carry their phones in their purse as opposed on their body.  The result is that they don’t feel a vibrating phone – they still need ringers – as do kids who like the attention. 

But seriously if you’re an adult and you carry a cell phone – put it permanently on vibrate.  I recently got a Blackberry and all the messages come in with vibrate mode – not a ringer.  Do you know why they’re called “Crackberry” – because even without ringing those message vibrations are enough to keep people up to date on their messages.

Saturday, May 30, 2009 9:22:43 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Friday, May 29, 2009

As a virtual PC user, and in some cases now at work a VM Ware user, one of the options I’ve always wanted to leverage was acceleration for my virtual machines based on hardware virtualization.  It was something I always wanted while at Internowlogy but of course since I was using 3+ year old hardware, let’s face it the hardware didn’t support it, and odds are if you are using older hardware neither does yours. However, I’ve gotten new laptops since leaving Internowlogy 64-bit high end machines with lots of RAM.  Let me say up front since this post is obviously about how to enable this feature – my performance for my virtual Windows 7 hosting Visual Studio 2010 B1 has dramatically improved since enabling this feature (not to mention the performance of the virtual TFS server I set up here at Rubio’s.)

Originally I wondered if the problem was with the Vista OS so when I installed Windows 7 RC on one of my machines I was looking to leverage hardware virtualization – however, no change.  This became an issue because I wanted to take advantage of Windows 7’s ability to boot directly to VHD and thus set up a system with Windows Server 2007 R2 x64 RC – which isn’t supported by VPC.  Finally I found a little note that Dell doesn’t enable this CPU feature by default.

That’s right if you bought a new Dell you probably have a hardware virtualization capability for Virtual Machines that’s disabled.  To enable it you need to use F2 during startup to edit your BIOS settings.  Depending on which type of Dell you have you’ll either have 1 or 3 settings (based on my experience) related to hardware virtualization.  For those with slightly older PC’s will probably find just a single setting for hardware virtualization which is defaulted to [disabled].  Change this to [Enabled] and that’s it you are done.

Then there are those on the real cutting edge – like my Latitude e6500.  This brand spanking new system has 3 settings related to virtualization (actually closer to 4… but once I explain the potential issue you’ll see why I’ve ignored the 4th).  When you get to the BIOS for that machine there is a section on Virtualization Support.  Within this there are 3 settings: the first titled Virtualization should be enabled.  The second titled ‘VT for Direct I/O’ can also be safely.  However the third titled ‘Trusted Execution’ which deals with protecting information exchanged with the CPU – it’s an Intel ‘feature’.  For now enabling this setting reverses the previous two settings.  So if you are like me and your initial thought is ‘turn it all on’ then you will find that you still don’t have virtualization support, even if you carefully read the instructions under the trusted execution settings and find the TPM setting and enable it.  Don’t bother – it doesn’t help.

So to review: to take full advantage of your Dell’s virtualization capabilities use F2 during startup and go to the bios settings, enable virtualization support but do NOT use Trusted Execution.

Friday, May 29, 2009 12:06:00 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings | Technology | Windows
# Wednesday, May 13, 2009

It’s been a couple weeks but I wanted to record the results of my ride for Diabetes – Tour de Cure here in San Diego.  The 2009 tour used the same 71 mile route used in 2008, and since I still haven’t gotten back to where I’m riding my 40 mile weekend rides, I limited myself to the 71 mile route instead of the century (100 mile) route.

 

The 2008 tour – well it wasn’t one of my best. It took me 5 hours and 45 minutes to complete. My average speed with my Garmin was 12.6 for the route (note the Garmin’s speed is based on time stopped at lights and rest stops… which while accurate isn’t what I want to measure, which is jsut my speed when not being penalized for stops including traffic signals)

Unfortunately I didn’t capture my bike computer’s numbers last year but I recall it being pretty low. The Garmin also estimated that I burned ~4741 calories on the ride, and recorded a max heart rate of 185. (Note: the higher the max heart rate the worse baseline shape you are in.)

 

This year my bike computer had me completing the ride with an average speed of 15 mph – which was great since I was shooting for 14.5 and would have been satisfied with anything over 14mph.

 

As for the Garmin it said 5 hours 15 minutes to complete – a 30 minute improvement.

My average speed with my Garmin was 13.7 mph – this time I actually managed to mark the time spent at rest stops – I stopped at 2 rest stops, # 4 and #5 and so I can see they accounted for 20 minutes of time, and even if I get motivated average my speed for the 3 legs of riding between them. My average speeds on the 3 legs surrounding the rest stops were 14.0, 14.4 and 15.8 respectively. Admittedly there was a nice wind blowing from the NW near the end of the ride which helped push me down the coast on that last leg (although as always I had to fight it as headwind for 7 miles down the bike path first.)  By the way, the rest stops put together by the organizers are great on this ride (both years) and there is a great deal of support along the well marked route.

 

It was also a fairly cool day, a blessing since as I recall it was hot on April 19th in 2008.  Overall it was a great ride, and they had a couple bands lined up to play after the ride.  The organizers learned from last year and did a much better job of spreading out the start time so people finished closer to the same time, instead of those on the long rides finishing after most of the festivities were over.  Of course I’ll be back to ride again next year, and encourage everyone to join me.

Wednesday, May 13, 2009 3:18:55 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Cycling | Diabetes | Musings
# Sunday, May 10, 2009

One of the ‘tools’ I’ve was most impressed with after departing Internowlogy is the suite of services hosted under the Live brand from Microsoft.  Let me clarify, when I left my job and didn’t have a new employer, it meant that while I had a personal email account, I didn’t have a professional account.  I was able to set up a professional email using Live and start managing my contacts, appointments and email both from my computer using Outlook and from my Mobile phone.  Of course, it hasn’t been all mistake free, one of my more important lessons has involved my Live identity management and one of my more challenging transitions with identity. But more on that in a moment.

I’ve not only continued to use Messenger and learned to leverage Live for email and such but I’ve leveraged the networking features of Live as well as the features of Skydrive to place documents that I need to share in a central location.  This is without even considering new development features like Mesh and Azure. 

Now onto my challenge with Live. Most people are at least reasonably familiar with Live Messenger and have used it.  If like me you’ve used it for a while – you may have set it up using your work email address – I now feel this is a mistake.  When I first signed up from Messenger, my thought process was that instead of setting up another email account that I would need to monitor. Instead I chose to point point my messenger account at my work email for a Live ID and go from there.  For most things this worked fine, but when it came time to leave Internowlogy this presented a problem. As you might imagine my old email address didn’t leave with me.  I however, wanted to keep in touch with the people I had added to messenger over the years.

The good news is that you can go to the account services and update the email address associated with your messenger account, the challenge is that even though it should only take one or two days, in my case it was taking well over a week.  Here I was looking to update my network and literally everyone – even the people who knew my new email couldn’t see me in Messenger and weren’t seeing my new email address because I was in this limbo state.  A coworker who left IK a few weeks before me (several people left IK in January of 2009) had the same problem and eventually just reverted his old account and created a new account and added all the new people.  I however, had contacted Microsoft and asked – hey what’s the status and was told yes, the change was working through.  So eventually even though it had been over a week I set up a second account on Live so that I could get contact with key people and over the next serveral days as my old account remained in limbo started to focus on this new account as my main contact point.

Eventually I had pretty much stopped checking the old account for a while, but I did a few weeks ago and lo and behold – the changes had finally made it so that I could see people and they could see me.  Now from the standpoint of email the change was easy – I just told account 1 to forward all my email to account 2 and then as I reply people saw the new address and did or didn’t update their contact.  No problem, and no different from having an alias on my main email account.  In otherwords from the standpoint of email everything still works fine.

On messenger however, I now need some way to combine these two Messenger contact lists.  I want to display/sign into both accounts at the same time.  I don’t want to bother some of my contacts with adding a new link for my other messenger account, so if someone has a good solution for that please let me know – because I know from experience that if a solution exists someone will let me know once I post this.

(BTW, as a note for all my contacts, you’ll see me online a bit less, my current employer blocks the IM ports so I’ll be online more from about 8PM Pacific onward.)

Sunday, May 10, 2009 1:22:02 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
.NET | Musings | Technology | Live
# Friday, April 03, 2009

I’ve been a tea drinker since back in my days in the Navy (which is a lifetime ago for some of you.)  Literally I still have a couple tins of loose tea from my time in the far east (Japan, Hong Kong, Singapore, etc).

However, according to this Wired magazine report apparently the rest of the technology world is starting to catch up… http://blog.wired.com/business/2009/04/tech-millionair.html

Proving what a trendy, stylish guy I am…

(The preceding line is a joke; for those who don’t really know me.)

In fact I'm sitting hear with a plastic cup full of a lemon infused green tea brewed from loose tea leaves in my iced tea pot... guess I'm not quite in the same class as those rich snobs talking about having a $40-$150 thimble 'full' of tea.  I don't see me ever getting into the +$10 per swallow tea drinking club... similar to my wine tastes (or lack thereof)

Friday, April 03, 2009 10:48:04 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
About the Nerd | Musings
# Wednesday, March 18, 2009

A while back I blogged that if you were buying a new PC you should purchase a 64-bit machine.  "The rise and fall of 32 bit computing"  I stand by that but as part of that post I quickly mentioned that I also felt that if you were purchasing a new machine you should also get it pre-installed with Vista and not Windows XP.  In fact my personal view is that those computer manufacturers who are allowing people to continue to purchase machines with Windows XP instead of Vista are in the long run hurting their customers.

Let me explain, Microsoft is working on the next version of Windows which will be known as Windows 7.  In fact the Beta for this version of Windows is already available and I've installed it on a machine at my home.  It works great and is definitely a few steps ahead of what's in Vista in many ways.  In terms of features Windows 7 will be an evolution not a revolution.

What I mean by that is that unlike Vista which was a major departure from the Windows XP architecture, Windows 7 will maintain the core Vista architecture.  This is important because it really draws out the fact that Vista isn't something that's 'going away'.  Windows 7 is the next generation of Vista - not XP - and this is important.  Part of the core of what changed between Windows XP and Windows Vista was the device driver model.

Unfortunately when Vista released, it wasn't advertised, that because of the low level changes in the driver architecture and since there were only a limited number of drivers - that upgrading from XP to Vista had a huge risk in terms of driver compatibility.  The result was that in addition to the standard acceptance issues that any new UI experiences Vista had hardware issues - Big issues.  Fact is the combination of these issues resulted in the need for Microsoft to allow computer manufacturers to continue to ship XP.

That was probably overkill - but when you make a mistake as big as the one Microsoft made in not advertising the limitations of Vista upgrades you pay a penalty.  Microsoft paid theirs now the goal is to avoid getting caught up in that issue.  With its service packs the fact is that Vista is both stable and in my honest opinion a really good operating system.  I still won't ever go back to one of my old XP machines and attempt to upgrade from XP to Vista - but I also know I'm not going back to any of those machines and upgrading them to Windows 7 either.  Those machines were designed for XP and they work well with it and that's how they'll retire.

On the other hand when I bought my new laptop I got it preinstalled with Vista.  This means I got all of the Vista compatible drivers pre-installed by Dell.  Dell supports those drivers and I know everything is compatible.  For what it's worth, yes I got a 64 bit laptop (6 GB of RAM), and it's the Studio XPS 16 and it rocks.

The key is when Windows 7 arrives I'll go ahead and upgrade from Vista to Windows 7 and I don't expect to have any major issues.  Windows 7 adds new features and enhancements to my operating system but it isn't going to require a different set of drivers or any other major configuration changes.  Having installed the Beta of Windows 7 on my test machine from the Vista install timeframe I found the experience to be greatly improved.  The original Vista on that machine choked - plain and simple I lost sound drivers, all kinds of stuff just wasn't quite right.  Not only that but the network card didn't work... so when I got the Beta 7 bits I installed it.  I still didn't have a network card, but I had some free time so I went out and found the driver for the network card and installed it.  Windows 7 installed it no problem and suddenly I was off.  Windows 7 recognized the sound card and connected online to download the necessary driver, not just that driver but many other drivers.

So back to the question - should you get XP or Vista on that new PC?  Get Vista, because when Windows 7 comes out it's building on a Vista baseline.  You'll be able to take that Vista machine and upgrade it with minimal risk to Windows 7.  On the other hand if you have XP, well that isn't currently a supported upgrade.  What I've seen on the web is that you'll need to get rid of your windows XP environment and then install Windows 7 from scratch.  That alone should make you think twice about what you are going to have installed on your new computer - get Vista, regardless of what you heard about the initial release - it's a solid operating system at this point and is the basis of Windows 7 and future operating systems from Microsoft.

UPDATE: OK before Ileave any misconceptions,  in the last paragraph I said "supported upgrade".  That phrase has a specific meaning to Microsoft and that's NOT what I meant.  I meant that instead of installing Windows 7 on top of an existing Windows XP installation you would be starting the installation from ground zero - the upgrade is 'supported' just not what most of us would think of as an 'upgrade' as compared to a 'new install'.

Wednesday, March 18, 2009 7:03:04 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings | Technology
# Sunday, March 01, 2009

I'm in Seattle, WA this week at the Microsoft MVP Global Summit.  Tonight was the kick-off and it was a great opportunity to catch up with many of the other MVPs I've met over the years.  My thanks again to Serge of VB City who provided an excellent event tonight at Rock Bottom.  Serge and I are looking to meet again later this week to discuss one of his products "Code It Right" so that I can put together a review of this Visual Studio Add-In.

I know I mentioned a month back that I felt it was time for those looking to get a new computer to be certain to get Vista and not XP.  I'll quickly add that when I wrote that post I had already ordered my new laptop with the 64-bit version of Vista, and it works great.  There's more to the story, however as part of the MVP Summit we'll be hearing some information related to the next version of Windows, Windows 7.  As a result I'm going to hold off on my discussion of Vista for a few days - I won't be reiterating what I'll hear at the Summit since much of that information is covered by Non-Disclosure Agreement (NDA), but I want to be certain to include any announcements - that might be public - are included.

Sunday, March 01, 2009 10:41:21 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings | Technology
# Saturday, February 21, 2009

If you've been keeping track of Nerd Notes and or are familiar with me you may be aware that I previously worked with Interknowlogy.  We have chosen to part ways, as a result any email sent to bsheldon@interknowlogy.com or bills@interknowlogy.com email addresses I've used for years will instead be read by someone else at interknowlogy.  I'm currently in the process of getting myself set up both here on the newly hosted NerdNotes as well as on Live.

If you are looking to reach me please contact me at WSheldon at Live . com.

Saturday, February 21, 2009 6:00:33 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
About the Nerd | Musings | Technology
# Wednesday, January 21, 2009

Back in the late nineties we experienced a transition from 16-bit to 32-bit computing.  The transition was neither smooth nor particularly drawn out.  Currently we are in another transition – this one from 32-bit to 64-bit computing, and this time the transition will for the near term be much smoother and much slower.  The reality is this transition started a couple years ago, but the reason I’m now writing a post about it is that in my opinion, if you are considering a new PC, the point of transition has been crossed – purchase a 64-bit version of the desktop or laptop you are considering.

To clarify, except in a very small number of cases that I will address, you should be purchasing a 64-bit PC if you are purchasing a new PC.  Yes, Dell and others will continue to carry 32-bit machines for the foreseeable future, but whether you are a generic PC owner, or more importantly a developer it’s time to order a 64-bit machine.  The reality is that as the world continues to move forward the new development money is on 64-bit applications and slowly even devices.  In fact it is the plethora of hand-held devices which will slow the eventual end of 32 bit computing for a little longer but even handhelds will begin that transition at some point in the near future.

Right now pretty much with the exception of the mobile device world, the development world is focused on 64-bit computing (not 100% but increasing every day).  With 64-bits I can have much more than 2 GB of active memory.  Since the maximum value that can be stored in a 32-bit integer is 2GB and since you have to have a number to address each bit in memory this is the cause of the memory limitation. While the operating system can help to fake out this limit  through a few tricks,(for another 1 or 2 GB) the reality is that your application environment has a 2 GB memory cap on a 32-bit OS.  Plus given the power of that 64 bit machine you can run any vital 32-bit applications in a virtual environment and probably still be getting an upgrade in performance.

The question: What are the cases where I shouldn’t purchase a 64-bit machine?  Well if you need and let me stress need as in, must have to do my job, a new laptop and you are working to write software for a 32-bit device (such as a mobile device or the Microsoft Surface) then you can justify getting a new 32-bit machine for that purpose.  Similarly, if you have certain devices like an external scanner or high end printer and their drivers are 32-bit then you’ll probably want to keep a 32-bit machine available to run those devices.  A good overview of the information related to 64-bit limitations is available here: http://windowshelp.microsoft.com/Windows/en-US/Help/41531554-d5ef-4f2c-8fb9-149bdc5c8a701033.mspx#EEAAC

However, in general while this transition will be smoother than the previous 16-bit to 32-bit transition in the long run it will be just as terminal for the 32-bit machines and software.  What timeframe am I talking – well Microsoft is talking about supporting COM based computing past 2020 although I suspect most of that support will be migrated to environments running on a 64-bit machine in a 32-bit virtual environment. I'm not proclaiming the death of 32-bit systems, rather looking at where things are headed in the next couple years.  After all I’m not making a recommendation based on when 32-bit won’t be available or useful, but for what you SHOULD be doing if buying a new system now. 

My core recommendation is to purchase 64-bit on any new PC, I don’t care if it’s for your Mom or a high-end developer / computer gamer – it’s time to order a 64-bit machine.  As for me, well just before Christmas I ordered my in-laws a new PC, like most casual users they have a 5-10 year turn around on a PC and sure enough there in the very reasonable price range for desktops were an array of 64-bit machines and that’s what they got.  So in case you are wondering yes I am following this same suggestion for myself, because in 2-3 years 32 bit PCs will be a thing of the past and people will talk about supporting them for legacy applications that they haven’t yet managed to port to the 64 bit environment.  After all little by little we are even approaching the point where the current internet address system (IP) will transition to a 64-bit version.  You may need to keep the old computer around so you can print if you printer driver isn't supported but don't let a printer drag you into a PC which will be obsolete the day you buy it, you'll replace that at some point to and guess what - all the new ones support... 64-bit drivers.

By the way if you are getting a new PC, definitely get Vista – the XP downgrade is just that but I’ll put my justification for that recommendation in another post.

Wednesday, January 21, 2009 11:47:03 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings | Technology
# Friday, October 10, 2008

One of those things that just make me shake my head...

I have a computer I keep in the company domain.  Someone or something (I don't know who or what and to be honest don't care enough to find out, just enough to document the insanity) appears to have created a policy either at the domain or on my machine that automatically resets the default printer to OneNote.

For starters this is bad because it means that even though I go to the effort to make Printer 'x' my default because it's close to my office, the next time I restart, I instead have my default printer reset to OneNote... which is pretty annoying.

But a better question is why given that I already have an electronic copy of whatever it is I want to print I would want to print it to One Note.... so I could have an electronic copy... 

More importantly it pretty much kills all those nice print short cuts MS put on everything where I can with a single click print whatever I want to my default printer... but, nope doing that just causes my system to pause while OneNote starts - wasting my time - so I can shut OneNote - wasting my time - and go through the full multi-step process of selecting a printer - wasting, well you get the point.

I hate to think that it's just the act of installing OneNote that does this...

http://connect.microsoft.com/onenote/feedback/ViewFeedback.aspx?FeedbackID=363469

Friday, October 10, 2008 3:02:16 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Wednesday, June 18, 2008

Another of those diseases which doesn't get nearly enough coverage given the number of people it effects each year is Melanoma.  This article talks about how by useing a patient's own blood cells and essentially cloning them and reinserting them they can attack an otherwise potentially fatal cancer.  http://www.breitbart.com/article.php?id=080618212711.38ht6zq0&show_article=1 Some of the stuff that is going on in medicine today is just amazing.

Wednesday, June 18, 2008 4:56:24 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Saturday, May 10, 2008

I wanted to make a quick shout out to my favorite 'new' kids television show.  As with every parent of a toddler you go through a phase where you get inundated with kids shows.  Some like Teletubbies or Barnery are pure torture (My son doesn't watch these shows).  Others like the new Mickey Mouse club are instantly appealing and for an adult at least watchable (the first 3 or 4 times for a given estimate, after that your brain still turns to mush).  Of course in posting this I'm admitting that my son (age 2) watches TV - which is of course the root of all evil according to some.

However, this post is focused on my favorite of today's current array of morning kids programming.  In the preceding paragraph I mentioned shows that are rather old, and I don't want compare say Barney to 1970's era Captain Kangaroo.  Different eras have different shows.  The first thing I learned about modern pre-school kids TV in the morning is that there are two definite leaders - Disney and PBS Kids.  I know several of you probably think I've missed both Cartoon Network and Nickelodeon.  I didn't you see Disney and PBS both follow a minimal advertising model for the morning stretch.  Admitedly PBS keeps that model 24hours a day but to me the fact that Disney has matched this model from 6AM through Noon is impressive.

In general Disney has a better set of shows when it comes to the combination of entertainment and education.  By this I mean that when I consider the shows my son pays reasonable amount of attention to the Disney shows keep his attention while several of the PBS shows while potentially more educational are met with 'no- no' meaning - take me back to Disney.  After all one of his favorite shows is the Mickey Mouse show and Mickey's appeal is great and the show includes things like counting, shapes and colors.

That's great however last fall Disney and PBS Kids each 'introduced' from my standpoint a new show.  On Disney the new show was Bunny Town.  It was preceded by weeks of over-promotion telling us how great it would be. As usual the overwhelming hype was indicative of just how weak the show was.  On the other side although to the best of my knowledge there wasn't overwhelming publicity, but PBS Kids introduced a show - the only show which we can switch to even against a showing of Mickey.

By now if you recognize the title of this post you know that show is Word World.  This is an awesome show, they introduce the idea of building words from letters.  The computer graphics not only create characters but literally use the letters to create the object they describe.  For example the Dog character is an adaptation of the letters Dog with legs, ears, tail etc. added.  The letters don't just disappear or appear they are used to create objects and the graphics are of the type you could only create in the past couple years. 

I have no doubt but that watching this show feeds into the fact that my son knows all of his captial letters (note reading books and playing with letters in the tub and talking about them elsewhere - including license plates - also plays a big role , not to mention that my son is surprisingly bright.) At any rate, the show is well produced and you can check out their site including a sample episode at: http://www.wordworld.com/

To view the show's opening scene head over to PBSKids.org (http://pbskids.org/wordworld/video/montage.html?load=montage1) or to get a feel for how the characters behave check out the embeded video below - although it omits the rich animated scenery and just focuses on the characters and building words.

Saturday, May 10, 2008 10:11:35 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Friday, May 02, 2008

This is one of those musing posts and comes from one of the challenges I have when teaching a feature that Microsoft chose to call 'Generics'.  I think this name was picked by someone, who while reasonably familiar with English wasn't a native speaker of the English language.  Thus they found a definition and thought it applied - allow me to elaborate.

What is a .NET Generic - well in short - under the original implementation of .NET collection classes contained a set of other objects.  However, these classes didn't know specifically what kind of object they contained.  Instead a given collection might contain more then one different type of object, for example numbers stored in a collection with strings and image objects.  It wasn't possible to say thata given collection would contain only a specific type of class. 

With the introduction of 'Generics' it was possible to indicate that a given collection would only contain a specific type of object.  That's right the feature Generics describes a set of rules and syntax for ensuring a collection is of a specific type.  Now the challenge comes from how the definition of generic is phrased in some dictionaries: "Relating to or descriptive of an entire group or class"

Notice that the preceding definition basically associates the definition of a generic with a class.  Thus if you were searching the dictionary for a word that described a class - well there you have it.  Unfortunately this use of the word "class" doesn't relate to the use of the word "class" in object oriented programming.  In this use a class is more of a category of like items - not the definition of a single item. 

Webster's Revised Unabridged Dictionary - Cite This Source - Share This

(http://dictionary.reference.com/help/web1913.html)

Generic

Ge*ner"ic\, Generical \Ge*ner"ic*al\, a. [L. genus, generis, race, kind: cf. F. g['e]n['e]rique. See Gender.]

1. (Biol.) Pertaining to a genus or kind; relating to a genus, as distinct from a species, or from another genus; as, a generic description; a generic difference; a generic name.

2. Very comprehensive; pertaining or appropriate to large classes or their characteristics; -- opposed to specific.

Webster's Revised Unabridged Dictionary, © 1996, 1998 MICRA, Inc.

 

That's right the word I most frequently use to describe the feature Generic is the one which defines the opposite of the definition of the word generic....

I don't think Microsoft can really do much about this, it's just one of those things that make you wonder...

Friday, May 02, 2008 11:46:25 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
.NET | Musings
# Monday, April 21, 2008

So officially it's not yet an option, after all the San Diego Chargers are still working with the city (suburb) of Chula Vista to keep the Chargers football team in San Diego County.  And of course the Chargers spokesman has officially denied it... http://www.sportsbusinessdaily.com/index.cfm?fuseaction=sbd.preview&articleID=120164 (account needed for full article - but the headline says it all)

However, if Chula Vista 'stumbles', one environmental suit or negative ruling in the next two years, and lets face it the Chargers are moving to Los Angeles and this brand new, very fancy stadium.  Construction should be ready to begin in 4Q of this year and my guess is if it does and if the inevitable challenges to the Chula Vista site arise - "Los Angeles 'super' Chargers" will be the new theme song...

http://www.losangelesfootballstadium.com/

I easily could be wrong but let's face it if there wasn't already a sequence of events (or perhaps more than one) that would result in a team moving here, this idea would be crazy.  Fact is, IMHO that's what you would have to be to think that this isn't the future home of the Chargers.  BTW, check out the background color scheme - which NFL team has uniforms in Baby Blue?  Heck another story even has Roski on the record as stating that the team moving could play in other LA venues for 2009, 2010 till this place opens in 2011.

Monday, April 21, 2008 2:05:07 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Tuesday, February 26, 2008

This is a combination of humor and warning of lessons learned...

Tuesday, February 26, 2008 11:16:36 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings
# Thursday, December 20, 2007

Many years ago there was a common pattern for Office Workers.  Essentially before the true abundance of desktop systems and printers it was common to have a paper form.  Copies of this form would be used for any number of tasks (fax cover sheets are a common example most people can relate to) and then when there weren't any copies left you would make a new set of copies.  The cardinal sin for the admin staff was of course the person who took the original and used it instead of copying it.  Want to really get on the Admin staff's bad side wipe out 3 or 4 originals and they will hunt you down...

At any rate now that we have PC's and easy access to printers the separate set of file folders containing originals hidden from non-admin eyes is pretty much a thing of the past.  These documents are typically stored on a central Intranet server like SharePoint.  However, in many cases a limited version of the same problem still exists.  Now people will take the copy that is on the server and open it for customization.  Then without thinking they save that copy and it goes right back to the server.  In minor cases they've just poluted the baseline copy that's sitting on the server - but in extreme cases they could so modify the original that its almost useless as the original.  The solution of course is to make such original copies read only, except now instead of having them under lock and key in a big old file cabinet - they sit online marked read-only or checked out to the one trusted individual who won't overright them...  It's the same solution to the problem, just implemented with 21st century technology instead of physical copies.

------------------------------------------------------

Sorry for the long delay and somewhat sparse posts over the last few weeks (OK Months) but I've been a little busy with the latest version of the Professional Visual Basic book to go along with Visual Studio 2008 and VB 9.  However, I reached a milestone last night - OK theoretically it was early this morning.  I caught up with my publisher.  I've turned in all my draft chapters and returned all of the edited chapters that were returned to me to date.  I'm not yet done because there are more edits that need to be returned to me - of course the fact I turned in the draft late might be impacting that... but for tonight at least I don't have any authoring commitments... except I'm supposed to start that magazine article...

Thursday, December 20, 2007 4:12:50 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings
# Thursday, November 01, 2007

Often as a new release of Visual Studio approaches there are posts regarding, where are the two primary languages in .NET going?  In short as has been noted on one or two places around the net the VB MVPs posed the question of, what is the strategic long term expectation for VB and how is VB doing in the market?  Which language should I learn, which will help me get a job? etc.  

(The short answer regarding which language to learn is - if you are going to do just a little programming VB is easier to learn and maintain.  If you intend to be a Professional Software Engineer and limiting your career to being a full time Cubicle Code Monkey you need to know both. Just knowing C# or VB isn’t enough, as a developer I’ve learned somewhere between one and two dozen programming languages, to be honest I lost track of them all and stopped counting long ago – although interestingly enough I still have my high school ‘Basic’ programming book...sentimental value only - the point being casual developers will be more comfortable in VB and professional developers learn languages and VB and C# are both necessary with .NET today.)

 

At any rate focusing on the core topic, depending upon where you ‘stand’ your view of VB or C# might be that it’s doing great or not so great.  After all if you are working in a shop where your senior management likes C# it might seem like very few people are working with VB. 

 

On the other hand this perception might be a self-fulfilling prophecy for your company. After all if every project uses a hammer then there must be a lot of nails (how’s that for twisting a proverb “if all you have is a hammer everything looks like a nail”)  If your company “supports” both VB and C# languages but encourages that new projects use one language well then you begin to wonder.  As I noted in the past I’d consider that pretty short-sighted for a consulting company.  After all if your goal is to sell software as a service (which consulting companies do) you don’t want to lose a major portion of your market to language bias… so before I go further I want to clarify where I got some of the data I’m about to toss out.

 

I think it’s common knowledge that I’m an MVP (I can hear some of you: ‘could he mention it one more time…’) anyway I bring this up to note that it shouldn’t be a shock to realize that as an MVP I have a Non-Disclosure Agreement (NDA) with Microsoft.  This comes up because as a group we MVP’s have some communication channels (formal and informal) with Microsoft.  One of the formal ones revolves around my specialty area Visual Basic.

 

In this area the VB-MVPs have essentially an opportunity to truly speak freely to Microsoft on NDA topics.  It’s where we can say we think that feature A is useless or that we think the VB team has dropped the ball by not having a given feature, or where we think they need to take the ball and really run with it.  It also allows us to ask questions and get answers that might embarrass one or more people at Microsoft.  In general it is a valuable tool.  Every so often we get permission to post some information from that discussion to help frame discussions outside that group – things that aren’t too germane to actual company business, and that’s the case for the numbers I’m about to post.

 

There are way more people online downloading C# right?  Wrong – At this point you aren’t going to be surprised when I say the VB Express is the top download of the Express editions.  It probably also doesn’t surprise you if I say that it’s downloaded far more frequently then C++ Express.  But does it surprise you when I note that C++ is the number 2 download behind Visual Basic.  It surprised me, after all I expected Visual Web Developer to be in the top 2 (after all both VB and C# web developers would use that one tool).

 

That’s right Visual Basic alone is more popular by a margin of 20% over C++ <credit VB Team>.  What I will say is that the other three express editions are all much closer in terms of downloads, and registrations.  The point is that Visual Basic is noticeably more popular. Of course this is the Express Edition, that’s for students and hobbyists, they aren’t professional developers.

 

So how big is Visual Basic when someone reviews the market?

Well according to Forrester research Visual Basic is the #1 .NET language. <credit VB team>  Note that’s not some legacy number based on COM developers, that’s just in terms of .NET developers.  That’s right the majority of professional developers out there are using Visual Basic, and that even makes sense.

 

Think about it this way, prior to .NET the two primary development languages were C++ and VB.  C++ was far more powerful, but it took longer and cost more to develop applications.  Sure for someone developing tools or with a huge install base the disadvantages could be overcome for the power.  VB on the other hand was much easier to learn and use, the code was easier to maintain and its performance while not equal to, was certainly comparable to C++.

 

Along comes C#, from the standpoint of C++ developers C# offers a familiar syntax and reduces the disadvantages of C++ - applications were easier to develop and accordingly cost less.  C++ developers and Java developers have without a doubt flocked to C#.  In fact if you are a Java developer and haven’t moved to C# boy are you missing out on the future.  However, these were smaller developer communities to start with then Visual Basic which also released a .NET version.

 

Visual Basic also moved to .NET and its disadvantage – not having the same runtime environment and power as the other major language went away.  Note the fact that VB is easier to learn, read and maintain is still true but now you also get all the power of C# and since .NET creates code on par with C++ it means you as a VB developer are creating first class applications.

 

Sure some people have jumped from VB to C# that is to be expected, and many companies which in the past would have C++ for some projects and VB for others are moving to use only 1 .NET language.  However, as I’ve noted in the past most VB developers will find the transition to VB.NET fairly easy and natural.  When I teach I find that the students with previous VB experience do very well, and in fact that once they get the key elements of Object Oriented Development are ready to become productive.  More importantly the VB teams recent move from a migration wizard to the Interop toolkit (similar to WPF Interop) and the Power Packs make the transition from VB6 much easier.

 

What is interesting is how the VB team blog (http://blogs.msdn.com/vbteam/) ranks in the top 1% of all MSDN blogs and the fact that the VB Developer center on MSDN is one of the top trafficked sections of MSDN (http://msdn2.microsoft.com/vb). <credit VB Team>  In other words VB is doing just fine and as I’m sure we would all agree so is C#.  In the near term there is no reason to suspect anything about this equation will change – C++ and Java developers will tend to prefer C# and those who have mastered both VB and C# will prefer VB J

 

So what about the future?

Well for starters the Visual Basic team recently published the Beta version of the Visual Basic language specification.  A great step for defining how the language works, and one I look forward to seeing become the basis for standardization.  We also know Paul Vick is discussing VB X (aka VB 10)  over at Panopticon Central (http://www.panopticoncentral.net/) and is very open to input on things to deprecate in the languages specification and new language features to add.  I highly suggest going over to get in a good suggestion or two.  As for Visual Basic – I’m confident that it’ll be around and diving into all corners of the Microsoft development tools.

Thursday, November 01, 2007 1:06:18 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
.NET | Musings | Visual Basic
# Tuesday, October 30, 2007

So this is a quick post to place my vote on the recent changes to daylight savings time.  When it comes to movng it earlier in spring back toward Febuary, that works for me. 

However, moving it from the last Saturday in October to the first Saturday in November messes with Halloween.  Instead of it getting dark an hour earlier so that the Trick or Treaters get out earlier and finish earlier - everyone waits for dark to fall and the result is: Trick or Treaters are out for almost an hour later at night.

I know that some will say that having the sun out makes trick or treating safer but as was shown tonight - that is only true if people change the habit of waiting till dark.  We didn't base our trick or treating when I was growing up on a time, we based it on sunlight -when it was gone we got to go out.  So don't make up alot of claims about safety, the reality is this is one of the few nights (July 4th is another) when kids get to go out after dark.  And as I recall we kids love that aspect of it.  So instead of everyone being done by 7:30 or 8 they are finishing up around 9, meaning they are out later which is in my opinion a bigger risk. 

So with all due respect, to everyone's claims of non-existant energy savings and safety, put daylight savings time back to ending at the end of October, Thanks

Tuesday, October 30, 2007 11:07:51 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings
# Saturday, October 27, 2007

I actually a while back wrote a discussion on software estimation that someday I'll post.  However, this evening I ran across another item that I felt it worth pointing out.

In general I consider software estimation to still be more art then engineering.  I don't mean this as a complement, I mean that its predictability, which in engineering we strive to keep high, is in reality low (experience people operate closer to medium predictability...) Part of the problem of course is the ability to learn over time and effectively apply the lessons.  The fact is an experience software lead has learned over time how to estimate and may come close but the learning is of a more intuitive nature.  That's why someone will ask 'why did you estimate that X would take 3 days?' and the engineer's answer is the equivalent of 'because.'

So why am I bringing this up, well I'm going to reference one of those people who's blogs I follow in terms of the business of software.  As I've said in the past - if you are working in this industry not only should you be keeping up with technology, but you need to take some time to learn about the business side - and estimation definitely falls into that category.  Let's face it, from an engineering standpoint I wouldn't care if I finished in a week or a month, but from a business standpoint - well that is a huge difference.

With the release of their latest version of FogBugz, Fog Creek has introduced a new feature for software estimation.  In short the idea is that over time as you define and estimate tasks the software tracks the accuracy of an individuals estimates over the course of a project.  It then determines an accuracy factor.  Over the course of several projects it refines this factor.  It then applies this factor to an individuals estimates - for more information check at Joel on Software's blog at: http://www.joelonsoftware.com/items/2007/10/26.html 

On the surface this is a great feature and I like it but a couple notes, not to bash but as a warning since even my first impulse is to say "I'll take 2".  First the estimator (person creating the estimate) can't know what the tool's adjustment factor for their estimates is because they'll probably 'game' it.  That is to say the estimator will consider their estimate and if they know that the tool will double it, well they'll reduce it by some percentage, because of their inate desire (and it may be totally unconscious) to hit some number (generally as low as possible).  After all the estimator says (ex: "I know I was over by 50% last time over the project so I was going to double my initial gut estimates but the tool is going to do that so I'll need to reduce my estimates so that when the tool doubles my estimates they won't be too high.")  The net is this can result in a reduction of the original estimate to account for the tool's automated increase.

The second thing to keep in mind is that the tool doesn't account for the fact that each project is truly different.  If the developer were consistently estimating the same type of task then the 1 to 1 corrolation that the tool applies makes sense.  But if project 1 is say a desktop application and the developer's UI estimates are 50% under and the next project or the third or fourth consectutive project is suddenly an web UI or a pure business interface and as such the developer's estimate is 90% correct - well suddenly the game has changed and in reality the previous estimates shouldn't be weighted as heavily - but how heavily is the question, that 50% and 90% could also be reversed.  The tool isn't magic and it can't account for all of the variables. 

Finally by its nature this tool will always penalize someone who's estimation skill is improving.  The first set of estimates might be all over the map, the next set might be consistently 25% of actual and then if the estimator sees this and ups their estimates by 150% the correction factor of the tool will suddenly make the estimate way over the top.  Something to keep in mind whether your tool is a fancy algorithm or a set of multipliers in an Excel Spreadsheet - the tool is only a tool - you will still need to carry out a reality and business cost review of the estimate.

Saturday, October 27, 2007 1:50:06 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Monday, October 15, 2007

So the latest industry buzz-term (since it's not a word per say) is MVC.  MVC is a description of a software pattern.  The key to software patterns is being able to speak them and understand them.  I'm sure you've read many articles that mention MVC and you sit there wondering: What is MVC?

So some 'jerk' (you know the type who provides your latitude and longitude when you ask where you are) says to you, "MVC stands for Model-View-Controller and it's the latest in architecture." 

OK, What is a Model View Controller and what do I need to change in my architecture?

This is actually a pretty simple question and as I've said before, outside of major paradigm shifts - the more things 'change' in the technology world, the more they stay the same.  Many years ago - probably before some of you reading this were born we had the concept of a 3-tier architecture.  The idea, which followed on the heels of modular programming was that you should separate out your User Interface from your Business Logic from your Data Access.  (UBD... or reordered DUB) Over time this was called n-Tier because you might have more then one 'tier'.  The idea however was that you had components responsible for these elements.

Well in an MVC model the Model represents your data access, the View represents your User Interface and the Controller represents your Business Logic.  So you have DUB -> MVC - but wait say the formallists, it isn't the same.  So what's the difference?

Well under the n-tier model there were those who subscribed to the idea that all communication had to travel from the User interface to the Business Layer to the Data Tier, and in the reverse.  In other words the User Interface wasn't allowed to directly communicate to the Data Tier.  We tended to refer to people who tried to enforce this as 'jerks' (see above).  Generally those of us developing applications spent hours justifying the fact that in the real world it made sense to have the User Interface directly access the Data tier to retrieve key data and in some cases even for certain key automated updates.  That's essentially the gist of the difference.

So there you have it because people couldn't adapt to this one concept we have a new name - MVC to describe an old concept.  So when someone suggests you re-architect your current n-Tier application to be MVC based and they want to charge you money to do so - well you know how much it should cost - nothing because even if you kept your UI from updating database directly, you still have an MVC architecture in place.... now you can just stop being so * retentive about which components in that architecture communicate.

Its funny we literally created a new name for an old concept, why?  Well the 'jerks' will accept a concept with a new name that doesn't exactly match their understanding of an older concept.  It's literally easier to reaname and remarket a concept then to for some people to update their knowledge.

The preceding is of course a brief comparison - to wit there are several other characteristics of the architecture models I've omitted (such as n-Tier) in order to quickly illustrate the key similarities between these models.  I'm sure someone (see jerk above) will point out one or more such items in the comments...

UPDATE: I should also point out that yes the MVC pattern has probably existed for as long as the 3-tier architecture has. The point here is that it is the latest trend for architects and for many the new description seems like it is describing something... well.. new.  In the past MVC was a common model for application logic but now that more "software architects" are actually learning about software best practices it has made the move to describing enterprise architecture.  The concepts aren't new, just the name being used to describe what we've been trying to do.

Monday, October 15, 2007 1:56:00 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Architecture | Musings | Technology
# Monday, August 27, 2007

It's been a long weekend and I didn't get all the work I wanted done, but I thought it was time to capture a couple of the random thoughts that were ricocheting around...

1. There is a technical person with whom I have worked for many years.  We have somewhat similar pre-.NET backgrounds although his primary background was more in Visual Basic under COM while mine was more a combination of C++ and VB.  After .NET was released this individual quickly picked up C#.  Becoming quite adept with C# this person was then heard to state publicly (paraphrasing in spite of quotes) "VB developers should focus on C# instead of VB, because they'll find it easier to learn {a complete new syntax, language and object oriented environment} then trying to understand the differences between VB 6 and VB.NET."

I'm actually not going to touch that statement however; I was wondering recently if then the reverse wouldn't also be true.  Specifically, those developers familiar with C++ and Java should move to VB in .NET.  The reasoning stands that "they'll find it easier for them to learn {a complete new syntax, language and object oriented environment} then trying to understand the differences between" C++/Java and C#?  Seems like if A is true B should also be true and if B is false then perhaps A is...

2. This one is more a conversation quote -> let me set the stage.  We work in small teams on most projects.  Those teams have used (for years) a custom 'Agile-like' process.  Not everyone has the same level of experience with this model and at some point in the past the following conversation (paraphrased) took place.  I was the engineer involved and the other person - not being an engineer supposedly doesn't suffer from my "innate inability" to communicate.  We join the conversation in progress; Eng. 1 has just told Eng 2 a few things they should coordinate for today and tomorrow:

Non-Eng - "So how will the two of you coordinate?"

End 1 - "We'll talk during the course of the day."

Non-Eng - "That needs to stop.  We need to change that."

Monday, August 27, 2007 12:28:57 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Monday, August 13, 2007

A couple random thoughts this evening:

1. Why do the San Diego Chargers (and I'm sure other professional sports teams) insist on giving out things like posters and calendars as you enter the stadium?  Don't get me wrong if it's a towel or hat giving it out on the way in works... but take this past Sunday as each person entered they were offered a poster literally a 2 foot by 4 foot poster with key players in the new ugly uniforms.  Great - but where do you put them for the rest of the game - you can't take it back out to your car and under your seat it gets trashed - if 10 people managed to keep them in pristine shape (out of 57K attendees) I would be amazed.  Do us a favor - let us pick up that sort of thing on the way out where there's actually a good chance it'll make it home as opposed to going straight to the stadium dumpster and local landfill.

2. OK, I know it's considered good practice to bring everyone's food at once but a note to what we'll call informal restaurants - Chili's, Applebee's, Friday's, etc.  If you have a couple with an infant/toddler (in a high chair) and the parents order something for the small child do us all a favor and offer to bring it early.  Mom and Dad have to cut and prep everything for the toddler so having the child's food arrive early is a blessing - they can focus on getting the child started and then when their food arrives shortly (and short is important) thereafter they can actually focus on eating while the child eats as opposed to one or both letting their dinner grow cold.

Monday, August 13, 2007 9:18:20 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Thursday, August 09, 2007

You might think I'm 7 or so years to late with this story... but apparently not.   Turns out that NASA who has been the primary repository for US and world temperature data was recently informed that they were operating for the past seven years with an undiscovered Y2K bug that corrupted the official average temperature calculations.

These folks who are at the center of the Global Warming debate don't let anyone know how they compute the average temperatures - but someone noticing a big jump at the turn of the century managed to reverse engineer and prove a bug in their code.  Turns out the warmest year on record wasn't 1998 followed closely by 2006 - but rather 1934 followed by 1998...

In fact now that they've "corrected" their calculations it turns out that like 5 of the top 10 warmest years on record are from prior to WWII.... hmm - can we get a code review here?  You'd think an organization like NASA would be open to a code review...

Here are the updated stats: http://data.giss.nasa.gov/gistemp/graphs/Fig.D.txt

And someone who seems a bit more peeved at the whole thing - http://www.coyoteblog.com/coyote_blog/2007/08/official-us-cli.html

(Personally I just think it shows what idiots the team at NASA is for not having their code reviewed - even now - could we get that organization to implement some sound engineering principals!)

Thursday, August 09, 2007 11:45:10 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Wednesday, August 01, 2007

For those who need to head up too Redmond, WA to work with Microsoft I have a couple tips:

1. As for a place to stay - there are several really nice hotels.  However, for me during the months where the weather isn't too bad my favorite is the Redmond Inn.  It's a motor lodge so it isn't 5-star service (or price).  However, this particular hotel rents bikes (both Mountain and Road) and we know my preference for bikes.  Since in most cases there is time either in the morning or evening to get in a ride this is my suggestion for a place to stay.  It's reasonably close to the Microsoft offices and has a bed, bathroom, TV and high speed internet.

http://www.redmondinn.com/   - now they just need to post a couple bike maps to show where the best rides leaving from there location are.

2. When working with Microsoft the invariable question of OK you are in Building 41 or 15 or 9 or 32 comes up.  With a little experience you know that there isn't from a location standpoint a pattern to building numbers.  (As I recally the numbers are based on when Microsoft applied or was granted permission to build a given building...) Anyway the key is that if you need to get to building 40 then go to Microsoft Live Maps (http://maps.live.com/default.aspx) and type "Microsoft Building 40"  (Type this on the 'Enter city, address or landmark' textbox - if you enter it on the 'Search for a business or category' textbox it will then ask you if you are really looking for the location of Microsoft Building 40 and you can confirm your entry) The map will then display the location of the building so you can find the building you need to get to.

- btw don't think you  can do this trick for any company - want to find 'InterKnowlogy' type it in and the map will take you to the Philippines with a note: "The closest match for 'interknowlogy' is 'Interinsular Sea [Visayan Sea] (sea), Philippines'. If the closest match is incorrect, enter the complete address including country name and commas, and try again."

Wednesday, August 01, 2007 1:06:17 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Wednesday, July 11, 2007

I mentioned in Can you play baseball/softball? Are you a pro? that I was recommending the new book from Joel Spolsky at the time I was ordering it as opposed to after having read it.  As I noted I said I would revisit this book again once I had a chance to read it. 

Yesterday I needed to take the train from Oceanside an approx. 110 minute trip (just under 2 hours) and since the MetroLink trains that traverse Orange Country don’t have electrical outlets – I took a couple books.  (My currently laptop has approx. a 45 minute battery life).

The one I read on the way up was “Smart and Gets Things Done”.  It is a relatively short book, in that although it is hard cover it’s has pages about the size of a paperback and only goes for about 150 pages.   This was good in that hopefully some managers (who haven’t been able to focus long enough to get through a book like Joel on Software ) can actually be convinced to sit down and go through this book. (I'm not targeting my current employer with that statment, but would like to focus across the entire IT landscape.)  The key is even more so then Joel on Software - this isn't a book on software - it's a book about your "most important resources" your people - what it takes to find them and to a limited extent to keep them.

As this comment implies; I stand by my original recommendation, and I’d like to now expand on that recommendation.

I wish I could say that the company I work for follows all of the recommendations outlined in this book.  The book covers tips for people who will be interviewing, tips on screening resumes, why services like Monster or Career Builder have limitations in terms of what candidates you will see.  Overall, while in theory Joel has the ability to state – “I founded a successful company called ‘Fog Creek Software’, my success acts in part as justification for what I write.”, that isn't his main approach.   Joel uses information both from within and from outside his organization to better illustrate his primary concepts.

The first chapter focuses on the intrinsic value associated with hiring only the ‘best’ programmers.  As I noted in my original post, anyone can claim to be a developer – but there are some people who are truly professionals.  Joel points out that software engineering can be associated with a natural ability or affinity.  As I noted when I said there are some professional baseball players who have an innate ability which can be nurtured on the way to becoming a professional, the same is true for the people who are the best at designing and creating software.  Joel goes beyond just using his personal observations and actually takes some data collected by a university professor to demonstrate how those people who really excel in software development may solve the same problem much more quickly then someone who for lack of a better word, struggles to pull together the logical pieces.

Chapter two focuses on finding those resources.  As Joel notes – the best software engineers are rarely on the market for any length of time, and once they get to a new location they tend to stay for a long period of time.  This is because over a period of time such individuals are easy to recognize.  Joel points out that internships are a great way of identifying and ‘locking in’ such performers and describes his system for doing so.  Additionally this is where he focuses on why so many of the resume’s a potential employer sees aren’t actually from the developers that employer should really be looking to hire.

Chapter three focuses on things that employers need to do to really attract and retain the best developers.  This contains important tips that cover everything from how damaging politics can be to why in the right scenario money is rarely the driving factor motivating your engineers and what it probably means if money is the driving factor for your developers.

Chapter four focuses on things like sorting resumes.  Returning to my baseball analogy from my previous post, the majority of organizations don’t have what I would describe as a farm organization.  This is the collection of minor league teams that feed their best talent into the pro's and which are common in Major League Baseball.  Instead of having talent pulled from the organization companies are going to do the majority of hiring off what is essentially the free agent market.  So while Joel leverages a farm system via his intern program - other companies are scanning job services looking for people.  This means scanning resumes and since maybe one half of one percent of the resumes you get from such sites and headhunters actually highlight worthwhile hires how do you spot even the top five percent of such candidates when looking through resumes. 

Chapter five relates to phone screening and chapter six relates to the actual interview process.  In short if you are interviewing potential developers you need to read these chapters.  His process tends to model my ideal, unfortunately I know in my current company there are few who manage to come close to mirroring his suggested processes.  I’ve seen hires who should have been screened out much earlier in the process by following his suggestions.

Chapter seven talks about how to work with teams and fixing ‘suboptimal’ teams as Joel phrases it.  I actually consider this chapter to be an extension of Chapter three in that developers won’t be happy for long if the team they are on is dysfunctional.  More importantly he points out many of the mistakes that companies typically make when attempting to make such teams successful.

Finally Joel reviews his 12 rules for rating a software team.  This is offered as an appendix and reviews many of the things that you as a developer or as a manager should be asking if you are trying to quickly gauge whether or not your team is positioned to be successful.   There are some very detailed and well documented ways to measure an organizations performance in terms of software development.  However, I can state from experience that such methods often cause more problems than they identify, Joel’s informal system on the other hand can quickly get you on the right track without ever getting into those details or even getting huge push back from your employees.

So there it is my review of Joel’s new book and hopefully enough info so that even those who think they are too smart to need to read a software book that isn’t about writing code, will recognize it has some value and items they don’t know.  While I did recognize one or two chapters from having followed Joel’s posts – I found the updated read a great refresher and took away good information from each chapter.  I’ll be keeping this book available and whenever I’m preparing to conduct a series of interviews I’m sure I’ll review a couple of key chapters.

Wednesday, July 11, 2007 2:01:00 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings | Technology
# Monday, July 09, 2007

It's been a while since I posted.... I have several items to comment on but I've been on vacation and more focused on setting up some updates related to the blog vs. adding content.  So I wanted to quickly comment on the Tour de France (http://www.letour.fr/2007/TDF/LIVE/us/200/index.html).  It started Saturday and one of (in my opinion) the advantages of living on the West Coast is that the live broadcast runs from ~5:30 AM till ~8:30 AM daily (http://www.versus.com/tdf/article/view/758/?ss=tv&tf=Body.tpl).  The result is I can wake up around 6 tune in the tour and see the results of that days stage before starting my day.

The tour itself is great motivation to get out and ride.  Watching these guys do 100+ miles a day for 3 weeks is inspiring.  I had a great Mountain Bike ride last week I'll talk about in a later post but there is nothing like a morning or afternoon out on the roadie.  This morning's race (stage 2) also brought home how the Tour is like a more environmentally friendly version of Nascar.  (note I'm not claiming the tour IS environmentally friendly - as you watch riders toss plastic bottles to the side of the road and consider the chase vehicles etc... )

  • both involve a "man" piloting a machine (Nascar has women drivers)
  • both races are on a paved (or other road) surface
  • both involve corporate sponsors with their name on every available surface
  • both are more exciting (to the average TV viewer) when there is a pile-up/wreck (http://community.active.com/blogs/MartinDugard/2007/07/09/a-lot-of-tension)
  • both seemingly individual sports have a team aspect that changes the underlying dynamics
  • both have issues with particpants 'juicing' there 'engine' - the body (steriods) in cycling, the car and it's combustion engine in Nascar
  • both have fans that line the course drinking copius amounts of adult beverages

Now obviously there are differences for example the Tour's course takes you through most of France over the course of a month with beautiful scenary and Nascar uses loops and only races on weekends; but in general aside from the fact that the Tour doesn't burn copius amounts of fuel to power it's vehicles the dynamics of the event are somewhat the same.  There are of course many more intracacies to the Tour (and bicycle racing in general) than (in my opinion) to Nascar but that's beyond the scope of this musing.  Oh and just like in Taledega Nights - if you aren't first, you're last.

Monday, July 09, 2007 11:03:51 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Cycling | Musings
# Saturday, May 19, 2007

It's quite common to hear that anyone can be a developer.  Microsoft and other technology companies are infamous for telling us how everyone from a 9 year old through a 99 year old can be a developer.  However, it's a little like saying that everyone from a 9 year old through a 99 year old can play baseball.  (I'm using baseball and softball for this discussion in a gender neutral fashion.  I understand that most women play softball, but the gist of the discussion is not gender specific.)

Yes everyone from a 9 yr old child to a 99 year old "can" play but when you start talking about professional players - what's the real range of 'who can play?'  Don't get me wrong even when I was say eighteen through twenty-five I wasn't a baseball star (or any other sport for that matter).  Sure I knew how to play, and would even participate in a softball game at say a company or church picnic.  But was I professional?  Not a chance, and there's a reason - I wasn't nearly as good as those people being picked to play for organized teams.  In this case I'll even extend 'professional' to the college ranks to make it clear it's gender neutral.  Let's face it those teams pick the best available players, and while anyone may have the basic skills to hit and catch the ball - only the best stick with it and are worth investing in that skill.

It is much the same in software development.  Sure anyone 'can' write some code.  Anyone can write a 'Hello World' program or type up a basic HTML page.  But does that mean anyone can act as a professional software engineer?  The answer as with baseball, is not really.  Sure you can hire people who will take your money and accept the title of Software Engineer, but in the long run neither you nor they will be happy.  Similar to other skilled professions (everything from Doctors to Electricians to Truck Drivers) certain people just do better in the software industry.  So how do you spot them?

Well there have been several essays but finally there is a new book coming from an author I trust on this subject.  Joel Spolsky author of Joel on Software is releasing a new book on hiring software and related technical people.  I've just ordered a copy and depending upon your role you might want to do the same. 

Given Joel's history while you may not agree with everything he has to say, you should at least consider this book if you are in the business of helping to interview new engineers.  I'm sure I'll have more to say once I've read this book but for now, given how much I liked his last two books (with Joel on Software being the better of the two) I'm confident in recommending this before I've read it.

Saturday, May 19, 2007 11:52:13 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Saturday, April 07, 2007

As I've noted I'm getting ready for the Tour de Cure and riding my bike for 60+ miles.  Of course my training time has been less then ideal what with having a new son, a full-time job, plus various work related activities (teaching, writing, editing, etc.) -if it weren't for that job why I'd have so much free time:-)

However, in surfing this weekend this comic caught my eye as the opinion of many who share my affliction when it comes to exercise.  It was originally posted on the editorial cartoonist's site at: http://www.coxandforkum.com/archives/001083.html with a discussion of childhood obesity.

07.04.04.BigProblem-X.gif

At any rate I like many other cyclists will continue training and suggest that everyone do their best to make exercise a priority in their life.  You can support my efforts to raise funds and awareness for the American Diabetes Association with a donation here:

http://main.diabetes.org/site/TR?px=1001265&pg=personal&fr_id=4403

Saturday, April 07, 2007 9:26:52 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings

There will come a time in the future when my son will look at me and ask 'Why? Who would believe that and why did so many people head down the wrong path.'  For example, I remember asking why things went the way they did in Vietnam (took a while to get the real answers) or why we were having a gas crisis etc.

So I would like to publicly apologize to my son regarding the current crisis du jour: 'Mankind has triggered an unstoppable jugernaut of climate change in the form of global warming based on increasing CO2 levels.'  Son, I don't know why people ignore obvious evidence that indicates this is false (although I have my suspicions), I don't know why they are going to create some really stupid laws, nor why the Supreme Court (a group of law professionals) has taken time to weigh in on scientific theory.

Yes there is alot of money to be made by people taking advantage of those who are ignorant, and yes there are many groups who have alternative agendas which will benefit during this false alarm.  Unfortunately, I think this will end similarlly to the "boy who cried wolf" (not the PC version the version where the boy is eaten) for some of those with alternative agendas (many of which I agree with and think are very justifiable but will be marginalized by their association with the disproving of man made global warming).  Also note: Money grubers will continue looking for money as they have no loyalty to any cause, and they don't care who or what they hurt in the process.

At any rate here is another report of a respected climatologist saying the same thing as others regarding the lack of solid science behind the 'global warming alarmism' and being cast as something less then an expert in his scientific field because his scientific opinion doesn't match the current popular opinion:

http://powerlineblog.com/archives/017274.php

Son I hope when we talk about peer pressure this example of how allowing others to think for you and convince you to act stupidly is always a bad thing.  (BTW, that goes for both conservative and liberal ideas, think for yourself! Understand the real facts not someone else's opinion.)

BTW: yes our climate has warmed - so has that of Mars and last time I checked the CO2 levels on Earth had nothing to do with it.

Finally keep in mind - most people agree that mankind is much more likely to create global cooling then global warming.  In fact I was raised hearing how pollution (real pollution not the gas every human on the planet creates with their every breath) was going to create a new ice-age and plunge us into a cold dark world of death.  Even today the threat of a nuclear WINTER not a nuclear melt-down is still the consensus:

http://www.realclimate.org/index.php/archives/2006/10/global-cooling-again/ (which has some classic Clash lyrics - don't worry you'll learn about the Clash son, when the time is right.)

http://www.lewrockwell.com/walker/walker17.html - the one sure prediction you can make - the Earth's climate will fluctuate, both locally and globally, over both short and long term periods. 

Note most 'warmnig alarmists' site statistics which include the word 'since' meaning that whatever the given level is, this isn't the first time it's been reached in the history of the Earth.

Update 4/9/2006:

Another respected scientist, this one from the highly respected institution of MIT has come out calling the current global warming hysteria 'bunk' - that's my technical term not a quote.  Read his well thought out and supported analysis here:

http://www.msnbc.msn.com/id/17997788/site/newsweek/  - my favorite line is that the same models which can't predict the weather next week are being sited as accurate for 40 years into the future :-)

Additionally the US Senate has documented several of the failed predictions, inlcuding the fact that the increasing temperatures associated with global warming stopped circa 1998:  http://epw.senate.gov/pressitem.cfm?party=rep&id=264777

 

Saturday, April 07, 2007 8:53:28 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Friday, March 09, 2007

The cool thing on this one is they don't have alot of text choices you select from an array of images for each question.  Aside from the 'gross' questions which I don't think were sufficiently gross... it was a cool diversion...

Friday, March 09, 2007 11:48:05 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings

This is just cool on soooo many fronts from cancer to scifi technology that it deserves a link...  I guess it falls under the category of where your breast cancer research dollars go - cause lets face it this kind of cutting edge stuff ain't cheap.

http://health.msn.com/centers/breastcancer/articlepage.aspx?cp-documentid=100157845&GT1=9192

Friday, March 09, 2007 3:58:07 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings
# Monday, February 26, 2007

What seems like a really long time ago (~18 months) I made a post regarding the introduction in .NET 2.0 of Partial Classes.  It's available here: http://blogs.interknowlogy.com/billsheldon/archive/2005/10/25/546.aspx. As part of this post I assert that in my opinion Partial classes are a feature and given the specific question I was addressing at the time that they are better in certain scenarios then abstract classes for managing complexity within a single class.  (Note that abstract classes solve a different issue and have an appropriate place in OO engineering.)

So why revisit this issue, well in part because someone posted a comment to that post earlier today which brought it to mind, along with the additional thoughts which I'm bringing up. You see the Windows Presentation Foundation (WPF) uses the eXtensible Application Markup Language (XAML) and extensions to this language to *declare* a user interface.  This user interface is then combined with traditional development languages to add custom behavior to the UI.  To get a real in-depth on WPF I recommend the soon to be released book by Chris Anderson: http://www.aw-bc.com/catalog/academic/product/0,1144,0321503570,00.html The book will be getting released in early April and having seen some of the early materials I can say I definitely recommend it to people looking to really understand WPF's model.

However, part of what you quickly realize with WPF is that the XAML which declares (describes) a user interface element, (a window, a page or a control) is then associated with a traditional OO class.  This class in .NET is implemented as a partial class.  This isn't done for any of the reasons that people discussed as advantages of partial classes in the past or by anyone at the time of the release of .NET 2.0.  .NET 3.0 introduces a new concept to .NET languages in that you now have a model where a class can be defined across two different language implementations.  Not just syntactically different language implementation, but litterally process oriented vs declarative language implementations.

Think about it, with WPF part of your class is defined in a declarative programming style which essentially names the library classes to leverage.  This includes non logic driven portions of your class implementation, for example applying style attribues, defining the display color and positioning and even limited behavior.  At the same time your UI class also consists of traditional language elements to handle custom event behavior and implement application logic.  These two unrelated syntax elements combine to create your user interface and with partial classes you gain a way to leverage these two disparate languages within a single class.

It's not limited to WPF, Windows Workflow Foundation (WF) does the same thing.  In both cases the implementation of partial classes allows a developer to describe/implement a portion of the class in the language which is most appropriate for that implementation. Anyway it's just one of those things.

BTW - I don't know if I've mentioned in this arena but is everyone aware of why the abbreviation for Windows Workflow Foundation is only two characters? Think about it WPF, WCF all have 3 characters until WF which would logically be WWF.  Most Americans immediately respond - wrestling since one of our sports-entertainment industries went by the name Worldwide Wrestling Federation.  However, what most people don't immediately realize is that WWF is no longer around, there is now a WWE, but the Wrestlers gave up the WWF moniker - not by choice but because since 1961 the World Wildlife Fund which started in relation to Panda conservation holds a copyright on those initials.  Microsoft needless to say wanted no potential conflict with this same organization and as a result Windows Workflow Foundation is abreviated WF... for backing information I reference this link: http://www.sportslawnews.com/archive/Articles%  202000/wwftrademark.htm  Think about it, WPF is the Wells Fargo's stock ticker and there are several organizations using WCF none of which scared Microsoft.  At least not nearly so much so as those who represent the Panda Bear - http://wwf.org or for a better feel of just how much money is involved: http://www.justgive.org/worldwildlifefund/weddings/index.jsp

I guess it's just too bad that MS didn't think to use "Library" instead of "Foundation" in the names for these new class libraries: WWL, WPL, WCL... but even I think those look weird now.

Monday, February 26, 2007 11:03:35 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
.NET | Musings | Technology
# Saturday, December 09, 2006

One of the early hits on .NET development was that you needed to download the framework because it wasn't on the underlying operating system.  Thus if you wrote a .NET application for the general public, for it to work you would have to have them install the full framework.  The consensus amoung many was you wouldn't want to create a desktop application that relied on .NET.  Of course that was several years ago and while it still seems to be held by a few short sighted writers, the reality is that .NET applications are appearing in the public arena.  In the past 2 months of the 3 applications I've installed two of them were .NET applications.  The first was for Sirius satellite radio and streaming audio.  The benefit of being able to crank out an application in a fraction of the time required to write all that streaming logic using something like C++ undoubtedly played a major role.  The second application is called SplashStream - it's focus, you guessed it streaming video, in this case video associated with the TSTN training that I talked about.  The application streams the course content and provides a basic schedule UI.  As PCs focus less and less on supporting a browser and running Office and more on video, audio and photo content I expect this trend to continue.   Just for disclosure - the other application I installed Microsoft Active Sync (which reminds me every morning of the fact that I haven't associated with a device...) 

(By the way I'm also on a project with a .NET 2.0 Smart Client application which is sent out into the world at large...)

Saturday, December 09, 2006 1:40:53 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
.NET | Musings

It's funny get into a technical discussion with anyone who does alot of web development. Opinions are rife and vary across the board. You can create conflict on any number of topics.  "Hey I like smart client/windows desktop applications better then web applications" or "I like C# over VB for my projects", whatever.  The fact is the type of people that spend time sitting in front of computer screen constantly making minor adjustments in a source file and reviewing the results to see if the results are exactly as desired tends to have more then a few strong opinions. 

Now let me add a disclaimer here: this post is only refering to web development - not server scripting.

In most cases just like the any other opinion, everyone has their own, and the live and let live approach is the most productive.  Yet I've tested the above statment - Working with Javascript sucks - out on dozens if not hundreds of developers and I've never gotten anyone with a truly different opinion.  Sure now and then someone will say it's not that bad - but consistently even those who proceed to tout its benefits on the client are still at some level of the opinion that it sucks as a developer tool for web development. 

Which brings us to the question of: What's the alternative?  For a while we could simply refer to Javascript as a way to make screens a bit more interactive and for clueless developers to place data validation code so hackers could completely bypass it.  The useless nature of Javascript for browser based data validation could be a complete discussion.  Of course it's been done repeatedly yet even newly developed systems that shoot themselves in the foot are being released - proving there will be a subset of developers who will never understands.  The point being that the only real value of Javascript was as a language to make a screen react, and even then doing more then shuffling data around was difficult at best.

Then along came Ajax.  With the introduction of Ajax (I last wrote of Ajax a little over a year ago: http://blogs.interknowlogy.com/billsheldon/archive/2005/09/09/415.aspx) it has become apparent that Javascript isn't going away anytime soon (like so many technologies which have outlived their true value: http://en.wikipedia.org/wiki/COBOL).  The fact is that Ajax took what people had been hand coding in Javascript for page interactivity and packaged it.  Of course toolsets like the Microsoft ASP.NET for AJAX suite have been slow in truly making it to market, but the market has continued to grow in spite of this.  The only disadvantage of course is that while this will provide you with a set of specialized controls from the ASP.NET standard.

Of course the challenge right now is that to leverage AJAX you still need some, you guessed it, basic Javascript that you have to customize.  After all AJAX has Javascript right there in the acronym.  Meanwhile the underlying issues with Javascript and the fact that it has a lousy development environment remain.  Thus when you talk to people working with Microsoft's ASP.NET AJAX, it's all about the Javascript (http://blogs.interknowlogy.com/joelrumerman/archive/2006/09/22/5126.aspx for a good example...)

But again - Is there an alternative?

Well little by little two alternatives are emerging.  One is still based on Javascript but in this case you never touch the Javascript.  That is where thrid party vendors have wrappered the complex Javascript for you.  Telerik provides such a soluction at: http://www.telerik.com/products/ajax/r.a.d.ajax.aspx.  (The Telerik suite with it's support for everything from native ASP.NET to Dot Net Nuke and Sharepoint is rather impressive.) It may not be as efficient in what it sends to the server in a given round trip as say custom coded controls which are handling the AJAX communications, but then again its way easier to implement and get the same behavior.  In a cost - benefit analysis you'll probably find this solution wins out the majority of the time, and since it's based on AJAX you can even have developers like those here at InterKnowlogy customize those pages where you need a custom solution.  More important just like the Microsoft ASP.NET AJAX solution it approaches the market with compatibility across multiple vendor's products as a focus.  This solution favors compatibility over what we'll call capability - and that is a very marketable feature.

The other alternative is, as with most technology, coming from an alternative direction.  It's called WPF.

Nothing against the Ajax/Telerik solution, but for those of you not paying attention even as Microsoft provides basic support for the AJAX model that they invented so long ago they have also seen a better way.  The Windows Presentation Foundation (WPF) is an XML based user interface definition.  Now as we all know XML already runs in browsers so we have the basics of what you might think of as a next generation HTML.  Go a step beyond the current namespaces we use for custom controls in ASP.NET.  Go beyond well formatted HTML.  Take the next step and say - what if the declaration of a Textbox was just that... a declaration that both the Smart Client Application and the browser understood.  Now go a step further - suppose the browser wasn't just a rendering engine but instead allowed for a recogniztion of the fact that a change in that drop down was actually designed to trigger an Ajax style update from the client.  One that didn't require a full round trip of the entire user interface (postback) to the client nor any Javascript - not even generated script.  Admitedly it wouldn't be compatible with all of the existing browsers on the market right away - but that's only one form of compatibility and in this case perhaps not the driving one...

WPF addresses a different type of compatibility.  Compatibility between desktop based and browser based applications.  The ability to design a user interface which works well and looks the same in both environments without needing to completly re-implement the interface.  For an "enterprise" or "corporate" developer this is actually a more important type of compatibility.  Within an organization it's possible to dictate that everyone must use version 8 of browser X or to produce a smart client application... these developers are constantly being challenged to choose between smart client and browser alternatives (even if they do both it's still extra work like double data entry). 

It's this arena of compatibility which WPF targets in the short term.  Of course as more and more companies move to WPF for it's reuse across desktop and web more and more corporate users will demand third party browsers support the WPF model.  These browsers will respond because they want people to be able to use their product in their work environment.  Over time what will start as a tool which is focused as much on Smart Client applications has the potential to again revolutionize the market.   Note I'm not saying that AJAX wont' survive for decades to come or that it isn't viable - I'm just noting a future alternative, one which I think web developers will be a little late in coming to the party...  by the way note all the AJAX and WPF presentations on the blogs.interknowlogy site... compare who is posting on WPF to who is posting on AJAX (here's a hint: Joel works for Adam)

Saturday, December 09, 2006 1:14:14 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
.NET | Musings | Technology
# Thursday, November 09, 2006

If there is one common skill which many of us who are in the technical field need additional work on it is people skills and personal guidance.  There are times when everyone needs someone to remind us how to effectively communicate with others and experiences to build upon.  Those of us in the technical world tend to focus more then others on a narrow subset of training, and so I've been looking for a while to find some way to go beyond technical training that would fit within my busy lifestyle.

Recently a new network focused on addressing non-technical skills and personal growth was launched on the internet.  This network the Success Training Network provides online video from some world famous speakers.  Many of the topics touch on communication, personal development, health & fitness, and sales & marketing.  I started watching some of their programs recently to see if they were of value.  So far I have been very impressed with the materials available.  The site has both a standard scheduled feed and a small subset of On-Demand programming available.  This means if the current show isn't something I'm interested in or in many cases if I missed a show I was interested in I can pull it down at my convienence.

The fact is because there is a constant rotation of material, because the material is presented in relatively short 30 or 60 minutes blocks and because I can watch it over lunch and in some cases leave it on while doing something else. I have found this to be an effective way for me to get non-technical training.  As I type this I have a personal training playing in the background talking about how important it is to remember to carry out a simple fitness program with a light workout while on the road.

If you are interested in some non-technical training focused on personal growth, Click Here.  I admit I'm still fairly new to their training materials but I can definitely see value in these programs.

Thursday, November 09, 2006 1:38:52 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
About the Nerd | Musings
# Monday, July 31, 2006

I have to admit I'm a bit amazed at this and wonder how it fits with the stated goal of a Beta program.  Most companies that I know of deal with Beta software in one of two ways.  1. They only release the beta product to a subset of customers who are given first access to key new features while working through bugs and missing features.  This is usually contract based.  2. The beta is released to the widest possible user base who can voluntarily choose to participate.

Microsoft has quietly announced that as of this week they are going to charge the general public to download the Beta version of their current Office release.  The charge a $1.50 US is nominal but as far as I know is a first for downloaded beta software.  Why this is interesting is that it implies it costs Microsoft a $1.50 for each downloaded copy of their product (the charge is for 'cost recovery'). Of note however, the online 'Test Drive' of the software which would seem to require more system resources will remain free. Given my last Developer Update newsletter which dealt with how some systems are moving to a hosted model.  I'll end up covering this as part of my 'Glad You Asked' column in the newsletter this Friday.

To subscribe go to: http://www.sqlmag.com/email/

Monday, July 31, 2006 12:09:28 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
.NET | Musings
# Wednesday, July 26, 2006

Every now and then someone passes me a book.  In some cases such as when I got my hands on the VSTO book from Addison Wesley its pure technical book.  In this case I was passed a copy of what I would call a "Business of Software" book.  The book in question is from Joel Spolsky's "Joel on Software": http://search.barnesandnoble.com/booksearch/isbninquiry.asp?z=y&pwb=1&ean=9781590593899  Yes it was released more then a year ago - which is usually an indication in the technical market that the book is out of date.  However, this book isn't about how to work with version X of Product Y.  It's a book that talks about things that people who work and in particular senior people who work in companies that build software need to know. 

Joel talks about everything from what a program manager's real role should be, to how testing saves money and along the way introduces some simple tests to see if your company is really good at creating and managing software.  He throws in things like why you shouldn't multi-task developers, and why you shouldn't do multi-person interviews but should instead have a candidate meet individually with multiple people.  The key being this book isn't about A software product - it's a guide to managing software projects.  In general if you are trying to run a software development organization (you don't have to be running your own company) you should read this book.

The book itself is a collection of edited essays which have almost all appeared in his blog.  The blog: http://www.joelonsoftware.com/ is still running strong and in fact one of his most recent posts fits well into the model of the type of essay in this book.  Reading this post the other night I was reminded of why I immediately recommended that our entire managment team (if not entire company) read this book.  http://www.joelonsoftware.com/items/2006/06/16.html  Of course the management team has other more generic MBA style books that they'll read but then as the MBA's know: Running a software company is no different from say selling Pepsi.

Wednesday, July 26, 2006 10:44:40 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Monday, April 17, 2006

One of my co-authors from Professional VB.NET and a well known Microsoft Regional Directory recently put together a somewhat tongue in cheek history of VB... it's a good read especially for developers interested in the progression to .NET:  http://www.dotnetmasters.com/HistoryOfBasic.htm

Monday, April 17, 2006 12:04:09 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings | Technology
# Saturday, April 15, 2006

Over on my blog roll one of the blog sites I like to visit every so often is the Daily WTF.  This site essentially takes code samples and say - "OK, what were the people who wrote this thinking?"  Let me say up front I've never submitted any code to this site, but since I had a chance today to catch a breath I stopped by and they had an code that involves,  what for lack of a better term I would call a design pattern, the rules processor.

Now there are  several things that sound great when you talk about a rules processor, and generally the thought process goes something like:

" Wouldn't it be great if instead of writing an application that embedded business logic regarding how to process an order or handle a customer request and then having programmers need to make changes when our process or business rules change;

We could instead have an application that read our business rules out of a database and then ran these rules against the customer database."

As this post on the Daily WTF notes, this is a admirable desire, but unfortunately if you try to build it yourself from scratch - well don't be surprised if you wind up with something similar to what this post is highlighting: http://www.thedailywtf.com/forums/68489/ShowPost.aspx

Let me reiterate - I don't know where that code came from much less did I submit it.  However, I disagree with a couple things in that post.

First I think there is value in working to transfer rules out of code if those rules are dynamic.   It's that word dynamic that I think people sometimes forget.  Will the "number of days" to apply X ever change from being a number?  No, so don't make it a rule, put it in code.  Will the "maximum number of days" ever change - probably, so make it a 'rule' or at least a setting.

The difference is important because while I can create an engine to look for a generic rule to test for both the fact is the more rules my system needs the more complex the maintenance of those rules becomes and the greater the liklihood that I'll need a specialized employee to maintain those rules, thus defeating the original goal of the rules processor.

Secondly, look at what tools are already available on the market.  There are companies that specialize in making and implementing rules engines - consider purchasing one of these existing products.  More importantly, when I examine most rules processors what I find is that over time then tend to combine data validation based business rules with workflow based data processing.

Let me explain the what I mean by a difference.  A rules engine is applying rules to see if an action or set of data meets the business requirements necessary to accept that data or start an action.  A workflow engine takes data which is nominally valid and ensures that it flows to all the appropriate points in your organization or even across organizations, so that the customer's request to result in a desired outcome.

Now in a discussion around requirements these two things can sound very similar.  For example "Ensure the order has a maximum number of days duration." sounds very similar to "Ensure the order goes to fulfillment and is processed within X days."  However, these two requirements require entirely different approaches, one is focused on getting the correct information, the other is focused on how that data is handled.

Which brings us to Windows Workflow Foundation, similar to BizTalk, this is a technology designed to process your data.  If you start trying to take the 'workflow rules'  and apply them like definitions to data validation you will find yourself writing some *very* convoluted code.  Don't get me wrong both WWF and BizTalk do a certain level of data validation in order to accept an object for processing, but you'll note that validation isn't the same as what they do in their actual workflow process.

So when you are designing your system and the question of 'rules' comes up start thinking about:

  1. What elements of the system need rules?
  2. Keep the rules simple, otherwise even if they aren't compiled they'll require a programmer using a custom syntax to maintain.
  3. Separate rules from workflow.
  4. Leverage existing products to both speed your development and ensure a standard implementation.
Saturday, April 15, 2006 6:08:37 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings | Technology

I've been meaning to blog on this for a couple weeks and got some time this weekend.  In short one of the cool things with writing a book is seeing it come out.  Wrox actually has an advantage here because you not only get your name, but your picture on the cover.

Well when I first signed up with Wrox, (a surprisingly long time ago) one of the questions they asked was would like a copy of my book in other languages? I said 'yeah', I thought it would be cool if it ever happened.  Well in the mail a couple weeks ago, I got an unexpected package - and there it was - Professional VB.NET 2003 in Chinese.  Here's the cover shot:

Yeah as you can tell I don't quite rank with Bill Evjen and Billy Hollis - I'm the 'other' Bill on the book... actually it's entirely possible that they just used the names that went with the first two pictures... and who knows if one of those sets of characters represents my name or maybe those are the names of the book translators...  still it's cool to have your book (and picture) show up in a language you don't speak.  By the way they don't redo the screen shots, so all the screen images are the same as the english version.  This is especially cool since I managed to work the names of my first neice and nephew into a couple of the screen shots.

By the way that little blue square, that apparently is from the university that is using the book in one of it's courses, here is a close up:

So to the University and students of Tsinghua, thanks and good luck in your endeavors.

Saturday, April 15, 2006 2:46:41 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Friday, April 14, 2006

One of the characteristics I find interesting is how poor most developers are when it comes to writing.  Don't get me wrong growing up English class wasn't my best area of study (although I did manage to avoid Summer school).  Also back when I was in school most people associated programming with math.  After all most software was being written for science and engineer and in college my major was Computer Science.  All of which at the time was fine, but today more then ever being a software engineer is really about Writing code - not developing algorithms and executing calculations in the computer.

Modern development with tools like .NET is about writing a solution.  XAML takes this one step further, such that the logical paths aren't even available, XAML is primarily just specifying what you want available.  Yet seemingly regardless of the implementation language most developers write poor documentation.  Now as a published author both for magazine and book, I see these two tasks as extremely similar and thus I wonder - is an unwillingness or percieved inability to document their code and project something that should be difficult for a talented software engineer.

To write code you need:  to type, need to generally put your statements in a cohesive order, follow a design, have a syntax or grammar that must be followed and have your work interpreted (either by a compiler or at runtime).

To write documentation or articles you need: to type, need to generally put your statements in a cohesive order, follow an outline/design, have a grammar or syntax that should be followed and have your work interpreted (either by an editor or by another human).

These tasks seem completely related, so why is it that some developers I've worked with in the past who are excellent at writing code can't seem to write a cohesive paragraph?  Why aren't they through design documents and functional specifications and comments building the necessary writing skills?

Friday, April 14, 2006 10:53:57 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Sunday, March 26, 2006

Being involved as an interviewer I thought I would offer a few personal (as in from me not officially from any company) tips to potential candidates everywhere.

First a note to the recruiters... Look I went through a recruiter many years ago when I got out of the Navy. I'm aware that after I interview your first candidate you are having that candidate call you and tell you what I asked and then you are using that information to brief the next candidate however:

1. Making your second candidate show up late while you wait to brief this weaker candidate is not a good plan - I may run longer then you expect on the interview and making a candidate late so there is time to brief them is just a mark against them at the start.

2. I (and others) don't ask simple questions with a right and wrong answer. The questions tend to be much more open ended - tell me about object oriented programming or web services. So prep time with our questions from the last candidate to your next candidate is pretty much wasted - just make them aware of the advice below. Of note the second candidate I interviewed did worse in my opinion then the first candidate. (Also note - none of the candidates I interviewed last week got to the important elements in my web services question.)

Fact is I don't interview with questions that you are going to prep for... I don't care what your candidate thinks their weakest attribute is ("Oh I just overwork myself to finish extra-requirements...") or if they can name 5 collection classes from .NET or some such - I want your candidate to tell me what they know.

Next for candidates - two golden rules:

1. If you put it on your resume be prepared for a question related to it! This doesn't mean a simple question it means that if you say you are an expert I will ask you expert level questions. Your resume was your intro to us and if you say you have experience on your resume, I will see if you are representing yourself appropriately. One or more candidates last week were noted as having heavily padded resumes. (BTW - don't assume the interviewer cares what .NET language you are most familiar with - one candidate last week listed C# as his/her primary language, said he/she did 50+% of their work in it - but had to be prompted with VB keywords in at least two cases... which was really silly since I'm a VB MVP and would like nothing better then to ask my questions with VB keywords and to hire VB programmers! Only a fool limits their selection of talented .NET developers based on a language preference.)

2. If you say in the interview you know something - be prepared to be asked about it. I'll ask most every candidate if they have any experience with certain technologies that might not be on their resume. I know with as heavily as people are padding resumes this is probably pointless... but sometimes it yields surprising results. For example there is the occasional candidate who will say "I know a little but not enough to really talk to that" which I can respect and will ask a simple follow up question to judge what they do know.... then there are the people who with the first question say "Yes, I've been working a with that recently/on my own time (or whatever)" who then choke when I ask a follow up question. While they don't usually make the same mistake twice - bad news, don't tell me you've used "VS2005/SharePoint etc." and then choke when I ask you about your favorite feature - that looks REALLY BAD and you are pretty much headed for Rejectville on the first attempt to snow me. The really sad part is - I don't care if you haven't worked with it, I'm just curious. You would in most cases be best off telling us flat out that you haven't worked with it then trying to pretend you have - I read your resume it wasn't listed I wasn't expecting at this point in the interview for you to know it.

Overall as a candidate expect that you will have at least one person who is a .NET expert in the room to interview and that you will face some very technically oriented questions based on the experience you list in your resume. Your interview may involve as many as four engineers depending on our availability. Be on time and dressed neatly - you don't need a suit but show up as if you were going to a client site (I may be in shorts and t-shirts but I'm not headed for a client site if I am, and for the interview you need to make me think I can send you to a client without too much supervision on proper attire.)

In general any company will hire people with all kinds of different experience levels from Junior engineers through Senior Engineers.

Oh yeah and before I forget - classic interview tips:

1. Don't argue with the interviewer - you thought technology A worked like X - interviewer says "no it works like Y". The interview is not the time to make your case - the case you will be making is your ability to work and play well with others - and you won't be getting a passing grade. If you feel you were wronged make a note and send documentation after the interview...

2. Don't tell the interviewer(s) that you are only at the interview because "your hero" works here and that you wouldn't be interested otherwise - companies aren't looking to hire fans for someone else already at the company - they are looking for engineers.

Sunday, March 26, 2006 1:17:40 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings
# Wednesday, March 15, 2006

Lets face it most of us tend to search MSDN using Google.  It's not uncommon and regardless of what we think about censorship politics etc, and although MSN Search is improving at this point old habits die hard.  So for about the past day or so I've found that some (but not all) of my Google searches into MSDN result in a page which is totally missing the formating for MSDN.  For example:

msdn2.microsoft.com/en-us/ library(d=robot)/ms173150.aspx

About the second or third time it happened I looked at the url and realized it had that (d=robot) string embedded in it.  Recognizing that search engines use 'robot' browsers to surf and index the web I removed that string from the directory hierarchy of my search result and lo and behold there was the formatted page which was human readable.

Don't know if Google isn't accounting for their robot or Microsoft has suddenly redirected robots (my suspicion) in order to better scale traffic.  But if you suddenly get an unformated MSDN page - look for the d=robot string in your url and make it go away...

Wednesday, March 15, 2006 7:36:18 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings | Technology
# Thursday, March 09, 2006

Just a quick note as I prepare for tonight's presentation to the .NET Beginners User group.  http://www.sandiegodotnet.com/SDNETUG/DesktopDefault.aspx?tabid=24

Things have been a little hecktic, since I've become an instructor for the University of California San Diego (UCSD) Extension program in addition to my day job.  Between all my recent presentations, articles and Version 5.0 I have been neglecting my posts here.  Time to get back at it in preparation for next week's MSDN WebCasts.  The ASP.NET team is doing a series showing that ASP.NET isn't a IE only technology.  I have two presentations one on Tuesday the 14th and the other on the 16th.  The program is also offering free copies of Visual Studio Standard Edition if you participate in a few of the web casts.  For more information and to sign up go here: http://ad.doubleclick.net/clk;26540614;12550611;s?http://www.learn2asp.net/campaign.aspx

Now it's time to present the .NET Framework A to Z...

Thursday, March 09, 2006 6:10:33 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings | Technology
# Friday, December 02, 2005

OK, I was prepping for next week's VS2005 launch event in Anaheim when an odd thought struck me.  I was looking at this slide where Microsoft was defining what a 'Smart Client' application is (as opposed to a Thin Client or Fat Client application) and I realized that the term "Dumb Client" really had dropped from the technical vocabulary.

Now I'm sure that there are some high school age kids that will classify 'dumb client terminal' right up there with punch cards.  I did a search for "dumb client terminal" and got a grand total of like 13 hits on google and like 3 hits of MSN Search.  The fact is the days when people would buy a terminal with a modem and connect to a server that ran programs on the server and provided a text only interface are long gone and with them this term.  By the way the definition of 'dumb client' meant that the client litterally had zero application processing locally. Only the UI bits are sent across the connection and keystrokes are sent down to the server for processing (every keystroke roundtrips on a dumb client and isn't even echoed to the screen until processed by the server.)

Now we talk about the 'thin client' - a browser or Remote Client Window (think Citrix) as the distributed solution, but even with a thin client the client has some level of processing - for example browsers have Java Script which requires a client processor.  We don't think about solutions that relied on true 'dumb client' hardware.  For example in a dumb client scenario even a solution based on Java Script would need to execute the Java Script on the mainframe server round-tripping the IO to the client. 

Citrix is the closest thing to a dumb client, but of course to run it you need a PC or other fat client capable machine, because Citrix itself is a fat client application, you need a client with processing power to run it.  Thus even the remaining dumb client emulator is a fat client.  Apparently the old 90's argument that there would be a balance between the fat - smart - thin - dumb client applications has been safely decided...  dumb clients are gone clients applications will always be at least thin clients moving forward - and with scripting even the thin clients are getting thicker so you can even see the trend line - heck most phones have more processing power then the old dumb client terminals, and even those mainframes that still run dumb client applications do so using a fat client based emulator...

Friday, December 02, 2005 4:35:13 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings | Technology
# Sunday, November 13, 2005
Time to show I do sometimes surf and that I don't only think about biking and software. One of those 'quizes' which matches your personality to some category. This one was based on Tolkien's Middle Earth. I had one question on which I was undecided... it apparently makes a difference in my result on the one answer I get:
Hobbit
but if I go with my other option (both were pretty much equal in my mind - should great deeds be remembered in tale or by renaming a street or town were my two equal choices.
Dwarvish
To which race of Middle Earth do you belong?
Fact is the second of these is probably more me today just as Merry and Pippen would not have been as true to the typical Hobbit nature and a bit more Dwarven after their adventures.
Sunday, November 13, 2005 9:42:39 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings
# Friday, September 09, 2005

One of the more annoying trends in technology and business is the buzzword.  Often times ideas which are years old are wrapped with a new buzzword and the result is a 'new' technology.  Lets take the current a current example, the XMLHTTPRequest object in Java Script.  Originally introduced with like IE5 this control allows you to make a callback from within a page, retrieve updated content for a portion of your page and then redisplay that portion of your page in the browser.  This is to say the least technology that's been around for quite a while and importantly the market has spoken.  This object although originally used for things like the Outlook Web Access client is now supported across several browsers and is used by thousands of web sites.

In today's example of buzzwords gone wild we have the new term "AJAX" or "Asynchronous Javascript And XML" implemented with... the XMLHTTPRequest object.  That's it, AJAX  means you know how to use this Javascript object to update a portion of your page after the page loads.  Yeah that's a new technology - it's revolutionizing the web if you read the blogs.  It's also be added to toolkit after toolkit, in fact even Microsoftt is in on the act with the Atlas toolkit as blogged by Scott Gu.  This kit like the others goes beyond the 'basics' of using XMLHTTPRequest and allows you to better debug some of your logic since script is notoriously difficult to debug.  On the down side it makes it easier to carry out some 'tricks' as also illustrated by Scott Gu on this other link.

The nice thing about the XMLHTTPRequest object is that it does allow for a richer user experience heck, it's almost half as good as a Windows Form... The key is as you hear about AJAX just keep in mind its not a new technology its an understanding by the IT industry that a technology introduced by Microsoft, adopted by it's competitors, still not standardized by the W3C and already in use on hundreds of web sites can provide a richer web experience.  You'll want to diig up the latest XMLHTTPRequest pages, and if you are using ASP.NET look for the initial release of the Atlas toolkit.

For the future though I'd just like to appeal to the technology world to ease up on the unnecessary buzzwords.  I could post a dozen or more links to AJAX related sites and blogs most of which aren't clear on just what AJAX is. Can't we just say what we mean without trying to apply some marketing term to cloud the issue and hide the what's really going on.  After all don't even get me started on the Web 2.0, which apparently is a term created to justify a conference to web technologies other then HTML... http://en.wikipedia.org/wiki/Web_2.0

Friday, September 09, 2005 2:12:23 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings | 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
# Wednesday, March 23, 2005

Well it's been a while since I last posted, although I did manage to upgrade my blogging software.   Today I also managed to return to an activity I did before I became the at work road warrior for the past couple years.  I set up an appointment with the San Diego Blood Bank and went in for my regular donation.  Since I'm not going to be driving half-a-world away everyday I can start giving regularly which means I can start doing regular platlet donations.

Normally when someone gives blood you go in and get stuck with a needle.  Your blood then drains into a bag until they have a pint from you.  In the bag are 'red blood cells' (RBC), Plasma and PLatelets.  Then the blood bank separates those elements out of your blood to make the various units that a Dr. or hospital uses.  Your pint of blood yields less then a full unit of RBC and then they are forced to try and mix and match to get a unit.  Not to mention that alot of times people only need plasma or platelet transfusions and they can only get a small amount of each from your pint.  In all the process takes you about 20-30 minutes and you can't donate again for like 2 or 3 months.

A more modern model is for the blood bank to hook you to a machine which will draw your blood.  The more scientific name for this is 'apheresis' but what it comes down to is that the machine has a small centrifuge that separates the 3 main components of blood and the blood bank can then take the specific units they need, either Platelets, Plasma or Red Blood Cells.  There are a couple advantages to this:

  • The blood bank takes a full unit (or units as I'll explain) of the product that you are donating. 
  • Depending on what you donate you can donate far more frequently (platelets can be donated up to every 2 weeks)
  • A platelet donation given in this manner gives as many platelets as are gotten from about 5 whole blood donations

So in my case today I donated one unit of platelets and one unit of red blood cells.  This is because it was my first time back in the system in over a year so they start with a single unit of platelets so they can determine your platlet count.  This means I can't donate again for a month, but at that point I can go back and make another platelet donation.  More importantly once they have processed this donation odds are good that since I'm relatively healthy they'll actually be able to take a double set of platelets from me.  In that case because your body can quickly replace platelets (unlike red blood cells) you can donate two units every two weeks. 

Now of course there is a cost to using the machine so the blood bank always wants to take 2 units of something when they hook you to the machine.  That's because all of the stuff that touches your blood from the tubes to the sleeve that fits in the centrifuge is disposed when you are done and that costs money, but remember they are getting 5 times the standard platelet donation.  Platelets for those of you who are unaware are critical for certain cancer patients.  For some people who aren't ready to commit to giving platelets the blood bank will take a double shot of red blood cells.  The key is that because everything is measured and you are only donating a portion of whole blood the blood bank gets two full units from your single donation (and gives credit for the same). Thus in a month when I go back if I can't give two units of platelets, I'll give a unit of platelets and a unit of plasma (since I won't be eligible to donate red blood cells again in a month).

So what's it like being hooked to the machine and how long does it take?

The old machines required 2 needles one in each arm, the new machine uses one needle.  The key is if the machine is only collecting say platelets but your blood has 3 components, how do the other two come back to you... the answer is that after your blood is separated in the centrifuge, the parts which the machine isn't keeping are mixed with an agent to keep your blood from clotting and then pumped back into your body.  The most amazing part of this experience (and I've always used single needle machines) is feeling a cool flow of 'blood' back into your arm when the machine is returning your blood.  This occurs several times, I would say that after about 40 seconds to a minutes the machine spent about 20 to 30 seconds returning a portion of blood to me before taking the next batch.

As for the time required, well today I spent 48 minutes doing my donation on the machine.  This was probably double what a regular donation would take, and excludes the time spent before the donation for the screening or after the donation having a donut.  That's pretty much common and an improvement from a couple years ago when it would take about 90 minutes to donate platelets.  All told a small price to pay for a procedure that directly helps cancer and chemotherapy patients.  As a cyclist who has a yellow Livestrong band, I consider this the ideal way to help in the fight against cancer.  Those that know me know that I've lost both my Father and Sister to cancer (Esophageal and Melanoma).

There are many people who give blood to get free blood tests, first let me say please don't and more importantly don't offer to participate in something like this unless you can get through the screening process and apply the 'use my blood' sticker to your form.

 

Wednesday, March 23, 2005 9:17:30 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
About the Nerd | Musings
# Tuesday, February 15, 2005
A quick note on a couple of the little changes re:Virtual Machines
Tuesday, February 15, 2005 12:52:46 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings | Technology
# Friday, January 28, 2005
The effect of 100% travel on my life...
Friday, January 28, 2005 10:43:30 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings
I hate it when that happens
Friday, January 28, 2005 10:00:02 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings
Today's discussion on how an obstructionist impacts everyone on a project
Friday, January 28, 2005 7:37:30 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] -
Musings | Technology
Archive
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910
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 2010
Bill Sheldon
Sign In
All Content © 2010, Bill Sheldon