Overblog
Suivre ce blog Administration + Créer mon blog
10 avril 2024 3 10 /04 /avril /2024 00:41
1er Mai Fête des Travailleurs... qui se libèrent par le progrès technologique!

   Comme tous les premiers Mai je suis assez horrifié qu'une fête qui vienne tout droit des USA (États-Unis d'Amérique) et qui dans toutes les Amériques (Latine y compris) et en Europe jusqu'à la Seconde Guerre Mondiale a toujours été nommée "Fête des Travailleurs" ("Workers Day", "Dia dos trabalhadores"), soit requalifiée depuis que le nazisme, la collaboration et le pétainisme soient passés par là de "Fête du Travail"!

   Pire encore, en Belgique on a pu ainsi voir tous les partis de la droite (MR) à l'extrême gauche (PTB) mettre en avant une volonté de «redonner de la valeur au travail"! Mort de Rire: l'Humanité a évoluée du singe primitif à l'Homo Sapiens Sapiens grâce uniquement au fait non d'avoir inventé le travail mais bien de vouloir se défaire de cette contingence naturelle!

   L'Histoire de l'évolution de l'humanité est avant tout une Histoire d'Hommes voulant gagner plus de la Terre avec moins d'efforts que leurs ancêtres. C'est de là que provient le progrès, celui du passage à la cueillette-chasse à l'agriculture d'abord, celui de l'usage d'animaux comme force de travail (chevaux et bœufs), et finalement les progrès techniques et technologiques.

   Sans cette volonté d'échapper à un Travail qui n'est pas une invention de l'humanité mais une nécessité imposée par la Nature, le Singe serait resté Singe!

   Par ailleurs, comme je l'ai déjà affirmé à de nombreuses reprises sur ce blog, le progrès technologique induit le progrès social, et cela peut se démontrer assez facilement en observant l'Histoire des Luttes Sociales.

   On le voit en France pour l'âge de la Retraite et en Belgique pour Delhaize: la bourgeoisie dirigeante ne lâche au Peuple que ce qu'elle voulait dès le départ bien lui lâcher et rien de plus!

   Ainsi, si on a abandonné le travail des enfants et les 16 heures de travail par jour, c'est uniquement grâce à l'invention de l'électricité et à la mécanisation de plus en plus répandue. Par ailleurs, Karl Marx lui-même le note: plus le travail devient techniquement complexe, plus il faut former le prolétariat; d'où l'École non plus seulement gratuite mais bien obligatoire. Et en se formant ledit prolétariat peut espérer en arriver à des capacités de réflexion et de logique lui permettant de vouloir faire ce qu'il a toujours rêvé: se libérer du travail d'esclavage!

   Donc travailler à quelque chose plutôt que d'être travaillé par quelque chose ou quelqu'un...

   C'est-à-dire ne plus suivre de leaders, que ce soient leader d'activité (de travail proprement dit), leader d'opinion (organisation, syndicat, parti), leader de gouvernement. Et donc on en arrive alors à la vraie Démocratie, étymologiquement "le Pouvoir pour et par le Peuple lui-même".

Partager cet article
Repost0
3 avril 2024 3 03 /04 /avril /2024 07:31

Dossier ZIP du jeu dernière version au 03 Avril 2024

   Ce 03 Avril 2024 la sortie d'une version à vecteur fixe de la balle quel que soit l'angle tiré au hasard entre 30 et 60 degrés où elle se déplace. Jeu rétro de Pong Squash version 304 (3 du 4) libre, gratuit et open-source fonctionnant sous Python 3 grâce au module pygame. Sur un CPU de PC (avec ou sans GPU) elle fonctionne à la même vitesse tous OS (Linux, Windows, MacOS), malheureusement sur un CPU-ARM (tel le Raspberry Pi) pygame n'assure pas la compatibilité de vitesse; manifestement il y a un problème de calcul du temps en millisecondes selon le type d'interface proposée et je ne sais pas déterminer si cela provient de la vitesse en GHz de chaque processeur ou de l'architecture du processeur lui-même.

   Nécessite le module et la mise-à-jour du module pygame.

   Dans un terminal il faudra donc entrer pip install pygame

   Ou la mise-à-jour par python -m pip install -U pygame --user

Jeu Retro Pong Squash version 100% pygame tous OS et matériels

   Alors, nette amélioration, la version "Squash 25.2 OldStable", qui fonctionne sous toute configuration matérielle (quelle que soit la vitesse du CPU, processeur, et GPU; avec ou sans GPU; AMD, Intel, ARM; etc) et tous OS (Windows, MacOS, Linux).

   Cela a été rendu possible en ne se basant plus sur une boucle continue "ralentie" par le pas de mouvement de la balle et de la raquette mais cette fois-ci en établissant un pas de mouvement plus grand et en ralentissant par la commande pygame.time.wait(valeur en millisecondes).

   C'est-à-dire en créant un temps d'attente en millisecondes théoriquement identique à toutes les machines. Mêmes si, oui, sous Raspberry Pi 4 il est légèrement plus lent que sous Windows 10...

   Alors cette fois c'est une version totalement programmée avec le module pygame d'un jeu rétro vintage de pong / squash tel qu'on en trouvait sur TRS-80 dans les années 1975's.

   La partie la plus compliquée de la programmation de ce jeu, étonnamment, a été la prise du pseudonyme du joueur. Rien ne donnait juste. Ni l'IA (AI) Bard de Google qui fournissait un code totalement inopérant, ni les différentes documentations sur Raspberry Pi qui ne donnaient que du code partiel. Mais, finalement, sur base de cette documentation et en croisant différents chapitres de cette documentation (ainsi qu'en expérimentant), après 5 (cinq) jours j'ai résolu le problème.

   Les codes et les ressources (écran d'accueil, sons de balle, musique de fond, module scoremanage) sont à télécharger en une fois en ZIP ici (voir plus bas)...

   Pour la musique de fond du jeu, je n'ai pas choisi une musique typiquement rétro-gaming, c'est un choix, j'aurais pu, mais j'ai décidé après l'avoir écouté par hasard au moment où je codais de placer un sample de "Satisfaction" des Rolling Stones (extrait avec Audacity)... C'est un Rock d'époque du jeu néanmoins... Donc le fichier "satisfaction.mp3".

Dossier ZIP du jeu, contenant toutes les ressources.

   Avant de lancer la version sur Raspberry Pi 4 ou inférieur, il convient de savoir que si le module pygame est bien pré-installé; il s'agit de l'ancienne version (v.1) qui ne fonctionne pas avec mon code utilisé. Il faudra mettre à jour vers la version récente (v.2) en tapant une ligne de commande dans le terminal LX-Terminal. Pour connaître cette commande rendez-vous sur https://www.pygame.org . Vous y découvrirez comment installer et mettre-à-jour le module pygame de Python 3...

   Et voici quelques captures d'écran:

 

 

 

Partager cet article
Repost0
8 février 2024 4 08 /02 /février /2024 22:00

   Je décide ici de publier un petit programme Python 3 sous module tkinter que j'avais gardé pour moi en pensant qu'il n'intéresserait pas grand monde. Comme le montre la vidéo, c'est une application qui affiche sur l'écran un carré de 10x10 = 100 LED en losange changeant de couleur au hasard tous les 250 millièmes de seconde, soit 25 centièmes de seconde, bref tous les 1/4 (quarts) de secondes.

   Cela fait donc une cadence de 240 BPM, mais en rendu ralenti de par le fait qu'un seul et unique losange peut prendre, au gré du hasard, deux fois de suite la même couleur.

   De mon usage pour divers fonds musicaux, ce un quart de seconde permet de rendre le changement de configuration des couleurs sur l'ensemble du panneau de LED synchronisé avec la musique et ce quel que soit son BPM du moment qu'il soit festif. Ça n'ira donc pas sur de la deep house ou du Chillout...

   Il est probable qu'un jour je code une version de ce Flash Lights qui soit vraiment totalement synchrone avec les battements, les beats, perçus dans la musique.

   Une application qui fera donc un bon add-on par dessus un lecteur de musique, que ce soit Windows Media Player ou VLC, que ce soit sous Linux, Windows ou Mac OS...

   Le voici ici en format UTF-8 python fichier .py ...

Partager cet article
Repost0
31 janvier 2024 3 31 /01 /janvier /2024 20:27

   Je replace ici ce 31/01/2024 20:21 PM CET (UTC+01) cet article du 7/08/2023. Il s'agit de mon mix le plus récent mais qui date déjà d'il y a longtemps. Un mix explicite tant en anglais (surtout) qu'en français. C'est Funk donc, tout comme le Jazz (non intello), ça parle de cul (et de meurtres, mais pas dans ce mix). Comme l'a dit l'autre «c'est ceux qui en parlent le plus qui en font le moins», mais ce n'est pas moi qui l'ait décidé ainsi, si j'en fais rien c'est aux filles que je le dois: la mode est aux frigos féminins... Ou plutôt la température affichée dépend de ce que ta carte de crédit indique elle aussi.

   Donc un mix pour sublimer; c'est ma musicothérapie à moi, bien plus efficace que toute musique douce et travaillée, genre musique classique ou ruissellements d'eau générés sur synthétiseur d'ordinateur...

Un mix Funk explicite en anglais et français...

   Un nouveau mix, le dernier datant de décembre 2022 cela fait donc 8 mois d'absence à ce niveau mais pas dans la musique puisque j'ai quand même commis deux pistes originales. Un mix funky, le Funk That Sound #17, orienté légèrement obsédé genre «c'est l'amour à la plage» pour ce milieu de semaine qui s'annonce estival en Belgique (et à Bruxelles) si les prévisions météo ne changent pas entre-temps.

   Ça sautille du début à la toute fin et c'est en téléchargement libre et gratuit dès aujourd'hui 7 Août 2023, date de sa réalisation et mise en ligne.

   Playlist au format texte brut UTF-8:

Partager cet article
Repost0
8 janvier 2024 1 08 /01 /janvier /2024 06:49

   Enfin, ce lundi 8 janvier 2024, une version beaucoup plus travaillée: pour obliger à faire travailler les capacités graphiques et d'imagination du cerveau il n'y a plus un seul mur en bas mais deux murs, l'un en haut et l'autre en bas! Le mur du bas, pour rendre cela quand même possible, ayant été abaissé.

   C'est Coelho_2 exécutable en coelho_2.py et avec son fichier score propre; le dossier ZIP présent ici contenant l'ensemble des outils. Fonctionne, grâce à Python et pygame, sur Linux, Windows et MacOS.

Dossier ZIP du jeu Coelho_2

Ç'aurait pu être angry rabbit finalement c'est Coelho le lapin de Pâques...

   Avec ce 9 décembre 2023 une version 0.b et un nom de fichier de sauvegarde de scores propre à cette version. Dans cette version le mur ne fait plus seulement 4 mètres (200 pixels) mais 5 mètres (250 pixels); ce qui complique un peu les chances de très gros scores...

   Je reviens avec un jeu réalisé avec le module pygame de Python 3; pour rappel il s'installe par la commande dans le terminal (Linux, Windows ou Mac OS): pip install pygame. Un jeu qui aurait pu donner une espèce de "angry Rabbit" mais ne nous fâchons pas, c'est un jeu tout simplement basé sur les trajectoires paraboliques de la balistique: un lapin lancé à une vitesse initiale avec un angle initial doit sauter au-dessus d'un mur et atteindre un œuf de Pâques en faisant attention de en pas aller trop loin et entrer ainsi dans le territoire des dangereux dinosaures!

   C'est toujours mieux qu'un jeu de canons et bombes ou obus...

   De plus ce jeu est basé sur des données réelles. Ainsi la vitesse maximale que peut atteindre un lapin est de 54 km/h, soit 15 m/s. La gravité terrestre est de 9,81 m/s². De tout cela je tiens compte dans mon jeu.

   Un jeu qui plaira aux petits comme aux grands, mais où les grands seront vachement avantagés pour obtenir de bons scores...

   Il va sans dire que la référence à «un jeu Nowtendo © ® TM» est une petite pique libre et open source à Nintendo...

   Bref voici le dossier ZIP comprenant le module scoremanage.py, le jeu coelho.py et toutes les ressources. Pas de sons dans ce jeu malheureusement. Et comme toujours c'est la prise du pseudonyme qui a été la partie la plus longue à coder!

Dossier ZIP du programme pygame / Python 3 version 0.b

Partager cet article
Repost0
20 décembre 2023 3 20 /12 /décembre /2023 06:25

   Ce 20 Décembre 2023, les versions conservant les tailles d'origine des images traitées, après la vidéo de présentation...

   Alors, tant qu'on y est, puisque maintenant ma page d'accueil, ma première page à la date du Dimanche 17 Décembre 2023, ne contient que de l'informatique et plus du tout de musique, autant publier quelque chose autant d'utile que d'amusant...

   Il s'agit de deux applications, utilitaires, programmes, qui bien que semblant donner des résultats identiques sont en fait totalement différents. Le premier, monochromise.py, part d'une image ou photo en couleurs quel que soit son format (en général JPEG .jpg ou PNG .png) et la rend monochrome avec une première étape en Noir & Blanc strict. Pour y arriver, je prends les valeurs RGB (Red, Green, Blue) de chaque pixel et j'en fais la moyenne entière soit quelque chose comme mono=int((R+G+B)/3) . Ensuite j'applique un filtre, l'un rouge ou pourpre (violet en fait) qui au lieu d'attribuer la valeur mono à l'ensemble des nouvelles valeurs RGB de l'image dérivée ne l'applique que au Rouge et au Bleu; puis un filtre jaune (Rouge et Vert) et un filtre bleu (Vert et Bleu).

   Ce sont bien là quatre images monochromes, la première en Blanc & Noir, les trois autres avec comme un filtre par devant la première, qui sont générées et enregistrées sous un nouveau nom de fichier.

   Voici le code-source Python sous module pygame de cette première contribution:

Fichier Python 3 .py

   Le second utilitaire, application, programme, bien que semblant donner un résultat quasi-identique est tout autre: il extrait chacune des valeurs RGB de chaque pixel de l'image et n'en retient qu'une seule, une fois la Rouge, une fois la verte, une fois la bleue, pour générer trois fichiers images n'étant que les composantes strictes R, G, ou B de l'image de départ. Il ne s'agit pas d'une mise en monochrome, mais d'une extraction RGB!

   Son code source comme le précédent:

Fichier .py (Python)

   Évidemment il s'agit de versions généralistes qu'on pourra modifier (notamment la hauteur de l'image à utiliser). J'ai choisi ici une hauteur fixe de 540 pixels. Pourquoi? D'abord car il fallait une hauteur compatible avec un écran 1280x720 (le plus petit format 16:9 le plus répandu), ensuite car une hauteur de 540 pixels est compatible tant avec une image d'origine 16:9 (960x540) que 4:3 (720x540)!

   Bref la vidéo ci-dessous pour voir le programme à l'oeuvre et comment ça fonctionne:

   Alors, voici les versions conservant les tailles d'origine des images traitées et le format RGBA (et non plus RGB seul) des pixels. Tout en affichant à l'écran toujours un objet image originalaff et cibleaff, dérivés de original et cible, de 540 pixels de haut.

   Il y a eu quelques difficultés, dont une chose que je ne m'étais pas rendu compte: puisque la manipulation des pixels a lieu depuis l'objet "original" vers l'objet "cible" (et ce dernier étant primitivement obtenu par un simple cible=original); je devais recharger l'image dans l'objet "original" avant chaque nouvelle manipulation!

   Car, sinon, pour Tmonochromise.py j'obtenais des rouges (magentas), jaunes et bleus (cyans) "sales"; et, pour Textraction.py, seul le rouge était extrait, les deux dernières couleurs donnant un rectangle strictement noir!

   Bref, voici les scripts Python pygame ici:

Partager cet article
Repost0
22 novembre 2023 3 22 /11 /novembre /2023 23:23

   Dès aujourd'hui un utilitaire de résolution d'équations du second degré, avec textes et graphiques, en toute fin d'article avec son mode d'emploi en vidéo... Erreurs corrigées ce 22/11/2023 à 23h23...

Python n'est pas que pour jouer; il peut être utile en sciences & mathématiques!

   Depuis que j'apprends à coder en Python, pourtant grâce à un cours de secondaire technique sciences-mathématiques, jamais je n'avais entendu parler de ce module que je vais présenter ici. Je l'ai découvert grâce à un site spécialisé dans la classe "prépa" ou préparation à l'entrée à l'Université / Faculté / Haute-École. Site ici: https://major-prepa.com/python/guide-ultime-programmer-toutes-suites-python/ .

   C'est un module, ou deux modules, qui permet d'afficher des graphiques de fonctions et de suites, donc probablement aussi de statistiques. Le nom de ces modules? En premier numpy qui est intégré d'office à python3, et le plus utile matplotlib qu'il faudra installer. Bon, euh, pour retenir le nom du module une petite blague: «le prof de math plote les libertines» (matplotlib)...

   Pour l'installer, et je recommande vivement l'éditeur Thonny Python, sur Thonny aller dans "Outils" puis "Gérer les Paquets" puis dans la barre de recherche entrer "matplotlib", cliquer sur "Rechercher dans PyPi" puis le choisir et l'installer.

   Pour les afficionados de Visual Studio Code, que je ne délaisse pas pour autant moi-même, dans un terminal il suffira comme pour tout module d'entrer pip install matplotlib, ne vous inquiétez pas du temps que ça prend, en effet c'est un module composé de sous-modules le tout très complexe et spécialisé.

   Après cette description, j'ajoute qu'en général programmer ("coder" on dit espèce de débutant même pas geek - ah ben si!) l'affichage d'une fonction à peine une dizaine de lignes de codes sont suffisant. À quoi ça peut être utile? Ça permet notamment de présenter des fonctions ou résultats d'analyses statistiques ou scientifiques sous forme d'images PNG dans un traitement de texte ou sur internet... Pas inutile donc!

   Et voici quelques exemples:

   D'abord la simple sinusoïde, pour démarrer:

   Obtenue par le programme:

   Ensuite une fonction du second degré type f(x)=ax²+bx+c où, pour rappel, le sommet supérieur ou inférieur s'obtient par dérivée égal zéro soit 2ax+b=0 donc x=-b/2a...

   Il me semble important ici de présenter la console complète offerte par le module:

   Elle permet en effet de zoomer et enregistrer l'image obtenue...

   Lignes de codes:

   Ensuite un grand classique de classes terminales: les asymptotes, avec ici le cas de Tan(x):

 

 

 

   Et enfin, utilité technique, des additions de sinus, présentés comme résultats seuls ou comme trois fonctions...

 

 

 

   Avec le programme qui montre que j'ai le choix des couleurs:

   Bref, grâce à ce module matplotlib, Python 3 peut s'avérer un outil indispensable pour tout scientifique et ce notamment grâce à sa facilité de programmation!

   Donc, non le langage python ne permet pas que de jouer et faire de "jolies choses"...

Code source python .py

Partager cet article
Repost0

Présentation

  • : Town Ground anc. Igor Gorovitch
  • : Créations électroniques d'un dissident du numérique bien intégré. Musique style 90's et (un peu) programmation style années 1980 (80's). Les eighties au cœur.
  • Contact

Dons

Pour contribuer et rétribuer le cyber-mendiant que je suis:

https://www.paypal.me/TownGround

Merci à ceux qui le feront.

Recherche

Pages