Compare commits

..

No commits in common. "b1ebd390b417252b266e1c82693252668b737d61" and "c09df69af37334f0c48ab3826933fb9c466ed01c" have entirely different histories.

4 changed files with 26 additions and 65 deletions

View File

@ -6,7 +6,6 @@
% ==================================================================== % ====================================================================
% https://www.theregister.com/2023/03/28/nostalgic_for_basic/ % https://www.theregister.com/2023/03/28/nostalgic_for_basic/
% https://retrofun.pl/2023/12/18/was-basic-that-horrible-or-better/
% ==================================================================== % ====================================================================
% \section{BASIC} \index{BASIC} % \section{BASIC} \index{BASIC}
@ -14,20 +13,18 @@
C'est probablement un des premiers langages interactifs utilisable par le C'est probablement un des premiers langages interactifs utilisable par le
peuple et les gens. Déja, à ce titre, dénonce que ce langage peuple et les gens. Déja, à ce titre, dénonce que ce langage
demande un peu de curiosité, il a traversé soixante ans demande un peu de curiosité, il a traversé soixante ans
d'informatique, et il existe encore. d'informatique, et il existe enore.
Mais pour moi, le véritable intérèt Mais pour moi, le véritable intérèt
est dans la multitude et la diversité des implémentations. est dans la multitude et la diversité des implémentations.
Des minis catatoniques des années 60 aux micros-ordinateurs 8 bits, Des minis catatoniques des années 60 aux micros-ordinateurs 8 bits,
des dizaines de versions souvent incompatibles ont vues le jour. des dizaines de versions souvent incompatibles ont vues le jour.
Un nom pour citer un exemple ? « Locomotive », ça ira ? Un nom ? « Locomotive », ça ira ?
Dans un premier temps, je vais les lister sommairement, et Dans un premier temps, je vais les lister sommairement, et
ensuite j'aurais une idée sur lesquels seront les plus funs ensuite j'aurais une idée sur lesquels seront les plus funs
à explorer, voire sauront trouver leur place dans un à explorer.
environnement dédié à la techno-futilité, concept très
tendance dans certains milieux.
Pour en savoir plus : \textsc{Dartmouth Time Sharing System} Dartmouth Time Sharing System
% ==================================================================== % ====================================================================
\section{Bywater} \index{bywater} \section{Bywater} \index{bywater}
@ -40,14 +37,14 @@ Full BASIC (X3.113-1987) in C.
\end{quote} \end{quote}
\begin{verbatim} \begin{verbatim}
Bywater BASIC Interpreter/Shell, version 2.10 Bywater BASIC Interpreter/Shell, version 2.10
--------------------------------------------- ---------------------------------------------
Copyright (c) 1993, Ted A. Campbell Copyright (c) 1993, Ted A. Campbell
for bwBASIC version 2.10, 11 October 1993 for bwBASIC version 2.10, 11 October 1993
\end{verbatim} \end{verbatim}
Le mode interactif me semble un peu rustre, mais utilisable à l'ancienne. Le mode interactif me semble un peu rustre, mais utilisable à l'ancienne.
Les messages d'erreur sont du genre \textsc{bdos error on a, select}. Les messages d'erreur sont du genre \textsc{bdos error on a}.
Je n'ai pas réussi à faire une sauvegarde du programme\footnote{J'ai Je n'ai pas réussi à faire une sauvegarde du programme\footnote{J'ai
renoncé au bout de 30 secondes}, ce qui limite son \textsl{utilisability}. renoncé au bout de 30 secondes}, ce qui limite son \textsl{utilisability}.
@ -84,6 +81,8 @@ http://www.sdlbasic.altervista.org/main/
\index{BBC} \index{Acorn} \index{BBC} \index{Acorn}
https://www.bbcbasic.co.uk/index.html
\begin{quote} \begin{quote}
Brandy is an interpreter for BBC BASIC V, the dialect of BASIC that Brandy is an interpreter for BBC BASIC V, the dialect of BASIC that
Acorn Computers supplied with their ranges of desktop computers that Acorn Computers supplied with their ranges of desktop computers that
@ -91,12 +90,12 @@ use the ARM processor such as the Archimedes and Risc PC, and is still
in use on these and compatibles. in use on these and compatibles.
\end{quote} \end{quote}
https://www.bbcbasic.co.uk/index.html
% ==================================================================== % ====================================================================
\section{FreeBASIC} \index{FreeBASIC} \section{FreeBASIC} \index{FreeBASIC}
https://www.freebasic.net/
\begin{quote} \begin{quote}
When used in its "QB" language mode, FreeBASIC provides a high level When used in its "QB" language mode, FreeBASIC provides a high level
of support for programs written for QuickBASIC\index{QuickBASIC}. of support for programs written for QuickBASIC\index{QuickBASIC}.
@ -104,12 +103,12 @@ Many programs written for QuickBASIC will compile and run in this mode
with no changes needed. with no changes needed.
\end{quote} \end{quote}
https://www.freebasic.net/
% ==================================================================== % ====================================================================
\section{BASIC-256} \index{BASIC-256} \section{BASIC-256} \index{BASIC-256}
https://basic256.org/
\begin{quote} \begin{quote}
BASIC-256 is an easy to use version of BASIC designed to teach anybody BASIC-256 is an easy to use version of BASIC designed to teach anybody
(especially middle and high-school students) the basics of computer (especially middle and high-school students) the basics of computer
@ -121,16 +120,9 @@ on screen in minutes, and a set of detailed, easy-to-follow tutorials
that introduce programming concepts through fun exercises. that introduce programming concepts through fun exercises.
\end{quote} \end{quote}
https://basic256.org/
% ==================================================================== % ====================================================================
\section{Benchmark}
Nous avons une liste de Basics, il faut maintenant les comparer.
Il y a le très classique (et très ancien) crible d'Eratostène, mais
nous pouvons trouver mieux en fouillant dans les archives.
% ==================================================================== % ====================================================================
\section{Et ailleurs ?} \section{Et ailleurs ?}
@ -139,4 +131,5 @@ L'interpréteur \texttt{Qbasic} de Microsoft fonctionne très bien
dans Dosbox~: à lire en page \pageref{Qbasic}. Son prédécesseur, dans Dosbox~: à lire en page \pageref{Qbasic}. Son prédécesseur,
\texttt{GWBASIC} marche très bien aussi. \texttt{GWBASIC} marche très bien aussi.
% -------------------------------------------
% ==================================================================== % ====================================================================

View File

@ -104,7 +104,9 @@ Code & Signification \\
\end{tabular} \end{tabular}
Pour avoir la liste des couleurs disponibles : \texttt{convert -list color} Pour avoir la liste des couleurs disponibles : \texttt{convert -list color}
et celles des polices de caractère : \texttt{convert -list font}. et celles des fontes : \texttt{convert -list font}.
\subsubsection{Questions...}
\begin{itemize} \begin{itemize}
\item{Comment mettre une couleur de fond à ce texte ?} \item{Comment mettre une couleur de fond à ce texte ?}
@ -212,10 +214,6 @@ Et ces données peuvent être utilisé pour rajouter une simili
% ------------------------------------------ % ------------------------------------------
%
% http://al.howardknight.net/?ID=170228531600
%
\subsection{Configuration} \subsection{Configuration}
La configuration est dans le répertoire \texttt{/etc/ImageMagick-6/}, et La configuration est dans le répertoire \texttt{/etc/ImageMagick-6/}, et
@ -239,8 +237,8 @@ Resource limits:
Time: unlimited Time: unlimited
\end{verbatim} \end{verbatim}
Vous pouvez aussi tenter de comprendre le contenu du fichier Vous pouvez aussi essayer de comprendre le contenu du fichier
\texttt{thresholds.xml} puis revenir me l'expliquer juste après \texttt{thresholds.xml} et venir me l'expliquer juste après
ma sieste, je pense que ça permet de jouer sur différentes méthodes ma sieste, je pense que ça permet de jouer sur différentes méthodes
de \textsl{dithering}, par exemple pour faire du Bayer. de \textsl{dithering}, par exemple pour faire du Bayer.
@ -250,21 +248,19 @@ de \textsl{dithering}, par exemple pour faire du Bayer.
\begin{itemize} \begin{itemize}
\item{convert -average frame*.png output.png} \item{convert -average frame*.png output.png}
\item{convert -brightness-contrast 20\% foo.png bar.png}
\end{itemize} \end{itemize}
Il y en plein d'autres, des tricks \textsl{àlc} à découvrir. Il y en plein d'autres, des tricks \textsl{àlc} à découvrir.
Ce sera, pour vous amis lecteurs, une dure mission à assumer. Ce sera, pour vous amis lecteurs, une dure mission à assumer.
% ------------------------------------------ % ------------------------------------------
\subsection{Ressources} \subsection{Ressources}
Le futur livre de Brunus. Le futur livre de Brunus.
Réclamez les premiers drafts dans Réclamez les prmiers drafts dans
l'IRC\index{IRC} \texttt{libera.chat\#paulla} \textit{:)} l'IRC\index{IRC} \texttt{libera.chat\#paulla} \textit{:)}
\texttt{http://www.fmwconcepts.com/imagemagick/index.php} \texttt{http://www.fmwconcepts.com/imagemagick/index.php}

View File

@ -53,16 +53,9 @@ avec d'ignobles logiciels~:
\texttt{ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-\%03d.jpeg} \texttt{ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-\%03d.jpeg}
J'avoue ne pas avoir tout saisi : l'option\texttt{-r N} qui fixe le
\textsl{frame rate} sert à quoi ???
Il existe bien une alternative, mais je n'ai pas encore essayé~:
\texttt{mplayer -vo png -ss 3:46 -frames 20 stairs.mp4} \texttt{mplayer -vo png -ss 3:46 -frames 20 stairs.mp4}
\# Write out 20 png format frames from a video starting at 3 minutes, 46 seconds. \# Write out 20 png format frames from a video starting at 3 minutes, 46 seconds.
Tu peux générer les images de transition avec Tu peux générer les images de transition avec
ImageMagick\index{ImageMagick} : ImageMagick\index{ImageMagick} :
\texttt{convert a.png b.png -alpha set -channel A \texttt{convert a.png b.png -alpha set -channel A

View File

@ -1,35 +1,14 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include <time.h> #include <time.h>
#include <unistd.h> #include <unistd.h>
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
int c, sec, nano; int c;
struct timespec ts; struct timespec ts;
int slowdown = 300; /* set a default value */
float delay;
/*
* get the desired slowdown from command-line
*/
if (2 == argc) {
if (1 != sscanf(argv[1], "%d", &slowdown)) {
fprintf(stderr, "%s: bad arg, sorry\n", argv[0]);
exit(1);
}
if (slowdown < 1) {
fprintf(stderr, "%d is invalid\n", slowdown);
exit(1);
}
}
/* convert the slowdown value to delay */ ts.tv_sec = 0;
delay = 1.0 / (float)slowdown; ts.tv_nsec = 115 * 1000 * 1000;
sec = (int)delay;
nano = (int)(1000*1000*1000*(delay - (int)delay));
ts.tv_sec = sec;
ts.tv_nsec = nano;
while ( EOF != (c=getchar()) ) while ( EOF != (c=getchar()) )
{ {
putchar(c); putchar(c);