Firefox Copy and Paste Bug Finally Fixed

December 9th, 2006

Many users have complained that TopDesk prevents them from copying and pasting in Firefox. I’ve explained on more than one occasion that it’s actually a bug in Firefox (which Mozilla has known about for four years), but that’s generally fallen on deaf ears and TopDesk has continued to bare the blame. While I understand why users assign the blame to TopDesk (“it used to work and now it doesn’t, and the only thing that’s changed is I installed TopDesk”) it’s been a very frustrating problem for us.

That changed today when I stumbled across The NeoSmart Files and found a blog post that describes how they’d managed to rally the troops and badger the Mozilla developers into finally fixing the problem. According to Neosmart, the fix is included in the latest versions of Firefox 1.5.x and 2.0. After testing both versions out with TopDesk I haven’t been able to reproduce the issue, so it seems to be gone for good.

While it’s great to see a community band together to get something done, it’s a bit disturbing to see the Mozilla developers leave such a show-stopper of a bug (and one that’s in all of their software, not just Firefox) in their software for four years. While it’s not possible for them to fix all outstanding bugs in each new version for Firefox, you’d think that something like not being able to copy and paste would be a serious enough issue to warrant their attention.

While we’re on the subject of Firefox bugs, I’m still looking for a proper fix for the bug that causes the “Find” bar to open automatically. Has anyone found a solution to this problem?

Microsoft Office UI Licensing

November 27th, 2006

It looks like you can now license Office 2007 UI components, including the Ribbon. It’s a royalty-free license, but it prevents you from developing “products or components that perform primarily as software for word processing, spreadsheets, presentations, email, contacts and databases, and that are created or marketed as a replacement for any or all of them”. You know, just in-case you decide to develop a direct competitor to Office.

Offering these components to developers with this kind of license restriction is going to severely hinder adoption. Who in their right mind would let Microsoft have the final say on whether their application meets the license requirements? They may turn out to be very lenient about the types of applications that are valid under the license, but what developer would tie their software to these components when Microsoft can decide, at any time, that a product breaks the license agreement?

I understand that Microsoft put a huge amount of effort into developing the new UI, but why not offer the components as part of a new version of the Win32 Common Controls? Giving developers access to these new components can only benefit Microsoft (better Windows software equals more sales of Windows), and the best way to do that is to make them common controls.

Joel’s On Something

November 24th, 2006

Joel Spolsky is usually (mostly) on the money, but his latest rant, on Vista log off options, is off the mark.

As some background, when you click on the Start Menu in Vista you’re presented with three options: turn off the computer, lock the computer, and show the advanced options menu. The advanced options menu offers another seven ways to log off, including hibernate and standby.

Joel writes:

“Every time you want to leave your computer, you have to choose between nine, count them, nine options: two icons and seven menu items. The two icons, I think, are shortcuts to menu items. I’m guessing the lock icon does the same thing as the lock menu item, but I’m not sure which menu item the on/off icon corresponds to.

The fact that you have to choose between nine different ways of turning off your computer every time just on the start menu, not to mention the choice of hitting the physical on/off button or closing the laptop lid, produces just a little bit of unhappiness every time.”

and then proceeds to simplify the Vista log off options to the point where there’s one simple button called “b’bye”.

Great, you think, he’s taken something that’s complex and made it simpler and more user-friendly, but in doing so he’s made the assumption that he knows more about Microsoft’s users than they do. Sure, his suggestion seems “better”, and would, in fact, make Vista easier to use for beginners. The problem though is that Microsoft isn’t developing software targeted at a particular group of users, they’re developing software that will be used by around 500 million people. Within those half a billion users there’s a huge number of different groups, each with vastly different skill levels and requirements. With that many users you can’t just assume that everyone needs things to work the same way.

Joel does have a point: it’s good to keep things simple. However, in his quest to make things as simple as possible he’s failed to take into account the needs of all users. Ironically, given their past mistakes, it turns out that Microsoft has. They’ve recognized that not all users have the same needs or skill levels, so they offer only the two most common choices up front, but still allow advanced users to easily access the more complex options. In the end, drastically simplifying functionality might improve usability for some users, but it makes software less usable for everyone else.

MacHeist

November 23rd, 2006

As you’ve probably already guessed (being the developers of TopDesk), at Otaku Software we’re also big Mac users.

One of the talking points in the Mac software community at the moment is the MacHeist promotion. It looks like an interesting way to sell software, but (to me, at least) they’ve shot themselves in the foot by having their narrator attempt a terrible fake Scottish accent. Just what were they thinking?

Preventing phpBB Forum Spam

November 23rd, 2006

Lately we’ve been getting around 2-3 spam posts a day on our phpBB-based forums, so it looks like spammers have found a way to bypass the built-in phpBB CAPTCHA functionality. Can anyone suggest a good spam prevention add-on for phpBB-based forums?

Cringely on Puppy Linux

November 20th, 2006

Robert X. Cringely (AKA Mark Stephens) mentioned a Linux distribution I’d never heard of, Puppy Linux, in his latest column. I checked it out, and was surprised to find that Puppy Linux was started by none other that Barry Kauler, my old engineering professor. As they say, it’s a small world.

Wired – Paying for software is bad?

November 18th, 2006

Yesterday Wired posted a round-up of the best software for retrieving music off your iPod, and I noticed something disturbing about one of their reviews:

iPodRip – Shareware, $15

Good: Sync iTunes to iPod with one click. Support for Mac OS X and Windows. Many additional features if you’re looking for something more than a simple iPod-to-computer transfer.

Bad: No video transfer. It isn’t free, but it can be used 10 times with no limitations.

Since when did having to pay for a software application count against it? I can see the point if it’s too expensive or isn’t as good as cheaper/free alternatives, but marking down software just because it costs money isn’t a valid criticism.

Photosynth

November 16th, 2006

Photosynth, from Microsoft Live Labs, is an amazing piece of software. It analyzes thousands of photos of a place or an object and builds a 3D representation that you can walk or fly through.

Photosynth.

Introducing NetSet 1.1

October 3rd, 2006

We’ve just released our third product, NetSet, a utility that lets you easily change your network configuration. NetSet lets you store network configuration settings such as the IP address and DNS server address, and the Internet Explorer home page, automatic configuration settings, and proxy server settings, and then quickly activate those settings via a hot key or by selecting them from a menu. If you’re regularly changing your network configuration settings, NetSet will save you a lot of time and effort.

NetSet evolved from a utility I developed during my days working for an engineering consultancy, where I’d visit between five and ten clients a week. The problem was that I had to connect my laptop to each client’s network, but every network was configured differently, so I had to manually change the network configuration to connect to the client network and then change the network configuration again when I got back to the office to re-connect to the company network. As you can imagine, this got old fast. I tried using the network utility that came with the laptop, but it took me longer to switch network configurations using that than it took to manually setup the network. I also tried setting up batch scripts using the built-in command line netsh command, but it was painful to set up and manage the script, and very easy to make a mistake.

So to solve the problem, I rolled my sleeves up and developed NetSet. It was fairly basic though, so after starting Otaku Software I re-wrote it from scratch and added hot key support, the ability to select a network configuration from a graphical list, and a graphical replacement for ipconfig. It’s been in use a Otaku Software for some time now, and we’ve been gradually improving it to the point where where we think other people would find it geniunely useful.

As always, I’d love to hear feedback on how NetSet can be improved and what features you’d like to see added. You can find out more about NetSet here.

How to Prevent System Tray Icons From Disappearing

September 22nd, 2006

When you’re a programmer, it seems like you learn something new every day. One of the things I’ve been working on in the next version of TopDesk is making it survive Explorer crashes. TopDesk has quite a few hooks into explorer.exe, so when Explorer goes down, TopDesk goes with it. After banging my head against the wall several times I managed to fix the problem, but I noticed that even with the fix in place the TopDesk system tray (sorry, taskbar notification area) icon failed to re-appear when Explorer came back to life.

What’s happening is that when Explorer crashes, the taskbar notification area crashes too, forgetting any icons it had. When Explorer starts back up, it re-creates the taskbar notification area and sends out a registered window message called (strangely enough) TaskbarCreated to all top-level windows. It’s up to an application to check for this message and re-initialize any taskbar notification area icons it has. Here’s how you do it in C/C++:

1. Register your application so it can receive TaskbarCreated messages:

UINT wmTaskbarCreated = RegisterWindowMessage(_T("TaskbarCreated"));

2. Handle the message in your window procedure:

LRESULT CALLBACK WindowProcedure(HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam)
{
	switch(nMessage)
	{
	default:
		{
			if(nMessage == wmTaskbarCreated)
			{
				// Call your system tray icon initialization function/method here
			}
		}
		break;
	}

	return DefWindowProc(hWnd, uMessage, wParam, lParam);
}

For those of you interested, the MSDN documentation on the TaskbarCreated registered message is hidden away here.