Generated by All in One SEO v4.9.10, this is an llms.txt file, used by LLMs to index the site. # Kévin Dunglas Founder of Les-Tilleuls.coop (worker-owned cooperative). Creator of API Platform, FrankenPHP, Mercure.rocks, Vulcain.rocks and of some Symfony components. ## Sitemaps - [XML Sitemap](https://dunglas.dev/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [Mercure 0.23.5: Helm chart hardening](https://dunglas.dev/2026/05/mercure-0-23-5-helm-chart-hardening/) - Mercure v0.23.5 just landed, and the dominant theme is the Helm chart. If you run hubs on Kubernetes, this release tightens defaults and adds the kind of policy templates that previously required forking the chart or templating policies outside it. The story behind the release: we audited a production Kubernetes cluster. The findings were straightforward - [Coding at the Speed of Thought: The New Era of Symfony Docker](https://dunglas.dev/2026/03/coding-at-the-speed-of-thought-the-new-era-of-symfony-docker/) - If we want to discuss Developer Experience (DX) in 2026, we have to talk about instantaneous feedback and coding agents. At SymfonyLive Paris 2026, I presented "Coding at the Speed of Thought: Symfony DX in 2026", where I detailed the bleeding-edge features we have brought to the PHP and Symfony ecosystems. To make this vision - [Windows Support for FrankenPHP: It’s Finally Alive!](https://dunglas.dev/2026/03/windows-support-for-frankenphp-its-finally-alive/) - It’s happening! I am thrilled to announce the immediate availability of official Windows support for FrankenPHP. Since the project's initial release, this has been by far the most requested feature. While many of you have been successfully running FrankenPHP on Windows via WSL (Windows Subsystem for Linux), native support was the "white whale" we’ve been - [Merry Christmas! FrankenPHP 1.11: Hot Reload, Structured Logging, and More Speed](https://dunglas.dev/2025/12/merry-christmas-frankenphp-1-11-hot-reload-structured-logging-and-more-speed/) - Ho ho ho! 🎅 I’m thrilled to announce the immediate availability of FrankenPHP 1.11! We have a special gift for the PHP community to unwrap this Christmas Eve. This release is laser-focused on improving the Developer Experience (DX) and deepening the integration between PHP and the Go ecosystem. Here is what we put under the - [The Best of Both Worlds: Go-Powered gRPC for Your PHP and API Platform Apps](https://dunglas.dev/2025/09/the-best-of-both-worlds-go-powered-grpc-for-your-php-and-api-platform-apps/) - I'm thrilled to announce a brand-new feature I unveiled today during my opening keynote at the API Platform Conference: an experimental extension for FrankenPHP that brings gRPC support to PHP! 🚀 This extension allows you to build high-performance gRPC servers using PHP, Go, or even a mix of both. It leverages the power of FrankenPHP's - [Unleash the Monster: The FrankenPHP elePHPant is Born](https://dunglas.dev/2025/09/unleash-the-monster-the-frankenphp-elephpant-is-born/) - It's alive! After months of meticulous stitching, we're thrilled to announce the official release of the FrankenPHP elePHPant plushie! This isn't your average plushie—it's a grotesque yet charming creature, a patchwork of code and fluff, and the perfect companion for those late-night coding sessions. Dare to adopt this creature of the night? Here’s how to - [FrankenPHP has reached 10,000 stars: the elePHPant plush toy is coming!](https://dunglas.dev/2025/08/frankenphp-has-reached-10000-stars-the-elephpant-plush-toy-is-coming/) - FrankenPHP has just reached 10,000 ⭐️ on GitHub! This important milestone was reached just a few months after the project joined the PHP Foundation, thanks to the hard work of the maintainers and contributors, those who spread the word about the project, and everyone who tested it and reported bugs. A big thank you to - [FrankenPHP’s New Features: Thread Autoscaling, Mostly Static Binaries, deb and RPM Packages, Caddy 2.10…](https://dunglas.dev/2025/05/frankenphps-new-features-thread-autoscaling-mostly-static-binaries-deb-and-rpm-packages-caddy-2-10/) - FrankenPHP 1.5 and 1.6 (released today) contain many major features and fixes that greatly improve the usability and performance of the project! Let’s review some of them. Thread Autoscaling Until now, it was necessary to statically define the number of threads that FrankenPHP uses to handle PHP requests. By default, FrankenPHP starts two times more - [FrankenPHP Is Now Officially Supported by The PHP Foundation](https://dunglas.dev/2025/05/frankenphp-is-now-officially-supported-by-the-php-foundation/) - FrankenPHP, a modern high-performance PHP application server created by Kévin Dunglas and sponsored by Les-Tilleuls.coop, is now officially supported by the PHP Foundation. FrankenPHP integrates PHP directly into Go and Caddy, simplifying deployment, improving performance, and reducing costs. It powers real-time features, supports advanced hosting scenarios, and offers a performance-boosting “worker mode” already integrated by - [Develop Faster With FrankenPHP](https://dunglas.dev/2025/03/develop-faster-with-frankenphp/) - One of Symfony's strengths is its caching mechanism (the files stored in "var/cache"), which enables framework components such as the dependency injection container and the router, as well as numerous bundles, to be ultra-fast in production. However, during development, regeneration of this cache can cause slowness and make the work of programmers tedious. Each time - [HTTP compression in PHP (new Symfony AssetMapper feature)](https://dunglas.dev/2024/12/http-compression-in-php-new-symfony-assetmapper-feature/) - Compressing HTTP responses can significantly improve the performance of your PHP and Symfony applications. But you must still navigate the jungle of standards and formats. In this presentation, we'll discover how HTTP compression works, the different formats supported by modern web browsers (deflate, gzip, Brotli, and the brand-new Zstandard), and how to use them correctly. - [FrankenPHP 1.3: Massive Performance Improvements, Watcher Mode, Dedicated Prometheus Metrics, and More](https://dunglas.dev/2024/11/frankenphp-1-3-massive-performance-improvements-watcher-mode-dedicated-prometheus-metrics-and-more/) - I'm thrilled to announce the immediate availability of FrankenPHP 1.3, just in time for SyliusCon, where I'll be presenting this new version this afternoon. First of all, I'd like to thank all the contributors, and in particular Alexander Stecher and Rob Landers, the other two project maintainers, who have done a titanic job. An incredible - [Read the Linux Manual Pages on Mac and BSD, Directly From the Terminal](https://dunglas.dev/2022/12/read-the-linux-manual-pages-on-mac-and-bsd-directly-from-the-terminal/) - I'm a Mac user, but I use Docker, Kubernetes, and remote Linux servers a lot. I also write C programs that are primarily targeted at Linux. As you may know, macOS is based on Darwin, a free UNIX system that shares some of its code and man pages with FreeBSD. However many commands and C - [6x faster Docker builds for Symfony and API Platform projects](https://dunglas.dev/2023/08/6x-faster-docker-builds-for-symfony-and-api-platform-projects/) - Available translations: French At Les-Tilleuls.coop, we're constantly striving to reduce the environmental footprint and hosting costs of the projects we work on (eco-design, GreenOps, and FinOps strategies...). We generally focus on optimizing production code and infrastructure, but the CI/CD pipelines used to build and deploy applications can also consume a lot of physical and financial - [Webperf: Boost Your PHP Apps With 103 Early Hints](https://dunglas.dev/2023/10/webperf-boost-your-php-apps-with-103-early-hints/) - Google Chrome, Firefox, Caddy, and Apache now support a new HTTP status code: 103 Early Hints. Since version 6.3, Symfony also supports 103 responses, and FrankenPHP also supports it natively. This new, rather unusual type of response has a single objective: to speed up the loading time of your websites and applications by allowing the - [PHP and Symfony Apps As Standalone Binaries](https://dunglas.dev/2023/12/php-and-symfony-apps-as-standalone-binaries/) - Distributing PHP applications is quite complicated. For instance, to run a Symfony project in production, a web server, the PHP engine, and the appropriate PHP extensions need to be installed. Their versions and configurations must be compatible with the app. Because PHP is an interpreted language, the application source code must also be available. Composer - [How to debug Xdebug... or any other weird bug in PHP](https://dunglas.dev/2024/10/how-to-debug-xdebug-or-any-other-weird-bug-in-php/) - What to do when the debugger has a bug? That's the question I had to answer when my GitHub notifications went haywire because a new version of Xdebug was crashing FrankenPHP and therefore all the projects that use it. Together, we'll retrace the epic story of this debugging debugger and discover a method that can - [FrankenPHP: The Modern Php App Server, written in Go](https://dunglas.dev/2022/10/frankenphp-the-modern-php-app-server-written-in-go/) - Today I released FrankenPHP during the ForumPHP conference. FrankenPHP is a new app server for PHP apps (built on top of Caddy) and a library to embed the PHP interpreter in Go web servers. Key features: Easy to Dockerize Worker mode for performance Early Hints Support Real-time with the built-in Mercure hub Symfony integration (Laravel - [Running Laravel Apps With FrankenPHP (Laracon EU)](https://dunglas.dev/2024/02/running-laravel-apps-with-frankenphp-laracon-eu/) - Here's the talk I gave at Laracon EU 2023: And here are the slides: - [API Platform for Laravel](https://dunglas.dev/2024/09/api-platform-for-laravel/) - API Platform 4 was released today during the API Platform conference. It now officially supports Laravel! Let's get started: Check out our brand new "getting started" guide for Laravel. - [Containerization Tips and Tricks for PHP apps](https://dunglas.dev/2024/05/containerization-tips-and-tricks-for-php-apps/) - API Platform was one of the first PHP frameworks to provide native support for Docker, Docker Compose, Kubernetes, and, more recently, Skaffold. The API Platform skeleton also served as the basis for Symfony Docker, the most popular solution for containerizing Symfony projects. These years of developing skeletons compatible with dev environments, continuous integration chains, and - [Front-end application development, Symfony-style(s)](https://dunglas.dev/2024/04/front-end-application-development-symfony-styles/) - We recently introduced the AssetMapper component and Symfony UX to make the most of the web platform and reduce the amount of JavaScript code to the absolute minimum. This "radically simple" approach is generally the most efficient, and should be the go-to method for most new Symfony applications. However, API-based, JavaScript-heavy applications are still inevitable - [Mercure, Braid, PREP... news about subscribing to HTTP resource updates](https://dunglas.dev/2023/11/mercure-braid-prep-news-about-subscribing-to-http-resource-updates/) - Introduction For 32 years now, the venerable HTTP protocol has been at the heart of the Web. This protocol enables "resources" (anything that can be named can be a resource, but these are often documents) to be retrieved from a server using their unique identifier: their URL. Since 1991, the Web has exploded in popularity, - [The PHP Revolution Is Underway: FrankenPHP 1.0 Beta](https://dunglas.dev/2023/09/the-php-revolution-is-underway-frankenphp-1-0-beta/) - I'm very proud to announce the immediate availability of FrankenPHP 1.0 beta. FrankenPHP is a brand-new application server for PHP, written in Go and built on top of Caddy, that dramatically simplifies the deployment of PHP apps, and brings new features to PHP such as: a worker mode that improves typical application performance by a - [Introducing Edge Side APIs (#APIPlatformCon Keynote)](https://dunglas.dev/2021/09/introducing-edge-side-apis-apiplatformcon-keynote/) - Here are the slides I presented during my keynote at the API Platform Conference. I introduced a new API architecture inspired by Jamstack: Edge Side APIs (ESA). My colleague Antoine Bluchet gave another talk giving more details about how API Platform started implementing ESA: The talks have been recorded. They will be published in the - [Mercure 0.14: Major Performance Improvement and New Features](https://dunglas.dev/2022/09/mercure-0-14/) - I'm very pleased to announce the immediate availability of the Mercure.rocks hub version 0.14. Mercure is a free and open-source solution for real-time communication. With Mercure, securely push data to all your connected users with a simple POST request. No third-party library or SDK is required: the browser (or any other type of client) receives - [API Platform 3 Is Released!](https://dunglas.dev/2022/09/api-platform-3-is-released/) - Antoine Bluchet and I have just released the new major version of API Platform during the opening keynote of the API Platform Conference! As usual, API Platform 3 can be downloaded directly from our GitHub page. This version comes with many major features that are being presented at the conference. Say hello to API Platform - [Symfony ImportMaps: Manage Your JavaScript Dependencies Without Node](https://dunglas.dev/2023/03/symfony-importmaps-manage-your-javascript-dependencies-without-node/) - View the recording of this talk (in French) View the Pull Request Yarn, NPM, pnpm, Babel, SWC, Webpack, TurboPack, Rollup, Parcel… Is it really necessary to introduce so much complexity to create a beautiful and interactive website? The Symfony UX initiative greatly simplified how to build frontend applications with Symfony by going back to the - [Mitigate Attacks on your PHP Supply Chain](https://dunglas.dev/2023/05/mitigate-attacks-on-your-php-supply-chain/) - Here are the slides I presented at the AFUP Day Lille 2023 and the companion Pull Request on Composer: Abstract When you install a JavaScript library, it usually comes with hundreds of transitive dependencies, i.e. libraries that are installed as a side effect because they are essential to the operation of the library you want - [NPM dependency hell: comparison with Symfony, Laravel and API Platform](https://dunglas.dev/2018/11/about-the-dependencies-of-symfony/) - You may have noticed the recent fuss about the compromise of event-stream, a popular NPM package: event-stream is a transitive dependency of many popular JavaScript projects including Vue, Angular, Gatsby and VSCode (some of them are using a version that isn't affected by the attack). This attack raised, again, the problem of the JS dependency - [How Can JSON-LD Help You Sell More?](https://dunglas.dev/2023/04/how-can-json-ld-help-you-sell-more/) - By default, all data exposed by the Sylius API and all APIs using API Platform are formatted using JSON-LD, "JavaScript Object Notation for Linked Data". This is no accident! Understanding and using JSON-LD can dramatically improve your offers' reach and enhance the customer experience. In this talk, we will see how the RDF data model, - [Ne vous lamentez pas, organisez-vous !](https://dunglas.dev/2022/12/ne-vous-lamentez-pas-organisez-vous/) - Intervention réalisée avec Anne Lesouef, coprésidente de l'Offensive et présenté lors de la première conférence onestla.tech. La tech a pris le pouvoir. Au cours des dernières décennies, le secteur des nouvelles technologies est devenu la locomotive de l’économie mondiale. La révolution de l’IT a permis à quelques ingénieurs devenus capitaines d’industrie de s’enrichir comme jamais - [Securely Access Private Git Repositories and Composer Packages in Docker Builds](https://dunglas.dev/2022/08/securely-access-private-git-repositories-and-composer-packages-in-docker-builds/) - When working on enterprise projects, it's common to have to download private dependencies that require authentication to be installed (usually, internal or paid packages). In modern setups, you'll most likely use Docker to package your application (or service) and all its dependencies into a standalone image. Typically, building the Docker image is automated through a - [Using the "103 Early Hints" Status Code in Go Applications](https://dunglas.dev/2021/02/using-the-103-early-hints-status-code-in-go-applications/) - 103 is a new experimental HTTP status code defined in RFC 8297. It's an informational status that can be sent by a server before the main HTTP response. Used in conjunction with the Link HTTP header and the preload relation, 103 gives the client the opportunity to fetch resources (assets, images, linked API documents…) related - [Symfony 4: HTTP/2 Push and Preloading](https://dunglas.dev/2017/10/symfony-4-http2-push-and-preloading/) - A few months ago, I've contributed a new component to Symfony: WebLink. By implementing cutting edge web standards, namely HTTP/2 Server Push and W3C's Resource Hints, it brings great opportunities to boost webapp's performance. Thanks to Symfony WebLink, HTTP/2 (h2) servers are able to push resources to clients before they even know that they need them (think to CSS - [Casting PHP types to string](https://dunglas.dev/2014/02/casting-php-types-to-string/) - Casting PHP types is not easier as it seems. Type juggling in PHP is not obvious. In Java variables can always be represented as strings, without throwing errors. This is not the case with PHP and I've not found the detailed behavior of string casting in the official documentation. Here it is. Scalar types (boolean, integer, float, and - [Goroutines, threads, and thread IDs](https://dunglas.dev/2022/05/goroutines-threads-and-thread-ids/) - If you attended AFUP Day 2022, you might know that I am currently working on a PHP module for web servers written in Go. While testing my upcoming library, I encountered strange memory access issues related to the threads created by the Go runtime (you know, cgo...). By default, the Go scheduler runs many goroutines - [New in Caddy 2.5: Redact Sensitive Data from Your Logs](https://dunglas.dev/2022/04/caddy-logging-security-improvements/) - Caddy is the rising star of web servers. It is fast, easy to configure, fully featured (automatic TLS certificate generation and renewal, HTTP/3, cloud-native, config hot reloading...), and secure (it is written in Go, not in C). Thanks to its unmatched extensibility that makes it a top-notch app platform, Caddy has a thriving ecosystem! To - [Building Decentralized Web Apps with Solid and PHP](https://dunglas.dev/2022/04/building-decentralized-web-apps-with-solid-and-php/) - At SymfonyLive Paris, I introduced a new PHP library to build Solid applications: Solid Client PHP. In this presentation, I present the Solid protocol and how it could give back the control of their personal data to end-users. View the recording (slides in English, talk in French). This presentation is about decentralized web applications, but - [JSON Columns and Doctrine DBAL 3 Upgrade](https://dunglas.dev/2022/01/json-columns-and-doctrine-dbal-3-upgrade/) - Version 3 of the popular Doctrine DBAL library has been released at the end of 2020, almost 10 years after the initial release of version 2. In September 2021, Doctrine ORM 2.10 added support for DBAL 3, while still supporting DBAL 2 at the same time. Versions prior to 2.10 aren't compatible with DBAL 3. - [Persistence in PHP with the Doctrine ORM: my new book in pre-order](https://dunglas.dev/2013/12/persistence-in-php-with-the-doctrine-orm-my-new-book-in-pre-order/) - 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 - [Preventing CORS Preflight Requests Using Content Negotiation](https://dunglas.dev/2022/01/preventing-cors-preflight-requests-using-content-negotiation/) - In modern web applications, it's a common pattern to serve the web API and the frontend app from different subdomains: https://api.example.com: your web API, usually serving JSON documentshttps://example.com: your web application, usually built in JavaScript, generating HTML documents from the raw JSON data retrieved from the API This was the pattern implemented by API Platform - [Symfony's New Native Docker Support (Symfony World)](https://dunglas.dev/2021/12/symfonys-new-native-docker-support-symfony-world/) - I'm very excited to announce that after 6 years of teamwork, Symfony and API Platform now include an industry-first set of tools designed to automatically create, manage and run the Docker containers needed for your applications. Read my article on the Symfony blogWatch my Symfony World talkBrowse my slides deck: - [The last update of Aptana blocks Django development server](https://dunglas.dev/2008/11/aptana-block-django-dev-server/) - The last update of Aptana Studio come with a new built-in Jetty-based HTTP server running on port 8000... the same as Django development server. There is no good way to disable the preview server feature of the popular editor, but our favorite web framework can be launched on another port. Just type python manage.py runserver - [Edge Side APIs](https://dunglas.dev/2021/10/edge-side-apis/) - Here is the slide deck I used for my talk "Edge Side APIs" at ForumPHP 2021. I introduced a new architecture for web APIs derived from REST and inspired by Jamstack: ESA. - [Progressively enhance your Symfony 4 app using Vue, API Platform, Mercure and Panther (SymfonyCon)](https://dunglas.dev/2018/12/symfonycon-slides-progressively-enhance-your-symfony-4-app-using-vue-api-platform-mercure-and-panther/) - Watch the video! Thanks to the new capabilities of the web platform (web components, Progressive Web Apps…) and the rise of modern JS libraries (Vue, React, Angular) almost all modern Symfony applications must leverage the frontend ecosystem.Symfony 4 embed many gems that make it easy to integrate modern JavaScript within the framework, including the first - [Symfony on steroids
: Vue.js, Mercure, Panther (SymfonyLive Paris)](https://dunglas.dev/2019/03/symfonylive-paris-slides-symfony-on-steroids
-vue-js-mercure-panther/) - Watch the video (in French)! Thanks to the new capabilities of the web platform (web components, Progressive Web Apps…) and the rise of modern JS libraries (Vue, React, Angular) almost all modern Symfony applications must leverage the frontend ecosystem. Symfony 4 embed many gems that make it easy to integrate modern JavaScript within the framework, - [Vulcain: HTTP/2 Server Push
 and the rise of client-driven REST APIs](https://dunglas.dev/2019/11/vulcain-http-2-server-push
-and-the-rise-of-client-driven-rest-apis/) - Watch a longer video (English)!Watch a French version. Over the years, several formats have been created to fix performance bottlenecks of web APIs: the n+1 problem, over fetching, under fetching… The current hipster solution for these problems is to replace the conceptual model of HTTP (resource-oriented), by the one of GraphQL. It’s a smart network - [Symfony UX Turbo: Do You Still Need JavaScript?! (SymfonyWorld)](https://dunglas.dev/2021/04/symfony-ux-turbo-do-you-still-need-javascript/) - Hotwire Turbo is a tiny library recently introduced by DHH (the creator of Ruby on Rails) allowing to have the speed of Single-Page Apps without having to write any JavaScript! As part of the Symfony UX initiative, I'm very excited to announce the immediate availability of Symfony UX Turbo: the official integration of Turbo in - [Mercure: Real-Time APIs for Serverless and Beyond](https://dunglas.dev/2019/07/mercure-real-time-apis-for-serverless-and-beyond/) - Here is the slide deck I presented during API Days SF 2019: Mercure is a protocol allowing to push data updates to web browsers and other HTTP clients in a convenient, fast, reliable and battery-efficient way. It is especially useful to publish real-time updates of resources served through web APIs, to reactive web and mobile - [Mercure - Real-Time for PHP Made Easy (Forum PHP)](https://dunglas.dev/2019/10/forum-php-2019-mercure-real-time-for-php-made-easy/) - Yesterday at Forum PHP 2019 I presented how easy it is to create real-time apps using PHP (among other languages) and the Mercure protocol. I also introduced the shiny and new Mercure website (designed by Laury S.)! A special thanks to Eric Comellas who jumped on stage to explain how iGraal uses Mercure on a - [API Platform and Symfony: a Framework for API-driven Projects (SymfonyCon)](https://dunglas.dev/2017/11/api-platform-and-symfony-a-framework-for-api-driven-projects/) - Here are the slides of my talk during the Symfony Con Cluj. You can rate this talk on joind.in. https://www.slideshare.net/coopTilleuls/api-platform-and-symfony-a-framework-for-apidriven-projects Install API Platform. Design the API data model as a set of tiny plain old PHP classes. Instantly get: Fully featured dev environment with Symfony Flex and React containers, HTTP/2 and HTTPS support and a - [API Platform 2.1: when Symfony meets ReactJS (Symfony Live)](https://dunglas.dev/2017/04/api-platform-2-1-when-symfony-meets-reactjs-symfony-live-2017/) - Slides and videos of my talk during the Symfony Live Paris 2017. Rate this talk on joind.in! https://www.youtube.com/watch?v=I9qt4azxcyQ https://fr.slideshare.net/coopTilleuls/api-platform-21-when-symfony-meets-reactjs-symfony-live-2017 Learn how to use API Platform and Symfony to create super easily rich web and mobile applications relying on React (JS) for their presentational layer. In just a few minutes, we will create a hypermedia API - [Using PSR-7 with Symfony (sfPot)](https://dunglas.dev/2015/07/slides-using-psr-7-with-symfony/) - Here are the slides of my talk of yesterday about PSR-7 and Symfony. Watch them in full screen. - [How to make high performance API powered webapps with Symfony (Symfony Live)](https://dunglas.dev/2015/10/symfony-live-san-francisco-my-slides-about-how-to-make-high-performance-api-backed-webapps-with-symfony/) - I was speaking about cloud computing, APIs and JavaScript Single Page Application at the Symfony Live San Francisco conference. Here are my slides: Open the slides in full screen - [Introducing API Platform (Forum PHP)](https://dunglas.dev/2015/11/my-slides-about-api-platform-from-afups-forum-php-2015/) - My slides from this morning at Forum PHP Paris about API Platform: Open the slides in full screen https://www.youtube.com/watch?v=taGGa2MAyG4 - [Creating a hypermedia API in 5 minutes with API Platform (Take Off Conf)](https://dunglas.dev/2016/10/slides-take-off-conf-2016-api-platform-the-php-framework-to-build-modern-web-apis/) - This morning I was speaking about the API Platform framework at the Take Off Conf in my hometown of Lille. Take a look at my slides, and learn how to create a fully featured hypermedia API in a few minutes! - [Create Symfony apps as quickly as with Laravel and keep your code framework-agnostic (Forum PHP)](https://dunglas.dev/2016/10/slides-forum-php-create-symfony-apps-as-quickly-as-with-laravel-and-keep-your-code-framework-agnostic/) - Slides of my talk at AFUP's Forum PHP 2016. You'll learn about RAD and autowiring, the ADR pattern, framework agnostic controllers, PSR-7, PSR-15 and PSR-17. - [Creating hypermedia APIs in a few minutes using the API Platform framework (APIDays)](https://dunglas.dev/2016/12/slides-apidays-creating-hypermedia-apis-in-a-few-minutes-using-the-api-platform-framework/) - My talk at APIDays: API Platform is new open source PHP framework dedicated to the creation of modern web APIs. It allows to bootstrap a fully featured API (pagination, validation, filtering, sorting, automatically generated documentation, HTTP cache, OAuth and JWT auth...) in just a few minutes. It exposes out of the box popular API formats - [Dive Into Symfony 4 (slides)](https://dunglas.dev/2017/06/dive-into-symfony-4/) - Here are the slides I presented yesterday during the Lille's Lille's Symfony meetup: Symfony 4 is all about making the developer life easier. You liked using SF for large and robust apps, you'll love using it for your next MVP, prototype or small project. This presentation was followed by a live coding session (not recorded, unfortunately). - [REST vs GraphQL: illustrated examples with the API Platform framework (PHPTour/SymfonyLive)](https://dunglas.dev/2018/03/symfonylive-paris-slides-rest-vs-graphql-illustrated-examples-with-the-api-platform-framework/) - https://speakerdeck.com/dunglas/rest-vs-graphql-illustrated-examples-with-the-api-platform-framework https://www.youtube.com/watch?v=QhAToFl_Omo GraphQL is an increasingly popular alternative to REST architectures for building web APIs. The query language promoted by Facebook has undeniable advantages: retrieve exactly what the client need, limitation of the number of queries, strong typing, powerful and extremely well thought out syntax... However, it also suffers from often underestimated problems including HTTP - [Mastering the Symfony Serializer (PHP Tour)](https://dunglas.dev/2018/05/mastering-the-symfony-serializer-php-tour-slides/) - The Symfony Serializer Component exists since the very beginning of Symfony 2. Years after years, it gained a lot of new features useful to transform various data formats to PHP structures and the opposite. It is also a foundation block of API Platform and a first-class citizen in FOSRest. Let's dive into this component. We - [API Platform: A Framework for API-driven Projects (DevTalks Bucharest)](https://dunglas.dev/2018/06/api-platform-a-framework-for-api-driven-projects/) - Here the slide deck I presented during DevTalks Bucharest 2018. It covers the main features of the API Platform framework: we will install the framework, design an API data model as a set of tiny plain old PHP classes and learn how to get: A fully featured dev environment with Symfony Flex and React containers, - [API Platform 2.6: PHP 8 support, Next.js and Nuxt.js app generator, Caddy server, ActivityPub and much more!](https://dunglas.dev/2020/12/api-platform-2-6-php-8-support-next-js-and-nuxt-js-app-generator-caddy-server-activitypub-and-much-more/) - During my talk at SymfonyWorld, I announced the immediate availability of API Platform 2.6! Try it now! Version 2.6 is the result of more than one year of work and hundreds of commits. It contains a huge list of new features, checkout the change logs (core library, distribution) for the full list. In this blog - [Upcoming conferences: AFUP Day, Web2Day, API Platform Meetup and more!](https://dunglas.dev/2019/05/upcoming-conferences-afup-day-web2day-api-platform-meetup-and-more/) - During the spring I'll speak at several tech events about my projects Mercure (Go), API Platform (PHP, server-side and JS, client-side) and Symfony Panther (PHP/WebDriver): AFUP Day, May 17th in Lille Discover Symfony Panther, a brand new end-to-end testing tool using real web browsers for Symfony and PHP. API Platform pre-Web2day meetup, June 3th in - [Upcoming conferences and workshops](https://dunglas.dev/2018/09/upcoming-conferences-and-workshops/) - I'll speak at several conferences until the end of 2018. The topics will be varied: Panther, modern JavaScript, HTTP/2 and a brand new project to be announced (teasing: it's written in Go, and it will be very helpful for serverless architectures!). See you at: Symfony Live London (September, 27th): Building API-driven apps with API Platform - [HTTP/2, PHP and Symfony: a brief history of the protocol powering the web, and how to use it](https://dunglas.dev/2018/01/http-2-php-and-symfony-a-brief-history-of-the-protocol-powering-the-web-and-how-to-use-it/) - Here are the slides I presented yesterday during the Paris Symfony Meetup. On the menu: a brief history of HTTP, how to use it with PHP (server and client-side) and how to push with Symfony 4. Learn more about Symfony's HTTP/2 support in my in-depth presentation of the WebLink Component. - [Symfony 4 Run-through (Forum PHP 2017)](https://dunglas.dev/2017/10/symfony-4-run-through-forum-php-2017/) - https://speakerdeck.com/dunglas/symfony-4-run-through Symfony is a framework broadly recognized for its quality, reliability and ability to drive large enterprise projects. But for the last few years, Symfony has also gained many features to develop faster, and to refactor more easily. Symfony 4 offers major improvements in this area that will deeply change the way we build applications. - [Symfony Live London: API Platform - Full Stack Framework Resurrection](https://dunglas.dev/2017/09/symfony-live-london-api-platform-full-stack-framework-resurrection/) - Here the video and the slides of my talk of today at Symfony Live London. Rate this talk. https://www.youtube.com/watch?v=M2Hxwi-qNQs API Platform: Full Stack Framework Resurrection from Les-Tilleuls.coop Install API Platform. Design the API data model as a set of tiny plain old PHP classes. Instantly get: Fully featured dev environment with Symfony Flex and - [Upcoming conferences](https://dunglas.dev/2017/09/upcoming-conferences/) - I'll speak at a lot of conferences until the end of this year, mostly about API Platform and Symfony 4. Here is my schedule: September, 22: Symfony Live London API Platform - full stack framework reboot (english) We'll start by creating a fully-featured API in just a few minutes with API Platform, Symfony and Doctrine. The - [Upcoming conferences and meetups: Web2Day, ChtiJS and sfPot Lille](https://dunglas.dev/2017/05/upcoming-conferences-and-meetups-web2day-chtijs-and-sfpot-lille/) - I'll speak at some conferences in June: I'll present API Platform and its new client-side React tools at the ChtiJS meetup of tomorrow in Lille, France. I'll do the same presentation Thursday, June 8 in Nantes during the Web2Day conference I'll present some new features of Symfony 4 (including Symfony Flex) at the next Lille's sfPot in Thursday, June 22 (event - [Petite introduction à l'auto-défense numérique](https://dunglas.dev/2016/11/petite-introduction-a-lauto-defense-numerique/) - Présentation effectuée pour la première fois samedi 5 novembre pour la CNT Lille : Services de renseignement des États, multinationales du web (GAFAM), employeurs voir proches indiscrets… à l’heure de l’omniprésence du web dans nos vies, nous sommes tous fichés et surveillés. Cependant, il existe des méthodes (plus ou moins efficaces) qui permettent de limiter les - [ADR pattern, autowiring, DunglasActionBundle: Symfony controllers redesigned](https://dunglas.dev/2016/06/adr-pattern-autowiring-dunglasactionbundle-symfony-controllers-redesigned/) - Here are the slides of the talk I gave yesterday at the Symfony meetup (sfPot) of Lille. I was presenting DunglasActionBundle, a refinement of the the Symfony controller system and talking about services autowiring and the ADR pattern. https://speakerdeck.com/dunglas/adr-pattern-autowiring-dunglasactionbundle-symfony-controllers-redesigned - [See you at these upcoming PHP conferences](https://dunglas.dev/2015/10/see-you-at-these-upcoming-php-conferences/) - I'll speak about API Platform and Symfony at some PHP conferences until the end of 2015: Symfony Live, San Francisco (October 29th) Leveraging a cloud computing infrastructure to build high performance Symfony webapps I'll present how to tune Symfony webapps to be as efficient and as robust as possible thanks to cloud computing platforms. I'll detail - [Talk à propos de PSR-7 et Symfony ce jeudi à Lille](https://dunglas.dev/2015/07/talk-a-propos-de-psr-7-et-symfony-ce-jeudi-a-lille/) - Ce jeudi je donnerai une présentation lors du sfPot de Lille à propos de l'utilisation de PSR-7 avec le framework Symfony. Tristan Maindron interviendra lui au sujet du déploiement de Symfony dans des environnements Heroku-like. Avis aux intéressés, je viens d'ailleurs de publier une petite bibliothèque à ce sujet. Attention : inscription gratuite mais obligatoire (voir le - [Vidéo : construire des applications API-centric avec API Platform et Symfony](https://dunglas.dev/2015/07/video-construire-des-applications-api-centric-avec-api-platform-et-symfony/) - Voici la vidéo de la présentation que j'ai donné lors du Symfony Live 2015 à propos de API Platform, une solution pour construire des applications web modernes reposant sur une API REST hypermedia et auto-découvrable. https://www.youtube.com/watch?v=uI8Dr-Kt6p4 - [Symfony Live 2015 : à la découverte de API Platform (vidéo et slides)](https://dunglas.dev/2015/04/mes-slides-du-symfony-live-2015-a-la-decouverte-de-api-platform/) - Voici l'enregistrement de ma conférence au Symfony Live de Paris ainsi que les slides correspondantes. La conférence traite développement d'API hypermerdia. https://www.youtube.com/watch?v=uI8Dr-Kt6p4 Les liens vers les différents outils présentés : API Platform PHP Schema (utilisable seul) DunglasJsonLdApiBundle (utilisable avec n'importe quelle application Symfony) Les slides en plein écran. - [Symfony Live 2015 : Construire des applications API-centric avec Symfony](https://dunglas.dev/2015/03/symfony-live-2015-construire-des-applications-api-centric-avec-symfony/) - Je donnerai une conférence de 40 minutes au Symfony Live 2015 qui se déroulera le 9 avril à la Cité Internationale Universitaire de Paris. J'y parlerai de la conception et du développement d'applications construites autour d'une API REST : Au cours de ce talk, je présenterai une architecture moderne qui permet de construire des applications performantes, - [Slides à propos des Linked Data et des API REST Hypermedia avec Symfony](https://dunglas.dev/2015/01/slides-a-propos-des-linked-data-et-des-api-rest-hypermedia-avec-symfony/) - Hier j'ai présenté certains de mes travaux autour des Linked Data et de Symfony au sfPot de Lille. Voici la présentation que j'ai projetée : voir les slides en plein écran. - [sfPot à Lille sur Docker et le web sémantique avec Symfony](https://dunglas.dev/2014/12/sfpot-a-lille-sur-docker-et-le-web-semantique-avec-symfony/) - Alexandre Salomé (SensioLabs) et moi (Les-Tilleuls.coop) animeront un nouvel apéro Symfony à Lille le 15 janvier. Au programmes deux talks : L'un sur le web de données avec Symfony ou seront évoqués les APIs REST, l'hypermedia, Schema.org, PHP Schema et HydraBundle. L'autre sur Docker ou l'on parlera... de Docker ! Tout cela arrosé de bières belges. Rendez-vous le - [Les slides du premier sfPot (apéro Symfony) Lillois](https://dunglas.dev/2014/03/les-slides-du-premier-sfpot-apero-symfony-lillois/) - Merci d'être venus assister en nombre au premier sfPot qui s'est tenu jeudi dernier à l'Autrement Dit. Nous y avons discuté de comment réaliser des applications web modernes architecturées autour d'une API REST réalisée avec Symfony et d'un client en JavaScript utilisant des frameworks tels que AngularJS et Backbone.js. Comme promis, voici les slides réalisées par - [Installing a LaTeX environment on a Mac](https://dunglas.dev/2021/09/installing-a-latex-environment-on-a-mac/) - Installing LaTeX on Mac is straightforward. Install Homebrew if not already done, then run: brew install --cask mactex That's all! If you need a good editor, I recommend the LaTeX Workshop extension for VS Code (brew install --cask visual-studio-code or brew install --cask vscodium). Alternatively, try VimTex for Neovim (brew install neovim). - [Save the Web: Decentralize!](https://dunglas.dev/2020/06/save-the-web-decentralize/) - The web was designed to serve humanity, to enable knowledge sharing, for friendship among people.But data and services centralization by the Tech Giants have completely perverted it. Centralization causes major threats to our societies: mass surveillance, censorship, vote rigging, opponents arrests , advertising tracking. The situation is such that the founding fathers of the web, - [Webperf: PHP after Server Push](https://dunglas.dev/2021/05/webperf-php-after-server-push/) - Here are the slide deck from the talk I gave this morning for AFUP Day 2021! And here is the video (in French): Google recently announced that it will remove Server Push support from its flagship browser. Server Push is a technology that is part of the HTTP/2 and HTTP/3 standards. Server Push is designed - [Schema Generator 3: A Step Towards Redecentralizing the Web!](https://dunglas.dev/2021/01/schema-generator-3-a-step-towards-redecentralizing-the-web/) - I just released API Platform Schema Generator version 3! It's a command-line tool, part of the API Platform framework, that instantly generates a complete PHP data model (classes, enumerations, ORM mapping, validation rules, web API definitions, PHPDoc...) from RDF vocabularies and ontologies. RDF vocabularies are commonly used to define web-scale (Schema.org), industry-wide (The NASA Air - [The Mercure.rocks Hub is now based on Caddy Web Server](https://dunglas.dev/2020/11/the-mercure-rocks-hub-is-now-based-on-caddy-web-server/) - I'm very happy to announce the immediate availability of the Mercure.rocks Hub version 0.11! The Mercure.rocks Hub is a free software implementing the Mercure specification, an open protocol for fast, reliable and battery-efficient in-browser real-time communications. Version 0.11 is a major milestone for the project! As you may know, the Mercure.rocks Hub is written in - [Patch to use sfXssSafePlugin with symfony 1.2](https://dunglas.dev/2009/02/sfxsssafeplugin-symfony-12/) - HTML Purifier is a awesome PHP filter library designed to secure and add standard compliance to HTML. In websites including user generated content, this library allow to have mutlimedia pages including image, text formating and YouTube videos in a secure and SEO proof way thanks to rich text editors like Tiny MCE or FCK Editor - [API Platform 2.5: revamped Admin, new API testing tool, Next.js and Quasar app generators, PATCH and JSON Schema support, improved OpenAPI and GraphQL support](https://dunglas.dev/2019/09/api-platform-2-5-revamped-admin-new-api-testing-tool-next-js-and-quasar-app-generators-patch-and-json-schema-support-improved-openapi-and-graphql-support/) - I'm very excited to announce the immediate availability of API Platform 2.5! API Platform is a set of standalone server and client components for building and consuming REST (JSON-LD, Hydra, JSON:API…) and GraphQL APIs. The server components use PHP and Symfony while the client-side components (which support any Hydra-enabled web API, even the ones not - [A Structured HTTP Fields Parser and Serializer for the Go Programming Language](https://dunglas.dev/2020/08/a-structured-http-fields-parser-and-serializer-for-the-go-programming-language/) - "Structured Field Values for HTTP" is an upcoming RFC defining a set of well-defined data types to use in HTTP headers and trailers. This new format will improve the interoperability and the safety of HTTP by allowing to create generic parsers and serializers suitable for all HTTP headers (currently, most headers need a custom parser) - [Say Hello to Mercure 0.10!](https://dunglas.dev/2020/06/say-hello-to-mercure-0-10/) - I'm very excited to announce the immediate availability of the version 6 of the Mercure Internet Draft as well as of the version 0.10 of the reference implementation! Mercure is a real-time protocol built on top of Server-sent Events and leveraging HTTP/2+. It allows to push messages to JavaScript webapps, mobile apps or IoT devices - [API Platform 2.4: MongoDB, Elasticsearch, Mercure, OpenAPI v3, CQRS with Symfony Messenger, HTTP/2 Push, improved React apps and more!](https://dunglas.dev/2019/01/api-platform-2-4/) - I'm pleased to announce the immediate availability of API Platform 2.4 beta! This new version is a huge one, that comes with a large set of new features. For newcomers, API Platform is a full-stack framework to develop in a breath high quality API-driven projects. Among other (lower level) libraries, API Platform provides: a modular - [Using Next.js and Material UI Together](https://dunglas.dev/2019/05/using-next-js-and-material-ui/) - Next.js is a convenient and powerful framework for React. Its main benefit over using React directly is its transparent support for Server-Side Rendering.Material UI is a very popular set of React components implementing Google's Material Design guidelines. Both libraries are impressive, but there are some tricks to know to make them playing well together. Bootstrapping - [Panther: test your Symfony apps with real web browsers](https://dunglas.dev/2018/09/panther-test-your-symfony-apps-with-real-web-browsers-symfonylive-london-slides/) - https://www.slideshare.net/coopTilleuls/panther-test-your-symfony-apps-with-real-web-browsers/coopTilleuls/panther-test-your-symfony-apps-with-real-web-browsers From a few lines of jQuery to modern React/Vue… PWA, Symfony apps always contain JavaScript code. Unfortunately, the SF functional test helper and the Goutte web scrapping lib aren’t able to execute JS code. It means that they cannot assert on client-side generated HTML, test if an element is visible or not, deal with - [React ESI: Blazing Fast SSR](https://dunglas.dev/2019/04/react-esi-blazing-fast-ssr/) - React ESI is a super powerful cache library for vanilla React and Next.js applications, that can make highly dynamic applications as fast as static sites. It provides a straightforward way to boost your application's performance by storing fragments of server-side rendered pages in edge cache servers. It means that after the first rendering, fragments of - [Symfony and API Platform get "push" and real-time capabilities (Mercure protocol)](https://dunglas.dev/2019/03/official-push-and-real-time-capabilities-for-symfony-and-api-platform-mercure-protocol/) - Mercure.rocks is a brand new protocol allowing to push data updates to web browsers and other HTTP clients in a convenient, fast, reliable and battery-efficient way. It is especially useful to publish real-time updates of resources served through web APIs, to reactive web and mobile apps. Both Symfony and API Platform now have an official - [HTTP/2: speed up your apps and dispatch real time updates (Symfony and API Platform's features announcement)](https://dunglas.dev/2018/10/http-2-speed-up-your-apps-and-dispatch-real-time-updates-symfony-and-api-platforms-features-announcement/) - HTTP/2 can improve the loading time of webpages up to 2 times. Did you know that it’s very easy to optimize your Symfony applications to leverage the advanced features of this new protocol? This talk also contains the announcement of 3 new PHP packages: Symfony Mercure Component Symfony Mercure Bundle Mercure integration in API Platform - [Introducing Symfony Panther: a Browser Testing and Web Scraping Library for PHP](https://dunglas.dev/2018/09/introducing-symfony-panther-a-browser-testing-and-web-scraping-library-for-php/) - Today, an introduction blog post to Panther was published on the Symfony blog! Panther is a new browser testing and web scraping library I contributed to the Symfony project, In the blog post, I showcase how to use Symfony, API Platform and VueJS together to create a small but modern app, and how to test - [API Platform 2.3: Major Perf Improvement, API evolution/deprecation, Better Dev Tools and Much More!](https://dunglas.dev/2018/07/api-platform-2-3-major-perf-improvement-api-evolution-deprecation-better-dev-tools-and-much-more/) - Today, the API Platform framework has reached 3k stars on GitHub, and it makes us very proud! To celebrate, I've just tagged the 2.3 version, that comes with a lot of amazing new features. Let's discover them! For newcomers, API Platform is a modern open source framework for API-driven projects. It allows, in just a few minutes, to expose hypermedia - [#CoopLab project: A video series about cooperatives and self-management I'm featured in](https://dunglas.dev/2018/03/cooplab-project-a-video-series-about-cooperatives-and-self-management-im-featured-in/) - I've been interviewed along with other cooperatives founders form all across Europa in a video series published by the #CoopLab project. I present in depth the democratic and social-equity principles behind Les-Tilleuls.coop, a self-managed company, 100% owned by its employees, I cofounded 6 years ago. I explain how we grew from 3 to 25 while - [Be paid to improve API Platform during the Rails Girls Summer of Code](https://dunglas.dev/2018/02/be-paid-to-improve-api-platform-during-the-rails-girls-summer-of-code/) - (french translation below) API Platform (the API-driven Open Source framework I created) has been selected for the Rails Girls Summer of Code program! The goal of the RCSOC is to improve the diversity in Open Source development. It allows groups of 2 women students to work full-time on a FOSS project (such as API Platform) - [API Platform 2.2: GraphQL, JSON API, React admin and PWA, Kubernetes instant deployment and many more new features](https://dunglas.dev/2018/01/api-platform-2-2-graphql-json-api-admin-and-pwa-kubernetes-instant-deployment-and-many-more-new-features/) - I'm glad to announce the immediate availability of API Platform 2.2 beta 1. This is a huge release that comes with a lot of exciting features including (but not limited too): GraphQL and JSON API support Symfony 4 / Flex integration API Platform Admin integration (built with ReactJS and Admin On Rest) ReactJS and Vue.js - [PHP Schema: generate a fully functional PHP / Doctrine / Symfony data model from Schema.org vocabulary in minutes](https://dunglas.dev/2014/12/php-schema-generate-a-fully-functional-php-doctrine-symfony-data-model-from-schema-org-vocabulary-in-minutes/) - PHP Schema is a code generator that instantly generates a PHP data model from the Schema.org vocabulary : browse Schema.org, choose the types and properties you need, run our code generator and you're done! You get a fully featured PHP data model including: A set of PHP entities with properties, constants (enum values), getters, setters, adders and - [Connection to a MS SQL Server from Symfony / Doctrine on Mac or Linux](https://dunglas.dev/2014/01/connection-to-a-ms-sql-server-from-symfony-doctrine-on-mac-or-linux/) - Microsoft provides a SQL Server driver for PDO. Unfortunately, this driver only works on Windows. Linux and Mac OS X apps must use the FreeTDS compatibility layer: an open source implementation of the MS SQL Server protocol for Unix. It's possible to connect a Symfony app to a SQL Server instance on Unix through FreeTDS but this involve to use a Doctrine - [API Platform Admin 0.2: an admin in 1 minute for your API (React Progressive Web App)](https://dunglas.dev/2017/11/api-platform-admin-0-2-a-dynamic-admin-for-your-apis-react-progressive-web-app/) - The version 0.2 of the API Platform's admin component has just been released! This nice tool allows to automatically and dynamically build a fully featured administration interface (CRUD, pagination, relations...) for any API supporting the Hydra hypermedia vocabulary (more formats supported soon, see at the end of this article). 0 line of code required! API Platform Admin is - [Stack2Slack: a Slack bot written in Go to monitor StackOverflow tags](https://dunglas.dev/2017/10/stack2slack-a-slack-bot-written-in-go-to-monitor-stackoverflow-tags/) - At Les-Tilleuls.coop, we use Slack to centralize our communications and notifications. And, as the maintainers of the API Platform framework, we also do our best to help the community on StackOverflow when we have some free time. Until recently we were just checking periodically the StackOverflow website for new questions. But because all our notifications (GitHub, - [API Platform 2.1 Feature Walkthrough: Create Blazing Fast Hypermedia APIs, Generate JS Apps](https://dunglas.dev/2017/06/api-platform-2-1-feature-walkthrough-create-blazing-fast-hypermedia-apis-generate-js-apps/) - Update September 18: API Platform 2.1 has now been released. This blog post has been updated according to the syntax used in the stable version. https://twitter.com/dunglas/status/906094081864069120 API Platform is a framework designed to make the creation of API-based information systems easier. It provides server-side tooling to create modern hypermedia and Linked Data APIs in just a few minutes. This - [Using PSR-7 in Symfony](https://dunglas.dev/2015/06/using-psr-7-in-symfony/) - PSR-7, the last PHP Standard Recommendation, was adopted by the PHP Framework Interoperability Group on May 19. That PSR defines PHP interfaces representing HTTP messages: request and response (client and server side), uploaded file, URI, streams, PHP superglobals and CGI bindings. The adoption of PSR-7 was a long road well told by Mathew Weier O'Phinney (the main author of the - [API Platform 2.0 released: creating powerful web APIs has never been so easy](https://dunglas.dev/2016/11/api-platform-2-0-released-creating-powerful-web-apis-has-never-been-so-easy/) - After 1 year of development and more than 700 commits authored by a hundred contributors across the world, the new major release of API Platform is immediately available for download. API Platform is a PHP 7 framework dedicated to the creation of modern and powerful web APIs. It is especially adapted to build API-centric information systems relying on hypermedia, Linked Data; and - [The first alpha of API Platform 2.0 is available!](https://dunglas.dev/2016/05/the-first-alpha-of-api-platform-2-0-is-available/) - The first alpha of API Platform 2.0 has been released! Take a look to this presentation to discover changes and new features of this version: These slides have been presented first in the sfPot conference of Paris (May 17, 2016). - [DunglasActionBundle 0.3.0 released!](https://dunglas.dev/2016/05/dunglasactionbundle-0-3-0-released/) - DunglasActionBundle is an alternative controller system for the Symfony framework relying on autowiring and inspirited by the ADR pattern. Thanks to this bundle, controllers, commands and event listeners are automatically detected and registered as services. All their dependencies are also automatically registered. See the GitHub repository for an extensive documentation. A lot of work have been done - [DunglasActionBundle: Symfony controllers, redesigned](https://dunglas.dev/2016/01/dunglasactionbundle-symfony-controllers-redesigned/) - Today is my birthday, but - unusually - I offer the gift: DunglasActionBundle - a replacement for the Symfony controller subsystem. Since few months, a lot of discussions and experimentations are occurring in the Symfony world to find a better and moderner way to create controllers. During the past summer, I've already switched the API Platform project from the traditional controller system to a - [Making the Symfony PropertyAccess Component 84% faster in 2.8... and counting](https://dunglas.dev/2015/12/making-the-symfony-propertyaccess-component-50-faster-in-2-8-and-counting/) - Update 12/06/15: I've opened a PR making the PropertyAccess Component 84% faster than before. It implements strategies explained at the end of this post. This PropertyAccess component allows to access to a property of an object (or a to a key of an array) regardless of the access strategy that must be used. It is smart enough to access - [Introducing the phpdoc-to-typehint Converter: add scalar type hints and return type declarations to your projects](https://dunglas.dev/2015/11/introducing-the-phpdoc-to-typehint-converter-add-scalar-type-hints-and-return-type-declarations-to-your-projects/) - tl;dr Download phpdoc-to-typehint, it will automatically add scalar type hints and return type declarations to your PHP project using existing PHPDoc annotations. PHP 7 will be released soon. Scalar type hints and return type declarations introduced in this new release are very interesting because they enforce the use of stricter types in PHP code. They are less error-prone and ease the - [New in Symfony 2.8/3.0: services autowiring](https://dunglas.dev/2015/10/new-in-symfony-2-83-0-services-autowiring/) - Symfony 3.0, the next major version of our preferred PHP framework, will be released in a few weeks. Basically, it shares the same code base as Symfony 2.8 but all deprecated features coming from older versions have been removed to simplify the framework and its maintenance: https://twitter.com/symfony_en/status/651327366636118016 Symfony 2.8 and 3.0 also come with a lot of new features including (but not limited to) - [API Platform 1.0 released! Version 2.0 announced.](https://dunglas.dev/2015/09/api-platform-1-0-released-version-2-0-announced/) - Spread the word: after months of development the first stable version of the API Platform framework has finally been released! API Platform is a next-generation PHP web framework designed to create API-first projects easily but without compromise in the field of extensibility and flexibility: Use our awesome code generator to bootstrap a fully-functional data model from Schema.org vocabularies with - [Introducing API Platform (beta): the next generation PHP web framework](https://dunglas.dev/2015/06/introducing-dunglass-api-platform-beta-the-next-generation-php-framework/) - Update: API Platform now has a dedicated website with an up to date version of the following tutorial. PHP celebrates its 20 years this week. In 20 years, the web changed dramatically and is now evolving faster than ever: Now that they are indexed by Google and thanks to awesome frontend technologies such as AngularJS or React, full-Javascript webapps are becoming the standard. Since 2014 - [Deploying Symfony and API Platform apps on Heroku easily](https://dunglas.dev/2015/07/deploying-symfony-and-api-platform-apps-on-heroku-easily/) - I've just published a new library and a tutorial to deploy easily Symfony and API Platform applications in Heroku, the popular Platform As A Service. The tutorial explains how to set up and deploy an application with a database (Heroku Postgres or MySQL ClearDB), using the log managing system provided by Heroku (Logplex) and using environment variables to define Symfony parameters - [Un thème Prestashop HTML5 optimisé pour le référencement avec Rich Snippets](https://dunglas.dev/2013/01/un-theme-prestashop-html5-optimise-pour-le-referencement-avec-rich-snippets/) - Mise à jour : ces fonctionnalités sont maintenant incluses dans le thème par défaut de Prestashop 1.6. Ce thème n'est donc plus maintenu. J'ai contribué il y'à quelques temps déjà la migration vers HTML5 du thème par défaut de Prestashop, la plateforme e-commerce libre. En attendant l'inclusion de ce patch dans la version upstream je - [Introducing PropertyInfo: a PHP component to find types and doc of properties](https://dunglas.dev/2015/02/introducing-propertyinfo-a-php-component-to-find-types-and-doc-of-properties/) - PHP doesn't support explicit type definition. This is annoying, especially when doing meta programming. Various libraries including but not limited to Doctrine ORM and the Symfony Validator provide their own type managing system. Another common way to describe type(s) of a property is integrated documentation aka PHPDoc. The PHP Property Info library extracts various information including - ["Persistence in PHP with Doctrine ORM" eBook for $5 until January 6th 2015](https://dunglas.dev/2014/12/persistence-in-php-with-doctrine-orm-ebook-for-5-until-january-6th-2015/) - Thanks to Packt’s eBook Bonanza, my book "Persistence in PHP with Doctrine ORM" is available for only $5 until January 6th. Enjoy it! 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, - [CoopTilleulsOVHBundle: OVH SDK integration in Symfony](https://dunglas.dev/2014/12/cooptilleulsovhbundle-ovh-sdk-integration-in-symfony/) - I've just released a new tiny open source bundle under the Les-Tilleuls.coop umbrella: CoopTilleulsOvhBundle. That bundle integrates the official PHP SDK provided by OVH and exposes it as a Symfony service. It also provides a convenient way to store API credentials in parameters.yml. The OVH API provides a lot of features including dynamic server management (elasticity) - [Generate a Symfony password hash from the command line](https://dunglas.dev/2014/12/generate-a-symfony-password-hash-from-the-command-line/) - There is an easy way to generate a Symfony compliant password hash from the command line. Assuming you're using the bcrypt algorithm (the preferred choice according to Symfony's security best practices), the default cost (13) and you have PHP >= 5.5 installed, just run the following command: php -r "echo password_hash('ThePassword', PASSWORD_BCRYPT, ['cost' => 13]) . PHP_EOL;" It will - [Nouvelle réalisation : la boutique Lost In The Supermarket](https://dunglas.dev/2014/03/nouvelle-realisation-la-boutique-lost-in-the-supermarket/) - Fraichement mise en ligne, voici la boutique de vêtements de mode anglaise Lost In The Supermarket. Elle a été réalisée à l'aide de Prestashop, de Bootstrap et de LESS. Le design est adaptif (responsive) bien que quelques défauts de jeunesse subsistent sur smartphone. Les pages contiennent du balisage sémantique Schema.org afin d'afficher des extraits enrichis dans les résultats - [Continuous Integration for Symfony apps, the modern stack: quality checks, private Composer, headless browser testing...](https://dunglas.dev/2014/11/continuous-integration-for-symfony-apps-the-modern-stack-quality-checks-private-composer-headless-browser-testing/) - Updated 2014/11/21 : Fixed a bug when deploying (thanks @meyer_baptiste). Added a command to update GitHub commit status (thanks @samuelroze). At Les-Tilleuls.coop, we built great e-commerce platforms and high-performance web applications with quality and agility in mind. Most of our applications share the same technical stack: the PHP language with the Symfony framework and Doctrine for back applications front applications developed with CoffeeScript or - [PHP 7: Introducing a domain name validator and making the URL validator stricter](https://dunglas.dev/2014/11/php-7-introducing-a-domain-name-validator-and-making-the-url-validator-stricter/) - DNS comes with a set of rules defining valid domain names. A domain name cannot exceed 255 octets (RFC 1034) and each label cannot exceed 63 octets (RFC 1035). It can contain any character (RFC 2181) but extra rules apply for hostnames (A and MX records, data of SOA and NS records): only alphanumeric ASCII characters and hyphens are allowed in labels - [Internationalized Domain Name (IDN) and PHP](https://dunglas.dev/2014/10/internationalized-domain-name-idn-and-php/) - Currently, PHP doesn't have any native support of IDN: domains with non-ASCII characters such as http://www.académie-française.fr. If you try to connect to such site you'll get nothing but an error: file_get_contents('http://académie-française.fr'); // PHP Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known in php shell code on line 1 RFC 3490 specifies that applications must convert IDN - [Enabling OPcache for PHP 5.6+ installed with Homebrew](https://dunglas.dev/2014/09/enabling-opcache-for-php-5-6-installed-with-homebrew/) - Since 5.5, PHP comes with a built-in OPcache system. This PHP accelerator has been open sourced by Zend and is a good replacement for APC. If you installed PHP 5.6 on your Mac with Homebrew, you maybe noticed that OPcache is not enabled by default. Even if the extension has been compiled, a manual configuration must be done - [Interview à propos de Les-Tilleuls.coop dans J'innove](https://dunglas.dev/2014/07/interview-a-propos-de-les-tilleuls-coop-dans-jinnove/) - Les-Tilleuls.coop : un statut Scop qui débride la créativité et l'innovation Le jeudi 03 Juillet 2014 Créée en 2011, Les-Tilleuls.coop est une agence web spécialisée dans le développement sur-mesure de logiciels e-commerce. Basée à EuraTechnologies, cette Jeune Entreprise Innovante a pris le parti d’organiser son modèle de management selon une organisation coopérative : « à - [Build your own website thumbnail generator with Django](https://dunglas.dev/2008/11/django-website-thumbnail-generator/) - On many website you can see a awesome link preview effect using a thumbnail of the page. There is some web services such as Websnapr or Thumbalizr providing an API to make your own webpages screenshots but it can be annoying to rely on third party projects: free accounts can only display a small among - [Fuite de données personnelles à Pôle emploi ? Revente d'informations ? Piratage ?](https://dunglas.dev/2014/03/fuite-de-donnees-personnelles-a-pole-emploi-revente-dinformations-piratage/) - Voici la première contribution externe de ce blog, un article écrit par une amie qui révèle un problème de confidentialité important chez Pôle emploi : les données personnelles des usagers seraient dans la nature, utilisées pour envoyer du spam et probablement pour tenter des usurpations d'identité. Après une rapide analyse des en-têtes de l'email en - [PHP SocialShare 0.2.1 released](https://dunglas.dev/2014/03/php-socialshare-0-2-1-released/) - I've just published a new version of PHP SocialShare, a library allowing to retrieve server-side webpages' number of shares and share link from social networks. This release fixes a bug that was breaking the Google support when the number of shares if greater than 1K and use the brand new phpspec 2.0 stable release as spec - [Interview sur Grand Lille TV](https://dunglas.dev/2014/03/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. http://www.youtube.com/watch?v=S5CgLqFRTZA - [Le premier apéro Symfony lillois (sfPot), c'est le 20 mars](https://dunglas.dev/2014/03/le-premier-apero-symfony-lillois-sfpot-cest-le-20-mars/) - Jeudi 20 mars aura lieu le premier sfPot Lillois à L’Autrement Dit, 14 rue Royale, dans le Vieux Lille. Organisée par Les Tilleuls et Sensiolabs, cette soirée aura pour thème « Réaliser des applications innovantes avec Symfony 2″. Les sfPots, ce sont des rendez-vous informels autour d’un verre, destinés aux férus de Symfony, solution open-source permettant le développement d’applications évolutives, fiables, sécurisées - [Interview dans La Voix du Nord](https://dunglas.dev/2014/02/interview-dans-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 - [Using SocialShare with Wordpress to create custom social networks buttons](https://dunglas.dev/2014/01/using-socialshare-with-wordpress-to-create-custom-social-networks-buttons/) - 2013/02/14: Take care of the smarter caching system introduced in version 0.2.0. Here is how to use the SocialShare PHP library to create custom Facebook, Twitter and Google Plus share buttons including the number of share. Installing the library The first step is to install SocialShare through the awesome Composer dependency manager. If you have - [Introducing the SocialShare PHP library](https://dunglas.dev/2014/01/introducing-the-socialshare-php-library/) - I've released a new PHP library allowing to retrieve the number of shares of URLs on popular social networks. It currently supports Facebook, Twitter, Google Plus / Plus One, Pinterest, LinkedIn and Scoop.it!. This library is also able to generate sharing links for these networks. The main advantages of this library over traditional JavaScript share - [A Symfony 2 TodoMVC implementation using Backbone.js and Chaplin.js](https://dunglas.dev/2013/02/symfony-2-todomvc-backbone-chaplin/) - I have just released an implementation of TodoMVC using Symfony 2 (the best PHP framework), Chaplin.js and Backbone.js. It follows my previous article on the use of these technologies (in french). TodoMVC is a project which offers the same Todo application implemented using MV* concepts in most of the popular JavaScript MV* frameworks of today. This - [Symfony 2, Backbone.js et Chaplin.js : une implémentation de TodoMVC](https://dunglas.dev/2013/02/symfony-2-backbone-js-et-chaplin-js-une-implementation-de-todomvc/) - Je viens de publier une implémentation du célèbre TodoMVC sous forme de bundle Symfony 2. Cela fait suite à mon précèdent article sur l'utilisation de Symfony avec les bibliothèques JavaScript Chaplin.js et Backbone.js. TodoMVC est un projet présentant de nombreuses implémentations de la même application de gestion de tâches (todo) à l'aide des frameworks JavaScript MV* - [Diaporama diffusé lors du workshop sur le référencement avec HTML5](https://dunglas.dev/2013/02/diaporama-diffuse-lors-du-workshop-sur-le-referencement-avec-html5/) - Voici le diaporama qui a servi de support au workshop sur le référencement avec HTML5 que j'ai animé jeudi 31 janvier pour La Coopérative des Tilleuls : [slideshare id=16339748&doc=workshopreferencementhtml5-130204062048-phpapp02] Ce sont le thème Prestashop HTML5 optimisé pour le référencement et l'implémentation de TodoMVC avec Symfony et Backbone.js qui ont servi de support. Le prochain workshop de cette - [PHP TorControl, a library to control TOR](https://dunglas.dev/2013/02/php-torcontrol-a-library-to-control-tor/) - I have just released TorControl, a PHP library to control a Tor server. This library implements the Tor Control protocol. It supports: Connect to a Tor server through network socket, SSL network socket or UNIX socket Null, password and cookie file authentication methods Automatic authentication for null and cookie file methods Multi-line replies It is - [PHP TorControl, une bibliothèque pour contrôler un serveur Tor](https://dunglas.dev/2013/02/php-torcontrol-une-bibliotheque-pour-controller-un-serveur-tor/) - Je viens juste de publier TorControl, une bibliothèque écrite en PHP qui permet de contrôler un serveur Tor. Elle permet de : Se connecter à un serveur Tor via des sockets réseaux (SSL ou non) et UNIX. S'authentifier en utilisant les méthodes sans vérification, par mot de passe et par cookie. La détection automatique de - [DunglasTorControlBundle, TorControl Symfony integration](https://dunglas.dev/2013/03/dunglastorcontrolbundle-torcontrol-symfony-integration/) - I've just released a new Symfony bundle to use easily the PHP TorControl library with the framework. TorControl is a library I've wrote designed to control a Tor server using the control socket. Install the bundle using Composer. Type this command in your Symfony project directory: composer require dunglas/torcontrol-bundle:dev-master Enable the bundle, edit your app/config.yml to - [Nouvelle réalisation : QuelleNotice.fr](https://dunglas.dev/2013/07/nouvelle-realisation-quellenotice-fr/) - Réalisation du site Quelle Notice à l'aide de Symfony 2 et des composants Sonata. Quelle Notice met à disposition des notices et manuels d'utilisation de matériels électroniques et et électroménagers. - [Workshop sur le référencement mardi 16 juillet à Lille](https://dunglas.dev/2013/07/workshop-sur-le-referencement-mardi-16-juillet-a-lille/) - Mardi prochain, j'animerais un workshop traitant du référencement pour le centre de formation lillois Co-Factory. Ce workshop est destiné à tous ceux qui animent un site internet, un blog, une boutique en ligne... et qui souhaitent découvrir les bases du positionnement dans les moteurs de recherche. Il est destiné aux débutants complets, aucune connaissance préalable - [TodoMVCBundle is now compatible with Symfony 2.3](https://dunglas.dev/2013/08/todomvcbundle-is-now-compatible-with-symfony-2-3/) - I've just updated my Symfony 2 implementation of TodoMVC using Backbone.js and Chaplin.js for the UI. It is now compatible with Symfony 2.3 (the current version and first LTS of Symfony 2). I've moved the decoder which converts JSON data to application/x-www-form-urlencoded directly in FOSRest. Take a look at this bundle if you want to use - [Making the Sonata Project better](https://dunglas.dev/2013/12/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 - [Building Doctrine queries with DQL and the query builder](https://dunglas.dev/2013/12/building-doctrine-queries-with-dql-and-the-query-builder/) - 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. - [Entities and Mapping Information with the Doctrine ORM](https://dunglas.dev/2014/01/entities-and-mapping-information-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 - [DunglasTodoMVCBundle compatible with Symfony 2.4](https://dunglas.dev/2014/01/dunglastodomvcbundle-compatible-with-symfony-2-4/) - I'm pleased to announce the release of DunglasTodoMVCBundle 1.1.0. 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: - [New release of the ACL extension for Sonata Admin](https://dunglas.dev/2014/01/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 - [Mon premier billet sur le blog d'Ankama Web](https://dunglas.dev/2008/05/billet-blog-dankama-web/) - Le voici le voila, mon premier billet sur Bande Passante, le blog d'Ankama Web. Il s'agit d'une petite revue de Firefox 3. - [The W3C website is not W3C compliant !](https://dunglas.dev/2008/03/w3c-xhtml-not-compliant/) - The World Wide Web Consortium is the organization that develops web standards. It is the source of XHTML, CSS and SVG. It produces some validators to test compliance with its formats. But even an important W3C page like the SVG specification failed to respect their own standards : try by yourself ! Should the W3C - [Le W3C n'est pas "W3C compliant" !](https://dunglas.dev/2008/03/w3c-xhtml-validation/) - Le World Wide Web Consortium est l'organisation qui rédige et publie les standards du web. Il est à l'origine de XHTML, CSS et SVG. Le W3C fourni également des validateurs qui test le respect de ses formats par les documents soumis. Mais même une page importante du W3C comme les spécifications du format SVG échoue - [Changer la couleur du texte sélectionné dans une page web](https://dunglas.dev/2008/04/couleur-selection-css/) - Comme vous pouvez l'avez peut-être remarqué sur ce blog, il est possible de changer la couleur des sélections dans une page web avec les CSS. Pour créer cet effet sympa, qui ne fonctionne que sous Firefox et Safari, nous devront utiliser les sélecteurs non standardisés ::-moz-selection pour le premier et ::selection pour le second. Ils - [Les archives de Bienvenue chez moi enfin en ligne](https://dunglas.dev/2008/04/archives-bienvenue-chez-moi/) - Chose promise chose due ! Les archives de Bienvenue chez moi, mon ancien blog, sont désormais disponibles. Tous les commentaires et articles ont étaient restaurés. Vous y trouverez un grand nombre de tutoriels pour Ubuntu et Linux en général ainsi que les anciennes version de Easy Ubuntu, des modules pour PunBB, et des billets traitant - [Réaliser un site Flash/Flex optimisé pour le référencement](https://dunglas.dev/2008/05/flash-flex-referencement/) - ... est accessible. La technologie Flash / Flex d'Adobe est en passe de s'imposer sur le marché des applications internet riches. Elle permet une expérience utilisateur impressionnante impossible à atteindre avec du HTML standard, les sites en Flash sont fluides, jolis et très interactifs. Côté licence, la plateforme Flex est libre (sous licence MPL) alors - [Google indexe les sites en Flash : un coup d'épée dans l'eau](https://dunglas.dev/2008/07/google-flash/) - La nouvelle a fait le tour du web. Google indexe désormais les sites en Flash, ou plutôt le contenu textuel présent dans les fichiers SWF. L'annonce d'Adobe précise que le plus populaire des moteurs de recherche sera bientôt suivi de Yahoo!. Est-ce l'avènement des sites à interface riche réalisés en Flash / Flex, la fin - [Du code dans vos pages web !](https://dunglas.dev/2008/09/code-page-web-semantique/) - Sur ce blog comme c'est le cas sur beaucoup d'autres sites traitant de programmation, je suis souvent amené à publié des snippets de code source ou des dialogues homme - machine (des successions de commandes). HTML et XHTML disposent de balises dédiées à cette tache particulière qui sont malheureusement trop souvent ignorées alors qu'elles ont - [3ème workshop d'initiation aux technologies du web](https://dunglas.dev/2012/06/3eme-workshop-dinitiation-aux-technologies-du-web/) - A la demande générale La Coopérative des Tilleuls vous invite à un troisième workshop d'initiation aux technologies du web. Après avoir appris les bases de HTML lors du premier workshop et de CSS lors du second, nous réaliserons ensemble l'intégration complète d'une page web à partir d'une maquette graphique. Nous apprendrons à découper une maquette afin - [Workshop gratuit sur le référencement naturel avec HTML5 jeudi 31 janvier à Lille](https://dunglas.dev/2013/01/workshop-gratuit-sur-le-referencement-naturel-avec-html5-jeudi-31-janvier-a-lille/) - Jeudi prochain, j'animerais pour La Coopérative des Tilleuls, un atelier gratuit sur l'utilisation des propriétés sémantiques de HTML5 pour améliorer le référencement naturel des sites internet. C'est chez nos amis de Co-Factory que ça se passe (677 avenue de la République, Lille). Au programme : Introduction au référencement Présentation des balises sémantiques de HTML5 Comprendre - [Google change encore de favicon](https://dunglas.dev/2009/01/google-favicon/) - Pour la deuxième fois en moins d'un an, le plus populaire des moteurs de recherche change de favicon. Cette fois-ci elle est très coloré et Google à publié un petit making of de sa conception. Si c'est encore l'ancienne qui s'affiche rendez-vous sur http://www.google.fr/favicon.ico et tapez Ctrl + r. - [Ajax Syntax Highlighter 1.0 beta 1 released](https://dunglas.dev/2008/09/ajax-syntax-highlighter/) - Yeah, it's the first public release of the new syntax highlighter announced in my previous post ! Ajax Syntax Highlighter is a small Javascript utility designed to highlight code embed in a web page in a semantic and standard compliant way. It automatically looks for source code in the page, send it to a server-side - [Windows Media Player transforme le Punk en musique nazie](https://dunglas.dev/2008/03/nyark-punk-nazi/) - Oh surprise ! En insérant le CD distribué avec l'excellent Nyark Nyark de Arno Rudeboy, Windows Media Player ne détecte pas correctement le nom des pistes... En lieu et place des titres phares du punk et du rock alternatif français on se retrouve avec des nom de pistes RAC (dérivé nazi de la Oi! popularisé - [Mon installation audio](https://dunglas.dev/2008/08/mon-installation-audio/) - Sur ce blog, je parle beaucoup d'informatique et un peu de musique. Quand je travail, comme quand je ne travail pas, j'aime bien avoir du bon son dans les oreilles ! Le casque C'est mon acquisition la plus récente et j'en suis très content. Mon JVC HA-S350 m'accompagne partout, au travail (en open space relativement - [Développement pour Android sur Mac OS X](https://dunglas.dev/2008/03/google-android-mac/) - Cet article est le premier d'une série consacrée au développement d'applications sur la nouvelle plate-forme pour téléphones mobiles crée par Google : Android. Les deux premiers billets seront très accessibles, voir simplistes. Celui-ci détaillera la procédure d'installation de l'environnement de développement (sur Mac OS X mais elle est très similaire sur Linux et Windows). Dans - [Un lecteur de flux RSS pour Android : la base de données intégrée](https://dunglas.dev/2008/03/android-sqlite/) - Après avoir réalisé notre tout premier programme avec Google Android, nous allons nous lancer dans la réalisation d'un projet un peu plus complexe : un lecteur de flux RSS. Ce sommaire lecteur de flux permettra juste de s'abonner, se désabonner et d'afficher des flux RSS. Vous pouvez récupérer l'archive incluant sources et binaires si vous - [Des benchmarks sur les toutes nouvelles Dedibox](https://dunglas.dev/2008/04/benchmarks-nouvelles-dedibox/) - Iliad à vient d'annoncer une nouvelle mouture de son offre de serveurs dédiés à bas prix. Les Dedibox v2 ne sont plus basé sur des processeurs VIA mais sur des Intel Celeron. Elles se voient dotées de 1 Go de mémoire vive, d'un disque dur de 160 Go et d'une bande passante de 100 Mbits/s. - [Mes projets à nouveau en téléchargement](https://dunglas.dev/2008/05/mes-projets-a-nouveau-en-telechargement/) - Après avoir été séquestrés pas mal de temp dans ma cave numérique, mes projet peuvent à nouveau regagner l'air libre ! Retrouvez certains de mes projets sous licence libre en téléchargement ! On y trouve essentiellement des logiciels pour le web et pour Ubuntu Linux, jettez-y un oeil. - [hosting.py: un gestionnaire de serveur web pour Debian/Ubuntu](https://dunglas.dev/2008/06/publication-de-hosting_py/) - hosting.py, c'est un petit script d'administration de serveurs Debian et ses dérivés (testé sous lenny et Ubuntu). C'est un outils très simple destiné à gérer les utlisateurs d'un serveur Web (Linux Apache PHP MySQL). Il permet la création, la modification et la suppression d'utilisateurs UNIX et d'hôtes virtuels Apache. Le support des comptes MySQL n'est - [hosting.py: Debian/Ubuntu webserver administration tool](https://dunglas.dev/2008/06/hosting_py-debian-ubuntu-webserver-administration/) - hosting.py allows to easily create and manage accounts on shared servers running Debian GNU/Linux (and derivatives, such as Ubuntu Linux). It includes support for Apache virtual hosts, UNIX accounts, MySQL databases and privileges. hosting.py is a command line tool wrote in Python by Kévin Dunglas. Philosophy The philosophy behind this tools is "keep it simple". - [hosting.py 0.2 released](https://dunglas.dev/2008/08/hosting_py-02-released/) - hosting.py is a web server account manager for Debian GNU/Linux and derivatives, such as Ubuntu Linux I am maintaining. I am proud to announce that the version 0.2 is out ! hosting.py now supports MySQL accounts and databases management and his core is modular. The documentation as been rewrited and detailled. hosting.py needs contributors. Testers - [Changer le message d'accueil de votre terminal](https://dunglas.dev/2008/09/message-accueil-terminal/) - Lorsque vous lancez un shell sous votre Unix préféré (que ce soit GNU/Linux ou un BSD ou OS X), un petit texte est affiché avant le prompt, c'est le MOTD (Message Of The Day). Ils sont souvent austère, comme c'est le cas sur les serveurs d'hébergement Gandi : [---------------------------------------] Gandi - Welcome to your new - [Faire fonctionner Google Notifier pour Mac en mode sécurisé](https://dunglas.dev/2008/09/google-notifier-mac-https/) - Peut-être utilisez-vous Google Notifier pour OS X ? Cet un utilitaire permet d'avertir en temps réel lors de la réception d'un messages sur Gmail, de rappeler les rendez-vous Calendar et d'intégrer ces services au système d'Apple. Le problème, c'est que par défaut il fait transiter vos identifiants en clair sur le réseau. Si vous vous - [Gandi lance son offre d'hébergement !](https://dunglas.dev/2008/09/gandi-offre-dhebergement/) - Après 9 mois de beta test, Gandi, le célèbre registar qui a démocratisé l'achat de noms de domaines sur Internet, lance son offre d'hébergement extensible et à bas prix. Pour 10€ HT par mois vous obtenez une "part" sur un serveur virtualisé (la techonologie sous jacente est Xen) ce qui équivaut à un serveur avec - [Se connecter au chat Facebook via Pidgin sous Ubuntu](https://dunglas.dev/2008/10/chat-facebook-pidgin-ubuntu/) - Tout comme dans la dernière version de Adium, l'excellent client libre de messagerie instantanée pour Mac, il est possible de se connecter au chat Facebook via Pidgin (anciennement GAIM). Pour ce faire, nous devrons lui greffer un plugin disponible sur Google Code. Voici la marche à suivre pour l'installer sous Ubuntu. Récupérez les archives facebook_icons.zip - [Monter une partition Linux sous Mac OS X](https://dunglas.dev/2008/10/partition-linux-sous-mac-os-x/) - Ou plus précisément une partition de type ext2/3, le système de fichier le plus populaire sous GNU/Linux, utilisé par défaut sur Ubuntu. Mac OS X n'inclut pas de pilote pour monter les partitions ext2, heureusement un projet libre comble ce manque : ext2fsx. Récupérer la version ext2fsx_dev sur le site du projet, la seule supportant - [Changer l'emplacement de mysql.sock avec MAMP](https://dunglas.dev/2009/07/mysql_sock-mamp/) - Si comme moi vous utilisez le serveur MySQL fourni avec MAMP pour d'autres usages que le développement PHP, par exemple comme gestionnaire de base de données pendant la création d'applications Django ou Ruby on Rails, il peut être utile de changer l'emplacement de son socket UNIX vers un emplacement plus commun, qui sera trouvé automatiquement par - [Installer PHP sur OS X avec le support de MySQL et de INTL](https://dunglas.dev/2012/12/installer-php-sur-os-x-avec-le-support-de-mysql-et-de-intl/) - Après avoir installé Homebrew, il ajoutons les dépôts Homebrew-PHP et Homebrew-dupes : $ brew tap josegonzalez/php $ brew tap homebrew/dupes Installons maintenant PHP 5.4 avec le support de MySQL et de INTL : $ brew install php54 --with-mysql --with-intl $ brew install php54-intl Ajoutez maintenant la ligne indiquée par Homebrew pour que Apache charge le module PHP - [Sécuriser tant bien que mal une application Symfony installée dans un sous-répertoire](https://dunglas.dev/2012/12/securiser-tant-bien-que-mal-une-application-symfony-installee-dans-un-sous-repertoire/) - Souvent, pour des raisons de coups liées aux certificats SSL, il n'est pas possible d'installer une application Symfony dans son propre virtual host. L'application se retrouve alors dans un sous-répertoire du DocumentRoot, ouverte à tous vents et c'est une catastrophe en terme de sécurité ! Imaginons que notre DocumentRoot soit /home/web et que l'application Symfony - [Installer un stack LAMP sur un dédié OVH avec Ubuntu 12.10](https://dunglas.dev/2012/11/installer-un-stack-lamp-sur-un-dedie-ovh-avec-ubuntu-12-10/) - Petit mémo pour configurer un serveur web LAMP sur un dédié OVH fraichement livré. La distro choisie est Ubuntu 12.10. Apache, PHP, MySQL Commençons par mettre à jour la liste des paquets : # apt-get update Puis la distribution elle même : # apt-get dist-upgrade Installons Apache, PHP, MySQL, phpMyAdmin et les extensions qui vont bien pour - [Foire à l'autogestion 2013](https://dunglas.dev/2013/06/foire-a-lautogestion-2013/) - Je serai présent avec d'autres travailleurs de La Coopérative des Tilleuls à la Foire à l'Autogestion 2013 qui se déroulera ce weekend à Montreuil. Pour celles et ceux qui ne connaissent pas ce mode de fonctionnement, c'est l'occasion de découvrir une forme de démocratie réelle où les décisions sont prises sans chefs et sans délégation - [Les-Tilleuls.coop fête ses deux ans](https://dunglas.dev/2014/01/les-tilleuls-coop-fete-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 - [Le profiling commercial, kézako](https://dunglas.dev/2014/01/le-profiling-commercial-kezako/) - 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 - [Plugin pour intégrer Scoopeo à votre blog Wordpress](https://dunglas.dev/2008/03/plugin-scoopeo-wordpress/) - Scoopeo, c'est le plus populaire des digg-like francophone. Scoopeo est un aggrégateur de liens. Ceux-ci sont classés suivant les votes des visiteurs. Le site permet également de poster des commentaires à propos des pages publiées. C'est une pratique répandue chez les blogueurs de faire apparaître leurs articles sur les sites webs sociaux tels que Scoopeo, - [Plugin Scoopeo pour Wordpress v0.3](https://dunglas.dev/2008/03/scoopeo-wordpress-03/) - Voici une nouvelle version de mon plugin qui permet d'intégrer Scoopeo à Wordpress. Au programme : Affichage des commentaires dans l'ordre chronologique Suppression des erreurs et des en-têtes inutiles lorsqu'il n'y a pas de commentaires Scoopeo associés à une page Affichage des dates en français Lien vers la page de l'auteur du commentaire Télécharger le - [Nouvelle offre d'hébergement à bas prix chez Gandi : installez votre serveur web](https://dunglas.dev/2008/08/ubuntu-lamp-gandi/) - Gandi m'a gentiment fourni une invitation à la bêta de leur service d'hébergement. Je compte y passer ce blog et voir comment se comportent les frameworks Symfony et Django sur ces serveurs virtualisés et scalable. J'ai donc pris une part (6€ HT/mois) afin d'y installer un serveur web composé d'Apache, de PHP, de MySQL et - [Premier programme avec Android](https://dunglas.dev/2008/03/premier-programme-avec-android/) - Le kit de développement de Google Android désormais installé, commençons à coder ! L'objectif de cet article est de découvrir les bases de la programmation et de l'exécution de programmes pour Android. Il nécessite de maitriser la programmation en Java et de connaitre les rudiments du fonctionnement d'Eclipse. Lançons Eclipse et créons un nouveau projet - [Bien postuler au Google Summer of Code 2008](https://dunglas.dev/2008/03/summer-of-code-2008/) - Cette année encore, Google propose le Summer of Code ! Ce programme offre une bourse de l'ordre 4 000 $ à des étudiants pour qu'ils participent à des projets Open Source pendant leurs vacances. Fort de mon expérience de l'édition passée, je vais tenter de vous expliquer comment être sélectionner et mener à bien votre - [Anarchy in the UK...](https://dunglas.dev/2008/03/video-anarchy-ukulele/) - ...ulele ! [youtube:http://www.youtube.com/watch?v=VXVdNKciP94] - [La sélection musicale du moment](https://dunglas.dev/2008/03/la-selection-musicale-du-moment/) - Programmer c'est bien, en musique c'est mieux ! Voici une petite sélection de ce que j'écoute en ce moment : Les londoniens de Headjam font un mélange de Dub et de Punk rafraichissant ! Musique travaillé et entrainante, voix agréable et surprenante. Ma préférée sur leur MySpace : Open All Hours Restons dans le calme - [[MdJ] The restarts - Big Rock Candy Mountain](https://dunglas.dev/2008/05/restarts-big-rock-candy-mountain/) - Du Punk qui envoi ! http://www.myspace.com/therestarts - Piste n°2 - [[MDJ] Pilsner Oiquell - Skins sa brania utokom](https://dunglas.dev/2008/06/pilsner-oiqell/) - Et une fois n'est pas coutume, une jolie photo ! - [[MDJ] Uk Subs - Spoils of War](https://dunglas.dev/2008/06/uk-subs-spoils-of-war/) - Du classique avec Spoils of War des Uk Subs ! - [[MDJ] edelweiss piraten - A.C.A.B. ](https://dunglas.dev/2008/06/edelweiss-piraten-acab/) - A.C.A.B. de edelweiss piraten - [[MDJ] The Analogs - Dzieciaki Atakujące Policję](https://dunglas.dev/2008/06/the-analogs/) - Et aujourd'hui, les polonais de The Analogs avec Dzieciaki Atakujące Policję ! - [[MdJ] BoLCHoï - Violence rouge et colère noire](https://dunglas.dev/2008/07/mdj-bolchoi-violence-rouge-et-colere-noire/) - BoLCHoï - Violence Rouge et colère noire - [Amateurs de Punk lillois, ne manquez pas Oi Polloi jeudi](https://dunglas.dev/2008/09/oi-polloi-lille/) - Oi Polloi, le mythique groupe anarcho-punk écossais se produira jeudi à La Rumeur à Lille. C'est 6€, début des hostilités prévu à 20h30. Pour ceux qui sont intéressés à venir de loin, sachez que la tout aussi mythique braderie de Lille (mais peut-être un peu moins punk) se tiendra samedi et dimanche dans toute la - [[Musique du Jour] The Prodigy - Voodoo People (Pendulum Remix)](https://dunglas.dev/2008/05/prodigy-voodoo-people/) - Musique du Jour ? Eh oui, c'est nouveau ! Tous les jours je vous ferez (re)découvrir une musique que j'apprécie, pas de commentaire, juste du plaisir pour les oreilles ! - [[MDJ] Arctic Monkeys - When the Sun Goes Down](https://dunglas.dev/2008/05/arctic-monkeys-when-sun-goes-down/) - [[MDJ] DJ Medhi - Signatune](https://dunglas.dev/2008/06/mdj-dj-medhi-signatune/) - SIGNATUNE (Dj Mehdi / T. Bangalter edit) Ce clip tourné à Lens est de Kourtrajmé, co-auteurs de Stress avec Justice. - [[MdJ] Cindy Lauper - Girls Just Want To Have Fun](https://dunglas.dev/2008/07/mdj-cindy-lauper-girls-just-want-to-have-fun/) - Cindy Lauper - Girls Just Want To Have Fun - [[MdJ] Bill Haley - Rock around the clock](https://dunglas.dev/2008/07/mdj-bill-haley-rock-around-the-clock/) - Bill Haley & His Comets - Rock around the clock - [[MdJ] The Sonics - Have love will travel](https://dunglas.dev/2008/07/mdj-the-sonics-have-love-will-travel/) - The Sonics - Have love will travel - [Passage de la musique du jour sur Twitter](https://dunglas.dev/2008/07/musique-du-jour-twitter/) - Depuis quelques temps j'ai pris l'habitude de publier des liens vers des morceaux de musique sur ce blog sans aucune critique, selon mon humeur du moment. Il s'agit majoritairement de classiques du Rock et du Punk. Ce contenu, bien qu'intéressant, encombre mon blog et son flux RSS, couvrant par sa fréquence les articles plus construits - [Interview de Dominique Grange sur Rue 89](https://dunglas.dev/2008/04/interview-de-dominique-grange-sur-rue-89/) - Dominique Grange ébauche dans "N'effacez pas nos traces", illustré par son compagnon Jacques Tardi, un bilan de ses combats et de ses luttes depuis 68 à nos jours. Dominique Grange, chanteuse qui s'est fait connaître lors de la révolution manquée de mai, c'est un peu le symbole de toute une génération de militants: d'abord mao - [La faille de sécurité touchant MessengerFX semble corrigée](https://dunglas.dev/2008/10/faille-securite-messengerfx-corrige/) - Il y'a quelques temps, j'avais découvert une vulnérabilité de type Cross Site Scripting dans MessengerFX, un client web populaire pour le réseau Windows Live Messenger, qui pouvait avoir de fâcheuses conséquences : en plus de pouvoir faire planter le navigateur de n’importe quel utilisateur du service, elle permet d’accéder à toutes les fonctionnalités implémentées par - [Elf Hostel où le référencement viral efficace](https://dunglas.dev/2009/08/referencement-marketing-viral/) - Cet été je me suis dans une auberge de jeunesse de Prague dénommée Elf Hostel dont la stratégie marketing est assez remarquable. L'hôtel dispose d'un site au design d'un autre âge mais disponible dans de nombreuses langues. Sur ce site il est possible de réserver chambres et lits en ligne et de consulter quelques chaleureux reportages photos et - [Venez défier ma brute !](https://dunglas.dev/2008/07/venez-defier-ma-brute/) - La brute c'est le nouveau buzzgame de Motion Twin, et c'est très drole ! Créez votre avatar, gagnez de l'expérience en combattant des adversaires et en invitant des "disciples" ! Et quand votre personnage se repose, vous pouvez revoir les combats célèbres ! Via NiKo ! - [Vive la traduction automatique !](https://dunglas.dev/2008/10/traducteurs-automatiques/) - Source : fun.drno.de - [Votez pour Joad et Alex au concours de boîtes Kub Or](https://dunglas.dev/2009/02/joadalex-kubor/) - Nos potes designers Joad et Alex se sont lancés dans la de création de boîtes Kub Or. Un concours organisé par la société permettra au gagnant de voir apparaître son graphisme sur 220 000 boîtes collector en 2009 et de remporter 10 000€. Voici la création de Joad : Et celle d'Alex : Votez pour - [Des nouvelles !](https://dunglas.dev/2008/06/des-nouvelles/) - C'est vrai, j'ai un peu délaissé mon blog ces jours-ci. Quelques news en vrac : J'ai effectué ma soutenance de stage ce matin à l'USTL et ça c'est plutôt bien passé. :) Je travaillerais cet été chez Ankama avant de continuer mes études, toujours à l'USTL. Notre concert pour la fête de la musique à - [Les vacances !](https://dunglas.dev/2008/08/les-vacances/) - Après 5 mois chez Ankama, enfin les vacances ! Ce fût l'occasion (même si ils élèvent des chiens) de rencontrer (même si ils ont des franges) pas (même si ils sont fan de VBS) mal (même si ils veulent restaurer la grandeur de l'Empire austro-hongrois) de gens sympas (oééééé) et de travailler sur des projets - [Ravalement de façade](https://dunglas.dev/2008/11/ravalement-facade/) - Comme vous pouvez le voir, j'ai légerement remanié l'apparence de mon blog. Il utilise désormais un thème très sobre à trois colonnes permettant de mieux structurer l'information et fait la part belle à Twitter que j'utilise de plus en plus assidument. - [I need a webdesigner!](https://dunglas.dev/2008/12/i-need-a-webdesigner/) - Hello Folk! As a creative web application and software maker I've an always increasing need of graphics elements and templates for my projects. I'm looking for a partnership with a webdesigner. I do the code, you do the design, we share the success (if any) :P If you are interested to work with me contact - [Tweet13 sur Presse-Citron](https://dunglas.dev/2008/12/tweet13-sur-presse-citron/) - Ok ça date un peu, comme vous avez pu le constater je n'ai pas eu l'occasion de bloguer beaucoup ces temps ci. Mon dernier jouet pour Twitter, Tweet13, à fait l'objet d'une revue par Eric Dupin sur son blog Presse-Citron. Merci à lui ! Pour rappel Tweet13 est une petite application web qui permet de - [Retrouvez l'un de mes articles dans Linux Identity n°6](https://dunglas.dev/2009/02/article-linux-identity/) - Les anciens utilisateurs de Easy Ubuntu trouveront sûrement un intérêt à l'article intitulé Installation des pilotes et des extensions nécessaires à une utilisation courante publié dans Linux Starter Kit / Linux Identity n°6. Dedans, j'y détail l'installation des composants soumis à des brevets logiciels et / ou non-libres qui ne sont pas distribués avec Ubuntu - [La Coopérative des Tilleuls](https://dunglas.dev/2012/04/la-cooperative-des-tilleuls/) - Après plus d'un an d'inactivité sur ce blog il est grand temps de le relancer pour vous présenter le projet qui m'occupe depuis quelques mois déjà : La Coopérative des Tilleuls. Notre jeune société coopérative a été officiellement fondé le 1er janvier 2012 par Joad (designer et graphiste), François-Henry (développeur) et moi-même (développeur). Olivier (agent administratif) et - [Concerts sympa](https://dunglas.dev/2005/09/concerts-sympa/) - Voici quelques concerts sympa dans le nord de la France auxquels j'essaierais d'assister ! Les Fatals Picards le 17 septembre à Gosnay Festival Frog'n'Roll le 22 octobre au Palace à Lillers Les Frères Couenne (ex Les Amis de ta Femme) le 23 novembre au Poche à Béthune Washington Dead Cats le 10 décembre à l'Abattoir à - [Les Bérus sur Radio Libertaire en ce moment](https://dunglas.dev/2005/10/beruriers-noirs-radio-libertaire/) - C'est le moment de lancer vos lecteurs! Les Béruriers Noirs sur la web radio Radio Libertaire ! Ecouter Radio Libertaire! MaJ: Voici l'enregistrement de l'émission (merci Mir) Format MP3 et Format OGG! 22H30 Booste sous les paves 0H30 Junior Cony en live Merci Totzil - [Festival Frog'n'roll / FZM](https://dunglas.dev/2005/10/festival-fzm/) - Je vous conseille vivement le Festival Frog'n'roll / Folklore de la Zone Mondiale le 22 octobre au Palace à Lillers! Au programme Barbirooza, Cellule X et Ethnopaire. Pour avoir déjà vu Ethopaire en live je peux vous dire que ca déménage! Vous pouvaient entendre des morceaux de ces trois groupes et une interview de Barbizooza - [Hier les Bérurier Noir ont joué à Lillers!](https://dunglas.dev/2005/10/hier-les-berurier-noir-ont-joue-a-lillers/) - Et c'était excellent, bonne ambiance, bonne musique, bonne soirée! Concert annoncé nul part mais salle comble quand même, une soirée très réussi la ou peu de gros groupe se produisent! Espérons que d'autre suivront l'exemple des Bérus, il n'y a pas qu'a Paris que le public viens en nombre! Lire mon petit résumé de ce - [C'est bô](https://dunglas.dev/2005/10/c-est-bo/) - Un site avec de très jolis dessins: Zexinia Virtual Gallery! Âmes sensibles et/ou puritaines s'abstenir! Jetez-y un oeil! - [En bref](https://dunglas.dev/2006/01/en-bref/) - N'ayant plus trop de temps pour bloguer, à mon tour je vais faire des petits condensés de tout ce qui me passe par la tête. À ne pas rater le concert Place Libre du 17 juin 2005 à Divion ! Une dizaine de groupes au programme (punk, Oi!, hardcore, rock, peut-être poésie et rap), de la - [Formules et définitions en physique et chimie pour calculatrice Casio](https://dunglas.dev/2006/06/formules-et-definitions-en-physique-et-chimie-pour-calculatrice-casio/) - Le BAC c'est dans moins d'une semaine ! En rentrant mes cours de physique et chimie dans ma machine j'ai pensé que ça pourrait être utile à d'autres. Voici donc un condensé du programme de Terminale S en physique et chimie (tronc commun). Attention, ce ne sont pas de fichiers exécutables mais des fichiers textes a - [DunglasAngularCsrfBundle: protect your Symfony / AngularJS apps against CSRF attacks](https://dunglas.dev/2014/01/dunglasangularcsrfbundle-protect-your-symfony-angularjs-apps-of-csrf-attacks/) - I create and I see more and more web applications sharing the same powerful architecture: Server-side, a REST API built with the popular Symfony framework and its ecosystem (especially FOSRestBundle, JMSSerializerBundle and sometimes BazingaHateoasBundle for hypermedia APIs). Client-side, a SPA built with Google's AngularJS consuming the REST API provided by the server with Restangular or a similar library. These components share the same philosophy (built - [Splash City : notre nouveau jeu Facebook pour NRJ Mobile](https://dunglas.dev/2012/11/splash-city-notre-nouveau-jeu-pour-nrj-mobile/) - Découvrez le nouveau jeu Facebook réalisé par La Coopérative des Tilleuls pour NRJ Mobile ! Splash City : l'Homme Sandwich fait du jet ski dans Paris. - [Utiliser Chaplin.js et Backbone.js avec Symfony 2 : installation et configuration](https://dunglas.dev/2012/12/utiliser-chaplin-js-et-backbone-js-avec-symfony-2-installation-et-configuration/) - Introduction Le développement d'applications web modernes de qualité est une tache complexe : elles doivent être performantes, réactives, maintenables, modulaires, évolutives et, à minima, être compatibles avec la diversité de navigateurs et de plateformes avec lesquelles elles seront utilisées (ordinateurs, tablettes, smartphones...). Elles doivent s'intégrer avec un nombre croissant de services tiers (Facebook, Twitter...). Elles doivent - [De l'inutilité de la fonction PHP sleep pour protéger des attaques brute force (exemple avec Prestahop)](https://dunglas.dev/2012/11/de-linutilite-de-la-fonction-php-sleep-pour-proteger-des-attaques-brute-force-exemple-avec-prestahop/) - Le couple adresse email / mot de passe est le sésame permettant d'accéder à presque l'ensemble des activités numériques d'un individu : messagerie, réseaux sociaux, documents, extranets, interface client des boutiques en-ligne... Les applications web se doivent de garantir la sécurité de leurs utilisateurs. En plus du minimum exigible (hachage et salage des mots de - [Une doc (spartiate) pour le support MongoDB de l'admin Sonata pour Symfony 2](https://dunglas.dev/2012/12/une-doc-spartiate-pour-sonatadoctrinemongodbadminbundle/) - Il y'a plus d'un an déjà j'ai contribué le support de MongoDB au générateur d'admintration Sonata pour Symfony2. Le projet n'était jusque le pas du tout documenté, j'ai donc mis en ligne une petite documentation inspirée de celle du composant pour l'ORM. Attention, elle s'affiche mal sur GitHub à cause du format RST, il faut télécharger - [jquery.confirmExit : où comment ne plus perdre les données d'un formulaire complété](https://dunglas.dev/2012/11/jquery-confirmexit-ou-comment-ne-plus-perdre-les-donnees-dun-formulaire-complete/) - Je viens de publier un petit plugin jQuery sous license MIT qui affiche une demande de confirmation lorsqu'un l'utilisateur quitte une page web après avoir rempli un formulaire sans l'avoir envoyé. Perdre toutes les données que l'on vient de saisir en cliquant sur un lien ou en fermant la fenêtre sans avoir appuyer sur "Envoyer", c'est - [A new Facebook Connect plugin for symfony 1: kdDoctrineGuardFacebookConnectPlugin](https://dunglas.dev/2011/03/a-new-facebook-connect-plugin-for-symfony-1-kddoctrineguardfacebookconnectplugin/) - After some tests I realized that the plugin sfFacebookConnectPlugin created by fabriceb was no longer functional or maintained. I tried to correct some bugs but it's a pain: the plugin is not adapted to the new version of the Facebook SDK. So I have created new plugin called kdDoctrineGuardFacebookConnectPlugin available on GitHub or in the symfony 1 plugins repository. It provides a simple an easy way to add Facebook Connect support to your symfony - [Introducing Publish It Yourself: a self-managed libre CMS](https://dunglas.dev/2009/09/publish-it-yourself/) - Publish It Yourself =================== _Publish It Yourself_ is a self-managed CMS. It is designed to create autonomous communities where users can directly create and manage content. It is a mix between blogs and blogs platforms, digg-likes and open publishing websites such as (the Indymedia network)[http://www.indymedia.org]. It allows to publish and promote rich text articles and - [Tag Suggestion for symfony](https://dunglas.dev/2009/08/tag-suggestion-form-widget-symfony/) - I just have created a patch for sfFormExtraPlugin. It provides a new form widget called sfWidgetFormJqueryTagSuggestion designed to suggest tags. It is based on the Tag Suggestion jQuery plugin of Remy Sharp. You can download it from GitHub, just copy the files to the corresponding directories of your existing sfFormExtraPlugin installation or wait for upstream inclusion of my patch. This widget - [Twisted Python Twitter library with OAuth support](https://dunglas.dev/2009/05/twisted-python-twitter-oauth/) - I have just pushed OAuth support in my Twitty Twister branch on GitHub. This library created by dustin allows to access the Twitter API using Twisted for Python: a high performance networking engine. It is to my knowledge the first Twitter library written in Python that supports authentication via OAuth. My version of Twitty Twister is backward compatible, allows to choose - [Feedburner: Switching to Google account with MyBrand enabled](https://dunglas.dev/2009/01/feedburner-google-account-mybrand/) - Since I've migrated my FeedBurner account to Google I encounter a lot of problems, especially with the MyBrand service. MyBrand is a service allowing to use custom domain names with FeedBurner. Instead of something like http://feeds.feedburner.com/lapin-blanc, your feed address become http://feeds.dunglas.fr/lapin-blanc. I've already explained why it's better ! My subdomain for feeds was rss.dunglas.fr. There - [Interconnectez blog, Twitter et Facebook pour démultiplier votre audience](https://dunglas.dev/2009/01/demultiplier-audience-blog-twitter-facebook/) - Avant l'apparition des services de microblogging et des plateformes de réseautage social le canal de publication principal du blogueur était son blog (logique :P). Désormais nos écrits sont dispersés et notre audimat fragmenté. Messages courts à caractères professionnels sur Twitter, notices à l'intention de la totalité de notre graphe social sur Facebook ; articles détaillés, - [Add reCAPTCHA widgets to Symfony forms](https://dunglas.dev/2009/01/recaptcha-symfony-forms/) - I've wrote a new Symfony plugin to add reCAPTCHA widgets and validation to Symfony new forms. reCAPTCHA is a free CAPTCHA service that helps to digitize books, newspapers and old time radio shows. To install: checkout it from http://selfpublish.googlecode.com/svn/trunk/plugins/sfAnotherReCaptchaPlugin/ and put it in your Symfony plugins directory. Next, get a reCAPTCHA key and put the - [Jouons un peu avec Tweet13](https://dunglas.dev/2008/12/jouons-un-peu-avec-tweet13/) - Voici Tweet13, le dernier petit gadget Twitter que je viens de programmer. Comme son nom l'indique, Tweet13 chiffre vos updates Twitter avec ROT13 et ajoute optionellement un lien pour déchiffrer le message. Quel intérêt de chiffrer un message si tout le monde peut le lire ? Révéler la fin des films que vous avez vu, - [6 plugins Symfony indispensables](https://dunglas.dev/2008/07/plugins-symfony-indispensables/) - Écrit en PHP, orienté objet, implémentant le design pattern Moèle-Vue-Controlleur, doté de nombreuses fonctionnalités et soutenu par Yahoo! : Symfony, le framework web développé par Sensio Labs, à tout pour plaire. L'une des forces de ce framework est la disponibilité de nombreux plugins qui permettent d'étendre ses fonctionnalités. On y trouve du bon et du - [Un formulaire de création de compte avec Symfony et sfGuard](https://dunglas.dev/2008/10/creation-compte-symfony-sfguard/) - sfGuard fait parti des plugins Symfony les plus utiles. Il ajoute à notre framework un système de gestion avancé des utilisateurs, groupes et permissions. Il inclut en standard un back office complet ainsi qu'un formulaire de connexion mais pas pour de la création de compte en front. Alors qu'il fût assez fastidieux de le réaliser - [Quel développeur suis-je ?](https://dunglas.dev/2008/10/quel-developpeur-suis-je/) - Os : Ubuntu et Mac OS X Éditeurs : Eclipse et vim Langages favoris : Python, C VCS : Subversion Navigateur : Firefox Alors, quel développeur je suis ? - [Découvrez Appnr, une interface web d'ajout de programmes pour Ubuntu](https://dunglas.dev/2008/10/decouvrez-appnr-ubuntu/) - Appnr est un portage web du système d'installation de paquets simplifié d'Ubuntu (GNOME Application Installer). Il permet de parcourir les différents logiciels disponibles dans les dépôt de notre distribution favorite depuis un simple navigateur et via une jolie interface AJAX. Appnr reprend les grandes lignes de son grand frère desktop : classement par catégorie, alphabétique - [MessengerFX allows your contacts to take control over your WLM](https://dunglas.dev/2008/05/messengerfx-security-hole/) - I have paste some HTML code to a Edouard using MessengerFX, a popular web Windows Live Messenger client based on AJAX, and - surprise, the code has been interpreted. Oh?! A XSS vulnerability ? Yes, and such a big one! Every software's feature is available through Javascript. Any contact of a MessengerFX user can crash his browser, and furthermore - [MessengerFX's security problem corrected](https://dunglas.dev/2008/10/messengerfxs-security-problem-corrected/) - Some times ago I found a Cross Site Scripting vulnerability in MessengerFX, a popular web-based Windows Live Messenger client. Friday I received from the team saying that the problem is now corrected: Hi Kevin, First of all i want to thank you for your warn. We fixed that problem and now its working correctly. [...] - [Vulnérabilité critique dans MessengerFX](https://dunglas.dev/2008/05/vulnerabilite-critique-messengerfx/) - MessengerFX est un client populaire pour Windows Live Messenger (anciennement MSN Messenger) écrit en AJAX. Sa spécificité et de permettre de se connecter au réseau via un simple navigateur web. En voulant coller du code HTML à Edouard, je me suis rendu compte qu'il était interprété par le navigateur. Faille de type XSS ? Effectivement - [Smush it : le service web qui optimise vos images !](https://dunglas.dev/2008/10/optimisez-images-web-smush-it/) - Smush it est un tout nouveau service en ligne qui fera la joie des intégrateurs et de tous ceux qui publient des images en ligne. Il permet de sensiblement réduire le poids des images qui composent vos pages web afin d'accélérer leurs temps de chargement. L'algorithme utilisé est très performant, il permet même de gagner - [feedproxy.google.com semble remplacer feeds.feedburner.com](https://dunglas.dev/2008/08/feedproxy_google_com-remplace/) - Depuis fait quelques temps déjà que FeedBurner, l'outil de statistique et d'optimisation de flux RSS coqueluche des blogueurs, a été racheté par Google. Aujourd'hui, l'assimilation du service par le géant des moteurs de recherches va plus loin : la célèbre url feeds.feedburner.com laisse progressivement sa place à feedproxy.google.com. Exemple sur le flux RSS de Techcrunch - [Ne fermez pas vos tags à la fin des fichiers PHP](https://dunglas.dev/2008/07/php-tags-fin-fichier/) - Pendant que NikO nous présente ses conventions de codage, parlons d'une autre bonne pratique concernant les tags de délimitation de blocs en PHP. Le langage PHP n'impose pas de fermer un bloc de code avec ?> si se bloc se trouve tout à la fin du fichier, et pour cause, mieux vaut l'omettre dans les - [PHP et ses tags](https://dunglas.dev/2008/07/php-tags-longs/) - Il existe plusieurs manières de délimiter les blocs de code en PHP : (les tags standard) (leur version courte) (équivalent de ) (style ASP) (style HTML) Parmi tous ces tags, seul le couple - [Faire fonctionner PHP mail() sous Debian et dérivés](https://dunglas.dev/2008/07/php-mail-debian-ubuntu/) - Peut-être avez-vous remarqué que l'envoi de mail en PHP ne fonctionne pas après une installation standard de Debian ou de Ubuntu. Pourtant, Debian fournie le serveur de mail exim qui fait partie de la base du système. Le problème est que la configuration initiale d'exim l'empêche d'envoyer des mails vers l'extérieur. Le remère est des - [Introduction au référencement](https://dunglas.dev/2008/03/introduction-referencement/) - Cet article de vulgarisation concernant le référencement est destiné à être exposé à un public de techniciens en formations. Il se concentre sur les concepts basiques de la discipline et met volontairement de côté ses aspects purement techniques. Introduction En quelques dizaines d'années, le web est passé du stade de réseau marginal utilisé par quelques - [De jolies URLs pour optimiser votre référencement](https://dunglas.dev/2008/03/url-pathinfo-referencement/) - Je vais vous présenter ici une technique de ré-écriture d'URL en PHP. Nous l'appellerons URL Rewriting via PATH_INFO. Celle-ci est un peu particulière, elle est indépendante d'Apache. Elle fonctionnera même si votre hébergeur désactive le ModRewrite ou si vous utilisez un serveur web alternatif. Prenons une page imaginaire nommée http://monsite.com/recette.php?cat=tomate&id=2 et intitulée Mon plat secret - [Sécurisez votre blog Wordpress !](https://dunglas.dev/2008/03/securite-wordpress-blog/) - L'installation par défaut de Wordpress pose quelques gênants problèmes de sécurité. Nous allons nous employer à les corriger. Cachez le contenu des répertoires internes Par défaut, Wordpress ne bloque pas l'accès à tous les répertoires nécessaires à son fonctionnement que le public ne devrait pas pouvoir consulter. C'est le cas du très sensible répertoire wp-content/plugins. - [Que devient Easy Ubuntu ?](https://dunglas.dev/2008/03/easy-ubuntu/) - Vous vous en souvenez certainement, il y a quelques années maintenant j'avais publié un petit logiciel qui eu un grand succès : Easy Ubuntu. Easy Ubuntu servait à configurer automatiquement Ubuntu et à y installer les logiciels nécessaires à son utilisation courante (Flash, Java, codecs audio et vidéo, ...). Il a participé à la démocratisation - [Google héberge gratuitement vos applications web !](https://dunglas.dev/2008/04/google-app-engine/) - Google a annoncé ce matin la disponibilité de App Engine. App Engine c'est à la fois un framework web Python et une solution d'hébergement "scalable" sur l'infrastructure de Google. L'offre de base est gratuite, propose 500 Mo d'espace disque et assez de bande passante comme de temps CPU pour un site à 5 millions de - [L'aventure...](https://dunglas.dev/2008/03/aventure/) - C'est l'aventure ! Après Bienvenue chez moi (dont les archives seront bientôt en ligne) et Code'n'Roll, place au Lapin Blanc ! Les noms changent, les thèmes restent. Vous retrouverez des billets traitant d'informatique (et plus spécialement de logiciels libres, d'Ubuntu et du web), de rock'n'roll et de mes humeurs... Côté technologie, j'abandonne Life !, le - [FeedBurner avec votre nom de domaine !](https://dunglas.dev/2008/03/feedburner-votre-nom-domaine/) - Peut-être utilisez vous FeedBurner pour gérer les flux RSS de votre blog. Savez-vous qu'il est possible d'utiliser votre propre nom de domaine avec les fils générés par ce service ? L'objectif est de faire s'abonner vos lecteurs à vos flux RSS via une adresse du type http://rss.monsite.com plutôt que http://feeds.feedburner.com/. Pourquoi ça ? Pour conserver - [Stofanel : un pas vers les sites Flash bien référencés](https://dunglas.dev/2008/06/stofanel-referencement-flash/) - Il y a peu, je vous dévoilé une technique pour créer des sites en Flash / Flex accessible et bien référencés. On m'a demandé un example, en voici un ! LESS RAIN a utilisé une technique similaire pour réaliser le site de Stofanel Investment AG. Le site utilise SWFAddress pour créer des pages pourvues d'URLs - [Back online !](https://dunglas.dev/2008/05/back-online/) - Après quelques semaines d'interruption suite à un crash disque, Lapin Blanc ! est à nouveau en-ligne. Amis lecteurs de Place Libre, vous tombez sur cette page car Place Libre (hébergé sur ce même serveur) n'est pas encore réparé. On y travaile ! - [[Summer Of Code] Première beta publique de Crypt Manager](https://dunglas.dev/2007/07/summer-of-code-premiere-beta-publique-de-crypt-manager/) - Crypt Manager, c'est mon projet Google Summer Of Code Ubuntu, et c'est surtout un gestionnaire de dossier chiffrés pour Linux. Il est utilisable aussi bien depuis une interface graphique qu'en ligne de commande et s'intègre au gestionnaire de fichier de Gnome. Récupérer la première beta publique de Crypt Manager ! Installation : tar xvjpf crypt-manager-0.2.tar.bz2 cd crypt-manager-0.2 sudo apt-get install encfs python-nautilus python2.4-dev sudo ./install.sh sudo modprobe fuse Il faut également vous ajouter dans le groupe Fuse (Système -> Administration -> Utilisateurs et groupes) ou : sudo groupadd login fuse Utilisation: gcrypt-manager Ou directement en faisant un click droit sur un dossier dans le gestionnaire de fichiers. Pour les afficionados de la ligne de commande: crypt-manager --help Pour ceux qui veulent être à la page (version SVN, contenant toutes les dernières avancées, mais très réguliérement cassée): svn checkout http://crypt-manager.googlecode.com/svn/trunk/ crypt-manager cd crypt-manager sudo ./install.sh (N'oubliez pas d'exécuter install.sh après chaque checkout :)) Pour voir apparaître les entrées du menu dans Nautilus, il vous faudra certainement clore votre session puis vous reconnecter. Et c'est parti :) Comme vous vous en doutez, cette première beta doit être bourrée de bugs. Ne la testez pas sur des données importantes et faites des sauvegardes... J'attend vos impressions, suggestions et bien-sûr, vos rapports de bugs :D Pour se faire, vous pouvez commenter directement ici ou utiliser l'Issue Tracker du projet. Page officielle du projet - [Mise-à-jour de Dapper vers Edgy en console](https://dunglas.dev/2006/11/mise-a-jour-de-dapper-a-edgy/) - J'ai quelques wagons (trains ?) de retard ! On dira que c'est l'effet Mac ... On va donc mettre à jour notre vieille Dapper vers la toute nouvelle Edgy, l'objectif est de le faire le plus proprement possible. Out les dépôts exotiques et les hacks vilains. Ici tout sera fait en console (pratique si on administre - [Eclipse pour le développement web, PHP et Python sous Dapper](https://dunglas.dev/2006/09/eclipse-pour-le-developpement-web-php-et-python-sous-dapper/) - Eclipse est un très bon IDE "récemment" (2001) libéré par IBM et écrit en Java. Il est dabord conçu pour ce langage mais ses nombreux plugins permettent de l'étendre à beaucoup d'autres. Bien intégré à Gnome il vous sera d'une aide précieuse dans vos développements. Toutes les fonctions qu'on peut attendre de ce genre de logiciel sont présentes ou existent sous forme de plugins (coloration syntaxique, complétition, debugger, gestion de projets, intégration aux gestionnaires de versions, ...). Fin des éloges, passons à ce que nous attendons tous, l'installation et la configuration d'Eclipse et de quelques uns de ses plugins sous Ubuntu Dapper. Je ne ferais pas le détail des fonctionnalités implémentées par les plugins. - [Premier jour à l'IUT de Lens](https://dunglas.dev/2006/09/premier-jour-a-l-iut-de-lens/) - Et oui, c'est ma nouvelle école ! En plein coeur de cette magnifique cité minière, suivant les traces des illustres membres de Linux 62 je rejoins la section informatique (bien entendu) de l'IUT de Lens ! - [Des jolies URL en PHP sans mod_rewrite](https://dunglas.dev/2006/07/jolies-url-php-pathinfo/) - Certains moteurs de recherche n'indexent pas ou mal les URL de type ma-page.php?variable=valeur&variable2=variable2. En plus d'être mal référencées, ces adresses sont difficiles à retenir et ne sont pas très claires. Autre point négatif, le langage de programmation utilisé (ici PHP) est visible du premier coup d'oeil dans l'extension. La sécurité par l'obscurité c'est mal (c) mais moins un pirate sera renseigné sur le fonctionnement interne de votre application plus il lui sera difficile de la malmener. Une solution habituelle pour parer à tout ces problèmes est l'utilisation du mod_rewrite d'Apache. Malheureusement l'utilisation de ce module peut être coûteux en performances, et il n'est pas toujours disponible. Nous allons s'essayer ici à une méthode alternative de fabrication d'URL en utilisant la variable d'environnement $_SERVER['PATH_INFO']. - [PLF Ubuntu et Easy Ubuntu](https://dunglas.dev/2006/07/plf-ubuntu-easyubuntu/) - Comme l'a annoncé Philippe sur son blog, le PLF Ubuntu est maintenant maintenu par mr_pouit. Pour rappel le dépôt PLF fourni des logiciels aux licences litigieuses et/ou interdits dans certains pays (exemple: libdvdcss pour lire les DVDs commerciaux). Il y a pas mal de boulot, certains paquets ne sont plus à jour alors que d'autres - [Windows trips and tricks](https://dunglas.dev/2006/05/windows-trips-and-tricks/) - Cet article s'adresse aux grands débutants sous Windows, c'est une compilation de petites astuces et de logiciels sympas qui vous rendront l'utilisation de ce sytème plus simple et plus agréable. - [Mon comparatif Ubuntu / Windows.](https://dunglas.dev/2006/04/mon-comparatif-ubuntu-windows/) - Ces derniers temps j'ai eu l'occasion d'utiliser "intensivement" Windows XP. Je vous livre mes impression. Ce qui me manque cruellement lorsque j'utilise Ubuntu : Un clone de MSN messenger avec une interface conviviale (pas aMSN) et supportant toutes ses fonctions (webcam, smileys animés, "émotisons", ...). Guitar Pro (vraiment génial pour apprendre rapidement un morceau de guitare). - [Recherche job d'été](https://dunglas.dev/2006/04/recherche-job-d-ete/) - Recherche job d'été (dans l'informatique ou autre) dans le Nord / Pas-de-Calais. Contact : dunglas chez gmail point com - [Dapper retardé de 6 mois](https://dunglas.dev/2006/04/dapper-retarde-de-6-mois/) - C'est Biologeek qui nous l'apprend. Et ils ont bien raison ! Ça sera prêt quand ça sera prêt ! - [Mettre à jour une Breezy vers une Dapper avec Xgl](https://dunglas.dev/2006/02/breezy-dapper-xgl/) - Attention ! Cet article décrit l'installation de logiciels hautement expérimentaux. L'installation de ces logiciels pourrait rendre votre système très instable voir inutilisable. Tout le Ramdam fait autour de Xgl, l'extension de Xorg qui permet d'ajouter des effets 3D, des ombres et de la transparence à l'interface graphique en utilisant la carte 3D et la preview de - [Vivez heureux, vivez crypté](https://dunglas.dev/2006/02/vivez-heureux-vivez-crypte/) - A consulter d'urgence pour tous les paranos, ce très bon How-To pour rendre les données stockées sur votre ordinateur confidentielles : cryptage des partitions root, home et swap sous Ubuntu. - [Masquer les IPs dans DokuWiki](https://dunglas.dev/2006/02/masquer-les-ips-avec-dokuwiki/) - DokuWiki est un excellent logiciel d'édition collaborative mais il a la facheuse tendance de laisser trainer les adresses IPs de ses utilisateurs. Voici comment y remédier. Ouvrez inc/template.php, à la ligne 628 dans la fonction tpl_pageinfo() commentez if($INFO['editor']){ print ' '.$lang['by'].' '; print $INFO['editor']; } if($INFO['locked']){ print ' · '; print $lang['lockedby']; print ': '; - [Preview de EasyUbuntu 3, nouveau site web et Clubic](https://dunglas.dev/2006/02/preview-easyubuntu-3-nouveau-site-web-et-clubic/) - Tout d'abord grande nouvelle : EasyUbuntu 3 en Python ça marche ! Un petit screenshot pour l'ocassion, l'interface à été totalement refaite. Vous pouvez télécharger les versions de développement sur le tout nouveau site Internet de EasyUbuntu ! Il y'a encore quelques (gros) bugs, certaines fonctions ne sont pas encore implémentées, la traduction française n'est pas terminée, mais - [Petit hack PHP : cumul des noms de domaine pour un meilleur référencement](https://dunglas.dev/2006/01/petit-hack-php-pour-meilleur-referencement/) - Je suis en pleine tentative de mieux faire indexer Place Libre par Google d'où les billets traitant du référencement. Et je galère bien ! Pourtant y'a pas mal de contenu et de liens pointant sur ce domaine. Y'a quelques petits problèmes de classement : apparaît dans les pages francophones mais pas dans les pages France, n'est pas - [Solutions Linux](https://dunglas.dev/2006/01/solutions-linux/) - J'accompagnerais Mirno au salon Solutions Linux le mercredi 1er Février après-midi. Vous nous trouverez très certainement aux stands Ubuntu-fr et PLF (qui sont l'un à côté de l'autre). - [PunOOgle et Google Sitemap Generator pour PunOOgle !](https://dunglas.dev/2006/01/punoogle-et-sitemap-pour-punoogle/) - Sim07 a fais du joli boulot pour punBB, sa s'appelle PunOOgle. A l'instar de punRewrite (que je ne maintiendrais désormais plus) ça sert a mieux faire indéxer les forums punBB par les moteurs de recherches (en particulier Google). Pour ce faire des URLs "enrichies" sont utilisées. Titre des sujets et catégories dans l'adresse, plus de ?id=, pas de démultiplication imaginaire des pages, ... Tout ce que Google apprécie. J'ai également modifier Google Sitemap Generator pour utiliser PunOOgle. Google Sitemap est un service permettant d'améliorer la visibilité de votre site dans le dit moteur en lui soumettant automatiquement toutes vos nouvelles pages via un fichier XML. Voir à quoi ça ressemble. - [Un artiste est né](https://dunglas.dev/2006/01/un-artiste-est-ne/) - Et il chante pour Ubuntu ! re ! et les man il faut faire la part des choses de la vie maûn du monde animal c'est l'hymne de notre distro, de notre linux, de notre ubuntu, de la vie maûn, du monde geekal, crie le bien fort use les basses de ton - [Ma Kubuntu](https://dunglas.dev/2006/01/ma-kubuntu/) - Ça fait un petit moment que j'utilise Kubuntu (en parallèle avec Ubuntu), malheureusement je n'aime pas trop les choix de logiciels par défaut. Voici ce que j'utilise, peut-être que ça vous interessera. KDE 3.5: Bien plus rapide et moins buggué que la version précédente. Ajoutez cette ligne deb http://kubuntu.org/packages/kde-latest breezy main à votre sources.list pour - [Joyeux Noël et Bonne année](https://dunglas.dev/2005/12/joyeux-noel/) - Joyeux Noël à tous. [Update]: et bonne année! - [Encore des nouvelles de Easy Ubuntu](https://dunglas.dev/2005/12/encore-des-nouvelles-de-easy-ubuntu/) - Chose promise, chose due: voici les premières lignes de code de la version 3.0 disponible sur le tout nouveau dépôt SubVersion du projet! Un grand merci à Freecontrib pour héberger Easy Ubuntu. Pour récupérer les sources rien de plus simple: svn checkout svn://freecontrib.org/easyubuntu Attention: rien n'est utilisable pour l'instant, ce code peut juste intéresser les - [Créer une webradio avec Icecast et MediaBox404 sous Ubuntu](https://dunglas.dev/2005/12/radio-ubuntu-icecast-mediabox404/) - Ca faisait longtemps! Un how-to pour Ubuntu! Avec l'association Place Libre nous avons l'intention de diffuser une radio sur le web. J'ai donc longuement investigué pour vous mitoner cet article (mais non c'est pas vrai)! Voici comment émettre une webradio depuis un serveur sous Ubuntu grâce à Icecast et MediaBox404. - [Futur de Easy Ubuntu](https://dunglas.dev/2005/12/futur-easy-ubuntu/) - Tout d'abord beaucoup de nouveau. Easy Ubuntu fusionne avec Easy Breezy et devient un projet launchpad.net / Freecontrib. C'est donc une toute nouvelle équipe qui se constitue pour coder Easy Ubuntu v3, qui sera une réécriture complète en Python/Glade. Tous les codeurs motivés sont les bienvenus sur #easyubuntu @ irc.freenode.org Le programme pour Easy Ubuntu - [Automatix viole la GPL](https://dunglas.dev/2005/12/automatix-viole-la-gpl/) - Mise à jour: Problème réglé Automatix est redevenu GPL sous la pression. Attention, Automatix le dérivé d'Easy Ubuntu pour les power users dans sa dernière version viole la licence GPL! En effet arnieboy l'auteur de se fork a décidé de changer la licence de la dernière version pour quelque chose de propriétaire (pas le droit de faire des modifications ni de distribuer le script sans sa permission) pourtant la dernière version contient encore des bouts de code provenants de Easy Ubuntu qui lui est GPL. Automatix est donc dans l'illégalité. - [Le serveur principal du PLF Ubuntu réparé](https://dunglas.dev/2005/11/le-serveur-principal-du-plf-repare/) - Grâce à l'admirable travail de Philippe Mironov, le serveur principal du PLF Ubuntu is back. Une jolie URL est maintenant disponible: http://packages.freecontrib.org/ Pour obtenir les paquets multimédia litigieux mais nécessaires et vous simplifier l'installation et la mise à jour de pas mal de logiciels propriétaires vous pouvez ajouter ces lignes dans votre fichier /etc/apt/sources.list: deb - [PunRewrite 1.0, a better positioning in search engines](https://dunglas.dev/2005/11/punrewrite-10/) - English version - [PunRewrite 1.0, un meilleur référencement pour punBB](https://dunglas.dev/2005/11/punrewrite-10-un-meilleur-referencement-pour-punbb/) - Je vous propose un "petit" mod pour punBB qui a pour but d'améliorer le référencement par les moteurs de recherche de votre forum. Attention! Pour pouvoir utiliser ce mod il vous faut utiliser Apache avec mod_rewrite activé (ce qui n'est pas le cas chez quasiment tout les hébergeurs gratuits). Plus de détails: Transforme les URL - [PLF tout cassé, Easy Ubuntu aussi: petit hack temporaire](https://dunglas.dev/2005/11/plf-tout-casse-easy-ubuntu-aussi-petit-hack-temporaire/) - Mise à jour: Le serveur du PLF est réparé, plus la peine de faire cette modification tout est revenu à la normale. Comme vous l'avez peut-être remarqué le serveur principal du PLF Ubuntu est dans les choux. Philippe Mironov nous explique pourquoi sur son blog. Normalement tout sera revenu dans l'état normal d'ici quelques jours. - [Plus simple tu meurs: le guide vidéo d'utilisation de Easy Ubuntu](https://dunglas.dev/2005/11/guide-utilisation-video-easy-ubuntu/) - Ubuntu vous connaissez? La distribution Linux (le système des gens libres) conçue pour être accessible aux non-initiés a l'informatique. Il faut avouer que c'est très réussi, la communauté Ubuntu nous livre un système simple, intuitif, stable, sécurisé et joli. Que demander de plus? Et bien malheureusement il y a quelques points noirs. Pour des raisons - [Easy Ubuntu 2.4 beta4](https://dunglas.dev/2005/11/easy-ubuntu-24-beta4/) - Encore une nouvelle bêta pour Easy Ubuntu 2.4 mais celle ci mérite un billet! Au programme: Les traditionnels corrections de bugs (ici localisation du sources.list qui ne fonctionnait pas et quelques autres erreurs sans grande importance) Remplacement du plugin Totem pour Firefox par mplayerplug-in qui marche beaucoup beaucoup mieux! (Attention c'est dans la section Multimédia) - [Easy Ubuntu 2.4 beta](https://dunglas.dev/2005/10/easy-ubuntu-24-beta-2/) - (English Version) - [Easy Ubuntu 2.4 beta](https://dunglas.dev/2005/10/easy-ubuntu-24-beta/) - Une version de test non finalisé de Easy Ubuntu. J'aimerais surtout des retours sur: Est-ce que toutes les fonctionnalités marchent? Est-ce que mon anglais est correct et clair? (Pour ça consultez les fichiers eu, reu et EasyUbuntu) Est-ce que le dés-installateur fonctionne? Bon coté nouveauté: Utilisation du PLF (w32codecs, libdvdcss, realplay, Skype, Java) Activation du - [Hébergement gratuit 1&1, vigilence!](https://dunglas.dev/2005/10/hebergement-gratuit-1-and-1-arnaque/) - Editt: Un message rassurant posté sur le forum de PHPFrance mais il n'y a toujours pas eu confirmation officielle de cette erreur.: J'ai téléphoné à la hotline cet aprem et la gentille téléopératrice m'a dit : * qu'il s'agissait d'un bug du service clientelle. * que ce n'était pas une "arnaque". * qu'aucun CD ne pouvait - [Problèmes avec Easy Ubuntu](https://dunglas.dev/2005/10/problemes-avec-easy-ubuntu/) - Voici ma modeste contribution. On essaie de se rendre utile comme on peut ! :-). Keyes, si tu préfères que je t'envoie les corrections par MP contacte moi. Si mes corrections t'aggacent, dis-le et j'arrête tout de suite. Easy Ubuntu semble poser plus de problèmes qu'il n'en résout, pas encore vraiment adapté à Breezy je vous - [Installer Flock sous Ubuntu](https://dunglas.dev/2005/10/installer-flock-sous-ubuntu/) - Voici un petit guide pour installer Flock, le browser social dont tout le monde parle, disponible pour tester depuis peu. - [Lancement du dépôt PLF!](https://dunglas.dev/2005/10/lancement-du-depot-plf/) - Ça y est, c'est fait, le dépôt PLF pour Ubuntu est enfin accessible! Le but de ce dépôt est d'héberger les paquets litigieux mais très utiles qui ne peuvent rentrer dans les dépôts officiels car pas vraiment légaux ou souffrant de problèmes de copyright ou de brevets! Peu de paquets disponibles pour l'instant mais c'est - [Easy Ubuntu 2.3.1: correction de bugs](https://dunglas.dev/2005/10/easy-ubuntu-231-correction-de-bugs/) - Dans cette nouvelle version de Easy Ubuntu, aucune nouveauté (voir plus bas) mais quelques corrections de bugs très gênants: Easy Ubuntu 2.4beta est sorti Télécharger quand même Easy Ubuntu 2.3.1 Utilise un autre miroir pour les codecs binaires car le site de Mplayer est down N'installe plus Java car il bloquait l'installation des plugins Firefox - [PLF Ubuntu meeting: summary](https://dunglas.dev/2005/10/plf-ubuntu-meeting-summary/) - English version of the summary. - [Passage a Free](https://dunglas.dev/2005/10/passage-a-free/) - Je viens de changer de FAI, avant chez Numericable (y'a encore deux ans pas d'ADSL par chez moi), me voici chez Free. La transition c'est très bien passé (débranché le modem NC, brancher la Freebox et hop ça marche). Mon réseau fonctionne que les ordis soient sous Linux ou Windows. Pourquoi changer? Principalement pour le - [Compte rendu de la réunion PLF](https://dunglas.dev/2005/10/compte-rendu-plf-ubuntu/) - Hier c'est tenu la réunion a propose de la création d'un dépôt PLF pour Ubuntu. Pour rappel ce dépôt a pour but d'héberger les paquets litigieux a cause des brevets logiciels et/ou copyright qui ne peuvent être inclus dans les dépôts officiels Ubuntu (ex: w32codecs, RealPlayer, JRE Sun, Freenet, ...) Voici ce qui est ressorti - [Logo et autres nouvelles de Easy Ubuntu](https://dunglas.dev/2005/10/logo-easy-ubuntu/) - edm00se a créé un logo pour Easy Ubuntu que j'ai modifié pour utiliser la police Ubuntu: Autres nouvelles: indypende a traduit Easy Ubuntu en Italien, la prochaine version (2.4) supportera donc cette langue. Merci beaucoup! mangar sort HebUbuntu, un dérivé de Easy Ubuntu qui devrait plaire a David! C'est une version spécial hébreux (langage, applets, - [Fréquentation du blog](https://dunglas.dev/2005/10/frequentation-blog/) - Je suis tombé sur ce post sur JHLP et ça ma donné envie de regarder moi aussi mes stats (j'avais installé XITI a l'ouverture du blog). Pour son premier moi complet d'existence Bienvenue chez moi ! a accueilli 10 228 naufragés du web pour un total de 23 909 pages consultées! Nos naufragés viennent principalement - [Création d'un dépôt PLF pour Ubuntu! Réunion préparatrice dimanche 9 octobre a 21h.](https://dunglas.dev/2005/10/depot-plf-ubuntu/) - Comme vous le savez sûrement Ubuntu ne peut inclure les paquets sensibles comme les codecs binaires win32, RealPlayer, la JRE de Sun, ... pour cause de copyright, brevets logiciels et autres joyeusetés. Le dépôt Extras comblait ce manque mais ce n'est plus le cas! Ces paquets ont étés supprimés suite à des menaces reçues par - [Easy Ubuntu 2.3](https://dunglas.dev/2005/09/easy-ubuntu-23-2/) - Easy Ubuntu installation guide in english. - [Easy Ubuntu 2.3](https://dunglas.dev/2005/09/easy-ubuntu-23/) - MaJ: Easy Ubuntu 2.3.1 est maintenant disponible et corrige de nombreux bugs! Télécharger quand même Easy Ubuntu 2.3 - [Installation d'Opera sous Ubuntu](https://dunglas.dev/2005/09/opera-ubuntu/) - Depuis cette semaine le navigateur Opera est disponible gratuitement et sans publicités! Voici une bonne occasion pour le tester. Opera est un navigateur web d'excellente qualité mais propriétaire (on ne peut ni le modifier, ni consulter les sources, ni le redistribuer) contrairement à Firefox. - [Road Map Easy Ubuntu 2.3](https://dunglas.dev/2005/09/road-map-easy-ubuntu-23/) - Pour Easy Ubuntu 2.3 j'ai décidé d'abandonner le support de Hoary pour me consacrer uniquement à Breezy (faute de temps et aussi car je n'ai plus Hoary). De gros changements en perspectives qui casseront la compatibilité avec Hoary: Utilisation de totem_gstreamer pour les vidéos (c'était totem_xine avant) grâce au support de nouveaux codecs dans Breezy. - [Ubuntu Breezy: premières impressions, pas de révolution mais une finition léchée](https://dunglas.dev/2005/09/premieres-impressions-ubuntu-breezy/) - La sortie de Ubuntu Breezy approchant je l'ai installé pour voir ce qui en était, voici mes premières impressions après quelques jours sous ce système. - [Easy Ubuntu 2.2 et autres nouvelles](https://dunglas.dev/2005/09/easy-ubuntu-22beta-nouvelles-easy-ubuntu/) - Easy Ubuntu 2.2 sort enfin de mon antre! Voici le menu! MaJ: Easy Ubuntu 2.3 est sorti! Télécharger quand même Easy Ubuntu 2.2 Nota Bene: Cette version de Easy Ubuntu n'installe plus les codecs vidéos issus de Windows ni RealPlayer car ces paquets ont étés retirés des dépôts Extras pour des raisons légales. La version - [Faire appel à l'Anarchie pour développer des systèmes informatiques](https://dunglas.dev/2005/09/faire-appel-a-l-anarchie-pour-develloper-des-systemes-informatiques/) - Je suis tombé complètement par hasard sur un article sur le blog SYS qui explique les avantages du modèle anarchiste pour le développement de logiciels. C'est vraiment très intéressant et je vous conseille cette lecture. Vous devrez connaître un minimum la pensée anarchiste pour comprendre cet article, n'hésitez pas à jeter un oeil à la - [Road Map pour Easy Ubuntu 2.2](https://dunglas.dev/2005/09/road-map-easy-ubuntu/) - Easy Ubuntu 2.1 est sorti, voyons ce qui nous attend pour la 2.2: Support de Breezy. C'est la "feature" la plus demandée, Easy Ubuntu détectera si c'est hoary ou breezy qui est utilisée et s'adaptera en conséquence. Ajout des traductions en espagnol (merci Angel), en allemand (merci Mario et Caboto) et en danois (merci Soren). - [Easy Ubuntu now in English !](https://dunglas.dev/2005/09/easy-ubuntu-now-in-english/) - Easy Ubuntu installation guide in english. - [Easy Ubuntu 2.1 est là !](https://dunglas.dev/2005/09/easy-ubuntu-21-est-la/) - Enfin ! Voici Easy Ubuntu 2.1. Pour Changelog, voir cet article, seule l'installation des drivers ATI n'est pas présente (trop instable). Pour NVIDIA c'est fait. Maj: Cette version est désuette, voir plutôt Easy Ubuntu 2.3 Trêve de parlotte: récupérer quand même Easy Ubuntu 2.1 L'installation et l'utilisation ce fait comme pour la version 2.0 sauf que quelques nouvelles options ont fait leur apparition dans la liste. Un bug ou un commentaire ? Faites en part ici. Si vous souhaitez voir une nouvelle fonctionnalité dans Easy Ubuntu, pareil. - [Des nouvelles d'Easy Ubuntu](https://dunglas.dev/2005/09/nouvelles-easy-ubuntu/) - Non Easy Ubuntu n'est pas mort-né est une nouvelle version est en cour d'élaboration (Easy Ubuntu 2.1). Ça fait un moment mais la, la majorité des nouvelles fonctions sont codées. Ce qui a était fait: Internationalisation utilisant gettext (Traductions en anglais et en français disponibles, en allemand courant de semaine) Pour le multimédia: ajout de - [Easy Kubuntu 0.2](https://dunglas.dev/2005/08/easy-kubuntu-2/) - Olwin publie Easy Kubuntu 0.2, un dérivé de Easy Ubuntu pour les aficionados de KDE ! Cette version améliore l'installateur et ajoute gtk-qt qui permet d'exécuter les applications gnome/gtk (Gaim, Firefox, aMule, ...) avec le look & feel de KDE. Téléchargement et guide d'utilisation de Easy Kubuntu 0.2 - [Relookage](https://dunglas.dev/2005/08/relookage/) - Comme vous l'avez sûrement remarqués, Bienvenue chez moi ! abandonne le thème par défaut de l'excellent Dotclear pour un fait maison. De plus les Gravatars sont maintenant affichés lorsque vous postez des commentaires. - [Easy Kubuntu 0.1 par Olwin, Kubuntu fonctionelle en 2 clicks](https://dunglas.dev/2005/08/easy-kubuntu/) - Olwin sort une version Bêta de Easy Kubuntu, c'est un portage de Easy Ubuntu pour Kubuntu: la version KDE de notre système préféré ! Télécharger Easy Kubuntu 0.1 La principale différence avec Easy Ubuntu c'est que l'interface graphique s'intègre avec KDE ! Olwin attend des retours a propos de cette bêta, n'hésitez pas à lui faire part - [Nouveau design pour mon blog](https://dunglas.dev/2005/08/nouveau-design-pour-mon-blog/) - Marre du thème par défaut (dont je n'aime pas les couleurs) je me suis essayer au design web avec The Gimp. Ce n'est qu'une ébauche de mon premier essai soyez indulgent mais dites moi quand même si vous aimez ou pas ! C'est sombre et sobre (un peu a mon image :-P). Voir l'ébauche de Design - [Easy Ubuntu 2.0: mp3, vidéos, plugins Firefox, P2P, ... avec interface graphique !](https://dunglas.dev/2005/08/easy-ubuntu-mp3-videos-plugins-firefox-p2p-interface-graphique/) - Rien que deux jours après la sortie de la version 1.0, EasyUbuntu revient avec une interface graphique ! Cette version à les mêmes fonctionnalités que la précédente à savoir, au choix: installer les codecs nécéssaires pour lire la plupart des musiques et vidéos, d'installer les plugins indispensables à Firefox, le support des archives RAR et ACE, l'installation de aMule (un clone d'eMule), Azureus (BitTorrent) et de Skype (téléphonie via Internet) mais est dotée d'une interface graphique la rendant encore plus simple d'accès ! MaJ: Easy Ubuntu 2.3 est disponible, utilisez cette nouvelle version !! Ne téléchargez Easy Ubuntu 2.0 que si vous avez une raison valable ! (sans quoi utilisez la 2.1) - [Users Map 1.0.2](https://dunglas.dev/2005/08/users-map-102/) - Corrige les problèmes avec les caractères sépciaux dans les pseudos. Télécharger Users Map 1.0.2 Plus d'infos sur User Maps - [Astuce Apache: Résoudre les problèmes d'encodage](https://dunglas.dev/2005/08/apache-resoudre-problemes-encodage/) - Vous avez peut-être remarqué que les accents s'affichent mal sur certaines pages de votre serveur web sous Ubuntu lorsque vous utilisez des projets comme punBB, phpBB ou XOOPS. Par exemple é s'affiche ai lieu de é. En effet Ubuntu utilise par défaut l'encodage UTF-8 qui à l'avantage de supporter un très grand nombre de langues (asiatiques entre autres) mais n'est pas encore très diffusé ce qui occasionne quelques problèmes. - [Users Map 1.0.1](https://dunglas.dev/2005/08/users-map-101/) - Juste une correction de bugs Javascript sous Internet Explorer. Télécharger Users Map 1.0.1 Plus d'infos sur User Maps - [EasyUbuntu: Ubuntu fonctionnelle (mp3, vidéos, plugins Firefox, P2P, ...) en deux clicks !](https://dunglas.dev/2005/08/easyubuntu-ubuntu-facile-mp3-video/) - A force d'installer et de réinstaller Ubuntu, il devient lassant de toujours devoir effecteur les mêmes actions: installer des dépôts supplémentaires, les codes nécessaires pour une utilisation multimédia, les plugins Firefox indispensables ... C'est pourquoi j'ai écrit un modeste script nommé EasyUbuntu qui permet de rendre Ubuntu utilisable en un instant. Il pourra aussi être apprécié des utilisateurs débutants qui ne veulent pas galérer pour pouvoir lire une vidéo ou écouter un mp3. MaJ: Easy Ubuntu 2.0 (avec interface graphique) est maintenant disponible. Olwin nous propose Easy Kubuntu 0.1 (béta), un dérivé de Easy Ubuntu pour les utilisateurs de KDE. - [Mac OS X sur PC, c'est possible !](https://dunglas.dev/2005/08/mac-os-x-sur-pc-c-est-possible/) - Hier j'avais écrit une news sur Infos-du-Net indiquant que Mac OS X bêta pour x86 aurait était cracké et pouvait tourné sur des machines non Apple. La nouvelle se confirme et on apprend qu'une image de Mac OS X bêta pour X86 est diffusé actuellement sur BitTorrent ! Certains l'émulent avec wmWare, d'autres font carrément multiboot - [Users Map 1.0 dispo](https://dunglas.dev/2005/08/punbb-users-map-dispo-google-maps/) - J'ai créé un mod pour le forum punBB suite à une demande de Ubuntu-fr. Ce mod utilise Google Maps pour afficher une carte des utilisateur d'un forum. Une démo vaut mieux qu'un grand discours: Exemple avec la carte de tout les utilisateurs Exemple d'une carte individuelle dans un profil Fichier XML pour utilisation avec AJAX ou autre A voir aussi le sélecteur dans le profil (inscrivez-vous puis section "Personnel"). Une interface d'administration est aussi présente. MaJ Télécharger Users Map 1.0.2 (voir 1.0.1 et 1.0.2) - [Bienvenue chez moi rejoint le Planet Ubuntu-fr !](https://dunglas.dev/2005/08/planet-ubuntu-fr/) - C'est aujourd'hui que mon blog entre dans le Planet Ubuntu-fr (PUF) ! Un Planet est une page web qui regroupe les blogs traitant d'un sujet particulier. Dans le cas présent ils s'agit des blogs d'utilisateurs francophone du système d'exploitation Ubuntu ! Un système simple, libre et gratuit (voir mes précédents billets) que je vous encourage à adopter ! - [De l'intérêt des fils RSS !](https://dunglas.dev/2005/08/fils-rss-liferea-firefox/) - Peut-être avez vous déjà aperçu cette icone sur votre site préféré: ? Vous avez très certainement déjà entendu parler de RSS sans avoir aucune idée de ce que c'est ! Et bien RSS vous permet d'accéder à toute l'actualité et de suivre vos l'évolution de vos sites webs préférés en un instant. Sites d'actualités, blogs, forums, tous proposent des fils RSS, fils qui vous simplifieront la vie et vous permettrons de gagner un temps précieux ! - [Accélérer PHP grâce à APC](https://dunglas.dev/2005/08/accelerer-php-grace-a-apc/) - Il existe des accélérateurs pour PHP. Chaque script PHP est compilé avant d'être éxécuter. Ces petits logiciels qu'on nomme accélérateurs gardent en cache la version compilé des scripts ce qui boost énormément les performances de PHP ! Nous avons choisi APC qui un module PHP libre, gratuit et maintenu. Allez hop, installons le ! - [Lire les partitions Guitar Pro sous Ubuntu avec DGuitar](https://dunglas.dev/2005/08/partition-tablature-guitare-ubuntu/) - On trouve énormément de partitions de guitare au format Guitar Pro (.gp3 et .gp4) sur Internet. Malheureusement ce logiciel ne fonctionne que sous Windows ! Mais quelqu'un a développé un logiciel qui permet visualiser les tablatures Guitar Pro sous Linux. Ce logiciel ce nomme DGuitar. Installons le sous Ubuntu ! - [Exécuter des applications critiques avec PHP sous Unix](https://dunglas.dev/2005/08/applications-critiques-php/) - suPHP permet d'exécuter des scripts PHP avec les droits de leur propriétaire ! Alors qu'avant si l'on voulais utiliser une commande critique dans un script PHP (avec un bit suid par exemple ou avec sudo) tous les utilisateurs du serveur web pouvait l'exécuter et donc compromettre le serveur, nous pouvons maintenant le faire sans risques ! Voyons ça en détails ! - [Avoir de jolies fenêtres ombragées sous Ubuntu](https://dunglas.dev/2005/08/jolies-fenetres-ombres-ubuntu/) - Il est possible d'avoir de jolies fenêtres ombragées et des transitions toutes aussi jolies entre les menus sous Ubuntu ! Ces fonctionnalitées devraient être présentes d'origine dans Ubuntu Breezy, la future version de ce système d'exploitation, mais elles sont déjà utilisables sous Hoary. Suivez le guide ! - [S'exprimer gratuitement sur le net, c'est encore possible !](https://dunglas.dev/2005/08/exprimer-gratuitement-net-possible/) - Alors que sur internet, terre de gratuité il n'y a pas si longtemps, il est devenu difficile de trouver des services de qualité, gratuits et sans publicités, nous allons voir que grâce à des organismes militants il reste tout à fait possible de s'exprimer gratuitement et sans voir nos publications rongées par la publicité. - [suPHP: php4 et php5 sur le même serveur et exécution des scripts PHP avec les droits de leur propriétaire](https://dunglas.dev/2005/08/suphp-php4-php5-meme-serveur-execution-scripts-php-droits-proprietaire/) - Sur un serveur accueillant de nombreux utilisateurs, tous n'étant pas de confiance, il est très pratique que les scripts PHP s'éxécutent avec les droits de leur propriétaire ! C'est possible grâce à suPHP ! De plus grâce à ce module nous pourrons exécuter et des scripts PHP4 et des scripts PHP5. C'est très pratique car la plupart des applications PHP disponibles utilisent encore PHP4 (phpBB, DotClear, Xoops, ...) mais PHP5 c'est l'avenir et peut-être que vos utilisateurs, ou vous même, souhaitent déjà développer des scripts PHP. Il est donc utile que les deux versions soient présentes sur votre serveur. - [Petit Javascript contre les grandes images qui dépassent et bousillent les mises en pages.](https://dunglas.dev/2005/08/javascript-grandes-images-depassent-bousillent-mises-pages/) - Nombre de mises en pages très élaborées se voient mise à sac par des utilisateurs affichant des images trop grandes. Que les webdesigner ait utilisé des div ou un tableau, tout est sans dessus dessous et très disgracieux à l'insertion d'une grande photo et autres captures d'écrans, l'image dépasse de son conteneur et des décalages apparaissent dans le design. Heureusement un petit Javascript trouvé dans un thème de Mike Lothar permet de résoudre se problème ! - [Création de la Mozilla Corporation, la vigilance est de mise !](https://dunglas.dev/2005/08/mozilla-corporation-vigilance/) - La Fondation Mozilla, détentrice des droits du célèbre navigateur Firefox vient d'annoncer la création de la Mozilla Corporation. Cette entreprise a pour but de promouvoir le navigateur libre et de le vendre auprès des entreprises. - [Invitation Gmail gratuite !](https://dunglas.dev/2005/08/invitation-gmail-gratuite/) - Votre boîte email est toujours pleine, vous en avez marre des spams, des interfaces lentes et inutilisables ? Passez à Gmail, le service mail de Google. Gmail c'est plus de 2 Go d'espace pour stocker vos emails, une interface intuitive et performante entièrement en français et un filtre anti-spam efficace. Seul problème: impossible de s'y inscrire seul, il faut absolument être invité par un utilisateur actuel de gmail. Heureusement InvitationGmail.info pense à vous ! Grâce à ce site obtenez gratuitement et instantanément une invitation gmail ! - [Windows Vista ou la fin du règne de Microsoft ?](https://dunglas.dev/2005/07/vista-fin-regne-microsoft/) - Certains l'attendait comme le messie mais le prochain Windows, anciennement Longhorn renommé Vista, reçoit un accueil très froid. En revanche un petit nouveau issu du monde Linux perce et fait trembler le géant américain: Ubuntu. contre - [Pourquoi ce blog ?](https://dunglas.dev/2005/07/pourquoi/) - Le blog est un outil formidable ! Grâce à lui nos textes peuvent être lus par des milliers de personnes fouinant par ici et par la et tombant par hasard (ou presque) sur les écrits d'inconnus. Mais pour être vraiment lu il faut avoir des choses intéressantes à dire et un minimum de talent pour les écrire. Je n'ai pas l'intention de faire de ce blog un espace ou l'on ne trouve des articles que sur un sujet précis. Des sites traitant de la politique, de l'informatique, de l'histoire ou de la musique il y'en a déjà des centaines, bien mieux faits et bien plus complets que ce que je ne pourrais jamais faire ! ## Categories - [Opinions](https://dunglas.dev/category/opinions/) - [PHP](https://dunglas.dev/category/php/) - [SEO](https://dunglas.dev/category/seo/) - [Security](https://dunglas.dev/category/security/) - [Wordpress](https://dunglas.dev/category/php/wordpress/) - [Ubuntu](https://dunglas.dev/category/devops/ubuntu/) - [JavaScript](https://dunglas.dev/category/javascript/) - [Python](https://dunglas.dev/category/python/) - [DevOps](https://dunglas.dev/category/devops/) - [Symfony](https://dunglas.dev/category/php/symfony-framework/) - [API Platform](https://dunglas.dev/category/php/api-platform/) - [Go](https://dunglas.dev/category/go/) - [Talks](https://dunglas.dev/category/talks/) - [Mercure](https://dunglas.dev/category/mercure/) - [Laravel](https://dunglas.dev/category/php/laravel/) - [FrankenPHP](https://dunglas.dev/category/php/frankenphp/) ## Tags - [Life](https://dunglas.dev/tag/life/) - [Perso (not ok)](https://dunglas.dev/tag/perso-old/) - [Buzz](https://dunglas.dev/tag/buzz/) - [Summer of Code](https://dunglas.dev/tag/summer-of-code/) - [Google](https://dunglas.dev/tag/google/) - [Open Source](https://dunglas.dev/tag/open-source/) - [Apache](https://dunglas.dev/tag/apache/) - [Fancy URL](https://dunglas.dev/tag/fancy-url/) - [Windows](https://dunglas.dev/tag/windows/) - [Vulgarisation](https://dunglas.dev/tag/vulgarisation/) - [Mac](https://dunglas.dev/tag/mac/) - [Java](https://dunglas.dev/tag/java/) - [Eclipse](https://dunglas.dev/tag/eclipse/) - [Scoopeo](https://dunglas.dev/tag/scoopeo/) - [Plugin](https://dunglas.dev/tag/plugin/) - [Digg-like](https://dunglas.dev/tag/digg-like/) - [W3C](https://dunglas.dev/tag/w3c/) - [XHTML](https://dunglas.dev/tag/xhtml/) - [SVG](https://dunglas.dev/tag/svg/) - [Web standards](https://dunglas.dev/tag/web-standards/) - [Musique](https://dunglas.dev/tag/musique/) - [Dub](https://dunglas.dev/tag/dub/) - [RSS](https://dunglas.dev/tag/rss/) - [SQLite](https://dunglas.dev/tag/sqlite/) - [Base de données](https://dunglas.dev/tag/base-de-donnees/) - [Easy Ubuntu](https://dunglas.dev/tag/easy-ubuntu/) - [Linux](https://dunglas.dev/tag/linux/) - [Conceal](https://dunglas.dev/tag/conceal/) - [Feedburner](https://dunglas.dev/tag/feedburner/) - [SEO](https://dunglas.dev/tag/seo/) - [DNS](https://dunglas.dev/tag/dns/) - [Web 2.0](https://dunglas.dev/tag/web-20/) - [Rock'n'Roll](https://dunglas.dev/tag/rocknroll/) - [CSS](https://dunglas.dev/tag/css/) - [Design](https://dunglas.dev/tag/design/) - [Framework](https://dunglas.dev/tag/framework/) - [Hébergement](https://dunglas.dev/tag/hebergement/) - [Dedibox](https://dunglas.dev/tag/dedibox/) - [Serveur](https://dunglas.dev/tag/serveur/) - [Mai 68](https://dunglas.dev/tag/mai-68/) - [Windows Live Messenger](https://dunglas.dev/tag/windows-live-messenger/) - [XSS](https://dunglas.dev/tag/xss/) - [Vie privée](https://dunglas.dev/tag/vie-privee/) - [Ankama](https://dunglas.dev/tag/ankama/) - [Firefox](https://dunglas.dev/tag/firefox/) - [Flash](https://dunglas.dev/tag/flash/) - [XML](https://dunglas.dev/tag/xml/) - [Brout'Chouille](https://dunglas.dev/tag/broutchouille/) - [Oi!](https://dunglas.dev/tag/oi/) - [Punk Rock](https://dunglas.dev/tag/punk-rock/) - [Lille 1](https://dunglas.dev/tag/lille-1/) - [Debian](https://dunglas.dev/tag/debian/) - [Security](https://dunglas.dev/tag/security/) - [Yahoo!](https://dunglas.dev/tag/yahoo/) - [Symfony](https://dunglas.dev/tag/symfony/) - [Pop](https://dunglas.dev/tag/pop/) - [Mail](https://dunglas.dev/tag/mail/) - [Garage](https://dunglas.dev/tag/garage/) - [La brute](https://dunglas.dev/tag/la-brute/) - [Jeu](https://dunglas.dev/tag/jeu/) - [Bonnes pratiques](https://dunglas.dev/tag/bonnes-pratiques/) - [Software](https://dunglas.dev/tag/software/) - [Apple](https://dunglas.dev/tag/apple/) - [Gandi](https://dunglas.dev/tag/gandi/) - [MySQL](https://dunglas.dev/tag/mysql/) - [Techcrunch](https://dunglas.dev/tag/techcrunch/) - [Hosting](https://dunglas.dev/tag/hosting/) - [UNIX](https://dunglas.dev/tag/unix/) - [Vacances](https://dunglas.dev/tag/vacances/) - [Lille](https://dunglas.dev/tag/lille/) - [Web sémantique](https://dunglas.dev/tag/web-semantique/) - [Syntax Highlighter](https://dunglas.dev/tag/syntax-highlighter/) - [AJAX](https://dunglas.dev/tag/ajax/) - [Javascript](https://dunglas.dev/tag/javascript/) - [MOTD](https://dunglas.dev/tag/motd/) - [Gmail](https://dunglas.dev/tag/gmail/) - [HTTPS](https://dunglas.dev/tag/https/) - [Image](https://dunglas.dev/tag/image/) - [Optimisation](https://dunglas.dev/tag/optimisation/) - [Intégration](https://dunglas.dev/tag/integration/) - [Pidgin](https://dunglas.dev/tag/pidgin/) - [Facebook](https://dunglas.dev/tag/facebook/) - [Chat](https://dunglas.dev/tag/chat/) - [Messagerie Instantanée](https://dunglas.dev/tag/messagerie-instantanee/) - [MessengerFX](https://dunglas.dev/tag/messengerfx/) - [Appnr](https://dunglas.dev/tag/appnr/) - [Apt](https://dunglas.dev/tag/apt/) - [Traduction](https://dunglas.dev/tag/traduction/) - [sfGuard](https://dunglas.dev/tag/sfguard/) - [Chaîne](https://dunglas.dev/tag/chaine/) - [Développement](https://dunglas.dev/tag/developpement/) - [Disque dur](https://dunglas.dev/tag/disque-dur/) - [ext2](https://dunglas.dev/tag/ext2/) - [ext3](https://dunglas.dev/tag/ext3/) - [ext4](https://dunglas.dev/tag/ext4/) - [Blog](https://dunglas.dev/tag/blog/) - [Django](https://dunglas.dev/tag/django/) - [Aptana](https://dunglas.dev/tag/aptana/) - [Web](https://dunglas.dev/tag/web/) - [Thubmnail](https://dunglas.dev/tag/thubmnail/) - [Tweet13](https://dunglas.dev/tag/tweet13/) - [Twitter](https://dunglas.dev/tag/twitter/) - [JQuery](https://dunglas.dev/tag/jquery/) - [Webdesign](https://dunglas.dev/tag/webdesign/) - [Graphic](https://dunglas.dev/tag/graphic/) - [Partnership](https://dunglas.dev/tag/partnership/) - [reCAPTCHA](https://dunglas.dev/tag/recaptcha/) - [spam](https://dunglas.dev/tag/spam/) - [Favicon](https://dunglas.dev/tag/favicon/) - [Audience](https://dunglas.dev/tag/audience/) - [Audimat](https://dunglas.dev/tag/audimat/) - [FriendFeed](https://dunglas.dev/tag/friendfeed/) - [LinkedIn](https://dunglas.dev/tag/linkedin/) - [IntenseDebate](https://dunglas.dev/tag/intensedebate/) - [twitterfeed](https://dunglas.dev/tag/twitterfeed/) - [MyBrand](https://dunglas.dev/tag/mybrand/) - [HTML Purifier](https://dunglas.dev/tag/html-purifier/) - [Article](https://dunglas.dev/tag/article/) - [Magazine](https://dunglas.dev/tag/magazine/) - [Linux Identity](https://dunglas.dev/tag/linux-identity/) - [Kub Or](https://dunglas.dev/tag/kub-or/) - [Concours](https://dunglas.dev/tag/concours/) - [OAuth](https://dunglas.dev/tag/oauth/) - [Twisted](https://dunglas.dev/tag/twisted/) - [tags](https://dunglas.dev/tag/tags/) - [sfWidgetFormJqueryTagSuggestion](https://dunglas.dev/tag/sfwidgetformjquerytagsuggestion/) - [Marketing](https://dunglas.dev/tag/marketing/) - [Hôtel](https://dunglas.dev/tag/hotel/) - [Pulbish It Yourself](https://dunglas.dev/tag/pulbish-it-yourself/) - [self-management](https://dunglas.dev/tag/self-management/) - [CMS](https://dunglas.dev/tag/cms/) - [Facebook Connect](https://dunglas.dev/tag/facebook-connect/) - [Doctrine](https://dunglas.dev/tag/doctrine/) - [La Coopérative des Tilleuls](https://dunglas.dev/tag/la-cooperative-des-tilleuls/) - [coopérative](https://dunglas.dev/tag/cooperative/) - [informatique](https://dunglas.dev/tag/informatique/) - [workshop](https://dunglas.dev/tag/workshop/) - [html](https://dunglas.dev/tag/html/) - [NRJ Mobile](https://dunglas.dev/tag/nrj-mobile/) - [jeu Facebook](https://dunglas.dev/tag/jeu-facebook/) - [Prestashop](https://dunglas.dev/tag/prestashop/) - [sleep](https://dunglas.dev/tag/sleep/) - [mot de passe](https://dunglas.dev/tag/mot-de-passe/) - [OVH](https://dunglas.dev/tag/ovh/) - [LAMP](https://dunglas.dev/tag/lamp/) - [.htaccess](https://dunglas.dev/tag/htaccess/) - [OSX](https://dunglas.dev/tag/osx/) - [homebrew](https://dunglas.dev/tag/homebrew/) - [Sonata](https://dunglas.dev/tag/sonata/) - [MongoDB](https://dunglas.dev/tag/mongodb/) - [admin](https://dunglas.dev/tag/admin/) - [HTML5](https://dunglas.dev/tag/html5/) - [Rich Snippets](https://dunglas.dev/tag/rich-snippets/) - [Co-Factory](https://dunglas.dev/tag/co-factory/) - [sémantique](https://dunglas.dev/tag/semantique/) - [TodoMVC](https://dunglas.dev/tag/todomvc/) - [Chaplin.js](https://dunglas.dev/tag/chaplin-js/) - [Backbone.js](https://dunglas.dev/tag/backbone-js/) - [slides](https://dunglas.dev/tag/slides/) - [microdata](https://dunglas.dev/tag/microdata/) - [Tor](https://dunglas.dev/tag/tor/) - [library](https://dunglas.dev/tag/library/) - [bibliothèque](https://dunglas.dev/tag/bibliotheque/) - [TorControl](https://dunglas.dev/tag/torcontrol/) - [autogestion](https://dunglas.dev/tag/autogestion/) - [Foire à l'Autogestion](https://dunglas.dev/tag/foire-a-lautogestion/) - [Quelle Notice](https://dunglas.dev/tag/quelle-notice/) - [SonataAdmin](https://dunglas.dev/tag/sonataadmin/) - [SonataMedia](https://dunglas.dev/tag/sonatamedia/) - [ACL](https://dunglas.dev/tag/acl/) - [bundles](https://dunglas.dev/tag/bundles/) - [persistence](https://dunglas.dev/tag/persistence/) - [book](https://dunglas.dev/tag/book/) - [Packt](https://dunglas.dev/tag/packt/) - [ORM](https://dunglas.dev/tag/orm/) - [CSRF](https://dunglas.dev/tag/csrf/) - [XSRF](https://dunglas.dev/tag/xsrf/) - [AngularJS](https://dunglas.dev/tag/angularjs/) - [REST](https://dunglas.dev/tag/rest/) - [API](https://dunglas.dev/tag/api/) - [free](https://dunglas.dev/tag/free/) - [entities](https://dunglas.dev/tag/entities/) - [bundle](https://dunglas.dev/tag/bundle/) - [Scop](https://dunglas.dev/tag/scop/) - [ESS](https://dunglas.dev/tag/ess/) - [profiling commercial](https://dunglas.dev/tag/profiling-commercial/) - [publicité](https://dunglas.dev/tag/publicite/) - [SQL Server](https://dunglas.dev/tag/sql-server/) - [Microsoft](https://dunglas.dev/tag/microsoft/) - [PDO](https://dunglas.dev/tag/pdo/) - [social network](https://dunglas.dev/tag/social-network/) - [community management](https://dunglas.dev/tag/community-management/) - [SocialShare](https://dunglas.dev/tag/socialshare/) - [types](https://dunglas.dev/tag/types/) - [casting](https://dunglas.dev/tag/casting/) - [string](https://dunglas.dev/tag/string/) - [Lost In The Supermarket](https://dunglas.dev/tag/lost-in-the-supermarket/) - [Les-Tilleuls.coop](https://dunglas.dev/tag/les-tilleuls-coop/) - [interview](https://dunglas.dev/tag/interview/) - [La Voix du Nord](https://dunglas.dev/tag/la-voix-du-nord/) - [presse](https://dunglas.dev/tag/presse/) - [Grand Lille TV](https://dunglas.dev/tag/grand-lille-tv/) - [économie](https://dunglas.dev/tag/economie/) - [Pôle emploi](https://dunglas.dev/tag/pole-emploi/) - [fuite de données](https://dunglas.dev/tag/fuite-de-donnees/) - [piratage](https://dunglas.dev/tag/piratage/) - [sfPot](https://dunglas.dev/tag/sfpot/) - [conférence](https://dunglas.dev/tag/conference/) - [API REST](https://dunglas.dev/tag/api-rest/) - [J'innove](https://dunglas.dev/tag/jinnove/) - [OPcache](https://dunglas.dev/tag/opcache/) - [Zend](https://dunglas.dev/tag/zend/) - [IDN](https://dunglas.dev/tag/idn/) - [Unicode](https://dunglas.dev/tag/unicode/) - [RFC](https://dunglas.dev/tag/rfc/) - [Jenkins](https://dunglas.dev/tag/jenkins/) - [Satis](https://dunglas.dev/tag/satis/) - [Composer](https://dunglas.dev/tag/composer/) - [SensioLabs Insight](https://dunglas.dev/tag/sensiolabs-insight/) - [GitHub](https://dunglas.dev/tag/github/) - [Behat](https://dunglas.dev/tag/behat/) - [phpspec](https://dunglas.dev/tag/phpspec/) - [PhantomJS](https://dunglas.dev/tag/phantomjs/) - [PHP 7](https://dunglas.dev/tag/php-7/) - [domain name](https://dunglas.dev/tag/domain-name/) - [URL](https://dunglas.dev/tag/url/) - [filter](https://dunglas.dev/tag/filter/) - [validator](https://dunglas.dev/tag/validator/) - [Schema.org](https://dunglas.dev/tag/schema-org/) - [semantic](https://dunglas.dev/tag/semantic/) - [bcrypt](https://dunglas.dev/tag/bcrypt/) - [password](https://dunglas.dev/tag/password/) - [command line](https://dunglas.dev/tag/command-line/) - [Docker](https://dunglas.dev/tag/docker/) - [PHP Schema](https://dunglas.dev/tag/php-schema/) - [Hydra](https://dunglas.dev/tag/hydra/) - [SensioLabs](https://dunglas.dev/tag/sensiolabs/) - [hypermedia](https://dunglas.dev/tag/hypermedia/) - [HATEOAS](https://dunglas.dev/tag/hateoas/) - [JSON-LD](https://dunglas.dev/tag/json-ld/) - [property](https://dunglas.dev/tag/property/) - [class](https://dunglas.dev/tag/class/) - [PHPDoc](https://dunglas.dev/tag/phpdoc/) - [Symfony Live](https://dunglas.dev/tag/symfony-live/) - [API Platform](https://dunglas.dev/tag/api-platform/) - [DunglasJsonLdApi](https://dunglas.dev/tag/dunglasjsonldapi/) - [PSR-7](https://dunglas.dev/tag/psr-7/) - [Zend Framework](https://dunglas.dev/tag/zend-framework/) - [Diactoros](https://dunglas.dev/tag/diactoros/) - [HTTP](https://dunglas.dev/tag/http/) - [Drupal](https://dunglas.dev/tag/drupal/) - [benchmark](https://dunglas.dev/tag/benchmark/) - [Blackfire](https://dunglas.dev/tag/blackfire/) - [Laravel](https://dunglas.dev/tag/laravel/) - [Heroku](https://dunglas.dev/tag/heroku/) - [Postgres](https://dunglas.dev/tag/postgres/) - [Stratigility](https://dunglas.dev/tag/stratigility/) - [PHP](https://dunglas.dev/tag/php/) - [SEO](https://dunglas.dev/tag/seo-2/) - [Sécurité](https://dunglas.dev/tag/securite/) - [Wordpress](https://dunglas.dev/tag/wordpress/) - [Android](https://dunglas.dev/tag/android/) - [Ubuntu](https://dunglas.dev/tag/ubuntu/) - [Programmation](https://dunglas.dev/tag/programmation/) - [Python](https://dunglas.dev/tag/python/) - [PunBB](https://dunglas.dev/tag/punbb/) - [Dependency Injection](https://dunglas.dev/tag/dependency-injection/) - [autowiring](https://dunglas.dev/tag/autowiring/) - [BackBee](https://dunglas.dev/tag/backbee/) - [conf](https://dunglas.dev/tag/conf/) - [Type Hint](https://dunglas.dev/tag/type-hint/) - [converter](https://dunglas.dev/tag/converter/) - [tooling](https://dunglas.dev/tag/tooling/) - [Forum PHP](https://dunglas.dev/tag/forum-php/) - [AFUP](https://dunglas.dev/tag/afup/) - [performance](https://dunglas.dev/tag/performance/) - [action](https://dunglas.dev/tag/action/) - [controller](https://dunglas.dev/tag/controller/) - [ADR](https://dunglas.dev/tag/adr/) - [design pattern](https://dunglas.dev/tag/design-pattern/) - [RAD](https://dunglas.dev/tag/rad/) - [DunglasActionBundle](https://dunglas.dev/tag/dunglasactionbundle/) - [software design](https://dunglas.dev/tag/software-design/) - [Take Off Conf](https://dunglas.dev/tag/take-off-conf/) - [framework agnostic](https://dunglas.dev/tag/framework-agnostic/) - [PSR](https://dunglas.dev/tag/psr/) - [autodéfense numérique](https://dunglas.dev/tag/autodefense-numerique/) - [surveillance](https://dunglas.dev/tag/surveillance/) - [Snowden](https://dunglas.dev/tag/snowden/) - [CNT](https://dunglas.dev/tag/cnt/) - [APIDays](https://dunglas.dev/tag/apidays/) - [HAL](https://dunglas.dev/tag/hal/) - [React](https://dunglas.dev/tag/react/) - [Redux](https://dunglas.dev/tag/redux/) - [Swagger](https://dunglas.dev/tag/swagger/) - [ES2015](https://dunglas.dev/tag/es2015/) - [events](https://dunglas.dev/tag/events/) - [meetup](https://dunglas.dev/tag/meetup/) - [Flex](https://dunglas.dev/tag/flex/) - [con](https://dunglas.dev/tag/con/) - [conferences](https://dunglas.dev/tag/conferences/) - [semweb](https://dunglas.dev/tag/semweb/) - [Kubernetes](https://dunglas.dev/tag/kubernetes/) - [Vue.js](https://dunglas.dev/tag/vue-js/) - [Angular](https://dunglas.dev/tag/angular/) - [Linked Data](https://dunglas.dev/tag/linked-data/) - [bot](https://dunglas.dev/tag/bot/) - [Slack](https://dunglas.dev/tag/slack/) - [StackOverflow](https://dunglas.dev/tag/stackoverflow/) - [StackExchange](https://dunglas.dev/tag/stackexchange/) - [Go](https://dunglas.dev/tag/go/) - [golang](https://dunglas.dev/tag/golang/) - [HTTP/2](https://dunglas.dev/tag/http2/) - [h2](https://dunglas.dev/tag/h2/) - [WebLink](https://dunglas.dev/tag/weblink/) - [Push](https://dunglas.dev/tag/push/) - [Server Push](https://dunglas.dev/tag/server-push/) - [Symfony 4](https://dunglas.dev/tag/symfony-4/) - [Admin On Rest](https://dunglas.dev/tag/admin-on-rest/) - [Material Design](https://dunglas.dev/tag/material-design/) - [GraphQL](https://dunglas.dev/tag/graphql/) - [SymfonyCon](https://dunglas.dev/tag/symfonycon/) - [JSON API](https://dunglas.dev/tag/json-api/) - [diversity](https://dunglas.dev/tag/diversity/) - [Rails Girls Summer of Code](https://dunglas.dev/tag/rails-girls-summer-of-code/) - [CoopLab](https://dunglas.dev/tag/cooplab/) - [video](https://dunglas.dev/tag/video/) - [Serializer](https://dunglas.dev/tag/serializer/) - [VueJS](https://dunglas.dev/tag/vuejs/) - [Panther](https://dunglas.dev/tag/panther/) - [Selenium](https://dunglas.dev/tag/selenium/) - [WebDriver](https://dunglas.dev/tag/webdriver/) - [Sylius](https://dunglas.dev/tag/sylius/) - [testing](https://dunglas.dev/tag/testing/) - [Chrome](https://dunglas.dev/tag/chrome/) - [ChromeDriver](https://dunglas.dev/tag/chromedriver/) - [E2E](https://dunglas.dev/tag/e2e/) - [e2e-testing](https://dunglas.dev/tag/e2e-testing/) - [browser-testing](https://dunglas.dev/tag/browser-testing/) - [JavaScipt](https://dunglas.dev/tag/javascipt/) - [Mercure](https://dunglas.dev/tag/mercure/) - [websocket](https://dunglas.dev/tag/websocket/) - [dependencies](https://dunglas.dev/tag/dependencies/) - [NPM](https://dunglas.dev/tag/npm/) - [Packagist](https://dunglas.dev/tag/packagist/) - [Elasticearch](https://dunglas.dev/tag/elasticearch/) - [OpenAPI](https://dunglas.dev/tag/openapi/) - [ReactAdmin](https://dunglas.dev/tag/reactadmin/) - [CQRS](https://dunglas.dev/tag/cqrs/) - [ESI](https://dunglas.dev/tag/esi/) - [SSR](https://dunglas.dev/tag/ssr/) - [webperf](https://dunglas.dev/tag/webperf/) - [Next.js](https://dunglas.dev/tag/next-js/) - [Material UI](https://dunglas.dev/tag/material-ui/) - [Formik](https://dunglas.dev/tag/formik/) - [Mercure.rocks](https://dunglas.dev/tag/mercure-rocks/) - [serverless](https://dunglas.dev/tag/serverless/) - [Quasar](https://dunglas.dev/tag/quasar/) - [Vulcain](https://dunglas.dev/tag/vulcain/) - [real-time](https://dunglas.dev/tag/real-time/) - [AsyncAPI](https://dunglas.dev/tag/asyncapi/) - [Structured Field Values](https://dunglas.dev/tag/structured-field-values/) - [Structured Headers](https://dunglas.dev/tag/structured-headers/) - [Caddy](https://dunglas.dev/tag/caddy/) - [Nuxt.js](https://dunglas.dev/tag/nuxt-js/) - [ActivityPub](https://dunglas.dev/tag/activitypub/) - [RDF](https://dunglas.dev/tag/rdf/) - [OWL](https://dunglas.dev/tag/owl/) - [DWeb](https://dunglas.dev/tag/dweb/) - [Early Hints](https://dunglas.dev/tag/early-hints/) - [HTTP/3](https://dunglas.dev/tag/http-3/) - [Hotwire](https://dunglas.dev/tag/hotwire/) - [Turbo](https://dunglas.dev/tag/turbo/) - [Symfony UX](https://dunglas.dev/tag/symfony-ux/) - [Symfony UX Turbo](https://dunglas.dev/tag/symfony-ux-turbo/) - [Edge Side APIs](https://dunglas.dev/tag/edge-side-apis/) - [CDN](https://dunglas.dev/tag/cdn/) - [Edge Computing](https://dunglas.dev/tag/edge-computing/) - [LaTeX](https://dunglas.dev/tag/latex/) - [CCC](https://dunglas.dev/tag/ccc/) - [ESA](https://dunglas.dev/tag/esa/) - [CORS](https://dunglas.dev/tag/cors/) - [preflight](https://dunglas.dev/tag/preflight/) - [JSON](https://dunglas.dev/tag/json/) - [database](https://dunglas.dev/tag/database/) - [Solid](https://dunglas.dev/tag/solid/) - [C](https://dunglas.dev/tag/c/) - [goroutine](https://dunglas.dev/tag/goroutine/) - [thread](https://dunglas.dev/tag/thread/) - [pthread](https://dunglas.dev/tag/pthread/) - [Git](https://dunglas.dev/tag/git/) - [SSH](https://dunglas.dev/tag/ssh/) - [GitLab](https://dunglas.dev/tag/gitlab/) - [ESM](https://dunglas.dev/tag/esm/) - [Import Maps](https://dunglas.dev/tag/import-maps/) - [Supply chain](https://dunglas.dev/tag/supply-chain/) - [Docker Bake](https://dunglas.dev/tag/docker-bake/) - [Docker Compose](https://dunglas.dev/tag/docker-compose/) - [FrankenPHP](https://dunglas.dev/tag/frankenphp/) - [103 Early Hints](https://dunglas.dev/tag/103-early-hints/) - [ForumPHP](https://dunglas.dev/tag/forumphp/) - [Braid](https://dunglas.dev/tag/braid/) - [PREP](https://dunglas.dev/tag/prep/) - [static-php-cli](https://dunglas.dev/tag/static-php-cli/) - [Octane](https://dunglas.dev/tag/octane/) - [Symfgon](https://dunglas.dev/tag/symfgon/) - [Helm](https://dunglas.dev/tag/helm/) - [Skaffold](https://dunglas.dev/tag/skaffold/) - [Xdebug](https://dunglas.dev/tag/xdebug/) - [Prometheus](https://dunglas.dev/tag/prometheus/) - [compression](https://dunglas.dev/tag/compression-2/) - [SymfonyLive](https://dunglas.dev/tag/symfonylive/) - [PHP Foundation](https://dunglas.dev/tag/php-foundation/) - [gRPC](https://dunglas.dev/tag/grpc/) - [Claude Code](https://dunglas.dev/tag/claude-code/) - [LLM](https://dunglas.dev/tag/llm/) - [coding agents](https://dunglas.dev/tag/coding-agents/) - [Dev Containers](https://dunglas.dev/tag/dev-containers/)