All posts

2022
May
MySQL features I can’t wait for them to happen
2021
July
Dell XPS 13 9310: USB-C port not recognizing external devices
Book review: Working Backwards
April
fwupd is the best thing that ever happened to Linux
January
Avoid battery draining on your Linux-flavored Dell XPS
2020
December
Combining two numbers into a unique one: pairing functions
March
Running CI tests in Kubernetes through Github Actions
I’ve decided to make the WASEC ebook free during these trying times
2019
December
Local k8s development in 2020
November
WASEC, a book about Web Application Security, is now available for sale
October
Web application security: what to do when…
September
Command line spinners: the magic tale of modern typewriters and terminal movies
My last day at Namshi: goodbye folks!
August
ABS 1.7.0: ctrl+r and other optimizations
ABS 1.6.0: the convenience of index ranges and default return values
The ABS playground: run ABS code directly in your browser (WHOOOOP!)
July
Playing with QuickJS
ABS 1.5.0: file writers have landed!
ABS 1.4.0: welcome unicode!
June
ABS 1.3.2: making ABS faster with a simple fix
May
ABS 1.3.1 released: a minor bugfix for our JSON parser
ABS 1.3.0: interactive shell commands bring more productivity to the language
March
The ABS programming language in real life (part 1): removing 1 file from all of your GitHub repositories
ABS 1.2: background commands & the ability to import files
February
ABS 1.1.0 released: more Python and Bash for the most fun programming language out there
ABS 1.0.2: a small bugfix, a quick release
January
ABS 1.0.0: here we go!
Book review: Designing Distributed Systems
ABS preview-4: as the language matures, the features keep coming!
Book review: Writing An Interpreter In Go
2018
December
ABS preview-3: loads of bugfixes prior to version 1.0
ABS preview-2: your favorite scripting language just got a major boost
Introducing ABS, a programming language for shell scripting
Book review: Simplify: How the Best Businesses in the World Succeed
(Equal) web application performance
November
MySQL’s INSERT IGNORE and NOT NULL columns
Something strange happened to my laptop’s battery
Generating a MD5 hash in NodeJS
September
Chrome’s DevTools console getting cleared unexpectedly? Blame the Buffer extension!
Web security: hardening HTTP cookies
Valid SSL certificates for local development
Book review: Cloud Native infrastructure
August
Secure your web application with these HTTP headers
Security: HTTP’s perspective
Book review: Why We Sleep
Book review: The personal MBA
July
WASEC: understanding the browser
Introduction to Web Application SECurity
Web security demystified: WASEC
Finding where that IP address is from with iploc
Advertising on Twitter: give us your personal data or we’re going to bomb your timeline with NSFW, sexual ads
June
How did that bug happen? Git bisect to the rescue!
Book review: Debugging Teams: Better Productivity through Collaboration
Book review: Node.js Design Patterns (1st edition)
Makefile 101
Emit a beeping sound with JavaScript
May
mssqldump, a small utility to dump MS SQL Server data
#OffFacebook: half a year later
Import a Google spreadsheet into a MySQL table with docsql
April
This is how a (dumb) hash table works
March
The simplest template engine for NodeJS
TSV, better than CSV
Istio is the real deal
How to easily deaggregate an IP address range
February
Bloom filters: when data structures get smart
January
My favorite algorithm (and data structure): HyperLogLog
Running out of space because of docker containers / images?
Probabilistic data structures: an introduction
A little bit of strace doesn’t hurt
I trolled a digital salesman because their tactics are simply unethical
2017
December
Cross-posting on Medium
Unix goodies to the rescue - Vol.2
October
Intro to React for busy people
Concise async / await in ExpressJS
September
Book review: Code simplicity
Book review: The Go programming language
Book review: Kubernetes cookbook
Book review: Kubernetes management design patterns
June
HTTP cache 101: scaling the web
May
Local development with rkt containers
SPA, isomorphic and back to the server: our journey with JS
April
Book review: Site Reliability Engineering
Book Review: Nine Algorithms That Changed the Future
Web APIs of the Future
Benchmarking JavaScript snippets
Debugging NodeJS applications from your browser
March
When debugging doesn’t suck: beautiful errors
Beware of Lodash (and the cost of abstractions)
Book review: Computing, a coincise history
Book review: Release It – Design and Deploy Production-Ready Software
What’s up with my gem install? symbol SSLv2_method, version OPENSSL_1.0.0 not defined
Book review: Scalability Rules
Eval no more: a journey through NodeJS’ VM module, VM2 and Expression Language
February
Book review: NodeJS High Performance
January
Book review: An Introduction to Stock and Options
Better performance: the case for timeouts
The 2017 blogging pledge
2016
October
2 Web APIs I’m particularly excited about
September
A tech team of ~10 people
August
Why did Google create the Go language?
Dockerize it: stop living in the past and embrace the future
We’re hiring (again)!
July
XYZ programming language sucks
Using Terraform in AWS Mumbai
A message to all the tech teams out there: start doing Tech Trivias
June
Bundling static files within your Golang app
February
Connecting to the inflight internet on Emirates’ flights
January
Enable remote debugging on chrome for React Native’s webviews
Contributing to React Native for Android
2015
October
Deploying 3 times a day without a downtime
August
How Docker changed me
I have built my own IDE and I’m happy to trash it after a year
July
Minimal docker : run your NodeJS app in <25mb of an image
The MySQL ARCHIVE storage engine
Are “considered harmful” lists considered harmful?
How to test 3rd party hooks and webservices locally
4 unix goodies I cannot live without
Using gists like git repositories
June
Married!
May
Generating badges / shields with NodeJS
Generating SVGs with RaphaelJS and NodeJS
April
My (nice) experience with Golang
3 years at Namshi…and still counting!
March
Victory
Things I ask during interviews
February
Mobile development’s future is a big question mark
OrientDB: just like any other NoSQL database?
5 technologies you should keep an eye on in 2015
import this
On monoliths, service-oriented architectures and microservices
OrientDB: going beyond RDBMS
Refresh your JavaScript configurations with freshen-up
Spring cleaning of your docker containers
Netflix, you have a problem
An overview of OrientDB’s capabilities
The strange case of OrientDB and graph databases
Cannot connect to the internet from your Docker containers?
2014
December
Downloading the content of your GoPro from its WiFi
November
AngularJS, (almost) a year later, at a PHP conference
July
Nikki 0.25.1: let’s play with the filesystem!
Nikki 0.19.1: awesomeness won’t stop
History of HTTP, SPDY and HTTP/2.0 - Video
Tips and tricks for your Service Oriented Architecture - Video
Planning to write long-term APIs? @cirpo and me shared our experience
The 5 golden rules when writing open source software
Nikki v0.16.5: first issues ahead
June
Last weekend I wrote an IDE. In JavaScript.
April
Use a custom HTTP status code for your apps’ healthchecks
March
Increase mobile performances by implementing transparent redirects
February
Service Oriented Architectures with Symfony2
6 takeways from the second day of ConFoo
AngularJS is the future. Maybe.
7 takeways from the first day of ConFoo
OrientDB, the fastest document-based graph database
January
7 reasons why working for Namshi is great
If you love AngularJS, you should definitely join us…we’re hiring!
How to make your JavaScript apps SEO-friendly
2013
November
Frontend web development is not as fun as it could be
Drop OpenJDK and upgrade Java to the Oracle packages
October
Speaking about AngularJS, SOA and OrientDB in Montreal at the Confoo 2014
September
Space to the youngsters…
CakeFest 2013 wrap-up
See you in Paris at the 2013 edition of the PHP Forum
HTTP/1.1, SPDY and HTTP/2.0, again
August
Tips and Tricks for you Service-Oriented Architecture
WiFi not connecting or being wonky on a Dell XPS in Ubuntu 13.04
Hello US, I’m coming to San Francisco
July
Sending HipChat notifications in PHP
AB testing in PHP with namshi/ab
Notificator, sending notifications through PHP in a clean and lightweight way
June
Using Emailvision’s CampaignCommander APIs from PHP
Beautifying JSON data from the shell
Desktop notifications for PHPUnit tests on Ubuntu
PHP User Group Dubai, here we start again!
Integrating Twig in your legacy code, Part 2: a less wild approach
Integrating Twig in your legacy PHP code
Configuring a Symfony2 application to support SOA
Securing your HTTP API with JavaScript Object Signing and Encryption
May
Why our business chose Symfony2 over any other PHP framework
Automated tests from a novice’s perspective
April
Doctrine 80% faster?
March
My experience with our development team in Dubai: in between business, SOA and sun
A brief visit to the cold lands of Italy
Refactoring your architecture understanding SOA
Symfony2 console: permission denied during autocompletion
Using Selenium and Symfony2 to help your frontend developers coding without risks
February
Namshi is looking for a new Lead Developer!
January
PHP: ‘The script tried to execute a method or access a property of an incomplete object’
Profiling PHP applications from the browser
Making the OrientDB ODM 5 times faster
Starting to play with the Doctrine OrientDB ODM
2012
December
Please welcome the Doctrine2 OrientDB ODM
Video introduction about NoSQL graph databases and OrientDB
Coding bureaucracy
November
OrientDB ODM beta 5: repositories, compatibility with 1.2.0 and more stability
October
Mixing the history of HTTP, SPDY and HTTP/2.0
The state of HTTP/2.0
Ready for europe, IPC and pizzas
September
So yes, I’m writing a book
Optimizing loading times with images’ lazy loading
August
Shell aliases for Octopress
Human-readable user agents for JavaScript error reporting
ping: sendto: No buffer space available with DU DNSes
Source code workflow after 3 months of Github
The hope is that IE will drown in 2 years
July
How refactoring influenced the World Wide Web
Logging JavaScript errors
Using Monolog for PHP error reporting on New Relic
Bootstrap of a Travis-CI test-machine
Where is Agile?
Speaking at IPC 2012
Going beyond HTTP at IPC in October
May
Use the Strategy to avoid the Switch-Case antipattern
April
Back in track with OrientDB
Y U NO access WHOIS informations in PHP?
Search engines are making the web slower
March
Wanna be hired? Go get yourself a blog and a github profile
Checking a domain’s availability with PHP
Moving to Dubai
February
Scaling asynchronously through HInclude
Book review: Data-Intensive Text Processing with MapReduce
How to argue with junior and stubborn developers
Create a Composer command line installer with the Symfony2 CLI
Launching PHPUnit tests from a browser with Symfony2
Using the Symfony2 DIC as a standalone component
Retrieving raw WHOIS informations in PHP
A PHP library to retrieve WHOIS informations
January
The web benefits from SPDY just as SPDY benefits from HTTP
Roy Fielding on SOAP in the W3C context
Enter SfCcTesting: Symfony 1.X Client-Crawler Testing
Functional testing symfony 1.X with PHPUnit: the Symfony2 way
Quality isn’t always better than quantity
Managing PHP dependencies with composer
Media types and hypermedia services: beyond REST architectures
Edge Side Includes, how to spare terabytes every day
Getting back on OrientDB
2011
December
Less REST, more hypermedia
November
OSIDays 2011 wrapup
Application-level caching: fight the right battle
October
GraphDB in PHP: time for the serious stuff
The “new” development here in DNSEE: BDD and much more
September
HTTP saves time, saves money, saves you
A warm welcome to Orient beta-4: data-mapping and much more
Changing the layout of Joomla! ‘category blog’ view
The shortest path problem in PHP: demystifying Dijkstra’s algorithm
August
Behaviour-driven development in PHP
Unit testing your symfony forms
July
News from the Orient library: OrientDB query-builder goes out
Hands on PHP 5.4: traits and other good stuff
Integrating Zend Framework 2 in Symfony 1.4
Contributing to the Zend Framework via GitHub
Why Joomla sucks, why the Joomla platform sucks even harder and how We can fix this
Resources about HATEOAS
REST in peace, again
June
Jazoon 2011 wrapup
PHPDay 2011 wrapup
Get prepared for OrientDB’s query builder
Yahoo’s S4 stream computing platform
May
The problem with non hypermedia-driven webservices
Some common questions about Edge Side Includes
The OrientDB PHP data mapper, from the trenches
The current status of my work with OrientDB
The query builder for OrientDB
OrientDB, the Graph DB for the web
Symfony2, HTTP cache & the good parts of both of’em
Real-time scaling: when NoSQL almost wins, HTTP almost wins, and the customer smiles
A data mapper for OrientDB
The current vague state of PUT and DELETE in HTML5
April
It’s client’s fault
A simple menu and the relational model collapses
XML vs JSON for real
Graph in PHP through OrientDB
Graph databases: OrientDB to the rescue
Long live XML (too sorry for JSON fanboyz)
March
REST in practice, my review
NoSQL day: from enthusiasm to consciousness
Singletons of the web
REST better: common pitfalls
Be clever with your Etags
REST better: HTTP cache
Ideas of March: REST better
Re-doing things with Symfony2
The art of agile development, my review
A f****** awesome 2011 PHP Benelux Conference
Symfony Live 2011, my POV
I broke the REST
Don’t hurt HTTP: If-(None-)Match & the 412 HTTP status code
REST in peace
February
Installing and configuring Varnish on Ubuntu
A CRUD with Symfony2 and Doctrine 2
tar: web.tar: Wrote only X of Y bytes
January
Redis slow with PHP? Think again!
Symfony2 routes
Creating your own services for the Symfony2 DIC
2010
December
iMacro: JavaScript loops with variables
November
Versioning other behaviours’ columns with Doctrine Versionable
The Pomodoro Tecnique on your Linux distro
October
Amend committing in SVN
Browsers rest too much REST lesser
Mockups of web authentication: the REST rescue
SfWidgetFormChoice* with spicy empty values
Magento’s request doesn’t collect GET and POST
Custom pagination on different models with symfony and Doctrine
mysql/mysqldump: command not found on CentOS
Deploying a symfony application
Il buio nell’anima
September
Basic HTTP authentication on a symfony backend
Customizing pagination in symfony
Convert a password the Magento way
Setting up cron jobs in Magento
Border radius and IE 8 and previous yes we can
Pass a variable to a .phtml block
Retrieve top rated products in Magento
Headers already sent… what’s up PHPUnit?
Typing into TinyMCE with Selenium
How to discover if a site has been built with Joomla!
Magento and PHPUnit
Profiling with Xdebug and Kcachegrind
Deliver content as XML with Zend Framework
FFMPEG: get a thumbnail from a video with PHP
Debug a SQL query in Magento