Tuesday, March 23, 2010

Google in China

All this stuff about Google standing up to China's government, Chinese hackers et cetera has left only one question in my mind: why Google's front page is different in China?

What happened to File Assossiaction under Vista, Seven?

Back to my help-you-do-it articles...

One thing bothered me for a while: our dear Microsoft removed the file associations item that was under the Tools Menu.What the hell? I never quite understood why MS does that sometimes. Information Architecture is very important, and regrouping items might make things better for the user. However, those grouping and organizations should reflect what the user (us!) believes to be the right way to sort the information.

I mean, when asked the question, "where is the right place to put <something>?", the answer is usually "where most users think it will be!". So Microsoft, where do *you* think your users look for file associations? Where it has been for more than a decade, under the Tools menu!

When I was looking for it, to fix an association that another badly planned application decided to break, I immediately went to the Folder Options, under the Tools Menu and looked for the association, which was no longer there.

Before I panicked I decided to Google it, and found out that the associations are now under a specific application called Default Programs, under the Control Panel.

The Default Programs application is a more user-friendly version of the old File Associations tab. It lets the user change the default program that will open an file (based on the extension, as it's the custom in Windows), change the association between file extensions and programs, set the autoplay defaults, and even use a profile-like thing to rapid switch configurations for associations (which is done in order to enable the user to quick return to a Microsoft setting, of course).


So far, so good. If you need to reconfigure your file associations, you should look at this wizard.

HOWEVER, where is the "advanced" button? None. Microsoft thinks all of us, users (even those with a Enterprise Version of Windows Vista) are dumb. So there's no way to change how the application is executed, like, for example, which parameters would be provided when calling a program to open a certain file. in my case, I was simply trying to tell windows that Java jar files are opened by calling java -jar JARFILE.

Well, enough complaining. How do we do it? There are two shell utilities, ASSOC and FTYPE, that enables us to do it. If changing the place of the interfaces was a bit unfortunate, I must say that the new solution is way better. ASSOC and FTYPE lets us create a N to N association between file types and extensions, and it's much more clean than the way it worked with the old interface.

You must take two steps in any order when defining the associations:

Define the File Type
A file type is a kind of "profile" for your file (I think file class would be an even better name). You name it anything you'd like and informs how it's opened. On my Java JAR example:

FTYPE jarfile="C:\aplic\Java\jre6\bin\javaw.exe" -jar "%1" %*

where %1 is the filename that Windows will gladly pass to your application and %* tells windows to "pass everything else to the program the way you received it". The last one doesn't make much sense in Windows, but the truth is that the shell will also use this list to open files, so if you simply type the filename on the prompt, you end up opening the file.

Create the Association
Now, for the association itself,

ASSOC .jar=jarfile

which is quite intuitive: you tell Windows to threat files with .jar extension as jarfiles.

Tuesday, March 9, 2010

Sorry Chrome










Should I be surprised that Chrome doesn't work with this GOOGLE website?

Elements and Attributes in XML

Today I got myself wondering about when to use differences and attributes in XML. The general understanding is that the question is very philosophical, depending on how your system is designed and, even more, on how you understand the data in your application.

However, the subject isn't new and there are a lot of articles on the web that already deal with the issue. So, instead of repeating what other, more experienced people already wrote, I'd rather appoint readers in the right direction:

Friday, February 12, 2010

What About Google Wave?

I'm a technology enthusiast. Let me rephrase that: I'm a software enthusiast. Every time I can lay fingers on a new piece of software, I do. I have installed and run VirtualBox on my computer, just for the sake of it; I use Cygwin daily. I don't need but use OneNote because the concept is cool. I'm currently learning Powershell scripting and my navigator of choice is Chrome, just because Google decided to use processes instead of threads. And, of course, when Google Wave was announced at Google I/O, I couldn't wait to put my hands on it!

At first I was, of course, astonished. Google delivered almost everything the presentation first promised, which was indeed a lot. At first look, I found the tool to be very similar to a web forum. I even guess that was one of the goals, uniting the community activity of forums to email. As a tool, everything was sleek and had that "Google touch", which means good quality, a lightweight interface, strange coloring, etc. The site makes extensive use of AJAX to offer a seamless interface and dynamic loading of data. The load time for the items are as expected: good as long as they aren't cluttered with posts.

The best features are the phenomenal integration with YouTube! and Gears, the possibility to upload files to a persistent location which makes sharing that more easier (even though I haven't really discovered the size limit for each file) and the formating, which is very present, so users are encouraged to write visually rich "articles". Finally, some of it's real-time features can add something to the experience, even though I think that is far from being one of the product's best qualities.

But, whereas technically Google Wave stands out as a very polished tool filled with features, conceptually, it's flawed. Google aimed high and large: Wave was going to replace e-mail, forums, IM, etc -- almost every well established electronic communication tool out there. And the application had a list of features to make up for each of those tools that we use. Problem is, as it's usually the case with swiss-knives kinds of software (or any product, for that matter), Wave accomplishes almost none of the replacements it proposed itself to:

When compared to forums, you will discover that not being "public" makes Wave less than useful. It's cool to discuss about that new movie with your friends, but community boards will enable you to get a different point of view every now and them, so important to discussions.

And then Wave should replace e-mail. E-mails chains are like stacks of information. Everyone adds something to the top, and you "can't" change what already has been done (on some cases, e-mail is more a tree, because of simultaneous replies, but that doesn't happens very often). Wave, however, threats information like a "live" document, which is compatible with the Collaboration Age (or Collaboration Wave, as one might call...). So what you said yesterday may change today, or even cease to exists. It's confusing. There's a feature that tries to solve (patch) that, called "history", but it's like a pain to use it to check what you missed. On a e-mail, you just have to scroll-down the screen a bit and there it's, that last piece of info that you forgot to read. On Wave's History, you will keep going back and forth until you discover what was there but isn't anymore.

And IM? Well, Google shouldn't even have proposed that. IM works because you have a small icon on your desktop that you can double-click in order to get a list of contacts and start talking with whoever is online. It's that simple. On wave, to IM, you use the IM panel, which is just like a sized-down version of Google Talk... So, why would you? Isn't it easier to Google Talk anyway?

All things said, I must add that the worst part of Google Wave is the problem that, for a dynamic application, the topics are treated very statically. Let's say you send your pals an e-mail about that latest game for Playstation. You start talking how it reminded you of a certain movie, and before you know, your friends started talking about movies. After a while, the subject changes slightly, after another friend adds that this actor was once arrest for drug use, and then you're discussing the lives of the famous. That's is a bit chaotic, indeed, but so are conversations. They rarely ever turns into what we wanted in the first place... once they begin, they become live things that change whenever something different is said, because that's the way the brain works, by making free association of ideas. When you try to have this same conversation in Wave, however, things get a bit confusing. Since Waves are so clearly persistent, you look at them that way. You start a Wave about a trip to Europe, you hope people only talk about that in there, which doesn't happens. Someone ends up saying something about a bar or restaurant, someone remembers about another one in your own city, and all the sudden your Wave about Europe is now arranging a dinner with your friends. And worse, since you can post anywhere (Waves are flattened-down trees), the subjects are intertwined. One can argue that this would resemble our thinking process even better than e-mail, but as a tool, it gets messy.

All-in-all, Google has offered us a nice product, with nice features, that is useless only because all its older brothers are more effective at what it does.