Catégories
Processing Programmation

Resize event in Processing sketch

Here is how to make the Processing window resizable AND get an event when the window is resized.

Tested with Processing 3.

// For resize event
import java.awt.Canvas;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentAdapter;


void setup() {
  surface.setResizable(true);

  ((Canvas)surface.getNative()).addComponentListener(new ComponentAdapter() {
    @Override public void componentResized(ComponentEvent e) {
      println("resized " + width + " " + height);
    }
  }
  );
}

Catégories
Arduino Programmation

State machine Arduino demo

The LED is either blinking or glowing, but not at the same time. This simple example is a use case for a state machine.

The video shows the led alternating between blinking and glowing using a StateMachine objet and two State inherited objects.

When it comes to program complex interactions with Adrduino, we may benefit from using state machines. This allows to separate the code needed to manage different states of the applications and easily switch from one stat to another.

Catégories
PHP Programmation

Aller chercher des données dans un tableau multidimensionnel en PHP

Lorsqu’il s’agit d’aller chercher des données dans un tableau à plusieurs dimensions (un tableau dans un tableau, dans un tableau, etc.), il est facile d’utiliser la syntaxe: $data['key1']['key2']['key3']

Cependant si on tente d’accéder une clé qui n’existe pas, PHP génère une notice. Cet article apporte une solution élégante.

Exemple:

$data = [
  'a' => ['aa' => 'aa_val', 'ab' => 'ab_val'], 
  'b' => ['ba' => 'ba_val', 'bb' => 'bb_val']
];
echo $data['b']['ba'];
// ba_val 

echo $data['b']['MISSING_KEY'];
// PHP Notice:  Undefined index: MISSING_KEY in test.php on line 8
Catégories
Programmation Unity

Ouvrir un coffre avec les yeux

Cette vidéo est une démonstration d’interaction avec le regard uniquement, avec un Oculus Go, pour manipuler les anneaux d’un cadenas, du genre de ceux qu’on a sur les coffres forts.

Réalisé avec Unity et les composants de EAFramework, plus un script personnalisé. Disponible dans la démo de EAFramework.

Ouverture du coffre avec les yeux. Démo technique EAFramework.

Catégories
Programmation Unity

Ramasser et détruire des déchets avec le regard

Cet article montre comment utiliser des événement et des actions de EAFramework pour ramasser et détruire des déchets avec le regard.

C’est aussi une démonstration de l’utilsation d’événement personnalisés avec les composants EventCustom et ActionTriggerEventCustom.

Catégories
JavaScript p5.js Programmation

Animation de lettres à la Solitaire avec p5.js

https://editor.p5js.org/pierrerossel/sketches/_-ax5h2p4

Catégories
JavaScript p5.js Programmation

Exporter un sketch p5.js en vidéo

Cet article montre comment utiliser p5.js pour générer une vidéo au format webm.

Le taille de la vidéo est celle du canvas. Pour créer une vidéo dans une taille qui est plus grande que la place disponible dans l’espace Preview de l’éditeur en ligne de p5.js, voir l’article Grand canvas avec p5.js editor.

Catégories
p5.js Programmation

Grand canvas avec p5.js editor

Un grand canvas quand même visible dans le Preview de p5.js

L’éditeur en ligne de p5.js permet de travailler sur son code dans la partie gauche de la fenêtre et le résultat s’affiche à droite dans la partie Preview. Ca fonctionne bien pour des canvas de taille raisonnable, qui tiennent dans l’espace disponible, mais lorsqu’il est nécessaire d’utiliser un grand canvas, par exemple pour générer des grandes images ou une vidéo Full HD, alors l’espace Preview ne montre qu’une partie du résulat.

Une solution consiste à modifier dynamiquement la taille de l’affichage du canvas dans la fenêtre.

Catégories
Programmation Unity

.gitignore pour Unity

C’est une bonne idée d’utiliser GIT pour gérer le code source d’une application Unity, mais il ne faut pas y mettre tous les fichiers d’un projet sous peine de faire gonfler inutilement l’espace disque occupé par le dépôt et ralentir les opérations de synchronisation avec les dépôts distants (clone, fetch, pull, push). Certains dossiers sont inutiles, d’autres peuvent être recréés par Unity quand il en a besoin.

Voici comment configurer Unity et GIT pour une utilisation optimale.

Catégories
CSS Programmation

Jeu pour apprendre les sélecteurs CSS

Sélectionnez l'assiette en utilisant les sélecteurs CSS

Un petit jeu pour apprendre à utiliser les sélecteurs CSS

http://flukeout.github.io/