Category: Software

Check out Synapse!

I can’t speak for all Linux users, but over the years I have sadly come to accept that the Linux community is usually sidelined and ignored by most vendors in the first release of any product — be it application software, device drivers or hardware. Even companies that stand on the shoulders of open-source software often treat Linux as a second-class citizen (case in point: Google with Chrome, Apple with Safari and numerous other products).

While there is plenty of Linux-specific software out there as well, most of it is to fill the void left by mainstream vendors. Consider the Instant Messaging world. Google Talk still has no native client for Linux. In fact, there is no really good and well supported chat client on Linux that reliably does voice as well as video chat. Yes, there are ways to make it work, but if they really worked, wouldn’t more people be using them?

A brave soul is making another attempt to change the status-quo. Enter Synapse: a refreshingn take on a Jabber/XMPP only IM client, designed especially for Linux. (Interistingly, Synapse is written using Qt/Mono, both of which are cross-platform, so it could easily run on other platforms as well).

Synapse

Quoting from the introductory blog post:

With all the focus on the web, a lot of people have been dismissing desktop operating systems as nothing more than something required to run a web browser. Unfortunately, Linux, which has suffered from unpolished UI applications for a while, has been hit especially hard by this trend.

Even though there have been lots of exciting advances to the platform (Mono, DBus, Cairo, Gstreamer, KDE4, etc.), few developers focus on supporting Linux, and Linux applications rarely receive the same polish and attention to detail as web applications.

Although it makes me unpopular, I’m not ready to give up on Linux software development. I feel strongly that there’s a place for both web and desktop applications, and exciting opportunities for integration between them.

I like many things about Synapse already:

  • a slick website
  • it uses git (and github)
  • provides packages for Ubuntu and some other distros
  • the app itself is visually interesting

Of course, many things don’t quite work yet (such as the ability to add multiple accounts!). But it definitely looks like a very interesting project, one that I’ll be watching very closely.

How to simulate Compiz’s screenshot plugin in KDE4

I used to run Compiz with KDE 3.5 and I quite liked that setup. Compiz was fast, highly (a bit too much, perhaps) configurable, and came with a great set of plugins. One of my favorite plugins was the screenshot plugin — basically it allowed me to capture arbitrary regions of the screen with a simple mouse+keyboard combo. This was particular useful when writing blogposts to demonstrate something on the desktop, when filing bug reports (to visually show what was going wrong), when telling webmasters what was wrong with their website (it makes everyone’s life easier if the screenshot only captures the problematic space on the page, not the entire window) and so on. The key strength of the plugin was that it was so easy to invoke, and the captured regions automatically got saved as PNGs to a pre-determined folder. Neat.

Unfortunately, with KDE4, I am no longer running Compiz since kwin (KDE’s native window manager) has built-in support for compositing now. KDE4 is great (especially with 4.2) but I still missed the screenshot plugin very much. I couldn’t find any equivalent plugins for KDE4, so I was on the lookout for a workaround. It turns out, there is one. Here is what you do:

  • Go into System Settings -> Input Actions
  • Create a new global shortcut (right click)
  • Bind a convenient shortcut — I use Super+S or Meta+S
  • For the command/URL, enter ‘kbackgroundsnapshot –region’ without the quotes, of course

And there you go — now you can simply press Super+S anywhere, anytime and the mouse cursor will change to a cross-bar. Once you have selected the region to capture, hit enter to save the picture, escape to cancel the action. By default the pictures are saved to your Desktop folder, and are named ‘snapshotX.png’ where X is some number. Here’s a screenshot that I just took:

kbackgroundsnapshot

What makes this work is the little-less known program (like so many other hidden gems in KDE) ‘kbackgroundsnapshot’. It is essentially ksnapshot, but it is supposed to run in the “background”, meaning that it doesn’t show the regular dialog box that ksnapshot shows. Useful for scripts and such.

Thematic: the final word in WordPress themes

Modular, Extensible

I’m a sucker for clean, well-designed code. I like modular, extensible architectures. I like change.

As a consequence, I struggle periodically with the theme of my website. Not that I am a designer and it is certainly not the most productive use of my time, but what can I say. The point is, I was never really happy with the infrastructure I had at my disposal (I am never happy with the designs that I come up with, so thats another story). Until now.

One of the main barriers in designing a custom theme is that you don’t want to scratch. It is just too much work, and why do it when so many others have already done all the hard work for you? It pays to be lazy! So I have always looked around for good starting points to build up custom themes on.

I started out with Sandbox, a semantically rich theme that allowed extensive customization just using CSS. However, styling via CSS can only get you so far. Sometimes you really do want to make changes to the underlying PHP, for instance.

My next setup involved a base copy of Sandbox on which I layered my changes. In order to accommodate changes to the underlying Sandbox code, I used Mercurial with patch queues (the mq extension). This was much nicer, since it was easy to keep up with changes to the core Sandbox and leverage the work that was being done by others. But it was still cumbersome, since once in a while I would run into conflicts that I would have to merge manually. And it was still not a clean setup.

My ideal setup would have been to keep my changes completely distinct and isolated from the underlying theme. A setup that would allow the underlying theme to evolve independently, while my changes continue to work without any additional work.

Thanks to improved support for child themes in WordPress 2.7, and some fantastic work done by these fine folk, I have realized this ideal setup.

You see, I recently started working on a new website for my wife (it is not live yet, but will be soon). In the process of building her website, I was exploring the so-called WordPress Theme Frameworks. After some playing around, I settled on using Thematic. I started out by cloning the Thematic repository. Locally, I was using git-svn to manage the code changes. Thanks to git-rebase, it was not that hard to keep my changes up-to-date relative to a rapidly evolving Thematic code base.

But soon enough, Thematic had enough hooks, filters and features that I could do all the modifications without modifying a single line of Thematic itself. Now, all my changes are contained entirely within a child theme. How it is possible? Well, Thematic happens to be pretty much the most child-theme friendly framework that I could find. It is really easy to customize.  Several child themes are already available for immediate use, and it is trivial to develop your own child theme.

This blog is going to run on a Thematic child theme. Changes are going to be incremental, but I don’t need to worry about keeping them in sync with Thematic, and I get to leverage the improvements being done in the core them for free! You can also take a sneak peak at how we are using Thematic for my wife’s new website

uBoggle is a featured application!


[[http://uboggle.appspot.com|uBoggle]] is now appearing as the **featured application** on the [[http://appengine.google.com|Google AppEngine]] [[http://appgallery.appspot.com|Application Gallery]]. Thank you for your votes, and thanks to the appgallery editors!

And I have a screenshot for proof and posterity :)

uBoggle is the featured application on App Gallery
uBoggle is the featured application on App Gallery

Introducing uBoggle!


As I mentioned [[http://floatingsun.net/2008/07/14/experiences-with-google-app-engine|recently]], I have been dabbling with Google App Engine for fun with some of my friends. I think we are now at a stage where we could use some more players! :)

Ladies and Gentlemen, I’m proud to present [[http://uboggle.appspot.com|uBoggle]] — the **best** game of its kind out there! If you like games like Scrabble, you’ll love uBoggle :)

{{ http://uboggle.appspot.com/static/images/logo-v1.png}}

We have some amazing features — such as word highlight, word meanings and board rotation — and addictive game play, so do give it a try. You can play without logging in, but if you log in, you will get access to additional features such as game history. Many more features are on the horizon, so check back often.

If you like the game, please leave a comment [[http://appgallery.appspot.com/about_app?app_id=agphcHBnYWxsZXJ5chMLEgxBcHBsaWNhdGlvbnMY1B4M|here]]. Thanks!