La distribution Anaconda pour la science des données

À la Une

En surfant sur le Web, je suis tombé sur Anaconda, la distribution python axée sur les outils de data-science.

Après l’avoir installée sur Linux Mint, j’attends patiemment la sortie en avril de Ubuntu 24.04 « The Noble Numbat » afin de l’installer sur cette prochaine distribution Linux.

ça y est, Anaconda se lance

Anaconda embarque bon nombre d’outils dédiés à la science des données comme Spyder pour vous aider à écrire votre code, Jupyter (j’y reviendrai plus tard) ou bien encore Orange pour le data-mining, etc.

Pour accéder à ces multiples outils, Anaconda dispose d’un navigateur permettant de sélectionner ou d’installer selon le cas le logiciel souhaité.

l’écran d’accueil d’Anaconda, ça fourmille de logiciels
… dont voici la suite

Rentrons dans le vif du sujet, avec un exemple concret.

J’ai glané sur le web un fichier au format csv, en open data, des cessions immobilières de l’État, les données présentant une colonne « Région ».

Je souhaite donc extraire les données de la région Île-de-France (l’exemple est assez trivial me direz-vous, mais c’est un exemple).

Lançons Spyder et rédigeons le code python qui ressemble à ça dans Spyder :

l’écran de lancement de Spyder – et non, ce n’est pas moi derrière l’écran
code code code codette ! 🙂

Pour rendre plus lisible (et visible) ce code, je l’intègre dans Jupyter. Voyons ça ci-dessous sur un calepin électronique (ou notebook). Je lance donc qui… Jupyter pardi !

je m’épate !

Ce qui ressemble à ça en exportant mon notebook Jupyter en html (via la console avec jupyter nbconvert –to html –template basic mon_calepin.ipynb cessionsIdF.html), puis en intégrant ce html dans mon blog WordPress.

Le code séquentiel commence par In[] et le résultat du code commence par Out[] (comprenez par Out le résultat du code python), avec mes explications de code :

Importation de la bibliothèque Pandas dans le programme avec un alias

In [1]:
# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""

import pandas as pd

Je lis avec Pandas mon fichier csv en indiquant le délimiteur « ; »

In [2]:
df = pd.read_csv("cessions-immobilieres-de-letat-copie.csv",delimiter = ";")

J’affiche les premières lignes du fichier csv

In [3]:
df.head
Out[3]:
<bound method NDFrame.head of              ID  Année_Cession    Pays              Département  \
0     120040045           2013  FRANCE  ALPES DE HAUTE-PROVENCE   
1     120140009           2013  FRANCE                 CALVADOS   
2     120140039           2013  FRANCE                 CALVADOS   
3     120250034           2013  FRANCE                    DOUBS   
4     120260001           2013  FRANCE                    DRÔME   
...         ...            ...     ...                      ...   
4974  170500015           2017  FRANCE                   MANCHE   
4975  170700011           2017  FRANCE              HAUTE-SAÔNE   
4976  170880017           2017  FRANCE                   VOSGES   
4977  179730021           2017  FRANCE                   GUYANE   
4978  180950016           2017  FRANCE               VAL-D'OISE   

                     Commune          Nature  \
0                   MANOSQUE  ESPACE NATUREL   
1                       CAEN        LOGEMENT   
2     PORT EN BESSIN HUPPAIN  ESPACE NATUREL   
3                    ETALANS  ESPACE NATUREL   
4                     ALIXAN  ESPACE NATUREL   
...                      ...             ...   
4974               TOLLEVAST  ESPACE NATUREL   
4975                  VESOUL  ESPACE NATUREL   
4976                  GOLBEY        LOGEMENT   
4977              ST GEORGES  ESPACE NATUREL   
4978                 TAVERNY  ESPACE AMENAGE   

                                     Ministère_occupant  \
0     Ministère de l'écologie, du développement dura...   
1     Ministère de l'intérieur, de l'Outre-mer et de...   
2     Ministère de l'écologie, du développement dura...   
3     Ministère de l'écologie, du développement dura...   
4     Ministère de l'écologie, du développement dura...   
...                                                 ...   
4974  Ministère de l'écologie, du développement dura...   
4975  Ministère de l'écologie, du développement dura...   
4976  Ministère de l'écologie, du développement dura...   
4977                                 Biens non affectés   
4978  Ministère de l'écologie, du développement dura...   

           Service_occupant Type_Procédure_ayant_mené_à_la_vente  \
0                    Autres                            Gré à gré   
1     Gendarmerie Nationale                    Droit de priorité   
2                 DGITM/DAM                    Droit de priorité   
3                 DGITM/DIT                       Appel d'offres   
4                 DGITM/DIT                        Autres droits   
...                     ...                                  ...   
4974              DGITM/DIT                       Appel d'offres   
4975              DGITM/DIT                       Appel d'offres   
4976                    VNF                    Droit de priorité   
4977                    NaN                            Gré à gré   
4978                 Autres                            Gré à gré   

                Nature_juridique_Acquereur  ...     adresse_complete  \
0                      Entreprises société  ...    QUARTIER MANOSQUE   
1            Etablissements publics locaux  ...   12 RUE DANIEL HUET   
2              Collectivités territoriales  ...  DESCENTE LA FALAISE   
3              Collectivités territoriales  ...                  NaN   
4     Personnes physiques non commerçantes  ...                  NaN   
...                                    ...  ...                  ...   
4974                   Entreprises société  ...                  NaN   
4975                   Entreprises société  ...                  NaN   
4976         Etablissements publics locaux  ...   11 RUE DE L'ECLUSE   
4977  Personnes physiques non commerçantes  ...                  NaN   
4978           Collectivités territoriales  ...                  NaN   

                      geom com_code    Nom Officiel Commune  \
0      43.835686, 5.776256    04112                Manosque   
1     49.178683, -0.363049    14118                    Caen   
2     49.348837, -0.755599    14515  Port-en-Bessin-Huppain   
3      47.150785, 6.267207    25222                 Étalans   
4      44.974156, 5.027222    26004                  Alixan   
...                    ...      ...                     ...   
4974  49.574496, -1.626592    50599               Tollevast   
4975   47.621484, 6.154787    70550                  Vesoul   
4976   48.198227, 6.422135    88209                  Golbey   
4977  3.807958, -52.072288    97308           Saint-Georges   
4978     49.0255, 2.226086    95607                 Taverny   

     Code Officiel EPCI                        Nom Officiel EPCI  \
0           200034700.0  CA Durance-Lubéron-Verdon Agglomération   
1           200065597.0                           CU Caen la Mer   
2           241400555.0                    CC de Bayeux Intercom   
3           242504181.0              CC des Portes du Haut-Doubs   
4           200068781.0                  CA Valence Romans Agglo   
...                 ...                                      ...   
4974        200067205.0                           CA du Cotentin   
4975        247000011.0                             CA de Vesoul   
4976        200068757.0                              CA d'Épinal   
4977        249730052.0                     CC de l'Est Guyanais   
4978        200058485.0                           CA Val Parisis   

     Code Officiel Département Nom Officiel Département  Code Officiel Région  \
0                           04  Alpes-de-Haute-Provence                  93.0   
1                           14                 Calvados                  28.0   
2                           14                 Calvados                  28.0   
3                           25                    Doubs                  27.0   
4                           26                    Drôme                  84.0   
...                        ...                      ...                   ...   
4974                        50                   Manche                  28.0   
4975                        70              Haute-Saône                  27.0   
4976                        88                   Vosges                  44.0   
4977                       973                   Guyane                   3.0   
4978                        95               Val-d'Oise                  11.0   

             Nom Officiel Région  
0     Provence-Alpes-Côte d'Azur  
1                      Normandie  
2                      Normandie  
3        Bourgogne-Franche-Comté  
4           Auvergne-Rhône-Alpes  
...                          ...  
4974                   Normandie  
4975     Bourgogne-Franche-Comté  
4976                   Grand Est  
4977                      Guyane  
4978               Île-de-France  

[4979 rows x 30 columns]>

puis j’affiche les dernières lignes

In [4]:
df.tail
Out[4]:
<bound method NDFrame.tail of              ID  Année_Cession    Pays              Département  \
0     120040045           2013  FRANCE  ALPES DE HAUTE-PROVENCE   
1     120140009           2013  FRANCE                 CALVADOS   
2     120140039           2013  FRANCE                 CALVADOS   
3     120250034           2013  FRANCE                    DOUBS   
4     120260001           2013  FRANCE                    DRÔME   
...         ...            ...     ...                      ...   
4974  170500015           2017  FRANCE                   MANCHE   
4975  170700011           2017  FRANCE              HAUTE-SAÔNE   
4976  170880017           2017  FRANCE                   VOSGES   
4977  179730021           2017  FRANCE                   GUYANE   
4978  180950016           2017  FRANCE               VAL-D'OISE   

                     Commune          Nature  \
0                   MANOSQUE  ESPACE NATUREL   
1                       CAEN        LOGEMENT   
2     PORT EN BESSIN HUPPAIN  ESPACE NATUREL   
3                    ETALANS  ESPACE NATUREL   
4                     ALIXAN  ESPACE NATUREL   
...                      ...             ...   
4974               TOLLEVAST  ESPACE NATUREL   
4975                  VESOUL  ESPACE NATUREL   
4976                  GOLBEY        LOGEMENT   
4977              ST GEORGES  ESPACE NATUREL   
4978                 TAVERNY  ESPACE AMENAGE   

                                     Ministère_occupant  \
0     Ministère de l'écologie, du développement dura...   
1     Ministère de l'intérieur, de l'Outre-mer et de...   
2     Ministère de l'écologie, du développement dura...   
3     Ministère de l'écologie, du développement dura...   
4     Ministère de l'écologie, du développement dura...   
...                                                 ...   
4974  Ministère de l'écologie, du développement dura...   
4975  Ministère de l'écologie, du développement dura...   
4976  Ministère de l'écologie, du développement dura...   
4977                                 Biens non affectés   
4978  Ministère de l'écologie, du développement dura...   

           Service_occupant Type_Procédure_ayant_mené_à_la_vente  \
0                    Autres                            Gré à gré   
1     Gendarmerie Nationale                    Droit de priorité   
2                 DGITM/DAM                    Droit de priorité   
3                 DGITM/DIT                       Appel d'offres   
4                 DGITM/DIT                        Autres droits   
...                     ...                                  ...   
4974              DGITM/DIT                       Appel d'offres   
4975              DGITM/DIT                       Appel d'offres   
4976                    VNF                    Droit de priorité   
4977                    NaN                            Gré à gré   
4978                 Autres                            Gré à gré   

                Nature_juridique_Acquereur  ...     adresse_complete  \
0                      Entreprises société  ...    QUARTIER MANOSQUE   
1            Etablissements publics locaux  ...   12 RUE DANIEL HUET   
2              Collectivités territoriales  ...  DESCENTE LA FALAISE   
3              Collectivités territoriales  ...                  NaN   
4     Personnes physiques non commerçantes  ...                  NaN   
...                                    ...  ...                  ...   
4974                   Entreprises société  ...                  NaN   
4975                   Entreprises société  ...                  NaN   
4976         Etablissements publics locaux  ...   11 RUE DE L'ECLUSE   
4977  Personnes physiques non commerçantes  ...                  NaN   
4978           Collectivités territoriales  ...                  NaN   

                      geom com_code    Nom Officiel Commune  \
0      43.835686, 5.776256    04112                Manosque   
1     49.178683, -0.363049    14118                    Caen   
2     49.348837, -0.755599    14515  Port-en-Bessin-Huppain   
3      47.150785, 6.267207    25222                 Étalans   
4      44.974156, 5.027222    26004                  Alixan   
...                    ...      ...                     ...   
4974  49.574496, -1.626592    50599               Tollevast   
4975   47.621484, 6.154787    70550                  Vesoul   
4976   48.198227, 6.422135    88209                  Golbey   
4977  3.807958, -52.072288    97308           Saint-Georges   
4978     49.0255, 2.226086    95607                 Taverny   

     Code Officiel EPCI                        Nom Officiel EPCI  \
0           200034700.0  CA Durance-Lubéron-Verdon Agglomération   
1           200065597.0                           CU Caen la Mer   
2           241400555.0                    CC de Bayeux Intercom   
3           242504181.0              CC des Portes du Haut-Doubs   
4           200068781.0                  CA Valence Romans Agglo   
...                 ...                                      ...   
4974        200067205.0                           CA du Cotentin   
4975        247000011.0                             CA de Vesoul   
4976        200068757.0                              CA d'Épinal   
4977        249730052.0                     CC de l'Est Guyanais   
4978        200058485.0                           CA Val Parisis   

     Code Officiel Département Nom Officiel Département  Code Officiel Région  \
0                           04  Alpes-de-Haute-Provence                  93.0   
1                           14                 Calvados                  28.0   
2                           14                 Calvados                  28.0   
3                           25                    Doubs                  27.0   
4                           26                    Drôme                  84.0   
...                        ...                      ...                   ...   
4974                        50                   Manche                  28.0   
4975                        70              Haute-Saône                  27.0   
4976                        88                   Vosges                  44.0   
4977                       973                   Guyane                   3.0   
4978                        95               Val-d'Oise                  11.0   

             Nom Officiel Région  
0     Provence-Alpes-Côte d'Azur  
1                      Normandie  
2                      Normandie  
3        Bourgogne-Franche-Comté  
4           Auvergne-Rhône-Alpes  
...                          ...  
4974                   Normandie  
4975     Bourgogne-Franche-Comté  
4976                   Grand Est  
4977                      Guyane  
4978               Île-de-France  

[4979 rows x 30 columns]>

Je sélectionne les enregistrements contenant la région Île-de-France

In [5]:
DfIdF = df.loc[df["Nom Officiel Région"]=="Île-de-France",:]

J’affiche les premières lignes de mon extraction

In [6]:
DfIdF.head
Out[6]:
<bound method NDFrame.head of              ID  Année_Cession    Pays     Département             Commune  \
30    130770035           2013  FRANCE  SEINE-ET-MARNE           LIEUSAINT   
54    120920026           2014  FRANCE  HAUTS-DE-SEINE           MONTROUGE   
55    120920044           2014  FRANCE  HAUTS-DE-SEINE          COURBEVOIE   
58    130950028           2014  FRANCE      VAL-D'OISE          ARGENTEUIL   
70    140770032           2014  FRANCE  SEINE-ET-MARNE  CHANTELOUP EN BRIE   
...         ...            ...     ...             ...                 ...   
4921  160910028           2015  FRANCE         ESSONNE   BRETIGNY SUR ORGE   
4928  120780020           2014  FRANCE        YVELINES          VERSAILLES   
4946  140770018           2014  FRANCE  SEINE-ET-MARNE     MOISSY CRAMAYEL   
4947  140770028           2014  FRANCE  SEINE-ET-MARNE          MONTEVRAIN   
4978  180950016           2017  FRANCE      VAL-D'OISE             TAVERNY   

                  Nature                                 Ministère_occupant  \
30        ESPACE NATUREL  Ministère de l'écologie, du développement dura...   
54        ESPACE AMENAGE  Ministère du budget, des comptes publics et de...   
55    RESEAUX ET VOIRIES  Ministère de l'écologie, du développement dura...   
58        ESPACE NATUREL  Ministère de l'écologie, du développement dura...   
70        ESPACE NATUREL  Ministère de l'écologie, du développement dura...   
...                  ...                                                ...   
4921      ESPACE AMENAGE                            Ministère de la défense   
4928            LOGEMENT                            Ministère de la défense   
4946      ESPACE NATUREL  Ministère de l'écologie, du développement dura...   
4947      ESPACE NATUREL  Ministère de l'écologie, du développement dura...   
4978      ESPACE AMENAGE  Ministère de l'écologie, du développement dura...   

     Service_occupant Type_Procédure_ayant_mené_à_la_vente  \
30             Autres                            Gré à gré   
54             Autres                         Adjudication   
55             Autres                        Autres droits   
58             Autres                       Appel d'offres   
70             Autres                            Gré à gré   
...               ...                                  ...   
4921           AUTRES                        Autres droits   
4928           AUTRES                       Appel d'offres   
4946           Autres                            Gré à gré   
4947           Autres                            Gré à gré   
4978           Autres                            Gré à gré   

                Nature_juridique_Acquereur  ...  \
30           Etablissements publics locaux  ...   
54    Personnes physiques non commerçantes  ...   
55             Collectivités territoriales  ...   
58    Personnes physiques non commerçantes  ...   
70             Collectivités territoriales  ...   
...                                    ...  ...   
4921           Collectivités territoriales  ...   
4928                   Entreprises société  ...   
4946         Etablissements publics locaux  ...   
4947           Collectivités territoriales  ...   
4978           Collectivités territoriales  ...   

                                       adresse_complete                 geom  \
30                                                  NaN  48.631428, 2.548109   
54         15/17 RUE ESTIENNE D'ORVES - PARKING VOITURE  48.814638, 2.324105   
55    RUE BD DE LA MISSION MARCHAND/RUE BERTHELOT/AV...  48.898863, 2.240141   
58                                                  NaN  48.947394, 2.246363   
70                                                  NaN  48.854153, 2.738338   
...                                                 ...                  ...   
4921                                                NaN  48.608679, 2.306854   
4928       9 RUE DE L'INDÉPENDANCE AMÉRICAINE (32A30CA)  48.801424, 2.120454   
4946                                                NaN  48.625288, 2.591583   
4947                                      RUE BIEN DNID   48.85703, 2.757459   
4978                                                NaN    49.0255, 2.226086   

     com_code Nom Officiel Commune Code Officiel EPCI  \
30      77251            Lieusaint        200059228.0   
54      92049            Montrouge        200054781.0   
55      92026           Courbevoie        200054781.0   
58      95018           Argenteuil        200054781.0   
70      77085   Chanteloup-en-Brie        247700594.0   
...       ...                  ...                ...   
4921    91103    Brétigny-sur-Orge        200057859.0   
4928    78646           Versailles        247800584.0   
4946    77296      Moissy-Cramayel        200059228.0   
4947    77307           Montévrain        247700594.0   
4978    95607              Taverny        200058485.0   

                            Nom Officiel EPCI Code Officiel Département  \
30    CA Grand Paris Sud Seine Essonne Sénart                        77   
54                   Métropole du Grand Paris                        92   
55                   Métropole du Grand Paris                        92   
58                   Métropole du Grand Paris                        95   
70                       CA Marne et Gondoire                        77   
...                                       ...                       ...   
4921          CA Cœur d'Essonne Agglomération                        91   
4928    CA Versailles Grand Parc (C.A.V.G.P.)                        78   
4946  CA Grand Paris Sud Seine Essonne Sénart                        77   
4947                     CA Marne et Gondoire                        77   
4978                           CA Val Parisis                        95   

     Nom Officiel Département  Code Officiel Région Nom Officiel Région  
30             Seine-et-Marne                  11.0       Île-de-France  
54             Hauts-de-Seine                  11.0       Île-de-France  
55             Hauts-de-Seine                  11.0       Île-de-France  
58                 Val-d'Oise                  11.0       Île-de-France  
70             Seine-et-Marne                  11.0       Île-de-France  
...                       ...                   ...                 ...  
4921                  Essonne                  11.0       Île-de-France  
4928                 Yvelines                  11.0       Île-de-France  
4946           Seine-et-Marne                  11.0       Île-de-France  
4947           Seine-et-Marne                  11.0       Île-de-France  
4978               Val-d'Oise                  11.0       Île-de-France  

[673 rows x 30 columns]>

J’exporte mon extraction dans un fichier Excel

In [7]:
DfIdF.to_excel('output2.xlsx')
In [ ]:
 

J’ai omis les parenthèses après head et tail car l’affichage n’est pas très lisible dans WordPress (mais bon c’est un exemple assez trivial me direz-vous…).

N’ayant présenté que sommairement les différents outils agrémentés d’un exemple simple, j’essaierai de présenter d’autres possibilités de ces outils dans de prochains articles.

A bientôt !

Le site officiel d’Anaconda

Java, le langage de programmation

À la Une

Outre l’île de Java en Indonésie, Java est un langage de programmation créé en 1995 dans sa 1ère version et largement répandu dans la sphère de la programmation informatique.

Même si le langage python gagne en popularité et en diffusion (cf. Index Tiobe), Java présente une consommation en énergie plus faible que python. Java se situe dans le top five de ces langages alors que python se retrouve en bas du classement.

Armé de ma curiosité et d’une bonne dose de courage et d’enthousiasme, j’explore le langage à travers divers ouvrages.

Java, quel est ce langage ?

Java, pour fonctionner, nécessite la présence sur votre poste de travail d’une « machine virtuelle » appelée JVM pour Java Virtual Machine. La JVM interprète le pseudo-code ou bytecode produit par la compilation du code source. Le compilateur traite un fichier portant l’extension .java en un fichier avec l’extension .class qui correspond au bytecode. Quel est l’intérêt d’utiliser une machine virtuelle me direz-vous ? Et bien c’est là l’intérêt de Java : le code source peut être utilisé (=compilé, via la commande javac) sur n’importe quelle plateforme : Linux, Unix, Windows etc. c’est ce que l’on appelle la portabilité.

Outre la portabilité, Java est un langage orienté objet ou OOP (Object Oriented Programming). Voici la définition d’un objet selon le site internet communautaire Mozilla pour les développeurs (MDN) :

Un Objet est une structure contenant des données et des instructions en rapport avec ces données. Un Objet correspond parfois à des choses du monde réel, par exemple à une voiture ou à une piste dans un jeu vidéo de course.

Lors de la conception d’un logiciel, l’analyse préalable à la rédaction du code informatique va s’attacher à déterminer, généraliser certains éléments.

Petit exemple : je dois informatiser une librairie et plus particulièrement la gestion des ventes de livres. Le livre va représenter un objet dans le code informatique et disposer de membres que sont les propriétés du livre (sa date de parution, son prix de vente, sa disponibilité etc.) qui caractérisent ce livre, et de méthodes que l’on peut qualifier d’actions sur l’objet (le livre) ou comportements, comme l’affichage dans notre (futur) logiciel du prix du livre, de la mise en indisponibilité du livre suite à une vente etc.

La gestion de la mémoire est automatique en java grâce au garbage collector ou ramasse-miettes, processus lancé en arrière-plan qui récupère la mémoire non utilisée des objets. C’est une facilité pour le développeur qui peut ainsi se concentrer sur d’autres aspects de la programmation.

Je reviendrai dans d’autres articles pour explorer ce langage 😎.

A la découverte de Go!


En surfant sur le Web, j’ai découvert un langage de programmation informatique qui a suscité ma curiosité, le bien nommé langage Go…

Le langage Go a été développé par Google pour aboutir en 2012 à la première version de Go. Il s’agit donc d’un langage relativement récent, qui plus est open source depuis 2009.

A l’origine, le langage Go est destiné à la programmation système mais il est vite devenu un langage dit « généraliste ».

Wikipédia reprend un des objectifs de Go, dixit un de ses trois fondateurs, Rob Pike, à propos des développeurs inexpérimentés :

« Ils ne sont pas capables de comprendre un langage brillant, mais nous voulons les amener à réaliser de bons programmes. Ainsi, le langage que nous leur donnons doit être facile à comprendre et facile à adopter« 

Les applications de Go sont multiples ; on peut ainsi citer le cloud computing. Go a permis aussi de bâtir le logiciel Docker.

Voici un exemple de code permet d’afficher à l’écran le traditionnel « hello world » :

package main

import "fmt"

func main() {
    fmt.Println("hello world")
}

On remarque le mot-clé func, diminutif de function, qui permet de rédiger une fonction, une fonction principale en l’occurrence.

Pour déclarer une variable, il conviendra d’utiliser le mot-clé var, pour ensuite lui assigner une nature (nombre entier avec int, chaîne de caractère avec string etc.).

A noter que le mot-clé for est le seul moyen d’effectuer une boucle (pas de while etc.).

L’import du package fmt permet d’utiliser des fonctions d’entrée / sortie comme en langage C, afin de lire et restituer (Println) des données.

Ressources :

Le Go par l’exemple

The Go Programming Language [en]

Go (langage) — Wikipédia

Retrogaming avec Recalbox


Recalbox est un système d’exploitation gratuit permettant, avec nostalgie, de jouer aux consoles datant du début des jeux vidéos.

Vous pourrez ainsi jouer à des jeux disponibles sur Master system, Nintendo, Game Boy Advanced etc.

J’ai testé Recalbox avec sur une machine virtuelle pour prendre des captures d’écran. Je l’ai également installé sur ma carte micro-SD pour l’utiliser sur ma Raspberry Pi.

Un conseil, comme pour les consoles, munissez-vous d’une manette !

Site officiel : https://www.recalbox.com/fr/

Premiers pas avec Scratch !


Scratch est un logiciel d’apprentissage de la programmation pour les plus jeunes. Disponible en ligne, c’est-à-dire avec un navigateur internet comme Mozilla, ou téléchargeable pour l’installer sur un ordinateur, Scratch fonctionne avec des briques et blocs, qui permettent de créer un programme, voire un jeu vidéo.

La section « à propos » en dit plus sur Scratch :

Avec Scratch, vous pouvez programmer vos propres histoires interactives, jeux et animations – et partager vos créations avec d’autres dans la communauté en ligne.

Scratch aide les jeunes à apprendre à penser de façon créative, à raisonner systématiquement et à travailler de manière collaborative — des compétences essentielles pour vivre au 21e siècle.

Scratch est un projet du groupe Lifelong Kindergarten au MIT Media Lab. Il est fourni gratuitement

Scratch peut être utilisé dans l’enseignement également (exemple : tutoriel académique sur Scratch).

Je me suis lancé dans l’aventure Scratch pour débuter et tester un premier script.

Les possibilités de customisation sont grandes : modification de l’arrière-plan, du personnage central (le « sprite »), briques de programmation classées en grandes catégories, etc.

Voici la fenêtre principale de Scratch en ligne :

Pour coder, les briques sont disposées en grandes catégories : mouvement (du personnage), ajout de son, création de variables etc. :

Puis par un cliquer-glisser, on peut créer des séquences de code :

Enfin, on peut exécuter le programme et l’afficher dans la fenêtre dédiée :

Le personnage principal peut aussi voir son apparence (costume) modifiée…

… tout comme l’arrière-plan sur lequel évolue le personnage :

En conclusion, les possibilités de création avec Sratch sont riches et il s’agit d’un excellent moyen d’apprendre à créer des programmes.

Site officiel : https://scratch.mit.edu/

L’intelligence artificielle


Il s’agit d’un terme que l’on entend fréquemment dans les médias, porteuse d’innovations et de craintes, l’intelligence artificielle, ou Artificial Intelligence IA en anglais.

L’intelligence artificielle est une notion introduite par Alan Turing en 1950 dans son ouvrage Computing machinery and intelligence, et qui consiste à imiter une forme d’intelligence réelle. En d’autres termes, les machines, ou ordinateurs, peuvent-ils penser ?

En matière d’échecs, la machine (DeepBlue) a battu Garry Kasparov en 1997. 20 ans plus tard, l’autre machine, AlphaGo,bat le champion du monde de jeu de Go.

Devant ces succès des machines sur l’humain, faut-il y voir l’avènement de la supériorité des machines sur l’Homme ?

AlphaGo est un mélange de plusieurs domaines : « deep learning » (ou apprentissage profond), recherche de Monte-Carlo, et des techniques d’analyse massive des données (big data). 

Mais revenons sur la notion de deep learning/d’apprentissage profond, dont on entend parler en matière d’IA, à côté de l’apprentissage automatique, ou Machine Learning. Le deep learning, dérivé du Machine Learning, se base sur les réseaux de neurones artificiels à l’image du cerveau humain.

Google a ainsi mis à disposition à la portée de tous, Tensorflow, un framework open-source de Machine Learning, utilisant le langage informatique Python en particulier.

Mais l’exemple le plus parlant et le plus proche en matière d’intelligence artificielle, consiste pour l’internaute, à converser avec un « chatbot », ou agent conversationnel, disponible sur les sites grand public et destiné à répondre aux interrogations du (futur) client.

Bref, les domaines d’application de l’IA sont variés (Big Data etc.) et porteurs de progrès technologique.

Bande-annonce d’A.I. Intelligence Artificielle de Steven Spielberg (2001)



J’ai ressuscité Windows95 !


En surfant sur le Web, je suis tombé sur cet article qui pointe vers GitHub en mettant à disposition une version « live » de feu Windows 95. Moments de nostalgie non dissimulés, vous pourrez utiliser le lecteur de disquette, jouer au solitaire jusqu’à la fin de la nuit etc.

J’ai toutefois tenté de surfer sur le Web avec Internet Explorer sans réussite. Le lancement de MS-DOS n’a pas fonctionné non plus.

Moralité, Linux a de beaux jours devant lui !

Lien GitHub :

https://github.com/felixrieseberg/windows95/releases

Software Heritage


En surfant sur le Web, je suis tombé sur cet article de Sciences et Avenir « Les logiciels ont leur « bibliothèque d’Alexandrie » qui traite du site internet Software Heritage (https://www.softwareheritage.org).

Ce site, en partenariat avec l’UNESCO, a pour mission :

Notre ambition est de collecter, préserver et partager tous les logiciels disponibles publiquement sous forme de code source. Sur cette base, de nombreuses applications pourront en effet être créées, dans des domaines aussi variés que le patrimoine culturell’industrie et la recherche. 

Pour accéder à la bibliothèque de logiciels, il suffit de cliquer sur le menu L’archive et de chercher dans le moteur de recherche ce que vous souhaitez.

J’ai choisi deux exemples (assez simples) avec Tetris et Pong développés en langage Java et lancés avec le logiciel Eclipse sous Linux :

 

 

 

Créer son site WordPress avec les Amazon Web Services (AWS) [Cloud Computing]


Il existe plusieurs possibilités à disposition pour créer un site avec le CMS WordPress : la plateforme WordPress.com, l’hébergement sur un serveur tierce, l’auto-hébergement etc.

J’ai découvert récemment que les Amazon Web Services (AWS) « les services Web d’Amazon », des services de Cloud Computing, offrent cette possibilité.

Le cloud computing selon Wikipedia

 consiste à exploiter la puissance de calcul ou de stockage de serveurs informatiques distants par l’intermédiaire d’un réseau, généralement Internet. Les serveurs sont loués à la demande, le plus souvent par tranche d’utilisation, selon des critères techniques (puissance, bande passante, etc.), mais, également, au forfait. Le cloud computing se caractérise par sa grande souplesse : selon le niveau de compétence de l’utilisateur client, il est possible de gérer soi-même son serveur ou de se contenter d’utiliser des applicatifs distants en mode SaaS

Après avoir consulté la page dédiée à la création et au lancement d’un site WordPress avec AWS, j’ai franchi le pas en créant mon propre site avec AWS.

Créer son site avec AWS nécessite deux prérequis : la création d’un compte internet AWS, et la mise à disposition de ses coordonnées bancaires. En effet, la création basique de WordPress est gratuite mais peut être payante (Conditions générales du niveau gratuit AWS). Une authentification par téléphone via une boîte vocale est aussi nécessaire.

Il conviendra de créer une instance EC2 (Amazon Elastic Compute Cloud), la configurer, puis, pour effectuer des changements sur le site Web, d’obtenir le mot de passe de l’interface privée consacrée à la gestion du site (le back-end).

Il n’existe pas que AWS sur le marché du Cloud Computing, on peut ainsi citer Google Cloud Platform (page Google Cloud dédiée à WordPress [en]) et Microsoft Azure (page Microsoft dédiée à Worpress [en]).

Amazon Web Services (AWS) – Services de cloud computing

 

Ce diaporama nécessite JavaScript.

   

Supervision avec Prometheus (+Grafana)


Si pour vous Promotheus est le film de Ridley Scott sorti en 2012, cet article devrait vous intéresser.

Suite à un article consacré à Nagios, un outil de supervision, j’ai découvert en surfant sur le site internet linuxfr.org un article dédié à Prometheus, couplé avec Grafana, une interface Web. Un autre article est consacré à Prometheus également sur le blog d’Octo.

Ma curiosité m’a poussé à découvrir Prometheus dont voici quelques captures d’écran :

Il faut savoir que Prometheus peut être installé sans Grafana, l’interface Web de Prometheus étant toutefois assez sommaire.

Prometheus, d’après son site intenet officiel, est un outil de monitoring système incluant un outil d’alerte.

Prometheus is an open-source systems monitoring and alerting toolkit…

Grafana quant à elle est une plateforme analytique et de monitoring.

Site internet de Prometheus [en]

Site internet de Grafana [en]

Les conteneurs logiciels selon Docker


Jusqu’à maintenant, j’utilisais la virtualisation pour tester des systèmes d’exploitation à travers VirtualBox, VMWare etc. Quid du test des applications, des logiciels ?

Pour comprendre la technologie fournie par Docker, il suffit de comparer les conteneurs qu’utilise Docker et les « machines virtuelles » :

Vous disposez ci-dessus du fonctionnement type des machines virtuelles.

Ci-dessous, le fonctionnement de Docker, plus rapide, se différencie pas l’absence de système d’exploitation invité pour faire fonctionner les applications. En effet, Docker va faire fonctionner directement les applications via des « conteneurs ».

Voici quelques exemples de conteneurs :

J’ai utilisé pour tester Docker l’édition Communautaire.

Pour cela, il convient d’installer les paquets docker et docker-compose :

Ensuite, j’ai voulu utiliser pour créer un site internet l’application WordPress. Le tutoriel Installer WordPress sur Docker facilement en 2 étapes m’a été très utile.

Dans un répertoire créé à cet effet, il suffit de créer un fichier docker-compose.yml qui contient les lignes suivantes :

version: ‘2’
 
services:
   db:
     image: mysql:5.7
     volumes:
       db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
 
   wordpress:
     depends_on:
       db
     image: wordpress:latest
     ports:
       « 8000:80 »
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

 

La commande dockercompose up d permet de lancer worpdress via Docker puis en se rendant à cette adresse http://localhost:8000 :

On accède ainsi à l’interface d’installation de WordPress.

Je reviendrai dans de prochains articles sur Docker.

Site internet de Docker [en]

Tutoriel sur l’utilisation de Docker [fr]

 

 

Nagios, surveillance/supervision système et réseau


Il y a quelques années (déjà?), je lisais les revues axées sur Linux, et un sujet revenait souvent, celui de la supervision système et réseau. Et, parmi les logiciels libres, Nagios était cité. J’avais déjà installé, « à l’époque », Nagios sur ma distribution Linux, mais je n’avais jamais consacré d’article à ce sujet.

J’ai installé récemment la distribution Linux Ubuntu 16.04 sur un ordinateur « virtuel » via le logiciel VirtualBox. J’ai donc sauté le pas et j’ai tenté (en espérant que cela fonctionne 😉 ) d’installer le serveur de monitoring Nagios sur cette Distribution Linux.

J’ai suivi pour cela le tutoriel (in english) disponible à cette adresse : https://www.howtoforge.com/tutorial/ubuntu-nagios/

How to Install Nagios Server Monitoring on Ubuntu 16.04

Les étapes, pour faire « fonctionner » Nagios, sont les suivantes :

  1. installation des prérequis,
  2. configuration du groupe et de l’utilisateur,
  3. installation de Nagios à proprement parler :
    • téléchargement et décompression de Nagios « coeur »
    • compilation de Nagios
    • installation des plugins/extensions de Nagios
  4. Configuration du serveur Apache
    • mise à disposition des modules Apache
    • mise à disposition de l’hôte virtuel Nagios
    • lancement d’Apache et de Nagios

Une fois toutes ces étapes franchies, vous pouvez tester Nagios (http://localthost/nagios/ pour ma part) après avoir modifié des droits d’accès pour éviter un message de type error: could not read object configuration data.

La modification des droits d’accès s’effectue sur le fichier /etc/init.d/nagios

Une fois l’installation terminée (et réussie, ouf 😉 ), voici les quelques captures d’écran de Nagios, sachant que ce que j’ai à monitorer est assez sommaire. Promis, je rédigerai un prochain article un peu plus poussé sur Nagios .

Toutefois, selon moi, la curiosité en informatique fait avancer sa propre recherche de connaissances en la matière (ouah… quelle belle phrase de fin ! 😀 ).

 

 

 

Ce diaporama nécessite JavaScript.

 

Et en bonus quelques ressources :

Le blog de nicolargo :

https://blog.nicolargo.com/nagios-tutoriels-et-documentations

Cliquer pour accéder à ebook-nicolargo-nagios-v1.0.pdf

Nagios sur Wikipedia :

https://fr.wikipedia.org/wiki/Nagios

Nagios.org

XAMPP = Apache + MySQL + PHP/Perl, + Linux bien entendu !


Après moult tentatives d’installation de la version de développement de Drupal 8 (le CMS [en] https://drupal.org/drupal-8.0), je trouvai alors un conseil sur internet me proposant d’installer XAMPP.

Voici un extrait du site officiel qui en dit long sur XAMPP :

XAMPP est une distribution Apache entièrement gratuite, facile à installer qui contient MySQL, PHP et Perl. Le package open source XAMPP a été mis en place pour être incroyablement facile à installer et à utiliser

XAMPP est à LAMP ce que le couteau-suisse est à la boîte à outils. Entendez par là que XAMPP s’installe facilement, cette installation étant très rapide également.

Pour installer XAMPP, il suffit de lancer le programme d’installation (quoi de plus simple ? ) puis de lancer XAMPP et atteindre la page de démarrage. En supplément, c’est gratuit, phpmyadmin est également disponible.

Bref, pour faire simple, XAMPP facilitera votre vision de l’architecture LAMP.

Documentation XAMPP par la documentation Ubuntu [fr]

LE site officiel [fr]

Foire Aux Questions (documentation) [en]

Ce diaporama nécessite JavaScript.

Bilan de l’année 2013… merci à tous les internautes-lecteurs de mon blog !


Les lutins statisticiens de WordPress.com ont préparé le rapport annuel 2013 de mon blog.

En voici un extrait :

Le Concert Hall de l’Opéra de Sydney peut contenir 2.700 personnes. Ce blog a été vu 10  000 fois en 2013. S’il était un concert à l’Opéra de Sydney, il faudrait environ 4 spectacles pour accueillir tout le monde.

Cliquez ici pour voir le rapport complet.

Administration système avec Webmin


Je me rappelle encore (séquence nostalgie) de ce logiciel que j’ai découvert en bidouillant ma distribution Linux, à l’époque.

Oui, Webmin permet, d’après son site web officiel,  et via votre navigateur internet préféré, d’administrer votre système Linux.

Ainsi, après installation de Webmin, décrite ici avec la distribution Ubuntu 13.10, vous accédez en tapant l’adresse 

https://localhost:10000/

à l’écran de connexion. Restent à renseigner votre login et mot de passe de connexion et vous pourrez donc évitez la ligne de commande, qui peut paraître fastidieuse mais qui reste néanmoins indispensable, pour administrer votre système.

A gauche, le menu, dont vous trouverez les différentes composantes dans les captures d’écran ci-dessous, à droite le choix opéré fonction du menu. 

Vous en conviendrez vite, Webmin est un logiciel puissant, ne serait-ce que par la richesse des menus : administration du système, de serveurs, de réseau, de matériel ou encore de cluster.

Ce diaporama nécessite JavaScript.

Les flux RSS, ou comment rester informé des dernières news


Feed-icon.svgJe surfais (sur le net) un jour de grosse chaleur, et, soudain, je me posais LA question ultime à la lecture d’un site d’information : comment rester informer des nouveaux articles, autrement qu’en allant sur la page Web du site internet ?

Cette question, que tout internaute se pose en surfant un jour de grosse chaleur, a été résolue, bon an mal an, grâce aux flux/fils RSS. Comment faire, me direz-vous, pour utiliser ces flux RSS ? Et bien il existe plusieurs solutions…

Lorsque j’utilisais la distribution linux Mandriva (ex-Mandrakesoft), je me souviens (séquence nostalgie) de Netvibes, un agrégateur de flux RSS. Retour donc, en 2013, sur netvibes.com qui, sans inscription, vous permet de configurer ces flux RSS. Dans l’exemple en images, j’ai choisi la rubrique (c’est d’un banal) « actualités ».

Autre possibilité, intégrer vous même une adresse contenant les flux. Autre exemple (c’est d’un banal), j’ai choisi mon blog (non sans narcissisme dissimulé) : après avoir cliqué sur l’icône des RSS, j’ai procédé à un copier-coller de l’adresse URL sur netvibes.com pour ensuite l’ajouter à mon tableau de bord (comprenez « dashboard », prononcez « dachebooord »).

Et, instantanément, vous accéder à la liste de mes articles dernièrement publiés. Autre possibilité, faire de votre « dachebooord » votre page d’accueil.

Bref, les flux RSS sont d’une utilité si vous souhaitez être informé des dernières publications de votre site Web favori. Google permet également l’intégration de flux RSS via iGoogle. Un logiciel tiers tel un logiciel de messagerie autorise aussi la lecture des fils.

Les flux RSS par 01net.com

Netvibes.com

Ce diaporama nécessite JavaScript.

Je récupère mes données grâce à PhotoRec !


Avec un tel titre, certes alléchant mais tout aussi intéressant, ce petit logiciel va vous permettre de récupérer, restaurer, les données que vous auriez malencontreusement perdues, effacées voire formatées, et tout ceci, dans une version bêta 6.14 et, qui plus est, libre (ouah…).

PhotoRec, d’après son site officiel mais aussi Wikipedia, a pour objectif de récupérer les données issues de clés USB, CD-Rom, Disques durs, et carte mémoire photos.

Le petit logiciel (en taille), je cite, « ignore le système de fichier » permettant ainsi de récupérer vos données même pour un support endommagé et couvre (ou découvre si je puis dire) quelques 100aines de formats de fichiers.

PhotoRec est le prolongement de TestDisk, un software pour monter une partition non montable ou encore récupérer des partitions perdues (re-ouah…).

Pour rendre encore plus alléchant le logiciel et l’article en lui-même, je vous invite à surfer sur ces quelques captures d’écran… la recherche étant longue et comme j’ai travail demain, je ne suis pas allé jusqu’à la fin de la recherche, mais bon, rien n’empêche que vous ne l’utilisiez chez vous !

Ce diaporama nécessite JavaScript.

 

Un forum pour mon site/blog avec PhpBB3 3.0.11


Qui n’a jamais rêvé d’ajouter à son site/blog internet un espace d’échanges entre des membres inscrits qui discutent de tout et n’importe quoi ?

La réponse à cette question, ou la concrétisation de votre rêve, vous la trouverez avec PhpBB3, libre et open source. Vous réveillerez ainsi le forumeur qui sommeille en vous avec ce software qui dispose de nombreuses fonctionnalités.

Aussi, l’installation est, à l’image de l’installation d’un CMS, simple.

Et pour vous aider dans l’installation/utilisation de PhpBB3, un forum (et oui, un forum sur un forum) est disponible à cette adresse http://forums.phpbb-fr.com/

Et si vous êtes à l’aise pour comprendre l’anglais, voici l’adresse du site internet officiel de PhpBB3 https://www.phpbb.com/ 

Bref, PhpBB3 vous permettra de créer une communauté autour de vous et animer votre site/blog internet.

Pour découvrir l’outil, je vous propose de parcourir la galerie photo ci-dessous, de l’installation au panneau d’administration sans oublier le forum en lui-même !

Ce diaporama nécessite JavaScript.

Novius OS 0.2, bien plus qu’un CMS, un OS !


En parcourant un article sur LinuxFr (cliquez ici) sur Novius OS, j’ai décidé de tenter l’installation en mode « local ».

Avant de parler de l’installation, il convient de présenter les principales caractéristiques de Novius OS…

Tout d’abord, OS est l’acronyme d’Open Source ou encore d’Operating System (System d’exploitation) (source : le site officiel) et ne se limite donc pas seulement à un outil de création de site internet, un CMS.

L’architecture du « back-end » de Novius OS repose sur le framework FuelPHP fonctionnant selon le principe MVC pour Modèle Vue Contrôleur alors que le « front-end » repose sur le Javascript (les fondamentaux de l’OS sur Github.com ).

Le principe même de Novius OS est de créer du contenu puis de le publier sur différents supports (Blog, Twitter etc.). L’OS fonctionne aussi avec le principe d’applications.

Pour l’installation, il faut une base « LAMP » Linux Apache MySql et PHP. Je vous recommande de l’installer à partir du tutoriel de cette page cliquez ici.

A défaut de l’installer, testez la démo à partir de cette page.

Novius OS sur la Voix du Libre (fr)

Ce diaporama nécessite JavaScript.

 

 

 

Mes applications Windows sous Linux avec Wine


Utilisateurs de Linux, il vous est possible d’utiliser vos applications Windows sous Linux grâce à Wine qui n’est pas un émulateur (Wine Is Not an Emulator). Il s’agit en réalité d’une interface de programmation Win32 (http://doc.ubuntu-fr.org/wine_presentation).

Certes, toutes les applications Windows ne fonctionneront pas avec Wine, mais le projet open-source très actif permet l’utilisation d’un grand nombre de logiciels.

Dans cet article vous retrouverez l’installation du célèbre logiciel d’écoute de musique en ligne « Spotify ».

– 1ère étape : je télécharge l’application (pour Windows) Spotify depuis le site officiel http://www.spotify.com/fr après avoir créer un compte. J’installe également Wine à partir du gestionnaire de logiciel d’Ubuntu.

– 2ème étape : je lance via le terminal la commande : wine « Spotify Installer.exe » qui exécute l’installation de Spotify.

Puis j’accède à Spotify grâce au raccourci créé sur le Bureau. Et le tour est joué !

Ce diaporama nécessite JavaScript.