Public musings, often on software development RSS 2.0
# 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
# Tuesday, August 14, 2007

So in the past I've written articles that talk about how the web as an application model is peaking for certain types of application models.  Specifically that while the 'reach' of web applications - ie. the way that even now I can be sitting in a Del Taco in Riverside (where it is 108 degrees farenheit) updating my blog just prior to heading over for a user group meeting, provide a powerful paradigm.  This isn't going to disappear and isn't to be discounted, but it isn't enough.  New technologies such as Silverlight and WPF will help extend the life of the web as a UI, but the reality is, web services allow me to use a rich client vs. a web site for editing my comments and then just submit the data to the server. 

Most enterprise  applications (as opposed to public facing) continue to be rich client applications. In the future there will still be many such applications which are written from the ground up, expecially those which are focused more on sizzle then steak.  But I feel that the new paradigm for actual business applications will be to leverage someone else's User Interface for much of the framework with a minimalist custom set of controls.  A couple years ago the common 'UI design pattern' we heard from smart client customers was for them to ask for a user interface based on Outlook.  This is still the case but things are shifting, you see instead of asking for a client based on Outlook - instead we are starting with Outlook as the client and just customizing it for the needs of the organization.

Visual Studio Tools for Office (VSTO) have been around since .NET 1.x but as I have been informed many times - haven't really taken off as some expect.  However, like so many things, until the rest of the infrastructure to support a technology is in place even a great tool gets only limited use.  In the past VSTO has primarily focused on the document.  Specifically it started as a replacement for VBA and the document centric customizations of VBA and Macros... but with Office 2007 and Visual Studio 2008 (Orcas) - well this isn't the same model.

An OBA is an Office Business Application, in short it is an architectural model which leverages the full Office System to implement custom business solutions.  The first key enabling technology is of course SharePoint aka Microsoft Office SharePoint Server 2007.  I'm not a big fan of SharePoint as a development platform, but as a host for documents and document templates it is unparalleled.  By marrying key document templates with a web site you gain the benefit of a web application with a rich client.  I'll post more in the future on some of the key enabling technologies which can then be built on this - think about Add-In's and custom message contents but the key is now that we have a solid server combined with a host of new tools the OBA model leveraging VSTO is a very viable solution framework.

Don't think so - well take a close look at Team System.  Team Explorer is in part an OBA, yes there is a 'custom' add in for Visual Studio which isn't part of Office - however, I know for a fact that when I start working with tasks, work items, bugs etc. in TFS I do it all with Excel.  Why because Team Explorer's custom interface pieces aren't natural to me, but the add-ins for Excel and the way that the forms are hosted on SharePoint and retrieve and update data from SQL Server provide me a user interface which is effective.  So when you are thinking about how to engineer that next big smart client application don't discount the value of being able to leverage the Office System as the plumbing for much of what you'll do.

Tonight I'll be presenting on a demo OBA solution which InterKnowlogy helped Microsoft develop to highlight some of the new features of VSTO 2008.  This is a powerful architecture and I'm expecting to do additional presentations similar to the one I'm doing tonight for the Inland Empire .NET User Group.  I grabbed a screen shot of their homepage describing tonight's presentation iedotnetug_org.JPG (172.5 KB) but feel free to visit their site (http://www.iedotnetug.org) or stop in for a meeting in the future. 
Tuesday, August 14, 2007 5:22:50 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
.NET | Architecture | Technology | VSTO
# 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
# Monday, July 16, 2007

One of the challenges of writing both books and articles is that by the time the item is published, the technology world has moved on.  It’s similar for other items such as training materials and testing materials although I have less to do with such materials.

My most recent article for SQL Server magazine, a product comparison, was written this Spring and is part of the July issue of SQL Server magazine.  The article is also available online at: http://www.sqlmag.com/Articles/Index.cfm?ArticleID=96080&DisplayTab=Article  (Subscription Required (currently))

The focus of the article is to look at two products for working with XML: XMLSpy 2007 and Stylus Studio 2007 XML.  I found both tools to be very capable and obviously the point of the article is to explain why.  So when you are thinking about looking at tools one option is to check out my review so you can match your needs to the tool which will best fit those needs.

 Of note since for the purposes of the magazine having people check out the vendors which support the magazine is important here are links to the actual vendors:

·         http://www.altova.com/products/xmlspy/xml_editor.html

·         http://www.stylusstudio.com/

One item to note is of course that after the article was complete and on it’s way to the printer, Altova let me know that they were releasing updates to their current tool set.  The new R3 (Release 3) upgrade to the 2007 version of their product includes several new features including support for the Microsoft Office 2007 Open XML standard.   Since my most recent projects have been VSTO related this is a feature I’m looking forward to really checking out.  There are several other new features in this update including better database functionality (including support for IBM's DB2 9 pureXML data server) and CSS support.  You can check out the announcement of the features from the Altova web site at: http://www.altova.com/v2007r3_053007.html

Monday, July 16, 2007 10:23:29 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Technology
# Thursday, July 12, 2007

So I'm sitting there watching the tour again this evening (- yes "Nerd" is in the blog's title...) trying to catch the key words that I couldn't remember for the Fly to the Finish game that Versus, Bicycling, and Saab are hosting. 

Up comes Bob Roll's (http://www.bobroll.com/) question of the night which essentially is: Will there ever be a Tour of America?  As is noted on the show, while there are well supported tours of both Georgia and California - there isn't one of the entire US. 

Now I'm going to paraphrase Bob here but his answer was "Yes when we run out of gas.  Until then America has Nascar."... Cycling Motivation and Nascar - However, I like your answer Bob, and I have to agree...

BTW - It was a brutal day on Le Tour - not so much because the course was brutal but because two of the overall (vs. sprint, climbing etc.) favorites, both from team Astana, had major crashes.  The first to Kloden didn't seem major but reports are he may have broken his coccyx (last bone in your spine) the second to Vinokourov looked brutal and left him with a truly nasty road rash but apparently he's also in the hospital being checked for broken bones.  Note both men finished today - but the ride by Vino after his crash to pull within 1 minute 20 seconds was inspired - let's just say that both men showed more heart in 'playing' hurt then most US professional athletes (I know if my right hip as much like raw hamburger as Vino's; I'd be on my way to the hospital - not riding up a mountain at 20+ mph.)

Thursday, July 12, 2007 11:05:39 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Cycling
# 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
# Tuesday, July 10, 2007

Every now and then it happens – you flat.  More frequently on a road bike then a mountain bike, but it happens to both at some point.  After a flat, should you patch the tube or throw it away?

As for preparation for the inevitable, well you should always carry two New tubes as spares. You should also have a ‘patch kit’ or more appropriately some ready to use preglued patches.  These are in case you flat more than twice – yes I personally have flatted 3 times on more than one occasion on my road bike (although in one case I borrowed a tube from someone else rather than patch).

When you do flat you should always take your punctured tube with your or dispose properly of it.

Thus my first rule is after clearing my tire from any debris which is poking through the tire causing the flat is to use a new tube.  Note that I specified “New” tubes earlier.  Your spare tubes should never have been previously patched. If you are using a patched tube and you flat 300yds down the road you don’t know if your patch failed or if you left debris in the tire – with a new tube you can be confident that you didn’t clear the tire correctly (and apply the appropriate expletives while changing your tire AGAIN).

Once you get back to base/home you have a damaged tube in your pocket (or are you just happy to see me :-) Which brings me back to the question of should you trash or patch it? 

Well my preference is to patch once.  Only once, because each patch introduces another potential point of failure and so I limit myself to one patch on a given tube.

Having said that for what to do when riding where does patching fit in and why?  Well the fact is that a patch introduces a new point of failure in your tire.  No not the ability of the patch itself to withstand pressure, but the glue holding the patch down.   Applying the patch on the road is risky because depending on your skill a large number of patches aren’t applied correctly to start with not to mention on the road it’s harder to tell if you’ve gotten the hole(s).  That's why you carry two spares since

Thus for me the rule of patching is: to patch a tube and place it back on the bike at home.  It doesn’t matter whether I’m swapping that good tube back out to be a spare again or if I’m replacing a worn tire with a new one.  Along with this the goal is to patch in the evening allow the patch to hold overnight (showing it was a good patch) and then do a short ride and finally leave the patch in the sun/heat.  I bring this up because I’ve repeatedly had new patches which seemed to hold, even to support me during a short ride to suddenly fail when my bike was parked in the sun.  In some cases with more traditional patches I was able to re-inflate the tire and in the process the patch had gotten a better seal – in other cases especially with a self adhering patch, the patch was dead. 

Thus I am willing to patch a tube for reuse locally and allow it to prove itself.  However, I wouldn’t patch or install a patched tube if I was preparing a new tire for use as part of a long ride or an important ride where I didn’t want to risk a failed patch flat.

Tuesday, July 10, 2007 1:36:51 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Cycling
# 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
Archive
<August 2007>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678
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