středa 30. září 2020

Jak opravit Windows Update Error 0x8024a105 (SOLVED)

Při oprašování naklonovaných Windows jsem si všiml, že jsou seklé aktualizace. Prý chyba 0x8024a105. Návodů na opravu se dá rychle najít několik, mně se zalíbily postupy sepsané v článku 7 Ways to Fix Windows 10 Update Error 0x8024a105 in 2020. Postupně jsem zkoušel sepsané kroky, ale až postup č. 3 konečně zabral. Ve zkratce:

Zastavíme updatové služby (v terminálu)

net stop bits
net stop wuauserv

Smažeme obsah složky C:\Windows\SoftwareDistribution

Opět spustíme služby

net start bits
net start wuauserv

A restartujeme počítač.

Voilà! :-)


pondělí 28. září 2020

Upgrade staršího notebooku - klonování Windows na nový SSD

Koncept tohoto příspěvku jsem sepsal před skoro pěti lety, když jsem prohnal vlnu upgradů několika už tehdy staršími notebooky a prodloužil jim život až do dnes. Odkazy na použité disky uvádět smysl nemá, stejně se už neprodávají. Ceny podobných disků jsou dnes na polovině a dostupnější jsou tak i větší kapacity. Nicméně jsem si kapacitu stávajícího disku neověřil a kvůli pár stovkám celou operaci zkomplikoval zakoupením o něco menším kouskem.

Bohužel na tehdy úspěšně vyzkoušený postup jsem si dnes, když jsem se pustil do upgradu jednoho "zapomenutého" kousku, vzpomněl jen mlhavě. Že jsem to nedopsal už tehdy! Šel jsem tedy cestou povědomou, ale jistě ne ideální. Postupů klonování disku je samozřejmě vícero, stejně jako vhodných programů. Ale to, co tu popisuji, jsem právě úspěšně provedl.

Máme tedy "klasický" 500 GB HDD, který chceme nahradit 480 GB SSD. Pak je potřeba USB flashka (nebo CD?), "rámeček" pro připojení SATA disku (zase až taková vykopávka to není) na USB, pomocný disk (případně další příslušnou redukci pro připojení na USB) s kapacitou stejnou nebo větší, než je disk stávající, šroubováček a trochu toho času (tak asi víkend). A základní podmínkou je podle mě nesahat na stávající disk, aby se dalo případně začít znova a lépe.

Postup výměny disku za SSD je potom v krátkosti takovýto:
  1. na USB flashku (staromilci na CD) dostaneme starý dobrý a osvědčený prográmek Clonezilla
  2. připojíme k notebooku pomocný disk. Pokud máme SSD stejné nebo větší kapacity, než je stávající disk, rovnou připojíme SSD.
  3. přesvědčíme notebook aby nabootoval z USB, nastartujeme Clonezillu a zkopírujeme celý stávající disk na disk pomocný (nebo rovnou na SSD)
  4. pokud jsme použili pomocný disk, pomocí GParted na něm zmenšíme partišnu či partišny (oddíl či oddíle) tak, aby se následně vešly na nový disk. Jak jsem pochopil různé návody, neradno posouvat "céčko" a partišny bootovací. Naopak už v této fázi se patrně dá zbavit partišen pro obnovení systému (recovery), ale to jsem si netroufnul. GParted je také v live verzi, ale tentokrát jsem disk připojil k notebooku s Linuxem.
  5. starý disk vymontujeme, odložíme a do notebooku zacvakneme nový SSD. Nabootujeme zase Clonezillu a nahrneme obsah pomocného disku na nový za pomocí parametru -icds v expertním režimu, kterým se vypne kontrola velikosti disků.
  6. odpojíme flashku i pomocný disk a nabootojeme ze SSD. Nelekneme se modré smrti a restartu, ale pak by měl systém naběhnout.
  7. následně upravíme partišny přímo ve Windows pomocí správce úložiště.
  8. no a když až přitom nám dojde, že "recovery oddíl" nepotřebujeme (když tam jsou vlastně osmičky) sáhneme k diskpart a postupu podle Windows 10 - jak smazat recovery oddíl? - Karel Neugebauer - blog a nakonec nainstalujeme i AOMEI Partition Assistant, protože jinak prázdné místo různě po disku s "céčkem" nespojíme. Tato operace trvala poměrně dlouho, a po restartu po jejím dokončení to chtělo projít setupem "biosu", aby zmizela chyba chybějícího zařízení.

Jak říkám, určitě to jde udělat jinak a nejspíš i snáz, ale tentokrát jsem šel touto cestou. A ve výsledku mám k dispozici větší kapacitu, než na původním disku.

Ještě k tématu upgradu notebooku obecně. Většinou jde na notebooku vylepšit jen málo parametrů. Kromě disku se dá zvážit větší paměť, pokud je v modulech a ne napájená na desce, a modul WiFi (5 GHz). Některé typy modulů jsou ale nehorázně drahé a WiFi modul se musí najít takový, co bude v notebooku fungovat.


sobota 1. srpna 2020

Neseriózní Less.js v prohlížeči

Bez css preprocesoru jako je Less.js si dnes snad ani seriózní webařinu nedokážeme představit. Při normální seriózní práci si také neumíme představit, že by se kompilace less nespustila při buildu (nebo tak nějak jako podobně, prostě "pre-").

Ale občas se hodí zcela neseriózně zpracovat less v prohlížeči, třeba když připravujete jen takovou stránečku třeba pro náhled ikon, nebo tak něco, a chcete použít fragment stylů projektu v less. Není to žádný problém.

Podle Using Less.js - Browser Usage | Less.js potažmo less-docs/using-less-in-the-browser.md at master · less/less-docs · GitHub či LESS - Using Less In The Browser - Tutorialspoint a less.js - cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites! necháme natáhnout script, případně doplníme konfiguraci, a podle css - Is it possible to inline LESS stylesheets? - Stack Overflow upravíme type, protože při naší neserióznosti máme styly přímo v html. Script pak musí být natažen až za styly! Výsledný kód pak bude vypadat nějak takto:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
    <style>
        /* css */
    </style>
    <style type="text/less">
        /* less */
    </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/less.js/3.12.2/less.min.js"></script>
</head>
<body>
    <!-- obsah -->
</body>
</html>


pondělí 27. července 2020

Dvě verze PostgreSQL na jednom počítači? Jasně! A bez dockeru.

Začnu oblíbeným úvodem celebrit, vyjadřujících se k jakékoli problematice:
Nejsem odborník na to a to, ale osobně si myslím, že...
 S tímto na následující řádky nahlížejte prosím trocho shovívavěji. ;-)

Nicméně i já si osobně myslím, že problém souběžného vývoje několika projektů běžících na různých verzích databáze PostgreSQL celkem dobře řeší využití moderního nástroje Docker. Jenže ale protože ještě pořád nemáme rozchozeno a doladěno, co je pro vývoj třeba, rozhodl jsem se zkusit "starou" cestu spuštění databázových serveru současně. Na to jsem našel celkem podrobná návod Managing Multiple PostgreSQL Instances on Ubuntu/Debian - DZone Database potažmo Managing Multiple PostgreSQL Instances on Ubuntu/Debian - Percona Database Performance Blog, je to ten stejný postup od toho stejného autora.

Návod nebudu kopírovat, prostě a jednoduše při běžící verzi třeba 9.6 doinstalujte 11. Ta se neinstaluje "vedle", udělá si vlastní adresáře a spustí vlastní cluster s novým portem. Úplně bez problémů. Co byl problém tak to, že se mi zaboha nedařilo do databáze přihlásit. Defaultní uživatel postgres neměl heslo (?) a přitom všechny nástroje jej striktně vyžadují.

Pomohlo mi až, jak píší na PostgreSQL: How to change PostgreSQL user password? - Stack Overflow, přihlásit se do databáze bez hesla:

sudo -u postgres psql postgres -p 5435

A heslo nastavit:

ALTER USER postgres WITH PASSWORD 'postgres';

A pak jsem se už připojil a začal normálně pracovat. Podstatné je při všech operacích s databází nezapomenout na port! Port je to jediné, čím se databázové servery při většině operací rozlišují.




neděle 3. května 2020

mjml - šablony pro responzivní emaily poměrně snadno a celkem rychle

Už přes dva roky mám v konceptu postu o mjml poznámku "ROZPRACOVANÉ!". To jsme se s mjml našli poprvé, když jsem připravoval layout emailového newsletteru pro jistý projekt. No a po dvou letech jsme se našli znovu, tentokrát při přípravě layoutu obecných emailů.

mjml je šablonovací systém pro generování responzivních emailů. Všecky ty hnusy tabulek v tabulkách, inline styly, definice písma pro každý element a jiná zvěrstva řeší sám. Samosebou ne vše je v každém mailovacím programu nebo službě stoprocentní, ale to není snad ani email v prostém textu.

Pro editaci lze využít jak online mjml editor, editor mjml-app se zabudovanou validací i kompilací, editor Atom s pluginem, stejně tak Sublime text, tak jakýkoliv textový editor, balíček pro node.js (npm) a příkazový řádek. Také lze využít drag&drop online editor služby Mailjet.

Ostatně pomocí čeho mjml soubor připravit je popsáno v podrobné dokumentaci...

Před dvěma lety jsem bojoval s několika problémy, které, jak se ukázalo, způsobily různé verze mjml - dokumentace, ukázkové šablony, pluginy do Atomu byly pro verzi 3.3.5, ale aktuální verze mjml byla 4.0.3 a některé komponenty byly změněné a migrace z verze 3 na 4 (lze příkazem i v online editoru) nefungovala správně. Po downgradu na 3.3.5 mi zmizelo několik problematických momentů a vygenerované html konečně vypadalo správně. To jen jako upozornění, že ne vždy jde vše hladce.

Samostatná kapitola jsou obrázky. Výsledný email musí obsahovat absolutní url na obrázky, při vývoji je ale snazší pracovat s relativní cestou. S tím je třeba se nějak vypořádat. Pro správnou funkci preview pluginu do Atomu jsem si tehdy musel "dát obrázky na web", jinak se vůbec nezobrazovaly.

Je tu ale i možnost vložit obrázky přímo do emailu pomocí mjml-with-images-loader pro Webpack, ale ještě jsem to nezkoušel.

Ohledně obrázků v emailech jsem studoval ještě A Guide for SVG Support in Email | CSS-TricksSVG | Campaign Monitor a How to Embed Images in Your Emails: The Facts | SendGrid.

Pro integraci do Symfony potažmo Twigu existuje balík Symfony bundle for MJML nebo AssoconnectMJMLBundle (o čemž je článek Using MJML email templates with Symfony).

Vybrat a implementovat jeden z nich mě ještě čeká.

---

P.S.: Po dalším průzkumu a samostudiu jsem nakonec jen "vypáral" z balíčku asi tak tři řádky kódu -  samotné zavolání kompilace mjml, protože jsem potřeboval přidat pro render další parametry, což balíček neumožňuje, a naopak zbytek funkcí jsem vůbec nepotřeboval.


MAKE Magazine

Technology Review RSS Feeds

Nejčtenější příspěvky