Hello, Rust! — An overview

This is my report of my talk at the TupperRust meetup hold in Lyon (France, February 2017) You find my slides available to download. 

The February 2nd 2017, I have presented a talk entitled Hello, Rust! — An overview about the Rust language. This language describes itself as safe, concurrent, and practical. The goal of this presentation was to give an overview of several features brought by the language, such as its strong safety guarantees, or speed and memory performances.

The slides are available online

First slide from the Hello, Rust! talk

This talk has been presented during the first TupperRust meetup event in Lyon (France). This is a serie of meetups focusing on Rust. The interaction was exceptional: The audience has been a great actor of this talk, and we even had a live-coding session on projects made by someones in the room. It was a great moment to talk about concrete problem, memory safety, performance etc.

It was also an opportunity to present a project that I have started here at Liip, called Tagua VM, which is an experimental PHP Virtual Machine that guarantees safety and quality by removing large classes of vulnerabilities thanks to the Rust language and the LLVM Compiler Infrastructure.

If you have any question, feel free to ask anything!

Tags: , , , ,

Swift Alps Conference – experimentation and collaboration

The Swift Alps Conference has a special format focused on experimentation and collaboration. This is my report of the conference and the workshop Kilian and I held. The slides are available below.

Last month my colleague Kilian and I were pleased to attend the Swift Alps Conference, an experimental conference about Swift taking place in the Swiss Alps. This conference had a different format from what one can expect from a typical software development conference. In this case the format was more focused in experimenting and collaborating with other attendees with the goal of learning something new.

Experimenting with strangers

Continue reading about Swift Alps Conference – experimentation and collaboration

Tags: , , , , , ,

Rebranding – a symbolic move to recover from an economic downturn?

Swiss marketing Vaud
Conference 2016.04.12
Revamping the Identity of an Iconic Technology Brand: Logitech

Rodrigo Castaňeda, Head of Brand Experience


© Atelier Kaïros photos

Logitech’s rebranding was qualified as the most ambitious brand transformation in its 30+ year history’ in the summary of the conference. It was intended to reflect the company’s commitment to design and its transformation into a stronger, multi-category technology brand.
I was particularly interested in listening to Rodrigo Castaňeda and on which perspective he would adopt to explain Logitech’s rebranding. Not only thanks to swissmarketing’s appealing summary but especially because I think that there is nothing challenging like crisis communication or management. In those situations we learn the most and get to understand, in retrospect, from the weight of our decisions. The way a company tells its history is revealing of its essence.

Continue reading about Rebranding – a symbolic move to recover from an economic downturn?

Tags: , , , , , , , , ,

FutureJS ’15

Full Stack Fest

Last week some Liipers and I were in Barcelona for Full Stack Fest, 5 days of Ruby and JavaScript talks, workshops and hackathons. I personally only attended the second part, FutureJS, and this is going to be today’s topic.

Progressive enhancement FTW

The first talk I’d like to share was everything but disappointing. I already saw Rachel Andrew last year at the Front-end Conference in Zürich — an impressive talk about the CSS Grid Layout — and so I was eager to listen to her again. This time the topic was “The business of front-end development” and covered various themes related to her current work and experience.

So what is front-end development? As she said, it used to be mostly being a browser bugs expert. But as they become more and more focused on standards and keep updating frequently — and even automatically — we can finally focus on the most important: creating a good user experience.

The problem is, we tend to be lazy and installing frameworks and libraries without even thinking about the drawbacks is becoming the standard. As Rachel said, we are for sure gaining time on our sides, making our processes quicker but is it worth it? It might cause accessibility issues or even increase the site loading time and you should probably care about this.

Projects are all different, put your usual tools aside when they don’t fit. Think about your visitors’ browser, the country they live in and the usual network connection they have. Focus on the core experience and then — and only then — make it shine.

The slides are available on Speaker Deck.

Web security is hard

The second talk that particularly caught my attention was the one from Alex Sexton about “Hacking Front-end Apps”. I knew security on the web was hard, but I really got impressed by his examples of possible hacks.

As he told us, we all have a friend named <script>alert('Hacked')</script> somewhere in our database but that’s just the tip of the iceberg. All the libraries you hot-link from CDNs, the JSONP requests you do, all these flaws could potentially result in external code being executed on your site.

“You cannot detect malicious code”; I totally approve this assertion, myself having been hacked in the past. The upcoming solution therefore totally makes sense: block everything by default and then white-list only what you trust.

“Content Security Policy”, a W3C Candidate Recommendation, is a standard HTTP header designed to allow websites to declare approved sources of content that browsers are allowed to load into the current page.

CSP will disable inline JavaScript and CSS, eval() and any cross-domain resources including images and fonts by default. It even offers the possibility to report violation to your the URL of your choice. Ain’t that great?

All you have to do then is to define a white-list of resources you want the browser to load. The support is pretty good and you can read more about it on content-security-policy.com.

Discover a bunch of the most weird front-end hacks in the slides.

But that’s not all…

The interactive presentation of Ben Foxall about browser capabilities was fun. Listening to Tom Dale talking about the process behind Glimmer, Ember’s rendering engine, was interesting. Also watching James Halliday creating a Twitter-like messaging system based on P2P was pretty impressive. And finally, hearing Mikeal Rogers saying that Node and IO will be together again to release Node 4 under the Node Foundation was reassuring.

This edition of FutureJS was great; especially the venue and the party at the beach. The biggest disappointment was probably the Wi-Fi who was actually worse than the one from the hotel. If anyone from the organizers is reading this, please do something for next year! Full Stack Fest will takes place again for sure but the dates aren’t known yet, check the line-up once its released!

Tags: , , ,

Good vibes at DjangoCon Europe 2015


Last year’s DjangoCon Europe took place on its own island, and this time we were welcomed by the beautiful Cardiff University. One of the goals the organizers immediately set was to promote diversity and embrace minorities, encouraging them to participate to this event. I remember when I bought my ticket and I read “all dietary requirements can be met” and I thought “they’re probably trying to set the bar too high”. This is a not so unusual statement, but when confronted to reality you usually end up with dishes not adapted to your dietary requirements, and, as a minority, having to ask for something special can really make you feel excluded. This time was different, as the organizers meticulously took care of that.

I talked about dietary requirements because it’s an important topic for me, but they also made sure to have a code of conduct, a financial assistance for people who want but can’t afford to attend, a wellbeing service, a subscription system for meals to avoid wasting food, reusable aluminum bottles instead of plastic water bottles, live transcription of talks (for hard of hearing or non-english people), and even a crèche.

All of this was not just buzzwords but was carefully handled by the organizers. In the end, it made everyone feel welcome and put a very warm atmosphere to the event. Talking with people was very interesting and rewarding because of the incredible diversity of backgrounds. A few days after the conference the Django Software Foundation even released a diversity statement to make sure everyone feels welcome in the Django community.

The choice of talks was about 50/50 between technical talks and community talks. I found the community talks to be very inspiring such as Ola Sendecka’s “Into the rabbit hole” which reminded me the benefits of the Pomodoro technique and pair programming. Also Adrienne Lowe’s talk “Coding with knives” and Russell Keith-Magee’s touching talk about burnout debunked the myth of the rock-star programmer, and how important it is to help people to get started on things they’re not comfortable with.

I can’t list all the talks I loved because there are way too many but among those I could find the slides for were Ana Balica’s “Demystifying mixins with Django“, Erik Romijn’s “A sincere tale of Django, developers and security“, Aaron Bassett’s “Effortless real time apps in Django“, James Bennett’s “The net is dark and full of terrors“, and of course Rae Knowler’s “Randomised testing for Django with Hypothesis“.

The 3 days of talks were followed by 2 days of sprints and this was a very good opportunity to dive into Django’s code and start fixing things. The core developers did a good job at helping people setup a development environment and start hacking on the code. This was a very rewarding part of the conference as this allowed me to do my first pull requests on Django and Django CMS.

Thanks to the DjangoCon Europe team who did an amazing job at organizing this event. See you next year in Budapest!

Tags: , ,

Impressions from the Moodle Conference

The annual Moodle conference for the UK and Ireland took place at the Dublin City University,  March 11th to 14th, 2015. Due to the flu that got me down as I got back, this post comes with a slight delay.

The main topics of this years UK & Ireland Moodle conference in Dublin were Learning Analytics and the Moodle Association. Further notable topics were (the more technical) inclusion of Bootstrap 3 in Moodle, the working groups for the simplification of forms and for designing a student dashboard.

As Moodle HQ are in the process of taking ownership of a couple of key Moodle conferences (Dublin was not one of them, but there was strong collaboration), the new format of “working groups” was tested on a larger scale. The idea of a working group is for Moodle users to work on a a specific topic in order to come up with specifications for Moodle HQ to implement as improvements to the Moodle core. The topics here were “form simplification” and “student dashboard”. These working groups have a certain weight, as a delegate from HQ will take part, with the task to make sure the outcomes can (and will) actually be implemented. An interesting observation here was, that at the hackday at the end of the conference, as the working group findings were presented and discussed, the tasks were heavily challenged by developers who naturally prioritise and approach things differently. I could sense a bit of frustration there when a response from HQ representatives would be “this is what the working group was for and basically you’re too late now with your input”. I think it is early days for the working group approach and it will take some time to get used to it.

The most heated discussions were on the initiation of the Moodle Association, as presented by Martin Dougiamas. Martin has been looking for new ways to fund Moodle development for some time now and this is what he decided to do. The Moodle Association is a non profit organisation (and therefore excempt from taxation). It will be completely separate from Moodle HQ after the initial work necessary to launch it. The idea is, for members of the association to come up with specifications and funding for Moodle core development and then to contract HQ to do the work. Martin would like to see instituions to be members in order to comission large junks of development work. There will be a correlation between how much money an entity puts into the association and how many votes it will have. All projects will be up for the association members to vote on. The projects with the highest votes will have the association’s funds allocated to it and will be developed by Moodle HQ. There will be some sort of cap on how many votes individual association members can have.

The idea of this associations opens a lot of questions of course, especially on what it means for Moodle partners who are currently the sole source of funding for Moodle (10% of revenue from Moodle related work by partners goes to Moodle HQ).

The keynote on learning analytics by Bart Rientes from the Open University gave a very interesting insight into what Open University do with their attempt at predictive analytics. The idea there is to show learners which areas of the curriculum they should focus on for the best outcome, based on data analysis. This topic raised two main questions: How do students get to see and use this data and what are the questions we want the (analytics-) system to answer. In a hands-on example with Gavin Henrick I experienced how difficult it is to come up with this question. Without this question being sensibly formulated though, learning-analytics somewhat remains a buzz-word.

The best example of a customised Moodle was presented by Thomas Bell with the United for Wildlife MOOC platform they launched as beta on that day (…). The platform comes with a rather beautiful user interface. Check it out! learn.unitedforwildlife.org

David Mudrak gave a good overview of how the plugins universe works, with a plea for more support on reviewing third party plugins. This reminded me of our initiative to collaborate and publish security reviews of plugins we do for our clients. Somehow it seems hard to motivate developers or companies to collaborate on this.

Davo Smith eloquently convinced us how easy it is to use Behat testing and Dan Poltawski demonstrated how Moodle HQ do continuous integration.

The hackday brought some excellent discussion and follow-up work on the integration of Bootstrap 3 and the state of renderers and templates in Moodle. This was once again the most inspiring part of the Moot, there’s some very talented people that are passionately involved in making Moodle the best VLE out there. This is no easy task, considering the massive amount of code and all those legacy bits still lingering. One of the reasons Moodle needs more funding is to make it the best possible option on the VLE market. The competition is there and work needs to be done. The difficulty here is the generic nature of Moodle: changes need to work for all the users, not just one specific site.

Thanks to Gavin Henrick and the team for making this great MoodleMoot possible. And thanks to Liip for giving this little bit extra to allow me to travel to Ireland by train, bus and boat.

leaving Ireland on the ferry

Tags: , ,

The value of designing for outcomes

Last week I’ve been granted the opportunity to visit Sweden to attend the 7th edition of the Service Design Global Conference. I met curious, thinkers and doers that strive to “Create value for quality of life” – whatever it means for each of us. When asked about what does “quality of life” visually mean for each of the speakers, none showed an image of modern device. Nothing to do with technology, user research or science developments, but all, really all, dedicated their first slide to a personal and private dimension. Yet, a common sense of life quality: love, peace and humanity. Pictures of their roots and fruits – their families. Pictures of their colleagues and friends. And Nature. Fragments of trivial existence that build a valuable panorama of life.

Continue reading about The value of designing for outcomes

Tags: , , ,

Liip supports Delightful User Experiences

UX Lausanne 2014 conference inspired a local and an international audience by offering a variety of perspectives about our nature.

Our souls, our lives, our day-by-day is more and more widely influenced by the contribute of new ambitions, cross knowledge and the errors we keep solving from past. Contemporary life is easier – he hope for better, but it might not be.
Throughout history, we have been living faster due to a forward thinking which allows us to do more in less time. But that time seems also faster, or we are taking more time then what we want to see…

Continue reading about Liip supports Delightful User Experiences

Tags: , , , , , ,

Discussions and Pizza at PHPDay Italy

PHPDay Logo Last week, I was invited to do a Symfony Content Management Framework tutorial at the PHPDay in Verona. I saw great talks, most notably a demo of Docker. I had a good crowd of people for the two hour walkthrough of building a website with the CMF. In this post, i share some experiences from the conference.

Having arrived on wednesday, I went to see the you have ruined javascript rant by Rob Ashton. It was definitely an entertaining and passionate talk. I feel not qualified to decide how much Rob is exaggerating, but he definitely brought forth valid critics and reminded the general rule of not always using a large framework even for small tasks. In the evening I had dinner in downtown Verona.

Thursday started of with an introduction to AngularJS in combination with Symfony2. I liked the examples how even when doing a frontend application, Antonio still manages to use the power of Symfony Forms and other components without doing everything twice. When using Symfony2 and AngularJS you definitely want to look at these slides. In the afternoon I did my Symfony CMF tutorial. I walked the audience through building an application with the CMF. I showed a lot of code and explained both the “how?” and the “why?”. I had decided not to do hands on, as two hours is too short for that. I did hands-on CMF at a workshop at PHP Benelux earlier this year, and the 3 hour slot was just enough. The walkthrough was well received and i had interesting discussions with some participants after the workshop.

The day was wrapped up by an unconference talk about the joys and frustrations of working on composer by Composer himself (yeah Jordi loves it when you call him that :-P ). Jordi showed some really funny and some sad examples of reactions he got. After that, it was off to the speakers dinner, which was awesome italien cuisine (as in, not Pizza but delicious food with good wine).

Saturday started with meeting Simone Fumagalli who is contributing Nginx support to the FOSHttpCache library. We met for the first time in real live, and wrapped up his pull request. Meeting people is just as important to me about conferences as the actual talks. I made it in time to see a mind-blowing presentation on Docker by Alexander Mols. I definitely need to look into this tool. On a modern Linux (which is of course what I work on), its just so insanely faster and easier than running Vagrant to normalize the development setup. And even with other operating systems, it will work at least as good as vagrant. Thanks to dokku it is even possible to use Docker in a Heroku-style deployment process by simply pushing to a git remote. Alexander cautions that both projects do not yet claim to be production ready, however. In the afternoon, I ended up sitting in the sun and talking to a bunch of interesting people most of the afternoon. Discussions ranged from PHPBridge, a project meant to introduce total non-programmers to PHP with a strong social twist, over community building to more personal discussions with people from all over Europa.

It was my second time in Verona and this edition of PHPDay was just as great as I remembered the first time. I saw good presentations and got new inputs, and had many interesting discussions with interesting people. It was great to meet friends from the PHP community and make new friends. I am thankful that Liip supported me going to the conference, and also sponsored the conference.

Tags: , , , ,

For the very first time: Hello UK!

I have been on the conference tour for quite some time now and on top of that I travel about every 2nd weekend to some frisbee tournament around the globe. Yet I have never visited the UK. So far the most I have seen of the UK was transiting via direct bus from one London airport to another. So I was quite thrilled when my talk about the Symfony2 CMF was accepted for PHPNE in Newcastle. I was also quite keen to learn more about the PHP community over there. At any rate I flew in on Monday evening and made my way to the hotel in a light drizzle which perfectly matched my image of UK weather. But even in the dark one could make out the historical feel to the architecture in the city center. I cut the sightseeing short and crashed into bed. Next day I made my way to the conference venue which was set at a movie theatre. There were countless busy bee’s from the organization team and in general this conference was organized top notch. Quite an impressive achievement given that this was the very first PHPNE. The theatre also provided top notch projectors and of course comfy seats.

Rowan kicks off the show

Rowan did an awesome intro keynote talking about how to make better developers, touching both and practical aspects in terms of tech setup and continuing on to useful tips about self education and human interaction.

API Design by Alex

Next talk I listened to was about API design by Alex. It was a combination of general tips and lesson learned from introducing an open API at a university. I pondered raising my hand when the presenter flat out recommended to always go with JSON over XML for REST APIs. Personally JSON is my preferred format when the client is usually a browser as it integrates so naturally there. For server to server interaction I much prefer XML, since its simply a much better format when one needs to evolve data format as one can get away with many changes without requiring a new API version.

Bastian on logging and metrics

After this talk I attended was delivered by Bastian about logging and metrics. This is a topic I find quite important but unfortunately I have found its hard to convince clients to invest into this as they tend to focus more and features end users can see. However to ensure a stable environment which is sort of the basis for ensuring that customers can enjoy your site, logging is key. Furthermore only with metrics it is possible to figure out what features customers actually use, where they might get stuck and what could be easily dropped. It was nice to see that the tools Bastian chose to introduce are exactly the tools I had on my radar already. He specifically mentioned graylog, logstash, statsd and graphite.

Lunch time chat on knowledge exchange

Over lunch I ended up chatting with Rowan about internal knowledge exchange. Rowan works for Invica. Just like Liip they have multiple offices and deliver projects using various frameworks and applications. Interestingly they seem to have several teams that span across offices. At Liip we of course also sometimes collaborate between teams in multiple offices, however project teams for the most part always come together in a single office.

Fabrice showing the path to Symfony2

After lunch the sessions commenced again. I had seen Fabrice’s talk about migrating legacy applications to Symfony2 before. However it has evolved quite a bit since then. I will definitely apply many of his tips next time I have the task to migrate a legacy application and look forward to Theodo release some of their solutions as open source.

Intro to the CMF

Right after Fabrice’s talk I delivered my CMF presentation to a noticeably smaller crowd. I hear the talk that was running in parallel about dealing with failures was very good. At any rate I must admit I have seen this pattern before at other conferences. I tend to have a fair number of people asking questions in my talk and afterwards even more. So I figure that the market for people willing to explore a new content management approach is simply a bit smaller than other topics, yet for those who do have issues with the current solutions its quite an important topic. At the start of my talk I asked what frameworks people are using and it validated a feeling I had gotten in the previous talks: There was no clear goto framework for conference attendees. The preferred frameworks were all over the map.

Theij’s on the cloud

The closing keynote was held by Theijs who did a very energetic delivery to drive home the point that really the cloud is nothing more than .. the internet! Additionally he provided several good hints about what things to consider when using SaaS.

Bar chatting

After the closing ceremony with lots of prizes we then moved on to dinner and finally everybody met back at a local bar where we had free drinks all night. However instead of simply getting drunk there were many lively discussions. I talked quite a lot with people about Symfony2 and the need for RAD development layers on top of the core. I also chatted a bit about e-commerce solutions in the PHP scene, specifically Magento, Oxid, FoxyCart as well as Vespolina and Sylius. At any rate, people were so busy talking that the free drinks money actually only ran out just before the bar was closing anyway.

CMF workshop

For me however the conference wasn’t quite over then as thanks to a late afternoon return flight I had offered to provide a CMF introduction workshop on the next day. Anthony had managed to secure funds to give us a room large enough that I could give 10 people a 4 hour run down of all the details about the CMF with much more depth than my talk at the conference. Some people had already played with the CMF while others had only heard about it in a blog post. I led the attendees decide how to best spend the time. In the end all attendees installed the Symfony2 CMF Standard Edition, I answered several specific questions that some of the people had that already played with the CMF but aside from that I just ended up going through the PHPCR and Routing/Menu slides, showing a bit more about the SonataAdminBundle and various other pieces. After the workshop I grabbed lunch together with Lars and Marc. Lars had been posting various questions about how to implement publishing workflows on the mailing list and is now diving into implementing some missing functionality into the Jackrabbit transport layer of Jackalope, which was just merged.

Wrapping up

Overall I must say it was a great conference and I was especially grateful that I could do the workshop. As we are approaching the first stable release its important to get as many people double checking our concepts as possible. Secretly I am also hoping that the attendees will take what they have learned and spread the word in their cities and organizations. Even with the internet frameworks and applications tend to be strongest in close geographical proximity to the core developers. So having an opportunity to make the Symfony2 CMF known outside of continental Europe will hopefully help grow the user base.