Tuesday, November 17, 2009

UDS Day 1 (only a day late)

So, yesterday was the first day of my first UDS!

Arrived at the airport around 8:30pm local time. The plane was scheduled for 30 minutes earlier, ruining my rather harebrained scheme to meet up with Andrew SB there and share a taxi. (I later met him at the hotel and apologized profusely). Ended up getting to the hotel around 9:30 pm. Somehow, my room-mate and I managed to be completely invisible to one another. For that night and the next morning, the only trace I had of the fellow was his laptop computer. (I've been racking my brain for a particularly apt "lucid lynx" metaphor to describe the behaviour).
I FINALLY recognized his computer - and, therefore, him - later in the day.

Following an awesome demo during the plenary session, I have been completely convinced: Quickly is beautiful. It's simple, it doesn't _look_ like something particularly amazing, but by golly it is!

I already love the atmosphere here. Still trying to figure out who everyone is, but once I get my head around that, I feel like this is really empowering :)
The sessions so far have been very inviting for participation. (And there is always the room's IRC channel projected in plain sight for everyone, for those who aren't aware).

There was a really productive discussion with the desktop team about the upgrade experience for Hardy Heron users. There is interest in presenting users with what is new and what they should be careful about before and during the upgrade. This is really important for Hardy -> Karmic because we will have changed many default applications. There are also sure to be some packages installed by the user which end up being removed with the upgrade.

Someone drew a parallel to ubiquity-slideshow, and I made a note of that in Gobby. It would be fun to have something like it during the installation. A big issue, though, is that Webkit isn't installed in Hardy and it would be silly to engineer a particularly complex solution. A simpler slideshow style application - or using gtkhtml - would work better. (May be a good direction to move in as a whole, now that Karmic is done).
Besides that, it seems that this type of information could do with being more personalized to the user's particular situation. And besides THAT, upgrades are slower than clean installs from my experience; nobody is going to sit and watch a slideshow, but they may read a nicely formatted list of notes relevant to their situation.

Another important thing - and, personally, I love this - is the thought that upgrades should be more decisive in presenting the end user with a desktop that is close to the defaults. It is a bit controversial, so I hope there is a lot of community involvement around the point, but I think there is some great reasoning for it. For example, a lot of users may have applied their own settings because they didn't like the old defaults, but the new ones - especially with the delta between Hardy and Lucid - may be more interesting to them.



There was also a great discussion about Ubuntu Fridge. There is a strong concensus that, at this time, it isn't working. It is unexciting and usually starved for content. It is also not very colourful; very plain :(
Unfortunately, it all got pretty caught up, around the middle, with talk about Canonical's IS department and Wordpress vs. Drupal. Still, a lot did get done. Knowing that people agree around an idea helps a great deal. I look forward to contributing to this one if I can!

Personally, I think it would be fun to drop the one-dimensional blog feel. Someone (sorry, as I said I'm still matching names to faces) mentioned that we could post occasional fun things to break the mold, "like a real fridge," just in lower volume and with more certain quality than on a planet. Thinking about it, I think this type of content could be maintained nicely in a sidebar of some sort. Two benefits: the colourful stuff stays in plain sight to keep the Fridge looking more dynamic, but the flow of more "important" information isn't broken.
By this being a single web site run through a more centralized group of people (as opposed to a completely automated planet), lots could be done to arrange different types of content in useful, exciting ways.

Just thinking out loud, of course :)


Over and out!

Tuesday, October 27, 2009

Okay, releasing an open source project is one thing, but this was fun.

For the new Ubiquity Slideshow project to be really easy for translators in the Lucid release, we needed a way to add notes to them. This way, translators would know what to do with the different strings, which actually have a lot of subtle tricks to them.

The existing infrastructure is pretty automated (although the scripts are really amateurish, truthfully written with a Google search on "how to write shell scripts" open at all times). Still, it runs translate-toolkit's html2po to generate a .pot file for every slide. Whenever I feel that strings are ready for translating, I can run the generate-pot-files script and upload a new revision. Launchpad then automatically pushes the new pot files to Rosetta and the translators can have fun.

Naturally, this makes it silly to add notes to .pot files since they are machine-generated. So, there needed to be a better way!

Enter the beauty of open source software. Instead of cloning html2po, writing a horrific workaround or "biting the bullet" and doing the whole thing manually, I simply downloaded the source code for translate-toolkit, familiarized myself with it, and (in a few sittings) had a patch. The patch provides an extra option (--keepcomments) for the html2po command. Using that option, html2po adds HTML comments as translator notes to their associated strings. This should help other documentation efforts, too.

Kudos to upstream for being awesomely responsive.

I also learned about what good Python code looks like. Really, html2po is a beautifully organized code project. I was not expecting it to be so enormous, but I didn't see any duplication in my brief visit and the whole thing was super easy to understand after getting over the initial "what - why is this thing so huge?!" hump. Great learning experience! (And yes, it has good reason to be huge; this has A LOT of stuff to it, and they even have unit testing).

Granted, the thing I'm talking about here is a really, really trivial patch, but I am quite pleased with it :)

Thursday, August 13, 2009

My open letter to Gordon Campbell

Dear Mr. Campbell,


I signed the No HST petition. To be honest, though, I don't have a full
understanding of the thing so I may be missing a key detail that makes
it click. I am no economist. I (should) feel comfortable leaving that to
the people who know what they are doing.

I signed the petition because I do not accept political parties that lie
their way through elections. Think of my signature as a shadow of that
lie you created a few months ago. You may be losing track; this is the
one where you said your party was not considering an HST. How could this
be a good policy, then, if you establish it in secrecy?

I would appreciate it more if your party treated me with respect instead
of insulting my intelligence. If your party does not trust its own
voters to apply judgement on facts during an election, I don't trust
trust your work either.


Sincerely,
Dylan McCall

Thursday, July 30, 2009

More interface woes

I encountered this on somebody's computer today, for the thirty millionth time...

This dialog showcases an epiphany of terrible interface design. The beginning of the story is impossible to comprehend, but somehow they thought up information bars (I don't know if they invented them or borrowed them, to be honest) but didn't really consider where to use them. They are quite popular for "this page needs your confirmation to actually function" or other things that really should be modal, high priority messages, while meanwhile they are unused for subtle matters of convenience like asking the user if he wants the browser to save his password. One could assume malice here: The information bar looks like part of the web page, so this way they can generate a belief that the web is ugly and confusing, which would be an easy escape from Microsoft's arch nemesis, Google.
Here is the end of story, though, as I envision it:
A group of developers decided on a perfect middle ground between the old dialogs and the new information bars. This is bound to please everybody: They would have BOTH! The information bar stays where it is. For people who miss the alert popup, they added one that appears for the sole purpose of pointing the user to the information bar.
"Wow, I am smart!" Jimbo thought to himself; "two bugs with one stone." He added one finishing touch: A checkbox to disable that redundant dialog box to appease the latter group of testers. He then hid the option to enable it again somewhere in the registry. After all, who would need to enable it again? It was useless to begin with.
In other words, this draws a huge WTF.

Mozilla does the information bar right in their browser, without the extra "did you notice the information bar?" popup. In Firefox, the information bar is to present a non-blocking message to the user, for example to ask about saving a password without actually blocking the user from using the web site.

Unfortunately, we should probably consider why Internet Explorer has that popup. The information bar idea is just not used consistently, so in IE users need to be pointed to it when it happens. (Although the popup message is the single worst way it could be done).
We have that same problem in the GNOME desktop. While quite a few apps are catching on now, they often do this their own way.
Maybe this is a spot where GTK can be improved with higher level provisions for implementing different types of notification popups like dialog windows and information bars. This way a developer just has to think "is this important / time-sensitive? Modal or non-modal, global or local to a window?" ...then the GUI toolkit can have its widget specific for the task and we'll end up with a consistent set of visual behaviours the user knows to expect.


As things are, we also have status bars, which are on the opposite end of the screen, generally providing everything but the status. This ranges between tool tips for menu items (Inkscape), information which could easily be in the main interface where the user's eyes already are (see any web browser, whose omni-present status bar says the word "Done" about 90% of the time, occasionally changing to tell you that it's loading a web page), whatever some random javascript in any open web page wants it to say, the URL for a highlighted link, window resizing, or zoom controls.

Perhaps the status bars provide a hint of what else needs to be fixed here. None of their current applications have anything to do with the status of an application or document. They act as out of the way shelves for information and buttons because developers feel that information would be too noisy anywhere else. Of course, the status bar is there because we've been forced into it by the fact that this is The Way to get a resize handle for a window, so its use as a shelf is kind of convenient.
These status bars take up 30ish pixels of precious screen space, look ugly and are on the opposite side of the screen from wherever the user happens to be looking. They serve absolutely no purpose at all. I know this because they aren't used properly, they aren't noticeable, and every improper use could be better served by either the responsible developer having the HIG thrown at him or somebody developing the necessary widget for the task.

Monday, July 20, 2009

W3C: BoycottNovell is invalid

Out of curiosity for just how nasty BoycottNovell is from a web design standpoint, I ran the W3C validator on one of his article permalinks. (Direct link removed to spare those kind souls unneeded bandwidth consumption).

Here is the aftermath:

Clearly, Roy Schestowitz is a secret Microsoft employee. Through his web site, he spreads the use of Microsoft's broken version of the web with completely invalid HTML. With this number of errors, it could only possibly be malicious. This is all part of an evil scheme to destroy peace and freedom.

Here is another damning piece of evidence straight from the page source:
<!--[if IE]><style type="text/css">.ratemulti .starsbar .gdcurrent { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; filter: alpha(opacity=70); }</style><![endif]-->
Yep, that's right. Not only does Roy's web site not validate, it contains exclusive design elements that only Internet Explorer users can see, which are probably patented to boot! Only those users of non-free Microsoft software are permitted the full design experience. This, while modern, non-Legacy browsers that most people prefer are more than capable of alpha transparency on elements, even with rgba colouring.

We must put an end to this by researching Internet Explorer shills like Roy. We should also boycott all web browsers that can render his rag. By promoting such error-ridden design, they are helping Microsoft, a convicted monopolist.
Yes, I'm looking at you, Mozilla. You have just moved WAY DOWN on my credibility index.

Friday, May 8, 2009

PIM software sucks

Recently acquired yet another computer: A little HP 1035 netbook. HP's engineers must be on drugs; that's the only feasible explanation for why they use Broadcom wireless on a series of computers that should support Linux quite well. The end result is that Fedora rather hates running on here, but I could throw Ubuntu in reasonably easily. Unfortunately, for whatever reason (likely connected to fascism) NetworkManager doesn't display my connection strength for the active network.
Otherwise a nice computer.

Anyhow, this brought about something I expected to be entertaining. Now I had two computers running Ubuntu, with identical software. I could experiment with the undoubtedly awesome technology we have for grouping together information on computers!

First of all, a positive thing I discovered. Try this: Double click on a sources.list file in Ubuntu and observe that an awesome dialog appears offering to add those sources to YOUR software sources. This discovery helped me seamlessly get all the repositories from one computer to another in seconds. I wish this feature was more widely used, since it would make all those scary Linux install instructions look so much friendlier when repositories are involved. (And it would be even better if this feature handled authentication keys and automatic software install!).

Now the long series of negatives. I'll try my best to keep it simple.

I expected this to be fantastic, fun and easy because Evolution looks like it must be fantastic, featureful program, what with all the buttons and the fact it has existed for eternity. When I set up synchronization with GPE on my N810, I had to use OpenSync, but I accepted this since Evolution is, after all, not GPE.

In this case, I thought "it'll be a lot smoother". So I hunted for a minute. Oooh, Synchronization options! ...Oh, right, all this does is talk to PalmOS. The nearly deprecated, ancient, PalmOS. (Speaking of "evolution").
"File | Subscribe to other user's tasks..."? ...Nope, it actually does nothing when I click it. No feedback whatsoever. Okay, I wasn't expecting much since it's probably an Exchange feature, but this software is used by default? Stable? MATURE?!

I bumbled with Conduit for a while, (Network sync is nice). It kept giving me duplicate tasks and for whatever reason its presence angered me; it would start sucking CPU like there was no tomorrow. Probably a packaging error or a temporary bug, but this would not do.

The end result:
I eventually gave in and resigned myself to the fact that the pinnacle PIM system for GNOME (the one with the pretty clock applet) can only synchronize competently with a closed source PDA operating system that nobody uses. I then duplicated the multisync stuff on my netbook, thus my sync arrangement is as follows:

Big computer <-> N810
N810 -> Google Calendar via Erminig (because said plugin vanished from Conduit and Evolution's Google Calendar plugin, while a worthy project, never works for me)
Netbook <-> N810

All is done 100% manually and relies on the continued cooperation of my router.

If I ever need to sync contacts, I will be doomed.

Saturday, March 7, 2009

Mouse / keyboard grabs. Gah..

Liferea just grabbed my mouse, then proceeded to hang and did not give it back. I had to switch to a virtual terminal to kill liferea and regain functionality. This is broken, and anyone who says otherwise is delusional. It isn't Liferea's fault, though. Fixing it there is just a band-aid solution and does nothing for the thousands of other places the system's stability hangs on (quite literally) a thread like this. One applciation can completely obliterate any form of user input within X, and it can do so either unknowingly or on purpose. Not cool.

If anybody wants to be worshipped by the Linux community at large, please fix this issue. I suspect it is why lots of people feel a slower operating system than Windows when Linux really is not. When they lose input because some bloated process handles a drag and drop operation, the system becomes useless for a very long time.

I expect that Xinput 2 will give us a more friendly workaround, at least; if the first mouse pointer is grabbed, use the second one to rescue it!

(This could also be a nice, less destructive application for ctrl alt backspace).