maimat (Mass Images Manipulation Tool) est un outil open source conçu pour le traitement d’images par lots : redimensionnement et compression. L’application est écrite en Python 3.10+ et utilise ImageMagick comme moteur de traitement.
Category: software
-
Aleka est une application de dessin multiplateforme basée sur Flutter
Aleka est une application de dessin légère et rapide écrite en Flutter. Il fonctionne partout : dans le navigateur, sur le bureau (Windows, macOS, Linux) et sur les appareils mobiles (iOS, Android).
Sous le capot se trouve du pur Dart, du Matériau 3 et une attention aux détails.
Opportunités
- Dessin à main levée : traits fluides avec interpolation quadratique de Bézier.
- Palette de 15 couleurs : sélection rapide avec indication visuelle.
- Taille du pinceau : réglable avec un curseur de 1 à 30 px.
- Annuler : reculez dans vos traits.
- Effacer le canevas : en un seul clic.
- Flood Fill : BFS avec tolérance pour les bords lisses.
- Enregistrement : au format
.aleka(JSON). - Chargement : ouvrez les dessins précédemment enregistrés et continuez.
- Exportation PNG : Capturez le canevas à une résolution x 3.
- 🎬 Mode Animation : Animation image par image avec chronologie :
- Ajout et suppression de cadres, chacun avec son propre design.
- Durée de trame de 50 ms à 5 s.
- Modifier le FPS : 6, 8, 12, 15, 24, 30 ou 60.
- Exporter au format MP4 (via ffmpeg sur ordinateur, ffmpeg.wasm dans le navigateur).
- Thème sombre et clair : Matériau 3, suit le système.
Pourquoi Flutter ?
Flutter vous permet d’écrire une application pour six plates-formes sans dupliquer le code. Aleka utilise uniquement les capacités natives des SDK Dart et Flutter et un minimum de dépendances tierces :
file_picker,imagepour travailler avec les pixels lors du remplissage,ffmpeg_wasmpour exporter la vidéo dans le navigateur.Architecture
Le projet adhère aux principes d’architecture propre et SOLIDE :
- PaintCanvasController – contrôle l’état des traits et des remplissages via le modèle Listener/Observer.
- PaintToolbar – composant d’interface utilisateur de la palette, du curseur et des boutons.
- AlekaFile – sérialisation/désérialisation en JSON, capture PNG.
- MovieController – modèle d’images et état d’animation.
- VideoExport : encapsule la logique d’encodage MP4 (ordinateur de bureau/Web).
Les fonctions d’E/S (
saveStrokes,loadStrokes,capturePng, etc.) sont rendues injectables – elles peuvent être remplacées par des simulations pendant les tests. Le projet comporte 79 tests : vérification de la sérialisation, annulation, chargement/enregistrement, exportation PNG et vidéo, modèle d’image et chronologie.Format de fichier .aleka
Le fichier
.alekaest un JSON lisible qui peut être ouvert dans n’importe quel éditeur de texte :"aleka": "1.0", "strokes": [ { "color": 4278190080, "strokeWidth": 3.0, "points": [[100.0, 200.0], [150.0, 250.0]] } ] }Chaque trait stocke une couleur (ARGB32), une épaisseur et un tableau de points. Le format est versionné par le champ
aleka.Mode animation
L’une des fonctionnalités clés est l’éditeur d’animation image par image intégré. Vous dessinez un cadre, en ajoutez un nouveau, dessinez le suivant, et ainsi de suite. La chronologie affiche des vignettes et vous permet de modifier l’ordre et la durée des images. L’animation terminée peut être exportée vers MP4.
L’algorithme d’exportation parcourt toutes les images, les capture via
RepaintBoundary, collecte les octets PNG et les transfère à l’encodeur. Sur le bureau, le système ffmpeg est appelé, dans le navigateur, ffmpeg.wasm est utilisé – un portage à part entière de ffmpeg vers WebAssembly, fonctionnant directement dans le bac à sable du navigateur.Remplissage d’inondation
L’implémentation de remplissage utilise Breadth First Search (BFS) avec une tolérance de couleur (
_kFillTolerance = 1000). Cela vous permet de gérer correctement les bords lisses des traits – le remplissage ne dépasse pas le contour, mais capture les pixels translucides sur la bordure. Pour un canevas vide, un remplissage solide est créé sans calculs inutiles.Essayez
Aleka est disponible sur le web et en application native :
demensdeum.com/software/aleka/
Le code source est ouvert sous licence MIT :
-
Mama Calendar – application de rappel multiplateforme
Mama Calendar est une application d’événements et de rappels multiplateforme écrite en React Native (Expo) avec deux implémentations backend : Node.js + MongoDB et PHP + MariaDB.
L’application vous permet de créer des événements avec catégorisation emoji, de sélectionner le type de répétition (une fois, annuellement, mensuellement, hebdomadairement, quotidiennement) et de visualiser les événements importants des 3 prochains jours dans un onglet « Événements importants » séparé.
Pile technologique
Le frontend est écrit en React Native 0.86 via Expo SDK 57 avec TypeScript, Expo Router pour la navigation et
react-native-reanimatedpour les animations. Les symboles d’exposition sont utilisés pour les icônes (symboles SF sur iOS, icônes matérielles sur Android/Web).Le backend est implémenté en deux versions :
- Node.js : Express 4, MongoDB 8 via driver natif, authentification personnalisée avec scrypt + salt, gestion manuelle des tokens. Docker Compose affiche le client (nginx), le serveur et MongoDB.
- PHP : PHP 8.2 sans frameworks, PDO + MariaDB 11, bcrypt pour le hachage de mot de passe, votre propre routeur et chargement automatique PSR-4 via Composer.
Fonctions applicatives
- Enregistrement et autorisation : système simple avec nom d’utilisateur/mot de passe et jetons du porteur
- Événements CRUD : créez, affichez, modifiez et supprimez des événements avec date, emoji et type de répétition
- Filtrage intelligent : l’onglet Événements importants affiche les événements des trois prochains jours, en tenant compte des règles de répétition. Par exemple, les événements annuels affichent l’occurrence annuelle la plus proche, mensuellement – par jour du mois, hebdomadairement – par jour de la semaine.
- Sélecteur d’emoji : 20 emoji prédéfinis pour une catégorisation rapide des événements
- Mise en surbrillance des événements d’aujourd’hui : les événements d’aujourd’hui sont mis en évidence sur un fond rouge (#B71C1C)
- Thème sombre : Détection automatique du jeu de couleurs du système avec des palettes séparées pour le thème clair et sombre
- Internationalisation : Langues russe et anglaise via React Context
- Анимации: анимированный сплэш-скрин с Keyframe API и упругой интерполяцией, анимированная иконка приложения с вращающимся свечением
- Points de terminaison d’administration : gestion des utilisateurs, des jetons et effacement de la base de données via les jetons principaux
Pourquoi deux implémentations backend ?
La version Node.js est la principale, mais la version PHP existe comme alternative à un hébergement plus classique. L’API est totalement identique, ce qui permet de basculer entre elles sans changer le code client.
Infrastructures
L’ensemble de la pile est généré via Docker Compose : le client est assemblé via une construction en plusieurs étapes (Expo export → nginx alpine), un serveur sur Node.js, MongoDB 8. Pour la version PHP, il existe un fichier de composition séparé avec MariaDB 11 et phpunit pour les tests.
L’assemblage de la version Web est automatisé par un script PowerShell qui corrige l’API_URL avant l’
expo exportet restaure les originaux après.Sortie
Mama Calendar est une application multiplateforme complète qui couvre le cycle complet : depuis l’interface mobile et Web sur React Native jusqu’à deux options côté serveur. Le projet est intéressant pour son architecture, l’utilisation des capacités modernes du SDK Expo et la mise en œuvre d’un double backend.
Liens
https://github.com/zefir1990/Mama-Calendar
https://demensdeum.com/software/mama-calendar/events -
Téflécher

Teflecher est une application de quiz multiplateforme rapide, interactive, construite sur Kotlin Multiplatform (KMP) et Compose Multiplatform. Il permet aux utilisateurs de charger intuitivement des quiz à partir de fichiers JSON locaux ou d’URL distantes, de répondre à des questions à choix multiples, d’afficher des commentaires instantanés sur les réponses correctes et de suivre leurs résultats.Internet :
https://demensdeum.com/software/teflecher/GitHub :
https://github.com/zefir1990/teflecherEgalement un éditeur de quiz au format Teflecher Editor basé sur les technologies Ionic + Capacitor
Internet :
https://demensdeum.com/software/teflecher-editor/ -
Contacts fantômes

Ghost Contacts est une application Web simple conçue pour masquer vos contacts des API système et des annuaires téléphoniques standard. Toutes les informations sont stockées exclusivement localement dans votre navigateur et ne sont pas transférées vers des serveurs externes.Principales fonctionnalités
- Masquage des API système :Vos contacts ne sont pas synchronisés avec les API de contacts système standard et le répertoire téléphonique de l’appareil.
- Mot de passe panique : Un mot de passe spécial. Une fois saisi, l’intégralité de la base de données de contacts est instantanément et irrévocablement supprimée.
- Importer et exporter : Transfert pratique de la base de données de contacts via des fichiers CSV pour créer des copies de sauvegarde.
Candidature en ligne :
https://demensdeum.com/software/ghost-contacts/ -
Raiden Video Ripper
Raiden Video Ripper est un projet open source conçu pour le montage vidéo et la conversion de format. Il est créé à l’aide de Qt 6 (Qt Creator) et vous permet d’éditer et de convertir des vidéos aux formats MP4, GIF et WebM. Vous pouvez également extraire l’audio des vidéos et le convertir au format MP3.
MicrosoftStore :
https://apps.microsoft.com/detail/9nvzjs98smgcGitHub :
https://github.com/demensdeum/RaidenVideoRipper/releases -
Radio Ouchki
Ushki-Radio est un lecteur radio multiplateforme pour la radio en ligne, conçu en mettant l’accent sur la simplicité et le plaisir d’écoute. Pas de fonctions inutiles, pas d’interfaces surchargées : il suffit de l’allumer et d’écouter.

https://demensdeum.com/software/ushki-radioLe projet utilise le navigateur radio open source, rendant disponibles des milliers de stations de radio du monde entier dans l’application. Vous pouvez les rechercher par nom, genre ou popularité, les ajouter à vos favoris et revenir rapidement à vos stations préférées.
Ushki-Radio est parfait pour le rôle de lecteur radio d’arrière-plan : il mémorise la dernière station, permet de contrôler le volume et ne nécessite pas de réglages complexes. L’interface est concise et compréhensible – tout est fait pour que rien ne détourne l’attention de la musique, des conversations et de la diffusion.
Techniquement, le projet est construit sur React Native et Expo, il fonctionne donc à la fois dans le navigateur et en tant qu’application native. Sous le capot, expo-av est utilisé pour lire l’audio et les paramètres utilisateur sont stockés localement. Plusieurs langues sont prises en charge, dont le russe et l’anglais.
Ushki-Radio est un bon exemple de ce que peut être un lecteur de radio Internet moderne : ouvert, léger, extensible et axé principalement sur l’auditeur. Le projet est distribué sous licence MIT et est parfait à la fois pour un usage personnel et comme base pour vos propres expériences avec des applications audio.
GitHub :
https://github.com/demensdeum/Ushki-RadioGoogle Play :
https://play.google.com/store/apps/details?id=com.demensdeum.ushkiradio -
Glazki TV : lecteur moderne pour la télévision sur Internet
Glazki TV est un lecteur moderne et performant pour la télévision sur Internet (IPTV), construit sur la base de React Native et Expo. Le projet se concentre sur la facilité d’utilisation et la rapidité, en fournissant une interface pratique pour visualiser les chaînes IPTV à la fois sur les appareils mobiles et dans le navigateur.
Principales fonctionnalités
- Navigation des chaînes : parcourez des milliers de chaînes, classées par catégories pour une navigation facile.
- Rechercher : trouvez rapidement les chaînes dont vous avez besoin par leur nom.
- Favoris : enregistrez vos chaînes préférées pour un accès rapide (données enregistrées localement).
- Deep Linking : partagez des liens directs vers des chaînes qui s’ouvrent automatiquement.
- Prise en charge du thème : l’interface s’adapte automatiquement au thème sombre ou clair du système.
- Support Web : Le lecteur est entièrement fonctionnel dans le navigateur avec synchronisation d’URL.
Pile technologique
Le projet s’appuie sur des outils de développement modernes :
- Framework : React Native + Expo
- Video Player: expo-video (замена устаревшему expo-av)
- Boîte à outils d’interface utilisateur : React-Native-paper
- Analyseur de playlist : iptv-playlist-parser
Version Internet :
https://demensdeum.com/software/glazki-tv/Version Google Play :
https://play.google.com/store/apps/details?id=com.demensdeum.glazkitv



