All posts

Combining two numbers into a unique one: pairing functions
Running CI tests in Kubernetes through Github Actions
I’ve decided to make the WASEC ebook free during these trying times
Local k8s development in 2020
WASEC, a book about Web Application Security, is now available for sale
Web application security: what to do when…
Command line spinners: the magic tale of modern typewriters and terminal movies
My last day at Namshi: goodbye folks!
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!)
Playing with QuickJS
ABS 1.5.0: file writers have landed!
ABS 1.4.0: welcome unicode!
ABS 1.3.2: making ABS faster with a simple fix
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
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
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
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
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
Something strange happened to my laptop’s battery
Generating a MD5 hash in NodeJS
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
Secure your web application with these HTTP headers
Security: HTTP’s perspective
Book review: Why We Sleep
Book review: The personal MBA
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
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
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
This is how a (dumb) hash table works
The simplest template engine for NodeJS
TSV, better than CSV
Istio is the real deal
How to easily deaggregate an IP address range
Bloom filters: when data structures get smart
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
Cross-posting on Medium
Unix goodies to the rescue - Vol.2
Intro to React for busy people
Concise async / await in ExpressJS
Book review: Code simplicity
Book review: The Go programming language
Book review: Kubernetes cookbook
Book review: Kubernetes management design patterns
HTTP cache 101: scaling the web
Local development with rkt containers
SPA, isomorphic and back to the server: our journey with JS
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
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
Book review: NodeJS High Performance
Book review: An Introduction to Stock and Options
Better performance: the case for timeouts
The 2017 blogging pledge
2 Web APIs I’m particularly excited about
A tech team of ~10 people
Why did Google create the Go language?
Dockerize it: stop living in the past and embrace the future
We’re hiring (again)!
XYZ programming language sucks
Using Terraform in AWS Mumbai
A message to all the tech teams out there: start doing Tech Trivias
Bundling static files within your Golang app
Connecting to the inflight internet on Emirates’ flights
Enable remote debugging on chrome for React Native’s webviews
Contributing to React Native for Android
Deploying 3 times a day without a downtime
How Docker changed me
I have built my own IDE and I’m happy to trash it after a year
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
Generating badges / shields with NodeJS
Generating SVGs with RaphaelJS and NodeJS
My (nice) experience with Golang
3 years at Namshi…and still counting!
Things I ask during interviews
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?
Downloading the content of your GoPro from its WiFi
AngularJS, (almost) a year later, at a PHP conference
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
Last weekend I wrote an IDE. In JavaScript.
Use a custom HTTP status code for your apps’ healthchecks
Increase mobile performances by implementing transparent redirects
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
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
Frontend web development is not as fun as it could be
Drop OpenJDK and upgrade Java to the Oracle packages
Speaking about AngularJS, SOA and OrientDB in Montreal at the Confoo 2014
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
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
Sending HipChat notifications in PHP
AB testing in PHP with namshi/ab
Notificator, sending notifications through PHP in a clean and lightweight way
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
Why our business chose Symfony2 over any other PHP framework
Automated tests from a novice’s perspective
Doctrine 80% faster?
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
Namshi is looking for a new Lead Developer!
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
Please welcome the Doctrine2 OrientDB ODM
Video introduction about NoSQL graph databases and OrientDB
Coding bureaucracy
OrientDB ODM beta 5: repositories, compatibility with 1.2.0 and more stability
Mixing the history of HTTP, SPDY and HTTP/2.0
The state of HTTP/2.0
Ready for europe, IPC and pizzas
So yes, I’m writing a book
Optimizing loading times with images’ lazy loading
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
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
Use the Strategy to avoid the Switch-Case antipattern
Back in track with OrientDB
Y U NO access WHOIS informations in PHP?
Search engines are making the web slower
Wanna be hired? Go get yourself a blog and a github profile
Checking a domain’s availability with PHP
Moving to Dubai
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
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
Less REST, more hypermedia
OSIDays 2011 wrapup
Application-level caching: fight the right battle
GraphDB in PHP: time for the serious stuff
The “new” development here in DNSEE: BDD and much more
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
Behaviour-driven development in PHP
Unit testing your symfony forms
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
Jazoon 2011 wrapup
PHPDay 2011 wrapup
Get prepared for OrientDB’s query builder
Yahoo’s S4 stream computing platform
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
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)
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
Installing and configuring Varnish on Ubuntu
A CRUD with Symfony2 and Doctrine 2
tar: web.tar: Wrote only X of Y bytes
Redis slow with PHP? Think again!
Symfony2 routes
Creating your own services for the Symfony2 DIC
iMacro: JavaScript loops with variables
Versioning other behaviours’ columns with Doctrine Versionable
The Pomodoro Tecnique on your Linux distro
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
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