Opera Mini

Today, Opera released Opera Mini, a browser written in Java for all the Java capable mobile phones out there

By the use of a special proxy server, they manage to both minimize the traffic a usual browsing session generates and to keep the application as performant as possible.

When I tried to download the application via WAP, all I got was an ‘Invalid Jad Request’-Error (wahtever that meant), but with some sneakyness, I found the download URL for the jar file none the less (the linked version is the high-memory version. There’s another for less advanced phones)

I copied the file over to my K750i via bluetooth which is cheaper than downloading it and it also had the advantage of actually working.

The browser is very nice. While it uses quite some time to finally launch, surfing is very quick. And the very good font rendering (of course operas small screen rendering is active aswell) makes this a pleasure to use and is the first justification why a phone should have a screen resolution as big as the K750i’s

And the most interesting thing: Opera uses the default internet GPRS profile. Not the WAP one. This makes surfing via opera a whole lot cheaper than via the built-in wap browser of my phone.

Congratulations, Opera. This rules!

(and thanks, Christoph, for pointing it out to me)

PostgreSQL 8.1

A new year, a new announcement of a new version of PostgreSQL, an all-time-member on my favourite tools list.

2002 brought us PostgreSQL 7.3, 2003 brought 7.4 (no announcement on this blog) and 2004 brought us PostgreSQL 8.0 (the date of the blog entries match out of sheer accident – I did not time them at all).

And now it’s time for the next announcement. While the team is a bit early this time (it’s not december the 2nd yet), it once more brings a lot of good stuff.

What’s the most interesting aspect about those PostgreSQL releases: They always bring just the feature I need at the time of the release.

7.1 brought TOAST tables. 7.4 brought autovacuum, 8.0 brought the windows version and now 8.1 brought some needed performance improvements with large tables and large COPY operations (which is what I’m doing currently)

And it’s not just me. Christoph was in the position to have needed something like PHP’s max() function. And what do we learn: 8.1 brings us greatest()

Congratulations to another splendid release, PostgreSQL team. I hope to see you going as strong for the next couple of years.

Frustrated by personal firewalls

As you may know, the company I’m working in develops barcode ordering solutions.

Now for me it’s very frustrating to see that whatever I do, those oh-so-good personal firewall and internet security and whatnot tools manage to screw the experience for the enduser. During developement, I’m always watching to adhere to common known-good practices in regards to handling the system. Works without admin rights? Yes. Uses systemwide functions wherever possible? Yes. Clean uninstall? Yes. Spyware free? Of course. Trojan horse? God beware! No!

None the less, PopScan gets majorly screwed here and then:

  • Norton Internet Security is per default configured to let only ‘Programs authorized by Symantec’ to access the internet. I don’t even try to ask how to get on that list – besides the fact that we’d never have the resources to do wahtever Symantec wants from us – if they provide such a possibility at all.
  • Whenever the offline version connects to the internet, a big scary warning from whatever personal firewall (besides Norton – that tool silently blocks everything that’s not IE and LiveUpdate) pops up telling the (not-knowing) user that something bad is currently happening. End-users are known to click ‘block’ here and accuse us of creating trojan horses
  • To circumvent many problems associated with installations on the client, we created the Web version of PopScan. And you know what: We’re still screwed. Java-Applets get blocked (how the hell should we get the barcodes in the scanner if not with Java or ActiveX??), PopUps get blocked (of course we don’t pop up any unrequested ones. The only popup used is for reading the scanner. With onClick=”window.open()”. It can’t be more ‘user-requested’ than this. Still… Some security program deemed it necessary to block that.

The worst thing about all that is: Those obviously broken programs that screw applications all over the place call themselves ‘Security Tools’ and with this, they seem to be automatically trusted by the end users. If a security tool tells the user “Trojan Horse Alert”, the user panics and blocks everyting. If a security tool just silently blocks certain internet connections (PopScan Offline uses Port 80 to communicate – using WinInet API – a less intrusive, less sneaky way for connecting to the internet does not exist), everyone blames the blocked program of not working.

To connect to the internet regardless of any PFW setting would mean to inject code into IE and use that to do your internet work. The better tools still detect that, but you can get around it by abusing the Windows Message Loop and simulating keypresses. But both solutions are actually trojany. And I’d never ever implement such a “feature”. It’s compomising stability and integrity. And it’s etically flawed. None the less: The tools force me to do something like this if I want to work it 100% of the caused in 100% of the installations

Those tools go way too far.

And don’t forget: It’s the nonexperienced users that get bitten: Those install security tools. Those don’t know what those tools do. Those trust them. Those make the wrong conclusions (PopScan can’t connect. PopScan must be broken).

It’s just frustrating. Why use lots of time to make a software non-intrusive and perfectly compliant to both technical and ethical standards when it’s blocked just like your average trojan horse trashing your installation and displaying advertisement all over the place?

Actually I think, those trojans are better off because they have code to circumvent the security tools.

As it currently stands I have the feeling these tools do block more legitimate applications then trojan horses. And this frustrates me. Greatly.

Usability with the Browse for folder dialog

browsefolder.png

This dialog is the worst usability nightmare ever. It’s so bad that I’m really afraid of using any function in any program making me to chose a directory. Why? Don’t get me started:

  • It’s too small. Newer versions of Windows allow you to resize it, but it’s dependent on the program. The one I took this screenshot off does not.
  • It’s uncommon. You don’t see that dialog often. Many programs use a standard file selection dialog when they ask for a directory (I guess because of the problems outlined here)
  • It does not allow multiple selection. Meaning that if your program provides the user to work with multiple directories at once, it can’t be done with this dialog. You have to build your own solution, thus losing even more usability by forcing the user to learn something new
  • The tree-view is an uncommon view on the filesystem. Over time, Microsoft eliminated the tree view for directory navigation more and more. You have to willingly turn it on in Windows XP. There’s no explorer view with that tree per default
  • It’s context-less. Tell me: What’s the reason to select a folder in the dialog you see in the screenshot above? I don’t select a folder for the selections sake. I want do do something with that folder. What? The dialog does not tell me. I know this can be set in the API-Call to bring up the dialog. But many people do not.
  • It has not way to enter a path manually. Copy & Paste exists for a reason. If you have deeply nested paths, it can be a real timesaver. Navigate in Explorer (maybe already open anyways), Copy the path to the clipboard and… nope… no pasting
  • It has no autocomplete. I’m very fast in typing paths with the help of autocomplete: c:Pro[arrow down]Po[arrow down] and I’m in c:Program FilesPopScan. Not in this dialog. In this dialog, I have to click through the whole path
  • Around Windows 2000, microsoft extended the file selection dialogs with a shortcut bar allowing easy access to some commonly used folders. This bar is missing in this dialog.
  • It’s readonly. What if I want to make a new folder? Some “editions” of the dialog do provide a ‘New Folder’ button. Even so, it works by adding a ‘New Folder’-Folder and you have to manually click it to rename it (at least on this system here. Behaviour is erratic
  • There’s no context menu. Usuall when you see filesystem icons, you can right-click it to get a systemwide context-menu. Not with this dialog. Well. You can right-click. A context menu does appear. But the single entry is “What’s this” providing an utterly pointless context sensitive help entry that – I’m afraid has no context at all: “Click the plus sign (+) to display more choices” choices? What choices? Why do I want to see new choices? This is no answer for the question “what’s this”. It’s no answer at all. What the heck.
  • It’s context less (yeah. we had that before): Tell me: What’s the path I currently have selected in the screenshot? How can I know I have selected the correct folder? I may – after all – have multiple Richard Wagner folders on my harddrive
  • I wanted to write that it violates fitts law because you had to click those small ‘+’-signs (as the context sensitive help tells you). And now – after years of using this dialog I finally learned that you can double-click folders to expland them. I did not know that until now
  • When you have mounted network drives, it’s a living performance-problem as the top layer of the dialog displays all drives which can take some time. In which the dialog (and the unerlying app freezes).
  • The deeper you get in the hierarchy, the more you have to horizontally scroll.

I’m sure I can list even more, but enough is enough. I’m sure you get the point

Microsoft, I beg of you: Redesign this dialog!

Force the programs to use the new design. Don’t provide a fallback!

This way only the programs that are actually re-building this dialog (instead of calling the API) remain broken – and after all, they were broken to begin with: Why rebuild something crappy? Why rebuild it and risk it only being similar but not identical in usage? Why rebuild and risk it remaining broken even if the dialog gets fixed?

And believe me: There are people rebuilding existing OS-features. For no reason at all (see another posting about Adobes new file selection dialogs)