Unison File Synchronizer, Gentoo and Windows

I’m currently migrating a couple of Windows boxes. When installing the latest (at the time of writing) Unison for Windows, I ran into three problems:

  1. Unison didn’t find the appropriate GTK+ DLL on the Windows boxes. This can easily be solved by installing GTK+ for Windows as explained (note: “If everything else fails, read the manuals” is not always the best strategy, but it’s applicable here too ;)
  2. After having emerged unision on my server and configured a new unison profile on the current Windows box, when executing unison on Windows, it complained about a rather cryptic ‘Uncaught exception Unix.Unix_error(20, “create_process”, “ssh”)’ error. Googling lead to the nice Bornholtz Group blog entry explaining what to do in such a case. Doing what’s written there solved the problem for me.
  3. After that, unison on Windows could connect to the server but complained about a unison version mismatch. My local “Unison for Windows” version was 2.27.10 whereas Gentoo installed an outdated version 2.17.1 of unison (unison-2.17.1-r1.ebuild).. and even for that I had to add an ~amd64 keyword for net-misc/unison to /etc/portage/package.keywords. So I had to make Gentoo install the most current stable version of unision, i.e. v2.27.10. Fortunately, that’s very easy to do, but yet it has to be done manually (edit the existing unison ebuild, creating new digests and manifest files, copy the things to the local portage overlay etc.). For your convenience, I’ve added a TGZ archive for Unison v2.27.10 which you can extract in your local overlay portage tree (e.g. in /usr/local/portage, don’t forget to configure it in /etc/make.conf: set PORTDIR_OVERLAY=/usr/local/portage): net-misc_unison_2.27.10.tgz.

Now unison works great for me. Nonetheless I haven’t tested this only slightly modified ebuild thoroughly enough for submitting it to bugs.gentoo.org. So keep this in mind before using it.. (no warranty etc. blah blah ;)

BlogCampSwitzerland’07

Back home from a (too) short visit to the BlogCampSwitzerland. Unfortunately, I missed the morning sessions as I was partying in the future yesterday evening till early today ;). Nonetheless I enjoyed attending a couple of sessions and meeting other ppl living in and around the Swiss blogosphere.

I don’t have the time at the moment, but will come up with some more comments later..

goScreen version 5.3 released

Andrei Gourianov has released version 5.3 of my most favourite Windows tool: goScreen.
It has a couple of new features, among others the possibility to specify “default applications” for each screen page.

So, if you’re thinking about “going multi-headed” think twice and check out goScreen first. You’ll find that switching between many different virtual desktops[1] is much faster and less tiring than doing the same with real screens. Not mentioning the very significant difference in weight, power consumption and costs..

[1] I’m currently using 11 of them and don’t notice any lag at all

Google’s “cruft” on my desktop

On my (apart from this, great [1]) new Lenovo ThinkPad T60p business notebook, several Google “tools” are pre-installed which neither make sense for me nor likely for anybody else who uses his notebook for serious work (I thought “business” actually implies “serious work”, doesn’t it? ;). These apps are either bothersome attention seekers (like that message center displaying nag pop-ups with latest world news headlines every couple of minutes), unnecessary battery killers and hard disk fragmenters (like the desktop search tool) or otherwise useless tools like an image management app or an IE toolbar (I need to keep IE as authentic as possible. For my daily work, I use Firefox). Now I need to uninstall these apps manually piece-by-piece.

Lenovo: Please refrain from pre-installing such silly software toys on your business notebooks. Be assured that business users tend to know exactly what software they need and want to be most productive. Thanks.

[1] Of course I deactivated the “integrated security chip” and the finger print reader

Linksys WRT300N Wireless-N Broadband Router and the “AP Isolation” option

If you have a Linksys WRT300N Wireless-N Broadband Router and wonder why Windows file sharing (SMB/CIFS/Samba) between different wireless clients doesn’t work, find out that you can’t even ping other WLAN clients, then you’ll probably need to disable the checkbox cryptically labelled “AP isolation” in the tab “Wireless -> Advanced Wireless Settings” of your access point.

Dear Linksys engineers:

  1. Please don’t set a default that an estimated 95% of all buyers/users of the product will need to change.
  2. If you set a default that most likely will need to be changed by almost any user, please don’t hide the according checkbox in a submenu labelled “Advanced Wireless Settings”, targeted at advanced users.
  3. If you decide to hide a checkbox for a setting which most likely will need to be changed, please don’t label it misleadingly “AP isolation” whereas the setting should rather be called “wireless client isolation”.
  4. Fine. So you decided to label the checkbox wrongly. Why be so cryptic about it then? Can’t you at least label it “Access point isolation” instead of just “AP isolation”? Do you believe the latter will make life easier for joe average or experts?
  5. Last but not least: Why isn’t the “AP isolation” feature/setting mentioned at all in the pop-up help of the according tab?

Thanks.

Firefox getting fat

I’m not pleased with the changes introduced with Firefox 2.0

  • Instead of getting better, Firefox just got fatter and slower (more and more reminding of a fat, dumb Mozilla than an agile and smart fox)
  • The new default theme mimics the silly Windows Vista look with all the glares, the blurry “Web 2.0” (sic!) edges, borders and icons.
  • Although a good thing from a didactic point of view, having “close” buttons on each tab is very unhandy: It takes too much valuable horizontal space, it’s more likely that one accidentally closes a tab instead of selecting it, it doesn’t improve usability as one could always close a tab by clicking on it with the middle mouse button, the very handy button on the right of the tab bar is now missing.

I’ve downgraded to Firefox 1.5 again.

Web 2.0: How to close the gap between consumer and business expectations by using JSF and AJAX

The following online presentation/demo about Exadel‘s new Ajax4jsf component library sums up nicely why you shouldn’t try hacking your own AJAX code but use an AJAX enabled JSF component library (like Ajax4jsf and others) instead:

Ajax4jsf: Rich Internet Applications with JSF and AJAX

In short: It’s all about ensuring good maintainability and hence transparency (in the sense of encapsulation and information hiding) while delivering a rich user experience nonetheless. Handcrafted, customized AJAX pages quickly tend to get complex and confusing and hardly ever follow important software architecture principles like modularization, abstraction, loose coupling, information hiding and encapsulation. The result is a piece of code that meets the consumer expectations at best (interactivity, responsiveness, etc.) but is very difficult to maintain (as server- and client-side code, customized and “standardized” code are wildly mixed). Using an AJAX enabled JSF components framework instead transparently hides the AJAX part of the code from the programmer by encapsulating it in JSF components. It’s thus possible to provide rich AJAX functionality by writing JSF server-side code as usual without needing to care about the internals of AJAX at all. If none of the existing components deliver AJAX-wise what customers expect, simply extend and customize the best matching component or write your own highly customized JSF component from scratch. JSF’s flexibility and sophisticated architecture makes this possible. Doing customization like this won’t clutter up your server-side code and will thus keep it maintainable and scalable.

While I haven’t tried this particular AJAX enabled JSF component framework yet and can’t comment on its implementation at this point (here’s a nice architectural overview of the different approaches how to combine AJAX and JSF from a framework developer’s view), the sprouting of AJAXified JSF component frameworks is a clear indication that more and more developers are becoming aware of the maintainability issues inherent to plain AJAX hacking.

For more information, here’s an interview with Max Katz, senior engineer with Exadel and Ajax4jsf committer and here’s the Ajax4jsf whitepaper.