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

Proč používat Linux

č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ě...).