Cloud Computing

NIST Définition

Le Cloud Computing est l’ensemble des disciplines, technologies et modèles commerciaux utilisés pour délivrer des capacités informatiques (logiciels, plateformes, matériels) comme un service à la demande.

Cinq caractéristiques essentielles :

  1. Accès réseau universel : (pc, tablette, mobile)
  2. Mise en commun (Pooling) de ressources : dans un environnement de type Cloud Computing, on ne pense pas en nombre de serveurs, taille de disque, nombre de processeurs, mais en puissance de calcul, capacité totale de stockage, bande passante disponible.
  3. élasticité : grâce au Cloud, il est possible de disposer de plus de ressources très rapidement pour soutenir une forte demande (par exemple, pour garantir une bonne expérience d’achat sur une plateforme web d’e-commerce durant les fêtes de fin d’année). Inversement, au-delà de la provision de ressource, il est possible avec le Cloud de diminuer les ressources utilisées (par exemple en cas de baisse d’activité sur cette même plateforme web d’e-commece) si celles-ci sont supérieures à ce qui est nécessaire.
  4. Libre-service / self service : dans un environnement de Cloud Computing, il est possible à un utilisateur de consommer les services ou ressources sans pour autant nécessiter une demande d’intervention auprès du fournisseur  : équipe IT ou fournisseur externe (par exemple, un développeur qui souhaite tester son application sur une machine virtuelle représentative d’un poste standardisé de son entreprise peut, au travers d’un portail web, provisionner et utiliser une machine).
  5. Service mesurable et facturable : le fournisseur est capable de mesurer de façon précise la consommation des différentes ressources (CPU, stockage, bande passante); cette mesure lui permet de facturer à l’usage le client.

Trois modèles de services :

SaaS
PaaS
IaaS

Quatre modèles de déploiements :

Cloud public
Cloud privé
Cloud communautaire
Cloud hybride

[MySql] FIND_IN_SET() function

Objectif: update multiple rows in mysql

Quick Solution (for example):

UPDATE my_table SET my_field=first_value WHERE id=1;
UPDATE my_table SET my_field=second_value WHERE id=2;
UPDATE my_table SET my_field=third_value WHERE id=3;
...

Problem : performance

Other solution with function FIND_IN_SET() :

UPDATE `my_table`
SET my_field = find_in_set(id, 'first_value, second_value, third_value, ...')
WHERE id IN (1, 2, 3, 4, ...)

Find more explaination :
http://www.w3resource.com/mysql/string-functions/mysql-find_in_set-function.php

Jquery Ajax error handling to ignore aborted

Error comes from when the web page refresh too much fast than it can load.

For example, a web page load a huge data, even with ajax pagination, and users refresh multiple times of this page

 

Solution which resolved this problem :

var unloaded = false;
$(window).bind('beforeunload', function(){
    unloaded = true;
});

$(document).ajaxError(function(event, request, settings) {
    if (unloaded || request.statusText == "abort") {
        return;
    }
    ...
}

Ref.
http://stackoverflow.com/questions/4807572/jquery-ajax-error-handling-to-ignore-aborted

[css] Table set fixed column width

Background : Using JQuery Datatable generated dynamically table but push columns off the layout.

Example :
Image 1

Solution :
Add table-layout to the css, and of course give width to each column :

table-layout: fixed;
word-wrap:break-word;

The reason why :
Fixed table layout algorithm:
The horizontal layout only depends on the table’s width and the width of the columns, not the contents of the cells
Allows a browser to lay out the table faster than the automatic table layout
The browser can begin to display the table once the first row has been received

Ref from : w3schools

[Framework] Pourquoi utiliser un framework ?

Pourquoi utiliser un framework ?

Un framework permet de réduire les temps de développement des applications en répondant de façon efficace aux problèmes les plus courants rencontrés par les développeurs. Il inclut généralement de nombreuses fonctionnalités prêtes à l’emploi dont les implémentations sont bien rodées et utilisent des modèles de conceptions standard et bien implémentés. Le temps ainsi gagné sur les questions génériques pourra être mis à profit pour les parties spécifiques de l’application.

De plus, l’utilisation d’un même framework dans différents projets contribue à l’industrialisation du processus de développement : la structure de l’application et les méthodes de programmation sont standardisées, les compétences des développeurs sont réutilisables dans chaque projet.

L’utilisation d’un framework est très fortement recommandée, afin de ne pas avoir à réinventer la roue et d’éviter les erreurs de conception classiques qui créent des problèmes de sécurité ou tout simplement des bugs.

Source depuis : http://www.smile.fr

[Git] Git diff without comparaison file mode

Issue when execute git diff command on a file and got :

diff --git a/your_file b/your_file
old mode 100644
new mode 100755

If you see this, it is because the permissions of your_file has changed.
For information, the unix file permission mode(644=rw_r__r__ which means read and write for user, only read for group and only read for others, the same for 755=rwxrw_rw_, x for executable).

To disable the comparaison of file mode, the command to execute :

git config core.filemode false

[PHP] PHP code showing on the page instead of being executed

Environment :
Ubuntu Server 14.04
PHP 5.5.9

Problem :
PHP code showing on the page instead of being executed

Reason :
The reason that I met this problem is because the PHP file I used begin with (<?) instead of (<?php) which the short tag is deprecated by default.

Solution :
Find php.ini in /etc/php5/apache2, make sure the option short_open_tag=On, if not, change if to On.

Another solution more complete from stack overflow : http://stackoverflow.com/a/5121589/740546