Filed under: No-life, Toile — Le grand Bubu @ 11:41 am
Since this is not so self-evident that change.gov’s iPhone “app” is not an actual application but an iPhone version of Obama’s website (you can’t find it on the App store), and since few sites actually provide you with the link to go there, here it is:
Yesterday, or the night before to be more precise, I remember dreaming about Steve Jobs introducing the iPhone publicly. I had never seen the guy’s face before, but when I went to check out the actual iPhone introduction videos on Youtube, Apple’s CEO had exactly the same face I gave him in my sleep. Half-bald, thin, tall and wearing glasses, 40 or 50 years old. Is it just a coincidence, or have I become able to guess someone’s appearance just by hearing about them without actually having seen them before?
Filed under: No-life, Toile — Le grand Bubu @ 2:45 pm
First of all, I have to tell that from now on all my blog posts will be written in English. Several reasons for that decision:
- A bunch of my posts (if not all) will be written from my iPhone, and the French IME is like crap on the iPhone OS, so it’s not worth the trouble. I like writing good French, at least when posting articles.
- I want my Japanese friends to be able to read this blog. I could as well write in Japanese (and I will do so if I feel that my English is becoming difficult to understand at some point), but on the other hand it would become impossible for French visitors to read. So English is the right choice here. その上で英語の読む練習をさせてあげてもよろしいでしょ。
- Last but not least, recently I am only speaking Japanese (although I still dream in French for the most part of it), and I feel as if my English skills were slowly slipping away. Asides from a Spanish friend I met here at Nagoya Institute of Technology, I don’t speak English at all. I don’t get around with international exchange students much, only with Japanese people, so in the end I don’t get to practice English. Which is not good. I don’t want to trade English for Japanese, so posting in English on my blog will allow me to train my father’s native language a little.
That being said, let’s get down to business. I’ve been thinking about writing posts from my iPhone ever since I downloaded the Wordpress application for iPhone. After fixing our FreeBSD server - whose qmail queue was crammed with spam, acting as an open-relay and flooding /var to the point of no inodes being left, *sigh* - I finally upgraded the wordpress script so that the xmlrpc would become usable by that iPhone implementation of Wordpress.
And I must say I’m quite satisfied. The categories management feature is even better than the one I was using long ago with Drivel, that shitty good-for-nothing open source app for blogging. Well, since the Wordpress for iPhone app is - as the name states - dedicated to Wordpress, it’s obvious that it has to be working better than Drivel, but whatever. I like bitching on open source crap.
The next thing will be to try and upload a picture from the iPhone cam library; I’ve been reading in some comments on the App Store that one of this app’s flaws has something to do with picture formatting. Whatever, let’s see if that’s to be taken for granted or not
So here’s a pic of the kinda things we do during the meetings in our lab. Ok, I have to say that it was a 飲み会 meeting; in other words, it’s like that only on special occasions, and this time it was for our little iPhone contest: alcohol and the like were allowed. Let’s make that precision in case my sensei ends up reading that blog someday. The lab is a serious place. I’m not even sure if I’m allowed to post that pic here, people here being very picky about privacy. Well, I’ll ask and see. If it’s not possible I’ll just delete the pic right away.
So here’s our architectural masterpiece: Pisa tower, cocktail remix3d.
Haha, même dans le titre je peux faire de l’humour. Je m’aime.
Bref.
Je pensais que ça pouvait être intéressant de suivre une migration sous FreeBSD, d’une part parce que c’est assez peu banal, d’autre part parce que le niveau de difficulté me force un peu à garder une trace écrite. Juste dans le cas où tout merderait.
Étant équipé d’un assez bon ouvrage, d’une collection recommandée par un ancien geek de #ecchi, je pars donc à l’aventure avec mon baluchon.
Première difficulté, le partitionnement. Celui de notre hébergeur est, par défaut, à chier. À savoir : / (3 Go) et /home (180 Go). Hum. Non seulement c’est à chier niveau optimisation du partitionnement pour un serveur, mais c’est en plus tout simplement dangereux. Parce que s’il y a trop de softs dans /usr, ou plus simplement trop de logs dans /var, ou encore plus simplement trop de connards qui écrivent dans /tmp, on a une racine saturée tout de suite. Le système pourrait encore - avec de la chance - démarrer avec une racine saturée, mais quid de tout ce qui a besoin de place dynamiquement ailleurs que dans /home ? Quid des sessions et autres saloperies à écrire dans /tmp par les scripts à la noix qui ne savent pas se faire un répertoire de sessions perso ? Je pourrais symlink ces répertoires et les mettre dans /home, soit, mais non pas trop en fait. C’est moyennement propre, et si le système de partitionnement existe, autant s’en servir.
Donc voilà, quand l’hébergeur met 1/5 en facilité pour l’utilisation d’un OS, il pourrait aussi éventuellement s’arranger pour NE PAS mettre des batons dans les roues aux gens qui choisissent cet OS, en leur filant la conf de base la plus pourrave possible. Et le partitionnement, c’est la conf de base de chez base chez tous les serveurs. Roberto, il va me répondre “oui mais blablabla tu sais, c’est la politique Freebou que rien ne soit conf, blablabla, tu dois avoir le contrôle de ton OS blablabla”. Oui, mais. Tout serveur un tant soit peu bien foutu a ce partitionnement de base / /usr /var /tmp /home, ou en tout cas pas une racine et un /home, avec une racine prête à péter au moindre log ou à la moindre écriture de session. Faut pas charrier non plus, ça veut dire que le mec qui veut découvrir se fait vraiment péter la rondelle s’il fait pas gaffe à TOUT. Ou même, un mec qui utilise FreeBSD mais pas en serveur, en desktop par exemple (ok c’est plutôt rare), s’il a pas la présence d’esprit de partitionner, ou l’expérience serveur qui lui dira “oublie pas de vérifier ça” ?
Et de toute façon Roberto, sur l’ancien serveur Gentoo, y’avait pas mal de trucs fuyeux dans le genre. Alors que la facilité d’utilisation est à 5/5. On filait quand même un webmin avec le machin, ce qui se traduit par “destiné aux n00bs”. La durée de vie du serveur Gentoo “as is”, sans modifier la conf hors Webmin, je l’ai estimée à un an - date à laquelle les galères avaient commencé.
Donc, la première chose que j’ai faite pour pallier à cette pré-conf de merde, c’est de reboot le serveur en mode rescue, pour pouvoir refaire le partitionnement. Un reboot en rescue alors que le serveur vient d’être livré et n’accueille pas encore les sites, c’est encourageant. Enfin, le terme en tout cas.
Après avoir un peu galéré, sysinstall ne terminant visiblement pas ses newfs lorsqu’un partitionnement part en couile (à savoir : un mount mal fichu sur un répertoire inexistant), j’ai mes belles partitions.
/ a 3Go, ce qui suffit amplement (surtout, j’avais pas envie de payer mon reinstall)
/tmp a 3Go, et ça devrait être laaaargement assez
/usr en a 20, simplement par prudence
/var en a 20 aussi, pas par prudence mais par expérience : on génère énormément de logs bien lourds, notamment à cause de Planète-Sonic
/home a tout le reste, donc un bons tas de Go
Ensuite, je m’ouvre également un Google Doc pour noter toutes les petites feintes et les choses importantes du bouquin. Tu comprends Roberto, ce genre de truc je le fais rarement, mais là j’ai vraiment pas envie de buter sur le même problème deux fois. Les couilles sous Unix, d’expérience, c’est nettement plus à payer son pivert sur le mur que d’autres genres de couilles. D’ailleurs on pourrait graduer, en échelle de “ce qui est capable de faire le plus chier” :
Problème sous Windows = les racailles
Problème de programmation = les chats
Problème sous Linux = les femmes
Problème sous BSD = mes ex
Dans ces derniers, on notera par exemple ceci : Freebou ne faisant que “proposer des fichiers de conf”, ne les mettant pas en service, il manquait bien entendu le fichier de conf de vim. Or, si vim n’est pas configuré, il fait de la merde avec les terminaux. Ca veut donc dire :
Si t’as pas de .vimrc dans ton home, alors tu l’as sec, parce que ton curseur va tripper très chelou.
Ceci fait, si t’utilises pas en fait le fichier de conf d’exemple, alors tu l’as très sec, car je déciderai que tu ne peux utiliser backspace que sur le texte que tu viens de taper. [Edit: Après avoir regardé un peu, il s'avère que c'est le comportement basique de vi (sans m), proprement gerbant quoi.]
<Interlude> Oui, c’est à se choubler </Interlude>
Ok, il reste à trouver où on met le fichier de conf général. Faisons comme personne ne fait : pas dans /etc (Freebou oblige, soit), mais pas non plus dans /usr/local/etc. Où donc alors ? Dans /usr/local/share/vim, bien sûr !
Agngngngn.
Ceci étant fait, il ne m’est pas permis d’utiliser sshfs pour transférer toutes les données (sites etc) depuis l’ancien serveur. Je sais Roberto, y’a scp pour ça, qui est installé par défaut. Ouais mais scp, il connaît le maintien des modes dans le transfert, mais pas celui des informations de propriétaire. Donc voilà. Et puis c’est tellement simple sshfs. Les nuls aiment les choses simples.
L’ayant installé par un package, et non en utilisant le ports tree, j’ai eu la mauvaise idée de prendre un package destiné à FreeBSD 7.0, alors que l’hébergeur fournit FreeBSD 6.2. Par conséquent, ça link partout sur des librairies .so.7, au lieu de librairies .so.6 ou inférieur. Et du coup ! Soit je reprends pour de la 6.2, soit je MaJ en 7.0. Donc après avoir fuifuité deux ou trois libs en mettant des symlinks (oui c’est très safe !), comme ça ne fonctionne toujours pas, go upgrade 7.0. Miam.
Le client Samba permet de profiter des shares ou “dossiers partagés” d’un réseau Windows, tout en restant soi-même sous Unix. De la même façon, le serveur Samba permet, à partir d’un système Unix, de partager des shares qui seront reconnues par des ordinateurs Windows dans le LAN.
Téléchargement :
3 possibilités :
- Mode branlos : Passer par un gestionnaire graphique de paquets comme Synaptic : rechercher “samba” et installer le multi-paquets principal “samba”
- ou Attraper une tarball sur le site officiel et se compiler ça à la patte
tar -xvf mes_sources.tar.gz
cd mes_sources
./configure
make
(sudo) make install
Dans le dernier cas de figure, assurez-vous d’avoir toutes les dépendances requises par samba en sources.
Lancement :
/etc/init.d/samba start
En principe, lors de l’installation, samba est ajouté aux processus lancés selon le runlevel de votre ordi (comprenez : au démarrage). Vous pouvez le vérifier avec ceci :
locate samba | grep /etc/rc
Ce qui vous donne théoriquement une sortie ressemblant à ça :
Si locate part en cou*lle, n’oubliez pas sudo updatedb.
Pour relancer : (on s’en sert plus loin)
/etc/init.d/samba restart
Configuration :
Avant tout, on crée un utilisateur samba, quelqu’un (un login/pass) qui pourra se logger sur les shares qu’on partagera au sein du réseau. Créez en un avec le même login et pass qu’un utilisateur Unix déjà existant sur la machine.
smbpasswd
Ensuite, on édite le fichier de config :
(sudo) vim /etc/samba/smb.conf
Je recommande les lignes suivantes :
# “Workgroup” de destination : habituellement “Mshome” ou quelque chose dans le genre, sauf si vous souhaitez faire un workgroup à part
workgroup = Mshome
# Alias de l’ordinateur sur le réseau
server string = Nom_de_mon_PC
# Nécessite d’avoir un compte Unix sur la machine serveur (la nôtre en l’occurrence)
security = user
# Exemple de répertoire à mettre en share
[nom_de_la_share]
path = /chemin/vers/le/répertoire/sur/notre/serveur
available = yes
browseable = yes
public = yes
writable = yes
N’oubliez pas de relancer le serveur samba pour appliquer la configuration.
Voilà ! En 10 minutes, un répertoire Unix a été partagé sur le réseau Windows
2 petits scripts que j’ai faits tout à l’heure en me faisant chier à l’école, qui permettent respectivement d’uploader des fichiers dans un répertoire web et de mettre à jour une liste mémo (sans passer par une base de données).
Dans un répertoire ouvert depuis le web, donc sans fichier index.*, et éventuellement protégé par une authentification .htaccess + .htpasswd (mieux), mettez les scripts suivants :
Upload.php :
On veut pouvoir uploader des fichiers tranquillement dans le même répertoire que le script. Lorsque l’upload réussit, le script vous invite à retourner à la racine.
Oui, j’aime beaucoup le chaînage de fonctions bien crado façon bash script. C’est du codé en 5 minutes les doigts de pied dans l’oreille, hein ~~
- En principe vous n’avez pas à vous farcir la vérification des droits d’écriture, mais si vous avez des problèmes d’upload, essayez de changer les droits du répertoire en 777
- Vous aurez noté la petite protection contre l’upload de scripts php avec ereg : c’est minimal, pensez quand même à protéger le répertoire avec une authentification .htaccess + .htpasswd
- Important à savoir : un fichier uploadé avec le même nom qu’un fichier déjà présent dans le répertoire écrasera l’ancien
Memowrite.php :
Ici, on met à jour un petit fichier texte en ajoutant une nouvelle ligne au début de ce dernier. Pour ce genre de petit mémo, nul besoin d’une base de données sql.
- Pour qu’il fonctionne, n’oubliez pas d’uploader un fichier memo.txt dans le même répertoire, par exemple en utilisant Upload.php
- Pour effacer son contenu, uploadez un nouveau memo.txt vide
- Les attaques de type XSS (cross-site scripting) ne marcheront pas puisqu’on a utilisé htmlentities()
[21:46] -Mishi|Zed- ** Sending you pack #9 (”[Mishicorp]_Saikano_-_She_The_Ultimate _Weapon_Live_Action_Movie][xvid][49233093].avi”), which is 700MB (resume supported)
[21:46] -Mishi|Zed- ** Closing Connection: Sorry, no downloads to your country = fr
Filed under: No-life, Toile — Le grand Bubu @ 1:29 am
Clip à réserver à un public averti (si votre culture n’intègre pas bangbus ou nintendo, passez votre chemin). Y’a ceux comme Kamini qui le font dans un décalé bon enfant, et ceux qui le font dans un décalé un peu plus trash, mais toujours représentatif d’un certain état d’esprit
Décidément, ma grosse machine aura décidé de me faire chier ces deux dernières semaines. Dernier problème survenu : mon disque archive de 40 Go en FAT32 (fs qui reste utile car inscriptible par la majorité des OS) décide de jouer à une partie de cache-cache. Enfin, pas lui, mais son contenu. Résultat : du jour au lendemain, le volume n’est plus reconnu par Linux ni Windows, et se voit considéré comme espace non alloué. Ce disque contenant tout de même des choses plus qu’importantes (travail sur les sites web, dessins d’art perso…).
Idiot mais débrouillard et surtout plus gland que jamais, je décide quand même qu’il sera plus simple de récupérer l’intégralité de mes données que de recommencer plus de trois ans de travail à zéro. Etant donné que quand on supprime un fichier (ou même tous), que l’on formate un disque, ou même que l’on fait le clown avec ses partitions, les données restent. Elles restent jusqu’à être écrasées de nouveau. L’OS efface simplement l’index du fichier (ou la table dans le cas du disque entier), il ne s’emmerde pas à “blanchir” vos secteurs. Surtout un OS feignasse comme Windows.
La plupart des outils de récupération de disque iront sonder la structure du disque pour retrouver vos fichiers à l’arrache dans les différents clusters. Il faudra les enregistrer un par un sur un autre disque, etc. Long. Voire éprouvant, si vous avez beaucoup de données précieuses à récupérer. Et, en sus des données essentielles que j’ai évoquées ci-dessus, j’avais surtout une formidable archive hentai à sauver. On est motivé ou on ne l’est pas. Ouais, mais on est aussi feignasse.
On se met donc à penser qu’il sera plus simple de réparer la table de partitions, le secteur boot du disque. Comme ça, on ne s’emmerde pas à jouer au puzzle avec des données récup à l’arrache. C’est comme redessiner la carte de son jardin (désolé pour la métaphore débile).
Voilà donc l’objectif de ce post : décerner une petite palme à Testdisk, qui permet d’effectuer ces opérations sans se prendre les bur—.
La feignasse a récupéré l’intégralité son disque formaté, non reconnu, non alloué (etc, ça dépendait de l’OS) sans se faire chier, en 3 secondes. Elle peut donc s’astiquer le 21e doigt sur l’un des doujins dudit disque pour se féliciter. Les oiseaux chantent, les criquets aussi.