Compare commits
No commits in common. "b1ebd390b417252b266e1c82693252668b737d61" and "c09df69af37334f0c48ab3826933fb9c466ed01c" have entirely different histories.
b1ebd390b4
...
c09df69af3
@ -6,7 +6,6 @@
|
||||
% ====================================================================
|
||||
|
||||
% 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}
|
||||
@ -14,20 +13,18 @@
|
||||
C'est probablement un des premiers langages interactifs utilisable par le
|
||||
peuple et les gens. Déja, à ce titre, dénonce que ce langage
|
||||
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
|
||||
est dans la multitude et la diversité des implémentations.
|
||||
Des minis catatoniques des années 60 aux micros-ordinateurs 8 bits,
|
||||
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
|
||||
ensuite j'aurais une idée sur lesquels seront les plus funs
|
||||
à explorer, voire sauront trouver leur place dans un
|
||||
environnement dédié à la techno-futilité, concept très
|
||||
tendance dans certains milieux.
|
||||
à explorer.
|
||||
|
||||
Pour en savoir plus : \textsc{Dartmouth Time Sharing System}
|
||||
Dartmouth Time Sharing System
|
||||
|
||||
% ====================================================================
|
||||
\section{Bywater} \index{bywater}
|
||||
@ -47,7 +44,7 @@ Full BASIC (X3.113-1987) in C.
|
||||
\end{verbatim}
|
||||
|
||||
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
|
||||
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}
|
||||
|
||||
https://www.bbcbasic.co.uk/index.html
|
||||
|
||||
\begin{quote}
|
||||
Brandy is an interpreter for BBC BASIC V, the dialect of BASIC 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.
|
||||
\end{quote}
|
||||
|
||||
https://www.bbcbasic.co.uk/index.html
|
||||
|
||||
% ====================================================================
|
||||
|
||||
\section{FreeBASIC} \index{FreeBASIC}
|
||||
|
||||
https://www.freebasic.net/
|
||||
|
||||
\begin{quote}
|
||||
When used in its "QB" language mode, FreeBASIC provides a high level
|
||||
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.
|
||||
\end{quote}
|
||||
|
||||
https://www.freebasic.net/
|
||||
|
||||
% ====================================================================
|
||||
|
||||
\section{BASIC-256} \index{BASIC-256}
|
||||
|
||||
https://basic256.org/
|
||||
|
||||
\begin{quote}
|
||||
BASIC-256 is an easy to use version of BASIC designed to teach anybody
|
||||
(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.
|
||||
\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 ?}
|
||||
@ -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,
|
||||
\texttt{GWBASIC} marche très bien aussi.
|
||||
|
||||
% -------------------------------------------
|
||||
% ====================================================================
|
||||
|
@ -104,7 +104,9 @@ Code & Signification \\
|
||||
\end{tabular}
|
||||
|
||||
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}
|
||||
\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}
|
||||
|
||||
La configuration est dans le répertoire \texttt{/etc/ImageMagick-6/}, et
|
||||
@ -239,8 +237,8 @@ Resource limits:
|
||||
Time: unlimited
|
||||
\end{verbatim}
|
||||
|
||||
Vous pouvez aussi tenter de comprendre le contenu du fichier
|
||||
\texttt{thresholds.xml} puis revenir me l'expliquer juste après
|
||||
Vous pouvez aussi essayer de comprendre le contenu du fichier
|
||||
\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
|
||||
de \textsl{dithering}, par exemple pour faire du Bayer.
|
||||
|
||||
@ -250,21 +248,19 @@ de \textsl{dithering}, par exemple pour faire du Bayer.
|
||||
|
||||
\begin{itemize}
|
||||
\item{convert -average frame*.png output.png}
|
||||
\item{convert -brightness-contrast 20\% foo.png bar.png}
|
||||
\end{itemize}
|
||||
|
||||
Il y en plein d'autres, des tricks \textsl{àlc} à découvrir.
|
||||
Ce sera, pour vous amis lecteurs, une dure mission à assumer.
|
||||
|
||||
|
||||
|
||||
% ------------------------------------------
|
||||
|
||||
\subsection{Ressources}
|
||||
|
||||
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{:)}
|
||||
|
||||
\texttt{http://www.fmwconcepts.com/imagemagick/index.php}
|
||||
|
@ -53,16 +53,9 @@ avec d'ignobles logiciels~:
|
||||
|
||||
\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}
|
||||
\# 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
|
||||
ImageMagick\index{ImageMagick} :
|
||||
\texttt{convert a.png b.png -alpha set -channel A
|
||||
|
@ -1,35 +1,14 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int c, sec, nano;
|
||||
int c;
|
||||
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 */
|
||||
delay = 1.0 / (float)slowdown;
|
||||
sec = (int)delay;
|
||||
nano = (int)(1000*1000*1000*(delay - (int)delay));
|
||||
|
||||
ts.tv_sec = sec;
|
||||
ts.tv_nsec = nano;
|
||||
ts.tv_sec = 0;
|
||||
ts.tv_nsec = 115 * 1000 * 1000;
|
||||
while ( EOF != (c=getchar()) )
|
||||
{
|
||||
putchar(c);
|
||||
|
Loading…
Reference in New Issue
Block a user