11.06.09
Posted in Astuces, Tutoriels at 16:31 par denis
Petite astuce du jour pour convertir très simplement une image disque QEmu vers VirtualBox.
Il ne vous faudra pour ça que les utilitaires QEmu et VirtualBox, ainsi qu’un peu d’espace disque.
Première étape: convertir l’image QEmu en image RAW.
qemu-img convert -O raw image_qemu.img image_brute.raw
Ensuite, convertir la même image RAW au format VirtualBox:
VBoxManage convertfromraw --format VDI image_brute.raw image_virtualbox.vdi
C’est prêt! (Vous pouvez bien entendu supprimer l’image RAW intermédiaire).
Permalink
07.01.08
Posted in Programmation at 0:10 par denis
Allez savoir pourquoi ca arrive toujours au plus mauvais moment… Allez d’ailleurs savoir pourquoi, mais Git a décidé ce soir de me faire une petite crasse… En plein boulot, voila-t-il pas que la sale bête se met à me traiter de « Pas un git repositoire », alors que j’essayais gentiment de faire mon commit du soir ( très important pour un bon sommeil, notez bien ).
Au premier coup d’oeil pourtant, tout va bien: le répetoire .git est bien là. Mais git-fsck n’est pas d’accord. Et il le fait savoir, comme son ami commit 30 secondes plus tôt:
fatal: Not a git repository
Voila qui est bien facheux… D’ailleurs un petit coup de strace sur la commande a tôt fait de révéler l’infamie responsable de tout ca: on a amputé mon gentil répo de ses fichiers .git/HEAD et carrément de tout le contenu de .git/refs ! Allez savoir quel terroriste est reponsable de ca, serait-ce l’infame XFS ? Un bug dans Git ?
Peu importe, le mal est fait, maintenant, faut récupérer. Alors voyons ce qu’il nous reste. Pas grand chose en fait: en gros, il reste surtout .git/log, .git/objects et .git/packed-refs. Premier « ouf » sonore: mes objets sont encore la, reste à récupérer les références, et pour ca, j’ai encore du bol: il me reste le log.
Primo, voyons le fichier .git/log/HEAD. Il contient en fait tout l’historique du pointeur HEAD pour cette copie de travail. La dernière ligne contient une référence au HEAD d’avant le crash. Dans mon cas, elle ressemble à ça:
edc483686bfcf0d889233eb03128424daa46f351 0cb4c60700197427926856a71a389bf6cba0221e Denis Wernert <deniswernert@nymphadora> 1214865337 +0200 checkout: moving from master to wip
Notez la seconde somme SHA1 de la ligne, 0cb4c60700197427926856a71a389bf6cba0221e, c’est elle, la référence qu’on cherche. On va la coller dans le fichier .git/HEAD, ce sera déjà ça.
C’est déjà pas mal, mais ca ne suffit pas, il faut encore re-créer .git/refs. Notez que .git/log contient un répertoire refs, contenant lui-même un répertoire heads. Pour chaque fichier contenu dans .git/log/refs/heads, on va créer un fichier dans .git/refs/heads du même nom, et pour chacun, on procedera comme pour le fichier HEAD ci dessus, c’est à dire qu’on va recopier la seconde somme SHA1 de la dernière ligne, pour la placer dans le fichier de destination.
Et la, ca va mieux.
Les branches sont de retour, et git-status veut bien me parler à nouveau. Notez que pour l’instant, ma référence à HEAD est absolue, et de fait, git ne reconnait pas ma branche courante. Une fois certain d’avoir tout retrouvé et après avoir sauvé mes modifs locales dans un patch, je peux écrire
ref: refs/heads/wip
dans mon HEAD, ou bien tout simplement faire un
git checkout wip
pour remettre le pointeur sur la branche.
Et voila, le répo est revenu et enfin dans de bonnes dispositions. Dans ce cas ci, on pourra bien dire que la « hackabilité » de Git m’a été bien utile…
Permalink
06.10.08
Posted in Langages, Programmation, Web at 23:31 par denis
Dans la série à n’en plus finir des « langages qui permettent de faire du Javascript sans se prendre la tête à faire du Javascript parce que le Javascript c’est vraiment trop dégueu ( et c’est vrai ) », voici un autre concurrent, à l’approche un peu plus originale, puisqu’il vous propose d’écrire du Javascript en… Javascript.
Enfin pas tout à fait, puisque Mascara propose de faire un petit bond en avant, et d’écrire dès aujourd’hui en Ecmascript 4, la prochaine norme Ecmascript qui devrait en réconcilier plus d’un avec le vilain petit canard des langages. Et c’est mieux, pour preuve, il vous sera possible d’écrire ceci:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| // Tiens, une variable typee ??
var i : int = 1 ;
// Généricité
var messages = Vector. ;
messages[1] = "hello" ;
messages[2] = "world" ;
// Héritage
class Foo {
var message : String ;
function Foo( msg : String ) {
this.message = msg ;
}
function talk() {
alert( this.message ) ;
}
}
class HelloWorld extends Foo {
function HelloWorld: Foo( "Hello, World" ) {}
} |
Voila qui donne déjà bien plus envie de faire du JS… L’auteur indique cependant que le support n’est pas encore complet. Ca va quand même nous aider à attendre Tamarin
Permalink
09.24.07
Posted in Langages, Programmation at 22:00 par denis
LinuxFr attire une nouvelle fois notre attention sur le langage Lisaac, développé pas loin de chez nous du tout…
Je n’ai pas vraiment eu le temps de me plonger dedans, mais vu la participation du fondateur de SmartEiffel, ca ne peut pas être mauvais…
A voir…
Permalink
05.22.07
Posted in Divers at 23:02 par denis
Un gros passage à blanc… Ca fait bien 2 mois que ce site n’a pas pris une ligne.
Principal fautif ? Le boulot ! Trop, et trop prenant.
La boîte qui m’embauche ( Sprice.com ), mise de plus en plus sur Ruby On Rails, une décision vraiment plaisante pour moi qui suis tombé dans Rails il y a un peu plus d’un an.
La contrepartie, c’est que mes projets persos n’avancent pas trop.
Cobalt n’a pas pris de mise à jour, et je n’avance pas bien vite sur les quelques projets, principalement en Objective-C en cours.
Côté Wii, je ne saurais que trop vous recommander Dragon Ball, récente aquisition, un jeu vraiment génial qui vous change des jeux de bastons biens bourrins ou on gagne sa partie a grands coups de button-mashing. Non, la il vous faudra bouger joyeusement dans tous les sens, vous essoufler, donner de votre personne et avoir l’air très ridicule dans votre salon ( »Meuh chéri, kestufé ? Ben je joue, ca se voit pas ? » ) àmimer des kamehas pour espérer vaincre. Eledees est en commande, bientôt des nouvelles sur ce beau joujou.
Niveau Nintendo DS, un peu déçu par la courte durée de vie de New Super Mario, bluffé par Meteos, très agréablement surpris pas Picross, heureux de pouvoir jouer a Final Fantasy partout avec FF3, scié par un jeu de stratégie de poche très complet avec Advance Wars et parfois un peu frustré par la difficulté de Trauma Center
On va essayer d’être a nouveau un peu plus présent dans les semaines à venir
PS: Merci a Yann Klis pour m’avoir fait jeter un oeil a jQuery, la lib javascript qui t’aide a faire faire des libs propres à tes collègues
Permalink
« Previous entries Page suivante » Page suivante »