Tuesday, November 04, 2008

Amarok podcasting 2.0 and post-2.0 plans

Hey fellow developers and users,

In Juli 2007, at Akademy Glasgow I started implementing podcasting support in Amarok2. Since then I was sidetracked a little, as you may be aware.

The little time I did manage to spend designing and implementing was short and far from focused. So a lot of features are not finished or just plainly missing. The framework I created underneath suffered from the same lack of focus and is need of a good review. I'm aware there is probably some overdesign and some parts might be to complex. If you feel you can help in that area I suggest you take a look at extragear/multimedia/amarok/src/podcasts . Send questions, comments and suggestions to amarok-devel@kde.org .

The 3rd beta from Amarok 2.0 is already out the door and podcasting support is still not finished. In order to make it I had to reduce some goals I had set for myself during those rainy summer days in Scotland. Here's the plan:

Amarok 2.0:
The focus ATM is on finishing the SqlPodcastProvider, Podcastmodel and PodcastCategory (GUI).
SqlPodcastProvider uses tables in the standard SQL database, adds and updates the feeds using PodcastReader and downloads to disk using the regular KIO-jobs.
To make the podcasting fully functional though we'll need to reintroduce:
  • Autoscan the feed for updates
  • Download when available
  • Episode purging (delete downloaded episodes automatically)
The settings dialog for this exists, next up is using them :).
The GUI currently shows all episodes ever read from the feed, which obviously needs to be addressed.
The GUI for 2.0 should be very similar, if not identical to Amarok 1.4, probably minus folder tree grouping support since that is better handled generically for all Playlists (which PodcastChannel is in our class diagram).

If anyone has a bit of Qt Model/View experience and would like to see podcasting in Amarok 2.0 I suggest you send a mail to amarok-devel@kde.org or ping me on irc (Stecchino on #amarok).
Without help we might have to drop it's from 2.0 completely because it's a bit much for me alone to complete and stabilize.

Amarok > 2.0:
I do have a plan for a complete GUI overhaul post-2.0. I'll get some art and usability advice in another blog post when the time comes.

The 2.x releases should see more advanced features being introduced that the framework is already designed to support:
For the SqlPodcastProvider specifically:
  • Renaming and sorting individual episodes (popular request)
  • Purging based on episode age and/or total size on disk
  • Labeling of PodcastChannels (perhaps to replace traditional folder tree grouping)
More general
  • Mediadevice Podcast support: iPod being the most advanced implementation but also generic usb devices, music phones and Canola2, I'm sure the INdT guys could help us with that.
  • OPML import and export
  • Podcast Directory personal subscription list.
  • BashpodderProvider: to use bashpodder and Amarok in parallel with synchronized download status
  • ...
On to hacking.

Tuesday, October 21, 2008

Feature parity with KDE 3.5 ++: minimized windows

Yesterday the itching became to bad an I hacked a bit on plasma and kwin to restore the workflow I enjoyed with KDE 3.5.

  • The task applet in plasma can be configured to only show minimized windows since r874077.

So now KDE support my OSX inspired desktop configuration again. I would include screenshots but plasma is currently broken. Such is the life on the bleeding edge.

Monday, September 01, 2008

Drupal registration module for KDE summits

As you might have noticed, the registration page of the Akademy 2008 website is in fact a drupal site. The original concept for this was conceived by Niels van Mourik (who does drupal development as a day job) and further developed by Marijn Kruisselbrink and me.

It's a normal drupal installation so every person that registers gets a user account. After the login you are automatically redirected to the first page of the registration module where personal details have to be entered.
Next up is the accommodation and extra options reservation. We've used the extras this year for the social event and day trip which both had a 150 person limit and for inquiring about interest in bike rental. The N810 giveaway was also arranged with the options feature, with a limit of 100.

The 3th tab will summarize the selections made and the payment due to complete the registration. A payment ID is automatically generated to be used in a SEPA (EU bank transfer) form as comment to simplify manual processing of those payments. There is also a direct link to PayPal to make the transfer. Obviously all details were supplied to PayPal using it's API so the payment is only a few clicks away. The PayPal payments are automaticly processed using their Instant Payment Notification system.

Here are some of the most important features of the registration module you won't have noticed as a regular user:
* Registrants page: An overview of all registrations including name, email, payment ID, payment status, balance and a combobox to lock the registration forms. It also has a global lock to close registration and control new account creation.
* Accommodation Page: Here we can adjust the available spaces in the hostels that were arranged by the organization. It's also a convenient overview to check the status.
* Reports: SQL queries and results on the internal database. Output in HTML with adjustable links for each tuple and CSV. It also does parameterized queries.
This is really the most powerful feature and has allowed us to do just about anything we wanted with the information in the database. Some examples of that are the automatic generation of conference invite letters for visa applications and namebadges. This was achieved with TeX classes written by Bart Coppens.
The MAC addresses were downloaded and parsed by bash magic to be used in the pfsense portal that provided access to the internet and gave everyone a static IP lease.

The module was functional for Akademy yet it was missing some important features and needs refactoring:
* Change the name of the module
* Change the names of the database tables according to the event name
* Rename the functions to something generic instead of akademy_*

Absolutely needed features:
* Confirmation emails
* Automatic reminder emails

Workflow design:
* Timeline: phases in the registration to control which fields are possible to be edited by whom and deadlines
** Accommodation booking open -> deadline
** Registration open -> deadline
** During event: only certain fields can be adjusted
* Deletion of incomplete registration at the registration deadline

Optional participant features:
* Optional additional visa form with more privacy sensitive data
* Cancel registration by participant him/herself
* More payment options like Google Checkout

Back office features:
* Better "Accommodation" page
** Show free beds as well
** Adding and removing hostel
* Better "Payments" page and db table with dates, bank transfer numbers, etc.
** Deletion or correction of {payment} tuples after refunding
* Page for adding and editing extra options

Advanced back office features:
* Automatic visa invite generation using LaTeX
* Automatic payment receipt generation with support for company name
* Bank, PayPal, etc fee accounting included in the database tables. Needs to include date received and a summary of the booked accommodation and options
* Drag'n'Drop style room assignments using AJAX
* Option: integrate it into a larger community web 2.0'ish website
* Option: "arrived" field or {arrival} table
* Option: cmdline or GUI program to use at the reception desk for:
** marking arrivals
** print individual badge or all badges
In order for the registration module to be used for upcoming events the refactor and needed features has to be done first. After that, and possibly before the Summit in Gran Canaria, the rest can be implemented. Certainly the advanced back office features will be very much needed for a +500 people event.

This modules should not be used by KDE only though. In fact I plan to use it for a conference on our campus early next year (yeah, another one).

If you have PHP, drupal or HTML skills, just want to suggest something or want to help with testing, please join #kde-www or send a mail to kde-www@kde.org

Tuesday, August 19, 2008

The Akademy 2008 team

Niels already mentioned the core team. But Akademy 2008 had a lot more volunteers and helpers

My colleagues of the EmSys group:
* Tom Tierens
* Wim Dams
* Philip Van Pelt
* Johan Van Bauwel
* Lars Struyf
* Patrick Pelgrims
and one of our students: David Nelissen.

Without them the network and computer labs would never have been up, let alone running relatively stable.

Also helping us were with catering and booth duty:
* Bart Elsen
* José Millián Soto
* Ruben Dezeure

And the technical staff of the campus:
* Dirk Swiggers
* Alois Budts
For putting up with all those "geeks" "hacking" in the computer labs.

Leo Schoeters for getting us some exposure on a local TV-station.

Peter Mathijssen made the logo and banners for the website.

We've rented equipment for video recording and power which were kindly supplied to use at a very steep discount by Koen Buys of KB Design.

Lot's of people were involved in organizing Akademy 2008. I'm sure next years team will be even bigger and the quality and "glitch-free"-ness will be the proof of that.

Thanks to all of them for making Akademy 2008 a wonderful experience.

Monday, June 09, 2008

Akademy 2008 status

Hi Planet,

The registration for Akademy 2008 has been open for a week and a half now. After the initial rush during the first weekend the number of reservations for hostel beds was going up steadily.
Now the only hostel beds available are 4 on Friday the 8th, one on Tuesday, 2 on Wednesday and 3 on Thursday, most in hostel Zandpoort in the city. For those staying in hostel Zandpoort, we still have a few beds available in hostel Roosendael on Friday the 15th and the list of recommended hotels on the website has been updated. Since most hotels in Mechelen are business oriented they are cheaper on the weekend nights, you'll find prices as low as €59 per night.

Take a look at the pages for the Social Event and the Day Trip.
You'll read that we'll be partying with walking dinner and open bar on Saturday evening and going on a trip downriver on Thursday afternoon, also with yummy food and free drinks.

And let's not forget we all have a little padams in us:

Saturday, March 01, 2008

The best way to motivate: people

If you've been to a couple of Open Source conferences, you might have noticed that motivation spikes after such a meeting. I guess it's not the conference itself but rather the people that are present.
We'll it might not be true for everyone, but it certainly motivates me. Last weekend there was FOSDEM. I got a huge energy boost from that and managed to spend many an hour on Akademy during the 3 vacation days I took beginning this week.

I got the local Akademy team together to meet at café "Friends" in Mechelen. Everyone say hi to the team:

From left to right you'll see:
  • Pieter (Gunirus)
  • Bart Coppens (from krita fame)
  • Wendy
  • Pieter Vande Wyngaerde (just try to get that last name spelled right the first time :) )
Not in the picture are:
  • Andy Goossens
  • Wesley (profox)
  • Bart Cerneels (me, Stecchino, behind the camera)
These are the girl and guys that will be guiding you to and from Akademy 2008, around the campus, the hostels and the city. Better memorize their faces, you're wellbeing may depend on it :) An by that I obviously mean a nice bed and food.

We'll this should be enough to motivate me and the team members for another few weeks. And I hope it motivates you, dear reader, to start working on those ideas for Akademy 2008 as the call for participation will be published soon.