skip to main | skip to sidebar
Code 18
Manuel du savoir-faire à l'usage des geeks et des curieux
RSS
  • Accueil
  • Le web au Québec
  • Liens
  • Twitter
  • Facebook
  • À propos

samedi 31 octobre 2009

Musique de Code 18 sur Last.fm

Publié par Infinite Loop, à 08 h 39 0 commentaire

Pour ceux que ça pourrait intéresser, j'ai ouvert un compte sur Last.fm pour partager la musique qui entre dans ma tête. Pour le moment, il n'est pas très garni mais je vais configurer mes lecteurs musicaux chez moi (dont mon jukebox touchscreen) et au travail pour diffuser tout ce que j'écoute.

Je n'avais pas beaucoup tendance à parler de moi dans mon blogue alors c'est peut-être un moyen de présenter un autre aspect de ma personnalité à travers mes préférences musicales. Vous verrez que la palette peut être assez vaste, étant mélomane et musicien amateur, j'ai une dépendance chronique à la musique.

Si vos goûts musicaux ressemblent aux miens ou si vous avez quelque chose à me faire découvrir, ça me fera plaisir d'en faire l'écoute.

Dis moi ce que tu écoutes et je te dirai qui tu es.


Tags: Musique

Spécial d'Halloween 2009 : robots.txt de Google

Publié par Infinite Loop, à 07 h 36 0 commentaire

Cette année, l'équipe de Google remet ça et cache dans son fichier robots.txt un petit clin d'oeil à l'occasion de l'Halloween.

User-agent: Kids
Disallow: /tricks

Allow: /treats


Rappelons nous que l'an dernier, Google avait fait quelque chose de similaire avec les zombies.


Tags: Le coin du geek

jeudi 29 octobre 2009

Mise à jour Ubuntu 9.10

Publié par Infinite Loop, à 10 h 05 0 commentaire

Aujourd'hui a été lancé la nouvelle version d'Ubuntu (Karmic Koala). C'est donc le moment d'effectuer la mise à jour pour passer de 9.04 à 9.10.

Avant de lancer le processus, savez-vous quelle version vous utilisez ? Vous pouvez l'obtenir à partir d'un terminal avec une des deux commandes ci-dessous :

$ cat /etc/issue

Ubuntu 9.04

$ lsb_release -a

Distributor ID: Ubuntu
Description: Ubuntu 9.04
Release: 9.04
Codename: jaunty

Pour votre information, LSB = Linux Standard Base.

Pour faire la mise à jour de la distribution, rendez-vous au menu System / Administration / Update Manager. Il suffit de cliquer sur le bouton Upgrade (difficile d'être plus simple!).



On m'avertit que :

  • 655 Mo seront téléchargés
  • 28 packages seront retirés
  • 285 nouveaux seront installés
  • 982 seront mis à jour
  • Durée estimée : 19 minutes
À noter qu'un redémarrage de l'ordinateur sera nécessaire à la fin du processus. Je laisse le tout rouler durant la nuit et on se revoit demain.


Tags: Linux

Risques liés à la comparaison avec une constante

Publié par Infinite Loop, à 06 h 51 1 commentaire

Sujet ridicule vous direz, mais pas si bête que ça quand on y pense. Dans le cadre d'une simulation de cours de programmation 101, je vous pose la question : comment effectuez vous la comparaison d'une variable avec une constante ?

Prenez 2 secondes pour y réfléchir et poursuivez votre lecture. Dans tous les langages de programmation, il existe un opérateur d'assignation et un opérateur de comparaison. Dans le cas de PHP, le premier est le symbole = alors que le second est un ==.

D'abord la réponse : la façon la plus sûre de comparer une valeur serait de placer la constante en premier :

if(CONSTANTE == $variable){
// ...
}
La raison : parce que si vous faites la gaffe de faire le contraire et par mégarde vous utilisez l'opérateur d'assignation, PHP ne lancera pas d'erreur et le code s'exécutera sans livrer les résultats attendus et vous devrez en chercher la raison (à moins que votre éditeur soit assez intelligent pour vous les faire remarquer - comme NetBeans).
if($variable = CONSTANTE){
// ...
}
En inversant l'ordre de comparaison, on s'assure que PHP lance un avertissement si on utilise l'assignation plutôt que le == :
if(CONSTANTE = $variable){
// oups, on ne peut pas assigner de valeur à une constante
}
Parse error: syntax error, unexpected '=' in file...

Je soulève le point car j'ai moi-même fait l'erreur récemment malgré plusieurs années d'expérience. Peut-être est-ce le temps de faire des ajustements et de réviser nos habitudes de codage ?


Tags: PHP, Programmation

mercredi 28 octobre 2009

Guitare, Metallica et Excalibur

Publié par Infinite Loop, à 06 h 59 0 commentaire

Oui, je suis toujours en vie! Je prends quelques minutes pour vous donner des nouvelles pendant ma pause de rédaction (qui repart tranquillement).

Samedi matin, sur un coup de tête, je me suis levé avec l'idée d'acheter une nouvelle guitare électrique pour dégourdir mes doigts autrement que sur un clavier. Depuis, ça occupe tout mon temps libre et je me rends compte à quel point jouer quelques mesures peut procurer une sensation de bien-être (causé par l'endorphine).

Hier, en revenant du bureau, j'ai pratiqué toute la soirée la rythmique et un solo de la pièce instrumentale To Live is to Die de Metallica. À vrai dire "presque", puisque quatre phrases sont prononcées vers la fin en hommage à leur ancien bassiste Cliff Burton, décédé dans un accident d'autobus en tournée.

Les paroles sont tirées d'un poème écrit par l'allemand Paul Gerhardt (1607-1676) qu'on retrouve en partie dans le film Excalibur (1981) alors que Merlin s'adresse à Arthur.

When a man lies, he murders some part of the world.
These are the pale deaths which men miscall their lives.
All this I cannot bear to witness any longer.
Cannot the Kingdom of Salvation take me home?
Vous pouvez consulter le script complet du film ou encore regarder l'extrait vers 1h23 sur le DVD (version anglaise).

Je dois confesser que j'ai regardé Excalibur car j'étais dans le mood de la légende arthurienne puisque je suis présentement l'excellente série humoristique Kaamelott.


Tags: Musique

samedi 24 octobre 2009

1er anniversaire de Code 18

Publié par Infinite Loop, à 08 h 12 0 commentaire

Voilà, c'est fait. Code 18 fête aujourd'hui son premier anniversaire d'existence. Né d'un projet qui était au départ un défi personnel de bloguer quotidiennement pendant un an sur l'univers des technologies de l'information, j'ai mis un accent particulier mis sur mon champ d'activité principal, la programmation.

Ça n'a pas toujours été un exercice facile de trouver les sujets d'inspiration, d'écrire un article simple et concis chaque jour mais je suis très satisfait d'y être arrivé. Depuis longtemps, j'essayais de découvrir et d'apprendre un nouveau truc régulièrement pour satisfaire ma curiosité et j'ai senti le besoin de de partager mes connaissances avec les autres.

Un an plus tard, je fais le bilan du travail réalisé : environ 1400 visites uniques chaque semaine, la formation d'une petite communauté avec qui interagir et s'entraider, ce sont des signes suffisamment encourageants pour me convaincre à continuer.

Sur un plan personnel, je juge que ce fût bénéfique puisque prendre le temps d'expliquer un concept en le mettant par écrit permet de réviser les notions, de consolider ce qu'on a appris et de découvrir quelques détails supplémentaires qui nous avaient échappés.

Pour vous mettre en contexte, chaque article pouvait me demander quotidiennement entre 20 minutes et 3 heures que je réalisais en dehors de mes heures de travail (au grand dam de ma blonde!). Parfois même, je pouvais développer certaines idées qui se sont échelonnées sur plusieurs sessions de travail. Même durant mes vacances et à l'occasion d'un voyage à l'extérieur (devinez quand!), j'ai poursuivi mon but sans interruption, juste pour le principe de gagner mon pari.

Même si je le fais d'abord pour moi, j'espère que vous appréciez la somme de mon labeur. Ce blogue va poursuivre son chemin mais pour l'instant je m'accorde un petit congé bien mérité.

Pour la prochaine année, je vais peut-être diminuer un peu la cadence de publication et je risque probablement d'aller jeter un oeil à différents événements dans la communauté culturelle montréalaise, comme YulBlog, des StartUp Camp, Pecha Kucha, Geekfest, etc.

Enfin, je vous invite à me faire part de vos questions, commentaires, idées de sujets, tout ce qui pourrait intéresser les geeks de ce monde. Vous pouvez me contacter par email, Twitter, Identica, Google Talk (code18.blogspot[at]gmail.com), ça me fera plaisir de vous parler.

À bientôt!


Tags: Saviez-vous que

vendredi 23 octobre 2009

Classer les objets Postgres en schémas logiques

Publié par Infinite Loop, à 19 h 14 0 commentaire

Pour mieux structurer une base de données PostgreSQL, j'aime l'idée de répartir les objets en schémas logiques. Ça permet entre autre d'avoir deux tables du même nom dans deux schémas différents.

Par défaut, tous les objets sont créés dans le schéma "public". Vous ne l'aviez peut-être pas remarqué car vous n'êtes pas obligés de le nommer quand vous voulez faire référence aux objets (tables, fonctions, etc) lorsque vous construisez vos requêtes SQL.

SELECT * FROM ma_table;
Dès qu'on crée un nouveau schéma et qu'on y ajoute des objets, on devra les préfixer par le nom de schéma suivi d'un point :
CREATE SCHEMA music;

CREATE TABLE music.artist(...);
CREATE TABLE music.album(...);

CREATE VIEW music.collection(...);

SELECT * FROM music.collection;

CREATE SCHEMA movie;

CREATE TABLE movie.gender(...);
CREATE TABLE movie.title(...);

CREATE VIEW movie.collection(...);

SELECT * FROM movie.collection;
Comme vous pouvez le constater, il existe maintenant deux vues portant le nom "collection" qui reposent dans leur propre schéma. Si vous essayez de faire une requête sur la vue collection sans spécifier le schéma, PostgresSQL vous indiquera que l'objet n'existe pas (en fait, il essaiera de référencer collection dans le schéma public mais il s'arrêtera là s'il ne le trouve pas).

Cette technique vous permet d'éviter la redondance lorsque vous nommez vos tables (qui auraient aussi bien pu se nommer client_info, client_address, client_order, etc) et qui rend vos objets programmables plus modulaires puisqu'ils sont regroupés logiquement. On trouvera un avantage certain à savoir qu'un schéma possède aussi un propriétaire auquel vous pouvez donner des privilèges particuliers.


Tags: PostgreSQL

Messages plus récents Messages plus anciens Accueil
S'abonner à : Messages (Atom)
    Suivre @code18 sur Twitter

    Catégories

    • Apache (21)
    • Citations (167)
    • Club Vidéo (24)
    • Coffre à outils (55)
    • CSS (8)
    • Curiosités (117)
    • Design Pattern (2)
    • Drupal (8)
    • Easter Eggs (22)
    • Extensions Firefox (20)
    • GIMP (7)
    • Histoire (21)
    • HTML (32)
    • Humour (57)
    • Intégration (34)
    • iPod (12)
    • JavaScript (110)
    • Jeu de combat (6)
    • Le coin du geek (128)
    • Liens (12)
    • Linux (56)
    • Livres (78)
    • Lois et principes (46)
    • Marché des saveurs (26)
    • Mathématique (18)
    • Mobile (5)
    • Montréal (32)
    • Musique (112)
    • Pancartes et écriteaux (16)
    • Perl (8)
    • Pérou (1)
    • PHP (130)
    • PostgreSQL (44)
    • Programmation (105)
    • Saviez-vous que (55)
    • Sécurité (22)
    • SEO (5)
    • SQL Server (22)
    • Vieilles publicités (6)
    • Virtualisation (8)
    • Voyages (1)
    • Zend Framework (26)

    Divers

    Archives

    • ▼  2015 (6)
      • ▼  août 2015 (1)
        • Citation no.164 sur la tromperie
      • ►  juillet 2015 (1)
      • ►  février 2015 (3)
      • ►  janvier 2015 (1)
    • ►  2014 (8)
      • ►  décembre 2014 (1)
      • ►  novembre 2014 (1)
      • ►  octobre 2014 (1)
      • ►  août 2014 (2)
      • ►  juillet 2014 (2)
      • ►  janvier 2014 (1)
    • ►  2013 (53)
      • ►  décembre 2013 (2)
      • ►  novembre 2013 (1)
      • ►  octobre 2013 (3)
      • ►  septembre 2013 (2)
      • ►  août 2013 (5)
      • ►  juillet 2013 (3)
      • ►  juin 2013 (5)
      • ►  mai 2013 (3)
      • ►  avril 2013 (7)
      • ►  mars 2013 (7)
      • ►  février 2013 (11)
      • ►  janvier 2013 (4)
    • ►  2012 (105)
      • ►  décembre 2012 (8)
      • ►  novembre 2012 (5)
      • ►  octobre 2012 (4)
      • ►  septembre 2012 (1)
      • ►  août 2012 (8)
      • ►  juillet 2012 (7)
      • ►  juin 2012 (7)
      • ►  mai 2012 (10)
      • ►  avril 2012 (13)
      • ►  mars 2012 (15)
      • ►  février 2012 (15)
      • ►  janvier 2012 (12)
    • ►  2011 (146)
      • ►  décembre 2011 (14)
      • ►  novembre 2011 (11)
      • ►  octobre 2011 (12)
      • ►  septembre 2011 (13)
      • ►  août 2011 (15)
      • ►  juillet 2011 (17)
      • ►  juin 2011 (18)
      • ►  mai 2011 (15)
      • ►  avril 2011 (9)
      • ►  mars 2011 (7)
      • ►  février 2011 (3)
      • ►  janvier 2011 (12)
    • ►  2010 (398)
      • ►  décembre 2010 (29)
      • ►  novembre 2010 (28)
      • ►  octobre 2010 (32)
      • ►  septembre 2010 (34)
      • ►  août 2010 (22)
      • ►  juillet 2010 (35)
      • ►  juin 2010 (42)
      • ►  mai 2010 (36)
      • ►  avril 2010 (37)
      • ►  mars 2010 (34)
      • ►  février 2010 (32)
      • ►  janvier 2010 (37)
    • ►  2009 (429)
      • ►  décembre 2009 (32)
      • ►  novembre 2009 (34)
      • ►  octobre 2009 (33)
      • ►  septembre 2009 (37)
      • ►  août 2009 (37)
      • ►  juillet 2009 (39)
      • ►  juin 2009 (38)
      • ►  mai 2009 (37)
      • ►  avril 2009 (35)
      • ►  mars 2009 (36)
      • ►  février 2009 (32)
      • ►  janvier 2009 (39)
    • ►  2008 (84)
      • ►  décembre 2008 (34)
      • ►  novembre 2008 (39)
      • ►  octobre 2008 (11)

    Abonnés

Copyright © All Rights Reserved. Code 18 | Converted into Blogger Templates by Theme Craft