Sunday, September 28, 2008

Ubuntu Desktop Screenshot of the Day #8 - Election Season Edition

My desktop theme has been the same way too long and I haven't posted a new screen shot in a while so today I decided to tackle both of those things. Seeing as it is election season here in the US where I am, I decided to go with a nice red, white and blue theme. The background is called "another gnome wave (blue on red)" and is one of several with this same design and different colors. I am also trying out CrossOver Chromium a little more since I have been using its Windows counterpart Chrome more seriously for a few days now too. I hope to share more thoughts on Chromium later. In the screen shot you will also notice the Dictionary application. This is the first time I have ever used it because I generally use Google as my online dictionary. One last thing, the website shown is Electoral-Vote.com which tracks daily polling for each state and predicts the outcome of the election if it were to happen today (based on our antiquated electoral college system that allows a President to be elected without a majority of the poplar vote, like in 2000, and focuses campaigning to only a handful of states).

Wednesday, September 24, 2008

Like Clockwork - GNOME 2.24 Released

Like clockwork, GNOME 2.24 was released today as an upgrade from 2.22 which was released on March 12. GNOME is on a strict 6 month, time based release cycle. With a time based release schedule, changes are more incremental than in other projects but they still manage to get a lot of good stuff in. Check out the GNOME 2.4 release notes for all the details and with good screen shots.

The highlights of this release as I see it are:

  • The first release with the mobile development platform "to provide a core platform on which distributors and handheld manufacturers can build rich programming environments". Although not running GNOME specifically, that fancy new T-Mobile Android phone is running Linux.
  • A new integrated IM client, Empathy. Some are excited about Empathy possibly replacing Pidgin (formerly Gaim) in some distributions but I am skeptical. I love Pidgin. That is my only IM client on Windows and Linux.
  • The addition of tabs to Nautilus, the file manager. This has been a complaint by many for what seems like forever.
  • New Screen Resolution Controls. We shall see if this helps. Linux notoriously has issues with multi-head systems. Much if this is thanks to poor display drivers though. The whole stack needs work.
This GNOME release will show up in Ubuntu 8.10 on October 30th, Fedora 10 on November 25th and openSUSE 11.1 on December 18th. If you don't want to wait that long to try it out, most of these distributions already are in late Alpha or Beta and have close to the final 2.24 release in them. There used to be a live CD as part of a distribution called Foresight Linux and some VMware images also. I don't see those up yet for this release yet though. I am not sure if the 2.22 release ever had them created either. You may also find the Ars Technica review informative as I usually do.

Today is World Day Against Software Patents

September 24 is World Day Against Software Patents. Why are software patent so bad you ask? They are bad because they are being issued too freely for trivial ideas and then used as a tool by patent trolls for litigation. Instead of encouraging innovation as intended they are stifling innovation. Do you want to have a wish list on your website like everyone else? Too bad, you have to pay Channel Intelligence or worry about getting sued. Software patents let companies bully each other too with FUD like in this case with Microsoft and Linux. I think the threat of software patents to Linux and any developer really was best explained by Bruce Perens: "And you can never finish a patent search. The definitions are so broad, you can't ever be sure a company would or would not assert their patent on what you are doing." On one last note, there is the Open Invention Network which aims to make some of these patents royalty-free.

You can help fix the patent system. See what you can do.

Sunday, September 21, 2008

Installing Ruby on Rails on Ubuntu 8.04

I've been exploring web app frameworks lately in hopes of starting work on a new site. I first looked at some PHP implementations, namely CodeIgniter and CakePHP. I mostly looked at those thanks to all the cheap and easy hosting available for PHP. I also thought some about a Java framework like Spring or Struts but I mostly write Java these days so I wanted to branch out. What I finally decided on was Ruby on Rails. I have dabbled with Rails a little in the past and have started working on a few real projects recently that are also using Rails so I will be learning it anyway.

So far all my development in Rails has been on Windows. Rails is rather Mac centric and I am a little unsure of the Linux support. I know that the one other project I am working on is deployed on Ubuntu 8.04 server so surely I can develop on it too.

First thing is first. Install ruby:

$ sudo apt-get install ruby
And then ruby doc:
$ sudo apt-get install rdoc
(If you don't install ruby doc, you are going to get an error later when installing ruby gems.)

Now you could at this point install rails and ruby gems using apt-get or synaptic but you don't want to. Rails is currently at version 2.1.1 and ruby gems is version 1.2.0 but the Ubuntu repositories only have versions 2.0.2 and 1.1.1 respectively. If Ubuntu backports had newer versions we would be set but I don't see rails in the mix. Having a package manager built into the OS is not something that Windows and Mac have available to them natively so ruby has gems as a package manager. Unfortunately this can conflict with the OS package manager so that is why we aren't going to install ruby gems or rails with apt-get.

So now you want to download ruby gems here. Extract it (anywhere), fire up a terminal, change to the directory you just extracted and run:
$ sudo ruby setup.rb
If you happen to get the error message: ./lib/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- rdoc/rdoc (LoadError) then you skipped over my point to install ruby doc above. Go back and install that and you will be caught up again.

After a minute or so you will have ruby gems installed. To install rails run:
$ sudo /usr/bin/gem1.8 install rails
After a few minutes more, you are ready to start developing with rails. You may also want to consider using Eclipse and Aptana.


Also, if after this when trying to fire up WEBrick you get the error: /usr/lib/ruby/gems/1.8/gems/rails-2.1.1/lib/initializer.rb:229:in `require_frameworks': no such file to load -- openssl (RuntimeError) You will need to install libopenssl-ruby:
$ sudo apt-get install libopenssl-ruby
You may need to install mysql too even if you are only accessing a remote database so keep that in mind too.

Saturday, September 20, 2008

Good Linux Twitter Clients - Where are they?

Finding a good Twitter client for Linux is not as easy as I thought it would be. About 5 months ago, despite resisting it for a long time, I started using Twitter. I don't know why but it is a little addictive. I've now even attended my first tweetup in Fayetteville. Twittering is a lot like blogging but without having to think too much about it as you only get 140 characters to work with. If you are here though, you probably know all that already.

For the most part, I have just used the Twitter website to read and post "tweets" but looking at some analysis of traffic, there seem to be a lot of good clients out there. This is in most part thanks to the fact that Twitter has an API so you don't have to use the website only. You can use one of the endless number of clients that are written to make the experience more feature filled. There is a nice list here but for this post, I am only interested in the Linux and cross platform twitter clients.

Unfortunately once you get to running Linux, the seemingly endless selection of clients ends. There are really only 3 easy solutions if you are running Ubuntu 8.04. I say easy because you can install all 3 through Add/Remove Applications. Sadly, none of them are very good. First, there are 2 native clients: gTwitter and Twitux.


gTwitter (using version 1.0beta) is ok. First, the default view is terrible (not the one pictured below). The default shows the selected tweet from a list of initially the last 12 you have received. The list only shows the name and the time of the tweet (except the time was when it was downloaded, not when it was posted).

Switching to "Tweet View" is more helpful (see the screen shot below). In Tweet View the client at least shows all the tweets in full along with the picture of the person; however, none of the links in them work when using this view. You can't follow an @account to see the persons page or even follow normal http links. There is also no ability to reply to a person using the interface either without manually typing @ and their username. These are all very serious deficiencies.

The text entry box is also very limited. First, it is a single line. I realize 140 characters doesn't take much space but it can still fill up a single line. I want to see everything I am typing before I send it. At least there is a character counter to show you how many more characters you have left. There is also no spell check which for me is another must have.

If you want to change the settings, of which there are few, the only way to access them is from the system tray icon. I didn't even realize it was up there after searching for a very long time for a way to change the update frequency after running out of my allotted API calls.

Oh yeah, and sometimes it just randomly crashes.

I see gTwitter as a good start but sill to lacking for real use. Just using the website would be more useful at this point.



Twitux (using version 0.60) is a lot better but still has some major annoyances. It does have clear menu items so you can get to settings and features easily. It also has a number of features that, unlike gTwitter, add value over just using the website.

In addition to the basics Twitux has a view to show you different sets of tweets such as the public list, your friends, only yours, direct messages, direct replies and the timeline for the application @twitux.

The text entry is a good sized text area with spell check but to get to it you have to use the menu or Ctrl-N to pop up a dialog box. I think it should be part of the interface like in gTwitter but as multiple lines.

The most annoying part of Twitux though is the resizing issues. If tweets are long enough they don't wrap properly and there is always a little left/right scrolling that you will have to do. Why? Up/down scrolling is expected so just drop the left/right scroll and expand those tweets vertically.

So far I think Twitux is you best bet but there are some other options.


The next option is to run Twitter in Mozilla Prism. This isn't much special as Prism is just a stand alone browser (using much of the same internals as Firefox) designed to be used for a single application at a time. The idea with Prism is you have an icon for Twitter on you desktop that you can click and it will bring up this window with Twitter in it, more like a desktop application. You can use Prism for any site like your online email or calendar too. I think you get the point.

So, using Prisim is really just like using the website in its own little browser. There is not much value add there.


Before moving on to what I think the best solution I have to ask a question: Why are there so many Windows clients and so few Linux clients and of those Linux clients, why are they so lacking? I truly do not understand. On Linux, clients like this usually spring up left and right but they haven't here. Maybe developers just don't use Twitter that much or it just isn't that big of a deal to them. I will say that a Twitter client is pretty low priority.

But the best option, I think, it to use some of the newer cross platform clients that are written using the new Adobe AIR framework. The problem there though is AIR for Linux is lagging behind the Windows and Mac versions. It just moved from alpha to beta on September 18th.

I honestly haven't tried installing AIR and an AIR Twitter client on Linux yet. That is next on my list but beyond the scope of this post. I did see some success by this guy on getting Thwirl on Linx working. This was when AIR was still in the alpha stage. I really like Thwirl in Windows. I'd like to try out TweetDeck too.

If this hasn't solved your quest for a good Twitter client in Linux, you may want to read this review of the state of Twitter clients on Linux or see what folks think of Twitter+Linux on del.icio.us. I also found Pwytter recently but it doesn't look very impressive yet either.

Have you had any luck finding a better client? I'd love to know. I'm still just using the website.