samedi 27 octobre 2012

Avoir plusieurs instances de Google Chrome sur Ubuntu

Avoir plusieurs instance de Google Chrome (ou Chromium comme vous voulez) sur votre Ubuntu peut s'avérer très utile. Vous pouvez par exemple décidé de créer une instance chrome pour le boulot et une autre pour vos affaires personnelles.
Pour ce faire il vous suffit juste de lancer l'application "menu personnel" dans le dashboard unity.
Ensuite cliquez sur "Ajouter une nouvelle application".
Remplissez le champ nom comme bon vous semble. "chrome travail" par exemple pour votre instance pour le boulot.
Ensuite dans le champ commande, ajouter la ligne suivante :

/opt/google/chrome/google-chrome %U --user-data-dir=~/.config/google-travail &

Sauvegardez et le tour est joué. Vous aurez une nouvelle instance de chrome avec les extensions, les bookmarks et l'historique différents de l'ancienne instance.

mercredi 13 juin 2012

L'arme de Portal en vrai !

Imaginer un peu à quoi pourrait ressembler l'arme du jeu portal dans la réalité. Jason Craft vous offre un de ses plus gros challenges. Il a mis le paquet sur ce gros délire. A voir et à revoir.
Enjoy!

samedi 17 septembre 2011

Fresh install de LAMP + Webmin + Django 1.3 sur une Ubuntu 11.04

Je viens d'obtenir un super DELL Inspiron  avec des spécifications extra, mais malheureusement, qui dit nouvelle bécane dit long processus de mise à niveau du système (Installation de logiciels...) et pour les développeurs mise en place d'un nouvel environnement de développement. Vu que actuellement, je travaille sur un projet avec Django, c'est la première tâche que j'ai eu à réaliser. Je profite donc de l'occasion pour partager avec vous ma démarche.

Tout d’abord voici la liste des outils que je vais mettre en place :
  • Un serveur LAMP
  • Webmin (Que j'affectionne particulièrement pour l'administration de ma machine)
  • Le framework Django en version 1.3 (et tout ce qui va avec)

NB : Toutes les manipulations qui suivront ont été faites sur une ubuntu 11.04

INSTALLATION DU SERVEUR LAMP 
J'ai tout de suite mis en place LAMP après l'installation de ma distribution. En général, je préfère passer par les dépôts officiels d'Ubuntu quand je n'ai pas besoin de me montrer trop exigent sur la version à utiliser. Donc pour PHP 5, mySQL5 et apache2 faites :
sudo apt-get install tasksel


Ensuite :
sudo tasksel install lamp-server

Pour tester si votre installation fonctionne parfaitement, faites c'est par ici : localhost
Vous devriez voir le message "It works!"

Ensuite  pour installer phpMyAdmin3.3 :
sudo apt-get install phpmyadmin

Si vous avez un message d'erreur à l’écran, c'est que certainement apache recherche par défaut dans le répertoire :  "/var/www/phpmyadmin". Pour pallier donc au problème, créez un lien symbolique vers le répertoire d'installation de phpmyadmin (/usr/share/phpmyadmin chez moi).
sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

phpmyadmin est accessible ici : localhost/phpmyadmin

WEBMIN
On passe maintenant à l'installation de webmin. Aucune version n'est disponible dans les dépôts officiels. On va donc procéder à une installation manuelle. Pour ça, on va :
Satisfaire tout d'abords les dépendances du logiciel :
sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions libapt-pkg-perl

Rendez-vous dans le répertoire tmp :
cd /tmp

Téléchargez le package du logiciel :
wget http://www.webmin.com/download/deb/webmin-current.deb

Ensuite installer le package :
sudo dpkg --install webmin*.deb

Dans le cas ou le terminal vous signale une erreur, faites ceci :
sudo apt-get install -f

Définissez le mot de passe webmin (changer webmin_pass par votre mot de passe)
sudo /usr/share/webmin/changepass.pl /etc/webmin root webmin_pass

Et c'est tout. Vous pouvez accéder à l'interface d’accueil via l'url  https://localhost:10000

PYTHON-DJANGO

On va maintenant mettre en place l'environnement de développement python avec le framework Django.
On installe tout d'abords certains outils qui nous seront nécessaires
sudo apt-get install libapache2-mod-python python-mysqldb python-dev subversion

Ensuite on télécharge la version de Django la plus récente
svn co http://code.djangoproject.com/svn/django/trunk/ django

Pour que le framework soit reconnu par python, il faudrait que les fichiers soient dans son répertoire "dist-packages"
Pour savoir ou se trouve ce répertoire, faites :
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Ensuite copiez le répertoire django que vous avez obtenu dans le "dist-packages" de python
sudo cp -R django/django  /votre _repertoire_dist

Chez moi, ca donne :
sudo cp -R django/django /usr/lib/python2.7/dist-packages

Rendez accessible la commande d'administration comme ceci :
ln -s django/django/bin/django-admin.py /usr/local/bin

Installons pip pour nous faciliter l'ajout de packages complémentaires  :
sudo apt-get install python-pip

Une fois cette opération effectuée, vous pouvez d'ores et déjà commencé à coder, mais ne nous arrêtons pas en si bon chemin. Nous allons configurer Django de telle sorte à pouvoir l'utiliser avec notre serveur apache plutôt que celui fourni par l'équipe Django.

Installons le mod_wsgi d'apache :
sudo apt-get install libapache2-mod-wsgi

On configure l’hôte sur lequel nous allons faire nos tests :
sudo gedit /etc/hosts

Dans le fichier ajoutez la ligne suivante :
127.0.0.1    local.django.com

Créez un fichier dans le répertoire site-available de apache
sudo gedit /etc/apache2/sites-available/djangosite

Ajoutez le bloc suivant à la fin de votre fichier et remplacez les "votre_pseudo" par votre nom d'utilisateur :
<VirtualHost 127.0.0.1:80>    
    ServerName local.django.com
    WSGIDaemonProcess djangosite user=votre_pseudo group=votre_pseudo threads=25
    WSGIProcessGroup djangosite
    Alias /media/ /home/votre_pseudo/projects/djangosite/media/
    <Directory /home/votre_pseudo/projects/djangosite/media/>
         Order deny,allow
         Allow from all
    </Directory>
    WSGIScriptAlias / /home/votre_pseudo/projects/djangosite/apache/django.wsgi
    <Directory /home/votre_pseudo/projects/djangosite/apache/django.wsgi>
           Order deny,allow
           Allow from all
    </Directory>
</VirtualHost>


Créez un nouveau projet django dans le répertoire /home/votre_pseudo/projects/django/ :
cd
mkdir projects
cd projects/
django-admin.py startproject djangosite


Ensuite créez le répertoire apache qui va abriter le fichier wsgi :
cd djangosite
mkdir apache
cd apache/
gedit django.wsgi

Copiez à l'intérieur du fichier les lignes suivantes et sauvegardez.
import os, sys
sys.path.append('/home/votre_pseudo/projects/djangosite/')
sys.path.append('/home/votre_pseudo/projects/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'djangosite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Ajoutez votre nouvelle application sur apache
sudo a2ensite djangosite


Redémarrez le serveur web:
sudo /etc/init.d/apache2 reload

Plutôt que de redémarrer votre serveur à chaque fois que vous modifiez un de vos fichiers, vous pouvez tout simplement faire un touch sur le fichier wsgi que vous avez crée précédemment.
touch /home/votre_pseudo/projects/djangosite/apache/django.wsgi


Et voila, c'est tout pour cette fois!

samedi 10 septembre 2011

Alternatives libres aux solutions de google

Deuxième post où je vous ferai savoir toute ma passion pour les applications web et spécialement celles de la firme de mountain view. J'utilise quotidiennement Google Calendar comme agenda, Music pour streamer ma zik (c'est très récent mais je suis déjà accro), Document pour la gestion de tout mes documents, l'incontournable Gmail pour mes mails, Blogger pour mon blog (beuurk diront certains mais ce service reste tout de même l'un des meilleurs sur le marché présentement), Picasa pour mes photos, Youtube pour mes vidéos... Bref, remarquez que google m'a bouffé toute mon existence sur le web. Si l'un des services que j'ai cité plus haut venait à fermer, ce serait vraiment catastrophique pour moi (et pour d'autres milliers d'internautes all over ze world).
Mais bien qu'enfermé dans un monde ou je perds carrément le contrôle de mes données, je continue d'utiliser les services proposés par cette firme.


Pourquoi?
Je suis sûr que vous qui êtes en train de lire ce post vous avez déjà trouvé la réponse. Tout simplement parce que aujourd'hui si nous voulons un service de qualité, une interface ergonomique et pensée, une disponibilité (presque) sans faille, nous n'avons pas d'autres choix que d'utiliser des services proposés par ce genre de firmes. "Par ce genres de firmes", j'entends Google, Microsoft (oui oui ils comptent aussi pour quelque chose :D ) et toutes les grandes entreprises qui proposent aujourd'hui des applications web dans le cloud pour la gestion de nos petites ou grandes tâches quotidiennes.

Sommes-nous condamnés à jamais à rester enfermé dans ce monde?
J'ai à plusieurs reprises entendu certaines personnes dire :

  • "pour remplacer calendar? Il y a Fengoffice ou calendarserver.
  • Gmail? Il y a UNG.
  • Analytics? Il y a Piwik.
  • Music? Il y a Ampache.
  • Reader? Il y a Rsslounge.
  • Picasa? Il y a gallery..."

J'ai testé la majeure partie de toutes ces applications et je peux vous dire que bien que certaines étaient super géniales (les apps pour blogger comme Drupal ou encore Piwik pour Analytic), une bonne partie était vraiment indigeste (toutes mes excuses aux dévéloppeurs de ces apps).

La cause?
Je pense que dans le monde du libre, bien que les mentalités aient vraiment évolués aujourd'hui (la preuve avec Firefox ou Ubuntu), on a toujours tendance à confondre bon logiciel/bonne application avec bons développeurs. La chose qui est oubliée trop souvent, c'est que une bonne application ne se limite pas seulement à la qualité du code. Elle est intrinsèquement liée à plusieurs éléments comme:
  • l'ergonomie (très souvent oublié dans ce monde), 
  • la facilité d'utilisation (quand un utilisateur lambda doit rentrer dans un fichier de configuration avec pleins de signes chinois dedans et pour faire pleins de trucs à la chinoise, ça freine beaucoup les ardeurs), 
  • le site web de présentation de l'application, 
  • le choix du nom du projet, 
  • la documentation de l'application, 
  • la facilité d'integration de l'équipe de dévéloppement, 
  • l'étude de la population concernée... 
Bref presque tous ces aspects sont oubliés lors du développement des applications gérées par la communauté. Avec un peu d'effort, c'est très possible de faire quelque chose de libre et de bien; Apache, Linux, Ubuntu, Firefox et Gimp en sont la preuve.


Au final, pour pallier à ce problème de maîtrise des données qui n'est pas des moindres, je propose le projet suivant à la communauté :
  • Mettre en place une alternative unifié et libre des services proposés par google.  
  • Ce all-in-one sera installable simplement sur les serveurs grâce à une interface web comme l'installation des blogs Wordpress, Drupal...
  • L'application sera téléchargeable avec un serveur web pré-configuré et sécurisé (genre lampp mais avec des paramètres pour la production)
  • Les applications pourraient être basées sur celles que j'ai cité précédemment (UNG, Ampache...)
  • Pour renforcer la sécurité, le système d'authentification pourrait être semblable au 2-steps-verification de Google 
  • Plusieurs solutions d'auto hébergement en cours de développement ou déjà disponibles pourraient être couplées au service.
  • Ce projet est communautaire, donc si l'idée est bien reçue, il faudrait des contributeurs de tout horizon, designers, développeurs, marqueteurs, managers de projet... (moi je pourrait participer en tant que developpeur web)
Que tout ceux qui sont partant lèvent la main :D!!!!

PS: que devient le projet diaspora?

samedi 3 septembre 2011

Tout ce que vous devez savoir sur les applets unity

Un peu plus de fun aujourd'hui! La 11.10 d'Ubuntu aka Oneiric ocelot pointera le nez dans peu de temps, il serait donc (très) sympa de vous présenter l'un des plus grands avantages de la nouvelle interface Unity : Les applets unity. Chaque jour qui passe, cette nouvelle interface s’améliore en terme de design et de fonctionnalités. J'étais très réticent au départ par rapport à son adoption par la masse, mais vu les efforts qui sont déployés par Canonical et certains dev pour parfaire leur nouveau bijou, je pense que les paris sont relancés. 


Applet Gmail
Cet applet vous génère plusieurs raccourcis vers des actions Gmail comme :
  • Envoyer un email;
  • Consulter la boite de réception;
  • Voir les messages envoyés;
Et le top c'est que l'icone vous affiche même le nombre de mails non-lus dans la boite de réception. Plusieurs comptes peuvent être gérés simultanément.
Pour l'installer sur ubuntu 11.04 il suffit simplement de :
  • Ajouter le dépôt suivant     sudo add-apt-repository ppa:mitya57/ppa   
  • Mettre la liste des dépôts à jour :   sudo apt-get update  
  • Installer le paquet :  sudo apt-get install unity-mail   
  • Rechercher ensuite unity mail dans le menu et le glisser dans le menu. 
Et voila, votre Gmail est bien intégré à Unity!

Applet Youtube
Celui ci vous permettra tout simplement grâce à un cliquer-déposer d'uploader des vidéos sur Youtube.
Son installation est aussi simple que le précédent. Il vous faudra :
  • Lancer la commande suivante :    sudo apt-get install googlecl   
  • Télécharger le script suivant Script unity-youtube
  • Extraire le script dans votre répertoire home 
  • Dans le répertoire home, saisir la commande suivante :   google youtube list   
  • Un prompt vous demandera de saisir le nom d'utilisateur. Rentrez votre email Youtube/Google.
  • Un nouvel onglet s'ouvrira dans votre navigateur, cliquez sur "accorder les privilèges à googlecl";
  • Retourner sur le terminal et appuyer sur la touche "entrée" (patientez quelques instants)
  • Saisir la commande suivante :   gedit youtube/doc.desktop  
  • Modifier tout les "tlj" par votre nom d'utilisateur (celui de votre pc et pas celui de google)
  • Enfin glisser-déposer l'icone Youtube (celui sans extension) dans le menu et le tour est joué!

Applet google+/Picassa
Toujours dans la continuité avec les services google, cet applet permet d'uploader directement grâce à un glisser-déposer des photos dans Picassa et apporte aussi des raccourcis aux actions g+ comme les cercles, le profil ou encore les notifications . Pour l'installer :
  • Télécharger l'application suivante  : http://ubuntuone.com/p/19U9/
  • Dans le terminal, lancer la commande suivante :   sudo apt-get install libnotify-bin  
  • Double cliquer sur le package .deb téléchargé
  • Après l'installation du package, se rendre dans le répertoire  :  /usr/share/applications   
  • Glissez déposer l'icone google+ dans votre menu

Applet Facebook
Cet applet vous permettra d’exécuter plusieurs actions sur Facebook comme par exemple : 
  • Uploader les photos (plusieurs d'un seul coup!) sur le réseau social
  • Voir les notifications
  • Aller directement dans les messages reçus
Voici comment faire pour l'installer :
  • Télécharger le package unity-facebook
  • Double-cliquez là dessus pour l'installer
  • Ensuite dans le menu des applications, rechercher faccialibro
  • Faites glisser-déposer l'icone sur la barre de menu.
Au cas ou cette technique ne marcherait pas, vous pouvez procéder par celle-ci :
  • Installer python-facebook : sudo apt-get install python-facebook
  • Télécharger le package à cette adresse : Facebook photo applet
  • Appuyer sur controle+H (Pour rendre visibles les répertoires invisibles)
  • Extraire le fichier dans votre répertoire home
  • Ensuite dans le terminal lancer les 2 commandes suivantes :
  • cd .faccialibro/
  • python install.py
  • Une fois installé, rendez-vous dans le répertoire que vous avez décompressé (.faccialibro). Si vous ne le voyez pas, appuyez encore sur controle+H
  • Glisser-déposer le fichier Faccialibro.desktop dans votre menu unity et le tour est joué.



Voilà pour les applets d'aujourd'hui et espérons des installations (beaucoup) plus simples à l'avenir :D

lundi 15 août 2011

Ubuntu a t-il un avenir face à la montée du cloud computing?

Ubuntu a t-il un réel avenir face à la montée du cloud computing avec comme gourou le géant Google?


Je me suis posé cette question il y a quelques heures pendant que j'étais en train de lire mes flux rss sur google reader. J'ai regardé mon écran, j'ai posé les yeux sur mon navigateur et je me suis rendu que je n'avais que des applications web lancées; google reader, google music, gmail, yahoo, facebook, google+, monae, google doc, youtube.
C'est à la fois étonnant et effrayant quand je me rend compte comment ma migration a été rapide, délicate et non intrusive. Quand j'allume mon ordinateur aujourd'hui, la première des choses que je fais est de lancer mon navigateur et ensuite mes applications webs (sauf quand je dois faire du code ou utiliser gimp). C'est systématique et je me rend compte que de plus en plus de personnes autour de moi s'y mettent également.
Suivant l'évolution des choses, je me demande si la manière dont les systèmes d'exploitations sont vus et conçus ne devrait pas évoluer. Google a anticipé les choses en lançant il y a quelques mois son système d'exploitation ChromeOS déployé sur son propre matériel le Chromebook.
Ce système est entièrement conçu pour fonctionner dans les nuages. Les données sont stockées dans le cloud via les applications de google comme doc, gmail, calendar, music...
La firme de mountain view pourrait bien se tromper sur l'avenir de l'ordinateur (Si elle n'est pas en train de l'orienter elle même! ), mais une chose est claire aujourd'hui, c'est que nos matériels n'ont plus réellement besoin d'être des bêtes de calculs pour satisfaire les utilisations de l'utilisateur lambda (hormis les jeux et quelques applications super-spécialisées). Les data-centers qui hébergent nos applications s'en chargent à merveille.
C'est donc en fonction de ces données actuelles que notre ubuntu devrait axer ses roadmaps et non pas avoir pour objectifs de faire plus beau que Microsoft ou d'ajouter un petit bouton "compte micro-blogage" dans le menu  sur le coté (que je n'ai jamais utilisé soit dit en passant).
Je trouve que les choses ont assez évolué et que nous sommes à un tournant décisif de l'histoire de l'informatique, là où tout se réinvente. Si on se contente de suivre, on sera en train de recopier windows 7 dans les deux prochaines versions de ubuntu et ensuite en train de tout réécrire parce que microsoft, apple ou google auront changé la vision de leurs OS.

C'est bien beau tout ces constats et toutes ces critiques mais qu'est ce que tu proposes à ubuntu dans ses futures versions?

La première des choses que Canonical devrait faire pour se réinventer est d'oublier ubuntu tel qu'il est aujourd'hui parce que selon moi, la majeure partie des applications de bureau sont vouées à une mort certaine dans (très) peu de temps. Les services de musique online (Icloud, google music, amazon music...) tueront banshee et compagnie à coups de hache. Calendar se fera Evolution ou Thunderbird. Microsoft office 365 ou encore google doc achèveront LibreOffice et openOffice si ceux ci ne se ressaisissent pas.

J'entends déjà les défenseurs farouches du libre crier au scandale; Le principal défaut de toutes les offres que je viens de citer plus haut : La confidentialité des données. Et effectivement je donne raison à ceux qui se posent ces questions. Qu'adviendra t-il de nos données? Quelles garanties a t-on que nos données ne seront pas utilisées par les tiers à des fins commerciales ou pire!
deux cas sont à envisager :

  • On prend le risque et on accepte de confier nos données aux grandes firmes ( comme on l'a d'ailleurs fait avec notre argent et les banques :D ) parce qu'il n'y a pas de réelle alternative sur le marché.
  • On se remue les méninges et on trouve un moyen d’éviter la catastrophe.

Actuellement, vu l'état des choses, le premier cas est le plus probable. Mais si des changements s'opèrent dès maintenant, il y a des chances qu'on ne soit pas (encore) en train de courir pour rattraper les grands du secteur dans les années à venir.

Voici comment je vois un ubuntu qui pourrait réussir pour de vrai dans le futur:

  • Il faudrait que le système fusionne les deux projets ubuntu actuels :
    • La version classique
    • Et la version serveur simplifiée avec au moins un serveur web
  • Sur le système, on pourra installer plusieurs applications web qui seront accessibles localement et via n'importe quel autre navigateur classique.
  • Les applications de bases pourront être : 
    • Une web app pour administrer le système (local et à distance)
    • Une web app qui permettrait d'avoir accès à ses fichiers (local et à distance)
    • Une web app pour écouter la musique (local et à distance)
    • Une web app pour la messagerie (du genre évolution ou thunderbird)
    • LibreOffice devrait créer une web app compatible avec son application de bureau.
    • Les applications de bureau seront disponibles pour les récalcitrants mais ne seront pas mis en avant.
  • Dans le cas où ces web apps ne pourront être codées par les ingénieurs de chez canonical, ils pourraient quand même soutenir les projets de webs app libres de la communauté comme ils le font en ce moment avec evolution, banshee, libreoffice...
  • Avec un tel système, chacun aura ses données en sécurité chez soi et disponibles partout ( A condition d'avoir l'ordinateur en marche à tout moment)

Ma vision pour ubuntu n'est peut être pas la bonne, mais je reste persuadé chaque jour qui passe que la route prise par canonical actuellement pour ubuntu n'est pas la meilleure et qu'elle devrait être repensée.

dimanche 31 juillet 2011

Un petit plus en fin de soirée

A l'heure où la bataille fait rage entre facebook, twitter et google plus (google+) dans la guerre des réseaux sociaux, les fans de la firme de mountain view ne manquent pas d'imagination pour promouvoir leur nouveau venu. Voici une vidéo plutôt pas mal à la sauce Bob Marley. savourez...


PS : Remarquez la p'tite ironie à 1mn38 ;)