mercredi 4 mars 2020

Bash et script linux : Réalisation d'un Diaporama en fond d'écran

Bonjour à tous,

Voulant faire défiler mon fond d'écran de mon bureau, je me suis mis en quête de savoir comment était géré l' arrière-plan de celui-ci dans ubuntu.
Finalement nous avons 2 fichiers xml dans le répertoire /usr/share, qui permettent de  :
  • gérer les images : /gnome-background-properties/ubuntu-wallpapers.xml
et
  • faire défiler les images : /backgrounds/contest/trusty.xml

L'ensemble des commandes de ces fichiers est assez répétitif et donc ne permettent pas d'introduire un nombre important d'images.
Pour résoudre ce problème, j'ai réalisé ce petit programme (en bash) qui permet de créer ces 2 fichiers à partir d'un fichier texte (basique) contenant le nom des images que l'on souhaite intégrer à notre défilement.
Cette liste (ou fichier texte) est prévue pour être située dans le répertoire "/Images" de l'utilisateur. Mais rien ne l'empêche de le situer ailleurs, en prenant soin de modifier le chemin d'accès dans le fichier excutable .sh.

Donc voici le programme en bash avec l'extension .sh (attention à rendre votre fichier exécutable) : Programme_Diaporama, et la liste des images

Et le résultat (génération des fichiers) :
 

lundi 29 juillet 2019


 Bonjour à tous,

Voici quelques images d'une modélisation de l'intégration de la façade d'une alimentation de Pc (réalisée sous Solidworks). Cela me permettra de brancher des petits ciruits électronique commandées par la carte arduino, que j'ai en ma possession.









samedi 15 avril 2017

L' Arduino ou Comment apprendre l'informatique embarquée

Bonjour à tous,


Le sujet des objets connectés me trottait depuis peu dans la tete. Comprendre comment transmettre des informations à un objet pour qu'il soit autonome.
C'est dans des structures de créations et partage de savoirs et d'expériences, que j'ai découvert les concepts de l'Arduino ou l' objet connecté "open-source".







Après avoir acquéris un kit pour une dizaine d'euros, je me suis mis sur la conception d'objets connectés.
Pour ceux ne connaissant nullement les bases de la programmation, une interface arduino peut etre téléchargé en "open-source". Pour ma part, ayant déjà netbeans comme IDE, je me suis seulement contenté de configurer mon IDE pour qu'il puisse envoyé des programmes vers la carte (Port USB).

Pour le moment, je suis sur 2 concepts, pour lesquels je vous ferais part dans d'autres articles.

dimanche 9 août 2015

Port Série sous Xorg (serveur graphique Linux)

Bonjours à tous,

Enfin! j'ai réussi à configurer ma souris série avec l'adaptateur RS232/USB au sein de mon système.

Le problème était que la souris était considérée comme un périphérique série non comme un périphérique input comme la plupart des souris usb.
En effet, le systeme ne voit que l'adaptateur Série/usb et non la souris.
Or Xorg, va chercher ses périphériques dans le dossier input et non dans le dossier série, d'où le non fonctionnement de ma souris bien qu'elle soit reconnue par le système. 
Donc pour transformer une entrée série en une entrée input, il y a ce magnifique programme : inputattach, qui m'a sauvé (grand merci à l'auteur). Il permet de relier un port série à une entrée input reconnue par xorg.

Cependant, quelques améliorations sont à effectuer car j'ai créé un service qui lance la commande inputattach au démarrage, mais si le périphérique n'est pas branché, le programme tombe en failed et doit etre redémarré en manuelle. Lancer la commande inputattach au branchement hot-plug de la souris serait intéressant et l'arreter à son retrait!!! J'y travaille!!





Ma session utilisateur, libérée !!

Bonjours à tous,

Enfin, j'ai libéré ma session utilisateur de mon ordinateur en y passant 2 semaines complètes.
Un véritable bordel fut installé dans mon installation suite :
- au remplacement de upstart par systemd par mes soins (des dépendances non satisfaites).
- un pilote graphique en conflit avec les pilotes de la distribution.
- Des mises à jours de librairies non faites.
- Et un module UEFI installé.

Bon ! bref, j'ai bien galéré depuis 2 semaines, mais maintenant tout roule ou presque. Quelques effets me manque encore, et je dois tester les logiciels installés (bien qu'ils se lancent).
Finalement, tout roule!!

vendredi 31 juillet 2015

UEFI, nouvelle trouvaille de Windows

Bonjour à tous,

Suite à l'installation d'un paquet UEFI au sein de mon système d'exploitation personnalisé.
Celui-ci m'a purement et simplement supprimé mon accès à ma session (plus accès au display manager) en mode graphique : refus du pilote nvidia de s'installer.
Après 1 semaine, d'acharnement et de modifications de certains fichiers de configuration,ainsi que de l'installation d'un nouveau pilote nvidia.

Ce dernier, d'ailleurs m'a délivré un nvidia-installer.log dans lequel j'ai pu lire :
">Kernel module compilation complete
>Unable to determine if Secure boot is enabled. No such file or directory
>Kernel message :
 NVRM : your system is not currently configured to drive a VGA consol"

Une bonne piste, car malgrés les boot.log, kern.log et syslog qui m'orientaient, après recherche, sur la config du GRUB2 mais sans succès.

Donc un problème de config de BIOS devrait résoudre mon accès à ma session "Libre".

UEFI au profit du système d'exploitation Windows.
Un système pour se protèger des attaques (virus et autres) mais également pour se protéger de l'installation de systèmes libre (GNU/Linux en autres) sur les disques durs de machines sous licence Windows!

mardi 9 juin 2015

Sytemd et mode recovery

Bonjour à tous,

Ayant été confronté au systemd suite à un problème sur mon installation de mon portable. J'ai pris connaissance de la nouvelle démarche pour activer mon réseau wifi en root dans le mode recovery.
Donc voici les étapes par lesquelles je suis passé :

- Étape 1 : Activer le mode Grub et sélectionner le mode recovery
- Étape 2 : Sélectionner le mode root et taper le mot-de-passe correspondant au niveau du prompt.
A ce stade, normalement le systemd est actif mais pas les autres services (enfin c'était mon cas).
- Étape 3 : Activer la carte réseau en tapant # systemctl enable network-manager.service
- Étape 4 : Allumer l'interface réseau (switch) et Activer l'interface réseau (ici wlan0) en tapant # ifconfig wlan0 up
- Étape 5 : Activer le firewall (netfilter) en tapant # systemctl enable netfilter-persistent.service
- Étape 6 : Lister les reseaux disponible en tapant # iwlist scan
- Étape 7 : Se connecter à un réseau en tapant # iwconfig wlan0 essid nomdureseau
- Étape 8 : Activer le service avahi-daemon (communication entre services) en tapant # systemctl enable avahi-daemon.service
- Étape 9 : Activer le service dbus (communication inter-processus) en tapant # systemctl enable dbus.service
- Étape 10 : Obtenir un ip sur le réseau (avec ip dynamique automatique) choisi en tapant # dhclient wlan0

Donc voilà, j'espère que cela aidera certains dans l'utilisation des services via systemd, le nouveau système de démarrage de ubuntu initialement sous init (system V) puis upstart.

mercredi 11 février 2015

Une Amélioration des Méthodes Sérialisation/Désérialisation du Projet

Bonjour à tous,


Je reviens sur la Sérialisation&Désérialisation des données dans des fichiers (formatages Binaire,JSON et XML).
En effet, au vu des améliorations de la parties Vue/Controleur dont la récupération des données s'effectue via un objet JSON et pour conserver l'indépendance des parties MVC, j'ai transformé mon Java Bean pour qu'il accepte un Objet en paramètre constructeur en y associant une méthode get() qui me retourne cet Objet.
Ainsi, cela me permet d'etre independant des champs du formulaire de ma Vue.
L'objet envoyé à mon JavaBean est un Objet JSON transitant par le controleur.
Par conséquent, la sérialisation devra sauvegarder un Objet JSON en binaire,Json et Xml, et la désérialisation devra récupérer un Objet JSON d'un fichier binaire,Json et Xml.

Et voici, les résultats des tests de Sérialisation et de Désérialisation avec comme paramètre un Objet JSON contenant les données d'un Client.

Le fichier SérialisationTest.java
 Le Test de la Sérialisation en Binaire,Json et Xml.

Le fichier DésérialisationTest.java

Le Test de la Désérialisation en Binaire, Json et Xml.


mercredi 4 février 2015

MODELE MVC : Données JSON

Bonjour à tous,

Ayant effectuer le Mapping des données coté DataBase, je me suis ensuite attardé au Mapping des données coté Vue (requete HTTP).
D'après le choix technologique déterminé au niveau de la phase d'études, une structure JSON a été définis pour transmettre les données au controleur dans une requete HTTP.
Pour respecter l' indépendance au sein de la structure MCV (Model,View, Controler), j'ai préféré faire  le choix d'intégrer un objet JSON dans un 2nd contructeur du bean PERSONNE (indépendance des noms des champs de la vue au niveau de la servlet et du bean).

La simulation d'une requete HTTP, au sein du test Unitaire, a été réalisé par un Objet Stub (requestMock) en utilisant le framework MOCKITO pour définir un environnement Mocké. Cet Object Stub est en faite un bouchon permettant de recupérer un object JSON via les méthodes de la requet Mocké.

Alors voici les copies d'écran du test unitaire et du résultat de ce test.

ServletHTTPTest.java

Resultat du Test

samedi 24 janvier 2015

Mapping 2 : indépendance des données DataBase et JavaBeans

Bonjour à tous,

J'ai effectué une petite modification sur la Mapping des données récupérées en Base.
En effet, le Mapping en introduissant les noms des colonnes de la Base pour  créer le javaBean, lié fortement ces dernières car en changeant les colonnes de la base ou les enregirement du Bean, ceci entrainait la modification de l'ensemble de éléments intervenant.
C'est pourquoi, je me suis attaché à créer une boucle sur la longueur des colonnes de la base. Ainsi, nous nous libérons la partie du modèle des contraintes de nommage de la celle-ci, les rendant indépendante l'une de l'autre.
J'ai introduis également, une ArrayList pour récupérer les informations de la base et ainsi alimenter le javaBean.

Donc voici, la copie du test unitaire réalisé. Vous y trouverez également les copies d'écran des fichiers Mapping.java (avec la boucle sur le resultset) et Client.java (représentant le bean, avec une ArrayList en paramètre du constructeur).

Test Unitaire

Le JavaBean : Client

Le classe Mapping.java

Le Fichier Test : MappingTest.java


jeudi 22 janvier 2015

DataBase et les objets beans

Bonjour à tous,

Après avoir vérifié l'acces et les transactions avec la base  PostgreSQL, j'ai effectué la correspondance des données récupérées avec un objet java (bean), c'est ce que l'on nomme le Mapping des données.

Test Unitaire Mapping objet-relationnel

Le fichier Mapping avec le Bean java


Le fichier Test Unitaire

Le résultat du Test Unitaire

mercredi 21 janvier 2015

Sérialisation en base de données

Bonjour à tous,

Après avoir effectuer la sauvegarde de données par ouverture de flux (binaires ou caractères) dans des  fichiers, je me suis intéressé à la sauvegarde de données en base (DataBase).
En effet, javaEE propose une API qui permet de communiquer avec une base de données de type Oracle : c'est l' API JDBC (Java Data Base Connection).
De plus, l'ensemble des sites web utilisent ce procèdé pour stocker leurs différentes données (plus sûre, plus performant et multi-utilisateur).

Au départ, je voulais simplement simuler la struture de la database via une struture de type Mock ( avec l' API mockito ou mockrunner). Cependant, je n'ai pas su simuler un environement type DataBase pour effectuer la connection à une base fictive et lancer des requetes SQL.

C'est pourquoi, j'ai finalement décider de mettre en place la base PosgreSQL, celle définis pour le projet CINEPANTIN, sur mon ordinateur.




Après quelques soucis d'installations, j'ai pu enfin installer PostgreSQL et l'intégrer à netbeans pour valider mes méthodes d'accès et de création de requêtes SQL.



Dont voici les captures d'écran des tests unitaires effectués au niveau de la connection à la base, des méthodes d'accès  ainsi que les méthodes de fermeture.

Test Unitaire sur la Connection

Initialisation

Méthodes à tester

Résultat du test

Test Unitaire sur les Requêtes SQL

Méthodes à tester


Résultat du test




mardi 2 décembre 2014

Test Unitaire : Stockage de données

Bonjour à tous,

Le stockage de données est une problématique en informatique. J'ai pu le constacter, car actuellement je suis entrain de finaliser mon projet de formation DNT.
En restant fidèle à ma présentation, j'ai développé une interface qui me permet de gérer plusieurs support de sauvegarde. Et notamment, la sauvegarde d'objets java dans des fichiers et base de données (initialement PostGreSQL mais pourrait évoluer vers une base de type Oracle).

Après une semaine et quelques tests unitaires, j'ai enfin finalisé mes méthodes de création, de sauvegarde, de suppression et de mise à jour d'objets java, dans des fichiers. J'ai essayé d'etre le plus générale possible, et d'avoir plusieurs format de sauvegarde (Binaire, Json, et XML).
Le Choix du XML à la place d'un format properties initialement choisis, a été fait au vu des problèmatiques de sauvegarde dans une structure properties d'objets java. Le format XML est plus simple et plus adapté à la sauvegarde d'objets java.

Donc voici les codes java, de l'interface AccessData.java et de la classe AccessFile implémentant l'interface ainsi que les fichiers tests SerialisationTest.java, DésarialisationTest.java, AccessTest.java, et des fichiers Serialisation.java et Deserialisation.java.

Test Unitaire pour les méthodes AccessFile.java

Test Unitaire pour les méthodes Sérialisation.java

Test Unitaire pour les méthodes Déserialisation.java





vendredi 31 octobre 2014

Mac OsX sur keynux 15"pouces

Bonjour à tous,

Après quelques déboires, je vous mets enfin une image du système d'exploitation que j'ai installé et configuré sur mon pc portable Keynux.
Ce système est un système avec un noyau Linux associé à une structure Debian.
J'ai pris un gestionnaire de bureau demandant peu de ressource (xfce4) associée au gestionnaire de fenetre "Compiz" pour les effets.
J'ai installé l'essentiel de la bureautique (OpenOffice, Scribus) et d'internet (FireFox). Mais aussi des applications demandant beaucoups plus de ressources comme l'IDE Netbeans, une station MAO (Qtractor avec le gestionnaire de son QJackClt), et des modeleurs 3D comme Blender (design) et FreeCAD (méca).

jeudi 14 août 2014

Programmation sous JavaEE


Bonjour à tous,

Après avoir réparer enfin, la carte graphique de mon portable (voire mes précédent posts) via une boutique à Montgallet qui m'a changé le chipset de celle-ci (pour quelques euros). Je me permets d'écrire ce post sur ma machine reconfigurer avec un nouveau systeme linux plus léger : Xubuntu, ainsi qu'une capacité physique passant de 120 à 320 Go pour presque rien (vive les bonnes affaires) et un investissement sur la ram avec 5 Go au lieu d'un 1Go d'origine. Tout ça pour faire tourner des logiciels de programmation comme Netbeans ainsi que des seveurs d'applications type Glassfish utilisés durant ma formation que j'ai récemment effectuée.














Je pense également y intégrer une machine virtuelle pour effectuer des testes sans compromettre mon environnement d'origine.

A part cela je vous avez promis de vous mettre les 2 projets que nous avons réalisés durant cette formation de 8 mois.

Voici en premier lieu ma présentation que j'effectuerai auprès du jury. Vous y trouverez l'essentielle du projet sans pour autant rentrer dans les détailles. en effet, j'ai construis cette présentation pour l'exposer à de futurs investisseurs ou des clients potentiels. De plus, vous aurez les images mais pas le discours correspondant pour chaque diapos mais cela restera compréhensible dans l'ensemble.

Alors voici, la présentation : CINÉPANTIN2013

Bonne lecteur

samedi 22 février 2014

Bonjour à tous,

Passant actuellement une formation en Développeur Java, j'aurai quelques modifications à apporter sur le système Androïde.
Le système java est un système multi-plaforme, en effet il embarque son propre interpréteur de commande pour ensuite le compiler en langage machine qui est le même quelque soit le système d'exploitation (codage binaire).
Durant cette formation que j'effectue actuellement, des projets ont et vont être réalisés, comme la réalisation simpliste d'un site Ecommerce ou bien la réalisation simpliste d'une DVDthèque que je pense présenter sur ce blog (code fonctionnement et analyse ainsi que les screenshots (copies d'écrans)).

Alors je vous dis, A bientôt pour un nouveau post!


dimanche 20 janvier 2013

Le système ANDROÏD

Bonjour,

Androïd : un système que l'on trouve maintenant sur la plupart des appareils mobiles qu'ils soient tablettes ou smartphones.
Mais qu'est-ce Androïd?
Androïd est un nouveau système d'exploitation comme Linux, iOS ou windows mais spécifique aux appareils mobiles.
En général, quand vous parlez d'Androïd vous parlez également de Google. En effet, Google a racheté la startup qui a développé ce système.
Que signifie Androïd ? Et bien, un robot à l'image de l'homme.

La particularité de ce système est qu'il est développé en Open Source comme les systèmes Unix et Linux.

Tiens, tiens, est-ce que le système Androïd ne serait-il pas un cousin des systèmes Unix ou Linux?
Même mieux, c'est le petit frère des systèmes Unix et Linux spécialement développé pour les appareils mobiles.

Nous y voilà!.
- En tant que système Linux, le système Androïd peut lire les partitions de format ext3, ext4 et de format fat32 et ntfs.
- Il possède un compte root permettant de modifier ou développer des applications directement sur l'appareil mobile (plus besoin de gros ordinateur).
- il a besoin d'une partition ext4 (de 500Mo) pour installer la partie boot et système (pour la version  d'Androïd 4.0.4). Pour l'installation sur Ram NAND pas besoin.


Il faut dire que depuis que les appareils mobiles ressemblent plus à des micro ordinateurs, la communauté du libre s'y est intéressée en essayant d' adpater leurs systèmes préférés comme UBUNTU.

La mascotte Androïd : BugDroïd
( personnage d'un jeu des années 1990 sur Atari : Gauntlet "The Third Encounter".)


mercredi 18 janvier 2012

Amélioration du script ci-dessous

Bonjour,

Je viens apporter une amélioration du script de Nettoyage ci-dessous.
En effet, l'application purgecorbeille est lancée mais nous avons aucune information sur son statut lors de la sortie du script Nettoyage.
Par conséquent, l'ajout de la fonction suivante sera nécessaire pour avoir l'information du statut de purgecorbeille (à mettre après l'appel de la fonction purgecorbeille.py):


purgecorbeille = $?             
# valeur de retour du fichier purgecorbeille ( 0 : sans erreur; 1: erreur)

While $purgecorbeille != 0   #Condition, valeur non égale à 0 rester dans la boucle
do 
if  $purgecorbeille = 1 then echo 'Erreur sur fichier purgecorbeille' goto Sortie
# Sortir de la boucle
Else
sleep 10s
# Tant que la condition n'est pas vrai attente de 10s et retour sur Condition
done

Sortie


Voilà je pense qu'avec cette condition, nous avons le retour du statut de la fonction purgecorbeille, qui ne sera plus exécutée à la sortie du script Nettoyage.

mardi 17 janvier 2012

Un script de Nettoyage

Bonjour,

Voici mon premier script en shell (assez simple). Il s'agit d'un script permettant le nettoyage du système linux, qui est installé sur mon pc portable.
Il existe sur le net, beaucoup de script de nettoyage (plus ou moins complexe) qui m'ont inspiré pour écrire celui-ci. Ce script permet de supprimer les fichiers suivant :
#    Fichiers temporaires : /tmp
#    Fichiers journaux : /var/log
#    Fichiers d'édition vi : /var/preserve
#    Fichiers en attente d'impression : /var/spool/lpd
#    Fichiers messagerie : /var/spool/mail
#                                   /var/spool/smail   
#    Fichiers cache : Copie Paquetages installés&désintallés
#    Fichiers makefile : Fichiers lors d'installation paquetages
#    Fichiers .~ : Ce sont les fichiers cachés. Ils servent de sauvegarde au cas où le fichier source  
#              [texte, html, php, conf, … ) serait supprimé ou modifié accidentellement.
#              NE PAS utiliser la commande SUDO, je vous déconseille fortement de supprimer   
#              les fichiers de configuration se trouvant dans les autres répertoires   
#              de la racine (autre que /home/)
# Et les corbeilles des /home grâce au script purgecorbeille.py de Jeanmm


Bon, je ne l'ai pas encore testé! Mais normalement,
Il suffit de l'intégrer dans les processus d'extinction du système pour qu'il soit exécuté lors de l'arrêt de la machine, c'est à dire dans le /etc/rc.d (les runlevel linux).
---------------------------------------------------
#!/bin/sh
#---------------------------------
#Script de Nettoyage de fichiers |
#---------------------------------
#
#Variables d'Affichage
#------------------------
$Afflichage1='Début Nettoyage fichiers temporaires'
$Affichage2='Excecution de purgecorbeille'
$Affichage3='Fin Nettoyage'
#--------------------------
echo=$Affichage1

cd /                # Se place sur le répertoire racine

rm -rf /tmp/*            #Efface les fichiers du répertoire /tmp                 
rm -rf /var/log/*        #  "          "           "       /log
rm -rf /var/tmp/*        #  "          "           "       /var/tmp
rm -rf /var/preserve/*            #  "          "           "       /preserve  
rm -rf /var/spool/lpd/*            #  "          "           "       /lpd
rm -rf /var/spool/mail/*        #  "          "           "       /mail
rm -rf /var/spool/smail/*       #  "          "           "       /smail

make clean
#Nettoyage des makefiles créés lors d'installation de paquetages

find /home -name '*.~' -print0 | xargs -0 rm
# Cherche les fichiers avec l'extention '~', dans le répertoire /Home.
# Les Placer dans une sortie standart, pour les supprimer.
                           
/usr/sbin/tmpwatch -u --all 30 /var/cache/apt/archives/*.deb  
#Nettoyage, tous les 30 jours, des paquetages téléchargés.
#Equivalent à
#apt-get clean : Nettoyage du fichier cache (efface tous les packages en cache) (copies de paquets installés)   #apt-get autoclean : supprimer les copies des paquets désinstallés   

echo=$Affichage2
python /usr/local/bin/purgecorbeille.py       
#Executer le fichier purge corbeille qui se trouve dans
#/usr/local/bin

echo=$Affichage3
exit 0
#---------------------------------
#Sortie du script (code retour=0)|
#---------------------------------

mardi 3 janvier 2012

Récupérer une carte graphique Nvidia

Bonjour,

Après avoir eu un problème d'affichage sur mon pc portable (écran noir), j'ai pu découvrir en me renseignant sur le net que ma carte graphique de type Nvidia (réf. : 8600M GT) avait un défaut de conception.
Pensant devoir changer ma carte (d'après mon vendeur), j'ai effectué des recherches pour pouvoir la sauver.
Et miracle, j'en ai trouvé une!. Faire chauffer la carte au four!!.
En effet, après avoir pu la démonter de mon pc portable et la nettoyer,
je l'ai mise au four :
- Température du four 160°C.
- Temps de cuisson 3 à 4 mn chaque face.
- Retirer la carte et la laisser refroidir une bonne 1/2 h.

Replacer la carte dans le pc portable, en n'oubliant pas de remettre un peu de pâte thermique dessus. Remonter le pc portable.
Et que la lumière soit!.
Mon écran affiché le setup du bios et le résultat du POST.
Cependant, nous pouvons nous demander pour combien de temps!
Et que les puces citées sont bien défaillantes et devront être changées.
En effet, au bout de quelques mois l'écran noir est revenu. Et ma demande de remplacement auprès du revendeur "KEYNUX" (pour ne pas le nommer) n'a pas été acceptée par ce-dernier, aux vues de la garantie de 2 ans expirée (durant laquelle un remplacement Carte Graphique/Carte Mère a été effectuée) et de la durée de 3 ans.
Affaire à suivre!