Tuesday, December 22, 2009

Awn Rewrite Update

It's been a while since I've posted anything about Awn. Development of Awn/Awn Extras shifted to a mostly rewrite of both projects. There are tons of changes; many are summed up in malept's blog post and several posts of moonbeam's blog. I'm going to talk about four (really three) applets.

File Browser Launcher now has GIO support. If Python bindings for GIO are available (since GNOME 2.26/Ubuntu 9.04 I believe), File Browser Launcher is able to manage mountable drives like Nautilus' Places side pane does. If a drive (e.g. flash drive or mounted network place, etc.) is mounted, an eject icon will appear for that drive (as seen in the screenshot) and clicking it will eject the drive. If the place is not mounted but is mountable, clicking it will mount it and (upon success) open it in the file browser.

The applet also has drag-and-drop support, as seen in the recursive screenshot. Dragging a file (or folder) over the applet icon for (currently) 600ms makes the dialog open. (During this time a progress pie chart will appear.) The file can be dropped on any mounted place or bookmark, and it will be moved there. Upon success, the folder will open.

To-Do List received no significant changes, other than working with the rewrite and in the way progress buttons are drawn. Detach support has been removed.

SlickSwitcher is now in Awn Extras. Thanks to work in Awn core, the background and border colors of the applet's dialog can be customized properly. This theming helps with backgrounds that don't quite match the normal dialog background color. The version in Awn Extras is also slightly more RAM-efficient than previous versions. Detach support has also been removed from Slickswitcher.

Feeds Applet is a new applet to monitor Web Feeds. Enter the URLs of RSS or Atom feeds to add them to the applet. Their items are visible from the dialog, and clicking the item opens it in a web browser. You can also log in to your Google Reader account to add it as a feed. Whenever any of your Google Reader feeds is updated, it'll show in the dialog. If Google Reader is the only feed, the icon will turn blue instead of orange. Like with virtually every other applet, you can still drag and drop an icon onto the applet to use that icon instead.

There is an option (enabled by default) to automatically update every five minutes (adjustable). Feeds Applet also has an option (enabled by default) to display standard notifications when a feed is updated. With these two features, you don't need to constantly check your sites or Google Reader for updates.

Like File Browser Launcher, Feeds Applet also has drag and drop support. If you drag and drop a link to an RSS or Atom feed onto the applet icon, it will add that feed. When the dialog is open, you can drag and drop the toggle buttons of the feeds to reorder them. If you drag a feed out of the dialog, you can drop a link to its main page into another app. This may or may not work with your web browser's bookmarks or tab bar, depending on a) which browser it is, and b) how it's feeling that day. (It's sometimes inconsistent.)

Lastly, if logged in to Google Reader, when adding a feed you can search for feeds using the same system as the main Google Reader web interface. This way, you can just type in cnn instead of http://rss.cnn.com/rss/cnn_topstories.rss. It also helps if you want to find multiple feeds about a specific topic, such as Linux or NASA.

There's still a lot more to be done. To-do needs a backend for all its items that's better than awn.Config. Feeds needs OPML import/export. To-do also needs import/export of its list. SlickSwitcher has several little quirks, needs to use the standard text overlay, and needs better background acquiring. To-do also needs to use the standard text overlay. SlickSwitcher and To-do might add drag-and-drop support.

P.S. Can't get enough Planet Awn? Then subscribe to MicroPlanet Awn!

Saturday, October 17, 2009

Chromium OS

So as to not bore the Planet Awn readers, I've created a separate blog to track Chromium OS (the non-Google version of Chrome OS) news and updates. It features screenshots and downloads (yes, downloads) of Chromium OS, as well as a description of changes and updates. The blog currently has revision 29376, a bit newer than what was spread around TechCrunch and the like. Chromium OS now features a timezone selector.

Saturday, August 15, 2009

Memorizer 0.2 Released!

This is the first version of Memorizer, a tool for studying and memorizing lists of data. It has testing modes of flash cards, multiple choice, and matching. It also includes a helpful vocabulary building list feature, which automatically fetches the definitions of entered words. Lists can be exported to plain text format and existing list files, such as those from sites like quizlet.com, can be opened and edited in Memorizer.

This version includes partial Spanish, Italian, and Russian translations. Many thanks to Feder Sáiz and Israel Guerras (Spanish), Nicola Piovesan (Italian), and Alexander Semyonov (Russian).

There are Debian files built for Ubuntu 8.04 and newer, along with .tgz archives, on Launchpad.
A PPA for Ubuntu versions 8.04 (Hardy Heron) to 9.10 (Karmic Koala) is also available.
There are several screenshots available for your viewing pleasure.
If you want to help out, Memorizer is translatable on Launchpad.

Any comments, suggestions, etc. are welcome.

Tuesday, June 30, 2009

Intoducing My Dad to Ubuntu

Introduction: My dad is a lawyer who does most of his work inside Microsoft Works on XP on his Dell laptop. Recently though, he's been trying OpenOffice and liking it. His XP install seemed to be degrading significantly (AVG was on the fritz, some weird DSL dialog would popup on startup, the system would lock up and the HD would be in full use for several seconds). He bought a nice HP printer connected to his Compaq desktop a while ago. The printer has an ethernet port, but the router in use is too old and broken to allow for static IP addresses, and Windows on his laptop could not work with it. I decided to introduce him to Ubuntu.

The laptop is a few-years-old Dell Inspiron 9400 (17 inch) with Dell/Broadcom WiFi and ATI 256mb GPU. With Ubuntu 9.04, everything except the WiFi worked completely out-of-box, even compositing graphics. After the install, the WiFi worked with Ubuntu's proprietary drivers dialog and a restart. Standby works fine and hibernate worked the first time I tried it, but it probably took about as long as a full reboot. As far as I can tell, all the function keys work, including volume and brightness. Notify-osd pops up for volume, brightness, eject, and battery status.

The process: I decided to dual-boot XP and Ubuntu, in case he still needed XP for something or he didn't like Ubuntu. Partitioning was complicated because there were already 4 primary partitions ("DellUtility", XP, Dell MediaDirect, and a seemingly unused backup), and I could not create another. I deleted the backup partition (it was only 3GB and only 1GB was used (the numbers were exact in GiB)) and used it as swap and downsized the XP partition by 9-10GB for Ubuntu. It took 30-45 minutes as it had to move several things around. Then I installed Ubuntu, which took under 30 minutes. Afterwards, I had to do the classic setup routine:
  1. Disable the oh-so-annoying and loud system beep
  2. Install the proprietary Broadcom drivers
  3. Choose the best apt mirror
  4. Apt update & upgrade
  5. Don't have update notifier pop up (set /apps/update-notifier/auto_launch to false in gconf-editor)
  6. Install that printer (System->Administration->Printing->New; couldn't be easier)
  7. Copy actual documents from Windows' "My Documents" into ~/Documents
  8. Install Banshee, add "My Music" to library
  9. Install ubuntu-restricted-extras
  10. Create ~/Downloads, add as bookmark, and have Firefox download to it
  11. Install gnome-colors icon themes
  12. Change to Dust Sand gtk with blue (#7395b9) select color, gnome-brave icons, Clearlooks window decoration
  13. Install Memorizer just to show it off. ;)
Many people say Ubuntu will only be "ready for the desktop" when a grandmother can download, install, and use it all by herself. I say that is a horrible metric. The average user would not be able to install even Windows or OS X, and should not be expected to. My thoughts on what I had to do to setup:
  1. The system beep should not be enabled. I don't know why it is. It's very loud and annoying.
  2. This could not be easier. Click icon, click Enable, enter password, restart, rinse, repeat.
  3. This is just an advanced optimization. The main server works just fine.
  4. Apt would upgrade eventually, and is easy to do. This was a large update, so I did it then to get it out of the way.
  5. I'm split between "this is a horrible decision" and "it's a matter of personal taste." Either way, I don't like it too much, and there's nothing wrong with the icon in the systray.
  6. Again, couldn't be easier. Hell of a lot easier than in Windows (driver CDs!) (additional crapware!) (not working!).
  7. This isn't necessary for most users. I'm not one of them. However, this process could be difficult for a beginner. The Windows partition is called "103.9 GB Media". Ubuntu should be able to recognize that it's a Windows partition and label it as such. (I think there's a paper cut about that.) Also, there should be an easier way to access "My Documents", maybe in the Places menu or added as a bookmark (if the Windows and Ubuntu user names match closely enough). Or there could be a series of "Bob's Documents", "Tom's Documents", etc, like in Windows' "My Computer" as an administrator.
  8. Same as above about the Windows partition. Rhythmbox is fine for most users, I find Banshee to be easier and better looking.
  9. This is why the average user would not be expected to setup a system he installed; a brand new Ubuntu user would not know about ubuntu-restricted-extras. But when attempting to play an audio or video file, the install-codec popup could not be much easier otherwise.
  10. Should be default, plain and simple. Keeps things organized.
  11. Personal taste. (Very nice and complete icon theme.)
  12. Personal taste. The Human Gtk theme isn't too bad, but the icon theme is ugly, clunky, and not Tango-like at all. Much space could be saved by making the button size smaller and the background color should be just a shade darker.
  13. He likes Memorizer, though he has no use for it.
Other Thoughts:
  • He's had Ubuntu for a few days now. He said he likes it, but will still use Windows to do work for now until he becomes more accustomed to Ubuntu.
  • He grasped the concept of an operating system pretty easily. However, he had difficulty understanding the idea of separate partitions for Ubuntu and Windows, what exactly would be updated by Apt, and how Ubuntu can be free. If people have serious difficulty understanding what a browser is, explaining Linux can only be more difficult. Fortunately, he's above that level, as knows he's been using Firefox, not "the Google".
  • He has not touched the terminal. He does not know what a "terminal" is. I removed it from the menu. As far as I remember, I've only used it to add and sign the Banshee and Memorizer PPAs and install them, which can be done without the terminal.
  • The only terms he's learned through this process are Ubuntu, Linux, OpenOffice(.org), Banshee, RMS and Linus Torvalds. He has not even heard Apt, GNOME, Gtk, terminal, or command line, nor should he have to. How is an average user supposed to know what a "widget toolkit" is?
  • He has almost 10GB of music (about 1% of which I like). Banshee uses at most 38mb of what gnome-system-monitor calls "Memory", even while playing. While I type this, the Pandora applet is using over 100mb. Much of the concern over Banshee's memory usage is concerning netbooks. I doubt that many netbook users would have thousands of songs, but I'm not one of them.
  • I taught him how to export to PDF, and he had no difficulty with flash drives. Though I haven't asked him directly, I suspect he thinks clicking the "eject" icon is much easier than Windows' crappy "Stop device" method.
  • I haven't yet introduced him to Awn. Because the screen is so wide, Awn will have to be on the left or right, so I'll have to wait until 0.4 is released or at least the rewrite hits trunk. He likes Pandora, so I'll have to add that applet. I'll also add to-do, mail, tomboy/notes, weather, a main menu applet (probably YAMA), and maybe quit/logoff.
Overall, I'd say the process is going very well. Ubuntu really has come a long way, though not enough where most people could install it by themselves. However, OS installation is an inherently difficult and complicated task.
Especially with the Hundred Paper Cuts project for 9.10, I think that, with setup from an experienced user, Linux is ready for the desktop.

Thursday, June 25, 2009

Intoducing Memorizer!

About three weeks ago, it was exam studying time for me. I had a list of 60 mostly unfamiliar vocabulary terms to know for the exam. A bit of googling brought me to WordNet. I wrote a simple Python script to quickly retrieve the 60 definitions from the downloaded version and output everything to a single file. Then, I had to memorize all these terms, so I wrote a simple flash cards app in Python + Gtk. I decided to expand this simple app into what is now Memorizer.

Memorizer offers a Flash Cards mode for quick memorization. Matching has the user match the terms on the left with those on the right. Multiple Choice offers a basic testing mode in which the user chooses which term on the right goes with the one on the left. And Vocabulary quickly builds the list of words and definitions and allows the user to choose from different definitions and parts of speech.

I have future plans for Memorizer, such as a distraction-eliminating fullscreen mode and the sharing and downloading of lists.

Memorizer and its development reside in Launchpad. Of course, there is a PPA available for Ubuntu 8.04 (Hardy) to 9.10 (Karmic). If you want to help out, you can report bugs or suggest features by filing a bug report. Memorizer is also fully translatable. Lastly, if you want to contribute code, memorizer is 100% C and I try to keep the code clean. :)

Saturday, April 25, 2009

Setting up 9.04 (Jaunty); Affinity Coolness

Ubuntu Jaunty Jackalope (9.04) is finally here. Being the person that I am, I need to set up my desktop exactly how I like it. Doing so takes a while, but I think I have it just about right. I did the following in the order I remembered to do:

* Choose the best apt mirror. (System->Administration->Software Sources) For me it's archive.linux.duke.edu
* Apt update & upgrade
* Add system monitor to top panel (CPU & RAM)
* Revert to 8.10's Intel driver
* Add the new tab button to Firefox, between home and the location bar (should be defualt, IMO)
* Install some apps:
  • Awn/Awn Extras (duh)
  • Affinity (also duh)
  • Bazaar (PPA)
  • Geany
  • Terminator (PPA)
  • XChat
  • Banshee
  • Gwibber (PPA)
  • Chromium (PPA)
  • Shutter
  • Ubuntu Tweak
  • Vuze
  • HandBrake
  • VLC
* Install the keys for each PPA
* Set up Awn and applets, using my saved theme
* Do bzr launchpad-login & whoami
* Set up an SSH key and configure Launchpad for it
* Disable the annoying system beep
* Install codecs, flash, etc. (ubuntu-restricted-extras)
* Install Android fonts (ttf-droid)
* Restore saved Firefox bookmarks
* Restore backed up Music, Pictures, etc. dirs
* Further tweak the theme
-Change #996B5C to #5C6B99 in Dust Burnt (brown to blue)
-Change window border to use blue prelight
-Change icon theme to GNOME-Colors (Brave)

This is the finished product:

Now for the Affinity coolness:

Right-click Affinity or its status icon, and you'll be presented with an easy-to-use dialog asking you for a plugin and a location. The chosen plugin appears instantly. You can also move or remove each plugin through its menu. Also, with GTK+ 2.16 and newer, (included in 9.04) you can add icons to text entries without using a separate library. Affinity uses this feature for the recent searches/clear button (see screenshot).

Lastly, and probably most exciting-ly, Affinity now has a PPA! The PPA allows Ubuntu (and Ubuntu-based) users to install and get updates of Affinity automatically and without compiling from source. In-depth instructions are available on the installation page on the wiki. gilir created all the debian files and patches, and malept helped with the PPA stuff (including AutoPPA).

Note: As of writing, you must install affinity-preferences for the plugins to load. This should be fixed by the next time the PPA is updated.

The PPA will be updated whenever there are significant changes in Affinity. It makes Affinity much easier to install and update and will hopefully attract new users.

Saturday, March 28, 2009

Affinity Updates

I've been pretty quiet recently, but Affinity development hasn't been. Affinity now has a shiny new Clock plugin! It's pretty simple and displays the time and date in text form. The clock plugin uses the logo from MacSlow's Cairo-Clock in Affinity Preferences, so it needed an about dialog to give credit. I added a simple about button next to its preferences button. I figured all the applets should have one, so I added one to each. However, I thought all the star icons might be a bit overkill, and malept said that it wasn't obvious what the icons represented. So, instead, I made a plugin button with the plugin's icon. Clicking it pops up a menu like right-clicking an Awn applet would.

Of course, that's not all the exciting news: the translation template has been updated and there are 12 languages at least partially-translated, and two (Spanish and British) are completely translated. Nine others are over 50% translated. Of course, there are many thanks to the translators. If you want to help with translations, just start here.

The Awn rewrite has still been progressing. Affinity now supports it automatically, but still stays with gilir has been working on Debian packaging and has a Jaunty package of revision 160 in his PPA for testing. Also, he is now a member of ~affinity-devel.

In other Linux news, I've been using the fonts from Android a la these instructions. They look great and use much less space. Also, the beta of Ubuntu 9.04, Jaunty Jackalope, was released. I've been trying it in a VM since alpha 4 and it's been working great, with only a few minor bugs and (surprisingly!) no audio problems. I decided to skip 8.10 because I didn't feel compelled enough to upgrade and I heard of audio problems, so 9.04 should bring plenty of changes (hopefully not including dataloss). I've also added a countdown (24 days as of writing) to the right on my blog.

Friday, February 13, 2009

Awn-Extras Translations

There hasn't been much in Awn-Extras translations: Only 32 strings, all from mail, that weren't imported into awn-extras and wouldn't work even if they were. I uploaded a new template to Launchpad that includes 273 strings from all the applets that at least use the gettext functions. It's been approved, but (as of writing) it hasn't yet been imported. There's also a new file in libawn-extras, 'defs', that tells the prefix and the gettext directory:
>>> from awn.extras import defs
>>> defs.PREFIX
This way all the translations are/will be in a single place, and translating will be much easier. To-do now supports translations, and mail will be able to when the new template is imported. The template is created by using 'xgettext'. This is what I ran to get the template:
xgettext src/*/*.py src/*/*.c --keyword=_ -o po/messages.pot --from-code=utf-8
This is the necessary Python code for making an applet translatable:
import gettext
import locale
from awn.extras import defs

APP = "awn-extras-applets"
gettext.bindtextdomain(APP, defs.GETTEXTDIR)
_ = gettext.gettext
Pass every translatable string to the '_' function. Make sure to put all the text in one long line, as in don't use multiple strings combined by '+'. If you need to use variables, use '%s', etc. This is necessary for xgettext to recognize the string.

I imagine it's mostly the same in C. Some of the applets already have the translation code. When the translations are downloaded from Launchpad, the .po files go in the po folder, the ISO codes are added to the LINGUAS file in po and the ALL_LINGUAS variable in configure.ac. I did some testing with To-do in Spanish, and it works.

Awn Extras Translations

P.S.: If you haven't tried out 0.3.2, what are you waiting for?

Update: The template has been imported!

Saturday, January 24, 2009

It's Been a While

Almost two months. Very much has happened: new year, new presidency, new semester.

Awn Rewrite
The Awn rewrite has been progressing rapidly, with bugfixes and new features. Malept has written up a blog entry about it. The rewrite magic happens here.

Awn Trunk
More work has been done on mostly bugfixes and translations. Even the ages-old bug of Awn crashing when the taskmanager applet is removed was fixed. Check this branch for the changes.

Awn Extras
Awn Extras has had considerable development: Comics, Cairo Clock, Awn Terminal, PyNot, and the build system all had significant work. [Branch]

Affinity development hasn't been very active over this time, though there's been a bit more development recently. Affinity now correctly detects Beagle if it's installed and now installs an Awn applet if Awn's installed. [Forum thread]