Skip to content

Comment your code

Commenting the code is unnecessary unless your code is really bullshit. I mean you do not need to paraphrase your code. This is really loosing time and efoort. But there is some tips you should ALWAYS follow.

Read more…

Check your disk space…

Here a very simple code:

#!/bin/sh
df | grep -q '^/.*[09][0-9]%'

It is a simple script to check the remaining space on the disk drives of your system. Basically, I written this one because I use a VPS and the disk space is quite expensive.

Read more…

Error-free programming

There are diffrent ways of coding. All is related to the programmers. Some prefers a copy and paste of a code found on Internet, others use new code from their conception and some others love frameworks.

There is no rules.

BUT, programming is one of my job (I work on security, architectures and some other fields around the computing science) and I can say, there are two ways of coding: the “error-prone” coding and the “error-free” coding.

The “error-prone” coding is a way to code where other programmers using your code will have bad surprises. The “error-free” coding, on the other hand, is a way that other programmers will be warned if they try to use the code in a bad way.

Basically, the “error-free” coding is just a way to code for others. Including clarity and simplicity. Usually, it is a “KISS” (keep it simple and stupid) approach but sometimes the code can be very tricky, alwas including resilient.

The resilience can be adapted to code. The code should be resilient to issues (I mean bugs). A resilient code will be usable in many cases and will be reused. Usually, coders are reluctant to reuse a code written by pairs due to the understanding fo “what it does”.

How to code in a error-free way?

No secret. You must follow the good practises of programmation. Some of them are: use correct indentation, clean code (in the way it is readable), use explicit variable names, don’t try to optimize your code before it works. Try to separate the operations to be done is smaller  ones. These things.

But error-free coding does better. In the folloing articles about this subject, I will give you some advices about what good code should be. I don’t expect you will follow everything but if you follow some of the points exposed, you will be surprised about the quality of deliveries.

 

 

 

Sécurité dans le cloud… ben voyons…

Aujourd’hui, c’est le cloud… sinon rien…

Même pour les mots de passe… C’est certainement là qu’ils sont le mieux protégé! Qui pourrait trouver votre mot de passe de passe dans la vapeur laiteuse d’un nuage qui s’apparente tellement au fog anglais?

En fait, tous ceux qui, comme moi, ont approché de près ou de loin (en ce qui me concerne: de loin) la sécurité informatique vous le diront: les mots de passe sont tous cryptés à l’aide de l’algorithme SHA-1 (ou, sinon, l’algorithme MD5 même si c’est moins bien). Et pourquoi donc ceux-là et par triple-DES ou Blowfish?

Et pourquoi le pas utiliser l’algorithme du poisson de lune (blowfish) alors qu’il a un nom plutôt joli (contrairement aux autres)? Pour une raison assez simple: dans le monde de l’informatique, il y a 2 types de cryptage: “one-way” (on parle de fonction de hachage cryptographique) et le type “two-way”, c’est à dire capable de dé-crypter l’information.

Dans le cas d’un mot de passe, on se moque de décrypter ce dernier. Au contraire, un bon mot de passe est stocké sur un serveur de manière crypté de manière à ce qu’on ne puisse pas le décrypter. Imaginez une serrure avec une clé: la clé doit pouvoir faire fonctionner la serrure, mais on doit éviter de pouvoir reproduire la clé.

Cela signifie quoi? Que chaque fois que vous signalez à un site WEB que vous avez perdu votre mot de passe et que celui-ci vous renvoie l’ancien mot de passe plutôt que d’en générer un nouveau, vous ne devez pas avoir confiance dans la sécurité du site: soit le mot de passe est stocké en clair soit il est crypté mais décryptable (donc potentiellement, un pirate informatique peut retrouver le mot de passe sans pour autant être de la NSA).

Que penser des sites qui vous promettent la sécurité? L’exemple qui me vient à l’esprit est Bankin’ (je vous ai mis l’adresse WEB). Sur la page de garde, ils promettent une sécurité ABSOLUE: “Serveurs sécurisés, surveillés 7/7 24/24, vérifiés quotidiennement par Norton Secured. Aucune transaction possible sur Bankin’ et un système d’alerte qui sécurise vos finances.” Il précisent même: “Aux normes sécurité du PCI Security Standards Council, comme les institutions financières, avec les connexions aux banques gérées par un consortium bancaire” (c’était en 2015 lors du lancement).

C’est sérieux, non? Ma foi, oui… En lisant les articles de presse, on en est persuadé: https://bankin.com/press. Et oui, ils ont pignon sur rue avec AXA assurances qui les chaperonne. Quel est le principe du site? Donner accès à vos comptes bancaires afin que le site vous facilite la gestion de celui-ci. Très bonne initiative. Sauf que, pour se connecter aux sites bancaires, ils doivent conserver les identifiants et mots de passe de leur clients (et donc de VOS comptes bancaires).

Je décode leur charabia: Tout d’abord le PCI Security Standard Council, c’est quoi? “The PCI Security Standards Council (the “Council”) provides a variety of tools, questionnaires, guidance, FAQs, training resources and other materials and information to assist organizations seeking to achieve compliance with its standards (the “Standards”). Third party products and services are also available, but the Council does not endorse or recommend any such third party products or services, and advises all organizations seeking to achieve compliance to become familiar with the Standards and related requirements before purchasing third party products or services. Ultimately, all applicable requirements must be met in order to achieve compliance, regardless of whether or what third party products or services are used.” En français simplifié: grosso modo, c’est un forum de discussion entre professionnels qui ne garantit en aucun cas les produits et services (j’ai souligné dans le texte). Il est intéressant de voir le board of directors.

Mais passons. La sécurité, c’est avant tout une histoire de confiance. Quand les sites avouent avoir été piratés, comment voulez-vous qu’on les croient sérieux? Yahoo et ses millions de comptes. Sans parler des sites de rencontres extra-conjugales! Est-ce que vous iriez jusqu’à mettre votre adresse e-mail dessus? Sérieusement?

Bref, tout est piratable. Bien sûr des entreprises comme Facebook ont vraiment intérêt à protéger les données confidentielles de leurs clients. Malgré cela, personne n’est à l’abri. Quels conseils puis-je donner?

Choisissez un mot de passe (ou une phrase comme: “Mon dromadaire aime les bananes”) assez compliqué mais que vous retiendrez. Un mot de passe différent par messagerie (une fois la messagerie piratée, vous êtes foutu).

Un mot de passe à part pour Facebook (voire même, une adresse différente de votre adresse officielle).

Et un mot de passe commun pour les sites dont vous n’avez cure. La plupart des sites que vous possédez peuvent être piratés. Ce n’est pas très grave.

Ne laissez pas vos numéros de cartes bancaires sur les sites de vente en ligne. C’est le risque maximal. Ni sur votre navigateur Google, le numéro est transmis sur leur serveur. À ce propos, j’ai appris que les mots de passes tapés dans le navigateur et que vous avez demandé à sauvegarder sont stockés non pas sur votre machine mais aux Etats-Unis, chez Google.

Voilà. N’hésitez-pas à me poser des questions si vous avez des doutes, je pense que j’écrirai d’autres articles sur la sécurité.

Gandi Simple Hosting

Cet article a été rédigé depuis plusieurs mois et je n’utilise plus la solution Gandi Simple Hosting pour mon site. Les raisons sont exposées dans la partie “Verdict”.

Read more…

Mon site a crashé.

Mon site WEB a explosé en vol. Ou plus exactement, le serveur a eu un violent coup de chaud. Je m’apprêtais à installer la version 3.4 de MongoDB. Par simple acquis de conscience, j’ai redémarré mon serveur avant. Ce que je ne fais habituellement jamais. Sauf que, parfois, on a des idées pas très futées.

Read more…

Search engines

No surprise. Google is the number one in many aspects.

Looking in the numbers of September 2016, I can see: 3,828,299 pages scanned by the Google engine. At this number, you can add 909,422 more for mobile rendering. Then a total of just less than 5 millions pages scanned by Google on my website. I’m impressed.

The second crawler found on my website is… MJ12. I mean the Majestic Bot. Not a useful one, just a software which check for backlinks. Basically, there is no reason to accept it.

Then, you find Bing, the Microsoft search engine with 45,874 scanned pages! Too bad… Don’t be surprised to see so bad results in Bing when requesting it. They do not refresh their information. I suspect they scan more the “premium ones”. I mean, I do not challenge with some competitors like The Washington Post. Of course. I am just an obscure website. But, compared to Google, I found Bing not very fair. And, as you can expect, I do not receive visits from Bing.

Of course, I have more than 3 search engines but others are insignificant. Qwant, the french search engine has scanned about 1000 pages in 5 days, about 6,000 in a month. This is not ridiculous for this one because it is a fairly new search engine and I suspect they buy results from other famous search engines. But 6000 compared to 46000 (Bing), this is amazing. Because the newcomer could compete with a giant.

Note crawling the web means 2 things: having space to store the results. When it is text, it is quite simple. And a good bandwidth. Because scanning a page, it’s about 10 kilobytes. Scanning my website means for Google, loading about 500Mb a day. You can imagine the bandwidth you need to achieve this…