sunnuntai 1. maaliskuuta 2009

Going to LAC '09

Holy carp! It's been almost a full 7 months since I last blogged. Well, that's just more reason to do so now.

I'm going to the Linux Audio Conference on 16.-19. April. This year's conference is held at La Casa della Musica in Parma, Italy. Knowing well how the Finnish summer is I'm likely to get a major portion of my share of the sunshine this year during those few days. And I can again say thanks to COSS who have kindly sponsored my tickets and accommodation.

This year's LAC is especially exciting for me, not least because I'm giving a presentation about LASH. There will also be a LASH workshop, which is great remembering how much energy last year's JACK workshop put into its development.

See you there!

keskiviikko 6. elokuuta 2008

LASH in action

I took a minute to install xvidcap and make a recording of LASH in action. Xvidcap is a nice program although it seems to be prone to crashes and also has some other bugs, as you can see from the video.

The following clip shows how one can interface with LASH using various means such as command-line tools (lash_control), GUI applications (patchage), and even via generic D-Bus service browsers (qdbusviewer).

Also included in the clip is a demonstration of LASH's client auto-recovery feature. This means that a crashed client can be manually restarted and LASH will automatically attach it to the project it was originally part of. (In the future LASH will also be capable of restarting crashed clients all by itself.)

Here's the clip (9.9 MB, MPEG-4), stay tuned for more!

perjantai 25. heinäkuuta 2008

Protocol overhaul is complete!

I'm a lazy blogger. Writing emails, blogs, etc. has always been my weak side. I hope it won't bite me in the ass when Summercode gets wrapped up, but then again you get what you order.

On a lighter note, new code has been steadily appearing in my liblash working branch, and I've just merged the changes back to the main LASH working branch [0]. This means that LASH now uses D-Bus for all client-server communication, as well as offering a public D-Bus control interface and doing its business with JACK using JACK's D-Bus interface!

This marks the beginning of the final phase of my work. Next week will be all about hunting bugs, and cleaning and tightening the new codebase. After that we should shortly see the new API reach RFC stage, with a cool new feature or two.

Here's something to satisfy those who yearn to see visible progress. The screenshot below is Dave Robillard's wonderful Patchage, fitted to utilize the in-development LASH D-Bus interface:

(Sorry about the difficult to make out text in the menu, it's because of my KDE color theme.)

[0] Somehow I managed to not include the sub-branch change history, even though I followed svnbook to the letter. I'll see if I can find a way to mend this next week.

torstai 26. kesäkuuta 2008

Merging Conflicts is Not Fun

My decision to postpone creating a feature branch finally bit me. While I was scratching my head, Nedko implemented some good new stuff in the repository. Long story short: I can only blame myself for needing to go through a bunch of files to manually merge conflicts.

But every cloud has a silver lining, which in this case means that I get to mention a wonderful tool called Kompare. A picture is worth more than a thousand diffs:

I can tell you right now that this baby takes away a lot of hassle from manually merging conflicts. Give it a spin if you can.

So, I'm a bit wiser now. After I'm done with the merge I'll finally upload the new liblash code to a feature branch which I created last night. That should speed things up a little again.

perjantai 13. kesäkuuta 2008

Slow blogging, fast progress

I admit, I'm a slow blogger. Fortunately, I tend to write code considerably more often than I talk about it here.

I've spent the past week or two converting liblash to use D-Bus for its communication with the LASH server. It's too big of a change to be done one commit at a time, as that would introduce major breakage to the repository. Thus I've worked on it locally, sending regular backups to two remote locations just to be safe.

In my previous post I expressed optimism about reaching and even exceeding my goals, and that hasn't changed. Here's a run-down of what's hip and cool (or, in other words, fresh and fragile ;)) in LASH land:

- The LASH server now communicates with JACK using D-Bus; lashd is no longer linked against libjack. There's still one or two snags to take care of, but for the most part it works as it should.
- The LASH server has an almost feature-complete D-Bus control interface.
- The client library is on its way to using D-Bus for communication with the LASH server. Most of the code is written but not yet committed to the main repository.
- A callback-based API is currently forming around the new D-Bus code in liblash. This is also not yet committed.

The observant reader will notice how one of my goals has changed priority from the original plan. Communication with JACK used to be the last goalpost, but I found it easiest to actually write it first. Save for that minor thing, everything else is happening in order.

In my next posting I'll try to list the extra feature additions which I believe will be completed before September. Hopefully I'll also have a photo of how my Summercode beard is progressing. :)

perjantai 11. huhtikuuta 2008

Shell statistics & recent happenings

Inspired by Miia Ranta and Sakari Bergen, here are my current shell statistics:

$ history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c | sort -nr |head -n 10
132 svn
83 nano
42 cd
40 make
38 ls
29 lashd
22 find
12 ./configure
12 ./
10 ps

You can notice a certain trend there. Yes, I've been working on LASH lately, even though Summercode doesn't officially start until June. This is partly because I'm eager to implement everything I'm planning, and partly because Nedko Arnaudov, a LASH maintainer, is as eager as I am. :)

We had a discussion with Nedko last weekend about how to proceed. To put it short, he doesn't want to wait. Either I get something done beginning from this month, or he starts doing it on his own.

It's a fairly tricky situation: I don't have the heart (or guts) to ask a longer-time developer like Nedko to just sit and wait, but on the other hand, if Nedko implements the stuff from my plan, what am I to tell to the Summercode people? "It's there, but I didn't actually code it. Can I have the money now?"

So, I've been coding. And things are luckily moving along; I've added the D-Bus main loop to lashd, and it can already send out some signals. It's likely that many of the planned improvements are done by June, but I'm not going to run out of work any time soon (partly thanks to Nedko, who has already contributed a lot of ideas). I'll work on LASH for the entire summer, and hopefully when Summercode ends I'll have much more to show off than I originally thought. Not bad at all.

sunnuntai 30. maaliskuuta 2008

void log_info (const char *str) {

I added my Summercode goals to the LASH 1.0 Roadmap on the project web site.

BTW, here's a photo of me presenting LASH to the judges this Friday. (I promise: No more photos after this one, except for screenshots of project progress and mugshots of my Summercode beard. :))

(Photo: Copyright 2008 Miia Ranta)