13. 1. 2025

Vedoucí

Firmu vede
od desíti
k pěti.
Ví to velcí,
ví to malé
děti.

V tomto stavu,
milá sestro,
bratře,
už jsme na dvou,
maximálně
na třech.

Chce to sílu,
chce to pevnou
vůli
zabránit mu
dosažení
nuly.

23. 12. 2024

Úklidová

Robotický
vysavač – no
to je poklad
v domě.

Chtěl uklidit
spadlý řetěz,
shodil celý
stromek.

22. 12. 2024

Předvánoční

Je cítit
jehličí,
příjemné
emoce,
to mezi
vločkami
blíží se
Vánoce.

Máma i
táta jsou
v radostném
rozmaru,
ozdobí
stromeček,
okno i
almaru.

Ba i ty
sýkorky
schované
v krmítku
radostně
zobají
vánoční
nabídku.

Všude jen
úsměvy,
laskavé
pohledy,
gramofon
potichu
přehrává
koledy.

Do ticha
ozve se
zvolání
svědecké:
„Kdo sežral
v kuchyni
veškeré
linecké?!“

20. 12. 2024

Fyzikální

Pan a paní
Maxwellovi
na vánočním
banketu
pozřeli ne-
prozřetelně
každý půlku
magnetu.

Pan Maxwell je
přitahován
ke své ženě
velice,
nedokáže
dodržeti
společenské
hranice.

Stalo se to
na banketu
a ne za zdmi
ložnice:
takto vznikly
o Vánocích
Maxwellovy
rovnice.

23. 12. 2021

Ředitelská

Nikdy jsem nic
neuměl,
všichni se mi
smáli.
Teď se na ně
na všechny
dívám z výšky,
z dáli.

Teď jsem já pan
ředitel
a oni jsou
nuly.
Já si kouřím
doutníky,
oni Startky
hulí.

Teď jsem já pan
ředitel,
ne jak jiní
mnozí.
Já si řídím
bavorák,
je škodovka
vozí.

Nikdy jsem nic
neuměl,
co však na tom
sejde?
Teď jsem já pan
ředitel,
táhni z cesty,
šmejde!

Manažerská

Na zlatém
podnose
nese se
kančí,
na horní
palubě
čile se
tančí.

Do lodi
zatéká,
posádka
jančí,
na horní
palubě
pořád se
tančí.

Moc pozdě
nastalo
vystřízli-
vění.
A horní
paluba…
už dávno
není.

1. 6. 2021

Quine–McCluskey & Wolfram language

Potřebujeme minimalizovat logickou funkci, která pro hodnoty 1, 2, 3, 4, 5, 6 a 10 vrací 1, pro 11 a 14 může vracet cokoliv, a pro zbývající hodnoty vrací nulu. K výpočtu minimální logické funkce se používá Quine–McCluskey algorithm. Ve Wolfram language ho zavoláme následujícím způsobem:

BooleanMinimize[BooleanFunction[Reverse[{0,1,1,1,1,1,1,0,0,0,1,_,0,0,_,0}]]][a,b,c,d]

Dostaneme:

(!a && b && !d) || (!a && !c && d) || (!b && c)

Pomocí BooleanFunction si vytvoříme logickou funkci, které předložíme seznam očekávaných hodnot. Pozor, funkce očekává hodnoty v obráceném pořadí, proto musíme použít Reverse. Pomocí BooleanMinimize pak vypočítáme minimalizaci logické funkce. Výrazem [a,b,c,d] do obecné logické funkce dosadíme konkrétní jména proměnných.

25. 4. 2021

Jak nainstalovat, nakonfigurovat a používat Poetry

Poetry je správce softwarových projektů napsaných v jazyce Python. Chová se velmi podobně jako Cargo, což je správce projektů v jazyce Rust.

Poetry nainstalujeme na Windows následujícím příkazem:

(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -

V případě konfliktů mezi různými verzemi Pythonu je možné závěrečný příkaz python nahradit absolutní cestou k souboru python.exe.

Nakonfigurujeme Poetry tak, aby se virtuální prostředí vytvářelo vždycky v aktuálním projektu:

poetry config virtualenvs.in-project true

Poetry máme nainstalováno a nakonfigurováno a můžeme ho začít používat.

Založíme nový projekt:

poetry new PROJNAME

Skočíme do vytvořeného adresáře:

cd PROJNAME

Přidáme projektové závislosti:

poetry add PKG1 PKG2 PKG3

Přidáme vývojové závislosti:

poetry add -D PKG4 PKG5 PKG6

Potřebné informace jsou uloženy v souboru pyproject.toml. Ten můžeme vložit repozitáře jako součást projektu. Na jiném počítači pak z tohoto souboru vytvoříme potřebné prostředí příkazem:

poetry install

V takovém prostředí můžeme spouštět libovolné příkazy takto:

poetry run ANYCOMMANDYOULIKE

7. 2. 2021

Aktivace lokálního prostředí nodejs v PowerShellu

Příkaz npm init vytvoří soubor package.json s nastavením projektu. Příkaz npm install nainstaluje závislosti projektu do adresáře node_modules. Spustitelné programy jsou uloženy v adresáři node_modules\.bin. Bohužel přímé spouštění těchto programů s cestou (např. node_modules\.bin\sass) nefunguje správně. Je potřeba toto lokální prostředí „aktivovat“, tj. zařídit, aby se cesta node_modules\.bin dostala do systémové proměnné PATH. Jednou z možností, jak to zařídit, je příkaz PowerShellu:

$Env:Path += ";$(npm bin)"

Po jeho vykonání můžeme spouštět programy nainstalované pomocí npm install bez cesty a všechno funguje správně.

6. 2. 2021

Výměna HD za SSD

Jak převést obsah starého pomalého a odcházejícího disku na nový rychlý SSD tak, aby zůstala zachována instalace Windows a všech programů a licencí?

Z USB flash disku zavedeme a bez instalace spustíme Ubuntu Desktop, takže můžeme využívat plný sortiment linuxových nástrojů. Který z nich ale vybrat?

Můžeme kopírovat celé disky stejným způsobem, jako kopírujeme soubory (sudo /dev/sda /dev/sdb), ale při prvním čtení prvního vadného sektoru ze zdrojového disku příkaz selže a není možné ho donutit k pokračování. Nebo je možné použít příkaz blokového kopírování (sudo dd if=/dev/sda of=/dev/sdb), který umožňuje ignorovat vadné bloky, ale zase je otázkou, jakou nastavit velikost kopírovaných bloků. Příliš malá velikost (např. 512 B) povede k dlouhé době kopírování, příliš velká velikost povede k přeskakování takto velkých bloků i v případě, že je v nich vadný byť jen jediný sektor.

Naštěstí existuje příkaz ddrescue. Tento příkaz se nejprve pokusí kopírovat celý obsah pomocí velkých bloků. Pokud kopírování některého bloku selže, jeho pozice se zapamatuje, ale kopírování běží dál až do konce. V dalším kole dochází ke kopírování problematických bloků po menších a menších částech, až se nakonec kopírují jednotlivé sektory. Tímto způsobem je program schopen fungovat rychle a efektivně, ale zároveň nedojde ke zbytečným ztrátám dat.

Použitá varianta příkazu

ddrescue -f -r3 /dev/sda /dev/sdb mapfile

správně zkopírovala celý obsah HD na SSD až na jediný vadný sektor.

13. 10. 2018

Fedora na Raspberry Pi – rozšíření souborového systému

Pokud chceme na Raspberry Pi 3B+ nainstalovat linuxovou distribuci Fedora, je dobré se řídit příslušným návodem. V případě, že použijeme manuální postup přenosu instalačního obrazu na SD kartu, nedojde po nastartování systému k automatickému rozšíření souborového systému na celou velikost SD karty a toto rozšíření musíme zajistit sami. Na výše uvedené stránce je uveden takovýto postup:
# enlarge the 3rd partition (this example uses mmcblk0)
growpart /dev/mmcblk0 3
# grow the volume to take up the rest of the disk
resize2fs /dev/mmcblk0p4
# extend the root filesystem to take up the space
# just added to the volume that it is in
lvextend -l 100%FREE /dev/mapper/fedora-root
# resize root partition for the server image (which uses xfs)
xfs_growfs -d /
Příkaz growpart nefunguje a musíme ho nahradit příkazem sfdisk, do kterého je nutno ručně zadat ", +" (tj. čárka, mezera, plus, bez uvozovek), jak je popsáno v článku Resize by sfdisk. Příkaz resize2fs také negunguje a musíme ho nahradit příkazem pvresize. Výsledná posloupnost příkazů je pak:
sudo sfdisk -N 3 /dev/mmcblk0 --force
sudo pvresize /dev/mmcblk0p3
sudo lvextend -l 100%VG /dev/mapper/fedora-root
sudo xfs_growfs -d /
Tento postup skončí úspěšně.

8. 4. 2018

Linux na emulovaném procesoru ARM64

Mějme linuxovou distribuci Fedora 27 nainstalovanou na 64bitovém procesoru Intel nebo AMD. Pomocí emulátoru QEMU můžeme vytvořit virtuálním počítač s emulovaným 64bitovým procesorem ARM, na kterém běží linuxová distribuce Fedora 27. Nejprve si na hostitelském počítači nainstalujme potřebné softwarové balíčky.
sudo dnf install edk2-aarch64 libguestfs-tools-c qemu-system-aarch64
Poté spusťme vytvoření a instalaci virtuálního počítače.
sudo virt-install \
      --name Fedora_27_AArch64 \
      --ram 2048 \
      --arch aarch64 \
      --disk size=8 \
      --os-variant fedora22 \
      --location https://dl.fedoraproject.org/pub/fedora-secondary/releases/27/Everything/aarch64/os/ \
      --extra-args "inst.ks=https://pwhalen.fedorapeople.org/kickstarts/Fedora-Minimal-AArch64.ks"
Poslední parametr zapíná KickStart, tj. použití předchystaných odpovědí pro instalační program, aby je člověk nemusel zadávat ručně a instalace proběhla automaticky. Výše uvedená konfigurace vytváří administrátorský účet „root“ s heslem „fedora“. Existenci nainstalovaného virtuálního počítače můžeme zkontrolovat příkazem virsh.
virsh --connect qemu:///system list --all
Stejným příkazem můžeme virtuální počítač následně ovládat. Z hostitelského počítače se do virtuálního počítače můžeme připojit příkazem ssh. Virtuální počítač vzhledem k softwarové emulaci není příliš rychlý, ale běží v něm standardní distribuce Fedora 27 a všechno funguje běžným a známým způsobem.

20. 1. 2018

Vzestupná

Déšť dopadal
zespoda mi
na tělo,
to když v létě
z ničeho nic
vzpršelo.

Sníh obarvil
nohavice
na bílo,
to když v zimě
překvapivě
vzsněžilo.

4. 1. 2018

Nepřesná

Z tváře ti slíznu
slzu, milá,
jež se tam náhle
objevila.

Z reakce tvojí
poznám brzy:
není to tvář a
nejsou slzy.

Přiznávám uvnitř
zpovědnice,
že jsem měl špatné
souřadnice.

25. 12. 2017

O zlatém prasátku

Ty ses včera,
milý zlatý,
zase zlil jak
prase!

Slíbils, že to
neuděláš,
udělals to
zase.

23. 12. 2017

Hudební

Vločky se
snášejí,
na houslích
tají,
houslisté
namrzlé
hmatníky
mají.

Cellista
zoufalý
v každičkém
ohledu,
bodec mu
úplně
zamrzl
do ledu.

Klarinet
nehraje,
má volno –
svátek,
v mrazu mu
k hubičce
přimrzl
plátek.

Hornista
potichu
modlí se
k Bohu,
rampouch mu
vypadl
z lesního
rohu.

Trubka je
ve skladbě
pozadu
místy,
těžko je
zmáčknouti
zamrzlé
písty.

Varhaník
vytváří
zoufalé
grimasy,
klávesy
hrají mu
nechtěné
dvojhlasy.

Jenom pan
dirigent
vypadá
vesele,
mává si
rukama,
teplo mu
po těle.

Koncert se
povedl,
publikum
souhlasí;
Česká mše
vánoční
v mrazivém
počasí.

6. 12. 2017

Hornická

Znaje dobře
peněz cenu,
běžím těžit
kryptoměnu.

A ač těžím
v jednom kuse,
těžím s křížkem
po funuse.

23. 11. 2017

Nákupní

Kup mi harddisk
jeden tera
a jednoho
jesetera.
Zkumavky jsme
vzali včera,
rajčata dnes
koupí dcera.

14. 11. 2017

Genderová

Zavrhneš
rozdíly
biolo-
gické,
kritiky
označíš
za zpáteč-
nické.

Už nikdy
nenazveš
pravými
jmény
ni žádné
muže a
ni žádné
ženy.

Namísto
bývalých
mužů a
žen
jednotní
lidé tu
zůstanou
jen.

16. 9. 2017

Geometrická

Ač mi nikdo nevěří,
měl jsem v noci zvláštní sen.
V tom snu ležel v příšeří
pravidelný pětistěn.