mail usprint this pagerss feed

www.liip.ch

Liip is hiring!

Liip at FrOSCamp

At Liip every developer gets a budget for so-called "hackdays" as well as for individual further training. Trouble is, it seems like most of us are a bit too dedicated to our respective teams, and so many Liipers end up using less than their given budget, which is a pity since in order for Liip to be able to pull on lots of fun state-of-the-art projects, we need to make sure we all play around with cool new stuff and help shape the future in the interest of our clients. At the same time, when we blog about a successful hackday it seems we make a few people jealous. Anyway, Jordi wanted to spend some of his "conference time" setting up a PHP stand at the up-coming FrOSCamp.

Meanwhile, things have started to happen in Symfony2-land with setting up a project to build the foundations for a CMS. Liip decided to dive right in and join the efforts along with other developers from around the world, including the lead developers of Apostrophe, Diem and Sympal. We at Liip felt that the JCR specification could be a useful foundation. We already started the Jackalope open source project at Liip to create a JCR client library for PHP a while back, where we adopted the interfaces from the Typo3 Flow3 project. So I was beginning to check out Flow3 and noticed quite a few similarities and twittered if someone would want to join me to compare the two frameworks at FrOSCamp.

So Fabienne and I sat down and decided that instead of using her marketing budget for something boring, we could use it to do something big and awesome! We figured we should try to get together people to work on the Symfony CMF and Jackalope. I also mentioned that we had been delaying a hackday to write a CouchDB ODM implementation for Doctrine2 along the lines of the already existing MongoDB support. Fabienne suggested that we invite lots of developers to come to Zurich to join us at FrOSCamp and that Liip could help cover their expenses if necessary. From my personal experience I can say that there is nothing that helps online communication more than having met someone even just once for a few hours in person.

So here we are with 4 hackfests lined up with Liip participation:

  • DokuWiki
  • Symfony CMF (actually we still need to figure out an agenda for this one)
  • Jackalope
  • CouchDB ODM

It looks like the number of Liipers at FrOSCamp will still grow a bit but for now Pierre, Jordi, Chregu, David, Ebi and myself will surely be there. I hope that Penny, Brian and Dan will also make it and maybe a few others too. What's even cooler, the following people have confirmed that they have accepted our invitation:

  • Benjamin Eberlei (Doctrine 2)
  • David Nüschler (JCR lead)
  • Karsten Dambekalns (Flow3)
  • Nils Adermann (phpBB)
  • Sebastian Schürmann
  • Thibault Duplessis (Diem CMS)
  • Vincent Jousse (first outside contributor to Jackalope)

Not yet confirmed but likely:

  • Etienne Kneuss (maybe he'll show us PHATM?)
  • Francesco Trucchia
  • Till Klampaeckel

Of course, regard this blog post as an invitation to join as well!

Comments (0) |  Permalink

The Tagi iPad App done in NIWEA aka html5/CSS

Some weeks ago, I was pondering if it would be possible to do a native App like the Tagi iPad App (a typical newspaper app) in pure html(5)/CSS/JS (aka Niwea). So I did what a Liiper often does when he wants to explore an idea: Organize a Hackday.

Last Wednesday, Gerhard, Pierre, Fabian and I sat together and started from scratch with the project. To make the content and design part easier, we simply took the Tages-Anzeiger App as the guide. We didn't want to do something completely new, we just wanted to proof, that you can deliver a very similar experience to the end user with "just" an optimized website as with a native app.

So here's the result: http://labs.liip.ch/niweaapp/ (best seen on an iPad, but works on any modern browser)

It uses localStorage for saving the content locally (it doesn't work totally offline yet, but that would be doable in another day :)), fancy CSS stuff and some heavy magic on the swiping stuff. It also uses Pierre's excellent dispatcher library for Javascript based apps (see his talk about PhoneGap for more about that) and Hyphenator.js for more readable text, something the iPad App doesn't provide. It also has different layouts for landscape and portrait. The "app" of course could use some polishing here and there, but for only one day work with 4 persons, I'm pretty pleased with the result.

The code is published on github.

Btw, we didn't ask the Tages-Anzeiger, if it's ok to use their content for this "Proof Of Concept". I hope it is for them, if not, we will certainly find other interesting feeds (it takes RSS feeds as input and converts them to JSON on the server, so it would basically work with any feed, maybe some adjustments needed for the pictures).

Related Entries:
Open Sourcing Radios - A PhoneGap iPhone/iPad app
Radios for iPhone/iPad with background audio on iOS 4 released
The technical details behind the Radios App
Liip Mahara Hackday success
What's NIWEA?
Comments (20) |  Permalink

Techday Slides: Flash and the Quest for Accessibility

Sandro talked about his terrific implementation for making one of the first (I'm sure, but can't proof it ..) fully accessible Flash games out there. It got the highest rating by Access for all and they blogged about it.

Unfortunately Sandro can't make his presentation available (his slides engine doesn't have an export function (yet)), but it was basically what he wrote in his 2 blog posts here on this blog. So read Post 1 and Post 2 to get all the information you need.

By the way, the game can be found at http://www.postfinance-eventmanager.ch/

Related Entries:
Flash & the Quest for Accessibility - Part #2
Flash & the Quest for Accessibility - Part #1
Techday Slides: Management of medium and large size projects
Techday Slides: oEmbed
Techday Slides: PhoneGap
Comments (0) |  Permalink

Techday Slides: Management of medium and large size projects

Memi talked about the challenges in Management of medium and large size projects. It's not all that obvious and some eye-opening stuff for the not so experienced in project management people was in there. Less techie than the other talks, but important for successfull technology projects even more so. Get his slides.

Related Entries:
Techday Slides: Flash and the Quest for Accessibility
Techday Slides: oEmbed
Techday Slides: PhoneGap
Techday Slides: OWASP Security Top 10
Liip Techday 2010 and the slides, starting with Moodle 2.0
Comments (0) |  Permalink

Making of resolutionfinder.org UN database

September last year I met up with an old room mate. She told me about a student project called Making Commitments Matter (MCM). They had created a database for UN resolutions. Even though the team was quite large, spanning all across Europe, they didn't have anyone in the group who had a sufficient level of IT know how to bring it all online. Once again it shows that Universities usually are unable to bring together different departments. So I had no choice but to help them out!

Step one defining a database schema for the excel files they currently used to store the information. Contrary to the document systems of the various UN organizations which scatter the various PDF's across different sites, the aim of resolutionfinder.org (previously called UN-informed.org) is to bring all information to one database. Furthermore resolutionfinder.org would also show the entire history of documents and each of the clauses there in. This again is a huge leap forward, since right now its essentially impossible to determine if a given document or clause is actually the most current version and how things changed over time. Especially this history was a big challenge in the definition of the schema.

Aside from this the two years that MCM spend interviewing key stakeholders like NGO's, government officials and researchers have lead to a fairly complex set of additional attributes that also need to be stored for each document and clause. The fact that each clause is stored separately is also a key improvement since many documents contain decisions on many different topics. With this database it will be possible to search for just the clauses for a given area as both documents and individual clauses are tagged.

Using the admin generator of the symfony PHP framework I started building up an interface to the database in order to be able to get feedback from the MCM team. By way of a call for help on my blog Dennis Riedel, living in Barcelona, joined the effort and began working on an import tool to move the data from the excel files into the database schema. At a project meeting in Helsinki in early December 2009, we used this prototype to define the final specifications for the database.

The goal was to have a working frontend ready for the conference MCM was organizing on the topic of "UN information management" end of May 2010. No small undertaking for a small team of two guys in their spare time, neither of whom being real experts in frontend development. So I turned to Liip for help. At Liip we have budgets to support technically or socially relevant efforts. The process is basically pitching the idea to the entire team to get development resources. In the end resolutionfinder.org was allocated 12 man days development as well as 1 man day for server administration and a server to run the application on!

Christoph and Jordi both stepped up on short notice to help me build up a frontend that actually exceeded by far the hopes of the MCM team. The site leverages Apache Solr for the search with features boolean operators and facette filtering. We display the documents, clauses as well as their relation and history. Its also possible to register to store bookmarks to documents and clauses as well as comment them. Most amazingly we still have a few days of development left that we will use to further optimize the UX on the search interface. I should also thank Stefan Sicher who delivered a very sleek and clean design just days before the conference.

Obviously there is still lots left to do. As mentioned before we want to further improve the UX on the search. We are also considering adding alternative search approaches, for example some people might want to search chronologically, others organization etc. We also want to add data mining capabilities so that we can automatically import voting records and maybe eventually even entire documents. Supporting more languages both for the interface and the content also is high on our list. We might also provide the content via an RDF database to enable others to come up with queries of their own. The team is obviously full of ideas and is actively looking for companies or developers willing to donate resources. The source code of the entire application is of course open source: patches welcome!

Here is an example search for "security council" documents, for regional education topics outside of africa. Here is an example document and example clause with a history on the topic of malaria. Additional information on the technology can be found in the case studies publised as Lucid Imagination and symfony. I also published a series of posts on my personal blog. Overall it was a very fun and rewarding experience and obviously I will continue to work on the project in my spare time. For Liip I can already see how several of the lessons learned during the project have paid off on client projects as well. So overall I guess its a win for all!

Related Entries:
Zurich Symfony Live Hub
Symfony Live Wrap-up
phpDay Italy
Fine-grained SVN commit emails made easy
Welcome PHP 5.3!
Comments (0) |  Permalink

Techday Slides: oEmbed

Bart, one of our newest Liipers, made a talk about oEmbed. Even though the technology exists since quite some time, not many Liipers knew of it. So we all learned something here. Get his slides.

Related Entries:
Techday Slides: Flash and the Quest for Accessibility
Techday Slides: Management of medium and large size projects
Techday Slides: PhoneGap
Techday Slides: OWASP Security Top 10
Liip Techday 2010 and the slides, starting with Moodle 2.0
Comments (0) |  Permalink

Techday Slides: PhoneGap

Pierre talked about the PhoneGap work we did for an unpuplished project. He also talked a lot about JavaScript in general and some concepts there. Actually, it's more about JavaScript, than PhoneGap. But that was fine and very interesting and entertaining (most of the fun is missing in the 99 slides, but there are still some gems). Get his slides.

Related Entries:
Techday Slides: Flash and the Quest for Accessibility
Techday Slides: Management of medium and large size projects
Techday Slides: oEmbed
Techday Slides: OWASP Security Top 10
Liip Techday 2010 and the slides, starting with Moodle 2.0
Comments (0) |  Permalink

Techday Slides: OWASP Security Top 10

Jordi talked about the Top 10 Security Issues by OWASP as a little refresher for everyone (the in-depth stuff is happening in a "quartalsworkshop" soon). Here are his slides

Related Entries:
Techday Slides: Flash and the Quest for Accessibility
Techday Slides: Management of medium and large size projects
Techday Slides: oEmbed
Techday Slides: PhoneGap
Liip Techday 2010 and the slides, starting with Moodle 2.0
Comments (0) |  Permalink

Liip Techday 2010 and the slides, starting with Moodle 2.0

Last Wednesday, Liip had its traditional Techday, where everyone gathers together (not only the techies) and listens to talks mainly done by Liipers. And then there's BBQ with swimming in the lake, afterwards (badly needed at these temperatures).

This year we went to the Hotel Schlössli in Ipsach with in total seven very interesting talks, which we will publish one a day now on this very blog.

Today we start with Penny's Moodle 2.0 talk. We got very interesting insights in what's new and where Moodle may be heading in the future. Go and see her slides.

Thanks a lot to everyone involved in organising the Techday. And if you want to see some (too many) pictures from the whole event, see my flickr set. Live "flickered" with one of those fun eye-fi SD cards.

Related Entries:
Techday Slides: Flash and the Quest for Accessibility
Techday Slides: Management of medium and large size projects
Techday Slides: oEmbed
Techday Slides: PhoneGap
Techday Slides: OWASP Security Top 10
Comments (2) |  Permalink

Liip Mahara Hackday success

Liip encourage their employees to suggest and participate in "Hackdays", which are full days of hacking on some bite sized application or a proof of concept, or something we want to add to our favourite Open Source project, or just experimenting with a new technology.

One of my favourite Open Source pet projects is Mahara, which I was one of the founding developers of while I was still in New Zealand. Mahara is an e-Portfolio application, which gives learners the ability to collect, organise and share their learning portfolio. In many ways, it is a sister project to Moodle, which is one of our core Open Source projects we work with for our clients. Mahara is starting to gain more traction in Switzerland, which I am watching with interest, because it's so successful already in other countries, and version 1.3 is going to be released in around a month or so, so I thought it would be good timing to have a Mahara Hackday at Liip, to get some of our developers here interested in it, as well as seeing if we could get something cool done to go into the 1.3 release.

So a few weeks ago, on a Friday, Adi, Pierre and myself sat upstairs at a desk away from the rest of the company, listened to music and hacked all day. Here's a picture I took of them figuring out how something works:

Happily, the feature we wrote has been merged into master already, and will be in the 1.3 release!

We had a couple of options for things to work on, but we ended up going with creating Views for Group homepages. In Mahara terminology, a "View" is a presentation of some content in some meaningful way, using different blocks that can be dragged onto the page. They're really a bit like mini webpages. We started off just using Views for portfolio presentations, but have expanded out over the years to using Views for other things too - the first one was done a few years ago, on an Easter Hackfest with Nigel McNie and myself, creating Views for users to use as their profile page, so that they can customise what is displayed using the same drag and drop editor that they always used to create their portfolio Views. Mahara 1.3 also has a dashboard View for users.

Groups have had portfolio Views for quite some time, but the group homepage was a bit boring, with just the description of the group and which members were in it, along with the latest forum posts, and some other information. This page was not previously customisable at all, and that actually prevented me from doing what I really wanted to do for the hackday, which was to write a Poll plugin. Having a poll plugin would be really cool on group pages, as well as user profile pages actually, but since the group homepage wasn't yet customisable, we thought that would be a better thing to work on for the hackday.

First we needed to figure out exactly what was on the group homepage, and find a way to reproduce all of that information in a View, using the Block plugins we had, and identify some more Block plugins that would need to be written. We then had to write a migration so that all existing Groups will have this View created for them during their 1.3 upgrade, and also make sure that new Groups got one auto created.

We kept track of a list of tasks on the Liip "Foss wiki" and managed to get through them all during the day, before going out for a victory beer. We published our code in our public Mahara repository on git.liip.ch, and I had a talk to some of the other core developers in NZ on our Mahara IRC channel (#mahara on freenode), and Richard Mansfield quickly did a review, made a few small changes and merged it into master.

I am personally really happy with what we achieved during the hackday, and how fast the other core developers reviewed it and merged it. Thanks, everyone! :)

Related Entries:
The Tagi iPad App done in NIWEA aka html5/CSS
Liip now a Mahara Partner!
TestFest@Webtuesday Hackfest
Comments (1) |  Permalink
Next1-10/1057