mail usprint this pagerss feed

Liip is hiring!

Come see us at OpenExpo

OpenExpo, *the* Open Source conference and tradeshow in Switzerland, is opening at BEAexpo Bern next week, once again. We are looking forward to having interesting discussions and meetups with the community, users, clients, policy makers and developers alike. Along with lobbyist Matthias Stürmer, e-education hacker Penny Leach will have a slot in the conference schedule. Take the chance to talk to them afterwards at our boot, as well as checking out those loads of interesting topics such as the Learning Content Management System docendo, the E-Government plattform PloneGov or several speakers from government and parlia institutions like Christian Wasserfallen and Edith Graf-Litscher or Priscilla Dipner-Gerber from the canton Basel-Stadt.

Free tickets can be downloaded.

Related Entries:
Vote for PROGR - Bern's free art space
Comments (0) |  Permalink

Introduction to node.js at Webtuesday

At this weeks WebTuesday in the AdNovum offices in Zurich I presented node.js, the much talked about framework for writing event driven servers in JavaScript. It's an interesting approach to develop asynchronous applications with completely non-blocking input/output without the headaches this usually involves. From our perspective it's especially an interesting tool to develop the server side of Comet-like applications in a language that most developers are already familiar with.

You can find the slides containing an introduction to event loops in general and a few code examples on slides.liip.ch.

Related Entries:
Webtuesday: PHP vs. Javascript: which sucks more?
Next Webtuesday: Sebastian Bergmann about PHP 5.3
Busy February Evenings at the Liip Zurich Office
TestFest@Webtuesday Hackfest
jsdomenu versus Google Analytics
Comments (3) |  Permalink

Recent activities of Liipers in the Moodle Community

In December last year, two Liip employees Brian King & I (Penny Leach) went to the Czech Republic for a week, for the first ever concentrated Moodle Developer Conference. There were 16 attendees from around the world, participating in an intense week of discussion about the upcoming Moodle 2.0 release, with a lot of decisions being made and work being planned. The session notes are now online.

After that, I had a 6 week secondment to Moodle HQ, working on improving the Moodle Networking feature for Moodle 2.0. This was my second secondment to Moodle HQ, the first was in 2008, to work on the Portfolio API. Moodle HQ is based in Perth Australia, but there are employees working all around the world in different timezones, so communication largely happens on our jabber development chat, and bug tracker, with the occasional skype video chat.

The first step was to evaluate the current state of MNet, which was added to Moodle 1.8, but needed a lot of work to bring it up to Moodle 2.0 compliance. I created a metabug with a number of subtasks representing the different areas that need work, and then linked all the existing MNet bugs to those. Then I created a whole lot more bugs for a lot of refactoring that needed to happen. Then I rolled up my sleeves and started work. I closed many bugs, some of which affected the stable 1.9 version of Moodle as well, and will be in the next stable point release.

Unfortunately there was more needing to be done than I had time to do, but MNet is now in a much better state to be able to be maintained by more people. I will be doing a handover meeting with David Mudrák soon, and also of course continue to help with bug triage and fixing during the Moodle 2.0 beta period.

Technically, I was tracking Moodle cvs with git, making branches for each bug I was working on, committing to git and then eventually rebasing and using git-cvsexportcommit to land the work into the relevant Moodle branch. This is a workflow that David has recently described in more detail, and works very well for me, a long time thoroughly convinced git user.

Working with Moodle HQ directly is always a great experience, although doing it in a European timezone, as I did in 2008, works better than doing it from New Zealand, which is where I was this time. Even so, I had as always great support from the other core team, testing and doing code review. I hope MNet users will be happy with the improvements in Moodle 2.0.

Comments (0) |  Permalink

Next Webmardi in Fribourg

The next Webmardi will be held on Tuesday, March 9, at the Liip Fribourg office.

We will have the chance to discover the promising New Zealand made Silverstripe CMS, presented by Manfred Pürro. Please feel free to join us, everyone is welcome!

Comments (0) |  Permalink

Symfony Live Wrap-up

Last week Lukas, Pierre and myself attended the Symfony Live 2010 conference since we have a growing interest in it lately, including a pilot project at Liip that uses symfony 1.4.

Overall the conference was quite a success I would say, they had a few organizational issues but considering it was the first international event of that scale they hosted it was really good. Most talks revolved around symfony and also doctrine since it's a major part of the symfony ecosystem, but a few sessions were held on more general topics, such as PHP performance, deploying apps to the cloud or Zend Framework. Lukas and I spoke about Liip's framework Okapi since it's second iteration, that is still in the works, is using a few symfony components. As we mentioned there we decided to use them to alleviate some of the maintenance work and benefit from the dependency injection feature, which offers amazing opportunities for customization and testing. Our slides can be found on slideshare and the Okapi2 source on our svn repository.

The highlight of the conference was obviously the announcement and release of the Symfony 2 codebase. Symfony 2, just like Okapi 2, is based on the Symfony dependency injection container component, which means it will have the same flexibility. Given the community it has, it is definitely an interesting development for us and we will follow its development closely. If it happens to fit our requirements as well as Okapi does for fully custom high performance websites we might adopt it but it is too early to say since it won't be stable until the end of the year.

Related Entries:
Fine-grained SVN commit emails made easy
Welcome PHP 5.3!
Jackalope - JCR for PHP started
FOTD: ReflectionClass()->newInstanceArgs($args) is "slow"
TestFest@Webtuesday Hackfest
Comments (5) |  Permalink

Das Konzept der digitalen Nachhaltigkeit - ein Konzept mit Zukunft

The actual edition from Netzwoche does include an article written by our Matthias Stürmer: "Das Konzept der digitalen Nachhaltigkeit - ein Konzept mit Zukunft".

Comments (0) |  Permalink

Fine-grained SVN commit emails made easy

The idea behind sending emails on every svn commit is basically to help developers review their peer's code, which improves both awareness of the global codebase and overall code quality since errors might be picked up and go or bad coding practices can be identified and discussed between the developers.

While we have had svn post-commit hooks set up for a while at Liip for some of our bigger projects, the case of smaller ones that occupy very small teams remained problematic. The main issue being that configuring the classic post-commit hooks requires intervention on the svn server, to which not everybody has access, and since small projects might change often this can be annoying both for the sysadmins and for the developers that have to depend on someone every time they want a new svn directory to be watched.

The idea we came up with is to use svn properties as the configuration for the post-commit hook, so that anyone with commit access can set it up, and it can easily be applied to any number of directories.

The script looks up through the parent directories of every modified/added files in a commit, with a svn propget liip:review call, and once one is found, the value of the property is used as the email "To:" address(es). This means you can easily have an entire project being watched by someone, but some particular sub-directory of it will only be watched by some other persons, for example if you want to extract the xsl commits out of a php okapi project you would just add another liip:review property on the themes directory.

It is fully configurable if you want to try it for yourself, you basically need to give it the svn server url and the property to check for, then some other extras are available. To allow easy filtering in mail clients the mails sent contain a X-SVN-Commit-Mail header with the value being the name of the repository. Also the subject contains the committer name, revision and watched-paths affected.

You can get the script off of our public svn repository at https://svn.liip.ch/repos/public/misc/svnwatch/ - the dispatch-emails.php script uses the svn binary and the dispatch-emails-ext.php uses pecl's svn extension for php if you prefer.

Related Entries:
Symfony Live Wrap-up
Welcome PHP 5.3!
Jackalope - JCR for PHP started
FOTD: ReflectionClass()->newInstanceArgs($args) is "slow"
TestFest@Webtuesday Hackfest
Comments (2) |  Permalink

LEAP2A support coming soon to a Moodle near you!

Finally, I am very happy to annouce that I will soon be working on adding LEAP2A support to the Moodle Portfolio API that will be in Moodle 2.0.

There's already a rough specification for this work, and it's been on my TODO list for a very long time.

 LEAP2A is a very simple and open atom-based e-portfolio standard, to promote interoperability between e-portfolio systems. Interoperability is very important in an e-portfolio system, because it is vital to be able to transport portfolio data around with you, as you move between educational providers, into higher education, and on to professional development. Imagine having in one portfolio system, your entire portfolio of work, starting from your first day at primary school, right up to your continued professional development. Of course, one would use many different portfolio systems over that time, so some sort of open standard to transport data around is imperative.

I was involved with the LEAP standard group last year when I was living in London, adding LEAP2A support to Mahara. I attended the LEAP meetings in the UK, and worked on the export side of the project. Nigel took over when I left Catalyst and continued, adding the import side (which is of course, much harder).

But wait, you ask. Isn't Moodle a learning management system, not an e-portfolio? Why do we care about interoperability with an e-portfolio standard? The answer is of course, that while you're working, you are entering data into Moodle, and at the end of the course, the natural thing to want to do is to export some of that data into your portfolio. At the moment, we have the Portfolio API in Moodle for that, which I worked on for last year for 3 months, during my time at Moodle HQ. However, at the time I wrote it, it wasn't at all clear what portfolio standard we should support, so content is transferred in "raster" format (rendered to HTML or a file like a pdf). Since then though, LEAP has emerged as a clear front runner, and now that Mahara 1.2 (almost released!) fully supports importing and exporting LEAP2A, the time is right for us to take the plunge and add LEAP2A support to Moodle's Portfolio API. This improves the integration between Moodle and Mahara, as well as opening the door for Moodle to integrate better with other e-portfolio systems that implement the LEAP2A standard.

I am therefore very grateful to the State of New Hampshire for providing the funding to Liip for me to do this work. This comes from a grant from the New Hampshire Department of Education, and a collaborate group made up of the following school districts:

Special thanks also to Matt Oquist who has been tirelessly helping me find funding for this work!

Comments (1) |  Permalink

CH Open Source Awards 2009

 Ab sofort können für die diesjährigen CH Open Source Awards Projekte eingereicht werden. Noch bis zum 4. September können Open Source Projekte mit Schweizer Beteiligung sich in einer der sechs Kategorien um einen Preis bewerben. Es gibt sowohl Kategorien für Firmen und Schulen als auch für unabhängige Projekte und einzelne Entwickler. Die Frist zur Anmeldung läuft nicht mehr lange, aber noch besteht Zeit eine erfolgversprechende Eingabe auszuarbeiten. Eine einmalige Gelegenheit zu zeigen, was alles in Sachen Open Source in der Schweiz läuft und neben bei noch Aufmerksamkeit auf das eigene Open Source Projekt zu lenken. Liip Entwickler Lukas Smith, Mitglied der Jury, freut sich schon auf ein breites Spektrum an Lösungen und Projektteams.

Read whole postComments (1) |  Permalink

Jackalope - JCR for PHP started

We initiated a new open source project called Jackalope. Its purpose is to bring JCR via Jackrabbit to the PHP world. The Team working on it currently consists of Christian Stocker, David Buchmann, Tobias Ebnöther and of course we would welcome you too! :) We use the Apache License and are very open minded about collaborations, inputs and wishes.

JCR provides a great standardized storage for hierarchical content and supports some nice features like full text search, versioning, transactions, observation, and more.

Our main goal is to create a PHP Connector for Jackrabbit without using any Java. To achieve this goal our development will go trough two stages. In a first step we have built a simple demo using the Java Bridge from Zend Server. Based on this we are now writing functional tests for the api. This gives us a great way to replace the Java Bridge with a native PHP module in a second step.

This is how that will look like:

The current modules consist of phpCR API Interfaces which are subject to change since we're trying to share it with another project to make sure you can easily swap your library in case you're not happy with it.

Then there is jr_cr which is the prototype implementation using the Zend Java Bridge and the Jackrabbit davex client which we mainly use to write functional tests and show the demo.

Our current growing jewel are the Jackalope API tests which are using PHPUnit as testing environment. We want to achieve a test suite that completely covers the API and enables other projects to check if they're compatible with the phpCR interfaces.

Jackalope itself will be the PHP connector not making use of any framework to provide a pure library with as few dependencies as possible. It's not targeted on any use case yet which should make it very flexible for many projects.

You will find the code for the different components at http://github.com/jackalope. We hang out in #jackalope at freenode and there is also a mailing list. For more information check out our wiki and if you have any question, do not hesitate to ask us on one of those channels.

Related Entries:
Symfony Live Wrap-up
Fine-grained SVN commit emails made easy
Welcome PHP 5.3!
FOTD: ReflectionClass()->newInstanceArgs($args) is "slow"
TestFest@Webtuesday Hackfest
Comments (0) |  Permalink
Next1-10/41