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!
keskiviikko 6. elokuuta 2008
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.
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.
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. :)
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 ./autogen.sh
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.
$ 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 ./autogen.sh
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)
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)
}
perjantai 28. maaliskuuta 2008
while (1) {
My application for improving LASH made it to the finals, which were held today. The result: I have a summer job!
Here you can view the revised application which I submitted to the finals (PDF). This is a great opportunity to get LASH development moving forward and on track with the coming JACK 2.0. You can expect me to start working on the D-Bus code very soon, although I probably will not start committing until perhaps mid-May.
At this point I think it's polite to thank all the sponsors of the Summercode event. So, thanks go to (in alphabetical order): Google, Ixonos, Nokia, Nokia Siemens Networks, Novell, and Saunalahti.
Most of all I'd like to thank the whole Linux Audio community. You guys make throwing away my free time seem like a fun thing to do. ;)
Here you can view the revised application which I submitted to the finals (PDF). This is a great opportunity to get LASH development moving forward and on track with the coming JACK 2.0. You can expect me to start working on the D-Bus code very soon, although I probably will not start committing until perhaps mid-May.
At this point I think it's polite to thank all the sponsors of the Summercode event. So, thanks go to (in alphabetical order): Google, Ixonos, Nokia, Nokia Siemens Networks, Novell, and Saunalahti.
Most of all I'd like to thank the whole Linux Audio community. You guys make throwing away my free time seem like a fun thing to do. ;)
}
torstai 21. helmikuuta 2008
Welcome to process();
Hi.
I figured I might as well cave in and start a blog about my favorite activity, coding. The purpose of this drop in the ocean is to keep anyone interested informed about my projects.
Right now I'm holding my thumbs up for my Summercode 2008 application for improving the LASH Audio Session Handler (http://lash.nongnu.org). If I'm lucky I'll get to spend three months doing what I like best, and get paid for it. In that case I'll post status reports here.
I figured I might as well cave in and start a blog about my favorite activity, coding. The purpose of this drop in the ocean is to keep anyone interested informed about my projects.
Right now I'm holding my thumbs up for my Summercode 2008 application for improving the LASH Audio Session Handler (http://lash.nongnu.org). If I'm lucky I'll get to spend three months doing what I like best, and get paid for it. In that case I'll post status reports here.
Tilaa:
Blogitekstit (Atom)