Quixo, le morpion de l'intégration: Un jeu en python sur console

Récit de ma première semaine d'intégration et du défi que j'ai du relever: développer un jeu de Quixo en 4 jours.

Pierre Haller
June 14, 2019
Read More

Latest posts

Marmelab souhaite la bienvenue à Pierre

Un nouveau développeur full-stack vient renforcer notre équipe.

François Zaninotto
June 13, 2019

On apprend quoi pendant un stage chez Marmelab?

J'ai côtoyé pendant 8 semaines les équipes de pilotage et de développement de Marmelab. J'ai découvert tout un tas de pratiques qui m'ont étonnées, je vous les présente !

Alexandra Martin
June 05, 2019

Releasing Comfygure 1.0

Two years after the initial release, we're finally publishing a stable version of comfygure! Read on to see what's new in our open-source configuration storage.

Kévin Maschtaler
May 28, 2019

Agile Lean Ireland 2019: The Conference You Wish You Had Gone To

In the middle of Dublin, and with an impressive line-up of speakers, this agile conference was really worth the trip.

Florian Ferbach
May 22, 2019

Créer et publier une application web sur Linux grâce aux snaps

Les stores d'application facilitent la distribution et la mise à jour des applications. Grâce aux snaps, c'est aussi possible sur Ubuntu.

Maxime Richard
May 15, 2019

The Innovator's Dilemma: How Can You Loose When You Seem to Be Winning?

If you want to understand what true disruptive innovation is and go further than the buzzword: Read that book.

Florian Ferbach
April 30, 2019

Build Augmented Reality Applications With React-Native

Do you need to do native development to get native AR performance on mobile?

Julien Demangeon
April 25, 2019

Property Based Testing in Javascript

Want to be more confident with your code? Property Based Testing can automatically generate data to test your code

Pierre-Etienne Moreau
April 18, 2019

What Can React Developers Learn From The Vue.Js Ecosystem?

For the first time, marmelab developers attended the European VueJs conference. Read on to discover what we learned!

Adrien AmorosJulien Mattiussi
& April 03, 2019

Supplying your own Defaults to React Admin

You don't agree with some of our design decisions? No problem, just supply your own and keep your code DRY!

Gildas Garcia
March 27, 2019
View us on twitter

Functional Programming in JavaScript, Part 4: The Art of Chaining Different Monads

March 20, 2019 by

React-admin 2.8: Query Component, Data Loss Protection, Top Bar Customization, And More

March 15, 2019 by

React Has Built-In Dependency Injection

March 13, 2019 by

React Admin Advanced Recipes: User Profile

March 07, 2019 by

First-class End-to-end Testing on Meteor

February 28, 2019 by

Comment mettre en place les migrations avec Hasura

February 21, 2019 by

How To Improve Postgres Performance: Our Tips and Tricks

February 13, 2019 by &

React Admin Advanced Recipes: Creating and Editing a Record From the List Page

February 07, 2019 by

User Stories Are Overrated

January 31, 2019 by

HTTPS In Development: A Practical Guide

January 23, 2019 by

Building a Timeline With React, Storybook, Material-UI, and React-Admin

January 17, 2019 by

React-admin 2.6: Datagrid Improvements, UI Polish, and Better Styling

January 09, 2019 by


Twelve-Factor Applications: How Do You Validate Your Configuration?

December 05, 2018 by

Minutes of DotJS 2018

November 27, 2018 by &

Vous aimez les legos ? React est fait pour vous !

November 22, 2018 by

A Developer's Diary: Building A Notes Taking App in Shell

November 08, 2018 by

Inspiring Talks + Awesome Networking = BlendWebMix 2018

November 02, 2018 by

React Multipass Render Pattern

October 18, 2018 by

React-admin 2.4: Field Guessers, Aside, DateTimeInput, Better Accessibility... and TypeScript!

October 18, 2018 by

How to Create a Carousel and a Wizard Form With React and CSS-in-JS

October 04, 2018 by & &

Hacktoberfest 2018: Come Contribute To OSS With Us!

October 01, 2018 by

Functional Programming in JavaScript, Part 3: Introduction to Functors and Monads

September 26, 2018 by

React-admin 2.3: Better UI, User Menu, Tree Shaking, Tree List, and more!

September 07, 2018 by

Agile Integration: Passing On Culture to Newcomers in 5 Weeks

September 05, 2018 by

React Admin Advanced Recipes - Adding Related Records Inline With Custom Forms

August 27, 2018 by

React-admin 2.2 Is Out With Export, Clone, And More

August 16, 2018 by

Jouer pour mieux travailler : Le Quarto

July 20, 2018 by

Automating Accessibility and Performance Testing with Puppeteer and AxeCore

July 18, 2018 by &

Marmelab souhaite la bienvenue à Julien M

July 16, 2018 by

DotAI 2018: Machine Learning for Humans

July 12, 2018 by

React Admin Advanced Recipes: Creating a Record Related to the Current One

July 09, 2018 by

React-admin 2.1 Is Out

July 02, 2018 by

Managing State in React: Redux or not Redux?

June 27, 2018 by &

Lean from the Trenches: Managing Large Scale Projects with Kanban

June 21, 2018 by

Get Rid Of Toxic Bugs On Your Apps With Detox!

June 05, 2018 by

Site Reliability Engineering: Google's Secret Sauce For High Availability And Happy Ops

May 24, 2018 by

Admin-on-rest Becomes React-admin, and Gets a Major 2.0 Release

May 18, 2018 by

M&M's: Agile Retrospective For Gloutons

April 23, 2018 by

Functional Programming in JavaScript, Part 2: The Monoid

April 18, 2018 by

"Confessions of a Public Speaker", a Fun and Inspiring Guide for Giving Better Talks!

April 16, 2018 by

#play14 Luxembourg 2018: The Serious Games Unconference Turns 5

April 12, 2018 by

Enjoy Painless Typing With ReasonML!

April 09, 2018 by

Finding And Fixing Node.js Memory Leaks: A Practical Guide

April 03, 2018 by

Customer Story: 1859 Cloud, or How a Fintech Can Help Charities

March 28, 2018 by

Using NVIDIA GPU within Docker Containers

March 21, 2018 by

Functional Programming in JavaScript, Part 1: The Unit

March 14, 2018 by

The Lean Startup : This Book Isn't Actually About Startups

March 12, 2018 by

Automating accessibility testing with Selenium Webdriver and AxeCore

February 22, 2018 by

Convert An Image Into An ASCII Art Masterpiece With Pure JavaScript

February 20, 2018 by

School Of PO, retour sur la conférence

February 15, 2018 by

Admin-on-rest 1.4: Winter Changes

February 14, 2018 by

Understanding Recursion, Tail Call and Trampoline Optimizations

February 12, 2018 by

Le jeu du Taquin en React et React Native

February 07, 2018 by

La blockchain, quand l'individu sert au collectif... malgré lui

January 25, 2018 by

Configurable Artifacts: Deploy Code Like a Pro

January 22, 2018 by

BlendWebMix 2017

January 15, 2018 by

Réussir une rétrospective agile

January 11, 2018 by

Le jeu du Taquin en php (framework Symfony)

January 08, 2018 by


Comprendre la mécanique des jeux grâce au livre Game storming

December 19, 2017 by

Let's cook some Crystal!

December 14, 2017 by

Minutes of DotJS 2017

December 11, 2017 by &

How To Implement Material Design Motion with React.js

December 04, 2017 by

Le jeu du Taquin en go

December 01, 2017 by

Learning Jest Through Practice

November 08, 2017 by

Introducing Comfygure, A Configuration Manager For Easy Deployments

November 07, 2017 by

Le jeu du Taquin en python

October 25, 2017 by

Marmelab souhaite la bienvenue à Adrien

October 24, 2017 by

Running React Router v4, Redux Saga, SSR and Code Splitting together

October 17, 2017 by

Elixir GenServer Explained to Redux Developers

October 04, 2017 by

The Agile Setup: How Marmelab Bootstraps Projects In 2 Weeks

September 29, 2017 by

Retour sur une année en télétravail à plein temps

September 27, 2017 by

New Website Design

September 22, 2017 by

Admin-on-rest 1.3: Summer Changes

September 14, 2017 by

Real-Time Resource Locking Using Websockets and Navigation

September 13, 2017 by

Dive Into GraphQL Part V: Should You Use GraphQL?

September 08, 2017 by

Dive Into GraphQL Part IV: Building a GraphQL-powered mobile application With React

September 07, 2017 by &

Dive Into GraphQL Part III: Building a GraphQL Server With Node.js

September 06, 2017 by

Dive Into GraphQL Part II: Anatomy of a GraphQL Query

September 05, 2017 by

Dive Into GraphQL Part I: What's Wrong With REST?

September 04, 2017 by

Dive Into GraphQL

September 03, 2017 by

Introducing Json GraphQL Server

July 12, 2017 by

Admin-on-rest 1.1 and 1.2: Focus On The New Features

June 29, 2017 by

Introducing aor-permissions: Customize Admin-on-rest based on user permissions

June 26, 2017 by

USI 2017: The Talks You Should Watch

June 22, 2017 by

Augmented Reality With HTML5: What Can Mobile Web Browsers Do?

June 19, 2017 by &

Animate your world with ThreeJS and TweenJS

June 15, 2017 by

5e édition du Printemps Agile de Caen

June 12, 2017 by &

Admin-on-rest now supports GraphQL backends

June 01, 2017 by

Minutes of React Europe 2017

May 24, 2017 by &

Marmelab développe un CMS Web Sémantique pour le CNRS

May 22, 2017 by

Internationalizing a React Application using Polyglot

May 16, 2017 by

SG: Un moteur à effet pour JavaScript

May 09, 2017 by

We attended the first dot AI conference.

May 05, 2017 by

Admin-on-rest 1.0 Stable is out

April 26, 2017 by

GitHub Oauth Authentication for SPA Without Server

April 24, 2017 by

Le jeu Awalé en isomorphique avec Next.js

April 07, 2017 by

Conditional Babel Configuration: Introducing Babel env

April 06, 2017 by

Le jeu Awalé en React Native

April 03, 2017 by

Comprendre les générateurs en JavaScript

March 28, 2017 by

Play14: Practicing Serious Games with Talented People Is a Great Way to Learn

March 27, 2017 by

Découvrir les service workers

March 21, 2017 by

Développement d'un bot Awale pour Slack

March 15, 2017 by

admin-on-rest 0.9 is out

March 10, 2017 by

Introducing Sedy, the Serverless GitHub Bot That Fixes Typos for you

February 28, 2017 by

admin-on-rest: Meet the demo

February 22, 2017 by

Agility to the rescue of slipping tasks!

February 21, 2017 by

The Maze, jeu collaboratif hautement immersif

February 17, 2017 by

Taking Picture From Webcam Using Canvas

February 15, 2017 by

admin-on-rest 0.8 is out

February 14, 2017 by

Vous avez dit Awalé ?

February 10, 2017 by

Marmelab souhaite la bienvenue à Maxime

February 09, 2017 by

Npm (or Yarn) Install within a Docker Container, the Right Way

February 08, 2017 by

React is Slow, React is Fast: Optimizing React Apps in Practice

February 06, 2017 by

Comment l'Etat se modernise grâce au Lean Startup

February 03, 2017 by

ng-admin 1.0 is out!

January 27, 2017 by

Le processus d'initialisation des projets chez Marmelab

January 17, 2017 by

admin-on-rest 0.7 is out

January 13, 2017 by

Comment exploiter la base SIRENE des entreprises de France en SQL

January 09, 2017 by

End-to-end Testing For Single-Page Apps With No Server

January 04, 2017 by


Minutes of DotJS 2016

December 22, 2016 by &

React Isomorphique en pratique

December 21, 2016 by

Retour d'expérience sur le développement d'un chatbot en Node.js avec serverless

December 16, 2016 by

Chez Marmelab, le développement web est gratuit pour les associations !

December 08, 2016 by

Npm Tips and Tricks

December 07, 2016 by

Othello mobile en React Native

November 30, 2016 by

Reversi bot: Go et Symfony en action

November 24, 2016 by

For Charities, Web Development is Free at Marmelab

November 21, 2016 by

admin-on-rest 0.5 is out

November 10, 2016 by

Un jeu d'Othello dans le terminal avec Python

November 07, 2016 by

Marmelab souhaite la bienvenue à Julien

November 04, 2016 by

Marmelab s'amuse : the Team Responsibility Game

November 01, 2016 by

WebSocket-based app with Django Channels and React

October 19, 2016 by

Using Saga To Accumulate And Deduplicate Redux Actions

October 18, 2016 by

Moments d'invention : Retour sur une rencontre

October 13, 2016 by

Marmelab joins the Hacktober Fest 2016!

October 10, 2016 by

Jeu mobile en React Native : retour d'expérience

September 26, 2016 by

Custom Route Component For React Router

September 20, 2016 by

Puissance 4 multi-joueur : retour d'expérience

September 19, 2016 by

Marmelab souhaite la bienvenue à Florian

September 07, 2016 by

Introducing admin-on-rest, the React Admin GUI for REST APIs

September 02, 2016 by

Update a Single Page App on Code Change Without Draining The Battery

August 29, 2016 by

Résoudre le jeu snake, deuxième essai: ES6 et ReactJS

August 18, 2016 by

Restful.js: Review of an open-source project

June 29, 2016 by

Minutes of AWS Summit Paris 2016

June 15, 2016 by &

The Blockchain Explained to Web Developers, Part 3: The Truth

June 14, 2016 by

Résoudre le jeu snake, premier essai: Pathfinding et Python

June 08, 2016 by

The Blockchain Explained to Web Developers, Part 2: In Practice

May 20, 2016 by &

La blockchain expliquée aux développeurs web, partie 1: la théorie

May 12, 2016 by

#play14 Luxembourg Third Edition: A Network Is Born

May 04, 2016 by

The Blockchain Explained to Web Developers, Part 1: The Theory

April 28, 2016 by

Lean Startup, day 18: Determining The Break-Even Point

April 22, 2016 by

Lean Startup Adventure, day 16: Pivot

March 23, 2016 by

Lean Startup Adventure, day 15: Learn

March 15, 2016 by

EventDrops 0.2 is out!

March 09, 2016 by

Marmelab Javascript Boilerplate: deux jours de gagnés à chaque démarrage projet

March 08, 2016 by &

Lean Startup, day 14: Customer Acquisition

March 02, 2016 by

Self-Documented Makefile

February 29, 2016 by

Lean Startup, day 13: The Teaser Video

February 26, 2016 by

Lean Startup, day 12: How to Find a Product Name

February 24, 2016 by

Is it snobbery to want a real console on Windows?

February 22, 2016 by

Lean Startup, day 11: The Demo

February 16, 2016 by

Lean Startup, day 10: Build-Measure-Learn explained

February 12, 2016 by

Lean Startup, day 9: Benchmarking Existing Solutions

February 10, 2016 by

Lean Startup Adventure, day 8: designing Personas

February 05, 2016 by

Lean Startup Adventure, day 7: Second Problem interview with Adista

February 03, 2016 by

Lean Startup Adventure, day 6: Problem interview with CloudScreener

January 29, 2016 by

Marmelab souhaite la bienvenue à Kevin

January 28, 2016 by

Lean Startup Adventure, day 5: Designing a Problem Interview

January 27, 2016 by

Webpack HTML plug-in in a nutshell

January 26, 2016 by

Lean Startup Adventure, day 4: Risky Business

January 22, 2016 by

Lean Startup Adventure, day 3: The Business Model

January 20, 2016 by

Lean Startup Adventure, day 2: The Idea

January 15, 2016 by

A Lean Startup Adventure

January 13, 2016 by


A Better File Structure For React/Redux Applications

December 17, 2015 by

Meteor with Webpack, React and Redux in Practice

November 27, 2015 by

Lean Kanban France 2015

November 09, 2015 by

De Python à PHP 7 : L'algorithme du jeu Dobble

November 05, 2015 by

ng-admin 0.9: embedded lists, templates everywhere, new documentation

October 30, 2015 by

How-to dump your Docker-ized database on Amazon S3?

October 23, 2015 by

ng-admin: Meet the new demo

September 04, 2015 by

ng-admin 0.8 Is Out!

August 26, 2015 by

Importing a Modeled Mesh From Blender to Three.js

July 31, 2015 by

Jest, The React.js Unit Testing Framework, In Practice

June 24, 2015 by

L'itération agile : entre SSII et agence, un nouveau mode de prestation informatique

June 11, 2015 by

DotScale 2015 Conference Summary

June 10, 2015 by

Minutes of PHP Tour 2015

June 01, 2015 by

Setup Webpack on an ES6 React app with SASS

May 18, 2015 by

Awesome REST: a List of Developer Resources for Building REST API

May 11, 2015 by

Ng-admin 0.7: Configurable Menus, Batch Actions, CSV Export, And More

May 06, 2015 by

Mon premier défi : un Dobble generator en TDD

April 07, 2015 by

Marmelab souhaite la bienvenue à Gildas

April 03, 2015 by

FakeRest: Patch XMLHttpRequest to fake a REST server based on JSON data

March 25, 2015 by

Using Ng-admin with postgREST

March 23, 2015 by

Transpiling EcmaScript6 code to ES5 using Babel

March 12, 2015 by

Restful.js: A Framework Agnostic JS Client for RESTful APIs

March 10, 2015 by

Marmelab souhaite la bienvenue à Yann

March 03, 2015 by

Ng-admin 0.6: Adding Support for Custom Types

February 25, 2015 by

NgAdminGeneratorBundle: Create a JavaScript Admin Panel and a REST API for Symfony2 Apps in Minutes

February 24, 2015 by

Ng-admin 0.5 Is Out, and It's Compatible With Your API

February 04, 2015 by

Playing with websockets in Go

January 29, 2015 by

[Video] ArchitectureTree: Visualize Software Architectures In Your Browser

January 27, 2015 by


Admin GUIs in the Microservices Era: Introducing ng-admin Multi Backend

December 19, 2014 by

Marmelab: 2 years of Open-Source

December 17, 2014 by

Two days to write my first Protractor tests on the ng-admin AngularJs module

December 12, 2014 by

ng-admin 0.4: Eating our own dog food

December 05, 2014 by

Creating JSON Web Token in JavaScript

December 02, 2014 by

DotJS 2014: Big stars don't make a great event

November 24, 2014 by

Big changes in ng-admin 0.3: Introducing views

November 13, 2014 by

Bilan du Forum PHP 2014: Le PHP, langage de l'innovation ?

November 12, 2014 by

We're retiring gaudi

November 06, 2014 by

Introducing koa-multifetch, a Node.js middleware for REST APIs

November 04, 2014 by

Une commande tree plus efficace grâce au Go

October 30, 2014 by &

Marmelab déménage!

October 29, 2014 by

Une console plus graphique avec node.js et d3.js

October 03, 2014 by

ng-admin Update: Callback Field Type, Easier Customization

September 30, 2014 by

[Video] MobileInsight : une semaine avec Angular.js, Ionic et PhoneGap

September 26, 2014 by

Du PHP au Go: une semaine pour réaliser un produit fonctionnel

September 22, 2014 by

Marmelab souhaite la bienvenue à Alexis

September 16, 2014 by

ng-admin: Add an AngularJS admin GUI to any RESTful API

September 15, 2014 by

Seamlessly Run Composer On HHVM Inside Docker: Introducing make-docker-command

September 10, 2014 by

Fibonacci sequence generator in Go

September 08, 2014 by

One New Tech Per Project

September 01, 2014 by

Resolving Action Dependencies: Comparing JavaScript and Go implementations

August 22, 2014 by

Create a Full Stack Magento Environment With gaudi

June 17, 2014 by

[Screencast] Build a working SF2 web application using 3 docker containers in 2 minutes

June 04, 2014 by

PHPCR Browser: Edit Support and Better Performance

May 22, 2014 by

ArcheoloGit: Visualize Code Age and Dev Activity

May 15, 2014 by

Gaudi News: gaudi.io, apt-get install gaudi, ambassadors, and more!

May 12, 2014 by

Running Symfony CMF With Gaudi

February 09, 2014 by

Create Gaudi's File Easily With A Web App

February 06, 2014 by

Introducing Gaudi: An Architect for Multi-Component Applications

January 31, 2014 by


My First Assignment: a PHPCR Browser

December 16, 2013 by

Converting the Symfony Stopwatch Component from PHP to Zephir

December 05, 2013 by

Marmelab souhaite la bienvenue à Robin

December 04, 2013 by

Marmelab souhaite la bienvenue à Daphné

November 05, 2013 by

How To Use Docker To Run PHPUnit Tests In Parallel

November 04, 2013 by

Marmelab souhaite la bienvenue à Jérôme

September 16, 2013 by

Using Connected Objects To Keep Your Job

July 22, 2013 by

Building Sophisticated WebApps For Mobile: A Bumpy Ride

July 01, 2013 by

Integrating Raphael.js With Backbone.js

May 22, 2013 by

Inline Text Editing With Raphaël.js

May 13, 2013 by

CloudScreener, le comparateur d'offres Cloud, sort son mode expert

March 29, 2013 by

Lancement de CloudScreener, le comparateur d'offre cloud pour les PME

February 13, 2013 by

Pour la fin des contrats au forfait

February 11, 2013 by