Journal Portage de TapTempo en Perl6

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
23
1
mar.
2018

Bonjour à tous,
Suite aux portages de TapTempo en divers langages (Rust, Ada, Javascript, Perl (5.10), Python (2.7), bash), je me suis chargé de traduire cet outil en PERL6 parce que c'est quand même plus mignon à regarder.

J'ai essayé de respecter l'esprit de TapTempo à la lettre, en répliquant les fonctionnalités & options présentées dans le journal de mfz. De ce fait, j'ai adopté la même approche KISS tout en (…)

Journal Intégration de TapTempo-Chisel sur APF27

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes :
23
23
mai
2018

Dans un premier journal je décrivais le «core» de TapTempoChisel. Passons maintenant à l'intégration sur un vrai FPGA physique.

J'ai choisi pour cela une carte APF27 de chez armadeus. Cette carte possède un FPGA Spartan3A de chez Xilinx mais elle possède également un microprocesseur i.MX27 permettant de faire tourner Linux. La philosophie de la carte étant d'avoir une zone «en friche» avec le FPGA permettant d'ajouter des périphériques sur mesure.

Périphérique que nous allons construire avec le projet TapTempo. Le (…)

Journal Taptempo en Zig

Posté par  . Licence CC By‑SA.
Étiquettes :
22
3
août
2023

Bonjour Nal,

Entrons tout de suite dans le vif du sujet : j'ai écrit un Taptempo en Zig.
Il ne gère aucun argument, n'a aucune fonctionnalité marrante, mais il fonctionne.
Il suffit d'appuyer sur une touche pour l'activer, puis d'appuyer en cadence jusqu'à cinq fois. On peut arrêter l'enregistrement en appuyant sur la touche q, qui permet aussi de quitter le programme.
Le voici donc ci-dessous :

// taptempo.zig
//
//! Copyright 2023 alberic89 <alberic89@gmx.com>
//!
//! This program
(…)

Journal TapTempo en Scala

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes :
22
23
juil.
2018

Le sujet TapTempo est très intéressant pour apprendre un nouveau langage de programmation. En effet, il est beaucoup plus complet qu'un simple Hello World ! Il nous impose de se plonger dans les arcanes du langage et de ses outils pour gérer le temps, l'affichage mais aussi les arguments de la ligne de commande ou les structures «complexe» comme les listes ou les buffers.

Bon évidemment, quand il s'agit d'un langage de description hardware comme présenté la dernière fois avec (…)

Journal TapTempo contest : un peu moins d'octets en Awk

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
21
14
jan.
2021

Voici une implémentation de TapTempo encore plus compacte que l'indigeste one-liner Perl précédent (https://linuxfr.org/users/zerodeux/journaux/taptempo-en-une-ligne), elle vous est offerte par Loïc Cerf qui me l'a soumise et me propose de vous la partager.

J'ai donc l'honneur de vous transmettre sa solution en 97 caractères :

$ awk '{system("date +%s%N")}'|awk '{t[++k]=$0}k>5{r=k-5}k>1{printf"%i",6e10*(k-r-1)/($0-t[r+1])}'

Le comportement est identique à celui de la ligne Perl de Vincent. Elle considère notamment le temps il y a cinq tapes sur la touche Entrée, moins (…)

Journal Portage de TapTempo en Golang

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
21
6
mar.
2018

Après tous les autres portages, voici la version Golang. J’essaye de montrer la simplicité du code, même si je gère une file à la main.

On voit le package simple de gestion d'options de ligne de commande (flag) et la gestion du temps(time). Je montre aussi la gestion d'un slice (issue du make) pour faire la file.

On vois aussi l'usage de init() qui est un fonction des packages exécutées avant la fonction main(). Il n'y a pas d'exemple d'objet (…)

Journal Portage de TapTempo en Haskell

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
21
1
mar.
2018

Bonjour à tous,

Suite aux portages de TapTempo en divers langages (Rust, Ada, Javascript, Perl (5.10), Python (2.7), bash), il fallait une version Haskell de TapTempo.

J'ai essayé de respecter scrupuleusement ce qui est décrit dans le journal d'introduction de TapTempo de mfz. Toute différence serait un bug, j'attends vos rapport de bug sur GitHub.

Le répertoire src est composé des fichiers suivants, chacun ayant sa petite particularité Haskell que je détaille dans la suite :

Journal À propos du langage APL et portage de TapTempo en bonus

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
20
11
mar.
2018

Cher Nal,

Connais-tu le langage APL ? Il s'agit d'un langage, ou plutôt d'une notation Unicode, inventée par Kenneth Iverson et permettant d'effectuer facilement des calculs globaux sur des tableaux (à une ou plusieurs dimensions).

Introduction

L'idée d'effectuer des calculs globaux sur des tableaux n'est pas si différente de ce que l'on peut trouver dans R ou autres langages similaires plus connus des statisticiens, mais elle est poussée à son extrême dans APL. Là ou Scheme représente un effort pour (…)

Journal WUY : simple GUI pour python3 ... et taptempo ;-)

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
20
19
août
2018

WUY est un simple module python qui permet de transformer votre script python3 en GUI, et ça fonctionne sous linux, mac ou windows (pour peu que la plateforme possède un chrome)

Voilà un exemple de taptempo ;-), en wuy/py3 :

import wuy,datetime

class taptempo(wuy.Window):
    """ <button onclick="wuy.tic().then(x=>{document.querySelector('#tempo').innerHTML=x})">Tap Tempo</button> 
        <span id="tempo"></span>
    """
    size=(100,60)
    t=[]

    def tic(self):
        self.t.append( datetime
(…)

Journal TapTempo sous la forme d'un service sur internet

Posté par  . Licence CC By‑SA.
Étiquettes :
19
11
mar.
2018

Bonjour tout le monde,

Vu que nous somme en 2018, il est temps de passer à une version plus moderne de TapTempo. Toutes les versions étaient jusqu'à présent exécutées en local, alors que c'est tellement plus simple et plus pratique sous la forme d'un service sur internet exécuté sur un autre ordinateur, voir potentiellement dans le nuage (hype °o°).

Bien évidemment l'application reste destinée à être utilisée en ligne de commande:

telnet theglu.org 2999

Si vous avez l'envie de (…)

Journal TapTempo en Java 17

Posté par  . Licence CC By‑SA.
Étiquettes :
19
7
nov.
2021

Cher journal,

Suite à la sortie récente de Java 17, j'ai créer une nouvelle version de TapTempo en en utilisant les dernière évolutions de Java.

La version initiale de TapTempo en Java est ici. Je n'ai pas trouvé le dépot avec les sources, mais un commentaire contenait le code principal. Je me suis basé sur ce commentaire pour faire la version en Java.

J'ai utilisé divers nouveaux mécanisme de Java 17 :
- le type var,
- les records (…)

Journal TapTempo sur mobile en PWA

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
18
2
mar.
2018

Bonjour à tous.

Suite aux portages de TapTempo en divers langages (Rust, Ada, Javascript, Perl (5.10 et 6), Python (2.7), bash, Haskel), pourquoi pas une version pour ordiphone.

Non, c'est pas un portage. L'interface n'est pas la même, y'a pas d'internationalisation ni d'option… L'idée était de découvrir rapidement le fonctionnement des progressive web apps.

Première étape, faire un TapTempo en html/javascript. Par exemple en reprenant le code d'un des commentaires sur ce journal avec un peu de css et (…)

Journal Portage de TapTempo en Tcl

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
17
8
mar.
2018

Bonjour Nal,

Malgré le déferlement de journaux provoqué par le premier TapTempo, il manquait toujours Tcl à l'appel, donc voilà une version pour ce vénérable petit langage de script facile à apprendre et bien pratique.

#!/usr/bin/env tclsh8.6                                                                                                                            
package require cmdline                                                                                                                            

set options {                                                                                                                                      
    {p.arg 0 "Précision du tempo (nombre de décimales)"}                                                                                           
    {s.arg 5 "Nombre d'échantillons pour le calcul du tempo"}                                                                                      
    {r.arg 5 "Temps de remise à zéro du calcul (secondes)"}                                                                                        
    {v "Afficher
(…)

Journal Portage de TapTempo en C à la Unix-like

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
17
10
mar.
2018

Salut Nal,

Il manquait une version C à la tradition Unix, c'est maintenant fait !

Du coup, pour préserver l'esprit, options courtes uniquement et pas de version, mais pour le reste, c'est assez complet avec contrôle des bornes pour les paramètres. Il ne manque que la page de manuel, ce sera pour une autre fois :)

#include <err.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>

#define NSAMPLES 5
#define MAX_NSAMPLES 20
#define RESET_TIME 5
#define PRECISION 0

extern  char
(…)