February 15, 2008

ReSharper 4.0 EAP is out

This is the best news I've heard yet today (I have a low barrier for that sort of thing anyway).

ReSharper 4.0 EAP has been released.

http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+4.0+Nightly+Builds

Why am I happy with this: ReSharper 4.0 adds support for C# 3.0. (glee!)

February 12, 2008

Code Trip Coming to Boise

Microsoft seems to have a roving Programmer Party on wheels.  They are calling it "Code Trip".  As it so happens, they are going to be in Boise for our Code Camp on March 8 (I wonder if any of them will present some sessions?  hmmmm).  I guess this is Microsoft's way of taking MIX on the road and spreading the love.

Anyway, looks like a fun trip.

Here are a list of guys going along:

January 30, 2008

TeamCity Tryout

I'm doing a gig for a local company (a non-software company) that is trying to build a development team.  My job is two-fold: 1. help them get some software up and started so they have something to build on, 2. train their current staff (consisting of one developer) on good patterns and practices for software development. 

The project is interesting and the people are pleasant, not a bad gig at all.  So far I'm manage to put source control in place (SubVersion via the VisualSVN Server -- they really have the best install around for windows), they are getting on board with TDD, I'm slowly working in User Stories into their process (by osmosis really), and I decided to try to go the extra mile and get a bit of Continuous Integration going.

In the past I would have hit up CruiseControl, struggled for a few days, swore, kicked a couple of dogs, and then get everything working.  This time I thought I might be able to spare the dog by trying TeamCity from JetBrains.  Result, the dog got an extra treat this week. 

I got the entire friggen process up and working in about three hours.  And that was on the first try!   Most of that time was spend fixing dependency issue in the projects (which were my fault, not TeamCity's -- that is why you want one of these things after all). 

The first process I set up was to create a test build.  The test build did these things:

  1. Monitor Subversion to changes in my project, if there are changes, downloaded them and proceed to step 2.  Otherwise: repeat step 1.
  2. Compile all the source.  I chose to build the project from the solution file.  If this were an internal project I might use a Nant script, but considering the client I just stuck with the solution file.
  3. Run all unit tests. Report any failures.
  4. Let me know all is well.

For #4, I had to log onto the TeamCity web site (created by the install), and install the client task tray application (similar to CC.Tray for CruiseControl really).  The only annoyance with any of the tools is that the TeamCity tray application doesn't make any noise, and it isn't very configurable (like CCTray is).

But, for an extra bonus step I set up a second build to recreated the test web site on command.  This second build took 30 minutes.  The TeamCity's configuration web site has an option to copy an existing build.  I made a few modifications and I was good to go.   The two modifications were: change the build directory, and no to monitor subversion for changes.  I want this build to be kicked off manually.

So now, the only part of the process that is not automated is the move to production.  I have to make web.config changes for that (meaning I have to do some custom msbuild work to swap connection strings).  But all in all I am very happy with where things are at considering the amount of time spent.

CruiseControl might be more configurable and have a better tool set, and for a different project on a different team, I might go down that road again.  But for an inexperienced team, or for a project with non-demanding build requirements, TeamCity is an excellent tool.

I am officially a TeamCity convert.

January 15, 2008

On-line backup hosts

OK, we all know we need to back up our data.  And we have all been told to have an off-line location for all of our data as well.  More than likely, the business we work at does just that.

But at home? Not a chance.

Heck, we are lucky to have a backup anywhere.  Maybe your lucky enough to have several computers with large hard drives and you can copy your data between them.  Or, if you are really geeky, you have an external hard drive that you can pass around. That's a good start -- but what about the off site part?  Could be that is just too much trouble. But there are answers.

Several web sites are now offering off-site backup for home users, and for not much money either. Here are some solutions:

Mozy (a user group favorite): 2 gig free, $5 a month for "Unlimited space".  Might not be unlimited, but still a good deal.

IDrive: also offers 2 gig free.  You can map a drive to it (Vista is not supported), and "Unlimited Space -- 150 gig" for $50 a year (slightly cheaper than Mozy).  IDrive also supports versioning.

Carbonite: No free space, but everything else is comparable.

Of course, this blog is mainly read by developers, we want to backup our code, and there are lots of options for that.

If you don't care if someone else sees your code, things are easy and free.  The hardest consideration is do you want to store your code in Subversion, CSV, or something else.

SourceForge: the original.  Uses CVS and Subversion

Google Code: a new kid on the block, but very popular with many open source .Net projects. Uses Subversion.

Tigris: these guys make Subversion -- and offer space.  They also list a number of hosting site.

CodePlex: Microsoft sponsored site for open source projects.  You will find the AJAX Toolkit, and the Patterns and Practices stuff there.  I believe they use Team Systems for source control. Interestingly, you will also see many other open source libraries with listings there, but the code is actually on Google Code (because CodePlex doesn't support Subversion).

Commercial Hosting.  Lots of options here as well, and lots of price ranges.  Just Google "subversion hosting" and you will see a ton of options.  Price is one consideration, but also look for bug tracking while you are there.  Here are a few options:

SvnRepository: Starts at $4 month, includes 500MB and Trac for bug reporting.

CVSDude: Starts at $5 month, includes 100MB.  They also have Trac and Bugzilla, but you have to pay more.

OK, there are a few options, but not a definitive list by any stretch.  If I left something out, please leave a comment and I'll update the post.

December 24, 2007

Annika Joyce Humility Brandsma


Born today (Dec 24, 2007) at 11:33 am. 7 lbs 9 oz, 20.5 inches long.

Both mommy and baby are doing fine.
Posted by Picasa

December 21, 2007

Confessions of a bad web developer

I've been moonlighting with the ASP.Net MVC framework lately.  Not a lot, just enough to get acquainted for right now.  Yesterday I had my "Road to Damascus" incident.  I don't know HTML.

OK, not completely true, I know lots of html tags, table, ul, div, p, a, etc; and I know how to use them without looking things up.  More importantly, I know a ton of asp.net controls.  What I don't know, specifically, is how they all work. 

Like the form tag.  I know every Asp.Net page I have ever made has had one of them (and only one, at least as of .Net 1.1 that is all you were allowed).  But I don't remember how to use it any more.  How to read data from it, pass values from one page to the next.  I used to, did it a few times in fact.  Then came Asp.Net, and I haven't looked back.

Have I written JavaScript during this time?  Sort of.  If you count copying code from Google (and testing it of course).  Over the years I have large blocks of Googled JavaScript code in existing projects that I've move from page to page.  Cut-and-paste is a type of reuse...right?  And lately, when my JavaScript requirements have not been Google-able, JQuery has become my savior (more posts on that soon).  But I haven't written a JavaScript object, Prototype, or any such tomfoolery since Netscape 4.8.

And just to clarify.  I once wrote my own tree control in JavaScript.  Or, I wrote one for Netscape 4.04, 4.08, 4.5, 4.75, 4.8, and IE.  I never thought I could hate a language until Netscape.  Netscape killed any love of JavaScript for me.

But now with Ajax on the scene I can't do without it anymore.  And as cool as the Asp.Net Ajax Library is and all of the things that the control toolkit can do for you: without a bit of JavaScript muscle, it just isn't going to work for you.  Take a look at the Google Maps API and tell me you aren't thinking of things that could be done with it.  But it ain't going no where without some JavaScript know-how.

CSS I have come to terms with.  I know the difference between .tag and #tag.  I've written a hover or two.  But there are still unknowns there as well.  I still visit w3schools regularly, and spend way too much time with FireBug and Fiddler.  And CssZenGarden -- that is just beyond me right now.

But even in Asp.Net.  How does a post back work? How is it that a button click is hooked up to an event handler? I'm a firm believer that their is no "magic" in programming.  Post back is magic to me.   Maybe once years ago I knew, but not anymore.

But things like: if you have a table, and every row has a check box on it, on the server side, how do you know which check box is which?  Heck, how do I figure that out on the client side with JavaScript?  The magic is ViewState, I know.  But...

That really is the beauty of WebForms.  It provides a nice insulating coat that insulates you from all of the goo that is html and JavaScript.  ViewState is my friend.  But what does this have to do with Asp.Net MVC?  Absolutely everything.

Asp.Net is a stripped down version of web development with .Net.  ViewState: gone.  asp:Button: hope you are familiar with submit.  The cozy jacket is gone and has been replaced with a wind breaker.  All those old techniques that we threw away with our last ASP page needs to be resurrected.

Being how I already live in a cold climate, I know that the biggest part of working in cold weather is to acclimated to the temperature.  Part of it as well, is knowing that you have to work in the cold climate.  So this isn't time to put things off.  Spring is still a ways off.  So, for Asp.Net WebForms developers, that means re-familiarizing yourself with a few technologies that we all thought we didn't need to know that well:

  • XHML
  • CSS
  • JavaScript
  • JASN
  • JQuery
  • Asp.Net Ajax framework

I'm not going to specify particular books.  I don't have time for that, and you can search Amazon as well as I can.  Actually, I bought a couple of these books for $1 at Hastings near my house.  Worth every cent.

Also worth noting what is not on my list: XML.  The language we thought was the lingua franca of the web.  I've had enough XML, and the Asp.Net Ajax library talks via JASN (which is much smaller).   So XML is out for me.  And that is fine, I think, there is enough to learn as is.

December 20, 2007

ReSharper 3.1 Released

I am a ReSharper addict.  I admit it.  I have this habit of upgrading my ReSharper every time JetBrains releases a new version.

Speaking of which: ReSharper 3.1 is out and ready for download.

Or you can read the release notes.

But, if you are hoping this will add C# 3.0 support...it doesn't.  That is supposed to be next month, in ReSharper 4.0.  BTW, there is a small note on the web site, if you buy ReSharper 3.0 now, you will get a free upgrade to ReSharper 4.0.

November 14, 2007

There is no tooth fairy

I don't claim to have a normal house.  We don't strive to be different, but normal just doesn't always happen in our place.

One such oddity is the tooth fairy.  Our kids don't believe in Santa Claus, the Easter Bunny, or Halloween...but the tooth fairy is another matter.  You don't just mess with the tooth fairy.

This has now come to a head with our six year old Lily loosing teeth faster than an old school hockey player at a triple header.  She just lost one tooth yesterday, and three others are currently loose and ready to go at any time.  Should make for a fun Christmas this year.

Now combine that with two parents that are a bit frazzled right now.  The wife is due in a month, and dad is busy dealing with mom being due in a month -- plus Thanksgiving, plus Christmas (minus Santa Claus) -- the Tooth Fairy has fallen behind in its duties.

At this point, Lily figured it out.  Luckily she is a good sport, and still willing to play along.  For the third night in a row, her tooth will be in a zip lock bag, underneath her pillow.

Hopefully the tooth fairy doesn't need further directions than that.

November 12, 2007

Joining Elegant Code

After three years on my own domain (going strong since Aug 2004), I'm moving my technical content to ElegantCode.com, joining my friends David Starr, Jason Grundy, and David Betts.

Note: I'm only moving my technical content to ElegantCode, which gives me four blogs to keep up to date.  I need to do some content separation just to keep things straight.  So here it goes:

Actually, I do think this is a good thing, put in a little bit of virtual separation for all of my mental parts.  Plus, as a side benefit, it will make my blog a whole lot less confusing to the rest of my family.

Also, for the of my friends and family: join FaceBook and find me there.

November 05, 2007

Visual Studio 2008 and .Net 3.5 due this month

This has been making the rounds for about a week now, but Visual Studio 2008 and .Net 3.4 is expected to be released this month (November 2007).
More info below:
http://blogs.msdn.com/somasegar/archive/2007/11/05/teched-developer-in-europe.aspx
http://msdn2.microsoft.com/en-us/vstudio/products/default.aspx
Also there is a rumor that the Microsoft ASP.Net MVC framework will also be released REAL SOON (meaning: when they feel like it, but probably after the Visual Studio 2008 launch -- and they will probably change the name).
For those of you who don't know: the Asp.Net MVC Framework is a MonoRail/Ruby On Rails-esk web development framework for Asp.Net. It does not use WinForms at all. This actually has a lot of people really excited right now. Phil Haack and Rob Conery both left their current jobs for Microsoft just so they could help work on this.
Haack must be the single greatest last name for a developer....
Scott Hanselman (now a blue badge Microsofty) has two videos from the ALT.NET conference last month with Scott Guthrie and himself.
http://www.hanselman.com/blog/ScottGuMVCPresentationAndScottHaScreencastFromALTNETConference.aspx