ProtoLib - Book administration in .NET

Friday, July 08, 2005

Development environment

It's a long time since the last post, but I wasn't in holidays. The case is that all my development environment was shaken, and as it's usual with me it only started as a small change that kept growing.

The first thing was the arrival of Microsoft Visual Studio 2005, with which I fell in love inmediatly. Generics are fantastic, and the refactoring tools are good to, but at the same time all the environment looks and feels better. By the way, I started using it at the office too, and now I hate when I must go back to version 2003, or worst, to Delphi.

At the same time, some time ago I started thinking about having a better development structure at home, starting with a simpler Internet boadband connection and finishing with dedicated servers for the web, SQL, version control and email.

My first step was to buy a router to replace the Pentium III that I savaged from the office garbage, which was working sharing the Internet connection for Flo's PC and my notebook. I bought a Linksys BEFSX41 router, which looked so beautifull in the photos that I never read it's full specifications. When it arrived I noticed that my USB modem can't work with it, so I bought a ADSL2MUE modem, also from Linksys, which not only looked as beautifull as the router, but also has the advantage of being from the same manufacturer. My reasoning was that the two products should work perfectly from the start, and that everything would be fast and clean.

I was wrong, because at first I couldn't figure how to configure them to work in a network (my network administration knowledge is very scarce, and at that time was even worst). When both where fine, they didn't want to work together, and the router make a warm boot each 30 seconds more or less. I downloaded some updates for both BIOS, and after a lot of testing and reading in dslreports (it was good to have the old configuration running, which drive me to think about having redundant connections in the future) my modem/router team started to work as fine as I liked.

After that I went for my now free PC, reformated it and installed Windows 2000 Server, basicaly to work with IIS. The thing was that it was working as file server too, and I wanted to keep the files in other place, so I bought a new 200 Gb disk. This disk was recognized by the PC as a 50 Gb disk, so finally Flo's PC got the new disk, which means that again I needed all the computers in the house running whenever I wanted to play with the network.

Now, they are not so many computers (except that in our tiny flat they look like a 1960 IBM laboratory), but I really don't like the idea of being messing around Flo's things, specially when we both are working at the same time, which means that sooner or later I will need another computer around to go as file server, but for a while I was conecting and desconecting the monitor from one PC to the other, because I only have one monitor at home (and that means that I will need another monitor too).

Finally IIS started working, and I noticed that not only my network knowledge is not as good as I like, but also my IIS knowledge was not enough, so I started reading and testing a lot of things around the new server. At the same time I started looking for tools to keep an eye over the router/firewall, but I suppose that the actual applications are not very happy with the new BIOS, because none of them worked as the manuals said, and I am checking the logs directly in the router, which is not very nice.

Given the monitor sharing problem, I started using the remote desktop from Windows to control the server and Flo's PC, which works fine and as I expected it to work. That ignited my curiosity about VNC programs, and I started testing some of them, in particular TightVNC, which is open source. I had it working over the Internet too, so I can connect from the office, but given that it's not encrypted, I started mesing around with OpenSSH, which at the moment is winning the battle, I couldn't figure how to make it work. The point of that experiment was that I bought an old notebook in eBay, and given that it has a Pentium I processor and few memory, I installed Damn Small Linux in it. Linux run great, and I even can have an X session running, but my Windows Remote Desktop is gone there and I want to be able to take control from any computer in the network (I am thinking about having some Linux servers too, but that will be in the future).

When the web server was finished, I started looking at how to make it visible from the Internet, and at the same time trying to add other services to my network. I tested a few FTP servers (IIS can't work with the router, Filezilla server works fine but doesn't like to access shared directories in the network), and installed a new version of SubVersion, which I also want to be accessed from the Internet. At the same time, given that my IP address is dynamic, I tried some services to have dynamic DNS. Some of them say that they can work with my router too, so I should be able to keep the configuration in the router, but at the moment I wasn't successfull with that. Really, the only thing working properly from the Internet is IIS, and I haven't a proper website!

Going around this last problem, I started looking on content management systems, and blog programs, and forum programs, and a lot of other strange creatures, but I haven't arrived to a conclusion yet. I like the web server based solutions, but at the same time I have the same prurit as Magoo, I want to be able to work from a disconected computer, and I want to have full control over my data and services. I will keep looking and testing, and I hope to have something done before long. By now, I feel much more confident around the network, and configuring services too, so I am happy enough with that and cursing with all the rest (I am not tearing my hair out because I haven't anymore hair).

And not only the network at home were under changes, but also my notebook was edited. I have a multiple boot configuration, with a Linux and three Windows boots available. I use one Windows to make tests of new toys, other is for my normal applications, and the other to program. Each has a 6 Gb partition to keep the system files, and I have another 30 Gb partition with my data and the apps that doesn't need to be in the system disk.

After installing VS2005 in the programming disk (where I also have Visual Studio 2003) the notebook started complaining about having too few free space, and doing strange things, so I finally erased the normal disk, uninstalled VS2005 from the programming disk, and installed it clean in the fresh partition. Everything goes fine since then, but I think that 6 Gb is too few for .NET 2, and probably 10 Gb will be my next system disk size. With all this installing/uninstallig/formating activity, I updated my utilites list a lot during these days. I finished compiling a CD with all my tools (most freeware/open source, and some shareware). I will post about them in the future, and an ISO image if somebody like it and I can manage the space/bandwith bussiness.

Finally, I was working in ProtoLib too, going from .NET 1.1 to version 2. The task is very interesting, and as I said before, I love Visual Studio 2005 and it's posibilities. I changed the solution structure a few times to see how to make it clearer, and gone heavily with generics, specially with lists. I will fly to Argentina next week to see my family, dog and friends, and also to talk with the same friends about how to go with this project and to set up the working environment. A problem with all this conectivity changes was that my communications, usually not in very good shape, gone completelly crazy during the last month. I think that some brainstorming with everyone in the same room will be extremelly usefull for the next steps.