Récupération: Dell OptiPlex GX260N et environnement de développement

Bonjour à tous,

Après l'agréable surprise offerte par "Puppy Linux -BionicPup32" (une Ubuntu) dans le précédent article, il est maintenant temps de s'intéresser aux possibilités de développements que peut offrir ce Pentium 4 et ses 240 Mo de RAM.


Objectifs

Côté développement, j'aimerais:

  • Développement Python 3 => OK
  • Pip3 (Python Install package) => OK
  • Développements avec MicroPython => OK
    Python sur microcontrôleur avec Raspberry-Pi Pico ou ESP32.
  • Environnement de développement & IDE :
    • Geany => OK
    • Thonny IDE => OK
    • Idle (Editeur Python) => OK
    • MPRemote pour MicroPython => OK
    • RShell pour MicroPython => OK
    • Nano (éditeur Terminal) => OK
  • Port Parallèle sous Python => OK
    Une vieillerie mais j'ai ai toujours eu envie d'expérimenter
  • Port Série (RS232) sous Python => En cours
  • Lecteur de disquette 3.5" => plus tard
    Lecture et support d'autres formats exotique.
    Une autre vieillerie que je voudrais réutiliser.
N'hésitez pas à partager vos suggestions...

Conclusion

Avant de passer en revue les détails des différents objectifs, il serait intéressant de partager mon retour d'expérience des développements Pentium 4 et ses 240 Mo de RAM.

Points Positifs

  1. Installation assez facile grâce Puppy Packet Management (PPM), le gestionnaire de paquets.
  2. Mes environnements Python 3 et MicroPython sont pleinement fonctionnels :-)
  3. J'ai mes éditeurs de code sont installés et réactifs (je n'ai pas été trop exigeant dans ma sélection)
  4. J'ai pu contrôler le port parallèle depuis Python 3.
    Je verrais plus tard pour le hacking électronique et ferais un article complet
  5. PySerial est installé pour atteindre les microcontrôleurs MicroPython via USB-Serie. Je sais que je pourrais donc manipuler le port série matériel

Points Mitigés

Il n'y a pas de points négatifs! Je suis globalement très satisfait mais voici quand même quelques réflexions.

  • La recherche sur Internet (navigateur) est vraiment poussive.
    Il faudra décidément augmenter la RAM... d'autant que les sites internet sont devenu vraiment très lourd.
  • Avant d'installer un support Python3 avec PIP3, il faut d'abord faire une recherche avec PPM (Puppy Package Manager).
  • Puppy Package Manager : c'est de la vieille école et il est parfois pesant de devoir identifier le bon paquet à partir d'un mot clé. Il a cependant beaucoup de mérite d'exister!
  • Nano s'appelle nano-tiny (faut le savoir!)
Je n'ai pas encore eu l'occasion de me pencher sur le lecteur de disquette 3.5" mais j'aurais l'occasion d'y revenir.

Pour améliorer l'expérience

  1. Plus de 240 Mo RAM pour améliorer la fluidité de la navigation Internet.
    512 Mo ou 1 Go ce serait bien.
    C'est vraiment un frein et faire des développements Python sans disposer d'un outil de recherche performant c'est très contraignant.
  2. Utiliser un disque SSD pour remplacer le disque mécanique (gain de temps)
  3. 2ieme port parallèle : utiliser une carte d'extension avec une carte d'extension pourrait présenter une source de développement très captivant!

Installation

Voici maintenant les détails concernant l'installation des différents outils.

Pour commencer, il faut utiliser PPM, l'installateur de paquet "Puppy Packet Manager", qui permet d'installer logiciels déjà compilés (et sur une distro Ubuntu, les logiciels ne manquent pas de paquet comme l'indique la liste suivante).

PPM, disponible depuis le menu principal

Quels paquets installer ?

  • nano-tiny
  • python3.6 (existe aussi en version 3.7 & 3.8)
  • python3-pip
  • idle-python3.6
  • thonny (2.1.16-3)
    Ne contient malheureusement pas le support REPL apparu dans Thonny 3.3
Il peut être vraiment pratique de créer un lien symbolique nano pour utiliser nano-tiny... cela reste plus conforme avec les OS Raspberry-Pi.
cd /usr/bin
ln -s /bin/nano-tiny nano

Installer les outils MicroPython

Il s'agit essentiellement des outils MPRemote & RShell

  • sudo pip3 install mpremote
  • sudo pip3 install rshell

RShell installe aussi Py-Serial, idéal pour accéder au port série.

Pour port parallèle

Pour utiliser le port parallèle avec Python 3, il faut installer parallel basé sur ppdev (bibliothèque de développement pour exploité le port parallèle).

Voici le paquet dont nous aurons besoin pour exploiter le port parallèle.

  • python3-parallel (0.2.2-2) [universe] pyparallel - module encapsulating access for the parallel port

L'utilisation du port parallèle avec Python3 fera l'objet d'un article séparé.

Ne pas s'oublier

Disons qu'au milieu de toutes ces installation, j'ai eu une envie soudaine de faire une partie de "démineur" (jeu ayant fait partie de mes primes années sous Windows).

J'ai donc installé le paquet suivant:

  • games-minesweeper (2.2ubuntu2) [universe] Debian's minesweeper games

Et j'ai passé un bon moment!

Quoi d'autre?

Dans mon empressement initial, j'ai totalement oublié de me pencher sur Flask (un environnement de développement WEB sous Python).
Il ne manque pas de paquets sous Bionic, je pourrais donc en profiter.

python3-flask (0.12.2-3ubuntu0.1) [universe] [security] micro web framework based on Werkzeug and Jinja2 - Python 3.x
python3-flask-api (0.6.4+dfsg-1) [universe] Browsable web APIs for the Flask micro web framework
python3-flask-autoindex (0.6+0git20160725-02b454-3) [universe] automatically generated index pages for Flask applications (Python 3)
python3-flask-babel (0.11.2-2) [universe] internationalization and localization support for Flask (Python 3)
python3-flask-bcrypt (0.7.1-1) [universe] Python 3 flask extension that provides bcrypt hashing utilities
python3-flask-compress (1.4.0-1) [universe] Compress responses in a Flask app with gzip (Python 3)
python3-flask-flatpages (0.6-1) [universe] Provides flat static pages to a Python 3 Flask application
python3-flask-gravatar (0.4.2-1) [universe] Extension for Flask to make usage of Gravatar service
python3-flask-htmlmin (1.3.1-1) [universe] Minimize render templates html
python3-flask-ldapconn (0.7.1-1) [universe] LDAP connection and ORM for Flask Applications (Python 3)
python3-flask-limiter (0.9.3-1) [universe] Rate-limiting for Flask routes
python3-flask-login (0.4.0-2) [universe] user session management for Flask -- Python 3 module
python3-flask-mail (0.9.1+dfsg1-1) [universe] Flask extension for sending email
python3-flask-migrate (2.1.1-2) [universe] SQLAlchemy migrations for Flask using Alembic and Python 3
python3-flask-mongoengine (0.9.3-2) [universe] Extension that provides integration with MongoEngine (Python 3)
python3-flask-openid (1.2.5+dfsg-2) [universe] OpenID support for Flask applications (Python 3)
python3-flask-paranoid (0.2.0-2) [universe] Simple user session protection
python3-flask-peewee (0.6.7-1) [universe] Peewee integration for flask (Python 3)
python3-flask-principal (0.4.0-1build1) [universe] identity management for Flask
python3-flask-rdf (0.2.0-1.1) [universe] Flask decorator to output RDF using content negotiation (Python 3)
python3-flask-restful (0.3.6-1) [universe] REST API framework for Flask applications (Python3 Module)
python3-flask-script (2.0.5-2) [universe] set of utilities for use with the Flask framework and Python 3
python3-flask-security (1.7.5-2) [universe] Simple security for Flask apps (Python 3)
python3-flask-silk (0.2-10) [universe] FamFamFam Silk icon set for Flask applications (Python 3)
python3-flask-socketio (2.9.0-1) [universe] Socket.IO integration for Flask applications
python3-flask-sqlalchemy (2.1-3build1) [universe] adds SQLAlchemy support to your Python 3 Flask application
python3-flask-testing (0.4.2-1) [universe] unit testing utilities for the Flask micro web framework
python3-flaskext.multistatic (1.0-1) [universe] Simple flask plugin for overriding static files (Python 3)
python3-flaskext.wtf (0.14.2-2) [universe] Simple integration of Flask and WTForms (Python 3)


c

c

c

c

Aucun commentaire