„Slidy“ z mého workshopu na Installfestu. K dispozici i ve formě org-mode zdrojáku, jen je potřeba změnit příponu z .txt na .org.
Table of Contents
About
- ASCII by mělo být spíš UTF-8, ale to nezní tak „cool“ :-)
- O mě
- Pracuji na ČVUT, FEL
- Embedded systémy (≈ low-level stuff)
- Emacs používám od r. 1998
- Patřím k lidem, kteří v Emacsu žijí
- Vim používám také a nic proti němu nemám :-)
Org-mode
- Pokud je Emacs označován jako operační systém, org-mode bychom mohli nazvat kancelářský balík
- Outliner
- Základní funkcionalita; snaha je, aby další funkce nekomplikovaly použití org-mode jako outlineru.
- Značkovací jazyk (markup)
- Prostředí pro přípravu textových dokumentů
- Tabulkový kalkulátor
- Kalendář, plánovač, organizér
- a určitě mnoho dalšího…
- Dokumentace: «C-h i d m org RET»
- Nekonečné možnosti konfigurace
- «M-x customize-group RET org RET»
Outliner
- Nadpisy
^*+
- M-RET – nový nadpis
- M-šipky, M-S-šipky – změny úrovně či pořadí
- C-c C-u – o úroveň výš, C-c C-j – skok, info:org#Motion
- Schovávání: TAB, S-TAB
- Seznamy
- odrážkové, číslované, …
- S-←,→
- Mnohé klávesové zkratky stejné jako u nadpisů
- Konverze «C-c *», «C-c -»
Značkovací jazyk (markup)
- Tučné, kurzíva, podtrženo
verbatim
,přeskrtnuto,kód
α, - Tabulky – nejsnadnější zadávaní jednoduchých tabulek do počítače
| xxx | yyy «TAB»
- Obrázky:
[[./file.jpg]]
- Příklady, zdrojáky se zvýrazňováním syntaxe
- Zkratky:
<e «TAB»
,<s «TAB»
- Zkratky:
Příklad
print("String " + number)
Odkazy
[[cíl][popis]]
nebo[[cíl]]
- Web Installfestu «C-c C-l», «C-c C-o»
- Cíle odkazů
„Rádiové cíle“:
<<<rádio>>>
rádioPříklad: Rádio bylo vynalezeno roku 1893.
Organizace
- Todo – každý nadpis může být položkou „TODO“ «S-←,→»
- Seznam stavů je konfigurovatelný
- «C-c a t» – all TODOs = agenda
- Seznam souborů pro tvorbu agendy (např. jeden .org soubor pro projekt)
- Scheduled/deadline: C-c C-s, C-c C-d
- «.» = dnes, «S-šipky»
- Rozumí i textu: např. „May 1“ nebo „Wed“
- Záznam odpracovaného času na úkolech «C-c C-x C-i», «C-c C-x C-o»
- Souhrn splnění podúkolů
[/]
,[%]
[ ]
Checkboxy «C-c C-c»- Tagy u nadpisů :tag:, «C-c C-c»
- hledání podle tagů: «C-c a m»
Rychlý záznam TODO (capture)
- Vyžaduje konfiguraci
- Globální klávesa «C-c c»
- Šablony - předvyplněný obsah, kam se má „TODO“ uložit
(setq org-capture-templates '(("t" "Todo" entry (file+headline "~/org/gtd.org" "Tasks") "* TODO %?\n %i\n %a") ("j" "Journal" entry (file+datetree "~/org/journal.org") "* %?\nEntered on %U\n %i\n %a")))
Export
- «C-c C-e»
- Plain text, HTML, OpenDocument, …
- Relativně snadná tvorba vlastních exportů (např. Doxygen)
- Nastavení exportu v hlavičce – «C-c C-e #»
Babel
- Práce se zdrojovými kódy
- Podpora více jazyků v jednom dokumentu a interakce mezi nimi
- „Literate programming“
- „Reproducible research“ (executable documentation)
for i in $(seq 3); do date; sleep 1; done ls -l
Výsledky vidíme níže:
Wed 8 Mar 10:44:56 CET 2017 Wed 8 Mar 10:44:57 CET 2017 Wed 8 Mar 10:44:58 CET 2017 total 24 -rw-r--r-- 1 wsh wsh 6696 Mar 5 21:52 graph.png -rw-r--r-- 1 wsh wsh 6232 Mar 8 10:42 index.org -rw-r--r-- 1 wsh wsh 6232 Mar 8 10:44 org-mode.txt
- Editace: «C-c ’»
- Spuštění: «C-c C-c»
- Argumenty v hlavičce
- :results verbatim drawer
Babel example
Run the benchmark (shell script) on a remote server:
mbw -a -q 10 | awk '{ print $1, $3, $9 }'
0 | MEMCPY | 2193.945 |
1 | MEMCPY | 2334.267 |
2 | MEMCPY | 2368.546 |
3 | MEMCPY | 2396.358 |
4 | MEMCPY | 2411.382 |
5 | MEMCPY | 2417.211 |
6 | MEMCPY | 2434.867 |
7 | MEMCPY | 2436.054 |
8 | MEMCPY | 2433.682 |
9 | MEMCPY | 2460.025 |
0 | DUMB | 2494.388 |
1 | DUMB | 2513.826 |
2 | DUMB | 2511.301 |
3 | DUMB | 2508.781 |
4 | DUMB | 2506.894 |
5 | DUMB | 2510.67 |
6 | DUMB | 2508.151 |
7 | DUMB | 2518.892 |
8 | DUMB | 2475.86 |
9 | DUMB | 2465.483 |
0 | MCBLOCK | 3248.863 |
1 | MCBLOCK | 3172.589 |
2 | MCBLOCK | 3161.555 |
3 | MCBLOCK | 3175.611 |
4 | MCBLOCK | 3184.713 |
5 | MCBLOCK | 3174.603 |
6 | MCBLOCK | 3164.557 |
7 | MCBLOCK | 3170.577 |
8 | MCBLOCK | 3166.561 |
9 | MCBLOCK | 3188.776 |
Gnuplot code to plot the results of the above command.
set key right bottom Left set grid set title "mbw results" set xlabel "Attempt" set ylabel "Bandwidth [MiB/s]" set style data lp set yrange [0:] plot "< grep MEMCPY ".data using 1:3 title "MEMCPY", \ "< grep DUMB ".data using 1:3 title "DUMB", \ "< grep MCBLOCK ".data using 1:3 title "MCBLOCK"
Properties
- «C-c C-x p»
- Key-value přiřazené k nadpisu
- Může měnit různé nastavení pro danou sekci
- Lze používat i jako jednoduchou databázi (hledání podle properties apod.)
- Column view «C-c C-x C-c»