Bash toho sám o sobě moc neumí, ale dokáže propojit stovky miniaplikací do jednoho monstrozního celku. PS toho umí dost, ale na spolupráci win aplikací moc spoléhat nemůže. Ve prospěch Bashe mluví fakt, že takhle funguje už nějakých 30 let. To co se člověk naučil před 20 lety využije i dneska. PS je tady pár let a nikdo nezaručí, že MS rupne v kouli a nahradí ho něčim jinym. Dříve se člověk učil BAT, potom VBS, teď zase PS. Nejraději mám Python, ten je všude (Amiga, Symbian, Android, Win, Linux...) a má spoustu dokumentace. Až na tu "aféru" Python 2 --> Python 3.
.. a proto je korektni nazev "Linuxu" GNU/Linux. Vyvinuti jadra je samozrejme obrovska zasluha, ale bez GNU Project by byl samotny Linux k nicemuMP
Spousta toho powershell neumí -_- např. netcat(nc), dig, awk, wget, sha256sum atd..... mohl bych jmenovat pomalu celý busybox - na pár věci aliasi má, ale je to bída.
Nejsou toto spíš samostatné utility, které volá příslušný shell? Tedy bash, PowerShell aj? PowerShell má třeba solidní modul pro práci s AD (Get-AdUser), kde je možné o uživatelském objektu získat spoustu informací - třeba o blížící se expiraci hesla.
Jenže nelze zase porovnávat hrušky s jablkama. Myšleno, tak, že Active Directory na linuxu není, takže tam to je např. zbytečné. Já srovnávám spíše, takové obecné utility a né ty systémově specifické (např. linux se k heslům uživatelů chvová jinak než u windows). výborná utilitka pro test spojení k nějakému serveru "netcat(nc)" chybí, je to výborná věc, pro zkoušení, ale windows ani powershell to nemá. Powershell má určitě aliasy (např. diff, který odkazuje na cmdlet Compare-Object). Navíc každý funguje jinak a diff z linuxu má víc možností než nějaký Compare-Object. např. obtížnost použití windows: "diff -ReferenceObject (Get-Content -Path D:\testfile1.txt) -DifferenceObject (Get-Content -Path D:\testfile2.txt)" vs. linux: "diff testfile1.txt testfile2.txt". navíc Compare-Object je navíc tak blbej, že ani nedokáže říct, že např. slovo "bird" je na jiném řádku. takže tak. Za mě powershell je jeden velký omyl. místo jednoduchých krátkých příkazů, tak je to nepoužitelné (je to použitelné, ale jen na něco). Jestli chce microsoft konkurovat, tak by to měl překopat a víc se snažit. za mě vítezí v příkazovém řádku linux. opravdu s větou co vyplodil pan Čížek - "Nandáme to Linuxákům a jejich dokonalým terminálům" rozhodně nesouhlasím a nerozumím, jak takový článek mohl někdo schválit -_-.
Microsoft PowerShell lets you track Windows Registry changeshttps://www.bleepingcomputer.com/news/microsoft/microsoft-...
PowerShell se občas hodí, ale pro jeho pochopení by mu musel člověk věnovat 24h denně. Konstrukce "Set-ExecutionPolicy -Scope CurrentUser Unrestricted" moc praktická není, když chci u uživatele skript spustit dávkově - konstrukce by byla uvnitř skriptu, který ale v té chvíli nebude fungovat. Já používám obrat <PowerShell.exe -ExecutionPolicy Bypass -Command "& 'skript.ps1' %1 %2">, ten funguje vždycky.
PowerShell je ve windows neskutecne mocny nastroj, umi obrovske veci, pokud zvladate programovat. Microsoft nikdy moc nezvladal uhlazene GUI friendly API. Ano, zapis je takovy od pohledu chaoticky.
Ano, proto se hodně PS skriptů spouští .bat souborem který obsahuje tuto řádku
Ano, CMD skripty jsou v tomto případě ideální obal 🙂
Apple je prej suverenne nejlepsi ve vsem, holt Amerika, už na něj šetřím...Linux nebo Windows,,,,prej strašná zaostalost je a prý jen pro chudé..žádná prestiž
Názor byl 2× upraven, naposled 3. 5. 2022 09:25
A co z toho neumí shell již 20 let? 😝
Try / Catch a vyjímky
Určitě? Co třeba 😉trapifelsefi
praci s objektyMP
Asi bych spíše volil toto: (wget http://www.cnb.cz/cs/financni_trhy/devizovy... ).Content -split "`n"|Select-Object -skip 1|`ConvertFrom-Csv -Delimiter '|' | ft
A proč ne curl, který je součástí Windows?
CURL je implementovaný pro použití v CMD. V PS je to jen alias na iwr.
Musíš dát curl.exe .-)A mimochodem wget a curl obojí bez exe se mi chová stejně 🙂
Názor byl 1× upraven, naposled 2. 5. 2022 19:22
Vím. 😉
Fakt? Můžu tedy vědět proč jsi v příkazu uvedl wget a ne iwr? 🙂
Protože ve Windows PowerShellu 5 jsou pro Invoke-WebRequest defaultně nastaveny aliasy iwr, wget a curl. V opensource PS 6 a výš wget a curl odstranili aby na linuxu nekolidovali se systémovými bin.
To to nevysvětluje, ale už to stejně asi chápu 🙂
Podívej se na čas mé reakce a na čas tvé změny příspěvku. Mám pocit, že před 7 lety jsem četl něco ve stylu, že iwr je zastaralý. B-]
Aha, už chápu, bylo to na to první 🙂
Eště mi v článku chybí výstup do gui (nebo práce s gui), což powershell umí taky.Jo a pokud někdo chce powershell all in příručku tak tu je jedna free:https://books.goalkicker.com/PowerShellBook/
Názor byl 2× upraven, naposled 2. 5. 2022 16:43
Tak nam napiste nejakou klikaci aplikaci, abyste nas presvedcil :)
Tady je odkaz na možnost vytvoření programu PS GUI online: https://app.poshgui.com/login .
Ukázka kódu:http://vcloud-lab.com/entries/powershell/cool-p...
Příklad máš v té příručce, co jsem na ni dal odkaz.Je to kapitola 45 (Chapter 45: GUI in PowerShell, Section 45.1: WPF GUI for Get-Service cmdlet).A to gui v powershellu se dělá přes WPF/XAML.
Názor byl 1× upraven, naposled 2. 5. 2022 19:11
To berte jako obrovske plus, nebot bash nic takoveho neumi a napriklad zpracovavat parametry prikazove radky automatizovane v bashi je utrpeni. Ta frontendova sracka pocita s beznym prumernym developerem, ktery si vse rozepisuje a rozklada navrh aplikace tak jak se to vidi. Takze bud vam to udela bash frontedove (pres tool a sam od sebe), pokud to vsak chcete jinak a masove tak si uzijete a muzete zazit nocni muru s bashem. Linux je hodne uzivatelsky privetivy, nekdy az moc, v nekterych distribuci je mozne videt zaoblene vrstveni a pojmenovavani adresarove struktury instalovanych aplikaci. Linux mi v nekterych vecech prijde az moc umely a GUI likovy. Asi ten linux s bashem byl pred 20 lety automatizacni kral. To uz vsak neni pravda. A takove veci jako fish mu moc nepomahaji. Je to samy frontend a grafika v systemovem prostredi. Coz je naopak dobre pro frontendisty, ale me vice vyhovuje klasicky CMD/SHELL32. Nic vice neni zapotrebi. Je mozne v nem programovat, psat algoritmy a komplexnejsi systemove aplikace. Do aplikacniho prostredi se vsak nehodi, tam by jej mel zastupovat powershell.Takze vetsina lidi nakonec pouziva groovy nebo python a nebo powershell.
Názor byl 1× upraven, naposled 2. 5. 2022 18:59
Umí.Příklad máš v té příručce, co jsem na ni dal odkaz.Je to kapitola 45 (Chapter 45: GUI in PowerShell, Section 45.1: WPF GUI for Get-Service cmdlet).A to gui v powershellu se dělá přes WPF/XAML.
Poradne se podivejte do poslednich verzi zdrojoveho kodu bashe, nekolik let ujizdi od puvodni myslenky. Je to takova zteplala frontedova sracka.Jako od killdalla :).
Názor byl 1× upraven, naposled 2. 5. 2022 19:01
Děkuji autorovi za popularizaci PowerShellu. Ony připravené příkazy jsou taková smíchanina různých wrapperů okolo wmic, exe nástrojů a .NET frameworku, která navíc vznikla v době, kdy ještě ConHost.exe neuměl předávat standardní vstupy a výstupy mezi programy, a tak je to řešené uměle s velkými ALE. I když je od verze 6 multiplatformní si nedokážu si vůbec představit, jak bych psal nějaký skript, aby fungoval v obou prostředích (instalace ovladače tiskárny např.), vyjma práce se se surovými daty, a na to už je zase lepší Python. Trochy mě mrzí, že tu v diskusích nikde není diskuse ohledně porovnání vlastností. Nejspíš protože PS vlastně moc lidí nepoužívá, což je velká škoda. Z mojí zkušenosti Windows Administrátoři radši manuálně 200x proklikají nějaký postup, než aby vymýšleli automatizaci. V Linuxu je to zase opačně že? :) I tak bych byl rád, kdyby mu víc lidí dalo šanci. Za mě argumenty jsou:-lepší čitelnost kvůli operaci zmíněné hned na začátku příkazu a celým názvům parametrů, hlavně když spouštíte skript od někoho jiného grep = Select-String -Pattern, mkfs = New-Partition -Size atd.. ale to je asi o zvyku- ctrl + mezerník InteliSence nabídka možností i pro parametry za napsanou pomlčkou – za mě věc kvůli které mám pwsh i na linux serverech protože si ty přepínače nemůžu zapamatovat a tohle je velký pomocník- data mají vždy OOP strukturu, lze jednoduše za příkaz dát | gm (jako get-member) pro vypsání struktury nebo Format-List * či Format-Table * pro strukturované vypsání dat. Např.: ls | fl * pro detaily souborů- automatizace napříč windows prostředím, klidně včetně simulování stisků kláves, myši a proklikání nějakého GUI- procházení event logu je práce s objekty kde funguje filtrování, hledání pomocí select, where atp. oproti Linuxu, kde se průzkum logu vždycky zvrhne na grep, regexy a awk. - celý jazyk je založený na .NET frameworku a je objektově orientovaný. Chyby = vyjímky určitého typu s popisem problému a kontextem + fungující try / catch- s registrem se pracuje jako se souborovým systémem (podobně jako /proc) což značně zjednodušuje nastavování oproti ručnímu zásahu do /etc .conf souborůA nevýhody:- největší nevýhoda je rychlost. Chtěl jsem třeba pomocí iwr (Invoke-WebRequest zmíněný v článku) stáhnout všechny .ts chunky z online streamu a ta funkce je tak pomalá, že inicializace každého requestu zabere snad 2s kvůli reportování stavu do gui přes Write-Progress, ale právě tím, že lze pracovat s čímkoliv z .NET frameworku, lze použít přímo WebClient.DownloadFile() což je rychlostně na úrovni wget- neexistence příkazu sudo.. musí se obcházet přes start-process -verb runas což je opravdu ohavné řešeníPěkný den ;)
Názor byl 3× upraven, naposled 2. 5. 2022 15:53
+ Desired State Configuration (aj na linuxoch )https://docs.microsoft.com/en-us/powershell/dsc/gett... :-O
S tim sudo je to dane spise bezpecnostnim modelem windows, nez omezenim PS. Impersonifikace ve Windows je proste dost omezena.MP
Jakozto unixak jsem se k tomu dostal tak, ze jsem chtel ve jmenu souboru datum. Coz lze i v cmd, ale kdyz to vidim, tak se vzdycky zacnu chechtat. No a pak jsem zkusil jeste par dalsich veci (napr. posilat si maily, smazat starsi soubory nez atd).Ale prislo mi, ze se ta vec strasne meni, protoze kdyz jsem zacal hledat jak neco udelat, tak jsem dostal 7 ruznych reseni, ale jen 1-2 fakt fungovaly.
Jo, navíc tím, že to nevymýšleli admini a nebylo to opensouce, tak tam chyběly úplně základní funkce.. Třeba get-uptime... to se v powershellu 5 přítomném na Windows Serverech muselo zjišťovat přes volání Cim query atd.
PowerShell se pouziva hodne na velkych projektech jako devops nastroj. Hlavni problem je v tom, ze nekdo bezi v linuxu, jiny pod windowsem a pak je cely projekt usmoleny od .cmd nebo .sh. Navic hlavni sila PowerShelli neni jen v OOP, ale v tom, ze je mozne v nem plnohodnotne programovat oproti bashi an urovni bezne syntaxe programovacich jazyku. Treba automatizace buildu, nasazeni, patche apod. Ukrajinci a rusove docela dost pouzivaji PowerShell, nemaji s nim takove potize jako cesi. Cesi jsou v prumeru vice GUI like nebo frontenovy narod, takze u nas vladne lenost a neochota se ucit komplexnejsi veci. Takze jeste jednou hlavni sila PowerShellu:- plnohodnotne programovani blizke standartnim programovacim jazykum, ale i klasicke skriptovani - cely shell je psan jako automatizovany nastroj, slouzi vyhradne k automatizaci a tuto ulohu zvlada skvele- nejcastejsi realne nasazeni v cloudu a datacentrech u serverovych megaaplikaci
JJ, v jedné bývalé práci jsem stahoval CSV s cenami od dodavatele, konvertoval do struktury CSV, kterou bral náš eshop, automaticky změnil ceny podle nějakých interních pravidel (tohle bylo nejtěžěší část, protože se musely produkty rozparsovat podle jenotlivých kategorií atp. (plus zaokrouhlení). Předtím to dělal obchodník ručně (samozřejmě s chybami), skript běží dodnes, nedávno jsem jim dělal nějaké úpravy (dodavatel udělal nějaké změny v tom zdrojovém CSV). Mají k tomu i malou UI appku, aby mohli měnit marže podle kategorií.
PoSh používám snad, co existuje. Dlouho jsem nechápal, proč Microsoft vytvořil takový prapodivný jazyk (viz operátory, příšerné zpracování chybových stavů apod) a proč ho, proboha, pojmenoval Power! Ale pak jsem okusil shell... Ano, v porovnání s ním je power. Ano, MS chtěl dát adminům jazyk, který znají z "unixu". Ale i tak. Proč raději nevzal nějaký ze svých jazyků z VS a nedal mu "interpretovanou" podobu?! 🙁 Njn, alespoň je dnes už pwsh multiplatformní, takže to utrpení je jenom jednou a není třeba skripty přepisovat pro obě prostředí...
Článek pěkný, ale chybí tam vysvětlení základních rozdílů mezi těmi shelly. Když píšete "nandáme to linuxákům", tak by bylo třeba napsat, proti jakému shellu se vymezujete. Takto si musíme domyslet, že pravděpodobně myslíte BASH. Jenže on je právě diametrální rozdíl mezi BASHem a PS. BASH vše zpracovává jako TEXT, kdežto v PS je vše .NET objekt. Linuxáci mají k dispozici také objektové shelly, např. nushell (https://github.com/nushell/nushell/), ale i samotný PowerShell.
Powershell je sice mocný nástroj, ale přijde mi, že se nikdy moc neprosadil. A to byl uveden v roce 2006, takže je tady patnáct let.Na jednoduché věci typu dir, echo atp. je to moc složité, na složité věci se používají jiné nástroje.
Spravci, kteri potrenuji obcas neco nascriptovat, cekali dlouho a trpelive na to, az bude PS standardni soucasti OS. Bohuzel docela dlouho bylo treba jej stahnout a nainstalovat. Takze z jednoho problemu (napsat script) byly problemy 2 (napsat script, a predtim rozdistribuovat PS na vsechny dotcene pocitace).MP
V enterprise se používá fakt hodně, pokud potřebuje admin udělat nějakou hromadnou věc , nebo nějaký workaround, tak powershell rulez.Fakt si nedovedu představit, že bych třeba přidával 100 uživatelů do ad přes klikací prostředí.
csvde ... ?ale je pravda, ze vytvorit sitovy home, nastavit prava atd atd. je uz na skriptik. at uz klasicky cmd (dsadd, mkdir, icacls), nebo psMP
Zrovna tohle by snad mělo jít i v cmd, ne?
jasne, for /f .. in (users.txt) .. , v nem par radku(dsaddmkdiricacls)MP
tak co naklikat 100 uživatelů, ale třeba udělat něco na exchange online GUI umí 20% toho co powershell, nepočítám sharpoint online, office 365.
Je to tak + tu máme Core edice. Ale nevím, kdo je reálně používá, protože spousta Windows adminů jsou bez myši bezradný.Zdar Max
koho zajima, tak muze mrknout na https://aka.ms/mslab ... ve scenarios je hromada prikladu jak ridit MS infrastrukturu powershellem.
Takova mala anarchie :). Nevim no, rikam si nekolik let, ze by bylo dobre prejit na powershell. Ale, kdyz pokazde vidim ty usmoleniny, chut mne obvykle prejde. Je to schopny automatizovany nastroj, clovek jen musi prekonat prvotni neduveru a mozna nechutenstvi. Vzdycky mne dostanou ty hranate zavorky :). V bashi to vsak neni lepsi, takze to je konkretni duvod proc vetsina lidi radeji pouziva plnohodnotnejsi interpretovane programovaci jazyky jako groovy, ruby, python apod. Pravdou je, ze z hlediska shellu nema powershell konkurenci. V linuxu jsou takove graficke vychytavky jako fish apod., ale to jsou vice spis takove frontendy nez plnohodnotne automatizovane nastroje.
Názor byl 2× upraven, naposled 2. 5. 2022 02:03
Microsoft byl se skriptovacimi jazyky vzdy o trochu uspesnejsi z hlediska programatoskeho pristupu, naopak to bylo vzdy s uzivatelskou privetivosti. Treba win32/cmd je v podstate cisty basic bez ruznych cunaren, ktere obsahuje bash. Naopak Bash je vysoce vyvinuty automatizovany skriptovaci nastroj typu "proved to na jeden prikazovy radek", naopak se prizpusobal uzivatelske privetivosti az moc a je docela zadelany. PowerShell je opet z hlediska pristupu k programovani vyspelejsi nez bash, je vsak uzivatelsky o dost mene privetivy. Nicmene se jedna o vykonny a dnes multiplatformni skriptovaci nastroj, ktery zvlada temer plnohodnotne systemove programovani. Umi volat C ckove libky, je mozne v nem psat moduly a rozsirovat jej, proste veci, o nich si muze stary bash nechat jen zdat. Oblibenost programovaciho nastroje je casto ovlivnena spolehlivym a snadno pouzitelnym API. V cemz graduje prave linux, tohle Microsoftu nikdy moc neslo. Programovat v shellech microsoftu je podstatne narocnejsi nez v tech linuxovych, ale zase je mozne v nich psat temer plnohodnotne systemove aplikace (pokud prehlednu perl, python, apod). Znalost PowerShellu je neco co se urcite neztrati. V komercni sfere se pomalu zacina upoustet od bashe a casto se prechazi na powershell. Protoze, pokud se zjisti nejaky problem se sw produktem, je mozne v powershellu naprogramovat reseni, ktere obchazi chybovou sekvenci. V bashi jsou moznosti znacne limitovane, ale je mozne v nem programovat take.
Jasně, všichni jsou strašně odvázaný z toho, že MS pro Linux uvolnil powershell, takže všichni okamžitě přecházejí. Hahaha. Komu stačí bash, jede bash, komu ne, jede python, který je na míle úplně někde jinde. Používat powershell místo bashe je masochismus, resp. to asi existuje pro uživatele Windows, kteří tu a tam musí dělat s Linuxem.Zdar Max
Výborný článek, děkuji.
Výborný článek!Jen musím podotknout, že kurzovní lístek ČNB je opět odrazem státního IT. Mít to takhle v TXT souboru bez žádných standardů "na prasáka", takže absolutně KAŽDÝ v jakémkoliv programovacím jazyku či systému, si bude muset pěkně a dost "zaprogramovat", aby z toho něco použitelného dostal, tak to je na nějakou anticenu!Vím, že tímhle přístupem český stát "dává práci" mnoha programátorům ve spoustě firem, kteří se živí jen tím, že řeší integrace z a do různých státních nestandardních s*aček na standardní systémy.Někdy v minulém roce jsem viděl jedno takové řešení, které řeší integrace do DESÍTEK podobných státních s*aček a firmy si to rády kupují, protože kdyby měly řešit vývoj vlastních řešení a jejich údržbu, potřebovaly by další tým programátorů jenom na to.Je neuvěřitelné, že všechna taková práce je dělána vlastně ZBYTEČNĚ jen proto, že stát poskytuje takovouto "kvalitku". Některé věci jsou na ČR skvělé, ale díky tomuto si rád dělám vtípky o "Čechystánu". LOL
To že máte problém s úplně běžným csv s nedefaultním oddělovačem vypovídá spíš o vašich programatorských schopnostech, než o státním IT. Každá normální knihovna na deserializaci csv si s tím poradí. (A napsat to manuálně je taky na 1 - 3 řádky kódu, podle jazyka)Naopak mi to přijde jako skvělý kompromis mezi strojovou čitelností a čitelností člověkem.
kates: videla jsi letosni "uplne bezny CSV s nedefaultnim oddelovacem"?At uz denni (bonusovy radek na zacatku), nebo rocni (presloupcovani mezi 1. a 2. 3. ) ...?MP
Ok, ten roční vidím až teď, ten je o něco horší. Denní je ovšem úplně v pohodě, stěžovat si nad tím že jeden blbý řádek způsobí že > v jakémkoliv programovacím jazyku či systému, si bude muset pěkně a dost "zaprogramovat", aby z toho něco použitelného dostalje dost přehnané. I ten roční je práce na pár minut. Denně se setkávám s mnohem horšími zvěrstvy, které používají v komunikaci soukromé firmy / korporáty.
Jestli tahle nestandardní s*ačka, která mimochodem ani není CSV(!!), připadá lepší pro předávání dat než například standardní JSON nebo ji dokonce považuje za "skvělou", pak o programování a IT ví velké kulové.
Tenhle format se pouzival davno pred tim, nez jste mel vubec paru o tom, co to je textovy soubor. A protoze je na to navazano spoustu systemu, tak je to presne naopak, nez pisete. Usetri se spousta penez s jejich predelavanim.
WTF??!!! Proč by se něco muselo předělávat??!Je úplně normální, že když už je nějaký datový formát nebo API totálně zprasené, tak se nechá tak jak je pro stávající systémy a k němu pak stačí akorát PŘIDAT další zdroj v rozumném formátu - například JSON.Každopádně tahle současná s*ačka z ČNB je jenom s*ačka, není to ani CSV, nedodržuje to žádný standard pro nic - je to nějaký paskvil, který si někdo v ČNB kdysi vymyslel.
Co bys chtel, za ty penize? 😀
Taky nechápu proč to v ČNB dělají tak jednoduché, efektivní a málo datově náročné. Každý přece ví, že napsat parser pro JSON je otázka chvilky. Zato přečíst takový texťák, to už znamená hodiny programování!Jinak máte pravdu, to prasácké CSV je strašná česká specialita, navíc datum v českém formátu DD.MM.YYYY a dokonce čísla s desetinnou čárkou místo tečky :-O. Katastrofa. Jak může být ČNB tak ignorantská a myslet jen na sebe.
Ja mam takovy pocit, ze jste nikdy nebyl v praxi v bankach a podobnych institucich. Jinak byste tohle v zivote nemohl napsat.
Posledních několik let dělám vývoj výhradně pro nadnárodní soukromé banky a "podobné instituce".Akorát proto, že jsou SOUKROMÉ, tak si nemohou dovolit takový prasácký přístup jako státní instituce (např. ČNB), které ze zákona nelze ignorovat.Právě u bank je naprosto běžné, že nabízí kvalitní API, které funguje v mnoha formátech současně. Asi málokterá soukromá banka si může dovolit říct klientům: "Dejte si k nám peníze, zřiďte si u nás účty a pak si zaplaťte tým programátorů k tomu, abyste to vůbec dokázali zaintegrovat nebo si jen přečíst výstupy, protože mi to zkrátka máme takhle a žádné standardy nedodržujeme - alespoň se ukáží schopnosti vašich programátorů!" LOLProč by to nějaká firma dělala? Jediným zákazníkem takové banky by byl asi sadomasochistický salon pro IT vývojáře. LOLČNB jako státní instituce si může dovolit ty její "pseudoformáty" jen proto, že nemá žádnou konkurenci a žádná firma si nemůže říct, že na ČNB kašle a raději si jako národní banku zvolí třeba německou Bundesbank, která má standardní REST API a na výběr nabízí řadu formátů s dodržováním standardů jako JSON, XML, CSV (standardizované!).V normálně fungující zemi by na to dohlédla politická reprezentace, ale my žijeme v Čechystánu, kde politické kariéře nevadí ani aktivní trestní stíhání nebo dokonce odsouzení, takže takový detail jako špatné fungování institucí asi neřeší nikdo. Volyče pak zajímá hlavně aby byla "sousedská večeře" kde dostanou zdarma levné párky a pivo, aby dostali pětikilo k důchodu a jestli to tady celé shoří je jim totálně šumák.Dokonce i tady v diskusi se se mnou lidi hádají jak je super, že to má ČNB takhle na háku, takže v takovém prostředí to tady asi těžko bude fungovat jako v Německu. Opravdu je to tak, že lidé mají takovou vládu a takové instituce, jaké si zaslouží. Já mám jenom smůlu, že už jsem si vytvořil vztahy s některými lidmi tady a život jinde mi nedělá dobře, takže takové věci tady musím přežít. LOL
Názor byl 1× upraven, naposled 3. 5. 2022 14:55
Pak gratuluji k potkávání pouze rozumných firem. Například - B2B komunikace v automotive je občas šílená a o standardizaci člověk narazí jen omylem. - Jednou jsem musela parsovat "csv" od jednoho telefonního operátora, které sice mělo příponu csv a jako oddělovač čárky, ale dotyčná firma se do toho snažila nacpat podbuňky v buňkách a počet sloupců se řádek od řádku měnil.- Komunikační protokoly ve zdravotnictví jsou překvapivě často fajn a standardizované, ale pak to narazí na firmy, které si tu specifikaci vyloží po svém a cpou identifikátory kam nemají(Ale je fajn slyšet že Bundesbank umí posílat data v normálních formátech, pro automatizaci většiny komunikace se státními institucemi by tam bylo potřeba spíš OCR na faxy :) )
I human readable datove formaty jsou validni. Zkuste si predstavit situaci, ze chcete nejaka data, ktere nelze ziskat jinak nez stahnutim webove stranky a parsovanim html. Nektera data jsou proste uzivatelska a nikdo je nekonvertoval do standardizovaneho formatu. Pak ta odpovednost pada na prvniho, kdo s tim musi strojove pracovat.
Typicky webove stránky u tiskáren - třeba zjištění stavu osvitové jednotky u laserových tiskáren
Ono ani CSV nemusí být zrovna výhra - neviděl jsem takový, který by se v Excelu otevřel korektně. Problém s datem, desetinnou čárkou / tečkou, oddělovač tisíců, různé kódování textu, a nakonec závislost na regionálním nastavení. Hlavně Excel nenechat, aby o formátu rozhodoval sám. Já oddělovač | ($7C) používám dost často.
A není to spíše problém toho Excelu?
Ano, je to problém Excelu - protlačuje svoje rozhodování i tam, kde seká evidentní chyby.
Narozdíl od někoho kdo se zhrozí nad triviálním datovým formátem? Jasně, csv bez nesmyslů navíc by bylo lepší, json by byl taky fajn. Ale to co poskytuje ČNB mě fakt nechává chladnou 😃Běžně parsuju třeba tohle: https://en.wikipedia.org/wiki/Health_Level_7
Doporucuji si na takove veci napsat libku, pokud to delate casteji, nez parsovat cunacinky, ktere jsou korporaty preplnene. Format je vsak naprosto standartni, jedna se o bezny terminal z druhe pulky 20.stoleti. V dnesni dobe na to mate apicka v modernich programovacich jazycich. Pokud to chcete delat rucne od znaku, tak se to v nejake ucelene knihovne vyplati. Problem je v tom, ze korporaty jsou preplanene blemtaky, nikdo z nich vsak neni kloudny k tomu zacit na sobe pracovat a naucit se napsat vlastni knihovnu, ktera by ulehcila zivot pulce lidi na patre.
A bezim na windows ne linuxu. Fungovat pod linuxem a spoustet aplikace z bashe ze mne lepsiho programatora neudela. Bohuzel pulka socialnich inzenyru v CR je opacneho nazoru.
takže běžný franta klikač, který je naučený sekvence ikon a když mu aktualizace Windows změní pár ikonek je zmatený
Podivejme se dalsi socialni inzenyr, ktery cpe korporatum sve frontendy do datove vrstvy. Funguji pod win10 nebo server 2016 a v praci pouzivam vyhradne prikazovou radku. Nepotrebuji bash a jeho gui like features, staci mi prosty basic v cmd.Tahle zeme je plna lidi, kteri si nainstaluji linux a tvari se jako open source hackeri, pritom nezvladaji napsat zadnou knihovnu.Pane Mark Trade, tak kolik jste tento tyden butonku a jinich ux nakreslil svemu zamestnavateli do dabazoveho schematu?
Myslím, že běžný Franta klikač (BFK) by se diskuse neúčastnil. A jedinec, který nakreslí butonek do databázového schématu, musí vědět dost přesně, jaké to bude mí důsledky (třeba jak bude vypadat cílová struktura), jinak by takovou práci nemohl zodpovědně dělat.
Autor si to zbytocne skomplikoval... Cele sa to da napisat na 2 riadky a vystup je zoznam objektov s ktorym sa da dalej pracovat - napr. naformatovat do tabulky (treti riadok):$content = (Invoke-WebRequest https://www.cnb.cz/cs/financni_trhy/devizovy... ).Content$content = $content -split "`n" | Select-Object -Skip 1 | ConvertFrom-Csv -Delimiter "`|"$content | Format-Table
Názor byl 1× upraven, naposled 2. 5. 2022 09:17
Ano, to autorovo moc neukazuje to, že PS pracuje s objekty. Ono to jde napsat jako one-liner:$content = (Invoke-WebRequest https://www.cnb.cz/cs/financni_trhy/devizovy... ).Content -split "`n" | Select-Object -Skip 1 | ConvertFrom-Csv -Delimiter "`|"Ten cyklus procházející argumenty lze taky nahradit operátorem pole -contains, takže by se to celé dalo napsat na 1-2 řádky, ale zase to nebude pro nově příchozí moc srozumitelné.
Kate s Spíš ty máš velký problém se vzděláním jinak bys takovou blbost nikdy nepsala 😀 csv znamená Comma-separated values😝
Jenže v českém prostředí tohle narazí na to, že používáme desetinou čárku a ne tečku. Excel třeba defaultně používá středník, ale oddělovat může být cokoliv. Setkal jsem se už s čárkou, tabulátorem, středníkem, mezerou i zde užitou pipou.
Problém moderní doby, každý hází pojmy a plete si je s dojmy 😀 Nemůže to být cokoliv 😉 co je csv a jaký má formát říká RFC4180, pokud to tak není nenazývejme to csv jelikož to csv není 😉
Ten soubor není CSV, má koncovku TXT
Pokud to neni csv tak je to mutace rodiny formatu csv? Nebo datove formaty typu csv?
Kdysi se tyto soubory označovaly jako formát SDF - tedy textový soubor se specifikovaným oddělovačem položek. Ostatně, proč dělat umělý problém - prostě se při importu určí, který znak je oddělovač, jenž nutně nemusí být čárka, jako u CSV.
Jasně. RFC to neodpovídá. Realita je ovšem taková, že se jako delimiter běžně používají i jiné znaky, a princip čtení je úplně stejný. Každá běžná knihovna pro čtení csv kvůli tomu umí nastavit delimiter (A znak pro „uvozovky“)
Kate s : Ale mamííí můj excel to ožužlá tak to musí být csv......., NE! jenom že ti to excel ožužlá neznamená že je to csv , realita je taková že až si objednáš csv tak dostaneš csv a nemůžeš říct ani ťuk že to umí csv a ne mezery nebo jiné oddělovače 😝 csv je csv s jasnou definicí kterou pochopí každý kdo chápe význam psaného textu, tečka. Čůráme do toalety a ne na podlahu, modrá není růžová, derivace nejsou integrály a vzděláni není VŠ života, 😀 Opravdu číst tyhle hlouposti typu .....fňuk fňuk ale realita mamííí řekni mu něco protože fňuk můj excel.... je jako bavit se s idiotem nebo státním úředníkem... 😝😀
Pracujete s Linuxem už dlouho?
Jasně, excel 😃No, možná až začnete mít potřebu vyvíjet věci co parsují výstup z různých systémů, dojde vám, že csv s nestandardním delimiterem je celkem běžná praxe. Zrovna roura kterou používá formát ČNB je dost běžná náhrada. Je to ve většině případů méně běžný symbol než čárka, a nevede to pak k výsledku plnému uvozovek - lépe se to čte.To že se reálné použití časem odkloní od RFC je mimochodem naprosto běžné. V některých případech to může být problém, ale tady s tím počítá snad všechno. RFC to navíc připouští. (Due to lack of a single specification, there are considerable differences among implementations. Implementors should "be conservative in what you do, be liberal in what you accept from others" (RFC 793 [8]) when processing CSV files. An attempt at a common definition can be found in Section 2.)parsery csv s nestandardním delimiterem: https://docs.rs/csv/1.1.6/csv/struct.Read... https://docs.python.org/3/library/csv.htmlhttps://github.com/AriaFallah/csv-parserMůžeme tady fakt hodiny slovíčkařit nad tím, co je a co není zapsané v něčem co ani není specifikace, ale proposal (formální specifikace CSV neexistuje), ale na použití v realitě to moc nemění. Určitě by bylo lepší nazvat ten formát DSV a comma separated mít jako special case, ale to se prostě nikdy nestalo.Mimochodem, moje poznámka se ani netýkala toho, jestli to csv je, nebo není - pořád je potřeba přeskočit (nebo parsovat zvlášť) ten první řádek. Pointa je, že to půjde přečíst každou knihovnou na parsování csv kterou jsem kdy jako programátorka potkala, a brečet nad tím že ČNB přidělává hrozně práce programátorům spíš vypovídá o smutné úrovni programátora.
Tady jen buzeruje hromada socialnich inzenyru, kteri sotva zvladaji zaklady programovani. Nainstaluji si linux, nasadi cerne slunecni bryle a hned jsou z nich frajeri. Vubec je neposlouchejte, ty jejich pulrady nestoji za nic. Obcas clovek vidi socialniho chytraka, tak ma potrebu jit s davem a napodobovat ho. RFC je zakladni standard, ale take se nikde nepise, ze mutace jsou zakazany. Je to zakladni popis datove struktury, ktera ovsem muze mit neoficialni potomky.
Moc dobře udělaný článek. Sem zvědav jestli změní můj názor na PowerShell. Ten koncept sem nikdy nepochopil. Připadá mi, že plácá dohromady všechno u čeho někdo řekl tohle co mají oni tam nemáme, tak to tam dáme.Kdykoliv něco potřebuju, tak si musím najít na internetu přesně daný skript. Je to totiž přehledné jako web microsoftu.Určitě to má obrovské možnosti, ale provázanost a promyšlenost jako mají unixové shelly sem v tom nikdy nenašel. Už jen ty aliasy, ono je teoreticky fajn, že funguje to i to, ale prakticky je v tom bordel a ztěžuje to orientaci.
No já nevím... Jako vypadá to pěkně, to ne že ne, ale v bashi by to bylo nějak jakože curl -s https://www.cnb.cz/cs/financni_trhy/devizovy... | grep USDJe to takové rychlejší, interaktivnější, asi bych neměnil😀
(iwr https://www.cnb.cz/cs/financni_trhy/devizovy... ).Content | findstr USD😝
https://www.google.com/searchUznávám svrchovanost konkurenční platformy, pojďme si na znamení přátelství společně kopnout do uživatelů IOS, kteří nemají ani ten terminálB-]
Ale maji: https://ish.app/resp.: https://holzschu.github.io/a-Shell_iOS/
Názor byl 1× upraven, naposled 2. 5. 2022 08:47
na iOS je terminalovych aplikacii kopa, ale to je mobil.No a na macOs je to standard, kedze je to UNIX.
Vetsinou na windowsi prikazove radce spoustim nasledujici prikazy: git … npm/yarn … a ssh … Ale jinak souhlasim s drivejsim prispevkem: moc pekny clanek, diky.
Dej to do wsl do ubuntu. Jednak nebudes muset řešit neco jako PowerShell a druhak budes mit vsechny vyhody linuxu. Vzhledem k tomu, ze pouzivas git, tak mě napadají treb práva.
To nemuzu. Funguju totiz na debilnim nedodelanym linuxovym KVMku, ktery neumi poradne vyuzit AMDckovych featur a virtualizace ve virtualizaci spolecne s GPU passthrough proste nefunguje dobre.
Názor byl 1× upraven, naposled 2. 5. 2022 06:09
Joa krome toho, tahle distribuce se u me nesmi ani stahovat. Natoz nekam instalovat.
Já si doinstaloval gsudo, abych v případě potřeby povýšení práv nemusel pouštět konzoli znova. Jinak nejpoužívanější příkazy mám asi:taskkill /F /IM "jmeno procesu" - občas věci nejdou zabít přes taskmanagerwinget upgrade - nejjednodušší způsob upgradu programů (i když moc nefunguje)cd, dirJinak je škoda, že u tvorby jmen některých příkazů nikdo nepřemýšlel.
skvělej článek, bez kapitol a informační hodnota perfektní... 👍🙂Proč tam nemáte víc tak kvalitních redaktorů a zaměstnáváte samý zoufalce který umí tak leda překládat bulvární témata pomocí google translatoru.
Bez kapitol? Já jich vidím 8... Ale jinak souhlasím, pan Čížek je jediný redaktor, který tu vytváří vlastní a zajímavý obsah. Možná by chtělo trochu ubrat na popisování základů pro začátečníky a psát o nějakých zajímavějších a pokročilejších tématech. Ale oni nejlépe ví, na jaké publikum cílí.
Ony tam jeste vcera nebyly
Úplně to vidím, doběhne šéfredaktor a "Čížku, ty debile, praskej tam dát kapitoly, ať je víc reklam. To ti strhnu z prémií!" 😀
Potvrďte prosím přezdívku, kterou jsme náhodně vygenerovali, nebo si zvolte jinou. Zajistí, že váš profil bude unikátní.
Tato přezdívka je už obsazená, zvolte prosím jinou.