dimanche 2 septembre 2012

Développement de plugin Wordpress

    Pour avoir un plugin wordpress il suffit de créer un fichier myplugin-plugin.php dans un dossier myplugin qu'on placera dans le dossier plugins dans wp-content.

Ce fichier doit contenir un header contenant le nom du plugin. C'est obligatoire pour que wordpress reconnaisse votre plugin. Exemple minimal du header :

/*
Plugin Name: Swipress
*/

Assurez-vous que le fichier a la permission read. Maintenant le plugin est visible dans la liste des plugins.

Dans le prochain article nous verrons comment invoquer notre plugin grâce un code "shortcode" et nous verrons la notion de hook.

Ressources :
http://codex.wordpress.org/Writing_a_Plugin

samedi 5 novembre 2011

Installation et configuration réseau d'une machine virtuelle chez online.net (Dedibox)

Vous avez installé ESXi sur votre dedibox et vous voulez créer une nouvelle machine virtuelle ?

Il vous faudra une adresse IP pour votre nouvelle vm autrement dit une IP fail over. Vous la commandez depuis votre interface online.net et vous lui attribuez une adresse mac de type vmware (commençant par : 00:50:56)

Vous notez l'adresse mac exacte et vous revenez sur votre client vSphere pour créer la vm et lui assigner l'adresse mac que online vous a donné.

Le début de l'installation est relativement simple, en effet, la seule chose à garder à l'esprit est de monter l'image ISO de la distribution Linux de votre choix qui se trouve sur le datastore de votre serveur ESXi et brancher (connecter) le cdrom au démarrage de la vm depuis votre client vSphere.

Pendant l'installation les choses se compliquent car vous aurez besoin du réseau pour joindre les miroirs de APT.

Avant toutes manipulations, assurez-vous via votre client vSphere que l'adaptateur réseau de la vm est bien connecté.

Ensuite, lorsque le debian-installer (j'ai choisis Debian) vous propose de configurer le réseau, vous devez :

  • Renseigner uniquement l'adresse ip (l'ip fail over que vous venez d'acheter sur le site online)
  • Renseigner le masque (255.255.255.255) 
  • Ne rien mettre dans le champ passerelle et donc ne pas toucher à la configuration des routes pour le moment car elles sera effacée lorsqu'on arrive à l'étape de téléchargement des paquets.
  • Renseigner le server DNS : 8.8.8.8
Maintenant,

- il faudra suivre les étapes de l'installation (partitionnement du disque, ajout des utilisateurs, etc)

- À l'étape choix du miroir pour télécharger les paquets, il faudra choisir un miroir et là il va gueuler par ce que le réseau n'est pas configuré.

- il suffira de faire un alt+F2, taper les 2 commandes route suivantes, ensuite alt+F1 pour revenir à l'écran d'installation. (alt+F4 affiche la sortie du fichier /var/log/syslog)

route add -host GATEWAYDEDIBOX dev eth0
route add default gateway GATEWAYDEDIBOX
GATEWAYDEDIBOX est l'adresse de votre serveur ESXi avec .1 à la fin. càd : pour l'adresse ip 88.190.X.Y, votre gateway sera 88.190.X.1
Si cela ne fonctionne pas vérifiez que c'est le 88.190.X de l'adresse ip du serveur ESXi que vous utilisez comme gateway et non pas le 88.190.X de l'ip fail over que vous venez d'acheter.

Voilà, continuez l'installation et n'oubliez pas d'ajouter les routes dans le /etc/rc.local

Le DNS proposé par online.net est 88.190.254.14 
Votre adresse de broadcast n'est rien d'autre que votre adresse ip.

Sources:

mardi 1 novembre 2011

Parcourir rapidement les sources du framework Android

Un jour ou l'autre vous aurez besoin de plonger dans le code sources du framework Android. C'est ce que j'ai eu à faire pour debugguer un problème d'envoi de sms à plus de 3000 caractères.

J'avais besoin de voir le code de la classe SmsDispatcher. La solution décrite sur le site officiel ou ici est de cloner les sources avec Git, ensuite faire un zip du répertoire /frameworks/base/core/java et mettre le zip dans le dossier Android ou vous avez au préalable installé le SDK.

$ repo init -u https://android.googlesource.com/platform/manifest
$ repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.7_r1

et il faudra installer repo auparavant. Cela téléchargera 5.5G de code source et prendra donc un bon moment (2Mb/s pas moins de 20minutes) avant de vous donner la main.

Par ailleurs, si vous tentez de parcourir la webview du repository, vous n'irez pas très loin :

Un moyen plus simple de voir les sources si on ne veut pas attendre tout ce temps c'est d'utiliser Google codesearch

 Il suffit de cliquer sur Android ensuite frameworks -> base -> et là vous pouvez parcourir les classes du framework. Attacher les sources à Eclipse :

Un autre site: grepcode.com propose aussi de parcourir le code source et fait mieux en proposant de télécharger le code sources du Framework sour forme d'un jar qu'on pourra utiliser pour voir les sources sous Eclipse. il suffit de créer un dossier sources dans le dossier ou on a téléchargé le sdk et d'y mettre le jar.

$ cd ~/android/android-sdk-linux/platforms/android-8/
$ mkdir sources $ cp ~/Téléchargement/android-2.2.1_r1-sources.jar sources/

Enfin, dans Eclispe : cliquez sur votre -> android.jar -> bouton droit -> properties -> cliquez sur external files et indiquez les sources :


Quelques ressources :

mardi 21 juin 2011

La solution au : No disk that can be used for recovering the system disk can be found

Vous avez acheté un nouveau PC portable avec un HDD et voulez mettre un SSD à la place. Au total on aura besoin de 3 disques, un disque tampon pour mettre l'image de votre HDD. Le SSD qui sera utilisé pour remplacer votre ancien HDD. (Vous l'avez compris, le 3ème disque est votre HDD)

Souvent, la capacité de stockage du SSD est plus petite que celle du HDD et cela est source de problème avec Windows lors de la restauration, même si vous avez fait l'image d'une seule partition de votre HDD, dont la taille est bien plus petite que celle du SSD

Au moment de la restauration, l'erreur est :
No disk that can be used for recovering the system disk can be found

La solution est :

D'abord, il faut que vous vous débarrassiez des partitions non système et réduire la taille de la partition système si elle est trop grande (ordinateur -> gérer -> gestion des disques)

Le système de restauration de Windows7 restaure la table de partition et vérifie que celle-ci peut s'appliquer sur le nouveau disque. Donc même si vous ne faites que l'image d'une partition qui fait disant 60 Go (inférieure à la taille de notre disque de destination), la simple présence d'autre partitions fait que votre restauration sera vouée à l'échec.

Maintenant, vous pouvez créer l'image de votre système et la sauvegarder sur un hdd externe.

Vous devez créer aussi un disque de récupération.

Bootez du cdrom et hop c'est parti.

Lien utile :

http://www.ocztechnologyforum.com/forum/showthread.php?79517-New-to-SSD-Windows-7-64-won-t-install-to-Agility2&s=1d1a461a8125bf476e575ce5e05d8aeb

lundi 2 mai 2011

Impossible de démarrer le serveur X (du jour au lendemain)

Aujourd'hui, suite à un plantage de Google Chrome (qui ne voulait plus rien comprendre) sur ma Debian Lenny, j'ai redémarré ma machine, j'attends que le boot finisse, je fais un startx pour lancer le serveur X et là il ne voulait plus se lancer. Je stresse un peu (Xbugphobie oblige) avant de m'approcher plus de cet écran noir.

Les messages d'erreurs affichés à l'écran n'étaient pas du tout clairs. J'ai donc lancé le serveur X en redirigeant la sortie d'erreur standard dans un fichier avec la commande suivante
$ startx 2> my-x-err
Et là :
mktemp: cannot create temp file /tmp/serverauth.wovCSJgVRE: Permission denied
C'est plus clair maintenant :)
$ sudo chmod a+w /tmp

jeudi 14 avril 2011

Partage de connexion (tethering) de Android à Debian

Dans cet article nous allons voir comment partager en ligne de commande, la connexion d'un smartphone Android vers un ordinateur portable qui tourne sous Linux Debian Lenny (5.0)

Le smartphone et le PC communiqueront en Wi-Fi. (Pas besoin d'un câble USB)

Mais avant, pourquoi la ligne de commande ?

Tout simplement parce qu'à cause de certains problèmes de dysfonctionnement que j'ai rencontrés dans le passé avec les networks managers graphiques, j'ai dû désinstaller celui qui était fourni par défaut avec Gnome et depuis ce jour là, j'ai toujours configuré mon réseau à la main.

Sans tarder, commencez par activer le tethering sur le téléphone :

Sur l'écran d'accueil , clic sur la touche de propriété, ensuite :

Settings -> Wireless & networks -> Tethering & portable hotspot -> cocher portable Wi-Fi hotspot.

Vérifiez le nom du hotspot, sur le téléphone utilisé. Par défaut, c'est : AndroidAP

Pour le changer, cliquez sur :
Portable Wi-Fi hotspot settings -> configure Wi-Fi hotspot.
Mettez le téléphone dans votre poche maintenant :)

Sur votre PC :

Connectez-vous en tant que root :
su -
Désactiver l'interface
ifdown wlan0
Activer l'interface
ifup wlan0
Associer l'interface au réseau (Très important) :
iwconfig wlan0 essid AndroidAP
Récupérer une adresse IP de votre point d'accès mobile :
dhclient wlan0
Si vous ne réussissez pas à obtenir une adresse ip , assurez-vous que vous avez bien suivez les étapes précédentes et n'hésitez pas à arrêter (Ctrl + c) le dhclient et le relancer.

Pour information, voici mon fichier interfaces qui se trouve dans /etc/network :

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

# The wireless interface
allow-wireless wlan0
iface wlan0 inet dhcp
wireless-mode Managed
wireless-ssid AndroidAP

vendredi 4 mars 2011

Vérifier le md5 d'un fichier

Si pour une raison ou pour une autre vous voulez vérifier l'intégrité d'un fichier que vous venez de télécharger, voici un moyen simple de faire.

Supposant que vous avez télécharger Tomcat 7 par exemple, depuis l'url : http://tomcat.apache.org/download-70.cgi#7.0.8
  • Commencez par générer le md5 avec la commande :
md5sum 'apache-tomcat-7.0.8.tar.gz'  |awk  '{print $1}' > localmd
Ici, je génère le md5 avec la commande md5sum, je passe la sortie à awk pour ne prendre que la première colonne (print $1). Je met le md5 dans un fichier "localmd" pour pouvoir le comparer avec diff.
  • Ensuite, faites la comparaison :
Pour cela, il suffit ensuite de copier le md5 qui se trouve sur le site de téléchargement de tomcat et lancer la commande suivate :
echo 'md5 qui se trouve sur le site distant' |diff localmd -
La commande diff ne compare que les fichiers, d'où la création de localmd. Le - pour lui dire de lire un opérande de l'entrée standard.

C'est fait, maintenant, je n'aurais plus la flemme de comparer les md5 ;)