xom`s pinion - Tom Hnatovsky Blog

Jak jsem si pouštěl DVD

30. ledna 2007 Jen tak pro sebe 3 komentáře

Aneta Langerová na cestě Po novém roce jsem přeinstaloval stolní počítač, dodnes je prakticky holý, pouze instalace Windows XP a pár menších prográmků. Myslel jsem si, že ho nepotřebuji zahlcovat množstvím instalací, když mi slouží prakticky jenom jako úložiště fotografií a přehrávač médií. Jak jsem se s tím přehrávačem médií spletl.

Dnes jsem si řekl, že se podívám na DVD Anety Langerové „Na cestě“ (pěkný koncert, rušený mluveným slovem mezi písněmi) a vložil jsem médium do počítače. Na legálně zakoupené DVD jsem spustil legálně vlastněný Windows Media Player (nic jiného na počítači není, proč také) a vyskočilo okénko, že nelze médium přehrávat. Nu což, nedávno byla uvolněna česká verze WMP 11, tak si jej stáhnu, to je přeci to nejlepší a nejvymakanější.

Stáhnul jsem si jej, nainstaloval si jej, prošel testem Genuine Windows, spustil jej. DVD Anety se stále nepřehrává, stejná chyba. WMP mi nabízí, abych si stáhl DVD dekodér z webu Microsoftu. Dekodéry nabízejí asi čtyři, ale všechny jsou komerční verze, nic zdarma, rychle k použití.

V zásuvce stolu jsem nakonec našel stařičké CD se CyberLink PowerDVD, které jsem kdysi dostal ke grafické kartě. Instalace proběhla rychle, WMP využívá dekodéru od CyberLinku. Nikdy předtím jsem se s tímto problémem nesetkal, protože jsem nikdy předtím nehodlal využívat WMP a ihned instaloval nějaký jiný přehrávač.

Ať žije ten multimediální systém, který neumí přehrát obyčejné DVDčko.

PS: Doufám, že jsem při instalaci systému na něco zapomněl, protože mi stále příjde neuvěřitelné, že se MPEG4 soubory nedají ihned přehrávat.

Doufám, že už brzy budu mít více času na několik článků týkajících se zajímavých projektů, kterých se momentálně účastním, stejně tak, že budu mít dost trpělivosti s mým první screencastem na další modul xbo- jenom doladit zvukovou stopu..

Dotekový displej Apple iPhone

16. ledna 2007 TechnikaZaujalo mne 1 komentář

Apple iPhone Poslední dobou jsem na internetu pronásledován několika jevy – články na téma, jak je nový Apple iPhone geniální/debilní, články na téma, jak je starý Radek Hulán geniální/debilní nebo články na věčné téma Google AdSense. Abych nezůstal pozadu, tak se pustím ihned do prvního výše zmíněného tématu.

Nebudu se snažit porovnávat, zda-li je přicházející telefon skutečně dokonalým pracovním pomocníkem nebo pouhou hračkou pro „hloupé lidi“. Navážu totiž na jeden starší článek o unikátní dotykové technologii. Apple totiž představil ve svém zkušebním vzorku telefonu displej, který se zásadně liší od všech ostatních dotykových displejů!

Dotykový displej iPhonu dokáže zaznamenávat více doteků než jeden – jde o tzv. multi touch screen. Dříve popisovaný dotekový displej, ono šlo spíše o velký touchpad než displej, se vyznačoval vlastností, že prakticky nebyl nikterak omezen počet ukazatelů – reagoval na všechny podněty.

Mou domněnkou, kterou podporuje článek s nákresem, je, že Apple použil jinou technologii – technologii vycházející ze současných touchscreenů, které mají nad displejem průhlednou aktivní plochu, která je citlivá na dotek. Dochází k rozvlnění plochy či k elektrické nerovnováze – prst uzme část náboje a senzory na okrajích plochy jsou schopny dopočítat pozici. Apple dle všeho použil dvě citlivé vrstvy nad sebou, čímž rozšířil možnosti klasického ovládání, ale na druhou stranu se i omezil na pouhé dva prsty. Proto bych displej iPhonu nenazýval multi-touch, nýbrž dual-touch.

Průřez displejem iPhonu

Každopádně i přes drobné omezení, které stejnak na malém displeji telefonu žádný uživatel nepocítí, se jedná o výborný náznak, kam by se měly moderní polohovací zařízení ubírat – k rozvoji více kurzorového ovládání.

Jednou z výtek iPhonu je absence stylusu (pera na ovládání, abychom si nešpinili displej mastnými prsty) – vyslovím domněnku, proč tento pomocník chybí – je to kvůli displeji. Domnívám se, že byl použit senzor polohy na podobné technologii jako funguje touchpad notebooku – reaguje pouze na prsty – když po něm budete jezdit umělou hmotou, kurzor se nepohne.

Plnohodnotný multi-touch

Na závěr přihodím ukázku jednoho plnohodnotného multi-touchpadu. Vybírám technologii firmy Mitsubishi nazývanou DiamondTouch. Jedná se zatím o prototyp, který na sebe strhl pozornost při ukázce hraní hry Warcraft III! Video je přiloženo níže..

Technologie DiamnodTouch má jedno podstatné úskalí – musíte být propojeni se zařízením kabelem – stačí kabel připojit ke kovové židli. Jde o to, že se do kabelu vysílá jemné elektrické vlnění, které přes vaše tělo dotekem uzavírá okruh.

Už se nemohu dočkat, až poprvé podobnou technologii vyzkouším na živo.

Předání objektu metodou setTimeout

15. ledna 2007 Web design 3 komentáře

setTimeout reference objektu V JavaScriptu existuje funkce setTimeout, která pozdrží volání definované metody o daný počet milisekund. Na internetu je mnoho dotazů na to, jak této funkci podsunout instanci nějakého již existujícího objektu, takže si to povíme zde - v rámci jakéhosi dalšího seznamování s trochu nestandardním používáním elementárních funkcí JavaScriptu.

Proč trochu nestandardní? Metoda setTimeout má dva parametry, přičemž první je ochoten přijímat string – text v uvozovkách. Uvozený text je funkce, která se má vykonat po uplynutí druhého parametru – času (integer).

Příklad prvního užití:

setTimeout(“alert(‘Hláška’)”, 60)

Výše popsané řešení ve většině jednodušších případů postačí – předávají se pouhé parametry. Druhou možností je vypsání přímo volané funkce, bez uvozovek. Jenže v tomto případě nelze klasicky do kulatých závorek vložit parametry – závorky s parametry funkce lze vložit pouze do uzávorkované verze.

Příklad druhého využití:

setTimeout(funkce, 60)

A nyní se blížíme řešení předání instance nějakého již inicializovaného objektu. Trikem je použití deklarace pomocné bezejmenné funkce, která bude volat požadovanou metodu i s parametrem, který předá námi požadovanou referenci na objekt.

Příklad třetího využití:

seTimeout( function () { funkce ( document.getElementById( ‘cokoliv’ ), ‘dalsi parametr’) }, 60)

Abychom se nebavili pouze teoreticky – pojďme si, jak je tu dobrým zvykem, ukázat živý příklad!

Chtějme použít fadeIn / fadeOut efekt na div s unikátním id="totoChceme". Pokud bychom nepoužili předávání přímo reference na objekt, tak bychom museli v každé metodě fadeIn i fadeOut použít funkce getElementById, pokud použijeme předání reference, tak se element inicializuje pouze jednou – při načtení stránky.

Definujeme si inicializační funkci:

var fadeBox; // definice globální proměnné pro všechny metody ve stránce function initFadeBox () { fadeBox = document.getElementById( "totoChceme" ); // objekt přiřadíme proměnné až po načtení stránky – do té doby vlastně zatím ještě neexistuje }

Nyní je čas si definovat metodu, která se nám bude starat o objevování a mizení objektu:

function setOpacity ( obj, opacity ) { opacity = (opacity == 100?99.999:opacity); obj.style.filter = "alpha(opacity:"+opacity+")"; // IE/Win obj.style.KHTMLOpacity = opacity/100; // Safari<1.2, Konqueror obj.style.MozOpacity = opacity/101; // Older Mozilla and Firefox obj.style.opacity = opacity/100; // Safari 1.2, newer Firefox and Mozilla, CSS3 }

Teď si nadefinujeme metody, které budou obsluhovat „rozsvěcení“ a „zhasínání“

function fadeIn( obj, opacity ) { if ( opacity <= 100 && obj ) { setOpacity( obj, opacity ); opacity += 10; setTimeout( function () { fadeIn ( obj, opacity ) }, 50 ); // rekurze na tuto funkci, k provedení dalšího stupně změny průhlednosti } } function fadeOut( obj, opacity ) { if ( opacity >= 0 && obj ) { setOpacity( obj, opacity ); opacity -= 10; setTimeout( function () { fadeOut ( obj, opacity ) }, 50 ); // rekurze na tuto funkci, k provedení dalšího stupně změny průhlednosti } }

Kompletní ukázku si můžete prohlédnout přímo v akci.

© 2004-2012 Tom Hnatovsky - Všechna práva vyhrazena