Tomer Gabel's annoying spot on the 'net RSS 2.0
# Wednesday, 30 September 2009

Download ant-intellij-tasks-1.0-b1.zip 

A great but oft-ignored feature of Visual Studio 2005 and up is the inherent consolidation of an important developer tool: the build system. With a Visual Studio solution you can simply run MSBuild and you get accurate, automated builds. This is an invaluable capability: continuous integration is ridiculously easy to set up, as are nightly builds and automated deployment tools.

Since I started working for Delver (now Sears) I’ve been switching back and forth between C# (2.0 and later 3.0) and Java 1.6, and though the ecosystems share many similarities there are also several glaring differences. The first of these differences is that, in the Java world, it is perfectly acceptable – even traditional – to maintain a dual project structure, one using the IDE (usually Eclipse or IntelliJ IDEA) and one using one of the build tools (commonly Ant or Maven). The build scripts need to be continuously synchronized with the project structure, and output parity between the two separate build systems is almost unheard-of.

Because I had been a complete Java newbie when I started, I had never had the time to really sit down and set up a continuous integration server for our Java codebase, a mistake I did not intent to repeat when Sears took over. The first item on my agenda was to do away with the dual project structure; we originally used Eclipse, so I built a custom Ant script (my first, actually) around ant4eclipse and managed to come up with a semi-satisfactory solution. This also gave us invaluable insight when it was time to revisit our IDE choice; the lackluster project structure offered by Eclipse, along with firm positive comments on IntelliJ IDEA from several team members, tipped the balance and led us to switch to the alternative IDE, while also creating the necessity for a revamped build system can that work on top of the IntelliJ IDEA project structure.

Out of necessity, a project was born. ant-intellij-tasks is the result of several months of all-night itch-scratching on my part. While not directly affiliated with the company, we’ve been dogfooding the project at Sears for over a month now, and while there are certainly rough edges it finally seems stable enough for release! From the project website:

ant-intellij-tasks is a self-contained build system for IntelliJ IDEA projects based around Apache Ant. In essence, ant-intellij-tasks comprises three components:

  1. An Ant task library that can extract and resolve the IntelliJ IDEA project and module files (.ipr and .iml respectively), and provides a set of tasks and conditions around the project structure;
  2. A common build script which provides the four major build targets for modules: clean, build, test and package (see the quickstart guide);
  3. A master build script which extends these targets to the entire project.

The build system is designed to be extensible (e.g. by adding targets), customizable (e.g. by overriding a target's behavior for a specific module) and self contained in that it's a drop-in solution that should not require any significant modifications to the code base.

 

This project is fully open source (distributed under an Apache license) and hosted at Google Code. Please report any bugs or issues on the project issue tracker.

 

ant-intellij-tasks makes use of, and redistributes, the ant-contrib task library.

Wednesday, 30 September 2009 08:18:58 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Java | Software | ant-intellij-tasks
# Monday, 20 April 2009

I ran a Google image search today, and was surprised to see this:

google_images_color

New feature, hurray! (and may actually prove useful…)

Monday, 20 April 2009 15:25:17 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Thursday, 26 March 2009

It seems nothing to do with maintaining this website is as easy or as simple as it should be. Whenever I switch hosts it’s an uphill struggle to get the site up and running again; whenever I upgrade dasBlog to a newer version I have to learn a lot about how it works, how ASP.NET works, how IIS is configured etc. It’s enough to make me seriously consider hosting my blog elsewhere and/or moving to another blogging platform, but the truth is I love dasBlog so much I simply forget how complex and volatile it can be and have to go through the same frustrating process whenever something changes.

The way I update my site is usually this:

  1. Ensure I have an up-to-date local mirror of the website. dasBlog keeps all of its data in XML files, so backing up the website is simply a question of wget –-passive-ftp –m ftp://user:password@website.com; I have a daily scheduled task to take care of this.
  2. Copy the latest mirrored version to a working directory; set the directory up as an IIS website/virtual directory.
  3. Test the new working copy to make sure it works.
  4. Perform whatever modifications are required.
  5. Test again to make sure that the website works with multiple browsers (this time I tested with Chrome 2.0.170.0, Firefox 3.1 Beta 3 and IE 8)
  6. Upload the website over FTP using the FileZilla client. I always verify that the relevant configuration files and binaries are overwritten and nothing else.

This process generally allows me to test upgrades before uploading them to the “production” website, as well as provides an easy rollback path if something goes wrong. Thing is, something always goes wrong. In this case, although nothing’s changed in the site configuration I started getting SecurityExceptions just after the upgrade:

Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

This is one of the least informative error messages I have ever seen. All it tells me is that a request for some permission is denied; it doesn’t say what permission was requested, nor by whom (the stack trace seemed to indicate the permission was asserted from within System.Diagnostics.Trace, which doesn’t make much sense). A quick web search brought me to this page, which deals specifically with installing dasBlog on a GoDaddy-hosted website. Because GoDaddy runs ASP.NET applications under a modified medium trust that allows file-system access only to the virtual directory hierarchy, the site recommends adding a virtual directory for each of dasBlog’s writable directories (content, siteconfig, logs); I tried this out and the problem was not resolved.

At this point I was getting desperate, and was willing to try just about anything to get the site up and running again. Eventually I ran a diff between the site backup and the newly modified version, and found a new openidConsumerTrace.txt file in the site root. I’ve never seen that one before; where'd it come from? A quick search showed the following section in the web.config file:

<system.diagnostics>
    <assert assertuienabled="false"/>
    <switches>
        <add name="OpenID" value="4"/>
    </switches>

    <trace autoflush="true" indentsize="4">
        <listeners>
            <add name="fileLogger" type="System.Diagnostics.TextWriterTraceListener"
                 initializeData="openidConsumerTrace.txt" traceOutputOptions="None"/>
        </listeners>
    </trace>
</system.diagnostics>

A-ha! So the OpenID activity trace log is written to the virtual root, which is not writable (I set the ACLs to only allow writes to the above three directories). I tried changing the trace file path to ~/logs/openidConsumerTrace.txt (which is a virtual directory and has the appropriate write ACL), but this did not resolve the problem. At this point I was ready to roll back to the previous version and work on switching to another (perhaps hosted) blogging platform, and in my despair I simply commented out the whole system.diagnostics section; oddly enough, this resolved the problem…

Now I know dasBlog is free and there’s little or no point complaining, so I hope this post helps someone handle the problem. And if anyone from the dasBlog team is reading this… please be a little more careful with undocumented dependencies?

Thursday, 26 March 2009 15:32:08 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Wednesday, 11 March 2009

I was making modifications to one of our components, and running all of the unit tests revealed that all database-dependant integration tests were failing:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 0 ms ago.
<snip> (cut for brevity’s sake)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2104)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:729)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)

Strange error message, but as it turns out the inner exception was far more revealing:

java.net.ConnectException: Connection refused: connect

As can be expected, the local MySQL server was up and running, and I was able to connect with the command line tool as well as with SQLYog, so it was obviously not a problem with MySQL or the local firewall. Next up I tried to telnet to the appropriate port (the easiest way I know to check port-level connectivity) without success:

Can't connect to localhost

I next tried to connect to the loopback IP (127.0.0.1), and experienced a major WTF moment when the connection succeeded. I use Windows Server 2008 and, as it turns out, it supports IPv6 out of the box. localhost has a slightly different meaning under IPv6 (it maps to ::1), and as I understand it traditional IPv4 traffic is tunneled over the looback IPv6 connection; I’m not yet familiar enough with IPv6 to draw any conclusions on why the above shouldn’t work, but the bottom line is there are several ways of resolving the problem:

  1. Edit your hosts file (it’s hidden under Windows Server 2008, but you should be able to Start->Run->notepad %SYSTEMROOT%\System32\Drivers\etc\hosts) and change the mapping for localhost from “::1 localhost” to “127.0.0.1 localhost”. This does resolve the problem, although I can’t say what impact this will have on IPv6-enabled applications.
  2. Set the TCP stack to prefer IPv4 to IPv6 when attempting to connect (it’s the reverse by default). According to this forum post, this entails setting the registry value HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters\DisabledComponents to the DWORD value 0x20.
  3. Disable IPv6 altogether for your network connection: remove the IPv6 protocol from your network connection component list. At this point in time IPv6 is still very rare so I doubt this will cause any significant issues, but YMMV.

For me, changing the hosts file was the quickest solution because it works and is easy to revert. I’ll have to keep a very careful eye on the behavior of my machine though.

Wednesday, 11 March 2009 13:02:08 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Sunday, 14 December 2008

Chrome "final" is out, so go ahead and update your browser. This is essentially an 0.4.x development version that's been promoted to 1.0 status; if you're looking for more information on Chrome releases, check out this blog. You can get the development releases on the Chrome dev channel page.

I'm still using Chrome on both machines at home, but at work I'm testing out the new Firefox 3.1 beta 2. While there are many subtle differences between 3.0 and this beta, the primary differences are: a new privacy browsing mode (a la Chrome's incognito mode), a thoroughly revamped JavaScript engine that brings Firefox's performance to nearly-Chrome levels, and improvements to the way tabs can be rearranged.

Finally, Microsoft have finally retired FolderShare and replaced it with Windows Live Sync. I've only just started using it, and so far it looks the exact same as FolderShare, which is definitely a good thing. They've also added Unicode filename support, the lack of which was for me the biggest drawback in using FolderShare. I just hope Microsoft intend to actually improve this amazing tool, since it hasn't seen any visible improvement in over two years. To be blunt, the Microsoft treatment of FolderShare so far hasn't been very impressive, as is evidenced by the FAQ posted on the Sync team blog:

Q. What will happen to my computers running FolderShare? What about my folders and files?
A.
 Sync is designed to make the transition easy for you. When Sync releases, any computers running FolderShare will stop synchronizing files [emphasis mine --TG] and will notify you that you need to download Sync. All of your files and folders will remain untouched on your computers, but you need to install Sync on each computer to continue synchronizing files.

Sunday, 14 December 2008 11:17:53 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Tuesday, 09 December 2008

Update (12-Jan-09): The latest Windows Live Essentials installer supports Windows Server 2008 (including x64), so no more hacks are necessary to get Messenger and/or Live Writer to work.

Update (7-Jan-09): Check out the addendum on Hyper-V performance issues below.

I’ve been using the 64-bit version of Windows Server 2008 as my development platform for the last few weeks, and have been quite happy with it. Following is a more or less verbatim transcript of the e-mail I sent out to the development guys at Delver, which may of be of some benefit to others:

Memory Requirements

Like it or not, this operating system does need more memory, but it also handles more memory (unlike 32-bit Windows which is practically limited to 3.3 [or so] GB). With 4GB on this machine I run the following applications constantly and it hardly ever swaps:

  • Google Chrome (with a buttload of tabs)
  • Total Commander
  • Process Explorer
  • Eclipse
  • Outlook
  • mRemote
  • MediaMonkey
  • Notepad++
  • Visual Studio 2005 + ReSharper 3.1.1
  • Skype
  • Live Messenger
  • FolderShare
  • KeePass

As an aside, this is also a list of software I currently use and recommend :-)

Application Compatibility

Practically every application I’ve tried so far works (the exception being the file monitor in MediaMonkey, I’ve an open bug on this). I also make it a point to try x64 versions of software where available, and these are the important bits you should know:

  • Eclipse has a 64-bit version (which runs on 64-bit JREs). I tried it for a bit and it appears to work fine, but are there some problems with Subclipse (the integration plug-in for Subversion). Subclipse can work in one of two modes: using a Java-native Subversion client library, which is unfortunately very unstable (the IDE simply crashes after 5-10 operations), or a native-code thunking API called JavaHL. The Subclipse distribution only comes with 32-bit binaries, however, and I couldn’t find 64-bit JavaHL binaries (the SlikSVN x64 client works like a charm, but doesn’t come with a JavaHL implementation). For this reason I’d recommend the following:
    1. Install a 32-bit JRE on your machine (the latest JRE is recommended). Either set your JRE_HOME accordingly or (preferably) use the -vm flag for the Eclipse launcher.
    2. Install a 64-bit JDK for development purposes. Configure Eclipse (via Windows->Preferences->Java->Installed JREs) to use the 64-bit JDK as the default runtime. This lets you develop on a 64-bit VM.
    3. If you use YourKit Java Profiler, make sure to install the integration plug-in in 64-bit mode (it lets you decide) if you use a 64-bit VM for development.
  • Checkpoint VPN-1 SecuRemote (the Checkpoint VPN client) has no x64 version, which means it simply cannot be installed. I resorted to a Windows XP 32-bit virtual machine running on Hyper-V for when I need VPN access. Hurray for Checkpoint.
  • Visual Studio 2005: Just install it as you normally would, along with ReSharper. You don’t need to do anything, and debug sessions for .NET code start as 64-bit processes. One caveat: it appears that the 64-bit debugger does not support edit-and-continue; if this is really an issue for you, here are instructions on running the debugee as a 32-bit image.
  • The various Microsoft Live! installers (Messenger, Writer, etc.) don’t support Windows Server 2008, even though the products themselves do. A quick Google search will get you instructions on how to install them anyway (use the individual MSIs directly). (12-Jan-09) No longer relevant, just download the latest installer.
  • The following applications have native x64 versions that “just work”:
    1. Eclipse (other than the problem described above). The version is not easy to find, you have to go through the Other Downloads page any find the x86_64 build.
    2. MySQL. Everything works as you’d expect.
    3. Gimp has an experimental x64 version which, again, isn't that easy to find: you have to go via the SourceForge project page and look in the stable releases. So far this version seems quite fast and robust.

Things To Do

You’ll probably want to perform these steps to get the environment closer to what you’re used to:

  • Disable the annoying shutdown event tracker.
  • Disable Internet Explorer enhanced security mode.
  • Start->right click on Computer->Properties->Advanced System Settings->Performance Settings...->Advanced and select Programs instead of Background Services (changes the paging behavior and makes everything much more responsive).
  • To get a more Vista-like look:
    1. Install the Desktop Experience feature from the Server Manager
    2. Change the “Themes” service startup mode from Disabled to Automatic
    3. Right-click your desktop->Personalize->Theme and change to Windows Vista
    4. Right-click your desktop->Personalize->Window Color and Appearance and change to Windows Aero
  • If you want audio:
    1. Change the Windows Audio service’s startup mode from Disabled to Automatic.
    2. If you get audio stuttering, change the registry key HKLM\Software\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\SystemResponsiveness from 100 (0x64) to 20 (0x14)

If you want to use virtualization (Hyper-V), make sure you update to the latest BIOS (I had an older BIOS installed that didn’t have an updated processor microcode) and enable the feature in the BIOS menu (usually disabled by default).

Benefits

  • It’s fast (feels way snappier than Vista)
  • 64-bit OS (closer to our actual production environment)
  • Virtualization support (Hyper-V)

Update: Hyper-V and Multimedia Performance

Apparently installing the Hyper-V role can have some repercussions when it comes to multimedia performance in Windows. Specifically, when running under the hypervisor you may experience very high CPU spikes (mostly kernel time) when starting up any DirectShow-based application (e.g. Windows Media Player or the considerably better Media Player Classic Home-cinema) or a remote desktop session. These will effect make your machine freeze for 5-10 seconds.

According to the rather insightful comments here, this quite likely has to do with NVidia drivers though I have not yet verified this. I don't have consistent need for Hyper-V so I simply disabled it, which resolved the problem. If you require virtualization and still want proper multimedia support you may have to resort to ATi cards.

Tuesday, 09 December 2008 18:20:13 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Sunday, 02 November 2008

It appears it's been two months since my previous post on Chrome, so it's time for a retrospective look at the browser and its alternatives:

  • Chrome is fast.

Bleeding fast, in fact. It's been said before and I'll reiterate it - it just feels fast. I don't have any objective measurements nor do I care; my surfing habits haven't changed since moving from Firefox to Chrome, but the increase in responsiveness is both perceived and welcome.

  • Chrome is stable.

Seriously, it doesn't crash. Firefox is actually quite stable, but it suffers from its own version of winrot, and either becomes exceedingly slow or simply crashes within a day or two. Chrome hardly ever does.

Additionally, the Shockwave plugin has an annoying tendency to break oddly on the machine at work (specifically, videos play only until 00:02 with no sound), and whereas with Firefox I had to restart the browser, with Chrome I can simply terminate the process hosting the Shockwave plugin (usually recognized by being the Chrome.exe process with highest CPU utilization, but I prefer to use Process Explorer to make sure) and Chrome restarts it just fine.

All said and done, I've seen Chrome crash maybe twice these past few months, and I use it exclusively (at work and on my two home machines).

  • Chrome is full featured.

Really, it is. Most people, particularly those used to vanilla Internet Explorer 7 (or even, God forbid, 6) will not lack any functionality, at all. For power users, however...

If there's one feature in Chrome that I'm seriously missing, it's ABP (Adblock Plus, or an equivalent ad blocker). This ubiquitous Firefox extension simply sits there, unobtrusively blocks crap from taking your bandwidth and overloading your brain, is so simple to use even my granddad could get the hang of it and it Just WorksTM.

And don't buy into the Privoxy nonsense; it can take hours to configure just to be as effective as ABP, not even remotely as user friendly and requires you to run yet another server process. In my opinion it's not really worth the hassle for any but the fastidious power users (please don't take this personally, Privoxy guys -- I don't think I'm your target audience anyway).

  • Chrome needs session management.

It's hella-annoying to have to copy my URLs aside manually. The good old Session Manager extension for Firefox is another unobtrusive add-on that Just Works, one which the Chrome team should certainly emulate (at least until an extension framework is available).

  • Chrome does not handle Hebrew all that well.

RTL editing in Chrome is, to be blunt, a difficult affair at best. Although text navigation may appear to work at first glance, as soon as Hebrew characters enter the equation the whole thing becomes a right mess that's harder to handle than even Firefox in its prehistoric, Firebird days. Encoding detection seems to be a lot less robust than in Firefox (props, ShooshX!) at least for Hebrew - since that one's completely open-source, I'd certainly advise the Chrome team to import that code-base.

  • Chrome desperately needs full-page zoom.

Along with Adblock Plus, this is the one killer-feature for Firefox it's really difficult for me to do without. I use both Chrome and Firefox on my living room HTPC (Pioneer PDP-4080XA plasma display via HDMI at 1280x720) from quite a few meters, and the full page zoom in Firefox is simply light-years away from Chrome in successfully enlarging web-sites. So much so, in fact, that I've found myself more often than not going back to Firefox for that particular machine.

So, bottom line: do I like Chrome? Hell yes. I'll definitely continue using it and monitoring its progress. The browser has been amazingly impressive since day one, kudos to the astoundingly talented guys at Google who integrated the whole thing. In fact, the product is so solid it doesn't even feel like an underdog contender. I'll probably end up alternating back and forth with Firefox until it boils down to a question of taste.

Sunday, 02 November 2008 22:10:43 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Thursday, 11 September 2008

After a long hiatus I've found the time to update PicasaWebDownloader. If you're using the tool, there's a bunch of compelling reasons why you'd probably want to update. As always, code is included and feedback is welcome.

Thursday, 11 September 2008 17:32:12 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Wednesday, 03 September 2008

Update (22-Sep-08): As Peter Kasting from the Chromium team (I think?) mentioned in the comments, this hack is unnecessary. Simply go to google.com, click on Google In English, restart Chrome and wait about 10 seconds, which will result in the desired behavior.

Chrome is amazing. It really is. Ridiculously fast, ridiculously compact (less than 0.5MB installation!) and seems to just work, which is truly astonishing for a product of this caliber, particularly the first version thereof.

The one obvious deficiency I could find was that it decided on google.co.il (the Israeli version of the Google homepage) as my default search provider, whereas my preference is for the regular English version on google.com. The search provider settings cannot be changed and do not respect the homepage's cookie (click on Google in English once and you're supposed to be done with it). Apparently it uses a {google:baseURL} macro which does not appear to be defined anywhere, and the only workaround I could find was:

  • Start->Run
  • notepad "%userprofile%\AppData\Local\Google\Chrome\User Data\Default"
  • Look for the line starting with "search_url": (for me it was line 8)
  • Replace {google:baseURL} with http://www.google.com/

The damn thing still changes the setting every now and then. I'll file a bugreport with Google, but this should suffice in the meantime (search results rendered right-to-left can drive me up the wall).

Update: As Shy noted in the comments, the installer actually is a downloader, I just didn't notice the first time because I was doing other things while it was starting up. In practice, though, it's annoying as hell, particularly if you're on a slow pipe. Bad Google!

Wednesday, 03 September 2008 16:40:34 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Tuesday, 02 September 2008

Update (11 March 2009): Microsoft has retired FolderShare in favor of Windows Live Sync. It’s basically the same service, except they’ve significantly increased the file limit per library and finally added full Unicode support. Now that my two major gripes with the service are resolved I’m perfectly happy with Sync, and it’s free to boot!

I have a very large collection of music files, easily 70GB with thousands of files (those lossless rips can be quite space-consuming). I listen to music both at home and at work, and don't want to go through the trouble of synchronizing these collections manually. In fact, I would like a service that fulfills the following requirements:

  • Easy to set up;
  • Works across NAT, preferably with UPnP support;
  • Full Unicode support;
  • No artificial limit on library size;
  • Not required, but definitely advantageous:
    • Free;
    • Low memory and CPU overhead;
    • Libraries are accessible over the web;
    • Some sort of online backup solution

The NAT support is an absolute must, as I have little or no control over the firewall at work. Unicode support may sound like a trivial requirement, but as you'll see most solutions do not properly support Unicode. My collection contains albums in multiple languages, including Hebrew, Japanese and Norsk, but even English albums can cause issues (Blue Öyster Cult, for example).

I've tested the following solutions:

Microsoft FolderShare (now Windows Live Sync, see update above)

Although this is one of the oldest players in the game (the company was bought out by Microsoft in 2005) it hasn't seen any visible improvement in a very long time. Despite the apparent dormant development, the service itself works well and is very consistent and reliable. What separates FolderShare from any other solution I've tested is a very user-centric design: any reasonably literate computer user (read: knows what files are and can double-click on an install button) should be able to set up a FolderShare account and start synchronizing files literally in minutes. Once set up the service simply works; other than the disadvantages which I'll enumerate momentarily, I've had absolutely zero problems with the service in over a year of use (well, to be honest there was a highly-publicized two-week service outtage over a year ago, but it's been hassle-free before and since).

FolderShare fails in two specific ways: it's limited to 10,000 files per library (I think there's a limit on the number of libraries supported, but I've never come close to it), and it does not properly support Unicode. This means that files with characters outside the ANSI character set and machine codepage simply do not get synchronized. Other than that its interface is amazingly limited with very few customizable options, but in my opinion this isn't really an issue because the software simply does its job really well.

With these disadvantages in mind, I wouldn't hesitate to recommend FolderShare to English speakers (or ones that do not make use of non-Latin file names), but the rest of us will have to look elsewhere. With Unicode support I'd definitely go back to FolderShare though, it's an excellent product.

PowerFolder

Touted as an open-source file synchronization solution, PowerFolder utterly failed to impress me; it appears to be a very powerful solution, but consequently suffers from a very cluttered UI that's hard to grok. I wouldn't recommend this service to casual users, and it wasn't trivial for me (as a software developer) to figure out either.

I installed a trial version of PowerFolder Pro on both machines, but once I got past the strange UI idioms I just couldn't get the software to work reliably. I managed to send an invitation from one machine to the next (synchronized directories in PowerFolder do not appear to be centrally managed), but couldn't figure out how to get them to sync reliably nor how to resolve file conflicts. Finally, the client software is a real memory hog.

BeInSync

Fairly similar to PowerFolder (with additional online backup features on Amazon's S3 storage service), BeInSync is a commercial product that appears to provide all of the features I require. The service was fairly easy to set up, although not nearly as streamlined as FolderShare. I got my directories to synchronize properly and was relieved to find that Unicode is fully supported by this product.

Despite the promising start, my experience with this product was far from satisfactory: the client UI is incredibly slow and non-responsive. Other than general slowness in rendering speed and bizarre UI idioms (for example, the only way to get a reasonable status display is via the View menu), resolving synchronization conflicts can easily take 30 seconds per file with no batching capabilities at all. On top of that the client software is a major resource hog, easily taking up 60MB and more resident memory, and for a reason I couldn't figure out I could see 3-9MB per second I/O activity from the client although it exhibits no synchronization activity. To add insult to injury, the uninstall program requested that I restart my computer - nitpicking, I know, but what the hell?

Having tested three different services I'm sorely tempted to go back to FolderShare and figure our a manual synchronization scheme for the Unicode files. The other alternative is a homebrew VPN+robocopy/rsync/SyncToy solution which I'd prefer to avoid. I'm rather surprised that it's so hard to find hassle-free synchronization services so late in the game...

Tuesday, 02 September 2008 18:15:18 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Monday, 18 August 2008

This guy hooked up an old Sinclair ZX Spectrum to a bunch of crappy hardware (a hard drive array, an old dot matrix printer and a scanner) and got them to play an amusing (though still impressive) approximation of Radio Head's "Nude". Here's to a bigger geek than I can ever hope to be!

spectrum_zx_madness

Monday, 18 August 2008 11:06:56 (Jerusalem Standard Time, UTC+02:00)  #    -
Music | Software
# Wednesday, 16 July 2008

In addition to the wide press coverage on US-oriented technology sites we've seen coverage from two major Israeli news providers (Hebrew only, for now): Calcalist and TheMarker.

Now comes the fun part; Delver is still borderline-alpha. We've been working hard testing and tweaking it, and getting a system of this complexity working in good order on a ridiculously short schedule feels astounding. I sincerely believe the Delver premise is a solid one, and we're giving you a mere inkling of what's in store for the concept; now all we have to do is work harder, growing along with the product and slowly but surely realizing its full potential.

The brilliant part? Beyond the dreams of rich and fame, this product already is useful; with relentless improvements it may yet become as indispensable a tool to Internet denizens as Google, Wikipedia and Facebook are today.

Wednesday, 16 July 2008 01:45:24 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Tuesday, 15 July 2008

An alpha version of our search engine is now open for all users!

logo_web_ship

We've been working towards this day for the past year, building a complete and functional search engine from scratch on a completely original premise. I'm both amazed and proud of the work done by the various teams, and I'm still can't believe we've managed to pull this off in so little time. Launching the search engine publicly seems like a great way to celebrate the year I've been working for Delver (as of July 1st).

Mind you, the service is still new and we're hammering away at the kinks, but so far we've had overwhelmingly positive press coverage and the various comments are sincerely flattering. Here's to another amazing year!

As an aside, we're got openings on my team (search back-end) for extremely talented software developers who are interested in building performance-driven, robust back-end software in a variety of technologies. Interested? Contact me for details at tomer@delver.com!

Tuesday, 15 July 2008 21:05:27 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Sunday, 22 June 2008

After figuring out the problem with the old dasBlog permalinks I had to figure out a way to convert all existing links in my blog to the new format. Lately whenever I need a script I try and take the opportunity to learn a bit of Python, so it took an hour or two to write the conversion script.

Here it is; if you want to use this for your own copy of dasBlog, change the "domain" global variable to wherever your blog is located and run this from your ~/Content directory (you can also download the script here):

#!/usr/local/bin/python
#
# convert_permalinks.py
# Quick and dirty permalink converter for dasBlog content files
#
# Tomer Gabel, 22 June 2008
# http://www.tomergabel.com
#
# This code is placed in the public domain (see http://creativecommons.org/licenses/publicdomain/)

from __future__ import with_statement
import os
import glob
import re
import urllib

# Static constants
domain = 'tomergabel.com'
href_lookup = re.compile( 'href="(http:\/\/(www\.)?' + re.escape( domain ) + '/[^"]*\+[^"]*?)"' )

# Globals
conversion_map = {}

# Takes a URL and removes all offensive characters. Tests the new URL for validity (anything other than a 404 error is considered valid).
# Returns a tuple with the converted URL and a boolean flag indicating whether the converted URL is valid or not.
def convert( url ):
	new_url = url.replace( "+", "" )
	# Check URL validity
	valid = True
	try:
		resp = urllib.urlopen( new_url )
		resp.close()
	except:
		valid = False
	return [ new_url, valid ]

# Processes the source file, converts all URLs therein and writes it to the target file.
def process( source_file, target_file ):
	with open( source_file, "r" ) as input:
		source_text = input.read()

	conv_text = source_text
	match_found = False
	for matcher in href_lookup.finditer( source_text ):
		if ( matcher != None ):
			match_found = True
			original_url = matcher.group( 1 )
			print "\tConverting permalink " + original_url
			if not conversion_map.has_key( original_url ):
				conversion_map[ original_url ] = convert( original_url )

			conversion = conversion_map[ original_url ]
			if conversion[ 1 ]:
				print "\tConversion successful, new URL: " + conversion[ 0 ]
				conv_text = conv_text.replace( original_url, conversion[ 0 ] )
			else:
				print "\tConversion failed!"

	# Write out the target file
	if match_found:
		with open( target_file, "w" ) as output:
			output.write( conv_text )

# Entry point		
for file_name in glob.iglob( "*.xml" ):
	print "Processing " + file_name
	process( file_name, file_name + ".conv" )
Sunday, 22 June 2008 15:47:55 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Thursday, 19 June 2008

What a stroke of luck! With more and more sites foregoing captchas, I was starting to think weird-ass captchas are a thing of the past. Fortunately trusty old RapidShare brought me to task:

captcha_of_hell_sm 

Apparently not only am I meant to figure out the convoluted glyphs (it took me a while to figure out that there are no numbers -- their G looks exactly like a 6, O and 0 look the same etc.), but I'm supposed to match only the letters connected to a cat. Conceptually amusing, but what the hell? Can you tell me which of the above are cats? Is it reasonable to expect someone to spend more than about 5 seconds on a captcha?

Oddly enough I re-entered the link a little while later to discover the amazing RapidShare feature called "Happy Hour":

captcha_of_hell_happy

And I'm just left scratching my head.

Thursday, 19 June 2008 11:57:44 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Monday, 16 June 2008

Update (22 June 2008): I've posted a Python script for converting the invalid permalinks to their "proper" form.

After moving to GoDaddy I found to my chagrin that none of the site's article links (a.k.a permalinks) seem to work. There are any number of reasons why this is a bad thing, the two primary reasons being that Google cannot crawl the actual articles and that historical, incoming links no longer work. As they say, crap on a stick.

I originally looked into the URL rewriting rules and HTTP handler configuration in web.config, thinking that perhaps some of the handlers need to be manually registered with IIS for some reason; eventually I installed the blog locally, migrated to IIS pipeline mode (which might be cool but has no tangible benefit for me) but the problems persisted. Until I tried accessing a permalink URL locally, that is. Then I discovered that plus signs in URLs (dasBlog's way of avoiding encoding spaces to %20) are considered "double-encoded" characters, and are automatically rejected by IIS 7.0 by default because under some circumstances they pose a security threat.

There's a knowledge-base article detailing how to resolve this on a server or per-application level, but either solution requires server reconfiguration. Working under the assumption that this entails special requests from each and every potential future web host, and that having plus signs in my URLs is not the "right thing to do" anyway, I just opted to disable them and try to rework the existing links as best I can. I suppose blogs with considerably higher traffic cannot afford that luxury, but then blogs with considerably higher traffic usually work with much more specialized hosting providers and wouldn't have to worry about server reconfiguration in the first place...

Anyway, hope this helps someone.

Monday, 16 June 2008 11:05:53 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Sunday, 16 March 2008

Update: Link to the Omea wiki page with more details.

My favourite RSS aggregator, newsgroup client and all-around cool application I always have in the background is JetBrains' Omea Pro. While I don't use those features, Omea also supports aggregating and searching Outlook mail, contacts and a host of other connectors. Now that it's open source there's even be room for improvement, so those of you who do not like online aggregators like Google Reader would do well to go to the Omea site and check it out!

Sunday, 16 March 2008 11:33:36 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Thursday, 21 February 2008

I just encountered a really weird issue with Windows Vista, where an external Western Digital hard drive (an older My Book 250GB) would show up as a mass storage device, but was not allocated a drive letter and was basically inaccessible. The weirdest thing is that the USB "Safely remove USB Mass Storage Device" icon did show, except with no drive letter.

Anyway the way to deal with it was to fire up the Device Manager (Start->type in Device Manager) and double-click the external hard drive:

externalstorage_devmgr

Then go to the Volumes tab and click on Populate:

externalstorage_volumes

If the volumes show up, you're good to go.

Thursday, 21 February 2008 15:55:13 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Wednesday, 16 January 2008

I take pride in being one of the few people I know who actually buy their media: I have a sizable collection of CDs, DVDs, computer games and software that I've bought over the years, and I always feel good about having paid the people responsible for these efforts.

Until recently, that is.

It is commonly said that one of the most obvious traits of Israelis is that they hate to be screwed, and this is as true for me as it is for everyone else. It seems the media companies have taken upon themselves to screw me in every conceivable way, and paying for media is fast becoming an exercise in frustration for me. A most recent example of this is Valve's not-so-new-and-shiny content delivery network which goes by the name of Steam. I don't even know where to begin recounting what's wrong with this thing:

  1. Content delivery speeds are abysmal. I recently downloaded Half Life 2 Episode Two and got 200K/sec maximum transfer rate (more common rates hovering around 50K/sec) on a dedicated line with 5Mb downstream. I consistently get 300K+ rates to even the most busy content delivery servers (Akamai, Microsoft etc.) and it's not like I can use a download manager to better tune the download to my connection.
  2. The download manager is shit. Even ignoring the fact that the only controls it exposes are "pause" and "resume" doesn't help the fact that the error detection code is buggy as all hell: the first time I tried downloading the game it got stuck on 99% without any type of diagnostic or error message, and wouldn't resume. Reading piles of angry forum threads led me to the conclusion that the downloaded content files are simply corrupt; deleting and re-downloading the game solved the problem.
  3. Terminology is all screwed up: telling the game manager not to automatically download updates for a certain game will pause any pending download for that game, including the game content itself.
  4. Although there is no apparent reason for this, playing a game pauses the downloads for all other games. That, at least, has been my observation (Episode Two was downloading when I started on Episode One, and hasn't progressed a single per cent when I quit the game).
  5. The application itself is completely opaque. At no point does it give any indication of what it's doing; you can start the client, nothing happens for two minutes until it finally shows you an "updating Steam client" window. There are no visible clues when it's attempting to access a server (e.g. when clicking on Show News) or when a downloaded upgrade is being installed.
  6. I don't want to connect to a server to play a locally installed, legally bought game. That's just unforgivable, even if it didn't mean I sometimes have to wait for several minutes before the server actually logs me in instead of timing out.
  7. It might shock you, but I still play old games. Sometimes very old games (think Master of Magic). Will Half Life 2 be playable in five- or ten-year's time when the Steam servers have long been cold? I doubt it.

I know Steam probably works well for a lot of people, but for me it's a god-damned affront: I'm a paying customer, there's no reason why I should have so little control over a game that takes up gigabytes on my hard drive. To add insult to injury, the pirated versions often work better: the pirated version of Half Life 2 itself had considerably lower loading times, didn't suffer from the audio stuttering issues that plagued the original, and didn't waste hours of your CPU time on decrypting the game content once it was finally downloaded. If Valve wants to keep my business, here's what they should do:

  1. Switch to an open distribution model (HTTP or, preferably, BitTorrent) so I can use my own software to download their games if I so wish;
  2. Get rid of the dependency on Steam for their games. When I click on the HL2E2 icon I want the game to come up, and I don't give a rat's ass about Steam;
  3. Move to an asynchronous, transparent update mechanism for their games, preferably one that allows me to download game updates and install them on my own.

With the original versions becoming increasingly irritating and pirated versions becoming better than the originals (not to mention less costly), does paying for media still make sense? Remember, that's just one example, I could give a great many more.

Wednesday, 16 January 2008 12:24:04 (Jerusalem Standard Time, UTC+02:00)  #    -
Gaming | Personal | Software
# Monday, 24 December 2007

If you use Executor (a freeware launcher utility), check this out. There's even a video showing it in action!

Monday, 24 December 2007 12:39:40 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Tuesday, 02 October 2007

The Windows SDK command shell, setenv.cmd, is immensely useful, so much so that I wanted it as my default command prompt (i.e. when CMD is run, no matter by whom). A quick Google search didn't turn out anything, so I eventually figured it out myself. The trick is to add it to the command processor's AutoRun value in the registry (run cmd /? from the command prompt if you don't know what I'm talking about):

reg add "HKCU\Software\Microsoft\Command Processor" /v AutoRun /f /t REG_EXPAND_SZ /d "\"%programfiles%\Microsoft SDKs\Windows\v6.0\Bin\SetEnv.Cmd\" /debug /x86 /vista"

You'll notice that I explicitly set the arguments for setenv.cmd; I can't explain it (nor bothered to delve into the script), but without these arguments the script gets stuck along with the command prompt. You should obviously change the values to your own environment.

Tuesday, 02 October 2007 21:18:28 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Monday, 13 August 2007

Installing Microsoft Team Foundation Server is a ridiculously arduous and difficult process. I'll spare you my own complaints and simply list the checklist for installing this beast. This assumes you're installing TFS in a domain-enabled environment and in single-server mode; this is the typical configuration for a small-to-medium-size organization:

  1. Designate a machine to host your Team Foundation Server repository. This machine must not double as a domain controller as this configuration is not supported by TFS.
  2. Set up at two regular user accounts (not administrators, and if you have any group policies you may - according to your configuration - want to keep these users out of the relevant OUs) in your Active Directory. I used the trivial TFSService and TFSReports accounts. Also you'll need a user with administrative privileges on the target server; I personally prefer to avoid the associated headaches, so I simply used a domain administrator user for installation purposes (but used the aforementioned two users to set the beast up).
  3. If necessary, install Windows 2003 Server (whatever flavor) on the machine; don't forget the necessary service packs and updates. If your pipe is fat enough, just let Windows Update do its magic.
  4. Add an Application Server role, make sure you enable ASP.NET 2.0 during the installation process
  5. Install SQL Server 2005. Make sure you read the installation guide first though, as you'll need to set it up to "Use the built-in System account," enable all services except Notification and finally select Windows authentication as the preferred authentication mechanism. You'll also need to let the SQL Server installer install a bunch of prerequisites before actual installation begins.
  6. Install SQL Server 2005 Service Pack 2.
  7. From the TFS installation media, install hot-fix 913393 for .NET Framework.
  8. Install Windows SharePoint Services 2.0 with Service Pack 2.0. Make sure you select server farm mode when installing, or you'll just have to redo the installation.
  9. Install Team Foundation Server itself.
  10. Back up the reporting services encryption key (you can find a description of the procedure here).
  11. Install hot-fix 919156, a.k.a the Quiescence GDR (no, I have no idea what GDR stands for).
  12. Install Team Foundation Server Service Pack 1.
  13. Make sure TCP port 8090 is open in your firewall software if you want web access to your Team Foundation Server (to be honest, I haven't found any use for it yet.)
  14. Install Team Explorer from the installation media (required for many add-ons, including eScrum).
  15. Install Visual Studio 2005 Team Suite Service Pack 1. This can, and will, take forever.

If at this point you're not thoroughly exhausted, you might want to set yourself up a with a project. We're currently evaluating the Microsoft eScrum template for our purposes; my colleague Oren Ellenbogen, in his capacity as Scrum Master, will probably be posting his thoughts on eScrum as a platform. In the meantime here's a quick list of solutions to problems we've encountered while configuring the beast:

  1. Make sure you install the various prerequisites; in this case, .NET Framework 2.0, IIS, TFS and Team Explorer, AJAX Extensions 1.0 and the Anti-Cross Site Scripting Library
  2. At this point you're liable to get a strange SharePoint-related error if you try and create an eScrum-based project; if that's the case (or as a preemptive measure), just run iisreset on the TFS server.
  3. If you can't seem to access the eScrum website (nominally at http://yourserver/eScrum) you may have to reconfigure the eScrumAppPool identity from the IIS manager (right click the application pool, chose Properties, go to the Identity tab and enter the right information under Configurable)
  4. You may also get 404 errors from the eScrum website even though it's very obviously configured. We've found that the solution described here works as well:
    • From the command prompt, type cd "%ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\60\BIN"
    • Run STSADM.EXE -o addpath -url http://localhost/eScrum -type exclusion
    • Run iisreset again
  5. eScrum reports only update once every 1 hour. If this bothers you, follow the instructions here to reduce the lag.

Hope this saves someone out there a lot of time and headache (and if so, a comment or e-mail is always appreciated...)

Monday, 13 August 2007 14:08:18 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Sunday, 05 August 2007

A new organization and a new office require a new IT infrastructure. I'll spare you the gritty details and just mention several installation issues we've encountered and how to resolve them.

  Problem: Windows Server 2003 installed on a RAID array via NVidia RAID controller; drivers are not available on the regular installation CD-ROM.
  Solution: Use a USB floppy drive (most servers and workstations don't come with floppy drives nowadays, and with good reason). In the case of the Tyan server we use, booting off of the driver CD allowed me to create a driver floppy which I then used when installing Windows.
     
  Problem: Windows can't locate file "nvraid.cat" when using the NVidia RAID controller drivers.
  Solution: Hit the escape button to ignore the missing files (apparently that .CAT files are used for cryptographic purposes and are not provided by NVidia, see here).
     
  Problem: Nero refuses to install without installing DirectX 9.0c first on Windows Vista.
  Solution: Although Vista comes with DirectX 10, you can safely agree to this and skip the DirectX installation later. Why a CD/DVD burning package requires DirectX (even though I didn't install any of the additional crap provided by Nero) is beyond me.
     
  Problem: Not strictly an installation issue, but there isn't any immediately apparent way to echo an empty line from the Windows command processor.
  Solution: While "echo /?" won't tell you this, the MSDN documentation for the same command clearly mentions "echo." (written exactly so). Contrived.
     
  Problem: Setting up a DNS canonical name (alias) entry for a file server results in "Duplicate name exists on the network." errors when attempting to use the network resource.
  Solution: Find registry key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters" and set the value of "DisableStrictNameChecking" to 1. (More information)
     
  Problem: Newly configured DHCP server doesn't respond to "ipconfig /renew" requests.
  Solution: Although I can't explain this, the problem was not the DHCP server; right-clicking the network connection icon and then selecting Repair did actually manage to obtain a lease. If this happens to you, don't get upset (as I did), try this technique first and see if it works for you.

I'll add a separate post on TFS and eScrum later today or tomorrow (hopefully).

Sunday, 05 August 2007 09:20:55 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Sunday, 01 July 2007

Quick download link (v1.2)

I wanted to simple way to download an entire PicasaWeb album. Right-click and save simply will not do, installing the Picasa application is completely out of the question (I use FastStone, in case you were wondering) and I couldn't find any easy way of doing this, so I whipped up a quick and dirty application. It's pretty self-explanatory, really:

picasawebdownloader

Download the application (source included) here.

I also used the chance to give #Develop a serious whirl, and I can honestly say that it's damn impressive; in several hours of use the only real qualms I've had with it are the non-configurable keyboard bindings (at least I couldn't find any configuration menu for this; it wouldn't be an issue if the default bindings weren't slightly different from what I'm used to) and the lack of immediate/watch debug windows. The dialog editor is full-featured and the environment seems to be quite responsive and robust. I really am impressed.

Update (20-Aug-2007): Version 1.1 is now downloadable. I've added support for AuthKeys (as per skolima's request) so you should now be able to download private albums as well (assuming you have the appropriate key). Also added a compiled binary to the archive, doh!

Update (11-Sep-2008): Version 1.2 is available for download, and includes the following improvements:

  • The tool now works for PicasaWeb albums from any valid top-level domain (this means that albums hosted at www.picasaweb.ru will be properly handled.
  • Existing files will not be overwritten; instead I've taken a cue from common browsers and am now adding a counter suffix to the filename. If an album has two pictures with the name example.jpg, you can now expect to find two files named example.jpg and example (2).jpg in your directory. This behavior is also applied if you already have such a file in your directory prior to running the tool - any feedback as to whether or not this is desirable will be appreciated!
  • Authentication keys may now include dashes (thanks, Jakob).

Sunday, 01 July 2007 02:28:06 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Tuesday, 16 January 2007

Update (1 July 2007): The newer versions no longer exhibit this problem (tested on beta 12.0.1183.516). Just make sure you chose "None" for the image borders.

Looking back at my post on Windows Live Writer dating back to August, it seems that I either missed a very significant fact about the product or perhaps something has changed in one of the betas. The short story is that Windows Live Writer sucks at handling images; whenever I embed an image it goes on to severely reduce the image quality:


You be the judge: on the left, the original. On the right, the "improved" version

Not only does WLW upscale my image for some unknown reason, it also does this via an extremely low quality scaler. In the case of simple images such as the one above, this will also result in larger file sizes (this example  demonstrates a 400% increase in file size - from under 21KB to a little over 104KB).

This reminds me of the old image pasting problem with Microsoft Outlook, and what kills me is that I can't think of any conceivable reason why anyone would develop this "feature". To add insult to injury, the only feedback link I could find (via this post in the Windows Live Writer blog) is an MSN Groups page that requires registration. The registration process itself asks you about a hundred completely personal questions that Microsoft has absolutely no business asking.

I'll try and get in contact with the WLW team since I do want to keep using the tool, but this particular issue is starting to cost me a lot of time and effort.

Tuesday, 16 January 2007 16:01:29 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Monday, 25 December 2006

This is an absolute must-read for anyone who gives even a bit of a damn about their rights as consumers. (via Aynde)

My brother thinks it's basically FUD-based propaganda, but I suppose if it's a way to make people listen it works for me (when fighting fair just isn't enough...)

Update (02-Jan-2007): Read this rebuttal. It's extremely cynical, but also makes several valid points.

Update (03-Jan-2007): For a more cynical and consumer-oriented view, check out this scathing editorial from The Inquirer. It's amazing how much it echoes my thoughts - as a consumer - on the subject. I wrote a few sentences about the subject before I realized it deserved a proper post, which I'll handle later this week.


Monday, 25 December 2006 14:59:47 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Thursday, 14 December 2006

I just reinstalled my laptop (a long and annoying story which I shall tell some other time), and this time opted for the Intel PROSet/Wireless drivers along with the PROSet/Wireless software suite (the one that replaces the crappy Windows wireless network management applet). It installed fine, the wireless card seemed to work fine but when I tried to start up the Intel application I was horrified.

It was in Hebrew.

Now, I realize that language preferences are a very personal issue, which is exactly why this pisses me off so much: why have ATi, nVidia and Intel all decided that my language of preference is Hebrew? The fact that my Windows is configured for Hebrew support in non-Unicode applications is no bloody excuse - it's that way because a lot legacy (and even new!) Hebrew applications require this setting to work properly. But my Windows is completely in English. Had I wanted localized UIs, I would've installed a localized version of Windows.

In Intel's defense, the translation was very comprehensive and even the RTL issues were sorted out; usually, however, software that supports localized menus have a language option where you can change the default language. The PROSet/Wireless software suite does not, and this time I was pissy enough to do something about it. Solution? Either download and import this registry hack, or do it manually:

  1. Start up your favourite registry editor;
  2. Go to HKLM\Software\Intel\Wireless;
  3. Change the value of InstalledLangId from whatever it is to 0x409 (or 1033 if you're decimal) -- that's the LangId for English;
  4. Change the value of InstalledLangShortString to "ENG";
  5. Kill the iFramewrk.exe process and restart it (or restart your machine if you're lazy)

All done. I really wish applications would stop deciding for me the language I want to work with.

Thursday, 14 December 2006 12:00:20 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Sunday, 10 December 2006

God knows I give the guys at JetBrains a lot of credit, but I didn't see this coming: according tot he Omea News feed, Omea Pro is being open sourced!

For those of you not in the know, Omea Reader is JetBrains' RSS, newsgroup, e-mail etc. aggregator. It's a pretty amibitious application that I've been using for quite a while now instead of RSSOwl (Omea's interface is smoother, although RSSOwl definitely has its moments), although in reality I only use about 10% of its capabilities - newsgroups and RSS feeds.

I was about to buy Omea Pro this week and am now feeling really awkward that I can download it for free instead; the least I can do is spread the word. I suggest you take a serious look at it, because the non-Pro Omea Reader is already a very formidable product.

Sunday, 10 December 2006 13:00:56 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Sunday, 10 September 2006

Virtual PC is free, which is good. It is reasonably fast and functional, which is also good.

It has some bugs, which - surprisingly - isn't good. One of those is an apparently ubiquitous "Network adapter... failed to initialize because the address is a null address." A solution can be found via this blogpost. Weird, but works:

  1. Examine the key value at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\<nnnn>\DriverDesc to locate the desired host adapter where <nnnn> is a four digit number.
  2. Look at the GUID value for the NetCfgInstanceId key value.
  3. Add the DWORD key at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VPCNetS2\Parameters\Adapters\<guid>\Flags and set the value to 0 where <guid> is the GUID found in step 2.
  4. Restart the computer.
Sunday, 10 September 2006 17:38:59 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Tuesday, 22 August 2006

Microsoft has done a stellar job on Windows Live Writer. Even at beta it already supports (out of the box, no less!) a vast number of blogging engines, including dasBlog. It also supports a blog autodiscovery feature called RSD, which according to Omar will be featured in the upcoming dasBlog 1.9.

The draft feature is simply awesome: open up Writer, start typing and you never have to worry about your text going to hell (there is also an autosave feature). The WYSIWYG editor is extremely robust, lets you edit your posts using your own blog's stylesheet and has excellent picture embedding features. Although I could easily go into HTML editing mode and edit the HTML directly, I no longer see any point doing it, which saves a hell of a lot of hassle and time!

Never a sucker for web applications (AJAX or otherwise), this is a positive boon for me. Good job, Microsofties!

Tuesday, 22 August 2006 13:49:20 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Sunday, 25 June 2006

OK, I concede the point: Notepad++ is awesome! I configured Total Commander so it brings up Notepad++ on edit, and it's ridiculously useful: you get syntax colouring, line numbering, tabbed windows and more at the cost of a slight increase in startup times (it's about 200ms slower than Notepad on startup, and it's worth it). I feel really stupid for not having tried it before.

Also, I've always shied away from application launchers, but have decided to finally give Slickrun a try. So far it's only mildly useful (I used to do the exact same thing with batch files) but that might change. I'll post an update in a month or two.

As a sidenote, although the Natural Ergo 4000 is a terrific keyboard I've decided that the IBM Model M is still the better of the two. I think I'll try the black 104-key Customizer next, except that you can't get those in Israel. Ideas?

Sunday, 25 June 2006 20:51:37 (Jerusalem Standard Time, UTC+02:00)  #    -
Software | Personal
# Wednesday, 31 May 2006

Quietly and (apparently) without fanfare, JetBrains have released ReSharper 2.0. Those of you used to 1.5 will find that the new version is extremely feature-rich, but also radically slower than 1.5; I seriously hope JetBrains are aggressively optimizing their plug-in, because on large projects it can become quite sluggish.

That said, the huge amount of new features as well as Visual Studio 2005 support are a definite reason to move to 2.0.

Wednesday, 31 May 2006 17:38:24 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Sunday, 21 May 2006

How closely coupled the various components in Windows are. Take Internet Explorer, for instance; this wretched thing has been around since the days of Windows 98, and is now so entrenched in the bowels of the operating system it's impossible to get rid of. In fact, if you tried to remove it from your machine you'll find that it's not even a relevant option:

That might explain why I reacted with very little surprise when I encountered the following dialog box when starting windows explorer (read: double-click on "My Computer"):

I didn't start the debugger, in case you were wondering. As much as I appreciate people who actually bother attempting production-debugging on other people's programs, I don't have the time and patience for this - I have actual work to do (particularly when at work). So I selected No. And the dialog came up again. And again. And again. To top it off, my CPU was bottomed out; Process Explorer seemed to think MDM was the culprit:

So now Internet Explorer and most programs that rely on it crash immediately on startup (oddly enough, RSSOwl, which relies on SWT, which relied on Internet Explorer, works without a hitch). I immediately suspected some sort of adware/malware/crapware, but Spybot wouldn't find anything. Now what am I supposed to do? I hardly think Internet Explorer (which I hardly ever use anyway) is worth a complete system reinstall.

Sunday, 21 May 2006 21:58:32 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software

Warning: Emotional outburst follows

So here I am, working on the latest and greatest version of Microsoft's flagship messaging and collaboration application (read: the antiquated Outlook 2003 and its bug-riddled back-end). I've switched back to Outlook after over a year of using the generally excellent Thunderbird. It's driving me insane.

For starters, despite the fact that Microsoft has had years to perfect the multilingual - bidirectional text, in particular - support in its applications, Outlook still suffers from what - in a new product - would be considered amusing issues that a hotfix will come out for in a couple of days. Over three years after its release Outlook still manages to completely mangle plain-text e-mails. Take a normal, Engilsh plain-text e-mail and try to reply to it. At times (I still haven't been able to find a pattern), although the e-mail is displayed just fine, replying to it causes the bidi heuristic engine built into Outlook to decide that this is a right-to-left e-mail, and the reply is prepared accordingly (quoted lines included). This wouldn't be such an issue if there was any way at all to change the reading order without completely mangling the text (Ctrl+A, Ctrl+Left Shift):

Original imageAfter clicking on Reply...After changing the reading order
Original e-mail (left), Outlook's reply (center) and after changing the reading order (right)

I showed this to Ilya (a friend and colleague with much experience in bidi-related issues). His best idea was to write a macro to do the low-level conversion for me. That's not really a solution; where bidi support in Thunderbird is merely missing, in Outlook it's outright broken. Thunderbird allows me to insert arbitrary HTML if I want to; in Outlook there's simply no way at all to work around this problem.

To add insult to injury, I started using IMAP when working against one of my mail servers. I was frustrated for a few days becaue the messages marked as deleted were never actually removed from the server; aside from the nuisance of seeing old messages displayed strikethrough along with fresh messages (which can easily be filtered out), I simply could not figure out how to purge the deleted messages. The most obvious option, "Process Marked Headers", was completely useless; nor was "IMAP Folders..." of any help. This has got to be the first time I ever actually used Office's help - a fact I would normally attribute to a fundamentally impressive UI - only to find that the option resides under "Edit->Purge Deleted Messages." Obscure location? I thought so too. But at least the option is there.

Sunday, 21 May 2006 17:37:06 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Thursday, 04 May 2006

Wanting synchronization capabilities and frustrated with a bizarre folder locking bug - a folder remains locked if a connection is dropped server-side while downloading mail - which I was too lazy to fix, I switched from Thunderbird back to Outlook 2003. It's actually a lot better than I remembered (having worked with it extensively from a development point of view until last year); when not working against an Exchange server (and on a gargantuan Athlon 64-based machine) it's actually very fast, doesn't stall and is pretty stable at that.

It's not, all in all, a bad product. But it's not a complete one either.

First and foremost, Outlook's search capabilities are so ridiculously bad that third party tools have been coming out for years to address this shortcoming. Among those are Google Desktop Search, MSN Search Toolbar beta, Copernic Desktop Search and very much my personal favourite, Lookout. Lookout is an Outlook plugin written in .NET (one of the first commercial-grade products I've ever seen to use the platform) which indexes your mail in the background and performs extremely fast searches. It's complete free and was, in fact, so good Microsoft bought the company a couple years ago and is presumably busy incorporating Lookout's features into Outlook 12.

Second, the spam filtering options are lacking. I've no idea what sort of mechanism Outlook uses, and it is effective for certain kinds of spam, but it also generates a lot of false positives and misses a lot of other spam. Looking for a client-side (i.e. non-proxy) bayesian filter implementation for Outlook I eventually settled on SpamBayes, which is so far completely stable and hassle-free - not to mention effective, and open-source at that.

Moving back from Thunderbird was not without hassle though; I wasn't inclined to import the Thunderbird mails over to Outlook so that wasn't much of an issue, but I couldn't get the "Send To Mail Recipient" shell option to work with Outlook. Theroetically, merely changing the default mail program in "Internet Options->Programs" to Outlook should do the trick, but it appears not to be the case. I eventually found a solution on Joel's old forums: start RegEdit, go to HKCU\Software\Clients\Mail and change the default value from "Mozilla Thunderbird" to "Outlook". That's all there is to it.

As a bottom line, if you do not require simple bidirectional mail support or PDA synchronization via ActiveSync, stick to Thunderbird. It's a basically superiour piece of software.

Thursday, 04 May 2006 17:01:39 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Thursday, 27 April 2006
As part of an on-going research I've been playing around with Windows Vista build 5342. Spoiler: it's not ready for prime-time, not even remotely. Here's a quick run-down:

  • Performance is aweful. On my reasonably powerful development workstation (Athlon 64 3500+, 1GB RAM, Radeon X300) it literally crawls, and feels closer to how Windows XP performs on my old Celeron 900-based server at home. Eating broken glass shards seems almost preferable to browsing files on the Visual Studio 2005 DVD.
    There are also minor performance issues which may be related to immature drivers as opposed to Vista itself, primarily to do with sound: practically any CPU time-consuming operation on the OS side (such as when it changes screen mode or performs sudden but serious disk I/O) results in sound stuttering.
  • Eye-candy: Vista looks slick, have no doubt about it. The new Aero is very appealing. I'm not a Mac afficcionado so I can't really tell if it's been ripped off of Aqua or not, but strictly speaking I don't actually care. Some aspects of the UI can definitely use some polish - particularly the annoying tendency to reset the display whenever I switch to one of the "secure" displays (i.e. login or ctrl+alt+del), but the window fade and deformation effects are wicked, and the Glass feature (where window frames look vaguely like glass and everything beneath them is blurred) are absolutely gorgeous.
  • Compatibility and stability is severely lacking. I'd expect an OS that's been in production for years (not to mention scheduled for a 2006 release, which was only recently postponed) to be a lot more stable than this. Most applications work reasonably well, but for example while Firefox installed perfectly it wouldn't work past the first boot:

    What's worse is that Firefox wouldn't even uninstall afterwards. That's not generally a good sign. Visual Studio 2005 wouldn't install at all (installation failed silently) and I couldn't find anything useful about it on the 'net (just some comments regarding MSXML6, which was not the case here) until I rebooted the machine. The .NET Compact Frameworks, J# Redistributable and SQL Server 2005 would not install at all. Some applications would not even start (the Total Commander installer, for instance), others would display unusual error messages but work just fine afterwards:

    Networking in particular was unstable; I've no idea where to get beta Vista drivers and since everything was mostly working out of the box I wasn't inclined to look, but the network driver for the onboard nForce adapter would often simply stop working, claiming that there is no traffic on the network. Only a reboot would remedy this.

  • Usability: In some respects, Windows Vista is a tremendous improvement over Windows XP; it contains a huge amount of subtle but helpful hints in dialog boxes, much quicker access to some aspects of the OS configuration and a search function is available almost everywhere (especially useful in the Start Menu). When it comes to security, though, Vista is horrendously frustrating. Check out this post by Paul Thurrott. A noted Microsoft fanboy, such harsh cristicism coming from him gets double the attention. He is so right: Vista will continuously pester you with annoying security dialog boxes, and of particular annoyance is that this happens even if you are an administrator! If Microsoft ever wants Windows to be taken seriously security-wise, they should stop trying to stop malware from exploiting administrative privilidges via ever more sophisticated techniques, and start educating users not to use administrator accounts in the first place. This malfeature, called User Account Protection (UAP), sends the wrong message. I initially had the same reaction to Fedora Core 3, which would keep asking me for administrator password, but I became accustomed to it quickly because you don't usually DO things that require administrative priviledge as a user. With Vista you can't do squat without getting a series of annoying dialogs. For example, simply going to C:\Documents and Settings results in this dialog:

    Clicking on Continue results in this dialog:

    And finally, to add insult to injury, despite being an administrator I can't seem to change ACLs on folders that reside on my own machine:

    Last but not least, having a look at the security settings for said folder showed that nothing, in fact, was wrong and I shouldn't have any trouble accessing it:

    Additionally, there was some really weird usability bugs/issues. For example, when I changed a folder's view settings to show hidden and system files, this had some unexpected results, which you can see here:

    Finally, I leave you with this jaw-dropping dialog I encountered on a file copy operation:

  • Internet Explorer 7 is leaps and bounds beyond Internet Explorer 6 in everything from performance to usability. Still, in the spirit of frivolous security Microsoft has chosen to annoy the hell out of you with brilliantly useless warnings that require user intervention, such as this:

I hope to update to the newer 5365 and re-test things, but currently this OS seems so far from ready it's not even funny.

Thursday, 27 April 2006 22:18:08 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Thursday, 20 April 2006

The immediately good news: the 2.0.1 version of Hebrew OpenOffice.org is out - go and download it! It features a whole bunch of bugfixes, primarily fixes to the way tables in Word files are imported. I don't use Word much - particularly not for Hebrew files - so I can't righly comment on it, however I've been told by friends and peers that this bug was one of the biggest issues they had with the 2.0 Writer.

Also, a tip: it's not obvious nor exactly trivial, however it IS possible to do regression analysis and include trend lines in Calc sheets and charts; check this tutorial out (via xslf on the OOo.il forum).

Thursday, 20 April 2006 22:01:04 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Wednesday, 19 April 2006

Although I enjoy using GAIM, it has several issues - most notably a very poor UI experience, which is being worked on in the 2.0 betas (which are perfectly usable, by the way). The second most obvious problem I've been having is to get GAIM to receive Hebrew messages from buddies on ICQ. This issue can be easily fixed by accessing the ICQ account properties and changing the Encoding field:

The default encoding is ISO Western (ISO-8859-1); to get Hebrew properly just disable the account, change the encoding to Windows Hebrew (Windows-1255) and re-enable it. Although not technically correct, ISO Visual Hebrew (ISO-8859-8) seems to work too.

I'm not sure if the Western encoding is indeed the default - I've been importing my account settings since GAIM 1.3 or so - but I'll look into it and file the appropriate bug report (encoding should be set to what is appropriate according to the current locale, at least in Windows).

Wednesday, 19 April 2006 01:34:14 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Wednesday, 12 April 2006

There's a recent fashion among blog-savvy developers in looking for the "ultimate programming font." This has been around as long as programmers, but the discussion has recently been sparked again by the impending release of Microsoft's Windows Vista along with its slew of new fonts. I'm not the early adopter type so I couldn't really be bothered and stuck with the default fonts, until I got a new monitor at work and figured it was about time to ditch good ole Courier New try for something with a little more panache.

A good couple hours later I had a large selection of fonts; the selection is actually quite overwhelming, however there are very few actually good fonts (for example, the Proggy fonts are generally considered some of the best around, but I can't stand looking at them) and fewer still could actually dethrone the aging but solid Courier New.

At first I actually considered using Consolas, although it's not easily obtainable. A quick Google Images search provided me with the necessary visual example of what the font would look like (screenshot courtesy of Jeff Atwood):

Honestly? The font looks horrible. I find the fuzziness introduced by the ClearType rendering very hard to swallow (the font looks as though it's suffering from colour-bleeding, even though it's not). I couldn't be bothered to even try installing the font.

A casual comment from a reader in one of the blog posts I've read struck me as brilliantly simple: I've been using OpenOffice.org for quite a while now (give it a try!), and the default font for Writer is a relatively new font from Bitstream (via GNOME) called Bitstream Vera. It originally struck me as an impressively neutral font - pleasing to both eyes and mind. Apparently a monospace version of the Bitstream Vera Sans font is included with OOo (and additionally available via the previous link); it's professional, it's free and it looks great (screenshot shamelessly stolen from this place):

 

I heartily recommend the Bitstream Vera Sans Mono font for programmers (note that it takes a bit of hacking for it to work with Visual Studio 2003, although it works just fine with 2005).

Finally, if neither of the above fonts suits you, there's a huge list of programmer fonts here; one alternatives you should look into is Andale Mono, which is very slick and functional.

Wednesday, 12 April 2006 14:02:39 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software

Windows is anything but user-friendly if you're not a local administrator, or so I learned when my dad asked to be able to convert CDs to MP3s so he can listen to them on his PDA. A simple enough task, I figured I'll just configure Exact Audio Copy to "dumb mode" and leave instructions on how to use it (basically, double-click the icon; select the appropriate drive; Alt+G to get the information from freedb; select relevant songs; F5).

For some reason my dad (whose user is not a local admin so as to keep spyware and other crud off our system) couldn't access any but the generic (Daemon Tools and other emulation layers) CD drives. It took me two hours (!) to figure out that:

  1. Windows 2000 and on does not come with an ASPI layer installed
  2. Most software (including EAC) has been updated to use the native API calls instead and do not require ASPI
  3. The native calls fail for non-administrative users (!)

Installing an ASPI layer is supposed to remedy the situation; I've opted to use ForceASPI 1.8 (instead of the default Adaptec installer) but that did not have any effect. To make a (very) long story short, the way to handle this is to use Frog Rights, which finally solved the problem.

To add to my frustration, however, after screwing around with ASPI drivers for hours Nero would no longer recognize my DVD-RW; I figured I'll just intsall the latest Adaptec ASPI drivers which completely screwed up my system - Windows XP would no longer boot and the only clue a logged boot would provide is that something goes very wrong loading the fastfat.sys driver. Nothing I did over the next four hours would allow the computer to boot; oddly enough, my brother managed to boot the machine by simply removing the empty DVD-R media in the DVD burner (a major WTF). We're still not clear on the problem.

Update: Apparently Nero has its own tool for this purpose called Nero BurnRights, which works like a charm.

Wednesday, 12 April 2006 02:05:53 (Jerusalem Standard Time, UTC+02:00)  #    -
Software

I've been playing around with Leonard Maltin's Movie Guide for the PocketPC for a couple of days now, trying to find a useful program for cataloguing and keeping track of my DVD collection. I couldn't find any free software that didn't outright suck, so I turned to commercial software instead; LMMG seemed to fit the bill - mini-database of DVD releases, the ability to easily categorize and keep track of my DVDs and all sorts of nice features.

I did find out, though, that I'm sorely missing an import/export feature. It would be cool to be able to post my movie list somewhere, or send reminders to friends to whom I"ve lent movies that those movies are due back and all sorts of neat stuff that you can only do if you have access to the movie list.

Not even a customer yet, I've fired an e-mail to LandWare's support department:

I'm seriously considering purchasing the Movie Guide (I've been testing it thoroughly for the last hour or so), but have one serious qualm with it: my movie collection can not be imported/exported (preferably to a well-documented CSV or XML-based file format). Additionally, although my PDA does not feature internet connectivity it would be great if movies could link to IMDB/some other online movie repository (either directly or via title search).

Are either of these features likely to be included in the software? The import/export feature is practically a show-stopper for me (I'd like to be able to e-mail my DVD list to friends and that sort of thing).

A day or so later I get the following reply:

Hi Tomer,

As of last night, Movie Guide for Pocket PC now provides an import/export feature, using tab-delimited files.

Product info: http://www.landware.com/movieguide/ppc/
Conduit Documentation: http://www.landware.com/movieguide/conduit/ppc/

I'll log your other comments for our developers; what exactly are you looking for with regard to online connectivity?

Josh

If that isn't good service, I don't know what is. I'm sold.

Wednesday, 12 April 2006 01:49:52 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Wednesday, 05 April 2006

Mio 168 RS

In the process of "going legit" with my laptop (i.e. getting rid of all commercial software I won't pay for, trading proprietary software for free/open-source alternatives etc.) I've reached several important conclusions:

  • There are very few commercial applications I can't live without (specifically, Windows; Visual Studio; Total Commander)
  • Some free/open-source alternatives are actually superiour to their commercial counterparts (Firefox, Thunderbird and OpenOffice.org [Hebrew version] are three such examples)
  • The sheer amount of tools and applications I require just to get things done is astounding

Despite the impressive efforts by the free/open-source community, there are still a few areas where commercial companies (in this case, Microsoft) have the upper hand: PDAs. I was recently handed down a MIO 168 RS handheld which my dad replaced, and ended up trying to learn the quirks of Windows Mobile and how to best make use of it.

Apparently the whole deal of synchronizing with mobile devices is not as trivial as you'd think; there is only one standard, SyncML, which is apparently supported only in part and inconsistently by various mobile devices, and is basically not supported by Thundebird (nor, to my knowledge, Outlook). The Windows Mobile connectivity solution from Microsoft, known as ActiveSync, is perfectly adequate if you intend to use Outlook; however I do not own a license for Outlook (one is provided with the PDA, however it is for the obsolete Outlook 2002) and would prefer to keep using Thunderbird anyway.

The one glimmer of hope is an application called FinchSync - a combination of java sever on the PC and a .NET agent installed on the PocketPC device (strange, wouldn't you agree?). There are several problems with this solution:

  • It is incredibly cumbersome. Having to install a seperate server and client application is in itself a chore, but having to install the server application on each and every host machine is really very annoying.
  • Although it supports .ics files (which appear to be the standard calendar file format used by Mozilla applications), these files do not appear to be employed by the Lightning extension to Thunderbird by default and I couldn't figure out how to get it to work.
  • Finally, the software works over TCP/IP; this was probably the easiest solution, however PocketPC devices that are not WLAN-capable are not configured for TCP/IP by default; it might be possible to configure a TCP/IP bridge over the device's USB connection, but up to this point I have spent so much time with so few results I've conceded that there is no way to do this easily.

As you can see, in this case Microsoft takes the cake: synchronizing to anything but Outlook is a real chore, if not next to impossible. I'd consider getting a license for Outlook, but at roughtly $70 for an academic license of a version of the software that's three years old and about to be replaced it's hard to justify the expense; additionally I would much prefer to keep using Thunderbird as my e-mail client of choice.

With the upcoming competition from Office 12 and the far-superiour integration of Outlook in the corporate environment along with its tight integration with PocketPC-based solutions (which I've come to understand are the majority in this market segment), the open-source alternatives are in pretty grave trouble.

Wednesday, 05 April 2006 05:44:30 (Jerusalem Standard Time, UTC+02:00)  #    -
Software | Personal
# Wednesday, 22 March 2006

I decided to split my previous post in the hope that someone googling for this topic might actually get a straightforward answer (I certainly didn't). Visual Studio 2003 does not let you use Bitstream Vera Sans Mono by default. Instead it takes a bit of trickery to get it to work.

  1. Open Visual Studio 2003; go to Tools->Options->Environment->Fonts and Colors. You will notice that you can select either Bitstream Vera Sans or Bitstream Vera Sans Mono Bold. Select the latter like so:


  2. Click on OK and close Visual Studio 2003.
  3. Run regedit; click through to the following key: HKCU\Software\Microsoft\VisualStudio\7.1\FontAndColors\{A27B4E24-A735-4D1D-B8E7-9716E1E3D8E0} (the GUID may be different for you - there aren't many of them, just look until you find the right value name):


  4. Change the value of FontName to "Bitstream Vera Sans Mono" (without the quotes):


  5. Click on OK, close the registry editor, restart Visual Studio 2003. You're good to go!

 

Wednesday, 22 March 2006 19:23:18 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Wednesday, 15 March 2006

I haven't been working with Visual Studio 2005 that much thus far; the project I've been working on for the last 8 or so months was launched before VS2005 came out (around beta 2), and given the relatively schedules between milestones (first version was to be demoed in about two months) it seemed far too risky to invest in a codebase around the yet-unproven features of .NET 2.0.

I still think that was the right decision. I've been doing some work with Visual Studio 2005 lately, primarily on PostXING and other minor projects, and have come to the conclusion that Visual Studio 2005 is practically unusable. The IDE is even heavier than Visual Studio 2003, ridiculously slow and extremely prone to stalls; it feels like working on a huge solution in VS2003 with a buggy alpha version of ReSharper. The debugger has an incredibly annoying tendency to just stall for tens of seconds at a time whenever I step in/out/over. The IDE feels more like NetBeans than Visual Studio, and is about as responsive, but while NetBeans can be forgiven as a relatively new - and partially open source at that - effort, Visual Studio 2005 is an evolutionary step on a reasonably mature IDE that itself is the 7th version of a 12 or so year-old effort.

Too bad I can't really stick with 2003, it's just not an option - but I would rather have my trusty old combination of VS2003 and R# (which in itself is not without issues) than the heap of bugs and unoptimized UI that is VS2005. At least until VS2005.1 comes along (maybe they'll launch VS2006 with .NET 2.1, like they did with 2003...)

 

Wednesday, 15 March 2006 00:50:56 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Friday, 10 March 2006

Chris has finally released a beta version of PostXING v2.0 (an opensource blog client for Windows)! The development version is pretty stable and usable, but the more people that use it and post bugs and feature requests the more motivated the developers get :-)

Grab it from Project Distributor (requires .NET 2.0).

Friday, 10 March 2006 06:50:26 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Thursday, 02 March 2006
I've been working with build 219 for about a week now. With Visual Studio 2003 it's perfectly stable (only one exception so far), seems considerably faster and I haven't encountered any major (and very few minor) bugs so far. I haven't worked with Visual Studio 2005 at all over the last week (sorry Chris... project schedules :-)) so I've nothing to report on that front.

I'll keep the ReSharper: New And Improved post up-to-date, as always.

Thursday, 02 March 2006 22:08:59 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Sunday, 26 February 2006
I couldn't access the comments on my own website for an indeterminate amount of time (at least a week) and had to dig in the sourcecode to find the culprit (now described in bug 1439112). To make a long story short, it appears I got my dasBlog cookies mangled, so if you have the same issue either contact me or get rid of all cookies from www.tomergabel.com.

(If you're using Firefox and don't know how to access your cookies, here's how. If you use IE just go to d:/Documents and Settings/username/Cookies).

Sunday, 26 February 2006 20:03:39 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Monday, 13 February 2006

I eventually get fed up with the various ReSharper builds I've been using for the past 7 months; the stability has been going steadily downhill since build 208 and performance is yet to improve. 217 originally seemed stable but turned out to be useless both for VS2003 and VS2005. I've been waiting in vain for a build as stable as 208 (which was practically beta-ready) but to no avail.

Eventually I broke down and installed the official 1.5.1 (build 164) for VS2003; unfortunately there are no official builds for VS2005 as of yet. I must say working with the official version is a pleasure - it's absolutely stable and, even more important, fast. So fast, in fact, that it feels just as responsive as the "regular" VS2003 IDE is, and the only drawback is a small increase in startup time.

I'm tenacious so I'll probably check the beta builds again when 218 is out, but in the meantime I can't help but feel pleasure in working with a mature product.

Monday, 13 February 2006 15:04:35 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Sunday, 29 January 2006

Whenever I get a new machine (at work, at home, anywhere) I'm always astounded by the sheer amount of time it takes to get it up and running. I don't mean just the basics, I mean a fully-functional platform that is set up just the way I'm used to, right down to the folder display settings in Explorer and the toolstrip I always like on the right side of the screen.

I mean, seriously, there's gotta be a better way to do this. The following applications are just the basic things I need to be efficient:

And that's just to get me through the day. It doesn't include all the multimedia and development tidbits, like:

I reckon the net installation and customization time is over 10 hours (some installations can be done in parallel, some can be deferred to a later time). That is a lot of time to spend on just setting up your machine. The problem with using Ghost or some similar software is that I get a system without all of my current data (profiles, files, documents etc.), and as for virtual machines, they're simply not fast enough yet for constant use (at least on my modest home desktop or laptop).

Sunday, 29 January 2006 23:34:24 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Tuesday, 03 January 2006
Or: How I Learned To Stop Worrying And Love Firefox (this is a Dr. Strangelove reference, in case that wasn't obvious).

There are some fundamental principles of UI design most developers have not taken to heart. Developing a good UI is hard, designing one is excruciatingly hard. A good UI designer needs to have a very developed sense of how a typical user thinks; it is therefore a commonly held belief that most programmers make lousy UI designers because they can't "stoop to the level of the non-technical user" (a slightly less rehearsed mantra is that developers are users as well and are susceptible to the same problems with crappy UI, although possibly a little more forgiving). The developer-oriented UI trend is most obvious with open source software, but it is actually exacerbated when we're talking properietary, even if free, software. An open source tool that is essentially really good but has crappy UI will eventually attract someone who is actually capable in that department. Take a look at Eclipse, OpenOffice.org, The Gimp etc. - although based on a more or less solid foundation, these tools were practically useless a few years ago and have only become mainstream when they made leaps and bounds in usability. An even better example is Firefox; although I was personally attracted to Firefox on merit of its technical achievements, I was only able to sell it to friends and relatives becaues it is infinitely more usable than IE and just as free (I mean come on, does anyone doubt why Opera never gained marketshare?)

A proprietary program however, even if fundamentally sound and useful, can only grow better by the efforts of its owners. Even the most obvious bugs can never be fixed by a 3rd party. w.bloggar is a classic example of this; the last version was out in January and, despite being fundamentally stable and usable, has huge flaws which the author never fixed, instead allowing the software to stagnate. I reckon a lot of you, at this point, are thinking along the lines of "hey, you get what you pay for; you should be thankful that w.bloggar is free, let alone supported!" In a way you are right, but also dead wrong. As far as I know Marcelo (the author of w.bloggar) isn't seeing much money from his work on the software; what money he does get is from donations. So why not release the source? Donation systems seem to work for high-profile open-source projects at large, why not for w.bloggar? At least that way someone can fix the bugs that (for me) turned w.bloggar from a useful tool to a constant cause of frustration.

To get to the point, I wrote a blog entry in w.bloggar (specifically the one about missing tools), published it and went on with my work. At the end of the day I left the machine running (as I always do when I'm not leaving for days at a time) along with w.bloggar. Why'd I leave w.bloggar open, you ask? Simple: one of these glaring bugs I mentioned is that w.bloggar does not retain my preview template options (CSS links and so forth), and it's a pain in the ass to enter them manually whenever I want to edit or write a new post. Anyway, w.bloggar has a "Clear Editor after Post" option which in my case was disabled. This means that whenever w.bloggar finishes uploading a post, it retains the text and changes its internal state so that subsequent clicks on Post update the same entry (as opposed to creating a new one). So what basically happened is that when I came in today and wanted to write the note on OpenOffice.org, the previous post was still "live" on w.bloggar. Usually at that point I click on New (which shows a nice, useless warning dialog) and get on with it; this time I guess I was distracted, just shift-deleted everything and proceeded to write. When I next clicked on Post and got the "Post so-and-so-GUID updated successfully" notice I knew I was up the creek: my earlier post was overwritten with no prior warning, no delay and worst of all: no backup.

Which brings me to my first point: w.bloggar sucks. Bugs (like not retaining options and the most defective HTML syntax highlighting known to man) aside, this is a huge usability problem - a user can (and evidently will) inadvertently erase his/her own work and have no way to recover it. The undo buffer is not even remotely deep enough; there are no dialogs to warn you that you're about to update a live post, and there are no backups-shadow copies-anything of published posts if you do not actively save them. Worst of all, there is no-one to mail, no bug tracker, not even a forum (the forum link on the w.bloggar site is broken). My first resolution for 2006: make more effort on PostXING and help Chris make it actually useful.

Now that that's out of the way, time for some damage control; w.bloggar is useless in recovering the lost content, dasBlog does not maintain any sort of backup (side resolution: implement shadow copies into dasBlog) and considering how cheap my hosting package is I seriously doubt my ISP would help me recover yesterday's daily backup (assuming there even is one) without significant trouble and/or cost. The only option that comes to mind is the browser cache; in case it isn't obvious from the title (and the large "take back the web" icon on the right), I use Firefox. Going over the cache files manually proved futile as most of them seemed to be binaries of some sort; some research showed me that you can access cache statistics by navigating to about:cache; from there you can access an actual dump of the in-memory and on-disk hashes. Looking at the on-disk cache via about:cache?device=disk and searching for something useful, I found a cache entry for the editing page. Clicking the link did not prove readily useful (the actual content is not displayed), but the information displayed shows two important details: the file location and the content encoding (in this case, gzip). This explains the strange binaries I found in the cache! A quick decompression via the excellent 7-zip and I had my content back. Second point of the day: Firefox has once again proved its mettle. Firefox rocks!

Tuesday, 03 January 2006 13:55:29 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
Coninciding with the release of OpenOffice.org 2.0.1, the OOo.il team has released a Hebrew version based off of the 2.0 codebase! It is sponsored (ironically) by the Israeli Ministry of Finance.

I haven't really tested this version but I do hope it's all it's cracked up to be. Time will tell.

Tuesday, 03 January 2006 12:16:03 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Sunday, 18 December 2005
Some software-related tidbits (I'll be updating this during the day):
  • ReSharper 2.0 EAP build 213 is out (lots of builds since the 210 I have installed on my machine at work). I'll have a go at it and post comments in the ReSharper EAP post as usual.
  • GAIM 2.0 beta 1 is also out. I've been using it for the past few hours, it seems pretty stable - there've been a lot of small improvements (away mode handling, account display, preferences) but don't expect a quantum leap in usability.
  • Dying to get rid of Windows XP Automatic Update's super-nagging 10-minute interval "Restart Now or Later" dialog? So am I. Luckily, Coding Horror's got the answer.
  • There's no avoiding QuickTime these days, but what with all the iTunes hype the player is taking up ridiculous amounts of drive space (the installer itself is over 30MB!) I've installed the latest QuickTime Alternative and never looked back.
Sunday, 18 December 2005 12:15:02 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Wednesday, 07 December 2005
Feelings are often paradoxical in nature. Sometimes the result is called hypocrisy, sometimes merely confusion or stupidity. Being something of a software evangelist I always try to convince people to switch to greener pastures, although my ideas of what is better are not always consistent with what is commonly accepted. For example, I would not try to persuade someone to use Linux, because although the OS appeals to my sense of geekiness and my inherent attraction to free, communal efforts (read: open source), my experience with Linux has all but discouraged me from using (and certainly recommending) the system. That said, when I find something I like and appreciate I certainly stick by it and try to evangelize it to the best of my abilities.

So why was I utterly pissed off when, clicking on this link via a blog post I read using RSSOwl (ironically, another great open source program), I was presented with a large "Please update your web browser!" box right at the top of the website urging me to "upgrade" to Firefox/Safari/Opera/whatever?

I'll tell you why. Because in-your-face evangelism pisses me off. Ilya, a friend of mine, introduced me to Firefox when it was still Firebird 0.5 alpha, and I've been using it ever since. I've been telling about it to everyone who'd listen; I've recommended it to friends, family, colleagues and even just random people I have occassionaly found myself talking tech with. Back in May, when I remade my personal website into a blog, I've designed it for CSS compliance and tested with Firefox first, IE second (and found quite a few incompatibilities in IE in the process). I've placed a "Take Back the Web" icon right under the navbar, in hope that perhaps a casual IE user would stumble upon it and wonder what it's all about. But I don't nag, or at least try very hard not to. I consider people who visit my website as guests, and just as I wouldn't shove my goddamn tree-hugging, vegetarian, free-love, energy-conservation way of life* under your nose if you came to visit my house I wouldn't want you to feel uncomfortable when you enter my website. Which ToastyTech did.

My open-source hippie friends, do us all a favor and take it easy. This sort of thing will not win people over to your cause; at most they'll just get pissed off and avoid your sites altogether. A regular joe stumbling onto spreadfirefox.com (or, for that matter, slashdot) would be just as likely to return to it as Luke would to the "wretched hive of scum and villainy" that is Mos-Eisley.

* In case you were wondering, I'm no tree-hugging hippie, I'm not a vegetarian, my love is an equal-trade business and I drive a benzine-powered vehicle the same as everyone else. But I care.

Wednesday, 07 December 2005 16:41:06 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
So I have to update a bunch of documents, primarily that 6mb pile of text, graphs and objects spanning about 110 pages I mentioned last time. My last experience working on it with Writer (from the OpenOffice.org 2.0 suite) was a blast, so despite the bigger assignment I figured that it would be a good learning experience.

The template the document was originally based off of is apparently very ill-conceived because, upon further examination, I noticed some issues that had nothing to do with the document import (for example, the headers were completely handcoded - no autotext or field usage etc.) In the process of reworking parts of the template, namely the table of contents and headers, I had to learn a bit about Writer and would like to share some insights.

First of all, unlike Word (I use 2003), there's no "edit header" mode; you differentiate between the header and the rest of the page by looking at the box outlines (gray by default). When you edit the page header in Word it actually changes editing mode: the rest of the page is grayed out and it's very obvious that you're editing the header itself. I'm not sure which approach I favor better, although I am inclined to go with Word (because it makes it that much more obvious what you're doing at any given time). That said, the Writer interface for fields is more powerful, or at the very least far more intuitive, than Word's. The interface for working with headers is also much more powerful than in Word, although it did take me a little while to get the hang of it; I had to get over some preconceptions from years of working with Word [since version 6 on Windows 3.1!] and spend a couple of minutes using OpenOffice's sparse but surprisingly effective help. Writer lets you associate each page with a particular "Page Style" and, consecutively, each Page Style with its own Header and Footer. Not only that, it lets you use define (per Page Style) a different header/footer for odd/even pages (in case you're authoring a double-sided printed document). Once you get the hang of it, defining and using headers is a blast.


Editing headers in OpenOffice (left) vs. Microsoft Word (right)
      

Creating and using indexes and tables (in the classic sense, not graphical tables) with Writer is a lot more powerful than in Word; it gives you a somewhat less-than-intuitive but extremely powerful GUI for setting the structure of each entry in the table/index. I used this feature for creating a Table of Contents in the document; being the tidy tight-ass that I usually am the document has a very clearly defined outline (same concept as in Word: headings, body text etc.) which made for an extremely easy transition into a table of contents. The process is easier in Word - just add the Outlining toolbar to your layout and click on Update TOC:


It's not really any more complicated in Writer, just slightly less intuitive. From the menu select Insert->Indexes and Tables->Indexes and Tables, choose Table of Contents and you're done. When it comes to customizing the table of contents, though, Word is practically useless; in fact, it took me a couple of minutes of going over menus just to come to the conclusion that I can't remember how to access the customization dialog. While on the subject, Word manages to obfuscate an amazing number of tools, power tools and necessary functionality behind a convoluted system of toolbars, menus, wizards and dialogs to the point where it's impossible to find what you're looking for. Writer to Word is (not nearly, but getting there) what Firefox is to Internet Explorer as far as usability is concerned: immediately lightweight, does what you want out of the box and when you DO need something nontrivial it's much easier to find (Insert->Header as opposed to View->Header and Footer, for example. Why the hell would I look for something like that in View?). Formatting in general is much more convenient in Writer; for example, you can very easily select a section of text and set it to default formatting with Ctrl+0, which you could theoretically do with Word, but only after spending a lot of time customizing it. There's no easy way to do it out of the box without a lot of unnecessary and inconvenient fiddling with the mouse. It would be interesting to examine Office 12, supposedly Microsoft went to great lengths to improve usability.

But I digress. Back to table of contents: unlike Word, the default Table of Contents in Writer does not hyperlink to the various sections of the document. In light of the immediacy of the floating Navigator toolbox in Writer (which Word sorely lacks) it is simply unnecessary. However, since the document will eventually be exported to Word this was necessary. It took another few minutes of searching, but ultimately the answer was completely obvious: right-click the Table of Contents, click on Edit Index/Table and simply customize the structure of the entries via the Entries tab. The process could use some improvement, though: there is no way to change the structure for more than one level at a time which is quite frustrating, and modifications to the structure are not intuitive (for example, I couldn't figure out why the hyperlinks wouldn't show, and then figured that I probably need to also insert an "end hyperlink" tag to the structure. This would completely baffle a non-technical end-user).


Customizing an index/table with Writer: powerful but not intuitive

So far, though, the experience has been a resoundingly positive one. There's always room for improvement, but if at version 2.0 OpenOffice.org has already managed to supersede Word as my favorite word processor Microsoft have some serious competition on their hands.

Wednesday, 07 December 2005 15:00:34 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Friday, 18 November 2005

Chris Frazier has been kind enough to let me in on the PostXING v2.0 alpha program. I tried PostXING v1.0 ages ago and it struck me as an open-source program with lots of potential but (like many other open source projects) not nearly ready for prime-time. I very much hope to be able to help Chris make v2.0 a practical contender to my regular blogging tool, w.bloggar. It certinaly seems on the right track, and as you can see is already reasonably usable.

If anyone has anything they wished for in a blogging tool, let Chris know - he may yet make it worth your while :-)

Friday, 18 November 2005 09:44:20 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Thursday, 27 October 2005
I gave OpenOffice.org 2.0 a spin today; I installed it, started up Writer, imported a >6MB Word document spanning well over 100 pages with lots of graphical content, edited huge chunks of it (including vast modifications, new pages, internal links, cuts and pastes from various sources etc.) and found it to be mostly superiour to Microsoft Word 2003.

For starters, the menus make a hell of a lot more sense than the obfuscated Word system of nested option dialogs. It was a lot easier to find stuff in the menus, and - much more importantly - everything worked from square one. I hardly had to touch the options (only to reassign Ctrl+K to "insert hyperlink" - an old habit from my Word days) and I could play the software like a finely tuned piano. I found it superiour to Word in many subtle ways: for example, the Navigator (F5 by default) turned out to be invaluable for said document (which is tightly hierarchical and very long and complex); linking was almost as good, requiring just one more keypress than Word for internal links within the document; formatting and reformatting was made a lot easier with HTML-like formatting options and built-in keybindings (such as Ctrl+0 for default formatting, which I found invaluable) and the whole shebang was rock-stable. Now that's what I call open source done right!

I did have a few gripes, obviously. For starters, I couldn't find a "Navigate Back" button anywhere (in Word I remapped it to Ctrl+-, in lieu of Visual Studio 2003) which I sourly miss. Believe it or not, the only other gripe I have is with the loading/saving system: the loading/saving times are considerably higher than Word, particularly for imported/exported documents (i.e. loading or saving a Word-format doc file). Word appears to implement some sort of delta-save mechanism, because when editing the same document with Word subsequent saves via Ctrl+S (which I do about twice a minute due to paranoia, same with Visual Studio 2003...) were considerably faster (sometimes 1-2 seconds instead of almost 10). However, remember that this is a huge document we're talking about - I've rarely edited 100-page documents, or even seen them being edited. Not in my profession anyway.

I've yet to give Calc and Impress a spin, but if Writer is anything to go by I expect to be blown away. Until Office 12 comes along I doubt I'll be firing up Word very often.

Thursday, 27 October 2005 18:02:25 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Thursday, 29 September 2005
There is one particularly nasty blogspammer which every few days posts a spam comment to this post. MT blacklist doesn't seem to cut it in stopping the bastard.

Has anyone had success fighting off blogspammers? Do you have any advice?

Thursday, 29 September 2005 09:15:55 (Jerusalem Standard Time, UTC+02:00)  #    -
Software | Personal
# Saturday, 13 August 2005
Scott's released dasBlog 1.8! I don't have time to install it just yet - will probably save that for tomorrow. Since all the bugs I filed were fixed the new version is bound to be da bomb!

Update (August 15th, 11:32 GMT+2): dasBlog 1.8 is up and running. Oddly enough it seems to be compiled, or at least set up, to run in debug mode (web.config is set to <complication debug="true"... />), so I changed that. Everything seems to be in order.

The new BlogXP theme is very slick, but it's going to take quite a bit of time to rework it to fit the site design (get rid of the calendar, change the title, add a bit of personality...), so I'll stick with my modified DiscreetBlue in the meantime.

Saturday, 13 August 2005 20:22:37 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
I just installed The Gimp 2.2.8 on my laptop. Somehow when I used it on other machines I managaed to miss the fact that it's partially migrated to Hebrew, and that this mode is enabled by default on machines with their regional options set up accordingly.

Now, I can't stand Hebrew in applications so I generally always set localizable applications to English (including GAIM and even Windows itself); getting Hebrew menus is bad enough, but when they're only partially translated and the dialogs aren't RTL'd to begin with it looks absolutely terrible.

If you try to run The Gimp on a Hebrew-enabled machine I seriously suggest you set LANG=en in your environment settings.

Saturday, 13 August 2005 13:22:12 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Tuesday, 09 August 2005
A list of Gecko configuration options (accessible by entering about:config in any Gecko-enabled browser, such as Firefox) can be found in the knowledge base (via linmagazine).

I'll be listing interesting options here whenever I find them.

editor.singleLine.pasteNewlinesIntegerDetermines the behavior when pasting content containing newlines into single-line text boxes.
0: Paste content intact (include newlines)
1 (default): Paste the content only up to (but not including) the first newline
2: Replace each newline with a space
3: Remove all newlines from content
4: Substitute commas for newlines in text box
browser.urlbar.autoFillBooleanTrue: Enables inline autocomplete.
False (default): Opposite of above.
Tuesday, 09 August 2005 11:28:19 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Sunday, 31 July 2005
Scott Henselman has released dasBlog 1.8 RC1! Since dasBlog is one of the most impressive pieces of open-source software I've ever used (solid, stable, impressive codebase and very intuitive to boot) and seemed to be in hiatus for a while, this is some of the best news I've heard in a while.

I went ahead and upgraded, and the transition seems to be impressively smooth. Atom 1.0 is now fully supported, and having done some reading on it I think I will be evangelizing it a lot more in the coming weeks, since it seems to solve a lot of issues with RSS (not the least of which is a properly written schema).

dasBlog 1.8 also comes with a pretty nifty theme called BlogXP, which I intend to provide as an alternative theme as soon as I get around to reworking it a little bit. So far I'm very pleased with the performance and usability enhancements, and will report further.

Update (14:28 GMT+2):
I just spent the last couple of hours hunting down what I perceived was an output caching issue with either dasBlog or ASP.NET. I updated this entry with a trackback link to Scott's website, but it was not properly handled (no trackback, and the linked text did not show to boot). To make a very long story short, apparently dasBlog has several "content filters" enabled by default; these content filters are regular expressions which match, among other things, the strings dasBlog, Newtelligence and Clemens Vasters and replace them with the appropriate links. Aside from these default filters being horribly out of date (the current maintainers are Scott and Omar Shahine), implicit defaults such as these really annoy me because they cause unexpected behavior (in my case, the string dasBlog inside an <a> tag was replaced with a complete hyperlink) and the behavior in itself is not necessarily desirable.

Also, a bug I neglected to report is yet to be fixed (it's now reported), and there are several other minor issues (such as this). Otherwise, dasBlog is a very solid piece of work indeed.

Sunday, 31 July 2005 11:43:26 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
# Sunday, 10 July 2005
Damned if I know why, but the GTK+ installation that comes with the Win32 version of GAIM doesn't handle Hebrew properly (mismatched parentheses, problematic handling of hyphens etc.). I've already mentioned that installing the Glade compilation of GTK+ solves the issue, however I attributed it to a particular broken version of the GAIM installer, which seems not to be the case. I should probably file a bug report about this.
Sunday, 10 July 2005 15:12:31 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Wednesday, 15 June 2005
It took me ages to understand the fundamentals of internationalization, (man-) language interoperability etc. In fact, only after working on MFC software over a year I encountered a problem so fundamentally accute I couldn't for the life of me figure it out, and it took a bitchslap from my friend Ilya (Konstantinov) to make me halt and figure the problem out properly.

Internationalization is hard. Perhaps its hardest aspect is support for the various languages; each language has its own character set, and although most widely-used languages derive from the basic latin alphabet there are still subtle differences. German makes extensive use of accented characters (é and ü for example); Czech makes use of the relatively unknown caron (č) and that's just the tip of the iceberg. Imagine the thoroughly different requirements of Arabic and Hebrew: complex script languages that are not only written right-to-left, but employ a completely seperate alphabet with different requirements. For example, did you know there are two ways to write several letters in the Hebrew alphabet, depending on their location (middle or end of a word), but those versions of the same letter have the same semanthics? Or maybe you've run into the latin letter Eth (Ð), which to my knowledge only exists today in Icelandic?

Finally, to the point: if you've ever received an e-mail with question marks instead of words, entered a website in your native language but got gibberish instead or perhaps (for the more astute) wondered how it is possible to display text from so many different languages on one document (web site...), you're not alone. Most programmers are completely unaware of these fundamental issues, and cause massive headaches to users and fellow programmers alike. I've come across an article Joel Spolsky wrote back in 2003 with an absurdly long name; no matter: finally someone (certainly with more credability than myself) has taken it upon himself to write a thorough introduction to the subject for people - developers in particular, but the technically savvy among you might also be entertained - who do not realize its importance. Please, please please go and read it before you go on with your daily lives.

Wednesday, 15 June 2005 15:23:13 (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Sunday, 05 June 2005
Despite my lately-discovered tendency for open-source evangelism, I constantly use proprietary software in my day-to-day computer exploits. Here's a list of a few of the more useful ones:
  • Everyday use:

    • Windows Live Writer - Microsoft's blog client/word processor. Microsoft entered a saturated market full of mediocre and/or abandoned software, and simply did everything right from the get-go. This is one hell of a tool - stable, convenient and extensible. Recommended.
    • XMPlay - a great audio player for Windows. Has excellent module playing capacity, plays streaming audio perfectly, basically does everything WinAmp does only better and in a much lighter package. I have yet to find a (preferably portable) open source platform which compares..
    • Microsoft Outlook - Outlook has its moments, but I've enjoyed working with Mozilla Thunderbird a lot more. I originally switched to Outlook for its PDA synchronization capabilities (via ActiveSync); since this is no longer an issue for me, I'm planning on switching back to Thunderbird as soon as I can find the time to take care of the migration.
    • Total Commander - I simply can't work properly without a Norton Commander clone. I switched from Servant Salamander to Total Commander and so far never looked back. An open-source replacement is definitely #1 on my wish list though.
    • AVG Free Edition - the free (for home use) version of the AVG Anti-Virus is an impressive piece of software. It's lightweight, nonintrusive and simply works. I'm sceptical that open-source antivirus software can be as up-to-date and effective as proprietary software.
    • Windows XP Professional - bought a copy with my laptop, and can honestly say I do not regret it. It is impressively full-featured, completely stable, has terrific hardware support (I will tell the story of my Linux hardware woes in another post) and despite being very powerful it is also very intuitive to work with.
    • Trillian Basic - a free multi-IM client (I use ICQ and MSN). It's not lightweight, nor it is the fastest, but from all the multi-IM clients I've used (GAIM, Miranda, Trillian) it has the best combination of stability, features and looks.
    • ACDSee (at work) - Best of breed photo browser. The new version seems quite bloated, but it's still the best program of its sort I've used (since version 3...)
    • XnView (at home) - Great photo browser that's fairly quick and lightweight. Free for non-commercial purposes, basically does everything almost as good as ACDSee.

  • Development tools:

    • Visual Studio 2005 - being a primarily .NET developer, this is an absolute must-have. It has a lot of issues though, and missing some features that I can only enjoy with ReSharper.
    • JetBrains ReSharper -the quintessential upgrade to Visual Studio. Improved autocompletion and syntax highlighting, fully customizable code reformatting, code navigation, refactoring, code templates, unit test runner and more, all in one package. I've been using this since version 1.0 after seeing a presentation by Roy Osherove, and nowadays I find it daunting to work without it.
    • Araxis Merge - best of breed commercial diff and merge utility. WinMerge and the various diff/merge utilities that come with source control provides (Vault, Perforce etc.) simply can't compare.
    • Stylus Studio - I tried this out as an alternative to XmlSpy a few years ago and got hooked. Although it's still a terrific XML IDE, unfortunately they have very annoying registration, activation and upgrade policies, so I may yet take XmlSpy for a renewed spin.
    • SourceGear Vault - the source control provider we use at work. It's like a moderately improved version of SourceSafe: reasonably fast, fairly full-featured and mostly works. I've used Microsoft VSTS and Perforce since and both are far superiour, but also considerably more expensive.

  • Occasional use:
    • Nero Express - a lightweight version of the fully-fledged Nero. This has been my CD-burning software of choice for about 6 years. Since a copy came with my laptop I haven't found the motivation to seek a proper open source replacement yet.
    • PowerDVD 5.0 - probably the only reason I still use PowerDVD is because it came (OEM) with my laptop. I don't watch many movies on my laptop so I couldn't be bothered to find an open-source replacement.
Sunday, 05 June 2005 18:34:44 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
The Thunderbird nightly build for yesterday seems to kick quite a bit of ass. It's just as stable as the 1.0.2 stable build, has a useful spellchecker, works like a charm with the BiDi Mail UI extension and feels over-all very solid. Can't wait for the official 1.1, so I could recommend it to other people.
Sunday, 05 June 2005 11:12:05 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
# Monday, 30 May 2005
Apparently the GAIM 1.3.0 installer contains a really odd, bizarre or whatnot GTK+ runtime. Anyways I've installed the Glade 2.6.7 RC-1 GTK+ runtime (download) and it works like a charm.

Monday, 30 May 2005 20:33:52 (Jerusalem Standard Time, UTC+02:00)  #    -
Software
I've been slowly but steadily moving to open-source platforms over the last few months. There are many reasons why and I won't bore you with the details; suffice to say that most of the major open-source projects are at worst almost as good as their commercial counterparts, free, cool and, from a developer perspective, there's always the option of tinkering.

Here's a selection of some of the more prominent open source programs I use:

  • Things I use every day:
    • Mozilla Firefox - the quintessential open-source project, which is lately getting even more spotlight than Linux itself. It has all the features you can hope for, is much faster than Internet Explorer, far better in the usability department (tabbed browsing, better download manager etc.) and is even compatible with about 90% bidi (Hebrew) websites. I've been using this since Firebird 0.5 (thanks, Ilya!) and it kicks mundo ass.
    • OpenOffice.org - the Microsoft Office replacement that's actually better than Office itself (well, at least Impress and Writer are). A localized version in Hebrew can be found here.
    • SpamBayes - open source bayesian filter, with Outlook plug-in. Fast and robust.
    • FileZilla - great FTP client and server (on par with CuteFTP and BulletProof). Windows-only, though.
    • The Gimp - photo editor. Not perfect, but as close to Photoshop as it gets without paying mundo bucks, and it's actually pretty damned good.
    • 7-Zip - excellent compression tool, with command line as well GUI options, a full library and support for most popular compression formats.
    • VideoLan Player - impressive open-source player and codec library. Self-contained and works great.
    • JetBrains Omea Reader Pro - excellent news aggregator with a huge number of features I don't generally use (among other things, it synchronizes with Outlook to let you access notes and contacts, it has a newsgroup reader, and more). It's fast, stable and simply good, and best of all - it's about to be released as open source software.
    • Notepad++ - terrific editor with syntax highlighting. It simply works.
    • ffdshow - a terrific DirectShow/VFW codec pack, including XViD, DiVX and MPEG-4 video decompression filters. Great quality and performance. Make sure to Google for the latest build.

  • Development tools:

    • Eclipse - an extremely impressive, full-featured IDE which gives Visual Studio a run for its money.
    • The Regulator/Regulazy - Roy Osherove's as-yet irreplacable tools for developing regular expressions (particularly with .NET).
    • WireShark (formerly Ethereal) - the de-facto packet capture and analysis utility. One of the best debugging tools known to man.
    • Cygwin - Posix environment for Windows, with GNU tools and everything. I'm not much of a UNIX guy, but this has proved invaluable in more than one case.
    • NUnit - the most popular unit testing framework for .NET. Make sure to check out TestDriven.net (unless you use ReSharper, in which case the built in runner should suffice).
    • log4net - Logging framework for .NET. Absolute must-have.

  • Good tools I sometimes use:

    • Audacity - solid waveform editor
    • VirtualDubMod - best-of-breed DirectShow-based processors. I use this to encode, transcode and edit AVI files.
    • DOSBox - an open-source DOS virtual machine, emulating slower machines as well as several audio cards. Great for running old games, although not perfect.
My open source wishlist includes:
  • A proper, open source Norton Commander clone. Currently the best software in this category is, in my opinion, Total Commander, which has two major deficiencies: it doesn't support unicode, and it's commercial. Midnight Commander is Linux-only, text only and just doesn't cut it.
Monday, 30 May 2005 20:17:34 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal | Software
Me!
Send mail to the author(s) Be afraid.
Archive
<2024 March>
SunMonTueWedThuFriSat
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456
All Content © 2024, Tomer Gabel
Based on the Business theme for dasBlog created by Christoph De Baene (delarou)