Tomer Gabel's annoying spot on the 'net RSS 2.0
# Saturday, 03 June 2006

It's been a while since I've posted anything gaming-related, and I'll make it short and sweet: stop whatever it is you're doing. Buy Dreamfall. Play it. Relish it. It would be better if you played The Longest Journey first, but it's not an absolute must (you'll enjoy the sequel a lot more though).

Suffice to say that this game looks amazing, plays amazing, sounds amazing... the voice acting is top-notch, the story and settings are magnificent. It's... bloody awesome. Along with Psychonauts it must be the best game I've played in years.

Saturday, 03 June 2006 05:22:30 (Jerusalem Standard Time, UTC+02:00)  #    -
# 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
# Tuesday, 30 May 2006

Damned if I know why, but Visual Studio 2005's debugger just stopped working today. I initially found this out when I attempted to run PostXING in debug mode, and although the debugger seemed to be working (VS2005 switched to debug view, the postxing.vshost.exe child process was right there) absolutely nothing happened for minutes. When I eventually hit Shift+F5 I was faced with another 30-odd-second stall, after which I was duly presented with this astoundingly useless dialog:

"Mom! The VS2005 debugger is being a dildo!"

If I didn't want to stop the debugger, I wouldn't have hit Shift+F5. This is a class case of the "I know what you want but I'll ask you anyway" syndrome which is becoming increasingly evident in Microsoft's newer products (such as Windows Vista).

But that's not the issue. I can't get the damn debugger to work. It stopped suddenly and wouldn't debug any project at all - it just hangs during or immediately after loading symbol files. And I can't find anything about it on the 'net, either. Oddly enough, attaching to external processes seems to work fine. Ideas?

Tuesday, 30 May 2006 23:51:55 (Jerusalem Standard Time, UTC+02:00)  #    -
# 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
# Tuesday, 16 May 2006

Last month was full of interesting occasions and happenings for me - most of those of an uninteresting, personal nature. It was hectic, to say the least. Which is why my posts over the last month or so were extremely sporadic. I intend to remedy the situation; now it's just a question of what to post about, and this is where the problem lies: I am not familiar with my readership, such as it is. Most of the comments I get in response to blogposts are either from direct friends or occasional Google searchers; I appreciate these comments a great deal, but they don't provide me with equally important information: who are the people who consistently read this? What are the RSS subscribers interested in? This is more or less a personal blog, which has its advantages (freedom) and disadvantages (lack of focus), and I have no real way of telling which of the subjects I touch gets more attention or interest.

This is where I'd really appreciate feedback! There are (presumably) reasons why you read this blog. Is it for the development-related bits? Which posts do you find useful/interesting, which are completely pointless? Please, help me to keep you interested. Post a comment, e-mail me or whatever, and let me know!

Tuesday, 16 May 2006 22:17:21 (Jerusalem Standard Time, UTC+02:00)  #    -
# 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)  #    -
# 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)  #    -
# Monday, 24 April 2006

It's hard to miss the irony in the fact that the Visual Studio debuggers are riddled with bugs. As one of the most widely-used programming tools I'd expect it to be polished beyond reproach, however even in the managed world the debugger is - to put it mildly - not perfect.

The VS2003/.NET 1.1 debugger is particularly susceptible to threading issues. It stalls, it barfs, it lies, and now it even triggers exceptions in your code that aren't even documented in MSDN - I was getting ThreadStopExceptions on some of my threads while stepping over instructions. There was no way to know when it might happen and no way to reproduce it consistently. I was reluctant to blame the debugger at first, but this thread provided both the culprit and the solution: close all locals, autos and watch windows and you should be right as rain.

Monday, 24 April 2006 23:47:09 (Jerusalem Standard Time, UTC+02:00)  #    -

Part of a very large project we're working on stopped working oh-so-suddenly for one of my colleagues. An exception would be thrown on initializing .NET Remoting - specifically when instantiating a TCP port. Here's part of the exception content:

System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted

at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.StartListening(Object data)
at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.SetupChannel()
at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider)
at System.Runtime.Remoting.Channels.Tcp.TcpChannel..ctor(IDictionary properties, IClientChannelSinkProvider clientSinkProvider, IServerChannelSinkProvider serverSinkProvider)

... (deleted)

Running netstat -b proved that some process or another was indeed listening on that particular port, however it failed to say which process is responsible (just said "System".) Running the excellent SysInternals utility TCPView also proved futile, as it displayed a prominent <non-existent process> in the Process column.

As usual, at this point I turned to the 'net; a quick search provided a hypothesis that IIS was somehow responsible for hogging the port; this didn't seem to make sense because IIS was not involved (the channel was not hosted in IIS, nor was it an HTTP channel to begin with) and shutting the IIS services down didn't help any either. Listing the active services via tasklist /svc proved useless as well, as did a reboot.

After some serious searching I picked up this thread in the pgsql.hackers newsgroup; apparently they had similar issues with broken security (AV, firewall) software not uninstalling properly; a lot of security-related software products (called Layered Service Providers, or LSPs) install their own TCP/IP handlers into an appropriate chain in the Windows TCP/IP stack. Although that wasn't the case here, we figured it can't hurt to try the solution pointed to by the newsgroup participants; LSP-Fix is a utility that rebuilds the appropriate registry entries in an effort to restore the handler chain to a working condition. One reboot later and everything was back to normal.

I'm still not clear on the cause of the issue, but this information might prove useful up ahead...

Monday, 24 April 2006 22:15:59 (Jerusalem Standard Time, UTC+02:00)  #    -
Send mail to the author(s) Be afraid.
<2006 June>
All Content © 2017, Tomer Gabel
Based on the Business theme for dasBlog created by Christoph De Baene (delarou)