Na nabídku

POSTŘEHY, NÁVODY a tak...


Tak v téhle oblasti se budou nacházet různé tipy a popisy věcí, co se mi kde zdařily.

12
Soubory a složky 1 - 12 z 13
automaticke_testovani.htmcakephp.htmdigital_na_prutovku.htm
elektrika.htmgit.htmjaky_prohlizec.htm
joomla.htmkwebcms.htmlinux.htm
opencart.htmopensource_a_penize.htmos_inst_kopii.htm


Verzování dat

V rámci práce s daty ve verzovacím systému vzniká problém jejich proměnlivosti u jednotlivých uživatelů. To se řešit v zásadě dá, ale každá z těch cest prostě pouze obchází jeden hluboce uložený principiální problém. Databáze vzniky jako skladiště dat s možností jejich odstraňování zevnitř a ne jen ze začátku či konce. Avšak reálně toto většina počítačů neumí provést a ani umět nemůže - na vině je totiž fyzické rozložení dat v paměti a možnosti přístupu k nim. Na vyšších úrovních se to projevuje jako nutnost celý soubor vzít, označit část, která už není potřeba či kam vložit část novou, která už někde je, a uložit ho se změněnými částmi. To chce až nezanedbatelně málo reálného místa (HD videa). Proto vznikla databázová úložiště, kde algoritmy zajišťují, že prázdné místo není problém. Avšak je to tímto kompaktní blok, který nelze snadno verzovat. A vzniká problém - jak triviálně přenášet mezi uživateli změny v datech takového blobu?

  • Nultý způsob je nemít databázi jako blob. Taky to jde. Pak totiž stačí normální nástroje.
  • První způsob je na toto se vykašlat a prostě data neverzovat. Dojede to hned při první změně struktur.
  • Druhý způsob jsou migrace; tím se sice zajistí, že struktura nebude na kousíčky, avšak samotná data to stále neřeší. Navíc musí být zajištěné její spuštění.
  • Třetí způsob jsou dumpy. Tedy rozšířená migrace s tím, že se do každé verze přidá dump databáze. Řeší sice data, ale ve chvíli, kdy je commitů víc, citelně narůstá i velikost dat, co se verzují.
  • Čtvrtý způsob je replikace. Tohle je fajn když to funguje, nastavovat replikace velkých databází vývojářům je víc než otrava. I s věcmi jako je Docker.
  • Pátý způsob je záznam jednotlivých transakcí. Tím myslím všechny dotazy, které vykonávají nad daty úpravy (INSER, UPDATE, ALTER, DELETE, ...). Na to je však potřeba mít ohackované předávání příkazů databázi. A programátoři těchto předávek jsou jedni z opravdu nejlínějších, navíc by museli znát, kam dotazy odsypat. A po stáhnutí je třeba tyto transakce provést a při nahrání doufat, že nenastane konflikt s někým dalším. Dnes v souvislosti s GDPR asi jediný rozumný způsob.

Ideální řešení tohle bohužel nemá. Ten čtverečkovaný papír můžete stříhat od začátku, od konce, můžete ho s opravami přepsat, ale nic do něj nedocpete nebo nevyhodíte, čtverečků je totiž jen konečný počet a pozice jsou dané. Navíc je v počítačích problém tvrdší o to, že se dá přistoupit pouze k sadě sousedních čtverečků, ne jenom k jednomu.


Daňové kecy

Stát chce svůj desátek. Tečka. Je to o to horší, že ty státy jsou dva a každý daní po svém. Plus je, že právě DPH počítají naprosto stejně. V praxi to pro mne znamenalo odladit dotaz, který generuje ceny s daní v závislosti na více faktorech. Základní jsou: stát expedující, stát doručení a stát fakturační. Další závislostí je měna, ve které je to celé provedeno. V každém případě mi tato sranda zabrala celý týden.


E-maily v Oppice

Nadávejme dokola. Náš Velký bráška Malý-měkký měl jednoho dne úžasný nápad. Doplní do produtů Office i poštovního klienta. Jenže on to zase až tak není poštovní klient, jako spíš software na organizaci a spolupráci ve firmě a klienta pošty má jen jako bonus. A s tímto paskvilem, kde se skloubil Schedule32+ a MSMail (znalci vědí), bylo potřeba začít komunikovat. Zpočátku to šlo, protože výtvor jménem Outlook používal poměrně rozumně HTML kódování na formátování zpráv. Ovšem někoho napadlo, že by tenhle klient mohl na zprávy žačít používat formátování textového editoru. Ehm. Takto došlo k poměrně kuriózní situaci, kdy regulérní maily, které jsou naformátované jako webové stránky, se zobrazovaly korektně v osekané verzi jménem OutlookExpress a v plnotučném Outlooku se rozsypaly.

Fór je jednoduchý. Starší Outlook používal (a Express stále ještě používá) jako zobrazovací jádro webový prohlížeč. Velký klient ale používá jádro Wordu. Ha. Word formátuje každou entitu extra. Entitami myslím třeba buňky tabulky nebo odstavce. Nerad používá styly. Takže donutit to k ostylování znamená vyplnit styl pro každou entitu extra. A to je ještě potřeba počítat s chováním defaultních hodnot. Tímto nám jednoduchý mail nakyne asi pětkrát. Většinu řeší plaintext, ale pak přijde někdo, kdo má hlavu jen pro vizáž a komplikace vzadu ignoruje a zábava má délku klidně jednoho dne.


PushPad

Vedení přišlo na Facebook a tam dostalo možnost obdržet nějaké notifikace přímo do prohlížeče. I zaplo tuto možnost. Po nějaké době při otevření prohlížeče vyhopsaly na dotyčné zprávy o posledních aktivitách. Osobně jsem toto viděl velmi vzápětí, když na mne začaly po otevření anonymního okna Chromu na extra stroji skákat upozornění. Netřeba dodávat, že aby notifikace skákala v anonymním okně, je prostě chyba toho, kdo tu funkcionalitu navrhl. Obzvlášť, když jí tam nelze schválit.

Tak, tím je jasno, co je vlastně PushPad. Je to služba nabízející API, přes které umožňuje předávat uživateli do prohlížeče notifikace. A to tak, aby jeden nebláznil s javascriptemm, přes který se to celé řídí. Hezkou vlastností jsou obložená odeslání a tagy. Odložená odeslání prostě znamenají, že se notifikace pošela se zpožděním - třeba zítra. Tagy jsou předpřipravené sady slov, podle nichž lze odeslat notifikaci skupině uživatelů (my to máme třeba na typ stroje a stát). Takže ne jako u twitteru, kde popisují obsah.

Výhrada je k dokumentaci, kde se tvrdí, že k definování cílového uživatele stačí jeho ID v našem systému. Ne. Chce to jako pole uživatelů. Dále vždy chce tagy, ač jsou označené jako volitelné. Tedy v případě nevyužití je třeba je nastavit na null. Tyto hacky jsou označené na Stack Overflow pod javascriptem a že jsou nutné pro php se jeden nikde nedozví. Ve chvíli, kdy jeden splní včechny závislosti, je s tím práce celkem triviální. Prostě se dodají texty a pokud možno absolutní cesty k obrázkům, případně datumy a celé se to pošle.

Zkoušení je též problematické. Prohlížeče totiž notifikace povolují jen s normálním prohlížením a ne v anonymních režimech. A pak notifikace vyskakují i po otevření anonymního okna. V nastavení je třeba mít vůbec zapnutý příjem, pak správně jak doménu, tak port a tohle nastavení je celkem zahrabané. Dotaz na notifikaci totiž neprovede stránka ale prohlížeč.

Petr Plšek, 182 00 Praha, me@kalanys.com