sobota 21. listopadu 2020

Koukatelná horizon.tv i na starším notebooku? SOLVED! I když...

Jakožto dlouholetí zákazníci UPC (co je teď ovšem Vodafone) používáme aplikaci Horizon Go pro sledování televize přes internet na různých zařízeních. Jako fakt na různých. V kuchyni běží imrvére na iPadu, na dovolené na telefonu s Androidem a v "pracovně" na postarším notebooku s Windows. Mno, na tom notebooku aplikace běžela. Už neběží. Vodafone, co byl dřív UPC, aplikaci Horizon Go pro Windows 10 zaříz. 

Nebylo to přiznejme překvapení, Vodafone, co byl dřív UPC, o tom informoval předem, i "tisk" se přidal a sama aplikace o tom varovala po spuštění už nějakou dobu a odkazovala na používání webové aplikace horizon.tv. Aby byla záležitost zábavnější, web stále ponouká k instalaci aplikace. I podpora stále lže.

Co už tedy? Teď již zbytečnou aplikaci Horizon Go jsem odinstaloval a nabrnknul v Chromu horizon.tv. A zděsil se! Zatížení staré i5 vyskočilo na 100 % a vždy po pár vteřinách se video i zvuk zasekly. Nepoužitelné! Vyzkoumal jsem, že video se hrne ve Full HD (úplně zbytečné na rozlišení 1366x768, že?) a procesor dekódování nedává.

Jako první jsem hledal možnost přepnutí kvality videa, nějak tak jako nabízí YouTube nebo ČT. Ne, volbu kvality či rozlišení videa horizon.tv neumí.

Další kroky mě dovedly do nastavení Chrome (chrome://settings/), kde se v "Rozšířeném nastavení" skrývá zapnutí hardwarové akcelerace. Pic, procesor kolem 40 %. Fajn!



Pokud toto nastavení nenajdete nebo tak nějak úplně nezafunguje, zkuste na to jít přes "Experimentání nastavení" (chrome://flags/#enable-accelerated-video-decode).

No, ale ani teď jsem se nezbavil zasekávání videa a zvuku. A zasekávající se zvuk je tedy mnohem nepříjemnější, než to video. Snížit datový tok! Zmenšení okna s videem? Nepomohlo. Přepojení na WiFi? Nic. Jak ještě jinak by se dal datový tok snížit, vrtalo mi hlavou. Googli, Googli... Ha! How To Limit Download Speed in Google Chrome by mohlo zabrat. Zkusíme a... Jo! Video se v horizon.tv už neseká a kvalita je v pohodě. A postup? No, takové provizórium, ale celkem snadno provozovatelné. Posuďte sami.

V Chrome otevřeme DevTools. V menu "tři tečky" zvolte "Další nástroje" a pak "Nástroje pro vývojáře". Odvážnější stisknou klávesu F12. Rovnou si v vývojářské okno přepněte v "Ozubeném kolečku" do samostatného okna, abychom pak mohli sledovat televizi na celé obrazovce.


Přepněte na záložku "Network" a pak v roletce "Throttling" (seškrcení) přidejte ("Add...") nový profil s omezením datového toku na 2 Mb/s (to jsem střelil od oka a zafungovalo mi). Zadává se hodnota ovšem v kb/s.


(Na obrázku je vidět, že už profil vytvořený mám. Stejně tak si omezení datového toku zapnete.)


Už nějakou dobu mi běží televize v horizon.tv úplně v pohodě. Jediný drobný zádrhel může být nutnost vždy pro sledování programu zapínat DevTools a omezení datového toku. Ale děláme i horší věci, ne?

(Omezit datový tok by šlo jistě i jinak, třeba někdy přijdu na elegantnější způsob.)


sobota 14. listopadu 2020

Zálohování na Google Fotky už nebude nikdy jako dřív. Bohužel.

Tak nějak jsme si zvykli, že jsou služby od Googlu, alespoň se základními parametry, zdarma. Nejen ale, že Google postupně hromadu služeb zaříz, on se chystá změnit jednu z nejpřívětivějších vlastností zálohování fotek!

Od 1. června 2021 se obsah zálohovaný ve vysoké a expresní kvalitě začne započítávat do úložného prostoru vašeho účtu Google.

No a potom, až si všech 15 GB (zatím se toto nemění), co máme k dispozici, zaplníte, nezbude než další prostor dokoupit, nebo data promazat. Do té doby nahraných fotek a videí se tato změna netýká, takže pokud si chcete na Fotkách udržet větší archív, tak rychle nahrávat! :-|



neděle 1. listopadu 2020

Lokální web s vlastní doménou na NGINX po upgrade na Ubuntu 20 neběžel. Už zase běží. (SOLVED)

Pro možnosti ladění na různých zařízeních a v různých systémech mám pro (jeden) lokální vývojový web nastavenou doménu třetího řádu nasměrovanou na IP adresu mého notebooku. Nijak sofistikovaně mám pro svůj noťas nastavenou IP adresu v routeru doma i v kanceláři. Funguje to, jak potřebuji, jsem s tím spokojený.

Včera mi přišlo jako "dobrej nápad" odkliknout už poněkolikáté odloženou nabídku upgrade z Ubuntu 18 na 20. Vše proběhlo snad v pořádku (alespoň jsem na nic jiného zatím nepřišel), až na to, že výše zmíněný web nenaběhl. Zapátral jsem po síti a nejblíž mému problému je Reverse Proxy for the internal DNS to an external IP or URL | DigitalOceanUsing NGINX to avoid localhost:<arbitrary port> - Dan Clarke a nginx proxy pass to external url - Stack Overflow

Nastavení projektu pro NGINX máme ale trochu komplikovanější (a přiznám, že tak úplně s jistotou se v něm neorientuju), tak hned na podruhé pouze po doplnění proxy_set_header do sekce server se web rozeběhl. Uff. ;)

server {
    listen 80;
    listen moje.vlastni.domena:80;
    server_name moje.vlastni.domena;

    proxy_set_header Host $host;
... }


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.


středa 1. ledna 2020

MAKE Magazine

Technology Review RSS Feeds

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