View Tag: ubuntu

<< First < Previous Next > Last >> Page 1 of 3

Adieu, Gmail

Normally, I don’t care for Google+, or Facebook, or other similar “social” noise. I once had a Facebook profile before it became, well, the Facebook of today and was still a relatively low-profile place which I could conveniently use for my and other people’s contact details.

Normally, I also pay little attention to the privacy concerns surrounding Google’s web services since pretty much their inception.

However, the recent pseudonymity controversy demonstrated that Google’s “don’t be evil” motto did not pass a reality check. Google has demonstrated that it would rather allow the jerkassery to continue than listen to the concerns of the very community Google+ is supposed to be supporting. Typically for a corporation, money—in this case, advertising revenue—won over civility and common sense.

It is always sad to see a corporation damage its popular support through bulldozing tactics, because ultimately it harms both the corporation and the community. When Wikia, capitalizing on the success of the wiki model, unilaterally imposed its new skin on hosted wikis against the wishes of their contributions, it caused many of them to fork the projects—including the flagship, WoWWiki—and move elsewhere. The result was dissipation, confusion, and the reduction of Wikia’s role as the leading host for specialized wikis. The remains of forked projects remained as rotting carcasses—again against the wishes of the community. Wikia would rather profit from advertisements on dead but popularly visited wikis than put them out of their misery.

Google, likewise, had the potential to be a great all-in-one Internet company, trusted by casual users and power users alike. There were a few things about its web services that made me raise an eyebrow in the past: increasingly obtrusive integration (no, please, don’t add annoying useless “features” to Gmail unless I enable them explicitly), censorship on YouTube (which I left earlier, seeing how many videos were blocked in Russia or vice versa, enabled only on Russia), personal censorship of search results, Gmail privacy concerns, and so on. Instead, they chose the path of alienating themselves—the corporate equivalent of sticking your fingers in your ears and saying “la la la, not listening”. It’s a tragedy—both for Google and for the users.

So be it, then. As I said, I wouldn’t use Google+ even without the real name policy, since I don’t care about that particular site, but the trend is worrying and Google’s behavior—from addressing the wrong problem to silencing its own employees—is extremely offputting. I find it better to jump ship now than later regret postponing it too much.

Under different circumstances, I wouldn’t consider leaving Gmail. From a technical perspective, it’s a fast, reliable, and highly flexible mail service. If I only cared about the technical perspective, I’d stay and recommend it to others. But I care about ethics. Luckily, I used my ubuntu.com email address almost exclusively, rather than my Gmail address directly, so all it required was pointing my Launchpad account to the newly enabled account managed by my hosting provider.

Here’s a possible lesson to be learned: keep your online identity in your own hands. Count on the possibility you’ll want to switch services, and manage your online handles in a way that they can be easily redirected to another service provider, if needed. In programming terms, keep the interface separate from the implementation.

Configuring GTK 3 appearance outside GNOME 3

Now that Natty has shipped GTK 3, and Oneiric has already updated some core GNOME applications like Nautilus, Evince and Brasero, people are going to ask how to configure the appearance of GTK 3 applications.

Some have suggested linking the ~/.config/gtk-3.0 directory to /usr/share/themes/Adwaita/gtk-3.0, but I do not recommend this approach. It hardcodes the location of the theme (in disregard of the XDG specification) and makes it impossible to configure anything else.

The correct way to configure this, assuming you do not run gnome-shell and thus gnome-tweak-tool settings are ignored, is:

  1. Create a directory named gtk-3.0 in ~/.config (that is, in the .config subdirectory of your home directory).
  2. Inside that directory, create a file named settings.ini with contents like this (using my settings as an example):

[Settings]
gtk-theme-name=Adwaita
gtk-icon-theme-name=Humanity
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-font-name=Ubuntu 10

Adjust the settings the same way you would in .gtkrc-2.0 for GTK 2 applications. Obviously, to use the Adwaita theme, you need it installed (the gnome-themes-standard package). There should be no spaces around the = sign for the gtk-toolbar-style setting—the other settings seem to work with spaces, but I removed them for consistency.

Below is a screenshot of Evince 3 running on Oneiric with the Adwaita Improved theme.

Steadyflow 0.1.7 released, now in Oneiric repository

It’s been just over two weeks since the release of Steadyflow 0.1.6, but the feedback was larger than I expected for such a simple program, and so, based on that, here is the new release: Steadyflow 0.1.7.

Highlights:

  • The indicator menu has been expanded and now includes download controls for individual files and for all files at once.
  • Password authentication is now supported for FTP, SFTP, SMB and so on.
  • It is now possible to select multiple files to start, stop, or remove them all at once. In addition, a file’s context menu now includes a “copy URL” option.
  • If Steadyflow is on the Unity dock, its icon’s context menu will include an “Add download” item.

For early adopters of Ubuntu Oneiric, Steadyflow 0.1.7 is now available in the official universe repository. Natty users can, as always, use the PPA.

It will probably be a while until another release.

Chromium extension for Steadyflow now available

By popular demand, I have added a Chromium extension for downloading links with Steadyflow, “creatively” titled Chromeflow. (Integration with Firefox and Epiphany is already supported through the FlashGot and Ephyflow extensions, respectively.)

The extension is available as a .crx install for i386 and amd64. Its code is based on a similar extension for the FatRat download manager, which is, incidentally, way more powerful than Steadyflow and may be a better choice for users who need advanced features like multi-stream downloads and torrent support.

Meanwhile, the unstable version in bzr has added support for FTP/SMB/SFTP authentication dialogs (they were a standard feature of GTK all along—blame me for not knowing this!), which means that password-protected FTP and brethren are now supported, not just anonymous connections. I have also added “Pause all” and “Resume all” menu items to the indicator icon, and intend to add per-file pause and resume support before the 0.1.7 release.

Steadyflow 0.1.6 released, now available for Natty and Oneiric

Today I released version 0.1.6 of my pet project, the Steadyflow download manager.

This release adds the much-requested remaining time indicator, courtesy of Hunter Rew, the ability to run an arbitrary command when a download completes, and of course, the usual bugfixes and translation updates.

Under the hood, the code has been fixed to build with Vala 0.12 and either the old or new libnotify, and dropped the deprecated dbus-glib in favor of GDBus. The latter means that it won’t build on Lucid anymore since it requires GLib 2.26 functionality. As such, I also dropped the flat-file settings backend; now Steadyflow exclusively uses GSettings to store its preferences.

Packages for Natty and Oneiric are available in my PPA. I’m also working on getting Steadyflow into the official Debian and Ubuntu repositories.

Installation Report: My Mother

This Sunday, fresh after finishing setting up a home Wi-Fi network for my parents, I decided to wipe the old Windows 7 installation from my mother’s laptop and reformat and reinstall everything. The system had got cluttered and glitchy by then, and the last straw was a bug that caused every document sent to printing to be printed indefinitely over and over, as long as there was paper.

Instead of reinstalling Windows, however, I wondered if this time around I could install Ubuntu, mostly for ease of maintenance. (When working with Windows on my parents’ machines, I’ve long been frustrated at its poor and inconsistent logging, often requiring trial-and-error sequences to make things work, and the inability to fix even the most trivial but show-stopping errors in proprietary software without access to its source code.)

My mother, 46 years old, previously relying on me even to copy files under Windows, is just about as close to a non-technical user as one can get. Since she only used Firefox, Picasa, and the bundled card games, she said she didn’t care which OS to use, and so my parents greenlit this installation.

Instead of the GNOME flavor of Ubuntu, I chose Kubuntu 10.10, partially for ideological reasons and partially because it would be more familiar to former Windows users. As such, it was going to be a test of the system’s usability for an average non-technical user, and its quality of localization for someone with next to no knowledge of English (which she only started studying very recently). So, without further ado, I booted the freshly downloaded live USB image…

Since I rarely install Ubuntu from scratch—most of my installations are upgrades—the installer was a pleasant surprise. It looked slick and professional, easily on par with that of modern commercial software. However, along with it came the first minor problem: it reported the computer as not being connected to the Internet, not even showing me the list of Wi-Fi connections. To remedy this, I had to enter live CD mode (“Try Kubuntu”) and connect to the home Wi-Fi network through its panel, after which the installer reported being connected. Ideally, I think the installer should expose the network connection widget, so that the user can manually enter network settings if necessary.

Along the way, I opted to install the restricted extras. After the installation finished without trouble, I started tweaking the system. First of all, I saw that KWin animations were being sluggish. I tried to run Compiz, but to my surprise, it didn’t run at all. Only then I checked OpenGL settings and saw that X was using the Mesa software rasterizer, even though I saw a “Searching for proprietary drivers” window just before the installer rebooted. (So apparently KWin compositing can function kinda-sorta-bearably even under software rendering—kudos to the developers!)

Using Jockey, I installed the proprietary NVIDIA drivers and rebooted… only to discover that, while KWin now had normal performance, all the fonts suddenly increased in size! I have no idea how changing the driver could also change the default DPI, but thankfully KDE has a setting to force 96 DPI, which I used. After that, I increased the default font size from 9 to 10, simply because that laptop’s screen was small for its resolution and the default 9pt UI font looked too small. On most monitors, however, the default should be acceptable, either with the default slight hinting or full hinting, which I enabled on that computer for better clarity. The choice of hinting style strikes me mostly as a matter of personal preference.

I also found out that the restricted extras were not installed for some reason even though the installer prompted for them, so I installed the kubuntu-restricted-extras manually. Even worse, while the ttf-mscorefonts-installer package was installed, the fonts themselves weren’t, because the user didn’t accept the EULA. I have to remove and reinstall the package to actually download and install the fonts.

That done, I changed some other defaults: deleted some software that I knew my mother would never use (such as KPPP and KRDC), installed Ubuntu Software Center, replaced Rekonq with Firefox, and Dragon Player with VLC. I would use Muon instead of Software Center, but sadly it doesn’t seem to be available in Russian yet (hint, hint).

Finally, I added shortcuts for Firefox, Kontact (where I configured her email account), and commonly used folders to the desktop and panel, switched Dolphin to use double click and table view by default, switched the desktop widget to display the desktop folder like in Windows, and replaced the standard notification widget with Colibri.

At that point, I saw another problem: the default Kubuntu color scheme is too low on contrast. That Asus laptop has a fairly lousy LCD matrix, one of those cheap low-contrast matrices that change brightness depending on viewing angle. So white and light blue icons on a light greyish-blue panel didn’t cut it. After trying a few themes, I settled on the Cream theme for Plasma, which provided a dark grey panel, and the LuckyEyes color scheme for Oxygen. Still, I wish Kubuntu was more high-contrast by default; Ubuntu and Windows 7 do better in this department.

Then I presented the system to my mother.

First, she requested the KDE main menu to be switched to classic mode, calling it more familiar. She quickly figured out how to use the Web, thanks to the familiar Firefox icon, and how to check mail. Then she asked how to switch between different Wi-Fi networks, as they have two different ones at their apartment. I pointed her to the network management widget, and she figured it out easily.

File management proved to be trickier. Before, she never learned to copy files on her own under Windows. I showed her how to open two different folder windows and copy files via drag and drop (she needed to be told that “move” means that the files are deleted in their source folder). She then accidentally clicked the desktop switcher button instead of the quick access button, and wondered why all her windows suddenly slid off the screen.

Then I asked her to open a freshly USB flash drive (since she wanted to learn to copy photos there). This part, however, proved less than intuitive. She quickly found the USB icon on the panel and clicked it to open the removable devices menu, but to actually open the flash drive, she tried double-clicking it—to no avail. Furthermore, the “Open in File Manager” menu entry was in English, not localized into Russian. I had to point her to that menu entry, and then show her two ways of ejecting the flash drive. It was not obvious to her that she had to right-click the flash drive’s list entry in Dolphin to bring up the ejection menu entry. I had to guide her to the eject button on the panel, too, but once she found it, the “plug/eject” icon metaphor became obvious to her, and she started operating flash drives without my help from now on.

She also complained that there were no card games in the default install, so I had to install KPatience, using that as an opportunity to demonstrate the Software Center at work. I hear they had that fixed in Natty.

Finally, since she used Picasa before to manage photos, and my father also used it on his laptop, I looked for a way to install Picasa under Ubuntu. My first bet was the official Linux version, but it turned out that it simply packed its own copy of Wine and wasn’t localized into Russian. On the other hand, when I installed the Windows version of Picasa under Wine, it didn’t display folder labels, and I had to look into the “Linux version” (massive sarcasm quotes) to understand why. I suspected that the problem lay in missing fonts, and discovered that the Linux version bundled Vera font files in its Wine fonts directory. One copy operation later, the version manually installed under Wine ran without glitches, in Russian. I also installed Shotwell as a possible alternative to Picasa, but when I tried to open an image from it in an external viewer, it said that no external viewers were available…

Later, I entered her Gmail credentials in Kopete to let her chat with me via Google Talk. The concepts of IM applications were highly unfamiliar to her, and I had to explain how to post a message, how to see if I’m online, and how to see if there were incoming messages. The messaging indicator was initially unfamiliar to her, but she soon got used to the concept of all message notifications being gathered under the envelope icon.

Another problem came in the form of the HP LaserJet M1120n MFP. While printing over the network worked out of the box, I had to search Google to discover how to enable support for scanning over the network. After I ran hp-setup, both Simple Scan and XSane found the scanner, but displayed an error. One Google search later, I found out that the HP proprietary plugin that was installed missed a library symlink in /usr/lib. I added it and then the scanner worked, but was it really that hard for HP to make sure it would work out of the box? How is a casual user supposed to solve this?

To summarize, here are some things that Kubuntu could improve, usability-wise:

  • Expose network settings in the installer, so that the computer can be connected to the Internet without leaving the installer.
  • Use a more high-contrast theme by default. Either use a darker panel, or darker icons. The contrast of the default Oxygen color scheme could be improved as well.
  • Add default actions for removable devices that can be executed without opening the menu, for example, by double-clicking. Furthermore, make it possible to access removable devices from the desktop in more than one way without a Dolphin window already open.
  • Improve interoperability of file associations between GNOME and KDE applications. If I associate image files with Gwenview in Dolphin, then Firefox and Shotwell should pick it up.
  • Display clearer error messages in scanning applications. I only found out about the symlink thanks to Launchpad, because the message was a generic “I/O Error”.

Finally, I’m not sure that “restore session at startup” is a good default. To my knowledge, no desktop environments other than KDE do this. GNOME, Xfce and Windows all boot to a clean desktop session by default.

The Kubuntu Wishlist

So, what happened to the resident from our Tale of Two Houses? Well, as it happens, after seeing one dispute too many in the first house (including memorable incidents when the orange-shirted designers shifted all flowerpots on windowsills from the right side to the left, and convinced the local post office to glue bright orange stamps to envelopes), while any significant changes just kept getting postponed, she shrugged and moved back to house two—and liked it. For it was newly furbished, and looked much livelier and better decorated than it had been when freshly rebuilt from the ground up. And so she stayed there, and (hopefully) lived happily ever after.

Now, all this allegory-speak aside, Harald Sitter’s recent post really clicked with me. I already switched to Kubuntu a week before it was posted, so I found myself agreeing with many points raised in it. While I switched for social reasons, I stayed for technical ones; I really believe that at this particular point in time, KDE has more to offer to the end user, and I cannot honestly recommend GNOME, torn in corporate feuds and dealing with entropic decay, to my friends whom I introduce to Ubuntu and Linux.

Which is a shame, because I actually like the core underlying platform better in GNOME‘s case. I like GObject, I like GIR, I like Vala, I like the architecture revamp that the GTK developers are doing for 3.0. I like the GNOME HIG and the “less is more” philosophy, and try to apply both to an extent even in non-GNOME software. But Qt (ugh, ancient C++!) has Nokia’s corporate backing, and it really, really shows in everything, including both feature-completeness and the quality of documentation and SDKs. And Qt 4 is a solid, polished foundation on which KDE has built, and built steadily, having evolved surprisingly fast in less than two years since 4.0.

Still, KDE and Kubuntu are not ideal (nothing is), and here is an assorted, broad-strokes wishlist.

  • KWin is a resource hog in its default composited configuration. On both machines where I tried KDE 4.5 (one with NVIDIA and the proprietary driver, one with ATI and the default free driver), Compiz worked noticeably faster with about the same quality of effects. I’d like to either see KWin sped up, or see a seamless switch to Compiz in composited mode, like Ubuntu does for Metacity.
  • Kubuntu should have more visual identity on its own. The greyish-blue is nice and “techy”, and I’d like it to remain the core of the visual style, but I would also like Kubuntu to have its own, distinct QtCurve configuration. I’d like to see the main menu “K” replaced with something Kubuntu-specific (although since I use a non-default icon theme, I see the Elementary “e” instead); KDE has long passed the time when the developers thought that every appliKation had to Kontain at least one K.
  • Plasma, I think, is the most confusing experience for new users. What is a “widget”? What does “block widget changes” mean? (Yes, I know what this means, but, say, my parents would be lost.) The panel editing UI is confusing in comparison to both GNOME and Xfce, with seemingly meaningless whitespace and a horizontal row of widgets that makes it hard to quickly scan them by function; a vertical list where descriptions are displayed all the time, and not just on tooltips, would be better.
  • I’m not sure that having widget changes unblocked by default is the best choice. Windows has had its panel changes locked by default since Windows XP, presumably out of the same “Don’t confuse the user” mindset. This mode introduces more right-click menu items that aren’t of interest most of the time, and adds an icon to the right whose sole purpose is to configure widgets. Just keep widgets locked by default and let the users discover the configuration option through right-clicked.
  • I find the standard notifications too obtrusive, in the same way as the upstream GNOME notification-daemon. Having a button with a backlog of notifications is nice, but it quickly fills and requires manual clearing; popup window sizes are unpredictable. Often I found myself playing, say, Starcraft II only to have notifications steal focus from its fullscreen window. I have switched to Colibri, which is basically a KDE clone of notify-osd that doesn’t suffer from the Ayatana hardcoding syndrome, and I wouldn’t mind seeing it as the default in Kubuntu.
  • Replicate the Ubuntu sound menu.
  • Make it more obvious that some widgets (such as the messaging menu, Network Manager and clock) are interactive, for example, by highlighting. I was pleasantly surprised to find that it was done for Ayatana application indicators without any specific coding in the application itself.
  • Quassel: Best usability of all IRC clients I’ve tried, but it still could use some improvement. My main issues are the unintuitive “Hide Chat(s) Temporarily/Permanently” menu items, and the fact that “temporary” hiding keeps private chats hidden even if you double-click the username in the user list or type /query, and only shows the rows if they write to you.

If some of these issues are considered sound, maybe I’ll take part in working on them for the Natty cycle—who knows!

Hidden Preferences Considered Harmful

I’ve been meaning for a while to write this, but this recent discussion about the Evolution default signature has prompted me to actually do so.

The typical argument for not exposing a preference in the UI goes like this: the user can set the wrong setting by accident and make the application unusable. So for power users, there is gconf or manually editing configuration files. Let’s hide it. Unfortunately, this mindset only works in the ideal world of software designers where nobody ever seeks to escape their Vision™.

Real-world users want power over their own systems. They want to personalize their desktops and make them stand out from the default settings. They want to tailor their systems into configurations convenient for them—with their own shortcuts, colors, and button placement. If you take this freedom away from them when there is no technical obstacle for that, you’re provoking them into seeking other, potentially more dangerous ways to get what they want.

Here is a concrete example. In comments to my previous post, I saw these comments:

And yep, in every install of Ubuntu 10.04, the very first thing I have to do is download Ubuntu Tweak and revert the Window button placement. Sure, I could use another theme, but Ambiance is otherwise pretty good.
...
Worth noting that I didn’t even know about Ubuntu-Tweak until the buttons thread raised its existence. As long as Ubuntu-Tweak exists with options like this, I’m sad to say that Ayatana has failed.

Let me reiterate. All this fuss over the button order placement that ended with the bug being stamped as “Opinion(*)” (read: feel free to continue your discussion but we’re ignoring you) could have been avoided if only an option existed in the UI to configure button placement. No, I don’t mean descending into the depths of gconf and changing the option there. I can understand not exposing settings that actually have the potential to leave the user with an unusable system; but seriously, window buttons? There is another well-known desktop environment that allows the user to do that, and it’s completely harmless.

So the user, disgruntled, downloaded a third-party application that was rejected from the Ubuntu archive on the grounds of inherent security issues, like Automatix before it. In doing so, they created a bigger problem than hiding the preference was supposed to solve in the first place—not to mention, possibly left the user disgruntled with their own system for treating them like a child that needs to be kept away from dangerous toys.

Ultimately, the problem with software like Automatix and Ubuntu Tweak is that it exists—or rather, that users feel they have the need to exist, that there is a genuine need they solve. Fortunately, the need for Automatix (which was the more dangerous of the two) was more or less removed by the introduction of the restricted extras packages and the spread of the PPA culture, but Ubuntu Tweak combines its own independent package and package source manager (dangerous) with minor UI preferences that should have been in their corresponding configuration utilities in the first place (completely harmless). Ubuntu has the power to make that second part redundant by putting their preferences where they belong: into configuration windows for these programs themselves.

If this was being done out of fear of diverging too far from upstream GNOME (perhaps I should do a separate post on that), I’d at least semi-understand. But this applies to Ayatana’s original initiatives too. Notify OSD was introduced in Jaunty. That’s a year and a half ago. Since then, Ubuntu has got indicators, and Unity and the global menu were written from scratch in the span of a single release cycle. And yet Notify OSD remains completely unconfigurable, with all its preferences hardcoded. There are no technical reasons for not making it configurable. Third-party enthusiasts have done so. The first links a typical user will find in Google for “configure notify-osd” will point to PPAs, to a third-party application that configures a patched non-standard version.

In short, when the user faces a desktop feature they wish to configure but can’t, they won’t just give up—they’ll turn to the Internet for information on how to do so. And more often they not, the advice they’ll get will be dubious or dangerous. Third-party software, manually tweaking gconf (which gives users unpleasant memories of the dreaded Windows registry), hackish shell scripts, manually editing text configuration files, executing commands as root… These solutions have far worse possible repercussions than just introducing one stupid little checkbox ever would.

This is a case where technical issues are overblown, and people switch distributions and desktop environments out of perceived “we know better than you” developer mentality. Put the users in control; they deserve that much.

(*) I find it enlightening that Launchpad worked perfectly well without yet another “won’t fix” status until an evident shift developed in the developer attitude. Incidentally, for my little personal project (Steadyflow), I wanted a bug status that would mean “I have a different opinion than the users, but I’ll leave this bug open and change my mind if enough people are in favor of this change.” Turned out there wasn’t one.

Dear Canonical, Redux

What’s going on here?

Let’s elaborate. A “bug” was filed asking to add a “Sent using Ubuntu” signature by default to Evolution. How did this happen and who decided it was a bug? Judging by the way it was so quickly responded to, it seems like a decision made in Canonical behind closed doors and filed on Launchpad as a mere formality, with no input from users. The “bug” was then “fixed” by making Evolution copy the behavior of proprietary email interfaces like Microsoft Hotmail or Windows Live Foo or whatever its latest rebranding is called.

I won’t repeat again why I consider such a change bad. Once again, this was something forced on users with no public input. The discussion is happening in the bug report now, and the users are evidently less than pleased.

Meanwhile, the bug report stays as “Fix Released” (where “fix” means “make Evolution obnoxious”). A different bug was filed asking for this behavior to be reverted. It was closed as a duplicate of the original bug, despite being its exact opposite.

First the font, then the wallpaper, now this. What is going on with this release cycle?

This blog post is written using Ubuntu 10.10 and Epiphany 2.30.2–1ubuntu6.

Steadyflow 0.1 Released!

Three weeks from idea to implementation, and the first release of the Steadyflow download manager is now available on Launchpad!

PPA packages for Lucid and Maverick will be available in the newly opened Steadyflow stable build PPA as soon as they finish building.

This release features:

  • A basic GNOME download manager, supporting all URL protocols known by GIO/GVFS. This includes, among others, HTTP, HTTPS, FTP and SMB.
  • Pausing, resuming, and restarting downloads upon application restart.
  • An application indicator, or a notification area icon for platforms without Ayatana libraries.
  • An instant search/filter box.
  • Ability to add downloads via the command line and D-Bus, for browser extension writers.
  • Notification bubbles upon starting and finishing downloads (can be disabled).

What it does not feature (yet):

  • A monochrome icon (planned for 0.2).
  • Filter by file types.
  • Different download folders for different file types.
  • Limiting download speed and number of files downloaded simultaneously.
  • Multiple download streams per file.

I’m actually not personally interested in implementing that last one, as I have a fast enough connection to render it irrelevant, so unless someone else gets to implement that, tough cookies.

I would like to thank:

  • The Vala developers, for patiently answering my questions about the language.
  • Everyone who gave feedback on earlier snapshots—in particularly the OMG! Ubuntu! users for testing and suggestions, and the GNOME design team for UI feedback.
  • Translators from Launchpad, for making Steadyflow multilingual right from the first release.
  • My beloved Alice, for inspiring me to start this whole project as a quirky expression of my feelings for her.

Introducing Steadyflow: An Easier Download Manager

For the last two weeks, in my spare time, I’ve been working on a small personal project. I noticed that my desktop lacked a good standalone download manager.

But what about gwget? Well, I found gwget’s UI quite rough and lacking polish, and upon looking at its code, I decided that it would be easier to just write a new one from scratch—and that it would be a standalone application integrating with modern desktop technologies, not a wget wrapper. And now that I actually have a working download manager, it’s time to present Steadyflow.

Yes, the UI is inspired by Transmission. This was my idea: to have, basically, a Transmission for HTTP/FTP. The application is written in Vala, which serves two purposes: one, it ensures a relatively small memory footprint not dependent on the Python or Mono runtime, and two, it lets me write object-oriented code that Just Works, in a modern, strongly-typed language. I hope interested contributors will find the code clean and easy to understand.

What currently works:
* Basic download manager functionality: starting and finishing downloads.
* Panel indicator and minimizing to it.
* Notification popups.
* Preferences.
* Translations.

What is there yet to implement:
* Advanced control over downloads: pausing, resuming, saving and restoring the session.
* Controlling from the command line.
* Epiphany extension.
* D-Bus API (maybe not for the 0.1 release).

Translations are open on Launchpad, and I would appreciate code contributions as well—the code is in Bazaar on Launchpad. It should build and run on Lucid and Maverick, although on Lucid, you’ll need to install the Vala compiler version 0.9.8 from the Vala team PPA to build it.

I’m planning to release version 0.1 the coming week; in the meantime, I welcome your contributions, bug reports, and comments over here!

A Tale of Two Houses

Once upon a time, there were two houses standing across a street. They looked quite different, and their residents didn’t meet each other much—only a few times a year did they meet on the Freedom Square to discuss things like maybe painting entrances the same color, so passers-by don’t get confused about the different looks. Sometimes those discussions actually led somewhere.

One resident, whose name isn’t important to our tale, once lived in house one for a few years, and a year ago she went to house two. She heard, of course, that this old crumbling house on the other end of the town was recently renovated with blue glossy walls and all-new windows, but she left that particular one years ago and had no intention of going back. (And the last time she went there to visit her parents, she found out that on the inside it was mostly the same old smelly stuff, just hastily swept under the carpet in most places.) One day, after a vacation, our resident returned to house two to find out it was torn down and rebuilt, and now looked promising both on the outside and on the inside—however, she also saw that most of its rooms sported nothing but bare walls, so, joining a pack of similarly minded residents, she packed her belongings and went back to house one, where her heart always belonged anyway.

And thus, another year has passed. One day, however, after returning from work, she suddenly found the house surrounded with yellow tape and “Under Construction” signs. The chief architect gathered the residents and explained that they learned from the history of house two, and so they were going to renovate this house one patch at a time. He showed some mockups, which most people agreed looked promising, and so they went their own ways, careful not to trip over newly dug pits in the ground.

Since then, our resident grew more and more confused with every passing month. Everywhere she went, she saw builders bickering about the direction of the effort, with everyone insisting on things being done their way. One day, when passing through the house’s garden, she overheard the following conversation:

Designer #1: [Wearing an orange shirt] Look at this garden—it’s grown old and unattended. The bushes are all different, some have overgrown, some look sickly. I say we demolish this garden and make another one on the same spot, give each plant a strict square spot, and my gardeners would tend to them.
Designer #2: Actually, on our New and Improved plan, it clearly shows that after the garden is destroyed, this spot is going to be cobbled with flat black bricks. We’re planning to make an all-new different garden on the other side of the house, so we have to reject your plan.

Six months passed, however, and the renovation was nowhere near finished, so the chief architect announced it was going to be delayed for another six months (and showed a different design for the final look, completely different from before). In the meantime, our resident thought she sort of liked the orange-shirted designer’s idea of bringing the old garden into shape, and went to ask what a well-known news announcer who lived in the same house thought of the idea. The response was:

“Pah! The only people who care about the new garden now are those wearing orange like you! Clearly, if I supported the idea I’d have to dress the same, and I like my grey and blue, so for now I’ll stick with the old garden.”

So our resident decided to wait again until the house was finished. However, a month before its new deadline, the chief architect gathered everyone yet again and said it was going to be delayed for six more months—and showed yet a third mockup, completely different from the other two, yet curiously similar to what the orange-shirted team was building a street away. Meanwhile, the construction effort continued to deteriorate. Keeping along with the “one patch at a time” motto, some floors of the house switched to using a newly-built different elevator, which was like the old one but different (and its cabin evidently had less attention put into decorations). So whenever she wanted to go to a floor, she had to learn, often by trial and error, which of the two elevators to use.

Finally, she decided that while the construction effort was still underway, she could as well redesign her own apartment to go along with the times. Seeing how her bedroom looked especially messy, she threw together a mockup for a new arrangement and wondered whom she could discuss it with. She was pointed to some big-name professional designers who helped renovate the exterior of the house, so she went to them with her plan. The following discussion ensued.

Resident: Look, I’ve got some plans for a new bedroom, and they’re shaping up nicely, so I wondered if maybe you could offer some suggestions to tweak it before I go along with it? I know you people are big on minimalism, so I kept it reasonably simple. Look, here’s a bed, a TV, a computer desk, and a closet. I tried to keep it in accordance to your Design Guidelines, but maybe I’ve missed something?
Designer: Well… [looks] First of all, do you really need a bedroom?
Resident: ?!
Designer: Many people don’t have a standalone bedroom, they just put the bed in one of the other rooms.
Resident: Well, as it stands, I like to sometimes keep the bedroom’s door closed when people are visiting, but it’s not like this is an issue—I can easily find my way there from anywhere in the apartment.
Designer: You could actually get rid of the TV.
Resident: Uh… as it stands I do watch TV, not often, but occasionally.
Designer: It’s extra clutter, and more electronics to take care of. You could just buy a bigger monitor and connect it to your computer.
Resident: Er… okay. Well, many people I know of have TVs in their rooms, but maybe it’s redunant in my case indeed.
Designer: And the computer desk can be merged with the closet.
Resident: What?!
Designer: Just make a shelf in the middle and put the computer on there, and keep your clothes and bedsheets in the compartments above and below.
Resident: [scratches head] Maybe…
Designer: You don’t need two doors, by the way. Scrap this one and reroute this other one to exit into your hallway.
Resident: Actually, that other door leads to the balcony, so I could breathe fresh air from that new garden.
Designer: Exiting from bedrooms directly to balconies is a bad paradigm, we discourage it. It confuses the residents—bedrooms are for sleeping.
Resident: But wait, all these people have balconies connected to their bedrooms… [lists a few big-name, well-respected residents]
Designer: Balconies will go away in the New and Improved house, to be replaced with slick smooth walls. We’ve talked to the guys in orange about this, and they agree with the change. They won’t be in the new edition of the Design Guidelines either.
Resident: [sigh]

At this point, a different designer starts talking about a mockup he has prepared for a new library room. Our resident, interested (she likes reading books), asks to see it. The mockup is on one half on the page, and shows one huge shelf stretched across the entire wall, with all the books on it. The other half has text about how having multiple shelves apparently interferes with the new planned “teleport around the house in two foot taps” feature. The design of yours shows that only a small portion of this new ubershelf is going to be shown at a time, and the user will have to press a button to make the slit slide and stop over books they want.

Resident: Why not just use multiple shelves like every other library out there? I use your current design exactly because it’s a traditional library with none of those newfangled ‘chromey’ features that all the libraries are adopting now.
Designer: Our research indicates that the frames of the shelves take valuable space that people would prefer to use for books.
Resident: I guess I’ll have to stick with my old library, then, or ask someone else to renovate it.

At this point, designer #2 turns around to show text written on the back of his blue shirt: “The construction industry is just a bunch of idiots hating each other”.

Resident: Erm… I realize it’s a joke, but that’s because I’ve grown thick enough skin over the years around you to let it pass. But imagine if someone completely new comes here and sees this—is it the impression we want to be promoting? Many neighbors give us weird looks as it is.
Designer: Well, that text is true.

Frustrated, the resident turns away and leaves, deciding to make her room over however she sees fit, and just let her guests judge.

The moral of this parable is left as an exercise to the reader.

Reporting from Ubuntu Global Jam Novosibirsk

This is my second time now—writing from my netbook. Last time, in March, I was invited to make a presentation about the Ubuntu developer community, process, and technical details of packaging. (Incidentally, this upload was made from there when I was showing the process of fixing a bug in a package.)

The atmosphere is not very different—perhaps more summery, though, as back then it was cold like it always is in early March, and now it’s +30 Celsius outside. There are about 17 people in a local university, most of whom look like your average geeks.

This time, technical details of packaging were explained right before me, allowing me to jump straight to the matter when the time came for practice session. Unfortunately, it turned out wireless wasn’t working on my Eee PC 1000H when I arrived (even though it always worked out of the box here, under Karmic, Lucid and Maverick), but downloading 300 MB worth of Maverick updates fixed that. The attenders were pleasantly impressed with Unity, although it took some time to explain what was “that network thing that replaced Network Manager), and how indicators were better than the notification area.

My presentation was about the relationship between Ubuntu and Debian. I explained the difference in release cycles and the processes by which packages and patches are exchanged between the two distributions. I cited the recent statistics on people who are both Ubuntu and Debian developers, stressing that they can help Ubuntu contributors share their changes with Debian, and get started with Debian developer teams.

Finally, as the second part of my topic, I demonstrated merging package changes with Debian and Ubuntu in the case of a VCS-maintained package, by using xvidcore and git-buildpackage as an example.

I hope that these presentations running together got people interested, if not about joining the Ubuntu and Debian development teams (although one was curious how long it took for me to become a MOTU), then at least about contributing to their packages.

"That Theme with the Orange"

Some people have asked about the GTK theme on the screenshot in my previous post, wondering if it’s the Radiance Maverick beta.

It’s not. However, while I’ve been waiting for said beta, I applied the color scheme of Ambiance Maverick, with its delightfully pronounced orange, to the excellent Finery theme by iperationer, itself intended to be a “better Radiance”. I’m not really planning to become a long-term maintainer for the modified theme, and it’s rather hackish, but here it is.

You can download the theme from the github fork of iperationer’s Finery, or directly as a tarball here.

To use Finery and derived themes, you will need the Equinox theme engine, which in Maverick is available in the gtk2-engines-equinox package.

And Stay Out!

The effort of Ayatana and Ubuntu developers has finally paid off. Since the new keyboard indicator has landed in Maverick and I previously replaced network-manager with connman/indicator-network, at last I could ditch the ugly, now-empty notification area on my GNOME panel, and leave only the indicators.

None of the applications I use now make use of the notification area. If I do find some that do, I’ll try to fix that before Maverick release; gwget comes to mind, but really it’s quite old by itself and what I need is a new, slick-looking download manager. Now, if only there was a way to hide individual indicators to reduce clutter… (Hint, hint.)

Netbook "Branding"

Got my supply of Ubuntu stickers from the Canonical store today. Oddly enough, they shipped faster than goods from the Russian online shop I occasionally order books and DVDs on, go figure.

I like this shade of orange. Just bright enough to make good contrast with white and look interesting, and just subdued enough not to seem rawr-aggressive.

Maverick: Indicators for Liferea and Epiphany

It’s been a long ride, but support for the messaging indicator for Liferea has finally landed in Maverick, backported to version 1.6.3.

There is now a separate PPA for those wishing to try and test this version on Lucid, rather than the unstable 1.7. One major difference between the version that went in and the 1.7 version in my PPA is that the now-official Maverick version never sets the attention flag (the “green envelope”). To quote Ken VanDine:

I don’t think liferea should set draw-attention at all, the intention of that is for important messages that need somewhat immediate attention. I think of RSS feeds as rather passive, read them when you can as opposed to an IM that might require a response within a few minutes. Setting draw-attention everytime liferea refreshes will make that property less effective for IMs, calls, emails, etc.

Meanwhile, I have patched the Epiphany web browser to replace the download notification area icon with a custom indicator. One more step towards doing away with the tray.

NVIDIA, Cairo, and the Weird Whiteness

I spent the last two days fixing regressions in the Murrine engine related to the unholy mix of Cairo 1.9 and the NVIDIA proprietary drivers. As a result, I now have a patch that should almost completely fix the dreaded white widgets bug in Maverick. I have prepared a PPA and uploaded the packages to build while I’m waiting for my patch to get reviewed and sponsored into Ubuntu proper. (Isn’t it ironic that I, a MOTU, have to rely on sponsorship for so many of my uploads because they touch packages in main?)

There is also Docky, and it’s most certainly also Cairo-related, but it’s a separate problem and I’ll look into it alter. As for Pinta, the grey canvas problem I mentioned in my previous post was also not Murrine-related (but it was Cairo-related), and is now actually patched in Maverick, along with the upgrade to version 0.4.

On an unrelated note, I fixed (in Maverick) the bug with the Epiphany bookmarks menu not being updated in the application menu. Epiphany users, rejoice!

Upgraded to Maverick

Almost everything works fine, the upgrade went more smoothly than I expected. However, half my GTK widgets are now white in all themes, and the Pinta canvas is grey and doesn’t work. I suspect it might be due to the large number of custom PPA packages previously installed on my Lucid system.

Going to do a fresh install from the daily ISO, to get btrfs. Also, it’s going to be a 64-bit ISO. This will be my first time trying 64-bit Ubuntu, after spending four and a half years on 32-bit. Wish me luck!

Dear Canonical

This “closed fonts beta” thing was a big PR mistake.

It’s not enough for you to push a proprietary font into Ubuntu in the default install. No, you can’t even release it publicly. You just had to release it as a closed-doors, “members-only” beta.

Think about it. Canonical develops one of the world’s flagship free operating systems. Now they have made a decision that runs contrary to the entire spirit of free software. They are going to bestow their free operating system with a proprietary font (because apparently using any of the better free fonts instead of DejaVu isn’t cool enough). Why a closed beta? Did Canonical suddenly become Blizzard?

They try to sweeten the pill by saying words like “It will be free for everyone to use and share”, adding, of course, that the license is not finalized. Judging by Canonical’s prior history with such “exclusive initiatives” ([coughubuntuonecough]), know what this means: we won’t get the source until the heat death of the universe.

And then I saw the package name: “ubuntu-private-nda-fonts”.

NDA?

That dreaded TLA that you never mention in the free software community, lest you get bombarded by rotten tomatoes?

Wait a minute. I have never signed any NDAs in my life. Did Canonical make me implicitly sign one just by being a member? Ow.

And before I get comments like “don’t use it if you don’t want to”: not only will I be forced to do that on default installations starting with Maverick, but I feel dirty just for having access to that PPA. I would like to have a way to get this privilege, which I feel embarassed for having, revoked.

<< First < Previous Next > Last >> Page 1 of 3