Generated by All in One SEO v5.0.0.1, this is an llms.txt file, used by LLMs to index the site. # Ondřej Veselý DiS ## Sitemaps - [XML Sitemap](https://www.ondrejvesely.cz/sitemap.xml): Contains all public & indexable URLs for this website. ## Příspěvky - [Blog](https://www.ondrejvesely.cz/blog/) - [Shrnutí možností využití Ai v DevOps](https://www.ondrejvesely.cz/shrnuti-moznosti-vyuziti-ai-v-devops/) - LLM mají univerzální využití ve všech oblastech života, stejně tak i v DevOps. A protože v Cetinu před nějakou dobou vzniklo oddělení zaměřené na Ai, požádal jsem je o přístup k API v Azure OpenAI, čemuž bylo vyhověno. A protože mi bylo řečeno, že mám o svém Ai PoC v DevOps napsat nějaké pojednání, rozhodl - [Pokročilejší práce s gitignore](https://www.ondrejvesely.cz/pokrocilejsi-prace-s-gitignore/) - Výpis všech souborů, které git ignoruje: git ls-files . --ignored --exclude-standard --others Výpis nesledovaných (untracked) souborů: git ls-files . --exclude-standard --others Zdroj: How to check all your untracked git files in the terminal Pravidla pro sledování mých konfiguráků a ničeho jiného: Git z výkonostních důvodů rekurzivně neprochází všechny adresáře a neaplikuje na ně pravidla, jak - [Mitigace CVE s využitím AI a DevSecOps](https://www.ondrejvesely.cz/mitigace-cve-s-vyuzitim-ai-a-devsecops/) - Motivace V návaznosti na zákon o kybernetické bezpečnosti a s cílem zlepšit bezpečnost aplikací, je potřeba ve firmách zavádět principy DevSecOps. Přičemž, jednou z klíčových aktivit DevSecOps je skenování kontejnerových image na známé zranitelnosti a chyby (CVE – Common Vulnerabilities and Exposures). Největší výzvou v tomto procesu je práce se závislostmi třetích stran, které jsou - [Mazání hesel a souborů z historie gitových repozitářů](https://www.ondrejvesely.cz/mazani-hesel-a-souboru-z-historie-gitovych-repozitaru/) - Někdy se stane, že se do gitového repozitáře dostane nějaké to heslo, nebo soubor, který tam být nemá. Zde je návod, jak se s tím vypořádat. Stáhneme si Githubem doporučený BFG Repo-Cleaner Smažeme z repozitáře soubory, které chceme smazat z historie. To samé s hesly. Důležité je, aby to co chceme smazat nebylo v HEAD - [VS Code přepisuje taby na mezery?](https://www.ondrejvesely.cz/vs-code-prepisuje-taby-na-mezery/) - Nikdy jsem to moc neřešil, ale dnes jsem zjistil, že mi VS Code přepisuje tabulátory na mezery. Zjistil jsem to tak, že jsem si hrál s code-checker(em) Davida Grudla a ten mi dokola vypisoval při analýze "Used space to indent instead of tab" a to i tehdy, když jsem mezery nahradil tabulátorem. Pročpak asi? Mít - [Chyby Xdebug v Dockeru](https://www.ondrejvesely.cz/chyby-xdebug-v-dockeru/) - Pokud xdebug_info() vyhazuje chybu: Creating socket for 'host.docker.internal:9003', getaddrinfo: Invalid argument. Spočívá řešení v úpravě docker-compose o přidání položky k PHP image extra_hosts: -"host.docker.internal:host-gateway" Po rebuildu containeru je vše funkční. - [Jak získat heslo z programu Filezilla?](https://www.ondrejvesely.cz/jak-ziskat-heslo-z-programu-filezilla/) - Toto je jen taková rychlá poznámka, která snad někomu pomůže. Osobně jsem se s tím docela vyvztekal, protože ... Jak tedy vydolovat heslo z Filezilly? Jednoduše. Stačí si vyexportovat přihlašovací údaje. Ty se ukládají jako XML, tedy jako čitelný text. Vyexportovaný soubor si pak otevřete a hledejte podobné: TmVjZWthcywgemUgdGkgcmVrbnUgc3ZvamUgaGVzbG8sIHplPw== Jak asi chápete ze zápisu, - [Síťová maska jako řešení problémů s Android hotspotem](https://www.ondrejvesely.cz/sitova-maska-jako-reseni-problemu-s-android-hotspotem/) - Android je bezpochyby dobrý systém, nicméně jedna z věcí, co mi na něm vadí je ta, že u WiFi hotspotu běží DHCP, které docela umíněně mění IP adresy na něj připojených zařízení. Normálnímu userovi to je jedno, ale když si potřebujete propojit linuxové počítače a nastavit na nich NFS pro sdílení tak můžete mít docela - [Bypass bezpečnostních omezení skriptů](https://www.ondrejvesely.cz/bypass-bezpecnostnich-omezeni-skriptu/) - PowerShell má takovou pitomou vlastnost, že jde poměrně snadno obejít bezpečností omezení spouštění skriptů, které je dle MS jen pro zabránění náhodného spuštění skriptu. Hrozná kravina, že, když už někdo něco spouští, tak je to vždy záměrná akce. Až na výjimky, samozřejmě. Tak či tak, případní narušitelé budou vědět, že jde obejít ono otravné nastavování - [Změna místa pro ukládání souborů pro Docker](https://www.ondrejvesely.cz/zmena-mista-pro-ukladani-souboru-pro-docker/) - Docker se nedoporučuje používat na pidi discích, jako tomu je na mém notebooku. Mám jen pár desítek volných GB a to může být problém. Proto se teď podíváme, jak změnit umístění pro soubory Dockeru. Pozor na to, že je nejprve potřeba smazat všechny vytvořené image a kontejnery. Místo cesty /mnt/docker si dejte svoje umístění pro - [Hledání souborů ve Windows v příkazové řádce a v PowerShellu](https://www.ondrejvesely.cz/hledani-souboru-ve-windows-v-prikazove-radce-a-v-powershellu/) - Nikdy jsem to moc nepotřeboval, ale když už jsem zvyklí z Linuxu všechno dělat v terminálu, tak jsem si řekl, proč ne a využil jsem situace, kdy bylo potřeba najít na disku archiv Outlooku a mrkl se na to. A světe div se, po 30 letech co používám počítač jsem se naučil novou věc. Tou - [CentOS a podpora WiFi BCM 43228](https://www.ondrejvesely.cz/centos-a-podpora-wifi-bcm-43228/) - Peru se s tím skoro pokaždé, když přeinstalovávám CentOS na svém prehistorickém ntb. Po čisté instalaci systému to vypadá, že nemám nainstalovanou WiFi ani Bluetooth. Problém je v tom, že CentOS má nějaký problém s firmware od Broadcom a tak je nutné kartu manuálně zprovoznit. Zde je postup jak na to. Předně je potřeba otestovat, - [Reset hesla do pgAdmin](https://www.ondrejvesely.cz/reset-hesla-do-pgadmin/) - Nyní jsem řešil problém s přihlášením do pgAdmin, kdy jsem po nějaké době nepoužívání zapomněl všechno, email pro login a také heslo, protože to je jiné než do Postgresu. Řešení bylo velmi snadné, ale vyžadovalo to vše následně nastavit znovu. A tím řešením je smazání souboru /var/lib/pgadmin/pgadmin4.db. V diskuzních fórech se psalo o souboru pgadmin4-server.db, - [Wordpress a hledání problému s pluginem GDPR Cookie Consent](https://www.ondrejvesely.cz/wordpress-a-hledani-problemu-s-pluginem-gdpr-cookie-consent/) - EU nás přinutila dělat další blbosti, které se točí kolem sušenek prohlížečů. Vem čert fakt, že je to totální hovadina a zaměřme se na plugin pro WP GDPR Cookie Consent, který jsem po delším hledání vhodného pluginu uznal za rozumné a cenově dostupné řešení, tedy za 0 Kč. Alespoň prozatím. Na několika mých webech fungoval - [Jak detekovat vypnutí Raspberry PI?](https://www.ondrejvesely.cz/jak-detekovat-vypnuti-raspberry-pi/) - RPi je geniální hračka, která vás nutí přemýšlet. Jedním z námětů na přemýšlení je úplné vypnutí RPi. RPi totiž nemá svůj zdroj, tedy nemůže ho nijak ovládat. Musíte si tedy pomoci jinak. Jak detekovat vypnutí RPi? Nebudu chodit kolem horké kaše, takže hned dám odpověď. Jde to snadno, ale chce to úpravu souboru /boot/config.txt. Do - [Problémy se Snap pod Linuxem](https://www.ondrejvesely.cz/problemy-se-snap-pod-linuxem/) - Snap mi ještě donedávna docela dobře běžel, ale nyní mi začal hlásit timeout: cannot communicate with server: timeout exceeded while waiting for response Zkusil jsem ho tedy přeinstalovat, ale bez úspěšně. Začal mi hlásit chyby: ..cannot list local snaps! cannot find publisher details: snap-declaration... ...too early for operation, device not yet seeded or device model - [Python není jednoduchý ani intuitivní](https://www.ondrejvesely.cz/python-neni-jednoduchy-ani-intuitivni/) - Tak konečně jsem se začal trochu víc věnovat Pythonu a nemyslím si, že je tak easy, jak je to prezentováno neznalé veřejnosti. Pitomost. Python se v mnoha případech chová divně, je extrémně komplexní, což ho nečiní jednochudým a pak takové hovadiny jako tuple, to vám hlava nebere. Faktem je, že jsem zatížený PHPčkem a vůbec - [Jak pro Python nainstalovat na CentOS podporu pro PostgreSQL?](https://www.ondrejvesely.cz/jak-pro-python-nainstalovat-na-centos-podporu-pro-postgresql/) - Tak tohle nemá chybu. PostgreSQL i Python tu jsou už hezkou řádku let. Navzájem se podporují, nicméně podporu, se stupidním názvem (psycopg), chtě nechtě musíte nainstalovat a ještě k tomu složitě, tedy ze začátku. Časem zjitíte, že musíte pro CentOS nainstalovat osekanou verzi v názvem nesoucí slovo binary. Tedy již plně zkopilovanou verzi. Ach jo. - [Přidání ovladače do Windows pomocí Poweshell](https://www.ondrejvesely.cz/pridani-ovladace-do-windows-pomoci-poweshell/) - Nadpis je tak trochu zavádějící, ale vlastně ani moc ne. Totiž i když jsou v PS cmdlety na práci s drivery (get-command -Module PrintManagement), tak vlastně ten nejzásadnější tam není. Totiž samotné přidání driveru do Driver Store neumí zajistit samotný PS, ale musí se to udělat systémovým příkazem pnputil. Pak musíte z instalovaného INF souboru - [GREP ve Windows](https://www.ondrejvesely.cz/grep-ve-windows/) - Linuxáci moc dobře znají příkaz GREP. Je totiž nadmíru užitečný a návykový. Otázkou tedy je, zda-li ve Windows existuje něco obdobného. Dobrou zprávou je, že i ve Windows nějako jako grep existuje. Findstr ve Windows Příklad bude mluvit za vše. Dokumentaci si když tak vygooglete. netstat -na | findstr "ESTABLISHED" Select-String v Powershell Findstr by - [Ověřování na základě veřejného klíče v SSH](https://www.ondrejvesely.cz/overovani-na-zaklade-verejneho-klice-v-ssh/) - Používání hesel je přežitek, pokud se připojujete na vaše zařízení přes SSH je mnohem bezpečnější a ve finále i jednodušší použít autorizaci přes veřejný klíč. Nejlepší na tom všem je, že je to nechutně triviální. Nejprve vygenerujete privátní a veřejný klíč. Doporučuji nastavit heslo k certifikátu, k čemuž budete vyzváni (heslo lze později změnit). ssh-keygen - [Předkonfigurace headless Raspbianu](https://www.ondrejvesely.cz/headless-pre-konfigurace-raspbianu/) - Lite, jinak řečeno headless verze Raspbianu je potřeba dopředu nakonfigurovat, protože jinak s ní nejde vůbec nic dělat. V mém případě je potřeba nastavit wifi, statickou IP adresu a povolit ssh. Nastavení Wifi Je to snadné, stačí na sd kartu do partition boot nahrát soubor wpa_supplicant.conf s následujícím obsahem: ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=CZ network={ ssid="VaseSSID" - [Jak přepínat mezi verzemi Pythonu?](https://www.ondrejvesely.cz/jak-prepinat-mezi-verzemi-pythonu/) - Nevím proč taková základní věc není vyřešena nějak inteligentněji, ale řešení je následovné. Hned z kraje zapomeňte na nastavování aliasů. To není skutečně řešení. Správné řešení je toto: Je potřeba si vypsat nainstalované verze Pythonů. ls /usr/bin/python* Přes příkaz update-alternatives je dále potřeba nadefinovat verze a priority, které chceme používat. V mém případě takto: sudo - [Jak ve VirtualBoxu připojit USB disky?](https://www.ondrejvesely.cz/jak-ve-virtualboxu-pripojit-usb-disky/) - Jeden by si řekl, že samotnou instalací VirtualBoxu si sám program nějak ošéfuje připojování USB zařízení, ale tak tomu není. Totiž, aby vám USB disky šly připojit, tak nejprve musíte přidat uživatele pod kterým VB spouštíte do skupiny vboxusers následovně: sudo usermod -aG vboxusers VasUcet Pak teprve půjde v nastavení virtuálu kliknout na druhou ikonu - [Jak zálohovat SD kartu](https://www.ondrejvesely.cz/jak-zalohovat-sd-kartu/) - Obsah obyčejné SD karty zazálohujete prostě a jednoduše překopírováním, ale pokud máte SD kartu v Raspberry PI, nejde prostě jen tak něco někam zkopírovat. Na SD kartě jsou partitiony (boot/rootfs) a další drobnosti, které je potřeba zachovat. Je tedy potřeba udělat kompletní image disku. Zálohování SD karty v Linuxu Nejprve je potřeba připojit SD kartu - [Nefunkční webkamera v Dockeřím Octoprintu](https://www.ondrejvesely.cz/nefunkcni-webkamera-v-dockerim-octoprintu/) - Nainstaloval jsem si Raspberry Pi OS (dříve Raspbian - proč to přejmenovali?) s Dockerem a nahrál si Octoprintí kontejner. Základní nastavení yml souboru bylo docela snadné, ale zprovoznit webkameru už ne. Stále dokola se mi nechtělo zobrazit alespoň nějaké okno s chybou, což bylo dost deprimující. Dockeří log (docker-compose logs octoprint) také žádné chyby nezobrazoval. - [Nastavení statické IP adresy na Raspbianu](https://www.ondrejvesely.cz/nastaveni-staticke-ip-adresy-na-raspbianu/) - Nastavit statickou IP adresu na Raspbianu, který běží na Raspberry Pi, nebo oblíbený OctoPrint je velmi snadné. Stačí když upravíte konfigurační soubor klienta DHCPCP. sudo nano /etc/dhcpcd.conf Než tak učiníte, zjistěte si nejprve, jak se jmenuje vaše síťové rozhraní. To uděláte příkazem ifconfig. Většinou ETH0, nebo WLAN0. No pak odkomentujte a nastavte část pod Example - [Jak v shellu prohledávat obsah souborů?](https://www.ondrejvesely.cz/jak-v-shellu-prohledavat-obsah-souboru/) - Linuxový Shell je geniální. Pokud chcete prohledávat soubory, není nic jednoduššího než použít příkaz grep, který prohledává vstup, který dostane a vypisuje z něj shody, přičemž pro hledání používá regulární výrazy. No a jak na to? grep -nrw /cesta/ktera/se/ma/prohledavat -e 'regexp dotaz' -n ... vypíše na kterém řádku v souboru se výsledek nalézá -r ... - [Jak nainstalovat RSAT přes PowerShell?](https://www.ondrejvesely.cz/jak-nainstalovat-rsat-pres-powershell/) - Od říjnové aktualizace W10 v roce 2018 se stal Remote Server Administration Tools součástí Windows a není potřeba ho instalovat. Jenže jak na to? Předně klasicky zkuste nejprve funkci Zapnout nebo vypnout funkce systému Windows v ovládacích panelech - > Odinstalovat nebo změnit program. Pokud tam RSAT nenajdete, stejně jako v mém případě, tak se - [Jak programovat Arduino bez nutnosti rootovských práv?](https://www.ondrejvesely.cz/jak-programovat-arduino-bez-nutnosti-rootovskych-prav/) - Všude kam se podívám, doporučují Arduino IDE pouštět jako root. Jenže, když přejdete z hloupého Arduino IDE na PlatformIO ve VS Code, narazíte na to, že VS Code se brání spouštění jako root. Řešením je pak přidat uživatele, který Arduino používá do skupiny Dialout. sudo adduser UZIVATEL dialout - [Aktualizace firmware Raspberry Pi](https://www.ondrejvesely.cz/aktualizace-firmware-raspberry-pi/) - Jedna z mála prapodivností u Raspberry Pi je aktualizace firmware. Proč? Protože RPi 4, narozdíl od jeho předchůdců, již nemá firmware na mikro SD kartě, ale místo toho má EEPROM, na kterém je FW nainstalován. Problém je v tom, že se o tom nikde v základní dokumentaci nedozvíte. Ono na jednu stranu není důvod, aby - [Jak zobrazit DeviceTree (strom zařízení) v linuxu?](https://www.ondrejvesely.cz/jak-zobrazit-devicetree-strom-zarizeni-v-linuxu/) - ARM architektura používá k popisu svého hardware tzv. DeviceTree, což je speciální datová struktura, která use předává linuxovému jádru. V linuxu je tato datová struktura reprezentovaná jako adresáře, na které se odkazuje symbolický link v adresáři /proc/device-tree. V Ubuntu tento link odkazuje na adresář /sys/firmware/devicetree/base/, který můžete ve vašem oblíbeném souborovém editoru procházet. - [Jak na Ubuntu Serveru nastavit IP adresy pro LAN a WiFi](https://www.ondrejvesely.cz/jak-na-ubuntu-serveru-nastavit-ip-adresy-pro-lan/) - Nastavení je triviální, tedy pokud člověk ví jak na to. Celá magie je v souboru /etc/netplan/01-netcfg.yaml. Pokud soubor není, je potřeba ho vytvořit a vyeditovat. Z přípony je jasné, že se jedná o mnou ne moc oblíbený formát YAML, tedy, že je potřeba dodržovat odsazování mezer, podobně jako v Pythonu. Moje prvotní konfigurace byla: network: - [Port skener v Powershellu!!](https://www.ondrejvesely.cz/port-skener-v-powershellu/) - Řešil jsem v našem korporátu potřebu vyřešit jeden bezpečnostní problém. Bohužel se "svázanýma rukama". Proč? No protože ... zkrátka a jednoduše nemůžu si stáhnout NMap a začít skenovat síť. Není to schválený program a je to všechno prostě složité. No a protože vše špatné je i k něčemu dobré, začal jsem skriptovat v Powershellu a - [Jak ukládat IP adresy do databáze?](https://www.ondrejvesely.cz/jak-ukladat-ip-adresy-do-databaze/) - No rozhodně jinak, než jako obyčejný textový řetězec. MySQL má na ukládání IP adres 4 funkce. Byl by totiž problém s IP adresami pracovat. INET_ATON() - uloží IPv4 adresu jako UNSIGNED INT INET_NTOA() - převede UNSIGNED INT na IPv4 adresu INET6_ATON() - převede IPv4 a IPv6 adresu na VARBINARY(16) INET6_NTOA()- převede VARBINARY(16) na IPv4 nebo - [Xdebug a var_dump](https://www.ondrejvesely.cz/xdebug-a-var_dump/) - Při použití PHP extenze Xdebug se po zavolání var_dump u proměnných obsahujících dlouhé řetězce ořízne výstup a zakončí se informací o délce řetězce. Jak se toho zbavit? Jednoduše. V php.ini nebo pomocí ini_set je potřeba nastavit následující hodnoty na -1, tedy na nekonečné, případně na požadovanou délku. ini_set('xdebug.var_display_max_depth', '-1'); ini_set('xdebug.var_display_max_children', '-1'); ini_set('xdebug.var_display_max_data', '-1'); - [Co s chybou: phpcs line exceeded 85 chars?](https://www.ondrejvesely.cz/co-s-chybou-phpcs-line-exceeded-85-chars/) - Ve výchozím nastavení je v PHPCS nastavena povolená délka řádku 85 znaků, což je docela málo. Náprava je snadná, stačí v souboru viz. níže upravit hodnotu lineLimit na požadovanou délku. nano /usr/share/php/PHP/CodeSniffer/src/Standards/PEAR/ruleset.xml Najděte a upravte. - [Nastavení oprávnění pro adresář /var/www/](https://www.ondrejvesely.cz/nastaveni-opravneni-pro-adresar-var-www/) - Po instalaci Apache dojde k vytvoření adresáře /var/www/, ke kterému má oprávnění www-data:www-data (uživatel/skupina) a nikdo jiný, tedy kromě roota, do adresáře nemůže zapisovat ani nic měnit. To je zcela v pořádku. Pro práci s obsahem je potřeba nejprve uživatele přidat do skupiny www-data a pak povolit skupině www-data zápis a změny povolit. Dělá se - [Jak vytvořit soubor libovolné velikosti v Linuxu](https://www.ondrejvesely.cz/jak-vytvorit-soubor-libovolne-velikosti-v-linuxu/) - Pro testovací účely jsem potřeboval vytvořit nějaký velký soubor, ale nechtělo se mi stahovat něco z internetu, takže jsem vygeneroval soubor rovnou v systému. Je to snadné. Za bs si dosaďte požadovanou velikost v KB. dd if=/dev/zero of=file.txt count=1024 bs=4096 Upozornění: Jedná se o vygenerovaný soubor se samýma nulami, nejedná se tedy o soubor, který - [Jak rozšířit velikost LVM svazku v Linuxu?](https://www.ondrejvesely.cz/jak-rozsirit-velikost-lvm-svazku-v-linuxu/) - Je to zvláštní, nebo prostě já jen nepozorný, ale po instalaci Ubuntu Serveru, při které jsem si vybral vytvoření LVM svazku, se vytvořil pouze 4GB svazek, místo 1 TB. Po chvíli googlení jsem nalezl snadné řešení. Rozšíření velikost VLM svazku na plnou kapacitu, kde /dev/mapper/ubuntu--vg-ubuntu--lv je název mého svazku. Je to defaultní název, takže asi - [Jak v Ubuntu připojit do internetu počítač přes druhý počítač](https://www.ondrejvesely.cz/jak-v-ubuntu-pripojit-do-internetu-pocitac-pres-druhy-pocitac/) - Nadpis je tak trochu podivný, ale v celku asi výstižný. Mám totiž jeden malý server, který má nainstalovaný Ubuntu Server a který není přímo připojený do internetu, tedy je, ale přes druhý počítač, který má připojení realizované přes WiFi hotspot v mobilu. Jelikož po instalaci Ubuntu Server neumí zprovoznit WiFi USB dongle, který mám pro - [Jak donutit PowerShell, aby vždy vrátil pole?](https://www.ondrejvesely.cz/jak-donutit-powershell-aby-vzdy-vratil-pole/) - PowerShell je dozajista noční můrou nejednoho admina. Je to sice silný nástroj, ale to jak je napsaný je tristní. Totiž, to si takhle napíšete funkci, která vylistuje přihlášené uživatele na počítači, no a když je to jeden uživatel, je vrácen string, když je jich víc, tak array. Mimo to, pokud vracíte hodnoty z funkce, tak - [Jak v PowerShellu zjistit kdo je přihlášen na počítač?](https://www.ondrejvesely.cz/jak-v-powershellu-zjistit-kdo-je-prihlasen-na-pocitac/) - Možností jak zjistit, kdo je přihlášen na počítači je vícero. Třeba příkaz query user vrací docela použitelné údaje, nicméně následující kód je asi nejlepší. Zdroje pro následující kód jsou: https://powershell.org/2015/08/list-users-logged-on-to-your-machines/ https://itknowledgeexchange.techtarget.com/powershell/cim-session-oddity/ $ComputerName = 'localhost' #následující dva řádky jsou tu protože na ostatních kompech běží PowerShell verze 2 $opt = New-CimSessionOption -Protocol Dcom $c8D = New-CimSession - [Nastavení hesla pro Mysql v Ubuntu](https://www.ondrejvesely.cz/nastaveni-hesla-pro-mysql-v-ubuntu/) - Tak tahle poznámka je opravdu spíše jen pro mou maličkost. Předně je potřeba zapomenout na uživatele root, ten tam sice je, ale jen pro krizové úkony jako je tento. Dále po instalaci MySQL je potřeba spustit příkaz: sudo mysql -u root -p Opravdu je potřeba před příkazem mít SUDO, jinak přihlášení do příkazové řádky MySQL - [PowerShell: Inputbox](https://www.ondrejvesely.cz/powershell-inputbox/) - Konzole je pro sraby, ne dělám si srandu. Konzole je pro machry, protože vše co lze zadat do konzole jde snadno automatizovat, nicméně okení aplikace mají také své kouzlo. Minimálně to může vypadat hodně chytře, když na vás vyskočí dialogové okno dožadující se nějaké informace. Jak tedy na takové jednoduché okénko v PowerShellu vytvořit? Add-Type - [Jak ukončit program ve Win 10 z příkazové řádky?](https://www.ondrejvesely.cz/jak-ukoncit-program-ve-win-10-z-prikazove-radky/) - Sestřelit program z příkazové řádky jde snadno, jen to není intuitivní, jako je to v Linuxu. Ve Windows se na to jde následovně viz. příklad. Za 123456 si dosaďte PID aplikace, kterou chcete ukončit. PID zjistíte ze správce úloh, nebo pomocí příkazu tasklist. taskkill /F /PID 123456 - [MySQL: Jak vytvořit tabulku s názvem obsaženým v proměnné?](https://www.ondrejvesely.cz/mysql-jak-vytvorit-tabulku-s-nazvem-obsazenym-v-promenne/) - Jelikož MySQL neumožňuje něco jako CREATE TABLE @novyNazev (...), je potřeba si trochu pomoci. Dělá se to jednoduše tak, že si SQL příkaz nejprve uložíte do proměnné, třeba pomocí slučovacího příkazu CONCAT('CREATE TABLE', @novyNazev, '(...)'); Následně pomocí příkazu PREPARE a EXECUTE SQL dotaz spustíte. Konkrétní příklad uložené procedury mluví za vše. BEGIN SET @newDomainTable := - [Potlačení vypisování chyb v PowerShellu](https://www.ondrejvesely.cz/potlaceni-vypisovani-chyb-v-powershellu/) - Potlačit chybové výpisy lze buď kompletně, což se dělá nastavením proměnné WarningPreference $WarningPreference = 'SilentlyContinue' Tím se potlačí vypisování chyb a skript dělá, jako by se nic nedělo. Nastavit lze i jiné hodnoty, například Stop, Inquire (zobrazí chybové hlášení a čeká na potvrzení pro pokračování) a Continue, které zobrazí chybu a pokračuje dál. Detaily viz. - [Jak v Linuxu přepnout PHP verzi na jinou?](https://www.ondrejvesely.cz/jak-v-linuxu-prepnout-verzi-php-na-jinou/) - Přepnutí je snadné, stačí v Apache deaktivovat PHP modul jedné verze a aktivovat PHP verze druhé. V Linuxu to vyřeší následující příkazy. sudo a2dismod php5.6 sudo a2enmod php7.3 sudo service apache2 restart - [Memchache pro PHP 7.x ve Windows](https://www.ondrejvesely.cz/memchached-pro-php-7-x-ve-windows/) - O tom, že Windows opravdu není vhodná platforma pro programování svědčí mimo jiné i fakt, že oficiálně není již dále vyvíjena jinak velmi dobrá knihovna MemcachedD pro Windows, ale jen pro Linux. Nicméně pár chytrých hlav se dalo dohromady a dle návodu připravili knihovnu i pro Windows. Hledání chvilku zabralo, takže proto tento krátký článek. - [Polopatě: dependency injection a service locator](https://www.ondrejvesely.cz/polopate-dependency-injection-a-service-locator/) - Následující bude tak trochu "for dummies". Ono totiž díky flexibilitě programovacích jazyků, jako je v tomto případě PHP, je docela problém vlastně celé problematice správně porozumět. Než se začtete, je potřeba uvést, že nejsem žádný odborník na OOP ani na programování. Následující v jednoduchosti shrnuje to, co jsem se za posledních pár dnů pracně naučil. - [Dočasné vypnutí kontroly cizích klíčů v MySQL](https://www.ondrejvesely.cz/docasne-vypnuti-kontroly-cizich-klicu-v-mysql/) - Cizí klíče jsou sice velmi důležité pro udržení integrity relační databáze, ale v momentě, kdy je potřeba udělat nějakou úpravu do struktury tabulky, začnou se objevovat chyby cizích klíčů. viz. chyba níže. Cannot change column 'id': used in a foreign key constraint 'app_menu_access_ibfk_1' of table 'data.app_menu_access' Řešením, které mi jako jediné funguje, spočívá v obalení - [MySQL: jak zduplikovat existující tabulku a překopírovat do ní data?](https://www.ondrejvesely.cz/mysql-jak-zkopirovat-existujic-tabulku-i_s_daty/) - Tak tohle je triviální. Dělá se to takto: Vytvoření kopie tabulky. CREATE TABLE nova_tabulka LIKE existujici_tabulka; A data se z jedné do druhé překopírují následovně. INSERT INTO cilova_tabulka SELECT * FROM zdrojova_tabulka; Pokud cílová tabulka nemá stejnou strukturu, pak se dají data překopírovat takto. Sloupce si samozřejmě opravte dle sebe. INSERT INTO cilova_tabulka (`id`,`nazev`) SELECT - [Jak povolit vzdálenou správu počítačů v AD pro PowerShell?](https://www.ondrejvesely.cz/jak-povolit-vzdalenou-spravu-pocitacu-v-ad-pro-powershell/) - Všude se píše, že pro povolení vzdálené správy počítačů přes PowerShell stačí, když v PowerShellu spustíte příkaz Enable-PSRemoting -force. Prý, že to stačí. Jenže ono to není tak snadné, protože firewal je poměrně dost složitý software. Do jisté míry si myslím, že ten defaultní Windows Firewall je mnohem složitější na konfiguraci, než programy třetích stran. - [Jaký je v MySQL rozdíl mezi INT a UNSIGNED INT?](https://www.ondrejvesely.cz/jaky-je-v-mysql-rozdil-mezi-int-a-unsigned-int/) - Rozdíly jsou docela nasnadě. Integer (INT) je celé číslo (4 bajtové) a může nabývat záporných hodnot od -2.147.483.648 do 2.147.483.648. Zatímco UNSIGNED INT, v překladu něco jako beznaménkový integer, pak nabývá v rozsahu od 0 do 4.294.967.295. A kdy použít UNSIGNED INT? No kdykoliv, když není potřeba ukládat záporná čísla. Toho nejčastěji lze využít u - [Klasická a asociativní pole v Powershellu](https://www.ondrejvesely.cz/klasicka-a-asociativni-pole-v-powershellu/) - Ach jo, proč to dělat jednoduše, když to jde složitě, aneb jak zprasit programovací jazyk. Na druhou stranu, plus je ten, že se s asociativními poli, alias hash tabulkami, pracuje velmi snadno. S hashovacími tabulkami se pracuje dokonce tak snadno, že skoro postrádá smysl používat obyčejné pole. Klasické pole $arr = @(1,2,3) $arr[0] Multidimenzionální klasické - [Import SQL databáze z příkazové řádky](https://www.ondrejvesely.cz/import-sql-databaze-z-prikazove-radky/) - Pokud máte k dispozici soubor SQL a je potřeba ho naimportovat z příkazové řádky, tak se to dělá následovně. mysql -u UZIVATEL use MOJE-DATABAZE source CESTA-K-SQL-SOUBORU To je vše. Je to rychlé a dají se tak importovat veliké soubory. - [Jak ukládat hesla v PowerShellu?](https://www.ondrejvesely.cz/jak-ukladat-hesla-v-powershellu/) - Přestože následující nemám moc rád, faktem zůstává, že ukládání hesel v plain textu je nesmysl a docela dost velký bezpečnostní problém, který třeba PHP nemá zrovna moc vyřešeno. V PHP je doporučeno hesla k databázím a další loginy, které nelze uložit jako hash, vyčlenit mimo prostor přístupný "veřejnosti", třeba tak, že se v rootu, kam - [Jak udělat Grep v PowerShellu?](https://www.ondrejvesely.cz/jak-udelat-grep-v-powershellu/) - Každý Linuxák zná mocný příkaz Grep, kterým je možné filtrovat výstupy. Pokud to samé chcete udělat v PowerShellu je potřeba to udělat následovně. | Select-String -Pattern XxXxX Za XxXxX je třeba dosadit nějaký regulární výraz, nebo jen obyčejný text. - [Jak v PowerShellu převést String na ScriptBlock](https://www.ondrejvesely.cz/jak-v-powershellu-prevest-string-na-scriptblock/) - ScriptBlock je další z vyfikundací Microsoftu, které jsou implementované v PowerShellu. Jedná se o něco jako anonymní funkci, která jako v jiných jazycích může být přiřazena do proměnné. ScriptBlock se vytváří pomocí složených závorek {} a stejně jako funkce může mít definované parametry a vůbec je to anonymní funkce, takže možnosti netřeba rozepisovat. Problém je - [Funkce v PoweShellu](https://www.ondrejvesely.cz/funkce-v-poweshellu/) - Hoši v Microsoftu měli potřebu vymýšlet kolo, takže i když je syntaxe stále dost podobná jiným jazykům, rozdíly tu jsou. Předně pokud chcete vracet booleanovské hodnoty, tak si potřeba si uvědomit, že je potřeba je vracet jako proměnnou tedy $true a $false. Klasické return zde funguje. Příklad. return $true K funkcím netřeba nic psát. Postačí - [MySQL 8 a defaultní kódování](https://www.ondrejvesely.cz/mysql-8-a-defaultni-kodovani/) - Při přihlášení vyskočí chyba Server sent charset unknown to the client. Please, report to the developers. MySQL od verze 8 používá kódování utfmb4. To je potřeba vypnout v my.ini přidáním následujícího nastavení. [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8 - [Chyba autentizace v MySQL 8](https://www.ondrejvesely.cz/chyba-autentizace-v-mysql-8/) - Co s chybou The server requested authentication method unknown to the client? V my.ini je potřeba nastavit default_authentication_plugin= mysql_native_password - [Jak nainstalovat MariaDB na Ubuntu?](https://www.ondrejvesely.cz/jak-nainstalovat-mariadb-na-ubuntu/) - Instalace je triviální. Buď přímo pomocí oficiálního repository Ubuntu, nebo pomocí repository MariaDB. Nejsnazší instalace sudo apt install mariadb-server Chcete-li poslední ofiko verzi, tak pak následovně. sudo apt-get install software-properties-commonsudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.vpsfree.cz/mariadb/repo/10.3/ubuntu bionic main'sudo apt updatesudo apt install mariadb-server Pro novější verze lze informace k instalaci najít - [Jak nastavit foreign key v phpMyAdmin](https://www.ondrejvesely.cz/jak-nastavit-foreign-key-v-phpmyadmin/) - Nastavit foreign key v phpMyAdmin lze pouze pomocí SQL příkazů. Naklikat to nejde. U existující tabulky přes alter table, kdy máme dvě tabulky Orders a Persons. Nastavujeme u Orders foreign key na tabulku Persons. ALTER TABLE OrdersADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID); Při vytváření tabulky se použije pouze FOREIGN KEY (PersonID) REFERENCES Persons(PersonID); Mimochodem, foreign key je odkaz na existující klíč v jiné tabulce. Umožňuje udržet - [Interaktivní vzdálený shell v PowerShell](https://www.ondrejvesely.cz/interaktivni-vzdaleny-shell-v-powershell/) - Příkaz Enter-PSSession spustí interaktivní vzdálený shell na lokálním počítači. Jde tak vykonávat všechny příkazy jakoby na svém počítači lokálně. Asi by to šlo přirovnat k SSH. Enter-PSSession -ComputerName PCUZIVATELE Ukončení vzdáleného připojení se dělá příkazem Exit-PSSession. - [Jak promazat HSTS cache prohlížečů?](https://www.ondrejvesely.cz/jak-promazat-hsts-cache-prohlizecu/) - HSTS vynucuje použití HTTPS pro příští spojení. Informace o vynucení se ukládá do prohlížečů, tedy pokud stránka není uložená v databázi hstspreload.org, pak HSTS v podstatě nejde vypnout. Promazání je dobré, když dojde k problémům s webovou stránkou a je potřeba HTTPS shodit. Ve Firefoxu je to snadné. Buď promazáním cache prohlížeče, nebo editací souboru - [MySQL: Import velkých CSV souborů do databáze](https://www.ondrejvesely.cz/mysql-import-velkych-csv-souboru-do-databaze/) - Import opravdu velkých souborů lze řešit několika způsoby, jedním z dost dobrých způsobů je skript BigDump.php (import SQL souborů), nebo přímo z příkazové řádky zavolat příkaz mysqlimport. Jediné co k následujícímu příkazu uvedu, je to, že CSV soubor se musí jmenovat stejně jako tabulka v DB. Tučný text zaměňte vaším. Jo a ignore-lines má smysl, - [Záměna znaku v databázovém sloupci](https://www.ondrejvesely.cz/zamena-znaku-v-databazovem-sloupci/) - Následující je jednoduchý příklad, který plně dostačí pro drobné úpravy v DB. Detaily viz. dokumentace MySQL. Za tableName a tableRow si dosaďte vaše názvy. UPDATE tableName SET tableRow = REPLACE(tableRow,'"','') - [Změna hesla v MySQL](https://www.ondrejvesely.cz/zmena-hesla-v-mysql/) - Změna je snadná, jen je potřeba si pamatovat jak na to. Zde je příkaz, který byl otestován na MySQL 5.7. SET PASSWORD FOR 'UserName'@'localhost' = PASSWORD('NewPassword'); - [Převod kódování souboru v Linuxu](https://www.ondrejvesely.cz/prevod-kodovani-souboru-v-linuxu/) - Předně je nejprve potřeba správně detekovat kódování. Standardní algoritmus detekce kódování je nepřesný. Po zjištění pak stačí zadat upravený příkaz iconv -f ISO-8859-2 -t UTF-8 in cs_CZ.dic > cs_CZ-utf-8.dic ## Stránky - [O mně](https://www.ondrejvesely.cz/) - Programátor, IT specialista. ## Rubriky - [Nezařazené](https://www.ondrejvesely.cz/category/nezarazene/) - [Linux](https://www.ondrejvesely.cz/category/linux/) - [MySQL](https://www.ondrejvesely.cz/category/mysql/) - [Web development](https://www.ondrejvesely.cz/category/web-development/) - [PowerShell](https://www.ondrejvesely.cz/category/powershell/) - [Windows](https://www.ondrejvesely.cz/category/windows/) - [Ubuntu Server](https://www.ondrejvesely.cz/category/linux/ubuntu-server/) - [Jednodeskové počítače](https://www.ondrejvesely.cz/category/jednodeskove-pocitace/) - [Raspberry Pi](https://www.ondrejvesely.cz/category/linux/raspberry-pi/) - [Python](https://www.ondrejvesely.cz/category/python/) - [PostgreSQL](https://www.ondrejvesely.cz/category/postgresql/) - [Docker](https://www.ondrejvesely.cz/category/docker/) - [Git](https://www.ondrejvesely.cz/category/git/) - [Ai](https://www.ondrejvesely.cz/category/ai/) - [DevOps](https://www.ondrejvesely.cz/category/devops/) ## Štítky - [Kódování](https://www.ondrejvesely.cz/tag/kodovani/) - [Linux](https://www.ondrejvesely.cz/tag/linux/) - [Bash](https://www.ondrejvesely.cz/tag/bash/) - [MySQL](https://www.ondrejvesely.cz/tag/mysql/) - [heslo](https://www.ondrejvesely.cz/tag/heslo/) - [replace](https://www.ondrejvesely.cz/tag/replace/) - [záměna](https://www.ondrejvesely.cz/tag/zamena/) - [SQL](https://www.ondrejvesely.cz/tag/sql/) - [HSTS](https://www.ondrejvesely.cz/tag/hsts/) - [HTTPS](https://www.ondrejvesely.cz/tag/https/) - [Firefox](https://www.ondrejvesely.cz/tag/firefox/) - [Chrome](https://www.ondrejvesely.cz/tag/chrome/) - [cache](https://www.ondrejvesely.cz/tag/cache/) - [Remote shell](https://www.ondrejvesely.cz/tag/remote-shell/) - [Foreign key](https://www.ondrejvesely.cz/tag/foreign-key/) - [phpMyAdmin](https://www.ondrejvesely.cz/tag/phpmyadmin/) - [MariaDB](https://www.ondrejvesely.cz/tag/mariadb/) - [databáze](https://www.ondrejvesely.cz/tag/databaze/) - [instalace](https://www.ondrejvesely.cz/tag/instalace/) - [ubuntu](https://www.ondrejvesely.cz/tag/ubuntu/) - [funkce](https://www.ondrejvesely.cz/tag/funkce/) - [scriptBlock](https://www.ondrejvesely.cz/tag/scriptblock/) - [Grep](https://www.ondrejvesely.cz/tag/grep/) - [SecureString](https://www.ondrejvesely.cz/tag/securestring/) - [credential](https://www.ondrejvesely.cz/tag/credential/) - [přihlašovací údaje](https://www.ondrejvesely.cz/tag/prihlasovaci-udaje/) - [zabezpečení](https://www.ondrejvesely.cz/tag/zabezpeceni/) - [import](https://www.ondrejvesely.cz/tag/import/) - [příkazová řádka](https://www.ondrejvesely.cz/tag/prikazova-radka/) - [command line](https://www.ondrejvesely.cz/tag/command-line/) - [WinRM](https://www.ondrejvesely.cz/tag/winrm/) - [Windows 10](https://www.ondrejvesely.cz/tag/windows-10/) - [vzdálená správa](https://www.ondrejvesely.cz/tag/vzdalena-sprava/) - [cizí klíč](https://www.ondrejvesely.cz/tag/cizi-klic/) - [Dependency injection](https://www.ondrejvesely.cz/tag/dependency-injection/) - [container](https://www.ondrejvesely.cz/tag/container/) - [php](https://www.ondrejvesely.cz/tag/php/) - [OOP](https://www.ondrejvesely.cz/tag/oop/) - [objektové programování](https://www.ondrejvesely.cz/tag/objektove-programovani/) - [memcache](https://www.ondrejvesely.cz/tag/memcache/) - [memcacheD](https://www.ondrejvesely.cz/tag/memcached/) - [github](https://www.ondrejvesely.cz/tag/github/) - [Apache](https://www.ondrejvesely.cz/tag/apache/) - [chyby](https://www.ondrejvesely.cz/tag/chyby/) - [potlačení chyb](https://www.ondrejvesely.cz/tag/potlaceni-chyb/) - [cmd](https://www.ondrejvesely.cz/tag/cmd/) - [taskkill](https://www.ondrejvesely.cz/tag/taskkill/) - [InputBox](https://www.ondrejvesely.cz/tag/inputbox/) - [dialogové okno](https://www.ondrejvesely.cz/tag/dialogove-okno/) - [reset](https://www.ondrejvesely.cz/tag/reset/) - [nový uživatel](https://www.ondrejvesely.cz/tag/novy-uzivatel/) - [root](https://www.ondrejvesely.cz/tag/root/) - [přihlášení uživatelé](https://www.ondrejvesely.cz/tag/prihlaseni-uzivatele/) - [konverze](https://www.ondrejvesely.cz/tag/konverze/) - [Array](https://www.ondrejvesely.cz/tag/array/) - [String](https://www.ondrejvesely.cz/tag/string/) - [IP adresa](https://www.ondrejvesely.cz/tag/ip-adresa/) - [packet forwarding](https://www.ondrejvesely.cz/tag/packet-forwarding/) - [přeposílání paketů](https://www.ondrejvesely.cz/tag/preposilani-paketu/) - [maškaráda](https://www.ondrejvesely.cz/tag/maskarada/) - [iptables](https://www.ondrejvesely.cz/tag/iptables/) - [internet](https://www.ondrejvesely.cz/tag/internet/) - [www-data](https://www.ondrejvesely.cz/tag/www-data/) - [oprávnění](https://www.ondrejvesely.cz/tag/opravneni/) - [přístup](https://www.ondrejvesely.cz/tag/pristup/) - [access denied](https://www.ondrejvesely.cz/tag/access-denied/) - [PHPCS](https://www.ondrejvesely.cz/tag/phpcs/) - [code sniffer](https://www.ondrejvesely.cz/tag/code-sniffer/) - [Xdebug](https://www.ondrejvesely.cz/tag/xdebug/) - [port scanner](https://www.ondrejvesely.cz/tag/port-scanner/) - [skener portů](https://www.ondrejvesely.cz/tag/skener-portu/) - [powershell](https://www.ondrejvesely.cz/tag/powershell/) - [automatizace](https://www.ondrejvesely.cz/tag/automatizace/) - [nmap](https://www.ondrejvesely.cz/tag/nmap/) - [ARM](https://www.ondrejvesely.cz/tag/arm/) - [procesor](https://www.ondrejvesely.cz/tag/procesor/) - [DeviceTree](https://www.ondrejvesely.cz/tag/devicetree/) - [Raspberry Pi](https://www.ondrejvesely.cz/tag/raspberry-pi/) - [RPi 4](https://www.ondrejvesely.cz/tag/rpi-4/) - [firmware](https://www.ondrejvesely.cz/tag/firmware/) - [aktualizace](https://www.ondrejvesely.cz/tag/aktualizace/) - [Arduino](https://www.ondrejvesely.cz/tag/arduino/) - [VS code](https://www.ondrejvesely.cz/tag/vs-code/) - [RSAT](https://www.ondrejvesely.cz/tag/rsat/) - [Remote Server Administration Tools](https://www.ondrejvesely.cz/tag/remote-server-administration-tools/) - [shell](https://www.ondrejvesely.cz/tag/shell/) - [grap](https://www.ondrejvesely.cz/tag/grap/) - [hledání](https://www.ondrejvesely.cz/tag/hledani/) - [obsah souboru](https://www.ondrejvesely.cz/tag/obsah-souboru/) - [dhcp](https://www.ondrejvesely.cz/tag/dhcp/) - [statická ip](https://www.ondrejvesely.cz/tag/staticka-ip/) - [adresa](https://www.ondrejvesely.cz/tag/adresa/) - [Raspbian](https://www.ondrejvesely.cz/tag/raspbian/) - [ssh](https://www.ondrejvesely.cz/tag/ssh/) - [Wifi](https://www.ondrejvesely.cz/tag/wifi/) - [statická adresa](https://www.ondrejvesely.cz/tag/staticka-adresa/) - [Docker](https://www.ondrejvesely.cz/tag/docker/) - [Octoprint](https://www.ondrejvesely.cz/tag/octoprint/) - [YAML](https://www.ondrejvesely.cz/tag/yaml/) - [docker Compose](https://www.ondrejvesely.cz/tag/docker-compose/) - [webkamera](https://www.ondrejvesely.cz/tag/webkamera/) - [SD karta](https://www.ondrejvesely.cz/tag/sd-karta/) - [zálohování](https://www.ondrejvesely.cz/tag/zalohovani/) - [image](https://www.ondrejvesely.cz/tag/image/) - [disk](https://www.ondrejvesely.cz/tag/disk/) - [VirtualBox](https://www.ondrejvesely.cz/tag/virtualbox/) - [USB](https://www.ondrejvesely.cz/tag/usb/) - [flash disk](https://www.ondrejvesely.cz/tag/flash-disk/) - [Python](https://www.ondrejvesely.cz/tag/python/) - [verze](https://www.ondrejvesely.cz/tag/verze/) - [veřejný klíč](https://www.ondrejvesely.cz/tag/verejny-klic/) - [soukromý klíč](https://www.ondrejvesely.cz/tag/soukromy-klic/) - [přihlašování](https://www.ondrejvesely.cz/tag/prihlasovani/) - [findstr](https://www.ondrejvesely.cz/tag/findstr/) - [select-string](https://www.ondrejvesely.cz/tag/select-string/) - [Driver Store](https://www.ondrejvesely.cz/tag/driver-store/) - [ovladač](https://www.ondrejvesely.cz/tag/ovladac/) - [tiskárna](https://www.ondrejvesely.cz/tag/tiskarna/) - [pnputil](https://www.ondrejvesely.cz/tag/pnputil/) - [vypnbutí](https://www.ondrejvesely.cz/tag/vypnbuti/) - [power off](https://www.ondrejvesely.cz/tag/power-off/) - [raspberry](https://www.ondrejvesely.cz/tag/raspberry/) - [RPi](https://www.ondrejvesely.cz/tag/rpi/) - [zdroj](https://www.ondrejvesely.cz/tag/zdroj/) - [WP](https://www.ondrejvesely.cz/tag/wp/) - [Wordpress](https://www.ondrejvesely.cz/tag/wordpress/) - [CentOS](https://www.ondrejvesely.cz/tag/centos/) - [Broadcom](https://www.ondrejvesely.cz/tag/broadcom/) - [Bluetooth](https://www.ondrejvesely.cz/tag/bluetooth/) - [problém](https://www.ondrejvesely.cz/tag/problem/) - [dir](https://www.ondrejvesely.cz/tag/dir/) - [rekurzivně](https://www.ondrejvesely.cz/tag/rekurzivne/) - [PowwerShell](https://www.ondrejvesely.cz/tag/powwershell/) - [Execution Policy](https://www.ondrejvesely.cz/tag/execution-policy/) - [Filezilla](https://www.ondrejvesely.cz/tag/filezilla/) - [base64](https://www.ondrejvesely.cz/tag/base64/) - [XML](https://www.ondrejvesely.cz/tag/xml/) - [git](https://www.ondrejvesely.cz/tag/git/) - [secrets](https://www.ondrejvesely.cz/tag/secrets/) - [hesla](https://www.ondrejvesely.cz/tag/hesla/) - [historie](https://www.ondrejvesely.cz/tag/historie/) - [TDD](https://www.ondrejvesely.cz/tag/tdd/) - [CVE](https://www.ondrejvesely.cz/tag/cve/) - [kybernetická bezpečnost](https://www.ondrejvesely.cz/tag/kyberneticka-bezpecnost/) - [CI](https://www.ondrejvesely.cz/tag/ci/) - [CD](https://www.ondrejvesely.cz/tag/cd/) - [DevOps](https://www.ondrejvesely.cz/tag/devops/) - [DevSecOps](https://www.ondrejvesely.cz/tag/devsecops/) - [programování](https://www.ondrejvesely.cz/tag/programovani/) - [vývoj](https://www.ondrejvesely.cz/tag/vyvoj/) - [SBOM](https://www.ondrejvesely.cz/tag/sbom/) - [Ai](https://www.ondrejvesely.cz/tag/ai/) - [Azure](https://www.ondrejvesely.cz/tag/azure/) - [Microsoft](https://www.ondrejvesely.cz/tag/microsoft/) - [umělá inteligence](https://www.ondrejvesely.cz/tag/umela-inteligence/) - [pipeline](https://www.ondrejvesely.cz/tag/pipeline/) - [Gitlab](https://www.ondrejvesely.cz/tag/gitlab/) - [PoC](https://www.ondrejvesely.cz/tag/poc/)