Sunday, December 02, 2007

today, besides fixing a crasher in plasma on exit and making KConfig delete groups recursively, p. and i mostly hung out. we went out for brunch together, watched a movie, did some (much needed) house work.

i also noticed that the oxygen window decorations now have a visible border around them so that they no longer get lost in the soup. the visual difference between active/inative window borders and menus are still up for grabs, but the window border improvement takes care of one of the major oxygen showstoppers. i saw people working on the issue on irc the other day, and apparently the work has been integrated. yippee, oxycoders!

i also got some new toys to play with today. one is a qt4 irc client and the other one is what i'm using to write this blog entry.

the qt4 irc client is called quassel. i met the dev team when i was in munich last, which is how i found out about this bad boy. what's so cool about quassel? well, besides being done in qt4, it uses a client/server model. think "screen for gui apps", in particular irc in this case. the quassel client connects tothe quassel server to display and interact with the session; once the client disconnects, however, the server maintains the connection and continues sitting there on irc. next time you fire up your quassel client (there's a desktop one and apparently a phone one, too) it picks up exactly where you were. no long will i need to choose between an always-on irc connection and a graphical client. neat.

the project is still young, and i hope the devs open the repo and do a first alpha release soon. release early and often, right? =) seeing as its usable already, it's just a matter of time.

the other toy i got today was kblogger. it's been in playground for a bit so i figured i'd try it out. after a couple of patches to fix compilation and a crash on configuration on first run, it is up and running. i'm using it to compose this entry, actually.

it has a nice little wysiwyg editor (though the yellow background is a bit overpowering; no more so than a post-it note, though, i suppose) and uses libkblog for the blog stuff. it also uses libkipi to help with images you upload. i've found the media support isn't perfect yet (just got a crash with it) but it is in playground for a reason i suppose ;)

it supports multiple blogs and a handfull of different blog targets already. offline blogging will be ultra handy as i can putter away on the blogs during downtime and then sync when i get to a net connection. will be nice for travel. pretty neat stuff all around. i'll have to keep my eye on this app. =)

hmm.. apparently it only supports blogger v1 right now. that sort of sucks for me. or rather, it means i must resist the urge for a late night hacking session to investigate adding blogger v2 support ;) so while i used kblogger to create the entry and what not, i was forced to retreat back to a web browser to do the actual upload. meh. obligatory screenshot:

10 comments:

Leo S said...

and one bonus blog line that didn't make it to the final cut.. :)

Javier said...

I like the idea behind that irc client. Will definitely give it a shot.

Chani said...

omgwtfbbq. I want both of those. although irssi is still the most useful if I want to check on it over putty from a random windows comp - quassel would need a text client for that. or, uh, a version compiled for windows that I could carry on a usb key. yay qt4! :)

[Knuckles] said...

Nice to hear about a qt4 irc client, but isn't that feature like the so-called bouncers?

Heh, it's been a while since I used psyBNC and IRC.

GeniusDex said...

It's indeed a lot like bouncers, with the difference that in my eyes bouncers do not always play nice entirely with all clients, while this should do since it's specially designed for this particular GUI.

EgS said...

Indeed quassel is often compared with a bouncer and yes there are obviously similarities. Though since the client/core connection is not based on IRC it has way more power. For example when you connect to the core, the backlog get's replayed to a certain amount of lines. If you want to read further back the bouncer will be of no help. But the quasselclient can request more lines from the core.

The client will be available statically linked for every major platform (Linux, MacOS, Windows). So when you're at a box that's not yours you just download the client, connect to your quassel core and everything is configured as you left it. (which is basically what chani asked for - and yes it already compiles on all those OSes)

If there are any open questions, suggestions or whatsoever feel free to join #quassel on Freenode.

Cheers,

EgS - Quassel Dev

Sput said...

Supplementing what EgS said already:

- A text based Quassel client is definitely a possibility. Our architecture separates the client code (handling the connection, storing buffers and nicks in models and so on) completely from the UI code, which merely is a view on the provided models. We have two different UIs already now (one for desktop PCs, one for mobile devices that are Qtopia based, in particular the Trolltech Greenphone), and the interface easily allows to add more UIs. The text client would need to be Qt based, since we use signals/slots a lot, but since there is QtCore and QCoreApplication without X dependencies, that shouldn't be a problem. Biggest problem right now is that we don't have the manpower, but if somebody volunteers to develop a text-based UI for Quassel, I am all for it :)

- A BNC is similar, but not the same. Most BNCs don't store messages (except for queries), and if they do, you have to explicitely replay them. Connecting to a Quassel Core, on the other hand, displays your client in pretty much the same state as you left it, even if it's on a different computer. We will have GUI profiles (storing the layout of bufferviews and certain "portable" GUI settings) that can be shared between clients, too.

- The core itself can serve multiple users independently, and each user can attach multiple clients at the same time. It also uses a database backend (sqlite currently, but more will certainly follow), so backlogs are stored efficiently. So as a hoster, you would run a single core on a single database backend.

- For the less computer-savvy users, we provide a monolithic version of Quassel that combines core and client in one binary. Coupled with a first-run wizard that sets up a local sqlite database transparently, we can provide a user experience that is very similar to "traditional" GUI based clients, which should be especially nice for windows users and *ix beginners. These people would only need to install and start the binary as usual, and we plan to provide statically linked binaries that don't even require installation. Great for your USB stick!
Needless to say, even such an monolithic version can act as a client to external cores, and it can act as a core, which means you can attach other clients to it, if configured appropriately.

- Current state: The framework and foundations are in a real good state now, but the UI hasn't been developed much in the past year. So the user experience is not very good right now. We will now focus on improving the UI to a state where it is usable, so that Quassel can be deployed. Our foundations offer a lot of possibilities that we certainly will exploit.

- As EgS said, if you are interested in development, join us on Freenode at #quassel. We do give out svn access to interested people, after teaching them to not judge the very basic UI too hard at the moment :) We will open anonymous svn as soon as we have a more decent webpage and added some really needed features to the UI.

- Thanks to aseigo for trying out (and fixing) our code, and thanks to you people showing interest - that really motivates us ;-)

~ Sput (Quassel Dev)

Anonymous said...

Blogger 2 is obsolete already and you should use GData for that. I haven't tested KBlogger with GData yet, but the unit test of KBlog/GData actually works.

Cheers,
Christian

SteamedPenguin said...

Is this KBlogger only for the blogger platform or does it support posting to other blogs?

Aaron J. Seigo said...

it supports multiple back ends, yes, e.g. wordpress ..