If you don't make mistakes, you're doing it wrong.

This certainly applies to Computer Science and even general hackerdom. Maybe this is a good response to list trolls who attack Java, Mono / .NET, virtualization, etc... at the slightest provocation. Because presenting them with facts and performance numbers doesn't seem to matter. But they probably wouldn't get the joke anyway. Oh, well.

As for making mistakes, just look at some of my code! I must be doing it very right.


Hg ignore for MonoDevelop Gtk# Projects

When using Hg (Mercurial) to do version control for Gtk# applications developed using MonoDevelop you'll want to create an .hgignore file in the root of your repository with the following contents:
syntax: glob

This will make sure Hg ignores all the meta-data and temporary files created by MonoDevelop and its built in Gtk# GUI designer. Otherwise these files change constantly and either always appear as modified or, if commited, clog up the revision history.


Consonance now on Hg

I have switched the Consonance project on Google Code from subversion to Mercurial. After using Sourceforge's Hg support for OpenGroupware COILS and then hacking on Consonance with little to no Internet access... subversion just had to go. To clone the Consonance repository just do a:
hg clone https://consonance.googlecode.com/hg/ consonance

Consonance Progress, at last.

While on vacation I had to time to address some unresolved issues left over from the last revamp of the OpenGroupware .NET client assembly and Gtk# application [Consonance]. For the client searching now works again - that was a stupid bug where the callback was never set. Also fixed up numerous bugs in the Gtk# client so Contacts can be updated including company values, addresses, and telephone numbers. After five years of off-and-on hacking I think Whitemice.ZOGI.Backend is now stable and seems to perform very well.
  • Operations from the work queue now time out, so if a callback is lost the work queue doesn't hang.
  • Responses to background priority requests are delayed until there is no higher priority work; previously responses to RPC calls where all processed at the same priority regardless of the priority of the original request.
  • ContactDetailForm is now an IStorableEntityForm.