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
- Geany => 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.
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
- Installation assez facile grâce Puppy Packet Management (PPM), le gestionnaire de paquets.
- Mes environnements Python 3 et MicroPython sont pleinement fonctionnels :-)
- J'ai mes éditeurs de code sont installés et réactifs (je n'ai pas été trop exigeant dans ma sélection)
- 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 - 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!)
Pour améliorer l'expérience
- 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. - Utiliser un disque SSD pour remplacer le disque mécanique (gain de temps)
- 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
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
Écrire un commentaire