Rasberry pi : Pense-bête opération sur carte SD

Rédigé par marmous Aucun commentaire
Classé dans : Informatique, DIY Mots clés : raspi, raspberry pi, carte sd, backup, correction
Lorsque qu'il arrive un problème sur une carte SD d'un Raspberry Pi, je recherche toujours les mêmes commandes.

Backup d'une carte
sudo dd if=/dev/DISK of=/home/YOURUSER/backup.img

Restauration d'un backup
sudo dd if=/home/YOURUSER/backup.img of=/dev/DISK

Vérification et correction des erreurs sur une carte
umount /dev/sdh0
fsck -v /dev/sdh0

Experimentum Omnitopia : L'immersion

Rédigé par marmous Aucun commentaire
Depuis quelques mois, je travaille à la création d'un jeu de rôle nommé Experimentum Omnitopia (pour l'instant).
Ce jeu se propose de mettre le joueur en position de réfléchir sur des problématiques de société au travers du personnage joué.
Pour que le joueur puisse avoir cette réflexion au travers de son personnage, il est nécessaire que le jeu fasse la part belle à l'immersion.
J'ai alors amené mes réflexions sur cette fameuse immersion. Comment l'introduire ? la préserver ?

Dans ce premier article je vais tenter de définir l'immersion.

Définition générale
La définition de l'immersion de Wikipédia est la suivante :
"L'immersion ou état immersif est un état psychologique où le sujet cesse de se rendre compte de son propre état physique. Il est fréquemment accompagné d'une intense concentration, d'une notion perturbée du temps et de la réalité."

L'état immersif de cette définition n'est pas correct. En réalité cette définition défini l'état maximal d'immersion qu'est le flow (http://www.wikiwand.com/fr/Flow_%28psychologie%29 )

Le flow est difficilement atteignable en jeu de rôle comme on pourrait l'atteindre en lisant un roman ou devant un film. L'immersion dans le jeu de rôle est à un degré différent. Le flow n'est pas impossible mais très difficile d'accès et ce pour une raison simple le jeu de rôle est une activité sociale (à plusieurs donc), le flow est un état psychologique propre à chaque individu qui se ressent et se pratique seul. Prenons l'exemple d'une salle de cinéma, il suffit que quelqu'un tousse, ouvre un paquet de chips, mange bruyamment, parle, etc ... pour rompre notre immersion. En jeu de rôle ce genre de chose arrive constamment sauf s'il est précisé dans les règles de ne pas le faire. Ce genre de règles existe souvent pour ne pas rompre l'immersion et pouvoir tendre vers le flow.

Plus généralement l'immersion telle que je l'entend est un état d'attention sur les éléments fictionnels de la partie. Il est possible de l'étendre au meta-jeu.
Généralement, le méta-jeu désigne tous les paramètres extérieurs au système du jeu, qui sont susceptibles d’être pris en compte par les joueurs dans leurs décisions de jeu. Cela englobe donc tout ce qui concerne la partie mais n'est pas fictionnel.

Attention versus Concentration
J'ai longtemps hésité entre un état d'attention ou de concentration, ces deux notions étant assez proche. Je me suis alors documenté sur la différence entre attention et concentration en science cognitive.
On peux définir l'attention par un acte volontaire, une mobilisation de l'activité cérébrale en vue de porter en soi ce que l'on perçoit par nos canaux sensoriels ou de poursuivre consciemment une suite de pensées. C’est une fonction cérébrale, une première étape qui favorise la réception des informations extérieures et intérieures. Elle permet de les traiter, de les organiser et de les enregistrer. L’attention ouvre une grande fenêtre à vos cinq sens, afin de capter toutes les informations de notre entourage. Mais elle permet aussi, comme un amplificateur, de percevoir ce qui se passe en nous (sentiments, émotions, état physiologique…).
La définition la plus connue de l'attention est donnée par William James, considéré comme le père de la psychologie américaine :
« L’attention est la prise de possession par l’esprit, sous une forme claire et vive, d’un objet ou d’une suite de pensées parmi plusieurs qui semblent possibles […] Elle implique le retrait de certains objets afin de traiter plus efficacement les autres. »

La concentration désigne la capacité à centrer et mobiliser ses facultés mentales et physiques sur un sujet et une action. Elle est le fait de focaliser son attention vers un objectif précis. Elle implique une notion de durée et peut, de ce fait, être assimilée avec la notion d'attention soutenue. Elle sert de bouclier à l’attention envers tous les parasites pouvant la distraire.

J'ai choisi de parler d'attention au lieu de concentration car l'attention me permet de parler de ces deux notions complémentaires. La concentration était trop restrictif au sens de l'immersion.

Les degrés d'immersion
Il existe plusieurs degrés d'immersion en lien direct avec les degrés d'attention allant de l'indifférence au flow. Pour que le joueur reçoive le message que j'envoie dans mon jeu il est nécessaire que son degré de concentration soit au plus proche du flow.
L'attention demande beaucoup d'énergie et il y aura toujours un moment où un joueur va décrocher. C'est tout à fait normal : on ne peux pas rester attentif pendant plusieurs heures et les parties de jeu de rôle sont généralement très longue. Je reviendrai sur la durée de la concentration et son rôle sur l'immersion dans un prochain billet.

Les types d'immersion
Au même titre qu'il existe différents degrés d'immersion, il existe différents types d'immersion :

Immersion stratégique (ou cognitive)
L’immersion stratégique est principalement cérébrale, et est associée au challenge mental. Les joueurs d’échecs expérimentent l’immersion stratégique quand ils choisissent une solution correcte parmi une large palette de possibilités. Ce type d'immersion est plus fort dans les jeux de rôle à tendance ludique.

Immersion narrative
L’immersion narrative est expérimentée par un joueur quand il s’investit dans une histoire. C'est similaire à ce qui est expérimenté quand on lit un livre ou qu’on regarde un film. Ce type d'immersion est plus fort dans les jeux de rôle où la fiction est à l'honneur.

Immersion identifiante
L'immersion identifiante est expérimentée par un joueur lorsqu'il tente de deviner ce que son personnage penserait et ferait face aux éléments fictionnels présentés. Elle atteint son paroxysme lorsqu’il arrive à ressentir des sentiments à travers son personnage.

Immersion tactile
L’immersion tactile est expérimentée quand on effectue des opérations tactiles demandant une certaine compétence. Les joueurs ressentent le jeu et effectuent des actions qui se terminent en succès. Je vais tenter d'introduire cette notion dans Experimentum Omnitopia.

D'autres types d'immersion existent mais elles ne sont pas véritablement applicables au jeu de rôle mais plus en relation avec la réalité virtuelle.
En vrac on a
 - l'immersion spatiale relatif au réalisme d'un monde virtuel,
 - l'immersion psychologique quand le joueur ne fait plus la différence avec la vie réelle (le jeu de rôle selon Mireille Dumas)
 - l'immersion sensorielle lorsque le joueur expérimente une unité de temps et d’espace au fur et à mesure qu’il fusionne avec le média, ce qui affecte ses impressions et sa conscience de soi.

Webographie
http://web2.uqat.ca/profu/textes/strat_app/05concentration.htm
http://www.memoirefacile.com/2-fonctions-cles-pour-votre-cerveau/
http://ia89.ac-dijon.fr/docs/refondation/pmqc_memoire_concentration_attention.pdf
http://www.crdp-montpellier.fr/ressources/memoires/memoires/2000/b/0/00b0113/00B0113_1.HTM
http://www.electro-gn.com/276-lemeta-jeuengn
http://www.electro-gn.com/307-immersionnisme1erepartie-lenfantbatarddestheoriesrolistes
http://www.electro-gn.com/266-dugnimmersif
http://www.wikiwand.com/fr/Attention
http://www.wikiwand.com/fr/Immersion_%28r%C3%A9alit%C3%A9_virtuelle%29

Dernière mise à jour le 30 août 2015

VirtualBox : Comment augmenter la taille d'un disque dur virtuel (Windows)

Rédigé par marmous Aucun commentaire
Classé dans : Informatique Mots clés : aucun
Voici la méthode que j'ai utilisé pour agrandir mon disque (une seule partition) pour une machine virtuelle sous Windows :

0x01 - Création d'un nouveau disque

vboxmanage createhd --filename NouveauDisque.vdi --size 50000
A noter que la taille est en Mo

0x02 - Arrêt de la machine virtuelle


0x03 - Clone de l'ancien disque sur le nouveau

vboxmanage clonehd AncienDisque.vdi NouveauDisque.vdi --existing

0x04 - Attacher le nouveau disque

Tu détaches l'ancien disque de la machine virtuelle
vboxmanage modifyvm NomMachineVirtuelle --hda none
Tu supprimes les deux disques du gestionnaire de média VirtualBox
vboxmanage closemedium disk AncienDisque.vdi
vboxmanage closemedium disk NouveauDisque.vdi
Tu les renommes pour faire plus propre
mv AncienDisque.vdi AncienDisque_Copie.vdi
mv NouveauDisque.vdi AncienDisque.vdi
Tu attaches le nouveau disque renommé sur la machine virtuelle
vboxmanage modifyvm NomMachineVirtuelle --hda AncienDisque.vdi

0x05 - Démarrage sur un CD utilitaire (Hiren's boot cd, Ultimate boot cd, distribution linux en boot cd, ....)

Agrandir la partition pour qu'elle prenne tout le disque.

0x06 - Redémarrage

0x07 - Test


0x08 - Suppression de l'ancien disque

rm -f AncienDisque_Copie.vdi

Comment réaliser techniquement un film en stopmotion sous linux

Rédigé par marmous Aucun commentaire
Classé dans : En vrac, DIY Mots clés : linux, stopmotion, mogrify, mencoder
Cet été, j'ai été amené à travailler sur la partie technique d'un court métrage en stopmotion.

Il existe des solutions libres orientées animation tel que stopmotion ou luciole permettant de prendre les photos une à une en maitrisant  un décor.
Dans mon cas les images ont été prises sur le terrain et je n'y étais pas. Les sujets étaient des humains qu'il fallait prendre en situation de travail. Ce ne sont ni des modèles ni des comédiens. Il était donc hors de question de leur faire perdre leur temps à poser pendant des heures.
J'ai eu besoin d'un système simple car je travaillais dans l'urgence pour renommer, recadrer et assembler toutes les photos.

Pour renommer, j'ai utilisé PyRenamer (source) qui permet, entre autre, de renommer des fichiers par lot avec numérotation automatique, justement ce dont j'avais besoin.

Pour recadrer, j'ai utilisé Mogrify un outil de la suite ImageMagick pour manipuler des images en ligne de commande.
Voici un exemple pour redimentionner tous les fichiers jpeg du répertoire courant en format full HD (1920x1080)
mogrify -path . -resize 1920x1080 -quality 97 -format jpg *.jpg

Pour assembler les photos en une vidéo, j'ai utilisé MEncoder un outil de la suite MPlayer pour encoder des vidéos.
Voici un exemple pour générer une vidéo HD à 5 image par seconde en utilisant tous les fichiers jpeg du répertoire courant
mencoder mf://*.jpg -mf w=1620:h=1080:type=jpeg:fps=5 -ovc copy -oac copy -o output.avi

Enfin, j'ai utilisé KDEnLive pour ajouter de la musique et monter tout ça.


TSQL Astuce 5 : Modifier une date par un modificateur

Rédigé par marmous Aucun commentaire
Classé dans : Informatique Mots clés : developpement, TSQL, SQL Server
Le but est d'autoriser l'utilisateur à écrire un modificateur pour modifier une date. Cela permet d'être plus dynamique.
Un modificateur se compose de 3 parties :
   - Type d'opération sous la forme + ou  -
   - Valeur à appliquer
   - Partie de la date à modifier sous la forme d pour jour, w pour semaine, m pour mois et y pour année

La fonction se présente sous la forme :
CREATE FUNCTION [dbo].[ApplyDateModifier]
(
@date varchar(32),
@modifier varchar(32)
)
RETURNS varchar(32)
AS
BEGIN

declare @return varchar(32),
@type char

set @return=@date
set @type=(substring(reverse(Lower(@modifier)),1,1))

if (@type='y')
begin
set @return=dbo.FormatDate(DATEADD(YEAR, convert(int,replace(@modifier,@type,'')),@date) ,'yyyymmdd')
end

if (@type='m')
begin
set @return=dbo.FormatDate(DATEADD(MONTH, convert(int,replace(@modifier,@type,'')),@date) ,'yyyymmdd')
end

if (@type='w')
begin
set @return=dbo.FormatDate(DATEADD(WEEK, convert(int,replace(@modifier,@type,'')),@date) ,'yyyymmdd')
end

if (@type='d')
begin
set @return=dbo.FormatDate(DATEADD(DAY, convert(int,replace(@modifier,@type,'')),@date) ,'yyyymmdd')
end

return @return

END
On utilise ici la fonction système DateAdd et la fonction vue précédemment FormatDate.

Exemple d'utilisation
select dbo.ApplyDateModifier(GetDate(),'3d');
Cela affichera la date du jour + 3 jours

La limite de cette fonction est qu'elle ne peut mélanger plusieurs partie à modifier.

De l'apprentissage et de la créativité

Rédigé par marmous Aucun commentaire
Classé dans : En vrac Mots clés : apprentissage, créativité, réflexion
La musique a toujours été une passion pour moi. Quand je me suis décidé à passer de l'autre côté et donc à apprendre à jouer d'un instrument, un éventail de questions s'est ouvert à moi.

Peut on être créatif si l'on marche dans les pas d'un autre ?
Doit-on accepter le conditionnement au risque de perdre sa vision originelle ?

Au démarrage de l'apprentissage d'une nouvelle discipline nous sommes en droit de nous demander si l'apprentissage en autodidacte ne nous permettrait pas de appréhender celle-ci par un nouvel angle. Cette démarche peut sembler audacieuse en ce sens où il est communément admis que seuls les génies peuvent appréhender quelque chose avec une vision novatrice. Je pense que c'est faux. Nous avons chacun une vision différente du monde, c'est d'ailleurs ce qui rend le monde intéressant, nous avons tous une éducation, des expériences, une culture différentes. Même si tout est catégorie, norme et standard, nous restons différents par notre individualité, nos pensées et nos réflexions. Nous sommes donc tous des génies.  Le tout est de pouvoir se libérer des contraintes intellectuelles imposées par des standards et des pratiques populaires. Il est très difficile de pouvoir se libérer de telles contraintes. Une autre solution pourrait être de ne pas se laisser conditionner par un apprentissage standardisé et la vision du professeur. Même un très bon professeur ne peut pas ne pas transmettre sa vision, même si son intention est d'être neutre. Le travail de l'élève est alors de faire fi de cette vision imposée. Mais, premièrement, ce n'est pas chose aisée et, deuxièmement, cela nécessite d'avoir assimilé l'essentiel et d'avoir le recul nécessaire pour distinguer la vision du professeur. c'est donc une pratique longue et laborieuse.

Doit-on commencer chaque apprentissage en autodidacte au risque de perdre son temps ?
Je pense qu'une des solutions à ce problème est de commencer l'apprentissage en autodidacte. Cela permet de se familiariser avec la discipline sans douleur et à son rythme. L'appropriation se fait alors naturellement et l'apprentissage et la mémorisation est plus simple. Quand le sujet se sent prêt ou qu'il est en perte de motivation, il peut envisager de commencer un apprentissage plus standard. Il n'aura donc pas perdu son temps car il aura créé un lien avec la discipline en question.

Une méthode d'apprentissage universelle est-elle réaliste ?
Comme je le disais précédemment tout le monde est unique, tout le monde est différent, chacun a sa propre vision du monde. Il est donc peu probable qu'une méthode universelle pouvant convenir à tout un chacun existe. Toutefois la méthode que j'évoque (c'est pas vraiment une méthode) permet d'avancer à son rythme, de s'approprier le domaine en question avec sa propre vision et après de l'étoffer avec celle des autres et d'une certaine manière permet de prendre un plus confiance en soi. Donc n'imposant pas une vision mais s'adaptant à l'apprenti cette méthode (c'en est toujours pas une) est plus souple et plus respectueuse. Elle permet une plus grande diversité et encourage une créativité et une originalité.

TSQL Astuce 4 : Fonction de formatge de date

Rédigé par marmous Aucun commentaire
Classé dans : Informatique Mots clés : developpement, TSQL, SQL Server
Il m'est souvent utile de devoir formater une date.

Pendant longtemps j'ai utilisé ça :
Declare @Date SmallDatetime
set @Date = GetDate()

print Right('00' + convert(varchar,DatePart(Day, @Date),2) +
'/' +
Right('00' + convert(varchar,DatePart(Month, @Date),2) +
'/' +
Convert(varchar, DatePart(Year,@Date)

Cette solution, loin d'être élégante, a de nombreux défauts.
Elle n'est pas lisible.
Elle n'accepte qu'un seul format. Si le format change je dois changer toute la formule.
Elle s'utilise en copier/coller et est donc source d'erreur.

Pour tous ces points, j'ai créé une fonction qui prend en paramètre une date et un format et qui retourne cette date formaté.

CREATE FUNCTION [dbo].[FormatDate]
(
@date smalldatetime,
@format nvarchar(30)
)
RETURNS nvarchar(30)
AS
BEGIN

declare @nbAnnee int,
@nbMois int,
@nbJour int,
@Annee varchar(4),
@Mois varchar(2),
@Jour varchar(2),
@separator varchar(1),
@index int,
@character char,
@InsertAnnee bit,
@InsertMois bit,
@InsertJour bit,
@dateOutput varchar(30)

set @nbAnnee = 0
set @nbMois = 0
set @nbJour = 0
set @separator = ''
set @index = 1
set @dateOutput = ''
set @InsertAnnee = 0
set @InsertMois = 0
set @InsertJour = 0

while (@index<=len(@format))
begin
set @character = substring(@format,@index,1)

if (@character = 'Y')
begin
set @nbAnnee=@nbAnnee+1
end
else
begin
if (@character = 'M')
begin
set @nbMois=@nbMois+1
end
else
begin
if (@character = 'D')
begin
set @nbJour=@nbJour+1
end
else
begin
set @separator = @character
end
end
end

set @index = @index +1
end

set @Annee = Right('0000' + Convert(varchar,Year(@date)),@NbAnnee)
set @Mois = Right('00' + Convert(varchar,Month(@date)),@NbMois)
set @Jour = Right('00' + Convert(varchar,Day(@date)), @NbJour)

set @index = 1
while (@index=@index)
begin
set @character = substring(@format,@index,1)

if (@character='Y')
begin
if (@InsertAnnee = 0)
begin
set @dateOutput = @dateOutput + @Annee
set @InsertAnnee = 1
end
end
else
begin
if (@character='M')
begin
if (@InsertMois = 0)
begin
set @dateOutput = @dateOutput + @Mois
set @InsertMois = 1
end
end
else
begin
if (@character='D')
begin
if (@InsertJour = 0)
begin
set @dateOutput = @dateOutput + @Jour
set @InsertJour = 1
end
end
else
begin
set @dateOutput = @dateOutput + @separator
end
end
end

if (@InsertAnnee = 1) and (@InsertMois = 1) and (@InsertJour = 1)
begin
break
end

set @index = @index +1
end

return @dateOutput

END

Cette fonction réalise son traitement en plusieurs étapes.
1ere étape : elle récupère le nombre de caractères demandé pour chaque type (Jour, Mois, Année)
2e étape : elle formate chaque type suivant la 1ere étape
3e étape : elle position chaque type et séparateur suivant le chaine de formatage passé en paramètre

Voici un exemple d'utilisation
select dbo.FormatDate(GetDate(),'dd/mm/yyyy')

A noter qu'à partir de SQL Server 2014, il existe la commande Format.
select format(GetDate(),'d','fr-fr')

Fil RSS des articles