I want to be like uncle Karl

In my previous post, I mentioned that I'm learning a lot of new stuff lately. So, what is it?

Actually, I'm trying to learn tools from ALT.NET toolbox. While I was always leaning towards software architecture, following Framework Design Guidelines and "best practices", reading and learning about new things in .NET community, somehow I've managed to avoid using things like Unit Testing, O/RM (I'm CSLA.NET guy :) and other I consider to be invaluable to software developer. Reading blogs like Ayende's, Roy's or Jeremy's, just to mention a few, always made me feel inferior, and that was a good thing. The first step to knowledge is acknowledging that "I know that I know nothing" :)

The series of posts that really inspired me was Karl Seguin's Foundation of Programming, also available as an ebook. I even made a New Year (2008) resolution to "be like uncle Karl" :)

Few months have passed without pursuing my goals, because of work / school obligations, and finally a month ago, I was asked to do a business application for my friend Branko's family business. It was a great, no time pressure, opportunity to learn, so I accepted.

Together with my friends Boris and Branko (yeah, the same Branko from above :) I started the journey. We have prepared application requirements, started learning NHibernate, Unit Testing (NUnit), validation (VAB), improving our WPF and of course implementing all that to the application.

The application is going along nicely. I'll try to post more about it in the following posts.

VisualSVN Server / Trac tips

Here are few tips I return to when installing or creating a new Trac environment:

VisualSVN Server Trac installation

VisualSVN Server failed to start once I've installed the Trac integration. Apache's log had an entry saying it cannot find mod_python.so file, although it was on the right place. After a bit of googling, I've managed to solve the problem by adding msvcr71.dll and msvcp71.dll to my Windows System folder. I can't give a credit to a person who found the solution, because I don't remember the page where I found it.

Creating Trac environment

Before you start, make sure there you have SVN repository prepared. Also, you should have at least one user that will get TRAC_ADMIN rights. Use VisualSVN Server Manager to create SVN repository and user(s).

If you have used defaults from Trac integration page, your SVN repositories will be in C:\Repositories\ and Trac environments in C:\Trac\.

  • Run a console and go to: C:\Program Files\VisualSVN Server\bin\python\Scripts
  • Run: trac-admin C:\Trac\<ProjectName> initenv
    • trac-admin will ask you a few questions, answer as below
    • enter project name (used for Trac page title and description)
    • database connection string (press Enter for default)
    • repository type (Enter for default)
    • path to repository: C:\Repositories\<ProjectName>
  • To make a single user an administrator run: trac-admin C:\Trac\<ProjectName> permission add <UserName> TRAC_ADMIN
  • Permissions for other users can be set in Trac itself, through the Admin interface

Additional settings

  • Change the Trac environment logo
    • Copy new image to: C:\Program Files\VisualSVN Server\bin\python\Lib\site-packages\trac\htdocs
    • Edit C:\Trac\<ProjectName>\conf\trac.ini, and find [header_logo] section
    • Change src to: src = common/image.jpg
  • Change the default attachment size
    • Edit C:\Trac\<ProjectName>\conf\trac.ini, and find [attachment] section
    • Change max_size = 262144 to max_size = 2097152
  • Use drop-down field instead of text box when defining ticket owner
    • This is very useful setting for smaller teams - to display all team members in a drop-down instead of typing the name in text box
    • Edit C:\Trac\<ProjectName>\conf\trac.ini, and find [ticket] section
    • Change restrict_owner = false to restrict_owner = true
    • Note that the user will not be displayed in the drop-down until he got a session on the server. The easiest way to get the session is to log in and change user preferences.

This post is more a note to myself. Other configuration options for Trac can be found in TracGuide.

Second life (of this blog)

It's been a long long time since my first and last post on this blog. I'm learning some pretty interesting stuff lately, and I've decided to write about them here. We'll see how long it will last this time. Hopefully more than a few posts.

But first of all, let me write a follow-up to my previous post called Open Source troubles. Few months ago, I've decided to take another shot on installing Trac, together with two colleagues of mine. We spent almost two working days on it, but managed to get it working on one PC with all expected features (Apache server, HTTPS, integrated with Subversion...). When we tried to repeat the process on our server, new problems aroused. Just few minutes before loosing our mind, we managed to find a lifesaver: VisualSVN Server Trac Integration.

We had already used VisualSVN Server as our Subversion server for quite some time. It's extremely easy to install and use, has a nice management console and can be configured to use HTTPS during installation. The Trac Integration package they prepared, makes the Trac installation smooth and painless. With the help of integration page, Trac + SVN server can be installed in a matter of minutes instead of days.

One thing keeps bothering me. There is no link to this integration page anywhere on VisualSVN site. I'm sure it deserves at least a small link on the bottom of VisualSVN Server page, saying "if you use Trac, take a look here for an integration option", or something like that. Instead, there are few discussions on VisualSVN Google Group mentioning it.

So, if you do like Trac or use VisualSVN Server, try this integration.