Hacking Python AST: checking methods declaration

A few months ago, I wrote the definitive guide about Python method declaration, which had quite a good success. I still fight every day in OpenStack to have the developers declare their methods correctly in the patches they submit.

Read more

16 Feb 2015 | Tags: python openstack

Distributed group management and locking in Python with tooz

With OpenStack embracing the Tooz library more and more over the past year, I think it's a good start to write a bit about it.

Read more

21 Nov 2014 | Tags: python tooz openstack

Python bad practice, a concrete case

A lot of people read up on good Python practice, and there's plenty of information about that on the Internet. Many tips are included in the book I wrote this year, The Hacker's Guide to Python. Today I'd like to show a concrete case of code that I don't consider being the state of the art.

Read more

15 Sep 2014 | Tags: python whisper

Tracking OpenStack contributions in GitHub

I've switched my Git repositories to GitHub recently, and started to watch my contributions statistics, which were very low considering I spend my days hacking on open source software, especially OpenStack.

Read more

19 Aug 2014 | Tags: openstack github

OpenStack Ceilometer and the Gnocchi experiment

A little more than 2 years ago, the Ceilometer project was launched inside the OpenStack ecosystem. Its main objective was to measure OpenStack cloud platforms in order to provide data and mechanisms for functionalities such as billing, alarming or capacity planning.

Read more

18 Aug 2014 | Tags: openstack ceilometer gnocchi

OpenStack Design Summit Juno, from a Ceilometer point of view

Last week was the OpenStack Design Summit in Atlanta, GA where we, developers, discussed and designed the new OpenStack release (Juno) coming up. I've been there mainly to discuss Ceilometer upcoming developments.

Read more

30 May 2014 | Tags: openstack ceilometer

Making of The Hacker's Guide to Python

As promised, today I would like to write a bit about the making of The Hacker's Guide to Python. It has been a very interesting experimentation, and I think it is worth sharing it with you.

Read more

07 May 2014 | Tags: python books

Doing A/B testing with Apache httpd

When I started to write the landing page for The Hacker's Guide to Python, I wanted to try new things at the same time. I read about A/B testing a while ago, and I figured it was a good opportunity to test it out.

Read more

06 Apr 2014 | Tags: apache

The Hacker's Guide to Python released!

And done! It took me just 8 months to do this entire book project around Python. From the first day I started writing to today, where I finally publish and sell – almost entirely – myself this book. I'm really proud of what I've achieved so far, as this was something totally new to me.

Read more

25 Mar 2014 | Tags: python books

OpenStack Ceilometer Icehouse-2 milestone released

Yesterday, the second milestone of the Icehouse development branch of Ceilometer has been released and is now available for testing and download. This means the first half of the OpenStack Icehouse development has passed!

Read more

24 Jan 2014 | Tags: openstack ceilometer

Databases integration testing strategies with Python

The Ceilometer project supports various database backend that can be used as storage. Among them are MongoDB, SQLite MySQL, PostgreSQL, HBase, DB2… All Ceilometer's code is unit tested, but when dealing with external storage services, one cannot be sure that the code is really working. You could be inserting data with an incorrect SQL statement, or in the wrong table. Only having the real database storage running and being used can tell you that.

Read more

06 Jan 2014 | Tags: python ceilometer openstack

OpenStack Design Summit Icehouse, from a Ceilometer point of view

Last week was the OpenStack Design Summit Icehouse in Hong-Kong where we, OpenStack developers, discussed and designed the new OpenStack release (Icehouse) that is coming up.

Read more

13 Nov 2013 | Tags: openstack ceilometer

Python 3.4 single dispatch, a step into generic functions

I love to say that Python is a nice subset of Lisp, and I discover that it's getting even more true as time passes. Recently, I've stumbled upon the PEP 443 that describes a way to dispatch generic functions, in a way that looks like what CLOS, the Common Lisp Object System, provides.

Read more

17 Sep 2013 | Tags: python lisp

OpenStack Ceilometer Havana-3 milestone released

Last week, the third and last milestone of the Havana development branch of Ceilometer has been released and is now available for testing and download. This means the end of the OpenStack Havana development time is coming, and that the features are now frozen.

Read more

10 Sep 2013 | Tags: openstack ceilometer

Announcing The Hacker's Guide to Python

I've been hacking on Python for a lot of years now, on various project. For the last two years, I've been heavily involved in OpenStack, which makes an heavy usage of Python.

Once you start working with a hundred of hackers, on several software and libraries representing more than half a million source lines of Python, things change. The scalability, testing and deployment problems inherent to a cloud platform meddle with everything in designing components.

Read more

03 Sep 2013 | Tags: python books

The definitive guide on how to use static, class or abstract methods in Python

Doing code reviews is a great way to discover things that people might struggle to comprehend. While proof-reading OpenStack patches recently, I spotted that people were not using correctly the various decorators Python provides for methods. So here's my attempt at providing me a link to send them to in my next code reviews. :-)

Read more

01 Aug 2013 | Tags: python

OpenStack Ceilometer Havana-2 milestone released

Last week, the second milestone of the Havana development branch of Ceilometer has been released and is now available for testing and download. This means the first half of the OpenStack Havana development has passed!

Read more

27 Jul 2013 | Tags: openstack ceilometer

OpenStack meets Lisp: cl-openstack-client

A month ago, a mail hit the OpenStack mailing list entitled "The OpenStack Community Welcomes Developers in All Programming Languages". You may know that OpenStack is essentially built using Python, and therefore it is the reference language for the client libraries implementations. As a Lisp and OpenStack practitioner, I used this excuse to build a challenge for myself: let's prove this point by bringing Lisp into OpenStack!

Read more

04 Jul 2013 | Tags: common-lisp lisp openstack

OpenStack Ceilometer Havana-1 milestone released

Yesterday, the first milestone of the Havana development branch of Ceilometer has been released and is now available for testing and download. This means the first quarter of the OpenStack Havana development has passed!

Read more

31 May 2013 | Tags: openstack ceilometer

Rant about Github pull-request workflow implementation

One of my recent innocent tweet about Gerrit vs Github triggered much more reponses and debate that I expected it to. I realize that it might be worth explaining a bit what I meant, in a text longer than 140 characters.

Read more

10 May 2013 | Tags: github openstack gerrit

OpenStack Design Summit Havana, from a Ceilometer point of view

Last week was the OpenStack Design Summit in Portland, OR where we, developers, discussed and designed the new OpenStack release (Havana) coming up.

Read more

25 Apr 2013 | Tags: openstack ceilometer

Hy, Lisp in Python

I've meant to look at Hy since Paul Tagliamonte started to talk to me about it, but never took a chance until now. Yesterday, Paul indicated it was a good time for me to start looking at it, so I spent a few hours playing.

Read more

03 Apr 2013 | Tags: python hy lisp

Announcing Climate, the OpenStack capacity leasing project

While working on the XLcloud project (HPC on cloud) it appeared clear to us that OpenStack was missing a critical component towards resource reservations.

Read more

25 Mar 2013 | Tags: openstack climate

OpenStack Ceilometer and Heat projects graduated

The OpenStack Technical Committee have voted these last weeks about graduation of Heat and Ceilometer, to change their status from incubation to integrated.

Read more

27 Feb 2013 | Tags: openstack ceilometer

Cloud tools for Debian

Recently, I've worked on the cloud utilities that are provided as standard in Ubuntu, and I ported them to Debian. Let's see how that brings Debian to the cloud!

Read more

13 Feb 2013 | Tags: debian ubuntu openstack

Going to FOSDEM 2013

For the first time, I'll be at FOSDEM 2013 in Brussels on Sunday 2nd February 2013.

Read more

29 Jan 2013 | Tags: fosdem openstack

Extending Swift with middleware: example with ClamAV

In this article, I'm going to explain you how you can extend Swift, the OpenStack Object Storage project, so it performs extra action on files at upload or at download time.

Read more

22 Jan 2013 | Tags: swift clamav openstack

Overriding cl-json object encoding

CL-JSON provides an encoder for Lisp data structures and objects to JSON format. Unfortunately, in some case, its default encoding mechanism for CLOS objects isn't exactly doing the right thing. I'll show you how Common Lisp makes it easy to change that.

Read more

11 Jan 2013 | Tags: common-lisp lisp json postgresql postmodern cl-json

Integrating cl-irc and cl-async

Recently, I've started programming in Common Lisp.

My idea here is to use cl-irc, an IRC library into an event loop. This can be really useful, for example to trigger action based on time, using timers.

Read more

04 Jan 2013 | Tags: common-lisp lisp irc cl-irc cl-async

Ceilometer bug squash day #1

In order to start the year in a good mood, what's the best than squashing some bugs on OpenStack?

Read more

24 Dec 2012 | Tags: openstack ceilometer

Logitech Unifying devices support in UPower

A few months ago, I wrote about my reverse engineering attempt to Logitech Unifying devices. Back then, I concluded my post with big hopes on the future after receiving a document with some part of the specification of the HID++ 2.0 from Logitech.

A couple of weeks ago, some of my summer work has been merged to UPower, adding battery support for some Logitech devices.

Read more

16 Nov 2012 | Tags: logitech upower freedesktop

OpenStack France meetup #2

I was at the OpenStack France meetup 2 yesterday evening.

Read more

06 Nov 2012 | Tags: openstack ceilometer

Inside Synaps, a CloudWatch-like implementation for OpenStack

A few days ago, Samsung released the source code of Synaps, an implementation of the Amazon Web Service CloudWatch API for OpenStack.

Being a developer on the Ceilometer project, I've been curious to look on this project and how it could overlap with Ceilometer or other projects like Heat.

Read more

22 Oct 2012 | Tags: openstack ceilometer heat synaps

Ceilometer 0.1 released

After 6 months of development, we are proud to release the first release of Ceilometer, the OpenStack Metering project. Ceilometer. This is a first and amazing milestone for us: we follow all other projects by releasing a version for Folsom!

Using Ceilometer, you should now be able to meter your OpenStack cloud and retrieve its usage to build statistics or bill your customer!

Read more

12 Oct 2012 | Tags: openstack ceilometer

Gnus notifications

Today, I've merged my Gnus notifications module inside Gnus git repository. This way, it will be available for everybody in Emacs 24.2.

Read more

29 Aug 2012 | Tags: emacs notify gnus

Sony Vaio Z Debian Linux support

I had to install Debian Wheezy on a brand new Sony Vaio Z laptop with the new Ivy Bridge architecture (SVZ1311C5E). I'll talk about this here, because it's always nice to know that new hardware works quite fine (or not) under Debian.

Read more

11 Aug 2012 | Tags: debian linux sony hardware

Ceilometer, the OpenStack metering project

For the last months, I've been working on a metering project for OpenStack, so it's time to talk a bit about it.

Read more

27 Jul 2012 | Tags: openstack ceilometer

Emacs configuration published

I've finally published my Emacs configuration.

Read more

24 Jul 2012 | Tags: emacs

ERC notifications

Today, I've merged my erc notifications module inside Emacs trunk. This way, it will be available for everybody in Emacs 24.2.

Read more

21 Jul 2012 | Tags: emacs notify erc

Logitech K750 keyboard and Unifying Receiver Linux support

A year ago, I bought a Logitech Wireless Solar Keyboard K750. I'm particularly picky on keyboards, but this one is good. It has an incredible useful feature: while being wireless, it has no need for disposable or rechargeable batteries, it uses solar power!

My problem is that there's obviously no way to know the battery status from Linux, the provided application only working on Windows.

Read more

09 Jul 2012 | Tags: linux usb logitech

Making the jump: working freelance

For the last 10 years, I've been working on many Free Software projects. From Debian to OpenStack, through awesome, Emacs, XCB and many more. This obviously allowed me to enhance my technical skills, but it also taught me about Free Software and Open Source development processes, and how to work with and close to the community.

Working for almost 6 years at Easter-eggs taught me how to work in an autonomous manner, how to lead and manage a project. And how to run a company, thanks to the cooperative status of this great one.

These are the reasons why I decided to leave my latest job and run my own company to work as a freelance consultant & developer specialized in Free Software, starting today.

Read more

02 Jul 2012 | Tags: work

How to make Twitter's Bootstrap tabs bookmarkable

I've been using Twitter's bootstrap library recently to build this Web site, and wondered how to be able to use the bootstrap-tab Javascript plugin in a bookmark friendly manner.

Read more

29 Jun 2012 | Tags: javascript bootstrap

OpenStack Swift eventual consistency analysis & bottlenecks

Swift is the software behind the OpenStack Object Storage service.

This service provides a simple storage service for applications using RESTful interfaces, providing maximum data availability and storage capacity.

I explain here how some parts of the storage and replication in Swift works, and show some of its current limitations.

If you don't know Swift and want to read a more "shallow" overview first, you can read John Dickinson's Swift Tech Overview.

Read more

23 Apr 2012 | Tags: openstack swift python

First release of PyMuninCli

Today I release a Python client library to query Munin servers.

Read more

17 Apr 2012 | Tags: python munin

mod_defensible 1.5 released

Apache 2.4 being out, I noticed that my good old mod_defensible did not compile anymore.

Read more

03 Apr 2012 | Tags: apache dnsbl debian

xpyb 1.3 released

It took a while to get it out, but finally, 3 years after the latest release (1.2), the version of 1.3 of xpyb (the XCB Python bindngs) is out.

Read more

22 Mar 2012 | Tags: python xcb xpyb freedesktop x11

10 years as a Debian developer

Ten years ago, I joined the Debian project as a developer.

Read more

24 Feb 2012 | Tags: debian openstack xen emacs awesome vhffs tuxfamily

Google Calendar notifications using pynotify

I use Google Calendar to manage my calendars, and I really missed something to warn me whenever I have an appointment with an alert set.

Read more

03 Jan 2012 | Tags: python gtk notify googlecalendar gdata

My OpenStack work

Like I already wrote here last week, I've been heavily working on OpenStack for the last weeks.

Read more

16 Dec 2011 | Tags: openstack debian

New job, new blog

It has been a while since I blogged but I've been very busy, with my new job and this new blog!

Read more

07 Dec 2011 | Tags: work openstack python debian

Google Contacts for Emacs

I finally finished a thing I was really missing: accessing my Google Contacts from Emacs.

Read more

26 Sep 2011 | Tags: googlecontacts emacs

OAuth 2.0 for Emacs

This week, I've finished my OAuth 2.0 client implementation for GNU Emacs.

Read more

23 Sep 2011 | Tags: oauth emacs

Quitting my job

After more than 5 years at Easter-eggs as a system engineer, I'll be leaving my job soon.

Read more

29 Aug 2011 | Tags: work

Python sets comparisons

This week I lost some time playing with Python's sets.

Read more

17 May 2011 | Tags: python

Why not Lua

Since my latest announcement of the Lua workshop, I received a couple of emails asking why I discourage the use of Lua.

Read more

26 Apr 2011 | Tags: lua

Using advanced filter with mod_authnz_ldap

As you may know, Apache's mod_authzn_ldap allows to authenticate users in Apache HTTP server using an LDAP server. Unfortunately, it has a little implementation flaw.

Read more

04 Apr 2011 | Tags: ldap apache

My latest contributions to the Emacs' world

I spend too much time writing Emacs Lisp code these days. Unfortunately, the more I do the more I find new useful tools to improve my work-flow and save time for doing more Lisp. D'oh.

Read more

01 Mar 2011 | Tags: emacs git gnus orgmode erc

Handling my music collection with git-annex

git-annex is a recent tool allowing to manage files with git without having theirs contents checked into git.

Read more

23 Feb 2011 | Tags: git

OrgCamp Paris 2011 review

Yesterday afternoon, I was at the first OrgCamp in Paris.

Read more

23 Jan 2011 | Tags: orgmode orgcontacts

OrgCamp 2011

Read more

17 Jan 2011 | Tags: orgmode

Color contrast correction

I finally took some time to finish my color contrast corrector.

Read more

23 Nov 2010 | Tags: emacs

Elisp color manipulation routines

Last week, I spent some time implementing various color manipulation routines. The ultimate goal was to find a way to determine if a text in a certain color was readable on a background with a different color.

Read more

20 Nov 2010 | Tags: emacs

Org-mode and holidays

Org-mode has a nice option which allows you to show week-end days in a different color in your agenda. That means that Saturday and Sunday (when I do not work) are fontified with org-agenda-date-weekend.

Read more

15 Nov 2010 | Tags: emacs orgmode

Google Maps for Emacs: moving, caching and home

Last week, I worked on my Google Maps for Emacs extension. I've introduced a new format handling for locations which include the longitude and latitude. The initial format was just a string describing the location, which was obviously too limited.

Read more

08 Nov 2010 | Tags: emacs googlemaps

Icon category support in Org-mode

My latest patch for Org mode has been accepted by Carsten today. It adds support for custom category icons in all views, like agenda or todo.

Read more

04 Nov 2010 | Tags: emacs orgmode

Transparent GIF support in Emacs 24

Last week, I wrote a couple of patches to add support for transparency when Emacs is displaying GIF images.

Read more

02 Nov 2010 | Tags: gif emacs

No more dashes in Emacs 24 mode-line

We all know the good old Emacs mode-line you got under every window. Since the beginning (a long time ago), it starts and ends with dashes. I've proposed a patch to remove them.

Read more

20 Oct 2010 | Tags: emacs

Enhancing Emacs mouse avoidance

Recent Emacs versions have a wonderful capacity to hide the mouse pointer as soon as you type and insert characters in a buffer. This is controlled by the `make-pointer-invisible' variable, which is set to t by default.

Read more

19 Oct 2010 | Tags: emacs

Why notmuch is not much good

I've recently got a mail from one of my faithful reader, asking why not considering notmuch.

Read more

07 Oct 2010 | Tags: sieve mail

Gnus and Gravatar support

This last couple of days I've been dedicated making Gnus… fresher.

Read more

25 Sep 2010 | Tags: emacs gnus gravatar

Gnus news is good news!

As I already wrote too many times, I've started to use Gnus 6 months ago, and never looked back.

Read more

23 Sep 2010 | Tags: emacs gnus

Emacs, Org, whatever the weather!

Another week, another Emacs extension!

Read more

08 Sep 2010 | Tags: emacs orgmode googleweather

Emacs and OfflineIMAP

I recently decided to use OfflineIMAP to synchronize my mails on my laptop. It's a great piece of software, and allows me to read my mail while I'm offline.

Read more

03 Sep 2010 | Tags: emacs offlineimap

Emacs, Google Maps and BBDB

Today's fun idea was to put all my contacts stored into BBDB on a Google Maps' map, using my Google Maps extension for Emacs.

Read more

18 Aug 2010 | Tags: emacs bbdb googlemaps

Update on rainbow-mode

rainbow-mode had a big success and good feedbacks when I released it for the first time a couple of months ago.

Read more

10 Aug 2010 | Tags: emacs

Porting D-Bus to XCB: story of a failure

Even if I recently stated I lost some of my faith in XCB, I still sometimes hack things to add support for it.

Read more

29 Jul 2010 | Tags: dbus xcb

M-x google-maps

Since I have started to use Org-mode, I though it was missing something to have appointment locations on a map. Of course, it's easy to get a LOCATION property from an entry, and then browse-url on Google Maps.

Read more

28 Jun 2010 | Tags: emacs orgmode googlemaps

Announcing rainbow-mode

While customizing Emacs this last weeks, I had the need to customize also the color theme.

Read more

16 Jun 2010 | Tags: emacs

Desktop notification support for Emacs

This last weeks, I've worked on implementing the Desktop Notification Specification into Emacs.

Read more

09 Jun 2010 | Tags: freedesktop emacs notify

Announcing erc-track-score

A couple of months ago, I've started using ERC to hang out on IRC.

Read more

07 Jun 2010 | Tags: emacs erc

Thoughts and rambling on the X protocol

Two years ago, while working on awesome, I joined the Freedesktop initiative to work on XCB. I had to learn the arcane of the X11 protocol and all the mysterious and old world that goes with it.

Read more

01 Jun 2010 | Tags: x11 ewmh

Making startup-notification XCB native

I'm trying to work on XCB this week. And today I've started to accomplish the second step of a long term goal: making an X11 only library using XCB as its primary interface instead of Xlib.

Read more

24 May 2010 | Tags: freedesktop xcb startupnotification

Announcing muse-blog

Digging into the fabulous world of Emacs and Lisp, I wanted to use it to build my personal Web site and my blog.

Read more

19 May 2010 | Tags: emacs muse

Python cairo and XCB support

cairo has a Python binding (pycairo) since a long time, and some months ago a Python binding for XCB (xpyb) has been released.

Read more

22 Dec 2009 | Tags: python cairo xcb

Teething troubles

It's not that often that I start something from scratch. It's an amazing feeling to start a new project, to start writing something new. I like that. It's creation, it's an artistic part of our computing stuff. I feel like a code artist.

Read more

20 Dec 2009 | Tags: python cython

Courier to Dovecot migration

This week, I've managed to migrate from courier-imap to dovecot at work. I always had a good experience with dovecot, and I still have one.

Read more

02 Oct 2009 | Tags: dovecot mail imap

Various news: what happend during summer

It's been a while since I blogged about something. So here's a bunch of things I've done the last month.

Read more

22 Sep 2009 | Tags: lua awesome gsoc

TODO list management

My fellow Debian developer Steve Kemp told us about his TODO list management.

While reading his post, I was constantly thinking "been there, been there buddy". Yeah, I've been.

Read more

10 Jul 2009 | Tags: todo

Upgrading to dovecot 1.2: hello Sieve!

Last year, I told you I wanted to use Sieve to filter my mail. I did not switch, because of the lacking implementation of some Sieve features inside Dovecot, my preferred IMAP server.

Read more

09 Jul 2009 | Tags: sieve dovecot mail imap

Taking the other direction

I've started to develop awesome more than 18 months ago, and somehow I feel it's time to stop a bit and think where we come from and where we are going to.

Read more

15 Apr 2009 | Tags: awesome

OpenOffice is better as a pager than as a text processor

Since several month, awesome users have reported a bug with OpenOffice.org. When using OOo and clicking on a menu, or using the mouse wheel to read a document, the currently selected tag (desktop) will change automagically to another one.

Read more

11 Feb 2009

startup-notification ported to XCB

Since Tuesday, I've begun to work on XCB portage of the startup-notification library.

Read more

29 Jan 2009 | Tags: freedesktop startupnotification xcb

Rants about Lua

I've started using Lua some months ago, while looking for a more powerful way to configure awesome. At this time, around March 2008, Lua seemed to be the best language to integrate inside the core system of awesome.

Read more

30 Dec 2008 | Tags: lua

Security bug found in Imlib2

Yeah, I'm the proud discover of CVE-2008-5187.

Read more

22 Nov 2008 | Tags: cve imlib security

The eggtray problem

I still don't know why but many GTK+ applications use something called eggtrayicon. As far as I know, eggtrayicon.c is a file written in 2002 by Anders Carlsson which implements the Freedesktop.org system tray procotol for GTK+ applications.

Read more

03 Oct 2008 | Tags: x11 gtk systray freedesktop

Unexpected VARMon new release

This has been 4 years since I released a new upstream release of VARMon, the DAC960 administration tool.

Read more

18 Aug 2008 | Tags: linux

ATL1E support in 2.6.26-1

Ben Armstrong opened an ITP for the ATL1E NIC driver, which is found on some Asus EeePC laptops. So, as suggested by Maximilian Attems, I provided a clean patch for this driver, made from a cherry-pick from the linux-netdev 2.6.27 tree. It has been committed into the 2.6.26-1 Debian kernel, which will be furnished with Lenny.

Read more

31 Jul 2008 | Tags: linux debian

EWMH and XRandR

Today I decided to add some EWMH support to awesome. It now supports a bunch of this extensions quite nicely.

Read more

27 Dec 2007 | Tags: x11 ewmh

Kicking out Web spammers with DNSBL

Every project has its story. Every war has its winner, and its casualties. They were 20 millions men, fighting for their freedom.

And you'll never know their story.

Read more

15 Jan 2007 | Tags: apache dnsbl mod_defensible security