Gérer ses formats de date sous Android

Tout programmeur a un jour été confronté à l’affreuse tâche de devoir gérer un format de date dans l’un de ses programmes. Des outils existent mais ne conviennent pas toujours aux besoin ou au format que l’on souhaite mettre en place et on en arrive souvent à se dire qu’avec un peu de tolérance, l’utilisateur ne devrait pas avoir besoin de sa foutue date.

Heureusement les développeurs Android ont pris le taureau par les cornes et nous ont donné le SimpleDateFormat.

Cette classe nous permet de traiter des données de date dans le format que l’on souhaite sans se heurter à des problèmes de fonctions deprecated ou à des librairies maison souvent aussi compréhensibles qu’inefficaces.

byte[] to String

Beaucoup de développement ces temps ci et donc pas mal de petites découvertes.

Sur le projet Hook, nous avions à traiter les images que nous envoyions comme des tableaux de Byte afin de le encoder en Base64. Ici, pas de fonction dans le JDK natif, mais une classe Base64 des plus efficaces dans le SDK Android. Cependant, de l’autre côté, pour les stocker, il nous fallait récupérer les tableaux, et les convertir en String. Ceci est déjà mâché en Java puisqu’il existe un constructeur de String prenant en paramétré un byte[]. Il est même possible de préciser l’encodage stocké dans la chaîne de caractère.

Principaux raccourcis clavier

Un ami a récemment décidé de donner sa chance à Linux et au monde du libre en général  et a, par conséquent, décidé d’installer en double boot une Distribution Ubuntu. Grand habitué des raccourcis claviers, il avait besoin d’en avoir une liste pour se déplacer. J’ai donc répertorié ici les listes de différents raccourcis clavier sous les principales différentes interfaces ou systèmes d’exploitation :

A vous désormais de les apprendre par coeur pour pouvoir naviguer tels des pirates informatiques dans vos systèmes.

Problème d’arrêt du plugin WordPress Move

Un problème auquel j’ai été confronté et dont je n’ai pas trouvé la solution sur internet m’est arrivé récemment. Le plugin WordPress Move dont j’ai déjà parlé et que j’utilise pour sauvegarder régulièrement mon blog était devenu inopérant et affichait une page blanche. Pensant juste à un problème d’affichage, j’ai tenté de le laisser tourner une bonne heure voir si quelque chose changeait mais il s’avérait que non. Les archives avaient la même taille et ne grossissaient pas.

J’ai fini par trouver la solution lorsque j’ai enlevé un dossier de partage que j’avais créé à la racine du blog pour passer une vidéo que j’avais faite pour un concours. La vidéo pesait dans les 60 Mo. Je ne sais donc pas exactement pourquoi le plugin s’arrête au lieu de tenter de comprimer la vidéo dans les backup mais tout fichier trop gros dans le répertoire du site entraîne cette coupure brutale dans la sauvegarde.

La solution est donc d’enlever tous les plus gros fichiers uns par uns jusqu’à ce que la sauvegarde s’effectue convenablement.

Une solution, que j’avais trouvé sur internet pour un cas similaire mais qui n’était pas le mien, consistait à changer dans les réglages la « Chunk Size » à savoir la taille maximal de chaque archive. Là encore le problème était dû à un problème de compression.

Il doit être possible de régler ces deux problèmes de la même manière en modifiant les paramètres du serveur web et dont certains doivent limiter les ressources attribuées à la compression. Je ne me suis cependant pas penché sur la question mes sauvegardes ayant pu reprendre sans encombres.

Modifier l’emplacement par défaut de certains dossiers

Il est couramment admis que certains dossiers sont des raccourcis pour certains emplacements. L’exemple le plus flagrant est le Bureau tant sous Windows que sous Linux, qui est en réalité un dossier. Celui ci est le plus souvent dans le dossier personnel de l’utilisateur.

Sous Ubuntu, je voulais changer l’emplacement sur lesquels pointent mes dossiers Musiques et Vidéos d’origine afin qu’ils pointent sur les dossiers Musiques et Vidéos que j’avais créé sur mon deuxième disque dur, partagé entre tous mes OS.

Ainsi, tout ajout ou modification des éléments du dossier est immédiatement répercuté partout.

Sous Linux, il suffit d’éditer le fichier /home/{nom de l’utilisateur}/.config/user-dirs.dirs et de modifier la ligne correspondant au raccourcis que l’on souhaite modifier. Par exemple pour le bureau, on éditera la ligne XDG_DESKTOP_DIR= afin de préciser le répertoire de destination. Une aide existe directement dans le fichier pour expliquer comment éditer les adresses.

Sous Windows (7, je ne parlerais pas des versions antérieurs), il suffit d’aller dans le dossier utilisateur et de faire un clic droit sur le dossier que l’on souhaite faire pointer à un autre emplacement, faire Propriétés et aller dans l’onglet « Emplacement ». Là on peut changer l’adresse par celle que l’on désire. Il est aussi possible de passer par des raccourcis comme les bibliothèques qui sont plus proche de l’agrégat de dossiers mais qui permettent de faire un équivalent.

Ces manipulations peuvent aussi s’avérer utiles lorsque l’on utilise un disque dur de données et un pour le système (fait commun avec les SSD actuels).

Forum bbPress

Il y a quelques mois, après avoir remis à neuf avec un ami la plateforme internet de notre association, nous avons souhaiter mettre en place un forum afin de pouvoir communiquer facilement. La solution finale que nous avons retenu a été phpBB mais avant de se fixer sur ce choix, j’ai testé de très nombreux autres CMS, plugins ou types de forums. Certains comme fluxBB présentaient des intérêts certains mais nous n’étions pas vraiment limité par la légèreté ou le nombre de base de données disponibles. De plus nous avions besoin de beaucoup d’options différentes et d’une grosse communauté pour corriger facilement les problèmes que nous risquions de rencontrer.

Cependant, je ne vais pas parler de ces solutions ici, de très nombreux tests existent déjà et leurs réputations les précèdent. phpBB pour la quantité de plugins disponibles et pour sa communauté et fluxBB pour sa légèreté. Je vais par contre parler de la solution qu’est bbPress. Je l’ai trouvé intéressante dans certains cas comme par exemple lorsqu’on est limité en nombre de base de données.Ce forum est un plugin intégré à WordPress directement. Il utilise ainsi directement la base de données de la plateforme de blogging pour fonctionner.

En dehors de cet avantage non négligeable pour les petits hébergements ou les sites installés par applications (comme le propose 1&1 par exemple), bbPress est un forum complet avec une bonne gestion des topics et des posts. En plus, il peut lui même contenir des plugins afin de rajouter des fonctionnalités.

Une bonne alternative de forum donc, dont l’avantage est de se gérer exactement comme le blog WordPress et sans besoins extérieurs.

Réinitialiser la pile TCP/IP de Windows

L’ordinateur portable HP d’un membre de ma famille avait récupérer une erreur assez étrange. L’ordinateur arrivait sans problème à se connecter aux différents réseaux auxquels j’essayais de le connecter mais n’arrivait jamais à se connecter à internet.

Après quelques recherches et des tests en tout genre (Désactivation des cartes, réinstallation des pilotes, …) j’ai fini par utiliser la commande :

ipconfig /all

pour voir quelles étaient les adresses attribuées. Je me suis alors rendu compte que Windows m’avait attribué une des adresses IP par défaut en 169.254.xxx.xxx (Plus d’informations sur le pourquoi celles ci dans la RFC 5735). J’ai testé le fait d’attribuer à l’une des cartes une IP fixe directement et là j’avais un accès normal au Web. J’ai ainsi déterminé avec certitude que le problème venait de la connexion avec le serveur DHCP (Ici ma Freebox) et que le problème venait de l’ordinateur puisque se connecter sur un autre routeur ramenait aux mêmes résultats.

Après quelques recherches, j’ai trouvé que ce problème survenait souvent à cause d’un bug de la pile TCP/IP. Pour le corriger, il suffit de la réinitialiser à l’aide de la commande :

netsh interface ipv4 reset c:\log.txt

ou plus globalement

netsh int ip reset c:\log.txt

Après avoir remis à 0 le stack TCP/IP et rebooté, tout était fonctionnel de nouveau.

Modifier le dossier de base de Java dans NetBeans

J’ai récemment eu à réinstaller tous mes logiciels dont NetBeans et mon JDK (Java Development Kit). Cependant, manque de chance, entre le début et la fin de mes installation, la dernière version de Java avait changée et était passée de la 1.7u10 à la 1.7u11.

J’ai naturellement désinstallé l’ancienne version pour mettre la nouvelle mais, surprise, au lancement suivant de mon NetBeans, j’ai eu une magnifique erreur stipulant :

Cannot locate java installation in specified jdkhome:
C:\Program Files\Java\jdk1.7.0_11
Do you want to try to use default version?

Pour y remédier, rien de plus simple, il suffit d’aller modifier l’adresse suivant netbeans_jdkhome= dans le fichier de configuration de l’IDE. Ce fichier est /etc/netbeans.conf (Sous Windows, dans le répertoire d’installation de NetBeans)

Exécuter TrueCrypt sous Fedora

TrueCrypt demande systématiquement les privilèges super-utilisateur. Je tentais donc toujours, dans le doute, de la lancer en root. Malgré cela, lorsque j’essayais de monter un volume crypté, j’obtenais l’erreur :

Failed to obtain administrator privileges: sudo: sorry, you must have a tty to run sudo

To enable use of ‘sudo’ by applications without a terminal window, please disable ‘requiretty’ option in ‘/etc/sudoers’. Newer versions of sudo automatically determine whether a terminal is required (‘requiretty’ option is obsolete).

TrueCrypt donne ainsi lui même la solution pour résoudre le problème. Il suffit d’aller commenter la ligne contenant requiretty dans le fichier /etc/sudoers (à l’aide de #).

D’autres solutions sont cependant disponibles sur Internet notamment celles ci :
http://linuxsysadminblog.com/2009/07/install-truecrypt-on-fedora-10/ 
Ou en l’installant depuis les dépôts officielles à l’aide de yum.

Ajuster par défaut la taille de son terminal

Voilà un problème que je n’avais pas eu depuis fort longtemps vu que j’utilisais des distributions basées sur Ubuntu ces derniers temps. Ceux ci ont corrigé le problème que je vais traiter dans les options par défauts des profils de terminaux.

La taille de base d’un terminal sur un OS me parait toujours trop petite. Le fait que l’écran de mon ordinateur portable soit full HD doit y jouer mais c’est un inconfort réel. Aussi, plutôt que de redimensionner à la main la taille de la fenêtre à chaque lancement, il est possible de préciser au terminal une taille favorite. Deux cas sont possibles :

  • Vous êtes sur une distribution dont l’option est présente d’origine dans les paramètres du profil et vous n’avez qu’à l’activer avec votre taille favorite
  • Vous modifiez le lanceur du terminal afin de rajouter l’option –geometry=CCxLL à la fin où CC représente le nombre de colonnes et LL le nombre de lignes

Le terminal se lancera ainsi systématiquement avec votre taille favorite sans avoir à le retoucher.