Monday, June 22, 2009

New blog!

Ok, this blog is pretty dead, but I have started a new one!

Take a look: Source Code Bean

Friday, May 25, 2007


Since I bought my Mac I've been looking for a way to move and resize windows by using a modifier key and the mouse (as in GNOME, KDE and most other window managers). Today I found the solution, Mondomouse!

Tuesday, February 20, 2007

How Eldora will differ from a BNC

Bohemel asked the obvious question "What is the difference between this application and an ordinary bnc?". I will try to explain it in this post.

During the years I have tried many different IRC bouncers, but none has satisfied me. As I see it, the problem is how the client communicates with the BNC, the IRC protocol is not flexible enough. As an example, when you connect to a BNC, you receive log messages from the channels you are in, but they are time-stamped with the current time. You can not tell if a channel has new messages or not, since all received messages are "new" to the IRC client.

The two solutions to this problem which I have found is:
    1. Extend the IRC protocol with additional features.
    2. Create a new protocol.
I have chosen the second solution because it offers more flexibility.
    IRC Client < --IRC protocol--> BNC < --IRC Protocol--> IRC Server(s)

    Eldora Client < --Eldra protocol--> Eldora server < --IRC Protocol--> IRC Server(s)
The Eldora protocol is similar to the IRC protocol, but adds additional features, such as separation of new messages and previously read messages. So when a Eldora client connects to the server, it can request n lines of log for each open channel and private chat. The messages will be time-stamped at the correct time (which often is a problem with BNCs, since IRC messages are time-stamped by the receiving client). It will also support various window managing commands, so if one client closes a window, or rearranges a window, it will propagate to all connected clients.

Tuesday, February 13, 2007

Eldora: Reinventing IRC

Reinventing is perhaps not the right word to use, but if Apple were the creators of Eldora they would probably claim so. Eldora is the codename of a project I'm currently working on, it is sort of a continuation/restart of an old project of mine, rIRC, which was never finished.

Eldora is a Client/Server based IRC client. It is supposed to do what can be achieved using irssi in a screen on a remote shell. It will allow you to always be online in your irc channels, so you wont miss anything said during you turned your computer off. It will support multiple attached clients at the same time. Changes to the interface, such as open channels or private chats, will propagate to all connected clients. The server part will run on almost any platform, while the client application will (at least to start with) be mac only.

The client application will support support growl notifications, have URL highlighting, URL logging (actually a server feature). Since it is going to be an OS X application it must of-course be very attractive as well :)

So far I'm only working on the server implementation. I'm coding it in, do not be frighten now, Haskell. During the past months I have learnt a great deal of Haskell, and what seemed totally impossible to me 3 months ago, that I would actually like to code Haskell, is today true. It is a very powerful language, but it is also extremely hard to learn.

Comments, thoughts or feature requests are welcome :)

Sunday, February 04, 2007

A better iSync script

The isync "script" I posted last time did work, but not as perfect as you might want, so here is a updated version! The new script starts iSync in the background, synchronizes and then exits iSync (if iSync was not running from the beginning, in that case the application will not be terminated).

tell application "Finder"
set iSyncRunning to (number of items in (processes whose name is "iSync") is greater than 0)
tell application "iSync" to launch
tell application "Finder" to set visible of process "iSync" to false
tell application "iSync" to synchronize
tell application "iSync"
repeat while (syncing is true)
end repeat
if iSyncRunning is not true then
end if
end tell
end tell

Monday, January 22, 2007

Use cron to automate iSync

I think it is rather strange that iSync does not have built in scheduling. However, a simple solution to this is to use cron to schedule it.

0 22 * * * osascript -e 'tell application "iSync" to synchronize'

Friday, September 29, 2006

Google Summer of Code 2006

As you might know (if you followed my old blog) I participated in GSoC this summer. I wrote two applications for the GNOME desktop environment, "Panel Switcher", and "Session Backup". Panel Switcher is ready for release, hopefully it can be released as a package in Ubuntu efty universe soon.

Session backup on the other hand, it not as mature as Panel Switcher, and since I found out that a guy working for Novell, is working on an application that pretty much does the same things that Session Backup was supposed to do, the future of this application is a bit unceartin.