Friday, April 24, 2009

Interview with Arjan Zuidhof from Arjan's World

Like the title says, I had a little chat with Arjan Zuidhof from Arjan's World.

Arjan has a opinionated linkblog, on which he posts on a daily basis.

Here it goes..

Me: Next to blogging, what do you do for a living?
Arjan: I'm a thirty-something developer from the Netherlands working as an inhouse .NET developer in a big company, somewhere in the Randstad (western part of the country). I mainly work on projects related to customer data in the broadest sense. We pull all kinds of tricks to relate several pieces of data like names and addresses and do judgments on them based on complex business rules. Sounds dull, but it can be quite interesting. I'm looking to see if I can pick up some more ASP.NET work though, as web development is actually my secret love. So that's why in my spare time I pick up things like ASP.NET MVC.

Me: Can you give an example of a project you are working on? What is the structure, which Microsoft technologies do you use?
Arjan: Right now I'm working on a fairly large project that's in maintenance. It's a bunch of spaghetti code on which some new functionality must be added. Difficult work, but I use unit tests, refactoring, and basically the pragmatic principle of 'do not touch what does not absolutely need to change'. It's hard though to find enough time to do all this AND add additional features on customer request. But we all know that don't we? The project was originally written in .NET 2.0, using basic NET remoting to connect a Windows Forms client with a backend server. Unfortunately the project needs to be supported for a couple more years, and does not lend itself for improvement (WCF and WF come to mind here, but alas). The good thing is we work with the latest Visual Studio / TFS stack, so there's enough new stuff to explore.

Me: It must be challenging to work on legacy code. Are there any good books you've read on working with legacy code? Are there some more tips you want to share?
Arjan: I'm currently using the well known 'Working effectively with Legacy Code' by Michael Feathers. It's a biggie chock full of tips on how to get your teeth in spaghetti code and make something nice out of it. Refactoring, introducing patterns where appropriate, isolating parts of your code. It is all there. I would advice not to read it from beginning to end, but rather just dive in and read the topics that you currently need to know about. Think Michael advises this himself somewhere too.

Me: What framework do you use for your unit tests?
Arjan: We're using the default one in Visual Studio (don't they call it Team Test?), but I'm investigating nUnit, which is way nicer and more powerful.

Me: Our team is using Team Foundation as well. We are currently not making use of its full potential though. We mainly use it for Source Control. Which features of TFS do you use? Which ones do you like, which ones do you hate and which ones haven't you tried out yet but look very interesting.
Arjan: We mainly use the developer related features, since (project) managers are a bit hesitant here to put the system into good use :) That means work item / feature / bug tracking, builtin version control (which sometimes needs to be screamed at to work correctly, by the way). We're using several build definitions that deploy automatically to drop zones. That's about it I guess. There's the nice reports and all, I know, but the developers don't really need them currently to get the job done.

Me: Let's change the conversation a bit onto your blog. I think you are doing a great job, but how do you manage all that information?
Arjan: A decent feedreader of course :) At first I used Bloglines, but some time ago it had a lot of glitches and outages. It was constantly 'forgetting' your status. Then I found everyone and their mother talking about Google Reader. Of course that's the most used feed reader nowadays. And with good reason!

Jef: To get an idea. Can you tell us how many blogs you follow? And how many posts you read on average each day?
Arjan: I'm using the Reader to successfully track something slightly less than 600 feeds on a daily basis. Don't know how I manage, I just do :) Well, as a matter of fact, I do know: it's all about creating the right categories: most important feeds are always checked completely. But there's a lot of fluff, of just basic news out there which I only read when I have the time (not often), and categories that I just quickly skim for interesting topics.

How many posts a day: that's the nice thing about Google Reader, it tracks this for you in a 'Trends' section. Trends says I 'read' 5217 article in the past 30 days. Now, this doesn't mean that I completely read them all (mind you), just that they were in front of my eyes for a moment, to see if they were interesting enough to link to. I guess I make this decision in a split second, based on title of the post, and the name of the author.

Me: Have you tried out non-webbased RSS Readers?
Arjan: Not really. Tried FeedDemon and RSSBandit some time ago. But working on several machines requires keeping track of several software installs and use something like Dropbox to synchronise the data files. Could easily do that, but since I'm rather the lazy type - there's your real reason I prefer web based readers - haven't done that so far. And Google Reader's good responsiveness is keeping me from switching.

Me: Do you feel like reading blogs helps you a lot in being a better developer? If so, in which ways?
Arjan: Well, sure. For the obvious reasons: teaching me new and often better ways to do something (let's call this the 'tricks'). Then there's another slot of bloggers who focus more on the deeper insights behind programming (design pattern, methodology, agile development etc.). You don't always need to agree completely, but there is lots of good content out there that at least deserves some serious mulling over. And sometimes they show me how *not* to do things. Fortunately the first category is way bigger than the second (You probably all know The Daily WTF. If not, then you absolutely pay them a visit for an overwhelming number of examples of the latter category).

Me: To wrap up this interview (A Top-10?). Which are your favorite blogs?
Arjan: A Top-10 you ask? Don't like top-x lists at all, but since unscientific evidence has shown that they have a great click-through rate, we have to deal with them :) Only thing: there is not one single blog that I would call upon being my no 1. Besides, it's hard as by definition this would exclude an overwhelming amount of top notch blogs. Still, away with the excuses,here's the unsorted list:

- The guys at Codebetter.com. Almost every day they contribute some food for thought related in one way or the other to methodology. Highly reccomended!
- Los Techies guys: same reason as above.
- Leon at the Secret Geek blog. Humorous and less humorous posts on a not so regular basis. He brought my little link blog fame by awarding me the ‘Next Mike Gunderloy’ award when Mike Gunderloy stopped linkblogging when 2007 came to an end.
- Simone Chiaretta a.k.a. the Code Climber. Enthusiastic Italian MVP who just released a book on ASP.NET MVC.
- Scott Hanselman. Though he lost a little bit of his touch since joining the ranks at Microsoft, he’s absolutely an avid blogger, podcaster and overall tool geek.
- The Lifehacker.com blog. For a couple years already lifehacks, GTD, and more recently the rise of social software attract me. There is truly a revolution taking place in this field. A lot of things we took for granted for a long time are suddenly obsolete without us realising it. Let this entry in the list be representative of my interest in this domain.
- Michael Lopp a.k.a. Rands (in repose). The guy who wrote “Managing Humans”, great book. New articles drip in on his blog; not too often, but when they do, you do yourself a disfavor not to read them
- Jeff Atwood. Though he gets a lot of flak, the guy does an awful lot of research for high high profile, high rotation blog (100K+ readers). There is not a subject he has no opinion on
- Rajiv Popat: .NET developer writing a lot about tools, technology and project management. Think I said it before but the guy is a hidden gem.
- All the other guys and gals that were not mentioned here but make great contributions to the blogosphere. Thanks for giving me enough stuff to link to!

Me: And thank you for the talk!

Tuesday, April 14, 2009

Getting your ASP.NET website online for free with ASP Spider

I'm currently working on a little sideproject. It's a pretty small project, but it has some challenges: implementing the ASP.NET Membership provider, a Silverlight control, LinqToSql.. One of the other challenges is trying to keep it as cheap as possible.

My client asked me if he could see a sneak-preview of the site, but his current webhosting company doesn't support ASP.NET. And I do not want to spend money on ASP.NET hosting until one month before the go-live, so I searched for a temporarily FREE ASP.NET host.

The Free ASP.NET host I found was ASPSpider.net. In this small tutorial I will explain how to get your site and MSSQL database online. It's pretty simple but there are a few gotcha's..

Step 1: New registration

Create a new account on Aspspider.com.

Step 2: Create a new Web site

When you first login to ASPSpider, you get redirected to the Account Manager. Here you can change your personal information, and here you need to create your website.



Step 3: Take a look at the Control Panel

After you created a new website, you can take a look at the Control Panel.

The Control Panel has 3 sections:
1. File Manager
2. Database Manager
3. Profile Manager



Step 4: Upload your MSSQL database

This must be done using the Database Manager.

The first thing you need to do is upload your database. ASPSpider expects an MDF file, so you need to detach your database locally, copy it and upload it. After you upload your database (using the File Manager), you need to attach it and give it a name (using the Express Manager).



Step 5: Upload your website

This must be done using the File Manager.

It's the same principle as uploading your database. Zip your website, upload the zip file to the webroot and extract them. Make sure to change your connection string to 'Data Source=.\SQLExpress;Persist Security Info=True;Integrated Security=SSPI;Initial Catalog=UserName_DbName'



And that's it. Your website should be online now. You can find the url to your website in the Profile Manager.

Friday, April 10, 2009

ie6-upgrade-warning

This is one of the better initiatives in the campaign against IE6.



You can find the little script and some more information here.

I finally had the chance to do something for the opensource community.. I added the translation in Dutch ;)