Archives de catégorie : Informatique

En cours de migration …

Et oui je suis en cours de migrer de pdo sqlite vers Mysql …
entre autre pour pouvoir bénéficier de l’espace base de données augmenté que m’offre 1and1 avec 1 Go ça fait …
et ça me permettra de récupérer de la place sur le reste de l’hébergement … notamment en passant dans le mode multiblog.
Après plusieurs tentative j’ai juste renommé le fichier wp-content/db.php pour repasser en mysql exporter la base sqlite … remplacer les INSERT INTO en REPLACE INTO plus deux ou trois retouche dans la base, revalider tout les écrans de configuration (les permaliens ne fonctionnaient pas bien). Là ça à l’air de vouloir fonctionner ….

zenphoto sur demo1g de chez ovh

Suite aux évolutions très positive de la configuration de mon compte demo1g chez ovh (dommage que ce ne soit plus commercialisé). J’ai voulu tester une installation avec pdo_sqlite.
ça a marché presque comme une lettre à la poste …. efin presque c’est un gros mot
le premier challenge a été de mettre en place sqlite et comme pas de chance la version de l’hébergement n’est pas tout à fait la bonne. on est en test on s’en fout. Modification dans functions-db-PDO_SQLite.php

array('application'=>DATABASE_SOFTWARE,'required'=>'3.3.7','desired'=>'3.7.0','version'=>$matches[0]);

après il faut pouvoir accéder à sqlite dans le menu d’installation pour celà une première modification dans setup.php pour inverser le test de définition de RELEASE …

				case 'pdo_sqlite':
					if (defined('RELEASE')) {

voilà pour la partie sqlite … tout semble fonctionner
sauf dans la partie administration quand on essaye de sauvegarder des options on a un message parlant de tentative hameçonnage. Le problème est lié à une protection anti XSRF qui ne marche pas du fait d’une utilisation imprévue des variable de proxy.
pour corriger il faut modifier functions.php
et passer de

function getUserIP() {
	if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
		return sanitize($_SERVER['HTTP_X_FORWARDED_FOR'], 0); 	} else {
		return sanitize($_SERVER['REMOTE_ADDR'], 0); 	}
}

à

function getUserIP() {
	if (isset($_SERVER['HTTP_REMOTE_IP'])) {
		return sanitize($_SERVER['HTTP_REMOTE_IP'], 0); 	} else {
		return sanitize($_SERVER['REMOTE_ADDR'], 0); 	}
}

un bouchon série logiciel

Dans le but de dialoguer avec un process d’une applance Linux qui est connecté sur le port série je suis en train d’investiguer pour essayer de trouver une sorte de « bouchon série logiciel » afin de pouvoir « me mettre à la place du port série » à partir d’un accès telnet.
Reptyr aurait été une solution mais hélas n’est pas comaptible à l’infrastructure. L’essai avec gdb pour jouer avec le file descriptor a eu le bonheur de faire planter plusieurs fois.

Je n’ai pas réussi une cross compilation correcte de peekfd et il me reste de tenter snoop.
Si par hasard quelqu’un avait une idée … j’achète.

Apparition d’un trac et d’un dépôt Git

J’ai un peu merdé mais je viens d’installer sur mon pack 1and1 duo essentiel un trac (en fait le logiciel traq) et un dépôt git …les choses sérieuses commencent 😉
Le lien vers le trac « Les projets de Bertrand »
En fait ces deux opérations viennent de donner un coup de frein à mes tests de vps ?
Entre avoir la charge de gestion d’un vps (et oui parfois ça rame) et la tranquillité .. je crois que je vais opter pour la tranquillité 😉

hacking Expressgate eeepc

Finalement au bout de quelque temps j’ai réussi à en faire ce que je voulais … mais pour ça il faut retrouver pas mal d’anciennes versions et ça n’a pas été le plus facile.
J’ai donc maintenant un navigateur avec adblock et java …. plus la possibilité d’ouvrir d’ajouter des programmes en php sur la machine.
Au cours de mes investigation j’ai vu qu’il y avait la possibilité de mettre un fichier addon-xterm.bin sous ASUS.SYS pour activer xterm, mais je ne suis pas arrivé au bout visiblement cet addon est codé et décodé par un programme appeler xterm_dec. Un coup de strings sur l’exécutable m’a montré la présence d’un clé de codage (en clair dans le code).
Finalement il a été plus simple de recréer un va-xterm.sqx. pour cela le plus compliqué a été de retrouver un paquet debian xterm pour etch. On trouvera son bonheur sous snapshot debian.
le mieux est de repartir d’un squashfs-root précédement récupéré. D’extraire dans ce répertoire squashfs-root d’un coup depkg-deb extract. Puis on recrée un squashfs que l’on dépose dans ASUS.SYS. Un coup de touch ASUS.SYS/addon-xterm.bin arrêt de la machine et on relance.
une fois expressgate lancé on trouve dans la barre de lancement trois icône pour lancer xterm. ça doit marcher ™. On en profite pour récupérer sous usr/share une archive xterm…tgz ..le contenu nous permettra de mettre à jour le squashfs va-xterm. Je vous laisse découvrir le contenu …du répertoire applications que fous mettrez dans usr/share de votre squashfs-root.

Tant que l’on est dans xterm on en profite pour lancer firefox -safe-mode afin de désactiver le plugin splashtop qui empêche de charger les extension.
et plus qu’à aller chercher les anciennes versions des plugins.

pour gagner du temps vous pouvez télécharger un archive en tgz ou en zip. Dans cette archive il y a un fihier version32 qui est destiné à remplacer le fichier version qui est sous c:ASUS.SYS et que vous aurez bien pris soin de sauvegarder et un fichier va-xterm.sqx à déposer sous c:ASUS.SYS …

Première modifications à expressGate/splashtop

Cet article n’est qu’un compte rendu rapide du comment faire. Il s’agit de l’application des informations issue du forum phoronix. Pour plus d’infomation vous pouvez lancer une recherche sur expresgate hacking. Cette opé concerne expressgate sur eeepc où celui ci est stocké le disue dur windows et pas sur un SSD.

Commençons :
Le principe :
A la racine du disque dur windows vous trouverez un répertoire caché ASUS.SYS. Celui-ci contient entre autre un ensemble de fichiers avec l’extension sqx et un fichier version. Ce sont ces fichiers qui nous intéressent.
Le fichier version décrit la version de chaque fichier ainsi que son checksum. Afin de pouvoir fair le modification il faut le modifier. L’opération consiste à ne garder que les 32 premiers octets.
Donc l’amener sur linux et le raccourcir par dd

dd if=version bs=32 count=1 of=version32

plus qu’à remplacer sous ASUS.SYS le fichier version par notre version32
les fichier sqx contiennent chacun des élément par exemple bs-php….sqx contient php. C’est en fait un partie d’arboresence stocké sous forme d’un suashfs (un système de fichier très compressé en lecture seule). A noter qu’il s’agit de squashfs en version 3 la version du noyau de linux utilisé par expressgate étant incompatible avec la 4.
Il faut donc aller sur sourceforge charger une version 3 de squashfs et de compiler les squashfs-tools. C’est bon ? vous avez squashfs et unsquashfs ?
copier sur votre partition linux un des paquet et soumettez le unsquahfs (regardez le man) sous squashfs-root vous allez trouver la structure complète. Vous êtes donc prêt à faire vos première modifications …
ces modifcations faites un coup de squasfs pour créer un nouveau fichier .sqx le déposer sous ASUS.SYS et l’affaire est faite.

Ma première modification a consisté à m’attaquer au paquet bs-apache afin de pouvoir ouvrir la machine à l’utilisation d’outils php. Donc décompression du bs-apache modification de la configuration sous opt/apache/conf les dernière lignes du httpd.conf contiennent des règles de réécritures supprimer à partir re rewritecond.
resquacher remettre sous ASUS.SYS.
mettre à la racine de votre disque windows un fichier phpinfo.php contenant

<?php phpinfo();

éteindre passer sous expressgate lancer le navigateur et ouvrir
http://127.0.0.1:1080/links/winhdd/disk1/phpinfo.php

Et voilà

ENcore une idée loufoque – concevoir un site tout en Javascript

Ce matin, alors que je planchais dans une transformation d’un objets dom récupéré par xhtml … je me suis fait la réflexion suivante …

Pour concevoir une appli web en général on est obligé de jouer avec au mois trois langages différents qui n’ont rien à voir entre eux. L’idée de Sun de mettre java sur les serveurs et sur les clients a me semble t’il fait plus ou moins long feu, pourtant …

Et si on concevait une appli web uniquement en Javascript ? par exemple en concevant la page html comme un objet dom que l’on transmettrait en json … plus j’y pense plus je pense que cette idée devrait être creusée.

(Edit) en fait je m’aperçoit que pas ma ont déjà eu l’idée entre jsext (projet mort) jsdb et v8cgi.
J’aurais préféré un projet basé sur spidermonkey mais le seul que j’ai réussi à recompiler est en fait v8cgi

Slax livebox orange et IPV6

pour des besoins de test j’ai établi un petit script permettant de se connecter à travers une livebox en IPV6 en tunellant IPV6 en IPV4. Ce script est inspiré d’une description debian et a été mis au point / testé sur une SLAX. sur SLAX il nécessite le paquet iproute. Il faut aussi avoir un dyndns en place afin de pouvoir récupérer l’adresse V4 externe

#!/bin/sh
ADDRESS=`ip -f inet addr show |grep 192.168|sed 's/ *inet (192.168.1.[0-9]*).*/1/'`
IP=`host domain.dyndns.org|grep address|sed 's/.*address//' | tr "." " "`
IPV6=`printf "2002:%02x%02x:%02x%02x::1/16" $IP`
ip tunnel add tun6to4 mode sit ttl 74 remote any local $ADDRESS
ip link set dev tun6to4 up
ip -6 addr add $IPV6 dev tun6to4
ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4
echo nameserver 80.10.246.2 >> /etc/resolv.conf
echo nameserver 80.10.246.129  >> /etc/resolv.conf

1and1 tedieu ils ont mis un moteur de ferari dans mon hébergement !

Pendant plusieurs année je trouvais que mon hébergement manquait de tonus, mais je dois dire que les temps de réponse se sont améliorés dans des proportions énormes.
Je ne sais pas ce qu’ils ont fait mais je les en remercie.
A vue de nez les temps de réponse ont été divisés d’un facteur 3. Ce soir la page d’accueil s’est affichée en mois d’1 secondes et la page d’admin de wordpress en moins de 3 secondes.
Grandiose !

1and1 optimisation des temps de réponse

Je ne sais pas à quoi tient ce phénomène mais j’ai amélioré notablement les temps de réponse des blogs sur l’hébergement en utilisant une astuce trouvée sur le blog de lise
il suffit donc d’avoir dans son .htaccess

AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php

ça n’empêchera pas les erreurs 500 qui arrivent de temps en temps mais ça apporte un léger mieux.

autre tentavive je viens d’installer zend_optimiser en me référant à la faq