Si vous avez déjà essayé de formater un disque dur externe sous XP, vous avez peut être été surpris de voir que la limite était de 32 Go.
Ce n'est pas une limite de FAT32 mais un bridage voulu par Microsoft pour favoriser son système de fichier plus récent, NTFS. Mais le problème c'est que NTFS est beaucoup moins facilement accessible d'un poste sous Linux...
Bref, ce bridage peut facilement être sauté en utilisant des outils tiers, dont le fameux fat32format et son interface graphique : guiformat.
Bonus, le formatage sera bien plus rapide que la commande format de DOS ;)
lundi 23 août 2010
mercredi 28 juillet 2010
Projets verts
J'ai fait récemment le bilan des technologies que je trouve soit intéressantes, soit utiles au quotidien. Et j'ai fait le projet de m'améliorer dans ces domaines :
Du côté des technos intéressantes :
Du côté des technos utiles :
Du côté des technos intéressantes :
- HTML5 en général. C'est très vaste, ça comprend les CSS3, le Javascript et jQuery, @font-face, ... Je suis même très tenté par JetPack pour faire des extensions dans FireFox...
Du côté des technos utiles :
- le bash : quoi de plus utile que de bien connaître l'interface la plus utilisée de Linux? Je me rends compte que c'est cela le plus important et le point de départ pour mieux utiliser vi, awk et consorts. Et c'est en utilisant ces outils qu'on devient réellement efficace sous Linux.
- Linux : mieux comprendre le fonctionnement global du système. Pourquoi pas utiliser une Slackware pour cela ? On se fait des idées, mais ça ne doit pas être si difficile que ça ;)
vendredi 25 septembre 2009
Quick reference cards & cheat sheets
Bien souvent, quand on développe ou qu'on administre un système, le plus important n'est pas de savoir, mais de savoir où chercher.
Et quand on devient un peu expérimente dans un domaine, il n'est pas utile d'avoir accès à une documentation pléthorique, mais juste à un certains nombre de recettes les plus récurrentes.
C'est pour cela que les quick reference cards & les cheat sheets sont intéressants, puisqu'ils résument un sujet à un pense-bête d'une page ou deux (rarement plus).
2 ressources qui listent ce genre de documentation sur le web :
- http://www.digilife.be/quickreferences/quickrefs.htm
- http://www.cheat-sheets.org/
La granularité optimale de l'information est dépendante du contexte. Il y a un temps pour lire un livre de 1000 pages sur le Java, et un temps où il faut avancer et il est préférable dans ce cas de n'avoir qu'une référence sur le Java de 2 pages.
Et quand on devient un peu expérimente dans un domaine, il n'est pas utile d'avoir accès à une documentation pléthorique, mais juste à un certains nombre de recettes les plus récurrentes.
C'est pour cela que les quick reference cards & les cheat sheets sont intéressants, puisqu'ils résument un sujet à un pense-bête d'une page ou deux (rarement plus).
2 ressources qui listent ce genre de documentation sur le web :
- http://www.digilife.be/quickreferences/quickrefs.htm
- http://www.cheat-sheets.org/
La granularité optimale de l'information est dépendante du contexte. Il y a un temps pour lire un livre de 1000 pages sur le Java, et un temps où il faut avancer et il est préférable dans ce cas de n'avoir qu'une référence sur le Java de 2 pages.
lundi 4 mai 2009
HTML begins : templates & validation
A chaque nouveau démarrage d'un projet Web, se pose la question d'utiliser une forme standard du HTM. Le copier-coller étant à la base de l'informatique, voici une référence de 2 templates, l'un avec la syntaxe avec des CSS et JS déportés, l'autre avec ces mêmes CSS & JS en local.
1ère version (avec style et script déportés)
Exemple 2 (avec style et script dans la page) :
Pour valider son HTML : http://validator.w3.org/check
L'image à afficher pour démontrer son passage de validation.
<p>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-xhtml10-blue"
alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a>
</p>
Pour valider son CSS : http://jigsaw.w3.org/css-validator/
L'image à afficher pour démontrer son passage de validation.
<p>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img style="border: 0pt none ; width: 88px; height: 31px;" src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="CSS Valide !" />
</a>
</p>
Edit : un module de Alsacreation génère ce prologue très bien. Le seul truc manquant, c'est la ligne XML donnant l'encodage utilisé pour le reste du document.
1ère version (avec style et script déportés)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title></title>
<link href="nn4.css" rel="stylesheet" type="text/css" />
<script src="script.js" type="text/javascript"></script>
</head>
<body>
<h1>Coucou</h1>
</body>
</html>
Exemple 2 (avec style et script dans la page) :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title></title>
<style type="text/css">
<!-- mettre css ici -->
</style>
<script type="text/javascript">
<!-- mettre js ici -->
</script>
</head>
</head>
<body>
<h1>Coucou</h1>
</body>
</html>
Pour valider son HTML : http://validator.w3.org/check
L'image à afficher pour démontrer son passage de validation.
<p>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-xhtml10-blue"
alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a>
</p>
Pour valider son CSS : http://jigsaw.w3.org/css-validator/
L'image à afficher pour démontrer son passage de validation.
<p>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img style="border: 0pt none ; width: 88px; height: 31px;" src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="CSS Valide !" />
</a>
</p>
Edit : un module de Alsacreation génère ce prologue très bien. Le seul truc manquant, c'est la ligne XML donnant l'encodage utilisé pour le reste du document.
lundi 30 mars 2009
Le facteur clé d'un bon framework
Lu sur LE Lexpage :
Le problème avec les frameworks, c'est que l'on cherche la balle d'argent, le framework ultime. C'est une recherche de perfection qui n'a pas de fin et qui ne pourra jamais être totalement satisfaite. Il y aura toujours un cas à la marge qui ne fonctionnera pas. Et au bout d'un moment, les gens ont envie de changer, c'est humain. C'est pas un hasard qu'on parle de nouvelles technologies. Qu'on passe de client-lourd à client léger, et que ça oscille depuis la nuit des temps (de l'informatique).
Donc comme aucun framework n'est appelé à durer, les seuls bons sont ceux qui se rendent le moins indispensable. Quand Spring parle d'injection de dépendance, et que leur philosophie est de créer de simple POJO en Java, c'est positif. Ca fait que l'on peut utiliser Spring, mais que le chantier pour éventuellement passer de Spring à autre chose n'est pas si compliqué ni coûteux, car les POJO sont réutilisables sans rien faire.
De la même façon, j'avais été favorablement impressionné par iBatis (et pas par toutes les solutions d'ORM traditionelles style Hibernate). Parce que l'idée d'iBatis c'est d'utiliser le langage le plus connu, et le plus performant pour gérer une logique ensembliste : le SQL. Et iBatis se charge juste de charger/décharger les résultats des requêtes dans des beans Java. Là aussi, si iBatis vous ennuie au bout d'un moment, le chantier de réécriture n'est pas pharaonique.
Donc pour moi, le critère clé d'un bon framework c'est d'arriver à s'en passer assez rapidement (si le besoin s'en fait sentir).
Pour Django ou Rails, je les vois plus comme des outils-frameworks. C'est un peu l'équivalent de Ant+(Spring+Hibernate+...). La différence avec un framework pur, c'est qu'il y a un socle, une console, qui permet de lancer des commandes (comme Ant). L'intérêt de ces outils, c'est le protoypage rapide d'application. Tout est fait pour aller vite. Mais il faut bien connaitre bien sûr.
Mais ce que j'aime dans Django, (même s'il n'a pas le critère clé du bon framework), c'est sa philosophie très cohérente dans les templates, l'ORM, la gestion des URL.
Et faire une pile aussi cohérente en Java demanderait un gros boulot...
Rasmus lerdorf dit que pour lui, chaque société / groupe devrait avoir son propre framework
Le problème avec les frameworks, c'est que l'on cherche la balle d'argent, le framework ultime. C'est une recherche de perfection qui n'a pas de fin et qui ne pourra jamais être totalement satisfaite. Il y aura toujours un cas à la marge qui ne fonctionnera pas. Et au bout d'un moment, les gens ont envie de changer, c'est humain. C'est pas un hasard qu'on parle de nouvelles technologies. Qu'on passe de client-lourd à client léger, et que ça oscille depuis la nuit des temps (de l'informatique).
Donc comme aucun framework n'est appelé à durer, les seuls bons sont ceux qui se rendent le moins indispensable. Quand Spring parle d'injection de dépendance, et que leur philosophie est de créer de simple POJO en Java, c'est positif. Ca fait que l'on peut utiliser Spring, mais que le chantier pour éventuellement passer de Spring à autre chose n'est pas si compliqué ni coûteux, car les POJO sont réutilisables sans rien faire.
De la même façon, j'avais été favorablement impressionné par iBatis (et pas par toutes les solutions d'ORM traditionelles style Hibernate). Parce que l'idée d'iBatis c'est d'utiliser le langage le plus connu, et le plus performant pour gérer une logique ensembliste : le SQL. Et iBatis se charge juste de charger/décharger les résultats des requêtes dans des beans Java. Là aussi, si iBatis vous ennuie au bout d'un moment, le chantier de réécriture n'est pas pharaonique.
Donc pour moi, le critère clé d'un bon framework c'est d'arriver à s'en passer assez rapidement (si le besoin s'en fait sentir).
Pour Django ou Rails, je les vois plus comme des outils-frameworks. C'est un peu l'équivalent de Ant+(Spring+Hibernate+...). La différence avec un framework pur, c'est qu'il y a un socle, une console, qui permet de lancer des commandes (comme Ant). L'intérêt de ces outils, c'est le protoypage rapide d'application. Tout est fait pour aller vite. Mais il faut bien connaitre bien sûr.
Mais ce que j'aime dans Django, (même s'il n'a pas le critère clé du bon framework), c'est sa philosophie très cohérente dans les templates, l'ORM, la gestion des URL.
Et faire une pile aussi cohérente en Java demanderait un gros boulot...
mardi 23 décembre 2008
UTF-8
Après quelques frayeurs en Python, qui semble-t-il gérait mal les accents, je me suis remis à essayer de comprendre les arcanes des encodages...
Dans mon cas, j'avais écrit cette fonction :
En ayant soin de marquer au début du fichier :
et quand je lançais mon application Django, je ne voyais rien, pas même une erreur.
J'ait tenté la commande :
qui a foiré lamentablement.
lui a fonctionné.
En fait, le problème venait de Notepad++, mon éditeur qui par défaut fonctionne en ANSI, qui doit être proche du cp1252 (chère à Eclipse et Windows, vu que je connais ce format pour ça).
Toujours est-il qu'après avoir changé le format de base de Notepad++ en UTF-8, mon problème a disparu. Alleluia!
Comme quoi aussi, il faut bien connaitre les alias entre les différents encodages.
ANSI = cp1252
ISO = latin1 = ISO-8859-1
Vu que chaque outils utilisent son propre vocabulaire, ça devient vite le bordel.
Ce qui m'étonne c'est que je n'ai jamais eu ce type de problème en Java?
Ressources :
Voici pourtant un lien qui explique bien les choses à regarder quand on a pourtant un problème en Unicode et J2EE (ça fait du boulot!)
Une explication simple de l'unicode en Python.
Une très bonne discussion qui s'étonne de la fin de la possibilité de forcer l'encodage pour sys.stdout.
Un article du PyZine sur l'encodage.
Un point sur le site officiel de Python
Un guide sur le minimum à connaitre par tous développeur (selon l'auteur)
Dans mon cas, j'avais écrit cette fonction :
def returnStatut(self):
if self.dfin is not None:
return 'Obsolète'
if self.dvalid is not None:
return 'Validé'
else :
return 'Créé'
En ayant soin de marquer au début du fichier :
# coding: UTF-8
et quand je lançais mon application Django, je ne voyais rien, pas même une erreur.
J'ait tenté la commande :
chaine = unicode('Créé', 'UTF-8')
qui a foiré lamentablement.
chaine = unicode('Créé', 'cp1252')
lui a fonctionné.
En fait, le problème venait de Notepad++, mon éditeur qui par défaut fonctionne en ANSI, qui doit être proche du cp1252 (chère à Eclipse et Windows, vu que je connais ce format pour ça).
Toujours est-il qu'après avoir changé le format de base de Notepad++ en UTF-8, mon problème a disparu. Alleluia!
Comme quoi aussi, il faut bien connaitre les alias entre les différents encodages.
ANSI = cp1252
ISO = latin1 = ISO-8859-1
Vu que chaque outils utilisent son propre vocabulaire, ça devient vite le bordel.
Ce qui m'étonne c'est que je n'ai jamais eu ce type de problème en Java?
Ressources :
Voici pourtant un lien qui explique bien les choses à regarder quand on a pourtant un problème en Unicode et J2EE (ça fait du boulot!)
Une explication simple de l'unicode en Python.
Une très bonne discussion qui s'étonne de la fin de la possibilité de forcer l'encodage pour sys.stdout.
Un article du PyZine sur l'encodage.
Un point sur le site officiel de Python
Un guide sur le minimum à connaitre par tous développeur (selon l'auteur)
mardi 8 juillet 2008
Expressions régulières (regex) dans Notepad2
Je suis un grand fan de Notepad2. C'est plutôt mignon, tout petit, (il n'y a pas d'install ni rien, juste un seul fichier .exe à lancer), il se lance instantanément, et étant basé sur Scintilla, il est aussi assez puissant. (il est loin d'être ridicule par rapport à Ultraedit ou PSPad par exemple).
Malheureusement, il n'y a pas de documentation digne de ce nom pour savoir comment utiliser l'outil Replace.
Or j'en ai eu besoin récemment, pour transformer une liste de mots séparés par des virgules, et remplacer ces virgules par des sauts de lignes.
Voila la manip' :
Allez dans Edit > Replace :

Le point important est de cocher Transform backlashes , ce qui demande à Notepad2 d'interpréter le \n comme le caractère ASCII "nouvelle ligne" (et non pas 2 caractères)
Et voila le résultat.

En bonus, un lien sur les Regex Unix (voir la partie Regex Perl, acceptés par Notepad2 donc).
Malheureusement, il n'y a pas de documentation digne de ce nom pour savoir comment utiliser l'outil Replace.
Or j'en ai eu besoin récemment, pour transformer une liste de mots séparés par des virgules, et remplacer ces virgules par des sauts de lignes.
Voila la manip' :

Allez dans Edit > Replace :

Le point important est de cocher Transform backlashes , ce qui demande à Notepad2 d'interpréter le \n comme le caractère ASCII "nouvelle ligne" (et non pas 2 caractères)
Et voila le résultat.

En bonus, un lien sur les Regex Unix (voir la partie Regex Perl, acceptés par Notepad2 donc).
Inscription à :
Articles (Atom)