[Tutoriel] Glade3 et PyGi


Dans cet article on va comprendre les bases de la création d'une interface utilisateur à l'aide de Glade3 (User interface Designer) et PyGi (PyGObject).
Ce tutoriel traitera un exemple simple et basique et se sera centré sur l'appel des méthodes de PyGi et la manière de lier un fichier XML généré par Glade3 et notre code en PyGi.
Assez parler! Débutons ... !

Création d'une fenêtre de type Top Level nommée (son id) Window1:


Modifier l'affichage de la fenêtre et la forcer à apparaître au centre de l'écran:


Modifier le titre de la fenêtre:


Modifier les dimensions de la fenêtre par défaut:


Utiliser Grid comme Container (La liste des container est regroupée sur Glade, mais dans cet exemple on va utiliser uniquement Grid avec une dimension 3x3 nommé Grid1):



La fenêtre sera divisée comme suit:


Notre Grid sera ajouté automatiquement à l'hiérarchie de Window1 :



Dans Grid1 on ajoute ces Widgets listés dans le champs Control and display de Glade3. On aura une interface similaire à cella:


La liste des éléments et leur types ajoutés à Window1 s'affichent comme suit:


On modifie les propriétés de button1 (bouton ajouté à Windows1). On modifie le nom qui s'affiche sur le bouton et on le renomme  Sortir :


On ajoute un signal (événement) à button1 de type clicked et on lie le signal à la méthode on_button :


On ajoute un signal (événement) à comboboxtext1 de type changed et on lie le signal à la méthode on_comboboxtext :



On ajoute le signal (événement) à checkbutton1 de type toggled et on lie le signal à la méthode on_toggle :



On ajoute le signal (événement) à entry1 de type activate et on lie le signal à la méthode on_entry_activate:



On ajoute le signal (événement) au searchentry1 et de type activate et on lie le signal à la méthode on_entry_activate:


Le logiciel s'affichera comme suit:



Pour le widget checkbutton1 on va le faire manuellement en modifiant le fichier XML généré par Glade. On va ajouter le signal au child switch1 (qui signifie que switch1 est l'enfant de Window1) comme ceci:

<signal name="notify::active" handler="on_switch_activate" swapped="no"/>
 

Cette ligne se traduit avec PyGi en:

switch1.connect("notify::active", on_switch_activate)
 

Ceci dit lier switch1 à un signal de type notify::active (notification active)

Sans beaucoup étaler le tutoriel, voilà le fichier XML généré par Glade3 et le code source en PyGi avec des commentaires pour comprendre l'utilisation et le fonctionnement de chaque ligne.


Code source du fichier XML de Glade3:

<!--

Exemple mis en ligne par: Chiheb NeXus

Licence : Aucune licence!

Langage de programmation: XML généré par Glade3

-->



<?xml version="1.0" encoding="UTF-8"?>

<!-- Generated with glade 3.16.1 -->

<interface>

  <requires lib="gtk+" version="3.10"/>

  <object class="GtkWindow" id="window1">

    <property name="can_focus">False</property>

    <property name="title" translatable="yes">Test Glade3 &amp; PyGi (Python3)</property>

    <property name="window_position">center-always</property>

    <property name="default_width">500</property>

    <property name="default_height">250</property>

    <child>

      <object class="GtkGrid" id="grid1">

        <property name="visible">True</property>

        <property name="can_focus">False</property>

        <child>

          <object class="GtkButton" id="button1">

            <property name="label" translatable="yes">Sortir</property>

            <property name="visible">True</property>

            <property name="can_focus">True</property>

            <property name="receives_default">True</property>

            <property name="image_position">top</property>

            <signal name="clicked" handler="on_button" swapped="no"/>

          </object>

          <packing>

            <property name="left_attach">0</property>

            <property name="top_attach">0</property>

            <property name="width">1</property>

            <property name="height">1</property>

          </packing>

        </child>

        <child>

          <object class="GtkSwitch" id="switch1">

            <property name="visible">True</property>

            <property name="can_focus">True</property>

           

            <!-- Ajout de l'appel du signal dans l'XML généré par Glade3 manuellement et lier

            le widget switch1 à un signal de type notify::active qui va pointer sur la méthode

            on_switch_activate

             -->

            <signal name="notify::active" handler="on_switch_activate" swapped="no"/>

          </object>

          <packing>

            <property name="left_attach">1</property>

            <property name="top_attach">0</property>

            <property name="width">1</property>

            <property name="height">1</property>

          </packing>

        </child>

        <child>

          <object class="GtkComboBoxText" id="comboboxtext1">

            <property name="visible">True</property>

            <property name="can_focus">False</property>

            <property name="button_sensitivity">on</property>

            <items>

              <item translatable="yes">NeXus</item>

              <item translatable="yes">Nymph</item>

              <item translatable="yes">Tristiana</item>

              <item translatable="yes">Auroroe</item>

              <item translatable="yes">Liturgy</item>

            </items>

            <signal name="changed" handler="on_comboboxtext" swapped="no"/>

          </object>

          <packing>

            <property name="left_attach">2</property>

            <property name="top_attach">0</property>

            <property name="width">1</property>

            <property name="height">1</property>

          </packing>

        </child>

        <child>

          <object class="GtkCheckButton" id="checkbutton1">

            <property name="label" translatable="yes">checkbutton</property>

            <property name="visible">True</property>

            <property name="can_focus">True</property>

            <property name="receives_default">False</property>

            <property name="xalign">0</property>

            <property name="draw_indicator">True</property>

            <signal name="toggled" handler="on_toggle" swapped="no"/>

          </object>

          <packing>

            <property name="left_attach">0</property>

            <property name="top_attach">1</property>

            <property name="width">1</property>

            <property name="height">1</property>

          </packing>

        </child>

        <child>

          <object class="GtkRadioButton" id="radiobutton1">

            <property name="label" translatable="yes">radiobutton</property>

            <property name="visible">True</property>

            <property name="can_focus">True</property>

            <property name="receives_default">False</property>

            <property name="xalign">0</property>

            <property name="active">True</property>

            <property name="draw_indicator">True</property>

          </object>

          <packing>

            <property name="left_attach">1</property>

            <property name="top_attach">1</property>

            <property name="width">1</property>

            <property name="height">1</property>

          </packing>

        </child>

        <child>

          <object class="GtkEntry" id="entry1">

            <property name="visible">True</property>

            <property name="can_focus">True</property>

            <property name="text" translatable="yes">Put your text and press Enter</property>

            <signal name="activate" handler="on_entry_activate" swapped="no"/>

          </object>

          <packing>

            <property name="left_attach">1</property>

            <property name="top_attach">2</property>

            <property name="width">2</property>

            <property name="height">1</property>

          </packing>

        </child>

        <child>

          <object class="GtkSearchEntry" id="searchentry1">

            <property name="visible">True</property>

            <property name="can_focus">True</property>

            <property name="primary_icon_name">edit-find-symbolic</property>

            <property name="primary_icon_activatable">False</property>

            <property name="primary_icon_sensitive">False</property>

            <signal name="activate" handler="on_entry_activate" swapped="no"/>

          </object>

          <packing>

            <property name="left_attach">2</property>

            <property name="top_attach">1</property>

            <property name="width">1</property>

            <property name="height">1</property>

          </packing>

        </child>

        <child>

          <placeholder/>

        </child>

      </object>

    </child>

  </object>

</interface>



Code source en PyGi de l'exemple: 

#!/user/bin/python
# -*- coding: utf-8 -*-
###################################################################
# Exemple mis en ligne par: Chiheb NeXus
# Licence : Aucune licence!
# Langage de programmation: Python3 et PyGi (PyGtk Version 3)
###################################################################

from gi.repository import Gtk

class Handler():
 """
 - Mettre tous les signaux dans une seule classe
 - NB: Dans PyGi les argements des méthodes sont des widgets intermédiaires qui héritent toutes les caractéristiques 
   des widgets d'origine. Ceci dit, si on essaye de donner une action à un widget de type "button" nommé "button1"
   dans la partie du code on écrit: def action(self, intermerdiare):
   intermerdiare hérite toutes les caractéristiques de button1 et l'action sur intermerdiare est une action indirecte sur button1
   Ceci est peut être bien expliqué en C/GTK+ vu que PyGi est en quelques sorte un porjet réecrit depuis C/GTK+.
 - Ps: Lors d'une utilisation avancée de PyGi, les signaux jouent un rôle primordial dans la création de notre Gui.
      C'est pourquoi une maîtrise de l'utilisation des signaux est fortement récommendée et, aussi, la modification du ficher XML
      généré par Glade3 est, aussi, récommendée.

 - Dans cet exemple, notre programme principale n'est pas mis dans une classe à part, vu sa simplicité. Mais, dans un programme
      avancé, une bonne maîtrise de Python et de PyGi est nécessaire.
      Glade3 ne permet que réduire le temps de création de Gui et éviter la création de l'interface à la main.
      Cependant, ceci ne veut pas dire qu'on va oublier les manipulations manuelles pour parvenir aux résultas voulus.

 - Documentation sur Github:

     1- Toutes les méthodes Gtk.methodes (exemple: Gtk.main_quit())
      https://lazka.github.io/pgi-docs/#Gtk-3.0/functions.html

     2- Les méthodes supportées par Gtk.Button() {Comment interéagir avec les widgets de type Gtk.Button()}
      https://lazka.github.io/pgi-docs/#Gtk-3.0/classes/Button.html#Gtk.Button

     3- Les méthodes supportées par Gtk.Entry() {Comment interéagir avec les widgets de type Gtk.Entry()}
      https://lazka.github.io/pgi-docs/#Gtk-3.0/classes/Entry.html#Gtk.Entry

     4- Les méthodes supportées par Gtk.Switch() {Comment interéagir avec les widgets de type Gtk.Switch()}
      https://lazka.github.io/pgi-docs/#Gtk-3.0/classes/Switch.html#Gtk.Switch

     5- Les méthodes supportées par Gtk.ComboBoxText() {Comment interéagir avec les widgets de type Gtk.ComboBoxText()}
      https://lazka.github.io/pgi-docs/#Gtk-3.0/classes/ComboBoxText.html#Gtk.ComboBoxText

     6- Les méthodes supportées par Gtk.ToggleButton() {Comment interéagir avec les widgets de type Gtk.ToggleButton()}
      https://lazka.github.io/pgi-docs/#Gtk-3.0/classes/ToggleButton.html#Gtk.ToggleButton

     7- Les méthodes supportées par Gtk.SearchEntry() {Comment interéagir avec les widgets de type Gtk.SearchEntry()}
      https://lazka.github.io/pgi-docs/#RB-3.0/classes/SearchEntry.html#RB.SearchEntry 

  - Pour plus d'informations: https://lazka.github.io/pgi-docs/

 """

 def on_button(self, button):
  """
  - Gtk.main_quit(): Est une fonction par défaut de PyGi
            qui permet de sortir de la boucle infinie de l'interface en Gtk+ en utilisant Python 
  - La méthode utilise le mot "self" et "button" comme arguments
  - "button" joue le rôle d'un widget intermédiaire entre button1 et cette partie de code
  """
  Gtk.main_quit()

 def on_switch_activate(self, switch, args):
  """
  - "switch" est un widget intermédiaire entre "switch1" et cette partie de code
         et args est l'argument passé à la méthode lors de l'appel de widget "switch1"
  - switch.get_active() : Cette méthode retourne "True" ou "False" 
      => "True" = Le bouton (widget) est actif / "False" = Le bouton (widget) est inactif 

  """
  if switch.get_active():
   # Bouton actif
   print("Switch activé!")
  else:
   # L'inverse 
   print("Switch désactivé!")

 def on_comboboxtext(self, combobox):
  """
  - L'ajout des éléments à ComboBoxText est faite sous Glade3
  - Cette méthode affichera uniquement les noms stockés dans le fichier XML générée par Glade3
  - combobox.get_active_text() : Retourne le text activé de widget ComboBoxText lors de la saisie dans l'interface UI 
       Le type de retour est une chaine de caractaire (String) et l'affiche sera sous la terminale
  """
  # On vérifie si combobox est vide ou non.
  # S'il est vide, il n'y aura aucun affichage sinon on affiche le contenu

  if combobox.get_active_text() != None:
   print("L'élément saisi est: " + combobox.get_active_text())

 def on_toggle(self, toggle):
  """
  - Le bouton "toggle1" affiche sur la terminale "Toggle button est activé!" ou "Toggle button est désactivé"
  - toggle.get_active() : Retourne "True" ou "False" et qui permet de vérifier l'état de widget (activé ou non)
  - L'affiche est sous la terminale
  """
  if toggle.get_active():
   print("Toggle button est activé!")
  else: 
   print("Toggle button est désactivé")

 def on_entry_activate(self, entry):
  """
  - Affichage du text saisi dans "entry1" et "seachentry1"
  - entry est un widget intermédiaire entre "entry1" et "seachentry1" 
  - entry.get_text(): Retourne le text entré dans "entry1" et "seachentry1"
  - L'affiche sera sur la terminale
  """
  txt = entry.get_text()
  print(txt)


#builder est de type Gtk.Builder() : Notre constructeur du fichier XML de Glade
builder = Gtk.Builder()

# Ajouter le chemin de fichier d'interface générée par Glade
builder.add_from_file("test.glade")  

# Tous les signaus sont mis dans une classe nommée Handler()
builder.connect_signals(Handler()) 

# window est un objet qui hérite toutes les méthodes de window1
window = builder.get_object("window1") 

# Affichage de la fenêtre window = Affichage de la fenêtre window1
window.show_all()   

# Lier la fenêtre principale à un signal de destruction de la fenêtre
window.connect("delete-event",Gtk.main_quit)  

# Lancer la boucle infinie qui permettera de visualiser l'interface indéfiniment sauf s'il y aura une intervention
# de l'utilisateur ou du programme interne 
Gtk.main() 


Code source: GladePyGi

Décryptage d’une commande “compliquée” sous Linux



Le shell est un outil très puissant, mais qui fait peur, parce qu’il parait souvent très compliqué. Aujourd’hui, je vous propose de faire un pas à pas pour comprendre comment tout ça fonctionne, pour ne plus avoir peur.

Histoire de voir à quoi nous avons affaire, voici sans plus de préambule la commande kifépeur :

wget -q -O - $pagelink | grep "\.mp4" | cut -d\" -f 4 | sed 's/1080p/720p/g'
J’ai pondu ça en cherchant à récupérer le lien direct des vidéos sur le site Jeuxvideo.com, puisqu’ils ne sont plus disponibles depuis la refonte du site (ils étaient à destination des Mac’eux, qui n’ont pas l’horreur Flash). $pagelink contient donc un lien vers une des pages du site, qui contient la vidéo convoitée, comme cette page par exemple.

  Rappel sur le pipe: non j’ai pas fait d’erreur, le pipe, c’est le nom qu’on donne au “|”. Son utilité, renvoyer le résultat d’une commande à une autre commande. Notre ligne d’exemple est ainsi un enchaînement de commandes qui chacune travaille avec le résultat de la précédente. Voyons donc chaque étape, en commençant par le début, celle du téléchargement de la page :

<div class="header-video">
<div itemscope itemtype="http://schema.org/Organization">
 <span itemprop="name" content="Jeuxvideo.com"></span>
</div>
<meta itemprop="videoFrameSize" content="mp4" />
<meta itemprop="description" content="la derniere fois que coeurdevandale et realmyop se sont retrouves devant tag 140961 mirror s edge il..." />
<meta itemprop="contentUrl" content="http://video1080.jeuxvideo.com/chroniques/s/p/speed-game-mirror-s-edge-2-144960-1439971518-1080p.mp4" />
<meta itemprop="duration" content="PT0H41M41S" />
<meta itemprop="videoQuality" content="1080p" />
<meta itemprop="encodingFormat" content="mpeg4" />
<meta itemprop="thumbnail" content="http://image.jeuxvideo.com/images/videos/chroniques-images/s/p/speed-game-mirror-s-edge-2-144960-1439971518-low.jpg" />
<meta itemprop="playerType" content="Flash" />
<meta itemprop="name" content="Speed Game - Mirror&#039;s Edge de retour, fini en 30:45" />
<div class="titre-video">
 <span>Chronique</span> Speed Game - Mirror&#039;s Edge de retour, fini en 30:45
 </div>
 <div class="foot-video">
  <div class="date-comm">
  <time datetime="2015-08-22T12:02">22/08/2015 à 12:02</time>
Ce résultat est ensuite envoyé à cette partie :

grep "\.mp4"
grep est un outil pour vous retourner les lignes d’un fichier (ou ici, du résultat du wget), ici on cherche les lignes dans lesquelles se trouve le “mot” “.mp4” :
<" meta itemprop="contentUrl" content="http://video1080.jeuxvideo.com/chroniques/s/p/speed-game-mirror-s-edge-2-144960-1439971518-1080p.mp4" />
Yes, une seule ligne ! On la passe ensuite à la moulinette de la partie suivante :
cut -d\" -f 4
cut est un utilitaire qui, comme son nom l’indique dans la langue de Shakespeare, découpe la chaîne qu’on lui donne en morceaux suivant un séparateur, ici le “, et on lui dit de renvoyer le f-ième morceau :
 http://video1080.jeuxvideo.com/chroniques/s/p/speed-game-mirror-s-edge-2-144960-1439971518-1080p.mp4
On approche du but, ceci dit comme j’ai pas un débit de malade, je ne cherche pas le lien de la vidéo en Full HD, mais en 720p. Par chance, il suffit de remplacer le 1080p au bout du lien par 720p, et c’est sed qui s’en charge :
 sed 's/1080p/720p/g' 

En gros, remplacer “1080p” par “720p”. Pourquoi mettre le “p” à la fin ? Pour éviter de remplacer aussi video1080 par video720 au début du lien, au risque de rencontrer des erreurs :

http://video1080.jeuxvideo.com/chroniques/s/p/speed-game-mirror-s-edge-2-144960-1439971518-720p.mp4

Et voilà, j’ai mon lien final :)

Pour l’histoire, j’utilise ce lien ensuite pour télécharger la vidéo avec wget, appelé soit seul soit avec trickle. Ça vous parle ? C’est normal, j’en ai parlé de l’article sur le contrôle de vitesse de téléchargement. Sinon, Jeuxvideo.com fait partie des sites supportés par youtube-dl, mais j’ai découvert ça après avoir codé mon truc.

Des possibilités infinies

On le voit, au final, on a mis bout à bout plusieurs outils qui ne font chacun qu’une seule chose, mais qui le font bien. Imaginez que les commandes sont des blocs Lego différents, et pensez (ou cherchez sur le Web) à toutes les créations plus hallucinantes les unes que les autres que sont capables de créer les gens qui jouent avec. C’est pareil, difficile de ne pas trouver une solution à un problème avec de telles possibilités de combinaison.

Par exemple, quand on a pas la possibilité d’avoir Fail2ban sous la main, chercher dans les logs de votre serveur Web les IPs les plus violentes en les classant par fréquence d’occurrence, et pourquoi pas bannir les 5 du groupe de tête, les plus agressives. En clair, une fois maîtrisées ces commandes “de base”, seule votre imagination vous bridera. Amusez-vous bien.

Source: seboss666

Création d’une clé usb bootable en ligne de commande

De mon coté j’ai beaucoup de problèmes avec Unetbootin, qui est sensé être la référence sous Linux pour créer des clés usb bootable. Sous Windows j’utilise Linux Live USB Creator qui est parfait, très ergonomique, grand choix de distributions, mode live, et surtout il fait bien le job. C’est à dire que quand on lui demande de faire une clé usb bootable ca marche à tous les coups :)
Unetbootin ne propose pas le formatage de la clé avant l’installation, du coup au bout de 3 utilisations on a les fichiers d’installation de 3 distributions qui sont mélangés, un menu de boot avec 20 choix, et généralement plus grand chose qui se lance. J’ai aussi souvent des problèmes lors de la création des clés usb : erreur en tout genre, ou assistant qui ne se termine pas tout simplement.
Bref je me suis mis à la recherche d’un remplacant pour Unetbootin, mais je n’ai pas trouvé mon bonheur. Usb-creator semble pas mal, mais à mon premier test j’ai eu une erreur bizarre, genre le nom de la distribution incorrecte, donc ca n’a pas marché (c’est balo quand même). Il existe aussi Multisystem, qui d’après mes souvenirs fait le job mais est un peu trop complexe à utiliser à mon gout. Il faudra que je reteste.
Après quelques minutes de recherche j’ai enfin trouvé la solution ultime, simple et fonctionnelle pour créer des clés usb bootage. Ca se fait en ligne de commande avec une commande ultra simple :

 dd if=/home/user/monimage.iso of=/dev/sdb

Deux petits inconvénients tout de même :

  •  rien ne s’affiche à l’écran une fois la commande lancée jusqu’à la fin de la création
  • si vous souhaitez réutiliser la clé avec des fichiers classiques il faudra passer via Gparted pour supprimer et recréer les partitions

Comment monter une image .iso sous linux ?



Habitué de Windows et de ses Daemon Tools, Alcohol et compagnie ? Vous ne trouvez pas d’équivalent sous linux ?
Voici la solution en 2 lignes de commandes (en root):

  mkdir /media/cdiso

  mount -o loop -t iso9660 monimage.iso /media/cdiso
En général un raccourci bureau « cdiso » apparait ainsi qu’un raccourci dans le menu de l’explorateur de fichiers
Si vous avez besoin de déplacer/supprimer le fichier iso, un simple umount /media/cdiso déverrouillera le fichier 

[PyQt4] Convertisseur de devise


Convertisseur de devise est une application développée avec PyQt4.
Ce logiciel permet de convertir en temps réel les devises nationales des pays en s'appuyant sur les données mises en ligne de la Banque de Canada (url:http://www.bankofcanada.ca/en/markets/csv/exchange_eng.csv). Ce logiciel permet aussi de convertir en temps réel 1 Bitcoin en devises nationales en s'appuyant sur le données mis en ligne sur le site Bitpay (url: http://www.bitpay.com) et sur d'afficher l'évolution de Litecoin en s'appuyant sur les données du site Btc-E (url: http://www.btc-e.com).
Source: Github.

Logiciel libre et open source : les deux concepts sont parfois utilisés de manière interchangeable

Quand on aborde la question des logiciels dans les communautés de développeurs, il est fréquent de voir deux groupes avec des idéaux opposés. L’un qui a une préférence pour les logiciels propriétaires et l’autre à l’opposé qui a plutôt opté pour des logiciels libres ou open source. Si ces deux derniers termes sont utilisés de manière interchangeable par bon nombre de personnes, il s’agit toutefois de deux concepts distincts dont la différence n’est parfois pas évidente. Mais qu’est ce qui est à l’origine des mouvements de logiciel libre et open source ? Quel est leur dénominateur commun et quelle est la différence fondamentale entre ces deux concepts ?

Des logiciels propriétaires aux logiciels libres

Il faut avant tout noter que le concept de logiciel libre est plus ancien que celui de l’open source. L’idée de logiciel libre est née d’un mouvement fondé par Richard Stallman, connu comme le père du projet GNU. Le logiciel libre vient s’opposer aux logiciels propriétaires qui imposaient des limitations de licences aux utilisateurs. L’objectif du libre est d’offrir plus de libertés aux utilisateurs individuels ou en collectivités quant à l’utilisation des logiciels. Les utilisateurs devront avoir la liberté d'exécuter, copier, distribuer, étudier, modifier et améliorer le logiciel.

La définition de logiciel libre a connu plusieurs révisions au fil du temps pour clarifier certaines subtilités. Mais de manière concrète, pour qu’un logiciel soit qualifié de libre, il doit respecter 4 critères de libertés :


  • La liberté d'exécuter le programme comme vous le souhaitez, et à toute fin (liberté 0);
  • La liberté d'étudier le fonctionnement du programme, et le modifier comme vous le souhaitez pour votre ordinateur (liberté 1);
  • La liberté de redistribuer les copies que vous avez reçues (liberté 2);
  • La liberté de distribuer des copies de vos versions modifiées pour donner à toute la communauté une chance de profiter de vos modifications (liberté 3).



Les libertés 1 et 3 nécessitent un accès au code source. Tout logiciel qui n’offre pas aux utilisateurs ces 4 libertés est qualifié de logiciel propriétaire, selon le mouvement du logiciel libre. La définition de ces libertés permet de donner le contrôle de l’ordinateur et du logiciel utilisé à l'utilisateur, et non au fabricant du logiciel.

Un logiciel libre n’est pas nécessairement gratuit

Plusieurs ont tendance à croire ou ont une fois pensé que le fait qu’un logiciel soit libre voudrait également dire qu’il est gratuit, ce n’est pas du tout vrai. Cette fausse croyance vient du mot anglais « free » qui veut dire à la fois libre et gratuit. Pour éviter toute confusion, l’appellation « libre software » est parfois utilisée au lieu de « free software ».

Du logiciel libre est né l’open source

L’association entre logiciel libre et logiciel gratuit a constitué un obstacle à l’adoption commerciale, alors qu’un logiciel libre devrait être également disponible pour l’usage, le développement et la distribution de nature commerciale. En 1998 en Californie, les partisans du logiciel libre se sont donc réunis pour apporter les idées et les avantages du logiciel libre à l’industrie du logiciel commercial. Le mouvement du logiciel libre a donc été rebaptisé devenant ainsi l’open source, en mettant en avant les avantages du partage du code et la collaboration pour les entreprises.

L’open source repose donc sur les principes du logiciel libre, mais les fondateurs du nouveau mouvement ont défini dix conditions préalables que doit respecter un projet pour être qualifié d’open source :


  • La redistribution doit être libre ;
  • Le programme doit être distribué avec le code source, sinon il doit y avoir un moyen très médiatisé pour l’obtenir sans frais ;
  • La licence doit autoriser les modifications et les œuvres dérivées, et doit leur permettre d'être distribuées sous les mêmes termes que la licence du logiciel original ;
  • Pour maintenir l’intégrité du code source de l'auteur, la licence peut exiger que les œuvres dérivées portent un nom ou un numéro de version différent de ceux du logiciel original ;
  • La licence ne doit discriminer aucune personne ou groupe de personnes ;
  • La licence ne doit pas défendre d'utiliser le programme dans un domaine d'activité spécifique ;
  • Les droits attachés au programme doivent s'appliquer à tous ceux à qui il est redistribué, sans obligation pour ces parties d'obtenir une licence supplémentaire ;
  • La licence ne doit pas être spécifique à un produit ;
  • La licence ne doit pas imposer des restrictions sur d'autres logiciels distribués avec le logiciel sous licence. Par exemple, la licence ne doit pas exiger que tous les autres programmes distribués sur le même support doivent être des logiciels open source ;
  • La licence doit être technologiquement neutre.



Différence fondamentale entre logiciel libre et open source

Qu’il s’agisse de logiciel libre ou open source, les critères de qualification définis visent à donner plus de libertés aux utilisateurs. Il est donc facile de les distinguer des logiciels propriétaires. Toutefois, ce n’est pas du tout évident de faire la différence entre logiciel libre et open source. Selon Richard Stallman, la différence fondamentale entre les deux concepts réside dans leur philosophie : « l'open source est une méthodologie de développement; le logiciel libre est un mouvement social ».


Source: Visiter ce lien.

Comment configurer un minier Bitcoin (Bitcoin Miner)?



Il existe trois grandes catégories de matériel pour minier les Bitcoin (Bitcoin Miner), chacun plus cher et plus puissant que les autres. Ce guide de mise en place d'un "Bitcoin Miner" explique chacun d'eux, et parle de la façon de les faire fonctionner/travailler.

À ce stade, vous allez comprendre le fonctionnement des Bitcoin, et ce que signifie l'exploitation minière. Mais, nous avons besoin de la théorie et de la pratique. Comment pouvez-vous mettre en place un matériel minier de Bitcoin (Bitcoin Miner) et commencer à générer de l'argent numérique? La première chose que vous allez avoir besoin de faire est de décider quel matériel vous aller utiliser en tenant compte de :

1- Taux de Hachage:


C'est le nombre des calculs que votre matériel peut effectuer durant chaque seconde, comme s'il essaie de résoudre un problème mathématique (voir ce lien pour plus d'information - anglais). Les taux de hachage sont mesurés en Mégahashes, Gigahashes et Térahashes par secondes (MH/s, GH/s, TH/s). À chaque montée du taux de hachage vous avez plus de chance de résoudre un bloc de transaction. La page de comparaison de matériel minier - Bitcoin Wiki - est un bon endroit pour obtenir des informations sur les taux bruts de hachage pour les différents matériels.

2- La consommation d'énergie :


La puissance de calcul nécessite de l'électricité et ce qui coûte, par la suite, de l'argent. Il est recommandé de regarder la consommation d'énergie de votre matériel en Watts pour faire le bon choix. Vous devez vous assurer que vos revenus ne seront pas toutes dépensées en électricité.
Donc, utilisez ces deux facteurs (nombre de hashs et la consommation en Watts) pour savoir combien de hashs vous pouvez générer par Watt en divisant le nombre de hashs générés par le nombre de Watts utilisés.
Par exemple, si vous avez un matériel qui génère 500 GH/s et qui prend 400 Watts de puissance, alors vous obtenez 1.25 GH/s par Watt. Vous pouvez vérifier votre facture d'électricité ou utiliser un calculateur de prix de l'électricité en ligne pour savoir combien cela signifie en monnaie espèce.
Cependant, il y a une mise en garde ici. Dans certains cas, vous aurez besoin d'utiliser votre ordinateur pour exécuter le matériel minier (Bitcoin Miner). Votre ordinateur a sa propre consommation d'électricité qui s'ajoute au matériel minier. Faut en tenir compte dans votre calcul.

3- Matériel minier Bitcoin (Bitcoin Miner):


Il existe trois grandes catégories de matériel minier Bitcoin: GPU, FPGA, ASICs. Nous allons les explorer en profondeur ci-dessous.

- CPU/GPU Minier Bitcoin:


C'est la catégorie la moins puissante des matériels minier Bitcoin qui est votre ordinateur lui même. Théoriquement, vous pouvez utiliser le processeur de votre ordinateur pour les miniers Bitcoin, mais dans la pratique, c'est si lent par rapport aux normes d'aujourd'hui.
Vous pouvez améliorer votre taux de hachage de Bitcoin en ajoutant du matériel graphique pour votre ordinateur de bureau. Les cartes graphiques disposent d'unités de traitement graphiques (GPU). Ils sont conçus pour les traitements mathématiques complexes, les jeux vidéos haut de gamme par exemple. Cela les rend particulièrement bonnes au hachage SHA nécessaires pour résoudre les blocs de transaction.
Vous pouvez acheter des GPU de deux fournisseurs principaux: ATI et Nvidia. Les cartes haut de gamme peuvent coûter des centaines d'euros, mais aussi, vous donner un avantage significatif sur les hachages avec les CPU. Par exemple, une carte graphique ATI 5970 peut vous donner plus de 800 MH/s par rapport à un CPU qui sera généralement vous donner moins de 10 MH/s.
Une des belles choses sur les GPU, c'est qu'ils laissent aussi vos options ouvertes. Contrairement à d'autres options à discuter plus tard. Ces unités sont utilisées avec le principe de la "Cryptocurrencies" autre que Bitcoin.
Litecoin, par exemple, utilise une autre forme de l'algorithme de travail pour Bitcoin, appellé Scrypt. Cela a été optimisé pour être amical avec les processeurs et les GPU ce qui en fait une bonne option pour les mineurs de GPU qui veulent basculer entre les différentes monnaies.
L'exploitation minière de GPU est en grande partie mortes ces jours. La difficulté minière Bitcoin est accélérée tant avec la sortie de l'ASIC plus puissante que les cartes graphiques GPU. Si vous ne voulez pas les utiliser, vous feriez mieux de vous équiper avec une carte mère qui peut prendre plusieurs cartes graphiques et faire des économies sur les sources de courant lors de l'exécution.

- FPGA Minière Bitcoin:


Les FPGA (Field Programmable Gate Array) est un circuit intégré conçu pour être configuré après avoir été construit. Cela premet à un fabricant de matériel minier d'acheter les puces en volume, puis les personnaliser pour l'exploitation minière Bitcoin avant les mettre dans leur équipements.
Puisqu'il sont personnalisées pour l'exploitation minière, ils offrent des améliorations de performances sur les processeurs et les GPU. Les FPGA mono-puce ont été vus fonctionnant à environt 750 Mégahashes/s. Il est bien entendu possible de mettre plus de FPGA dans une boite.

- ASIC Minière Bitcoin:


C'est la meilleure solution pour les minières Bitcoin. Les ASIC (Application Specific Integrated Circuits) sont spécifiquement conçu pour faire selement une chose: Des minières Bitcoin à des grandes vitesses, avec relativement une faible consommation d'énergie. Parce que ces puces doivent être conçues spécifiquement pour cette tâche mais coûteuses. Au moment de l'écriture, les unités se vendent avec des vitesses proche de 5-500 Gégahashes/s. Il existent aussi des ASIC qui peuvent toucher les 2 Térahashes/s.

4- Calculer la rentabilité de l'exploitation minière:


Avant de faire votre achat, calculez la rentabilité projetée de votre mineur grâce à l'excellent calculateur de la rentabilité de l'exploitation minière du Bloc Genesis ou celui-ci. Vous pouvez paramétrer des entrées tels que le coût de l'équipement, le taux de hachage, la consommation d'énergie et le prix de Bitcoin actuelle pour voir combien de temps il faudra pour rembourser votre investissement.
L'un des autres paramètres clés ici est la difficulté de réseau. Cette mesure détermine combien il est difficile de résoudre les blocs de transaction, et il varie selon le taux de hachage du réseau. La difficulté est susceptible d'augmenter sensiblement même pour votre dispositif ASIC, de sorte qu'il pourrait être utile d'augmenter cette métrique dans la calculatrice pour voir la donne de votre retour d'investissement en tenant compte de ceux qui se joignent à la partie (ceux qui ont lancé leurs minières de Bitcoin).
Pour plus d'informations : Utilisez ce guide sur le calcul de la rentabilité de l’exploitation minière.

Une fois que vous avez choisi votre matériel, vous aurez besoin de faire plusieurs autres choses:

 Télécharger le logiciel:


Selon le matériel que vous choisissez vous aurez besoin d'exécuter le logiciel pour en faire usage. Généralement lors de l'utilisation GPU et FPGA. Vous aurez besoin d'un ordinateur hôte exécutant deux choses : La norme Bitcoin client et le logiciel d'exploitation minière.

 Client Bitcoin Standard:


Ce logiciel relie votre ordinateur au réseau et permet l'interaction avec les clients de Bitcoin. Il permet aussi de transmettre les transactions et le suivi des chaînes des blocs (Block chains). Il faut noter qu'il faut un certain temps pour télécharger tous les "block chains" de Bitcoin pour commencer le travail. Le client Bitcoin relie efficacement les information entre votre mineur et le réseau Bitcoin.

 Logiciels d'extraction Bitcoin:


Le logiciel d'exploitation de Bitcoin charge le matériel pour faire le travail difficile en passant par des blocs de transaction à résoudre. Il existe une variété de ces logiciels en fonction de votre système d'exploitation. Ils sont disponibles pour Windows, Mac OS X, Gnu/Linux ...etc.

Vous aurez besoin d'un logiciel d'exploitation minière pour votre ASIC aussi, bien que certain modèles plus récents sont pré-configurés de sorte que vous n'avez que les brancher et les mettre sous tension.
Il existe même un système d'exploitation minière conçu pour fonctionner sur le Raspberry Pi, une carte-ordinateur basée sur Linux à faible coût, conçue pour consommer très peu d'énergie. Cela pourrait être utiliser pour alimenter un ASIC mineur de connexion USB.

Moment de reflexion:


Maintenant vous être parés. Bien pour vous. Je parie que vous pensiez que vous alliez ramasser les Bitcoins de partout ... non?
Malheureusement non. Vous aurez une grande de chance d'exceller avec votre minière Bitcoin si vous travaillez avec d'autres personnes. Vous pouvez en savoir plus à ce sujet dans le prochain article.

Le successeur d'OpenGL s'appelle Vulkan


Au cours de la Game Developers Conference 2015 (GDC), Khronos a dévoilé le nom et le contenu de la nouvelle spécification pour les GPU, qui succédera OpenGL. Jusqu'à présent, on l'appelait GLNext, le nom définitif est Vulkan.

À l'instar de Mantle, Metal et Direct X 12, cette refonte complète de la spécification permet de réduire la dépendance du GPU avec le CPU. Pour cela, le pilote est allégé et la préparation des commandes GPU peut être multithreadée. De plus, les applications auront bien plus de contrôle sur le GPU, simplifiant ainsi le travail du pilote.

Une autre nouveauté est l'utilisation d'un langage intermédiaire pour les shaders (code exécuté sur le GPU). Ce langage intermédiaire n'est autre que SPIR, dont la spécification est aussi fournie par Khronos. C'est d'ailleurs cette même spécification qui sera utilisée dans OpenCL 2.1. L'utilisation d'un langage intermédiaire a plusieurs attraits :

  • N'importe quel compilateur peut générer des programmes exécutables sur le GPU ;
  • Le pilote n'a plus besoin de gérer la compilation des shaders ;
  • Le code des shaders peut être caché.



En plus de cela, Khronos fournira des tests de conformité à la spécification et même une implémentation de base pour le compilateur de shaders.
Bien entendu, tout comme OpenGL, Vulkan sera compatible avec tous les systèmes d'exploitation et cela sera encore plus vrai que du temps d'OpenGL. En effet, la séparation OpenGL et OpenGL ES n'existera plus.

Les différents acteurs tels que AMD, ARM, Imagination Technologies, NVIDIA supportent et contribuent à la spécification de Vulkan. Actuellement, la spécification n'est disponible qu'en aperçu technologique, mais les premières implémentation et support devraient être disponibles au cours de l'année ainsi que la spécification finalisée.


Source : Developpez.com

PyGI Photo-Viewer : Une visionneuse d'image crée avec PyGI



PyGI Photo-Viewer est une simple visionneuse d'image crée avec PyGI qui permet de parcourir, pivoter et de se déplacer dans le dossier de l'image sélectionnée.

Dépendances:
    ~ Python 3
    ~ PyGObject 3
    ~ Gtk3+

Formats supportés:
    ~ JPG
    ~ JPEG
    ~ GIF
    ~ PNG

Téléchargement : Github

La distribution Linux CrunchBang n'est plus : L'initiateur du projet recommande l'utilisation de Debian


Triste nouvelle pour le monde du libre en général et celui de Linux en particulier : Philip Newborough, le développeur derrière CrunchBang (une distribution Linux des plus personnalisables et facilement utilisable qui est basée sur Debian, Wheezy et Openbox), a annoncé officiellement la fermeture de son projet, en d’autres termes CrunchBang n’est plus. « J’ai décidé d’arrêter le développement de CrunchBang. Ça n’a pas été une décision facile à prendre et je l’ai repoussée des mois durant. C’est difficile de se séparer de quelque chose que vous aimez » a-t-il écrit dans un billet. 

En guise d’explications pour les utilisateurs, il a rappelé les circonstances entourant la genèse de CrunchBang : « quand j’ai commencé à développer CrunchBag, le paysage Linux était alors différent (…) j’ai su qu’il y avait une place pour CrunchBag sur mes propres systèmes. Un petit coup d’œil autour de moi m’a permis de réaliser qu’il semblait également avoir une grande demande sur les systèmes des autres. Je n’en suis pas vraiment certain mais, si je devais deviner, je dirais que c’était probablement dû au manque de compétition/alternative du même calibre. Si mes souvenirs sont exacts, à ce moment-là il n’y avait pas de LXDE tasksel dans Debian et certainement pas de Lubuntu dans les environs. CrunchBang a comblé un vide et c’était chouette ». 

Alors que s’est-il passé ? Pourquoi cette décision ? « Pour tous ceux qui ont été dans l’univers Linux depuis les dix dernières années ou plus, je suis certain qu’ils s’accorderont à dire que les choses ont évolué. Bien que certaines choses soient restées foncièrement les mêmes, d’autres ont radicalement changé. Ça s’appelle le progrès et, la plupart du temps, le progrès est une bonne chose. Ceci étant, quand le progrès arrive, quelques éléments se trouvent littéralement dépassés et, pour moi, CrunchBang est quelque chose que je me dois de laisser derrière. Je le laisse derrière parce que je pense honnêtement qu’il n’a plus aucune valeur et, tandis que je pourrais m’y accrocher pour les valeurs sentimentales qu’il représente, je ne pense pas que ça serait dans le meilleur intérêt des utilisateurs qui bénéficieraient de l’utilisation de vanilla Debian » 

Une annonce somme toute pas très surprenante si on prend certains éléments en considération, par exemple le fait que la dernière mise à jour majeure du système d’exploitation remonte à mai 2013, ce qui représente un long moment pour n’importe quelle distribution Linux. Cependant nous pouvons saluer l’initiative du développeur qui a pris le temps d’expliquer aux utilisateurs la raison de la fermeture, chose qui n’arrive pas très souvent. En effet, il arrive qu’une distribution Linux disparaisse du jour au lendemain avec des développeurs qui restent silencieux sur la raison pour laquelle ils ont mis un terme au projet. Comme exemple nous pouvons citer Pear OS : les utilisateurs ne savent pas vraiment ce qui s’est passé au début de 2014, ils ont juste trouvé un billet du développeur annonçant que le projet était arrivé à son terme sans aucune explication.

Malgré le fait que CrunchBang n’a pas reçu de mise à jour majeure depuis un long moment, la distribution a conquis de nombreux utilisateurs si on se réfère aux réactions sur les forums officiels ainsi que sur la communauté en ligne suite à l’annonce de la fermeture du projet. 

Pour le moment, vous pouvez encore télécharger votre copie du logiciel sur les pages officielles.

Source : CrunshBang

Steam : un bug supprime tous les fichiers des utilisateurs sur les distributions Gnu/Linux


Les utilisateurs de Steam, le célèbre outil de Valve Software qui permet aux gamers de télécharger, jouer et gérer la liste de leurs jeux vidéo sur PC, ont reporté il y a quelques jours de cela, un bug assez inquiétant sur la version Linux de l’outil. En effet, il semblerait qu'un défaut au niveau du code causerait la suppression de tous les fichiers liés au compte de l'utilisateur.

Selon le rapport d'erreur, le fait de déplacer Steam vers un autre emplacement dans le système de fichiers, puis de tenter de lancer le client de nouveau finit par exécuter la commande suivante : « rm -rf /* ». Cette commande, connue par tous les utilisateurs du Shell, a pour effet d'effacer de manière récursive tous les fichiers à partir du répertoire racine, ce qui implique tous les fichiers de l'utilisateur, mais aussi les lecteurs de sauvegarde montés et/ou partagés en réseau, à l'exception des fichiers systèmes appartenant au super-utilisateur « root » qui sont conservés.

« Il s'est réinstallé et tout avait l'air super. Jusqu'à ce que j'ai regardé et vu qu'il avait apparemment tout supprimé, y compris mes 3 To de fichiers sur mon disque dur externe », s'exclama un utilisateur sur GitHub.

Après vérification, la cause du bug a été détectée. Il s'agit d'une simple négligence qu'on peut voir dans le code suivant :

# Scary!

rm -rf "$STEAMROOT/"*

Comme on peut le voir, le contenu de la variable $STEAMROOT n'est pas vérifié. Si celle-ci était vide, le code causerait effectivement l'appel à la suppression des fichiers à partir du répertoire racine « / ». A remarquer que le commentaire #Scary (ie: effrayant) laisse penser que le programmeur savait qu'il y avait un risque qu'une telle chose puisse se produire. On attend toujours la réaction de Valve Software.

En attenant, il est conseillé aux utilisateurs d'éviter de déplacer le répertoire Steam et de s'assurer d'avoir une copie de ses fichiers au cas où …

Source : GitHub

Powerline script pour révolutionner votre Bash terminal


L'apparence de ton Bash Terminal ne te plait pas ? Tu veux la changer ? Que dis-tu de Powerline-shell ? Vous voulez que votre Bash Terminal ressemble au miens ?

C'est simple. Pour appliquer ce changement tu dois faire comme suit :


  • Télécharger ce script python 
  • Puis déplacer le fichier téléchargé dans votre : /home/user_name
  • Puis il faut le rendre exécutable avec cette commande: 

chmod +x powerline-bash.py

  • Puis ouvrir le fichier Bashrc avec cette commande (J'utilise gedit, vous pouvre choisir l'éditeur texte de votre choix) : 


sudo ~/.bashrc

  • À la fin de votre fichier Bashrc faut ajouter ces lignes : 

function _update_ps1() {

export PS1="$(~/powerline-bash.py $?) "

}

export PROMPT_COMMAND="_update_ps1"


Et voilà ! Ouvre à nouveau votre Bash Terminal et amuse-toi !
Pour plus d'informations : Powerline-shell 

Tous les LiveCD existants sont classés et disponibles sur The LiveCD List


The LiveCd List est un site à mettre directement dans les favoris, il ne fait finalement pas grand chose, mais ce qu'il fait est d'une efficacité et d'une utilité remarquable. Le site recense tous (ou presque) les LiveCD existants, avec pour chacun un lien de téléchargement et un lien vers le site officiel.

Ce qui est pratique, c'est son menu qui permet de cibler rapidement ce que vous recherchez :


  • Creation Tools: contient une liste de logiciels pour créer un liveCD / liveUSB.
  • Purpose: vous pouvez choisir le thème de ce que vous recherchez, si vous mettez security, vous tomberez sur une liste de LiveCD dédiés à la sécurité informatique comme: Kali Linux, Hackin9 Live, OphCrack LiveCD, etc.
  • Operating system: pour choisir le système d'exploitation.
  • Platform: pour choisir votre plateforme.

Un site à garder bien au chaud dans les favoris.

Puppy Arcade: une distribution Linux orientée émulation de jeux vidéo


En ce moment, les émulateurs de jeux vidéo ont le vent en poupe, et perso, j'en découvre presque tous les jours. Bien souvent, ce sont des émulateurs qui tournent directement dans le navigateur, ou parfois, c'est à installer sur Windows, Linux ou Mac, mais je n'avais encore jamais croisé de distribution Linux consacrée uniquement à ça. Avec la distribution Puppy Arcade, c'est désormais chose faite.


Cette distribution contient des émulateurs pour jouer à des jeux d'Amiga (500, 1000, 2000, CD32, CDTV), Apple (68k, 128k, 512k, SE, MacOS, Plus), Atari (400, 400 XL, 800, 800XL, 130XE, 5200, Falcon, Lynx, ST, others), Amstrad (CPC, Plus, VEB, others), Arcades (many), Colecovision, Commodore (64, 128, VIC20, PET, others), Doom, GameBoys (GB, GBC, GBA), GameGear, Genesis/MegaDrive, Intellivision, Master System, MS DOS, MSX, MSX2, N64, NDS, NeoGeo, NeoGeo Pocket, NeoGeo CD, NES/Famicom, PC Engine/TurboGrafix, PC-FX, PlayStation, ScummVM, SNES, Wonderswan, Virtual Boy et bien d'autres.



Attention par contre, le LiveCD ne contient que les émulateurs et le loader, c'est à vous de vous débrouiller pour trouver les ROMs des jeux. Rassurez-vous, vous avez tous les outils nécessaires pré-installés pour pouvoir les trouver et les télécharger. Bon, je vous aide un peu, voici un petit lien qui vous permettra de faire le plein de jeux. Sinon, j'ai testé un peu la bête, et en me baladant dans les menus, j'ai pu y trouver un bel installateur de navigateur, il y a pas mal de choix comme vous pouvez le voir:


En plus de ça, vous disposez de Transmission, un client qui vous permettra de télécharger des torrents à gogo. J'ai vu aussi Geany en éditeur de texte, mtPaint comme logiciel de dessin, plusieurs visionneuses, xcalc, gFtp, Conky, VLC, plusieurs gestionnaires de fichiers dont Midnight-Commander, etc. Il y a vraiment tout ce qu'il faut en plus de tout ce qui concerne la partie émulation de jeux vidéo.
Voilà, pour en savoir plus et télécharger la distribution, rendez-vous sur le site du créateur à cette adresse.

Hollywood – Simuler une fenêtre de hacking comme au cinéma, sur Ubuntu


Comme vous l’avez souvent vu au cinéma ou à la télé, les réalisateurs rivalisent d’idées (plus ou moins réalistes) quand il s’agit de mettre en scène des informaticiens de la mort-qui-tue, capables de hacker la terre entière en deux clics seulement. Nous les voyons souvent derrière leur écrans aux mille fenêtres ouvertes, tapoter joyeusement et faire défiler des trucs de toutes les tailles et de toutes les couleurs. J’aimerais que ce soit aussi facile dans la vraie vie, mais ça n’est pas le cas. Alors si comme moi vous êtes une semi-tanche en informatique et que vous avez envie de donner le change comme au cinéma, sachez que c’est possible si vous tournez sur Ubuntu. Hollywood est un outil signé Dustin Kirkland (le chef de projet d’Ubuntu Cloud), aussi inutile qu’indispensable et conçu dans le but de faire de vous un vrai faux hacker, comme à Hollywood. Il utilise pour cela une session Byobu (Tmux) et un panel d’outils tels que ccze, screen, cmatrix, speedometers, mplayer2, kerneltop, logtop, netmrg, nload, nmon, ntop, powertop, sagan, etc, lancés simultanément dans une fenêtre scindée. Le résultat est assez amusant et bien que cela ne serve à rien, c’est vraiment très fun. Comme je le dis souvent « c’est toujours plus beau quand c’est inutile », alors si ça vous tente nous allons voir tout de suite comment en profiter.

Si la capture d’écran ne vous suffit pas et que vous voulez voir la bête en action avant de vous lancer, vous pouvez jeter un œil à cette petite vidéo :

Ça a du chien non ?!! :)

S’il vous le faut absolument et que vous tournez sur Ubuntu, il suffit d’entrer ces quelques lignes dans votre terminal pour en profiter :

sudo apt-add-repository ppa:hollywood/ppa

sudo apt-get update

sudo apt-get install hollywood

Une fois que c’est fait il suffit d’ouvrir byobu et d’entrer ceci dans le terminal :

hollywood

Utilisez CTRL + C quand vous désirez quitter le programme.
Amusez-vous bien.

Source : lamiradadelreplicante.com

Sikuli – Faites vos scripts visuels


Si vous devez réaliser quelques petits scripts automatisés qui consistent à faire cliquer la souris un peu partout, et que vous ne voulez pas vous lancer dans du code de macro trop complexe, sachez qu'il existe un petit outil baptisé Sikuli, qui tourne sous Windows, Mac et Linux et qui permet de créer ce genre de script, simplement en prenant des captures écran.

Oui, ça peut sembler étranger et c'est pourtant ce que fait ce logiciel. Au lieu de lui dire "Click sur le bouton1 de l'application MachinTruc", on lui dit "Click sur ____ (et là on met une capture écran du bouton)". Amusant non ?
Voici une démo en vidéo pour que vous puissiez mieux vous rendre compte de la puissance du truc :









Fedora 21 disponible en version stable en trois saveurs : Cloud, Serveur et Workstation


Fedora 21 disponible en version stable, avec pratiquement deux mois de retard sur sa feuille de route initiale.

Cette version marque une étape importante pour le projet Fedora. Il s’agit de la première version de la distribution Linux développée sous l’influence de l’initiative Fedora.next, qui met l’accent sur la flexibilité et la modularité.

Ainsi, dans le cadre de cette initiative, Fedora 21 est disponible en trois saveurs, adaptées à des besoins spécifiques. Il s’agit de la déclinaison Cloud (pour des environnements de Cloud publics ou privés), Serveur (plateformes et infrastructures de grande envergure, comme les serveurs de stockage et de bases de données, etc.) et Workstation (version standard destinée aux ordinateurs).

Toutes ces déclinaisons ont été construites sur la base d’un ensemble de paquets communs, qui comprend le noyau Linux, RPM, yum, systemd, and Anaconda. Ce qui garantit un socle solide à toutes les variantes de Fedora 21.

Il faut noter que la version Workstation inclut un support expérimental du système d’affichage Wayland.


Maj de Hinault Romaric, 12/12/2014

Fedora 21, qui était annoncé pour octobre, sort enfin en bêta 1. La distribution Linux est disponible dès à présent en trois déclinaisons : Cloud, Serveur et Workstation.

La version Cloud, comme son nom l’indique, est destinée à tourner sur des environnements Cloud publics comme AWS, ou privés comme OpenStack par exemple. Deux variantes sont disponibles pour cette version :
une image modulaire, qui permet de n’inclure que les modules qui seront utilisés par la suite, de façon à réduire l’espace Cloud nécessaire et donc réduire le coût ;
une image « atomique », conçue pour fonctionner comme un système d’exploitation minimal, ce qui sera utile pour un déploiement dans des conteneurs Docker par exemple. Elle est conçue de manière à effectuer des mises à jour atomiques avec « rpm-ostree », puis faire l’opération inverse en cas de problème.

La version Serveur de Fedora 21 est destinée aux plateformes et infrastructures de grande envergure, comme les serveurs de stockage et de bases de données, les contrôleurs de domaines ou même les datacenters. Cette version supporte trois nouveaux outils de gestion de serveurs :
Cockpit : une interface utilisateur pour configurer et surveiller ses serveurs ;
Rolekit : une boite à outils qui permet aux administrateurs de créer un rôle et lui installer et configurer tous les paquets nécessaires ;
OpenLMI : qui offre une API standardisée de fonctions de gestion et de monitoring à distance.

Quant à Workstation, c’est tout simplement la version Fedora pour ordinateurs portables ainsi que les ordinateurs de bureaux. Idéale pour les développeurs, Workstation intègre le nouvel outil DevAssistant destiné à aider les développeurs dans leurs laborieuses tâches. DevAssistant permet de mettre en place des environnements de développement de telle sorte que le développeur puisse se concentrer uniquement sur l’écriture du code. Elle intègre aussi Gnome 3.14 disponible depuis le 25 septembre dernier et qui apporte son lot de nouveautés.

La version finale de Fedora 21 est attendue pour le 09 décembre 2014, en attendant, vous pouvez télécharger le bêta dès maintenant sur le site officiel.

Sécurité : des failles vieilles de 27 ans découvertes dans le serveur d'affichage X Window

Ilja van Sprundel, un chercheur en sécurité de IOActive, a découvert un grand nombre de bugs dans le code source du système d’affichage open source X Window. Ces bugs sont causés par le code de base du serveur X et certains d’entre eux seraient présents depuis 1987. Ces bugs pourraient être exploités afin d’accéder à la mémoire non initialisée du serveur X, ce qui pourrait provoquer des erreurs de segmentation, ou utilisés pour exécuter du code arbitraire. Ils représentent donc des failles assez importantes.

Parmi ces failles, on peut citer le risque d’un déni de service en raison d’un malloc non vérifié lors de l’authentification du client. Ce dernier peut provoquer une erreur du système dans le serveur s’il envoie les valeurs qui feront échouer le malloc. Un autre bug concernant les entiers peut provoquer des débordements de mémoire (overflow), et une troisième faille permet de lire ou d'écrire au-delà des limites de la mémoire allouée lors du traitement de la demande.

Le risque est encore plus grand si « le serveur X est exécuté avec les privilèges root ; s’il est exposé aux clients du réseau ou limité aux connexions locales ; et s’il utilise des extensions de protocoles touchées, en particulier l'extension GLX ».

Ilja van Sprundel a travaillé avec l'équipe de sécurité de X.org pour confirmer et régler ces problèmes. Les corrections sont disponibles uniquement dans les commits git pour l'instant, mais sont prévues pour être incluses dans le xorg-server-1.17.0 et xorg-server-1.16.3.

Source : X.org

Awesomecow : Un site web qui donne les alternatives sur Gnu/Linux des célèbres programmes tournant sur Windows

Quand nous débarquons sous GNU/Linux le plus dur pour nous n’est plus vraiment de savoir comment gérer notre système. Les distributions grand public telles qu’Ubuntu sont devenues très faciles à utiliser et ne demandent de nos jours plus beaucoup de connaissances pour un usage basique. Ce qui peut nous poser plus de problèmes en revanche, c’est la profusion des nouveaux noms assez exotiques qui quand on ne les connait pas, peuvent rendre difficile l’identification et la recherche des programmes dont nous avons besoin. Trouver un équivalent GNU/Linux à un programme Windows n’est pas forcément difficile, mais les dénicher quand nous ne connaissons pas leur nom peut prendre pas mal de temps et occasionner pas mal de recherches parfois laborieuses. Heureusement les bovins sont là, et en plus de notre étable il existe un site (ou plutôt un moteur de recherche) assez sympa, qui va vous permettre de trouver très rapidement l’alternative au programme Windows de votre choix.
Pour se faire rien de plus facile. Il suffit de vous rendre sur le site du projet et lancer vos recherches  : Awesomecow