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
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
Symfony documentation recommends to use XML for dependency injection configuration. I like the yml format because its simple and intuitive, but the main benefit of XML is the possibility for better validation and editing help.
So today we tried to port some configuration from yaml to xml.
Our yaml file contained an array parameter:
parameters:
symfony_cmf_multilang_content.lang_preference:
en: [en, de]
de: [de, en]
To make this work in XML, you need to nest parameter tags and use the type="collection" attribute.
<parameters>
<parameter key="symfony_cmf_multilang_content.lang_preference" type="collection">
<parameter key="en" type="collection">
<parameter>en</parameter>
I often want to have my controllers be a service so you can inject some information. But at the same time i like to extend the base controller Symfony\Bundle\FrameworkBundle\Controller\Controller to have the convenience methods like $this->render. Now if you just create a service from your controller, you won't be able to use the methods anymore. You will get exceptions about calling get() on a non-object.
What you need to do is inject the service_container to your controller manually.
<service id="liip_vie.viecontroller" class="%liip_vie.viecontroller.class%" public="true">
<argument type="service" id="service_container"/>
...
</service>
services:
Recently, i ordered a sample of a ws2801 based RGB LED strip from China. After todays successful playing around with it, I plan to order a bigger quantity beginning of next week.
I repost some of my blog posts made @ liip. Please see here for the original post and comments: http://blog.liip.ch/archive/2011/09/27/a-frontend-editor-for-symfony2-cm...
Yesterday we started working on an editor for the Symfony2 Content Management Editor, the LiipVieBundle. We use VIE and - until something non-GPL comes along - the Aloha editor. VIE is a piece of javascript on top of backbone.js that handles storing data with a REST backend. In Symfony2, this is a breeze thanks to the FOSRestBundle. Sounds complicated? Its actually quite simple, at least for the user. I made a short video to show how it looks.
I repost some of my blog posts made @ liip. Please see here for the original post and comments: http://blog.liip.ch/archive/2011/08/24/jackalope-progress.html
At Liip, employees can propose open source projects they want Liip to support. Together with Daniel Barsotti, I did this for the PHP Content Repository implementation Jackalope and Liip was so nice as to grant us a couple of man-weeks to implement stuff for Jackalope. Now that we used up the allocated budget, its time for a progress report what Jackalope can now do.
I repost some of my blog posts made @ liip. Please see here for the original post and comments: http://blog.liip.ch/archive/2011/07/30/php-content-repository-api-tutori...
Our PHP content repository (PHPCR) implementation "Jackalope" is steadily improving. Besides the Jackrabbit backend, there is now also a driver for SQL databases (powered by Doctrine DB abstraction layer) and first work at a MongoDB driver and one for Midgard 1. Midgard 2 will get its own PHPCR implementation not based on Jackalope, and Typo 3 may choose to come back to PHPCR as well. Now is about time to show how to use that API.
I repost some of my blog posts made @ liip. Please see here for the original post and comments: http://blog.liip.ch/archive/2011/07/26/phpdoc-compilers-and-inheritdoc.html
In the PHP content repository, we have a set of interfaces and implementation classes of those interfaces. The interfaces define the standard and are extensively documented.
A while ago, I stumbled over an article about kaleidoscope creation, probably because of one of my adobe Flash collaborators. It was lying around for a while, then during a train ride i hacked something like that together in Processing. It is impressing how different a picture looks when mirrored this way.
I spent quite some more time to fine tune the sketch. I created an applet to play around on the web, but i recommend downloading the real application. The download version runs smoother and in full screen, plus you can load your own images and save snapshots.