dimanche 24 octobre 2010

The Best Dark Theme for Ubuntu

Edition: Après presque un an depuis l'écriture de ce billet, j'ai voulu installer ce thème donc je suis revenu ici, je me suis alors rendu compte que j'avais oublié un truc (l'étape 4), voila, je m'en excuse auprès de mes lecteurs et lectrices.



Hi,

Today I'm gonna tell you how to transform your Ubuntu desktop to a v... Euuuh désolé j'ai continué sur ma lancée :-D



Bon, pour les amateurs des thèmes Dark comme moi voila le meilleur thème Dark que je n'ai jamais vu, ce genre de thème est habituellement très moche vue le contraste qu'il offre: du pure blanc sur du pure noir!!! Mais celui là croyez moi, il est vraiment différent, voila tout de suite un avant goût:







Comme vous pouvez déjà le voir, ce n'est pas de l'amateur...

Même vos applications revêtiront le costume Dark :-) Voila pour Lyx







Gimp ...







et le tableur ....







et le lanceur d'applications Alt+F2 ...







même Google se met au Dark ...







En fait, et bien que le cœur du sujet soit le thème en lui même, je vais vous proposer une multitude de solutions qui combinées, chez moi, ont donné l'aspect que je souhaitais à mon bureau, et je sais que mes attentes sont celles de nombreux Ubuntéros qui trouvent que le bureau Gnome est beaucoup trop sous-exploité question look...



Voici les étapes:


  1. Si vous utilisez un thème pour FF3.x je vous conseille de d'abord revenir au thème original, vous pourrez à la fin revenir vers votre thème préféré.

  2. Installer gtk2-engines-ubuntulooks

  3. Le thème en question utilise les icônes d'un autre, ces icônes sont vraiment bien faits, mais malheureusement le thème qui va avec n'est pas à la hauteur, quoi qu'il en soit, ces icônes s'imbriquent de façon remarquable au thème que je vais vous présenter. Voici le lien vers le thème contenant les icônes (choisissez le premier par exemple), téléchargez le et installez le (faites un glisser-déposer dans la fenètre de "Apparences")

  4. Téléchargez ici et installez le thème (faites un glisser-déposer dans la fenètre de "Apparences").

  5. Je ne sais pas si vous êtes de mon avis mais le panel (tableau de bord) ne sert pas à grand chose, surtout si vous avez un petit écran comme moi, si vous avez remarqué sur ma première capture je l'ai totalement viré, j'ai trouvé un moyen pour ouvrir toutes les applications que je veux en une fraction de seconde (à prendre au sens figuré bien sure :-)), je vais en parler dans la suite, mais il subsistait trois problèmes: Où mettre la liste des fenêtres ouvertes et la zone de notification? Où mettre le menu?
    La réponse est:

    • Pour les fenêtres j'avais le choix d'tiliser un dock (comme AWM) que j'avais déjà, mais j'ai voulu quelque chose de plus discret, la solution je l'ai trouvé dans Screenlets cet outil offre de nombreux widgets qui ne marchent malheureusement pas toujours très bien (c'est pas non plus catastrophique rassurez vous) j'ai choisis d'utiliser la liste de fenêtres et de la configurer pour qu'elle apparaisse discrètement horizontalement à droite de l'écran (Opacity=0.6)


    • Pour le menu (et du même coup pour la zone de notification) j'ai remarqué que quand le thème est installé la hauteur de la barre du Panel peut être réduite plus que d'habitude (les icônes étant devenus plus petits) j'ai décidé donc de la rétrécir (décochez étendre auto.) , d'y mettre le menu et la zone de notification, et de la mettre quelque part où elle ne gêne pas et où elle est toujours visible, je peux aussi la déplacer comme je le veux si elle me gêne.




  6. Pour un lancement rapide et intuitif d'applications, de fichiers ou de répertoires un seul mot : Gnome-Do . Une fois mis en marche, il vous suffit d'utiliser la combinaison de touches Super+Espace (Super c'est celle avec un logo Windows dessus) et de taper ce que vous voulez (je vous laisse le découvrir tout seul car c'est très intuitif comme outil, vous verrez qu'il se familiarise avec vos habitudes au fur et à mesure que vous l'utilisez)



  7. Un terminal en une seule pression de touche c'est possible, Guake-Terminal est fait pour ça, installez le, activez le (menu::accessoires::GuakeTerminal) puis appuyez sur F12 pour l'enclencher, je préfère le régler pour qu'il recouvre tout l'écran, mais vous faites ce que vous voulez :-)


  8. Mon terminal je l'aime comme ceci:


    Où j'ai viré la barre de menu, et rendu le background transparent.

  9. J'espère que je n'ai rien oublié :-D (ah oui revenez à votre thème d'origine de Firefox, si par hasard le texte des boutons de menu est blanc, suivez ... 10 :-p)

  10. Alors si le texte dans le menu de Firefox est illisible faites ceci:

    • Tapez about:config dans la barre d'adresse.

    • Clique droit::nouvelle chaîne de caractères

    • Nommez la ui.menutext et donnez lui la valeur #000000



  11. J'espère encore n'avoir rien oublié!!!

  12. {Au cas où ...}


mercredi 20 octobre 2010

How to host files on Google (javascript, css, html, ...) and get a permanent, non-redirecting and bandwidth-generous hotlink

What is the point of hosting such files on Google and not on another server?

I think this question needs no response, the purpose is to take advantage of the very generous bandwidth of Google to display our html or our images, to load our scripts or css stylesheets.
After a long search for the miraculous solution, and after having tested everything: Google sites, Google docs, javascript and css encapsulations on images, ...etc I finally found the ultimate solution.

In fact the two solutions Google sites and Google docs are not permanent, since the links to the files change from time to time, such that we find ourselves forced to update the source code of our site each day! Also, the links used make redirections, which translates into a larger load times for our pages.

The solution of encapsulated script (hidden) in an image is also not very clean, in fact I noticed a big slowdown in the browser when evaluating a heavy script with eval() function.

The final solution is to use Google Code to store files and get a direct link (without redirection, permanent, and mainly mime-typed ). Here's how it can be done:

  1. Create your Google Code project:


    Go to http://code.google.com/hosting and click Create a new project, give a name, a summary and a description to the project, then choose Subversion in Version control system and anything in Source code license then click on Create project button, once the project is created, you will find yourself in the Project Management page, go to the Source tab and note the link of the project directory, it will look like this: https://ubugnu.googlecode.com/svn/trunk/ and will be next to svn checkout.
    To be able to put files in that directory you will need a password (otherwise anyone can tinker with your project), to get the password click googlecode.com password just below the link, note also that password.

  2. Connect to the project via svn and host files on Google by synchronizing the project directory with a local directory


    We will need the subversion package, install it with:
    ubugnu@ubugnu-laptop:~$ sudo apt-get install subversion
    Once the package is installed, here is what we'll do: Create a local directory which will be an exact copy the project directory and which you can synchronize at any time, ie edit the files locally, then synchronize the files so that Google files are also modified. That's how you create a copy of the project directory:
    ubugnu@ubugnu-laptop:~$ svn checkout "https://ubugnu.googlecode.com/svn/trunk/" ubugnu
    This command will create a directory called ubugnu which is an exact copy of that which is on the server, and as it is empty, my local directory will also be so.
    We will add a file (eg javascript) in our local directory then "spread" the change to the Google server, for example:
    ubugnu@ubugnu-laptop:~$ cd ubugnu
    ubugnu@ubugnu-laptop:~$ touche test.js
    ubugnu@ubugnu-laptop:~$ cp /var/www/test.js ./test.js
    ubugnu@ubugnu-laptop:~$ svn add ./test.js
    We will need to link to svn a text editor, nano would be best suited:
    ubugnu@ubugnu-laptop:~$ export SVN_EDITOR=nano
    You can put your favorite editor instead of nano (eg gedit)
    Now that our local directory ubugnu has been changed, one must propagate this change to the server with:
    ubugnu@ubugnu-laptop:~$ svn commit ./test.js --username ubugnu
    I put my Google nickname (put yours, it is the one contained in your gmail email address)
    A page will then appear in the text editor that you previously selected, save (Ctrl+o) and quit (Ctrl+x), then type the letter "c" (continue to) in the terminal and press enter.
    The terminal will then ask you the password of the administrator (root), type it, then it will ask for the password to access the project directory on Google, type the one you noted earlier and submit. Bravo, the file has been placed on the Google server.
    To check, click the Source then Browse and finally Trunck links, you'll see the file test.js, click it, then in the page that appears click on view raw file at the bottom right. The link you get is the one you can use in your source codes, it is quick and permanent.

    Go back and notice that the MIME-type file is text/plain (below view raw file) that is plain text, which is not a problem for a javascript file but can affect interpretation of other extensions (css for example)

  3. Changing the mime-type of files depending on their format:


    So as I said, mime-type can be problematic when it comes to files for which the browser checks the mime-type, try for example a css file on the server and include it in a page you will see that it will have no effect (it will not be interpreted) because its mime-type is the default text/plain, so we must change it.

    For our example, we will not use a css file but an html file, create an html file locally and put in a little html code:
    ubugnu@ubugnu-laptop:~$ touch test.html
    ubugnu@ubugnu-laptop:~$ nano test.html
    And put
    <html> 
    <body>
    <h2>it works</h2>
    </body>
    </html>
    Now we propagate the change with commit
    ubugnu@ubugnu-laptop:~$ svn commit ./test.html --username ubugnu
    We go as earlier to Source::Browse::trunck and click on test.html, then on view raw file and we note that the page appears in source code, meaning that the browser has not parsed the html code, simply because it considers the file as raw text because its mime-type is text/plain.
    Here is how to fix this:
    ubugnu@ubugnu-laptop:~$ svn propset svn:mime-type text/html ./test.html
    then propagate againe
    ubugnu@ubugnu-laptop:~$ svn commit ./test.html --username ubugnu
    Refresh the page test.html, you will see that the code is now parsed (Here is an example) :-)
    if we had wanted to host for example a css file, it should have been
    ubugnu@ubugnu-laptop:~$ svn propset svn:mime-type text/css ./test.css

Hébergement de fichiers texte, javascript, css, html ou autre sur Google

Quelle est l'utilité d'héberger de tels fichiers sur Google et non pas sur un autre serveur?

Je crois que cette question n'a pas besoin de réponse, l'utilité est qu'on profite de la très généreuse bande passante de Google afin d'afficher nos pages html ou nos images, de charger nos scripts javascript ou nos feuilles de style css.
Après une longue recherche de la solution miraculeuse, et après avoir tout testé: Google sites, Google docs, encapsulation de script javascript et feuille de style css dans une image, ...etc j'ai fini par trouver la solution ultime.

En effet les deux solutions Google sites et Google docs ne sont pas permanentes, vu que les liens vers les fichiers changent de temps en temps, résultat on se retrouve forcé de mettre à jour le code source de notre site chaque jour! Ce qui n'est pas très pro. Aussi, les liens utilisés font une redirection, ce qui se traduit par un temps de chargement plus grand pour nos pages.

La solution du code encapsulé (caché) dans une image est quant à elle pas très propre, en effet j'ai remarqué un grand ralentissement du navigateur au moment de l'évaluation d'un code lourd avec la fonction eval().

La solution finale est donc d'utiliser Google code pour stocker ses fichiers et avoir un lien direct (sans redirection, permanent et surtout mime-typé). Voici comment on fait:

  1. Créer son projet Google code:


    Allez à la page http://code.google.com/hosting et cliquez sur Create a new project, donnez un nom, un sommaire et une description au projet, puis choisissez Subversion dans Version control system et n'importe quoi dans Source code license puis appuyez sur le bouton Create project, une fois le projet créé, vous vous retrouverez dans la page de gestion du projet, allez dans l'onglet Source et notez le lien du répertoire du projet, il ressemblera à ceci: https://ubugnu.googlecode.com/svn/trunk/ et se trouvera juste après svn checkout.
    Pour pouvoir mettre des fichiers dans ce répertoire vous aurez besoin d'un mot de passe (sinon n'importe qui pourra bricoler dans votre projet), pour avoir ce mot de passe cliquez sur googlecode.com password juste en dessous du lien, notez aussi ce mot de passe.

  2. Se connecter au projet via svn et héberger ses fichiers sur Google en synchronisant le répertoire du projet avec un répertoire local


    On aura besoin du paquet subversion, installez le avec:
    ubugnu@ubugnu-laptop:~$ sudo apt-get install subversion
    Une fois le paquet installé, voila ce qu'on va faire: créer un répertoire local qui sera la copie conforme du répertoire du projet et qu'on pourra synchroniser à tout moment, c'est à dire modifier les fichiers en local, et après synchroniser pour que les fichiers sur Google soient aussi modifiés. Voila comment on crée une copie du répertoire du projet:
    ubugnu@ubugnu-laptop:~$ svn checkout "https://ubugnu.googlecode.com/svn/trunk/" ubugnu
    Cette commande va me créer un répertoire nommé ubugnu qui sera l'exacte copie de celui sur le serveur, et comme ce dernier est vide, mon répertoire local le sera aussi.
    On va ajouter un fichier (par exemple javascript) dans notre répertoire local pour après le "propager" vers le serveur de Google, par exemple:
    ubugnu@ubugnu-laptop:~$ cd ubugnu
    ubugnu@ubugnu-laptop:~$ touche test.js
    ubugnu@ubugnu-laptop:~$ cp /var/www/test.js ./test.js
    ubugnu@ubugnu-laptop:~$ svn add ./test.js
    Nous aurons besoin d'associer à svn un éditeur de texte, par exemple nano serait le mieux adapté:
    ubugnu@ubugnu-laptop:~$ export SVN_EDITOR=nano
    Vous pouvez mettre votre éditeur préféré à la place de nano (par exemple gedit)
    Maintenant que notre répertoire local ubugnu a été modifié, on doit propager cette modification vers le serveur avec:
    ubugnu@ubugnu-laptop:~$ svn commit ./test.js --username ubugnu
    ou j'ai mis mon pseudo Google (mettez à sa place le votre, c'est celui contenu dans votre adresse email gmail)
    Une page s'affichera alors dans l'éditeur de texte que vous aviez préalablement choisis, sauvegardez là et quittez, puis tapez la lettre "c" (pour continue) dans le terminal et validez.
    Le terminal vous demandera alors le mot de passe de l'administrateur (root), tapez le, alors il vous demandera le mot de passe d'accès au répertoire du projet sur Google, tapez celui que vous avez noté tout à l'heure et validez. Bravo, le fichier vient d'être mis sur le serveur de Google.
    Pour le vérifier, cliquez sur l'onglet Source puis sur Browse et enfin sur trunck, vous verrez le fichier test.js, cliquez dessus, puis dans la page qui s'affiche clqiuez sur view raw file en bas à droite. Le lien que vous obtiendrez est celui que vous pourrez utiliser dans vos codes sources, il est rapide et permanent.

    Revenez en arrière et remarquez que le mime-type du fichier est text/plain (en dessous du lien view raw file) c'est à dire du texte brute, ce qui n'est pas un problème pour un fichier javascript mais peut l'être pour d'autres extensions (css en l'occurrence)

  3. Changer le mime-type des fichiers selon leur format:


    Donc comme je l'ai dis, le mime-type peut être problématique quand il s'agit de fichiers pour lesquels le navigateur vérifie le mime-type, essayez par exemple de mettre un fichier css sur le serveur et de l'inclure dans une page, vous verrez qu'il n'aura aucun effet car son mime-type est par défaut text/plain, il faudra le changer.

    Pour notre exemple, on ne va pas utiliser un fichier css mais un fichier html, créons un fichier html en local et mettons y un peu de code html:
    ubugnu@ubugnu-laptop:~$ touch test.html
    ubugnu@ubugnu-laptop:~$ nano test.html
    et on met

    <html>
    <body>
    <h2>it works</h2>
    </body>
    </html>
    Maintenant on propage cette modification avec commit
    ubugnu@ubugnu-laptop:~$ svn commit ./test.html --username ubugnu
    On va comme tout à l'heure dans l'onglet Source::Browse::trunck et on clique sur test.html, on clique après sur view raw file et on remarque que la page apparait en code source, c'est à dire que le navigateur n'a pas parsé le code html, simplement parce qu'il considère le fichier comme du texte brute car son mime-type est texte/plain.
    Voici donc comment réparer cela:
    ubugnu@ubugnu-laptop:~$ svn propset svn:mime-type text/html ./test.html
    puis on repropage
    ubugnu@ubugnu-laptop:~$ svn commit ./test.html --username ubugnu
    Actualisez la page test.html, vous verrez que le code est maintenant parsé (voici un exemple) :-)
    Si on avait par exemple voulu héberger du css, on aurait dû faire
    ubugnu@ubugnu-laptop:~$ svn propset svn:mime-type text/css ./test.css

lundi 18 octobre 2010

Le DZ blog day

Avis à tous les blogueurs Algériens, une initiative fort intéressante et proposée par SecDZ dans son blog suggère de programmer des "DZ blog days", en gros, il s'agit de se mettre d'accord pour parler d'un même sujet tous au même temps dans une même journée et chacun sur son blog et à sa manière. Pour plus d'information, voir le billet original.

vendredi 15 octobre 2010

Télécharger depuis megaupload.com en ligne de commande

Pour ceux qui téléchargent régulièrement des fichiers depuis megaupload voici un script bash qui vous permettra de lancer le téléchargement beaucoup plus et sans passer par un navigateur:

ubugnu@ubugnu-laptop:~$ echo "Entrez le lien:";read l;a=(`wget -qO- $l | grep -oP "(http.*gencap\.php\?.*\.gif|\"\w{20}\"|\w{100,})" | tr -d "\""`);wget -qO /tmp/c ${a[2]};echo "Entrez le captcha:";(eog /tmp/c &);read c;kill `pidof eog`;echo "Attendez 46 secondes avant le début du téléchargement...";wget -c `wget -qO- --post-data="captchacode="${a[0]}"&megavar="${a[1]}"&captcha="$c $l | grep -P "id=\"downloadlink\"" | grep -oP "(((http)\://){1}\S+)" | grep "megaupload.com\/files" | tr -d "\"" && sleep 46`

Si vous ne voulez pas taper ce script bash à chaque fois, créez un alias (une commande qui le représente) en modifiant le fichier /etc/bash.bashrc en ajoutant:

alias mega='.... ici le script ...'

Maintenant vous n'aurez qu'à taper mega dans un terminal pour lancer le script.

samedi 9 octobre 2010

Google AdSense paie enfin par Western Union vers l'Algérie

Bonne nouvelle pour les diffuseurs Algériens de publicité AdSense, Google a annoncé que les paiements des revenus AdSense vers l'Algérie peuvent être faits dorénavant via Western Union, une méthode qui prend moins de 24 heures, et où on peut encaisser ses revenus directement dans une agence postale locale.

Cette nouvelle méthode de paiement était très attendue par les diffuseurs Algériens, qui voyaient souvent leurs chèques Google refusés par les banques locales, ainsi, certains se retrouvaient avec plusieurs centaines d'euros coincés... 

Seul couac, le très fort pourcentage que WU prend! 

Pour bénéficier de cette nouvelle offre, modifiez dans Mon compte la méthode de paiement dans votre interface de gestion de AdSense, aussi, assurez vous que le nom du bénéficiaire correspond exactement à celui qui est écrit sur votre pièce d'identité nationale (que vous utiliserez pour retirer l'argent).
Pour retirer l'argent il vous faut fournir quatre informations dans une fiche qu'on vous donneras dans le guichet: 


- Votre nom complet (pensez à ramener une pièce d'identité). 

- Les coordonnées de l'émetteur : Google Inc. 1600 Amphitheatre Parkway, Mountain View, California 94043, USA. N° de téléphone : 650-253-4000

- Le montant de votre paiement: vous le trouverez sur votre page "Historique des paiements"

- Votre numéro MTCN (Money Transfer Control Number): vous le trouverez en cliquant sur le lien "détails" en regard de la ligne Paiement émis, sur votre page "Historique des paiements"

[pour plus d'informations https://www.google.com/adsense/support/bin/answer.py?answer=65789]

Je ne sais pas pour vous mais moi je dis ... ça se fête ;-)...