May 13th, 2008 — Ubuntu
This weekend as classes have started to wind down I had a bit of time to mess with my laptop for some general geek fun. Playing with KDE 4 is something I’ve wanted to do the past few months but avoided for fear of breaking things when I had too much going on to spend a full day getting them working again. Encouraged by a brief trial of the Kubuntu KDE4 Remix LiveCD I decided to give it a try.
To give a bit of background: I’ve been an Ubuntu user for over 3 years and had only given Kubuntu a try once, on a live CD back at 6.06. The most exposure to KDE that I’d really had was back when I ran Fedora for a few months as my secondary OS while I was still primarily using Windows.
If you want to follow along and are already on Ubuntu, it helps that Kubuntu is an official Ubuntu project and not a fork or derivative, installing it couldn’t be easier.
sudo apt-get install kubuntu-kde4-desktop
Walk away for a while while it installs, come back, logout, and select KDE4 at the login screen.

Appearance
KDE4 is certainly attractive, to me it has always felt that KDE valued visual polish while for the most part Gnome has treated it as secondary. The new Oxygen theme and Plasma widgets are visually appealing although Plasma is certainly not without its problems. Taking a closer look at the above screenshot shows that the clock is cut off, some of the systray icons are not properly redrawn, and the main KDE menu is drawn a bit off as well. Changing the size of the systray fixes these problems, but I can’t stand a huge tray. (I also prefer my tray at the top which caused even more problems)
KDE4 has built in compositing which (as expected) ran fine on my laptop’s nVidia 8600. It stacks up fine compared to Compiz Fusion, while it doesn’t have the wild selection of plugins, it has essentially everything I used on Compiz, and the few people I showed my desktop to this weekend were suitably impressed by “that Linux thing”.
Similarly to Gnome, the various built in themes range from the hideous to the sleek. Why someone would want their desktop to look like the antique CDE or Windows 95 is a mystery, but it seems like KDE and Gnome always feel obligated to include these themes. Of course, the Oxygen theme is very polished, and coming from Gnome the saved color schemes were a nice twist. Color schemes offer the ability to easily customize a theme, and several of the included schemes looked fairly nice, and it appears easy to make your own or get more from KDE-Look.org
Plasma doesn’t seem quite ready, I had a few instances where desktop icons would duplicate. Widgets didn’t seem to be entirely persistent, and as noted, the panel contained numerous display glitches. Reading up on plasma it appears to be a massive overhaul, they are attempting to really reshape the desktop metaphor, and so these kinks can in some ways be expected of a .0 release.
The only real problem besides the plasma glitches, was that when running non-native apps like Firefox they looked terrible. A quick search turned up the gtk-qt-engine-kde4 package that provided an added configuration section that allowed for tuning the appearance of GTK apps, which solved the problem.
Performance-wise it was difficult to notice much of a difference, this is a fairly new laptop. KDE4 did seem to come up faster from the login screen than Gnome typically does, but this may have just been an illusory perception caused by the fact that KDE gives more of an indication of what it’s doing as it starts than Gnome does.
Core Functionality
Gnome is known for hiding its configuration and even removing options, this was a major issue that Linus had criticized the Gnome developers for. It is sometimes frustrating in Gnome to not be able to change a certain setting, and I figured that it would be nice not to run into these problems in KDE.
The KDE configuration app is very impressive coming from Gnome. All of the settings exist in one place and are extremely comprehensive. The settings manager even contains a lot of the application specific settings. It’s like a user-friendly version of gconf-editor. One minor point would be that the distinction between the two tabs, General and Advanced, seems somewhat arbitrary given the placement of some settings.
Another thing I noticed was that the KDE window manager KWin has some nice options that just aren’t present in Gnome. (and a few that are but that I never knew about because they aren’t configurable so I’d never seen them) Right/middle clicking the maximize button for instance maximizes horizontally/vertically, which it turns out is default behavior in Compiz (but not Metacity, Gnome’s default WM). KWin’s multiple desktop support was nice, and featured easily accessible options from the window menu to peg a window to a particular desktop, control the window’s opacity, and a lot more. A lot of these options are available via Gnome+Compiz but take going into the Compiz settings manager and setting manually instead of clicking on the window menu and selecting. This was a nice touch that made some of the more useful features of a modern WM like KWin/Compiz accessible instead of hidden away.
Another nice feature is the new KDE menu. From what I’ve seen of the Vista Start Menu it resembles it, although I’m not qualified to comment on how it truly compares to Vista’s. I appreciated the ability to search instead of navigating the menu (on Gnome I rarely use the menu, opting instead to use Gnome Do) Saving favorite applications and having large buttons for the sub-menus is another nice touch that I think could make the fairly stale Gnome menu more usable.

In KDE pressing Alt-F2 brings up miniterm, which is much nicer than Gnome’s Alt-F2 run dialog. Miniterm allows the execution of command line one liners as well as typical launch behavior. On the other hand however, the system monitor equivalent lacked much of the information that Gnome’s provides and seemed like a weak spot in the otherwise shiny KDE4. The recent improvements to Gnome’s system monitor have made this gap even wider. (update: commenter Tsiolkovsky points out that I was seeing the stripped down version of the task manager and that KDE does in fact have a very nice task manager that can be brought up separately, he is absolutely correct)
KDE has recently adopted a new file manager named Dolphin. Dolphin is quite new and aims to be simpler than the previous KDE file manager, but I felt still outperformed Nautilus in most ways. Dolphin supports OSX-style column browsing, as well as features like split-pane browsing. I did miss the ease of remote browsing that nautilus provides as well as certain features I have gotten used to like Ctrl-S to select a pattern in a folder.

KDE4 Applications
A desktop environment is in many ways defined by its applications. Although it is possible to run KDE apps on a Gnome desktop and vice versa, things tend to work better when they are native. I took a look primarily at the core applications: web browser, IM client, document viewer, terminal, media player, text editor.
The standard KDE Web Browser is Konqueror. Konqueror was also until recently the default file manager and is immensely powerful. Konqueror is based on KHTML which is the predecessor to WebKit. It rendered most pages fairly well, and was certainly usable. I couldn’t get along without Firefox for long, although a fair comparison would be to Gnome’s Epiphany which I felt that Konqueror blew away. I also spent time using Konqueror as a file manager which was nice. The fact that it supports split views, tabbed browsing, and inline previews was extremely nice. For example, it can open PDFs using a KDE subsystem called KParts that allows KDE apps to embed one another as components. (KParts seems quite cool, and is presumably why the terminal is embeddable everywhere such as the file browser and text editor).
I had never really heard much about KDE’s IM client Kopete so I figured that it didn’t stack up to pidgin. It certainly doesn’t have the protocol support, which I think is a shame because it seems like otherwise it could be a real contender. I’ve been using Pidgin (or it’s previous incarnation gaim) longer than probably any other piece of software (except perhaps counting Mozilla with Firefox) so making the switch would be a bit tough as I’ve just gotten used to it. Kopete has some unique features including conversation theme support like OSX’s adium, and has some unique plugins (including one that displays LaTeX formulas in conversations).

Although not yet a true KDE4 application, AmaroK warrants a mention here. AmaroK is easily the best Linux music client and with an upcoming Windows, will likely be the best music player on Linux. AmaroK has great library support, an easy to use plugin system with a rich suite of plugins. AmaroK (alongside Kile) was one of the two KDE applications that I have used heavily from Gnome.
At first I didn’t think I’d bother talking about the terminal, as I’ve never thought much one way or the other about gnome-terminal. konsole however includes features like searching output, monitoring for activity/silence, and bookmarking. Given how much time I spent in the terminal, now that I have these features I’m not sure I’ll be able to give them up. Terminal transparency doesn’t work unless you pass –enable-transparency which I thought was strange, but isn’t really a show stopper as I don’t typically use a transparent terminal, and it’d be simple to alias a konsole command to include this option if I did.
Similarly to the terminal, it’d be easy to overlook the document viewer coming from Gnome’s evince. I should say that this is in a way a testament to evince’s ease of use that it is so out of the way. Despite being scores better than acroread I’ve always wanted more out of my PDF reader. I never understood why I couldn’t easily annotate and bookmark my PDFs, Okular, the KDE4 document viewer remedies that problem. Okular is based on libpoppler, the same library that powers evince, and so it’s rendering should be just as good as that of evince. At the same time however, it offers highlighters, post-it notes, and bookmarking that make reading a PDF book a lot more practical. For some reason however, search did seem broken, which is a big problem that should definitely be fixed.

Kate is the KDE text editor, and puts Gnome’s gedit to shame the way that gedit puts Notepad to shame. Features like split windows, embedded terminal support, and code folding make Kate resemble a serious editor for developers. I can understand the desire to have a simpler editor however, and it seems like by default Kate might be a bit overwhelming for someone that is looking to just edit some simple text. (although I do question how often that happens these days when it seems like most users looking for simple text editing would go to a word processor)
And just to explain my omission of word processors: I didn’t get a chance to test KOffice. From what I’ve read KOffice 2 (the KDE4 edition) isn’t quite ready yet, and Kubuntu uses OpenOffice by default. Kubuntu does ship with an Oxygen theme for OpenOffice however that makes it look native.
Final Thoughts
Unfortunately the erratic behavior of Plasma is going to keep me from making the full switch over to KDE4. The fact that I seem to prefer Dolphin/Konqueror over Nautilus and Konsole over gnome-terminal seems like fair reason to seriously consider switching. The gedit/kate differences matter little to me as I prefer Komodo Edit as my editor in general. Also, I’m fairly convinced I’m going to use Firefox, Pidgin, AmaroK and OpenOffice no matter which desktop environment I’m using so the various offerings in these fields don’t have a huge effect on my opinion. KDE is certainly visually attractive, and I have a feeling that I’ll start using more and more KDE apps, and by the time the Intrepid Ibex release hits, I’m very likely to give Kubuntu another real try. By then KDE 4.1 will be released and I’d expect that a lot more KDE3 apps will be KDE4 native.
One thing to take away from all of this is that in the era of the modern desktop it really isn’t too scary to mix and match. I have been back in Gnome now for a day and have given Dolphin a try as well as showing off the LaTeX plugin in Kopete to a friend. Just as I’ve never had real problems using AmaroK in my several years on Ubuntu, it doesn’t seem like I’ll have much trouble at all should I start to prefer things like Okular over Evince or even sticky note application KNotes over it’s counterpart Tomboy. This also makes the idea of switching less frightening, just as the availability of Open Source applications like pidgin and firefox eased my transition to Ubuntu, the fact that I didn’t have to give up any of my Gnome apps from KDE and vice versa will make what might be a transition over to KDE4 relatively pain free should the time come.
In conclusion, kudos to the KDE and Kubuntu team for building fine products. I’m understanding of the bugs in Kubuntu seeing as Kubuntu 8.04 was the first distro to ship with KDE4. I regret that I didn’t have more time to test out some of the other apps that are less important to me like KOffice and KPlayer or any of the KDE games. Also, if I overlooked any really cool KDE applications I’d be glad to hear from readers as I admittedly just pretty much went with what showed up in the menus after a default install.
Continue reading →
Popularity: 100%
April 20th, 2008 — development, python
This weekend I was helping out a friend when he pasted me some of the code from his latest project that happens to be written in C#:
(the only change I’ve made was to rename the identifying feature to XYZ)
namespace XYZ.Core
{
static class Entry
{
static void Main(string[] args)
{
using (Game game = new Game())
{
game.Run();
}
}
}
}
I know that monitors are getting bigger and bigger, but vertical space is still a precious commodity, so let’s try turning the above code into something that looks more like
namespace XYZ.Core
static class Entry:
static void Main(string[] args):
using (Game game = new Game())
game.Run();
This code is shorter and easier on the eyes, and I’m even ignoring the whole issue of having a class that simply has a static void main, as the authors of the cool Boo language point out, the people who came up with “public static void main” were kidding, it’s just that a few million Java/C# programmers didn’t get the joke.
For those of you that didn’t know where this was going, the above is just a few steps away from being valid Python (or for you .NET junkies perhaps Boo). Other people have addressed the myth of significant whitespace and I won’t go into great detail here, but I will say that Python essentially injects INDENT/DEDENT tokens that function in the exact same way as { and }.
What is often used as an argument against Python and other indentation-scoped languages is therefore really an advantage. {} are no more useful than the human appendix or other vestigial structures, the only reason that modern programming languages have them is that they inherited them.
If languages like Java/C# thought it was a good idea to free themselves of explicit memory management why not also free themselves of useless syntax that does nothing but clutter up code?
This divergence seems to only be growing wider, with languages like Python already free of these vestigial quirks, whereas languages like C++, Java, and C# continue to make their syntax more and more obfuscated. (eg. the tortured C++ lambda syntax)
This discussion on what syntax could be thought of as vestigial sparked some debate, some other potential candidates others suggested include the ++/– operators and PHP’s use of ->. I’d love to read comments with examples of other developers favorite vestigial syntax.
edit: A commenter over on reddit points out that the Lisp community had this right years ago. It does say something that one of the oldest languages is so free of the cruft that the traditionally more dominant curly-brace family has adopted. The idea that those who forget lisp are doomed to reinvent it is surely at work here.
Popularity: 9%
April 13th, 2008 — development, personal, python
If you’re one of the 20 or so regular readers, you noticed that the theme here just changed. I went with something a lot simpler than the other theme. Hacking on the previous theme became tiresome, I’ve switched to the much more generic copyblogger that is known for it’s clean code and therefore is easy to bend to my needs. Another mistake I made with the previous theme was not keeping my changes in revision control, so now all my changes are in a bazaar repository. If you have any trouble with the new site post a comment here and I’ll take a look at it.
I also wanted to take a minute to plug Steven Jackson’s blog here, which has been added to the blogroll. I should have had this on here earlier, he’s one of the developers I correspond with the most, and someone I run ideas by constantly. Most of his content is gamedev/gamedesign related. I know Steve from my sordid past as an member of the amateur game development community, he’s a freshman in college but has a pretty impressive skill set, and is one of the most determined developers I know.
As he mentioned on his blog I was working with him on an entry in PyWeek 6 which I’m sure even though it was my idea was somehow his plan to get me back into gamedev. Neither of us ended up having the time we would have liked to complete our idea, but we’re still talking about following through on it. It gave me an excuse to learn Pyglet and Cocos, two excellent python libraries. Most likely something (whether it’s our initial game or not) will come out of my having picked them up.
(This would also be a time to give a shoutout to his indie gamedev shop, Snowfall Media, that he’s set up with one other developer.)
Popularity: 6%
April 9th, 2008 — RIT, development, politics
This past weekend I had the pleasure of attending the (fantastically organized) Rochester barcamp 3 on the RIT Campus.
A barcamp is basically a group of knowledgeable people that get together and give talks on subjects that they care about. It’s quite possibly one of the coolest things I’ve had a chance to be involved in the entire time I’ve been at RIT. (I didn’t hear about the first one, and last year I was out of town)
I was originally going to give my talk on Django, maybe sprinkling in a bit of discussion on political data, etc. if I had time. Around midnight the night before Barcamp began however I decided to toss out my presentation and start from scratch. What I ended up with was in my opinion a lot better. 95% of the people at barcamp are technical, but I realized hardly any would be political.. this in my opinion was a problem.
Of course, one might think it would be risky giving a political talk at a tech-oriented event on a tech-oriented campus. My audience was on the small side, which was to be expected, and also brilliantly illustrated my first point: most of us are apathetic.
I only had 30 minutes, so my discussion on why people are apathetic was limited, but it led me to the discussion of a vicious circle wherein apathy fosters bad government which in turn fosters further apathy.
I closed the talk with examples of what developers can do which I grouped into two broad and somewhat overlapping categories: software to get people involved, and software to get people information.
Going beyond the obvious examples of flash mobs, blogs, wikis, and the like, I discussed several projects like the UK-based PledgeBank and WriteToThem. These are projects that push individuals to get involved by encouraging either collective action (in the case of PledgeBank) or in the case of WriteToThem getting people to do more personal than sign their name to what are typically meaningless e-petitions. (think “303,222 email addresses against Genocide in Darfur”)
I also pointed to examples of sites that aim to give people more information. Django creator Adrian Holovaty’s new site EveryBlock is a great example of just getting as much information as possible out to people and letting them do with it what they like. There is also the Sunlight Labs project EarmarkWatch which is a hybrid of sorts as it not only makes it easier to look at details of federal earmark spending, it also encourages citizen involvement due asking citizens to help research earmarks. The very idea of researching an earmark on your own is empowering, and can also be seen as an approach to get people more involved in at least questioning government.
(Disclaimer: I was lead developer on EarmarkWatch, although my thoughts here do not necessarily reflect those of the Sunlight Foundation)
Wrapping up my talk I asked the developers in the audience to make use of the massive quantities of government data that is out there. Or at the very least keep in mind the social responsibility that they have as being part of a uniquely skilled class with the power to control the machines and software that dominate so much of our everyday life.
The last slide ends with an equation: Django + Political Data APIs + Barcamp = ?
The discussion stemming from this talk actually led to a second talk later in the evening, where we attempted to answer this question. We ended up having a 3 hour discussion on how a few developers from RIT most with no former political experience could move on a project that will “change the world.”
Expect to hear more about that in coming weeks.
v1 of the slides that I gave (I’m working on an update as these were done in about an hour)
Slides in OO.org format
Slide overview in PDF format
Popularity: 6%
March 29th, 2008 — Ubuntu
As I have done with every release since Ubuntu 5.04 (Hoary Hedgehog) I installed the latest Ubuntu Beta almost immediately upon release.
To be entirely honest, so far, I almost wish I hadn’t.
Now I know, that it’s rare to read an Ubuntu review that’s anything but glowing, but keep in mind this is a Beta, and there was just no reason for me to upgrade.
The major features advertised on the Beta release page include: Xorg 7.3, Kernel 2.6.24, Gnome 2.22, PolicyKit, PulseAudio, Firefox 3 Beta 4, Transmission Bittorrent Client, Vinagre VNC viewer, Brasero CD/DVD burning, World Clock Applet, Inkscape 0.46, and Wubi.
Xorg 7.3 promises to bring better multi-monitor support. The thing is that for my laptop’s nvidia card nothing beats nvidia-settings. I know it’s proprietary, but it just works with my setup and still has a much nicer interface than the “two white rectangles” that the new XRandR GUI offers.
It’s hard for me to judge what benefit I’m getting from the Kernel, I will say that as always with a Kernel upgrade a few drivers break, which is a hassle, but my own fault for upgrading to a Beta before everyone has the chance to catch up.
Gnome 2.22’s big thing is GVFS, which I’m sure in time will pay off. So far I haven’t seen much benefit, but I understand that getting rid of the old underlying filesystem will allow some cool things in the future. Related to this is PolicyKit, which again, isn’t integrated with the system enough to bring real benefit so far, but is a nice idea to avoid having to gksudo everything. The other feature of Gnome 2.22 is the World Clock Applet which is cool. Of course, the practical use for most users is close to nil.
PulseAudio integration is another thing that lays some cool groundwork, but without integrated volume controls much of the benefit is lost. I have to say that controlling volume on an application-by-application basis sounds awesome.
I was already running Beta 3 of Firefox 3, no real changes in Beta 4. (I did notice that for some reason I was having X lockup issues with Twitterfox. I unfortunately had to uninstall it they were so serious and 100% reproducible. Unfortunately a coworker of mine couldn’t reproduce them on his Hardy Heron system so I have no idea what was actually to blame, so I haven’t been able to file a bug report yet.)
Transmission Bittorrent client looks nice, I only usually fire up bittorrent when downloading Ubuntu ISOs however, so I haven’t really taken it on a test drive. Vinagre VNC viewer is another “looks nice but I’m not a VNC user”. Same with the new CD burning application, typically the only CDs I burn are ISOs so this isn’t a huge deal for me. Inkscape having PDF support built in by default is awesome. I played around with it a bit and it seems pretty good. I love Inkscape despite my lack of artistic ability, and being able to generate PDFs is quite nice.
Which of these application upgrades matters to you is a highly personal thing that depends on your usage, all four are nice polished applications that I feel are great choices for inclusion in a default install.
The memory protection and new firewall aren’t things that are very visible to an end user, although it certainly is nice to see the continued focus on security. (Ubuntu being the last laptop standing in this “hack a laptop to win it” contest shows that it’s already somewhat ahead of Vista/OSX.)
The last thing, and one of the biggest features being plugged with the new Ubuntu release is Wubi. Wubi allows you to install Ubuntu within Windows without repartitioning. This is cool for people who have to be on Windows, but I’m a bit worried it’ll slow conversion rates.
I never meant to switch to Ubuntu. About a month after I installed 5.04 (3 years ago, happy anniversary!) I realized I hadn’t rebooted my computer (a rare feat in windows). It was another 3 months until I went into windows again, and that was only to make sure that a hardware problem wasn’t to blame on Ubuntu (it wasn’t). When I got my new laptop I hesitated before giving the whole drive to Ubuntu, but I realized that I hadn’t booted into Windows in something like a year, and when I did (to test windows applications that refused to run under wine) a VM would have been must less of an interruption to my workflow.
It remains to be seen if users running Ubuntu within Windows will have this same realization that they don’t need windows anymore. Of course, lowering the barrier to entry so drastically is a huge positive. I rather preferred the idea of switching users away from Windows only apps (getting them to use OpenOffice, Firefox, and Pidgin) and then pointing out that they hardly needed Windows (this is what inadvertantly also switched a (non-computer geek for the record) girl I was dating a few years ago to Linux-only, she hasn’t rebooted her desktop since upgrading to 7.10).
As I said at the beginning of this review, I somewhat wish I had waited to upgrade. I got virtually no benefit from upgrading as I had virtually no problems on 7.10 for the last 6 months. This is not a negative review of 8.04 so much as it is a glowing review of 7.10 (which wasn’t even a LTS release). That said, with the exception of the aforementioned TwitterFox issue and an issue with a new wireless driver I had early on, there is no reason not to upgrade to 8.04 at your leisure.
Popularity: 7%