Thursday, May 24, 2007

I'm really looking forward to Tech·Ed, not just for the seminars but also for the networking opportunities.

 One of these networking opportunities I'm really beginning to look forward to is the Party with Palermo on the 3rd.  I've been told it's a must-attend event. 

Unfortunately, it appears that my favorite .NET speaker, Scott Hanselman, isn't going to be able to make it to either the party or even any of the Tech·Ed conference.  I'm very sorry to hear that, but on the upside, it means I'll get the opportunity to hear some other speakers that may be new to me.

posted on Thursday, May 24, 2007 7:12:21 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]
 Wednesday, April 18, 2007

As anybody who works with me will tell you, I'm a big fan of Corillian.  Our online banking system at Commerce is built on their platform, and much of my life revolves around that platform and its accompanying development tools.  I'm especially a fan of Corillian's Chief Software Architect, Scott Hanselman, but at a recent conference I got to chat with another highly-respected architect at Corillian, Patrick Cauldwell.

Patrick has been working on a project using a security architecture called AzMan.  When he recently had difficulty navigating a technical hurdle, I made a suggestion that Patrick ultimately used as a basis for resolving the issue.

I couldn't be happier that, in some small way, I got to influence the design of a product that I will likely be using every day.  How often does one get to say that?

Thank you for giving me that opportunity, Patrick!

posted on Thursday, April 19, 2007 1:43:23 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]
 Tuesday, April 03, 2007

A coworker sent me a link from lifehack.org talking about the possible obsolescence of the hard drive and software.

Personally, that school of thought was what made me finally settle on Gmail, Google Reader, Google Personalized Homepage, and Google Calendar.  I haven’t yet made the leap to Google Docs & Spreadsheets (and, if rumors are to be believed, Presently).  Reason being, the only time I use a word processor at home is when I’m writing a snail-mail letter, usually to complain about something.  While Google Docs has an “export to PDF” feature that provides an otherwise decent printable copy, they don’t (yet) give you any customization options on the print format (portrait v. landscape, margins, etc.).  If Google Docs would give me that, my home office software suite would be completely online.  Until then, I’ll keep using OpenOffice.org.

And where's my online version of Quicken or MS Money?  I like my personal finance manager, but I have yet to see a compelling online replacement.  Sure, there's Mvelopes, but I tried it and didn't like it.  Get me a good online PFM that integrates with all the OFX-based data sources Quicken can, and offers integrated online bill-pay with balance forecasting, and I'm there.  Charge me $5 a month if you want.  I'll pay it.

Even if I were to move all of my day-to-day tasks online, I'd still never be able to call the hard drive obsolete.  I've got way too much digital music, video, and photos that I'm not willing to share with the world, nor am I willing to wait for it to upload/download in huge chunks.  No, I'll keep buying more and more storage for these things, and I'll keep paying Mozy $5 a month to back them up.  Digital media will continue to drive me to buy more storage, even in a world where you could, at least theoretically, offload it online somewhere.

Then there are development tools.  If you're a .NET developer, you're pretty well tied in to Visual Studio, or perhaps SharpDevelop.  I don't see either of these tools going web-based anytime soon.

So I can't move my whole life online, but can I at least carry a large part of it with me?  Lately, I’ve been toying a lot with the notion of carrying my life on a USB drive.  Of course, the obvious solution is the PortableApps suite, but that doesn't get me anything the Google App suite doesn't already.  MojoPac (a virtual desktop that leverages the host Windows OS as its own OS) sounds closer to ideal, but there are application compatibility concerns.  Can I be sure it'll work with all my apps?  So far, the most appealing option is to get a big-ass USB drive and build a VHD with everything I need, and then run the VHD in Virtual PC on whatever system I'm using.  The downside to that, assuming the owner of the PC will let me install Virtual PC, is performance, although it's less of an issue these days thanks to Moore's Law.

But then again, when I've got Remote Desktop Connection, does it really matter?

(Side note: Scott Hanselman did a podcast with Gina Trapani of LifeHacker.com a few months ago.  If you dig life hacking, it's worth a listen!)

posted on Tuesday, April 03, 2007 6:46:24 PM (Central Daylight Time, UTC-05:00)  #    Comments [2]
 Monday, April 02, 2007

I couldn't resist sharing this, even if it does make me a bigger nerd at work than I already am...

Star Trek vs. Star Wars

posted on Tuesday, April 03, 2007 5:32:14 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]

Hey, Jeff Atwood latched onto the same metaphor I did - Cockburn's "rock climbing" metaphor.

I really love this metaphor for all the same reasons as Jeff.  What I'm trying to figure out is if "programming as a game" - e.g., Cockburn's "Crystal" approach, can fit within a pre-existing methodolgy.

Here at Commerce, the overall online banking team, that is, QA, development, and project management, already use a methodology based very loosely on Scrum.  I can't expect QA and project management to embrace anything new, especially since so much work has gone into acceptance of the current methodology.  But can the developers adopt this new methodology and integrate it into the existing one?

posted on Monday, April 02, 2007 6:14:03 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]

I've sometimes marveled at how different the code I write today looks when compared to the code I wrote just a few years ago.  Apparently I'm not alone - Scott Hanselman just posted about rescuing his C#-based TinyOS from the doom of GotDotNet, commenting that he was "shocked and offended" with himself after review the code a few years later.  Man, I know that feeling.  Here's the comment I posted to Scott:

Hey Scott, nice new theme! I apparently missed the rollout of it since I usually read everything via my feed reader.

I have to take the bait on your comment about telling you how our five year old code looks. Five years ago, I would have been at Commerce Bank for a little over a year, and hoo-boy, did I write some embarrassingly bad classic ASP and VB in that era. Those first couple years at Commerce were a crash course for me in a lot of things - web technology, pseudo-OOP (realizing that we're talking about VB 6), COM, enterprise development, etc. Five years later, I can say with confidence that this code is amazingly bad; Especially anything where I tried to use XML for no reason other than because it's what the cool kids were doing at the time. Any of the code I wrote in that timeframe should be treated as hazardous material and properly disposed of. Thankfully, the programmers who maintain that application today have long since replaced most of my offending code - except the nifty little VB app I wrote to bridge our contact center softphones to our ASP-based web app via DDE.

Prior to coming to Commerce, my start was as a subcontractor for an independent consultant who had a thing for XBase languages. When I started as his apprentice at the age of 12, it was Clipper. Then FoxPro 2.6 for Windows. Then Visual FoxPro 3.0, 5.0, and, by the time I graduated from college and went to work for him full time, Visual FoxPro 6.0. If I were to look around my home office today, I could probably find some code left over from that bygone era, but that begs the question: Why on Earth would I want to? :)

posted on Monday, April 02, 2007 5:27:44 PM (Central Daylight Time, UTC-05:00)  #    Comments [4]
 Sunday, April 01, 2007

This is old news to a lot of people, but it's a useful tidbit that I'm sure a lot of people could use.

If you're trying to install a Firefox extension and Firefox tells you that it can't install the extension because your version of Firefox doesn't support it, there's a possibility it'll still work.  You just need to trick Firefox into thinking it's compatible.  Note:  You try this at your own risk.  If you hose Firefox, your computer, and/or your relationship with your significant other, I don't want to hear about it.

Save the extension's .xpi file to your local machine (right-click and "save link as...").  Rename the file with a .zip extension.  Open the zip file and extract install.rdf.  Open it in your text/xml editor of choice.  Look for the tags em:minVersion and em:maxVersion and edit as appropriate for your version of Firefox.  Save install.rdf and add it back to the zip file, replacing the original.  Rename the zip file to its original filename with the .xpi extension.  In Firefox, click "File|Open File..." and open the .xpi file.  It should install now.

If the extension installed but doesn't work, it probably genuinely isn't compatible.  Uninstall the extension.

I've had cases where Firefox complained about being unable to install the extension because of an invalid signature.  If this occurs, delete the META-INF folder from the zip file.  That folder is what contains the signature information.

Good luck!

posted on Monday, April 02, 2007 5:29:34 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]
 Friday, March 30, 2007

Somehow, I've failed to add Jeff Atwood to my blogroll before today.  That seems odd to me, since I'm a huge Scott Hanselman fan, and Scott gives mad props to Jeff all the time, jokingly referring to him as his Nemesis.  (Side note:  I don't know that Nemesis is the mythological character I would choose, Scott.  I think him being Pollux to your Castor is more appropriate, but I digress...)

So I added Jeff to my blogroll today, and the very first post to come across my reader is a discussion on Alistair Cockburn's "Software Development as a Cooperative Game" presentation.  This is not light reading, but it is fascinating.

The basic premise is that software development can be viewed as an ongoing, cooperative game, not unlike rock climbing.  Other than the obvious implications of making your work more meaningful than "I do this to get paid," I think this model provides a lot of value, not just in making your own career more rewarding, but also in building a team that can trust each other and build on each others' strengths and weaknesses.

As we've worked to build our online banking development team at Commerce, we've struggled a bit with team dynamics.  Basically, what it comes down to is, as I assert my role as a technical lead, I sometimes have a tendency to be an impatient condescending jerk.  Having identified that as my weakness, and applying the "rock climbing" metaphor, it should be easier for me to understand and curb that behavior.  We can't all climb rock walls at the same speed, or using the same tools, or over the same paths.  Condescending to someone isn't going to help them traverse the wall any quicker;  It's just going to make them want to throw me off the cliff.

posted on Saturday, March 31, 2007 1:27:14 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]
 Sunday, March 18, 2007

I decided to go ahead and purchase my own domain name.  Welcome to CamTheGeek.com!

posted on Sunday, March 18, 2007 8:46:41 AM (Central Daylight Time, UTC-05:00)  #    Comments [1]
 Friday, March 02, 2007

I found an issue with the DVR that I find pretty irritating.  I STILL prefer Dish over Time Warner, contrary to the implications at the end of this letter.  Maybe 6.8/10 now...

The following is an email I sent Dish Network tonight:

I've been a Dish customer for a couple of weeks now, and while I'm very pleased with your signal and programming choices, I've got to express my dissatisfaction with your HD DVR, the ViP622.

I previously emailed Dish Tech Support regarding a scenario in which I would want to be able to record new episodes of a show with a high priority, and reruns of the same show with a lower priority. They replied that this was not possible with the current software. I decided that I liked the ViP 622 enough that I could live with this.

I've now discovered a larger, much more serious issue that really vexes me. Apparently, the DVR has a maximum number of 288 scheduled events. Between 20 event timers (most of which are set for "new episode") and 5 dish passes, I've currently got 80 events scheduled that result in a recording and 208 skipped events. This puts me at 288 events and I can add no more timers.

I've used a good DVR (DirecTV's old TiVo line), and I've used a downright awful DVR (Time Warner's SA 8300HD). Neither DVR imposed this kind of arbitrary limitation. How on earth have you guys been distributing this thing for over a year without having fixed this issue?

I'm very, very torn. On the one hand, I love your channel lineup, your customer service, your signal quality, and, for the most part, your DVR. On the other hand, these two issues with your DVR are such fundamental flaws, totally counterintuitive to the core benefits of even USING a DVR, that I am seriously wishing I had done more research before becoming a Dish subscriber. Had I known about these limitations, I would have preferred to stay with Time Warner's otherwise inferior product.

Please, please, PLEASE tell me you have plans to update the DVR software to address these limitations. I want to love Dish Network, but right now, I'm just frustrated and wishing I'd stayed with cable.

UPDATE - 3/3/2007

It looks like relief is on the way!  Here's Dish's response...

Thank you for your e-mail. We are aware of the issue with this receiver. Our engineers are working on the problem. It will be corrected in a software update which should increase the amount of events available. Unfortunately, there is not a way for us to know the status of their work. Please remember to turn off your receiver when you are not watching TV, so that it can receive the update when it becomes available.

So they promise that it will be corrected.  Better yet, the people in the know have confirmed that it's going to happen sooner rather than later!  This rocks!!!

posted on Saturday, March 03, 2007 5:07:24 AM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Saturday, February 24, 2007

We've had our Dish Network HD DVR for two days now, and overall, we're very happy with it.  It's very, very good, but it's not quite perfect.  Here are our observations so far.

The Good

I've got a whole list of good things to say.

  • Dish has way more HD channels than Time Warner KC.  We've spent 80% of our time with National Geographic HD, which wasn't available on Time Warner.
  • The DVR is reliable - Which is a huge advantage over Time Warner.
  • No crappy analog channels.  Time Warner KC still has any channel below 99 on an analog signal, and it was very noticeable, and very sucky.
  • The user interface is very friendly and very aesthetically pleasing.
  • On-screen caller ID that works with any telephone service (we use Vonage).  Time Warner's caller ID only works with Time Warner's telephone service.
  • The price is comparable to Time Warner.
  • Built-in home distribution.  This is the slickest feature.  It actually has two output displays - The primary, which is high definition, and the secondary, which is a standard definition signal that it broadcasts to the rest of our house over the existing coax.  It comes with a second remote that operates via a UHF signal, so it doesn't have to be used line-of-sight.  This is great for our bedroom TV, a 32" standard TV that was our former living room TV.  It has all the channels and DVR stored programming available to it, and can watch any of it independently of what the primary TV is watching.  THIS. IS. AWESOME.  Connor can watch this morning's Blue's Clues in the bedroom while we watch last night's Heroes in the living room, or vice-versa.  And all of our high-def content is available either room, because it actually downscales HD programming for SD.  Wow.

The Bad

I found one issue worth complaining about.  I could do it on my old Series2 DirecTiVo, and I could do it on Time Warner's craptacular DVR, but I can't do it on Dish's DVR.  It's a little complicated, so bear with me...

Say I set up an Event Timer to record new episodes of a show, say, The Simpsons, on the local Fox affiliate and assign it a high priority, so I always pick up new episodes of The Simpsons.  Great.

Now say I set up a Dish Pass (equivalent to TiVo's wishlist, basically a way to tell the DVR to keep an eye out for something you like) for The Simpsons, any time, any channel.  I want to pick up Simpsons reruns on the local Fox affiliate as well as in syndication.  I assign this a low priority because I don't want to give reruns any priority over new programming.

At this point, the Dish DVR will accept the new Dish Pass, but it will not schedule any recordings based on that, and it will not allow me to add ANY additional Event Timers or Dish Passes, claiming that I have reached the maximum number of timers and that I need to delete some before I can add any more.  This error is wrong, though.  If I delete that additional "Simpsons" Dish Pass, I can add more Dish Passes and Event Timers to my heart's content. 

I'm aware I could just set a Dish Pass to record the Simpsons on any channel at any time, but the point is that I want to give new episodes the priority, as well as set them to "preserve" (not delete automatically).  I've tried several permutations of this with Dish Passes and Event Timers, and it's always the same result.  The best I can figure is that it has something to do with trying to have multiple event timers/Dish Passes with the same name - It's as if the name has to be unique.  I have a hypothesis that I can work around this with manual timers (e.g., telling the DVR to record a specific channel at a specific time), but that's a pain.

I emailed Dish Network about this, but I imagine they won't thoroughly read what I wrote and will just send me a canned response to delete some event timers.  We'll see.  It's certainly not a deal breaker.  I probably waste too much time on reruns anyway.

(Note:  The Simpsons is just one example of a show I want to do this with.  Others include South Park, Family Guy, and Battlestar Galactica.)

The Ugly

  • The local NBC affiliate, KSHB 41, has some kind of an issue with their HD feed to Dish.  The audio sounds like it's in a tin can, like someone turned on "stadium" mode on their receiver.  And I've heard of the video stream having some artifact issues.
  • I wish there was a clock on the front.  That's about the only thing I really miss about Time Warner's DVR.



Update - 2/25/2007

I got a reply from Dish Network's tech support:

Dear Mr. Soper,

Thank you for your e-mail. We are aware of the issue with this receiver. It will not set up two different types of timers for the same show. It will either setup a dish pass, or a normal timer. To record all episodes at two different priorities is not available at this time.

We are always looking for ways to improve our service, and we appreciate your input. We will forward your comments and concerns to the proper department; however, we can not promise this will be implemented. Thank you again for choosing Dish Network and please feel free to contact us again with any future concerns.

I'm very pleased that someone actually read and understood what I wrote, but it doesn't appear that there's a way to do what I'm asking.  I still give this DVR high marks...  Say, 8 out of 10.

posted on Saturday, February 24, 2007 11:20:30 PM (Central Standard Time, UTC-06:00)  #    Comments [0]