vendredi, avril 11, 2014

L'anglais, langue originelle

Un lieu commun est de dire que l'anglais s'est imposé comme langue universelle parce qu'elle la langue du commerce. Historiquement, l'observation est généralement valable, or je réalise seulement maintenant que l'explication est devenue nettement insuffisante pour expliquer sa suprématie actuelle.

Si la place de l'anglais comme langue universelle est aujourd'hui indélogeable, c'est bien, plus précisément, parce qu'elle a su s'imposer comme la langue des échanges.  Cela va effectivement bien au-delà du commerce et des affaires, englobant, par extension, les mondes de l'information et des communications, terreaux éminemment fertiles pour l'adoption de normes universelles.

Le développement de l'informatique, et de l'Internet en particulier, a fait naître une myriade de termes, mais surtout d'acronymes, servant à désigner des concepts nouveaux, à une vitesse telle que les cultures ont à peine le temps de les assimiler et de se les approprier (par exemple, il aura fallu plus de vingt ans au Québec pour adopter le terme « courriel », alors que les Français utilisent toujours de la forme anglaise, en francisant parfois l'orthographe: « mél » ). Or, l'anglais s'est rapidement imposé comme langue d'origine pour la description de ces nouveaux concepts et les acronymes qui en résultent, s'imposant comme les référents universels des concepts eux-mêmes.

Par exemple, si vous regardez maintenant la barre d'adresse de votre navigateur [concepts relativement bien assimilés en français] vous verrez que l'URL (Uniform Resource Locator) qui y paraît commence par les lettres HTTP (Hyper Text Transfer Protocol), le nom d'un protocole d'échange sur lequel repose le « web ».  Bien qu'il ne serait pas techniquement impossible de localiser [un néologisme issu de l'anglais] tous ces termes et leurs acronymes, le faire en plusieurs langues serait source de confusion et deviendrait rapidement un véritable casse-tête, alors qu'il est si commode pour tout le monde d'utiliser l'acronyme d'origine.

Inscrites directement dans les différents idiomes programmatiques et les nouveaux espaces de noms, ces terminologies anglophones ont fixé définitivement l'anglais comme l'ultime langue nécessaire à la compréhension, l'étude et le développement des applications informatiques. Même au-delà, on pourrait dire que la langue de Shakespeare est désormais l'idiome génétique de l'information.

jeudi, février 27, 2014

Why CrashPlan Kicks Ass

CrashPlan is righteously presenting itself as
"The most comprehensive backup solution".
Commenting on Mauricio Prinzlau's article, How Crashplan Online Backup Service Trumps Competition, I felt I needed to give some complementary indications on why Code 42's CrashPlan software is such an efficient and flexible backup solution. In the end, I felt the comment itself would make a great blog post! So here it is.

One thing that is pretty cool with CrashPlan is that you can backup your files accross your different local or remote computers, and you are even allowed to share backup storage space with friends. It actually allows you to do that with the free version.

To save some bandwidth, you can backup large data sets on a local drive, copy it on a portable drive and import it on any other computer with CrashPlan running (yours or your friends'), and CrashPlan will automatically identify the backup and start syncing it right away across the network.

It's also easier when you need to restore a lot of data: just copy and import the backup set back to the original computer, and you won't need to rely on the network or CrashPlan to send you a hard drive to restore your data [yes, they can].

As the data is compressed and encrypted, the owner remains the only person to have access to the actual backed-up data, so privacy-wise it is bullet-proof, too. Just keep your password strong, and to yourself.

Using a combination of paid licensing (where you need to split a lot of data in multiple "backup sets") and free licensing for computers with simpler needs, you can manage your own off-site backup cloud for the entire office, as well as all your family members and your friends, while keeping the overall backup budget to the lowest and maximizing your storage and bandwidth cost.

CrashPlan is very good software, however there are a few issues that can show up once in a while. In particular, one should be aware that when backuping data located on a removable drive, make sure the drive remains connected to the computer. If it remains disconnected for a few days and CrashPlan keeps running, it might silently sweep off the backed-up data from the backup destinations (local, off-site and CrashPlan cloud as well). It happened to me once after a source hard drive had a fault, and it remained offline for a certain time while I was running an interminable chkdsk on it, using another computer. Since some files where corrupted after the fault and CrashPlan swept away the backups -- exactly at the moment I would have needed them -- CrashPlan ended up being useless. But if I knew this beforehand, I would immediately have made a copy of the backup set and saved the day. So you better know this.

It can also become a headache when, for some obscure reason, one computer is suddenly unable to reach any backup destination, even though they are online. CrashPlan do it's best to establish the connections without needing to reconfigure your firewalls and routers, but you can encounter situations that require you to read through the manuals and forums to fix them.

But overall, I agree that CrashPlan is, as far as I know, the most innovative, complete, painless and affordable backup solution on the market nowadays.

vendredi, février 14, 2014

Déménager une immense base de données avec phpMyAdmin

Le transfert du contenu d'une base de données d'un serveur à l'autre (ou même d'une base à l'autre) avec phpMyAdmin est une opération assez simple : il suffit généralement d'exporter le contenu de la base source sous forme d'une requête SQL pour ensuite l'importer dans la nouvelle base.

Mais les choses peuvent se corser lorsque le fichier de requête SQL produit pèse plusieurs centaines de mégaoctets. Effectivement, le serveur de destination risque de ne pas arriver à traiter d'un coup une requête de cette taille. D'autant plus qu'en tentant de télécharger en amont un tel fichier, même compressé, vous risquez d'atteindre le délai limite d'exécution du serveur avant d'avoir réussi à le télécharger.

C'est ce qui m'est arrivé récemment en essayant de déménager une base de données Piwik sur un nouveau serveur, le fichier SQL produit pesant quelques 537 Mo !

J'ai donc développé la solution suivante pour fragmenter un immense fichier SQL en plusieurs petites requêtes qui pourront être importées une à une. J'ai ensuite modifié le script pour qu'il produise des fichiers gzippés, question de minimiser la bande passante (et surtout le temps de téléchargement) au moment de l'importation.

Dans ce cas-ci, mon fichier SQL s'appelait "piwik.sql". Le script "sql-split-gz.php", placé dans le même répertoire, contient le code PHP suivant :

<?php
$source = 'piwik';
$part_threshold = 40*1024*1024;
if(!$f = fopen($source.'.sql','r')) die("No such file: $source.sql");
mkdir("$source.part");

$part = 1;
$size = 0;
#$o = fopen($fn="$source.part/$part.sql",'w+');
$o = gzopen($fn="$source.part/$part.sql.gz",'w9');

while($line = fgets($f,4096)) {
 if(substr($line,0,7)==='INSERT ') {
  if($size >= $part_threshold) {
   #fclose($o);
   gzclose($o);
   echo "$fn ($size)\r\n";
   $part++;
   $size = 0;
   #$o = fopen($fn="$source.part/$part.sql",'w+');
   $o = gzopen($fn="$source.part/$part.sql.gz",'w9');
  }
 }
 #fwrite($o,$line);
 gzwrite($o,$line);
 $size += strlen($line);
}
#fclose($o);
gzclose($o);
echo "$fn ($size)\r\n";
fclose($f);
?>

Le script créera un dossier nommé "piwik.part" et y placera les fichier SQL numérotés, avec l'extension .sql.gz. Il suffira ensuite d'importer ces fichiers un par un dans phpMyAdmin, qui interprète nativement les fichiers gzippés. Mais attention ! Il faudra les importer dans le même ordre !

Fonctionnement

Le script lit le fichier SQL source ligne par ligne. Il écrit chaque ligne dans le fichier de sortie actuel, en commençant par "1.sql.gz". Lorsqu'il rencontre une requête "INSERT", il vérifie si la quantité de données (non-compressées) déjà écrites dans le fichier de sortie dépasse la valeur de $part_treshold (ici configurée à 40 Mo, soit 40 * 1024 * 1024 octets). Le cas échéant, la variable $part est incrémentée et les données sont écrites dans le fichier de sortie suivant.

Il faut donc modifier la variable $source pour qu'elle corresponde au nom de votre fichier source (sans l'extension ".sql") et la variable $part_treshold à la taille désirée. Une valeur plus élevée donnera des fragments moins nombreux mais plus volumineux. Cependant, gardez à l'idée que phpMySQL peut imposer une limite de taille aux fichiers importés (dans mon cas elle est de 50 Mo sur mon serveur de destination).

Attention : la valeur $part_treshold n'est pas une limite de taille, mais, comme son nom l'indique, un seuil : étant testée seulement à chaque requête "INSERT", la quantité de données (non compressées) écrites dans chaque fichier de sortie dépasse nécessairement cette grandeur. Dans ce cas-ci, puisque les fichiers de sortie sont gzippés, on pourrait néanmoins se permettre une valeur plus grande (dans mon cas, le plus gros fichier de sortie produit ne pèse que 17,8 Mo), ce que j'aurais peut-être dû faire, tout compte fait, pour réduire le nombre d'importations successives nécessaires.

samedi, février 18, 2012

Poteaux du monde, exprimez-vous !

40 idées de messages pour une campagne pro-affichage (ou anti-anti-affichage ?) sur les poteaux de la ville :

- Poteaux du monde, exprimez-vous!
- Si vous ne voulez pas que je m'habille, ne me laissez pas dehors
- Poteaux propres, ville morte!
- MOI, À POIL? Pourquoi pas vous?
- ÉRADIQUEZ LE PROBLÈME À LA SOURCE: INTERDISEZ LA CULTURE!
- Un poteau bien élevé sait s'habiller!
- Pourquoi arracher les affiches?  Y'a rien dessous.
- Les poteaux aussi ont une pudeur!
- Je supporte la culture!
- Je m'habille dernier cri
- CECI ATTESTE que le poteau continue derrière les affiches
- CONTRE LA NUDITÉ DES POTEAUX!
- D'ACCORD POUR ME METTRE À POIL si tu me ramènes chez toi
- T'inquiète pas, le poteau est toujours là!
- JE SUPPORTE l'affichage indépendant!
- AFFICHAGE INTERDIT au-delà de 650lbs
- CE POTEAU EST INSCRIT AU PROGRAMME "UNE D'ARRACHÉE, DEUX DE POSÉES"
- PILIER CULTUREL
- CULTURE VOID IF REMOVED
- Est-ce que je vous déshabille, moi?
- L'affichage libre / ça m'emballe
- Qu'on m'habille!
- AFFICHER ICI
- INTERDIT DE DÉBALLER AVANT NOËL!
- Il y a de la place pour tout le monde!
- S.V.P. AFFICHER PROPREMENT
- Respectez l'affichage libre!
- ATTENTION: l'affichage pourrait causer un excédent de charge et constitue un danger pour la sécurité publique
- POTEAUX LIBRES ET BEAUX!
- Avant de me déshabiller / apprends à me connaître
- Lampadaire pour aveugles (inutile d'afficher ici)
- AFFICHEZ ÉGAL DES DEUX BORDS sinon je pourrais tomber
- Et s'il fallait que tout le monde se promène à poil sur la rue
- J'AFFICHE MA CULTURE
- JE CONTRE-AFFICHE MA CONTRE-CULTURE
- Ça n'a pas de classe d'être à poil dans la rue
- THE MEDIUM IS THE MESSAGE -McLuhan
- S.V.P. Arrachez proprement (utilisez les poubelles)
- Ne dites plus "poteau". Dites "arbre". (Et laissez-moi mes feuilles)
- À LA TAK!

(Québec, 19-20 octobre 2006)

Vie privée et vie publique

De la séparation des vies publiques et privées

Le dualisme vie privée/vie publique a créé une situation entièrement neuve.

La désignation du caractère privé ou public de la vie en termes techniques est un phénomène neuf.

Une conséquence de ce mouvement et le perfectionnement de son application technique est une définition de l'identité sociale, puis conséquemment personnelle, basée strictement sur la part publique de l'activité télématique de l'individu.

Le perfectionnement des mesures techniques de protection de la vie privée opère une séparation totale entre les contenus (les "traces" d'activités) privés et publics. S'opère et s'achève du même coup un schisme complet entre son existence publique, plus ou moins assumée socialement, et privée, entièrement secrète -- du moins au point de vue social.

Du caractère réellement privé des activités sous protection

La virtualisation des activités humaines, outre autres graves implications, étend dramatiquement le prisme des possibilités d'action de l'homme, dans un univers entièrement numérique. Voilà qu'il est de plus en plus aisé d'escamoter complètement de la vue même des proches (constituants pourtant élémentaires d'une vie réellement privée) toutes les traces de ses activités dites "privées".

Ainsi, la vie privée, dans son acception technique, promulguée malgré cela comme droit fondamentalement humain, n'est même plus du domaine du privé. Il s'agit plutôt, dans le contexte technologique totalitaire[1], de la partie la plus intime de l'être, maintenant mise complètement à nu et directement exprimée et exposée, sur un vaste réseau global, à toutes les tentations possibles, au moment même où son glissement hors de la sphère sociale jusque dans l'espace strictement technique soulève toute forme de contrainte morale à son égard.
[1] Car il s'agit bien aujourd'hui d'un tel contexte, dans la mesure où les nécessités techniques assujetissent dorénavant systématiquement toute autre considération. J'invite les gens qui n'en seraient pas encore convaincus à prendre connaissance du roman La vingt-cinquième heure de l'auteur Roumain Virgil Gheorghiu.

Là où la vie privée, régulée par la proximité des proches et de la communauté, traçait il y a encore quelque temps les limites de l'activité acceptable, elle ne trouve plus de prise ferme sur les activités individuelles depuis que celles-ci sont exerçées librement sur le "nuage" informatique sous le couvert d'un anonymat sophistiqué.

Exacerbation de l'impasse de l'humanisme moderne

Il n'existera jamais de solution technique à l'ultime problématique humaniste moderne: l'ignorance stupide. Tant que les problèmes seront traités en termes techniques, la problématique globale ne fera que s'aggraver.

Nous voici à un point jamais atteint de domination du vice et de la corruption sur l'ensemble des phénomènes humains. Hélas, cela n'exclut aucunement la possibilité de degrés supérieurs à cette domination. Mais je ne tiens pas à m'horrifier délibéremment en songe.

Disons seulement que la disparition de la morale intime ne peut mener, à moyen terme, qu'à une civilité entièrement factice et, à long terme, qu'à une authentique barbarie généralisée. Mais l'automation de la morale n'est guère une alternative réjouissante.

Aléas

Google, ultime engin de rétribution de la mémoire électronique, constitue un énorme trou noir pour la mémoire organique.

Ce monde ressemble de plus en plus à un roman policier. S'il fut déjà vrai que toute action ne peut être que le fruit des motifs de son protagoniste, il est également vrai que l'établissement du caractère criminel de telle ou telle action dépasse largement le domaine du polar.

(Québec, 13 au 14 août 2010)

Ce soir...

Ce soir je fouille dans les vieilles affaire du Fiat tout en mangeant de la soupe Aylmer aux tomates. C'est que j'ai imprimé un Fiat+/-Lux, aujourd'hui, comme dans le bon vieux temps, et que là on va avoir besoin d'une cacanne à la Librairie Saint-Jean-Baptiste pour recueillir les dons.

Je fais ça tout en me levant aux deux minutes pour imprimer les disques de Samuel Racine -- ce crinqué s'est mis dans la tête de sortir quatre albums d'un coup avant son départ pour une virée d'un an en camper-van avec sa blonde autour du Canada et des States, en faisant des rendus pour une projection que je dois présenter demain après-midi au Centre Uriel et en tapant ce texte.  C'est sans compter les foutus updates de 2 ou 3 sites web que j'ai à faire et les factures qu'il faut que j'envoie depuis plus d'un mois à mes clients... Mais ça devra attendre: le plus important d'abord.

Remuer la poussière des archives, pour certaines agées d'un décade et même davantage, me fait réaliser, d'une part l'espèce de continuum dans lequel je m'inscris depuis toutes ces années, et d'autre part à quel point ma vie est progressivement devenue un tourbillon délirant de choses à faire.

À l'heure du premier Fiat+/-Lux, à l'époque agé de 20 ans, je sortais à peine du CÉGEP (j'ai crissé ça là en 2000, si je me souviens bien), je n'étais pas trop soucieux de l'efficacité; j'étais volontiers enclin à m'engager dans des projets fous, comme l'était alors Fiat+/-Lux, mais je me contentais de faire les choses spontanément, sous l'influence du moment et des personnes présentes. C'était, à mes yeux, et je n'avais pas tort, l'exercice de ma liberté totale. Le plus fabuleux est probablement que ça ait fonctionné.

J'ai depuis développé le réflexe d'associer cette fabuleuse spontanéité, qui s'est progressivement estompée par la suite, à mon insouciante jeunesse d'alors. Or, depuis tout récemment, je commence à considérer la possibilité qu'il y ait eu d'autres freins à mon élan d'émancipation de jeunesse que l'évaporation de ma jeunesse elle-même.  Les nombreux artéfacts accumulés depuis ce temps me font revivre ce parcours pittoresque que représentent mes années 20 et renforcent ce doute neuf et jusqu'ici superficiel.

Je dois interrompre ici mes tergiversations car mon corps m'urge de le reposer sans attendre. J'espère trouver le temps pour gratter sous la surface de mes doutes-éclair avant longtemps, mais je ne peux rien promettre. Je me contenterai pour l'instant de référer le lecteur intrigué à mon récent raisonnment du 12 avril: "Il me manque quelque chose"; le constat qui y est fait n'est probablement pas étranger à l'idée piètrement évoquée ici. Ceci ne sera, finalement, qu'un texte de plus dans cette naissante série des "inachevés".

Il me manque quelque chose.

Je pourrais sytématiquement répondre: "du temps" ou "de l'argent". Cependant ce ne sont là que des abstractions d'homme, qui n'ont aucune existence tangible potentielle. Conséquemment, le vrai manque se trouve ailleurs.

Peut-être est-ce précisément l'absence naturelle de temps et d'argent qui me manque autant. Combler un tel déficit aurait des implications sans commune mesure sur l'espace social. Et c'est peut-être à cette mesure que je devrais considérer mon manque.

Peut-être est-ce là le problème général du langage, de la logique, de la science et la raison: encore, au demeurant, d'autres abstractions. L'homme est d'abord un animal physique, né dans un monde de choses concrètes en relation, en transformation et en mouvement. Il est très adapté à vivre dans un tel monde. L'arbre est un arbre, la bête est une bête, ce qu'ils font est sans équivoque, il n'y a pas à revenir là-dessus. Mais les choses se compliquent au moment même où, aspirées par leur propre abstraction, commence leur chosification.

On dit de l'homme qui regarde l'arbre qu'il ne voit pas la forêt, on peut également tenir l'inverse pour vrai. Et lequel des deux est le plus près de la réalité ? Si l'homme qui voit la forêt ne vois plus les arbres, il en rate très certainement l'essentiel.  Tandis que son camarade, qui regarde l'arbre, sera en mesure de porter son attention sur chacun des arbres, de distinguer l'un de l'autre. Il pourra connaître intimement la forêt - malgré son incapacité à la désigner comme telle. La science des forêts ne serait d'aucune utilité à l'autre qui s'y trouverait soudaiment plongé: étant aveugle aux arbres, il n'aurait aucune certitude de se trouver dans telle ou telle forêt.

Il semblerait qu'il en soit ainsi du temps et de l'argent, et de bien d'autres choses. Et on pourrait même conclure, dans chacun des deux cas évoqués, qu'autant l'abstraction est précise, autant la perte est grande. Car non seulement faut-il admettre qu'en voyant le temps, on ne distingue plus l'instant; et qu'en voyant l'argent, on ne distingue plus ce qu'on se procure avec - ni selon quelle bêtise on se retrouve réduit à s'aliéner celui-ci et celui-là pour l'obtenir; mais faut-il aussi remarquer que la précision de cette abstraction, apparemment sans bornes, peut également occulter une abstraction plus profonde, plus sourde, moins exacte et peut-être plus primitive, voire mythologique: la précision du temps élimine en effet le temps au sens plus large (la mémoire, la tradition et l'Histoire, en bref, le temps tue "les temps" jusqu'à nos origines essentielles) tandis que la précision de l'argent (le "juste prix" économique) éradique au passage toutes les valeurs, et l'économie en général (au sens original grec d'"ekonomos": le "ménage", en tant que métabolisme de l'ordre social).

Comment conclure ce raisonnement (car c'est bien la forme de ce texte) ?

(Québec, 12 avril 2010)

Ma vie dans un notepad.

Un jour, un matin, un soir, UTC-je-ne-sais-pas
Quelque part sur la boule maboule
Une planète ronde, fronde bleue
Qui danse comme une toupie folle
Sur le tapis des étoiles
Traînant sa lune comme un boulet
Discret et régulier
Décor de toile lactée


Là-dessus, un espoir de soir
Agitant mes mandibules
Je spécifie à mon fidèle
Ami aimant, aimable mignon
Microprocessant de toutes ses puces
Mon délire sombre sur son écran blanc
D'inanimé animal :

Dehors la rage
Les taxis klaxonnent
Le système fourrage
L'univers, le besogne
Lui arrache peau et chair
Transforme tout ce qu'il touche
En ordures ménagères
Et fait mouche
Il appelle incessant
Au travers des murs
Perce yeux et tympans
De lumières et murmures
Au travail! rugit-il
Et faisant la grimace
Hélas! qu'est plus futile
Que de trouver sa place?
Mais l'âge me roue
M'huile le rouage
Serai-je encore assez fou
Ou bientôt épave, naufrage
Sur la rive morne bleue
De la routine prescrite
Par ce système furieux
Furax que malgré tout j'habite
J'ai besoin d'un rêve
À tenir à la main
Une minute trop brève
L'âme doit boire de ce vin
Hors de mon cubicule
Mon esprit s'évapore
Une minute ridicule
Par toutes mes pores

Ça rime en crime
De cet arbre le foliage
N'est que vain radotage
Du pied à la cime

(Québec, 16 mai 2010)