Ayende @ Rahien

Refunds available at head office

Spooky Google

I just finished (re-)reading Take A Thief (Yes, another book by Mercedes Lackey).

Then I run a search on google for "mercedes lackey books timeline" and the very first result was the book. It's like google has been able to read my mind :-)


Published at

Email is back

I'm not sure, but I think that it was Norton that did that, I'd found something that said firewall, and it's gone after I updated Norton (and rebooted, why do I need to do that? Stupid Symnatec).


Published at

No Email Today...

I've started to get strage errors in Outlook (after working fine for the last couple of weeks, and with no configuration changes). Further investigation showed that I can't create connections to port 110 or port 25, but other computers on the same network can.

This seems like a classic firewall problem, except that I'm not running anything more than the built-in windows one (and the router's firewall is obviously set up properly, since other computers can do this).

I'd had this problem before (2003), and I can't for the life of me recall how I solved it.

This is one of those things that are just annoying, and the #1 reason why I hate to reinstall Operation Systems, you lose so much tweaking that it's not funny...


Published at

The Hype Machine

 THE HYPE MACHINE is an archive of blog audio, I'm currently listenning to the songs that they've there, and have downloaded some of them.

(For Windows Media Player users, click on the Winamp icon, it works just fine.)

Very cool idea, and very good music, recommended.

There is also a semi-official RSS Feed, but I've not used it yet.

Book Review: Domain Driven Desing

I just finished reading Domain Driven Design, it took me over a month and a half to finish that. The last time that I read a book for that amount of time, I was learning English and reading with a dictionary by my side.

Some parts of it were very interesting, and I could certainly see how I would apply it in certain situations. Other parts, however (mostly toward the end, about large systems) I'd to force myself to read. This is probably because I've no real experience in building the typical business applications.

It'd gotten a really good review from many people, and I'm certainly going to apply those techniques where appropriate. It's several concepts there that are quite interesting, and I gathered several more books that I want to read because of it (mostly Fowler's :-) ).


Published at

Windows Start Menu

A good read about Windows Start Menu Horrors, as I'm writing this, I've a week old install of WinXp, and the menu already crossed to the second column, and that is with 1280x1024.

I usually arrange them in deep hirercies to fix this, but this means that I simply forget that I've stuff, and this is the whole point, isn't it?

The WinXp Most Used Programs in the start menu, however, is one of the best ideas for usability. I currently have it setup for 12 programs, and it's listing 80% of what I need to do during my work.

What other alternatives are there for this problem? Suggestions anyone? IIRC on Linux Gnome and KDE has the same metaphor, with deep menus. The Mac I'm not familiar with, did Apple solved this problem?


Published at

If it ain't broke, don't fix it.

Just finished spending several hours tinkering with the site, I tried to upgrade Cuyahoga, but I seemed to have broke something, so I kept getting exceptions. I finally settled on ndCMS, which seems to have a great UI for something about as simple as static file.

Why did I bother in the first place?

Anyone knows of an easy to setup site management that would allows me to basically manage an hierarchal site? Oh, and I want it in .Net using MySql or Access.

Oh, well. Time to go to sleep.


Published at

Cool Discoveries

(I'm not always complaining :-) )

Well, I made two discoveries that are going to make my life better.

First, my ftp client of choice is SmartFTP, which is cool, fast and simple. But I've a... less than reliable FTP Server, and it used to drove me nuts that it sometimes cut of in the middle of uploading, thus breaking the site. Just yesterday I found out that the Global Queue is actually useful.

I tell you this, until you haven't watched something that used to take 3 hours and much frustration done by ten threads and in 1.5 minute, you didn't know the joy of the discovery.

The other thing is the usage of Anchor property in WinForms, I always used fixed sized forms or docking to preserve my forms styles. And I just now discovered what is the purpose of this property (this is what happen when you're self thought), it keeps the distance from the spesified directions. I've already started to put it into use.

Another cool discovery that I'm making as we speak is about DataBinding, I've always did it manually before, but now it seems like a much better way to do stuff, especially if you're using MVC.


Does anyone knows of a Spring like framework for WinForms?


Published at

Outlook Addins - Not a pleasant ride

I'm trying to write an Outlook add-in, and I just can't believe how hard it is to get it to work.

For a start, to get it to work, you need to close Outlook, install the project (run the MSI) and then open Outlook. And the support that you get for errors and the like is zero. Outlook will happily eat errors and pretend that everything is fine.

I'd an exception in my startup code that took half an hour to find, because I thought I didn't registered it properly. Which bring me to the next point, where is the support for add in developers? Some minimal things, like easily being able to debug the add-in, is a must.

Currently I still can't debug my add-in, and resorted to logging every other sentence, which has yet to reveal to me the reason for some pretty basic things that are failing.

Then we get to the point were you shouldn't use the Primary Interop Assemblies that are generated by default, you need to install them by going back to the Office installation and choosing something like ".NET Programmability Support".

Sign, I currently have just ~500 lines of code, most of them dealing with setting up the UI, and I can't even get a simple list box to work.

If this goes on, I'm afraid that I'll have to just give up. I've more important things to do.


Published at

Movel View... and then what?

I like design patterns, I've been testing the new Model View pattern for using in NQA, but while I canget the pretty UI to display, I can't seem to make it works. I have no idea what the problem is, there is the model, which works and I've tests to verify it, and here is the spiffy UI, which seems like it should be working, but doesn't.

Oh, yeah, there is this controller part as well :-)


Published at

Sin City

I saw the moive last night, and I can honestly say that I still have no idea aoubt what this moive is about, except that it stongly reminds me of Kill Bill, except that  Tarantino knows how to use colors, and Rodriguez doesn't. The whole thing gives a good sense of a graphic novel, except that there is not sense in the pictures on the screen. We start with an honest cop saving a girl from torture and muder, then we move to some brute that didn't like his girl being murdered, so he cuts people up (and he's the good guy), to another story about hiding the body of a rotten cop, then it's back again to the cop-saving-girl;

I usually love film noir movies, but there is no purpose, no sense of direction in this movie, there is no conneccting line between all the stories, and none of them is closed in a statisfactory way. Did I already mentioned the similiarities to Kill Bill? Where Kill Bill manages to convey a sense of beauty in all its violence, Sin City merely made me wonder whatever Superman had been visiting there (multiply bullets wounds without effects, etc).

All in all, very unsatisfying movie.


Published at


I just found about eLibPro, which is a personal library manager with tight integration to Amazon.

I must say that I'm liking it more the longer I'm using it. I managed to enter in two or three hours all my purchases from amazon (a lousy 143 books, or 2,254$ in seven years). It was very interesting to just remeber those books. I was suprised how much I remembered about each book just from its cover.

However, I still have ~1,000 (no, I'm not kidding, this is my personal library, and I read a lot) to catalog. Most of those books can easily be cataloged if I had a bar code scanner, like CueCat, or something similar. I checked, and the pricing for those things are quite out of range. I need something personal, no for a shop 24x7 tool.

Any ideas about what can be had in Israel? For that matter, is there a similar database for Hebrew books (of which I've considerably more than English ones)??

Any info would be appriciated.


Published at

Goodbye Berlios...

I've been using Berlios for quite a while, and was very pleased with their service (Subversion Repository is the main reason I picked them).

However, I recently added Continious Integration to NQA, and suddenly I started to get a lot of build failed errors. Appernatly (and this is just an assumstion), they block you if you log on too much.

It got to the point that it was a real bother to use, so I'm moving the repository into my own network, this means that the source code for NQA will no longer be publicly available in the repository. I'll of course continue to post both source and binaries for NQA with each release and it's going to remain open source software as well as free.


Language envy within the same language?

Don Box writes about Continuing Continuations and the things that you can do with it in .Net 2.0

I used to be a big time user for C++'s templates and the power that they offered, and I can't help wanting those things, right now. I can download VC# Express, but then I would lose ReSharper, which is still unacceptable to me.

In the meantime, I keep encountering places where just a but of anonymous methods would make it so much simpler...

Apparently I've language envy in the same language.


Published at

C# Stupidity

Consider the following code:

public interface IDemo
   void DemoMethod();
public abstract class DemoBase : IDemo
  public void DemoMethod(){ System.Console.WriteLine("from demo base"); }
public class Demo : DemoBase
 public void DemoMethod() { System.Console.WriteLine("from demo");}
public class Other
 public static void Main(string[] args)
  IDemo idemo = new Demo();

What do you think will happen when you run this code?

D:\>csc test.cs /nologo
test.cs(11,14): warning CS0108: The keyword new is required on
        'Demo.DemoMethod()' because it hides inherited member
test.cs(7,15): (Location of symbol related to previous warning)
from demo base

That wasn't what I meant, but I did get a warning, so let's add an override to Demo to make it work.

D:\>csc test.cs /nologo
test.cs(11,23): error CS0506: 'Demo.DemoMethod()' : cannot override inherited
        member 'DemoBase.DemoMethod()' because it is not marked virtual,
        abstract, or override
test.cs(7,15): (Location of symbol related to previous error)

I've not dugged deep enough into the CLR to see how interface members are implemented, but it seems to me that an interface member is already virtual, why do I need to declare it twice? It's different than the way it's done with abstract classes. And I can't see a reason why.


Published at

Worst site ever!

You would've thought, that with all their resources, MS would be able to produce a site that can do more than display an error page 88% of the time.

Operational Troubleshooting in Progress

The Gotdotnet team is aware of the current site operational issues and is working on a solution. Thanks for your patience.


This is not exactly something that is confidence inspiring!

Syntax highlighting controls

How hard can it be to display colored text on the screnn? Pretty damned hard, if you want to use open sourced software to do this. I've posted before on this issue, and I still can't get a definate answer for this.

Apperantly, there are two candidates for IDE like color highlighting:

  • Scintilla.Net
  • ICSharpCode.TextEditor

The first is what I want to use, but I can't get it to work as I want (just to color HQL/XML/SQL properly, with some intelli sense later on), because of the total lack of documentation in this project. :-(

The second is GPL (which I don't want to use), and further more, it's doesn't support word-wrapping, which I consider mandatory. :-(

Any suggestions? If someone out there has any info on how to use Scintilla, I would be very grateful.

  [Update: I forgot to set the post's title, fixed that now. Sorry for the URL change.]

ReSharper IDE

Via the Daily Grind, there is a Sneak Preview of ReSharper IDE.

I've posted before about how much I expect from this application, considerring their reputation and the way that ReSharper wormed into my heart.

Notice the cool way the XML comments are displayed. I hope we get rich editing there as well, and that you wouldn't need to work just to get the documentation right (yes, yes. The good ol' days when we wrote documentations in edlin..., what am I complaining about.)

The UI seems a little bit unpolished (noticed all the icons are the same in the tree view) but they are promising to get this better.

Who thinks that programming should be a bland job?


Published at

Cool add in idea

What I would like to see in VS 2003 is an add in which shows you the entire exception stack when you get an unhandled exception during debug.

Working with NHibernate can be very frustrating sometimes, you get a message saying: "Could not open connection", and the real reason for this is in the inner exception can be so annoying...


Published at

Logitech diNovo WTF!

I posted before about the problems my new Logitech DiNovo gave me. I still don't know why it crashed all the time, but it's working correctly now.

That was not before it put me through the seven levels of hell just to get it's software installed correctly. Here are just a few of the things that it did that caused a WTF during the installation:

  • Requiring a reboot to install its software. I could use the keyboard and mouse the moment I connected them, why require a reboot for installting (not the drivers, this I could accept) but the controlling software.
  • When logging in to the computer, disabling the keyboard and mouse, so I could do nothing but watch the screen and wait, and wait, and wait. I had used the keyboard and mouse to log in, so they worked. It's just that the software decided that it need to configure them, and so it cut the connection so it could reconnect again. I'd to install a USB mouse to get it to work. And this brings me to the next point.
  • Do you recall all the problems with automating UI? The result is very often fragile, etc, etc. Well, that is what Logitech choose to do in their software. They automated the entire process of installing the hardware by automating the UI for windows!!! I've never wrote a single driver in my life, but I knowthat there is an API for this, you don't need to simulate the user in order to get a driver installed.
  • Case in point, in my startup folder, I'd an application that pop up a window, which cause the entire installation of the keyboard and mouse software (read: critical devices), to hang, because the insallation can't send the simulated info to the correct window.
  • And, to add a sin to a crime, they fix their own window as a non-movable top most window, and put the UI for installtion the new hardware behind their window. So the user wouldn't notice that they cheat!

I said it before , the hardware is excelent, and the quality is felt in every key stroke. It's just that the software that accompany it has some very serious issues.


Published at

Google finally got it

This blog is about programming, not about blogs. I used to get all sort of blog google-ads about blogs, now I get them about refactoring and UML.

Published at

Hello, Windows...

Well, I got windows installed with only a little data loss, and that was my own fault. Here is an ordered list of the stuff that I installed, just to get me going.

Note to self: Remember that xcopy doesn't copy hidden files by default! I lost my outlook history info this way! (I'm not really angry because I just subscribed to the keep the inbox clean approach and deleted most of it myself.)

I hope to be able to post more frequently now, that I think that I've everything put together.


Published at

Goodbye, Windows...

Today was the last straw. I cannot keep going this installation without too much work.

I'm running the same install through three machines, countless hardware upgrades, and three years (psinfo says that I last installed in 22/06/2002). Now, however, I must resort to the Weapon of Doom(!!!).

I'm going to wipe and re-install my machine. Because there are so much cruft there that I can't seem to clean without too much effort. On the top of my head is the inability to install MS SQL Server Express correctly, the recent problems with the Logitech diNovo keyboard, the most recent sound problems.

Enough is enough, and while I truly believe that this should be a last resort. I've reached the conclustion that I've no choice in the matter. Despite the tremendous amount of work that a reinstall create (and the associated loss of productivity, even if just because a setting change), I feel that this would be the easier to simply reinstall than find the problem and fix it.


Published at