% pro pre-07
%\usemodule[anch-pos]
%\def\Idea{a}
%\def\Page{a}
%\setuppagetransitions[random]
\switchtobodyfont[20pt]
\usemodule[pre-13] % pre-writing
\mainlanguage[cz]
%\usemodule[animation]

%\def\beginOLDTEX{}
%\def\endOLDTEX{}
%\def\beginXETEX{}
%\def\endXETEX{}
%\def\beginLUATEX{}
%\def\endLUATEX{}
%\usemodule[simpleslides][style=BigNumber, color=blue, font=LatinModern]

%\placeTitle
%\SlideTitle{moje} ano

% pre-03 druh, jezdící spodek (2)
% pre-62 čtyři barvy jako rám
% pre-67 růžová a zaznačené rohy červenou
% pre-22 kolečka v pozadí slajdu (jak na každém slajdu jiná?)
% pre-13 vlnky kolem slajdu, šedé pozadí (1)

%\TitlePage{pajovo}
%\definebar[pajovostrike][rulethickness=0.2,alternative=4]

%abcdef XXX YYY

%test \from[setposition]

%a smích e A B C a a aaa
%a
%a b c d e 

%Send your spam to \goto{http://www.google.com/}[url(http://www.google.com/)]

%Send your spam to \goto{visible@mailaddress.zzz}[program(test1.sh)]

%Send your spam to \goto{visible@mailaddress.zzz}[url(mailto:pavel@striz.cz)]

%\startsection[title={Testing Con\TeX t}]
%This is my {\em first} ConTeXt document. abc. ABCDEF, abc, pajovo 
%\stopsection
%\page
%pavlík

%\page
%aha
%\page
%klika

%\page
%\defineprogram[pust][skripty/#1.sh]
%\goto{\externalfigure[tucnak.jpg][width=0.2\textwidth]} [program(skripty/pust.sh)]

%\page
%pa pa pa

%\StartSteps 
%\startformula \startalign
%\NC x^2 + y^2  \NC  = z^2 \NR 
%\NC   x^2 + y^2   \NC = z^2 \NR  
%\stopalign\stopformula \NextStep
%pivo \NextStep
%další
%\StopSteps

%další text

%\setupinteraction[state=start]
\setupexternalfigures[directory={obrazky-velka}]
\definecolor [PageColor] [r=0.5,g=0.5,b=0.5]
\setuplayout[bottomdistance=0pt,bottom=0pt,topspace=10mm,backspace=14mm,textwidth=18.5cm]
\setupinteractionmenu[bottom][state=start,height=0pt]
\setupwhitespace[none]
%\setuphead[title][incrementnumber=yes,tt]

%\setupTitle[ title={Title of the presentation},author={Name of authors},date={Date of presentation},]
\usemodule[rsteps]
\setupinteraction[state=start]
\definefont[LargeFont][SansBold*default,boldened-20,bbox @ 32pt]
\definefont[SmallFont][SansBold*default,boldened-20,bbox @ 22pt]

\usemodule[tikz]
\setuphead[chapter][after=\vskip0.5ex]

\setupwhitespace
  [small]
%\setupwhitespace[big]

%https://wiki.contextgarden.net/Command/setupitemgroup
\definesymbol[pajovo][$\bullet$]
\setupitemize
  [1]
  [symbol=pajovo,
	 margin=0.4em,
   width=1\bodyfontsize,
	 inbetween={\blank[small]},
	 before={\blank[small]},
	 after={\blank[small]},
	 align=normal,
	 ]
\setupitemize
  [2]
  [%symbol=pajovo,
	 margin=0.4em,
   width=1\bodyfontsize,
	 inbetween={\blank[small]},
	 before={\blank[small]},
	 after={\blank[small]},
	 align=normal,
	 ]   
\hyphenpenalty=10000
%\exhyphenpenalty=10000
\def\bez#1#2 {\goto{\color[magenta]{\bf #1}}[program(obrazky-velka/#2.sh)]}
\def\openproblem{\color[orange]{OpenProblem:} }
\def\closedproblem{\color[blue]{ClosedProblem:} }
%\definetypeface [boldmath] [mm] [boldmath] [latin-modern] [default]
%\definetypeface [boldmath] [mm] [boldmath] [lucida] [default]
\def\TikZ{Ti\emph{k}Z}
\font\pajovo=ipamp at 20pt








\starttext

\startstandardmakeup
\LargeFont \setupalign[middle]
Jak {\color[red]{mě}} %\overstrike{jsem}
%\starttikzpicture 
%\node[inner sep=0, outer sep=0pt, draw=none, baseline=-1ex, font=\LargeFont]{jsem};
%\stoptikzpicture\ 
%učil
fraktály a~grafy a~vzorce a texty \color[red]{učily} létat
\vfil
\SmallFont Pavel Stříž, OSSConf 2019, Žilina
\vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[striz-2019.jpg][width=0.65\textwidth]}}\par
\midaligned{\bez{Jeviště}orloj }
\stopstandardmakeup

\page
\setuplayout[topspace=-5mm]
\starttitle[title=Motto a vize]
\setupTABLE[frame=off]
\midaligned{\bTABLE
\bTR \bTD def. Létat \eTD \bTD = nehladká sazba, např. sazba mimo účaří \eTD \eTR
\bTR \bTD \eTD \bTD = sazba čehokoliv kamkoliv (neodborně)\eTD \eTR
\bTR \bTD \eTD \bTD = skákání a poletování radostí (u lidí) \eTD \eTR
\bTR \bTD \eTD \bTD = rotování zoufalstvím (u mne) \eTD \eTR
\eTABLE}\par
\midaligned{\bTABLE
\bTR \bTD Vrstva 1. \eTD \bTD Pozadí videa: fraktály \eTD \eTR
\bTR \bTD Vrstva 2. \eTD \bTD Zlatý střed: podklady \TeX ové \eTD \eTR
\bTR \bTD Vrstva 3. \eTD \bTD Popředí videa: něco pohyblivého ve 3D \eTD \eTR
%\bTR \bTD \eTD \bTD 4. \eTD \eTR
\eTABLE}\par


\page
\starttitle[title=Fraktálové začátky]
\startitemize
\item Tu a tam zmíním české přínosy. Fraktály se u nás zabýval profesor Drahoš, kandidát na prezidenta. Skončil v pořadí druhý.
\item Jsem odkojen na programu POV-Ray.
\item Nejdřív jsem testoval program ContextFree.
\item Přešel jsem na programy Apophysis (3D), ApoMap,\\ Incendia, HexQuilts a Geometrica.
\item Zaujal mě web \goto{http://bridgesmathart.org}[url(http://bridgesmathart.org/)]
\item Pro OSSConf 2012 vznikla výstava, 5 stran.
\stopitemize

%\ifx\relax

\page
\ \vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[2012-apophysis.png][width=17.5cm]}}

\page
\starttitle[title=Rodina Mandelbulb*]
Z novějších mě zaujaly Mandelbulber(2) (včetně Linuxu)\\ a~Mandelbulb 3D. Občas se tam video urodí, spíš běh\\ variacemi jednoho fraktálu. Zkoumal jsem dál.
\par%\vskip-3ex
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[mandelbulber2.png][width=12cm]}}

\page
\starttitle[title=Současné pokusy]
\startitemize
\item Čistě na 2D animace jsem zkusil SynFig. \bez{Ukázka}pokus-synfig 
\item Vyzkoušel jsem program Qosmic.
\item Následoval pokus s programem Chaotica.
\item Prozkoumal jsem současný stav starších programů a objevil Apophysis-j-28.jar.
\item U diskuzí jsem zahlédl název jWildfire. 
\stopitemize

\page
\starttitle[title=jWildfire]
\startitemize
\item Rozšiřuje transformační možnosti flam3\\ (má příponu souborů flame a jwfmovie). 
\item Možnost statického fraktálu, animování (zapíná se 3D) i~přechodů (Movies).
\item Lze použít texty (text_wf), načíst si SVG (svg_wf),\\ IFLAME (iflames_wf) či OBJ (obj_mesh_wf). Vše je řízeno přes Transformations -- Nonlinear.
\item Nastavitelné rozlišení, výstup lze i do HDR.
\item Komunita rozšiřuje možnosti skripty v Javě. Po pár\\ kliknutích jsem získal pozadí do Linuxu (HB 2 planetoid smooth). Nový obrázek přes tlačítk Run.
\stopitemize

\page
\ \vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[test5.png][width=18.5cm]}}

\page
\starttitle[title=Příprava podkladu]
\startTEX
#!/bin/bash
echo "LaTeXuji..."
lualatex texty.tex 1>/dev/null 2>/dev/null
echo "Konvertuji..."
gm convert -density 100 -fuzz 100% 
  -transparent white texty.pdf texty.png
inkscape --export-plain-svg=texty.svg 
  -T texty.pdf
\stopTEX
Pozn.: \typ{-T} Convert text object to paths on export (PS, EPS, PDF, SVG)


\page
\starttitle[title=První vzorky]
\startitemize
\item jWildfire+Kdenlive. \bez{Ukázka}pokus-kdenlive
\item jWildfire+Flowblade. \bez{Ukázka}pokus-flowblade
\item Ikonka rozpohybování parametrů:\\ Create/edit a motion curve. \externalfigure[motionCurve.gif][width=7mm]
\item Klíčový problém je přechod mezi fraktály. 
\bez{Ukázka}pajovo-prechod-jwildfire 
\stopitemize

\page
\starttitle[title=Přechod mezi fraktály]
Ten na základě úprav parametrů řeší flam3. Ale funguje to jen, když jsou geneticky zpřízněné, jinak vzniká neostrý obraz, de facto šum.
\bez{Ukázka}pajovo-prechod-flam3 \par
Co s tím?

\page
\starttitle[title=Flam3]
\startitemize
\item High Fidelity Demo, místy napojené, místy nikoliv.
\item Ukázky, historie: \goto{https://flam3.com/}[url(https://flam3.com/)]
\item Matematické pozadí:\\ 
\goto{http://flam3.com/flame_draves.pdf}[url(http://flam3.com/flame_draves.pdf)]
\item Pro žáky: představa přechodu z úsečky na část paraboly.
\item Představa sítě bodů: v Blenderu přechod z krychle na kouli a obráceně.
\item Github: \goto{github.com/scottdraves/flam3/wiki}[url(https://github.com/scottdraves/flam3/wiki)]
\stopitemize

\page
\starttitle[title=Flam3-genome]
\startitemize
\item Soubor s příponou flam3 je textový XML soubor\\ s parametry. Přípona flame (program jWildfire) je de facto to samé.
\item Klíčový je flam3-genome: generuje z aktuálního fraktálu nový (Genetic Algorithm). Lze se dostat do původního fraktálu.
\startTEX
env sequence=ABC.flame nframes=30 
  flam3-genome > ABC_anim.flame
\stopTEX
\stopitemize

\page
\starttitle[title=Flam3-animate]
\startitemize
\item Poté flam3-animate vezme dva fraktály a vytvoří sekvenci. Navíc hlídá ostrost obrazu (Density Estimation) a přechod mezi snímky (Motion Blur).
\startTEX
env prefix=ABC format=png 
  flam3-animate < ABC_anim.flame
\stopTEX
\item Následuje spojení obrázků do videa čímkoliv\\ 
(\typ{ffmpeg}, \typ{mencoder}).
\stopitemize

\page
\ \vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[hezke-fraktaly.jpg][width=18.5cm]}}

\page
\starttitle[title=Electric Sheep (ES)]
\startitemize
\item Výpočetních prostředí je hodně: IBM, Google, Amazon.
\item Tohle generuje snímky jako spořič obrazovky.
\item Bohužel na pevný disk se stahuje jen poslední vypočtené.
\item Problém při kompilaci (Xubuntu) jsem řešil přes:\\ 
\type{make CXXFLAGS+=-DGL_GLEXT_PROTOTYPES}\\ 
místo \type{make}, vyřešeno však v Arch Linuxu, Manjaru aj.
\stopitemize

\page
\starttitle[title=Aktuální generace: 00247]
\startitemize
\item \goto{http://v3d0.sheepserver.net/cgi/status.cgi}[url(http://v3d0.sheepserver.net/cgi/status.cgi)]
\item Zde si lze stáhnout fraktály (icons, faces), přechod do sebe sama (loops) a přechod mezi dvěma fraktály (edges).
\item Pod konkrétním fraktálem v sekci genome si lze stáhnout flam3.
\item O pokračování výpočtů rozhoduje hlasování. Některé větve se dál nevyvíjí, vzniká jistý strom z párů.
\stopitemize

\page
\ \vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[draves-strom.png][width=17.5cm]}}

\page 
\starttitle[title=Free vs Gold]
%\startitemize
Na Electric Sheep se můžete stát zlatým členem (150\,USD na celý život). Rozdíly jsou následující:\par\bigskip
%\stopitemize
\setupTABLE[frame=on]
\midaligned{\bTABLE
\bTR \bTD \bf Ukazatel \eTD \bTD	\bf Free \eTD \bTD	\bf Gold \eTD \eTR
\bTR \bTD Resolution \eTD \bTD	800$\times$598\eTD \bTD	1280$\times$720 \eTD \eTR
\bTR \bTD Frames/Sheep	\eTD \bTD 160\eTD \bTD	320 \eTD \eTR
\bTR \bTD Bandwidth\eTD \bTD	4.7mbps\eTD \bTD	12.3mbps\eTD \bTR 
\eTD \bTD Server\eTD \bTD archive.org\eTD \bTD Amazon Cloudfront \eTD \eTR
\eTABLE}
\par
Délka jednoho videa (typ loop či edge) je 6,7 vteřin.

\page
\starttitle[title=Počítat to?]
\startitemize
\item Nereálné!
\item Přidal jsem se do FB skupiny \goto{ElectricSHE3P.}[url(https://www.facebook.com/groups/ElectricSHE3P/)]
\item Jeden z členů (John Schuepbach) ta spojení stahoval víc jak 10 let. Dal své sbírky na archive.org. Cca 200\,GB.
\item Lze užít jen metadata (názvy souborů), není tam však délka. Mám rád metadata (poprvé v životě)!
\item Pozn. Když už, tak je lepší zjišťovat počet snímků\\ (\typ{ffmpeg -i}) než čas videa.
\stopitemize

\page
\starttitle[title=Stahování]
\startitemize
\item \typ{wget --limit-rate} ...
\item Ideál ze sf.net: \typ{curl -C -O -L --limit-rate} ...
\item \typ{youtube-dl --limit-rate} ...
\item Bez CLI v Javě: FreeRapid Downloader (od Čecha, Vity)
\item \typ{transmission-cli --downlimit} ...
\item Konfigurovatelný program \typ{aria2c}
\stopitemize

\page
\starttitle[title=Vstupní prohlídka]
%bloky; počet souborů; velikost
\setupTABLE[frame=on]
\midaligned{\bTABLE
\bTR \bTD \bf Flock \eTD \bTD \bf Souborů \eTD \bTD \bf ZIP (GB) \eTD\bTD \bf Částí \eTD \bTD \bf H$\times$W (px)\eTD\eTR
\bTR \bTD 00004 \eTD \bTD 1342 \eTD \bTD 8,9  \eTD\bTD2 \eTD\bTD 1280$\times$720 \eTD\eTR
\bTR \bTD 00202 \eTD \bTD 12846 \eTD \bTD 55,6 \eTD\bTD10 \eTD\bTD 640$\times$480 \eTD\eTR
\bTR \bTD 00243 \eTD \bTD 2930 \eTD \bTD 7,5 \eTD\bTD1 \eTD\bTD 800$\times$592 \eTD\eTR
\bTR \bTD 00244 \eTD \bTD 15662 \eTD \bTD 36,9 \eTD\bTD8 \eTD\bTD 800$\times$592 \eTD\eTR
\bTR \bTD 00245 \eTD \bTD 2853 \eTD \bTD 5,8 \eTD\bTD1 \eTD\bTD 800$\times$592 \eTD\eTR
\bTR \bTD 00247 \eTD \bTD 5356 \eTD \bTD 10,6 \eTD\bTD2 \eTD\bTD 800$\times$592 \eTD\eTR
\eTABLE}

\page
\starttitle[title=Název souboru]

Přes metadata z archive.org či přes výpis souborů po stažení (ls), získáváme tisíce souborů tohoto typu:\par
\midaligned{\typ{00202=09556=09503=08806.avi}}
\startitemize
\item \typ{00202} je generace, flock, generation, sheep,
\item \typ{09556} je pořadové číslo výpočtu,
\item \typ{09503} je číslo/ID počátečního fraktálu a
\item \typ{08806} je číslo/ID konečného fraktálu.
\stopitemize

\page
\starttitle[title=Tvorba grafu]
\startitemize
\item Poslední dvě pětimístná čísla mohou být stejná: video začíná a končí ve stejném fraktálu. 
\item Pokud pustíme video pozpátku, virtuálně prohazujeme tato dvě pětimístná čísla.
\item Každé video utváří orientovanou hranu. Jednu reálnou a~jednu potenciální.
\item Na graf se díváme jako na neorientovaný, ale hlídáme-li (ne)možnost cesty zpět, graf se stává orientovaným.
\stopitemize

\page
\starttitle[title=Soutěžní programování]
\startitemize
\item Následují algoritmy a úvahy spadající pod\\ soutěžní programování.
\item Nepočítáme-li \goto{TAOCP,}[url(https://www-cs-faculty.stanford.edu/~knuth/taocp.html)] tak komplexní kniha je\\ \goto{Competitive Programming,}[url(https://cpbook.net/)] autoři bratři Steven a Felix Halimovi, 3. vydání (4. vydání se čeká v květnu 2020).\\ Problémy odkazují na servery UVa a Kattisu.
\item Bioinformatické problémy: \goto{http://rosalind.info}[url(http://rosalind.info/)]
\item Bioinformatická soutěž: \goto{https://bioinf.me/en/contest}[url(https://bioinf.me/en/contest)]
\item Praktické problémy: \goto{https://www.topcoder.com}[url(https://www.topcoder.com/)]
\stopitemize

\page
\starttitle[title=Rekurze]
\startitemize
\item Vnořování voláním funkce sebe sama.
\item Občas lze rekurzi přepsat na cyklus (faktoriál).
\item Výhodné je využití paměti, např. Fibonnacciho řada.
\item Využívá se alfa-ořez u her typu bridž či šachy, hlouběji M.\,L. Ginsberg o GIBu a Artificial Intelligence od autorů S. Russella a P. Norviga.
\item Google DeepMind porazil světovou jedničku ve hře Go (kombinace metod).
\stopitemize

\page
\starttitle[title=Rekurze (pokr.)]
\startitemize
\item V Pythonu jsem zvyšovat hloubku přes:
\startTEX
import sys
sys.setrecursionlimit(50000)
\stopTEX
\item Zastavení programu: 
\startitemize
\item kompletní projití možností,
\item dosažení určité délky cesty, 
\item nastavením limitu běhu programu (knihovna \typ{time}), či
\item do stisknutí klávesy (knihovna \typ{pynpu.keyboard}).
\stopitemize
\item \openproblem Pozastavení programu s rekurzí a jeho\\ znovuspuštění.
\stopitemize

\page
\starttitle[title=Nalézt největší graf]

Zápis by byl 

\page
\starttitle[title=Největší grafy]
\setupTABLE[frame=on]
\midaligned{\bTABLE
\bTR \bTD \bf Flock \eTD \bTD \bf Skupiny: počet fraktálů (opakování) \eTD \eTR
\bTR \bTD 00004 \eTD \bTD 246(1), 9(1), 5(1), 4(1), 3(4), 2(8), 1(185) \eTD \eTR
\bTR \bTD 00202 \eTD \bTD 3194(1), 222(1), ..., 3(156), 2(181), 1(3394) \eTD \eTR
\bTR \bTD 00243 \eTD \bTD 377(1), 184(1), ..., 3(24), 2(58), 1(717) \eTD \eTR
\bTR \bTD 00244 \eTD \bTD 4089(1), 329(1), ..., 3(6), 2(17), 1(3949) \eTD \eTR
\bTR \bTD 00245 \eTD \bTD 806(1), 78(1), 4(1), 3(2), 2(1), 1(738) \eTD \eTR
\bTR \bTD 00247 \eTD \bTD 1648(1), 46(1), 3(3), 2(4), 1(1651) \eTD \eTR
\eTABLE}

\page
\starttitle[title=Nalezení cyklů]
a

Zápis by byl

\page
\starttitle[title=Nalezení cyklů (pokr.)]
\startitemize
\item Startovní bod viz \goto{https://www.geeksforgeeks.org/\\print-all-the-cycles-in-an-undirected-graph}[url(https://www.geeksforgeeks.org/print-all-the-cycles-in-an-undirected-graph/)]
\item Proveden pokus o ořez (s možností všech možných ořezů), ale přichází se o to nejužitečnější v grafu, tedy možnost si snadno navázat cestu dál.
\item Není-li v grafu cyklus, algoritmy jsou známé\\ 
(DFS z každého uzlu -- prý to však také není ideál; Floyd-Warshall; Streaming). Víc Algorithms (4. vyd.), Sedgewick, Wayne. \goto{https://stackoverflow.com/questions/\\12367801/finding-all-cycles-in-undirected-graphs}[url(https://stackoverflow.com/questions/12367801/finding-all-cycles-in-undirected-graphs)]
\stopitemize

\page
\starttitle[title=Superrychlé řešení]
\startitemize
\item Krok 1: Užít DFS (Depth-First Search).
\item Krok 2: Navázat nalezením nejdelší cesty v orientovaném grafu (DAG).
\item Rychlé na naprogramování, ale mizerné najít nejdelší cestu.
\item V Pythonu např. přes knihovnu \typ{networkx}.
\stopitemize

\page
\starttitle[title=Nejdelší cesta]
\startitemize
\item Máme před sebou neorientovaný graf (původní video\\ a~přehrané pozpátku)
\item Klasická rekurze se zacyklí. Je nutnost použít proměnnou na navštívené cesty.
\item Nahlédněme na randomized depth-first traversal/search z~\goto{https://bost.ocks.org/mike/algorithms/}[url(https://bost.ocks.org/mike/algorithms/)]\par
\bez{Video algoritmu (bez)}algoritmus1 \\resp.\\
\bez{Video algoritmu (s)}algoritmus2
\stopitemize

\page
\starttitle[title=D3.js: replikace dat/grafiky]
\startitemize
\item \openproblem Vytažení dat / png / svg.
\item Aplikace na stahování získávají tak 5 snímků/vteřinu.
\item Nahrávání obrazovky jako video. 
\item Občas se podaří animaci zpomalit.
\item \typ{console.log}, nenašel jsem to však v \typ{__transitions__}, jak to na fórech radí.
\item NodeJS + knihovna FS.
\item Uložení pozice myši: \typ{xev}, \typ{xsel}, \typ{xdotool}, např.\\ 
\typ{watch -ptn 0 "xdotool getmouselocation"}
\item \openproblem Uložit si i stav tlačítek myši.
\stopitemize

\page
\starttitle[title={D3.js (řešení 1, pseudo)}]
% d3/transition/index3.html
\startTEX
<div id="pajovo">foo</div>
<script>
var x = new XMLSerializer();
function outputToConsole() {
console.log(x.serializeToString(document.
  getElementById("pajovo")));
console.log(document.getElementsByTagName
  ("div")[0].getAttribute("style"));
if(n++ >= 100) return; // ulož 100 snímků a přestaň
setTimeout(outputToConsole,33); 
// 30 snímků za vteřinu
}
outputToConsole();
\stopTEX

\page
\starttitle[title={D3.js (řešení 2, pseudo)}]
% wilson3/index-randomized.html 
\startTEX
<canvas id="moje" width="60" height="30"></canvas>
<script>
var posledni="";
posledni=document.getElementById("moje")
  .toDataURL("image/png");
console.log(posledni);
\stopTEX\par
Uložení do \typ{cele.txt}, po řádcích do \typ{posledni.txt} a Python:
\startTEX
import base64
newpng = open("posledni.txt","rb").read()
kam = open("posledni.png","wb")
kam.write(base64.decodestring(newpng))
kam.close()
\stopTEX

\page
\starttitle[title=Nefunguje vždy]
\startitemize
\item \openproblem Kde to funguje? Kde ne? Nefunguje mi to plně např. v OODA Loop od Bena Eatera, neuloží se letadla. Užity vrstvy přes react.js?
\item Instalace: \typ{npm install}, spuštění: \typ{npm start}, produkční verze: \typ{npm run build}.
\item Zdroj: \goto{https://github.com/beneater/ooda-loop}[url(https://github.com/beneater/ooda-loop)]
\stopitemize
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[letadla][width=10.5cm]}}


\page
\starttitle[title=uDnAG]
\startitemize
\item Výmysl: unDirected nonAcyclic Graph, hledání nejdelší cesty v neorientovaném grafu s cykly.
\item Výmysl: a trimmed stack.
%\item Pokus o cílené ořezání rekurzivního algoritmu s pamětí.
\item Uzel, ze kterého jsem již šel, tak při cestě zpět jej už nikdy nenavštěvuj.
\item Výhody: rychlá cesta zpět při velkém grafu; snadnější možnost pozastavení programu při užití typu stack (máme původní graf a tuto proměnnou); rychlá možnost si ukládat víc řešení.
%\item Naprogramování přes rekurzi vs stack pak vykazovalo podobné výsledky.
\stopitemize

\page
\starttitle[title=Srovnání rekurze s uDnAG]
\midaligned{Nastaveny vždy 2 minuty.}\par
\setupTABLE[frame=on]
% cizi4-orez-cyklu.py vs cizi4-stack.py
\midaligned{\bTABLE
\bTR\bTD\bf Flock\eTD\bTD\bf Rekurze \eTD \bTD \bf Stack s ořezem\eTD\bTD \bf Rozdíl\eTD \eTR
\bTR \bTD 00004 \eTD \bTD   830 \eTD \bTD    646 \eTD \bTD $+184$ \eTD \eTR
\bTR \bTD 00202 \eTD \bTD 4868 \eTD \bTD  4983 \eTD \bTD $-115$ \eTD \eTR
\bTR \bTD 00243 \eTD \bTD   590 \eTD \bTD    607 \eTD \bTD  $-17$ \eTD \eTR
\bTR \bTD 00244 \eTD \bTD 7853 \eTD \bTD  8084 \eTD \bTD $-231$ \eTD \eTR
\bTR \bTD 00245 \eTD \bTD 1313 \eTD \bTD  1380 \eTD \bTD $-67$ \eTD \eTR
\bTR \bTD 00247 \eTD \bTD 2398 \eTD \bTD   2543 \eTD \bTD $-145$ \eTD \eTR
\eTABLE}

\page
\starttitle[title=Spojení AVI]
\startitemize
\item Nelze vzít soubory jak jsou; nelze \typ{mpv} pouštět pozpátku a dopředu či po sobě); extended playlist EDL nepomohl.
\item Lepší bude CLI než \typ{kdenlive}, \typ{flowblade}, \ldots
\item \typ{ffmpeg} (ideál \typ{libx265}) přes \typ{- vf reverse}.
\item \typ{ffmpeg} (\typ{-c} copy) nezabralo; mencoder (neumí avi);\\ \typ{mkvmerge} z balíku \typ{mkvtoolnix} (v34) max. 1024 souborů? Sekané. 
\item Do png a pak spojovat? Šílenství. 
\item Přes filtr huffyuv, ffv1 či qtrle? Obří velikost jako při volbě \typ{-crf 0} či \typ{-qp 0}.
\item Zabrala mi konverze do mpegu (\typ{-lossless 1}), parametr je z formátu webm a \typ{-bufsize 4M -maxrate 30M}.
\stopitemize

\page
\starttitle[title=Spojení avi (pokr.)]
\startitemize
\item Plus \typ{-loglevel error -hide_banner -n }.
\item Spojování mpegů do jednoho pak přes \typ{-c copy} (mkv). 
\item Plus \typ{-fflags +genpts -y -safe 0}.
\item Vizuální kontrola \typ{mpv --pause}, případně tečka a čárka na posun po snímcích. Past: při malém rozlišení to zlobí. Zkusit \typ{-codec png} (mov).
% https://gist.github.com/haasn/7919afd765e308fa91cbe19a64631d0f
% nonblurry scaling
% https://github.com/mpv-player/mpv/wiki/Upscaling
\item U malých souborů ideál s \typ{--scale=nearest}.\\ 
Viz \goto{github.com/mpv-player/mpv/wiki/Upscaling}[url(https://github.com/mpv-player/mpv/wiki/Upscaling)]
\item \closedproblem Srovnej dva obrázky. Např. OpenCV. Tip \goto{www.pyimagesearch.com/}[url(https://www.pyimagesearch.com/)] a vznikající třídílná kniha {\bf Raspberry Pi for Computer Vision}, osnova viz\\ 
\goto{https://www.pyimagesearch.com/2019/04/05/\\table-of-contents-raspberry-pi-for-computer-vision/}[url(https://www.pyimagesearch.com/2019/04/05/table-of-contents-raspberry-pi-for-computer-vision/)]
\stopitemize

\page
\starttitle[title=Externí výpočetní síla]
\startitemize
\item \typ{ssh}; \typ{ssh -X}; \typ{x11vnc}, \typ{teamviewer}
\item \typ{sshpass}, ideál pro připojení bez hesla \typ{ssh-copy-id} (profil bez passphrase, jinak řve keyring)
\item \typ{nohup <skript> &}
\item Nebo po spuštění a zachování běhu po odlogování: \typ{Ctrl+z}; \typ{bg}; \typ{disown -a}. 
\item Výpis pak přes \typ{cat nohup.out | tail -n 3}. Zabití procesu obvykle přes \typ{kill -9} (\typ{ps -es}).
\item Uspání notebooku přes \typ{pm-suspend-hybrid.}
\item Probuzení přes ethernet: \typ{wakeonline/etherwake}. Stroj mám přes wifi+ethernet. Lze přes appky poslat signál.
\item Užití \typ{telnetd-ssl} nedoporučeno.
\stopitemize

\page
\starttitle[title=Stínové sshd]
\startTEX[style={\switchtobodyfont[16pt,tt]}]
sudo cp /etc/systemd/system/sshd.service 
  /lib/systemd/system/sshd_paja.service
sudo cp /usr/sbin/sshd /usr/sbin/sshd_paja
sudo cp /etc/pam.d/sshd /etc/pam.d/sshd_paja
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_paja

# Zásahy v sshd_paja.service
# Description # ExecStartPre # ExecStart
#   + v ExecStart přidat: -f /etc/ssh/sshd_config_paja
# ExecReload # RuntimeDirectory # Alias

# Zásahy v sshd_config_paja
# Port # GatewayPorts yes # ClientAliveInterval 60 # PidFile

sudo systemctl enable sshd_paja
sudo systemctl start sshd_paja
\stopTEX
%\stoptext

\page
\starttitle[title=Kopírování souborů]
\startitemize
\item \typ{scp} (lze limit přes \typ{-l}); \typ{sshfs} s parametry \typ{-o reconnect,} \typ{ServerAliveInterval=1,ServerAliveCountMax=2};\\ 
příprava vlastní služby v Linuxu \typ{systemd} vs. \typ{init.d}.
\item Bez omezení jsem si schodil domácí wifi.
\item Hlídání sítě: \typ{sudo iftop -i <wifi síť>}
\item Test nakopírování souboru: \typ{rsync -P -e ssh <co> <kam>}; omezení přes \typ{--bwlimit}; umí rozbalování přes %klávesu 
\typ{Tab}.
\item Obarvil jsem si PROMPT na různých strojích přes \typ{PS1}.
\item %Testy 
Po nakopírování: \typ{md5}, \typ{sha}\{\typ{1,224,256,384,512}\}, \typ{crc32.}
\item Kompletnost videa: \typ{ffmpeg} s/bez \typ{-sseof -f null -}\\ \typ{2>error.log}; \typ{ffprobe} nebo \typ{mediainfo}.
\item Zaujal mě parametr \typ{-err_detect ignore_err}, možnost spojit soubory i při poškození.
\stopitemize
%\stoptext

\starttitle[title=Spouštění]
\startitemize
\item \typ{mpv}, \typ{vlc}, ...
\item Alternativa. Na spuštění nelze použít \typ{mpv *}, potřebujeme \typ{--playlist}, nevíme však celkovou spouštěnou délku, nelze snadno skákat v čase. Artefakt při přechodu videí tam však není.
\item Na RPi3B mi nejel \typ{mpv} ani \typ{vlc}, jen \typ{omxplayer}. 
\item RPi4B ještě nemám. :-(
\item \openproblem Lze rozjet \typ{mpv} na RPi? Vypadá to, že ano. \goto{https://nwgat.ninja/installing-mpv-with-hardware-decoding-on-raspberry-pi-1-2-3-zero/}[url(https://nwgat.ninja/installing-mpv-with-hardware-decoding-on-raspberry-pi-1-2-3-zero/)]
\stopitemize

\page
\starttitle[title=Zveřejnění videí]
\startitemize
\item Na uloz.to, viz \goto{https://uloz.to/m/malipivo/fractals}[url(https://uloz.to/m/malipivo/fractals)]. Mají manažer, lze přes Wine. Max. 19900\,MB na soubor; 300\,KB/s stahování bez poplatků. Soubory jsem rozdělil přes \typ{split -b}; spojení přes \typ{cat * > <video>}. Teoreticky lze klikání zvažovat přes \typ{pyautogui} či \typ{xdotool}.
\item Dostal jsem to na archive.org. 86\,GB mkv. Zkontrolovali na malware. Přidali mi během několika dní náhledy (jpg; thumbs), mp4, ogv, metadata (xml, sqlite), torrent a také kontrolní manifest (seznam souborů).
\item Mají manažer \typ{ia} /ajej nebo česky íá/. Viz\\ \goto{archive.org/services/docs/api/internetarchive/}[url(https://archive.org/services/docs/api/internetarchive/)]
\item Sledovatelné přímo na \goto{archive.org}[url(https://archive.org)] (JW Player 8.8.2).
\stopitemize

\page
\starttitle[title=Zveřejnění videí (pokr.)]
\startitemize
\item Zveřejněno 12.\,6.\,2019. Mám první lajk ($\sim$\,28.\,6.\,2019).
\item \openproblem Pokud stahuji soubor po bajtech (nikoliv torrent), některé MP4 lze spustit, některé nespustím. 
\item Poděkování ve FB skupině The Official Electric Sheep / Scott Draves Group:\\ 
Bonus (Seamless "Flock" Videos from Paul Shearing)\\
(These are to be played with a video player,\\ 
not the ES client):\\
\goto{https://archive.org/download/mega-collection-1}[url(https://archive.org/download/mega-collection-1)]
\stopitemize

\page
\starttitle[title=Výstupní prohlídka]
\setupTABLE[frame=on]
% cizi4-orez-cyklu.py vs cizi4-stack.py
\midaligned{\bTABLE
\bTR\bTD\bf Flock\eTD\bTD\bf Velikost (GB) \eTD \bTD \bf Doba (h:m:s) \eTD\bTD \bf Počet AVI\eTD \eTR
\bTR \bTD 00004 \eTD \bTD 10,9 \eTD \bTD 2:52:22  \eTD \bTD 1544 \eTD \eTR
\bTR \bTD 00202 \eTD \bTD 20,1 \eTD \bTD 11:43:49 \eTD \bTD 9746 \eTD \eTR
\bTR \bTD 00243 \eTD \bTD  2,6 \eTD \bTD 1:43:44  \eTD \bTD 1167 \eTD \eTR
\bTR \bTD 00244 \eTD \bTD  36,8 \eTD \bTD  23:26:56 \eTD \bTD 15839 \eTD \eTR
\bTR \bTD 00245 \eTD \bTD  5,2 \eTD \bTD  4:00:15 \eTD \bTD 2703 \eTD \eTR
\bTR \bTD 00247 \eTD \bTD  10,6 \eTD \bTD  7:33:55 \eTD \bTD 5046 \eTD \eTR
\eTABLE}

\page
\ \vfil
\midaligned{Ukázka z konferenční videopozvánky}\par
\midaligned{\bez{přechody}2019-videopozvanka-prechody }

\page
\starttitle[title=Konferenční video]
\startitemize
\item \closedproblem Vrstvení. Umí ffmpeg přes filtry, ale\\ nepoužil jsem to. Nápad byl odletěn do Koše.
\item Tak jsme to spojili, teď to rozpojíme\ldots
\item \typ{ffmpeg -y -i <video> snimek-%05d.png},\\ 
  lze použít \typ{-vframes}.
\item Použil jsem \TeX\ na slajdy, které jsem na úrovni snímků spojil s fraktálovým pozadím.\\
\typ{gs -r400x400 -dSAFER -dNOPROMPT -dNOPAUSE}\\ 
\typ{-dBATCH -sDEVICE=pngalpha -sOutputFile=}\\
\typ{vystupy0/vysledek-%02d.png ../podklady.pdf}
\stopitemize

\page
\starttitle[title=Konferenční video (pokr.)]
\startitemize
\item Přechody jsem připravoval ze dvou obrázků a \typ{convert -morph <počet snímkůsnímků>}. 
\item Klíčové je, že zachovává průhlednost.
\item Lze využít na přechod barevné stránky do černobílé ap.
\item Častokrát je potřeba barvu dostat na průhlednost\\
(ImageMagick, GraphicsMagick, GIMP).
\item Na prodloužení časovač či obrázek sám do sebe.
\item Na začátku a konci videa je přechod z a do plně černého obrázku.
\item Vytažení konkrétní stránky z pdf lze přes \typ{gs} (GhostScript) a hranatou závorku za názvem souboru.
\item Bashem jsem řídil nekonečný cyklus (rotace tučňáka)\\ a~zařazení snímků.
\stopitemize

\page
\starttitle
\startitemize
\item Na kompozici jsem vrstvil png (opakovaně):\\
%\startTEX
\typ{composite <horní vrstva> <pozadí>}\\
\ \ \typ{-gravity northwest -compose over <výstup>}
%\stopTEX
\item Spojení přes \typ{ffmpeg -f concat -i <seznam souborů>}.
\item Struktura seznamu souborů je \typ{file 'soubor'} na každém řádku. Je tak dané pořadí a soubory se mohou opakovat. Uvozovky tam být nemusí, ale je to jistota na soubory s~mezerou v názvu.
\stopitemize

\page
\ \vfil
\midaligned{Ukázka z konferenční videopozvánky}\par
\midaligned{\bez{průhlednost}2019-videopozvanka-pruhlednost }

\page
\starttitle[title=Průhlednost: příprava masky]
\startitemize
\item \bez{Ukázka:}zeme-vedle-sebe \ video Měsíce, vedle sebe s/bez průhlednosti.
\item U takové ukázky může být problém synchronizace videí.
\item Maska vytvořena v GIMPu. Načten libovolný snímek\\ z~videa a odměřen kruh z toho.
\item Užití masky: \typ{composite -compose dst-in <maska>}\\\ \ \typ{<vstup> -matte <výsledek>}
\item Test videa: \typ{mpv <video> --alpha=yes --no-border}\\\ \ \typ{--geometry=209x216+100%+100%}
% --ontop  --ontop-level=system --loop=inf
\stopitemize
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[mesic-maska.png][width=7.5cm]}}%

\page
\starttitle[title=Kresba průhledností]
\startitemize
\item Lze například v Metapostu, příkaz unfill.
\item Já hvězdičky řešil v GIMPu (png+alfa kanál) a výsledek načten zpět do \TeX u.
\item Lze užít jinak nepoužitou barvu a GraphicsMagick.
\item Pokus přes \TikZ\ (preambule dokumentu):
\stopitemize
\startTEX[style={\switchtobodyfont[16pt,tt]}]
\documentclass[a4paper]{article}
\pagestyle{empty}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\tikzstyle{reverseclip}=[insert path=
  {(current page.north east) -- (current page.south east) --
   (current page.south west) -- (current page.north west) --
   (current page.north east)} ]
\stopTEX

\page
\starttitle[title=Kresba průhledností (pokr.)]
Tělo dokumentu:
\startTEX[style={\switchtobodyfont[16pt,tt]}]
\begin{document}
\begin{tikzpicture}[remember picture, overlay]
\path[fill=red, draw, reverseclip] 
  (0,0)--(2,0)--(2,1.5)--(0,1.5)--cycle;
\path[fill=blue, draw, reverseclip] 
  (1,1)--(3,1)--(3,2)--(1,2)--cycle;
\end{tikzpicture}
\newpage
\begin{tikzpicture}[remember picture, overlay]
\path[fill=red, draw, reverseclip]
  (0,0)--(2,0)--(2,1.5)--(0,1.5)--cycle
  (1,1)--(3,1)--(3,2)--(1,2)--cycle;
\end{tikzpicture}
\end{document}
\stopTEX

\page
\ \vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\clip[hoffset=0mm,voffset=2mm, width=8.2cm, height=57mm]{\externalfigure[vadne-01a.png][height=6cm, width=8.5cm]}}%
\hfil
\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\clip[hoffset=0mm,voffset=3mm,width=8.2cm, height=57mm]{\externalfigure[vadne-02a.png][height=67mm,width=8.2cm]}}%
}

\page
\starttitle[title=Rezervy]
\startitemize
\item Na úrovni znaků toto řešení v \TikZ u nefunguje. Musíme na to jinak či přes Metapost.
\item \openproblem Umíme v \TeX u mazat vysázené? Funkce guma chybí. Vyřešilo by mnohé.
\item \openproblem Jak dostat kresbu písma do \TikZ u? Nabízí se konverze (FontForge) a načtení přes svg. První %zdařilé 
pokusy proběhly. Hans Hagen dále  prohlubuje Metapost s \TeX em.
\stopitemize
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[martin-petra-0.png][width=20cm]}}%

\page
\ \vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[p.png][height=13cm]}}%

\page
\StartSteps
\starttitle[title=Můj divný dokument]
Vysázel jsem bílou stranu, nikoliv přes \tex{}{\tt pagecolor\{white\}}. Následně do ní vyřezával objekty. Je to dobře vidět? \NextStep
\par
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[divny-dokument.png][width=13.8cm]}}%
\StopSteps


\page
\ \vfil
\midaligned{Ukázka z konferenční videopozvánky}\par
\midaligned{\bez{náhodnost}2019-videopozvanka-nahodnost }

\page
\starttitle[title=Pseudonáhodná čísla]
\startitemize
\item Nejsou vždy ideální pro přípravu podkladu, kdy nám jde o zachování proporcí.
\item Ukazuje se, že lepší je přístup fyzikální (styl Voronoi) či z počítačové grafiky (procedurální textury).
\item Zleva: pseudonáhodná čísla (random), náhodné umístění do mřížky (jitter) a Poisson Disc Sampling:
\stopitemize
\par
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[nahodna-cisla-1.jpg][width=18cm]}}%

\page
\starttitle[title=Poisson Disc Sampling]
\startitemize
\item Zkoumá vztahy, podobně jako algoritmus SOM z umělých neuronových sítí.
\item Čtivě na \goto{http://devmag.org.za/2009/05/\\03/poisson-disk-sampling/}[url(http://devmag.org.za/2009/05/03/poisson-disk-sampling/)]
\item Mé pokusy o sazbu do spirály přes Lua shrnuji v odpovědi na \goto{tex.stackexchange.com/questions/197389/how-to-fill-random-spaces-with-random-circles-in-tikz}[url(https://tex.stackexchange.com/questions/197389/how-to-fill-random-spaces-with-random-circles-in-tikz)]
\item Zájemci nechť hledají termíny Voronoi / Cellular Noise; Perlin / Simple Noise / Moiré Patterns.
\item Poisson Disk Sampling byl pro \TeX\ zpracován, viz\\ 
\goto{tex.stackexchange.com/questions/185419/\\poisson-disc-sampling-implemented-in-luatex/}[url(https://tex.stackexchange.com/questions/185419/poisson-disc-sampling-implemented-in-luatex/)]
\stopitemize

\page
\starttitle[title=Vzorek ze svatby]
\startitemize
\item Ukázka z nedávné svatby. Písmo je cíleně vyplněno kolečky. \item Odhaduji, že je to řešeno na úrovni písma jako u předchozí ukázky.
\item Pravá nožička písmene R je podezřelá (je tam méně koleček a další jim tam už nevešlo).
\item Je tam zajímavé zaoblení všech ostrých úhlů. Vymazlené!
\stopitemize
\par\smallskip
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[martin-petra-1][width=18cm]}}%

\page
\ \vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[r.png][width=11cm]}}%

\page
%\setuplayout[height=56cm]
\starttitle[title=Létání znaků: nahoru dolů]
\openproblem Sazba na horní linku (styl hindštiny), znaky vizuálně padají (zavěšené prádlo). Jak na to technicky, jaké písmo, jak řešit háčky a čárky, jak verzálky? Možné použití?
\par%\smallskip
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\clip[height=9cm]{\externalfigure[letani2b.png][width=18.3cm]}}}

\page
\starttitle[title=Létání znaků: doleva doprava]
%\startitemize
%\item 
\openproblem Algoritmus na automatický kerning: FontForge umí, ale stále je co zlepšovat. Zde je ruční napojování znaků BDSM black latex ze serveru \goto{www.dreamstime.com}[url(https://www.dreamstime.com/search.php?securitycheck=944d389bd009d0b1d28100c2fc4d6244&firstvalue=bdsm+font&lastsearchvalue=&srh_field=bdsm+black+latex&s_il=y)]. 
\par\smallskip
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[letani1.png][width=17cm]}}%
\vfil\ 


\page
\ \vfil
\midaligned{Ukázka z konferenční videopozvánky}\par
\midaligned{\bez{zakrývání}2019-videopozvanka-zakryvani }

\page
\starttitle[title=Rozhození log distribucí]
\startitemize
\item Velikost stránky jsem si dal poměrně k budoucímu videu, např. u 1920$\times$1080 pixelů, bych si dal 19,2$\times$10,8 centimetrů.
\item Přiskakují a pak ubývají. Sázím věci z minulé strany + nové logo. Při ubývání odebírám. Dvojitý cyklus \tex{foreach}.
\item Rozdělil jsem si obrazovku a rozházel loga do mřížky. Je to předvolené, ale poměrně náhodné.
\item Postupné mizení jsem proházel řádky v \TikZ u:
\stopitemize\par\vskip-2ex
\startTEX[style={\switchtobodyfont[16pt,tt]}]
\foreach \obrazek/\x/\y in {%
  redhat/7/0,scientific/5/2,steamos/2/0,kali/1/1,
    linuxcnc/3/2,mageia/4/0,manjaro/6/1,%
  opensuse/4/2,parrot/6/0,poseidon/3/0,osgeo/5/1,
    mint/2/1,ubuntu/7/2,elementary/1/2,%
  gentoo/7/1,fedora/4/1,arch/5/0,biolinux/1/0,
    cae/3/1,centos/2/2,debian/6/2} {...}
\stopTEX

\page
\starttitle[title=Jak na to jinak?]
\startitemize
\item Zde je \bez{inspirace}mayday \ z kanadského seriálu Mayday.
\item \bez{Ukázka}zeme \ z Blenderu.
\item Scale na 0 (nepoužíval jsem) není násobení a zmizení.
\item Nastavení průhlednosti: Render; v Output nastavit RGBA a v záložce Film nastavit Alpha na Transparent.
\item Lze renderovat přes \goto{příkazový řádek}[url(https://docs.blender.org/manual/en/latest/render/workflows/command_line.html)].
\startTEX
blender -b tux.blend -f 10 -F PNG
blender -b tux.blend -o /tmp/tux/tux_### -a -t 4
\stopTEX
\item Renderovací farmy, např. \goto{SheepIt.}[url(https://www.sheepit-renderfarm.com/)] V červnu 2019 ohlásili 100 milionů obrázků odpovídající tisíc rokům výpočetního času.
\goto{https://www.sheepit-renderfarm.com/}[url(https://www.sheepit-renderfarm.com/)]
\stopitemize


\page
\starttitle[title=3D Tux na Facebook]
\startitemize
\item 3D tučňák/tux je ze serveru \goto{www.sketchfab.com}[url(https://sketchfab.com/3d-models/tux-157de95fa4014050a969a8361a83d366)]. Zahlédl jsem poprvé formát GLTF. Binární formě odpovídá GLB.
\item Nahodil jsem Blender 2.80 místo 2.79. 
\item \goto{Podrobný návod}[url(https://www.antonmansson.com/how-to-make-facebook-3d-posts/)]
\item Import GLTF na první dobrou v pořádku, export nikoliv. Blender si bral Pythona ode mne. U mne visel balíček numpy v Python2, odinstaloval jsem jej.
\item Zůstaly tam artefakty u očí a zobáku, ale mělo by to být řešitelné. První vzorek zveřejněn!
%       https://youtu.be/swhyyiasmRE
%      https://www.antonmansson.com/how-to-make-facebook-3d-posts/
% u exportu: viselo mi tam pycairo (virtualenv, docker),
\stopitemize

\page
\ \vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[tux1.png][height=13cm]}}

\page
\starttitle[title=Postřehy]
\startitemize
\item Add-on FX Text na 2D animování.\\ \goto{http://codeofart.com/text-fx/}[url(http://codeofart.com/text-fx/)]
\item Vizuální programování (Nodes). Procedurální textury. Lze uložit strukturu do JSON a tu editovat mimo Blender.
\stopitemize\par
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[proceduralni-textury.jpg][height=8cm]}}

\page
\starttitle[title=Add-on Sverchok (SV)]
\startitemize
\item /Svječok/ = MATH + MESH + SPLINES + NURBS
\item Tvorba modelů parametricky, založeno na Nodes.
\item \goto{https://github.com/nortikin/sverchok}[url(https://github.com/nortikin/sverchok)]
\item \goto{http://nikitron.cc.ua/sverchok_en.html}[url(http://nikitron.cc.ua/sverchok_en.html)]
\stopitemize
\par
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[sverchok.png][height=7.5cm]}}

\page
\starttitle[title=Add-on Animation Nodes (AN)]
\startitemize
\item Mezník pro animování v Blenderu.
\item Například texty lze měnit a animovat je. Býval to problém.
\item \goto{github.com/JacquesLucke/animation_nodes}[url(https://github.com/JacquesLucke/animation_nodes)]
\item \goto{https://animation-nodes-manual.readthedocs.io/}[url(https://animation-nodes-manual.readthedocs.io/)]
\item Základní tutoriály, Zach Hixson na \goto{YouTube}[url(https://www.youtube.com/playlist?list=PLJSCK4DjIWhk-JIGOIJKLUB1bGXfDBgzZ)].
\item Pokročilé tutoriály, Chris Prenninger na \goto{YouTube}[url(https://www.youtube.com/playlist?list=PLpJWHl1fB7BFX5bxrGofVS5BEj7kOBI95)].
\item Tzv. \bez{showreel.}AN-showreel \ Tento je z roku 2017.
\stopitemize

\page
\starttitle[title=Klasici/YouTubeři Blenderu]
\startitemize
\item Australan Andrew Price a.k.a. \goto{Blender Guru}[url(https://www.blenderguru.com/)]: 
The Cycles \goto{Shader}[url(https://www.blenderguru.com/articles/cycles-shader-encyclopedia)] a~\goto{Modifier}[url(https://www.blenderguru.com/articles/blender-101-modifier-encyclopedia)] a  
\goto{Input}[url(https://www.blenderguru.com/articles/cycles-input-encyclopedia)] Encyclopedia,
videotutoriály (viz \goto{thepiratebay.org}[url(https://thepiratebay.org/torrent/10981165/Andrew_Price_from_blenderguru.com_Blender_Tutorials)]), rozhovory s Blenderisty a tvůrci z 3D grafiky, vyhlašovatel soutěží, blog, podcasty a další. Kniha \goto{The Wow Factor}[url(https://www.loop.la/descargas/librosanim/blender/The Wow Factor Book.pdf)] z něj udělala milionáře (v USD).
\item Bělorus Gleb Alexandrov a.k.a. \goto{CreativeShrimp.}[url(https://www.youtube.com/user/GlebAlexandrov)] Tvorba videotutoriálů typu realistické osvětlení, vesmírné VFX; výuková DVD pro pokročilé.
% Alan Melikdjanian (/ˌmɛlɪɡˈdʒeɪniən/
\item Lotyš Alan Melikdjanian a.k.a. \goto{Captain Disillusion.}[url(https://www.youtube.com/watch?v=1qSTcxt2t74)] Užití Blenderu v podobě VFX efektů. 1,5+ milionů odběratelů, 100+ milionů shlédnutí. Na Patreonu má cíl 10 tisíc USD za měsíc. Plní. Na \goto{Shorty Awards}[url(https://shortyawards.com/)] vyhrává v kategorii Best in Weird (volně: Nejlepší podivnost) za rok 2019.
\stopitemize

\page
\starttitle[title=Midge \quotation{Mantissa} Sinnaeve]
\startitemize
\item Pokročilá práce s modifikátory v Blenderu.
\item Na \goto{YouTube}[url(https://www.youtube.com/user/T4ch1k0ma)] má návody v podobě seriálu Weird Sh!t, Workflow Logs a Live Streams.
\item \goto{https://mantissa.xyz}[url(https://mantissa.xyz)] \ Ke stažení VJ Loops, 8K textury, 3D modely (stromy, ovoce), RandoMesh add-on ap.

\item Tzv. \bez{demo reel.}midge-2018 \ Tento je z roku 2018.
\stopitemize

\page
\starttitle[title=Midge Sinnaeve (pokr.)]
\startitemize
\item 36 Days of Type (2016, 2017, 2018). Vše stáhnutelné.
\item Ukázky znaků A až Z a cifer 0 až 9. %Rok 2016:
\stopitemize
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[midge-2016.png][height=9.5cm]}}

\page
\ \vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[midge-2017.jpg][height=13cm]}}

\page
\ \vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[midge-2018.png][height=13cm]}}

\page
\ \vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[36DOT18_0.png][height=13cm]}}

\page
\ \vfil
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[36DOT18_0-detail.png][height=13cm]}}

\page
\starttitle[title=Zaznamenal jsem\ldots]
\startitemize
\item Starší kurz \goto{Blenderella}[url(https://thepiratebay.org/torrent/6629561/Blender_3D_Character_Modelling_by_Blenderella_Full_Course_\(.MKV\))] (2011): Aneta Šmrhová a.k.a. Anetta Keys, česká pornoherečka, jim stála modelem. Na DVD je zdokumentováno. 35\,let\,/\,165\,cm\,/\,50\,kg\,/\,88-59-88. 
\item Film \goto{Next Gen}[url(https://www.csfd.cz/film/649126-wei-lai-ji-qi-cheng/komentare/)] a.k.a. 
{\pajovo未来机器城}
%Wei lai ji qi cheng 
(Čína/Kanada, 2018) je první komerční film vytvořený jen v Blenderu.
\item U krátkého filmu \goto{Spring}[url(https://cloud.blender.org/p/spring/)] (2019) je v závěrečných titulcích zmíněna renderovací podpora VŠB-TU Ostrava.
\stopitemize
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[aneta.jpg][height=5cm]}%
\,
\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[nextgen.jpg][height=5cm]}%
\,
\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[spring.jpg][height=5cm]}%
}

\page
\starttitle[title=BlenderCloud]
\startitemize
\item \goto{https://cloud.blender.org/}[url(https://cloud.blender.org/)] 
\item Členský přístup za 15 eur/měsíc až po 109 eur/rok.
\item Stáhnutelné produkční věci ke krátkým filmům, obrázky v HDR, textury, workshopy, kurzy ap.
\item Přístup v Blenderu přes Blender Cloud add-on.
\item Zaujal mě Blender Benchmark (obdoba \goto{torture testu}[url(http://texdoc.net/texmf-dist/doc/generic/knuth/tex/tripman.pdf)] v~\TeX u). Vyrenderoval jsem první obrázek (cca 2,5 hodiny) a testy na své šunce ukončil.
\item Mám zakoupen přístup do BlenderCloudu, kdyby někdo něco potřeboval stáhnout (po dobu OSSConf 2019, možná i~poté: to je však bez slibu)\ldots\ Dejte prosím vědět!
\stopitemize

\page
\starttitle[title=\openproblem Running Pipe]
\startitemize
\item Jedna trubka, zaplnit viděný prostor, {\bf bez průniků.}
\item Vy proti Linuxu nic nemáte, že? Tak bych ze spořiče obrazovky xscreensaver užil \bez{Pipes}trubka \ (obr. vlevo).
\item \typ{xscreensaver-command -demo 39}
\item Je to trochu podobné Hilbertově křivce (obr. prostřední).
\item 2D/3D; rovná/křivící se; ne moc náhodná, ne moc bludiště (obr. vpravo; na generování a řešení bludišť \goto{Daedalus}[url(https://www.astrolog.org/labyrnth.htm)]).
\item Při křížení: uhne nová část či se posune již položená?
\stopitemize\par\vskip-1ex
%\startTEX
%xscreensaver &
%killall xscreensaver
%\stopTEX
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[pipes1.jpeg][height=3.9cm]}
\ 
\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[hilbert1.png][height=3.9cm]}
\
\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[daedalus-3dmaze.png][height=3.9cm]}%
}%

\page
\definemathalignment
    [gather]
    [n=1,align={middle}]
\starttitle[title=\closedproblem Running Pipe]
\startitemize
\item Vyřešil jsem v Blenderu. Vzdálenost nového bodu nesmí být blíž k úsečkám než poloměr kolena/potrubí. Zároveň musí být dál než tento poloměr. Podobně nová úsečka nesmí být blíž k již položeným.
\item Dostudovával jsem kvaterniony (prvně je popsal\\ 
W.\,R.\,Hamilton, 1843), v té době v manuálu Blenderu byly vysvětleny, ale hledal jsem detaily. 
\item Je to výhodné pro transformace 3D objektů.
\item Jedná se o rozšíření komplexních čísel:\\
\startformula 
\startgather
\NC i^{2}=j^{2}=k^{2}=ijk=-1,\NR
\NC ij=k,\ ji=-k,\ jk=i,\ kj=-i,\ ki=j,\ ik=-j. \NR
\stopgather
\stopformula
\stopitemize

%\fi

\page
\starttitle[title=Přednášky]
\startitemize
\item \bez{Zaujala}visualizing \ mě \goto{youtube.com/watch?v=d4EgbgTm0Bg}[url(https://www.youtube.com/watch?v=d4EgbgTm0Bg)]
\item A zkoumal jsem i další videa od tvůrců. \goto{Who cares about topology?}[url(https://www.youtube.com/watch?v=AmgkSdhK4K8)] (Inscribed rectangle problem)
\item \goto{Sneaky Topology: The Borsuk-Ulam theorem and stolen necklaces}[url(https://www.youtube.com/watch?v=yuVqxCSsE7c)]
\item \goto{Solving 2D equations using color, a story of winding numbers and composition}[url(https://www.youtube.com/watch?v=b7FxPsqfkOY)]
\item \goto{Divergence and curl: The language of Maxwell's equations, fluid flow, and more}[url(https://www.youtube.com/watch?v=rB83DpBJQsE)]
\stopitemize
\midaligned{%
Logo tvůrce 3b1b\
\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[3b1b.png][height=3cm]}%
\,
\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[pi-1.png][height=3cm]}\
Píthon = $\pi$ + Python
}%

\page
\starttitle[title=3Blue1Brown or 3b1b]
\startitemize
\item Videa tvoří Grant Sanderson, \goto{3blue1brown.com}[url(https://www.3blue1brown.com/)].
\item Technicky zajišťuje Ben Eater, \goto{https://eater.net}[url(https://eater.net/)].
\item Detaily jsou na \goto{https://eater.net/quaternions}[url(https://eater.net/quaternions)].\\ Na tomto webu mě zaujal tento dotaz s odpovědí.
\stopitemize
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[ben-eater-1.png][height=9cm]}}%

\page
\StartSteps
\starttitle[title=Diskuze tamtéž]
\startitemize
\item Klíčová slova: WebGL, three.js, canvas, howler.js, react.js.
\item Výčet by se dal obohatit o d3.js a babylon.js, který má zajímavý sandbox na prohlížení GLTF.
\stopitemize
A hned pod tím bylo napsáno: \quotation{[\ldots] Will/has \framed[location=depth, rulethickness=9mm, width=25mm, frame=off, bottomframe=on]{} (Grants home grown Math Animation tool (available on github)) [\ldots]} \NextStep \par
\bigskip\
\midaligned{{\SmallFont Název nástroje je...}}\par\bigskip
\midaligned{{\LargeFont Fanfáry prosím!}}
\StopSteps

\page
\starttitle[title=]
\ \vfil
\midaligned{manim}

\page
\starttitle[title=Manim]
\startitemize
\item Malý v názvu, ale velký v potenciálu.
\item Velké spojení Pythonu a \TeX u v možnostech.
\item \underbar{M}atematické \underbar{anim}ace. %Animace v matematice. 
\item Popisky v duchu Asymptote.
% Pod dojmem Asymptote s TeXovými popisky jsem uvítal následující:
\item V pip hledejte pod manimlib.
\item Poslední verze na \goto{https://github.com/3b1b/manim}[url(https://github.com/3b1b/manim)]
\item Našel jsem dřívější kurz za 2 kredity u \goto{Mirka Olšáka}[url(http://atrey.karlin.mff.cuni.cz/~mirecek/manim)].
\item Umí živé promítání přes \goto{twitch.tv}[url(https://www.twitch.tv/)].
\item Existuje \goto{manim.js}[url(https://github.com/JazonJiao/Manim.js)].
\item Autoři rozšířili možnosti přes \goto{react.js}[url(https://www.youtube.com/watch?v=-hRi4xUDfXM)]. \bez{Ukázka.}visualizing-react
\stopitemize

\page
\starttitle[title=Manim: Užití]
\startitemize
\item Nejelo mi ze začátku nic! Vůbec nic! Kolikrát se vám to v~životě natrefí? Ale odhodlání to rozjet bylo veliké.
\item Viselo mi na stroji pycairo, obešel jsem \typ{sudo pip3 install manimlib --ignore-installed pycairo}
\item \typ{python3 <muj.py>} nejel, musí se přes řídicí soubor, \typ{python3 -m manim <muj.py>} nebo \typ{python3 ./manim.py <muj.py>}.
\item Nápověda přes \typ{python3 -m manim --help}.
\item Ukázky jsou přes třídy, řešil jsem přes \typ{cat <soubor.py> | grep <třída>}. Obvykle vidíme Scene, GraphScene,\\ 
ThreeDScene, SVGMobject ad.
\item  \bez{Hello World!}SquareToCircle \ (zpomaleno 4$\times$) je \typ{python3 ./manim.py}\\ \typ{example_scenes.py SquareToCircle -pl}
\stopitemize

\page
\starttitle[title=Manim: Spuštění]
\startitemize
\item \typ{python3 -m manim <muj.py> <třídy...> <parametry>}
\item Třídy oddělujeme mezerami.
\item Bez zadání třídy vyběhne nabídka a zadáváme čísla\\ 
oddělená čárkou. Ne všechny třídy jsou takto spustitelné.
\item Hodila se mi rychlovka na test víc věcí {\tt echo }\{{\tt1..10}\} {\tt \| sed "s/ /,/g"}
\item Můj nejoblíbenější příkaz byl \typ{killall python3}, poněvadž občas jsou ukázky s nekonečným cyklem. 
%Nebo jsem zadal, co jsem zadat neměl.
%Nebo jsem nezadal, co jsem zadat měl\ldots
\item Vedle PiCreature má autor k ruce ještě Linuse a StickMana.
\stopitemize\vskip-1ex
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[linus.png][height=3cm]}
\ 
\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[stick_man_wave.png][height=3cm]}
}%

\page
\starttitle[title=Manim: Vybrané parametry]
\startitemize
\item \typ{-p} = preview, otevření souboru po dokončení
\item \typ{-l} \| \typ{-m} \| bez parametru = low \| medium \| high
\item \typ{-t} = transparent, pozadí bude průhledné
\item \typ{-c} = color, pozadí bude mít specifickou barvu
\item \typ{-r} = resolution, rozlišení v pixelech, výška čárka délka
\item \typ{-s} = save the last frame, uloží jen poslední snímek
\item \typ{--livestream} \| \typ{--to-twitch} = živé vysílání
\item \typ{-h} \| \typ{--help} = nápověda
\stopitemize
Výsledky se ukládají do adresáře \typ{media/video}, pak do složky dle názvu skriptu, následuje složka \typ{výška p rychlost}, např. \typ{480p15} znamená \underbar{480} \underbar{p}ixelů je výška obrazu v rychlosti \underbar{15} snímků/vteřinu.

\page
\starttitle[title=Manim: Inspirativní zdroje]
\startitemize
\item Proklepnutí manimu: \goto{Getting Started Animating with manim and Python 3.7}[url(https://talkingphysics.wordpress.com/2019/01/08/getting-started-animating-with-manim-and-python-3-7/)] + podpůrné soubory na\\ \goto{https://github.com/zimmermant/manim_tutorial}[url(https://github.com/zimmermant/manim_tutorial)]
\item Autor Solara5570: \goto{Demo-solara}[url(https://github.com/Solara570/demo-solara.)] Nerozjel jsem skoro nic, o to víc láká se k~tomu vrátit.
\item Autor Theorem of Beethoven: \goto{Animation course with Manim}[url(https://github.com/Elteoremadebeethoven/AnimationsWithManim)], podpořeno \goto{videi na YouTube}[url(https://www.youtube.com/channel/UCxiWCEdx7aY88bSEUgLOC6A/videos)]:
\startitemize
\item Návod na vlastní figurku do videí, řekněme, Omegáčka, \quotation{Number Creature},
\item vychytávky ve složce \typ{extras}: leave progress bars by default,  tex formulas, a hlavně,
\item {\bf render old projects.} Spouštím \typ{python3 -m manim.py old_projects/<soubor.py> <další parametry>}
\stopitemize
\stopitemize

\page
\starttitle[title=Poklad vedle \typ{active_projects}]
\startitemize
\item Autor skvěle zachází s Pythonem, když už se projekt\\ nepodaří rozjet, stojí za projití zdrojového kódu.
\stopitemize
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[manim-poklad.png][height=10.5cm]}}%

\page
\starttitle[title=Manim: Proč projekty nejedou?]
\startitemize
\item Manim hodně vyvíjí (2018/2019). Některé projekty, hlavně skrz přepracovaný kód u animací, neběží.
\item V kódu \typ{from big_ol_pile_of_manim_imports import *} je potřeba přepsat na \typ{from manimlib.imports import *}, tipuji pozůstatek po přechodu z Python2 na Python3.
\item \typ{manim.py} je řídicí soubor, spouštění přímo z \typ{old_projects} nejede, tam takový soubor není.
\item Některé funkce doznaly změn, přepisoval jsem parametry \typ{("()()")} na \typ{("(",")","(",")")}. Např. v \typ{quat3d.py}, scéna \typ{ComplexNumberRotation}.
\item Občas kód proběhl, ale nespojil dílčí videa do jednoho souboru. Použil jsem \typ{mpv *} na rychlé přehrání či \typ{ffmpeg} na trvalé spojení. Srovnat s jiným kódem a přepsat zdroják?
\stopitemize

\page
%\starttitle
\ \vfil
\midaligned{Python se má rád, je to tam jedno selfie za druhým.}\par
\midaligned{Hemží se to tam samým \typ{self,} \typ{*self,} \typ{**self,}% se to tam jen hemží
\ \ldots
}\par\medskip
\midaligned{Manim: Vzorkovník alias Manimovník}\par
\midaligned{Pozn. Tohle je ovoce Manimovníku (chutná po tuši,\\ ideální nestandardní značka na zakončení důkazu)\ldots}\par
\midaligned{\bez{\framed[corner=00,color=black,background=color, backgroundcolor=magenta, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[tecka.png][height=7.8cm]}}manimovnik }%

\page
\starttitle
\vskip1cm
\midaligned{\LargeFont Text a matematika}

\page
\startitle 
\vskip2cm
\midaligned{\LargeFont Grafika ve 2D}

\page
\starttitle 
\vskip3cm
\midaligned{\LargeFont Základní 3D grafika}

\page
\starttitle 
\vskip4cm
\midaligned{\LargeFont Pokročilá 3D grafika}

\page
\starttitle
\vskip5cm
\midaligned{\LargeFont\color[red]{Pájo, zpátky ke stroji!}}



\page
\starttitle[title=Manim: Vzorkovník]
\startitemize
\item Za programátorskou sekci proběhly Hanojské věže.
\item Za GIS sekci proběhly \typ{EulerAngleAndGimbal,} \ldots 
%a RotationsIn3d.
\item Za učitelskou sekci %vzorce 
\typ{SolveGeneralQuadraticEquation,} \ldots
\item Za typografii texty ve 3D. A co se mi připletlo do cesty\ldots
\item Nyní lze na dálku videa spouštět a časovat (\typ{bash}, \typ{kill}).%či rovnou střílet (\typ{kill}).
\item \openproblem\closedproblem Nepřekrývající se okna/ obdélníky/ části (popisky v Měsíci). Algoritmus kontroluje obdélník nad/pod a vlevo/vpravo od druhého. Více viz \goto{Find if two rectangles overlap.}[url(https://www.geeksforgeeks.org/find-two-rectangles-overlap/)]
\stopitemize
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[mesic-vysek.png][height=3cm]}}%

\page
\starttitle[title=Otázky sám sobě]
\startitemize
\item Nebude zlobit diakritika, lze zasáhnout do preambule?
\item Lze přepnout pdf\TeX\ na Xe\TeX\ či jiný formát?
\item Pojede japonština a podobné východní jazyky?
\item Lze získat vektorový výstup daného snímku (SVG)?
\item Je možnost (de)aktivovat antialiasing?
\item Půjde zařadit grafiku z \TikZ u, Metapostu či PSTricks?
\item Můžeme užít grafiku z matplotlib (např. networkx)?
\item Lze zařadit video z jiného zdroje?
%\item Lze rovnici automaticky rozseknout?
\item Dá se pohybovat po spirále?
%\item lze jednou zaTeXovat a získat všechny dílčí části (podobně měření délek u tikzu v R)
\stopitemize

\page
\starttitle[title=Některé odpovědi sám sobě]
\startitemize
\item Dle návodů jsem do videa postupně dostal text, rovnice, 2D i 3D animace, zvuk a svg obrázek.
\item \bez{Ukaž!}striz-moda-live \ Zkusil jsem si vlastní text a transformace.
\item \bez{Ukaž!}striz-japonstina \ Po odklonění \typ{manimlib/tex_template.tex}
%(\TeX ová šablona) 
se 
\\aktivovala šablona \typ{manimlib/ctex_template.tex}\\ 
se Xe\TeX em. 
%Neměl by být problém 
Zásahem %Lze zasáhnout 
do \typ{utils/tex_file_writing.py} se lze přepnout se kamkoliv. Vyzkoušel jsem takto CJKV.
\item \bez{Ukaž!}striz-zarazeni-tikzu \ \TikZ\ se mi podařil do animace dostat, ale jen křivky, nikoliv sílu linek a barvy se vyply. Nastavil jsem až v Manimu. Možná zkusit cestu přes pdf do svg (pstoedit, inkscape)? Manim užívá \typ{dvisvgm}.
\item \bez{Ukaž!}striz-rovnice \ Na závěr jsem zkusil transformaci rovnice. Něco pro novou generaci. Následuje zdrojový kód.
\stopitemize

\page
\starttitle[title=Ukázka kódu v Manimu]
\vskip-2ex
\startTEX[style={\switchtobodyfont[16pt,tt]}]
from manimlib.imports import *
class Rovnice(Scene):
  def construct(self):
    sum1=TextMobject(r"$$\sum_{i=0}^{n}{n\choose i}
     a^{n-i}b^i = (a+b)^n$$")
    sum1.scale(2)
    sum1.to_edge(UP)
    sum1.set_color(BLACK)
    self.play(Write(sum1),run_time=3)
    self.wait(1)
    sum2=TextMobject(r"$$\mathwitch*_{i=0}^{n}{n\choose i} 
     \mathrightghost^{n-i}\mathleftghost^i\xrightwitchonbroom*{} 
     (\mathrightghost+\mathleftghost)^n$$")
    sum2.scale(1.75)
    sum2.to_edge(DOWN)
    sum2.set_color(BLACK)
    self.play(ReplacementTransform(sum1.copy(),sum2),run_time=6)
    self.wait(4)
\stopTEX

\page
\starttitle[title=Na pokusy]
\vskip-1ex
\startitemize
\item \openproblem Na jedné straně obrazovky by to chtělo při spuštění videa vidět zdrojový kód bloku v Pythonu.
\item \openproblem Jak připravit aktuální čas či zbývající čas přednášky (digitální hodiny)? JavaScript a v okně bez rámu? Lze zobrazit webovou stránku s průhledným pozadím (občas je to vidět u terminálu)? Užít Manim, C++ či Python s Qt5?
\item \openproblem Rád bych analogové hodiny 150$\times$150 pixelů, bez rámu okna, s průhledností. Nápad je zkusit video, kdy jeden snímek bude jedna vteřina (obří soubor). Nebo lépe 4 vrstvy: základ hodin (1 snímek) a ručičky pro hodiny (12 snímků), minuty a vteřiny (60 snímků).
\item \openproblem Je možné mít v Linuxu neobdélníkové okno? Např. kruhové, eliptické, ale obecně jakékoliv dle masky?
\stopitemize

\page
\starttitle[title=Závěrem odpočinková matematika]
\closedproblem Ve významu tečky/trojúhelníku na závěr.

V rádiovém bloku Audio, Math Education \& Programming Animation Software hovoří Grant Sanderson na téma Math Education & Programming Animation Software, slyšte na \goto{www.youtube.com/watch?v=pHwzy7Y3Qa0}[url(https://www.youtube.com/watch?v=pHwzy7Y3Qa0)], je zmínka o YouTuberovi Numberphileovi. Ten si půjčil problém (Rug Puzzle, autor Andris Bērziņš). Problém zní: kolik je možné napočítat trojúhelníků? Lze je všechny vykreslit?\par
\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[trojuhelniky-zadani.png][height=46mm]}}%

\page
\starttitle[title=Na řešení se nedívejte\ldots]
\vskip-1ex
\midaligned{%
\bez{\framed[corner=00,color=black,background=color, backgroundcolor=magenta, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[trojuhelniky-reseni.png][height=80mm]}}zaver
}%

\setupalign[middle]
\smallskip

Řešení Bena Eatera (2018) přes JavaScript:\\
\goto{https://github.com/beneater/rug-puzzle}[url(https://github.com/beneater/rug-puzzle)]

Řešení Klebera Lopese da Silvy (2018), JavaScript; jen výpočet:
\goto{https://github.com/kleber-swf/rug-puzzle}[url(https://github.com/kleber-swf/rug-puzzle)]

\page
\starttitle
\ \vfil
\midaligned{\bf Děkuji za pozornost! Hezký den!}\par
\midaligned{\goto{\tt pavel@striz.cz}[url(mailto:pavel@striz.cz)]}
\bigskip

\midaligned{\framed[corner=00,color=black,background=color, backgroundcolor=black, backgroundoffset=3pt, frame=off,boffset=-1ex]{\externalfigure[piaci.png][width=170mm]}}%
\par
\midaligned{Už mi říkají, abych odletěl\ldots}

\stoptext

