Software Development

Ivan Porto Carrero interviewed on InfoQ

My friend Ivan, blogger, writer and coder extraordinaire has been interviewed on InfoQ, a main-stream enterprise development portal, about his new opensource project IronNails. Ivan started this project a few days ago because, while working on same samples for his book about IronRuby, he had this vision of a Rail like development for WPF and Silverlight applications, based on the MVC pattern. And here it is: announced on his blog (which, by the way, has a new awesome skin), published on git, and got a lot of media attention. Read the complete article here: Talking with Ivan Porto Carrero about IronNails. Congratulations Ivan! IronRuby, Ivan,...

How to disable ReSharper for a file: [CTRL + 8]

ReSharper is one of the tools I couldn’t live/code without, but when they designed it they didn’t tested my current scenario: I’m doing the assessment and refactoring of an application made of more than 80 projects (they were more than 200 in the same solution before we started our refactoring), some .cs files are more than 10k lines and some .aspx and code-behind files are more than 1000 lines. When working on this solution sometimes I’ve to disable ReSharper otherwise it would take 3 minutes only to open the file and do the code analysis on that file. But going all...

Comparing the backgrounds of web developers

Web developers on ASP.NET have (mostly) a client or client-server background. Web developers on Java have (mostly) a client-server background or a web background. PHP and Ruby and Pyton (and so on) ones have only web development background or even web design background. This is just a quick idea that came to my mind this evening while running, and I wanted to share... I think I'll elaborate more on this in a following post. PS: I know, there are exceptions to these statements (as I am, since I was born as web developer and I develop on ASP.NET), but for the majority of developers...

Yet another presentation on ASP.NET MVC at DotNetMarche

On Friday I’m delivering my third presentation on ASP.NET MVC in less than one month (actually the 4th because I repeated twice the one I delivered inside Avanade). This time it will be inside the 6th DotNetMarche Workshop on “Applications’ automated testing and ASP.NET MVC”. You can have a look at the agenda of the event (translated by Google). I’ll try and make everything available online after the event, especially the code samples. Technorati Tags: aspnetmvc,event,dotnetmarche

How to get up to speed with Team Foundation Server

UPDATE: Thanks to Lorenzo, I fixed a few errors about TFS Licensing. Lately I’ve been designing and implementing the migration of development team from Visual Source Safe, with Excel based bug tracking and no defined development policies to TFS. I’ve only been a user of TFS so it was the first time for me to dig into planning and licensing issues, process templates, policies, build and all that stuff. During my searches I collected the link and resources I read, and I’m posting them here so other could benefit from this list as well. Testing TFS...

When BIG is better then small

I’m very sad to hear that a very big Italian ASP.NET portal went down, together with other “normal” e-commerce sites, because its hosting provider, a small hosting company managed by the Italian IIS MVP, closed without warning. Nobody knows what really happened: not paying the bills, the systems went down while the owner was on vacation and the advertised IT staff never existed. And of course the owner is not reachable by phone, email, fax, whatever It happened to me a few years ago, when the server that was hosting my sites broke the disk, and the owner of the company, a...

LightSpeed 2.0 Released

Mindscape, the cool software agency based in Wellington (NZ) that had the office in the same building where I worked for Calcium, just released the second version of their domain modeling framework, named LightSpeed. This version has some great new features: Linq2LightSpeed: now the entities can be queried using Linq Visual Studio Designer: for people that are soo 2002 and still prefer working with a data-first approach, or want to apply the ORM mapping to legacy databases, LightSpeed now has a VS designer and code generator that creates entities starting from the...

Job Offer: Sharepoint Developer needed in Barcelona

Last summer, after coming back from NZ I did quite a few job interviews before deciding to go and work for Avanade, and one of them was with the Fusion4Energy EU agency in Barcelona. The process on their side took quite a few months and they told that I qualified for the job and they were willing to hire me only last month, more than 8 months after the interview. But last month I was already working for Avanade and not willing to change job again, so I had to refuse the position. So, to fill...

When mice interact with SQL Management Studio and cause a BSOD

I think I never saw a BSOD since my Win2000 desktop, but today it happened 3 times in less then 5 hours. And it always happened when I was scrolling data tables from inside SQL Server Management Studio. The only thing I installed since the last time I used it were the drivers for my Microsoft Presenter Mouse 8000 to deliver my presentations on ASP.NET MVC last week. Seemed a bit weird that mouse drivers could interact cause such a problem. But they were: searching on Google I found many posts and thread about this strange interaction between the two software. This one “SSMS...

ReSharper 4 approaching beta status

No official announcement yet, but the ReSharper 4.0 Nightly Build page is showing the first build marked as stable and with the status "Beta Candidate". The build number is 804. Off to downloading it: let's hope they fixed all the problems and the huge memory requirements of the latest builds. UPDATE: JetBrains officially announced ReSharper beta Technorati Tag: Resharper 4,Beta

ASP.NET 3.5 + VS2008 SP1 beta

Probably you already read this announcement somewhere else in the net, so I'll not replicate the news here. What excites me the most are mainly two things: Part of the ASP.NET MVC framework are going to be included into the core ASP.NET framework: System.Web.Routing will be included in ASP.NET with the SP1, so around this summer, probably well before ASP.NET MVC is RTW Intellisense will work for Javascript files, and will have support for jQuery, Prototype and other popular JS library out of the box. You can read more about the other improvements on ScottGu blog...

The most used Javascript Library is... jQuery

A month ago a popular CSS blog asked: "What is your Javascript library of choice?" Yesterday, after having received more than 1600 answers, he published the results. The winner is clearly jQuery, with more than 50% of the preferences (actually 52%). The second library is MooTools with 15% and third comes Prototype with 12%. As the author of the survey says, the audience of his website is mainly composed by designers, so the results are a bit biased toward jQuery (which has been designed to port the CSS way of thinking into JavaScript development). But...

Having a crush on jQuery

A few weeks ago I started to play around with jQuery and I already banged my head against some small gotchas of the framework. But a comment made by Jake Scott opened my eyes: I recommend you read (if you haven't already) Manning jQuery in Action, its the best book on Javascript ever :) Even if I might not second the "best book on Javascript ever" part of the comment, I got the book yesterday afternoon and I already read 4 chapter of the book while on the train. I've to say that the...

OutOfMemoryException using ReSharper 4

Last week, while working on the new features for Subtext vNext, I encountered a strange problem that never happened to me before. I was running the latest "works here" Nightly Build of ReSharper 4 (build num 767) and started getting tons of OutOfMemoryException. The problem started to happen when, after developing all the DataAccess and BusinessLogic with a TDD approach (so no UI involved), I started adding textboxes and method calls in aspx pages. So I guess the problem has something to do with handling aspx files and all the added complexity that a simple class file doesn't have....

The most important quality of a developer: Self-criticism

Last week I visited in Milan an art exhibition on Francis Bacon, "the last of the great 20th century masters in painting". Together with his paintings, attached to the walls there were quotes taken from some interviews and one really made me think: I think an awful lot of creation is made out of, also, the self-criticism of an artist, and very often I think probably what makes one artist seem better than another his that his critical sense is more acute. It may not be that he is more gifted in any way but just that he has a better critical...

Wanna extend Visual Studio? Read Keyvan book

Keyvan Nayyeri just announced the official release of his book about Visual Studio Extensibility, published by Wrox. This is quite a unique book since the VSX technology is new with VS2005 and is a leap forward compared to the old macro-based extensibility, but nothing has been written on this topic, yet. The book will cover all the aspects of Visual Studio Extensibility: Macro, Add-Ins, Visualizers, MSBuild, VSPackages, DSL tools, using the Shell. I also what to thank Keyvan for adding me to his acknowledgement page on the book: I would thank anyone else who helped us get this book done, both inside Wiley...

Resharper 4.0 EAP: Are you geek enough?

Ivan just IM-ed me with a link: http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+4.0+Nightly+Builds I've been waiting for a C# 3.0 compatible version since I installed VS2008 back in December: apparently it has been announced by Ilya Ryzhenkov on his blog yesterday but I didn't get the news till now. Here are the release notes. I'm going to install it: it will not do much harm and if anything goes wrong I can always turn it off as I'm already doing now with the 3.1 since it marks everything "new" as error. I hope it will support also Silverlight project and will not mark variables defined in the...

Code smells also in SQL server system tables and StoredProcs

Almost 2 months ago Steve Harman, showed a ugly character map used in a database field to store the week's working days. Today I came across something similar, or maybe even worse, since the super-smelly database field is used in some system SPs in SQL Server 2000. I found a few examples of inconsistencies and "strange" implementations but let's focus on just one system stored proc: sp_help_job. This SP is used to retrieve a list of jobs or, if called specifying a GUID, it returns 3 result sets with the steps and schedules of a single job. Let's see some examples: enabled, which can be...

How to simulate RowTest with MS Test

One of the best feature that is in mbUnit since 2004 is RowTest, which is the ability to perform the same test using different input data and expected results. RowTest [RowTest] [Row(1,1,2)] [Row(2,1,3)] [Row(1,-1,0)] public void SumTest(int a1, int a2, int result) { Assert.AreEqual(a1 + a2, result); } The cool thing is that each "row" is treated as a different test, and if the test fails for one set of data, the others might not. And this helps pinpointing the data that are making the test to fail. This week I was adding...

Sun buys MySQL

This is fresh news, Sun just bought MySQL. Here is the the official press release: Sun Microsystems Announces Agreement to Acquire MySQL, Developer of the World's Most Popular Open Source Database Kay Arnö, responsible of the community behind MySQL, writes about what this means for the opensource community, both developers and users: Sun acquires MySQL Sun has a proven track record of supporting OpenSource as whole, so I guess this will help (if it ever needed) an even better development of MySQL DB engine. Congratulations MySQL!! Technorati Tag: Sun,MySQL

Who said IE doesn't support Acid2?

Someone filed a formal complaint to the EU because IE didn't support the web standard, in particular didn't pass the Acid2 test. Drum roll please.... IE8 change num 149329 now renders the Acid2 face. More info on the official announcement on IE blog: Internet Explorer 8 and Acid2: A Milestone You can also watch a movie on Channel9: IE 8: On the Path to Web Standards Compliance - ACID 2 Test Pass Complete Technorati tags: IE8, Acid2

Ajax usage among .NET developers

UPDATE: The survey is closed and I just published the results of the survey: .NET Ajax Survey results. Given the results of Ajaxian's survey about the state of the usage in the web development community, I decided to make a new survey, but this time only focused on .NET developers. Please click here to take the survey. I'll collect the results and then make some more stats. The questions are the same as the Ajaxian's one: Are you using Ajax in production, development, proof of concept or not using it at all?...

ASP.NET Ajax usage floats around 35%

UPDATE: I setup a survey focused only on .NET development here. Ajaxian, blog focused on everything related to Ajax development and JS libraries, last week announced a survey about the state of Ajax usage among developers and in the enterprise. The questions were simple: Are you currently using Ajax? Which programming language/web framework are you using Ajax in conjunction with? Which Ajax toolkit, framework or JS library are you using? Yesterday they published the results of the survey, which has been answered by 2618...

How to install ASP.NET 3.5 Extensions Preview

If you are like me, and don't read the instructions and the readme files, you might encounter a few problems in getting the ADO.NET designer to work. To enable the ADO.NET designer you need to install the ADO.NET EF Tools. But in order to install it correctly you have to install also the ADO.NET EF beta 3 and a cryptic XML Editor QFE in the right order. So the correct installation order is: Visual Studio 2008 XML Editor QFE ADO.NET EF Beta 3 ADO.NET EF Tools (Dec...

How to install a Windows Mobile emulator

This might seem a bit old topic, but every time I set up a new machine for developing for windows mobile I always forget where to find the emulator, which one to choose and how to set it up. Today I found an article which explains everything you need to do to test you mobile applications without using the real device. First you need to install the latest version of ActiveSync (which, at the time of writing is 4.5) and then install the SDK for the platform of your choice: Windows Mobile 5.0 SDK for Pocket PC Windows...

IronRuby book by Ivan Porto Carrero

I thought I already mentioned it previously, but probably the things that happened to me in the last month made me forget to mention it. But going to the point, my Belgian Kiwi friend Ivan is starting to write a book about IronRuby. Congratulations Ivan!! Technorati tags: IronRuby, Ivan, book

My definitive color VS color schema

I spent some time in the last months playing around with various color schema and finally decided that the original port of the Vibrant Ink schema to VS is still the one that most appeal to my eyes. The one made by Rob Conery is a bit too little contrasted for me. So here is my VS2008 with the latest version of Vibrant Ink for VS2008 made by John "DLR" Lam. Here you can download it. Just remember that this vssetting file include also the other personalization of John, so just import the "Options>Environment>Fonts and...

ASP.NET MVC

This afternoon, while I was installing for the 4th time this year the Service Pack 1 for Visual Studio 2005, I printed the first post by ScottGu about the new ASP.NET MVC framework. It's a long article (28 printed pages excluding comments) that details quite well the process behind the development of a simple website using all the default behaviors of the framework. I just want to highlight a sentence I really liked: You can use any unit testing framework (including NUnit, MBUnit, MSTest, XUnit, and others) with the ASP.NET MVC Framework. We'll also be shipping project template downloads for NUnit, MBUnit and other...

ARCast meets LightSpeed

I just stumbled upon a video that has just been published on channel9: Ron Jacobs interviewing JB and JD of Mindscape about their domain model framework LightSpeed. Congratulations Mindscape!! At the moment I'm still (unfortunately for the last week) at the lake with hamsters powering my Internet connection, so cannot check it out, but if you have a normal Internet connection speed, go and check it out on ARCast.TV. (Too bad that Channel9 doesn't offer video encoded for the iPod format). Technorati tags: mindscape, lightspeed, arcast.tv

Web Browser History

Today was a rainy day here in Milano, so decided to do a bit of Autumn cleaning, and throw away all my old and, unfortunately obsolete, programming books. I threw away some DHTML books and some ASP Classic ones, and reminded me of my early days of programming and doing web development: I remember that I tested my first website with Netscape 1.something and that my first server side application was built with ColdFusion version 1 and then with LiveWire, the server side JavaScript dialect used inside the old Netscape Enterprise Server. And while looking on wikipedia for these old...

Some clarifications on my opinion about ALT.NET

My opinion about the ALT.NET probably has been misunderstood by a few bloggers that only focused on the first part of the post. Both Ayende and Jay Flowers disagree with my opinion that 80% of the developers can't get the concepts behind ALT.NET. Actually I didn't say that they can't get it, I only said that they don't want to stay up to date, which is a lot different. Even if there are a lot of talks going on, a lot of blog around (as Jay says in his post) most of the developers are not interested in "being on...

Yet another ALT.net opinion

I wanted to write my opinion about the ALT.net thing since a long time, but I really never find the time to sit down and organize my ideas into an organic post.The event that "triggered" this post is my friend Lorenzo asking my opinion about his blog post "There are architect and Architects" (it's in Italian but here is the link to the auto-translated version by Google). In his post Lorenzo, commenting on Sam's post about leaving CodeBetter and ALT.NET, adds some thoughts about something that usually the hard-core ALT.NET people don't get: imagine you have an Enterprise-level project,...

YSlow 0.8 released

Yesterday Steve Souders, Chief Performance Yahoo!, released a new version of YSlow, the tool to help you improve the performances of your website. Version 0.8 fixes a bug in the Firebug NET panel, where cached pages sometimes show up in the network monitor: here is a detailed explanation of problem and how to enable the fix. They also fixed a small problem that caused stylesheets with mixed case not to be recognized as being in the head of the document (rule 5). If you already installed YSlow, you already saw the update via the Firefox auto-update feature, otherwise you...

Exploiting Multi-Core Processors

As we all know the chip industry changed it's approach to performances increment: we will not see 10Ghz processors (not even 5Ghz ones), but now we have duo-core, quad-core and 8-core or 16-core processors coming in a near future. But this is a problem for software developers: while it's easy to take advantage of a 10Ghz processor (just do what you always did, and your application will go faster because it will be run by a faster processor), it's more difficult to take advantage of four 2.4Ghz cores inside the same processor. A few years ago, Volker Will said: But how will...

How to use YUI JS Compressor inside a NAnt build script

As I anticipated yesterday, I implemented the YUI JS compressor inside Subtext's build process, and since it took me a while to understand how to specify the arguments for the NAnt <exec> task I wanted to share the snippet of the build file I created: <target name="JavaScript.minify"> <echo message="${filename}" /> <exec program="java" workingdir="${YUICompressor.dir}"> <arg value="-jar" /> <arg value="yuicompressor.jar" /> <arg value="-o" /> <arg value="${filename}.min" /> ...

Singleton with VS2005 snippet

Ivan and the other guys in Wellington had their last Lunch with Geeks about Design Patterns. And came out with that idea: The most overused design pattern : Singleton. With the remark that a singleton should only be used when you need to keep state in your object internally. So, just to reinforce that concept, here is a VS2005 code snippet to quickly create a Singleton. I uploaded it on GotCodeSnippets.NET, a repository of code snippets. Download the Singleton VS2005 code snippet. It expands to the following code: public sealed class Singleton { private readonly static...

Blogging from Melbourne

I'm here at the Melbourne airport, after 4 hours and 30 minutes of flight over the Tasman Sea. The Qantas zone of the airport has free WiFi connectivity, which is very good, compared to the 5£ per hour I paid at Heathrow coming in New Zealand 7 months ago. Now my connectivity is limited only by the short battery life of my old laptop: too bad I don't have the 6 hours battery life of a Mac yet. Anyway, looking at my feeds, I just found out a very good news: my friends from Mindscape just released the first official...

ORM vs HandCoded DAL: Adding a new field to a table

In a World of constantly changing requirements adding a new field to a table is pretty common task: a new user profile field, a new flag to control the display of something, some other customization parameter. Let's see the steps involved in this easy task, both using an ORM (I'm using NHibernate) and using an hand made DAL. Task NH ...

How NOT to prevent SQL Injection

This is the best anti-pattern about security and SQL Injection on the web. Today I found, via <edit>, html.it blog, a CMS that use a "creative" approach to get data from the DB: passing the SQL string directly as querystring to the page. Here is an example: newssearch.asp?strSQL=SELECT+*+FROM+news+WHERE+(+lingua+%3D+'ENG') And if you search on Google for "allinurl:sql select from where", you will find heaps of pages that use this approach (tonight the results were 111.000). I found sites built in ASP Classic, PHP, cgi, Perl, seems quite a widespread technique. What if someone writes DROP TABLE NEWS instead of SELECT ...? Technorati tags: sql injection, security

Too many Code Monkeys joining the developer community?

This seems to become one of the hottest topics about the socials of software development. After last weeks' posts by Ayende on whether Microsoft should target "Mort" instead of the Alpha Geeks (and all the other post about that topic around the community), Scott Dorman said that there is an even worse problem: the "mass market developer": A "mass market developer" is usually at the low end of the developer spectrum.A more frustrated code monkey, ibid. They have no formal training and are what could generally be considered to be a "code monkey", but in the derogatory sense. These are the...

Rhino Mocking NHibernate Expressions

A few days ago I wrote a post about how to test your business layer using Rhino Mocks. Last time I set an expectation on an method that accepts a normal int. Today I'll show how to work on something more complicated: a NHibernate Expression. How to Mock the FindOne(ICriterion[]) I've to test a method that returns a user given its username. 1: public User GetByUsername(string username) 2: { 3: User returnUser = 4: _repository.FindOne(Expression.Eq("EmailAddress", username)); ...

How to mock a NHibernate Repository

 In my current project I'm trying to apply the best practices for building "great software" (cit.). One of the best practices is using a (kind of) TDD approach, using Inversion of Control and Dependency Injection to test only the relevant parts of your code without testing all the layers of your applications, DB included, during each test. Which are the benefits of this approach? First of all your tests run quicker because they are not hitting the database all the times. Second, you don't need to restore the initial state for the database. Third, if you are...

What convinced me to adopt a (kind of) Test Driven Design approach

I've to admit it: I never wrote many tests for the code I wrote. Probably one of the reason is that the last time I wrote something from scratch, with enough time to convince the other members of the team to try a new approach, was before the TDD became known to the general audience. I only wrote some test for small part of the code, or to expose some bugs and later fix them. But 2 months ago, I had to design from scratch a small web application: and again I didn't have the time to sit down, look around...

How to use the command line CodePlex Client

In the last days I've been working on a small tool that will be included inside BlogML, but I didn't want to install the Team Explorer since it's quite a big download for just a source control client (246Mb). So, while I wait June 18th for the deploy of the bridge that will allow access to CodePlex using any SVN client as TortoiseSVN, I decided to go the hard way and install the standalone command line tool: the CodePlexClient. Being a command line is a bit more complex to run, so here is quick step by step tutorial on how to install and use it. 1 -...

8 things the Linux community doesn't get about the average computer user

I just found two interesting articles by Adrian Kingsley-Hughes on the ZDNET Hardware blog: Five crucial things the Linux community doesn’t understand about the average computer user Three more things that the Linux community doesn’t get The second article is a follow-up of the first one, triggered by the tons of comments from people in the Linux community still going on not understanding. The author tries to answer the following question: Why is it that the average computer user still chooses to spend hundreds of dollars on Windows or Mac when there are countless Linux alternatives that they...

The user is the 4th tier of any application

Are you an architect or developer and do you think the user experience is not something you should care about? Well, you are wrong. I was listening to an interesting series of podcasts from ARCast with Ron Jacobs on why an architect should care about the User Experience, and how to do it. I think the reason why an architect should care about the end user experience is all in the title of this post. If you look at any enterprise application, split in tiers (usually 3 tiers), with interfaces between them, you have to think at the end user as 4th tier of...

NHibernate 1.2 is stable

Sergey Koshcheyev, project leader of NHibernate, just announced the release to the world of NHibernate 1.2. NHibernate 1.2 has been in beta testing for the last half year. Today it is officially marked stable, production-ready, and supported. What are the most compelling new features and why should you upgrade? Just a brief overview of the new features: there is a commercial support: I guess that the lack of that is one of the things that scares "traditional" IT managers the most Native support of generics Support for Stored Procedures SysCache2: a second level cache provider based on the...

Per-project Visual Studio Settings

Working on both "real", personal and opensource project sometimes I've to face the problem of managing different visual studio settings based on the project I'm working on. For my personal projects I like a certain tab and curly brace configuration, for Subtext I've to use another convention, and from my real job I've to use yet another configuration. After a few weeks of struggling I decided to adopt the Subtext settings even for my personal projects, but I cannot do it for my job, because that settings have been already used for years: so, every time I've to change type...

Managing application configurations in development teams

A common scenario in team development, but even more common in open source projects, is that developers working on the same project can have different setup environment: different connection strings different path to reach specific folder or configuration files maybe even different url to reach some webservices different smtp servers and so on ... The best solution is to have the user (during that post user===developer) being able to specify his own specific settings without having to modify the main web.config. .NET 1.1 In the .NET 1.1 all the configurations were inside the <appSettings> section...

Vista Gadget for CruiseControl.NET - CC.NET Monitor for Vista Sidebar 0.5

UPDATE: The latest version of CC.NET Monitor for Vista Sidebar is v0.9.5: read more about it on the CC.NET Monitor for Vista Sidebar v0.9.5 release notes. I'm using CruiseControl.NET both at work and for Subtext, and since I'm using Vista I wanted to look at my servers states inside the Vista Sidebar. Last October Ruslan Trifonov built a Vista Sidebar Gadget for Cruise Control.NET, but I didn't like it mainly because it connects to a custom web service he built on purpose, instead of using the REST-like API provided inside CC.NET. So I decided to give the Vista Sidebar Gadget development a try, and I built...

WPF/E has name: Silverlight

Sunday 15th was NAB day, and everybody was waiting for some shocking announcement from Apple (which announced only a professional version of Final Cut Server), but the shocking announcement came from the other side of the wall. Microsoft announced its "flash-killer" web platform: MS Silverlight. I've always been a fan of advanced GUI for the web, and finally we have a flash-like platform that can be developed with Visual Studio and developer oriented IDE. Flash was good but it lacked a powerful IDE as Visual Studio. Here are some link to blog of people directly involved in the development: ...

Intellisense for SQL

Intellisense allows developers to be faster when writing code, and it can be used for almost everything inside Visual Studio, from C# code to general XML formats and CSS. But when writing SQL queries or stored procedures you have to rely only on your memory or on cut&paste. Today I found a very cool application that enables a sort of Intellisense also when writing SQL queries. And not only in VS, but also inside Query Analyzer, Management Studio, Enterprise Manager and even UltraEdit and EditPlus. I'm speaking about SQL Prompt by Red-Gate. ScottGu wrote about a special offer for the old...

Software development like which climbing?

  I just read an article by Jeff "CodingHorror" Atwood about a comparison between Software Projects and Rock Climbing. As someone might have guessed from my domain and from the logo of my blog, I'm a rock climber Some comments on the original post say that, with the right justifications,  probably anything can be compared, more or less, to software projects. I think this is correct: words are a very powerful tool if used by someone that knows how to use them. But let's focus on the original software project - rock climbing metaphor. First let's say...

Continuous Integration with The Simpsons™

As part of my new job as Chief Software Architect here in Calcium, one of my task is setting up a "state of the art" build/testing environment so that the various developers working on the project know if they broke something with their latest commit, or the exotic Java-.NET integration stopped working. I already setup a CC.NET build server (and I already wrote about something I did), but Continuous Integration is useless if nobody knows about the results of the builds in a timely way. We have all servers (both the build and the test server) in our office, so I installed CCTray on...

Synchronize assembly version with CC.NET build number with NAnt

In the last month I started working again a lot on CruiseControl and build processes. Another quick tip I think it's interesting to share is how to have the version number of the code you are building synchronized with the build number generated by CruiseControl.NET. As everything related to build processes inside CC.NET this is achieved using a NAnt task: asminfo. Step 1 - CC.NET Labeler The first thing you have to setup is the labeler inside the ccnet.config file: <labeller type="defaultlabeller"> <prefix>2.2.0.</prefix> <incrementOnFailure>False</incrementOnFailure> </labeller> This will instruct CC.NET to prefix the build label with the major.minor.revision of your...

Offline mode: do we really need it?

I really don't understand the reason of all the excitement behind the offline-mode of Firefox 3.0. The developer working on that feature, Chris Double (he is a NZ guy), just released a proof of concept of Zimba running in offline in FF 3.0. And everybody in the JS/Ajax world is getting excited about that. A few days ago I read a very nice post (nice as usual) by Jeff "Coding Horror" Atwood: Does Offline Mode Still Matter? I've different feelings about it: maybe some application need the offline mode, imagine downloading all your RSS feed to a PDA, and then read them...

Build WebAppliction Projects with MSBuild

You installed the webapplication project update or installed VS2005 SP1, and you developed your web application using with that kind of project. Now you want to build it on a build server using MSBuild. If you didn't install VS2005 with that specific update also the build machine, the first time you try to run it you get the following error: "The imported project "C:\Program Files\MSBuild\Microsoft\VisualStudio\v8.0\WebApplications\Microsoft.WebApplication.targets" was not found" The solution for that problem is very easy: just copy from you machine the Microsoft.WebApplication.targets file and put it inside "C:\Program Files\MSBuild\Microsoft\VisualStudio\v8.0\WebApplications\". Probably you have to create also all the folders in...

Codename your releases

Longhorn, Leopard, Indigo, Poseidon, Gran Paradiso, Yukon, SharpFreedom, Supertanga, Revolution, Lightning, Lambrate, Orcas, Q98, Fiji, Pendolino, McKinley. What does all these names have in common? Apparently nothing... but they are all codenames for various kind of software. Apple codenames his OS releases with big cats names, Microsoft after places, Firefox with natural parks (next release, 3.0, will be named Gran Paradiso, my favorite Italian National Park), Subtext names are submarines names, Nic's company is naming its releases after cocktail names. Why is important to have codenames for software release? Decouple marketing name from the internal name When you start developing a new product you have to decide a name, the...