By supporting actively the web innovation and expansion, devquotes team will provide any Google Ingress invitation needed for people who express the wish with the rules below.

Rules to get your invitation:

  1. follow @devquotescom on twitter
  2. tweet: thanks @devquotescom for providing me a #GoogleIngress invitation – [YOUR EMAIL HERE],
  3. wait,
  4. enjoy Google Ingress’ features!
  5. Expect some fresh new posts @devquotescom very soon.

Great articles about Google Ingress:


, ,

If you’re a web developer buidling applications that heavily rely on Javascript chances are you’ve heard about CoffeeScript. If you don’t, you’re probably going to love it.

CoffeeScript outputs Javascript. It seamlessly provide a elegant syntax by borrowing ideas from in Python and Ruby while keeping Javascript’s spirit intact.

And did you know that it’s currently the eleventh popular language on Github?


But wait, another language ?

Striclty speaking, CoffeeScript is a language like any other. But behind the curtains, it feels more like SASS to CSS than a truly different language to learn.

It’s quick an easy to learn, it’s light enough to not get in your way and it’s fully interoperable with Javascript. These three key points are responsible for CoffeeScript now being popular.

Another important point is that once compiled, CoffeeScript line numbering often matches to the original. It’s not always true, as some some compact CoffeeScript constructs translates into more verbose forms, but it’s nowhere comparable to the mess usually obtained from others whatever-to-javascript compilers.

It may be off by twenty lines on a long script, given small differences accumulates, but finding the original code that compiled to what is seen in Firebug is really easy as you’ll see along this article. Sourcemap is on its way, thanks to CoffeeScriptRedux

Anyway, let’s get started:

Translates to :

Just from this example can be notice the first borrowings. CoffeeScript uses tabs to handle code blocks, getting rid of curly braces like Python. There’s also the implicit return borrowed from Ruby.
The function keyword is replaced by the ->, arguments are placed at the before the keyword, in a mathematical fashion.

It also comes with very useful additions, like automatic lexical scoping. Declaring variables is implicit and it behaves exactly like the original one, given a value is affected to the variable.

The resulting Javascript is more verbose than the first example but it’s still easy to understand what’s going in both versions. That’s one of the strongest point CofeeScript has, it outputs readable Javascript, the very same one that may had been written manually.

WTF Javascript

Next to simplifying Javascript, CoffeeScript also improves it. Just have a look at how much Javascript’s == operator is a strange beast, meaning non-sense is to be expected.

Direclty quoted from Douglas Crowford’s brilliant JavaScript: The Good Parts

The trick in Javascript to avoid those is to rely on === which kindly returns false if types of operands aren’t the same or compare them as expected.

CoffeeScript throws == out through the window, == being translated to ===. Given the amount of bugs it avoids, it’s already a damn good reason to adopt CoffeeScript.

Release the kraken

Hordes of little additions that makes a programmer’s life much more easier are baked in:

CoffeeScript ain’t magical, some constructs leads to some plumbing like splats require slicing in this case. The point here is, you never read the compiled Javascript except when debugging. Slicing is sufficiently clear here to identify its CoffeeScript counterpart, allowing to easily find the original line that caused the problem.

There’s also shortened syntax, to build one liners that don’t looks like egyptian glyphs :

It’s just Javascript, with less boilerplate. while can be placed after its block, in a do-while fasion. It also comes with its negated brother, until. Of course, both also comes in a traditionnal way where the block is after the keyword.

Loop Comprehensions

To ice the cake, CoffeeScript borrows a killer feature from Python, list comprehensions :

Besides the automatical naming that prefixes underscores, it’s pretty close to the javascript that may had been written by hand. Of course it can be wrote in a more traditionnal fashion :


And many others

The list of supported constructs is available on the [official website]( and it fits a single page. That’s how light CoffeeScript is.

You’ll find a better syntax to declare objects (hashes), array slicing and ranges, new operators and aliases, a clean syntax for class inheritance with a super keyword and even a provides a => instead of -> to handle this in callbacks.

It’s worth noticing that if => is used instead of -> in class definitions, it will bind the method to the current instance, allowing it to be passed around callbacks without having to manually binding before.

Going further

CoffeeScript is Javascript on acid. Yet it’s still Javascript. Same behavior, same logic without all the rough edges.

That also means you can **use any Javascript library**. And it works the
other way around, you can write some CoffeeScript code that will be used
by Javascript, transparently.

For example, using jQuery :

It had been packaged for every major framework in most popular
languages, so it can be quickly installed : Rails, Django 1 and 2, Symfony, Play.

And to learn more about Coffeescript, just wander on its official

, , ,

You all know Piwik ?

You should :) It’s a good and well known alternative to Google Analytics which respects visitors privacy and lets you in control all your data.

Many websites are using this opensource script.

The problem is (there’s always a problem), that it seems that Piwik server have been breached and that 1.9.2 version has been corrupted.

Take a look at their forum:


When i’m writing this post, it seems that the has been fixed.
No clue of this payload in sources.

How many people updated their Piwik installation since the release of the 1.9.2 version (the 9th november 2012) and this security issue (discovered the 26th) ?

Good question…


As i know, someone downloaded the on 14th. It seems the breach is posterior to this date? If you find any clue, just let us know !

We’re investigating !


Btw have at least check on theses files:

  • core/Loader.php
  • core/DataTable/Filter/Megre.php

if you see any base64_decode/gzinflate or eval function, you should be like that :




The complete solution for cleaning up your analytics installation is described on the official forum

Expect a waves of scan at your Piwik installation and expect a 1.9.3 soon #trollface

, , , ,


Today I replaced my main hard disk in my workstation. This is not something I am usually worrying about because installing Windows 7 is pretty straightforward.

But this time is different: on my latest computer, I didn’t plug any optical drive reader. Why not? Well because it’s heavy, loud, consumes power even when idle, and is pretty much useless… except today.

Here I’ll present the trivial solution that I found.

Read the rest of this entry

, , ,

Varnish & phpmyadmin

Hi guys,

Hope all of you know about Varnish, the http cache server. A very good and stable one.

But last week i had some issues regarding configuration of my phpmyadmin on it.


Phpmyadmin issue where :

Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.

Eveywhere you’ll find this is an issue related to session temp directory configuration. FALSE. THIS IS BULLSHIT.

Here is the solution:

Firt of all you need to setup your varnish for the domain or the phpmyadmin directory not to be cached. I set this on a specific back office subdomain name for all my administration tasks (just restrict this access by ip AND passwd on htaccess btw).

Here is the related rules:

sub vcl_fetch {

        if (req.url ~ "XXXX.YYYYYY.TLD") {

Then you’ll have to configure your phpmyadmin directory. Software is not smart enough to understand it’s run behind  varnish, so he’ll try to redirect you to your backend server (which is, I HOPE, not available by public adress/port). So configure this directive « $cfg[‘PmaAbsoluteUri’] » swith your phpmyadmin public internet URL.
And then setup auth_type with « http ». Problem comes from « cookie » auth. I still didn’t resolv this issue but at least this configuration works !



$i = 0;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysql if your server does not have mysqli */
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['PmaAbsoluteUri'] = 'http://XXXXXXXXXXX/';


HF dudez.

, , , ,

In the goal to be harder better faster geeker than ever, this article will help you absolve your incompleteness and your total lack of ingenuity.

With your multi-touch keyboard so you’ll know that holding down the shift or control key when you click on the tabs, they will then be grouped into a single selection with the obvious aim to assemble crowds for more tame.

Selection with control of my favorite sites:

Selection with shift:

Pin / to favorites / close:

Admit that it is horny.

, , , , ,

Le risque des éthylotests discounts

Vous recherchez sans doute des éthylotest pas cher mais la vraie question, est-ce possible de trouver des éthylotest discount quand on sais que cela peut sauver des vie ?



Ethylotest pas cher

Que se passerait-il si vous faisiez pleinement confiance au résulta t de votre alcootest de faible qualité !

Les accidents avec alcool sont des accidents dans lesquels au moins un des conducteurs impliqués a un taux d’alcoolémie supérieur au taux maximum autorisé. Dans 85 % des cas d’accidents mortels liés à l’alcool, les responsables étaient des buveurs occasionnels. Il suffit souvent d’une fête de famille, d’un pot entre amis, d’un repas bien arrosé. L’alcool est à l’origine de 34% des accidents mortels toute l’année. Cette proportion s’élève à 45% dans les accidents mortels à un véhicule seul sans piéton. L’alcool est impliqué dans la moitié des accidents mortels survenus le week-end et il est la principale cause de 42% des accidents mortels touchant les jeunes de 18 à 24 ans l’été. Le risque d’accident mortel augmente considérablement avec le taux d’alcoolémie. Tout conducteur ou accompagnateur d’élève conducteur en état d’ébriété compromet gravement la sécurité de ses passagers et des autres usagers de la route. En conséquence, il est interdit de conduire avec un taux d’alcool égal ou supérieur à 0,5 gramme par litre de sang, soit 0,25 mg d’alcool par litre d’air expiré.

Sachez le !

Les forces de police et de gendarmerie pratiquent des dépistages du taux d’alcoolémie des automobilistes et des accompagnateurs d’élèves conducteurs :
En cas d’accident de la circulation ayant occasionné un dommage corporel, même si l’automobiliste n’en est pas responsable,
En cas d’infraction au code de la route (même en dehors d’un état d’ivresse manifeste).

Autres cas : Des dépistages peuvent être également ordonnés par le procureur de la République ou les officiers de police judiciaire, en dehors de toute infraction.



Si votre taux d’alcool est compris entre 0,5 et 0,8 gramme par litre de sang :
> Amende forfaitaire de 135 Euros et la perte de six points du permis de conduire.
En cas de comparution devant le tribunal (par décision du procureur de la République ou de contestation de l’amende forfaitaire), vous risquez également une suspension du permis de conduire.
Si votre taux d’alcool est supérieur à 0,8 gramme par litre de sang :
>   2 ans d’emprisonnement et 4 500 euros d’amende (ce délit donne lieu à la perte de six points du permis de conduire).
Enfin, si vous provoquez un accident en conduisant sous l’emprise de l’alcool, l’amende sera portée à 30 000 euros si vous occasionnez des blessures graves et vous serez passible d’un emprisonnement pouvant aller jusqu’à 10 ans et d’une amende pouvant atteindre 150 000 euros si vous provoquez la mort d’un autre usager de la route.

0,5 Gramme par litre d’alcool ; c’est deux verres :

Un petit rappel sur les effets de l’alcool dépendent du type d’alcoolisme.

Alcool aigu : l’alcool ingéré imprègne le système nerveux dans un temps relativement court.
Plusieurs phases peuvent être distinguées en fonction de la quantité ingérée (et de la personne).
Etat d’ébriété (0,3 et 1g/L de sang) : il y a une excitation psychomotrice
avec levée d’inhibition puis euphorie et enfin logorrhée (flot de paroles), troubles moteurs, réflexes ralentis.

Etat d’ivresse (1 et 3g/L de sang jusqu’à 5g/L selon les individus) : il est
caractérisé par des troubles de la conscience, de la parole, de l’équilibre, des gestes, des actes pouvant aller jusqu’à des violences graves + nausées, vomissements.
Un comportement furieux et des hallucinations peut être suivi d’un effet sédatif.

Etat comateux (4g/L de sang chez certaines personnes) : ralentissement
des rythmes cardiaques et respiratoires qui entraîne le comas éthylique et parfois la mort.

Alcoolisme chronique :Le foie et le cerveau sont les plus atteints.

L’appareil digestif :

  • oesophagie, gastrite
  • cancer des voies aéro-digestives (pharynx) qd association avec tabac
  • pancréatite chronique
  • stéatose (dégénérescence graisseuse des hépatocytes) qui peut être suivi par une cirrhose (destruction des hépatocytes) : stade ultime de la maladie qui peut entraîner la mort par coma hépatique ou hémorragie digestive.

Le système nerveux :
– la dépendance
– atteinte nerveuse périphérique (nerfs) : polynévrite des membres
inférieurs, névrite optique
– névropathies : névrose ou psychose.

Autres atteintes :

  • divers cancers
  • affections cardio-vasculaires : cardiomyopathies
  • atteinte de la moelle osseuse (risques hémorragiques, anémie, baisse des défenses immunitaires)
  • troubles gestationnels : l’alcool passe la barrière placentaire (trouble de l’embryogénèse) ? syndrome de l’alcoolisme foetal.


, , ,


GNU/Linux Debian Lenny security support has been dropped since a few days (since the 6th of February to be exact). All administrators are encouraged to upgrade their system from Lenny (5.0) to Squeeze (6.0) as soon as possible.

In my previous article I explained how I migrated my dom0 to Squeeze, so now it’s time for me to explain how I did the same thing for domUs.

Read the rest of this entry


GNU/Linux Debian Lenny security support has been dropped since a few days (since the 6th of February to be exact). All administrators are encouraged to upgrade their system from Lenny (5.0) to Squeeze (6.0) as soon as possible.

I only had one server left running Lenny, so yesterday I decided to upgrade it. Everything went… well, I won’t say smooth but less than 24 hours later, everything is running again. Not so bad for a migration. :)

Read the rest of this entry

FTP sniffing virus

Something new and completely unexpected happened to me last sunday night around 8pm (what totally fucked up the end of my weekend).

First I was alerted by Google Webmaster Tools (GWT) that my websites were not in good health, just as it’s shown in this screenshot I found on Google images:

Read the rest of this entry