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

Publicités

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.