Skriptík pro KOS 

Přihlášení do KOSu může být problém (Nevíte-li, co je KOS, netřeba dál číst). Získání telnet klienta s podporou SSL je problém, ale má řešení, například JayBeeho ebuildy.

Horší je to se správným nastavením terminálu. Klasická textová konzole bez Unicode režimu funguje dobře, v X je ale problém. Nakonec jsem vyhrabal skriptík, který jsem kdysi někde získal, a který nastaví Xterm, jak je třeba:
#!/bin/sh

LC_CTYPE="cs_CZ" \
exec xterm -T KOS -tn xterm \
-font -*-fixed-*-*-*-*-20-*-*-*-*-*-iso8859-2 \
-xrm "XTerm*VT100*underLine: off" \
-xrm "XTerm*VT100*OldXtermFKeys: on" \
-xrm "XTerm*BackarrowKeyIsErase: false" \
-xrm "XTerm*VT100*colorULMode: on" \
-xrm "XTerm*VT100*colorUL: blue4" \
-xrm "XTerm*VT100.Translations: #override \
<Key>F1: string(0x1b) string("[11~") \n\
<Key>F2: string(0x1b) string("[12~") \n\
<Key>F3: string(0x1b) string("[13~") \n\
<Key>F4: string(0x1b) string("[14~") \n\
<Key>Home: string(0x1b) string(\"[8~\") \n\
<Key>End: string(0x1b) string(\"[7~\") \n\
<Key>Insert: string(0x1b) string(\"[1~\") " \
-e telnet-ssl kos.cvut.cz 2223 &


No a pokud je nemáte ani SSL telnet, mám tu ještě instantní standalone balíček.
[ zobrazit záznam ] ( 679 zobrazení ) trvalý odkaz ( 3 / 15893 )
Koverze HDV 1080i25 do 720p50 

Během předmětu Studiová technika jsem natočil toto video:


Protože jsem chtěl být aspoň trochu future-proof, zvolil jsem natáčení kamerou Z1 do formátu HDV 1080i25, tedy v prokládaném režimu na 50 půlsnímků za sekundu. Díky výkonným počítačům ve škole jsem měl šanci celé video i v tomto formátu zpracovat. Problém nastává ve finálním přehrávání.

Dnes už totiž v podstatě neexistují CRT obrazovky, které jako jediné dokáží nativně zobrazovat prokládaný materiál. Proto také EBU doporučuje jako kvalitnější formát 720p50, tedy padesát úplných snímků za sekundu s rozlišením 1280x720. Tento formát má mnoho výhod - není prokládaný, přitom neztrácí plynulost rychlých pohybů a pro rychle se pohybující scény má dokonce vyšší rozlišení, než 1080i (720 vs. 540 řádků).Navíc je přehrávání HDV formátu 720p50 s datovým tokem 19Mbps MPEG-2 méně náročné, takže ho lze přehrát i na slabších strojích s jednojádrovými procerory.

Nakonec se mi podařilo osvojit postup, kterak video v 1080i25 do 720p50 převést. Nejsem si zcela jist, zda je 100% HDV kompatibilní, protože nemám k dispozici příslušný HW.
Číst dále...
[ zobrazit záznam ] ( 936 zobrazení ) trvalý odkaz ( 3 / 18630 )
Měření teploty, verze 2 


Minulý rok jsem tu psal o poměrně svérázném využití VESA DDC rozhraní jako I2C sběrnice pro přímé připojení teplotního čidla DS1631. Rok se s rokem sešel a želva u nás opět zimuje. Oproti minulému roku letos nemáme elektroměr zaseklý na nízkém tarifu*, takže přidání dalšího trvale běžícího PC jen kvůli měření teploty jsem bral jako krajní řešení.

Nakonec se ukázalo, že ke sklepu vede jeden UTP kabel, sice využívaný pro IP telefon, ale jak známo, ve (Fast) Ethernetu jsou 4 dráty navíc. Stačilo trochu naprosto neprofesionálního krimpování jakýchsi Y-kabelů a už byla ve sklepě natažena sériová linka RS-232. I když je to celkem nějakých 35 metrů, při rychlosti 9600 Bd to spolehlivě funguje.

Zbývalo vyřešit, jak převést sběrnici I2C na RS232. Nakonec jsem to vyřešil mikrokontrolérem DS89C450, kam jsem za pár hodin v Céčku vyrobil (a pomocí SDCC přeložil) program, který místo pouze hloupého převodu protokolů také realizuje vlastní odečet teploty. S výhodou jsem využil I2C podprogramy, co jsem napsal ve škole v rámci předmětu Praktika z mikroprocesorové techniky, takže největší prací bylo nastudovat, jak v tomto typu procesoru pracují vestavěné periferie.

No a nakonec bylo potřeba vyřešit, kterak obsloužit sériový kanál na straně PC a ukládat načtená data do MySQL databáze. Shellový skriptík jsem pro sériovou komunikaci zavrhl. Místo toho jsem udělal program v C, který je více méně neprůstřelný - vyprazdňuje buffery, má timeout na čtení dat, takže nezůstane viset, atd. Protože jsem ale líný studovat, jak se v Cčku připojuje k MySQL, vyřešil jsem to tak, že prográmek generuje textový dotaz, který se rourou předá do řádkového klienta mysql. :)

Nad databází je pak jednoduchý PHP frontend, který pomocí knihovny jpgraph generuje moc pěkné** grafy. Tato knihovna je taky jediná, kterou jsem našel, co dokáže korektně vykreslit X-Y graf, kde osu X tvoří datum a čas.

Jsem sám zvědav, co vymyslím napřesrok. Možná by to chtělo aspoň stávající zapojení předělat z nepájivého pole na desku tištěných spojů :)

Zdrojové kódy všech uvedených komponent neuvádím, protože nejsou dostatečně zobecnitelné a nemyslím si, že by je někdo užil. Pokud by snad přeci jen měl někdo zájem, nechť se ozve.

*) Ono se nakonec ukázalo, že to až tak výhodně není - po zjištění poruchy provedla distribuční společnost v souladu §16 vyhlášky 51/2006Sb. energetického regulačního úřadu přepočet na spotřebu obdobnou v předchozím období.

**) Odborníci jistě prominou použití fontu Comic Sans :)
[ zobrazit záznam ] ( 685 zobrazení ) trvalý odkaz související odkaz ( 3 / 17564 )
Gentoo: Jak správně odmaskovávat 

Ačkoli je distribuce Gentoo zaměřena na aktuální verze softwaru, přesto se může stát, že verze programu, kterou poptáváme, není dosud označená jako stabilní. V takovém případě existuje mnoho postupů, jak balík odmaskovat, ale téměř všechny jsou špatné :) Pokusím se je přehledně sepsat:
  1. Instalace s ACCEPT_KEYWORDS:

    # ACCEPT_KEYWORDS=~x86 emerge -atv program
    Toto je jednoduchá cesta, ale
    • znemožňuje updaty (emerge world provede downgrade)
    • Spolu s balíkem odmaskovává i jeho závislosti

  2. Přidání názvu balíku do /etc/portage/package.keywords:

    # echo grp-category/programname >> /etc/portage/package.keywords
    Problémy jsou však možná ještě horší:
    • Závislosti nejsou odmaskovány, takže na tom obvykle skončí výpočet stromu závislostí. Odmaskování závislostí je vcelku pracné.
    • Nezřízené updatování systému nejnovějšími verzemi, které jednak vyžaduje odmaskování závislostí, a také často zbytečně rozbíjí systém. Obvykle totiž nemáme zájem automaticky updatovat na nejnovější nestabilní verze.

  3. Přidání názvu atomu do /etc/portage/package.keywords:

    # echo =grp-category/programname-1.2.3 >> /etc/portage/package.keywords
    Na tento postup jsem přišel teprve nedávno. Oproti předchozím nejsme vystaveni automatickým updatům na vyšší verze, ani automatickým downgradům (pokud daná verze nezmizí z portage). Problém se závislostmi však stále trvá.

V tuto chvíli používám poslední zmiňovaný postup. Má to svou logiku - po nestabilní verzi programu sahám pouze v případě, že stará verze nenabízí funkcionalitu, kterou potřebuji. Odmaskovaná verze už mi funguje a nepožaduji tedy, aby mi program byl automaticky updatován. Tím se vyhnu problému se zavlékáním nových a nových nestabilních verzí do systému.
[ zobrazit záznam ] ( 573 zobrazení ) trvalý odkaz ( 3 / 14193 )
HAL versus Keytouch versus ovládání audia 

Tak, upgrade jsem úspěšně překonal. Dokonce celkem hladce proběhl přechod na Xserver s podporou HALu. Až do teď jsem HALu úspěšně odolával, bohužel, teď se ukázalo, že HAL je nutnou podmínkou ke konfiguraci vstupních zařízení X serveru za letu. A to je funkcionalita, kterou jako majitel Bluetooth myši ocením, neboť doteď jsem byl pro využití všech funkcí myši nucen tuto zapnout před startem X serveru a nevypínat, dokud X server běží, což nebylo příjemné.

Nakonec všechno funguje jak má, až na:
  • funkci Zap (Ctrl+Alt+BackSpace)": Je to nepříjemné, ale nevím jak to spravit, tak se s tím smiřuju :)
  • Keytouch: Z nějakého důvodu není schopen detekovat klávesové události. To je mnohem vážnější problém.
Číst dále...
[ zobrazit záznam ] ( 2693 zobrazení ) trvalý odkaz související odkaz ( 3 / 14613 )

<<První <Zpět | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Další> Poslední>>