Archive of articles classified as' "Le Blog"

Back home

Mise en place d’un espace de formation virtuel basé sur OpenSim

27/03/2024

Je viens de monter un Monde virtuel de simulation et formations en ligne.
Projet basé sur OpenSimulator fonctionnant dans un container Docker en mode R.O.B.U.S.T.

No Comments

Une WebApp pour gérer une liste de courses basée sur Sinatra

5/05/2018

Un projet perso pour la gestion d’une liste de courses au format WebApp.

-> L’objectif était d’avoir une application mobile de gestion des courses adaptée à mon environnement

Du Ruby ! sans Rails, avec Sinatra

Tous mes outils perso sont en Ruby, j’affectionne ce language élégant et souple.

La solution par défaut avec Ruby est Rails, le Framework Web. J’utilise Rails pour des projets lourds et compliqués. Dans le cas de cette petite appli perso, j’avais besoin d’un système plus léger : Sinatra !

Sinatra est un Langage dédié qui permet de faire tourner une appli Web basée sur du Ruby.

 

Un petit contrôleur, une grosse couche de JS

Le projet est basé sur la version 2.4.0 de Ruby.

Le contrôleur écrit en Ruby est ridicule, il me permet juste d’interroger une base de données et d’alimenter une vue.

La base de données (MySQL) contient une liste d’articles classés en catégories.

Le stockage local de la liste ainsi composée à partir d’une selection d’articles est au format Web SQL.

 

La couche Javascript basée sur jQuery est assez lourde car c’est elle qui s’occupe des mouvements des enregistrements dans la base locale du navigateur.

db.transaction(function (tx) {
tx.executeSql(‘INSERT INTO bdd (article_id, article, description, categorie_id) VALUES (?,?,?,?)’, [id,product,description,category]);
});

La couche CSS est écrite en Sass et pilote les swipe d’écran.

Les images…

   

Quelques pièges quand même…

La version du gem pour l’accès à la base de données MySQL du serveur doit être spécifiée dans le gemfile pour que cela fonctionne. (Un bug de ruby 2.4.0 avec la dernière version du gem mysql2…

gem ‘mysql2’, ‘~> 0.3.18’

 

Pour obtenir une navigation fluide entre les écrans, j’ai du ‘tricher’ en repositionnant les écrans vers la gauche pour les masquer du body et ainsi éviter que le scroll ne les affiches.

@keyframes move-d {
0% { transform: translateX(0); }
99% { transform: translateX(100%); animation-duration: 500ms; }
100% { transform: translateX(-100%); animation-duration: 0s; }
}

No Comments

Git : Utiliser le Deamon Git pour gérer un dépôt distant

2/02/2018

Travail collaboratif ou simple système de sauvegarde, j’utilise Git pour le suivi de mes projets.

-> L’astuce consiste à mettre en oeuvre un dépôt distant en plus du local créé par Git.

1. Création d’un dossier pour le projet

Sur le serveur, dans un dossier prévu au stockage des projets
« chemin » -> chemin relatif ou absolu vers le dossier principal,
« projet » -> comme nom du projet.
« serveur » -> pour identifier le serveur (ip ou nom)

mkdir /chemin/projet

chmod -R 777 /chemin/projet

cd /chemin/projet

git –bare init –shared=true

(bare pour la création d’un archive, shared pour autoriser le partage)

touch /chemin/projet/.git/git-daemon-export-ok

(Le projet doit contenir le fichier git-daemon-export-ok pour autoriser l’export distant)

 

2. Lancer le daemon pour la gestion distante

git daemon –reuseaddr –base-path=/chemin –export-all –enable=receive-pack

(–enable=receive-pack pour autoriser l’écriture)

 

-> On obtient alors l’url suivante l’accès au projet : git://serveur/projet

3. Sur le client

git init

git add ./

git status

git commit -m « Message »

(Cette première étape ne change pas, c’est un commit local normal)

git remote add « Nom identifiant le dépôt distant » git://serveur/projet

(On ajoute un dépôt distant)

git push « Nom identifiant le dépôt distant » master

(On pousse les changement sur le serveur)

 

En cadeau : mon script bash qui permet la création des projets et qui pilote le serveur :

#!/bin/bash

create(){

if [ -z "$REP" ]
 then
 printf "[Création du dépôt] Nom du dépôt : "
 read REP
 fi
 
 mkdir $FOLDER/$REP
 chmod -R 777 $FOLDER/$REP
 cd $FOLDER/$REP
 
 git --bare init --shared=true
 
 touch $FOLDER/$REP/.git/git-daemon-export-ok


}

start(){

git daemon --reuseaddr --base-path=$FOLDER --export-all --enable=receive-pack &
 echo $! > /tmp/git.pid
}



stop(){
 
 PID=$(cat /tmp/git.pid)
 kill -15 $PID 2> /dev/null
 rm /tmp/git.pid 2> /dev/null
}



# DEMARRAGE
#---------------------------------------

REP=$2
FOLDER="/chemin_archives/Git"

case $1 in
 'start')
 start 2> /dev/null;;
 'stop')
 stop 2> /dev/null;;
 'create')
 create 2> /dev/null;; 
 *)
 echo "usage $0 start|stop" ;;
esac
No Comments