Interview sur Grand Lille TV

Hier, j’ai été interviewé dans l’émission Les rendez-vous de l’éco sur Grand Lille TV pour présenter Les-Tilleuls.coop.

Interview dans La Voix du Nord

Photo par Camille Legrand / La Voix du Nord

Photo par Camille Legrand / La Voix du Nord

La Voix du Nord a publié dans son édition du jour un portrait des Tilleuls dans lequel je suis interviewé :

Créée il y a deux ans à Lomme, Les-tilleuls.Coop, société de développement de logiciels, affiche un modèle économique participatif. La société est détenue à 95% par ses salariés. Un mode de fonctionnement « démocratique et plus sécuritaire pour les employés », selon son gérant, Kévin Dunglas.

Dans un paysage économique fragilisé par la crise, Les-Tilleuls.Coop détonne. «Bénéficiaires depuis le début, nous sommes actuellement en période de recrutement », détaille le gérant de l’entreprise et directeur technique, Kévin Dunglas. Spécialisée dans la conception de logiciels et d’applications numériques, la société lommoise vient de s’installer dans le parc d’activité d’Euratechnologies. Un emplacement stratégique, considéré comme le pôle d’excellence économique dédié aux Technologies de l’information et de la communication (Tic).

Née il y a deux ans, sous l’impulsion de trois experts du web, Les-tilleuls.coop compte désormais huit salariés : six développeurs, un directeur artistique et une chargée de communication. Une équipe jeune, à la moyenne d’âge avoisinant les 25 ans. Ensemble, ils développent des sites web, réalisent des plateformes e-commerce, mais également des applications web ou mobile. « Un domaine en constante expansion », souffle Kévin Dunglas. qui recherche deux nouveaux développeurs, preuve de la bonne santé financière de la société.

Salarié et collaborateur

Et pour cause, celle-ci compte déjà quelques grands projets à son actif : les infrastructures web réalisées pour le réseau d’autopartage Citiz, ou la création d’un système d’information pour la boîte Alice Garden, spécialisée dans l’équipement d’extérieur. « Pour ce faire, nous utilisons des logiciels libres, c’est-à-dire dont l’utilisation et la modification sont possibles par tous », explique le directeur. Un choix qui s’inscrit dans une démarche « de partage des connaissances ». « Chacun peut faire évoluer le logiciel ou le personnaliser », détaille Kévin Dunglas.

Mais la particularité première de l’entreprise tient en son mode de fonctionnement. Société coopérative et participative, elle est détenue à 95 % par les salariés. L’Union régionale des Scop et Nord actif possèdent le reste. Devenir associé de l’entreprise constitue un passage obligé pour les employés. « Contrairement à d’autres Scop, un salarié ne peut pas espérer entrer chez les Tilleuls s’il ne veut pas devenir collaborateur. » L’objectif consiste à favoriser la démocratie d’entreprise. « Chaque salarié a son mot à dire sur le fonctionnement de la société, il n’y a pas d’actionnaires extérieurs. » Mieux, les bénéfices sont répartis entre les salariés, redonnant dès lors « un sens au travail et une motivation. » Pour le gérant, c’est indéniable, ces sociétés participatives sont une réponse à la crise : « Les décisionnaires connaissent l’entreprise sur le bout des doigts. Et puis il y a aussi une certaine sécurité : l’entreprise ne peut pas être revendue sans l’accord de l’ensemble des employés. »

Forte d’une situation plutôt favorable, la société n’en finit pas de se développer. Elle tend aujourd’hui à se diversifier en dispensant des formations à destination des spécialistes du web. « Nous avons des compétences très pointue en matière de développement, confie Kévin Dunglas. Généralement les entreprises sont assez frileuses à utiliser les technologies nouvelles et les développeurs ne sont pas formés pour les utiliser. C’est là que nous intervenons. »

Par CAMILLE LEGRAND (La Voix du Nord du 17/02/2014)

Le profiling commercial, kézako

Courte réponse à une question posée par un collègue développeur à la suite d’une discussion sur le bienfondé de l’utilisation des CDN externes.

Question qui revient régulièrement : le profiling commercial, qu’est-ce que c’est ?

C’est le fait de collecter un grand nombre de données sur les internautes et d’établir sur eux un profil qui servira à leur envoyer de la publicité ciblée. C’est une spécialité de Google, Facebook et compagnie.

Le problème des CDN “gratuits” (et surtout ceux de Google, même si ils s’en défendent) ainsi que des systèmes de stats (et de toute resource venant d’un domaine externe comme les boutons Facebook, Pinterest…) c’est que qu’ils permettent aux boîtes qui contrôlent le serveur externe de savoir que t’es allé sur tel site, que t’as visité tel page, et donc d’enrichir ton profil commercial.

C’est impossible à détecter côté client car même si tu bloques les cookies, il est possible d’utiliser des heuristiques assez performantes pour identifier de manière fiable un internaute. En gros le système de Google détermine qu’une connexion avec la même IP, le même navigateur, les mêmes plugins… correspond à une personne unique et lui génère une empreinte. Ensuite c’est assez simple de savoir que la dite personne (via son empreinte) a visité le site A chargeant sont jQuery via Google Hosted Libraries, le site B qui utilise Google Analytics et le site C qui a un bouton “+1”), on enrichi son profil commercial, et quand il arrive sur le site D qui balance du AdWords, on sait qu’il aime la bière et les frites donc on essaie de lui vendre une place pour un match de Lens.

C’est plus ou moins comme ça que fonctionne Criteo mais aussi et surtout Adwords et les pubs de “pages” Facebook.

New release of the ACL extension for Sonata Admin

This is the time of new releases! After the open-sourcing of the AngularJS CSRF protection system for Symfony and a new release of the Symfony TodoMVC sample app, a new version of CoopTilleulsAclSonataAdminExtensionBundle is available!

This bundle, brought to you by La Coopérative des Tilleuls, provides ACL list filtering for SonataAdminBundle. When enabled, list screens only display data the logged in user has right to view.

It is part of our effort to make the Sonata Project better.

What’s new?

Les-Tilleuls.coop fête ses deux ans

Il y a deux ans éclosait le projet de La Coopérative des Tilleuls, un studio de développement logiciel, autogéré et éthique, qui travaille principalement autour du logiciel libre. J’ai l’honneur d’en avoir été le gérant jusqu’ici.

Nous sommes désormais 8 à travailler dans notre Scop, dont 6 sont déjà coopérateurs. Après quelques tâtonnements, notre mode de fonctionnement est maintenant plutôt rodé et efficace : nos deux premières années d’exercice furent bénéficiaires, nos clients se multiplient et nous dispensons des prestations de qualité : architecture logicielle, audit, développement, création graphique et formation. Nous  ne sommes pas encore à la parité (3 femmes pour 5 hommes) mais par contre, nous ne sommes pas près de réaliser les sites web d’un antisémite notoire.

Après plus d’un an et demi de bons moments à Co-Factory, nous disposons désormais de nos propres locaux à Euratechnologies. Nous continuons d’animer des conférences et workshops (le plus souvent gratuits) et nous contribuons autant que possible aux logiciels libres et en particulier à l’écosystème du framework Symfony.

Quelques chiffres :

Bilan 2013 La Coopérative des TilleulsMerci à ceux qui travaillent avec acharnement tous les jours de la semaine, à Olivier de l’UR Scop Nord, à la société Walibuy / Alice’s Garden qui nous a fait confiance depuis le départ, à Magali et David de Co-Factory et bien sûr nos à proches.

DunglasTodoMVCBundle compatible with Symfony 2.4

I’m pleased to announce the release of DunglasTodoMVCBundle 1.1.0.

Screenshot Symfony Todomvc

DunglasTodoMVCBundle is an implementation of TodoMVC, the popular site providing the same todo app implemented in a ton of different JavaScript frameworks.

This bundle provides a REST / JSON API built with Symfony and Doctrine, and an API client built with Chaplin.js and Backbone.js.

In this new release:

Enjoy!

Entities and Mapping Information with the Doctrine ORM

Persistence in PHP with the Doctrine ORM

Another free chapter of my book Persistence in PHP with the Doctrine ORM is available on the Pack Website. In this second chapter of the book, you will:

  • Create your first Doctrine entity class
  • Mapping it to its related database table and columns with annotations
  • Use Doctrine Command Line Tools to automatically generate the database schema
  • Create some fixtures data
  • deal with the Entity Manager

To get started with Doctrine entities, read this chapter on the PacktLib.

Building Doctrine queries with DQL and the query builder

Persistence in PHP with the Doctrine ORM

A chapter of my book Persistence in PHP with Doctrine ORM is available for free on the Pack website.

This chapter explains some interesting Doctrine concepts including DQL (the proprietary SQL-like language of the Doctrine ORM), entity repositories, the query builder and aggregate functions.

Read this free chapter on the Packt website.

Persistence in PHP with the Doctrine ORM: my new book in pre-order

Persistence in PHP with the Doctrine ORM

My new book about the Doctrine project is pre-orderable on the Packt website. It will be available in late december. A free sample chapter will be published shortly.

What you will learn from this book

  • Install Doctrine through the Composer dependency manager
  • Configure Doctrine Command Line Tools
  • Learn to manage relations between entities with different association types
  • Create data fixtures, a custom entity repository, and native SQL queries
  • Master the query builder to generate DQL queries
  • Get started with inheritance and lifecycle events

In Detail

Doctrine 2 has become the most popular modern persistence system for PHP. It can either be used as a standalone system or can be distributed with Symfony 2, and it also integrates very well with popular frameworks. It allows you to easily retrieve PHP object graphs, provides a powerful object-oriented query language called DQL, a database schema generator tool, and supports database migration. It is efficient, abstracts popular DBMS, and supports PHP 5.3 features.

Doctrine is a must-have for modern PHP applications.

Persistence in PHP with the Doctrine ORM is a practical, hands-on guide that describes the full creation process of a web application powered by Doctrine. Core features of the ORM are explained in depth and illustrated by useful, explicit, and reusable code samples.

Persistence in PHP with the Doctrine ORM explains everything you need to know to get started with Doctrine in a clear and detailed manner.

From installing the ORM through Composer to mastering advanced features such as native queries, this book is a full overview of the power of Doctrine. You will also learn a bunch of mapping annotations, create associations, and generate database schemas from PHP classes. You will also see how to write data fixtures, create custom entity repositories, and issue advanced DQL queries. Finally it will teach you to play with inheritance, write native queries, and use built-in lifecycle events. If you want to use a powerful persistence system for your PHP application, Persistence in PHP with the Doctrine ORM is the book you.

Approach

Persistence in PHP with the Doctrine ORM is a concise, fast, and focused guide to build a blog engine with advanced features such as native queries and lifecycle callbacks.

Who this book is for

This book is primarily intended for PHP developers and architects who want to increase their skills in the field of Persistence and ORM to map the data they are working on to objects they are using in programming. Basic knowledge of databases and PDO and working knowledge of PHP namespaces is a prerequisite.

Making the Sonata Project better

As a freelancer and with my company, Les-Tilleuls.coop, I built many applications relying on Sonata bundles for Symfony. I especially recommend the Admin generator and the Media manager.

As these components help me to build apps with ease and speed, it’s a fair reward to contribute back to them when I can. In addition to being the author and maintainer of the Doctrine MongoDB ODM compatibility layer of the Admin Bundle ; I’ve recently added some useful features to the Sonata Project and it’s time to give them more exposure.

ACL editor for the Admin Bundle

Sonata ACL editor

The ACL component of the Symfony framework is as powerful as complicated. The Sonata Admin bundle provides a useful integration with it allowing to restrict actions to authorized users only. What was missing was an interface to set the permissions. I’ve fixed that and this ACL editor is now provided with the Admin bundle. This is now matter of a click for an admin to give rights to users on entities.

If you want to use this feature in your project, refer to the Sonata Admin documentation that have been updated accordingly.

ACL list filtering for the admin

This is a perfect complement to the ACL editor previously described.

I’ve built a bundle called CoopTilleulsAclSonataAdminExtensionBundle (distributed separately) providing a Sonata admin extension that filter lists of entities. Only entities that the logged in user as the right to interact with are displayed.

It also works with the ACL system of the Symfony security component. The documentation is provided with the bundle.

Confirm dialog to avoid losing unsaved changes

Sonata confirm on exit

A common pitfall with web apps is that when a link is clicked, unsaved data entered in a form is loose without warning. Thanks to the integration of my small confirmExit plugin for jQuery, the Sonata Admin no longer suffers of this flaw. This feature can be disabled through a configuration parameter.

My jQuery plugin internally use the useful Window.onbeforeunload Javascript event.

Integration of Sonata Media in CKEditor

Sonata integration in CKEditor

The Sonata Media manager is the most powerful way to manage images, videos and files in Symfony powered applications. It supports YouTube, Vimeo and Dailymotion videos out of the box, image thumbnail generation and Amazon S3, FTP and CDN storage systems. It is highly extendable and is provided with a customized Sonata Admin UI.

What I missed was the ability to select and upload Media directly from CKEditor, the popular WYSYWG visual text editor. Those features is now available as a separate bundle (when I have time, I’ll move it directly in the SonataMedia bundle). The CoopTilleulsCKEditorSonataMediaBundle bundle allows to:

  • Upload an image through Sonata Media directly form the CKeditor’s image dialog
  • Select an existing Sonata Media file
  • Create a link to a media handled with Sonata through the CKeditor’s link button
  • Upload a file from the CKEditor’s link dialog

As always, the doc is included with the bundle.

I’ve also make some bug fixes on SonataAdmin, SonataMedia, SonataPage and SonataDoctrineORMAdminBundle. Hoping these enhancements will help some Symfony developers!