Tag Archives: FOSS

Art du Pixel 64×64×16 couleurs (Sweetie16) PixelArt avec Pixelorama « β-karoten – Nous savons qui sera mangé »

→ English version here

β-karoten - Nous savons qui sera mangé

J’ai participé à la demoparty LoveByte Battleground qui s’est déroulé ce week-end, en postant la semaine dernière un dessin en pixel art. Malheureusement mais amusent, il y a eu quelques petites erreurs :
* J’ai fait une image de 64×64 pixels au lieu de 128×128 pixels. Une palette de 16 couleurs était imposée, Sweetie16 (la palette par défaut sur le console fantaisie TIC-80 (Code source, FOSS).
* Ma seconde erreur est d’avoir téléchargé une première version de mon image, ainsi que la mise à jour quelques heures après avec la version finale via le navigateur web NetSurf (code source, FOSS), sur Debian, sur l’émulateur RISC-V (Specifications, FOSH, il existes différentes implémentations libres ou non) de Qemu (FOSS, Code source, instance Git). Peut être parce que mon installation de NetSurf ne supporte pas le JavaScript^^. J’ai également participé à un livecoding (256 octets de code maximum en 25 minutes). Le résultat. La vidéo commentée de l’enregistrement de programmation en live.

Ce dessin est est fait avec Pixelorama (FOSS (Code source), lui même fait sur le moteur de jeu Godot (FOSS? code sourcce). J’utilise le système d’exploitation libre Arch Linux. J’ai également fait un paquet ArchLinux AUR pixelorama-git d’après le paquet pixelorama (Je voulais utiliser la version v0.9rc, seul la 0.8 était disponible). Il y a des paquets pixelorama (dernière stable, compilant depuis les sources), et pixelorama-bin (depuis les binaires des développeurs). Pixelorama est un éditeur d’image et animation en Pixel art. Je crois que je l’ai découvert grâce au blog Librearts.org.

Le nom est « β-karoten – « Nous savons qui sera mangé »

Capture d'écran de Pixelorama
Capture d’écran de Pixelorama

Lua, TIC-80, LÖVE, etc : Introduction aux systèmes de particles et jeux

English version here
Code par défaut de TIC-80 au lancement

Un langage intéressant pour déveloper des jeux, contenus interactifs et de l’art procédural est le langage de script Lua. C’est un langage fonctionnel simple avec quelques fonctionnalités limitées de langage orienté objet. C’est, en raison de sa simplicité et de la compilation en bytecode au démarrage par défaut, un des plus légers et rapides langages de scripts. Différentes intégrations comme le moteur de jeu/médias et (très puissante) API LÖVE, ainsi que TIC-80, qui est un ordinateur imaginaire virtuel inspiré par PICO-8 (qui utilise également Lua). Ils permettent des prototypages rapides, pour un produit fini dans le même langage ou bien porté plus tard dans l’avancement du projet dans un autre langage. Lua est également utilisé comme langage de systèmes de plug-in (greffons), dans de nombreux jeux, outils, dont des applications de bureau (comme Blender), des applications web (comme MediaWiki derrière Wikimedia), ou dans le mondede l’embarqué. Dans ce dernier domaine, les cartes de contrôle de drones populaires et open-source (logiciels libres à source ouvertes) BetaFlight ou le logiciel de commande-radio Open-TX notamment pour les commandes Taranis. Il y a une documentation en ligne complète de Lua (en anglais) sur le site web officiel. Il est possible d’inclure des fonctions ou bibliothèques en C dans les programmes en Lua programs avec libffi. Elle a été (je crois) crée à l’origine pour Python, avec CFFI, et il a également un support FFI for PHP à présent. Il est également possible d’intégrer des scripts Lua dans des programmes en C. J’ai également découvert en écrivant cet article (merci à l’auteur de TIC-80, qu’il existe également PicoC, un simple interpréteur du langage C, permettant donc un contrôle plus bas niveau/din des structures de données. La taille du binaire est similaire à celle de l’interpréteur de Lua.

Une demo interactive du fonctionnement et utilisation s fonctions trigonométriquesDonc, après plusieurs années à regarder de temps en temps ce langage et ces outils, J’ai commencé à jouer un peu plus avec, vers la fin de 2020, et en quelques mois, je peux dire que j’ai bien progressé dans la programmation temps-réel. Que j’ai réussi à faire et même finir des jeux légers. J’ai donc du étudier de nouveau la trigonométrie de base (suivez ce lien pour explication interactive simple), de l’algèbre vectoriel de base and et quelques autres éléments amusants des mathémtiques, que je considère personnellement comme des jeux de puzzles.

Banner of Falacy Gorx, pseudo 3d game, using lot of tables
J’ai également écrit (en anglais) une court article de making-off sur Itch.io en mars, 2021, pendant une compétition de bœuf de jeu (game jam, dans le même sens que les bœufs musicaux), au lieu de coder (malgré le temps limité à 2 semaines ^^). Tout cela m’a motivé à écrire d’avantage d’articles didactiques à propos de la programmation temps-réel/vectorielle et génération procédurale. Je vais tenter d’écrire une série une série d’articles expliquant les méthodes que j’ai utilisé. Je vais tenter de le faire avec autant de simplicité pour tout le monde, mais quelques connaissances de base en programmation générale et en mathématiques pourront beaucoup aider dans ce champs du développement, comme dans la vie en général.

Je commence donc ici une courte introduction avec ce que j’ai utilisé le plus dans ces développements. Des tables d’éléments et du hazard:,z
* Les tables et leur gestion de base commune, relative à une logique d’animation
* Créer une table
* Génération procédurale du contenu d’une table
* Exemple simple pour nettoyer une table
* Variation et nettoyage d’une table en fonction de tests
* Compacter un peu le code
* Génération procédurale du contenu de la table
* Exemple simple de système de particule graphique

Continue reading

Android without Google and GNU/Linux with APK

Content

* GNU/Linux on your phone now
* GNU/Linux with Android APK compatibility layer
* Managing APK of a device
** Listing APK installed on the device
** Dumping an APK installed on the device
** Installing an APK onto the device from the computer
** Removing closed source spywares from your current Android system as a transition phase

Android will move from Linux kernel and open specs APK format to a more closed package format and to their closed source Fuschia kernel going away from Free Open Source software (FOSS) that make Google, Android, ChromeOS grow, but also that are used on most of the internet servers, on most of supercomputer in the world, on most spacecrafts, on most internet boxes, TVboxes, etc…

GNU/Linux on your phone now

At the same time GNU/Linux distributions for mobile grow a lot the 2 recent years, thanks to availability of PinePhone for developers for about 2 years. There are now at least 15 Linux distributions for phone and applications maturated a lot, including since few month MegaPixels hardware accelerted camera application, that use GL and other processor to accelerate rendering/computing of what camera receive.

PostMarketOS is a GNU/Linux distribution available for a bunch of available market phones, but not everything is managed an all devices.

GNU/Linux with Android APK compatibility layer

Just like there is Wine to run Windows application on GNU/Linux, there are also several systems allowing to run Android APK on your phone if needed. Jusr as Wine, beside the possibility of running Android in a qemu VM, you can also run these application inside your the standard GNU system.

AnBox allow to run APK/Android application inside a snap packaged container.

Google goes away from FOSS, afraid by the lost of market share, and they probably loose a lot from this, as Microsoft does by the past. Chinese company, thanks to Trump restrictions, embrace more FOSS.

Huawei the maker of the probably highest quality phones, that was going in first seller position just ahead Samsung, when Trump blocked it, already very active in Linux kernel and community for years, made HarmonyOS for their devices, a system, that continue tu uses Linux kernel for their power devices, and LiteOS for their low end/old devices. LiteOS is a FOSS embedded devices oriented light kernel. They keep the EMUI User Interface they used previously on Android, moving step by step away from it, and at the same time keep a compatibility layer with current APK open-source format.

Another Chinese company, JingOS, made high quality tablets, based on GNU/Linux distribution, that derivates from Ubuntu, with KDE tools and Android APK application compatibility using Anbox. And they are active with KDE and open source communities. Few demos here and here.

Managing APK of a device

For managing package of an Android device from a computer you need adb. This command is available on android-tools package on Arch Linux.

Listing APK installed on the device

List packages:

adb shell pm list packages

See which one are related to facebook:

adb shell pm list packages facebook

Dumping an APK installed on the device

You need first to find the path of the APK with the commande adb shell pm path :

adb shell pm path com.sec.android.app.myfiles
package:/system/app/SecTabletMyFiles.apk

Then you can use this path (remove the initial package:) to backup it on your file system with the adb pull command:

adb pull /system/app/SecTabletMyFiles.apk

Installing an APK onto the device from the computer

Simply type the command install with the path of the APK on y »zour disk:

adb install f-droid.apk

Removing closed source spywares from your current Android system as a transition phase

Beside long time F-droid Free software apk app repository (I use it for year as main source of APK).

You can remove Android pre-installed (memory+cpu+bandwidth thieves) applications, including NSA compliant one like Google, Amazon, FaceBook, Microsoft ones using from a computer with adb. This allowed me to have less bloated phone and to gain few more days of on-battery usage.

For easier copy paste and have only the package name without package: prefix

adb shell pm list packages | cut -d: -f 2

The corresponding application, can be checked by using in a web browser, this does not work for some system applications, for example, for com.google.android.videos:

https://play.google.com/store/apps/details?id=com.google.android.videos

Remove never at least first seen, never used application:

# FaceBook spyware

adb shell pm uninstall --user 0 com.facebook.katana
adb shell pm uninstall --user 0 com.facebook.system
adb shell pm uninstall --user 0 com.facebook.appmanager

# Microsoft stuff
adb shell pm uninstall --user 0 com.microsoft.office.excel
adb shell pm uninstall --user 0 com.microsoft.office.onenote
adb shell pm uninstall --user 0 com.microsoft.office.powerpoint
adb shell pm uninstall --user 0 com.microsoft.office.word
adb shell pm uninstall --user 0 com.microsoft.skydrive # data thief

adb shell pm uninstall --user 0 com.google.android.apps.docs # Google Drive (data thief)
adb shell pm uninstall --user 0 com.google.android.apps.photos # Google photos (data thief)
adb shell pm uninstall --user 0 com.google.android.googlequicksearchbox # Google Search box (behavior thief)
adb shell pm uninstall --user 0 com.google.android.apps.maps # Gaogle Maps (location/move/destination search thief)
adb shell pm uninstall --user 0 com.google.android.gm # GMail
adb shell pm uninstall --user 0 com.google.android.talk # Hangouts
adb shell pm uninstall --user 0 com.google.android.music # Google Play Music
adb shell pm uninstall --user 0 com.google.android.videos # Google Play Film & Series
adb shell pm uninstall --user 0 com.google.android.youtube # Youtube application

To be checked

adb shell pm uninstall --user 0 com.google.android.gms # Services Google Play