Public musings, often on software development RSS 2.0
# 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
# Monday, May 21, 2007

Last Friday Microsoft announced a new product family under the heading Popfly.  Popfly leverages the recently announced Silverlight technology.  Silverlight allows you to create interactive media style applications for the web.  Popfly is focused on taking items such as Silverlight applications or other existing web contact and pulling these individual resources together to form larger applications.

The basic idea is to create "Mashups", what's a Mashup, well in short in terms of Web applications, a mashup is a web page which combines content from multiple sources.  The terms been around long enough for publishers like WROX to actually create books on the practice (such as this one on using Flickr: Mashups for Flickr).  Currently however, to create these technologies you are essentially working from scratch.

Popfly is a set of extensions for Visual Studio as well as a Live Spaces area to allow you to really start creating Mashups in a more drag and drop fashion.  The basics of the tool are available at http://www.popfly.com and for additional resources I suggest going to this blog entry from Adam Nathan and checking out the demonstration video he links to: http://blogs.msdn.com/adam_nathan/archive/2007/05/18/yes-i-m-on-the-microsoft-popfly-team.aspx

It's going to allow many more people to create sites with a great deal more interactivity.  It's still in Alpha and you have to apply to participate on the Popfly site but it definitely looks cool.

Monday, May 21, 2007 12:59:45 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Technology
# 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
# Sunday, May 13, 2007

The ride was yesterday.  Thankfully it was a beautiful day in the low 70's.  The ride left from Cuyamaca College.  It took me till a little after 12, with 3 rest stops, 1 stop to aid another cyclist and later a flat tire of my own.  Overall my average speed was 13.1 mph which was passable.  I was once again able to show the value of riding a triple (haven't tried one of the new compact doubles).  To put it in comparison my 13.1 average speed was .8 mph slower then I did in 2005, when it was in the 90's and there were issues with heat.  But that takes care of next year and next year (unless they move the location) I'll just have to do better.

BTW, the best part of the ride actually came after I finished.  I ran into someone who I had suggested try out the ride.  He had done the 30 mile route and had a great time.

Sunday, May 13, 2007 8:28:50 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Cycling
# Monday, April 23, 2007

I'm planning to teach the Spring quarter's edition of Visual Basic II.  The class is designed to pick up for students who have been through an introductory .NET Framework class and an initial Programming with Visual Basic I class.  Previously the class has focused on .NET 2.0 but with the recently released .NET 3.0 now available we'll be spending some of the additional class time looking at things like XAML, WPF, WF and LINQ (part of the .NET 3.5 feature set).  Additionally for those interested in handling existing VB6 code we'll be talking about the Visual Basic Power Packs which allow you to interoperate between Visual Basic 6 and Visual Basic .NET code within your existing application.  My goal is to ensure that students completing this class have an  understanding not only where .NET is today and how to work with Visual Basic - but where Visual Basic and .NET are going and how to be positioned so that what happened with Visual Basic 6 doesn't again happen to those working in Visual Basic.

The class can be registered for through UCSD at:

http://extension.ucsd.edu/studyarea/index.cfm?vAction=singleCourse&vCourse=CSE-40616&vStudyAreaId=14

Monday, April 23, 2007 9:28:55 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
.NET | Technology | Visual Basic
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