Semantic web meets frontend-awesomeness

I repost some of my blog posts made @ liip. Please see here for the original post and comments:

Frontend editing is a hot topic at the moment. With the HTML5 content-editable, there is no longer any excuse to reload a page in edit mode and render forms on server side. And even less to use the iframe mess of traditional WYSIWYG editors. One excellent frontend editing project is create.js. Its main strength is to use RDF annotations in HTML (RDFa) to explain the semantic structure of your content. Then you load create.js and tell it what editors to use for your entities. Storage happens based on backbone.js, the server backend is easy to implement.

Webmardi Fribourg: Introduction to Symfony2

Conference: Webmardi Fribourg, 3.7.2012
Title: Symfony2 - Powerful and flexible web application framework in state of the art PHP
Links: Slides

Symfony2 introduction. Followed by a Liip techtalk a week later aimed at people knowing Symfony2 a bit, focussing on using the various Symfony2 components standalone.

Symfony Live Paris 2012: Agile and Symfony

Conference: Symfony Live Paris 2012
Title: Agile and Symfony
Links: Slides,

In this talk I share our experiences at Liip with agile development in Symfony2. I focus on technical aspects of agility that will be helpful whether you use Scrum, Kanban or some other agile process. Agility is not limited to program code, there are also ways to handle data model changes. I will talk about our take on unit and functional tests with the WebTestCase, about the Doctrine Migrations project and automated deployment.

Additionally, I did a lightning talk about Symfony CMF dynamic routing during this conference.

phpDay Italy 2012: Step By Step: Making a website fly with Assetic, Varnish and ESI

Conference: phpDay Italy 2012
Title: Step By Step: Making a website fly with Assetic, Varnish and ESI
Links: Slides,

Starting with a demo web site that is not optimized, i will demonstrate step by step how the user experience can be improved. Improving the speed the end user experiences in his browser is more than writing efficient code. The goal is to reduce the time between the initial request and the moment the browser actually shows something. I will show how to improve javascript and css loading and how to use the caching proxy Varnish. With Edge Side Includes (ESI) it can even cache partly personalized pages.

One Konferenz Zürich: Web-Massenware der Zukunft

My first talk in swiss german ever - on popular request :-)

Conference: One Konferenz Zürich, 9.5.2012
Title: Web-Massenware der Zukunft die heute schon eingesetzt werden kann (together with Gerhard Andrey and Christian Stocker)
Links: Slides

I presented the PHP content repository as one of the things that should become available more and more easily in the future.

PHP talking to Magnolia CMS

I repost some of my blog posts made @ liip. Please see here for the original post and comments:

Since we started working on Jackalope, we always claimed it would also provide an integration point with other enterprise systems. Last week, we set out to proof this idea. Grégory Joseph of the Java based Magnolia CMS came to help us on the Magnolia side of things. Magnolia is using the JCR reference implementation Jackrabbit for storing its content. After an interesting exchange on their design decisions and our ideas, we started to hack.

Jackalope observation and import repository dumps

I repost some of my blog posts made @ liip. Please see here for the original post and comments:

Daniel Barsotti and me were reviewing the observation API of PHPCR and decided to just implement getting the observation journal. The journal contains all add, remove and update operations that happened on a PHPCR repository. You can also filter the journal by event type, path, node type and other criteria. This way, PHPCR can become almost a message queue (but just almost, there is no guaranteed delivery of messages).

Doctrine PHPCR-ODM now handles versioning

I repost some of my blog posts made @ liip. Please see here for the original post and comments:

The Doctrine PHPCR-ODM allows you to easily map your PHP objects onto content repository nodes. Since last week, the PHPCR-ODM leverages the versioning support of PHPCR in the ODM layer. This gives your application a very simple way to work with versioned content.

A colorful globe with the WS2801 LED strip

Looking for something nice that could be done with the WS2801 strips i bought, I came up with this idea to build a light globe. The arduino drives the strips and has a couple of programs it runs.

The best way to show how this all looks is probably some movies. (Beware, i used my cheap digicam to record, no high quality...). Some still pictures at the bottom.

The globe in action

Symfony2: Profiler trying to serialize objects or how to build your own router

The other day, i wanted to write a controller that expects an object as an action parameter, with the help of a custom router. Writing the router was as easy as adding a field to the array i return in the match() method. But then sometimes the controller has to send a redirection response. In production mode, everything works fine.
But in debug mode, i got a - very non-telling - error about serializing:

Notice: serialize(): "controller" returned as member variable from __sleep() but does not exist in
/home/david/liip/symfony-cmf/cmf-sandbox/vendor/symfony/src/Symfony/Component/HttpKernel/DataCollector/DataCollector.php line 30
Syndicate content