Opačný scroll v chrome

Možná se Vám také stalo, že po jedné z aktualizací se některé programy, včetně Chrome, začali chovat divně. Příčiny i následky mohou být různé, teď se ale zaměříme na to, že se otočí scroll oproti systémovému nastavení.

Osobně používám Xfce, které v nastavení myši umožňuje změnit scroll na „přirozený“, který znáte možná z Macu, nebo výchozího nastavení většiny nových driverů pro Windows. Problémem však je, že tato aplikace se chová jako xmodmap a tedy otočí stisknutí tlačítka, což není způsob, který vyhovuje některým aplikacím.

Důvodem je přechod na Xinput2, který již neposílá při posunu ona „kliknutí tlačítka“, ale kontinuální hodnoty posunu. Řešení je tedy poměrně jednoduché: vykašlat se na nastavení pomocí GUI a sáhnout do konfiguračního souboru.

V mém případě se jedná o úpravu hodnoty v xorg configu v sekci ovladače Synaptics. Pro myš v konfiguraci tedy přidáme hodnotu Option "VertScrollDelta" "-107", kde -107 bylo ve výchozí hodnotě číslo 107.

Jaké číslo je výchozí můžeme zjistit například pomocí programu xinput a to tak, že si nejprve nalzeneme ID touchpadu, který cheme převrátit příkazem xinput list a následně zobrazíme hodnotu pro posun xinput list-props 11 | grep -i scroll. Výstup může vypadat nějak takto:

Synaptics Scrolling Distance (272): -107, 107
Synaptics Edge Scrolling (273): 0, 0, 0
Synaptics Two-Finger Scrolling (274):   1, 0
Synaptics Circular Scrolling (281): 0
Synaptics Circular Scrolling Distance (282):    0.100000
Synaptics Circular Scrolling Trigger (283): 0

V mém případě byla zajímavá hodnota Synaptics Scrolling Distance. Pokud používáte jiný ovladač, tak je rozumné podívat se do jeho dokumentace a zjistit, co která hodnota znamená.

Tak… teď už by vše mělo fungovat jako dřív. Jen nezapomeňte vypnout obrácený scroll v nastavení myši, jinak se stane, že aplikace používající Xinput budou reagovat opačně.

Aktivní pluginy pro WP

Dostal jsem se do situace, kdy jsem musel získat všechny aktivní pluginy ze stránek, které běželi na WordPressu a to tak, abych mohl aktivovat přesně ty samé na druhém stroji.

Situace vznikla tak, že se udělala kopie původního webu, která ale neobsahovala pluginy. Po spuštění se tedy pluginy v databázi deaktivovali. A jelikož se jednalo o vícestránkový WordPress bylo by ruční aktivování pluginů celkem zdlouhavé a nudné.

K dispozici mi byl pouze dump (provedený pomocí mysqldump) a přístup k druhé databázi. Tato databáze byla provedena importem zmíněného dumpu, ale již v ní byly provedeny změny a proto jsem jej nemohl provést opětovně.

Jelikož všechny aktivní pluginy byly uchovávány v options pod option_id 33, rozhodl jsem se použít program grep a sed.

grep "active_plugins" wordpress_dump.sql | grep INSERT | sed 's/INSERT INTO ([^ ]*).*(33,\x27active_plugins\x27,\x27([^\x27]*).*/UPDATE \1 SET `option_value` = \x27\2\x27 WHERE option_id = 33;/p' > active_plugins_only.sql

Výsledný soubor jsem zkontroloval a poté SQL spustil nad databází, kde byly pluginy deaktivovány, abych je aktivoval podle původního nastavení.

Posedlost

Mám na tebe otázku,
neboj, je prostá.
Nepůjde o hádku —
je veskrze čistá.

Dobře večer spíš?
Netrápí tě minulost?
U mě už to víš,
říkáš tomu posedlost.

Jaká je tvá odpověď?
Také nemůžeš spát?
Strop znáš nazpaměť
a noci musíš se bát?

Ne, tak to není!
Můžeš klidně spát.
Ne, tak to není!
Koho mám se ptát?

Čas plyne

Čas plyne a věci se mění. Mění se k lepšímu i k horšímu. Některé změny jsou jasné, jiné pozorovatelné a posledního hloučku si ani nevšimneme, ale změnily se! Určitě se změnily! Otázkou jen je, jak moc se změnily a kterým směrem. Pokud bychom mohli vyjádřit celý náš život pomocí bodů v prostoru a všechny změny odpovídaly síle, která by byla určená vektorem v tomto prostoru, jaký by byl celkový vektor? Jaký by byl směr a velikost vektoru, který určuje náš život? Hýbeme se vůbec nebo stojíme na místě a části našeho života rotují kolem pomyslného středu? Kdo ví?

je zajímavé jakým směrem se mohou ubírat myšlenky. Je zajímavé jakým způsobem získáváme inspiraci, vědomosti a jakým stylem nabýváme poznání. Všichni dobře víme, že to, co prožijeme na vlastní kůži na nás má největší vliv. Je to věc, myšlenka či událost, co velmi invazivně, velmi tvrdě a surově formuje naši osobnost. Poznání z knih, filmů a her je jemné, milé, jako pohlazení, které jen nepatrně tvaruje křivky na povrchu naší osobnosti.

A bolest? Bolest ze ztráty, kterou jsme pocítili na vlastní kůži, ta je obzvláště krutá. Zaryje se hluboko do nás a dlouhé roky se snaží rozpínat naši osobnost směry, které jsme ani neznali. Směry, které se nám mnohdy ani nelíbí, ale nemůžeme si pomoci a musíme se podvolit. Drobná pohlazení se snaží zbrzdit rozpínání, zbrzdit postup, ale je to téměř marné.

A tak pokroucené kuličky, formy naší osobnosti, podoba nás samých pluje neznámým prostorem, či stojí v nekonečné prázdnotě a my stále žijeme své prosté životy dál.

Javascript

Tak jsem do projektu přidal i JavaScript, vesměs se jedná jen o obalení <iron-ajax> komponent. Backend jsem napsal v jako jednoduchý PHP skript, který pouze servíruje obsah, který je předem známý. Žádné podrazy ze strany poskytovatele (druhé API, to mé).

Nakonec, abych splnil požadavky jsem přidal aktuální počasí v lokaci akce. Opět načítané pomocí ajaxu.

Update 30. 12. 2015 Zveřejněn děsivý výsledek, který po ukončení předmětu zase smažu. https://github.com/hefay/MeetMe

Demo na http://hefay.atami.cz/via/
Prezentace: https://docs.google.com/presentation/d/1dakSf1odJGNpqA1GRxPbdnkXrkE2x1LJZXp1f9K6Q5E/edit?usp=sharing

Vytvoření designu v Polymeru

Prvním krokem bylo vytvoření stránky pomocí Polymeru. Díky komponentám z material designu, to bylo poměrně jednoduché i když jsem se musel potýkat s některými pro mě těžko uchopitelnými skutečnostmi.

via-01

V rámci tohto kroku jsem přidal také iframe (který počítám jako jedno API, protože jej tak publikuje i Google), který byl zatím statický a odkazoval pouze na jednu lokaci.

VIA 02

Zadání semestrální práce

V předmětu VIA (Vývoj internetových aplikací) jsme dostali za úkol vytvořit velmi jednoduchý projekt, který má využívat tři API.

Začal jsem tedy přemýšlet, co za projekt by to mohlo být. Nakonec jsem se rozhodl udělat jednoduchou stránku, která by zobrazovala naše výlety a podobně. Započal jsem tedy hledání vhodného frameworku. První volbou byl Angular, ale nakonec jsem přešel na Polymer.

rect4176

Na úvodní stránce aplikace je přehled všech akcí, které se chystají. Každá akce se dá rozkliknout, což vede k zobrazení jejího detailu.