Až Vám zčerná obrazovka, přejděte na Linux!

Proč používat Linux

úterý 8. prosince 2009

Invalid checksum na UDP paketech

Nějakou dobu jsem laboroval s tím, že mi javovská aplikace běžící na IBM xSeries x3650 s OpenSuSE 11.0 generovala invalidní UDP pakety. Hlásil mi to WireShark (dříve ethreal).
Firmware jednočipu G2 to nebyl sto sežrat a pokud jsem na něj chtěl data dostat, musel jsem to vyřešit. Tak jsem Gůglil a zkoušel...

Výsledek mého snažení lze shrnout do těchto bodů:
  • Je to víc jak rok známý problém a řeší se, ale ještě není vyřešen.
  • Problém není v Javě, ale někde mezi jádrem a síťovkou. Stejný kernel na jiné síťovce funguje, jsou prý kernely, které s těmito síťovkami fungují. V tomto případě to nechodí na Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)
  • Na vině je chybné generování checksumu síťovkou, neboť při použití Raw Socket (což Java dělá), generuje checksum právě síťovka (nebo její modul, nevím, ve zdrojácích jsem nebyl)
  • Řešením je použití TCP checksum offload, které vypíná ono generování kontrolního součtu.
  • Na Linuxu se k vypnutí použije ethtool -K ethN rx off tx off, kde ethN odpovídá konkrétní síťovce, kde to chcete vypnout (tedy eth0, eth1,...)

Třeba to někomu pomůže...

středa 2. prosince 2009

Pochromovaný chameleon aneb Google Chrome na OpenSuSE 11.2

JO! Už je to tady! Máme hrábě v ruce! Teda nikoli hrábě, ale Google Chrome. Jeden z uživatelů OpenSuSE Build Service, dbuck, připravil OpenSuSE Chromium repository s oním přelomovým prohlížečem. Až budu mít nějaké dlouhodobější zkušenosti, dám vědět. Na Ubuntu 9.10 64bit běhá naprosto krásně, a to včetně nepodporovaného Flashe.

Instalace probíhá násůedovně:
1) Přidejte dbuckovu repository pro zypper:
Pro uživatele openSUSE 11.2:
sudo zypper ar http://download.opensuse.org/repositories/home:/dbuck/openSUSE_Factory/ Chromium

Pro uživatele openSUSE 11.1:
sudo zypper ar http://download.opensuse.org/repositories/home:/dbuck/openSUSE_11.1/ Chromium

Pro uživatele openSUSE 11.0:
sudo zypper ar http://download.opensuse.org/repositories/home:/dbuck/openSUSE_11.1/ Chromium

Díky tomu, že dbuck nachystal build tak, že se zdrojáky tahají přímo ze svn projektu chromium, prohlížeč je tedy chromium-browser, nikoli chrome.

Když je repository přidána, můžeme instalovat:
sudo zypper in chromium-browser

No a spustí se pomocí
chromium-browser

Spolu pak můžeme jenom poděkovat dbuckovi za dobře odvedenou práci..

čtvrtek 26. listopadu 2009

Kdy parametrizovaný GET a kdy dvě operace GET a QUERY?

Na můj předchozí blogpost ze série oRESTování reagoval Petr Ferschmann, člen týmu WinStromu. Kromě poděkování za pochvalu ale také píše:
Osobně považuji za ekvivalentní tyto formy zápisu:
/faktura-vydana/(stavUhrK='uhrazeno%27)
/faktura-vydana/?filter=stavUhrK=%3d%27uhrazeno%27
Jak jistě tušíte, nemohu s tímto souhlasit, a proto vznikl tento článeček.

Věc, která vypadá z pohledu HTTP eqivalentně, z pohledu Java kódu eqivalentně, dokonce i z pohledu uživatele, z pohledu RESTu eqivalentní není. Webovému prohlížeči je jedno, které URL uživatel napíše, je to jenom směs znamének. Jestli je na serveru logika udělaná tak, že v metodě doGet() HttpServletu vezmete z request.getRequestPath() jednu část a prohlásíte ji za vyhledávací řetězec (filtr) nebo tutéž část získáte pomocí request.getParameter("filter"), je také celkem buřt. Pro HTTP protokol je to jedno, protože první řádek bude pokaždé vypadat stejně, tedy buď

GET /faktura-vydana/(stavUhrK='uhrazeno%27) HTTP/1.1

nebo

GET /faktura-vydana/?filter=stavUhrK=%3d%27uhrazeno%27 HTTP/1.1

Jak je to ale z pohledu RESTu? Začněměž tím, že si řekneme kousek základní definice RESTu - je to množina N operací, kde N je dostatečně malé číslo, společným pro všechny objekty systému (kterým říkáme zdroje neboli resources). Každý zdroj je unikátně identifikovatelný pomocí URI, za které se považuje buď URL nebo URN.

Tolik základní definice. Teď něco k operacím. Smysl mít několik málo jednotných operací je fakt, že se klient nemusí příliš zajímat o jaký zdroj se jedná a jaké má rozhraní, prostě s ním provede operaci, kterou požaduje, a ta buď půjde nebo nepůjde nebo udělá něco jiného než na jiném zdroji atd. Vzhledem k tomu, že operace se provádějí na zdrojích, které jsou URIčkované, můžeme prohlásit, že parametrem každé obecné operace je URI zdroje.

Těch parametrů ale může být povícero, a to hned ve dvou směrech. Uvedu dva příklady:

RESTová implementace Facebookového "Sdílet" by měla čtyři parametry: URI mojí zdi (tedy URI kolekce, kde se má zdroj (nový záznam o sdílení) vytvořit), URI toho, co chci sdílet, URI autora (ano, URI, Facebook mne musí UNIKÁTNĚ identifikovat!!!), a komentář.

Druhým příkladem budiž operace GET z WinStromu. GET na URL s jedním záznamem má parametr Accept, který definuje formát záznamu, který klient požaduje (XML,PDF,...).

Když jsme si toto řekli, vraťme se k WinStromu a jeho filtru. Každé URI reprezentuje zdroj. Jiný zdroj! Pakliže budeme chápat operaci GET klasicky, tedy "vrať obsah", tak GET na /faktura-vydana/ vrátí obsah kolekce faktura-vydaná, kdežto GET na /faktura-vydana/(stavUhrK='uhrazeno%27) vrací obsah - ČEHO? Z logiky věci zdroje reprezentujícího všechny zdroje z kolekce "faktura-vydana", které mají stav UhrK "uhrazeno%27". Jenomže - co můžeme říct o tom zdroji? Jedná se o zdroj nezávislý? Můžeme ho čapnout a přenést jinam? Jak se vlastně vytváří? Jaké jsou na něm nadefinovány jiné operace než GET? Není to vlastně jenom takový "virtuální" zdroj?

Musím se přiznat, že při slovním spojení "Virtuální RESTový zdroj" zamrazí v zádech. Zkusme se na to podívat z jiné stránky věci. To, co chceme, není IMHO až tak nový zdroj, jako spíše JINÝ POHLED kolekci "faktura-vydana", tedy na zdroj /faktura-vydana/ . Takový pohled, který bude obsahovat pouze takové zdroje, které odpovídají podmínce 'mají stav UhrK "uhrazeno%27" '. Tento pohled pak z hlediska RESTu můžeme udělat na třech místech: na straně klienta, poskytovatele zdroje či interceptorem. Protože chceme dát klientovi maximální komfort a navíc minimalizovat tok dat, předpokládejme, že tento nový pohled budeme budovat na straně poskytovatele zdroje, tedy na serveru.

Jak toho docílit? Velice jednoduše. Rozšíříme operaci GET o nepovinný parametr Filtr (nebo povinný s existující konstantou reprezentující nefiltrování). Na serveru se pak rozhodneme, zda máme či nemáme filtrovat a jak se k tomu dostaneme. Nemáme tak žádný další, tfuj, "virtuální zdroj", tfuj. A jak to v praxi provedeme? Jak to dělá HTTP - k operaci GET na kolekci přidáme parametr filter.

Pojďme ale ještě dál. Onen pohled reprezentovaný parametrem Filtr mění poměrně významně obsah, který klient dostane. Nejde tedy o čistý "jiný pohled na data". Ihned po interní operaci GET se na výsledek provede operace FILTR (a jestli je to uděláno v Javě, v XSLT/XPath či SQL, je celkem buřt). Můžeme tedy tuto dvojoperaci považovat za jednu - FILTEREDGET. GET pak nemá parametr Filtr, tento parametr je parametrem nové operace.

Zeptáte se - no jo, ale když HTTP operaci FILTEREDGET nemá, tak co s tím? Ale to je přece jednoduché, milý Watsone! Tak jak RESTová operace GET není HTTP GET, pouze se na ni mapuje, pak si řekněmež, že si operaci FILTEREDGET namapujeme tak, že URL HTTP GETové operace na kolekci rozšíříme o parametr filter ... :-D

Že je to stejné jako v případě parametru? Ale jděte. Pouze převod do HTTP je stejný. Na straně serveru vám to napoví, že tuto cestu je dobré řešit jinou interní operací. Při vytvoření RESTové (nebo i SOAPové) WebServisy to budete zveřejňovat jako jinou operaci.

Zkusím to teď ještě zobecnit:

Základní otázka Života, vesmíru a vůbec má jasnou odpověď - 42. Nejasná je právě ona otázka.

Otázka, zda cpát či necpát jazyk do URL má také jasnou odpověď - pro všechnu matku přírodu NEE!!!

Jasná otázka, zda použít princip separátních zdrojů, parametrizovanou operaci GET nebo dvě operace GET a FILTEREDGET/QUERY/COKOLI_PODOBNÉHO, jasnou odpověď nemá. Je třeba k tomu přistupovat s mužskou schopností plnohodnotné syntézy či ženskou intuicí:

Rozdílné zdroje použijte tam, kde se opravdu o dva rozdílné zdroje jedná. GET "Aktuální seznam členů CZLUGu", GET "seznam členů CZLUGu počáteční", GET "seznam členů CZLUGu verze 234".

Parametrizujte tam, kde se jedná o jiné formy reprezentace téhož zdroje. GET "Seznam členů CZLUGu"?platny_ke_dni=[puvodni|fcil|YYYY-MM-DD]. Nebo jiný formát záznamu ala WinStrom.

Jinou operaci, pokud se jedná o stejný zdroj dat, ale s až diametrálně odlišným obsahem - typicky vyhledávání. GET "Seznam členů CZLUGu", QUERY "Seznam členů CZLUGu"?query=ti_co_nezaplatili_a_zacinaji_pismenem_fň "

Ufff. Doufám, že to někomu pomůže při rozhodování či pro lepší pochopení principů RESTu.

pátek 20. listopadu 2009

WinStrom - krásný příklad REST API

Tak jsem se zase rozhodl vrátit se k oRESTování. První příspěvek bude o tom, že i u nás v republice umíme udělat pěkné RESTózní API.
Při shánění materiálů jsem dnes narazil na REST API k účetnímu systému WinStrom. A je opravdu pěkné. Ale má i své mouchy.

Samozřejmě jako transportní protokol použili HTTP. Podporují HTTPS a HttpBasic - což ve spolupráci s přístupovými právy dostatečně zabezpečuje bezpečnost dat. Používají klasické operace GET, POST, PUT a DELETE (PUT a POST zeqivaletnili, což ale samozřejmě není nic proti RESTóznosti API), používají celkem hojně HTTP status.

URL jsou taky HTTP. Celkem logicky nejsou neprůhledná - mají svoji logiku.

Pro práci s kolekcí jedné evidence to jsou:
/ID.firmy/typevidence{/[reports|properties|relations|filtr]}

a pro práci s konkrétní položkou
/ID.firmy/typevidence/ID.záznamu{.formát}{/podevidence} (tady si nejsem jist, jestli ten formát je povinný nebo není, IMHO by být neměl, ale z docky plyne, že je)

Co se týká RESTových operací, tak si vystačí se čtyřmi - klasický CRUD.

CREATE se volá na kolekci. Návratová hodnota je buď neúspěch nebo úspěch. Úspěch v sobě obsahuje identifikátor vytvořeného zdroje.

UPDATE se volá na konkrétní zdroj - tam jdou nová data, zpátky status operace.

DELETE je klasický - jenom jsem nenašel, na co vše se dá volat.

GET je pěkný. Je sice parametrizovaný, ale parametry lze rozdělit do tří kategorií - stránkování a řazení, přidání metadat a (s tím mám kapku problém) XPath na výsledek, jestliže je ve formátu XML (z důvodu omezení přenášených dat)

Až doposud popis a chvála. Teď ale vady na kráse:
  • XPath jsem už zmínil, ale to není zas takový problém
  • Operace CREATE vrátí identifikátor záznamu, nikoli URL, takže URL si uživatel musí sám poskládat, a to je samozřejmě proti RESTu
  • GETové URL obsahuje formát výsledku - zde by bylo na místě použít parametr v QUERY_STRING, ale chápu, že MS Explorer by si s tím nemusel poradit (alespoň v dřevních dobách používal MSIE příponu ke stanovení content-type :-) )
  • A na závěr to nejhorší. PARAMETR filtr pro fitrování dat na kolekci není použit jako parametr, nýbrž jako součást identifikátoru, což je VYSOCE nehezké. Cpát přímo do URL ořezanou obdobu SQL (viz syntaxe Filtrování záznamů) mi přijde více než nechutné.

pondělí 16. listopadu 2009

Lotus Domino na OpenSuSE a Unable to bind to port Port = 6400 Error

Poslední dobou se kromě jiného zase věnuji Notesům (čti notesům :-D) a při poslední instalaci jsem narazil na poměrně fatální problém:
Unable to bind to port Port = 6400

Gůglím a gůglím, až jsem našel http://www-01.ibm.com/support/docview.wss?rs=899&uid=swg21167181 . Přečti si to a nevěřím vlastním očím:
Note: Port 25 is incorrectly reported as port 6400 in the error message because Hex 0x0019 is intepreted as 0x1900, which is 6400.


O co se tedy jedná? Domino se při startu SMTP modulu snaží samozřejmě provést bind() serverového portu číslo 25. Pokud už ale na stroji nějaké to MTAčko běží (např. postfix, který instaluji na všechny servery), je onen port 25, default pro MTA, samozřejmě obsazený. Proto musí naprosto logicky zařvat, že se onen bind() nepodařil a SMTP modul nenastartoval. Jenomže v tom mají kluci drobnou chybku. Domino místo portu 25 zahlásí port 6400. Proč? 25 je v hexa 0x19. 6400 je v hexa 0x1900 ... pochopili? Ano, pravděpodobně opačný 2bajtový indyán. Takže až na Vás Lotus Domino zařve "Unable to bind to port Port=xyzž, podělte ono číslo 256, zbytek vynásobte 256, sečtěte oba výsledky a dostanete správné číslo portu (prostě převeďte do hexa, prohoďte horný a dolní bajt a převeďte zase zpátky do desítkové soustavy). Takže pro port 20480 to bude 80 atd.

Snad to někomu pomůže.

středa 16. září 2009

Akrobacie a stavební stroje aneb zastavte veletoče buldozerů

Pokud jste nedali trošku kryptický název, tak vězte, že to, co včera převedl buldozer Jiří Paroubek opravdu nelze jinak nazvat než veletočem. Poslední dobou mám čím dál tím silnější pocit, že ona Kubiceho zpráva měla velký vliv na jeho sexy mozek - to, co je schopen udělat, vážně hraničí s šílenstvím, pokud ne přímo s demencí.

Nejde mi konkrétně o to, že ČSSD nepodpoří rozpuštění sněmovny, které by bylo IMHO velice perverzní (vysvětlím dále). Můj stav mysli naprosto přesně vystihl šéf švédské diplomacie Carl Bildt (kterého si velice vážím) (a upozorňuju, že Švédsko je momentálně předsednickou zemí Evropské Unie), a totiž to že, cituji, "Vývoj na české politické scéně je tak rychlý, že se pro partnery v EU stává poněkud nepřehledným". Když už se má dělat perfidní politika, tak ať se aspoň dělá čitelně.

A teď trošku k tomu, co si myslím o letošní politické situaci:
* pravicová vláda Mirka Topolánka se snažila udělat v této zemi reformy. Některé reformy byly rozumné (snad, doufám, alespoň koncept eŠVéPéček a eRVéPéček (školský a ramcový výukový program), který ale už byl předzpracován, byl dotažen poměrně rozumně, i snížení daní nebylo od věci), ale reformy zdravotnictví a školství byla až na světlé výjimky (poplatky za pohotovost a pobyt v nemocnici, ony eŠVéPéčka a eRVéPéčka) mi přišly jako zákonem posvěcené rozkrádání.
* předsednictví EU pod vládou Topolánka je sice v této zemi prezentováno jako úspěšné, ale exces s ukrajinským přílepkem ke smlouvě s Ruskem byla taková fatální bota, že si z nás ještě teďka lidi v zahraničí dělají srandu. De facto díky našemu předsednictví chudáci Slováci neměli čím topit.
* Fišerova vláda byla v zahraničí chápána jako úžasné východisko, daleko lepší volba než egocentrista Topolánek nebo Vašek Klaus (bez jakéhokoli přívlastku, to jméno ve světě hovoří samo za sebe). Taky to podle toho vypadalo - to co naši úředníci od půlky května zúřadovali, prý vydalo za trojnásobek toho, co se udělalo do května. A Fišer díky tomu, jak domluvil Barosa, si vysloužil obdiv mnoha politiků
* přesto sestřelení vlády v průběhu předsednictví není zrovna dobrou vizitkou pro zahraničí
* Lisabonská smlouva. Příšerný pasqil, bez kterého se ale Evropská Unie nehne ani o píď. Postoj Vaška Klause je zase všeobecně známý a jako obvykle s ním nejen nesouhlasím, ale považuju ho za totálního ... teď nevím, jak to říct, abych se nedopustil slovního útoku na hlavu státu
* kauza poplatků ve zdravotnictví je totální sviňárna z obou stran. Julínkovy 30-tikoruny sice přinesly užitek, ale na úkor mnoha potíží mnoha lidí. A to se ani nebavím o tom, že mnoho doktorů pak generovalo 30korunová vyšetření, odmítají používat opakované recepty,.. Na druhou stranu ale to, s čím přišla ČSSD po krajských volbách je humus nejvyššího kalibru
* kauza ústavní soud. Jak jsem psal posledně, kauza vyústila v nádhernou facku politikům, obzvláště pak Klausovi a Paroubkovi.
* všudypřítomná krize. To, že je vznikla naprosto zbytečně díky tomu, že banky se rozhodly nepůjčovat, je evidentní. Ale o to nejde. Momentálně nám proti sobě stojí dvě věci - balíček výdajů na oživení ekonomiky a "Janotův" balíček úsporných opatření qůli schodku rozpočtu... Tady bych se spíš držel názoru pana profesora Švejnara, kterého si velice vážím, že v tuto chvíli je třeba pumpovat do ekonomiky maximum i za cenu velkých schodků, ale aby se krize brzo obrátila A TEPRVE PAK bude čas na splácení úroků a šetření...

V dané situaci přijde Paroubek s předčasnými nepředčasnými volbami. Co si pak má chudák volič, tedy já a zbytek republiky, myslet? A koho, jakožto levicově smýšlející člověk, volit?
* jsem sice člověk s vyššími příjmy, ale ODS ne. Za prvé jsou OBČANSKÝMI demokraty jenom podle názvu, neboť o občanské společnosti nemají ani páru a/nebo ji příšerně bojkotují. Jejich "eurorealismus", tedy eurorozvracečství, je nechutnost sama o sobě. Představa jejich reforem, tedy rozkraďme co lze, je cestou do pekel.
* ČSSD ne. Nepíšu sociální demokraté, protože ti mají zase problém se slovem DEMOKRATÉ, a o jejich sociálním pohledu na věc bych občas také uvažoval. Nechápu pana Ratha, pana Paroubka. Jejich program poslední doby, tedy neuvážené a nesmyslné rozdávání všude a kde se dá, místo podpory ekonomiky, mne vůbec netáhne. Tento program je cestou do pekel.
* jsem členem hnutí Brontosaurus, ale Zelené ani omylem. Levicově laděné světové zelené hnutí, které si zakládá na pluralitě a demokracii a ničím nesvázaného neformálního života dostalo v podobě pravicové politiky uhlazených pánů Bursíka a Lišky (a dříve i madam Kuchtové, která díky své neschopnosti dostala přes prsty a teprve potom změnila přístup), kteří TVRDĚ prosazují "vládu pevné ruky", tak příšerně vzdálenou od životního stylu nás ekologů a milovníků přírody.
* Komunisty ne. Ač téměř přesvědčený komunista, tak jejich chování je naprosto nechutné.
* KDU-ČSL už z principu mého fanatického ateismu nevolím
* volit "malé strany"? Raději je než kteroukoli z výše uvedených

Poslední volbou tedy zůstává Karel Švarcnberk. tady mám ale potíže s panem Kalouskem z dob jeho náměstkování na ministerstvu obrany...

pátek 11. září 2009

Máte slovo ve školství?

K tomuto titulku mne přiměl včerejší pořad Máte Slovo s paní Jílkovou jako moderátorkou. Pro ty z Vás, kdo to neviděli, stručně shrnu. Řešilo se:
- každý rodič zažil alespoň jednou "neqalitního" učitele pro své děti
- školáčci dvou přítomných maminek měli potíže s učitelem, jednu učitelku dokonce ředitel vyrazil. Děti totiž nestíhali tempu učiva (poruchy učení) a měli trojky v první třídě a čtyřky ve druhé...
- kantoři mají málo peněz
- slabé výsledky dětí v porovnání se světem
- kantoři mají prázdniny
- děcka jsou agresivní a nevychovaní (2% kantorů zažila fyzický útok ze strany žáků!!!)

Byl tam ministerský úředník, dvě matky, jeden bývalý učitel, dvě ředitelky, školský odborář.

Nebudu všechno dopodrobna řešit, jenom bych chtěl ukázat, jak je ten svět paradoxní. Co přímo vyplynulo:
- máme málo qalitních kantorů. Znám z vlastní zkušenosti případ učitelky, která učila naši Káťu ve třetí třídě. Děs běs hrůza, celá dědina si na ni stěžovala. Přišla v listopadu na záskok za těhulku a na štěstí v červnu skončila. Je to ale systémově dáno několika věcmi:
- kantorů je málo, takže není z čeho vybírat. Ředitelé jsou rádi, když naplní stav - řešení je samozřejmě lepší ohodnocení, ale nejen finanční, ale jde i o prestiž povolání; učitel je teď totiž často brán jako ta nejhorší špína...
- na pajdáku ani na učitelských oborech na odborných fakultách se neučí, jak správně pedagogicky přistupovat k dětem
- děcka jsou nezvladatelné, protože jsou nevychované. Rodiče nechávají výchovu kompletně na učitelích a zlobí se, když to nezvládají. Celá společnost je někde úplně jinde, takže se není čemu divit, že rodiče nevychovávají. Zde by prý bylo řešením zavést školní psychology (i pro kantory!!!). Jenomže nejsou peníze...
- rodiče nespolupracují s učitelem, neřeší problémy dětí, jsou vždycky na straně dětí - řešení je jasné a řekl to onen náměstek ministryně školství: Rodiče by se vždy měli na problémy dítěte dívat do nejposlednější možné chvíle tak, že učitel je v tom nevinně a chyba je na straně dítěte. Moc pěkná myšlenka.

Bylo řečeno, že děti toho umí stále méně a méně, obzvláště matematika a přírodní vědy jsou prý katastrofa. Proč ale to prý neví nikdo. No, já si myslím, že důvod je naprosto jasný.

Podle Jílkové a rodiček jsou kantoři staří a nemají k dětem individuální přístup. Obě požadují, aby se učitelé ideálně plně věnovali jejich ratolestem a podle nich řídili "tempo" učiva - jedna přímo řekla: "Na škole nasadili vysoké tempo a učitelka mi řekla, že to prostě musí zvládnout, jinak bude mít čtyřky... A v tom je právě onen kámen úrazu. Dnes je ve skoro každé třídě nějaké dítě, které má papír "na hlavu" - ať už je to porucha učení, dyslexie, dysgrafie, hyperaktivita,... Pokud mají učitelé přizpůsobit těmto žákům tempo učiva, je jasné, že nemůže zvládnout tolik, kolik by byla bývala zvládla, kdy se nebyla musela přizpůsobovat. To je asi takové, jako když máte čuři běžce na 400m. První to dokáže za 45s, druhý za 50s, třetí za 55s a čtvrtý pak minutu. Kdyby běželi každý svým tempem, budou mít průměrný čas 52,5s . Pokud al budou muset běžet ve skupině... Ani pomoc tomu nejslabšímu od těch rychlejších mu nepomůže dosáhnout lepšího času než řekněme těch 55s (ale i to bych se dost divil), což znamená, že všichni budou mít tento čas a tíám pádem je jejich průměr taky 55s a je tedy o 2,5s horší. A totéž je u "individuálního" přístupu. Ti nejlepší musí čekat na ty horší....

Řešení ale existuje a jmenuje se zvláštní třída. Pomalejší děti prostě budou mezi pomalejšími, učitelé k nim tak budou přistupovat, ale protože musí zvládnout stejné učivo jak oděti z normálních tříd, bude to muset holt doma dohnat tatínek s maminkou...

Konečně po ní dostali

S velikým zájmem jsem sledoval (no ještě neskončila, ale první důležitá část je za námi) kauzu Ústavní stížnosti poslance Miloše Melčáka o krácení jeho práva na vykonávání veřejné funkce. Na první pohled bylo jasné, že se nejedná o nic jiného než o prodloužení platu páně Melčákovic. Většina národa věřila, že ústavní soud podání zamítne a já škodolibě doufal, že nikoli. A opravdu nezamítl, nýbrž zrušil patřičný zákon. Základní důvod byl naprosto jasný - zhodne-li se 120 poslanců a 41 senátorů na totální ptákovině, nemůže jim to přece projít. A o tom je i nález Ústavního Soudu. Potud klasika.

Kde ale končí legrace, je ta část zdůvodnění, která hovoří o nebezpečnosti precendtu ad-hoc suspendování (tento termín se mi moc líbí) Ústavy. Z následujícího odstavce mne přímo zamrazilo v zádech:

Podle Ústavního soudu, jak zaznělo v diskusi o obdobném ústavním zákonu z roku 1998, „nebezpečnost navrhovaného zákona spočívá především v tom, že vytváří precedens nejvyšší právní síly, precedens, který říká, že je možné z momentálních, utilitárních politických důvodů měnit základní zákon země. Je-li to možné jednou, je to možné pokaždé. Ze stejných důvodů by mohl Parlament suspendovat pravomoc Ústavního soudu, pokud rozhodnutí Ústavního soudu odporují momentální politické vůli, ze stejných důvodů by mohl suspendovat pravomoci prezidenta, pokud jsou v rozporu s momentální politickou vůlí, ze stejných důvodů by mohl suspendovat Listinu základních práv a svobod, pokud je překážkou naplnění politických cílů. Zpochybnění základních právních jistot z politických důvodů je zpochybněním demokracie a vytváří potenciální nebezpečí nástupu autoritářství a totality. A není nic platné, že autoři tohoto precedentu neměli a nemají ... nic takového v úmyslu, a ... chtějí jen zajistit konání předčasných voleb.“.


Ano, přesně toto je možné. Proč by si oněch 120 poslanců a 41 senátorů neodsouhlasili doživotní mandáty, zneplatnění základních lidských práv a svobod pro všechny kromě nich,... Ústava tu není proto, aby si ji ohnul každý, kdy se mu zlíbí. Je tu od toho, aby dávala rámec veškerému dění v naší republice a politici tu jsou od toho, aby v rámci této ústavy plnili vůli nás občanů a aby hájili naše zájmy.

Prostě je dobře, že Ústavní soud máme a že ho máme takový, jaký je.

čtvrtek 13. srpna 2009

Válka o Word aneb Velké Patentování

Právě jsem si přečetl zprávu, že Microsoft nesmí prodávat Word, který bude umět pracovat s rodinou .DOCX souborů, tedy s Mrqosoftím OpenXML. A to proto, že firma i4i (čti áj fór áj, neboli eye for eye, což v překladu znamená Oko za Oko) podala žalobu na porušení jejich patentu. i4i si patentovali roztržení obsahu dokumentu od jejich metadat a nad metadaty pak generovali různé pohledy. VELMI mi to připomíná DocBook (který jsem používal rok po podání onoho patentu a to určitě nebyla první verze) nebo mnohem známější kaskádové styly.
To, že šlo o inovativní přístup, je naprosto jasné. Proč ale šlo něco takového patentovat, to mi zůstává rozum stát. Vzpomínáte na kauzy patentové ochrany tlačítka "Buy It Now" na E-Bay či použití cookies pro přenos informací na stránku s platbou od Amazon?
Každopádně Mrqosofti mají dle výroku federálního soudu zaplatit 290 milionů USD (200 podle soudu první instance (20.května) plus soudní výlohy a penále a já nevím co ještě...).

středa 29. července 2009

Akce odstřelte Akademii Věd

Už mne začíná unavovat ta diskuse kolem peněz (nebo lépe řečeno jejich nedostatku) pro Akademii věd. Jedním z velice diskutovaných článku je tento blogspot pana profesora Václava Pačese, bývalého předsedy Akademie Věd ČR, kterého si velice vážím (stejně jako si vážím pana profesora Jiřího Zlatušky). I zde se rozproudila diskuse na téma "Kolik dát na aplikovaný výzkum a kolik na základní?".
Svůj názor jsem tam napsal, ale tady ho taky otisknu:
Sice pozdě, ale také si dovolím pár poznámek z teorie a praxe ze svého života.
a) drtivá většina toho, co jsem se před 17-12lety učil na fi.muni.cz, bylo produktem základního výzkumu. Nevěřím, že by některá firma stála za vznikem Turingova stroje,
b) totéž platí pro von Neumanna, bez kterého bychom, troufám si tvrdit, byli v úplně jiném světě, pravděpodobně bez počítačů.
c) ve firmě Barco, kde momentálně pracuji, spolupracujeme s Ústavem radiotechniky (VUT) v Brně a Ústavem informatiky (AV). Obě spolupráce směřují k několika patentům. Jde o výzkum aplikovaný, který by bez jejich základního vůbec nebyl.
d) základní výzkum je nutný. Pokud ústavy AV negenerují patenty či užitné vzory či se jinak nepodílejí na aplikovaném výzkumu, není podstatné. Ale pouze pokud jsou schopny jiným způsobem prokázat svoji oprávněnou existenci - a to buď přínosem vědeckým (odbornými pracemi, citacemi,...) nebo společenským (popularizací vědy, zvelebování kultury národa konkrétními činy,...). Tady je opravdu místo pro subjektivní hodnocení širokou obcí vědeckou místo nějakého kafemlejnku.
e) přesunout dvě miliardy odněkud někam v době, kdy Věda a Výzkum jsou naší jedinou cestou z pekel, je totální kravina.
f] podpora aplikovaného výzkumu z veřejných prostředků metodou grantů je podle mého jediným správným způsobem, jakým může stát dotovat privátní sektor. Různé úlevy na daních, pobídky či jiné způsoby, jak pumpovat peníze do firem, nejsou tak dopodrobna kontrolovatelné.

středa 22. července 2009

Vizionářem snadno a rychle

Tak jsem se zase stal vizionářem. Odpusťte mi to, jestli můžete, já už jiný nebudu :-)

Před 14lety jsem vymyslel Virtualovice - virtuální svět, ve kterém si vytvoříš človíčka (o pojmu Avatar jsme v té době neměl ani páru), budeš se tam s ním procházet (ve 3D, samozřejmě, kdo by neznal DOOMa, že?), nakupovat, kecat (v té době jsme talk-ovali místo chat-ovali), no prostě dělat všechno, co ve skutečném světě. Vymyslel jsem vlastní peníze (virtuálky), způsob genefování parcel, co co bude stát,...

O 4 roky později jsem stál u zrodu HypeQbs (tehdy jsem, vymyslel zkratku TAPIKOWDTI There Are Planty of Interesting Kinds Of Ways How To Do It, která je velmi vystihovala). Byl to systém pro skládání webových aplikací z kostiček - Qbs. Každá kostička měla pevně dané rozhraní - vstupy a výstupy, na které se v XML konfiguráku navazovaly vstupy a výstupy jiných kostiček nebo na proměnné z formulářů nebo na data pro stránky. Plně jsme oddělili šablonování a generování dat, zpracování svých vlastních událostí a reakcí na ně. Ano, plně událostně řízené modulární webové aplikace, které se konfigurovaly pomocí XML se stoprocentně oddělenou prezentační vrsvou (šablonování FreeMarkerem AŽ POTÉ, co byla všechna data PRO CELOU STRÁNKU připravena) a to všechno se použilo už v roce 2000 na implementaci BontonLandu!!! Jestli někdy budu mít chuťku, tak je zase rozchodím (jenom nevím, jeslti se nezblázní z rychlosti stávajících strojů, tehda s naším DoubleEye.com objížděli Intelové a Dellové Evropu a ukazovali, co všecno na jejich čerstvých inovativních P3 poběží :-D

V roce 2001 jsem začal psát Dialogus, portál spojující v jeden svět emailové a webové konference. Co ten všechno uměl! Kam se hrabaly v té době veleúspěšné eGroups (a teď si nepamatuju přesně, kdo je koupil, ale buď Gůgl nebo Jahů).

V Systinetu jsme vymýšleli kupu inovatnivních a patentovaných věcí, jako například Dokumentovou kolaboraci. Myšlenka spočívala v tom, že pro každý business process se podle schématu (ne XML schématu, ale Ark Schema) XML dokument, který je zároveň popisem toku business procesu, jeho žurnálem i daty, Díky jedinečné koncepci AppendOnly a lokálních kontraktů umožňovala naše Archa zapojit do JEDNOHO business procesu jak lidi tak stroje či IMPROVIZACE v rámci business procesu. A kdo vám dá tuto možnost teď? Přerušit KDEKOLI automatický proces, kdy se nazvájem volají stovky WebServis a poslat ho ručním zásahem (Deus Ex Machina :-) ) do jiné nohavice?

To bylo - teď o tom, co je.

Právě dotahujeme stránky www.westico.cz našeho nového produktu pro RTLS. Nebudu se zde sáhodlouze rozepisovat, co všechno úžasného umí a v brzké době umět bude. ǔplně stačí, když napíšu, že je to systém založený na lokalizaci polohy WiFi klienta, který zjistí rádiový otisk okolí, odešle na server a ten vyhodnotí jeho polohu. Zbytek až příště ;-) To, co chci napsat, je trošku z jinej bečky. Je to něco, co se mi stalo právě při přípravě stránek.

Hledali jsme formulace, jak správně popsat to, jakým způsobem vyvíjíme aplikaci, jakou máme vizi rozvoje, k čemu je to vlastně dobré. Tak jsem Gůglil a Gůglil a během Gůglení jsem narazil na pojem Web 3.0. Sice mi to v tu chvíli nepomohlo, ale tak mě to nadchlo, že jsem začal shánět víc a víc informací, stáhnul jsem si Operator Toolbar do Firefoxu,... Během těch několika hodin Gůglení jsem pochopil, že tudy vede cesta. Ale pak došlo k jevu, kterému my neuronisté říkáme BackPropagation. Začalo to ottiž ovlivňovat můj pohled na produkt, který jsem rok a čtvrt vyvíjel. Jednak jsem si uvědomil spojitosti s definicí Webu 2.0, ale i náznaky Webu 3.0. Ale korunu tomu nasadilo toto video s Ericem Schmidtem, CEO Gůglu. A začalo mi to šrotovat. A tak jsem se rozjel. Za hodinu jsem si to promyslel. za tři hodiny jsem si udělal návrh hrubé kostry implementace. Na papíře, samozřejmě.

No a teď uběhla další hoďka, sedím tu, lížu nanukáč a hned o tom píšu. Protože byly (qůli penězům, jak jinak) všechny mé předchozí vizionářské projekty odloženy ad-akta, rozhodl jsem, že tento si už vzít nenechám. I kdyby čert na babě jezdil, i kdybych se měl upsat ďáblu. Ano, čtete dobře, jsem ochoten zajít tak daleko, že bych svůj nápad (se mnou samým, chci to přece dělat, že?) prodal Mrqosoftu... A o co půjde?

Podívejte se na naše beta demo bety Westico Visibility Serveru a já k tomu přidám komentář:
- představte si, že tato aplikace nepoběží jako firemní portál pro sledování postelí/aut/kontejnerů, ale jako velký portál, kde si KAŽDÝ bude moct nadefinovat své vlastní objekty a sledovat je (ať žije velký bratr, že? :-D )
- představte si, že do onoho okna detailu dostanete data z jiných systému, a to včetně streamu videí z YouTube, data o pacientech,...
- představte si, že kromě zobrazení detailu vám bude umožněno to přímo v tom okně editovat nebo provádět jiné akce spjaté s oním objektem
- představte si, jak ony akce jsou hostovány v rozplizlém mračnu a jsou třeba i placené
- představte si, že ony objekty jsou zaRDFkované a zaMikroformátované
- představte si, že každý takový objekt má své vlastní URL a ona URL se dají sdílet... (už vidím, jak bude Evropská Komise šílet hrůzou :-D )

Uvedu příklad: mějme partiju kámošů, Vaška, Pepu a Frantu. Jezdí seznámili se na Fejsbůku, čatují přes Gůgl, posílají si vzájemně fotky na své Ajfouny. Každý z nich si založí vlastní Vestiko účet a připlácne k němu ve Fejsbůkovské aplikaci svoje data z Fejsbůku. To, že si bude moct editovat a prohlížet své Fejsbůkovské věci je teď podružné. Dále si představme, že se kluci ušatí dohodli, že si budou navzájem sdílet své profily kompletně pro čtení. No a tak se může stát, že se třeba Vašek sbalí a půjde do kina od nějakého nákupního centra. Má půl hoďky do začátku představení. Protože má Ajfoun pořád po tlapě, jukne se do Vestika, co se teď kolem něj děje nebo bude dít zajímavého. Kromě reklam na vložky tam najde, že o patro níž se potuluje Pepa. Jak to bude vědět? Pepa má taky Ajfouna a ten občas pošle údaje o své poloze. tak mu Vašek pípne (opět přes vetiko), že je tady a že jde do kina a jestli by se nepotkali. A Pepa, který je furt on-line, se to ihned dozví, řekne svojí mamině, že je tu Vašek a že za ním na chvilku zaskočí. Mamina řekne proč ne, ona že si jde zatím koupit ty vložky.
Tak Pepa vyrazí za Vaškem (přesně ví, kde je, je na vestiku, že?), spolu se podívají, kde je Franta, jeslti by se k nim nepřidal (no on je sice jenom kousek odtud, ale protože má být podle jeho plánu za tři hodiny o 300km dál, jenom mu pošlou společnou fotku a začnou kecat. Zatím mamina nakoupí vložky, pípne Pepovi, jestli jak opůjde nebo ne a on ji pošle odkaz na film v konkrétním sále, který za už jenom deset minut hrají. Mamina se podívá, pípne že jo. Pepa si z Ajfouna koupí dva lístky, jeden přepošle mamině a jde si s Vaškem sednout na místo. Mamina přijde, sedne si na místo, kde už ji čeká kelímek s kofolou od Roznášková a spol. a užívá si film.

V tu chvíli ale Pepa dostane varování, že jim někdo odjíždí s autem. Pípne policajtům ID svého auta a než auto vyjede z garáže, už tam čeají čtyři ozbrojení maníci a míří na vyhukaného padesátiletého revicidistu - a to byl xakru tak rychlý!!!

Nakonec si všichni tři zalogují onen film, dají k němu recenzi a jdou domů. Ráno volá pepově mamině Frantova mamina, proč že jí nedi vědět, že šli na ten film, ona je doma sama a že Franta je bůhvíkde... a Pepa se jenom pousměje, že právě na 205km dálnice právě láduje kuře s KFC...

pondělí 15. června 2009

Linux na Nokii 5110

Můj neoblíbenější seriál současnosti a možná fšech dob je Comeback, kterému podle naprosto úžasně zahraného hlavního hrdiny Martinem Dejdarem říkáme Ozzák. V posledním dílu, ve kterém velkou roli sehrálo blogování, vtrhl do bytu šílenec, který utekl z protialkoholní léčebny v Bohnicích. Přišel Ozzákovi přednést oslavnou zdravici, že vydržel tři dny nepít. Ivušce pogratulovat k 186tisícům přístupů na blog denně se slovy:
Oni si mysleli, že když nám zabaví počítače, že se nikam nedostaneme. Ale my jsme na ně vyzráli. Sestře jsme šlohli padesát jedna desítku, rozchodili na ní Linux a z ní se dostali na Internet!

Potom si Ivušku a Tomáše (alias Vačici a Bembelína) vyfotil se slovy:
Jsem génius, vyfotil jsem Vás padesát jedna desítkou!

Pokud to opravdu dokázal, pak to byl největší kybermág všech dob.

Každopádně co z toho plyne? Linux se dostává už i do komerčních seriálů!!!

Fleška made in Vietnam

Nevím, zda jde o skutečnost nebo perfektně provedený kanadský žertík, ale o toto se prostě musím podělit.
Něčí kamarád si u Vietnamců za 400Kč koupil gigovou flešku. Ač je to přeqapivé, tak nefungovala ;-) I zavolal kamarád svého kamaráda, ten flešku rozebral a to, co uvnitř našel, vyfotil. Nádhera, co?

úterý 9. června 2009

Divočina s ORA-01034: ORACLE not available a ORA-27101: shared memory realm does not exist

Několik dní řeším problémy s instalací Oracle 11.1 na OpenSuSE 11.0. Z mně naprosto nepochopitelného důvodu jsem permanentně dostával ORA-27101: shared memory realm does not exist a ORA-01034: ORACLE not available při pokusech o použití sqlplus či dalších nástrojů včetně nahození databáze. Všude se dočtete, že řešení je prosté - nemáte správně ORACLE_HOME a ORACLE_SID. Jenomže vše nasvědčovalo tomu, že to správně mám. SID "TAPIK" jsem měl správně, cestu /u01/app/oracle/product/11.1/db_1 taky.
Původně jsem si myslel, že je zakopaný pes v tom, že jsem měl na stroji ještě spuštěný Oracle 10 XE. Shodil jsem ho - nic. Odinstaloval jsem ho - nic. Různě jsem laboroval s cestama, až jsem si nainstaloval orarun.rpm a ten mi napsal hlášku, že nemůže najít /oc4j/j2ee/OC4J_DBConsole_tapik.buchtovi.cz_tapik. Ale SID jsem měl nastavené na TAPIK! A světe div se, nastavení SID na "tapik" zabralo!
Z toho plyne poučení: NIKDY NEPOUŽÍVEJTE VELKÁ PÍSMENA V ORACLE_SID!!!
Ušetříte si spoustu nervů a bezesných nocí.

pátek 22. května 2009

Testovat či netestovat před commitem?

Dagi se rozepsal o tom, zda je nutné neustále zabraňovat zboření konzistence kódu ve Version Control Systému (a je buřt, zda jde o CVS, Subversion, Mercurial etc.). Podle něj je spouštění testů na vlastním stroji před commitem zbytečný a drahý luxus. Nesouhlasím.

Ono je totiž zboření buildu a zboření buildu.

V případě, kdy vám ve chvíli těsně před releasem, kdy se provádí generování hlaviček do CVSka, do systému někdo přidá třídu, která u něj na disku (nebo u kýho čerta) zústala z přechozí verze, když v aktuální byla smazaná (jak se to Beate přesně podařilo, to je kupě lidí doteď záhadou, přestože určité vysvětlení se objevilo), vám nepomůže ani svěcená a jste v háji jak Baťa s dřevákama.

Pokud máte pár dnů před prvním RCčkem, dvacet lidí v kalupu komituje, aby se to stihlo, a někdo vám ten build zboří, je to obrovská ztráta nervů a času pro všechny zainteresované a testy je třeba dělat. Obzvláště když se takový commit provede ve chvíli, kdy onen člověk odchází domů, nejlépe v pátek nebo ještě lépe den před plánovanou dovolenou (vivat Murphy). Kompletní rebuild a test celeho systému není důležitý, stačí provést přírůstkový build a spustit selektivní testy. Podpora pro něco takového byla, Dagi, už ve starém rbuildu (buildovací systém interně vyvíjený právě pro potřeby Idooxu/Systinetu/Mercury/HP.

No a samozřejmě jsou případy, kdy něco takového jako zboření buildu je přímo žádoucí, jako například když dochází ke změně API.

Na základě těchto případů je jasné. že něco jak obecné pravidlo, natož automatizmus, nelze udělat. Ano, máte pravdu, lze. Ale pak se dostáváme do světa aplikací, které se snaží být chytřejší než uživatelé, a takové BYTOSTNĚ nesnáším.

VPN a openSuSE podruhé

Nedá mi to, abych opět nezapěl chválu na kvpnc. Rozchodit VPNku proti Mrqosoftímu PPTP byla opět stejná trivka. Díky kluci a holky!

úterý 12. května 2009

Delfadorovy Paměti jsou oficiální kampaní!

Ano, je to tak. Po mnoha mých snaženích a úpravách a rozšířeních se to nakonec stalo skutečností. Samozřejmě že bez esra (Eric S. Raymond), který se k DM přifařil před rokem a půl, by se to nestalo, ale i tak. Sice bylo vyhozeno několik mých rozšíření, ale zůstal tam můj úvod a to mi stačí!
Pokud někod nevíte, vo co go, tak se vše pokusím v budoucnu trošičku přiblížit.

úterý 28. dubna 2009

Cisco VPN na openSuSE

Protože rozchodit VPN klienta na Linuxu oproti Ciscu je desne triviální, popíšu tu, jak jsem se k tomu dostal.
V Barcu děláme v nové pekárně Penamu v Herinku integraci RFID technologie do plněautomatizované výrobní linky na rohlíky, housky, veky a chleba. Možná někdy budu mít sílu popsat, co jsem si s tím všechno zažil, ale stačí, když budete vědět, že jsme tam nainstalovali 9 RFID čteček ALR 8800 od Alienu. Tyto rýdry jsou postaveny na okleštěné verzi Debianu (ano, v jeho srdci bije Linux) a díky tomu je možno se k nim naSSHčkovat a spustit lokálně plnohodnotné aplikace. Jediný programovací jazyk lokálně použitelný je Ruby (jasně, bash je tam taky, ale jaksi nejsou pro něj Aliení knihovny :-) ), což ale nevadí.
No a protože jsme ještě ve fázi testování (ještě neběží ani zkušební provoz), chtěl jsem si zařídit vzdálený SSH přístup k těm rýdrům. Po třech týdnech jsme z nich vyrazili asi na čtvrtý pokus správný profil pro Cisco VPN klienta.
Kolega si to na Woknech rozchodil vcelku jednoduše, ale pro Linux byl tak trošku horor. Postup byl následující:
1) šel jsem na stránky cisca s tím, že si jej stáhnu
2) chtěli po mně registraci, tak jsem se zaregistroval
3) ale až na třetí pokus - chtěli zaškrtnout tlačítko, které jsem přehlédl, jméno musí mít délku alespoň 9 (a maximálně 50) znaků a heslo navíc kombinaci malých a velkých písmen a číslic. Proč? Nevím. Asi aby soft nestahoval někdo pod mým jménem.
4) po pěti minutách přišel mail, odkliknul jsem potvrzení registrace
5) opět jsem na stránkách našel odkaz na stažení souboru, po kliknutí jsem ale dostal textovou výzvu, abych se přihlásil, přestože jsme byl Logged In.
6) po chvíli hledání jsem přišel na to, že pro stažení VPN klienta musíme mít jako firma podepsanou jakousi smlouvu nebo si koupit CD.
7) tak jsem Gůglil a vygůglil několik odkazů na stažení klienta pro Linux - stáhnul jsem
8) na Perfect Reign jsem našel podrobný návod, jak klienta nainstalovat
9) postupně jsem dotahoval a předkompilovával zdrojáky kernelu, neboť klient je, jak jsem pochopil, především kernelový modul
10) po neustálém hlášení různých chyb (poslední, u které jsem skončil, byla:"linux/config.h" not found) jsem to vzdal. Zatím prozatím, ale už jsem se k tomu vracet nemusel.
11) takže opět Gůgl. Po projítí několika diskuzních fór jsem našel naprosto vyčerpávající odpověď:

Nainstaluj si kvpnc, nakonfiguruj pomocí YaSTu a pojedeš.


Já to udělal malinko mazaněji, takže zde je návod:
1) nainstalovat vpnc a kvpnc (ja si zrovna nainstaloval NetworkManager-vpnc a NetworkManager-vpnc-kde, ale IMHO není potřeba)
2) spustit kvpnc
3) Profile->Import Cisco pcf file - vybrat správný soubor
4) zadat jméno a heslo, zaškrtnout uložení hesla a OK (vyžaduje otevření kwallet)
5) kliknout na Connect

a VPNka jede!

neděle 19. dubna 2009

Zhoubný vliv kontroly trvanlivosti

Dneska náš malý předvedl naprosto parádní hlod. Jaruška koupila jablka a jedno z nich bylo malinko nahnilé. Když to v kuchyni objevila a řekla nám, že "Jedno jablko je hotové!", zeptal se Tomášek naprosto nevinně: "A do kdy mělo datum spotřeby?"

středa 15. dubna 2009

Když chybí NTLDR

Včera večer mne velmi vystrašila moje druhá odmocnina ze čtvrtiny, když mi dva dny před její obhajobou se slzmi v očích oznámila, že jí nejede notebook. Přijdu tam a velmi mne vyděsila hláška: "Nelze najít NTLDR" :-(
Chvilka Gůglování dala jasnou odpověď: na disku C v kořenovém adresáři chybí buď NTLDR nebo NTDETECT.COM . A nebo je chybně nastavený aktivní oddíl. Chyběl NTLDR. Správným postupem je nabůtovat z Bůtovacího CD Windows, spstit záchrannou konzoli a v ní nakopírovat chybějící soubory na místo. Má to ale háček - co když neznáte administrátorské heslo? Typické je to v situaci, kdy Vám někdo Widle nainstaloval, zakázal Admina a Vašemu účtu dal administrátorská práva. Takže jsou dvě možnosti: resetovat adminovské heslo (až najdu URLčko na CD ISO image s tímto nástrojem, přiložím) nebo tam dostat soubor jinak. Třeba pomocí Live CD Linuxu a flešky :-) úplně obyčejné
cp /media/disc/i386/ntldr /windows/c

Protože mi nějak blbla grafika na IBM ThinkPad R31 pod Ubuntu 8.10, kopiroval jsem to nakonec escépéčkem z vedlejšího Linuxu, kde jsem měl vložené Wokenní CD :-)

pondělí 23. března 2009

Odkud stánhout JAD

JAD je velice oblíbený a používaný Javí zpětný překladač (angl. decompiler, česky by to mělo znít jednoslovně jako odpřekladač, ale já na jednoslovné překlady moc nejsem). Chtěl jsi jej dnes stáhnout, ale původní stránky jsou v konkurzu (vypršela platnost domény) a tak jsem si musel trošku zaGůglit.
Tomas Varaneckas něco postahoval a udělal tak na Paranoindím inženýringu vlastní pidizrcadýlko se vším podstatným JADovatým - http://www.varaneckas.com/jad

pátek 27. února 2009

Policeware

Pokud jste o tomto termínu neslyšeli tak jako já do dnešního rána, všem vřele doporučuji si přečíst článek Jiřího Peterky. Ač mám již asi deset let pochybnosti o mnoha jeho názorech a informace od něj si vždy ověřuji (ale samozřejmě se VǓBEC nedá srovnávat s DíDím, neboli Danielem Dočekalem, tvůrcem Světa Namodro (odkazy ode mne nečekejte a pokud jej neznáte, ani ho, prosím, negůglujte, toto nemá být reklama ani negativní ;-) ), tento článek mne natolik zaujal, že jsem se rozhodl o něj podělit.
Podle všeho se chystá brutální permanentní policejní akce - crackování (nesnáším, když někdo používá slova "hacker" a "hacking" ve spojitosti se zneužíváním výpočetní techniky, hackeři jsou více než zdatní programátoři LIBOVOLNÉHO DRUHU (já jsem byl mezi ně též zařazen a to jsem se v životě nikam nenaboural či nezneužil jakýchkoli informací)) počítačů zaměstnanci bezpečnostních složek.
A to, že se to už děje a že dokonce existují snahy o zákaz šifrování (co jiného znamená §97 článek 6 zákona o elektronických komunikacích?) je přímo děsivé. Ano, nesnáším vzdálené crackery. nechápu, co si ti kreténi potřebují dokázat. Nechápu spamery - to jim to vážně ještě pořád vynáší? Nechápu generátory pirátského software (tož kurňa když mám o něco zájem, tož to musím používat v souladu s tím, co mi poskytovatel nabízí (například ZÁSADNĚ odsuzuji znásilňování za účelem pohlavního styku), takže když mi to dá někdo zadarmo, príma, ale když to někdo chce zaplatit, tož to koupit musím nebo se podívat po něčem levnějším). Nesnáším záměrné ubližování někomu prostřednictvím Internetu. Obecně se mi "kyberkriminalita" všeho druhu těžce příčí, ale přístup alá orwelovský Velký Bratr se mi těžce zajídá. Jak to dopadá se můžete sami přesvědčit ve hře The Moment Of Silence (a nekrást!!!)

středa 25. února 2009

openSuSE 11.0, Xen a dvě síťovky

Jak jsem psal dříve, chtěl jsem pod openSuSE 11 na IBM xSeries x3650 rozchodit dvě virtuály, každou na jiné síťové kartě v jiné síti. Po přečtení tuny materiálů a po různých testech jsem dospěl k minimalistickému řešení:
* nabůtovat jádro bez Xenu
* v YaSTu nakonfigurovat obě síťovky, ideálně se statickými IP adresami (nezkoušel jsem jinou variantu, ale bál bych se, že pozdní odezva DHCP serveru způsobí, že se bridge nenahodí)
* otestovat, že síť chodí
* VIeditovat /etc/xen/xend-config.sxp : nahradit

(network-script network-bridge)

za

### default (network-script network-bridge)
(network-script my-network-bridge)

* vytvořit skript /etc/xen/scripts/my-network-bridge

#!/bin/bash
dir=/etc/xen/scripts
$dir/network-bridge $@ vifnum=0 bridge=eth0 netdev=eth0
$dir/network-bridge $@ vifnum=1 bridge=eth1 netdev=eth1

* nezapomenout udělat skript spustitelný

chmod 755 /etc/xen/scripts/my-network-bridge

* nabůtovat jádro Xenu
* odzkoušet, že funguje síť

Nyní je připraven systém pro vytvoření virtuál. Opět použijeme Yast a jeho nástroj na jejich vytváření. Jako síťové zařízení použijte sdílené fyzické zařízení (peth0 nebo peth1) místo virtuálního (zatím jsem nepřišel na to, jak to udělat v yastovém Create Virtual Machines, nastavoval jsem to až v detailech vytvořené virtuály, ale zjistím). Až se systém nainstaluje (doporučuji nechat DVD v mechanice, při mountování image z disku byly problémy), objeví se v něm síťové zařízení eth0. Nastavte mu unikátní IP adresu z rozsahu odpovídajícímu konkrétní fyzické síťovce. Nabútuje virtuálu a zkuste si na ni pingnout.

neděle 22. února 2009

Update BIOSu na IBM xSeries

Nedávno jsme v Barcu updatovali BIOS na IBM xSeries x3650. Update proběhl bez potíží, ale s jedním drobným zádrhelem. Updatovací software běží pod PC-DOSem (nebo FreeDOSem, nevím), takže jediná zařízení, která zná, jsou CD-ROM, Floppy a pevný disk, a samozřejmě pouze FAT a ISO-9660. Takže při vytváření záložní kopie vyžaduje právě takové zařízení, jinak zatuhne a nedělá nic a musíte ho restatovat. Nemáte-li po ruce USB floppynu, vytvořte si při počáteční instalaci serveru malou primární jednotku (tož partišnu...), naformátujte ji FATkou a doufejte, že se vám správně nadetekuje...

openSuSE 11.0, Xen a Broadcom NetXtreme II Gigabit Ethernet

Dva týdny jsme se potýkal s instalací openSuSE 11.0 na IBM xSeries x3650. Krásný rychlý stroj pořízený k tomu, aby na něm běžely dvě virtuály, každá pro jedno Lotus Domino.
Instalace proběhla bez jakýchkoli obtíží, bez jakýchkoli problémů si YaST našel veškerá zařízení, připojil se do sítě, prostě paráda.
Tím jsem ale skončil. Po nakonfigurování Hypervizora Xenu jsem po rebůtu dostal velice zajímavou hlášku, že dom0 nelze nalézt. Hmmm... Po chvíli pátrání a po různých pokusech se mi, přiznám se, ani nevím jak, podařilo Xen přesvědčit, že doménu má. Asi černá magie nebo parametr jádra swiotlb=16.
Další kámen úrazu nastal v zápětí. Poté, co dom0 našel, pokračoval v bůtu, ale zasekl se na inicializaci síťovek (2xNeXtreme II GbEth). Poslední hlášení bylo z ACPI. Hmmm...
Pokusil jsem se vypnout ACPI (běžná praxe z notebooků). Bohužel, zásek přišel dříve. Poslední hláška byla z inicializační fáze USBčka.
Na dotaz na linux@linux.cz jsme dostal jediné dvě odpovědi, které se shodovaly: nahrej nový BIOS. Po konzultacích s podporou od IBM (server za 50 litrů, který je čerstvě v záruce, jsem nechtěl zničit hloupými pokusy) jsme postahovali kupu různých nejnovějších verzí všeho možného (BIOS, diagnostika, firmware řadičů, síťovek,...) Leč nic...
A tak Gůglím a Gůglím, už jsem se pomalu začínal smiřovat s tím, že koupíme nový stroj na ještě jedno Domino, který bude venku na páteři (kam jsme stejně chtěli v budoucnu další stroj umístit) a instalace se udělá separátně. V poslední den, kdy se mělo rozhodnout buď o koupi nebo o virtualizaci, jsem ještě trošku zagůglil a našel jsem toto: chyba je v ovladači síťovky bnx2 nových jader, je známá, je k ní záplata, leč není v jádrech openSuSE 11.0 opravena. V 11.1 je snad už fixnuta, leč stále je to beta...
Máte-li tedy x3650 nebo něco se stejnou síťovkou a chcete tam provozovat Xen pod openSuSE 11.0, použijte jádro z openSuSE 10.3 :-( Jo, a samozřejmě nezapomeňte přejít zpátky z /dev/disk/by-id na klasické /dev/sd[a-z][1-8]

úterý 10. února 2009

Instalace Lotus Notes na openSuSE 10.3

Dnes jsem se pokusil nainstalovat Lotus Notes 8.0.2 na svůj stroj, kde mi běží OpenSuSE 10.3 Se zlou jsem se potázal:

java: xcb_xlib.c:52: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.


Nelenil jsem a zeptal jsem se bratra Gůgla. Odpověď přišla velmi brzy. Problém je v XIneramě (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6532373). Byl. Oprava je dávno venku. Bohužel se nedostala do openSuSE 10.3 Na druhou stranu je zde implementován v Java wrapperu nádherný workaround - stačí zapnout používání "rozbředlých zámků" (IMHO velmi impozantní překlad pro sloppy lock) pomocí LIBXCB_ALLOW_SLOPPY_LOCK=1. A je to.
Tento wrapper se ale nepoužije, pokud si systém sám se sebou veze vlastní JRE - pak vylítne onen problém se zámkem. Takže pro instalaci stačí
export LIBXCB_ALLOW_SLOPPY_LOCK=1; ./setup.sh
a je vymalováno. Snad to někomu pomůže.

pondělí 9. února 2009

Bleší síla

Pod tímto titulkem je podepsaná naprosto báječná hláška mojí ženy, která prohlásila, že nasazovala kryt na buben pračky bleší silou a povedlo se jí to. Nechápal jsem, tak jako jistě většina čtenářů. Dal jsem to teprve poté, když ono slovní spojení BLEŠÍ silou dala do protikladu k VŠÍ silou. A že když veš, tak proč ne blecha...

úterý 27. ledna 2009

Jak nainstalovat Flash na 64bitové Ubuntu

Poměrně dlouho jsem se trápil s Flashem pod 64bitovým Ubuntu. Na Comeback jsem se musel dívat na šest let starém Aceru :-(
Vyzkoušel jsem snad všechno a nic. Nakonec jsem přeci jenom uspěl. Pomohl mi k tomu Alejandrův shell script, který tento proces plně automatizuje. Postup je strašně jednoduchý. Odinstalujte si flash (pokud ho máte), otevřte terminál a pomocí těchto dvou příkazů triviálně nainstalujete Flash 10 pod 64 bitovou distribucí Ubuntu:

$ wget http://queleimporta.com/downloads/flash10_en.sh

$ sudo bash ./flash10_en.sh


Po spuštění Firefoxu v about:plugins uvidíte, jestli to zabralo

Ubuntu a české fonty

Moje desetiletá dcera Kačenka dostala ve škole za úkol napsat přes víkend nějakou povídku. Paní učitelka měla na mysli klasické vyprávění, kterého jsme se jako mladí napsali doalelujá. Jenže dcerstvo to vzalo zgruntu a protože chce být spisovatelkou, měla toho na 15 stránek školního sešitu. A protože to měla hodně škrabopisně, poprosila mne, abych jí to vytiskl na počítači.
A protože to chtěla mít stylové (povídka se jmenuje Strašidelné prázdniny, je to laděno jako deníček 14leté holky, ve kterém sou úryvky tisícileté kroniky, jedno kouzílko a taky dopis od kamaráda), hledali jsme nějaké pěkné skripty, gotiky. Mezi fonty přímo v distribuci Ubuntu jich moc není (a česky žádný), hledal jsem na Internetu a našel jsem projekt České Fonty.
Tento projekt si klade za cíl vytvořit databázi svobodných fontů, které jednak vypadají hezky, ale hlavně projdou testem "Příliš žluťoučký kůň úpěl ďábelské ódy". A výběr je více než dostačující.
Jedná se o TrueType fonty. VyGůglil jsem několik návodů, jak je dostat do Ubuntu, a tady jsem je shrnul:
0) stáhněte fonty (zde předpokládám základní nastavení Firefoxu, tedy to, že se fonty stahují na plochu)
a) spusťte si terminál (Aplikace=>Příslušenství) a rozbalte je, třeba pomocí cd ~/Plocha; unzip `find -name "*.zip"` ;-)
b) adresář /uar/share/fonts/truetype je určen na TrueType fonty. Přepněte se tam (cd /usr/share/fonts/truetype).
c) Pokud v něm ještě nemáte vlastní adresář, vytvořte si ho pomocí sudo mkdir vlastnifonty; sudo mkfontdir vlastnifonty (jmeno může být samozřejmě libovolné, nemusí to být nutně často používané myfonts nebo moje vlastnifonty)
d) šup do něj (cd vlastnifonty)
e) přesuňte sem TTF soubory (sudo mv ~/Plocha/*.[Tt][Tt][Ff] .)
f) a nakonec obnovte cache fontů pomocí fc-cache -f -v ~/.font
g) pro ověření, že fonty jsou správně nainstalovány, si dejte fc-list |less

Snad to někomu pomůže.

pátek 23. ledna 2009

Oracle je vážně Orákulum

Ve firmě Barco jsme se rozhodli stát se partnery Oraclu, abychom mohli legálně používat a hlavně přeprodávat jejich DB s našim systémem. Tak jsem několikrát sháněl kontakt na lidi z českého Oracle, slovenského Oracle, EMEA Oraclu. Nakonec jsem našel, zavolal si tam, abych se domluvil co a jak. Ihned jsem dostal nabídku po telefonu udělat registraci. Paráda!
Ale toto bylo poslední, co pozitivního stálo za zmínku. Pak už to následovalo:
* 2008-10-02: během telefonu jsem klikal na partnerský web Oraclu, který byl neeeeeeskuuuuuteeeeeeeeččččččňňňňněeeeeeeeee pomalýýýýýýýýýýýýýýýýýýýýýýýýýý. Odezva půl minuty byla úžasná. No ale nic, podařilo se (asi po 40 minutách!), dokonce i mé osobní ID a heslo fungovalo!
* poté jsme byli vyrozuměni, abychom zaplatili roční paušál nějakých 300doláčů, abychom mohli být oficiálně zaregistrováni a že po zaregistrování budu informován o přístupových právech. Hned druhý den peníze odešly. Po TŘECH TÝDNECH, kdy se nic nedělo, jsem se ptal, jak to vypadá s platbou. Protože nebyli schopni ji vyhledal, dne 2008-11-11 dostávám žádost o kopii platebního příkazu. Následně již byli schopni platbu najít. Paráda! Bylo mi oznámeno, že všechny podklady včetně přístupových práv atd. po spárování
* obratem jsme místo požadovaných informací a licencí dostali mailem 20ti stránkovou smlouvu o prodeji. Nechtěli jsme ještě nic prodávat, tak jsme ji zatím neřešili
* po několika týdnech (2008-11-23) jsem se znovu ozval, co že je to s těmi licencemi a přístupy. 2008-11-25: "Platba BILA identifikována, čeká se na schválení"
* 2008-11-28 dostáváme první zprávu, o kterou jsme si neřekli: "pred casem jsme Vam zasilali distribucni smlouvu QUICKSTART PLUS k podpisu. Vase aktualni smlouva uz bohuzel vyprsela, ale nova smlouva k nam zatim nedorazila. Mohu Vas pozdat o informaci, zda bude v nejblizsi dobe poslana?" Tak jsme si řekli AHA!, jsme asi ježci a smlouvu jsme podepsali a poslali kurýrem.
* do vánoc jsem neměl na zjišťování stavu nějak čas. Po novém roce (2009-01-06) jsem se k tomu vrátil. Odpověď? 2009-01-09: 'Dyk přece máte přístup ke všemu, co potřebujete!' Jako potvrzení jsem dostal výpis o stavu našeho partnerství. V něm byl náš mocmísntý OPN, nechal jsem si k němu poslat heslo, přihlásil se na stránky a požádal o doručení CDček jediného, co bylo na výběr - Linux a Windows Java developer.
* Bylo mi divné, že nemáme právo stáhnout i věci navíc. Při podrobném zkoumání onoho výpisu jsem zjistil, že žádnou smlouvu schválenou nemáme! Toto jsem už nevydržel a volal jsem na číslo, kde jsem se registroval. Bílá linka mne přesměrovala někam na zajímavou ústřednu, kde ihned po představení se jsem byl ubezpečen, že tam ani neví, jakým jazykem mluvím, a že mám použít angličtinu. Tak jsem se již oním jazykem zeptal, kdo mi může říct, proč je v našem partnerském profilu uvedeno, že nemáme nic podepsáno. Slečna mi sdělila, že takové informace ona nepodává a že musím kontaktovat lokální zastoupení. Ano, právě na linku lokálního zastoupení jsem volal!
* Toto už bylo na mne moc silné kafe. Poslal jsem maila, ať mi tedy vysvětlí, proč to tam máme tak, jak to máme. Odpověď obsahovala jednoduché sdělení: smlouva nebyla dosud schválena. Tak toto už nevydržel šéf firmy a sehnal si mobil přímo na lokálního zástupce a vynadal mu. Ten se mu po chvílí pátrání omluvil, že se celý schvalovací proces zakousl někde na Indickém poloostrově. Ach jo.

To ale není konec. To nejlepší teprve přijde.
CDčka přišla téměř okamžitě po onom "indickém" telefonátu. 22CD pro Linux a 16CD pro Wokna! Beru CD pro Linux, strkám ho do mašiny, kde mi běží 64bitové OpenSuSE 11 a spouštím install . To jsem neměl dělat. Dozvěděl jsem se, že používám nepodporovaný systém. Safra safra, říkám si, co se děje, dyk tam mám přece i 32bitové knihovny! Tak znova prověřuji, ano, jsou tam, už od předešlé instalace Oracle XE. Tak jsem začal zjišťovat příčinu. Oracle i Novell hlásí, že jsou vzájemně certifikováni, ale pro SLES10. Paráda. Tak se podívám, jestli v kódu je test na SLES, abych zjistil, jak ho ošulit. Jenže instalák je ELF (Executable Linux Format). Tak se dívám do requirements, jestli tam najdu nějakoou zmínku o uname, /etc/issue, rpm -qa či něco podobného. No a víte, co jsem zjistil? Podporované systémy jsou: RedHat ES 2.1 a 3.0 a UnitedLinux 1.0! Podívám se na krabici, na ní je "Build date 17/12/2008". To jsem nepochopil. A pak jsem se podíval na CDčko samotné. (C) 2004! Špatná nálepka? ls -s /media/cd odhaluje krutou pravdu. Datum vytvoření všech souborů na CD je 22.února 2004! Tak rozbaluju dál. Všechny CD v Linuxové krabici jsou z roku 2004 s vyjimkou jendoho, to ma dokonce (C) 2003. Tak co třeba Windows? "Build date 6/1/2009", to zní slibně. Ale kdeže. Totéž. Nacházím tam například i databázového klienta pro Windows 95. Takže jak jsem napsal pánům z Oracle:
"s obrovským nadšením jsem rozbaloval balík z Dublinu a s ještě větší frustrací jej pak odkopl do kouta :-("

Ale to ještě stále není konec. Mailuju, že se asi stal někde asi nějaký trapný žert, že mi omylem přišly pět let staré CD a že bych prosil o nové. Odpovědi přišly dvě. V první mne hlavní člověk na pobočce jemně naznačil, že si to přece můžu stáhnout z webu. Jasně že můžu. Ale jednka mi to spojení k nim pořád padá (jenom k nim, jinam jedu jako z praku) a dvak bych chtěl řádově desítky GB dat a to se mi fakt tahat nechce.
Druhá reakce od "nižšího" v hierarchii byla vstřícná. Ať prý specifikuju, co bych chtěl, že mi to pošlou. Paráda. Řekl jsem si jenom o pár věcí:
"Primárně potřebujeme hlavně "velkou" Oracle Database 11 pro 64-bitový Linux a Oracle Development Tools pro Linux x86.
Rád bych vyzkoušel i Oracle Enterprise Manager a Oracle Enterprise Performace Manager."
V odpověď jsem dostal žádost o přčesnou specifikaci dle jejich MEDIA PACKS/LICENSING - Manufacturing BoMs. Stačí prý jít na jejich stránky , vybrat si příslušný název balíku a ten mu poslat mailem, aby se neopakovala moje frustrace. Schválně tam běžte. A dostanete klasickou hlášku HostNotFound! :-D

Na moji připomínku, že ty stránky jsou od nás nedostupné, že se asi jedná o jejich intranetový portál, jsem už odpověď nedostal :-(

Tož asi tak.

Blogovinky

Aha! tak konečně se rozjíždí aplikačky pro Blogger - http://cz.youtube.com/watch?v=-OVRlXn9mAs

Když zatuhne i zátužník

Tak se po dlouhé době zase ozývám. Fakt po dlouhé. Mnozí mí čtenáři už na mne zanevřeli. A ani se jim nedivím.
Před pár měsíci jsem si dal socialistický závazek, že napíšu sérii článků o WebServisách. První jsem už vypublikoval, dalších SEDM mám rozdělaných. Ne a ne je dodělat. Pořád jsem přemýšlel, jak to učesat, aby to dávalo smysl i jako seriál... No a pak jsem to opusitl. Byli důležitější věci k řešení. Znáte to - práce, rodina, druhá práce, třetí práce,... No a díky tomu jsem zatuhnul. Prostě blogovat dál nešlo, protože nebylo doblogováno, co bylo rozblogováno...
Nebýt mých úžasných zážitků s firmou Oracle, asi bych ještě dlouho nic nenapsal. Ale toto vážně stojí za podělení se.