March
5

I found myself in an interesting coaching spot - I am going to teach Alt.NET to a programming infant. I’m going to create the first Alt.NET baby.

baby Real life sometime brings you to strange situations. I lead a development team which is building a web application and we recruited a new member a couple of weeks ago. I’ll refer to him as “the baby”, since he never wrote a single line of code.

Why is he on board, you ask? Well, he’s a fresh computer science student and knows his way around the presentation side of websites (good knowledge of HTML, CSS, Javascript and good ol’ web black magic) so this seemed like a good trade-off for both sides - the baby will join the team and help us out with his mighty presentation powers and in exchange will be part of a real project for the first time and will get on-job-training.

This is an interesting spot. Computer science has brought his knowledge to a certain level so far (basic C) and I need to catch him up with:

  1. Object Oriented Programming,
  2. What design is,
  3. Separation of Concerns,
  4. Liskov Substitution Principal,
  5. The .NET Framework (3.5),
  6. A whole bunch of BCL,
  7. C#,
  8. Relational databases & SQL,
  9. Active record & SubSonic,
  10. MVC,
  11. Dependency Injection & Inversion of Control,
  12. Test Driven Development & MbUnit,
  13. Mocking with Rhino Mocks,
  14. Design patterns,
  15. Scrum,
  16. Continuous integration,
  17. Source Control Management with Subversion,
  18. Tools.

Oh, and this needs to be done as we go on with the project.

Can you think of anything I forgot to mention?

Does the order make sense or would you suggest a different one?

Eeek.
kick it on DotNetKicks.com

6
February
12

A rerun of all the episodes of "The Simpsons" is on TV every midnight in Israel and last night I had a blast listening to the monorail song.

Castle project peeps, will you consider having this played during installation time?

    

Lyle Lanley: Well, sir, there’s nothing on earth like a genuine, bona fide, electrified, six-car Monorail! What’d I say?
Flanders: Monorail!
Lanley: What’s it called?
Patty & Selma: Monorail!
Lanley: That’s right! Monorail!
[crowd chants ‘Monorail’]

Miss Hoover: I hear those things are awfully loud…
Lanley: It glides as softly as a cloud.
Apu: Is there a chance the track could bend?
Lanley: Not on your life, my Hindu friend.

Barney: What about us brain-dead slobs?
Lanley: You’ll be given cushy jobs.
Abe: Were you sent here by the devil?
Lanley: No, good sir, I’m on the level.

Wiggum: The ring came off my pudding can.
Lanley: Take my pen knife, my good man.
I swear it’s Springfield’s only choice,
Throw up your hands and raise your voice!
All: Monorail!
Lanley: What’s it called?
All: Monorail!
Lanley: Once again…
All: Monorail!

Marge: But Main Street’s still all cracked and broken…
Bart: Sorry, Mom, the mob has spoken!
All: Monorail! Monorail! Monorail!
[big finish] Monorail!
Homer: Mono… D’oh!

(from http://www.simpsoncrazy.com)

kick it on DotNetKicks.com

0
January
18

I originally set up Regionerate’s Subversion repository at SourceForge, but after a while I realized that it might be overkill for a small project like Regionerate and that Assembla might be more suitable for the job. By that time, the project was already running around revision 300 on SourceForge.

Note: this post can be useful for migrating between other providers and not just between SourceForge and Assembla.

I set up the space for Regionerate at Assembla and wanted the Subversion repository to run under Assembla’s servers. I could have simply copied the files to Assembla’s Subversion server, but that would have caused the entire project history to disappear and basically start from revision 1.

After a bit of poking around some related blogs and toying with some tools I found the magic formula, which is quite simple.

Step 1: Snatch the Repository From SourceForge

Basically, we want the Subversion repository to be stored locally so that later on we can create a dump from it. In order to have the Subversion repository copied to the local computer, we need to create a backup of it. This can only be done with a small utility called rsync, which seems to be easily available for Unix users, but less accessible to us Windows users.

Enter DeltaCopy

However, DeltaCopy seems to be bundled with a Windows build of rsync. DeltaCopy seems to be good to create scheduled backups. In this case, we just need a single backup.

Download DeltaCopy, I would recommend you download the raw package (the one without the installer) as its smaller and we just need one file (rsync.exe) from it.

Unpack the package to your desktop directory under a new directory called "DeltaCopy".

Create a new directory under "DeltaCopy" for the local backup, in this example, I’ll call it "Regionerate-Local-Backup", you can call it whatever you want.

Creating the Backup

Go to command prompt and go to the place you unpacked DeltaCopy. Type in:

rsync -av regionerate.svn.sourceforge.net::svn/regionerate/* Regionerate-Local-Backup

Replace "regionerate" with your project name, replace "Regionerate-Local-Backup" with the new directory you created under "DeltaCopy" to store the local backup. Hit enter and let her rip. This might take a while, depending on the size of your project and the amount of revisions under it.

After rsync finishes up, you are supposed to have a complete replica of your Subversion repository sitting locally.

image 

Step 2: Dump It

Now you can simply perform a dump on it (assuming you have Subversion installed, if not, now is the time to do so) by running svnadmin.

svnadmin.exe dump Regionerate-Local-Backup -q

Don’t forget to replace "Regionerate-Local-Backup" to your temp directory name.

This can take a while as well. When svnadmin finishes dumping you should have a fat dump file in the directory you ran svnadmin in.

Step 3: Hooking Up to Assembla

Take your dump file and compress it to a zip, then go to your project’s Trac site on Assembla and log-in as admin. Under the admin menu you should select "Data Import/Export”.

image

Locate your compressed dump file and upload the file.

Once this is complete, you can start using Assembla’s Subversion on the same revision where you left off on SourceForge.

Hope you find this useful. (Thanks to Krzysztof Koźmic for reminding me to post this)

kick it on DotNetKicks.com

0
January
4

I’ve started an SVN checkout on SubText a few hours ago and its still not done! So far, stats on my working copy look like this:

image

Tell me that’s not crazy. Shouldn’t SCM be lighter? How about a repository for actual source code and a repository for releases?

0