František Řezáč o softwarovém inženýrství - blog, projekty a jiné zajímavosti

Blog

  1. Operátory nejsou (vždy) funkce

    21. 5. 2018

    Začalo to zcela nenápadnou poznámkou pod čarou v Real world Haskell, že OR operátor (||) je v Haskellu definován jako běžná funkce a zároveň zkratuje (short circuit - první nalezený true ukončí vyhodnocování). Proč někdo považuje za důležité tak běžný fakt explicitně rozebírat mi začalo vrtat hlavou a na konci vedlo k odhalení jedné fundamentální neznalosti.

  2. Není open source jako open source

    4. 5. 2018

    Vlivem GPL panuje o open source intuitivní představa jako o realizaci utopického komunismu. Můžete si vzít co co potřebujete, když si pak zase může kdo chce vzít co potřebuje od vás. Spoustu chytráků to svádí k lákavé představě oběda zadarmo na účet naivních idealistů, kteří svojí práci jen tak rozdávají. V praxi ale často zjistí, že naopak oni naivně sedli na lep krvežíznivým kapitalistům a open source byla jen třpytivá návnada.

  3. Proč Dagi není programátor

    6. 3. 2018

    Pokračuji v reflexi témat z jOpenSpace. Tentokrát o Dagiho ‎příspěvku o tom, že programátory po čtyřicítce zůstávají jen looseři. ‎Dagiho určitě není možné podezřívat ze zaujatosti vůči technikům a jeho motivací byl spíš ušlechtilý cíl odvést debatu od přílišného zaujetí technickými hračkami k přemýšlení o tom, čeho jimi chceme dosáhnout. Argumentace byla ale postavená tak, že jsem musel kategoricky nesouhlasit snad s každou jednotlivou větou.

  4. Modularita 2: Taxonomie

    21. 2. 2018

    Druhý díl mých poznámek na téma modularita. Přečíst nejdřív první díl o ekonomických motivech modularity není úplně nutné, ale doporučeníhodné.

  5. JDBC připojení do PostgreSQL přes Unix socket

    10. 2. 2018

    Připojovat se z aplikace do databáze přes její síťové rozhraní je pro většinu lidí taková samozřejmost, že je ani nenapadne, že by to mohlo být jinak. Přitom s sebou tento způsob nese několik nevýhod, které ve velkém procentu deployment scénářů trpíme zcela zbytečně. Předně je to overhead průchodu síťovým stackem, pokud aplikace běží na stejném stroji jako DB. V takovém scénáři je možné použít místo připojení přes localhost nějakou jinou metodu IPC, v unixovém světě klasicky socket.

  6. Fantastická zvířata a jak je zabít

    10. 2. 2018

    Myšlenka tak malá, nepodstatná a okrajová, až je zajímavá.

  7. Neuralink vs umělá inteligence

    17. 11. 2017

    (Pokračování reportu z ne-konference jOpenSpace, reakce na přednášku Honzy Novotného o Neuralink)

  8. jOpenSpace

    17. 11. 2017

    Dostat se na konferenci typu jOpenSpace a být tam platným účastníkem byl ten nejvzdálenější cíl, který jsem si představoval, když jsem začínal před dvěma roky psát blog. Splnilo se mi to mnohem dříve, než bych čekal a stálo to za to.

  9. SAT problém v typové inferenci

    6. 6. 2017

    Věděli jste, že Java generika mohou pro kompilátor představovat SAT problém? A že v důsledku toho může být čas kompilace exponenciální? Mě by to ani nenapadlo do chvíle, kdy jsem začal zjišťovat proč build jednoho z našich menších modulů trvá abnormálních pět minut.

  10. Analýza slabého klíče v Diffie Hellman

    4. 6. 2017

    Pár poznámek z řešení nedávného problému. Používejte jen na vlastní nebezpečí.

  11. 100% code coverage

    1. 6. 2017

    V poslední době jsem četl hodně článků lametujících na vynucování vysoké code coverage. I když s tím v zásadě souhlasím, nebyl bych to já, aby mě to nevyprovokovalo k protiargumentaci. Jeden aspekt vysoké code coverage se mi totiž strašně líbí.

  12. YubiKey 4 v Debian Jessie

    26. 2. 2017

    YubiKey a U2F jsou jedny z nejlepších věcí, které se staly v počítačové bezpečnosti posledních let. Je to čipová karta a zároveň usb čtečka v balení, které se zcela schová do usb portu (verze nano). Nijak tedy nevyčnívá a je možné ho třeba v notebooku prostě nechat jako takovou simku na které máte hardwarově chráněné všechny svoje kryptografické klíče, protože tahle titěrnost zvládá prakticky všechny standardizované bezpečnostní technologie. Jeho využití je ve skutečnosti tak široké, že nastavit ho v plném rozsahu je vlastně dost práce. Proto tady nechám svoje poznámky z takového nastavování v Debian Jessie, může to někomu pomoct.

  13. Modularita 1: Ekonomie

    26. 2. 2017

    Vágnost významu slova modularita jej přímo předurčuje ‎k ovládnutí marketingových materiálů. Modularita je sice všude, ale všude taky znamená něco jiného. Rozplést tenhle chuchvalec myšlenek a přijít na to, co modularita ve skutečnosti je, mi trvalo mnoho let a sepsat to dalších mnoho měsíců. Tato první část se věnuje ekonomické motivaci k modularitě, ta druhá pak technické záludnosti modularity.

  14. Co je Rx?

    18. 12. 2016

    Už po několikáté jsem se nechal nechytat bezelstnou otázkou “Co je vlastně to Rx?”. Kdo už to někdy zkoušel vysvětlit ví, že jakkoli dobře zamýšlená odpověď zní ve výsledku jako pomatené mumlání šíleného vědce na drogách. Je to jev společný doopravdy inovativním technologiím - je obtížné popsat, co vlastně jsou, protože k vysvětlování není možné použít existující základ, resp. podobnost s něčím jiným je tak vzdálená, že je spíš matoucí.

  15. Nic

    17. 11. 2016

    Programování je jen aplikovaná matematika a matematika je jen filosofie exaktními prostředky. Tahle souvislost je většinou pohřbena hromadou technikálií a často i zuřivě odmítána. Když ale vybublá na povrch, je zábava. Náhodný kolemjdoucí pak občas nedokáže poznat, jestli se se projednává kus kódu nebo scholastika Tomáše Akvinského. Tak jsme se jednou dostali s kolegou do ostré pře o tom, co je nic.

  16. O softwarovém inženýrství

    5. 10. 2016

    Mám ho! Mám tagline pro svůj blog! Od chvíle kdy jsem na GeoCities umístil v rámci prvních pokusů s HTML svojí sebeprezentaci jsem jej zoufale hledal. Zatímco ostatní používali vtipné slovní hříčky, citáty slavných nebo oduševnělá moudra. Já cítil, že to musí být něco hlubšího. To místo v nadpisu stránky si přece zaslouží něco zásadního, nejlépe obecný destilát smyslu života a osobní životní misi v jednom. Bohužel najít dnes myšlenku s takovými parametry a ještě k tomu originální je jako kupovat značkové tepláky ve vietnamské tržnici. Přestože mi formuláře profilů na sociálních sítích trýznivě připomínaly neukojenou potřebu sebeurčení, zůstávaly prázdné. Až doteď.

  17. Skrytý půvab standupu

    26. 8. 2016

    Jak sbalit holku a vést vývojářský standup.

  18. Method level caching

    1. 7. 2016

    Mám rád slovo “kurvítko”. Je takové hezky české a přes zdánlivou lidovost má pro mě exaktní význam, který bych jinak musel vyjadřovat poměrně nudným opisem. Je to součástka, která má v nějakém větším celku objektivně malý nebo diskutabilní význam, ale která ho zároveň dokáže solidně rozjebat. Svět samozřejmě není černobílý, takže je u součástek lepší mluvit o “kurvítko indexu”, který vyjadřuje poměr mezi zmíněnými vlastnostmi. Ze zkušenosti mám u různých vývojářských praktik přiřazený svůj interní kurvítko index, který hodně ovlivňuje moje architektonická rozhodnutí. Pro zajímavost, víte co má u mě nejvyšší kurvítko index? Suverénně Caching a High availability (což je caching v bledě modrém).

  19. Objektové vs. funkcionální programování

    24. 4. 2016

    V poslední době se čím dál tím víc mluví o nástupu funkcionálního programování a jeho nadřazenosti nad objektovým. Že to slyším od testosteronem nadopovaných mladíků hledajících způsob vyjádření dominance je naprosto v pořádku, byl jsem jedním z nich, ale že to začínám slýchat i od seniorních inženýrů mě trošku děsí. ‎Proto bych chtěl k téhle debatě přidat pár střízlivých faktů.

  20. Programování, stav a web frontend

    18. 4. 2016

    Už mě nebaví diskuze o frontendových architekturách. I od základního MVC existuje nekonečné množství variant a specializací, které se liší nuancemi v tom, odkud kam vedou jakým stylem malované šipky. Diskuze o tom končí na argumentech typu kam co “patří”, kde je co “přehlednější”, v čem je “nejmíň duplicity” a dalších subjektivních pocitech jejichž reálný dopad je přinejmenším diskutabilní.

  21. Pohovory

    24. 3. 2016

    Už dlouho mě svrbí prsty k napsání článku o zážitcích z hledání práce a technických pracovních pohovorů, ale zatím jsem to nemohl publikovat veřejně. Původně jsem chtěl sepsat několik těch nejzábavnějších historek, ale během poslední doby jsem potkal několik článků, které absurdní situaci na trhu práce popisují seriózněji, takže připojím jen pár ironických komentářů.

  22. Generování modelu z XSD

    1. 2. 2016

    Nedávné řešení problémů s m2e (adaptace Mavenu pro Eclipse) mě přivedlo k tématu, které je v profesionální Javě prakticky dogmatické a už se o něm ani moc nepřemýšlí - generování Java tříd z XSD. Termín “contract first” už prakticky splynul s tímto úkonem a nikoho už nenapadne, že by to mohlo být i úplně jinak.

  23. Přesun webu na Jekyll

    27. 12. 2015

    Vytvořil jsem novou verzi svého webu, tentokrát pomocí nástroje Jekyll. Ještě bude chvíli trvat, než to k něčemu bude, proto se zatím raději dívejte na předchozí verzi.

O mně

  1. Backup shell script using rsync

  2. Tools for management and use of Czech qualified digital signature

  3. Using Octave for business strategy evaluation

  4. Split XML to separate files with XSLT 2

  5. Multiline log message grep using Lex

  6. Reverse proxy using netcat

  7. Some experiments with IOCTL

  8. Yet another solution for the password madness

  9. Blog moved to Jekyll and GitHub

  10. Modification of Adafruit fingerprint sensor library

  11. Task list app using RX

  12. HospIS integration project

  13. Graduation from University of West Bohemia

    Master's degree in Distributed systems.
  14. Communism collapsed

    Yep, I'm so old that not only I have lived in two millenia, I have even experienced totalitarian regime first hand.
  15. Chernobyl exploded

    I must have been bitten by a radioactive bug back then since I have a superpower to write really buggy code.
  16. Born