From: pavelpa Date: Tue, 12 Jan 2010 20:32:08 +0000 (+0000) Subject: implemented xml parser X-Git-Tag: 0.5.0~317 X-Git-Url: https://git.toastfreeware.priv.at/toast/confclerk.git/commitdiff_plain/72f6fe4d7e7b5751ac63aef9c1c77d94a9c8debe implemented xml parser - parsing Schedule --- diff --git a/src/app/app.pro b/src/app/app.pro index c14f1e6..a48b1f2 100644 --- a/src/app/app.pro +++ b/src/app/app.pro @@ -1,13 +1,13 @@ TEMPLATE = app TARGET = fosdem DESTDIR = ../bin -QT += sql +QT += sql xml # module dependencies -LIBS += -L$$DESTDIR -lgui -lmodel +LIBS += -L$$DESTDIR -lgui -lmodel -lsql INCLUDEPATH += ../gui DEPENDPATH += . ../gui -TARGETDEPS += $$DESTDIR/libmodel.a $$DESTDIR/libgui.a +TARGETDEPS += $$DESTDIR/libmodel.a $$DESTDIR/libgui.a $$DESTDIR/libsql.a SOURCES += main.cpp diff --git a/src/fosdem.pro b/src/fosdem.pro index ce4a843..ded833f 100644 --- a/src/fosdem.pro +++ b/src/fosdem.pro @@ -1,4 +1,4 @@ TEMPLATE = subdirs -SUBDIRS = orm model gui app test +SUBDIRS = orm model sql gui app test CONFIG += ordered diff --git a/src/gui/gui.pro b/src/gui/gui.pro index 976ec68..1728bc9 100644 --- a/src/gui/gui.pro +++ b/src/gui/gui.pro @@ -2,13 +2,13 @@ TEMPLATE = lib TARGET = gui DESTDIR = ../bin CONFIG += static -QT += sql +QT += sql xml # module dependencies -LIBS += -L$$DESTDIR -lmodel -orm -INCLUDEPATH += ../orm ../model -DEPENDPATH += . ../orm ../model -TARGETDEPS += $$DESTDIR/liborm.a $$DESTDIR/libmodel.a +LIBS += -L$$DESTDIR -lmodel -lorm -lsql +INCLUDEPATH += ../orm ../model ../sql +DEPENDPATH += . ../orm ../model ../sql +TARGETDEPS += $$DESTDIR/liborm.a $$DESTDIR/libmodel.a $$DESTDIR/libsql.a # A shamelessly long list of sources, headers and forms. diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index b2f091c..c8ce6f5 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -3,19 +3,29 @@ #include #include +#include +#include + #include #include + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { - // open database connection - QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); - db.setDatabaseName("fosdem-test.sqlite"); - db.open(); - setupUi(this); - //TODO Palo: continue + + // create "SQLITE" DB instance/connection + // opens DB connection (needed for EventModel) + mSqlEngine = new SqlEngine(this); + mSqlEngine->initialize(); + + mXmlParser = new ScheduleXmlParser(this); + connect(mXmlParser, SIGNAL(progressStatus(int)), this, SLOT(showParsingProgress(int))); + statusBar()->showMessage(tr("Ready")); + + connect(actionImportSchedule, SIGNAL(triggered()), SLOT(importSchedule())); + treeView->setHeaderHidden(true); treeView->setRootIsDecorated(false); treeView->setIndentation(0); @@ -24,3 +34,38 @@ MainWindow::MainWindow(QWidget *parent) treeView->setItemDelegate(new Delegate(treeView)); } +MainWindow::~MainWindow() +{ + if(mSqlEngine) + { + delete mSqlEngine; + mSqlEngine = NULL; + } + if(mXmlParser) + { + delete mXmlParser; + mXmlParser = NULL; + } +} + +void MainWindow::importSchedule() +{ + QFile file("../schedule.en.xml"); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + { + qDebug() << "can't open " << file.fileName(); + return; + } + + QByteArray data = file.readAll(); + mXmlParser->parseData(data,mSqlEngine); + static_cast(treeView->model())->reload(); + treeView->reset(); +} + +void MainWindow::showParsingProgress(int aStatus) +{ + QString msg = QString("Parsing completed: %1\%").arg(aStatus); + statusBar()->showMessage(msg,1000); +} + diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h index 1828fd3..7ab90d9 100644 --- a/src/gui/mainwindow.h +++ b/src/gui/mainwindow.h @@ -5,12 +5,21 @@ #include +class SqlEngine; +class ScheduleXmlParser; + class MainWindow : public QMainWindow, private Ui::MainWindow { Q_OBJECT - public: MainWindow(QWidget *parent = 0); + ~MainWindow(); +private slots: + void importSchedule(); + void showParsingProgress(int aStatus); +private: + SqlEngine *mSqlEngine; + ScheduleXmlParser *mXmlParser; }; #endif // MAINWINDOW_H diff --git a/src/gui/mainwindow.ui b/src/gui/mainwindow.ui index 5447986..412bd10 100644 --- a/src/gui/mainwindow.ui +++ b/src/gui/mainwindow.ui @@ -55,11 +55,23 @@ 0 0 856 - 22 + 26 + + + File + + + + + + + Import Schedule + + diff --git a/src/model/eventmodel.cpp b/src/model/eventmodel.cpp index 768791b..425079f 100644 --- a/src/model/eventmodel.cpp +++ b/src/model/eventmodel.cpp @@ -1,7 +1,7 @@ #include "eventmodel.h" EventModel::EventModel() : - mEvents(Event::getByDate(QDate(2009, 2, 7), 1)) + mEvents(Event::getByDate(QDate(2009, 2, 7), 1)) { createTimeGroups(); } @@ -116,3 +116,11 @@ int EventModel::rowCount (const QModelIndex & parent) const return 0; } + +void EventModel::reload() +{ + mEvents.clear(); + mEvents=Event::getByDate(QDate(2009, 2, 7), 1); + createTimeGroups(); +} + diff --git a/src/model/eventmodel.h b/src/model/eventmodel.h index 9c06db2..10b817a 100644 --- a/src/model/eventmodel.h +++ b/src/model/eventmodel.h @@ -14,6 +14,7 @@ public: QModelIndex parent ( const QModelIndex & index ) const; int columnCount ( const QModelIndex & parent = QModelIndex() ) const; int rowCount ( const QModelIndex & parent = QModelIndex() ) const; + void reload(); // reloads Events from the DB private: struct Group diff --git a/src/schedule.en.xml b/src/schedule.en.xml new file mode 100755 index 0000000..6f2b593 --- /dev/null +++ b/src/schedule.en.xml @@ -0,0 +1,5891 @@ + + + + FOSDEM 2009 + Free and Opensource Software Developers European Meeting + ULB (Campus Solbosch) + Brussels + 2009-02-07 + 2009-02-08 + 2 + 08:00 + 00:15 + + + + + 10:00 + 00:30 + Janson + welcome + Welcome + + Keynotes + Podium + English + FOSDEM Opening Talk + The FOSDEM Opening Talk, including the infamous FOSDEM dance. + + FOSDEM Staff + + + + + + 10:30 + 01:00 + Janson + future + Free. Open. Future? + + Keynotes + Podium + English + Freedom, openness and participation have become a pervasive part of digital +life. 250 million people use Firefox. Wikipedia reaches people in 260 languages. +Whole countries have Linux in their schools. Flickr hosts millions of openly +licenses photos. Apache underpins the Internet. We have moved mountains. + At the same time, the terrain has shifted. Our digital world has moved into the +cloud. And, our window into this world is just as often unhackable phones in our +pocket as it is flexible computers on our desktop. Hundreds of millions of +people take being digital for granted, and rarely stop to think what it means. +The world where free and open source software were born is not the same as the +world they have helped to build. + +It's time to ask: what do freedom, openness and participation look like 10 years +from now? How do we promote these values into the future? Building the open web +and hackability into the world of mobile is part of the answer. Promoting privacy, +portability and user control in the cloud are also critical. But what else? Mark +Surman will reflect on these questions and chat with the FOSDEM crowd. + + Mark Surman + + + + + + 11:30 + 01:00 + Janson + debian + Debian + + Keynotes + Podium + English + Observations about the role that Debian plays in the world of Free +Software, and some lessons learned that may help other Free Software +projects. + + + Bdale Garbee + + + + + + 14:00 + 01:00 + Janson + opensuse + openSUSE + + Distributions + Podium + English + Since this is a distro talk, I will be covering the openSUSE Distro, +the openSUSE Build Service, and how to become involved in the project +and/or use the openSUSE Build Service to create packages for open +source projects for multiple distributions. + + + Joe Brockmeier + + + + + + 15:00 + 01:00 + Janson + fedora + The Fedora Project + + Distributions + Podium + English + The talk will take a look at the current roadmap for the Fedora Project, +from a technical and community-building point of view. The discussion +will focus on the recently-released Fedora 10 as well as the +in-development Fedora 11, as well as other Fedora projects such as +infrastructure, websites, translation, etc. + + + Max Spevack + + + Official website + + + + 16:00 + 01:00 + Janson + + 10 cool things about Exherbo + + Distributions + Podium + English + + This talk will focus on 10 important features that makes it easier for users +and developers alike to work with Exherbo. While the talk will focus on the +current state of Exherbo and the short-term future the ideas being presented +should be equally interesting for other distribution developers and users. + + Bryan Østergaard + + + Official website + + + + + + 14:00 + 01:00 + Chavanne + openamq + OpenAMQ + + Development and Languages + Podium + English + I'll speak about a new messaging protocol called AMQP, and the iMatix +projects that implement this protocol. + AMQP makes it possible to make cheap, fast distributed applications, for pubsub, cloud computing, +telecoms, etc.. I'll explain our OpenAMQ implementation of AMQP, and +also our web-based RESTful messaging project, Zyre, which makes AMQP +work over plain HTTP. This talk is aimed at FOSS developers with +interest in new protocols. AMQP is a good example of how large +businesses are promoting and investing in FOSS today. + + Pieter Hintjens + + + + + + 15:00 + 01:00 + Chavanne + reverse_engineering + Reverse Engineering of Proprietary Protocols, Tools and Techniques + + Development and Languages + Podium + English + This talk is about reverse engineering a proprietary network protocol, +and then creating my own implementation. The talk will cover the tools +used to take binary data apart, capture the data, and techniques I use +for decoding unknown formats. The protocol covered is the RTMP protocol +used by Adobe flash, and this new implementation is part of the Gnash +project. + + + Rob Savoye + + + Gnash Official Website + + + + 16:00 + 01:00 + Chavanne + scala + Scala - A Scalable Language + + Development and Languages + Podium + English + In this talk I'll describe the design principles of the Scala +programming language, which has scalability as its primary design +objective. + Today's software landscape resembles increasingly a tower of Babel: +Systems are built using many different languages, combining +server-side and client-side languages, scripting and systems +programming languages, general and domain specific languages, all +glued together with a hefty amount of XML. The advantage of this +approach is that each individual language can be tailored to a +specific application domain. Its disadvantage is that the necessary +amount of cross-language glue can make applications cumbersome to +write, deploy, and maintain. + +An alternative is offered by scalable languages, which can be used for +many different applications, ranging from small scripts to very large +systems. An important aspect of a scalable language is that it itself +is extensible and malleable. It should be possible to define very +high-level libraries in it, which act in effect as specialized domain +specific languages. The advantages of this approach is that it leads +to more regular system designs, gives better static checking, makes +applications easier to deploy, and increases their reliability. + +In this talk I'll describe the design principles of the Scala +programming language, which has scalability as its primary design +objective. Scala combines lightweight syntax with strong static +checking on a Java-compatible platform. It encourages the embedding of +domain-specific languages as high-level libraries. I discuss how Scala +affects systems design and discuss its suitability for large scale +industrial deployment. + + Martin Odersky + + + + + + + + 13:00 + 01:00 + Ferrer + osi + OSI: Recent Activities and Future Directions + + Open Source Initiative + Podium + English + The Board of Directors of the Open Source Initiative (OSI) will cover recent activities of the organization in this presentation, talk about the adoption of open source throughout the whole world and discuss the future direction of the OSI, such as the introduction of a membership program. + The Open Source Initiative (OSI) is the steward of the Open Source Definition (OSD) and is the community-recognized body for reviewing and approving licenses as OSD-conformant. + +The OSI is actively involved in Open Source community-building and education. OSI Board members frequently travel the world to attend Open Source conferences and events, meet with open source developers and users, and to discuss with executives from the public and private sectors about how Open Source technologies, licenses, and models of development can provide economic and strategic advantages. + + Michael Tiemann + + + + + + 14:15 + 00:15 + Ferrer + the_linux_defenders + The Linux Defenders: Stop the Trolls, Protect Linux, Further Innovation + + Lightning Talks + Lightning-Talk + English + Open Invention Network (OIN), a collaborative enterprise that enables open source innovation and an increasingly vibrant ecosystem around Linux, has unveiled the Linux Defenders program, which is designed to make prior art more readily accessible to patent and trademark office examiners, increase the quality of granted patents and reduce the number of poor quality patents. + + + +Keith Bergelt will talk about how the open source community is leading the charge in market-based patent reform. Its Linux Defenders program offers the Linux and broader open source community a unique opportunity to harness its collaborative passion, intelligence, and ingenuity to ensure Linux’s natural migration to mobile devices and computing. He will also detail how this landmark program will benefit open source innovation by significantly reducing the number of poor quality patents that might otherwise be used by patent trolls or strategics whose behaviors and business models are antithetical to true innovation and are thus threatened by Linux. + + + +The Linux Defenders website is located at http://www.linuxdefenders.org. + Co-sponsored by the Software Freedom Law Center and the Linux Foundation, Linux Defenders is a first-of-its-kind program which aims to reduce future intellectual property concerns about meritless patents for the Linux and open source community. The program is designed to accomplish this by soliciting prior art to enable the rejection of poor quality patent applications; soliciting prior art to enable the invalidation of poor quality issued patents; and soliciting high quality inventions that can be prepared as patent applications or defensive publications. + + Keith Bergelt + + + http://www.linuxdefenders.org/ + + + + 14:30 + 00:15 + Ferrer + small_sister + SmallMail, or how to keep your email private in an era of Data Retention + + Lightning Talks + Lightning-Talk + English + When the European data retention directive becomes law in all member nations governments will store who's e-mailing whom and who's phoning whom. This is bad news for citizens and has a devastating effect journalists and bloggers who need to protect their sources, especially whistleblowers. + +The Small Sister Project created a tool, SmallMail. It adds anonimity to e-mail even when data retention is in effect. So SmallMail delivers e-mail privacy as it was meant to be: you decide what happens with your data. When needed and allowed people can deliver a message totally anonymous. + +The talk highlights the tools and then deals with the technical details of getting from A to B. Privacy and anonymity are complicated, but the tool is not. We build on the strong foundation laid by the Tor Project. The SmallMail engine is technically interesting, but quite easy to understand. In 15 minutes you can learn how simplicity and free software solve the problems posed by complex systems. + The Small Sister Project tries to create a digital environment for all users to have a privacy-friendly system where personal data is properly secured + +So we try to create: + * A toolkit that is very simple to install and acts like a flushot for a computer to add privacy/security + * Sufficient information for people to empower themselves to secure systems and are aware of privacy-issues + * Software that is the missing glue for what already exists and helps us reach our goals + + Peter Roozemaal + + + http://www,smallsister.org + + + + 15:00 + 00:15 + Ferrer + flossmetrics + FLOSSMetrics: providing data about FLOSS development + + Lightning Talks + Lightning-Talk + English + The talk will show the main results of the FLOSSMetrics project. In particular, it will show how to obtain data about the history of software development of more than 2,000 FLOSS projects, which kind of data it is and how it can be used, and some results of using it in a research environment. + FLOSSMetrics is collecting data from the CVS/SVN repos, mailing lists and issue tracking systems of several thousands of FOSS projects, and collecting all of it into a database that is offerered to researchers and others for data mining. See http://melquiades.flossmetrics.org for the data currently been offered. The project will end in August 2009, and more data and more projects are expected in the meantime. + + Jesus M. Gonzalez Barahona + + + http://flossmetrics.org + + + + 15:15 + 00:15 + Ferrer + bazaar + Why you should use Bazaar for maintaining your OSS project + + Lightning Talks + Lightning-Talk + English + This talk will give a quick introduction to Bazaar, the friendly distributed version control system. It will highlight the benefits of using distributed version control over a centralized approach and what features make Bazaar a perfect match for this kind of collaboration. + Bazaar is a distributed version control system that Just Works. While many similar systems require you to adapt to their model of working, Bazaar adapts to the workflows you want to use, and it takes only five minutes to try it out. People have used it to version pretty much anything: single-file projects, your /etc directory and even the thousands of files and revisions in the source code for Launchpad, MySQL and Mailman. + + Lenz Grimmer + + + http://bazaar-vcs.org + + + + 15:30 + 00:15 + Ferrer + caiman_opensolaris_distribution_constructor + Building custom OpenSolaris distributions with the distro constuctor + + Lightning Talks + Lightning-Talk + English + The presentation will give an overview about building your own customized OpenSolaris distribution. The presentation will discuss the new distro constructor being released with OpenSolaris 11.2008 and demonstrate on how to use it. + The Distribution Constructor project is building a set of GUI and command-line tools allowing users to build an install image from a package repository. The distribution constructor tools accept input from the user and process a set of repository packages into one or more media images which can be utilized to install an OpenSolaris distribution. + +The Distribution Constructor package is available in the pkg.opensolaris.org repository as of build 99, its name is SUNWdistro-const. Some basic documentation is available. The OpenSolaris 2008.11 distribution is built using this tool beginning with the build 98 ISO images. + +A future phase of the project will add the ability to generate an installable distribution using an existing installed system as its input, rather than a set of packages in a repository. This would be either an enhancement to, or replacement for, the existing Flash Installation functionality. +Key Requirements and Functionality (2008.11 Release) + + * A command-line interface to run the construction process + * A manifest file format consumed by the constructor + * Modifications to the Target Instantiation module built in Dwarf Caiman and Slim Install to create the file system structure needed for building thedistribution + * Modifications to the Transfer module to support installing a set of IPS packages + * A plug-in interface that the user or other projects can use to perform their image-specific customizations + * Checkpointing interfaces which allow a build to be debugged, and restarted + * A module for constructing a boot archive usable on installable media + * Support for localization of the image produced + * An installable package containing the distro constructor + + Stefan Schneider + + + http://opensolaris.org/os/project/caiman/Constructor/ + + + + 16:00 + 00:15 + Ferrer + apache_felix + Dynamic deployment with Apache Felix + + Lightning Talks + Lightning-Talk + English + The OSGi framework allows you to install, update and delete components without restarting the framework. Together with the deployment admin specification and custom resource processors, you can dynamically deploy both OSGi and non-OSGi applications. The talk will demonstrate how to update OSGi bundles and other resources. + Apache Felix is a community effort to implement the OSGi R4 Service Platform, which includes the OSGi framework and standard services, as well as providing and supporting other interesting OSGi-related technologies. The ultimate goal is to provide a completely compliant implementation of the OSGi framework and standard services and to support a community around this technology. + + Marcel Offermans + + + http://felix.apache.org/ + + + + 16:15 + 00:15 + Ferrer + opsview + Opsview: Network monitoring made easy + + Lightning Talks + Lightning-Talk + English + The past, present and future of the project. This talk will coincide with Opsview v3.0 release scheduled for early February 2009. + Opsview is network monitoring software that significantly extends the functionality of Nagios and integrates tools such as MRTG, NMIS, RANCID and Net-SNMP. Opsview is developed using Catalyst web framework and MySQL database. + + James Peel + + + http://www.opsview.org + + + + 16:30 + 00:15 + Ferrer + marionnet + Marionnet: networking for dummies + + Lightning Talks + Lightning-Talk + English + Overview of Marionnet, advantages towards different solutions, how it proved to be a necessary tool, how teaching networking has become less painful. + Marionnet is a virtual network laboratory: it allows users to define, configure and run complex computer networks without any need for physical setup. Only a single, possibly even non-networked GNU/Linux host machine is required to simulate a whole Ethernet network complete with computers, routers, hubs, switches, cables, and more. +Support is also provided for integrating the virtual network with the physical host network. + +As Marionnet is meant to be used also by inexperienced people, it features a very intuitive graphical user interface. Marionnet is written in the mostly functional language OCaml and depends on User Mode Linux and VDE for the simulation part. + + Marco Stronati + + + http://www.marionnet.org/ + + + + 17:00 + 00:15 + Ferrer + lxde + LXDE - Lighter, Faster, Less Ressource Hungry + + Lightning Talks + Lightning-Talk + English + The talk will present +- the background of LXDE +- its developer team and community in Taiwan, Asia and worldwide +- show the different LXDE components +- offer insights into design principles and ideas of the developer team for gtk+ +- show an example how to make a package of LXDE +- show how to translate a LXDE component +- show ways to join the LXDE team and community + "Lightweight X11 Desktop Environment", is an extremely faster, +performing and energy saving desktop environment started by Taiwanese +hacker Hong Jen Yee aka PCMAN in 2005. Today it is maintained by an international +community of developers. It comes with a beautiful interface, +multi-language support, standard keyboard short cuts and additional +features like tabbed file browsing. LXDE uses less CPU and less RAM. +It is especially designed for computers with low hardware +specifications like netbooks, mobile internet devices (MIDs) or older +computers. LXDE can be installed with distributions like Ubuntu or +Debian. Applications running on these systems will run with LXDE. The +source code of LXDE is licensed partly under the terms of the General +Public License and partly under the LGPL. LXDE has recently been +included as a standard desktop in Fedora and Mandriva and will also be +offered in the upcoming Debian release. + + Mario Behling + + + http://lxde.org + + + + 17:15 + 00:15 + Ferrer + camelot + Camelot : building desktop apps at warp speed + + Lightning Talks + Lightning-Talk + English + Learn how to create a desktop application from scratch in 15 minutes, the same way you are used to create Django applications. We will design a database model, and create the database and the graphical interface from it. Then we will demonstrate how to adapt this application to suit your particular needs. + A python QT GUI framework on top of Elixir / Sqlalchemy inspired by the Django admin interface. Start building desktop applications at warp speed, simply by adding some additional information to you Elixir model. + + Erik Janssens + + + http://www.conceptive.be/projects/camelot/ + + + + 17:30 + 00:15 + Ferrer + hackable1 + Quick start into mobile development for desktop developers + + Lightning Talks + Lightning-Talk + English + There is still a void for open source developers having their own platform for mobile development. The current choice is between Google, Nokia and Intel. Hackable1 intends to close this gap and offers desktop developers a quick start in minutes. No longer "fighting" with scratchbox or Openembedded: mobile development like on your desktop and with similar speed. If you have been developing for the desktop you will feel at home in no time. Hackable1 is based on Debian thus brings the power of 1500 DDs with it. It implements the GNOME Mobile stack and comes with a basic suite of phone applications: a dialer, a SMS and contacts application. + +Mobile devices are becoming ubiquitous and hackable1 is intended to bridge from desktop development to embedded development. It is an area where Open Source has a chance to be from the start ahead of the closed source competitors. We just need to do it! + hackable:1 is a Debian based community distribution for hackable devices implementing the GNOME Mobile stack. Currently it runs on the Neo Freerunner from Openmoko but other devices will be supported soon too. + +As I have been developing myself on and for mobile platforms for several years now the main goal was to bring mobile development to all open source developers in minutes: mobile devices are the next "revolution" in computing and we should not leave the field to Google and Co. + +Hackable:1 comes with the full development environment, can be installed in minutes and provides an environment like on your desktop and allows for similar speeds. + +Bearstech (the french distributor of the openmoko phones) supports the development but a key point is community involvement - no decisions behind closed doors, everything is done in public on IRC and mailing lists. + + Marcus Bauer + + + http://www.hackable1.org/ + + + + 18:00 + 00:15 + Ferrer + bug + An Introduction to BUG + + Lightning Talks + Lightning-Talk + English + This lightning talk will cover the basics of the BUG platform and show a brief working demo. We will show aspects of the Linux OS running and focus on the OSGi service layer and how Java applications can easily be written to work with custom hardware devices. + BUG is an open source hardware and software gadget creation platform. There are no proprietary or closed software components running on the BUG CPU. New devices can be created by snapping a variety of hardware modules (camera, motion sensor, GPS, LCD Touchscreen, WiFi, 3g, etc.) onto a small Linux base computer to make things like GPS enabled motion detectors, alarms, crowdsourced input devices, and wireless weather stations. The hardware schematics for the device are GPL and the computer runs Linux, FOSS Java, and OSGi to enable a dynamic service runtime. +An SDK is available that's based on Eclipse and we have a application collaboration website based on Ruby on Rails. + + Ken Gilmer + + + http://www.buglabs.net + + + + 18:15 + 00:15 + Ferrer + usbpicprog + Introducing usbpicprog, an affordable usb programmer for PIC-chips. + + Lightning Talks + Lightning-Talk + English + We'll introduce for the first time to the public usbpicprog, a brand new programmer for the PIC microcontrollers by Microchip. The different stages of development, a basic overview of how it works and comparison to alternatives will be presented. + usbpicprog, a brand new programmer for the PIC microcontrollers by Microchip. Software works on multiple OSses using wxWidgets. It's the first cheap, small, usb-supported programmer, with active development. + + Frans Schreuder + + + http://www.usbpicprog.org + + + + 18:30 + 00:15 + Ferrer + gemvid + Animals monitoring with Gemvid + + Lightning Talks + Lightning-Talk + English + In this talk, we will first introduce Gemvid, a system that allows the monitoring of animals in their own environment for an extended period of time. Then, we'll show how we demonstrated the sensitivity, reproducibility and stability of the system. Finally, we'll highlight some issues and interesting points for the future of Gemvid. + Gemvid is a monitoring system that quantifies overall free movements of rodents without any markers, using a commercially available CCTV and a motion detection software developed on a GNU/Linux-operating computer. The application is based on software modules that allow the system to be used in a high-throughput workflow. + + Jean-Etienne Poirrier + + + http://www.bioinformatics.org/gemvid/ + + + + + + 13:00 + 01:00 + Lameere + emb_openwrt_uci + OpenWrt: UCI and beyond + + Embedded + Podium + English + Most embedded routers and similar devices have traditionally limited themselves to a very static system, typically providing the web interface as the only means of doing any configuration. + +OpenWrt intends to solve this problem in a generic way by providing a structured, extensible and modular configuration system, which does not limit itself to being the backend of a web interface. + + + John Crispin + Felix Fietkau + + + + + + 14:00 + 01:00 + Lameere + emb_wt_toolkit + Wt, a C++ web toolkit, for rich web interfaces to embedded systems + + Embedded + Podium + English + Pieter presents [[http://www.webtoolkit.eu/wt Wt], an open source web toolkit that brings state-of-the-art cross-browser, AJAX-enabled web application development to C++ programmers who have little or no experience in web technologies. + A web interface to an embedded system provides many benefits, such as remote control without software installation, and comfortable device operation and configuration without the constraints and the cost of an awkward user interface due to limited space on the device itself. + + +At the same time, web interfaces are becoming the preferred choice for application development of various types, driven by rapid advances in web browser technology, (wireless) network availability, and low deployment costs. + +[http://www.webtoolkit.eu/wt Wt] is an open source web toolkit that brings state-of-the-art cross-browser, AJAX-enabled web application development to C++ programmers who have little or no experience in web technologies. We present some of its features and show how it resembles typical desktop GUI toolkits from a programmer point of view. Because of its high performance, it is popular for large deployments on Internet and intranet servers down to small deployments on embedded systems. We discuss its suitability for embedded systems compared to alternative approaches, and demonstrate some capabilities using a 200MHz ARM device. + + Pieter Libin + + + Wt website + + + + 15:00 + 01:00 + Lameere + emb_voltage_regulator + Dynamic voltage and current regulator interface for the Linux kernel + + Embedded + Podium + English + Every uA is sacred: A dynamic voltage and current regulator interface for the Linux kernel + The Linux kernel voltage and current regulator subsystem is designed to provide a standard kernel interface to device drivers and board level code in order to control system voltage and current regulators. The subsystem is designed to allow systems to dynamically control their regulator power output in order to save system power and prolong battery life. + +This talk will describe the regulator subsystem and discuss how the subsystem can be used to reduce dynamic and static system power consumption. + + Liam Girdwood + + + + + + 16:00 + 01:00 + Lameere + emb_bug + Hacking with modular hardware: the BUG + + Embedded + Podium + English + [http://buglabs.net BUG] is a device that takes the concept of a standard PC, turns it inside out, and makes it fit in your hand. + +Using open source hardware and software, applications can be created with previously non-existent device configurations. + This talk will discuss the BUG platform in general, and our use of OpenEmbedded and Poky Linux. No proprietary or commercial tools, drivers, or applications are used. If there is interest we may also get into some application development and show some existing apps. + +More information on BUG is available at [http://buglabs.net]. + +Also giving away two BUGS in the devroom. + + Ken Gilmer + + + + + + 17:00 + 01:30 + Lameere + emb_ptxdist + Building Embedded Linux Systems with PTXdist + + Embedded + Podium + English + PTXdist is a "make your own distribution" build system, based on Bash, Kconfig and GNU Make. + Dealing with embedded systems is a complicated thing: you have to take care of toolchains, cross compiling and, in industrial projects, most of all: reproducability and testability. + +PTXdist is a "make your own distribution" build system, based on Bash, Kconfig and GNU Make. Making a root filesystem for a target box can be as easy as 'ptxdist go', but the focus is on "executable documentation", not distribution. We care about upstream of the managed softare, separate our patches and try to be part of the world domination project by finding bugs in other people's open source software. + + Robert Schwebel + + + + + + + + 13:15 + 00:15 + H.1301 + kde_welcome + Welcome to the KDE devroom + + KDE + Other + English + Welcome to the KDE developer room at FOSDEM 2009. + + + Bart Coppens + + + + + + 13:30 + 00:45 + H.1301 + kde_42 + KDE 42 and you + + KDE + Podium + English + The answer to life, the universe and everything. We bring you KDE "the answer" 42. After a rather generic introduction to the KDE community and what we do, I present the new features in the latest release of the KDE software suite. What's done? What's not? And what will the future bring? If you want to know the answers to these questions, join this talk. + + + Jos Poortvliet + + + + + + 14:15 + 00:45 + H.1301 + kde_amarok2 + Amarok 2 - rediscover music + + KDE + Podium + English + Verson 2.0 was a major step for the Amarok project: new look and tight integration with web services. But this is only the beginning of a new era. + This talk shows you the current state of Amarok 2.0 and what to expect from the wonderful world of 2.1. You wanna customize your Amarok? Learn how you can use the new extremely powerful JavaScript interface to extend Amarok with new internet services and tools. The scripting interface gives you access to the entire Qt API; it is the same API we use to write Amarok itself. + + Sven Krohlas + Ian Monroe + Lydia Pintscher + + + + + + 15:00 + 00:45 + H.1301 + kde_koffice_2_0 + KOffice 2.0: KOffice coming to KDE4 + + KDE + Podium + English + KOffice is in the final stages of creating it's 2.0 version, which is based on Qt4 and KDE4 technologies. These new technologies have opened many doors, such as being able to run KOffice on more diverse systems than was possible before, such as OS X, and the N810. + Marijn will show some of the new features KOffice has acquired, and how all the components in KOffice interact. + + Marijn Kruisselbrink + + + + + + 15:45 + 00:30 + H.1301 + kde_group_photo + KDE Group Photo + + KDE + Other + English + We'll have a group picture with the KDE people, after which we'll take a group picture with the KDE and GNOME people. + + + Bart Coppens + + + + + + 16:15 + 00:45 + H.1301 + kde_sharing_the_burden + Sharing the burden - doubling the joy + + KDE + Podium + English + Why is the community important for Qt Software and other companies and what can the community gain from working with those? This talk provides insights about common goals and the benefits for both sides. + + + Alexandra Leisse + + + + + + 17:00 + 00:45 + H.1301 + kde_fun_with_qt + Programming is fun with Qt + + KDE + Podium + English + Want to become a Qt/KDE developer? This talk is an introduction to Qt and KDE application development. It will show the main features of Qt, and explain the Qt way of coding, with useful hints. + + + Olivier Goffart + + + + + + 18:30 + 00:30 + H.1301 + kde_opensolaris + KDE on OpenSolaris + + KDE + Podium + English + This talk covers the progress the KDE community has made together with Sun Microsystems. + It details on how to get a project as large as KDE into OpenSolaris. + +What are the issues? What is a repository? Can anyone contribute to repository code? How can someone contribute? What work needsto be done to get on the opensolaris.com distrubution DVD? + + Gerard van den Berg + + + + + + + + 13:00 + 00:30 + UA2.114 + pg_bsd_welcome + Welcome to the PostgreSQL and *BSD devroom + + BSD+PostgreSQL + Podium + English + Keynote and welcome to the PostgreSQL and *BSD developer room at FOSDEM 2009. + + + Marc Balmer + Robert Watson + Magnus Hagander + Andreas Scherbaum + + + + + + 13:30 + 00:30 + UA2.114 + pg_8_4 + What's coming in PostgreSQL 8.4 ? + + BSD+PostgreSQL + Podium + English + + + + Magnus Hagander + + + + + + 14:00 + 01:00 + UA2.114 + pg_replication + Replication, Replication, Replication + + BSD+PostgreSQL + Podium + English + + + + Simon Riggs + + + + + + 15:00 + 01:00 + UA2.114 + bsd_utf8 + UTF-8 support for syscons, new TTY layer + + BSD+PostgreSQL + Podium + English + During my internship for my B.ASc. degree, I was sponsored by a Dutch IT firm to improve the design of the TTY layer. + After I committed this work to the source tree back in August, I moved my interest to the syscons driver. I'm currently working on adding support for Unicode font rendering. I will discuss the design of the new TTY layer, but also the changes I am planning to make to syscons. + + Ed Schouten + + + + + + 16:00 + 01:00 + UA2.114 + bsd_olap_windowing + OLAP/Windowing functions + + BSD+PostgreSQL + Podium + English + + + + David Fetter + + + + + + 17:00 + 01:00 + UA2.114 + bsd_porting_freebsd + Porting applications in FreeBSD + + BSD+PostgreSQL + Podium + English + + + + Rodrigo Osorio + + + + + + 18:00 + 01:00 + UA2.114 + pg_clarify_rumours + Clarify technical rumours about PostgreSQL + + BSD+PostgreSQL + Podium + English + + + + Susanne Ebrecht + + + + + + + + 13:15 + 00:15 + H.1302 + gnome_welcome + Welcome to the GNOME devroom + + GNOME + Other + English + Welcome to the GNOME developer room at FOSDEM 2009. + + + Christophe Fergeau + + + + + + 13:30 + 00:45 + H.1302 + gnome_people_framework + The People Framework + + GNOME + Podium + English + The People framework provides an unified way for applications to access and gather contact information from disconnected sources (local address-book, social network, web service, mobile phone...). It's been presented during last GUADEC in Istanbul and we would like to update the community on progress made, presenting demos such as experimental integration within Empathy. + + + Johann Prieur + Ali Sabil + + + + + + 14:15 + 00:45 + H.1302 + gnome_hynerian + The Hynerian Empire + + GNOME + Podium + English + [http://live.gnome.org/Rygel Rygel] is an implementation of the UPnP MediaServer V 2.0 specification that is specifically designed for GNOME (Mobile). It is based on GUPnP and is written (mostly) in Vala language. + Zeeshan will start the presentation with information on the past, present and future of Rygel project. + +He will then introduce the plugin API with the help of a Sample plugin, followed by a demo and Q&A session in the end. + + Zeeshan Ali + + + http://live.gnome.org/Rygel + + + + 15:00 + 00:45 + H.1302 + gnome_sugar_platform + The Sugar platform + + GNOME + Podium + English + This session will consist of a presentation of the [http://sugarlabs.org/go/Supported_systems Sugar platform], the [http://sugarlabs.org/ SugarLabs organization], its relationship with GNOME Mobile and points that might interest mainstream GNOME development. + + + Tomeu Vizoso + + + + + + 15:45 + 00:30 + H.1302 + gnome_group_pic + Group Picture + + GNOME + Podium + English + Group picture of GNOME developers + + + Christophe Fergeau + + + + + + 16:15 + 00:45 + H.1302 + gnome_geolocation + Bringing geolocation into GNOME + + GNOME + Podium + English + This talk will be about some of the efforts to bring geolocation into Gnome. + In particular, it'll focus on the Gtk/Clutter widget to display maps: http://blog.pierlux.com/projects/libchamplain/ and geoclue. + +It'll go on with examples of where they are already used in Gnome apps (such as the EOG plugin and Empathy (in a feature to be released soon)). + + Pierre-Luc Beaudoin + + + + + + 17:00 + 00:45 + H.1302 + gnome_nemiver + Nemiver, a GNOME debugger + + GNOME + Podium + English + This talk will introduce [http://projects.gnome.org/nemiver/ Nemiver], present its history, features and architecture. + The main objective of Nemiver is to provide a simple tool that allows developers to quickly and easily debug usual problems +in their applications without necessarily having to know about command line debuggers arcanes. + + Dodji Seketeli + + + Nemiver project page + + + + 17:45 + 00:45 + H.1302 + gnome_tracker + Tracker + + GNOME + Podium + English + tbd. + + + Philip Van Hoof + + + + + + + + 13:15 + 00:45 + H.1308 + moz_europe + Mozilla Europe + + Mozilla + Podium + English + General Introduction followed by an update on the work of Mozilla in Europe. + + + Tristan Nitot + + + + + + 14:00 + 00:45 + H.1308 + moz_foundation + Mozilla Foundation + + Mozilla + Podium + English + Foundation update, programs, goals, etc. + + + Gervase Markham + + + + + + 14:45 + 00:30 + H.1308 + moz_univ + Mozilla and Universities + + Mozilla + Podium + English + Lightning talk about MAOW Madrid organized jointly with Madrid University. + + + Gregorio Robles + Pascal Chevrel + + + + + + 15:15 + 00:45 + H.1308 + moz_after_ff_3_1 + What's next after Firefox 3.1 + + Mozilla + Podium + English + Firefox 3.2, Extensions 2.0, Labs, and more + + + Mike Connor + + + + + + 16:00 + 00:45 + H.1308 + moz_community_sites + Mozilla Community Sites Project + + Mozilla + Podium + English + + + + Zbigniew Braniecki + + + + + + 16:45 + 00:45 + H.1308 + moz_community_design + Community and Design + + Mozilla + Podium + English + "Open Source Design, Mozilla and You" - A discussion about what open source design is, how Mozilla uses it to help spread Firefox, and the process of building up a worldwide design community (and how you can help!). + + + John Slater + + + + + + + + 14:00 + 01:00 + H.1309 + xorg_randr_1_3 + RandR 1.3: New Features in a Nutshell + + X.org + Podium + English + RandR 1.3 presents - amongst other things - transformations, panning, and standardized properties. This talk will show how to use these features and how they should influence tools and applications. + + + Matthias Hopf + + + + + + 15:00 + 01:00 + H.1309 + xorg_rebuilt_desktop + The Rebuilt Linux Desktop + + X.org + Podium + English + Graphics drivers under Linux have seen the most significant changes since X was first ported in the last year. The X server can now run as an unprivileged process; kernel panic messages can be displayed while graphics are active; graphics applications can use virtual memory to store GPU data. + In the kernel, these changes include the new Graphics Execution Manager (GEM) and kernel-based video mode setting (KMS). Beyond the kernel, the second version of the Direct Rendering Interface X extension (DRI2) unifies the X and OpenGL image storage space. + +This talk will describe the kernel and user-space changes along with the other kernel changes necessary to support the new code. Finally, the audience will be encouraged to participate in a discussion about future plans in this area. + + Keith Packard + + + + + + 16:00 + 01:00 + H.1309 + xorg_nouveau + Nouveau Status Update + + X.org + Podium + English + Since last FOSDEM, Nouveau has been making steady progress. This talk will detail some of the changes made since last year and present the newest features. Throughout this talk, I will also introduce a number of "did you know ?" slides about the project and Nvidia hardware's inner workings. + + + Stéphane Marchesin + + + + + + 17:00 + 01:00 + H.1309 + xorg_intel_graphics + Intel's graphics projects for the coming year. + + X.org + Podium + English + While significant progress has been made in fixing the Linux graphics architecture, there are still some sharp edges. This talk will cover Intel's plans for the coming year, including DRI2 vblank support, DRI2 page flipping, rebuilding Mesa's compiler infrastructure, pulling ideas from Gallium into core Mesa, and more. + + + Eric Anholt + + + + + + + + 13:00 + 01:00 + H.2213 + fedora_rpm_packaging + RPM packaging + + Fedora+CentOS + Podium + English + + + + Christophe Wickert + + + + + + 14:00 + 01:00 + H.2213 + fedora_fel + Fedora Electronic Lab + + Fedora+CentOS + Podium + English + [http://chitlesh.fedorapeople.org/FEL/ Fedora's Electronic Laboratory] is dedicated to supporting the innovation and development of opensource EDA community along with a history of experience in multiple applications. + Fedora Electronic Laboratory provides a complete electronic laboratory setup with reliable open source design tools in order to meet one's requirements to keep one in pace with current technological race. Project management tools such as spreadsheet, gantt diagram, mindmapping tools.... are also included. + + Chitlesh Goorah + + + + + + 15:00 + 01:00 + H.2213 + fedora_future_fr + Future Fedora-fr challenges + + Fedora+CentOS + Podium + English + Fedora organization in French speaking country. + Fedora-fr is a non profit organization mainly active in France. Now that the organization is well organized and going to have its head renewed for the first time at the beginning of this year, Fedora-fr has to meet other French speaking Fedora addicts in foreign countries, and see how it can help them buzz about Fedora and organise events in their own areas. + + Thomas Canniot + + + + + + 16:00 + 01:00 + H.2213 + fedora_func_symbolic + Func, Symbolic: Present and future + + Fedora+CentOS + Podium + English + Theory and demo. In the first part will be a short explanation about what are func and symbolic, and (in particular for symbolic) what are future plans. In the second part will be how set-up func and symbolic and hot they work. + + + Francesco Crippa + Luca Foppiano + + + Func project page + + + + 17:00 + 01:00 + H.2213 + fedora_sugar + Sugar: what is and why Fedora might care + + Fedora+CentOS + Podium + English + Introduction to [http://sugarlabs.org/ Sugar and SugarLabs], strategic importance it might have for Fedora and GNOME, and synergy with other projects Fedora cares about. + + + Greg DeKoenigsberg + Tomeu Vizoso + + + + + + 18:00 + 01:00 + H.2213 + fedora_augeas + Augeas + + Fedora+CentOS + Podium + English + [http://augeas.net/ Augeas] is a configuration editing tool. It parses configuration files in their native formats and transforms them into a tree. Configuration changes are made by manipulating this tree and saving it back into native config files. + One of the many things that makes Linux configuration management the minefield we all love is the lack of a local configuration API. The main culprit for this situation, that configuration data is generally stored in text files in a wide variety of formats, is both an important part of the Linux culture and valuable when humans need to make configuration changes manually. AUGEAS provides a local configuration API that presents configuration data as a tree. The tree is backed directly by the various config files as they exist today; modifications to the tree correspond directly to changes in the underlying files. + +AUGEAS takes great care to preserve comments and other formatting details across editing operations. The transformation from files into the tree and back is controlled by a description of the file's format, consisting of regular expressions and instructions on how to map matches into the tree. AUGEAS currently can be used through a command line tool, the C API, and from Ruby, Python, and OCaml. It also comes with descriptions for a good number of common Linux config files that can be edited "out-of-the-box." + + Raphaël Pinson + + + Augeas + + + + + + 13:00 + 00:15 + H.2214 + opensuse_welcome + Welcome to the openSUSE devroom + + openSUSE + Other + English + Welcome to the openSUSE developer room at FOSDEM 2009. + + + Martin Lasarsch + + + + + + 13:15 + 00:30 + H.2214 + opensuse_obs_trust + Who can you trust ? + + openSUSE + Podium + English + The [http://en.opensuse.org/Build_Service openSUSE build service (obs)] offers everyone the opportunity to build packages for many Linux distributions with relatively little effort. Hence the amount of available versions and variants per package is comparatively high. + Therefore we need a powerful but also simple instrument to evaluate these packages, which are immediately available at the openSUSE software portal. A first approach will be an individual rating of developers working with obs. + + Marko Jung + + + + + + 13:45 + 00:45 + H.2214 + opensuse_community + openSUSE Community + + openSUSE + Podium + English + This talk gives you an overview about the openSUSE community. What we have, what we need. It also covers some topics from the mailinglists, like Weekly-news i18n, plans for language specific news.o.o, and why i18n is important for us. + The Talk will also have short overview about the upcoming openSUSE spokesperson program. + +Dinar will also talk about the Contrib repository. + + Dinar Valeev + + + + + + 14:30 + 00:15 + H.2214 + opensuse_build_service_overview + openSUSE Build Service overview + + openSUSE + Podium + English + Introduction into the [http://build.opensuse.org openSUSE Build Service], why it was created, what are the goals it wants to achieve and a brief overview about its components. + + + Adrian Schroeter + + + + + + 14:45 + 00:45 + H.2214 + opensuse_obs_collaboration + Collaboration in the openSUSE Build Service + + openSUSE + Podium + English + This talk explains how to use the Collaboration features of the openSUSE Build Service. Its based on two openSUSE repositories that use them: openSUSE:Factory:Contrib and openSUSE:Factory. + + + Hendrik Vogelsang + + + openSUSE Contrib + + + + 15:30 + 00:45 + H.2214 + opensuse_obs_crossdev + Putting Cross Development Support into OBS + + openSUSE + Podium + English + The Cross Development in OBS feature is now integrated into normal OBS development. It allows you to build, test, run applications for other processor architectures using a combination of emulators and crossbuild. + Emulators are already a normal part of OBS. An analysis has been made of the different ways to implement Cross Build to result in better interoperability with existing linux distributions for other architectures. The goal was to implement Cross Development as an orthogonal feature, and to glueless implement openSUSE, Fedora, Debian, Ubuntu for embedded architektures like ARM, sh4, mips in the same way as is done already by OBS for x86 and powerpc architectures. + + Martin Mohring + + + openSUSE Build Service + + + + 16:15 + 00:45 + H.2214 + opensuse_create_your_own + Create your own Linux Distribution + + openSUSE + Podium + English + This talk will explain briefly how you create your own openSUSE based Linux distribution installation media and Live media with the openSUSE Build Service. + +It includes a brief introduction to kiwi-instsource (which was presented as an outlook last year) and the way we define products; how the buildservice creates an installation source from that. + = Gory details: +* kiwi in general (few minutes) +* kiwi-instsource: purpose, implementation, xml extension, metapackages (10-15 minutes) +* product definition file (5-10 minutes) +* plugging together: product converter, necessary permission, vision of the release process, target groups etc. (10-15 minutes) + += Demo: +Jan-Christoph will demonstrate the following: +* setup your own project +* how to get this marked as product project +* how to set base repos +* how to define a product (package groups) +* build a product: instsource(ftp repo, dvd) and live medium + + Jan-Christoph Bornschlegel + + + + + + 17:00 + 00:45 + H.2214 + opensuse_studio + Creating customized openSUSE versions with SUSE Studio + + openSUSE + Podium + English + SUSE Studio is a new web application to build openSUSE based appliances. It provides an easy to use interface to quickly create images for live CDs, +bootable USB sticks and VMware. It's also possible to conveniently customize software selection, configuration and theming of the appliances. Third party software may be integrated through coupling with the openSUSE Build Service. + Studio's testdrive feature allows users to run the appliance via the web interface for testing and further configuration. + +We will present the concepts behind SUSE Studio and demonstrate how to easily create a customized openSUSE version in five minutes. + + Daniel Bornkessel + Cornelius Schumacher + + + SUSE Studio + + + + 17:45 + 00:30 + H.2214 + opensuse_legal + Legal aspects of distribution development + + openSUSE + Podium + English + Every community distributions have to deal with legal issues. The talk shows what kind of pitfalls we have in our daily distribution work and how to solve them. This will only work with the upstream developers of the projects and most of the work will be done for every distribution again. + + + Jürgen Weigert + + + + + + 18:15 + 00:45 + H.2214 + opensuse_apport + Apport - Automatic Application Crash Reporting for openSUSE + + openSUSE + Podium + English + Apport for automatic crash reporting on openSUSE. + Many application crashes remain unreported due to different reasons: +* the crash is silently ignored since no core file is produced +* existing crash handlers like bug-buddy or Dr. Konqi are desktop application specific +* the crash is not easy to reproduce +* the location to report the crash is unknown + +Apport gives you an easy way to solve these problems. + + Jan Blunck + + + Apport website + + + + + + 14:00 + 02:00 + AW1.105 + osi_public_meeting + Public Meeting of the Open Source Initiative (OSI) + + Open Source Initiative + Meeting + English + The Open Source Initiative (OSI) will hold its public meeting at FOSDEM. + This meeting is open to everyone and the agenda is very flexible. We can discuss recent activities of the OSI, the future +direction of OSI, and other topics of importance to the open source community. + + Michael Tiemann + Martin Michlmayr + + + + + + 17:00 + 02:00 + AW1.105 + moz_xul + Building XUL Communities + + Mozilla + Workshop + English + Open discussion with [http://www.mozilla.org/projects/xul/ XUL] communities. + + + Paul Rouget + + + + + + + + + + 13:00 + 01:00 + AW1.117 + goe_gnustep_theming + Theming in GNUstep + + GNUstep+OpenGroupware+Etoile + Podium + English + A Presentation of the GNUstep theming API and the 'Thematic' application intended for building theme bundles. + This discusses design philosophy (what theming is supposed to accomplish), technical design (an overview of the implementation) and state of development. + + Richard Frith-Macdonald + + + + + + 14:00 + 01:00 + AW1.117 + geo_scalable_ogo + ScalableOGo + + GNUstep+OpenGroupware+Etoile + Podium + English + This presentation presents ScalableOGo, a standards compliant free software groupware server. + Scalable OGo (SOGo) is a free groupware server focused on scalability instead of depth in functionality. The web interface uses human readable URLs and can be accessed according to REST web service ideas. + +The server stores data in the iCalendar/vCard formats and has broad support for theCalDAV/GroupDAV protocols. + + Helge Heß + + + + + + 15:00 + 01:00 + AW1.117 + goe_objc_gnustep + Cross-Platform Objective-C Development using GNUstep + + GNUstep+OpenGroupware+Etoile + Podium + English + This presentation explores the free tools that the GNUstep project provides for writing cross-platform Objective-C software. + Objective-C is most known for being the language of choice of Apple and being the "native" language for Apple Mac OS X and iPhone development. Unfortunately, while Objective-C is a fantastic language, the development tools provided by Apple are designed to lock developers into a closed Apple-only environment. + +GNUstep provides an alternative, free implementation of the OpenStep specification (the core Objective-C libraries), largely compatible with the Apple Mac OS X Cocoa implementation, and a number of tools that allow Objective-C software +to be developed and easily distributed across a number of platforms, including GNU/Linux, *BSD, Apple Mac OS X and Microsoft Windows. + + Nicola Pero + + + + + + 16:00 + 01:00 + AW1.117 + geo_ws_objc + Web Services in Objective-C + + GNUstep+OpenGroupware+Etoile + Podium + English + An overview of web services and a free software implementation to make them easy Objective-C programmers (GNUstep and MacOS-X/Cocoa). + No need to resort to Java or C# frameworks now that we can use web services directly from a language we love. + + Riccardo Mottola + Richard Frith-Macdonald + + + + + + 17:00 + 01:00 + AW1.117 + geo_etoile + Etoilé + + GNUstep+OpenGroupware+Etoile + Podium + English + [http://etoileos.com/etoile/ Etoile] is a Desktop Environment for Unix based on the GNUstep frameworks. +It focuses on the notions of modularity and small components, collaboration, persistence and flexibility. + In this talk I will present an overview of the project: its goals, concepts, and its current state. + + Nicolas Roard + + + + + + + + 13:00 + 01:00 + AW1.120 + jabber_xmpp_101 + XMPP 101: A Fast-Paced Introduction to XMPP Technologies + + Jabber+XMPP + Podium + English + + + + Remko Tronçon + Peter Saint-Andre + + + + + + 14:00 + 00:30 + AW1.120 + jabber_pubsub_web + PubSub and the Web + + Jabber+XMPP + Podium + English + + + + Nathan Fritz + + + + + + 14:30 + 00:30 + AW1.120 + jabber_web_integration + Integrating XMPP into Web Technologies + + Jabber+XMPP + Podium + English + + + + Jack Moffitt + + + + + + 15:00 + 00:30 + AW1.120 + jabber_geoloc + Geolocation + + Jabber+XMPP + Podium + English + + + + Simon Tennant + + + + + + 15:30 + 00:30 + AW1.120 + jabber_deploy_jingle + Deploying Jingle + + Jabber+XMPP + Podium + English + + + + Diana Cionoiu + + + + + + 16:00 + 00:30 + AW1.120 + jabber_media_nets + Personal Media Networks + + Jabber+XMPP + Podium + English + + + + Dirk Meyer + + + + + + 16:30 + 00:30 + AW1.120 + jabber_large_scale + Large-Scale XMPP Deployments + + Jabber+XMPP + Podium + English + + + + Florian Jensen + + + + + + 17:00 + 00:30 + AW1.120 + jabber_real_life + XMPP in Real Life + + Jabber+XMPP + Podium + English + XMPP in real life: attacks, bad behaviour and how to cope with them. + + + Mickaël Rémond + + + + + + 17:30 + 00:30 + AW1.120 + jabber_flow + Presenting Information Flow in Deployed XMPP Clients + + Jabber+XMPP + Podium + English + + + + Dave Cridland + + + + + + 18:00 + 01:00 + AW1.120 + jabber_lightning_talks + Lightning Talks! + + Jabber+XMPP + Podium + English + BoFs, lightning talks around Jabber/XMPP. + + + Peter Saint-Andre + + + + + + + + 13:00 + 01:00 + AW1.121 + debian_video_team + Outside broadcast on a budget - the DebConf video team and DVswitch + + Debian + Podium + English + We discuss the provisions of video coverage of [http://www.debconf.org/ DebConf] and Debian mini-conferences, starting in 2005. In particular, we describe the development of supporting software from simple scripts to a software video mixer and database of recordings with a web front-end. + + + Ben Hutchings + Holger Levsen + + + DVswitch + + + + 14:00 + 01:00 + AW1.121 + debian_ultimate_database + Ultimate Debian Database: datamining Debian made easy! + + Debian + Podium + English + Ultimate Debian Database (UDD) gathers a lot of data about various aspects of Debian in an SQL database. It allows users to easily access and combine all this data. + We will describe the current status of UDD, explain how you can make use of it, and give some examples of cool stuff that you can already learn about Debian using it and ways it could be used to improve Quality Assurance in Debian + + Stefano Zacchiroli + Lucas Nussbaum + + + + + + 15:00 + 01:00 + AW1.121 + debian_data_export + Introducing DDE, Debian Data Export + + Debian + Podium + English + DDE (Debian Data Export) is a simple interface to remotely access Debian information. + It is designed to be simple to query, and to back the implementation of nice things such as package name autocompletion on all input fields in Debian web pages, or to make more data easily available to Debian utilities and package managers. + +On top of all that, it is a RESTful Web 2.0 middleware designed to enable AJAX mashups. What more can you ask? Come and have a look. + + Enrico Zini + + + + + + 16:00 + 01:00 + AW1.121 + debian_openmoko + The Debian status quo on the Openmoko Neo Freerunner + + Debian + Podium + English + Because Debian calls itself "the universal operating system", it was inevitable that it would have come to the first F/LOSS-friendly mobile phone, the Openmoko Neo FreeRunner. + Debian on the Openmoko FreeRunner is not a new port nor a new distribution, but instead a different underlying system for the various Openmoko distributions (originally based on OpenEmbedded). At the moment the Debian FreeSmartphone.Org team has focused its works mainly on the FreeSmartphone.Org stack, which is intended not only for the Openmoko devices, but as a general stack for all mobile phones. + + Luca Capello + + + + + + 17:00 + 00:30 + AW1.121 + debian_nas + Running Debian on Inexpensive Network Storage Devices + + Debian + Podium + English + Network Storage Devices (NAS) are gaining popularity and are available quite inexpensively. For most customers, they are basically just a hard drive that you connect to the network for file storage. In reality, these devices are complete, even if fairly low-end, computers - and Debian can be installed on some of them. + This talk will discuss a number of devices that are currently supported and cover some platforms that may be supported in the future. + + Martin Michlmayr + + + + + + 17:30 + 00:45 + AW1.121 + debian_grid + Grid Computing with Debian, Globus and ARC + + Debian + Podium + English + Grid Computing with Debian, Globus and ARC - collaborations in high-performance computing beyond programming and packaging. + Debian is known for being developed from its userbase. The individuals mutually trust each other, implemented mechanisms for peer review and have the technical support for authorisation and authentication. This way, the workload to provide the software packages for the compute infrastructure is shouldered by many individuals. Grid computing takes this collaboration further. Here, research groups offer access to their local resources not only to other research groups, but they may even grant the right to admit users to virtual organisations - much like the Debian keyring. + +The presentation presents an overview on current grid middleware and computational grids established. The Globus grid middleware and its Debian packaging are explained, together with the packages of the Advanced Resource Connector (ARC). + +Today, the most usecases of the technology are the sharing of the computational resources like plain compute power or storage. With the advent of these packages in the Debian main distribution, the adoption of these packages is expected to become more of a commodity to exchange computational workflows, share the burden to maintain rapidly changing data, or control the limited access to special hardware. + +The speakers are researchers at the Universities of Copenhagen, Lübeck and Uppsala. With funds from several national and international projects in high-energy physics or grid computing, the three are contributing to the development of the ARC grid middleware - and for the provisioning of its Debian packages. + + Anders Wäänänen + Steffen Möller + Mattias Ellert + + + + + + 18:15 + 00:45 + AW1.121 + debian_dpl + What does the DPL do? + + Debian + Podium + English + After being the person in the hot seat for most of a year, Steve wants to give some details about how the job works and how he thinks it should work. + This is *not* meant to be an early start to an election campaign, but instead an objective discussion of the role of the DPL within the Debian Project. + + Steve McIntyre + + + + + + + + 13:00 + 00:15 + AW1.124 + ada_informal_discussions + Welcome to the Ada devroom + + Ada + Podium + English + Welcome talk and Ada informal discussions (Adalog and Adacore Stands) + + + Dirk Craeynest + + + + + + 13:15 + 00:45 + AW1.124 + ada_bof_0 + Ada Break: Questions and Free Discussions + + Ada + Other + English + Lunch break and informal discussions. + + + Valentine Reboul + + + + + + 14:00 + 01:00 + AW1.124 + ada_intro + Introduction to Ada for Beginning or Experienced Programmers + + Ada + Podium + English + This presentation exposes the main features of the Ada language, with special emphasis on the features that make it especially attractive for free software development. + + + Jean-Pierre Rosen + + + Free software from Adalog + + + + 15:00 + 01:00 + AW1.124 + ada_gps + GNAT Programming Studio + + Ada + Podium + English + [https://libre.adacore.com/gps GPS, the GNAT Programming Studio], is a powerful and simple-to-use Integrated Development Environment that serves as portal to the GNAT toolchain. + It provides customizable settings, browsing, syntax-directed editing, easy integration with third party tools such as Version Control Systems, source navigation, dependency graphs, and more. Built entirely in Ada, GPS is designed to allow programmers to get the most out of GNAT technology. + + Vincent Celier + + + GPS 4.3 + + + + 16:00 + 01:00 + AW1.124 + ada_in_debian + Ada in Debian + + Ada + Podium + English + Ludovic Brenta will explain his work as the principal maintainer of Ada in [http://www.debian.org Debian], and the [http://www.ada-france.org/debian/debian-ada-policy.html policy that unites all Ada packages], thereby making Debian the best free Ada development platform in the world. + The Debian Project is an association of individuals who have made common cause to create a free operating system. The development processes are open to the public and anyone can contribute. The strict Debian Free Software Guidelines are the basis of the Open Source Definition. The resulting operating system consists of tens of thousands of Free Software packages and is renowned for its reliability, thanks to Debian's extensive quality assurance policy. + +Debian GNU/Linux supports 12 hardware architectures and 4 more are in various stages of development. Debian GNU/Hurd, Debian GNU/NetBSD and Debian GNU/kFreeBSD are works in progress. Several other distributions use Debian as their foundation. + + Ludovic Brenta + + + + + + 17:00 + 01:00 + AW1.124 + ada_annex_e + Ada Annex E - Distributed Systems + + Ada + Podium + English + The [http://www.adaic.com/standards/05rm/html/RM-E.html Distributed Systems Annex] is an optional part of the Ada language that allows writing programs that are distributed across several computers. + Each "partition" of the program, running on one machine, communicates with the others by means of remote procedure calls and shared data structures. Ada provides facilities to make this communication completely transparent to the programmer. Thanks to it, writing a distributed program is no more complex than writing a monolithic one. Indeed, it is possible to recompile a distributed program to make it either distributed or monolithic with no changes to the program source. There are two Free Software implementations of Annex E for GNAT, the GNU Ada compiler: GLADE and its successor [https://libre.adacore.com/polyorb PolyORB], both licensed under terms of the GPL. + + Thomas Quinot + + + + + + 18:00 + 01:00 + AW1.124 + ada_narval + NARVAL - Distributed Data Acquisition from Particle + + Ada + Podium + English + NARVAL stands for "Nouvelle Acquisition temps Reel Version 1.6 Avec Linux". It is a distributed data acquisition software system that collects and processes data from nuclear and particles physics detectors. + NARVAL replaces an older system based on C, Fortran and proprietary technologies with Ada and Debian GNU/Linux and is itself Free Software. In order to ensure maximum data safety most of the program is written in Ada with heavy use of Annex E, the Distributed Systems Annex. Software engineers and physicists from several countries use this system for fundamental research. The talk will present the NARVAL architecture in detail with some focus on the multi-tasking dataflow core and the configuration done through Annex E. + + Xavier Grave + + + Centre National de la Recherche Scientifique + + + + + + 13:15 + 00:30 + AW1.125 + java_state_openjdk + The state of OpenJDK & OpenJDK6 + + Free Java + Podium + English + A summary of the past year's accomplishments, some views on what remains to be done, and a look ahead to the content of JDK 7 and the process by which it will be developed. + And where are we with OpenJDK 6 today and where will we go tomorrow? The origins and initial design decision of the project will be discussed and well as possible future directions of the project. + + Joe Darcy + Mark Reinhold + + + + + + 13:45 + 00:30 + AW1.125 + java_jigsaw + Project Jigsaw + + Free Java + Podium + English + One of the most significant changes in JDK 7 will be to modularize the code base, to modularize the platform, and to enable the modularization of applications, all via [http://blogs.sun.com/mr/entry/jigsaw Project Jigsaw]. + Mark will discuss how the introduction of language-level modules, in concert with corresponding updates to the tool chain and the runtime environment, should to allow applications and libraries written in Java to be distributed as sensible and familiar [http://blogs.sun.com/mr/entry/packaging_java_code distro-specific packages]. + + Mark Reinhold + + + Project Jigsaw + http://blogs.sun.com/mr/entry/packaging_java_code + + + + 14:15 + 00:30 + AW1.125 + java_small_changes + Small Language Changes + + Free Java + Podium + English + In addition to modularity support, JDK 7 is also planned to have a number of small language changes. Unlike previous JSRs to change the Java programming language, this project will be taking input from a public call for proposals phase. + Joe will be talking about criteria developed to evaluate language changes and the current status of the project. + + Joe Darcy + + + + + + 15:00 + 00:30 + AW1.125 + java_state_icedtea + The state of IcedTea + + Free Java + Podium + English + Objective: To introduce IcedTea and lead into the talks given by the other IcedTea developers present. + Where is IcedTea now? What has happened since FOSDEM 2008? +* History of IcedTea +* Progress +* Releases +* Improved community relationships + +What is the difference between (proper) OpenJDK and IcedTea? +* Javaws (demo), visualvm (demo) +* PulseAudio/Gervill integration + +Mauve and JTreg comparisons with OpenJDK. + +Packaging for Fedora +* process +* patches that need to be applied +* specifics on building + +Looking forward +* What are we doing now? where are we going? +* How what we complained about last year at FOSDEM has been acknowledged and fixed (patches, repositories) + + Lillian Angel + + + + + + 15:30 + 00:30 + AW1.125 + java_icedtea_plugin + The IcedTea Plugin + + Free Java + Podium + English + This talk is about the IcedTea Java Web Browser Plugin. + It will be mostly technical -- starting off with the need for the plugin and it's history. It will then delve into the elements of plugin design, and implementation details affecting speed, security and reliability. + +Finally, it will also cover known limitations, and future plans to fix those limitations. + + Deepak Bhole + + + + + + 16:00 + 00:30 + AW1.125 + java_jalimo + Jalimo: Cross-compiling OpenJDK using IcedTea and OpenEmbedded + + Free Java + Podium + English + A lightning talk about our work on getting OpenJDK cross-compiled using IcedTea and OpenEmbedded as part of the [https://wiki.evolvis.org/jalimo/index.php/Main_Page Jalimo project]. + + + Robert Schuster + + + + + + 16:45 + 00:30 + AW1.125 + java_caciocavallo + How to port a Java GUI backend to a new platform using Caciocavallo + + Free Java + Podium + English + Mario and Roman will give an overview of the [http://openjdk.java.net/projects/caciocavallo/ Caciocavallo] architecture and show how to implement a new Java GUI backend. + +They will also show some working examples. + + + Mario Torre + Roman Kennke + + + Caciocavallo: Portable GUI Backends + + + + 17:15 + 00:30 + AW1.125 + java_opengl_es + OpenGL ES to boost embedded Java + + Free Java + Podium + English + This talk will present status and usage of OpenGL ES in the embedded Java world. + * Available OpenGL ES implementations and Java bindings +* Compatibility with existing Java environments +* Application development with OpenGL ES: games and clutter-like user interfaces +* OpenGL ES as backend for graphical libraries (MIDP, LWUIT, AWT) + + Guillaume Legris + + + + + + 17:45 + 00:30 + AW1.125 + java_xrender + XRender Java2D Pipeline + + Free Java + Podium + English + - Overview over the current X11 pipeline and xorg enhancements and the problems they cause for Java. +- Short introduction into XRender's features and how it maps to Java2D's functionality. +- Presentation of the existing Java/C based implementation that was created at the OpenJDK Challenge +- Future development, goals and design of the new pure Java based pipeline. + + + Clemens Eisserer + + + http://78.31.67.79:8080/jxrender/ + Blog + + + + 18:15 + 00:30 + AW1.125 + java_gervill + Gervill Software Synthesizer + + Free Java + Podium + English + The [https://gervill.dev.java.net/ Gervill Software Synthesizer]. + * How it began +* History of progress +* Performance +* Future improvements + +And if possible some demonstrations. + + Karl Helgason + + + + + + + + 13:00 + 00:15 + AW1.126 + ooo_welcome + Welcome to the OpenOffice.org devroom + + OpenOffice.org + Other + English + Welcome to the OpenOffice.org developer room at FOSDEM 2009. + + + Jürgen Schmidt + + + + + + 13:15 + 01:00 + AW1.126 + ooo_uno + UNO: Anecdotal Evidence + + OpenOffice.org + Podium + English + UNO is the object model underlying OpenOffice.org. With its by now long and winding history, this might be a good time to reflect on its design and implementation, its shortcomings and strengths. + In this talk we will look at details in various areas of UNO, tell the occasional anecdote, and generally have fun. + + Stephan Bergmann + + + + + + 14:15 + 01:00 + AW1.126 + ooo_java + Introduction to Java development with OpenOffice.org + + OpenOffice.org + Podium + English + OpenOffice.org entry barrier is quite high - people need lot of time to learn how to develop for the OpenOffice.org. This talk is more or less theoretical and it tries to cover all possible areas. + We will define common terms, describe UNO Java bridge, go through documentation and explain how to read it, where to find information we need. Introspection interface with tool examples will be described too. And finally, we will take a look at the OpenOffice.org on the server. This talk should lower entry barrier for developers and prepare them for OpenOffice.org development. + + Robert Vojta + + + + + + 15:15 + 02:00 + AW1.126 + ooo_extensions_in_java + OpenOffice.org Extensions in Java – do it yourself + + OpenOffice.org + Workshop + English + The workshop focused on the creation of an extension in Java with the OpenOffice.org API plugin for NetBeans. The attendees can choose if they want to create a smart tag, or an options page demo or if they want to create a weather forecast demo. + Two of the demos make use of external functionality and show how easy it can be to make use of web services or external libraries. The attendees will by guided through a detailed tutorial and will create their extension of choice step by step. +Ideally the attendees should bring their own laptop into the workshop. And they should have installed NetBeans 6.5, Java 1.6, OpenOfice.org and the OpenOffice.org SDK. A CD with installation programs for the common platforms and the whole workshop material will be available in the workshop room as well. + +If you have no laptop, no problem watch your neighbour over the shoulder and work together. Or simply listen and watch what the speaker is doing ;-) + + Jürgen Schmidt + + + + + + 17:15 + 01:00 + AW1.126 + ooo_gfx_hackers + Layout & Canvas & Slideshow - selected topics for the graphics hackers + + OpenOffice.org + Podium + English + This talk will give an introduction to areas inside OOo amenable to graphics hackers - stuff that has the desirable property of instant visual gratification. + Layout: there's currently work underway to give OOo's dialogs an auto-layouting facility. Besides work on the layouting core, there's also help solicited for converting existing dialogs to the new layout-enabled scheme. + +Canvas: the new OOo rendering subsystem, and what it can do; showing a prototype of an OpenGL-based implementation plus pointers where interested hackers can start helping Slideshow: probably the easiest way to make an impact to millions of OOo users is to code another Impress 3D slide transition – here's how to do that. + + Thorsten Behrens + + + + + + 18:15 + 00:30 + AW1.126 + ooo_bug_hunting + OOo Bug hunting and fixing + + OpenOffice.org + Workshop + English + + + + Jürgen Schmidt + + + + + + + + + + 14:00 + 01:30 + Guillissen + lpi_1 + LPI exam session 1 + + LPI Certification + Other + English + LPI exam session #1 + + + Klaus Behrla + + + + + + 16:00 + 01:30 + Guillissen + lpi_2 + LPI exam session 2 + + LPI Certification + Other + English + LPI exam session #2 + + + Klaus Behrla + + + + + + + + + + 10:00 + 01:00 + Janson + cobbler_koan + Cobbler & Koan + + Systems + Podium + English + During this talk, we aim to give you an overview of the Cobbler project, +explain where we'd like to see it going and explain a few use cases. + Cobbler is an installation server, written in Python, which allows for rapid +deployment (and re-deployment) of large amounts of physical and virtual +machines by defining distributions, repositories, profiles and systems as +objects. It's easy to get started with Cobbler, but we ship a lot of +advanced features to make it as versatile as possible, so you won't get +bored with it. + + Robert Lazzurs + Jasper Capel + + + Cobbler project + + + + 11:00 + 01:00 + Janson + mysql_ha + MySQL High Availability Solutions + + Systems + Podium + English + There are many ways of how to ensure the availability of a MySQL Server and how to provide additional redundancy and fault-tolerance. + +In this talk, Lenz will give an overview over some best practices and commonly used HA setups for MySQL. + The talk will cover the Open Source components and tools that are frequently utilized, with a focus on Linux and OpenSolaris. The session will also cover MySQL Cluster, the architecture and relationship to the MySQL Server. + + Lenz Grimmer + + + + + + 12:00 + 01:00 + Janson + upstart + Upstart + + Systems + Podium + English + This talk takes a trip along the Roadmap for Upstart 1.0, introducing + what features will be available. + Linux has always traditionally lacked good service management + facilities, so much so that the typical daemon doesn't use what ones we + have and instead relies on hokey shell scripts. + + Upstart is being developed to not only solve this problem but also how + it, through integration with D-Bus, DeviceKit and similar frameworks, + allows service lifecycles to be tied to hardware and system state. + + Scott James Remnant + + + Official website + Wikipedia entry + + + + 14:00 + 01:00 + Janson + syslinux + Syslinux and the dynamic x86 boot process + + Kernel + Podium + English + This talk will discuss the x86 boot process, how to make it work in a +dynamic system, and the tradeoffs between versatility and reliability. +It will also discuss the Syslinux modular interface and how to use it +to quickly add new features with a minimum of coding. + Originally written during an all-night hacking session in 1994 with +the intent to better support the then-ubiquitous install boot +floppies, Syslinux has evolved over the years into a widely used boot +loader suite with an advanced modular interface, with emphasis on ease +of use and reliability. It is now the most commonly used x86 +bootloader for removable media, and is increasingly used for +conventional hard disk booting as well. + + H. Peter Anvin + + + + + + 15:00 + 01:00 + Janson + ext4 + Ext4 + + Kernel + Podium + English + This presentation will discuss history of ext4, its features and advantages, and how +best to use the ext4 filesystem. + The latest generation of the ext2/ext3 filesystems is the ext4 +filesystem, which recently left the development status of 2.6.28. +With extents, delayed allocation, multiblock allocation, persistent +preallocation, and its other new features, it is substantally faster +and more efficient compared to the ext3 filesystem. + + Theodore Ts'o + + + Official website + Wikipedia entry + + + + 16:00 + 01:00 + Janson + slow + Help my system is slow... + + Kernel + Podium + English + + An understanding of the nature of your system workload is an important +step in optimizing it for maximum performance on your hardware. I will +discuss some useful tools and techniques for evaluating the workload of +your FreeBSD system, and identifying the bottlenecks that are limiting +performance. + + Kris Kennaway + + + + + + 17:15 + 01:00 + Janson + gsoc + Google Summer of Code: A Behind the Scenes Look at Large Scale Community Management + + Keynotes + Podium + English + Ever wondered what it takes to make a community of more than 180 F/LOSS +projects and 5,000+ geeks create great software? + In this talk, Leslie Hawthorn will explore the successes and setbacks of [http://code.google.com/soc/ Google Summer of Code], the first global program +designed to introduce University students to Free and Open Source software +development practices and methodologies. Leslie will discuss the program's +inception, history, and impact, and the evolving requirements for managing a +large scale global community. She will share lessons learned during the +past three years as the program's Community Manager, with an eye to +providing audience members with strategies for organizing their own +community participation initiative, and provide attendees with an update on +[http://code.google.com/p/soc/ Melange], the new work flow application +designed to manage *Google Summer of Code* - or similar programs - and +Google's first Open Source project developed in the open from the first +commit. + + Leslie Hawthorn + + + Official website + + + + + + 10:00 + 01:00 + Chavanne + + OWASP Testing Guide v3 and Secure Software Development + + Security + Podium + English + The speech goal is to show the OWASP testing methodology and how you +can implement a software development lifecycle that permit to develop +more secure applications. + The Open Web Application Security Project (OWASP) wants to deliver +free tools and documentation for the Web Application Security. +The talk will present the new OWASP Testing Guide v3 that includes a +"best practice" penetration testing framework which users can +implement in their own organizations and a "low level" penetration +testing guide that describes techniques for testing most common web +application and web service security issues. OWASP Testing Guide v3 is +a 349 page book; we have split the set of active tests in 9 +sub-categories for a total of 66 controls to test during the Web +Application Testing activity. + + Matteo Meucci + + + Official website + OWASP Website + + + + 11:00 + 01:00 + Chavanne + freeipa + FreeIPA, Identity Management + + Security + Podium + English + Free Software Identity Management challenges and technical details + The presentation will revolve around the problems of building a modern +Free Software based Identity Management Solution. The challenges we +faced in trying to combine security, ease of used, standards, features, +and interoperability with other solutions. The choices we have made for +the current code base, and the choices we are facing going forward. +The vision and future directions. +The presentation will introduce the public to the technologies used, the +modifications or additions we performed and will dive into technical +details about how we architect the server and the future client +components. + + Simo Sorce + + + Official website + Wikipedia entry + + + + 12:00 + 01:00 + Chavanne + fusil + Fusil + + Security + Podium + English + The talk will present how a fuzzer is written and how it works. Then we will +analyze a crash. And finally we will see how to report it to the vendor and +typical vendor reactions. + Fusil the fuzzer is a Python library to write fuzzers and a collection of +twenty specific fuzzers: ClamAV, Firefox, mplayer, poppler (PDF), etc. A +simple fuzzer can crash most (all?) applications. + + Victor Stinner + + + Official website + List of crashed programs + + + + 14:00 + 01:00 + Chavanne + mediawiki + MediaWiki + + Collaboration + Podium + English + I'll be going over some of the particular UI and workflow issues in +editing, media uploading, and other areas that we intend to tackle, +summarize some of the existing work toward those ends, and give a +preview our upcoming Wikipedia Usability Initiative. + MediaWiki was born in 2002, when Wikipedia's editing activity outgrew +the concurrency limits of its original wiki engine. The first 6 years of +this open-source wiki platform's development were largely devoted to +scaling and performance, ensuring that the world's most editable online +encyclopedia could keep up with the number of articles, visitors, and +changes that come with being an insanely popular user-written site. But +the user interface hasn't changed much since 2003; if anything, packing +in more features has made many aspects of the wiki harder to use over time. + +In 2009, MediaWiki developers are turning their eye towards usability +and design issues. As with the scaling problems we've tackled before, we +have to be able to target anything from a tiny personal or intranet wiki +to the massive Wikipedia sites, making a range of different use cases +with different needs... It'll be fun! + + Brion Vibber + + + Official website + Wikipedia entry + + + + 15:00 + 01:00 + Chavanne + zarafa + Easy Integration with plugin frameworks for open source Zarafa Groupware and advanced replication + + Collaboration + Podium + English + The Zarafa webaccess plugin system is aimed at allowing developers to add functionality to the Zarafa webaccess, while not requiring them to modify existing system files inside the core of the Zarafa WebAccess software. + +Zarafa will show how to programm a module and shows the architecture integrations with open source solutions such as Alfresco and Sugarcrm and other community contributions. + The Zarafa webaccess plugin system is aimed at allowing developers to add functionality to the Zarafa WebAccess, while not requiring them to modify existing system files inside the core of the Zarafa WebAccess software. + +Steve will show how to program a module and shows the architecture integrations with open source solutions such as Alfresco and Sugarcrm and other community contributions. + + Steve Hardy + + + + + + 16:00 + 01:00 + Chavanne + caldav + CalDAV - the open groupware protocol + + Collaboration + Podium + English + Introduction into the CalDAV protocol and related protocols. Overview on OpenSource CalDAV clients and servers, and on libraries for CalDAV development. +Attempt to motivate people to implement IETF standard protocols instead of proprietrary ones. + CalDAV is a calendaring and scheduling client/server protocol designed to allow users to access calendar data on a server, and to schedule meetings with other users on that server or other servers. + + Helge Heß + + + + + + + + 10:00 + 00:15 + Ferrer + gnutls_intro + Introduction to GnuTLS + + Lightning Talks + Lightning-Talk + English + I'll introduce GnuTLS and mention it features over the competition, and talk about problems facing a free software project in an area which has many patents. + GnuTLS is a SSL/TLS implementation for the GNU system. SSL/TLS is the network security protocol used by HTTPS, and numerus other network protocols to provide X.509, OpenPGP etc security. + + Simon Josefsson + + + http://www.gnutls.org/ + + + + 10:15 + 00:15 + Ferrer + secure_list_server + The Secure List Server: an OpenPGP and S/MIME aware Mailman + + Lightning Talks + Lightning-Talk + English + The talk will start with a very short overview of the history of Mailman and +the mailman-pgp-smime project. Some remarks will be made on how to install and +configure the software, so that one can try it. Currently supported features +will be mentioned, as well as an overview of development plans. One will learn +how to contribute to the project; an overview of the revision control system +used will be given. Some remarks on the future of the patch will be made: will +it be shipped with Mailman itself? + +If you have used Mailman, both as a subscriber and as a list admin, and if +you know what PGP and S/MIME are, you should definitely attend this talk. + he Secure List Server, mailman-pgp-smime, is an effort to add support for +encryption and authentication to Mailman, the GNU mailing list software. This +enhancement enables groups of people to safely cooperate and communicate using +email. The patch includes support for both RFC 2633 (S/MIME) and RFC 2440 +(OpenPGP) email messages. + +Development of the patch is made possible by the NLnet foundation. + +A post to a secure list will be distributed only if the PGP (or S/MIME) +signature on the post is from one of the list members. For sending encrypted +email, a list member encrypts to the public key of the list. The post will be +decrypted and re-encrypted to the public keys of all list members. + + Joost van Baal + + + http://non-gnu.uvt.nl/mailman-pgp-smime/ + + + + 10:30 + 00:15 + Ferrer + jtrunner + JTR Java Test Runner and Java Distributed Testing + + Lightning Talks + Lightning-Talk + English + The talk will be focused on the main features delivered by the JTR Project that enable the seamless distribution of the full spectrum of test-suites that can be written to a set of JTR-enabled nodes making it easy performing distributed test sessions. + The JTR Project is a Java distributed testing framework conceived to fill a gap existing today most notably in the open-source world that’s the lack of a single tool that could help in developing from simple to complex test suites in Java with particular emphasis on the stack of backend-technologies embraced by the JEE specification. + +The JTR Framework is aimed at fastening the development of both functional and stress-test suites for verifying the requirements and robustness of both JSE and JEE projects. The JTR Framework supports you in writing components meant for testing: +•standard JSE components / applications +•EJBs conforming to both J2EE 2.x and JEE specifications +•MOM-based JSE and JEE systems (JMS) +•web-services (both document-based and rpc-like) + + Francesco Russo + + + http://jtrunner.sourceforge.net + + + + 11:00 + 00:15 + Ferrer + ipn_msockets + Renew Berkeley Sockets API: IPN & msockets + + Lightning Talks + Lightning-Talk + English + We have found two main limitations in Berkeley Sockets API: +(1) it has been designed to manage one stack per protocol family +(2) there is not a protocol family supporting (fast) multicast for Inter Process Communication (among processes running on the same computer). +The virtualsquare team proposes solutions for both problems: +(1) the msocket call to support several stacks (implemented in lwipv6 and ipnet) +(2) the IPN (inter process networking) protocol family. +IPN can be used for many applications: midi, mpeg-ts dispatching, kernel based +vde switches. + We have found two main limitations in Berkeley Sockets API: +(1) it has been designed to manage one stack per protocol family +(2) there is not a protocol family supporting (fast) multicast for Inter Process Communication (among processes running on the same computer). +The virtualsquare team proposes solutions for both problems: +(1) the msocket call to support several stacks (implemented in lwipv6 and ipnet) +(2) the IPN (inter process networking) protocol family. +IPN can be used for many applications: midi, mpeg-ts dispatching, kernel based +vde switches. + + Renzo Davoli + + + http://wiki.virtualsquare.org/index.php/IPN + http://wiki.virtualsquare.org/index.php/Multi_stack_support_for_Berkeley_Sockets + + + + 11:15 + 00:15 + Ferrer + modularit + ModularIT: virtualiced and distributed modular services architecture + + Lightning Talks + Lightning-Talk + English + 1.- Definition of ModularIT +2.- Description +2.1.- Technologies involved +2.2.- Procedures: instalaltion, management, update, etc. +3.- ModularIT community project + ModularIT is a virtuliced and distributed modular services architecture based on free software. This project has been released for the spanish community at the beginning of 2008 and by January 2009 it will be translated to english. Right now it is downloadable and before the end of the year we will begin to develop the project through a public SVN. + +ModularIT is the result of 10 years of hard working from Grupo CPD (www.grupocpd.com) with free software systems and network services. we are a free software companies network from the Canary Islands, Spain. we are interested in presenting the project at FOSDEM. + +You can find more information (only in spanish until december) by clicking these links: + +http://www.modularit.org + +http://www.grupocpd.com/QueHacemos/modularit/PloneArticle_view + + Agustín Benito + + + http://www.modularit.org + + + + 11:30 + 00:15 + Ferrer + puppet + How the social networking site Hyves benefits from puppet + + Lightning Talks + Lightning-Talk + English + After explaining the basics of puppet and some background of the social network Hyves the speaker will discuss how puppet helped Hyves to automate a large set of daily sysadmin tasks. The speaker will also discuss how to automate common sysadmin problems / tasks with puppet and will show how to manage puppet masters and clients on large scale networks (+2000 servers) + Puppet is an open-source next-generation server automation tool. It is composed of a declarative language for expressing system configuration, a client and server for distributing it, and a library for realizing the configuration. + +The primary design goal of Puppet is that it have an expressive enough language backed by a powerful enough library that you can write your own server automation applications in just a few lines of code. With Puppet, you can express the configuration of your entire network in one program capable of realizing the configuration. The fact that Puppet has open source combined with how easily it can be extended means that you can add whatever functionality you think is missing and then contribute it back to the main project if you desire. + + Marlon de Boer + + + http://reductivelabs.com/trac/puppet + + + + 12:00 + 02:00 + Ferrer + keysigning + KeySigning Party + + Lightning Talks + Podium + English + GPG/PGP and CAcert keysigning party + See [http://fosdem.org/2009/keysigning] for details. + + Joost van Baal + Theus Hagen + + + + + + 14:00 + 00:15 + Ferrer + freedroidrpg + Introducing FreedroidRPG, a great FOSS isometric RPG + + Lightning Talks + Lightning-Talk + English + The talk introduces the game FreedroidRPG, insisting on it being mature and fully playable. +We will see what features FreedroidRPG provides, present a few screenshots, explain our +interest in having an immersive ambience through dialogs, music and graphics, and mention the +unusual history of the game (it started off as a 2D arcade game before evolving into a full featured +RPG similar to Diablo). We will explain where we need help from the community. A demo will not be +possible in the timeframe of a lightning talk, but a little video may be played. + FreedroidRPG is a mature open source sci-fi isometric role playing game. It +strives at providing an immersive ambience backed by refined graphics and +music tracks. Besides the hack'n'slash action phases, dialogs with dozens of +NPCs take care of storytelling. The player can fight with melee or ranged +weapons, take control of his enemies by hacking, and remotely execute code on +enemy robots. + + Arthur Huillet + + + http://www.freedroid.org/ + + + + 14:15 + 00:15 + Ferrer + sgx_engine + Games Engines Done Good + + Lightning Talks + Lightning-Talk + English + Too many game engines expect you to use their code exclusively. But no games company will replace their entire technology with an open source engine, just to utilise one component. Consequently, the only open source technology generally used in professional games are those that come as individual libraries - like Lua, or ODE. + +In his talk, Steven covers the reason for why monolithic architectures are no good for games development, how to avoid them, and the alternatives - at both a technical and man management level. + +He covers the principles behind creating interfaces and loosely-couple modules to ensure flexibility, and how to introduce new modules and platforms into the mix. Distinctions are also made between commonly-confused terms such as "engine", "drivers", "domains", "platforms" and "libraries." + +Finally, an overview of the practical solutions are given, using the SGX Engine as a example covering audio, graphics, input, and scripting. + SGX is a 3D graphics engine, based around of series of null drivers and loosely-coupled modules to facilitate an infinitely upgradable engine. It is primarily suited to games and digital TV backdrops, and runs under Windows and Linux, using OpenGL. It is also one of the few Open Source engines to be used in commercial products. + + Steven Goodwin + + + http://www.sgxengine.com + + + + 14:30 + 00:15 + Ferrer + musescore + MuseScore, free music composition & notation software + + Lightning Talks + Lightning-Talk + English + With the first stable 1.0 release in the pipeline, it's time to introduce MuseScore to future users and developers. MuseScore is currently the leading free alternative to commercial score writing software like Sibelius and Finale. With over 50.000 downloads, it has quite some adoption already, but in order to convince music schools world wide, MuseScore's current development team should become a little stronger. FOSDEM 09 will be the first event world wide where MuseScore will be presented + MuseScore is a free and open source music scorewriter. MuseScore is a WYSIWYG editor, complete with support for score playback and import/export of MusicXML and standard MIDI files. Percussion notation is supported, as is direct printing from the program. The program has a clean user interface, with fast note editing input with mouse, keyboard or MIDI. MuseScore has binaries available for Linux, Windows and Mac, and is available in more than 10 languages. + + Thomas Bonte + + + http://musescore.org + + + + 15:00 + 00:15 + Ferrer + pyroom + PyRoom - distraction free writing + + Lightning Talks + Lightning-Talk + English + The talk will try to answer many questions: + +* why did this project happen? +* how is it organised? +* who is this software for? +* ... + PyRoom is a Free, monochrome, full-screen text editor without buttons, widgets, etc. that helps you focus on one thing and only one: writing. It's written in Python, using Python-GTK bindings. + + Bruno Bord + + + http://pyroom.org + + + + 15:15 + 00:15 + Ferrer + ez_find + Putting Apache Solr to work: eZ Find, a powerful eZ Publish search plugin + + Lightning Talks + Lightning-Talk + English + After a brief overview of the main features and benefits of Apache Solr (an open source embeddable search server), the architecture of eZ Find (the search plugin for eZ Publish, a PHP CMS), will be presented. The main lessons learned around dealing with a mix of structured and non-structured content, multilingual aspects, tuning and the various state-of-the-art features of Solr will be shared with the audience. + eZ Find is the enterprise grade search engine used for eZ Publish (a CMS written in PHP, with flexible content modeling). The back-end engine used is Apache Solr. The document/field model of Solr together with its powerful features around faceting, filtering, automatic related content and language features are a 1-to-1 match with the CMS used. But is also capable of integrating various data-sources, such as ERP systems or document collections with the use of plugins. + + Paul Borgermans + + + http://ez.no/ezfind + + + + 15:30 + 00:15 + Ferrer + xwiki + The XWiki Wysiwyg Editor: Rich Cross-Browser Editing, Take Two + + Lightning Talks + Lightning-Talk + English + The new wysiwyg editor developed by the XWiki team is a cross-browser, GWT-based, stand-alone editing tool that solves a number of known problems in other editors, and brings exciting new features such as concurrent realtime editing. Currently in a beta stage, it was bundled in XWiki Enterprise 1.7 and will become the default editor in the next XWiki release. + XWiki is a platform for developing collaborative web applications using the wiki paradigm. + + Anca Luca + + + http://www.xwiki.org + + + + 16:00 + 00:15 + Ferrer + tikiwiki_cms_groupware + TikiWiki CMS/Groupware - When just a Wiki is Not Enough + + Lightning Talks + Lightning-Talk + English + TikiWiki is a powerful, multilingual Wiki, Content Management System (CMS) and Groupware. Translated to 35 languages, and with an install base of tens of thousands, over 200 people have contributed to the source code and it provides hundreds of built-in features to create all sorts of web sites, intranets and extranets, including support.mozilla.com. + +The community eats its own DogFood and applies the "Wiki Way" to software development. Written in PHP, it is released as free software (LGPL). TikiWiki is at the crossroads between Wikis and CMS/Groupware. It is so much more than just a wiki. + +Most wikis are pure wikis. However, is that sufficient? "He who is good with a hammer thinks the world is a nail". While a wiki is a great tool, it is not optimal in many situations. For some things, forums, issue trackers, blogs, etc. are better. That's why there are hundreds of Content Management Systems (CMS) out there. However, many CMS systems are focused on classic publishing, rather than community and collaboration. + +In TikiWiki, the wiki way is found throughout the application. For example, the wiki syntax works in the forums, and in structured data trackers. Major features of TikiWiki include news articles, forums, newsletters, blogs, a file/image gallery, structured data trackers, translation, polls, calendar, Mobile Tiki (PDA and WAP access), RSS feeds, a category system, a theme control center, and more. + +When would you need a wiki that is bundled with other features? Find out for yourself in this session what makes TikiWiki unique. + TikiWiki CMS/Groupware is a full-featured, tightly integrated, open source, multilingual, all-in-one Wiki-CMS-Groupware, written in PHP and actively developed by a very large international community. Major features include articles, forums, newsletters, blogs, a file/image gallery, a wiki, bug & issue tracker (form generator), a calendar, RSS feeds, a category system, tags, a workflow engine, an advanced user, group and permission system and more. + + Marc Laporte + + + http://TikiWiki.org + + + + + + 09:00 + 01:00 + Lameere + emb_hackable_1 + Development on the Openmoko with hackable:1 + + Embedded + Podium + English + [http://www.hackable1.org/ Hackable:1] is a community distribution for hackable devices like the Openmoko Neo Freerunner. +It is based on Debian and implements the GNOME Mobile platform. + This workshop introduces development for the Freerunner using the hackable:1 software distribution. + + Pierre Pronchery + + + + + + 10:00 + 01:00 + Lameere + emb_solar_control + Solar Control with 1-wire Open Hardware + + Embedded + Podium + English + Solar hot water systems in particular, and home control in general, provide excellent opportunities for fun geeking. Conventional control is done with various boxes, each of which is very stupid. Everything is proprietary and mostly incompatible with other manufacturers. + +Wookey decided that a better solution was one smart controller using open technologies, which could do cool stuff like on-line energy logging. + He will explain enough about plumbing that the rest of the talk makes sense, then cover the practicalities of the necessary mix of IO: (I2C, 1-wire, digital IO, switching, displays), Software (logging, control scripting, user feedback) and Hardware (Balloonboard+IO). + +When he's finished you should have enough knowledge to go away and put together your own versatile controller (and solar system), and have an appreciation of the potential of this technology, as well as what work is still needded to make it accessible beyond the world of embedded Linux engineers. + + Wookey + + + + + + 11:00 + 01:00 + Lameere + emb_fire_safety_cert + Development and Certification of Linux-Based Fire Safety & Security Systems + + Embedded + Podium + English + Experiences in Development and Certification of Linux-Based Fire Safety & Security Systems + As time passes, we rely more and more on software-intensive systems in safety-critical areas, from car brakes to aircraft control systems. A number of standards and certification procedures have been defined to assess the reliability of those products. Linux and open-source software (OSS) are attractive components to use in embedded systems. + +While some reliability information is available from enterprise systems research, certifiability of OSS in a particular industry is a major project risk. + +In this presentation, we share our experience in the development and certification of Linux-based fire safety systems. We provide a short introduction in standards objectives and approaches, describe the certification stakeholders and processes, product development challenges and possible solutions. + + Baurzhan Ismagulov + + + + + + 12:00 + 00:30 + Lameere + emb_maemo_beagleboard + Maemo on BeagleBoard + + Embedded + Podium + English + [http://beagleboard.org/ BeagleBoard] is an affordable OMAP3 based development board. [http://maemo.org Maemo] 5 is the next version of Nokia's Linux platform (codenamed Fremantle) and it supports OMAP3 processors. With some patience any BeagleBoard owner can get Maemo Fremantle running on the hardware. + This talk will be about creating a BeagleBoard image from the Maemo SDK. + +I'll go through the current status and how to get involved in the project and how BeagleBoard could be of help in creating software for Maemo devices + + Juha Kallionen + + + + + + 14:00 + 01:00 + Lameere + emb_power_mgmt_omap3 + Advanced powermanagement for OMAP3 + + Embedded + Podium + English + As ASIC technology progresses to smaller technology nodes (63nm and and lower), leakage currents become increasingly important. This means that just stopping clocks isn't enough to save enough power to obtain the desired device use times. +We need to shut off inactive parts of the ASIC depending on the actual usage. Eg. turn off the camera functionality or the GPU when not in use. We call this dynamic power switching (DPS). + This talk will show how TI, Nokia and the community implemented DPS in the linux kernel. We will also discuss other power saving features of OMAP3 and how they are used in the linux kernel. + + Peter De Schrijver + + + + + + 15:00 + 01:30 + Lameere + emb_emdebian_1_0 + Emdebian 1.0 release - small & super small Debian + + Embedded + Podium + English + Neil presents the release of Emdebian 1.0 Grip and Crush. + == Emdebian 1.0 Grip - a small, binary compatible, Debian == +Grip is between 25 and 40% smaller than standard Debian and uses TDebs for localisation. Grip can be easily installed using standard Debian-Installer images or debootstrap and allows for easy mixing of Debian and Grip packages. Grip supports seven architectures using the existing Debian ports: arm, armel, i386, amd64 (test architecture), mips, mipsel and powerpc. Version 1.0 is primarily for developers but is roughly equivalent to Debian in terms of usability and maintenance. + +Emdebian 1.0 Grip includes packages for a typical XFCE desktop installation. Typical Grip installations are between 25 and 40% smaller than the equivalent Debian installation. + +This talk covers all the essential features of Grip and will (hopefully) include a demo of using the Debian Installer from Lenny to install Emdebian 1.0 Grip on an Acer Aspire1 netbook. + +== Emdebian 1.0 Crush - a cross-built tiny Debian developer release == +Crush is only available for ARM and consists of a limited package set based around the GNOME Palmtop Environment. Crush +installation methods are machine-specific (with support from packages in Debian Lenny) and Crush does not include any kernels. Version 1.0 is only for developers and is significantly more difficult to prepare, install and maintain than either Debian or Emdebian Grip but provides a much smaller installation. Basic root filesystems of 24Mb installed, +full GPE GUI installations within 75Mb. + +This talk covers the limitations of Crush, the practical difficulties inherent in cross-building Debian using packages from Lenny and the improvements being implemented into the next release of Debian (Squeeze) that will make it easier to add support for more architectures for Emdebian Crush 2.0 (based on Debian 6.0 "Squeeze"). + + Neil Williams + + + + + + 16:30 + 00:30 + Lameere + emb_wrapup + Embedded Devroom wrap-up & feedback session + + Embedded + Workshop + English + Wrap-up and feedback session in the Embedded developer room. + + + Philippe De Swert + + + + + + + + 10:00 + 00:15 + H.1301 + xd_welcome + Welcome to the Crossdesktop room + + CrossDesktop + Other + English + Welcome to the Crossdesktop developer room at FOSDEM 2009. + + + Christophe Fergeau + Bart Coppens + Jannis Pohlmann + + + + + + 10:15 + 00:45 + H.1301 + xd_flossmetrics + A talk on FLOSSMetrics + + CrossDesktop + Podium + English + This talk would introduce the [http://www.flossmetrics.org/ FLOSSMetrics project], its aims and initial findings. + The main objective of FLOSSMETRICS is to construct, publish and analyse a large scale database with information and metrics about libre software development coming from several thousands of software projects, using existing methodologies, and tools already developed. + + Jesus M. Gonzalez Barahona + + + + + + 11:00 + 00:45 + H.1301 + xd_xfce_4_6 + Xfce 4.6 and then? + + CrossDesktop + Podium + English + This talk will be about the new [http://www.xfce.org/ Xfce] release and it will also try to answer what comes after 4.6. + Some of the new features of Xfce 4.6 will be presented and explained, the release process will be evaluated. Finally, we will give a feature preview for Xfce 4.8. + + Jannis Pohlmann + + + + + + 13:00 + 00:45 + H.1301 + xd_cmake + CMake - what can it do for your project + + CrossDesktop + Podium + English + This talk will be an introduction to [http://www.cmake.org/ CMake]. + It will talk about some of its advantages, some experiences we have with it in KDE, etc. The target audience is mainly projects that do not yet use CMake. + + Alexander Neundorf + + + + + + 13:45 + 00:45 + H.1301 + xd_webkit_ebook + WebKit on ebook readers + + CrossDesktop + Podium + English + Marco will give a brief introduction on how WebKit GTK works and on how it can be easily embedded in applications. + He will then explain what he did to adapt WebKit to electronic ink displays, reducing the number of refreshes, allowing a book-like page by page view of web pages and showing useful and meaningful placeholders instead of animated content. + + Marco Barisione + + + + + + 14:30 + 00:45 + H.1301 + xd_xfce_platform + Xfce as a Platform + + CrossDesktop + Podium + English + This talk is especially targeted to software developers, distributions and other software vendors. It will cover the APIs and infrastructure provided by the Xfce project. We will explain libraries and tools, how they work together and how you can use them for your own software project or distribution. Special focus will be put on Xfconf and ways to extend Xfce. + + + Stephan Arts + + + + + + 15:15 + 00:45 + H.1301 + xd_logs + Why logs are important + + CrossDesktop + Podium + English + How To Be A Lumberjack (or "Why Logs Are Important") + This talk will show how we can use SVN log analysis to monitor a migration away from SVN to git. + + Paul Adams + + + + + + 16:00 + 00:45 + H.1301 + xd_at_spi2 + at-spi2 + + CrossDesktop + Podium + English + The Project is converting the AT-SPI accessibility protocol to D-Bus and has the lofty goals of providing cross desktop accessibility for GNOME and KDE. + + + Mark Doffman + + + More information about AT-SPI on D-Bus + + + + + + 09:00 + 00:30 + UA2.114 + pg_pgagent + Job scheduling in PostgreSQL with pgAgent + + BSD+PostgreSQL + Podium + English + + + + Dave Page + + + + + + 09:30 + 00:30 + UA2.114 + pg_pet_peeves + Postgres Pet Peeves + + BSD+PostgreSQL + Podium + English + + + + Greg Stark + + + + + + 10:00 + 01:00 + UA2.114 + pg_openbsd_to_desktop + OpenBSD: From the Atomic clock to your desktop + + BSD+PostgreSQL + Podium + English + + + + Marc Balmer + + + + + + 11:00 + 01:00 + UA2.114 + pg_maps + Free Space Map and Visibility Map + + BSD+PostgreSQL + Podium + English + + + + Heikki Linnakangas + + + + + + 12:00 + 01:00 + UA2.114 + bsd_dtrace + FreeBSD and Dtrace + + BSD+PostgreSQL + Podium + English + + + + Marius Nünnerich + + + + + + 13:00 + 00:30 + UA2.114 + pg_informix_migration + Migration from informix to PostgreSQL at VPRO + + BSD+PostgreSQL + Podium + English + + + + Koen Martens + + + + + + 13:30 + 00:30 + UA2.114 + pg_user_groups_leading + User Groups: Leading without being in charge + + BSD+PostgreSQL + Podium + English + + + + Selena Deckelmann + + + + + + 14:00 + 00:30 + UA2.114 + pg_recursive_queries_intro + Introduction to recursive queries + + BSD+PostgreSQL + Podium + English + + + + Greg Stark + + + + + + 14:30 + 00:30 + UA2.114 + pg_sql_med + SQL/MED + + BSD+PostgreSQL + Podium + English + + + + Peter Eisentraut + + + + + + 15:00 + 01:00 + UA2.114 + pg_fs_io_db_perspective + Filesystem I/O From a Database Perspective + + BSD+PostgreSQL + Podium + English + + + + Selena Deckelmann + + + + + + 16:00 + 00:30 + UA2.114 + bsd_cpan2port + Painless Perl Ports with cpan2port + + BSD+PostgreSQL + Podium + English + + + + Benny Siegert + + + + + + 16:30 + 00:30 + UA2.114 + bsd_syscalls + Use of FreeBSD system calls + + BSD+PostgreSQL + Podium + English + + + + Gregory Holland + + + + + + + + 09:15 + 00:15 + H.1302 + drupal_welcome + Welcome to the Drupal devroom + + Drupal + Other + English + Welcome to the Drupal developer room at FOSDEM 2009. + + + Dries Buytaert + + + + + + 09:30 + 00:45 + H.1302 + drupal_7 + What's new in Drupal 7? + + Drupal + Podium + English + What is there to look forward to in Drupal 7, and when can we have it? + Learn about CCK-like fields in core, the new testing framework, PDO Database backend, OPML imports, improved time zone support, better file handling, safety from badgers, and the free ponies for everyone. This will be a tour of the user facing and developer oriented features and changes that will make Drupal 7 sooo hawt. + + Dries Buytaert + + + + + + 10:15 + 00:45 + H.1302 + drupal_performance + Improving Drupal's page loading performance + + Drupal + Podium + English + As many already know by now, 80 to 90% of the response time of a web page is dependent on the page loading performance (the fetching of the HTML and all files referenced). This is different from the page rendering performance, which is just the time it takes to generate the HTML. +Drupal already tackles several issues pretty well. But there's more we can do! + You can solve several additional problems today, just by installing extra modules (such as [http://drupal.org/project/sf_cache Support file Cache]), by configuring Apache (e.g. gzipped output), or by configuring some shell scripts (e.g. to optimize image files). I'll explain you how to apply these solutions. + +For most Drupal sites, CDN integration and putting JS at the bottom of the page have the biggest impact. However, these two techniques are currently very hard to apply properly to Drupal: both require hacks to Drupal core. +My aim is to solve both of these problems as part of my bachelor thesis. I'll explain how I expect to solve this and the impact of both issues on your site. + + Wim Leers + + + + + + 11:00 + 00:45 + H.1302 + drupal_community_website + Building a Community Website using Drupal + + Drupal + Podium + English + Jobcircle is a community website for young employed people where knowledge and experiences are being shared, funded by the Dutch trader union 'FNV Bondgenoten'. It is a joint talk by developer and customer where the project goal and history are evaluated by the customer and where Niels goes more in-depth on the technical architecture and experiences. + + + Niels van Mourik + + + + + + 11:45 + 00:45 + H.1302 + drupal_multi_site + Drupal Multi-site for Fun and Profit + + Drupal + Podium + English + Tired of handing out FTP accounts for Web site hosting? Get a little queasy whenever someone asks about Front Page extensions? Drupal to the rescue! + By using Drupal's multi-site install you can use a single code base to power all of your customers' Web sites. Installing a single code base will also make tech support and security updates a whole lot easier. In this session you will learn how to install Drupal, where to put modules and themes so they show up in the right places, and how ensure your customers have the right amount of control over their own domain. Emma will use real world examples from her own business network to reveal how Drupal can convert even the smallest clients to pots of gold. + + Emma Jane Hogbin + + + + + + 13:00 + 01:00 + H.1302 + drupal_import_manager + Importing data with job queue and import manager + + Drupal + Podium + English + Continuously importing data, of any size or number of sources, needs infrastructure. Neil Drumm wrote [http://drupal.org/project/job_queue Job Queue] and [http://drupal.org/project/import_manager Import Manager] to queue and manage imports. + +He will show how to use these modules to get the basics out of the way. + Neil Drumm will also talk about a few strategies he found successful for data conversion. The presentation will not be able to cover how to get everything into nodes, but will teach how to think about converting data. + +At [http://maplight.org/ MAPLight], Neil managed importing data from GovTrack, OpenSecrets, the FEC, the Iowa Legislature and other government entities. Some updates happen within 30 minutes of an action in Congress, while others need to be run monthly, or reports as-needed. + + Neil Drumm + + + + + + 14:00 + 00:45 + H.1302 + drupal_staging_to_live + Moving Content from Staging to Live Server + + Drupal + Podium + English + Roel explains how he manages deployments of very large Drupal sites from staging to live servers. + The problem: +A client has a live site with 1000's of pages, 10's of blocks containing rather static information. +There is almost no user interaction except for a few webforms to collect some user information (contact, request for documentation, etc..) + +While the site is live, the client wish to prepare for the next iteration of the website. The new version will contain altered, new and deleted nodes and blocks. There is a workflow to allow approving all the changes by the end-redaction. While the old site is unaltered they wish to have a live-preview of what the new website will look like. + +a Solution? +Can Drupal handle this out-of-the-box? +An initial guess would be to define a some states using the workflow module and handle revisions using the revision_deletion and revision_moderation modules. +But that doesn't help when you want to test drive the site as anonymous visitor. +How DID we do it? A small set of bash scripts and drupal modules did the trick. We'd be honoured to explain those and be cross-fired with questions! + + Roel de Meester + + + + + + 14:45 + 00:45 + H.1302 + drupal_showcase_flanders + Drupal Showcase: Cultural Activities in Flanders + + Drupal + Podium + English + Davy explains how they implement a complex Drupal website at DotProjects. + DotProjects is developing a new website for Cultuurnet Vlaanderen. This website allows users to browse all kinds of events happening in Belgium. All event data is not managed in Drupal but is managed in Cultuurnet's own system and access to this data is provided by their REST API. + +This event data, which is "hosted" on their API is enriched with comments, ratings, YouTube video's, Press releases, ... in Drupal. To make this possible, all events need to exist in Drupal as nodes. For this we developed an offline synchronisation method and a real time synchronisation method where nodes for events are only created as soon as their node page is accessed. + +For each event the system also tries to look for a YouTube video, Flickr image, Wikipedia entry. This all happens automatically without any user interaction. For this a custom Drupal module was developed (Service Attachments) which allows to automatically look for content on APIs for each node. + +With a high focus on these two problems, we'll explain the process of implementing this website in Drupal. + + Frederik Van Outryve + Davy Van Den Bremt + + + + + + 15:30 + 00:45 + H.1302 + drupal_automated_translation + Automated Web Translation Workflow for Multilingual Drupal Sites + + Drupal + Podium + English + A non-technical presentation on how to automate the web translation process with Drupal. + Many organizations operating across the borders are reluctant to localize their (Drupal) web site content because of cost and time constraints. They are aware though that, just as print marketing, e-marketing also needs to use the business language of the local markets in order to be successful. + +Find out about how you can automate the web translation process and dramatically cut budget and deadlines, with the AWTW module for Drupal (available in the Drupal community for about a year now). And see how large organisations have been making use of this efficient solution. + +This presentation will be non-technical and given by a non-developer. + + Stany van Gelder + + + + + + 16:15 + 00:45 + H.1302 + drupal_taxonomy + Taxonomy: Drupals powerful classification system + + Drupal + Podium + English + Taxonomy is Drupal's classification system. In this talk Bart explains how it differs from a regular categorisation system and what Drupal core and contributed modules offer to manipulate, browse and apply it. + This talk gives a short explanation about what Taxonomy is and what it does in simple and clear terminology. Bart briefly describes the history of Taxonomy from Drupal 4 to Drupal 7. Finally he discusses when to use Book.module and when Taxonomy for arranging your content. + + Bart Feenstra + + + + + + + + 09:00 + 00:45 + H.1308 + moz_seamonkey + SeaMonkey + + Mozilla + Podium + English + SeaMonkey 2 and the vision beyond. + + + Robert Kaiser + + + + + + 09:45 + 00:45 + H.1308 + moz_qa_overview + Overview of Mozilla QA + + Mozilla + Podium + English + Who we are, what we do, how to get involved. + + + Carsten Book + + + + + + 10:30 + 00:45 + H.1308 + moz_oni_concurrency + Oni - Structured Concurrency for JavaScript + + Mozilla + Podium + English + In this talk I'll present the JavaScript [http://www.croczilla.com/oni Oni] library, a set of operators for writing composable concurrent code. + [http://www.croczilla.com/oni Oni] attempts to restore some modularity to concurrent programs; it offers a 'structured' alternative to conventional 'unstructured' idioms such as asynchronous callbacks. + + Alex Fritze + + + + + + 11:15 + 00:45 + H.1308 + moz_sunbird + Rising to the Sun(bird) + + Mozilla + Podium + English + How to get involved with the [http://www.mozilla.org/projects/calendar/sunbird/ Calendar] Project and where we are heading. + This presentation is a call to everyone to get involved. No matter if you prefer testing software (QA), designing interfaces or developing extensions or core code: We need you! + +The goal of this presentation is to show some interesting experiments you might be interested in developing, how you can use [https://addons.mozilla.org/firefox/addon/9018 mozmill] to easily record tests that help improve the software quality or what you can do as a designer if you have ideas on how to improve Calendar's visual appearance. + + Philipp Kewisch + + + http://www.mozilla.org/projects/calendar/sunbird/ + + + + 12:00 + 01:00 + H.1308 + moz_thunderbird + Thunderbird 3: what's new, where is it heading, and how you can help + + Mozilla + Podium + English + After several years of hibernation, [http://www.mozilla.com/en-US/thunderbird/ Thunderbird] development has ramped up again in the last year especially. This talk is intended to give open source hackers an update on where Thunderbird is in its runup to the Thunderbird 3 release, what new systems are available for add-on developers, and how to get involved if you want to help fix email. + In the first part, David Ascher, one of the drivers of Thunderbird 3, will give an overview of the important changes that have either already landed, or are in various stages of development. These include: +* a whole slew of platform-level updates which fall out of the Gecko platform development. +* a new SQLite & JavaScript-powered database of all of your emails, which lets you build powerful new ways of reading & processing mail +* a set of optimizations that make the day-to-day interactions with Thunderbird much faster, thanks to moving blocking operations to background threads +* new views on email, including google-style search results, conversation views, canvas-based visualizations, and more. + +In the second part Ludovic Hirlimann, QA lead for Thunderbird, will explain how you can involve yourself into fixing email: +* Joining the QA effort - where bugs need to be reported, triaged, tests written and run. +* Joining our marketing effort and help the rebirth of thunderbird ([http://www.spreadthunderbird.com/ spreadthunderbird]) +* Proposing patches and helping the development team. +* Translating thunderbird: how to help make Thunderbird rock in your language. +* Developing extensions to build the tb ecosystem. + +There will be plenty of time for Q&A. + + Ludovic Hirlimann + David Ascher + + + + + + 14:00 + 00:45 + H.1308 + moz_prism + Prism + + Mozilla + Podium + English + As Prism approaches its 1.0 release, we will discuss the current state of the project and future plans. + We will look at a demo of how web applications can deploy desktop integration features using Prism, including tray icons, dock/tray menus, protocol handlers, sound and bubble notifications. + +Future plans that will be covered include Greasemonkey support, icon/user script repository, user interface improvements and tighter integration with Firefox. + + Matthew Gertner + + + http://labs.mozilla.com/projects/prism/ + + + + 14:45 + 00:45 + H.1308 + moz_mobile_fennec + Mobile/Fennec + + Mozilla + Podium + English + General overview; Fennec 1.0a2 and performance. + + + Mark Finkle + Christian Sejersen + + + + + + 15:30 + 00:45 + H.1308 + moz_embedding + Embedding + + Mozilla + Podium + English + The new embedding API + + + Mark Finkle + + + + + + 16:15 + 00:45 + H.1308 + moz_headless + Mozilla Headless back-end + + Mozilla + Podium + English + + + + Chris Lord + + + + + + + + 11:00 + 01:00 + H.1309 + xorg_multimedia + Multimedia processing extensions for the X Window System + + X.org + Podium + English + This talk reports on experiences gained with a set of experimental extensions for multimedia processing in the X Window System. They allow to transmit compressed images and audio through the X protocol, and provide playback synchronization capabilities within the X server. This for example to build network-transparent media players and bring multimedia to classical thin clients. + + + Helge Bahmann + + + + + + 12:00 + 01:00 + H.1309 + xorg_power_mgmt + Aggressive power management in graphics hardware + + X.org + Podium + English + Computers spend a lot of time idle, and graphics cards spend a lot of time just displaying a static image. This talk presents various techniques for reducing the power consumption of graphics hardware without any significant impact on visual quality or performance. + + + Matthew Garrett + + + + + + 14:00 + 01:00 + H.1309 + xorg_r600_demo + r600_demo: Programming the New GPU Generations from AMD + + X.org + Podium + English + By allowing the release of r600_demo AMD has carried out a first step of their promise to release enough information for open source DRI driver development. + As the initial, to be released documentation will be very register centric there is hardly enough information about how the chips are actually working. This talk will give an overview over how the r6xx and r7xx chip families are to be programmed, and in which pit falls one might stumble. + + Matthias Hopf + + + + + + 15:00 + 01:00 + H.1309 + xorg_llvm_gallium + LLVM + Gallium 3D: Mixing a compiler with a graphics framework + + X.org + Podium + English + With the increasing importance of shaders, it has become necessary to use advanced optimization strategies for shader compilers. + This talks presents the ongoing work on integrating a compiling and optimizing framework (LLVM) with a 3D framework (Gallium 3D). We will discuss the main difficulties behind this work, the inner workings and the current developments. + + Stéphane Marchesin + + + + + + 16:00 + 01:00 + H.1309 + xorg_shader_opt + Shader Compiler Optimisation Strategies + + X.org + Podium + English + Different GPUs have different architectures and thus require different shader compiler optimisations for more optimal performance. + This talk explains some of the differences between both AMD, Nvidia and Intel GPUs and will present some compiler algorithms to optimise shaders accordingly. + + Jerome Glisse + + + + + + + + 10:00 + 01:00 + H.2213 + centos_intro + Introduction to CentOS + + Fedora+CentOS + Podium + English + The reasons why you need an enterprise Linux distro. + What is the CentOS project ? From where is it coming and where is it going ? Wanted to be involved ? What's cooking actually in the CentOS kitchen ? Let's have an interactive talk about that (and more). + + Fabian Arrotin + + + + + + 11:00 + 01:00 + H.2213 + centos_el_landscape + Enterprise Linux Competitive Landscape + + Fedora+CentOS + Podium + English + + + + Dag Wieers + + + + + + 12:00 + 00:30 + H.2213 + centos_desktop + CentOS on the desktop + + Fedora+CentOS + Podium + English + Why CentOS is a preferred choice on the desktops in the enterprise or even at home. + + + Toshaan Bharvani + + + + + + 12:30 + 00:30 + H.2213 + centos_san + Poor Man's SAN with CentOS and gPXE + + Fedora+CentOS + Podium + English + How to boot from an iSCSI LUN. + CentOS can be installed onto an iSCSI LUN and you can boot from it if your hardware supports it. Usually that means you need an iSCSI HBA or at least some fancy Firmware extensions. However, it can also be done on standard-hardware by exploiting PXE. + + Andreas Rogge + + + http://etherboot.org/ + + + + 13:00 + 01:00 + H.2213 + centos_selinux + Securing CentOS with SELinux + + Fedora+CentOS + Podium + English + drwxr-x--x is still the normal means of security under linux, giving access rights to data to users, groups and anyone else. This method isn't very flexible, so access rights are either given for larger groups of people or the administrator is tearing out his hair because he is lost in a maze of user, file and directory structures, which make working more than complex, but don't make the system more secure. Enter SELinux, a security infrastructure which is integrated into the kernel and promises to make securing your system more flexible. + SELinux is a security framework which is included in the kernel of the Linux operating system. Under SELinux files don't only have the normal access rights or ACLs, but also have a context. You as a user or a program have to be able to use that context to get access - even if normal access rights would allow you to change the file. This talk gives a short overview of SELinux and talks about the tools in CentOS 5 (and Fedora) which enable you to change the behaviour of SELinux. In the second part we will secure a small daemon with the tools we learned about in part 1. + + Ralph Angenendt + + + + + + 14:00 + 01:00 + H.2213 + centos_ldap + Large CentOS LDAP Deployments + + Fedora+CentOS + Podium + English + How to support a huge number of users on a huge number of machines resulting in millions of user accounts. + + + Geerd-Dietger Hoffmann + + + + + + 15:00 + 01:00 + H.2213 + fedora_cobbler_koan + Cobbler & Koan + + Fedora+CentOS + Podium + English + Cobbler is a Linux installation server that allows for rapid setup of network installation environments. + Most deployments of Linux systems are very rarely just one or two systems. Once you get past just installing Linux on your home system or your workstation it is time to think about how you are going to manage installing, and if required re-installing, these groups of systems in a repeatable manner. This is where Cobbler and Koan come in. + +Cobbler is a next generation systems management tool designed to keep a track of not just your systems but the initial system deployment configuration, host networking and even the configuration management. Koan provides the same facilities in the new world of systemvirtualization. During this talk we aim to demonstrate just how easy Cobbler and Koan make keeping track of your Linux deployments and configurations. + + Jasper Capel + Robert Lazzurs + + + Cobbler project + + + + 16:00 + 01:00 + H.2213 + fedora_freeipa + FreeIPA + + Fedora+CentOS + Podium + English + [http://www.freeipa.org/page/Main_Page FreeIPA] is an integrated security information management solution combining Linux (Fedora), Fedora Directory Server, MIT Kerberos, NTP, DNS. + It consists of a web interface and command-line administration tools. Currently it supports identity management with plans to support policy and auditing management. + + Simo Sorce + + + FreeIPA + + + + + + 10:00 + 00:45 + H.2214 + opensuse_education + openSUSE education + + openSUSE + Podium + English + The openSUSE education project has the goal is to support schools using openSUSE, create and describe additional software-packages for educational projects and create an "add-on" CD for the regular openSUSE distribution. + The talk gives you an overview about the project, where we are now and what has to be done. + + Lars Vogdt + Andrea Florio + + + openSUSE Education project + + + + 10:45 + 00:30 + H.2214 + opensuse_zypper + Zypper - openSUSE's command line software manager + + openSUSE + Podium + English + Zypper is a command line software management tool using the ZYpp library. It can be used to manage repositories, search for packages, install them, keep them up to date and more. + This talk will highlight it's most interesting features, tips & tricks, and future plans. + + Ján Kupec + + + Zypper + + + + 11:15 + 00:45 + H.2214 + opensuse_wine + Wine - the free Windows Emulator + + openSUSE + Podium + English + After 15 years of development Wine, the free Windows Emulator, has reached the level of completeness a 1.0 release, allowing users to now run a broad spectrum of applications between Office productivity applications, Games or speciality applications. + This talk will give an introduction on how Wine works, what is possible and how it all works together, why it is not slower, why emulating only the runtime environment is to a distinct advantage compared to virtual machines. + + Marcus Meissner + + + Wine website + + + + 12:00 + 00:45 + H.2214 + opensuse_mirrorbrain + MirrorBrain - Free CDN for Free Software Projects + + openSUSE + Podium + English + The MirrorBrain, a.k.a. the openSUSE download redirector, automatically redirects clients (web browsers, download programs) to a mirror server near them. + It works similar to the systems employed by sourceforge.net, mozilla.com or similar large organizations, which face a number of download requests which is too high to be practically handled by a single site. To find a mirror close to the client, the redirector "geolocates" the client by its IP address. If several mirrors are found to be suitable, the redirector load-balances requests to the mirrors based on their capabilities. + + Peter Poeml + + + Mirrorbrain website + + + + 12:45 + 00:45 + H.2214 + opensuse_netbooks + openSUSE on Netbooks + + openSUSE + Podium + English + Everybody loves Netbooks, so why don't use your favorite Linux distribution on it. + The talks shows what the pitfalls and limitations are and how to get openSUSE working on Netbooks. + + Stefan Seyfried + + + + + + 13:30 + 00:45 + H.2214 + opensuse_yast2_future + YaST2 - Future Roadmap + + openSUSE + Podium + English + On openSUSE 11.0, YaST came out with new features like a themable look and a robust & fast package manager. +11.1 came out with more robust solving and various minor features. + In this talk we will present all the features that have high priority for the next openSUSE release and areas where we are doing research that will eventually be features in future versions. + + Duncan Mac-Vicar Prett + + + + + + 14:15 + 00:30 + H.2214 + opensuse_openfate + openFATE - How to get your most wanted features into openSUSE + + openSUSE + Podium + English + Every distribution have features beside the usual version updates of packages. How to decide which feature should be in the next version, which are doable in the usually short timeframe, where to focus the energy and time of the developers? openfate makes the process more easy to track and more transparent. + + + Thomas Schmidt + + + openFATE project page + + + + 14:45 + 00:45 + H.2214 + opensuse_arch_collab + Architecture of Collaboration + + openSUSE + Podium + English + This session will focus on the "Architecture of Collaboration" implemented in the [http://www.kablink.org/ Kablink Open Collaboration project]. + See how the Kablink platform allows you to build applications that solve problems while encouraging collaboration among your team members. During this session an application will be developed that takes advantage of the social networking features of Kablink while solving a common teamworking problem. + + Brent McConnell + + + Kablink website + + + + 15:30 + 00:45 + H.2214 + opensuse_gnome_team + Bits from your GNOME team (with build service fun inside!) + + openSUSE + Podium + English + At the last FOSDEM, JP Rosevear gave a good overview of what was going on the GNOME land of openSUSE. It turns out that since then, many things have happened and 2008 helped the team achieve a lot. + This talk will present some interesting technical changes on your desktop and how it affects the while distribution, but will also focus on the GNOME team and its processes, like for example our use of the build service. + + Vincent Untz + + + openSUSE GNOME team + osc-gnome + + + + 16:15 + 00:45 + H.2214 + opensuse_community_driven_kde + Putting the 'open' in openSUSE : Community-driven KDE development + + openSUSE + Podium + English + KDE, aka "the other desktop", is very popular in the openSUSE community. The talk will give you an overview about the KDE integration, what is new in KDE and what you will see in the next releases. + + + Will Stephenson + + + openSUSE KDE team + + + + + + 09:00 + 02:00 + AW1.105 + ooo_code_mac_port + Traveling in OOo code and having Fun with the Mac port + + OpenOffice.org + Workshop + English + In this workshop, I'd like to describe my recent contributions for the Mac OS X port of OpenOffice.org, and organize a travel in several modules (including one new module), explaining what we find in them, through little examples I wrote. + * Part1: describe the Apple Remote implementation, locate and show the involved code, explain the difficulties, the good and bad choices, how they have been improved in several child workspaces, and the future improvements. This feature does concern Mac OS X, but not only, and recent changes do concern all ports. + +* Part 2: I'll describe how I removed menu entries (macmenusquit child workspace) to match better with Aqua Human Interface Guidelines + +* Part 3 : describe the work in progress of the 3D OpenGL transitions in Impress for the Mac OS X port. + +Concerned languages : C/C++ , objective C/C++, bash, perl and a bit of xsltproc +Concerned modules will be: postprocess, apple_remote, vcl, sd, scp2, slideshow, config_office, officecfg + + Eric Bachard + + + + + + 11:00 + 02:00 + AW1.105 + ooo_calc_profiling + OOoCalc Bug Hunting and Performance Profiling Workshop + + OpenOffice.org + Workshop + English + The workshop will give an overview of how to dive into the OooCalc spreadsheet code for bug hunting, using a gdb debug session. If time permits we will fix an issue live during the workshop. The second part of the workshop will give an introduction to performance profiling using the valgrind and kcachegrind tools to spot performance bottlenecks. + + + Eike Rathke + + + + + + 14:00 + 02:00 + AW1.105 + moz_marketing_cafe + Mozilla Marketing Café + + Mozilla + Meeting + English + Members of Mozilla's marketing team will lead an informal brainstorm/discussion on open source marketing over fresh coffee and biscuits. + This session is open to all those interested in talking about the marketing of open source projects and learning more about how Mozilla Communiy Marketing works. + + John Slater + William Quiviger + + + + + + + + + + 09:00 + 01:00 + AW1.117 + geo_gc_objc + Garbage collection with Objective-C + + GNUstep+OpenGroupware+Etoile + Podium + English + The history of GC in Objective-C, how to develop garbage collected applications, and a review of how the venerable GNUstep implementation is going to be compatibile with the new Apple garbage collection implementation for MacOS-X/Cocoa. + + + Richard Frith-Macdonald + + + + + + 10:00 + 01:00 + AW1.117 + geo_gap_price + GAP Applications + PRICE + + GNUstep+OpenGroupware+Etoile + Podium + English + [http://www.nongnu.org/gap/ GAP (GNUstep Application Project)] seeks to develop a comprehensive set of administration and user level tools to make using the GNUstep environment a very pleasant experience. + +[http://price.sourceforge.net/ PRICE (Precision Raster Image Convolution Engine)] is an application that is capable of filtering and processing images. + * Introduction to the GNUstep Application Project (GAP) +* current status and future goals +* Overview on some applications: + * FTP + * BatteryMonitor + * LaternaMagica + * Vespucci +* PRICE capabilties and architecture + + Riccardo Mottola + + + + + + 11:00 + 01:00 + AW1.117 + geo_pragmatic_smalltalk + Pragmatic Smalltalk + + GNUstep+OpenGroupware+Etoile + Podium + English + Pragmatic Smalltalk is a new Smalltalk implementation for [http://etoileos.com/etoile/ Etoile], allowing developers to combine the power and flexibility of Smalltalk with the Etoile and GNUstep frameworks. + +It is based on LLVM and the GNU Objective-C runtime, allowing programmers to freely mix Objective-C and Smalltalk in their program. + I will present the current state of our implementation as well as the ongoing work on the development environment. + + Nicolas Roard + + + + + + 12:00 + 01:00 + AW1.117 + geo_server_apps + Building Server Applications using Objective-C and GNUstep + + GNUstep+OpenGroupware+Etoile + Podium + English + This presentation introduces server application development using Objective-C and GNUstep. + GNUstep provides a full, mature environment for building large-scale "enterprise" server software in Objective-C. + +The talk introduces the various components and discusses how to best take advantage of them in real-world projects. + + Nicola Pero + + + + + + 14:00 + 01:00 + AW1.117 + groupdav_caldav_meet + GroupDAV/CalDAV Implementors Meeting + + GNUstep+OpenGroupware+Etoile + Meeting + English + This is not a talk but a gathering of implementors of WebDAV based groupware protocols. + CalDAV, CardDAV and GroupDAV are HTTP/REST based client/server protocols for groupware systems. Prior CalDAV, every groupware system invented its own protocols for client/server communication. With CalDAV we finally have found a protocol which actually gets implemented by the majority of FOSS server and client projects. + +The GroupDAV/CalDAV implementor meeting attempts to bring to together developers from various groupware systems, including Kontact, Evolution, Mozilla Sunbird/Lightning, OGo, Horde, eGroupware, etc. + +Anyone with an interest in Groupware protocols is invited to join and discuss. + + Helge Heß + + + + + + + + 09:00 + 00:15 + AW1.120 + ror_welcome + Welcome to the Ruby and Rails devroom + + Ruby and Rails + Other + English + Welcome to the Ruby and Rails developer room at FOSDEM 2009. + + + Peter Vandenabeele + + + + + + 09:15 + 00:45 + AW1.120 + ror_ironruby + IronRuby with .NET technologies + + Ruby and Rails + Podium + English + * A brief discussion of what the DLR is and what it brings to the table in .NET/MONO. +* Introduction on how IronRuby could possibly ease rails deployment on IIS Silverlight as cross-platform GUI toolkit. +* How to use silverlight to run ruby in the browser much like javascript +* Silverline: an integration for Silverlight with Rails. + + + Ivan Porto Carrero + + + IronRuby + + + + 10:00 + 00:30 + AW1.120 + ror_prawn + Prawn + + Ruby and Rails + Podium + English + [http://prawn.majesticseacreature.com/ Prawn] is Ruby's solution to generate PDF files. + In this talk, you'll get an overview of the history of the project, the direction it is going in, learn how to create PDFs with Ruby, and even get some code snippets to get you started! + + Tom Klaasen + + + Prawn website + + + + 10:30 + 00:30 + AW1.120 + ror_logilogi + LogiLogi and Freedom on the Brave New Web + + Ruby and Rails + Podium + English + [http://en.logilogi.org/ LogiLogi] is a hypertext platform featuring a rating-system that models peer review and other valuable social processes surrounding academic writing (in line with Bruno Latour). Contrary to early websystems it does not make use of forum-threads (avoiding their many problems), but of tags and links that can also be added to articles by others than the original author. + The talk will be on several topics; On LogiLogi.org, a webplatform for philosophers written in Rails and on the LogiLogi Foundation which thinks Web-Applications should be Free Software too, that is Affero GPLed, if Free Software is to have a future on the Brave New Web. That is we should think beyond Stallman's: one should not rely on another’s machine to “do calculations with ones data”. + +Also by the end of january we will have extracted and released some gems and Rails plugins, one for creating Spam-free forms without captchas (in this way http://nedbatchelder.com/text/stopbots.html) and yet another solution for the rounded corners problem (and scaling and resizing SVG back-ground images in general) using javascript and RMagick. We might at the end shortly demonstrate these too if the audience wishes. + +LogiLogi is a fully RESTfull Rails-app, which is Free Software. + + Wybo Wiersma + + + + + + 11:15 + 00:45 + AW1.120 + ror_myowndb + MyOwnDB/Dedomenon + + Ruby and Rails + Podium + English + [http://www.myowndb.com Myowndb] was launched early 2006 as one of the first Web databases exploiting Ajax to present its users with an easy to use interface. +The software is based on Ruby on Rails and Postgresql, and is developed by Free and Open Source Software developers, who released the MyOwnDb.com engine under the AGPLv3 at [http://www.dedomenon.org dedomenon.org]. + This session will introduce you to the software, show how it was developed with flexibility and extensibility in mind and how easy it is to adapt it to your own needs. + + Raphaël Bauduin + + + Dedomenon + MyOwnDB + + + + 12:00 + 00:30 + AW1.120 + ror_wt_ruby + Developing Web applications with Wt::Ruby + + Ruby and Rails + Podium + English + The Wt toolkit allows programmers to develop web applications in C++. It abstracts away the details of coding in HTML, JavaScript and CSS so that the developer can just work with widgets in a similar manner to the Qt library for desktop applications. When Wt is combined with Ruby via the Wt::Ruby bindings, it offers a very different approach to the more traditional Rails or ASP style approach based on web pages, where program code is embedded into HTML. + The talk will discuss how Wt::Ruby works, give an overview of the api and how it can be used with FastCGI in an Apache server. There are many interesting possibilities to combine Rails technology, such as ActiveRecord or the ActiveSupport Ruby extensions, with Wt::Ruby and the talk would hope to inspire people to start experimenting.  + + Richard Dale + + + Wt::Ruby + + + + 13:30 + 00:45 + AW1.120 + ror_objects + On objects, classes, binding and scoping in Ruby + + Ruby and Rails + Podium + English + This presentation delves into Ruby's object model. + Ruby's object model is class-based, so we cannot discuss objects without including classes. Next we discuss bindings and scoping in Ruby, which are somewhat related but still two different concepts. This presentation intends to go beyond the knowledge of the average Rubyist and aims to teach you more about the intricate details of how Ruby works and how you can exploit these to your advantage, even if just to wow (TM) your coworkers. + + Peter Vanbroekhoven + + + + + + 14:15 + 00:30 + AW1.120 + ror_sinatra + Introduction to Sinatra + + Ruby and Rails + Podium + English + [http://sinatra.rubyforge.org/ Sinatra] is a Domain Specific Language(DSL) for quickly creating web-applications in ruby. It keeps a minimal feature set, leaving the developer to use the tools that best suit them and their application. + With Sinatra you can build a web application in a single file, which makes it fun and easy to use. + + Koen Van der Auwera + + + Sinatra + + + + 14:45 + 00:30 + AW1.120 + ror_ruby_and_java + Ruby and Java: What are the differences? + + Ruby and Rails + Podium + English + Ruby is quite often presented as the Java successor. This is a highly controversial purpose. However, when you start a new project it can be important to know what are the advantages of these two great languages. In this talk, we will present their differences. + Java is a well-established and well-known language. In opposite, Ruby is a rising star which is not mastered by everybody yet. When you start to develop a new project you have to make a language choice. It is not always easy to choose between learning an exciting new language or relying on a popular highly-used one. + +In this talk, I will discuss the pros and cons of Ruby and Java, what are the best trade-offs for your application and what are the performance differences. I will show that it is not that complicated to learn Ruby coming from Java. From a business point of view, I will also explain why a good language choice can help you saving money. + +Here is a brief talk summary : +* Ruby vs. Java syntax +* Interpreted or compiled languages +* Dynamic typing +* Metaprogramation +* Language related philosophies +* Performance comparison + +We will also have a quick peek at JRuby, the Ruby interpreter build upon JVM. + + Jean-Baptiste Escoyez + + + http://www.rubyrailways.com/sometimes-less-is-more/ + http://www.javaworld.com/javaworld/jw-07-2006/jw-0717-ruby.html + http://www.dmh2000.com/cjpr/ + + + + 15:30 + 00:45 + AW1.120 + ror_i18n_rails_2_2 + Internationalization in Rails 2.2 + + Ruby and Rails + Podium + English + This talk will discuss how the new i18n framework of Rails 2.2 eases the translation of rails applications in multiple languages. + Probably the biggest new feature of Rails 2.2, released in November 2008, is its integrated internationalization framework, which ends a complicated past of many incompatible solutions based on various gems and plugins. + +This talk will discuss the various following topics: +* a brief recap of the history of i18n in rails +* an explanation what the new framework does: +** the API and its implementations +** translation files +** namespaces +** interpolation and pluralization +* a small demo of how to use the framework +* a presentation of plugins available to extend the framework +* a list of valuable external resources + + Nicolas Jacobeus + + + http://rails-i18n.org/ + + + + 16:15 + 00:45 + AW1.120 + ror_hosting + Hosting ruby on rails + + Ruby and Rails + Podium + English + Real-life experiences in designing, engineering and supporting hosting environments. + Choosing the right technologies, tying them together and debugging errors in the stacks. Practical examples, benchmarks and code-snippets to inform and entertain... + + Bernard Grymonpon + + + http://www.wonko.be + http://www.openminds.be + + + + + + 09:30 + 00:30 + AW1.121 + debian_font_task_force + Debian Font Task Force: overview and impact on the open font community + + Debian + Podium + English + A quick overview of the work done by the Debian Fonts task force. + * the needs and challenges, +* the growing body of open fonts available, +* the impact on i18n, +* some tips on finding/using/managing open fonts, +* the toolkit for designing/contributing to existing projects and the wider open font community: OpenFontLibrary, +* freedesktop.org, +* cross-distro collaboration, +* etc. + +And how you can help. + + Nicolas Spalinger + + + http://pkg-fonts.alioth.debian.org/ + + + + 10:00 + 01:00 + AW1.121 + debian_tdebs + TDebs + + Debian + Podium + English + Tdebs - translation packages. A guide to the draft TDeb specification and how this support can be implemented in Debian Squeeze with actual .tdebs arriving in Squeeze+1. + Includes a discussion to improve the specification itself. + + Neil Williams + + + http://people.debian.org/~codehelp/tdeb/ + + + + 11:00 + 01:00 + AW1.121 + debian_i18n + Internationalization in Debian: How to improve further? + + Debian + Podium + English + Nicolas will present the status of the localization support for Lenny. He will then present the tools and processes for translators, developers, and maintainers which permitted these achievements, and how they could be improved. + + + Nicolas François + + + + + + 12:00 + 01:00 + AW1.121 + debian_cdbs + The Common Debian Build System (CDBS) + + Debian + Podium + English + CDBS is a set of makefile fragments that you can include into debian/rules to automate common routines for building Debian packages. + It has evenly divided the Debian community into lovers and haters. In this presentation, Peter will present the background and functionality of CDBS, discuss some of the criticisms, and muse about future plans. + + Peter Eisentraut + + + + + + 13:00 + 01:00 + AW1.121 + debian_release_mgmt + Release management in Debian - can we do better? + + Debian + Podium + English + Using some practical examples, mostly from personal experience, of things that have not been handled optimaly during the lenny release cycle, I will give my view on how they could have been handled better. I will also take a more general look at the current role of release managers and the release team in Debian and look back on the Etch-and-a-half release. + + + Frans Pop + + + + + + 14:00 + 01:00 + AW1.121 + debian_lenny_release + Lenny - the road to release + + Debian + Podium + English + With the archive now frozen, the Lenny release isn't far away. What does this mean for the average developer? + This talk introduces the Release Team, the policies behind freezes, removals, binNMUs, and general release management in Debian. + + Neil McGovern + + + + + + 15:00 + 01:00 + AW1.121 + debian_kde4 + The long road to KDE4 in Debian + + Debian + Podium + English + + This talk will handle a variety of topics, including but not limited to: +* Packaging with cmake, and packaging KDE4 applications in general +* Distributions' adapations of KDE: merging in patches, fixing up build systems, backporting features, and other such things +* New KDE4 technologies for stale Debian people: why you need Java and MySQL for a proper desktop +* The road to KDE4 in testing + + Sune Vuorela + + + + + + 16:00 + 01:00 + AW1.121 + debian_gsoc2008 + Debian and Google Summer of Code 2008: wrap-up and insights + + Debian + Podium + English + Twelve Debian projects were funded this year ranging from network and package management to hardware support, QA and security. + +Let's have a look at the resulting software and give some insights for the next Summer of Code and student involvment. + + + Obey Arthur Liu + + + + + + + + 10:00 + 01:00 + AW1.124 + ada_gprbuild + GPRBuild - A New Build Tool for Large-Scale Software Development + + Ada + Podium + English + GPRBuild is a Free (GPL) modern multi-language builder from AdaCore. + It is a configurable tool that is able to drive a large number of tool chains, both native and cross, of many languages, such as Ada, C, C++, Fortran, Assembler, etc. With GPRBuild, you are able to build systems written in one or several languages, with the main program in any language. + +GPRBuild (re)compiles sources, (re)builds libraries and (re)links executables. + + Vincent Celier + + + GPRBuild 1.2.0 + + + + 11:00 + 01:00 + AW1.124 + ada_oop_model + The Object-Oriented Programming Model in Ada 2005 + + Ada + Podium + English + This presentation exposes how Ada handles the object oriented paradigm, and especially how its model is different from what is commonly found in other languages. It discusses the benefits and drawbacks of this original approach. + + + Jean-Pierre Rosen + + + Ada Object Oriented Programming in Ada 2005 + Rationale for Ada 2005: Object oriented model + + + + 12:00 + 01:00 + AW1.124 + ada_ast2cfg + Ast2Cfg - A Framework for CFG-Based Analysis and Visualisation of Ada Programs + + Ada + Podium + English + The control flow graph is the basis for many code optimisation and analysis techniques. [http://cfg.w3x.org/ast2cfg/ast2cfg.html Ast2Cfg] is a Free Software framework for the construction of powerful CFG-based representations of arbitrary Ada programs. + The generated data holds extensive information about the original Ada source, such as visibility, package structure and type definitions and provides means for complete interprocedural analysis. + +Ast2Cfg was developed exclusively with Free Software like GNAT, the GNU Ada Compiler, and ASIS-for-GNAT. This presentation gives an overview on how to use the Ast2Cfg framework, and includes basics on the used data structures, an introduction to the architecture and a thorough coverage of the programming interface with numerous examples. + + Georg Kienesberger + + + + + + 13:00 + 01:00 + AW1.124 + ada_bof_1 + Ada informal discussions Lunch Time + + Ada + Podium + English + Adalog and AdaCore Stands + + + Valentine Reboul + + + + + + 14:00 + 01:00 + AW1.124 + ada_marte_os + MaRTE-OS + + Ada + Podium + English + MaRTE-OS, A Hard Real-Time Operating System for Embedded Devices. + +[http://marte.unican.es MaRTE-OS] is a Free (GPL) operating system developed in Ada that complies with the POSIX.13 minimal real-time subset (also known as "the toaster profile") and Ada Real-Time Systems Annex D. + It is thread based (no support for processes or different memory spaces and MMU's) and provides all synchronisation and timing features of the POSIX Real Time standard. It can run as stand-alone (providing full Real-Time capabilitiies with support for drivers and real-time networks) or as a +Linux process (handling task scheduling itself and possibly interacting with Linux shared libraries and filesystems). Applications can be developed in Ada 2005, C or C++. The talk will present MaRTE features, the choice of Ada for Real-Time, developement environments and a demo from the [http://www.frescor.org FRESCOR project]. + + Daniel Sangorrín + Miguel Telleria de Esteban + + + FRESCOR + MaRTE OS + + + + 15:00 + 01:00 + AW1.124 + ada_gnatbench + GNATBench: Ada programming with Eclipse + + Ada + Podium + English + The [https://libre.adacore.com/GNATbench GNATbench plug-in for Eclipse] brings the advantages of AdaCore's GNAT toolset to Wind River's Workbench integrated development environment for embedded systems running VxWorks. + + + Vincent Celier + + + GNATbench + + + + + + 10:00 + 00:15 + AW1.125 + java_cacao + Cacao + + Free Java + Podium + English + This talk will give a short summary of what happened to [http://www.cacaovm.org/ Cacao] over the past year. + Michael will cover a selective overview of the most interesting topics and also present a short roadmap of things to +come. + + Michael Starzinger + + + http://www.cacaovm.org + + + + 10:15 + 00:30 + AW1.125 + java_vmkit + VMKit + + Free Java + Podium + English + The talk will describe [http://vmkit.llvm.org/ VMKit], a Java virtual machine and CLI implementation (.Net is Microsoft's implementation of the CLI) on top of the LLVM compiler infrastructure. + It will enlighten the benefits of using a shared compiler infrastructure such as LLVM as well as the current limitations. Finally, the talk will introduce VM experiments happening in the JVM implementation. + + Nicolas Geoffray + + + VMKit website + + + + 10:45 + 00:15 + AW1.125 + java_jikes + Jikes RVM 3 + + Free Java + Podium + English + Jikes RVM has turned ten years old and to wish it a happy birthday this talk will give a brief review of its history, notable events in its life time and where it is currently heading. + + + Ian Rogers + + + + + + 11:00 + 00:30 + AW1.125 + java_phoneme_vm + PhoneME CLDC and CDC VMs + + Free Java + Podium + English + [http://www.mobileandembedded.org The Java Mobile & Embedded Community] hosts Sun's GPL'ed Java ME VM projects called phoneME Feature and phoneME Advanced. + phoneME Feature is a product-quality, highly-optimized CLDC/MIDP stack designed for resource-constrained platforms such as mobile phones and embedded devices. The commercial version has shipped millions of times. + +phoneME Advanced is a product-quality, highly-optimized CDC/FP/PBP stack designed for advanced platforms such as smart-phones set-top boxes, IP TV, and other higher-end embedded applications. It is the base for many interesting projects and products, beating most other embedded VMs in performance, footprint, and robustness. + +Let us introduce you to both VMs, their communities and code bases, and show you some of the interesting projects they are being used in. + + Terrence Barr + + + + + + 11:45 + 00:30 + AW1.125 + java_grails_netbeans + Groovy Grails for NetBeans + + Free Java + Podium + English + This short talk should give Java/NetBeans developers an overview about how the [http://wiki.netbeans.org/Groovy Groovy and Grails support in NetBeans] works under the hood. + + + Matthias Schmidt + + + + + + 12:15 + 00:30 + AW1.125 + java_universal_vm + Towards a Universal VM + + Free Java + Podium + English + The Java Virtual Machine is often assumed to be tied to the Java programming language, but the success of Groovy, JRuby, and Jython shows there is more to the JVM than meets the eye. + This talk will look at aspects of the design of the JVM that make it suitable (or not) for non-Java languages, and explains how JSR 292 is designing new abstractions that can help the implementation of all languages. + +These include the "invokedynamic" instruction, interface injection, and lightweight methods. Ultimately, they might enable non-Java languages to run even faster on the JVM than Java itself. + + Alex Buckley + + + + + + 12:45 + 00:30 + AW1.125 + java_jsr292_dynamic_lang + JSR292 - Supporting Dynamically Typed Languages + + Free Java + Podium + English + JSR292 introduces VM supports that ease the implementation of dynamic languages on Java VM. + This talk will present the different parts of the spec (knowing that is a work in progress) and some details/strategies of +the implementation of the JSR292 specification in hotspot. + + Remi Forax + + + + + + 14:00 + 00:15 + AW1.125 + java_jamvm + JamVM + + Free Java + Podium + English + Over the past year JamVM has been reworked to make it smaller, faster and more reliable. This talk will give a brief overview of the changes that have been made, and will indicate future directions for the coming year. + + + Robert Lougher + + + + + + 14:15 + 00:30 + AW1.125 + java_hardware_accel + Porting a Java VM to a Hardware Accelerator + + Free Java + Podium + English + We'd like to present a project porting a Java Virtual Machine to a hardware Java accelerator. + Specifically, we are trying to port JamVM to AVR32's Java Extension Module. We'll briefly explain how hardware Java accelerators work, give motivation for our choice of a specific JVM and CPU platform, describe specifics of this port, its current state and future plans. + + Guennadi Liakhovetski + + + + + + 14:45 + 00:30 + AW1.125 + java_jnode + JNode + + Free Java + Podium + English + This talk will give an overview of [http://www.jnode.org/ JNode] and its current state. + JNode is an operating system based on Java technology. The overview of architecture, OpenJDK integration, progress during last year, current state and future directions will be covered, including a demo of the system. + + Levente Sántha + + + http://www.jnode.org/ + + + + 15:15 + 00:15 + AW1.125 + java_zero_shark + Zero/Shark + + Free Java + Podium + English + OpenJDK only supports three processors, x86, x86-64 and SPARC, but Linux distributions typically support many more. Zero is an interpreter-only port of OpenJDK that uses no assembler and therefore can trivially be built on any Linux system. + This talk will be about developments since the last FOSDEM. + +The build system has been improved to the point that building is as simple as "./configure && make"; many new platforms +have been tried and tested; and a platform-independent JIT called Shark has been developed that uses the LLVM compiler infrastructure to JIT compile Java methods without introducing system-specific code. + + Gary Benson + + + + + + 15:45 + 00:15 + AW1.125 + java_recruiting_foss + Recruiting people to FOSS Java projects + + Free Java + Podium + English + The talk will focus on experiences gathered during my time as the Gentoo Recruiters lead. + The aim is to share how we at the Gentoo Java project have succeeded or not in getting new people involved. + + Petteri Räty + + + http://www.gentoo.org/proj/en/devrel/recruiters/ + http://www.gentoo.org/proj/en/java/ + + + + 16:00 + 00:30 + AW1.125 + java_openjdk_community + OpenJDK Community Priorities + + Free Java + Podium + English + An open discussion to chat about the current OpenJDK environment: technical, infrastructure, governance, transparency, contributions, policies, etc. + We all know there's still a lot of work to do, so the focus shouldn't be on gripes, but hopefully we can identify the top +priorities and some easy-to-accomplish things that will have a big impact on community growth and contentment. + + Dalibor Topic + + + + + + 16:30 + 00:30 + AW1.125 + java_pure_gpl + Pure GPL - Is it still up to date + + Free Java + Podium + English + Many successful open source projects use pure GPL - true to the ideal of free software - requiring everyone to contribute under the same, open terms. + +But as open source increasingly becomes a foundation for core functionality used both in non-commercial as well as commercial ways the call for more liberal licenses is getting louder. + GPL with classpath exception, LGPL, BSD, Apache, Eclipse, and others allow adopters to build upon the open source code in proprietary ways - violating the true spirit of free software but giving developers more freedoms to chose the best approach for their project or product. + +This session aims to be a free-flowing discussion on the question whether pure GPL without any exceptions is still up to date with the changes occurring the software industry. + + Terrence Barr + + + + + + + + 09:00 + 01:00 + AW1.126 + mysql_pbxt_storage + Practicing DBA's Guide to the PBXT Storage Engine + + MySQL + Podium + English + PBXT is an ACID-compliant storage engine for MySQL available for MySQL 5.1 and 6.0. PBXT is also available for Drizzle and is shipped as part of the OurDelta builds for MySQL. + PBXT is reaching GA state and now its a good time to learn how you as a DBA can benefit from this. + +During this session, attendees will learn about the best PBXT practices, including PBXT deployment architectures on various types of media, PBXT multicore performance, system variables and their tuning, startup parameters and run-time statistics. The session will also cover other practically important topics such as installation, compatibility with other storage engines, migration, monitoring, recovery of corrupted data, online backup. + + Vladimir Kolesnikov + + + + + + 10:00 + 01:00 + AW1.126 + mysql_monitoring + Monitoring MySQL + + MySQL + Podium + English + Over the past 18 months different open source monitoring solutions have popped up, some of them with a lot of potential. Zabbix, Zenoss and Hyperic are probably the most famous ones but other more specialized ones exist. + Last year we evaluated these Monitoring solutions and presented our findings at OLS. As we are MySQL users we obviously wanted to take a closer look at these tools regarding their integration with MySQL. + +This talk therefore will guide the MySQL users around in a selection of Open Source Monitoring tools that they could use to monitor MySQL as a part of a bigger infrastructure. + + Kris Buytaert + + + + + + 11:00 + 00:45 + AW1.126 + mysql_cluster + MySQL Cluster + + MySQL + Podium + English + MySQL Cluster became a new product in 2008, but little is still known about it. + This talk will show how MySQL Cluster works, and show some practical situations where it can be useful. Version 6.4, the next release, will also be presented with some great new features coming in. + + Geert Vanderkelen + + + + + + 11:45 + 01:00 + AW1.126 + mysql_plugins + MySQL 5.1 Plugins + + MySQL + Podium + English + MySQL 5.1 features the plugin API. In essence, the MySQL plugin API provides a generic extension point to the MySQL server. It allows users to load a shared library into the server to extend its functionality. + A key feature is that this process is completely dynamic - the server need not be re-compiled and need not be stopped in order to benefit from the functionality of a new plugin. Hence, new functionality can be added without suffering any downtime. + +This session provides an overview of the plugin architecture. The different plugin types will be described. Then, the process of creating your own plugins will be described. This will be illustrated with code examples. + + Roland Bouman + + + + + + 13:15 + 01:00 + AW1.126 + mysql_social_networks + MySQL, powering and using Social Networks + + MySQL + Podium + English + MySQL runs a large number of the social networks of today. LinkedIn, Facebook, Flickr, Dopplr, Doodle and many other social websites run on MySQL. + It's a privilege for MySQL to be part of the fabric of tomorrow. However, MySQL is still not *using* these social networks in an optimal way. For his overview, Kaj has guinea-pig tested a number of social networks and shares his experiences, with a particular emphasis on what the social network in question can do for MySQL users, customers and employees. + + Kaj Arnö + + + + + + 14:15 + 00:45 + AW1.126 + mysql_xtradb_storage + Percona MySQL patches and the XtraDB storage engine + + MySQL + Podium + English + Percona builds binaries that contain recent versions of the MySQL database server, plus additional popular patches not included in the official binaries from MySQL/Sun. + Some patches improve InnoDB performance under high loads. Others provide diagnostic tools useful to DBAs. The patches are authored by MySQL users like Google, Proven Scaling, Open Query, and Percona itself. This talk is a guide to why we do it, our current patches and our plans for the future. Additionally, this talk will cover the XtraDB storage engine, a recent project started by Percona. + + Ewen Fortune + + + + + + 15:00 + 01:00 + AW1.126 + mysql_partitions + Boost performance with MySQL 5.1 partitions + + MySQL + Podium + English + MySQL 5.1 introduces partitioning – a very useful feature for databases with large tables. This session explains the benefits of partitioning and shows in practice how to take advantage of its features. + Topics include: +* Benefits and limits of partitioning +* Understanding the partitioning types (RANGE, LIST, HASH and KEY) +* Partitioning pruning and EXPLAIN additions +* Benchmarking partitions +* How to partition by dates +* Partitioning with MyISAM tables +* Partitioning with InnoDB tables +* Partitioning with Archive tables +* Use cases +* Partition maintenance: +** converting partitioned tables to normal ones; +** adding and dropping partitions +** reorganizing partitions +** checking and repairing partitions + + Giuseppe Maxia + + + + + + 16:00 + 01:00 + AW1.126 + mysql_sharding + Database Sharding + + MySQL + Podium + English + Database sharding is an approach to horizontally scale databases by federating data over different servers. The talk will give an overview of the different approaches we have had and still have at Netlog, and how we came to the current solution. + Experiences, tips and remarks from having worked on the Netlog implementation of sharding with mySQL and PHP, in a high availability and high performance focused environment, will be shared in this session. Related technologies include memcached and the Sphinx search engine, that are being used to tackle some of sharding's difficulties. + + Jurriaan Persyn + + + + + + + + + + 10:30 + 01:30 + Guillissen + lpi_3 + LPI exam session 3 + + LPI Certification + Other + English + LPI exam session #3 + + + Klaus Behrla + + + + + + 13:00 + 01:30 + Guillissen + lpi_4 + LPI exam session 4 + + LPI Certification + Other + English + LPI exam session #4 + + + Klaus Behrla + + + + + + 15:00 + 01:30 + Guillissen + lpi_5 + LPI exam session 5 + + LPI Certification + Podium + English + LPI exam session #5 + + + Klaus Behrla + + + + + + + diff --git a/src/sql/schedulexmlparser.cpp b/src/sql/schedulexmlparser.cpp new file mode 100644 index 0000000..1c5ebec --- /dev/null +++ b/src/sql/schedulexmlparser.cpp @@ -0,0 +1,137 @@ + +#include +#include + +#include "schedulexmlparser.h" +#include "sqlengine.h" + +#include + +ScheduleXmlParser::ScheduleXmlParser(QObject *aParent) + : QObject(aParent) +{ +} + +void ScheduleXmlParser::parseData(const QByteArray &aData, SqlEngine *aDBEngine) +{ + Q_ASSERT(NULL != aDBEngine); + + QDomDocument document; + document.setContent (aData, false); + + QDomElement scheduleElement = document.firstChildElement("schedule"); + + if (!scheduleElement.isNull()) + { + // TODO: assign conferenceID based on eg. title + int conferenceID = 1; // HARD-WIRED for now to '1' - only one Conference + + QDomElement conferenceElement = scheduleElement.firstChildElement("conference"); + if (!conferenceElement.isNull()) + { + QHash conference; + conference["id"] = QString::number(conferenceID,10); + conference["title"] = conferenceElement.firstChildElement("title").text(); + conference["subtitle"] = conferenceElement.firstChildElement("subtitle").text(); + conference["venue"] = conferenceElement.firstChildElement("venue").text(); + conference["city"] = conferenceElement.firstChildElement("city").text(); + conference["start"] = conferenceElement.firstChildElement("start").text(); // date + conference["end"] = conferenceElement.firstChildElement("end").text(); // date + conference["days"] = conferenceElement.firstChildElement("days").text(); // int + conference["day_change"] = conferenceElement.firstChildElement("day_change").text(); // time + conference["timeslot_duration"] = conferenceElement.firstChildElement("timeslot_duration").text(); // time + aDBEngine->addConferenceToDB(conference); + } + + // we need to get count of all events in order to emit 'progressStatus' signal + int totalEventsCount = scheduleElement.elementsByTagName("event").count(); + + // parsing day elements + int currentEvent = 0; // hold global idx of processed event + QDomNodeList dayList = scheduleElement.elementsByTagName("day"); + for (int i=0; i room; + room["name"] = roomElement.attribute("name"); + room["event_id"] = eventElement.attribute("id"); + room["conference_id"] = QString::number(conferenceID,10); + room["picture"] = "NOT DEFINED YET"; // TODO: implement some mapping to assign correct picture to specified room_name + aDBEngine->addRoomToDB(room); + + // process event's nodes + QHash event; + event["id"] = eventElement.attribute("id"); + event["conference_id"] = QString::number(conferenceID,10); + event["start"] = eventElement.firstChildElement("start").text(); // time eg. 10:00 + event["date"] = dayElement.attribute("date"); // date eg. 2009-02-07 + event["duration"] = eventElement.firstChildElement("duration").text(); // time eg. 00:30 + event["room_name"] = eventElement.firstChildElement("room").text(); // string eg. "Janson" + event["tag"] = eventElement.firstChildElement("tag").text(); // string eg. "welcome" + event["title"] = eventElement.firstChildElement("title").text(); // string eg. "Welcome" + event["subtitle"] = eventElement.firstChildElement("subtitle").text(); // string + event["track"] = eventElement.firstChildElement("track").text(); // string eg. "Keynotes" + event["type"] = eventElement.firstChildElement("type").text(); // string eg. "Podium" + event["language"] = eventElement.firstChildElement("language").text(); // language eg. "English" + event["abstract"] = eventElement.firstChildElement("abstract").text(); // string + event["description"] = eventElement.firstChildElement("description").text(); // string + aDBEngine->addEventToDB(event); + + // process persons' nodes + QList persons; + QDomElement personsElement = eventElement.firstChildElement("persons"); + QDomNodeList personList = personsElement.elementsByTagName("person"); + for (int i=0; i person; + person["id"] = personList.at(i).toElement().attribute("id"); + person["name"] = personList.at(i).toElement().text(); + person["event_id"] = eventElement.attribute("id"); + person["conference_id"] = QString::number(conferenceID,10); + //qDebug() << "adding Person: " << person["name"]; + aDBEngine->addPersonToDB(person); + } + + // process links' nodes + QDomElement linksElement = eventElement.firstChildElement("links"); + QDomNodeList linkList = linksElement.elementsByTagName("link"); + for (int i=0; i link; + link["name"] = linkList.at(i).toElement().text(); + link["url"] = linkList.at(i).toElement().attribute("href"); + link["event_id"] = eventElement.attribute("id"); + link["conference_id"] = QString::number(conferenceID,10); + aDBEngine->addLinkToDB(link); + } + + // emit signal to inform the user about the current status (how many events are parsed so far - expressed in %) + int status=currentEvent*100/totalEventsCount; + emit progressStatus(status); + } // parsing event elements + } + } // parsing room elements + } // parsing day elements + } // schedule element +} + diff --git a/src/sql/schedulexmlparser.h b/src/sql/schedulexmlparser.h new file mode 100644 index 0000000..13df2a9 --- /dev/null +++ b/src/sql/schedulexmlparser.h @@ -0,0 +1,22 @@ +#ifndef SCHEDULEXMLPARSER_H_ +#define SCHEDULEXMLPARSER_H_ + +#include + +class SqlEngine; + +class ScheduleXmlParser : public QObject +{ + Q_OBJECT + public: + ScheduleXmlParser (QObject *aParent = NULL); + + public slots: + void parseData(const QByteArray &aData, SqlEngine *aDBEngine); + + signals: + void progressStatus(int aStatus); +}; + +#endif /* SCHEDULEXMLPARSER_H_ */ + diff --git a/src/sql/sql.pro b/src/sql/sql.pro new file mode 100644 index 0000000..2d0ac8c --- /dev/null +++ b/src/sql/sql.pro @@ -0,0 +1,15 @@ +TEMPLATE = lib +TARGET = sql +DESTDIR = ../bin +CONFIG += static +QT += sql xml + +# module dependencies +DEPENDPATH += . + +HEADERS += sqlengine.h \ + schedulexmlparser.h + +SOURCES += sqlengine.cpp \ + schedulexmlparser.cpp + diff --git a/src/sql/sqlengine.cpp b/src/sql/sqlengine.cpp new file mode 100644 index 0000000..b77729f --- /dev/null +++ b/src/sql/sqlengine.cpp @@ -0,0 +1,272 @@ + +#include +#include +#include +#include +#include + +#include +#include "sqlengine.h" + +#include + +const QString DATE_FORMAT ("yyyy-MM-dd"); +const QString TIME_FORMAT ("hh:mm"); + +SqlEngine::SqlEngine(QObject *aParent) + : QObject(aParent) +{ +} + +SqlEngine::~SqlEngine() +{ +} + +QString SqlEngine::login(const QString &aDatabaseType, const QString &aDatabaseName) +{ + QSqlDatabase database = QSqlDatabase::addDatabase(aDatabaseType); + database.setDatabaseName(aDatabaseName); + + bool result = false; + if(!QFile::exists(aDatabaseName)) // the DB (tables) doesn't exists, and so we have to create one + { + // creating empty DB + tables + // ??? what is the best way of creating new empty DB ??? + // we can either: + // - create new DB + tables by issuing corresponding queries (used solution) + // - create new DB from resource, which contains empty DB with tables + result = createTables(database); + } + + database.open(); + + //LOG_INFO(QString("Opening '%1' database '%2'").arg(aDatabaseType).arg(aDatabaseName)); + + return result ? QString() : database.lastError().text(); +} + +void SqlEngine::initialize() +{ + QString databaseName; + if(!QDir::home().exists(".fosdem")) + QDir::home().mkdir(".fosdem"); + databaseName = QDir::homePath() + "/.fosdem/" + "fosdem.sqlite"; + + login("QSQLITE",databaseName); +} + +void SqlEngine::addConferenceToDB(QHash &aConference) +{ + QSqlDatabase db = QSqlDatabase::database(); + + if (db.isValid() && db.isOpen()) + { + QString values = QString("'%1', '%2', '%3', '%4', '%5', '%6', '%7', '%8', '%9', '%10'") \ + .arg(aConference["id"]) \ + .arg(aConference["title"]) \ + .arg(aConference["subtitle"]) \ + .arg(aConference["venue"]) \ + .arg(aConference["city"]) \ + .arg(aConference["start"]) \ + .arg(aConference["end"]) \ + .arg(aConference["days"]) \ + .arg(aConference["day_change"]) \ + .arg(aConference["timeslot_duration"]); + + QString query = QString("INSERT INTO CONFERENCE (id,title,subtitle,venue,city,start,end,days,day_change,timeslot_duration) VALUES (%1)").arg(values); + QSqlQuery result (query, db); + //LOG_AUTOTEST(query); + } +} + +void SqlEngine::addEventToDB(QHash &aEvent) +{ + //LOG_DEBUG(QString("Adding event '%1' to DB").arg(*aEvent)); + + QSqlDatabase db = QSqlDatabase::database(); + + if (db.isValid() && db.isOpen()) + { + // The items of the Event are divided into the two tables EVENT and VIRTUAL_EVENT + // VIRTUAL_EVENT is for Full-Text-Serach Support + QTime duration = QTime::fromString(aEvent["duration"],TIME_FORMAT); + QDateTime startDateTime = QDateTime(QDate::fromString(aEvent["date"],DATE_FORMAT),QTime::fromString(aEvent["start"],TIME_FORMAT)); + QString values = QString("'%1', '%2', '%3', '%4', '%5', '%6', '%7'") \ + .arg(aEvent["conference_id"]) \ + .arg(aEvent["id"]) \ + .arg(QString::number(startDateTime.toTime_t())) \ + .arg(QString::number(duration.hour()*3600 + duration.minute()*60 + duration.second())) \ + .arg("123456") \ + .arg(aEvent["type"]) \ + .arg(aEvent["language"]); + + QString query = QString("INSERT INTO EVENT (xid_conference, id, start, duration, xid_activity, type, language) VALUES (%1)").arg(values); + QSqlQuery result (query, db); + //LOG_AUTOTEST(query); + + // add some(text related) Event's items to VIRTUAL_EVENT table + QString values2 = QString("'%1', '%2', '%3', '%4', '%5', '%6', '%7'") \ + .arg(aEvent["conference_id"]) \ + .arg(aEvent["id"]) \ + .arg(aEvent["tag"]) \ + .arg(aEvent["title"]) \ + .arg(aEvent["subtitle"]) \ + .arg(aEvent["abstract"]) \ + .arg(aEvent["description"]); + + QString query2 = QString("INSERT INTO VIRTUAL_EVENT (xid_conference, id, tag, title, subtitle, abstract, description) VALUES (%1)").arg(values2); + QSqlQuery result2 (query2, db); + //LOG_AUTOTEST(query2); + } +} + +void SqlEngine::addPersonToDB(QHash &aPerson) +{ + QSqlDatabase db = QSqlDatabase::database(); + + //TODO: check if the person doesn't exist before inserting + if (db.isValid() && db.isOpen()) + { + QString values = QString("'%1', '%2'").arg(aPerson["id"],aPerson["name"]); + QString query = QString("INSERT INTO PERSON (id,name) VALUES (%1)").arg(values); + QSqlQuery result (query, db); + //LOG_AUTOTEST(query); + + values = QString("'%1', '%2', '%3'").arg(aPerson["conference_id"],aPerson["event_id"],aPerson["id"]); + query = QString("INSERT INTO EVENT_PERSON (xid_conference,xid_event,xid_person) VALUES (%1)").arg(values); + QSqlQuery resultEventPerson (query, db); + //LOG_AUTOTEST(query); + } +} + +void SqlEngine::addRoomToDB(QHash &aRoom) +{ + QSqlDatabase db = QSqlDatabase::database(); + + if (db.isValid() && db.isOpen()) + { + QString queryExist = QString("SELECT id FROM ROOM WHERE name='%1'").arg(aRoom["name"]); + QSqlQuery resultExist(queryExist,db); + // now we have to check whether ROOM record with 'name' exists or not, + // - if it doesn't exist yet, then we have to add that record to 'ROOM' table + // and assign autoincremented 'id' to aRoom + // - if it exists, then we need to get its 'id' and assign it to aRoom + int roomId = -1; + if(resultExist.next()) // ROOM record with 'name' already exists: we need to get its 'id' + { + roomId = resultExist.value(0).toInt(); + } + else // ROOM record doesn't exist yet, need to create it + { + QString values = QString("'%1', '%2'").arg(aRoom["name"],aRoom["picture"]); + QString query = QString("INSERT INTO ROOM (name,picture) VALUES (%1)").arg(values); + QSqlQuery result (query, db); + roomId = result.lastInsertId().toInt(); // 'id' is assigned automatically + //LOG_AUTOTEST(query); + } + + QString values = QString("'%1', '%2', '%3'").arg(aRoom["conference_id"],aRoom["event_id"],QString::number(roomId)); + QString query = QString("INSERT INTO EVENT_ROOM (xid_conference,xid_event,xid_room) VALUES (%1)").arg(values); + QSqlQuery result (query, db); + //LOG_AUTOTEST(query); + } +} + +void SqlEngine::addLinkToDB(QHash &aLink) +{ + QSqlDatabase db = QSqlDatabase::database(); + + //TODO: check if the link doesn't exist before inserting + if (db.isValid() && db.isOpen()) + { + QString values = QString("'%1', '%2', '%3', '%4'").arg(aLink["event_id"],aLink["conference_id"],aLink["name"],aLink["url"]); + QString query = QString("INSERT INTO LINK (xid_event, xid_conference, name, url) VALUES (%1)").arg(values); + QSqlQuery result(query, db); + //LOG_AUTOTEST(query); + } +} + +bool SqlEngine::createTables(QSqlDatabase &aDatabase) +{ + bool result = aDatabase.open(); + + if (aDatabase.isValid() && aDatabase.isOpen()) + { + QSqlQuery query(aDatabase); + + query.exec("CREATE TABLE CONFERENCE ( \ + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , \ + title VARCHAR NOT NULL , \ + subtitle VARCHAR, \ + venue VARCHAR, \ + city VARCHAR NOT NULL , \ + start DATETIME NOT NULL , \ + end DATETIME NOT NULL , \ + days INTEGER, \ + day_change DATETIME, \ + timeslot_duration DATETIME)"); + + query.exec("CREATE TABLE ACTIVITY ( \ + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , \ + name VARCHAR NOT NULL )"); + + query.exec("CREATE TABLE ROOM ( \ + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , \ + name VARCHAR NOT NULL , \ + picture VARCHAR NOT NULL)"); + + query.exec("CREATE TABLE PERSON ( \ + id INTEGER PRIMARY KEY NOT NULL , \ + name VARCHAR NOT NULL)"); + + query.exec("CREATE TABLE EVENT ( \ + xid_conference INTEGER NOT NULL, \ + id INTEGER NOT NULL , \ + start INTEGER NOT NULL , \ + duration INTEGER NOT NULL , \ + xid_activity INTEGER NOT NULL REFERENCES ACTIVITY(id), \ + type VARCHAR, \ + language VARCHAR, \ + PRIMARY KEY (xid_conference,id), \ + FOREIGN KEY(xid_conference) REFERENCES CONFERENCE(id) \ + FOREIGN KEY(xid_activity) REFERENCES ACTIVITY(id))"); + + query.exec("CREATE VIRTUAL TABLE VIRTUAL_EVENT using fts3 ( \ + xid_conference INTEGER NOT NULL, \ + id INTEGER NOT NULL , \ + tag VARCHAR,title VARCHAR NOT NULL , \ + subtitle VARCHAR, \ + abstract VARCHAR, \ + description VARCHAR, \ + PRIMARY KEY (xid_conference,id))"); + + query.exec("CREATE TABLE EVENT_PERSON ( \ + xid_conference INTEGER NOT NULL , \ + xid_event INTEGER NOT NULL , \ + xid_person INTEGER NOT NULL, \ + FOREIGN KEY(xid_conference, xid_event) REFERENCES EVENT(xid_conference, id), \ + FOREIGN KEY(xid_person) REFERENCES PERSON(id))"); + + query.exec("CREATE TABLE EVENT_ROOM ( \ + xid_conference INTEGER NOT NULL , \ + xid_event INTEGER NOT NULL , \ + xid_room INTEGER NOT NULL, \ + FOREIGN KEY(xid_conference, xid_event) REFERENCES EVENT(xid_conference, id), \ + FOREIGN KEY(xid_room) REFERENCES ROOM(id))"); + + query.exec("CREATE TABLE LINK ( \ + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, \ + xid_conference INTEGER NOT NULL, \ + xid_event INTEGER NOT NULL, \ + name VARCHAR, \ + url VARCHAR NOT NULL, \ + FOREIGN KEY(xid_conference, xid_event) REFERENCES EVENT(xid_conference, id))"); + } + else + { + //LOG_WARNING("Database is not opened"); + } + + return result; +} + diff --git a/src/sql/sqlengine.h b/src/sql/sqlengine.h new file mode 100644 index 0000000..afad5ae --- /dev/null +++ b/src/sql/sqlengine.h @@ -0,0 +1,27 @@ +#ifndef SQLENGINE_H +#define SQLENGINE_H + +#include +#include + +class QSqlDatabase; + +class SqlEngine : public QObject +{ + Q_OBJECT + public: + SqlEngine(QObject *aParent = NULL); + ~SqlEngine(); + void initialize(); + void addConferenceToDB(QHash &aConference); + void addEventToDB(QHash &aEvent); + void addPersonToDB(QHash &aPerson); + void addLinkToDB(QHash &aLink); + void addRoomToDB(QHash &aRoom); + private: + QString login(const QString &aDatabaseType, const QString &aDatabaseName); + bool createTables(QSqlDatabase &aDatabase); +}; + +#endif /* SQLENGINE_H */ +