Snížení spotřeby Ubuntu na Dell Latitude D630

Modern PCs are horrible. ACPI is a complete design disaster in every way. But we’re kind of stuck with it. If any Intel people are listening to this and you had anything to do with ACPI, shoot yourself now, before you reproduce.

Linus Torvalds

Dlouhou dobu jsem používal distribuci Gentoo s prostředím KDE. Prošla se mnou dva stolní počítače a dva laptopy (momentálně Dell D630) Nikdy jsem si nestěžoval, systém dělal opravdu to, co jsem po něm chtěl. Problémem ale je, že mnohdy člověk neví, co chtít může. Svět Linuxu se vyvíjí stále rychleji a sledovat nové možnosti není snadné a efektivní. Proto jsem si s koupením většího disku řekl, proč nevyzkoušet něco jiného – v tomto případě Ubuntu.

Po vyzkoušení Kubuntu, které bych subjektivně popsal jako ve výchozím stavu škaredé a objektivně jako nestabilní, jsem zakotvil u Ubuntu. Všechno hezky spolupracuje, veškerý HW funguje bez nastavování (což jsem jinak viděl jen u Mac OS X, který ovšem jede jen na stejných HW sestavách), pouze velkou část aplikací z Gnome jsem nahradil protějšky z KDE (Amarok, Krusader, Digikam, Kopete, Yakuake…). Přeci jen úmyslné omezování uživatele má smysl u samotného prostředí, ale u složitějších aplikací je kontraproduktivní (a skoro bych sáhl k známému Torvaldsovu citátu o dělání z uživatelů idioty). No a Qt aplikace v Gnome vypadají nesrovnatelně lépe, než GTK aplikace v KDE.

Jak už jsem řekl, používám laptop. Dell D630 je pro mne kompromisem mezi dobrou přenositelností a použitelností i bez externích periférií (jde o 14″ laptop, při běžné práci k němu mám připojen 22″ monitor, ergonomickou externí klávasnici a myš), nikdy bych si nekoupil 17″ přenosné topící těleso, které jsou dnes z pro mě nepochopitelných důvodů tolik v módě. Z důvodu výdrže při provozu na baterii, ale i toho, jak moc nebo málo topí při běžné práci, jsem si oblíbil nástroj PowerTop (který Intel vyvinul asi proto, aby odčinil své ACPI hříchy – viz citát výše a text níže). Při otestování spotřeby Ubuntu jsem ale narazil na dost nelichotivé srovnání s Gentoo.

S Gentoo byla má zkušenost vždy taková, že na baterii vydrží na stejném stroji při srovnatelných podmínkách déle, než Windows (ať už XP nebo Vista). Ubuntu se ale dle praktických zkušeností a i informacích o spotřebě z PowerTopu projevilo pěkně nenažraně. Konkrétně tam, kde jsem měl s Gentoo spotřebu kolem 20W, vzalo si Ubuntu 30W. A to je u laptopu opravdu velký rozdíl. Pokud by to nešlo řešit, tak bych se k Gentoo vrátil velmi rychle.

Vypínání všech možných i nemožných služeb a hledání po internetu nic moc neobjasnilo. Nicméně má posedlost logy něco odhalila. V starovacím logu se totiž objevilo pár chyb s ACPI. A to jsem u Gentoo na základě návodu řešil poskytnutím vlastní ACPI tabulky (a jsme zpět u výše uvedeného citátu – výrobci počítačů totiž často implementují ACPI zmršeně, tak, že to projde jen na Windows). To je postup sice obecně nedoporučovaný, cílem ACPI implementace na Linuxu (a ostatních UNIX platformách) je všechny tyto deviace řešit bez podobných hacků, ale bohužel někdy nezbytný. Tonoucí se stébla chytá, spotřeba mohla a nemusela s ACPI souviset, ale radši jsem to zkusil.

Zhýčkaný dokumentací Gentoo, kde člověk najde i postup pro konfiguraci konkrétního typu laptopu, jsem hledal postup pro update DSDT v Hardy Heronu. Našel jsem jen obecný postup týkající se úplně jiného problému. Uživatelé Ubuntu pravděpodobně podobné věci jako šílená spotřeba neřeší. Naštěstí postup zafungoval, DSDT tabulka je nahrazena. A co se týče spotřeby, problém byl vyřešen, opravou ACPI došlo ke snížení spotřeby na úroveň, která panuje pod Gentoo.

A tady je celý postup:

  1. Stáhněte si nezkompilovanou DSDT tabulku pro Dell D630 (i přes příponu gz jde o obyčejný texťák, tak se ho nesnažte rozbalovat) z adresy:
    http://acpi.sourceforge.net/dsdt/dl.php?id=956
  2. Nainstalujte do Ubuntu nezbytné balíky pro kompilaci a kompilátor iASL:
    sudo apt-get install build-essential iasl
  3. Vlezte do adresáře se staženou tabulkou a zkompilujte ji kompilátorem iasl:
    iasl Dell-Latitude_D630-A03-original.asl.gz
  4. Nemělo by dojít k žádným chybám a výsledkem by měl být soubor dsdt.aml. Ten je potřeba zkopírovat do adresáře /etc/initramfs-tools/ pod názvem DSDT.aml (nezkoušel jsem, ale prý je nutné mít název velkými písmeny):
    sudo cp dsdt.aml /etc/initramfs-tools/DSDT.aml
  5. Nyní je potřeba překonfigurovat jádro, aby novou tabulku používalo. Při budoucích upgradech jádra by to snad již mělo proběhnout automaticky:
    sudo dpkg-reconfigure linux-image-$(uname -r)
  6. Po dlouhé době restartujte. Ve /var/log/messages by měly chybět chyby ACPI a někde se objeví upozornění o náhradě DSDT tabulky.

To je vše, problémy s ACPI by měly být vyřešeny!

Hledám nové kolegy!

Tedy ne vlastně přímo já, ale můj nynější zaměstnavatel, BONICOM s.r.o., hledá nové zaměstnance, a tedy mé nové kolegy. No prostě, rozšiřujeme tým, abychom byli schopní so brát větší cíle, abychom mohli dále rozšiřovat tým, no však to znáte.

No a na jaké pozice tedy vlastně hledáme lidi?

V první řadě (mně nejblíž, protože zakusí mého project managementu) je PHP programátor na plný úvazek. Zájem máme o samostatné lidi, kteří jsou ale také schopni pracovat v týmu (jak jinak), své již mají odprogramované a jsou schopní sledovat nové trendy (a tedy třeba využívat principů OOP a zároveň poznat, jak je implementace v PHP5 zmršená). Kromě toho by měli znát SQL (ne jen MySQL), ideálně PostgreSQL, a umět navrhovat databáze. Základy XHTML/CSS jsou samozřejmostí (nebudeme lamače otravovat kvůli každé blbosti). No a troška toho JavaScriptu a další programovací jazyky nejsou vůbec na škodu.

Abychom zůstali u webů, je dalším hledaným zaměstnancem (nebo raději zaměstnankyní) XHTML/CSS kodér. Grafikům ani programátorům se lámat nechce, takže bychom mezi sebou rádi přivítali někoho, kdo rozumí tvorbě přístupného (ať již pro lidi, nebo stroje) webu, velmi dobře chápe XHTML DOM a CSS box model (žádný pokus omyl, ale znát principy a bohužel i odchylky). No a snad nemusím mluvit o preciznosti, zodpovědnosti a dochvilnosti. Výhodou je samozřejmě znalost JavaScriptu a alespoň základů PHP (abyste zase naopak nemusli běhat s každou ptákovinou za programátory).

Pryč od webařiny! Další pozicí, kterou bychom (nejen my) rádi zaplnili, je pozice Java programátora. V našem případě nejde ani tak o serverové technologie, jaké se skrývají pod zkratkami J2EE a EJB, ale spíše o programátory klientských GUI aplikací (u nás hlavně SWT). Klient/server programování se také nevyhnete a znalost relačních databází je tak nějak nutností. No a v tom všem je třeba mít nějakou rozumnou praxi (většina seminárek na VŠ není, opakuji není, dostatečná praxe).

Další pozicí je programátor v Pythonu. Tady asi jen rychle – náplní je tvorba různých server side skriptů, do budoucna snad i webařina. Znalost dalších programovacích jazyků (třeba i shell) je nutností.

No a mimo to vše hledáme také administrátora Linuxových serverů. Naší představou je socializovaný nerd, který má zkušenosti s reálným provozem Linuxových serverů (a který mě pravděpodobně omlátí o hlavu, že nepoužívám pojem GNU/Linux). Pár instalací Gentoo nebo dokonce Ubuntu na vlastní počítač v žádném případě není dostatečnou kvalifikací.

No a nějaké ty spojující znaky: jsme poměrně malá, ale již delší dobu působící firma (=stabilní zázemí), naše sídlo se nachází v pražském Karlíně. Zaměřujeme se na vývoj (Java, web; Linux, PostgreSQL) aplikací, správu a grafické práceMůžu snad tvrdit, že máme poměrně příjemný pracovní (i mimopracovní) kolektiv (což ovšem neznamená, že to semtam není na pěst). Fotbálek a šipky na pracovišti, presso, sušenky a nealko v neomezeném množství k dispozici jsou už jen tak navíc.

Pokud by vás náhodou práce u nás lákala, těším se na osobní setkání. Bližší charakteristiky pracovních nabídek najdete po návštěvě odkazů v textu, případně na stránce našich volných pracovních pozic. Jo a najdete mě i na LinkedIn.

Diplomka

Nedávno jsem dokončil studium, součástí toho bylo i obhájení diplomové práce. Ta má se věnovala tématu „GIS jako systém pro komunikaci se zákazníky.“ Předesílám, že nejde o žádnou silně teoretickou práci, vzhledem k zaměření mého studijního oboru jde spíše o aplikaci poznatků. Předem se omlouvám všem, kteří by se do ní zanořili a byli uraženi její jednoduchostí.

Přemýšlel jsem, zda se zveřejněním počkat na dokončení popisovaného projektu. Bohužel ten není moc prioritizovaný a k vydání by tak nikdy nemuselo dojít. Snad to příliš nevadí.

V souvislosti se zveřejňováním diplomových a dalších kvalifikačních prací jsem nedávno narazil na službu, která umožňuje dát své práce k dispozici za drobnou úplatu. Upřímně musím říct, že to nechápu. Pokud se na to podívám ze strany autora, musím říct, že jednoznačně výhodnější se mi jeví prosté zveřejnění. Pokud jde o práci kvalitní, bude její volná dostupnost sloužit minimálně jako dobrá osobní reklama (a třeba pomůže na trhu práce). Těch pár korun, které by mohla přinést, náklady na tvorbu jistě neuhradí a pouze omezí skupinu lidí, kteří se k textu dostanou. Pokud nejde o práci kvalitní, tak je to v celku jedno – zpoplatnění nic nevytrhne.

Z hlediska čtenáře práce si nedokážu představit, že bych za podobný text platil. Studenti většiny vysokých škol mají přístup k mnoha kvalitním zdrojům; pokud je nutné za nějaký zdroj platit, většinou už jde o hodnotný text. Platit za necitovanou (tedy z hlediska kvality zdroje nepříliš ceněnou) diplomovou práci jen na základě abstraktu se mi nejeví jako příliš dobrá investice. Samozřejmě pokud ji nechci opsat, což je jednak jednání zavrženíhodné, a hlavně použít pro opsání zdroj dostupný (i když za úplatu) na internetu je velice hloupé.

No, zpět k tématu. Mou diplomovou práci naleznete pod názvem GIS jako systém pro komunikaci se zákazníky. Doufám, že aspoň někomu poskytne užitečné informace. Při jejím případném využití se prosím řiďte českým Autorským zákonem (citujte a odkazujte).

Konfigurace PostGISu pro souřadný systém S-JTSK

V poslední době si tak trochu hraju (no, vlastně trochu víc, je na tom tak nějak postavené téma mé diplomové práce, ale uznávám, že jsem přinejlepším „poučený laik“) s rozšířením RDBMS PostgreSQL PostGIS.

Kromě toho, že se stále přesvědčuju, že odhodit MySQL a plně přejít na Postgres byla dobrá volba (což je vcelku zajímavé, ono už po měsící, kdy používáte namísto MySQL nějakou normální databázi, tak nějak není cesty zpět), musím také semtam řešit nějaké ty problémy.

Zdrojem problémů z nejoblíbenějších jsou převody mezi souřadnými systémy. Pokud už získáte nějaká data pro ČR, tak souřadnice bývají v S-JTSK. Na druhou stranu například pro komunikaci s různými webovými mapami je zapotřebí používat světový standard WGS84. V podstatě do dnešní doby jsme používali poměrně komplikovanou cestu: Nejdříve převedli S-JTSK do S42, potom dále jakýmsi podivným PHP skriptem do WGS84. Naštěstí to nějak fungovalo.

Ale jak jsem říkal, hraju si s PostGISem. A ten jako správny GIS umí (prostřednictvím projektu proj) provádět převody mezi souřadnými systémy, které má popsané.

I přesto, že jsem v tabulce spatial_ref_sys (kde jsou definice jednotlivých souřadných systémů uloženy) nalezl několik systémů, obsahujících zkratku S-JTSK, použití ani jednoho nedávalo uspokojivé výsledky (některé nefungovaly vůbec, jiné se nestrefovaly o pár tisíc kilometrů).

No, není nad to trošku pohledat, a také najít. Bohužel ani použití odkazované definice nepřineslo naprosto dokonalé výsledky (tedy pokud se nesmíříte s chybou v řádu desítek metrů). Chtělo to další hledání, tentokráte poněkud časově náročnější, protože vysněný zdroj se ukrýval pod koncovkou .ppt. Ještě že už jsou dnes vyhledávače tak daleko, že indexují i binární paskvil. Tato práce uvádí úpravy, které zvyšují přesnost převodu. Neměl jsem šanci na nějaké zcela exaktní ověření, nicméně primitivní postup „vzít lokaci adresy v S-JTSK, převést ji a podívat se, jestli na google maps bude opravdu šipka na požadovaném objektu“ poukázal na dostatečnou přesnost převodu.

Definice systému na základě dvou uvedených zdrojů tedy vypadá třeba takto (do pole proj4text jsem za čárky musel vložit mezery, jinak zápis rozhodil zobrazení webu):

INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, srtext, proj4text) VALUES (102067, 'ESRI', 102067, 'PROJCS["S-JTSK_Krovak_East_North",GEOGCS["GCS_S_JTSK", DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]], PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]], PROJECTION["Krovak"],PARAMETER["False_Easting",0], PARAMETER["False_Northing",0], PARAMETER["Pseudo_Standard_Parallel_1",78.5], PARAMETER["Scale_Factor",0.9999], PARAMETER["Azimuth",30.2881397222222], PARAMETER["Longitude_Of_Center",24.83333333333333], ARAMETER["Latitude_Of_Center",49.5], PARAMETER["X_Scale",-1],PARAMETER["Y_Scale",1], PARAMETER["XY_Plane_Rotation",90],UNIT["Meter",1]]’, ‘+proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.2881397222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +towgs84=570.83789, 85.682641,462.84673, 4.9984501,1.5867074,5.2611106,3.5610256′);

Sám ji používám ve spojení s databází UIR-ADR, poskytovanou českou státní správou, která obsahuje souřadnice pro krajská města a bývalá okresní města středočeského kraje (a slibují více). Jen je nutné dát pozor, že při definici třeba přes WKT je nutné nejdříve zadat souřadnici y, poté X, obě navíc jako záporné hodnoty. Můj postup pro vytvoření sloupce location v tabulce adresa, který obsahuje souřadnice ve WGS84, je následovný (omlouvám se za případná prasectva a předem díky za opravy):

SELECT AddGeometryColumn('adresa', 'location', 4326, 'POINT', 2);
UPDATE adresa SET location = Transform(GeomFromText('POINT(-' || y || ' -' || x || ')', 102067), 4326);

NECHCEME RADARY, CHCEME RAKETY!

Doufám, že nadpis není třeba komentovat. A pokud ano, tak znamená můj souhlas s iniciativou NECHCEME RADARY, CHCEME RAKETY! Tečka. Teda vlastně vykřičník.

P.S.: pro případné hysterické komentáře jsou nejlépe uzpůsobeny žumpy typu novinky.cz. Nevidím důvod, proč by měl někdo komentovat mé osobní prohlášení.

Nový realitní web

Pro vlastní sebevědomí je dobré občas se sám pochválit za vlastní práci. Tentokrát je důvodem k pochvale nový web Reality 21. Práce to není jen moje, sám jsem pracoval především na frameworku a kompletaci webu, ale i tak si myslím, že má práce je na webu vidět (ne po grafické stránce, ale z hlediska technické realizace jsem jej hodně tvaroval).

A jaké jsou zajímavosti? Po grafické stránce jsme se pokusili o vlastní cestu, web jsme se snažili udělat jednoduchý a přehledný. Mezi realitními kancelářemi je dle mého názoru až příliš rozšířeno to, že „chtějí web jako ta a ta realitka“, takže to byl místy boj a některé prvky můžou někomu připadat povědomé. I přesto jsme se ale pokusili web posunout trochu dál a snad příště budou kopírovat nás.

Protože i přes vcelku kvalitní off-page faktory se webu moc nedařilo při lákání zákazníků z vyhledávačů, byl také úkol udělat web v rámci (našich jistš omezených) možností SE friendly. V rámci grafického návrhu jsem se tedy pokusil o „zesémantičtění“ webu a použití tzv. „cool URIs“ – oříškem bylo trochu formát odkazu jednotlivých nabídek a přeměrování při špatně zadaném URL (obojí samozřejmě považuji za prospěšné obecně). Kromě toho také web obsahuje textovou i strojově čitelnou sitemapu.

Protože se časem otupila má averze k javascriptu, zvýšili jsme jeho využití tak, aby zároveň neomezoval použití webu. Kromě AJAXových částí jsme tedy taky použili efektní Lightbox a některé možnosti z balíku script.aculo.us (automatický doplňovač – našeptávač a nějaké ty efekty).

Co jsem zatím kupodivu u mnoha realitních webu neviděl (upřímně si nevzpomenu žádný, ale snad se něco najde) je nějaký syndikační kanál pro novinky. Proto jsem napsal export nových nemovitostí do ATOM feedu. Nejsem si zcela jistý, nakolik bude využíván, ale protože jak Firefox, tak IE7 nebízejí snadný způsob jejich použití, mohl by nějaký úspěch zaznamenat.

Protože je web vícejazyčný, řešil jsem, jakým způsobem vyřešit přepínání jazyků (vnitřně používáme gettext). Přepínání pomocí cookies je naprosto mimo (bylo by dobré, aby pod jedním odkazem byl stejný obsah), adresáře by byly řešitelné pomocí mod_rewritu, ale pak to zase může tvořit dojem, že jedna verze je méně důležitá, a tak jsem skončil u rozdělení podle domén. Česká verze je proto přístupná na .cz doméně, anglická na doméně .eu (konkrétně www.reality21.eu). To by navíc mohlo přinést zesílení vlivu vnitřních odkazů na hodnocení pageranku. Obě verze jsou navíc propojeny tak, že příslušná stránka odkazuje na odpovídající stránku v příslušném jazyce (i když to by asi taky mělo být samozřejmé).

Update sekce škola

Když jsem si dal tu práci s psaním seminární práce na téma strategická analýza firem v IT odvětví, tak proč ji nezveřejnit. Najdete ji v sekci Škola a zabývá se strategickou analýzou firem ASUSTeK a Quanta.

Tričko od AllPeers

Asi za odměnu za to, že jsem párkrát napsal o AllPeers (no a asi hlavně proto, že jsem se zůčastnil uživatelského průzkumu a vylosovali mě), jsem vyhrál takovéhle hezké tričko (foto pochází z webu AllPeers):

Weapon of Mass Distribution

No a taky prý mají novou verzi. AllPeers je teď trošku použitelnější, přidalo strašně módní chatovací funkce no a prostě je o další setinkovou verzi dál. Třeba už ho začnu používat aktivně.

Vložení AdSense kódu do stránek zasílaných jako application/xhtml+xml

Každý, kdo se zajímá o dění na českém internetu a publikování obsahu, pravděpodobně zaznamenal spuštění reklamního programu AdSense firmy Google, který umožňuje umístit na vaše stránky reklamní kód, jehož obsah by měl souviset s vaší stránkou. Pokud jste to nezaznamenali, tak se koukněte pod článek.

Bohužel patřím mezi šílence, kteří rádi drží krok s moderními trendy, a proto na některých stránkách používám XHTML ve verzi 1.1, přičemž je podle doporučení organizace W3C zasílám pod typem application/xhtml+xml. Mezi problémy patří především to, že musím rozlišovat prohlížeče, které jsou tento mimetype schopny zpracovat (kdo hádá, že IE mezi ně nepatří, má půl bodu – je to příliš lehká otázka), a zasílat jim stránky pod starším text/html, druhý problém je to, že redakční systém musí být dostatečně schopný, aby nevypustil stránku, která není well-formed (on pak nějak xml parser neví, co s tím).

Spuštění AdSense pro české stránky jsem přivítal, u českých systémů jsem bohužel postrádal relevanci k obsahu, čímž jaksi ztrácely smysl. Bohužel po umístění na stránky přišlo překvapení: kód fungoval jen pod IE (a vlastně taky pod Konquerorem, dál jsem neexperimentoval). Docela problém, když Operu a Firefox používá na zmiňovaných stránkách kolem 60% návštěvníků. Po krátké komunikaci s podporou AdSense jsem se dobral podstaty problému (podpora zas až tak nepomohla, napoprvé mi doporučili vyhledávat na google „základy HTML“), kterou se (kdo ví už teď, dostává druhý půlbod) stal fakt, že kód AdSense není kompatibilní s  xhtml stránkami zasílanými jako XML (mohl jsem na to přijít i dřív, ale ke všemu jsem přehlédl blokující výraz v AdBlocku). To mi následně potvrdila i podpora AdSense s tím, že o problému ví a jejich inženýři na tom pracují (ehm, přepsat javascriptový kód tak, aby nepoužíval document.write(); a místo toho upravoval DOM reprezentaci dokumentu bych snad napsal i já za jeden den) a opět doporučila použít Google. A tentokrát fakt pomohl.

Číst celý článek »

Problémy s Flash plug-inem pod IE

Nemám rád Internet Explorer. Mé důvody jsou zcela sobecké, jako člověk, který si vydělává tvorbou webových stránek, mi nezbývá, než tolerovat výběr většiny internetových browsujících a stránky zpřístupňovat i pro ně. Bohužel tvůrci IE dělali pravděpodobně vše pro to, abych měl práci co nejtěžší. OK, nedodržuje standardy, to by se dalo pochopit, ale navíc to dělá zcela nelogicky a nepředvídatelně, takže tvorba stránek přístupných pro IE je věčným bojem s nelogičnostmi v jejich zobrazování a nesmyslnými bugy, které nikdo neřešil několik let. Něco řeší IE7, ale přinesený pokrok se zdá být zcela v zaběhnutých kolejích vývoje IE, není až tak úplně logický a předvídatelný.

Muselo to jít ven, ale teď už k věci. Další věcí, kterou zrovna moc nemusím, je používání Flashe pro grafické prvky na stránkách, bohužel vyhnout se jí nemůžu. Nemusím ji proto, že přináší problémy a já jsem od přírody líný člověk, který nerad řeší zbytečné problémy.

Poslední věcí, kterou jsem ohledně flashe řešil, bylo zvláštní chování Flash pluginu v Internet Exploreru. Všechny kódy, které používám pro vkládání Flashe do stránek umístili objekt s Flashem správně, bohužel při najetí myší na objekt se kolem něj zobrazí šedý rám a IE přátelsky upozorní, že „Ovládací prvek aktivujete a umožníte jeho ovládání kliknutím sem.“ Smysl upozornění nechápu, Flash vesele vykresloval, po kliknutí se kromě zmizení rámečku a hlášky nezmění, nicméně co už, zas takový problém to samo o sobě není.

Problémem se to však stalo v okamžiku, kdy jsem dostal do rukou stránky, využívající zvláštní CSS řešení pop-up menu. To v kombinaci s tímto „neaktivním“ flashem způsobovalo v IE veselé problikávání stránky. Už jsem se těšil na všechny ty návštěvníky, kteří se nestanou klienty, protože dostanou epileptický záchvat. Prostě to chtělo řešení.

No, proč to vlastně píšu: řešení existuje! Během již takřka vzdaného hledání jsem narazil na zajímavý javascriptový kód, sloužící čistě jen pro snadné, v mnoha browserech funkční, vkládání Flash objektů do stránek. Pokud by někdo namítal, že ne každý má zaplý interpret javascriptu, tak ho jistě potěší, že toto řešení obsahuje i funkční náhradu pro prohlížeče bez JS či Flash pluginu. A fakt, že se jim Flash nezobrazí, budou pravděpodobně považovat za výhodu.

Skriptík se jmenuje SWFObject a na stránkách projektu naleznete vše nutné pro zprovoznění. Snad se to někomu bude hodit.