Restauration d’ancienne session firefox

Si comme moi il vous arrive d’avoir fait planter Firefox, mais de ne pas avoir les options de restauration de la session précédente au lancement suivant pour une raison ou une autre, voici une astuce ben pratique pour restaurer le bousin.

Solution tester sous GNU/Linux (Ubuntu) avec Firefox 21.0.

Aller dans le dossier de votre profil et ouvrez avec un éditeur de texte (notepad++, geany, vim, emacs, ….) les fichiers sessionstore-*.js ainsi que sessionstore.js. Ensuite, allez sur cette page et suivez les instructions. En sortie, vous devriez avoir à remplacer le contenu du fichier sessionstore.js et à relancer Firefox.

C’était la petite astuce du jour.

Activation, désactivation du wifi sur un D-Link DSL-2640B via PHP

Un script PHP en ligne de commande pour activer // désactiver le wifi sur un modem D-Link DSL-2640B. Cela permet d’illustrer un peu l’intérêt de faire du scripting …

Je ne ferais pas de commentaires, mais n’hésitez pas à poser des questions …

#!/usr/bin/php
<?php
 
//Variable definition
//
//router
$login = 'admin';
$password = 'admin';
$ip = '192.168.1.1';
 
//
//wifi
$wifi = array(
	// /!\ don't touch this /!\
	'wlSsidIdx'	=> 0,
	'wlEnbl'	=> 1,
	'wlCountry'	=> 'GB',
	'wlBasicRate'	=> '',
 
	//ssid name
	'wlSsid'	=> 'monSuperRéseauxWifi',
	//0 = visible, 1 = hide
	'wlHide'	=> 0,
	//number of chanel or 0 for auto selection
	'wlChannel'	=> 1,
	//Transmission Speed
	'wlRate'	=> 0,
	//wifi mode 0=802.11b only, 1=Mixed 802.11g and 802.11b, 4=802.11g only
	'wlgMode'	=> 4,
 
	'wlWpaGTKRekey'	=> 750,
	'wlWpa'			=> 'aes',
	'wlAuthMode'	=> 'psk2',
	//authentification mode : 0 = none, 1 = wep, 2 = auto (wpa or wpa2), 3 = wpa2 only, 4 = wpa only
	'wlAuth'	=> 0,
	'wlWpaPsk'	=> 'masuperclefdelamortquitue',
	'wlWep'		=> 'disabled',
	'wlPreauth'	=> 0
);
 
/////////////////////
 
class cli
{
	const LINE_BREAK = "\r\n";
	const LINE_NO_BREAK = '';
	const LINE_RETURN = "\r";
	const LINE_NOTHING = ' ';
 
	protected $_TEMP = 250000;//1/4 of seconds
	protected $_MULTIPLICATOR = 4; //1/4 -> 4
 
	protected $_LENGTH = 60;
 
	protected function _write_empty_space($lng)
	{
		while($lng < $this->_LENGTH)
		{
			echo ' ';
			$lng++;
		}
	}
 
	protected function _echo($message, $break)
	{
		echo $message, $break;
		if ($break == self::LINE_NO_BREAK)
		{
			$this->_write_empty_space(strlen($message));
		}
	}
 
	protected function _sleep($second)
	{
		$second = $second * $this->_MULTIPLICATOR;
		$i = 0;
		$j = 0;
		while ($i < $second)
		{
			usleep($this->_TEMP);
 
			if ($i % 4)
			{
				$this->_echo('.', self::LINE_NOTHING);
				$i++;
			}
			else
			{
				if($j % 2)
				{
					$this->_echo('', self::LINE_RETURN);
					$this->_write_empty_space(0);
					$this->_echo('', self::LINE_RETURN);
				}
				else
				{
					$this->_echo('Please wait', self::LINE_NOTHING);
					$i++;
				}
				$j++;
			}
		}
		$this->_echo('', self::LINE_RETURN);
	}
}
 
class wifi extends cli
{
	protected $_ch;
	protected $_baseUrl;
 
	public function __construct($wifi, $ip, $login, $password, $activation)
	{
		$this->_baseUrl = 'http://' . $ip . '/';
 
		$this->_ch = curl_init();
		curl_setopt($this->_ch, CURLOPT_HEADER, false);
		curl_setopt($this->_ch, CURLOPT_RETURNTRANSFER, true);
 
		$this->_auth($login, $password);
 
		$activation = intval($activation);
 
		if ($activation == 1)
		{
			$this->_activation($wifi);
		}
		else
		{
			$this->_disactivation($wifi);
		}
	}
 
	public function __destruct()
	{
		curl_close($this->_ch);
	}
 
	protected function _activation($wifi)
	{
		$this->_echo('Activation ...', self::LINE_NO_BREAK);
 
		$wifi['wlBasicRate'] = ($wifi['wlgMode'] == 4) ? 'wifi2' : 'default';
 
		$this->_doQuery($this->_baseUrl . 'wirelesssetting.wl?' . http_build_query($wifi, '', '&'));
		$this->_sleep(5);
	}
 
	protected function _disactivation($wifi)
	{
		$this->_echo('Disactivation ...', self::LINE_NO_BREAK);
 
		$wifiDown = array(
			'wlEnbl'	=> 0,
			'wlSsidIdx'	=> $wifi['wlSsidIdx'],
			'wlCountry'	=> $wifi['wlCountry'],
		);
 
		$this->_doQuery($this->_baseUrl . 'wirelesssetting.wl?' . http_build_query($wifiDown, '', '&'));
		$this->_sleep(5);
	}
 
	protected function _doQuery($url, $post = '')
	{
		curl_setopt($this->_ch, CURLOPT_URL, $url);
 
		if (!empty($post))
		{
			curl_setopt($this->_ch, CURLOPT_POST, true);
			curl_setopt($this->_ch, CURLOPT_POSTFIELDS, $post);
		}
		else
		{
			curl_setopt($this->_ch, CURLOPT_HTTPGET, true);
		}
 
		if(curl_exec($this->_ch) === false)
		{
			$this->_echo('', self::LINE_BREAK);
			$this->_echo('Error Curl : ' . curl_error($this->ch), self::LINE_BREAK);
		}
		else
		{
			$this->_echo('DONE', self::LINE_BREAK);
		}
	}
 
	protected function _auth($login, $password)
	{
		$this->_echo('Authentification ...', self::LINE_NO_BREAK);
 
		$post = array(
			'username'	=> $login,
			'password'	=> $password
		);
 
		$this->_doQuery($this->_baseUrl . 'index.html', http_build_query($post, '', '&'));
	}
}
 
if ($argc != 2)
{
	echo ' synthaxe : scriptname.php 1 for activation or 0 for desactivation ';
	exit();
}
 
new wifi($wifi, $ip, $login, $password, $argv[1]);
 
# EOF

Certes, le script ne gère pas tout, mais le but était de jouer avec la ligne de commande tout en n’allant pas dans les extensions exotiques de gestion de celle-ci ….

Questionnaire – sondage en ligne

J’en ai vu passé des questionnaires de fin de thèse ou des sondage pour tel ou tel société mais jamais je n’avais songé prendre note des références des logiciel ou des sociétés utilisé pour créer ces sondages-enquêtes! Du coup, en ayant eu besoin j’ai du chercher…

Et là cela se complique, on se rend vite compte que beaucoup de société propose des service payant et là ou pour n’importe quel script on trouve facilement des réponses à droite et à gauche, ici rien! Bien embêté me voila sur le chemin de la recherche.

Bref après quelques recherche et élimination je trouve deux sites proposant des services gratuits et qui semble correcte :
http://www.paxonta.com et http://www.sondageonline.com

Cependant, je me dit qu’il y avait certainement un projet open-source qui se devait d’exister et que si ce n’est pas le cas, alors le moment de hurler et de se lancer dans la bataille en faisant son William Walace devait arriver. Mais heureusement, pas besoin de tête tranchée le script fut trouvé :  LimeSurvey

Je ne suis pas déçu et ils propose même un service en ligne : http://www.limeservice.com
Par contre, il m’a fallu un peu de temps pour comprendre …. En gros, toujours cliquer sur l’icône à droite (l’espèce de feuille ….) et voila!

Perso je trouve que c’est encore fort compliqué … mais bon on peux pas tout avoir ….

J’en profite pour vous le faire tester en répondant a ce magnifique questionnaire sur les forums!

Raid logiciel sous GNU/Linux

Voici un petit trucs fort intéressant, la création d’un raid logiciel sous GNU/Linux (ici Ubuntu, mais théoriquement c’est la même chose pour toutes les distribution).

But : Créer un raid logiciel à partir d’un disque contenant des données (/dev/sda) et d’un autre disque vide (/dev/sdc).

Rappel : Un raid logiciel contrairement à un raid matériel repose uniquement sur du logiciel (d’ou le nom 😉 ), l’avantage c’est un gain de mobilité (en effet pas besoin de rechercher le même matériel pour restaurer ces données); l’inconvénient, petite perte de performance.

Procédure :

  • On suppose que l’on est en mode super utilisateur (root)
  • Installer mdadm : aptitude install mdadm
  • Mettre le flag de la partition (ici la 5ième donc /dev/sda5 et /dev/sdc5) sur raid : parted -s /dev/sda set 5 raid on et parted -s /dev/sdc set 5 raid on
  • Création du raid : mdadm -C /dev/md0 --level=1 -n=2 /dev/sda5 /dev/sdc5 => mdadm : array /dev/md0 started
  • Vérification : mdadm --detail /dev/md0
  • Regarder l’état d’avancement de la « reconstruction » (attention pas de rebootage durant cette phase ….) : cat /proc/mdstat ou watch cat /proc/mdstat ou mdadm --detail /dev/md0 | grep Rebuild
  • Une fois fini, n’oubliez pas de changer le fstab si vous voulez que cela soit monter automatiquement.
  • Si aucun système de fichier n’était présent sur /dev/sda5 ou /dev/sdc5 il vous faudra le créer via les outils habituels en prenant /dev/md0 comme disque de référence.

Remarques :

  • Les partitions doivent être identique en terme de taille mais ne doivent pas nécessairement être dans le même ordre.
  • Le cas illustré est du raid miroir.
  • Dans tout les cas faites une sauvegarde AVANT de faire quoi que se soit.

Info :

FSB RC est sortie!

Je vous le disait il y a peu, la nouvelle RC de FSB 2 allait sortir.

C’est chose faites !

Les principales nouveauté sont les suivantes :

  • Chiffrement RSA pour les identifiant
  • FSBCard (idée dont je suis fier) qui permet l’export de son profil ainsi que de ses préférences
  • Un mode bas débit du forum
  • L’option d’installation rapide, génial pour les développeurs!
  • Plein de fix
  • Possibilité de mettre des sondage dans les map des message, pour rappel les maps des messages étant une présentation d’un nouveau sujet||message à posté
  • Refonte complète du système de procédure modératives

Bref on sent que la version final approche et surtout que FSB2 à un grand avenir devant lui!

Mon seul regret : le thème que je trouve bof bof

L’annonce officiel