deSymfonyDayThe annual Symfony conference in Spain took place last weekend. This time the conference had completely different format: one day, one track, shorter talks (30-40 min) and an unconference. There was also a limit on the number of attendees, 150, to promote a sociable networking experience. The conference was awesome.

The event was held at the Casa Convalescència in Barcelona, a stunning symbol of modernist architecture which was declared a monument of historic and artistic interest, and also named as a UNESCO cultural heritage site.

Casa Convalescència

Casa Convalescència


I find the format of shorter talks and a single track very appropriate for single-day events. Talks were fast-paced and you don’t have to choose which ones want to attend.

There were about DDD, testing, dependency injection, SOLID, microservices and HHVM. I presented a talk on creating a cryptovirus for Symfony apps, not quite your standard PHP conference talk, but interesting as a proof of concept.

Creating a cryptovirus for Symfony2 apps

Creating a cryptovirus for Symfony2 apps

The objective of the talk was to create, for educational purposes, a simple cryptovirus for Symfony2 applications using public-key cryptography. I included strategies both to make it harder to detect and how to defend ourselves from such attacks. Cryptovirology studies how to use cryptography to design malicious software and public-key cryptography can be used to break the symmetry between what an antivirus analyst sees in regards to a virus and what the virus writer sees. The prototype I created encrypted user uploaded files and passwords pairs obtained from the login form. The presentation slides are available here:

The rest of the talks were very good. I would emphasize “DIC to the limit”, by Ronny López. Ronny is the technical lead at Social Point, one of the largest Symfony projects with more than 24.7 million monthly active users. He explained the challenges they faced and how they solve them to make the code easy to test and with an interchangeable infrastructure. Slides are available here:


Attendees proposed lightning talks of 10 minutes during the morning and the 7 with more votes were given at the end of the day. I loved this format, it is fast and allows you to learn about a variety of topics. I also gave a lightning talk about how GZIP works in 10 minutes, based on the post I wrote a few weeks ago, but if I had to choose only one talk, would be “TDD is dead”, by Carles Climent.

Carles started this talk shockingly: “My name is Carles and I am necrophiliac”. Then he explained why: “As TDD is dead now (in reference of famous David Heinemeier post) and I still love it, so I must admit it, I am necrophiliac”. Carles explained how TDD changed the way he works and encouraged us all to give it a try.


Organization proposed a challenge to all attendees: write a PHP program able to print the song “99 tests are failing” with the fewest characters:

99 tests are failing in the repository, 99 tests are failing.
Take one, fix it and pass it around, 98 tests are failing in the repository.
98 tests are failing in the repository, 98 tests are failing.
Take one, fix it and pass it around, 97 tests are failing in the repository.

The winner was Javier Beaumont, who was able to do it with only 237 bytes. The prize was a ticket for the next SymfonyCon that will be held in Madrid. There is a similar challenge here if you want to have fun.

<?for($i=100;$i;){$s="\r\n";$p=--$i-1?"s are":" is";$t=($i?:99)." test$p failing";$r="$t in the repository";$b.=$i?($i<99?"Take one, fix it and pass it around, $r.$s$s":"")."$r, $t.$s":"Go to another suite and start again, $r.";}echo $b;

No clean code here! :)


ServerGrove was, once again, one of the sponsors. We love all conferences, but deSymfony is always special. We missed Pablo this time but I am pretty sure he won’t miss it next year.

Photo: Casa de Convalescència – 354/366, by Roger Ferrer Ibáñez.