Compare commits
4 Commits
c09df69af3
...
b1ebd390b4
Author | SHA1 | Date | |
---|---|---|---|
|
b1ebd390b4 | ||
|
70545d9355 | ||
|
ca1b226a13 | ||
|
6ad95e84ff |
@ -6,6 +6,7 @@
|
|||||||
% ====================================================================
|
% ====================================================================
|
||||||
|
|
||||||
% 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}
|
||||||
@ -13,18 +14,20 @@
|
|||||||
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 enore.
|
d'informatique, et il existe encore.
|
||||||
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 ? « Locomotive », ça ira ?
|
Un nom pour citer un exemple ? « 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.
|
à explorer, voire sauront trouver leur place dans un
|
||||||
|
environnement dédié à la techno-futilité, concept très
|
||||||
|
tendance dans certains milieux.
|
||||||
|
|
||||||
Dartmouth Time Sharing System
|
Pour en savoir plus : \textsc{Dartmouth Time Sharing System}
|
||||||
|
|
||||||
% ====================================================================
|
% ====================================================================
|
||||||
\section{Bywater} \index{bywater}
|
\section{Bywater} \index{bywater}
|
||||||
@ -44,7 +47,7 @@ Full BASIC (X3.113-1987) in C.
|
|||||||
\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}.
|
Les messages d'erreur sont du genre \textsc{bdos error on a, select}.
|
||||||
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}.
|
||||||
|
|
||||||
@ -81,8 +84,6 @@ 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
|
||||||
@ -90,12 +91,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}.
|
||||||
@ -103,12 +104,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
|
||||||
@ -120,9 +121,16 @@ 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 ?}
|
||||||
@ -131,5 +139,4 @@ 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.
|
||||||
|
|
||||||
% -------------------------------------------
|
|
||||||
% ====================================================================
|
% ====================================================================
|
||||||
|
@ -104,9 +104,7 @@ 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 fontes : \texttt{convert -list font}.
|
et celles des polices de caractère : \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 ?}
|
||||||
@ -214,6 +212,10 @@ 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
|
||||||
@ -237,8 +239,8 @@ Resource limits:
|
|||||||
Time: unlimited
|
Time: unlimited
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Vous pouvez aussi essayer de comprendre le contenu du fichier
|
Vous pouvez aussi tenter de comprendre le contenu du fichier
|
||||||
\texttt{thresholds.xml} et venir me l'expliquer juste après
|
\texttt{thresholds.xml} puis revenir 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.
|
||||||
|
|
||||||
@ -248,19 +250,21 @@ 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 prmiers drafts dans
|
Réclamez les premiers 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}
|
||||||
|
@ -53,9 +53,16 @@ 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
|
||||||
|
@ -1,14 +1,35 @@
|
|||||||
#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;
|
int c, sec, nano;
|
||||||
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ts.tv_sec = 0;
|
/* convert the slowdown value to delay */
|
||||||
ts.tv_nsec = 115 * 1000 * 1000;
|
delay = 1.0 / (float)slowdown;
|
||||||
|
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);
|
||||||
|
Loading…
Reference in New Issue
Block a user