Tuesday, December 29, 2009

What we'll be doing the coming months

We'll be building a house, that's what.

For the past 3 years Wendy and me have been planning this project and it's damn time we started.... which we did the past 2 days. Here is photographic evidence:
big hole in the ground

That big hole in the gound is only the start of what, over the next few months, is supposed to become this beautiful piece of architecture:
The architects first sketch

Notice the sun in this sketch because it's what this house will use as it's main heating source. It will be solar passive house meaning it will use about 10 times less energy to heat then a regular house here in Belgium. If the budget allows we'll put enough photo-voltaic panels on the roof to never have an electricity bill over €15 per year. And since we are geeks it will have domotics and multi-room audio.

Designing and building your own house is common in Belgium. According to a saying we have "a brick in our stomach". We are not using bricks though, it's a combination of a concrete "pit" containing a wooden frame clad with cement bonded panels. And the layout is upside down, bedrooms downstairs (and partially underground) and the open-planed living spaces about 1.5 meters above ground level, which itself is 2 meters above street level.

This is as unconventional as you can get in this country but anyone that knows Wendy and me could guess we wouldn't have it any other way :).

If you are interested and can read Dutch (or just want to look a the photo's): we maintain a blog on a eco oriented site for (potential) builders called ecobouwers.be.
And I'll add a few English posts to my other blog which I named after the house number we've been assigned: 12C.

Bart & Wendy

Monday, November 23, 2009

Amarok Podcasting - Progress

Here is what a day off from work can mean for Amarok:

* Make it possible to change a podcast channel's URL. (BR 195204)
* Also support feed:// urls for subscribing to podcasts.
* Limiting the number of simultaneous podcast updates and downloads to 4. Can be
configured separately in the rc-file.
* Import podcast subscriptions from OPML.
* Show HTML info for podcast channels that support this. Patches by Mathias Panzenböck.
(BR 193357)
* Podcast auto-update interval is now configurable in the rc-file. Default is 30
minutes. (BR 212467)
* Made dragging from podcast list to external program work. (BR 212343)

That is 2 branch merges (one from me and one from Mathias) and about 20 commits. Energy that would otherwise be spend commuting and beating an embedded system into shape. I would call that a well spend day off :).

Podcast configuration options
There now 3 hidden configuration options added to amarokrc:

AutoUpdate Interval=30
Maximum Simultaneous Downloads=4
Maximum Simultaneous Updates=4

The interval is in minutes and updates also includes adding a new subscription.

OPML import
You can also import subscriptions from an OPML file. And it's pretty fast already.
Proof in the form of a screencast: I'm importing 50 feeds from the Digital Podcast directory.
Uploaded to vimeo, ogg version also downloadable there.


Friday, October 09, 2009


I've started a new project on gitorious, KIO::UPnP.
Originally wanted to upload it to svn but discovered I lost my account's password. Expecting KDE to move to gitorious soon anyway (hint!).

This code has been in development for a long time, started at the first UPnP Developers Sprint in Paris back in May, by Ade and me.
Then it slumbered a bit on my hard-drive, and grew a bit on Ade's as it seems. Because of Ade's various other projects I took it over from him some months ago. But because of all my various other projects it took until the 2nd UPnP sprint last weekend for me to touch it again.
Friedrich's network:// kio-slave also lists upnp devices but from a higher view. He lists all UPnP devices with any services but will forward to upnp:// when you click a upnp-mediaserver entry.

The project goals as so concisely written on the projects wiki:

Create a UPnP kio slave that will connect to a UPnP Media Server to interact with content on it.

Supported actions depend on the servers capabilities:
– Browse
– Search
– Upload
– Edit

For most UPnP servers you should only expect the browse though.

The ultimate goals of the upnp kio-slave is to be used as the base for an Amarok Collection. There I'll have to do some trickery to allow even the simplest servers to be searched. Thankfully the MemoryCollection and MemoryQueryMaker will help me there.

For now I'm stuck at demarshaling DBus reponses from Coherences org.DLNA.DMS.CDS.Browse. I think there are just to many levels of DBus variants (variant which is an array of variants that holds an array of dict entries which are string,variant v[av[a{sv}]] ). Frank is fixing that for me this weekend though (should be aa{sv}).

So now it's out there in a conveniently collaborative form, don't be afraid to help me out.

Thursday, July 16, 2009

Apple breaks Palm Pre compatibility. Or: an open letter to Palm

Dear Palm,

When you launched the Pre everyone was very excited about the excellent job you did. Everyone except Apple that is, they don't like such strong competition.

You decided to reverse engineer the iTunes database "protocol" used in Apple products and implemented it from the device side on the Pre. This has the benefit of being able to sync the Pre with iTunes on any PC or Mac without installing extra software.
And you didn't have to invest in development of your own desktop software, which is not a differentiating feature for you. You're in the business of selling phones, not software. I don't think deciding to "outsource" this to Apple was a smart move though.

So now the bully is attacking you on *their* playground:

From Engadget Mobile

And then they say it's your own fault. You could go crying to the principle (or whatever you want to call court you want to file the anti-competitive lawsuit with).

But if you have a problem, if no-one else can help, and if you can find them, maybe you can hire the AMAROK-TEAM!

The media-player support in Amarok 2 is shaping up to be very flexible, complete and easy to implement thanks to the hard work of 2nd time GSoC student and hacker extraordinaire Alejandro.

We can quickly add support for the Palm Pre, or any other player, providing there is a way to access the database and we have documentation of the data-format. We already have iPod and MTP support and the same system is used to implement audio CD as a collection. iPhone OS 3.0 is being worked on as well as UMS (generic USB device) and OBEX (many cellphones).
We promise not to change our application to prevent users to use Amarok with your device. Not only do we care about our users, we are not a competitor to you or have any ulterior motives.
Amarok is already fully supported on all flavors of Linux and we have beta releases on Windows and Mac OSX which just need a bit of polishing and stabilization.

Serious business proposals can be send to the Amarok team at business@getamarok.com (these emails will not be publicly readable).

Sunday, May 10, 2009

UPnP DevSprint in Paris

Hi from Paris, where together with [ade], dev, erwan, philn and lightyear I'm at the Coherence/KDE developer sprint focused on UPnP.
Yesterday, after struggling with QtDBUS (specifically the under-documented qdbusxml2cpp) I managed to the signals from Coherence and call functions. So now I can discover the devices on the network.

The signals are connected to a UPnPCollectionFactory that should create a new collection for each mediaserver (containing music) on the network.

Next step will be to really talk to the devices themselves. That will require some XML parsing, which can get a bit complicated. With any luck I'll find a Qt based DIDL-lite parsing library. Consider that a lazyweb questions :).

A bientĂ´t,

Friday, February 13, 2009

UPnP support in KDE and Amarok

During FOSDEM [ade] and I met with Frank Scholz, the lead developer of Coherence. We discussed DLNA/UPnP and how Coherence can be used in KDE and Amarok. The conclusion of this meeting was that we should use Coherence as our base for supporting UPnP services in KDE. The first implementation will be a KIO slave for browsing media stored on remote devices.

UPnP is a network technology using a combination of SSDP, XML and SOAP, with some GENA thrown in for eventing. A group of UPnP services called the UPnP A/V Architecture has been picked up by an industry organization called the Digital Living Network Alliance. DLNA specifies device classes which have to implement specific services and support a minimal set of filetypes and codecs.

Coherence is a framework, written in Python but it exposes a DBUS API, that allows an application to participate in the "Digital Home Network". For the moment this means mainly UPnP, but support for Ampache is available and Apple's DAAP is also considered. It's published under the MIT license and is multiplatform.

In Amarok we have been planning to integrate UPnP for a long while. But except for a failed Google Summer of Code project last year not a lot of effort has been spend. Thanks to Coherence this will quickly change: in relative short term (read 2.2) we will introduce a UPnP Collection that will list and enable playback of music stored on a DLNA Digital Media Server.

We could even consider publishing the content in the local Collection, basically making Amarok a DMS. Amarok can then track plays on remote devices and use it in the scoring algorithm.
Even more advanced functionality would be to control one or more Digital Media Renderes, such as
the Philips Streamium, from Amarok.

A few mails have been going back and forth between interested developers about discovery of network services in general. In order to simplify using technologies as UPnP, zeroconf, Samba, etc I'm wondering if we can integrate this in Solid. Only the discovery part obviously, using the services would be the task of separate frameworks, such as Coherence. With this functionality in Solid it should be trivial to show a kind of "Network Map" to the user with all the services per device.

As you can tell, plenty of cool things to keep a few people busy for a year or 3.


Monday, February 02, 2009

Amarok Junior Job: Auto-download new podcasts

A recent comment by progmanos on the post of the release reminded that I still have to implement Podcast episode auto-downloading. In the hurry to get 2.0 released I did add the config option, but forgot to add the actual code to make it work.

In Amarok 2 Podcasts are implemented in classes derived from PodcastProvider. There can be mutliple providers, which allows for instance podcast syncing between Amarok and an iPod.
The default provider is SqlPodcastProvider. This is where the auto-download function should get implemented.

This is a nicelly contained and not to steep introduction to Amarok development. So it's an excelent Junior Job.
If progmanos or anyone else would like to have a go at it, contact me on #amarok on irc.freenode.net. My nickname is Stecchino.