diy

Jak automaticky vkladat text i kdyz se nekdo snazil, aby to neslo

Clovek obcas narazi na program, nebo webovou stranku, kde si nekdo dal tu praci, se znemoznenim vkladani textu prostrednim tlacitkem mysi. Nekdy se da text vlozit klavesovymi zkratkami, nekdy pres menu, nekdy vubec a vzdy je cloveka nedustojne hledat jakym zpusoben (a jestli vubec) to tentokrat pujde.

V Linuxu nastesti existuje moznost pripojit ps/2 klavesnici po seriovem portu a ta jde vyuzit i zajimavejsim zpusobem. Scankody ps/2 klavesnice muze totiz posilat druhy pocitac. Oba pocitace musi mit seriovy port (konvertor do USB funguje, takze staci USB). Seriove porty se propoji nullmodemem (to je kabel, kde je prekrizeny TX a RX). Zapojeni kabelu je na Wikipedii, nebo se da bezne koupit. A to je cely HW, vic toho neni potreba delat a obejdete se bez pajky a programatoru mikrokontroleru.

Na pocitaci, ktery ma ziskat falesnou klavesnici je potreba pustit jako root:

inputattach --baud 19200 --ps2serkbd /dev/ttyUSB0

a na pocitaci, ktery posila data lze pouzit napriklad serialkbd.py.

Puvodni klavesnice samozrejme funguje dal a dokonce ovlivnuje chovani tehle falesne, takze napriklad zmacknuti shiftu zmeni mala pismena na velka (az do prvniho pusteni shiftu tou falesnou klavesnici).

V pripade, ze bude program pusten pres ssh z terminalu na stejnem pocitaci, jako kam je vkladan text, pak doporucuji vlozit pred program nekolikasekundove cekani, aby bylo dost casu prepnout focus do zadaneho mista:

sleep 3; serialkbd.py datovy_soubor

alternativne by slo treba nakonfigurovat aby se na nejakou klavesovou zkratku spustilo ssh, ktere prekopiruje zvolena data na druhy pocitac a spusti vlozeni po seriovem portu.

Zda se, ze dnes uz jde na ebayi koupit prevodnik z ps/2 na seriovy port – staci hledat ‘ps2 serial arduino’. Temer s jistotou bude mit TTL vystupy, takze bude nutne zkonvertovat napetove urovne MAX232 na +-12V, ale pak by sla pripojit bezna klavesnice na seriovy port pocitace, ktery by zpracovaval psany text a posilal ho dal. To by umoznilo implementovat makra, pridat klavesy (treba vyuzitim normalni klavesnice pripojene k tomu ridicimu pocitaci, jeho paralelniho portu, USB, apod.), nebo treba nahravat psany text a umoznit ho cast znovu prehrat. To se obcas hodi kdyz se povede neco napsat do spatneho okna a nebo kdyz nekdo implementoval na webove strance komentarovy formular tak blbe, ze pri jakekoliv chybe text zmizi a neda se k nemu vratit ani pres tlacitko zpet v browseru.

Jeste zodpovim par predpokladanych dotazu:

Otazka: Musi tam byt druhy pocitac, neslo by spojit tim nullmodemem dva seriove porty na tom samem pocitaci?

Odpoved: Slo.

Otazka: A musi tam vubec byt ten HW, neslo by to nejak udelat pres virtualni porty?

Odpoved: Urcite by to nejak slo, ale z hlavy nevim jak. Treba se k tomu nekdy dostanu, prijdu na to a pridam to sem.

Otazka: To jsi delal jenom kvuli par blbym programum, ktere znemoznuji vkladani mysi?

Odpoved: Chtel bych klavesnici s makry, ktera si budu moci sam programovat. Zkonvertovat ps/2 na seriovy port a zpracovavat nezavislym pocitacem stream dat na seriovem portu mi prijde nejjednodussi. Umozni to nahravat provoz na klavesnici a cast ho znovu prehrat (treba kdyz clovek neco napise do spatneho okna) a navic to muze nahradit i KVM pro praci na vice pocitacich.

Otazka: Ma to smysl? Makra umi nektere herni klavesnice.

Odpoved: Vsechny herni klavesnice, ktere jsem zatim videl (kamarad jich mel plnou skrin) vyzadovaly k programovani maker nejaky program pro Windows, coz je system, ktery nemam, neumim s nim a navic by byl pekny opruz kvuli kazdemu programovani makra prehazovat klavesnici mezi pocitaci. Krome toho je otazka co vsechno tam jde naprogramovat. Moje reseni umoznuje naprogramovat v zasade cokoliv, co jde napsat v C, pythonu, nebo jinem jazyce, ktery lze pustit na pocitaci se dvema seriovymi porty. Tim pocitacem muze byt klidne treba arduino, nebo Atmega8 zabudovana ve fyzicke klavesnici.

Otazka: Ma to smysl? KVM nahradi treba synergy a neni nutne tahat seriove kabely.

Odpoved: Je rozdil precist si manual k synergy, zkusit ho na pet minut a pouzivat ho. Ten program (informace stara asi 4 roky, od te doby jsem ho nezkousel) asi tak jednou za hodinu udela nejakou pitomost. To je dost malo na to, aby se to dobre debuggovalo a prilis casto na to, aby to clovek nechtel rozslapat a prohodit oknem. Problemy pretrvavaly i kdyz synergy dostalo vlastni sitove karty a vlastni prekrizeny ethernetovy kabel.

Otazka: Kdyz to pouziju, jako KVM, budu s tim moci nastavovat i BIOS a bootloader?

Odpoved: Ne. Tohle zacne fungovat, az se pod uzivatelem root pusti inputattach. Ten se muze pustit i automaticky, ale aby to fungovalo drive, nez nabehne jadro, bylo by nutne zkonstruovat HW, ktery by ze serioveho portu delal zpet ps/2. S nejakym mikrokontrolerem by to nemelo byt tezke.

Otazka: Muj Linux nema inputattach, kde he sezenu?

Odpoved: Na Debianu je v balicku inputattach, na Fedore to je v balicku linuxconsoletools, na dalsich distribucich doporucuji hledat googlem jmeno distribuce a inputattach, nebo vyuzit nejaky distribucni tool pro hledani balicku.

Otazka: Chci tam doplnit klavesu, nasel jsem nejake scankody ps/2 klavesnice a dela to uplne nesmysly.

Odpoved: Existuji dve mnoziny ps/2 scancodu. inputattach zjevne pouziva set2. V poli keyboard jsou jednotlive polozky serazene podle jejich ascii kodu. Co se stane s unicode znaky netusim, ale python ma podporu unicode, takze predpokladam, ze v nem bude jednoduchy zpusob, jak projit cele unicode znaky v retezci i kdyby to nebyl ten, ktery jsem pouzil. Pak je otazka, jestli prodlouzit pole, nebo to napsat jinak.

Otazka: Bude mi to fungovat na Windows? Treba v cygwinu?

Odpoved: Na prijimaci strane temer jiste ne. Ale treba nekdo portoval inputattach i pro Windows. Na vysilaci strane (serialkbd.py) bude patrne nutne upravit nejake systemove veci (jmena seriovych portu, apod.), pripadne se postarat o konce radku a asi by to fungovat melo. Python je multiplatformni, takze clovek, ktery ma zkusenosti s programovanim v pythonu pro Windows by to podle meho nazoru mel bez problemu rozchodit. Nicmene moje zkusenosti s Microsoftimi operacnimi systemy konci u turbopascalu a qbasicu nekdy v minulem mileniu.

Posted by zelenohlav in Linux, 3 comments

Umeni improvizace – hraci kostka

Vetsinou chcete dosahnout cile a neni az tak dulezite jak, ale spis kdy, kde, nebo za kolik. Casto pomuze se nad problemem zamyslet.

Co udelate, kdyz zjistite, ze k deskove hre, kterou se prave chystate hrat s prateli, potrebujete hraci kostku a prave ta vam chybi?

Muzete zrusit hru.

Nebo dojit kostku koupit. V centru mesta par metru od prislusneho obchodu v pracovni den ve tri odpoledne to bude asi nejlepsi moznost. Jenomze tou dobou jste asi v praci a vasi pratele taky. Nez se v noci ze soboty na nedeli vratite taxikem (nebo jste nic nepili, takze muzete i vlastnim autem?) doprostred Vysociny z nejblizsiho non-stop obchodu s hrami, budou vasi pratele patrne jiz spat a ucet za taxika presahne cenu zpatecni letenky do New Yorku.

Ve skole jsme pouzivali obycejnou sestihrannou tuzku, na ktere byla po obvodu napsana cisla a kutalelo se s ni. Ale dnes je k videni dost kulatych tuzek a take dost reklamnich propisek, takze zustava otazkou, jestli nejakou doma najdete.

Muzete zkusit vyrezat kostku z kusu fosny a pokreslit ji tuzkou. Pokud mate sverak, pilku a kus fosny, jde to i za pet minut. S rozbrusovackou ziskate kostku z ocelove tyce ctvercoveho prurezu jeste rychleji. Otazkou je, jak nahodne vysledky bude davat – to zavisi na presnosti vasi prace.

No a tim jsme vycerpali vsechny rozumne moznosti. Nebo ne?

Pri hodu kostkou chcete generovat cisla 1 az 6. Pri hodu minci generujete panna a orel, tedy 1 a 0. To je dost malo. Ale zijeme v digitalnim veku a temer kazdy uz vi, ze vsechna cisla jdou vyjadrit z jednicek a nul. Vezmene tri ruzne mince. Seradme je tak, aby si to vsichni hraci zapamatovali (treba od nejmensi od nejvetsi). Tri mince predstavuji tri bity a do trech bitu zakodujete cisla 0 az 7 (000, 001, 010, 011, 100, 101, 110, 111). A co udelame s nulou a sedmickou? Muzeme si treba hodit znovu.

A proc nezakodujeme jednicku, jako 000, dvojku 001 … sestku 101? Klidne muzeme, je to preci uplne jedno.

A to jako vsichni u stolu musi umet pocitat s dvojkovou soustavou? Nic na tom neni, ale nemusi. Staci na zacatku nakreslit tabulku a pak cist hodnoty z tabulky.

Dalsi moznost, kterou jsem v takovem pripade pouzil ja, je naprogramovat kratky skript v BASHi, coz je shell, ktery najdete prakticky na kazdem pocitaci s Linuxem, a na mnoha jinych UNIXu vcetne OSX a Androidu. Staci pustit tento skript:

 while true; do echo $((RANDOM % 6 + 1)); read; done 

a pak uz jenom mackat enter. Odchazi se Ctrl-C. Snazite-li se skriptu porozumnet, prikaz read; je tam proto, ze ceka na enter, nactena hodnota se nikde nepouziva. Jednicka se pricita proto, aby cisla byla 1-6 a ne 0-5 a znak % je zbytek po deleni.

Uzijte si hru.

Posted by zelenohlav in Ekonomie, 0 comments
Lihovy varic

Lihovy varic

Jak jsem psal uz v uvodu – neni dulezite veci koupit, ale mit je. Opominu-li nelegalni a nepravdepodobne alternativy, je treba rozhodnout se mezi koupi a vyrobou. Rikate si, ze vyrobit neco je vzdycky nouzovka, nahrazka a provizorium? Ze kdyz uz to bude fungovat, tak to bude moc tezke, nebo velke?

Ukazu vam nejlepsi a nejlehci varic na suchy lih, ktery jsem kdy videl. Je lehci, nez prodavane varice na ktere se mi povedlo narazit. Je jednodussi na obsluhu (neni potreba nic rozkladat) a vejde se do maleho esusu.

Vezmete vhodnou plechovku (Luncheon meat, Veprove maso ve vlastni stave, apod.), otevrete ji, vyuzijte obsah a nechte si ten kus oceli, co byste normalne zahodili. Vymyjte ji (klidne v mycce, to ji neuskodi) a provrtejte jednu, nebo dve rady der z boku u dna a zhruba stejne der u horniho okraje. Lepe se to vrta, kdyz nasunete plechovku na prkno (klacek, trubku, apod.) takze mate druhou stranu vrtaneho plechu oprenou. Dole mam dve rady der o prumeru 3mm asi po 10mm, ale klidne muzete udelat diry treba 6mm, nebo 8mm trochu dal od sebe. A mate varic.

Varic zvrchu

Jednoduche, ze?

Polozte ho na nejakou nehorlavou podlozku. Vyhovi hlina, pisek, kamen, sterk, beton, nebo treba obracene viko od esusu. Naopak z vlastni zkusenosti nemohu doporucit asfaltovou cestu. Dejte do nej kostku sucheho lihu, zapalte ji, polozte na nej esus a muzete si treba uvarit caj. Pokud plamen zhasina, mate malo der.

Mozna vylepseni:

Pri vrtani vznikaji otrepy z plechu. Vrtate-li zvenku (asi jo, protoze dovnitr byste se blbe dostavali), budou otrepy uvnitr, kde to tolik nevadi, ale je lepsi je prejet pilnikem, aby nebyly ostre.

Suchy lih muze horet o neco vys, nez uplne na dne. Pak k nemu muze vzduch i zespodu, o neco lepe hori a o neco mene zahriva podlozku pod sebou. Touzite-li po tehle uprave (varic funguje vyborne i bez ni), ustrihnete nuzkami na plech tak 20mm z plechovky o mensim prumeru, nez ze ktere mate varic (treba z plechovky od hrasku, nebo fazoli), do dna provrtejte diry a pridelejte ji na dno varice. Jak to pridelat? Urcite neletujte cinovou pajkou, ta by se roztekla. Muzete bodovat, sroubovat, pajet mosazi, ale nejjednodussi je udelat do dna varice diry, prostrcit jimi plech z vlozene plechovky a ohnout ho.

Vystrihejte z 20mm steny neco jako cimburi. Staci par pacicek, tak ctyri az sest, velkych asi 10x10mm. Tim budete mit dno plechovsky s dirami, jednim centimetrem plechovky a nekolika pacickami dlouhymi dalsi centimetr. Vlozte to do varice a oznacte si treba fixou, kde jsou pacicky. Pokud jste je vyrobili symetricky, muzete si jejich polohu na dne varice oznacit i z druhe strany, kde to bude mene prace. Pak v oznacenych mistech proriznete dno varice – starym nozem s tlustou cepeli (bajonetem), otvirakem na koncervy (takovym tim, co nema zadne pohyblive casti), nebo jinym vhodnym nastrojem. Muzete take provrtat nekolik der vrtackou a spojit je do jedne. Ten plech je tak tenky, ze do nej udelate diru skoro cimkoliv. Vlozte kus z mensi plechovky dovnitr do varice, prostrcte pacicky zkrz vytvorene otvory a ohnete je, aby ten kus nevypadaval. Hotovo.

Vlozena plechovka, aby suchy lih nehorel na dne varice.

schema:

schema konstrukce

Pokud jste na zacatku pouzili moc vysokou plechovku, nechcete ji zkracovat (je od vyroby prakticky zakoncena, takze se o ni neporezete) a chcete varic nosit v klasickem hlinikovem dvoj-esusu, bude vam prekazet madlo mensiho esusu. Nakreslete si kam vychazi a vystrihnete na nej pruchody v okraji plechovky.

Co kdyz nemate vrtacku? Mohl bych napsat, at si ji poridite, ze ji stejne budete potreboval skoro porad, ale kdyz se mi povedlo zapomenout si varic doma, vyrobili jsme si s kamarady jiny kdesi na parkovisti. Stacilo vyklopit plechovku protlaku do esusu (prece nevyhodim protlak, zejo), vyplachnout ji, najit u parkoviste klacek, navleknout plechovku na klacek a bajonetem a sekyrou udelat po obvodu diry. Zabodnout a zakroutit. Vic nez jedna rada se tam nevesla, kazda dira byla jina, nektere mely pres centimetr, jine pod 5mm. Fungoval perfektne nekolik let, nez se mi ho povedlo nekde ztratit. Plechovka byla asi 60mm v prumeru a 25mm vysoka, varic z plechovky od klasickeho maleho protlaku uz by mel asi moc maly vykon.

Misto bajonetu muzete samozrejme pouzit velky hrebik, kramli, nebo sroubovak, ktery jste dostali ke smontovani nejakeho pristroje za mnoho tisic, ale strhnul se po dvou sroubech, takze ho stejne neni skoda. Misto sekyry kladivo, nebo treba kamen. Pri prorazeni budete mit mnohem vetsi otrepy dovnitr do varice, tak se o ne neporezte.

Do varice se vejde suchy lih a zapalovac – nejlepe zabalene v igelitaku aby nebyly od sazi. Po pouziti ho nechte vychladnout, zabalte do igelitaku (at neuspinite esus zevnitr) a schovejte do esusu. Umyvat se to nevyplati – ohen desinfikuje a pokud jste si nedali praci s odstranenim otrepu po vrtani, akorat o ne roztrhate houbicku.

A nedelejte si starosti s tim, ze ho nekde zapomenete, uz si prece umite za par minut vyrobit dalsi z neceho, co byste normalne vyhodili, ne?

Posted by zelenohlav in Ekonomie, 0 comments