vendredi 25 mai 2012

Outlook - supprimer un envoi

Votre collège a eu la mauvaise idée d'envoyer un mail avec une pièce jointe de 90Mb - oO - et, bien entendu, son outlook souffre d'une sérieuse indigestion (...) Pas de panique, il est possible de soigner le malade grâce à une bonne vieille ligne de commande (oui, même sous Window$). Fermez outlook, lancez un terminal et entrez la ligne suivante en administrateur :

c/Program files/<chemin-vers-outlook>/outlook /safe


Ouvrez outlook, vous pouvez supprimer le mail en sur-poids.

lundi 21 mai 2012

Geany - éditeur code source

Après ma migration vers ubuntu 12.04, je suis toujours à la recherche d'un éditeur html/php. Comme Bluefish n'a pas vraiment remplacé Quanta+, je teste les alternatives. L'objectif étant d'avoir un éditeur léger et offrant des fonctionnalités utiles comme les codes couleurs, la conversion automatique des caractères spéciaux en code html, l'auto-complétion etc.

Aujourd'hui, j'ai découvert Geany présent dans les dépôts ubuntu. Pour être léger, il est léger. Je vous conseille en outre, d'installer les plugins qui vont avec :

sudo apt-get install geany-plugins


Vous y trouverez notamment les plugins "Caractères HTML", "Navigateur de fichier" biens utiles ainsi que "Additions" qui, comme son nom ne l'indique pas bien, permet de laisser des TODO dans votre code et d'afficher automatiquement la liste des TODO de vos fichiers dans l'onglet "tâches" de votre console.

Je vous conseille également de copier le contenu de /usr/share/geany/* dans votre ~/.config/geany/filedefs/ afin de personnaliser les thèmes des différents langages de programmation.
Il est également possible de trouver d'autres thèmes sur le net.


dimanche 20 mai 2012

Luminosité

Vous avez les yeux sensibles à la luminosité de votre écran? Il existe, dans les dépôts ubuntu, un programme qui s'appelle redshift. Le principe consiste à lui donner vos coordonnées (longitude & latitudes) et le programme ajuste la luminosité de votre écran en fonction de l'heure de la journée. Il s'inspire de f.lux mais contrairement à ce dernier qui fonctionne de manière binaire, redshift s'ajuste progressivement en fonction de la position du soleil.
Pour en profiter, ajoutez la ligne suivante dans vos programmes au démarrage :

redshift -l 56.6:2.3


Pour trouver vos coordonnées, il existe google map (clic-droit, plus d'infos sur cet endroit) ou encore http://www.getlatlon.com/.
Seul petit regret, redshift ne tient pas (encore) compte de la météo.



samedi 19 mai 2012

Réparation du Grub

Ce matin, je me décide à mettre à jour le pc de madame de manière à migrer sa version d'ubuntu 10.04 vers la 12.04. Son laptop est en dual boot avec un OS propriétaire que vous connaissez peut-être.
Suite à cette opération, j'ai un vilain message d'erreur au démarrage ubuntu error : no such partition.

Mon grub est tout cassé! Pas de panique, je lance mon cd live et j'installe un petit programme qui répond au doux nom de boot-repair.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair

Il suffit ensuite de lancer l'application et de se laisser guider. Quelque secondes plus tard, je retrouve mon très cher grub en bonne forme.


Edit : J'ai tenté d'utiliser cette méthode récemment mais impossible d'installer le paquet. Une alternative consiste à télécharger le cd boot : http://sourceforge.net/projects/boot-repair-cd/files/

mercredi 16 mai 2012

Gimp - resynthesizer

Nous avons tous vu cette vidéo magique où il est montré comment faire disparaître une branche d'arbre en quelques clics avec Photoshop CS5. Voila le genre d'outil génial qui n'existe que sur les logiciels propriétaires! Que neni. La même chose existe sous Gimp et cela depuis plus longtemps.

Pour arriver au même résultat, il suffit d'installer le paquet gimp-resynthesizer. Le reste est un jeu d'enfant. Sélectionnez la zone à faire disparaître avec le lasso, ouvrez filtre > amélioration > smart remove selection, choisissez un angle et frimez.

Edit : pour manjaro, il faut lancer la commande : yaourt -S gimp-plugin-resynthesizer-git





lundi 14 mai 2012

PHP - Pièces jointes


Après l'exercice précédent qui consistait à générer un fichier pdf, je souhaite envoyer ce même fichier par mail à un ou plusieurs destinataires.

Voici donc le bout de script php qui permettra d'envoyer un mail en y attachant une pièce jointe (mon fichier pdf). Au vu de la complexité de ce bout de code, je ne saurais que trop vous conseiller d'englober tout cela dans une sympathique petite fonction.

// email fields: to, from, subject, and so on
$from = "destinateur@email";
$subject = "Sujet du mail";
$message = "Message du mail.";
$file = "fichier.pdf";
$to = "destinataire@email";


// Construction du message et découpage mime
$headers = "From: $from";$semi_rand = md5(time()); 
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 


// Attachment 
$headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";


// multipart boundary 
$message = "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" .      "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";


// Préparation attachment
$message .= "--{$mime_boundary}\n";
$fp =    @fopen($file,"rb");
$data =    @fread($fp,filesize($file));
@fclose($fp);
$data = chunk_split(base64_encode($data));
$message .= "Content-Type: application/octet-stream; name=\"".basename($files)."\"\n" .  "Content-Description: ".basename($files)."\n" . "Content-Disposition: attachment;\n" . " filename=\"".basename($files)."\"; size=".filesize($files).";\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";


$message .= "--{$mime_boundary}--";
$returnpath = "-f" . $sendermail;
$ok = @mail($to, $subject, $message, $headers, $returnpath);

Voila, n'en profitez pas pour envoyer du spam petits malins ^^

jeudi 10 mai 2012

PHP - Génération de pdf


Le projet du jour consiste à générer un fichier PDF.
La méthode est très simple, se résume à l'installation d'une série de fichiers et quelques lignes de code.

Le contenu de mon fichier PDF sera construit dans une page php. Je peux donc y placer du texte mis en page avec quelques fioritures (tableaux, images, etc.)
Il faut cependant être conscient que la mise en page doit rester simple. Évitez de rajouter du javascript, du flash ou de la css trop complexe. En plus, la page dont contenir du html bien formé (respect strict de la syntaxe et des balises) sinon, c'est le bug du moteur DOM.

Le moteur utilisé n'est autre que dompdf. J'ai pris la 0.6.0 beta qui donne de bien meilleurs résultats que la 0.5.2. Seule chose à savoir, la variable DOMPDF_ENABLE_REMOTE est à false par défaut. Il faut lui donner la valeur true pour pouvoir afficher des images.


La méthode consiste à ouvrir la page php, à injecter son contenu dans une variable. Vous donnez cette variable à manger à dompdf qui se charge ensuite d'effectuer le rendu et de l'envoyer vers un fichier physique. Voici mon bout de code.

#!/user/bin/php
<?php
      include("dompdf-0.6/dompdf_config.inc.php");
      $page = fopen("http://monserveur/mapage.php", "r");
      $texte = "";


      $dompdf = new DOMPDF();


      while(!feof($page)){
            $ligne = fgets($page, 4096);
            $texte .=$ligne;
      }


      $dompdf->load_html($texte);
      $dompdf->render();


      $pdf = $dompdf->output();
      file_put_contents("fichier.pdf", $pdf);
?>

Vous aurez remarqué au passage la première ligne du code. Cela me permet de lancer directement ce script en ligne de commande à partir d'un script.sh ou de mon crontab.
Vous disposez à présent d'un beau petit fichier pdf dans votre répertoire de travail.



lundi 7 mai 2012

Gnome Shell

Après avoir testé Unity pendant une bonne semaine, je me suis dit qu'il était temps de mettre Gnome Shell à l'épreuve.
La première chose qui saute aux yeux : c'est beau, harmonieux, ergonomique. Malheureusement, ce travail d'intégration se paie par un temps de chargement plus important qu'Unity. Je m'étais déjà habitué à la vitesse de chargement de ce dernier.
En outre, on sent bien que cet environnement de travail est encore un peu instable. En quelques minutes de test, j'ai déjà rencontré un plantage (sic).

Je m'étais déjà habitué au Dash de Unity, celui de Gnome Shell reste très agréable à utiliser également. La gestion des notifications est, quant-à elle, une bonne surprise également.
Dans la série des bonnes surprises, en tentant d'éteindre le pc, je clique sur "Mise en veille" par erreur - bein oui, pour éteindre, il faut ouvrir le menu personnel et appuyer sur "Alt", certes un choix discutable - et cette-fois, pas de problème à la reprise comme c'était devenu une habitude avec Ubuntu. Au point qu'Unity avait carrément fait disparaître la fonctionnalité de mise en veille. Bon, c'est peut-être que mon swap était adapté, contrairement à mes précédentes installations, je ne sais pas ...

Ensuite, vient le temps de la configuration, du paramétrage. Voici donc ci-dessous quelques petites astuces pour se faciliter la vie.

1. La date et l'heure
Par défaut, seule l'heure est affichée. Voici une ligne de commande qui vous affichera également la date ou les secondes.

gsettings set org.gnome.shell.clock show-date true
gsettings set  org.gnome.shell.clock show-seconds true


Il est toujours possible de configurer les éléments de gnome via le gconf-editor.

2. Enregistrer l'écran
Le raccourci clavier Ctrl+Shift+Alt+R lance automatiquement l'enregistrement du bureau.

3. Les boutons de réduction et d'agrandissement de fenêtre
Vous pouvez les faire revenir grâce à la commande suivantes :

gconftool-2 -s -t string /desktop/gnome/shell/windows/button_layout "menu:minimize,maximize,close"


Edit (19/05/2012) : en ce qui concerne la version ubuntu 12.04, cette méthode ne fonctionne pas. Pour faire apparaître les boutons min/max, il faudra passer par dconf-editor et vous rendre dans la clé org / gnome / shell / overrides et modifier la valeur button-layout.
Le plus simple consiste quand même à utiliser gnome-tweak-tool.


4. Réduire la taille des icônes dans le Dash
Vous trouvez que les icônes sont un peu grandes dans le Dash. Pour les réduire, il faut éditer le fichier /usr/share/gnome-shell/theme/gnome-shell.css (en sudo) et de modifier les valeurs de icon-grid.
Il faut ensuite recharger gnome-shell pour voir le résultat. Pour ce faire, il suffit de lancer Alt+F2 et de lancer la commande r (pour recharger).

5. Le bouton éteindre
Si vous souhaitez voir le bouton "éteindre" en permanence, il suffit d'installer le paquet : gnome-shell-extensions-common.

sudo add-apt-repository ppa:webupd8team/gnome3
sudo apt-get update
sudo apt-get install gnome-shell-extensions-common


Utilisez ensuite gnome-tweak-tool pour configurer votre environnement de travail (Section Shell extension) :
- Alternative Status Menu Extension = bouton éteindre
- Application Menu Extension = menu gnome applications
- Weather Indicator Extension = widget meteo (il vous faudra identifier votre WOEID sur weather.yahoo.fom)

Je vous conseille enfin, d'aller sur https://extensions.gnome.org/.


vendredi 4 mai 2012

Journée contre les DRM

Ce 4 mai, c'est le jour contre les DRM mais le grand public s'en fout. En même temps, personne n'en parle dans les medias. La lutte contre les DRM reste un sujet limité à la petite bulle des nerds même si, au final, c'est l'affaire de tous.

Voici une petite piqûre de rappel pour les uns, une explication compréhensible pour les autres (^^) :


DRM = Digital Rights Management. A l'origine, ça part d'un "bon sentiment" qui consiste à protéger une oeuvre contre le piratage.
Mais le problème est que d'une part les pirates arrivent toujours à contourner la protection, d'autre part, les honnêtes acheteurs éprouvent parfois des difficultés à lire leurs oeuvres (un CD avec DRM fonctionne mal, par exemple, dans une auto-radio).
Au final, les DRM sont inutiles et contre-productifs. Ils ne sont pas un frein au partage, ils sont un frein à la consommation.





jeudi 3 mai 2012

Gimp 2.8

La dernière version de cette célèbre alternative libre à toshop est enfin sortie.
Pour en bénéficier si vous êtes sous ubuntu 11.10 ou 12.04, suivez le guide :


sudo add-apt-repository ppa:otto-kesselgulasch/gimp
sudo apt-get update
sudo apt-get install gimp

En première impression, je dirais que cette version me facilite son utilisation au quotidien.

Dans un premier temps, le mode fenêtre unique est un vrai soulagement pour qui ne travaille qu'avec un seul écran. Fini de perdre son temps a essayer de redimensionner ces fichus fenêtres où - pire - devoir les ré-ouvrir parce qu'on a fait un ctrl+w au mauvais moment.

Ensuite, une horreur ergonomique de l'ancienne version a été corrigée : l'ouverture d'images multiples. Qui n'a jamais pesté contre Gimp après avoir ouvert une nouvelle image et s'être retrouvé contraint à jouer du alt+tab pour trouver "l'autre" image. La gestion d'images par vignette nous permet de "voir" et choisir rapidement n'importe quelle image ouverte. Que du bonheur.

Gimp distingue à présent la sauvegarde au format xcf et l'export vers les formats classiques (jpg, png, gif, etc.) mais aussi et surtout vers le format pdf dont je suis un grand consommateur.

Après, l'outil comprend une trentaine de nouvelles fonctionnalités comme de nouvelles brushes ou un outil de transformation par cage. Des choses dont je ne me sert pratiquement jamais. Il est vrai que mon utilisation de Gimp reste très limitée : retouche et montage photos, détourage, pré-visu de projet, réalisation de plans ...

Dans tous les cas, ça fait toujours plaisir de voir ces projets open-source évoluer et s'adapter aux attentes de leurs utilisateurs.


Pour les versions antérieures d'ubuntu, il vous est également possible de tester gimp 2.7 qui propose un certains nombres de caractéristiques vues ci-dessus (le mode fenêtre unique et la gestion de vignette pour les images ouvertes). Pour l'installation :

sudo sh -c “echo ‘deb http://ppa.launchpad.net/matthaeus123/mrw-gimp-svn/ubuntu lucid main’ >> /etc/apt/sources.list”
sudo apt-key adv –recv-keys –keyserver keyserver.ubuntu.com 405A15CB
sudo apt-get update
sudo apt-get install gimp




mardi 1 mai 2012

Masquer un twittos

Vous utilisez Twitter et vous aimez cela. Oui mais voila, certains twittos que vous followez sont un peu bavards ou racontent des choses qui ne vous passionnent pas. Cependant, vous ne souhaitez pas vous désabonner de leur flux.
Il est possible d'installer une extension chrome/chromium qui vous permet de masquer les tweets des gens que vous suivez : Slipstream.
En réalité Slipstream va un peu plus loin que le simple blocage. Il permet, en outre, de masquer des tweets qui comprennent certains mots ou balises. En plus, un bouton "hide" apparaît dans votre timeline pour masquer le ou les tweets incongrus.

Voila, en plus d'avoir découvert une nouvelle extension, vous aurez eu droit à un petit cours de franglais.