navod

Nakladana repa

Nakladana repa

Na internetu lze najit ruzne recepty na nakladanou repu, ktere se casto si v jednotlivych ingrediencich lisi az 1:4. Tohle je postup, ktery jsem si z dostupnych receptu vybral a modifikoval ja.

Disclaimer

Nenesu zadnou zodpovednost za to, kdyz se vam povede sebe, nebo nekoho jineho poskodit na zdravi nakladanou repou. Recept nasledujete na vlastni nebezpeci po zvazeni, zda jsou koncetrace pepre a kapsaicinu vhodne pro vas travici trakt. Pokut nectite zasadu, ze “to ma chutnat, jako kdyz jis lavu”, meli byste patrne snizit mnozstvi koreni.

A ted uz k receptu

Vyrveme repu ze zeme, zbavime ji listi a hliny. Bulvy naskladame do hrnce, zalijeme vodou a nekolik hodin varime. Jednak zmeknou a druhak pujdou snadno oloupat. Vodu z hrnce rozlijeme na cerstve polozenou jeste nenalakovanou podlahu, aby uz byla navzdy ruzova. Tedy pokud jsme mezacali s krmnou repou (se kterou recept take funguje), nebo pokud nepreferujeme jinou barvu podlahy, zdi a prilehleho calouneni na nabytku.

Repy oloupeme. Lidi se zkusenostmi s tahanim odporu z desek plosnych spoju prsty mohou hned po vyndani z hrnce. Ostatni si asi pockaji, az teplota bulev o neco poklesne. Na mistech, kde z bulvy netrcely koreny, nebo listy to jde stahnout rukou bez nastroje. Oloupane bulvy nakrajime na platky (ctvrtkolecka, pulkolecka, whatever).

Pripravime si zavarovaci flasky s vicky. Je vhodne, aby byly ciste. Do kazde flasky dame asi pul lzicky kulickoveho pepre, lzicku horcicneho semene, jeden bobkovy list, asi ctvrt lzicky fenykloveho semene a 2-6 poradne ostrych feferonek. Neco, co ma alespon 100 000 SHU. Pokud mame jednomegove Jolokie, mozna bude stacit jedna. Davam je tam cele i se stopkou, ale pokud si chcete nechat seminka, doporucuji si tou rukou pak neutirat celo, neprotirat oci a pujdete-li na toaletu, vezmete si gumovou rukavici. Zbytek sklenice zaplnime nakrajenou repou skoro po vrch (tak 10-20mm pod vrsek sklenice) a lehce upechujeme.

Pak vytvorime lak. Popsane mnozstvi je asi na 6 klasickych okurkovek (0.68-0.72 litru) s lehce upechovanou repou.

Do hrnce dame 1 litr vody, 0.3 litru octa, 80g cukru (asi by to fungovalo s jakymkoliv, ja pouzivam sacharozu, protoze je k repe stylova), a 25g soli (tady bych se drzel v blizkosti NaCl; treba KCN je sice take chemicky sul, ale repu byste si asi moc dlouho neuzili). Vysledek privedeme do varu (tim se zaroven rozpusti pevne slozky) a zalijeme s nim sklenice s repou skoro po vrch (aby byla repa potopena). Pak uz je staci jenom zavickovat a za vysterilovat.

Pro sterilaci okurek se doporucuje 80 – 85 degC pro 20 minut. S repou neni potreba se patlat – stejne se uz varila a krupava nebude. Dejte do hrnce hadr, prkno, nebo neco podobneho, co lehce zvedne sklenice ode dna. Na to naskladejte sklenice, zalijte vodou, zaklopte poklickou a dejte varit. Po 20 minutach varu je vysterilovano a staci sklenice vytahat. Je dobre to udelat hned a ne az voda vystydne, aby se podtlakem pritahla a zatesnila vicka. Prodava se na to takovy bazmek a nebo si muzete vyrezat vhodny nastroj ze dreva.

Misto seminek fenyklu je mozne ve sklenicich nahradit 10-40% repy cerstvym fenyklem.

Sklenice nechte alespon dva tydny ulezet a pak muze prijit foodgasmus. Enjoy.

Repa vydrzi ve spajzu nekolik let. Tedy pokud jste meli tak obrovskou urodu, ze po trech tydnech od zavarovani jeste neco mate. Ale repa je nenarocna plodina, takze staci vystehovat tulipany a macesky, natahnout kapkovou zavlahu a behem leta sledovat, jak dochazi ke konverzi proudu fotonu na jidlo.

Posted by zelenohlav in Foodhacking, 0 comments
Nabijeni LiION akumulatoru

Nabijeni LiION akumulatoru

Pri nabijeni LiION clanku (a vsech clanku zalozenych na lithiu) je nezbytne nutne neprekrocit urcite napeti, jinak se clanek znici. Pro LiION se uvadi 4.20V, ale videl jsem i datasheety uvadejici 4.25 a 4.15V. Netusim proc – domnivam se, ze chemie clanku by mela byt stejna, takze mozna nekteri vyrobci udajem v datasheetu obetuji cast kapacity a jini cast zivotnosti. Treba se o tehle zalezitosti dozvim neco v komentarich.

Mam vyzkousene tri zpusoby, jak nabijet LiION clanky.

1. Velkou LiION baterii s BMS

(battery management system) je mozne dobijet libovolnym zdrojem s omezenym proudem a nechat BMS tento zdroj vypnout pri prekroceni kritickeho napeti na libovolnem z clanku. Hodi se k tomu napriklad triak s optotriakem, rele nadoporucuji. Zdroj by mel vydrzet pripojeni na baterii ve vypnutem stavu. Pokud nevydrzi, pomuze dioda.

Popis zni jednoduse, ale ma jeden hacek. Napeti nabijejici se baterie je vyssi, nez napeti baterie, ktera se uz nenabiji, takze po vypnuti nabijecky napeti poklesne a BMS zase nabijecku pripoji. Napeti vzroste a nabijecka je odpojena. Doba vypnuti postupne roste az se zapina jen obcas pro pokryti spotreby BMS. Toto cyklovani je duvod, proc nedoporucuji rele.

Je tedy mozne, ze kupovana inteligentni nabijecka tento rezim provozu nezvladne. Velke trafo se seriovou indukcnosti s tim problem nema (optotriak by mel byt spinany v nule – S21MD4TV, nebo MOC3030 zapojeny v gate vetsiho triaku). Mam vyzkouseny triak za trafem, ale mel by bez problemu fungovat i pred trafem.

2. Nabijeni presne nastavenym napetovym zdrojem s omezenim proudu.

Nektere DCDC menice nabizene na eBayi maji omezeni proudu a u nekterych toto omezeni skutecne i funguje. LM2576 v katalogovem zapojeni http://atrey.karlin.mff.cuni.cz/~metan/?page=electronics&spage=lm2576 omezuje na 3-4A. Zatim vsechny zdroje, ktere jsem vyzkousel a zaroven u nich fungovalo omezeni proudu zvladly odpojeni napajeni behem pripojeni k akumulatoru. Zarucit to u vaseho zdroje samozrejme nedokazu.

Zdroj se nastavi na 4.20V (4.15V, nebo 4.10V pro vetsi zivotnost), pripoji k jednomu jedinemu clanku a muzete nabijet, Vhodny zdroj pro tento DCDC menic je libovolna napajeci kostka od tiskarny, notebooka, switche, nebo WiFi APcka s vystupnim napetim 7-30V a dostatecnym vykonem.

Lze tak nabijet i viceclankove baterie, ale pro kazdy clanek potrebujete jeden DCDC menic a jeden zdroj, ktery dela ze sitoveho napeti tech 7-30V pro ten DCDC.

Nevyhody:
– pro vice clanku hromada zdroju, menicu, kabelu, zastrcek
– pokud nechcete clanky trvale vybijet, je nutne vsechny DCDC zdroje po ukonceni nabijeni odpojit (to by slo zajistit treba za pomoci rele)
– napeti na zdrojich, ktere mam k dispozici trosku ujizdi. Ne o moc, ale po nastelovani DCDC menice na 4.18V jsem na nekterych nasel i 4.23V
– nektere zdroje od notebooku maji minus pol pripojeny na ochranny vodic (PE – ten kolik, co je v zasuvce). Pokud mate v sestave vice, nez jeden, vyzkratujete tim nektere clanky. Muj velmi maly statisticky vzorek tvrdi, ze timto designovym rozhodnutim trpi asi 20% zdroju od notebooku. Reseni je pouzit specialni prodluzovacku odporujici normam, ktera ma preruseny kolik. Nikdy ji neukazujte revizakovi :-). A nikdy do ni nezapojujte zarizeni, ktera maji kovovou kostru a spolehaji na to, ze v pripade probiti na kostru vyleti pojistka, nebo jistic,

3. Omezovac napeti.

Nabijite cimkoliv, co vam prijde pod ruku a kazdy clanek ma k sobe paralelne pripojeny svuj omezovac napeti nastaveny na nejakych 4.10-4.20V. V pripade, ze napeti clanku dosahne nastaveneho napeti, zacne omezovac prebirat cast proudu tak, aby napeti clanku nerostlo.

Mam vyzkouseny omezovac zverejneny panem Zajicem:
ze stranky http://www.zajic.cz/omezovac/omezovac.htm. Tento omezovac mi bez problemu funguje pres 15 let. Funkce je jednoducha – odporovy delic R2 a R3 je nastaven tak, aby mel na vystupu 2.5V pri zvolenem napeti, kdy ma zacit omezovat. Napetova reference TL431 se pri dosazeni 2.5V na ridicim vstupu zacne otevirat a proud odporem R1 1k1 roste. Po dosazeni ubytku napeti potrebneho k otevreni T1 se tranzistor zacne otevirat a prebira cast proudu tekouciho z nabijece tak, aby napeti na akumulatoru nepresahlo nastavene napeti. Ctverice diod D2-D5 pouze snizi vykon ztraceny na tranzistoru a vytvari ubytek napeti pro funkci LED1 kontrolky.

Tento omezovac ma jednu nevyhodu. Pokud je k akumulatoru pripojen trvale, odebira proud asi 1mA, ktery muze male akumulatory neprilis casto nabijenych pristroju snadno vybit a znicit.

3.1. Schottkyna navic.

Pro pouziti s jednim clankem jsem vymyslel vylepseni, ktere tento problem eliminuje. Cely trik spociva ve vhodnem umisteni schottkyho diody.

Nabijeci zdroj je pripojen k omezovacimu tranzistoru a napajeni TL431. Vse omezuje na napeti vyssi o ubytek napeti schottkyho diody, coz nicemu nevadi, protoze delic merici napeti na akumulatoru je stale pripojen primo k akumulatoru. Takto zapojeny omezovac samozrejme nedokaze omezovat proud privedeny primo na akumulator, ale to v bezne aplikaci nevadi.

Dioda by mela vydrzet nabijeci proud, a pro omezeni ztrat se hodi, aby mela co nejznizsi ubytek napeti. Zvlaste pak, pokud ten clanek chcete nabijet z 5V bezne dostupnych na USB.

U tohoto typu zapojeni muze byt problemem napajeni obvodu, ktere napajeny byt nemaji, pres substratove a ochranne diody. TL431 s tim zjevne nema problem a vse funguje. I kdyby se choval jako zkrat, odpor vstupniho delice omezuje maximalni proudovou ztratu na 42uA.

3.2. Schottkyna navic i pro dva clanky.

Teoreticky muze jit toto vylepseni rozsirit i na dva clanky, pokud by nabijeci zdroj nemel spolecnou zem s akumulatory (coz casto neni potreba) a pokud by se vyrobil symetricky omezovac s NPN tranzistorem do druhe vetve. Nevyhoda je, ze neexistuje opacna varianta TL431. Nicmene TL431 je v zasade reference a operacni zesilovac, takze by opacna varianta TL431 mela jit postavit z jedne TL431 a jednoho operacniho zesilovace. Pokud se do toho budete poustet, budu rad, kdyz napisete vysledky do komentaru.

Varovani – chcete-li z TL431 udelat 2.5V referenci spojenim ridiciho vstupu s anodou, pocitejte s tim, ze se obvod rozkmita a dava naprosto nesmyslne napeti. Je potreba ho blokovat necekane velkym kondenzatorem. Myslim, ze bylo potreba 10uf, nebo dokonce 100uF.

Dale lze vyuzit druhy OZ (stejne jsou v jednom pouzdre typicky 2, nebo 4) a doplnit balancer. Pri plnem nabiti ztraceji LiION clanky rychleji zivotnost, takze balancovani plnym nabitim namusi byt vzdy zadouci.

3.3. Nabijeni vice clanku s omezovacem.

Pri pouziti pro vice clanku je potreba omezovace od clanku odpojit (nebo se smirit se ztratou 1mA). Pak muze nastat situace, kdy neni vhodne palit prebytecnou energii v omezovacich a je lepsi omezit nabijeci proud v okamziku, kdy vsechny omezovace zacnou omezovat. Snizit nabijeci proud je potreba v okamziku, kdy se rozsviti kontrolky na vsech omezovacich. Tento signal lze jednoduse ziskat tak, ze se paralelne ke kontrolce pripoji LED optoclenu (samozrejme s vlastnim odporem), zatimco vsechny druhe strany optoclenu (tranzistory) se propoji seriove. V okamziku, kdy se otevrou vsechny tranzistory (pokud bude dostatecne napajeci napeti), lze proud protekajici touto seriovou kombinaci pouzit ve zpetne vazbe nabijeciho menice.

Hodne stesti s nabijenim LiION clanku.

Posted by zelenohlav in Elektronika, 1 comment
Hyper is the new Super

Hyper is the new Super

Na tohle (at uz to je cokoliv) by se hodila klavesova zkratka. Jenomze jaka? Ctrl+pismeno, nebo cislo, muze kolidovat s nekterymi aplikacemi a s ovladanim terminalu (zvlast Ctrl+C,Z,Q a S je velmi neprakticke odchytavat). Alt+pismeno pouzivaji jine aplikace. Alt+F-klavesa se pouziva na prepinani pracovnich ploch. Mackat vice modifikatoru je docela nepohodlne (i kdyz uzivatele Emacsu trenuji, co mohou).

Docela prakticke je pouzit jako modifikator klavesu Wokno, kterou X prijme jako Super_L, nebo Super_R (levou a pravou) a dale ji mapuje na X-ovy modifikator Mod4. Pak takova klavesova zkratka v konfiguraku fluxboxu vypada napriklad takto:

Mod4 x :Exec xterm

Ale ne na kazde klavesnici takova klavesa je. Treba na psani velmi pohodlna IBM model M ji nema.

Behem techto uvah jsem si znovu uvedomil, jak me stve CapsLock. Uz pred nekolika lety doslo k deCapsLockizaci jedne klavesnice sroubovakem, protoze se na ni povedlo az prilis casto tuhle klavesu strefit omylem spolecne s pismenem “a”. Po nalezeni redukce z velkeho DINu na PS/2 a prechodu na jiz zminenou IBM Model M CapsLock opet vyvstal, znovuzrozen, jako Fenix. Model M mi, narozdil od scheisse-membranovky, bylo lito nicit. A to byla idealni prilezitost pro sber statistiky o vyuzivani teto klavesy.

Vyuziti CapsLock
umyslne neumyslne
------------------
0       mockrat

Nesel by CapsLock predefinovat na neco uzitecnejsiho? Pry se dal prohodit s Ctrl, jako to mely stare layouty klavesnic. Nezbylo, nez zacit hledat.

Nakonec jsem se dostal az sem: https://en.wikipedia.org/wiki/Space-cadet_keyboard. Dobre si prohlednete modifikatory z pred-UNIXove doby a jejich rozmisteni. Vsechny ctyri modifikatory jsou na obou stranach klavesnice, zrcadlove proti sobe a v jedne rade. Takze bylo mozne zmacknout jejich kombinaci i bez polydaktilie, kterou si dnes preji k vanocum ctyri z peti uzivatelu Emacsu.

Takze to mame do prostredka do kraje: Ctrl: jasne, ten mam na klavesnici taky, ne? Meta: ne, tahle ne. Vetsinou (a defaultne) se jako Meta mapuje na PC klavesnici Alt. Super: tam je namapovana klavesa s wokynkem, tucnakem, nebo jinum obrazkem jako v materske skolce. Hyper: WTF, to jsem jeste nevidel.

Klavesu Hyper jde na PC klavesnici namapovat treba na klavesy s wokynkem a nebo prave na zmineny CapsLock. Staci v Xkach pustit:

setxkbmap -option caps:hyper

a je to. Jenomze se chova stejne, jako klavesa Super (wokynko). Proc?

To, ze do Xek prijde scankod klavesy Hyper jeste mnoho neznamena, Xka zmaji 8 modifikatoru (a vic jich mit nemohou, protoze modifikatory jsou v bitove maper v jednom Byte) a do toho se pocita i Shift, CapsLock, NumLock a prepinac layoutu klavesnice. Hyper je na vsech pocitacich, na ktere jsem se koukal, defaultne nastaveny na Mod4 stejne jako Super.

Takze nasleduje prehozeni na (defaultne prazdny) Mod3.

xmodmap -e "remove Mod4 = Hyper_L" -e "add Mod3 = Hyper_L"

a hned to vypada lepe:

$ xmodmap -pm

xmodmap:  up to 3 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3        Hyper_L (0x42),  Hyper_L (0xcf)
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

A ted uz staci pouzit klavesovou zkratku s Hyper na neco uzitecneho, takze do ~/.fluxbox/keys zapiseme treba:

Mod3 b :Exec xmessage -center -timeout 2  "$(/home/username/bin/bt)"
Mod3 i :Exec xmessage -center -timeout 5  "$(/home/lhc/username/show_ip_addrs)"

a jeste naplnime oba soubory a zapneme jim executable flag (chmod +x jmeno_souboru):
/home/username/bin/bt:

for bat in /sys/class/power_supply/BAT*; do
        cat "$bat"/energy_now | tr '\n' ' '
        echo -n 'from '
        cat "$bat"/energy_full | tr '\n' ' '
        echo -n '= '

        (
                cat "$bat"/energy_now | tr '\n' ' '
                echo -n '*100/'
                cat "$bat"/energy_full  | tr '\n' ' '
                #rounding
                echo '+0.005'
        ) | bc -l | sed 's/\([^.]\...\).*/\1 \%/'
done

Na ruznych notebookach muze byt informace o bateriich v ruznych adresarich, takze je nutne si prohlednout /sys/ a nahradit /sys/class/power_supply/ spravnou cestou.

/home/lhc/username/show_ip_addrs (na jeden radek):

/sbin/ifconfig | sed 's/        inet /#inet /;s/^\([^# ]\)/#@\1/' | tr '@\n' '\n#' | sed 's/^\([^:]*\)[^#]*#*/\1\t/; s/inet//; s/netmask.*//' | grep -v '^#'

Pak uz staci jenom zmacknout Hyper b (teda vlastne CapsLock b) a uprostred monitoru se na dve sekundy objevi informace o stavu akumulatoru. Misto prehistoricke xmessage se da samozrejme pouzit treba mnohem modernejsi notify-send, ale ten se neumi zobrazit doprostred monitoru (bacha, prijima timeout v milisekundach).

A pokud jste behem cteni nezapomneli, proc jsem s vyzkumem alternativnich vyuziti CapsLocku zacal, je vam asi jasne, ze klavesova zkratka Hyper a zustava neobsazena. Technicky samozrejme nic nebrani tomu namapovat na ni shozeni Firefoxe (aspon by se restartoval driv, nez stihne vyzrat celou RAM). Hlavne si nezapomente namapovat nejakou dulezitou funkci na Hyper Super Shift Ctrl Alt H. Jiste to ocenite, az ji budete potrebovat zmacknout mene, nez trema rukama :-).

Poznamka: pokud by se jednalo pouze o klavesnici IBM Model M, stacilo by namapovat na CapsLock Super_L timto prikazem: “setxkbmap -option caps:super”, ale pracuji na vice pocitacich s ruznymi klavesnicemi, takze chci vyuzit najednou Hyper i Super na klavesnicich bez numerickeho bloku.

Posted by zelenohlav in Linux, 2 comments

Klavesnicova makra podruhe – lokalni

Diky Jendove komentari pod jak-automaticky-vkladat-text-i-kdyz-se-nekdo-snazil-aby-to-neslo jsem objevil xdotool. Precetl jsem si manualovou stranku a dostal par napadu. A o tech, ktere se mi zatim osvedcily bude tento clanek.

UNIXova graficka nadstavba X-window ma sice nekolik schranek (clipboardu), ale pokud je chcete normalne pouzivat – treba oznacit levym tlacitkem text v browseru a vlozit ho prostrednim tlacitkem do textoveho editoru otevreneho v terminalu, nebo naopak – je nutne system nakonfigurovat tak, aby se choval, jakoby mel schranku jednu. Jenomze obcas by se hodilo vice schranek u kterych si clovek muze sam vybrat, do ktere co ulozi. Staci se snazit nekomu poslat mail, ve kterem je cast textu z jineho mailu. Ctu zdrojovy mail, oznacim text, zavru zdrojovy mail, otevru novy mail, chce to po me adresu, zjistim adresu, chci ji oznacit a tim prichazim o puvodni text. Ne, ze by to byla neresitelna situace, ale zbytecny opruz to je.

Nekdo mozna namitne, ze mam mit adresar s maily primo v klientovi … ale tak muj mozek nefunguje. Ne, opravdu nevim, jestli jsem si toho cloveka ulozil pod jmenem, prijmenim, nebo prezdivkou. Pripadne pod kterou prezdivkou. A pokud je to firma, tak si dost mozna pamatuju jenom jednu vec, kterou jsem tam kupoval a nic jineho. Takze by ten mailovy klient musel umet prohledavat bloky textovych dat podle (nekdy i vice) klicovych slov a ve vybranem textu pak hledat mailove adresy. Ne, ze by to principialne neslo, ale nic takoveho jsem nikde nevidel, takze mam svuj program na adresar. Adresu oznacim levym tlacitkam, prejedu do terminalu (nebo jen prehodim screen) s mailovym klientem a vkladam prostrednim tlacitkem.

Obcas se take stava, ze clovek potrebuje posbirat data z vice mist a vlozit je do jednoho. Treba prijde URL rozlamana na vice radek od nekoho, kdo ma mail na seznamu. Nebo je potreba vykopirovat z nejakeho clanku na webu jenom to dulezite a ne kecy okolo.

Cim to ovladat?

Zadani je jasne a ted nastava otazka cim to ovladat. Samozrejme by slo pouzit zvlastni klavesove zkratky, ale pak je problem pri vkladani textu, protoze text prichazi jako z klavesnice, takze je nutne pockat, nez uzivatel pusti vsechny modifikatory (Control, Alt, Shift, Tucnak …), jinak se mohou stat nejruznejsi veci. Samozrejme by slo poslat text z vedlejsiho pocitace pres inputattach (klavesnicova makra poprve), ale jak ho pohodlne dostat tam? Taky by slo poslat nejake nevyuzivane scankody, ale na bezne klavesnici se par nevyuzivanych klaves najde.

Kdysi jsem psaval cisla zasadne na numericke klavesnici. Jenomze pak prisly vykonne notebooky, vice cestovani a numericka klavesnice najednou nebyla k dispozici, takze nezbylo, nez se naucit psat cisla na hornim radku klavesnice. Po par letech uz mi to ani neprislo a od te doby je numericky blok me klavesnice zcela nevyuzit. Precijen je zbytecne daleko na to, aby tam clovek presouval ruku, kdyz chce napsat cislo a zdrzuje to. Jeste se da pouzit Ctrl a numericky +/- na zmenu velikosti textu v browseru, ale to uz funguje i s normalnim + a -, jak se mi povedlo zjistit po ziskani noveho notebooka, ktery uz numericky blok ani neemuluje pres Fn. Tim ziskavame klavesy 0-9 na 10 schranek a nekolik dalsich okolo.

Jak to ovladat?

Zkusime tedy vymyslet intuitivni ovladani.

Do schranky je potreba ulozit a pak z ni cist. Prepinani modu je pakarna, protoze si clovek musi pamatovat v jakem je modu (a samozrejem VIM ktery textovy editor je nejlepsi, ale i tak je lepsi se tomu vyhnout, kdyz to jde). Slo by rozdelit klavesy na 0-4 a 5-9, ale to by bylo intuitivni jak brainfuck. Takze zbyvaji tri rozumne varianty: vkladat bez modifikatoru a cist s modifikatorem, nebo opacne, pripade delat vse bez modifikatoru a hadat, co chce uzivatel udelat. Systemy, ktere hadaji, co chce uzivatel udelat vetsinou funguji blbe a clovek se kvuli nim nauci sprosta slova v mnoha cizich jazycich. Dalo by se predpokladat, ze s prazdnou mysi schrankou se ma extra schranka vypsat a s plnou se ma text prekopirovat z mysi do extra schranky. Ale na rovinu – mazete po pouziti obsah schranky? Asi ne, to by byl opruz navic. Delat si zivot tezsi neplanuju, takze posladni moznost pada.

Vypisovat obsah schranky modifikatorem znamena, ze modifikator modifikuje zacatek vypisu. To je sice jakesi technicke omezeni, ktere by mozna slo obejit lepe, nez rychlym uvolnenim modifikatoru v kombinaci s vlozenim cekani pred zacatek vypisu, ale neni to jedina nevyhoda. Druha nevyhoda je vkladani bez modifikatoru. Je sice rychle, ale obcas clovek hrabne po prave sipce, nebo PgUp/PgDn a strefi se i na numerickou klavesnici a prepise si schranku, aniz by si to uvedomil. Na to jsem prisel tim tezsim zpusobem (nejdriv mi to pripadalo intuitivnejsi).

Tim zbyva jedina varianta: prepis schranky mysi do extra schranky: modifikator + cislo na numericke klavesnici (pouzivam Shift), vypsani extra schranky: cislo na numericke klavesnici.

Tim se resi i sber dat po dokumentu, ale kdo si ma pamatovat kterou schranku pouzil naposledy. Takze by se hodila jeste funkce na pridani do schranky. Rozhodl jsem se to nekomplitovat a vytvorit jedenactou extra schranku, do ktere pujde pridavat z mysi schranky. Klavesa tecka na numericke klavesnici ji smaze (krome tecky to je i Delete, ale asi jste ji tak v tomto tisicileti nepouzili), klavesa plus prida (to je docela intuitivni) a klavesa lomitko vypise obsah (protoze minus a hvezdicku uz mam zabranou). Jeste me napadlo, ze by plus se shiftem a altem mohl pridat mezeru, nebo konec radku a teprve pak dalsi data, ale ukazalo se, ze to prilis nepouzivam.

Kdo sezral minus a hvezdicku? Numerickym minusem vkladam obsah schranky, kdyz nechci sahat az na mys a hvezdickou vkladam totez, jen s odstranenou diakritikou (to se obcas hodi). Vyhoda je ta, ze se do grafickych programu text vlozi tam, kde je prave textovy kurzor (stejne, jako do terminalovych pri beznem vkladani prostrednim tlacitkem) a neni treba peclive pozicovat mysi kurzor tam, kde uz je textovy kurzor.

Implementoval jsem toho vice, ale toto jsou veci, ktere od okamziku implementace pouzivam temer denne a prijdou mi kulervouci.

Implementace

Je potreba rozlisit, jestli cisla a dalsi znaky prichazi z alfanumericke casti klavesnice, nebo z numerickeho bloku. To lze vyresit tak, ze vytvorime zkratku na scankod klavesnice a ne na prichazejici znak. Scankody zmacknutych klaves (a dalsich eventu) ukaze program xev.

Navod je specificky pro windowmanager Fluxbox, ktery pouzivam. Pokud pouzivate jiny, ceka vas googleni a cteni manualovych stranek, protoze vlastni klavesove zkratky jsem v zadnem jinem windowmanageru asi nikdy nekonfiguroval (mozna v minulem tisicileti ve fvwm2 a WindowMakeru, ale v takovem pripade uz jsem zapomnel jak). Ve Fluxboxku to je zcela jednoduche. Staci otevrit soubor ~/.fluxbox/keys a pridat par radek:

#Numericke 0-9
Shift 79 :Exec /home/username/bin/xtraclip_mem 79
Shift 80 :Exec /home/username/bin/xtraclip_mem 80
Shift 81 :Exec /home/username/bin/xtraclip_mem 81
Shift 83 :Exec /home/username/bin/xtraclip_mem 83
Shift 84 :Exec /home/username/bin/xtraclip_mem 84
Shift 85 :Exec /home/username/bin/xtraclip_mem 85
Shift 87 :Exec /home/username/bin/xtraclip_mem 87
Shift 88 :Exec /home/username/bin/xtraclip_mem 88
Shift 89 :Exec /home/username/bin/xtraclip_mem 89
Shift 90 :Exec /home/username/bin/xtraclip_mem 90
79 :Exec /home/username/bin/xtraclip_mem_out 79
80 :Exec /home/username/bin/xtraclip_mem_out 80
81 :Exec /home/username/bin/xtraclip_mem_out 81
83 :Exec /home/username/bin/xtraclip_mem_out 83
84 :Exec /home/username/bin/xtraclip_mem_out 84
85 :Exec /home/username/bin/xtraclip_mem_out 85
87 :Exec /home/username/bin/xtraclip_mem_out 87
88 :Exec /home/username/bin/xtraclip_mem_out 88
89 :Exec /home/username/bin/xtraclip_mem_out 89
90 :Exec /home/username/bin/xtraclip_mem_out 90

#Numericky -
82 :Exec /home/username/bin/mouse_copy
#Numericka *
63 :Exec /home/username/bin/mouse_copy_uncs

#Numericky +
86 :Exec /home/username/bin/xtraclip_add
#Numericka .
91 :Exec /home/username/bin/xtraclip_del
#Numericke /
106 :Exec /home/username/bin/xtraclip_out

Misto username si samozrejme dejte svuj username. Asi se to vyrovna i jen se jmenem programu, pokud mate svuj “$HOME”/bin v ceste, ale proc to delat zavisle na promennych prostredi.

xtraclip_mem:

xclip -out > ~/extra_clipboard/"$1"

xtraclip_mem_out:

xdotool type -- "`cat ~/extra_clipboard/"$1"`"

mouse_copy:

xdotool type -- "`xclip -out`"

mouse_copy_uncs:

xdotool type -- "`xclip -out | cstocs utf8 ascii`"

xtraclip_del:

echo -n '' > ~/extra_clipboard/x

xtraclip_add:

xclip -out >> ~/extra_clipboard/x

xtraclip_out:

xdotool type -- "`cat ~/extra_clipboard/x`"

Jeste vytvorit adresar, kde budou v souborech ulozene nove clipboardy (ktere timpadem preziji i restart pocitace):

mkdir ~/extra_clipboard/

Pokud neco z toho nefunguje, jak ma, vlozte do skriptu pred xdotool sleep.

sleep 0.1

Pak uz staci v menu ve Fluxboxu dat reload config (nebo restartovat Fluxbox, nebo Xserver) a muzete se tesit z novych klavesovych zkratek. Nakonec – jak si myslite, ze se do tohoto clanku dostaly obsahy tech vsech souboru. Skutecne jsem nepreklikaval osmkrat sem a tam. Deset schranek je navykovejsich, nez opiaty.

EDIT: Zda se, ze jsem se unahlil s optimalizaci. Behem ladeni jsem na zacatku kazdeho z vyse uvedenych skriptu pouzival

sleep 0.5

a postupne jsem ho snizil az na 0.1 sekundy. Pak jsem presel na klavesove zkratky, ktere pri vypisovani nepouzivaji zadny modifikator, takze se sleep zdal byt zbytecnym a pri psani tohoto clanku byl vynechan. Samozrejme bez otestovani, protoze jsem si byl jist, ze tam uz je k nicemu.

Ukazuje se, ze tam k nicemu neni. V pripade, ze tam sleep neni, nevypise se prvni znak, protoze zjevne prijde drive, nez Key Release od klavesy, ktera akci spustila.

Posted by zelenohlav in Linux, 4 comments

Novinka: celoplastikove startovaci kabely!

Zacina zima, pro jistotu si koupim si startovaci kabely a pokud se mi v aute vybije baterka, tak snad nekoho ukecam, aby mi pomohl nastartovat. A navic mam jeste stovku baterku, co vyhazoval kamarad, ze uz mu nenastartuje jeho trilitrovy diesel, ta se mi sice nevejde pod haubnu, ale muzu ji nabit a dat do kufru. Kdyztak ji pripojim na kabely a nemusim ani nikoho shanet. A kdyz ji navic zapojim v aute na 12 voltu, tak se bude za jizdy i nabijet a nebudu ji muset tahat domu.

Tak nejak muze vypadat genialni napad cloveka, ktery treba i vi neco o elektrice, ale netusi, jaky scheissdreck se dneska bezne prodava.

Takze si to rozebereme. Pokud si koupite startovaci kabely, dostanete opravdu, ale opravdu tluste hadice. Tlustostenne plastove hadice, ktere maji uprostred tenky praminek medi. Nejsou uplne celoplastove, jak jsem napsal v titulku. Nejake 4mm^2 medi tam jsou. To je vhodny prurez tak na konstrukci prodluzovacky ke svarecce, ale bohuzel na tu stranu, co se dava do zasuvky a ne na tu, kde tece svareci proud.

Zde muzete takove kabely videt. Udelal jsem z nich kabely k nabijecce a jejich medene jadro je asi tak tluste, jako ten modry a bily drat, co vedou k banankum. Koupeno na benzince nekdy pred deseti lety.

Kabely z benzinky

Jak muze takovy podvod fungovat? Jednoduse. V navodu se pise, ze mate druheho nahodneho ridice ukecat, aby spojil svou baterku s vasi a stal tam s vami jako idiot nejmene ctvrt hodiny, nechal svoje auto zrat palivo na volnobeh a pak mate zkusit nastartovat. Pokud je vase baterka hodne vybita, ale ne uplne v haji, tak ma vyrazne mensi napeti, nez baterka nabijejiciho auta, takze dostane par amper a to ji trosku ozivi na to, aby byla nejaka sance na nastartovani. Jestli ovsem najdete nekoho, kdo tam s vami bude stat v mrazu ctvrt hodiny, zatimco uz davno ma byt nekde jinde. S baterkou v haji, nebo uplne bez baterky, se bud nestane nic, nebo kabely shori. Doslova. Medeny vodic se rozzhavi do zluta a prepali, za vyvinu velkeho mnozstvi dymu z plastove izolace.

To jsem takovy idiot, ze jsem si nevsiml, co kupuji? Nastesti ne. Na techto smesnych kabelech byly medene svorky/kleste na baterku, ktere neumim ziskat levneji, nez z techto kabelu.

Reseni je jednoduche – pouzit svorky ze smesnych kabelu a dat k nim poradne kabely. Treba 35mm^2, tedy kabely s temer 10x vetsim prurezem. Pocitejte ovsem s tim, ze pokud jsou svorky prevazne plastove jen s malymi kousky medi, bude se na ne blbe letovat.

Svorky z benzinky a medene kabely

Videt to na nich moc neni, co? To je proto, ze maji izolaci tlustou necely milimetr a ne sest milimetru. Taky uz neco zazily. Mimo jine i jeden tvrdy zkrat, kdy se trosku natavily (zkratoval se spatny starter). Zelenozluta izolacka na nich je proto, ze plastove krytky z klesti padaly.

Pri letovani nestaci 100W pistolova pajka, ani 75W klempirska odporova pajka. Je potreba pajene misto predehrat. Pouzil jsem pynovou pajku bez hrotu (s horakem), ale muzete pouzit jakykoliv horak, treba i na sporaku. Nebo plotynku elektrickeho sporaku. Bacha, kalafuna hori.

Detail pajeneho spoje

Pajeno dvakrat. Po tvrdem zkratu kleste prehorely, protoze jsou z jen asi 1mm tlusteho medeneho plechu, po sletovani funguji dale.

Tyhle kabely pripojite k autu, ktere sotva rozsviti obrysova svetla, na jejich druhy konec date samotnou nabitou baterku (nebo nenastartovane auto), otocite klickem a nastartujete na prvni pokus. Bez baterky nastartujete take, ale pokud mate novejsi auto, nez Trabanta, nebo Wartburga, tak napetove spicky zpusobene pomalosti regulace alternatoru mohou pri jizde bez baterky odpalit nejakou elektroniku. Tedy v tom Trabantu taky, ale domu dojedete a nahradni radio (pokud neco takoveho vubec provozujete) sezenete v zastavarne za stovku, mozna i s kusem palubni desky a stopami pervitinu. S odpalenou ridici jednotkou dnesniho auta moc daleko nedojedete a za jeji vymenu date mnohem vic, nez za celeho Trabanta i s jeho generalkou.

Jeste par technickych informaci.

Proc se baterka v kufru nenabije?

Protoze je pripojena dlouhymi tenkymi draty (treba 4 metry a 2.5 mm^2) k baterce se stejnym napetim. Takze ubytek napeti na odporu tech dratu zpusobi, ze se baterka v kufru zacne trochu nabijet az v dobe, kdy hlavni baterka v aute bude uplne nabita. Potrebujete-li nabijet druhou baterku o stejnem napeti, nejlepsi reseni je menic.

Proc se baterka v mrazu vybije?

Ona se nevybije, ale poklesne jeji vyuzitelna kapacita, takze jakoby startujete treba z polovicni baterky. K tomu klade vetsi odpor olej v motoru, nemate-li dry sump (coz maji asi jen zavodni motory), nebo dvoutakta. I olej v prevodovce ztuhne. To je mozne obejit vyslapnutim spojky pri startu. Diskusi o tom, jestli to je pro auto bezpecne, nebo ne, je plny internet. Muzete se zapojit. Argument pro nevyslapavani spojky je, ze se nici spojkove lozisko. Trabant a Wartburg s tim problem nema, u ostatnich znacek nemuzu slouzit.

O tom, jak to funguje za ruznych teplot v akumulatoru si muzete precist treba tady (anglicky): why-car-batteries-perform-poorly-in-cold-weather, hledejte “Temperature-Dependent Properties of a Battery”. Clanek se tyka lithiovych akumulatoru, ale fyzika oloveneho akumulatoru je v tomhle velmi podobna.

A tu stovku baterku do Trabanta i Wartburga s troskou snahy nacpete, jenom neprisroubujete originalnimi uchyty. Testovano na lidech.

Posted by zelenohlav in Elektronika, 1 comment

Nabijecka olovenych baterii, ktera snese odpojeni zdroje

Nabijecka

Mate velkou olovenou baterku (at uz startovaci v aute, nebo gelovku, ze ktere napajite treba vrtacku z minuleho prospevku) a obcas ji potrebujete nabit. Nekdo nabiji prehistorickou nabijeckou, ve ktere je jenom transformator a diody (tezko rict, jak presne dodrzi napeti, zvlast kdyz v zasuvce muze byt 220V stejne jako 241V), nekdo z trafa pres zarovku, nekdo pochybnou nabijeckou za par stovek z nejakeho supermarketu. Vsechny tyhle varianty se musi hlidat. Zapomenete na tom baterku, odjedete na dva dny pryc a vyvari vam vsechen elektrolyt. Nebo ma regulaci napeti, tohle neudela, ale nejaky chytrak ji vytahne ze zasuvky, protoze si chce zapnout vrtacku, nerekne vam o tom a za dva tydny je baterka na vyhozeni.

Tato jednoducha nabijecka resi vsechny zminene problemy a nekolik navic.

Schema

Napajet se da z jakehokoliv zdroje od 14 do 39V, ktery da alespon 50W. Treba ze zdroje od notebooka, ktery stal v roce 1997 80 tisic a v roce 2012 navstivil popelnici, prestoze stale fungoval. Ze solarniho panelu, ze dvou gelovych 12V akumulatoru v serii a podobne. 24V transformator usmerneny gratzem je na hrane – zalezi na napeti v siti a rezerve ve vinuti (typicky se pridava 5%).

Omezuje proud na 3A (kdyz jde hodne do zkratu, tak spise ke 4A, ale to se bud rychle dobije, nebo je baterka stejne na vyhozeni). Pro automobilove baterky (40-100Ah) a notebookove zdroje (50-90W) idealni.

V pripade odpojeni napajeni se nestane nic. Baterka se vybiji necelym 1mA pres odpor zpetne vazby a to prezije pres 5 mesicu (40Ah – v realu ma samovybijeni, takze ji tam nechat radeji jen 2-3 mesice).

Navic to moc nehreje, takze staci maly chladic.

Obvod stabilizuje napeti na 14V, ale podle potreby jde nastavit na jina napeti zmenou odporu 12k8. 13.8V pro ochranu kladne elektrody v akumulatoru. 14.4V pro rychlejsi a uplne nabiti akumulatoru, 7V pro 6V akumulator, 21V, nebo 28V pro 18V a 24V akumulatory (to uz bude typicky potrebovat napajet ze dvou zdroju od notebooku v serii), nebo jakekoliv jine pri pouziti jako laboratorni zdroj.

Mozne upravy:
– vyssi napeti na vstupu – az do 63V pri pouziti LM2576HVT-ADJ, ktery je ale 3x drazsi. Nezapomente na maximalni napeti vstupnich kondenzatoru.
– vyssi proud – moznost pridat FET tu je, do nejakych 20V na vstupu je pomerne jednoducha, ale prijdete o proudove omezeni, takze by bylo nutne pridat i proudove omezeni, coz celkove zkomplikuje obvod 3x az 4x.

Nevyhody:
– oloveny akumulator preferuje pulsujici napeti kvuli sulfataci, tento zdroj dava stejnosmerne. Na obcasne nabiti to nevadi.

Inspirace:
http://atrey.karlin.mff.cuni.cz/~metan/?page=electronics&spage=lm2576

A rovnou draze ziskana odpoved na ocekavanou otazku:
Nemuzu pouzit neco podobneho za dve stovky z Ciny?
Muzete to zkusit. Ale treba tento zdroj:
DCDC 60V 15A
mel v popisu, ze omezuje maximalni proud, na desce ma veliky SMD odpor 0.01Ω, ktery nemuze byt k nicemu jinemu, nez ke snimani protekajiciho proudu, ale po pripojeni k akumulatoru se z nej zakourilo rychleji, nez bylo mozne zareagovat.

UPOZORNENI:
S trochou stesti nepracujete s nebezpecnym napetim (pokud jste pouzili zdroj od notebooka, nebo z jineho zarizeni), ale zkratovana autobaterka dokaze dat proudy, pri kterych hori draty, sviti sroubovaky a kapicky roztaveneho kovu letaji vzduchem. Zakaz noseni naramku, prstynku a retizku v akumulatorovnach neni zbytecna buzerace.

Posted by zelenohlav in Nezarazene, 0 comments
Ceske cislice slovy

Ceske cislice slovy

Potreboval jsem automatizovat generovani slozenky. Formular slozenky vypada, ze byl navrzen v dobe, kdy byl Wattuv rozteznik horkou novinkou. Nektere informace obsahuje snad i trikrat, radky v ruznych sloupcich nejsou zarovnane, nelze vytisknout cely najednou, ale je potreba se strefit tiskarnou do predtisteneho papiru a navic vyzaduje castku napsanou slovy.

Skript cisla_cz umi popsat slovy kazde cele cislo od nuly do 999999. Rozsireni na vyssi cisla by bylo pomerne jednoduche, ale miliony jsem slozenkou posilat jeste nevidel. Je napsan v BASHi, ale v zasade jde jednoduse prepsat do jakehokoliv imperativniho jazyka, ktery podporuje ridke pole (sparse array). Staci nahradit retezcove operace se sed-em aritmetikou.

Popis funkce:

Jeho jedinym parametrem je cislo. Pokud najde ve vstupu jine znaky, nez 0-9, stezuje si, ze to neni cislo. To plati i pro zaporna, realna a komplexni cisla, ktera jsem na slozence resit nepotreboval. Zde je prostor pro vylepseni.

Je-li na vstupu 0, vypise nula.

Pro cisla vyssi, nez 9999 urizne posledni tri cislice, rekurzivne zavola skript na zbytek cislic a vypise za to tisic. Dale posle jen posledni tri cislice.

Pote vzdy porovna zbytek s cislem 999, 99 a 9, aby se nesnazil odecitat nulu, odecte prvni cislici, vyhleda ji v poli s prislusnym radem a vypise retezec. Kdyz dojde k nule, skonci.

Cele to bylo napsane bez smycky, protoze jsem ocekaval vice problemu s ceskym jazykem. Nakonec se ukazalo, ze by to slo napsat i ve smycce, ale to uz to bylo hotove a nechtelo se mi to psat znovu jinak.

Sekce zpracovavajici cisla mezi 999 a 9999 je tam kvuli spravnym tvarum slova tisic. Jsou i lide, kteri rikaji treba tricet dva tisice, misto tricet dva tisic, ale zda se, ze spravne jsou oba tvary.

A ted si muzete uzivat generovani cisel.

Posted by zelenohlav in Linux, 0 comments

Teple jidlo na ceste bez hledani restaurace a cekani na obsluhu

Jedete v aute se spalovacim motorem uz druhou stovku kilometru a dostavate hlad. Chtelo by to neco tepleho, ale nechce se vam stravit hodinu hledanim restaurace, cekanim na obsluhu, cekanim na pripravu jidla a cekanim na uctenku? Placeni za jidlo, ktera hodnotite jako: “v pripade hladu pozivatelne” take nepatri k vasim oblibenym cinnostem? Jedno reseni existuje.

Nektera jidla vyzaduji jen jednoduchou tepelnou upravu. Vhodnou dobu ohrivat a pak snist. Ja varit neumim, takze se moje zkusenosti omezuji na konzervy a parky, nicmene patrne by tak slo upravit i prirodni kureci rizek, rybu (soude dle slavneho receptu na rybu v mycce, kde je dosazitelna vyrazne nizsi teplota), nebo treba zapect brambory s cuketou (pokud si doma pripravite zeleninu a marinadu). Naopak caj, nebo instantni polevka jsou problem, jak pochopite za chvilku.

Parky zabalite do asi tri vrstev alobalu, pridratujete na vyfukove parohy spalovaciho motoru, ujedete nejakych 20-30km, sundate, rozbalite a snite.

Par minut na pridratovani, ctvrthodinka na jidlo a muzete pokracovat v jizde. Parky nicim nesmrdi a chutnaji vyborne, protoze prostor pod haubnou je vetrany a vyfukove plyny jdou za auto, ne na parky. Stejne tak jde pridratovat i konzerva, ale protoze se dotyka jen malou plochou, trva ohrev vyrazne dele. Maso se bude patrne upravovat podobne dlouho, jako parky.

Je zjevne, ze pridratovat na motor neco v cem ohrejete vodu bude ponekud tezsi. Nadoba by muzela byt placata (aby se dotykala dostatecne velkou plochou), kovova, uzaviratelna s uzaverem, ktery se neuvolni vibraceni, nenatrena (takze asi nerez, nebo hlinik) a nejlepe s tlakovou pojistkou, abyste po otevreni nezjistili, ze uvnitr je 6 atmosfer a voda tepla 160 stupnu, ktere se chce do vaseho obliceje. Nejlepsi by byla asi vhodne seslapnuta nerezova cutora s privarenou koncovkou na metr silikonove hadicky, ktera by zustala otevrena celou dobu vareni. Ale to uz je vyrazne komplikovanejsi projekt, nez zabalit neco do alobalu a pridratovat to.

Rada pro elektromobilisty: nedratujte parky na elektromotor, radsi je uvarte na plynovem varici behem nabijeni. Pro milovniky extremni kuchyne se da take varit primym pruchodem elektrickeho proudu, ale krome zjevnych a ocekavanych upozorneni na moznost urazu elektrickym proudem bych si take dovolil upozornit, ze ohrev parku stejnosmernym proudem z baterie zpusobi elektrolyzu parku (narozdil od jeho pripojeni do stridave site). Produkty elektrolyzy parku nemusi patrit k nejzdravejsim.

Posted by zelenohlav in Foodhacking, 0 comments

Klavesnicova makra poprve

Tento prispevek navazuje na jak automaticky vkladat text i kdyz se nekdo snazil aby to neslo a odkazuje na SW a HW v nem zmineny.

Klavesnicova makra si predstavuji jako funkce, kterym jdou dat parametry a podle nich se vygeneruje vlozena sekvence uhozu na klavesnici. V nejjednodussim pripade se se parametry dosadi nekam do textu, ktery se posle. Ve slozitejsich pripadech se muze treba podle zadane mailove adresy prijemce rovnou prednastavit osloveni a podpis a podobne pokrocilejsi funkce.

Zatim mam napsana jen hloupa makra: serkbd_in_loop.py. Cely HW a SW na strane prijemce zustava stejny. Staci spustit program v pythonu, jako root* a pak mackat klavesy. Klavesou q se program ukonci, ostatni klavesy zpusobi pokus o nalezeni souboru s jednopismennym nazvem v aktualnim adresari a poslani jeho obsahu.

Pismena jsou samozrejme zadavana na klavesnici druheho pocitace a retezce znaku definovane v souborech prijdou do pocitace prijimaciho.

Takze kdyz vytvorim textovy soubor se jmenem u a s obsahem uname -a, staci na klavesnici ovladajicicho pocitace zmacknout u a na ovladanem pocitaci se napise uname -a (at uz bude focus kdekoliv – do terminalu, do mailu, jako by to bylo napsano primo na klavesnici).

V UNIXu neni prilis prakticke vytvares soubory se jmeny *, nebo – a vytvorit soubor se jmenem / by nastesti nemelo jit vubec. Takze pro seriozni pouziti by se hodil jiny zpusob ukladani maker. Tohle je spise proof of concept.

*) Kdyz poustite program jako root, ziska kontrolu nad celym vasim pocitacem. Takze se hodi alespon trochu rozumet tomu, co v nem je. Mohl jsem tam schovat neco zakerneho (neudelal jsem to, ale to bych sem napsal i v pripade, ze bych to udelal, to da rozum). Nekdo mohl odchytit packety po ceste na siti a zmenit obsah. Nakonec nejjednodussi zpusob je ukrast muj text a program (ten se krade blbe, ma licenci GPL :-)), dat oboje nekam na freeweb a do programu pridat nejaky nechteny bonus.

Happy hacking!

P.S. odmitam prijmout zodpovednost, za skody zpusobene makry. Takze pokud si vytvorite makra s hesly a odkazy na sve oblibene pornostranky a povede se vam je omylem vlozit do pracovniho emailu a diky enteru na konci makra rovnou i odeslat, muzete si za to sami, ja vas varoval.

Posted by zelenohlav in Linux, 0 comments

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