Nos Articles

A practical guide to continuous integration in PHP

Le par David Négrier

At TheCodingMachine, we strive to develop projects with the best possible quality. In this article, we are presenting the tools we use internally to do continuous integration. Continuous integration is the process of running a set of automated tools on...

TheCodingMachine partenaire du CNRS

Le par Benjamin Rosenberg

TheCodingMachine, au travers de son Président Jean-Guillaume Dujardin, vient d'intégrer le programme de prématuration du CNRS dans la catégorie Sciences de l'ingénierie et des systèmes (INSIS).

Gérer sa dette technique pour éviter le crash

Le par Kévin Nguyen

“Le projet est trop vieux, il faut tout refaire”, “On jette tout et on recommence”, “Les coûts de maintenance et d’évolutions deviennent exorbitants, on ne peut plus continuer comme ça, il faut refondre entièrement l’application”, “J’en peux plus, le moindre...

ORM, Active Record and Data Mapper

Le par Xavier Huberty

Because Web Applications become more and more complex and users more and more demanding, we must focus on performance. Since querying the database is a sensitive point for performance the focus of this article will be the performance impact of Object-Relational-Mapping.

[PSR-11+] An update on standard service providers

Le par David Négrier

In my previous blog post, I talked about the different ways to build interoperable PHP modules. It turns out we have had quite a lot of very constructive feedback from many different sources. In this blog post, I'll keep you...

Service Worker et Push API, comprendre les bases pour démarrer

Le par Kévin Nguyen

Avez-vous remarqué que certaines applications (Facebook, Slack, Asana, ...) sont désormais en mesure de pousser, via votre navigateur Web, des notifications pour vous tenir informé de ce qui se passe, ou de ce que vous avez raté ? En plus,...

La nouveauté PHP 7

Le par Benjamin Rosenberg

Sorti début décembre, PHP 7 marque forcément un tournant important dans le monde du développement web dans la mesure où plus de 70 % des applications web sont développées en PHP. Alors, quid des changements et des relations futurs avec...

[PSR-11+] An overview of interoperable PHP modules

Le par David Négrier

A lot has been going on in the past months regarding the creation and standardization of interoperable PHP packages. We (the team behind container-interop) have been testing a lot of different solutions, and many of them have the potential to...

Environnement de développement PHP : les bonnes pratiques

Le par Benjamin Rosenberg

L’enjeu de cette série d’astuces est de construire un environnement de développement PHP efficace. En effet, il ne faut surtout pas sous-estimer l’importance d’un environnement bien mis en place. Cela va vous aider à devenir plus efficace, ce qui vous...

Docker… ou l’art d’héberger plusieurs applications sur un même hôte !

Le par Benjamin Rosenberg

L’intérêt principal de Docker est de permettre d’isoler votre application web dans un container. Comme nous l’avons expliqué, un container dispose de sa propre adresse IP interne (commençant par 172.17.XXX.XXX). Le container n’est pas accessible depuis l’extérieur, sauf si un...

Pourquoi mon site s’est-il fait pirater ?

Le par Jean-Baptiste Charron

Il n'est pas rare aujourd'hui de se rendre sur son site web et de voir que celui-ci a été piraté. Vous vous demandez alors qui l'a fait, comment, et pourquoi sur votre site ? Nous allons donner quelques éléments de...

Docker : comment organiser les containers ?

Le par Benjamin Rosenberg

Si vous allez voir la registry Docker, vous allez trouver de très nombreuses images. Par exemple, vous trouverez des images de serveurs Apache+PHP pour le serveur web, des images MySQL pour la base de données, des images Elasticsearch pour la...

Sauvetage de projets : les cas pratiques de TheCodingMachine

Le par Benjamin Rosenberg

Cas numéro 4 : problèmes détectés suite à l'emploi d'un prestataire offshore. Le projet : cette société de vente par correspondance et de vente à domicile avait décidé de refondre son système d'informations (approvisionnement, vente, facturation, etc.) Le choix d’un...

Docker : un gain d’espace de stockage énorme sur les serveurs!

Le par Benjamin Rosenberg

Il est très facile de créer et démarrer de nouveaux containers avec Docker. Mais quid de l’espace disque ? Puisque chaque container dispose d’un système de fichier d’un OS complet, ça risque de prendre de la place non ?

Docker : un outil pour les développeurs

Le par Benjamin Rosenberg

Cela ne vous aura pas échappé, jusqu’ici, nous avons surtout parlé hébergement. Mais chez TheCodingMachine, notre métier, c’est plutôt le développement web. Alors pourquoi écrire un livre blanc sur une technologie plutôt utilisée par nos partenaires hébergeurs ? Il doit...

Vive l’Open Science !

Le par Benjamin Rosenberg

Message de félicitations. Une fois n'est pas coutume, on publie ! Commençons par des excuses car nous allons commettre un pêché d'orgueil ! Mais quel bonheur d'être félicité pour notre travail... Rappel du contexte : nous avons récemment développé la...

Comment se construit un projet de web scraping ?

Le par Benjamin Rosenberg

Dans la plupart des cas, un projet de Web Scraping doit « crawler » (parcourir et analyser) de nombreux sites web, organiser, trier et stocker les données récupérées puis présenter des interfaces d'agrégation et de restitution adaptées. Le web scraping...

PSR-11: Performance impact of the delegate lookup feature

Le par David Négrier

Some people fear that running more than one container in their application will have a negative impact on performances. This article studies the impact on performance of using PHP-11's delegate lookup feature with a composite container.

Sauvetage De Projet : Les Cas Pratiques De TheCodingMachine

Le par Benjamin Rosenberg

Cas numéro 3 : abandon du projet par un prestataire. Marge de manoeuvre, manque de connaissances, de temps ou de volonté... Les abandons d'un projet informatique par un prestataire sont monnaie courante. Coup d’œil sur une réalité à éviter pour...

Sauvetage de projet : les cas pratiques de TheCodingMachine

Le par Benjamin Rosenberg

Cas numéro 2 : un choix technique inadapté. Lorsque l'on choisit un peu trop rapidement les technologies utilisées, on risque de se trouver face à un résultat très différent et inadapté aux attentes. Explications ci-dessous...

Faut-il communiquer son budget à son prestataire ?

Le par Benjamin Rosenberg

Le budget d'un projet est préoccupant, voire déterminant pour chacune des deux parties. Alors, est-ce une bonne idée de communiquer son budget à votre prestataire ? Evidemment, il n'y a pas de réponse parfaite, voici néanmoins quelques suggestions...

Conception d’un Extranet : le dashboard

Le par Nicolas Peguin

Il s’agit de la touche finale de votre application ! Malgré son aspect essentiel, c’est en effet un des éléments de conception que l’on fait en dernier.

Conception d’un Extranet : les formulaires

Le par Nicolas Peguin

La structure des formulaires peut être complexe (lorsqu’ils présentent de nombreux champs par exemple). Coup d’œil sur la forme la plus adaptée à la conception d 'un formulaire...

Web marketing : l’Acquisition de trafic par l’outbound marketing

Le par Nicolas Peguin

Le référencement payant demeure l'une des techniques les plus célèbres pour acquérir du trafic. Mais les méthodes ont bien évolué depuis l'émergence d'Internet. Ci-dessous un petit tour d'horizon des bonnes pratiques d'outbound marketing.

Framework PHP : Zend Framework 2

Le par Nicolas Peguin

L'autre mastodonte du monde des frameworks PHP : Zend Framework 2. Voici sa présentation par TheCodingMachine :

Web marketing : tunnel de transformation

Le par Nicolas Peguin

N'importe quel site Internet fonctionne (à peu près) selon trois étapes. Modéliser ces différentes étapes (en les adaptant à votre propre business) va vous permettre de mettre en oeuvre la seule stratégie qui fonctionne sur Internet, l'approche "test and learn"...

Conception d’un cahier des charges : la réponse souhaitée…

Le par Nicolas Peguin

La réponse souhaitée doit faire l'objet d'une réflexion en amont afin d'ensuite être décrite de la manière la plus claire possible. Cela permettra au prestataire de formuler une réponse au plus près de vos attentes.

Framework PHP : Symfony 2

Le par Nicolas Peguin

L’un des 2 mastodontes du monde PHP (l’autre étant Zend Framework 2). Symfony 2 est extrêmement complet. Présentation ci-dessous.

Les Grands Principes de la conception d’un Extranet

Le par Nicolas Peguin

L’objectif de cette partie est de vous présenter les grands principes concernant les enchaînements des écrans d’une application. Ces principes peuvent sembler triviaux mais NE PAS LES RESPECTER CONDUIT SOUVENT À L’ÉCHEC DU PROJET (vous ne pourrez pas dire qu'on...

Comment faire un cahier des charges pour un site web ?

Le par Nicolas Peguin

Présentation, ci-dessous, du projet et de la réponse souhaitée. Cette première partie vise à cadrer la réponse attendue : dans quel contexte vous lancez ce projet, de quelle manière vous souhaitez qu’il soit conduit.

Principaux composants d’un framework PHP

Le par Nicolas Peguin

La grande majorité des frameworks reprennent les éléments contenus dans le tableau ci-dessous. Ils constituent donc les principaux composants d’un framework.  

Le guide du Framework PHP

Le par Nicolas Peguin

D’abord, pourquoi utiliser un framework ? La définition et l'intérêt d’un framework de développement sont essentiels pour en comprendre le fonctionnement...

Un Extranet, pour quoi faire ?

Le par Nicolas Peguin

Un Extranet est une extension du système d'information d’une société à l’usage de ses partenaires (clients, fournisseurs...) Il peut avoir plusieurs usages et s'avère, quoi qu'il arrive, indispensable à l'entreprise...

Méthode pour un sauvetage de projet efficient

Le par Nicolas Peguin

Votre projet n'avance plus ? Il est dans une situation critique ? Cet article se propose de vous donner les clés pour sauver un projet en distinguant différentes étapes : 1. Est-il possible de sauver le projet ? 2. Quelles...

Les 3 piliers d’un bon référencement web

Le par Benjamin Rosenberg

Un bon référencement web se construit brique par brique. C'est un travail de longue haleine (pour ne pas dire un travail de romain). Pour ne rien faciliter, il est très difficile de trouver la bonne méthode car les moteurs de...

POST – Optimiser son site web aux petits oignons

Le par Nicolas Peguin

Toutes les recettes concoctées par TheCodingMachine pour optimiser les performances de votre site web. Amazon indique que si le temps de chargement de la page augmente de 0,1 seconde, les ventes chutent de 1%. Vous qui n'avez pas optimisé votre...

Gérer un pic d’audience

Le par Nicolas Peguin

Un jour, vous passerez sur Télématin, vous serez à la une de MyLittleParis, vous lèverez des fonds, vous ferez de la pub avant le 20h et vous aurez une actu terrible reprise par l'AFP. Ce jour là, "si vous n'avez...

Installing Drupal using Composer

Le par David Négrier

Lately, I have been playing a lot with Composer. If you don't know Composer, it is a great dependency manager for PHP, and will probably become the defacto standard in the coming months. I wanted to see if Composer could...

Fixing Java memory leaks in Ubuntu 11.04 using jmap

Le par David Négrier

When facing problems regarding memory consumption of a Java application, the JDK contains a number of useful tools to help you understand what is going on. You can get a list of the tools on this page. One of these...

Installing the PHP geolocalization extension on CentOS

Le par David Négrier

Lately, I've had the need to install a geolocation database on a web server to localize (as closely as possible) a visitor based on its IP address. For this, I've been using the MaxMind geolocation database. Although Maxmind is a...

image description