Jak funguje Web 2.0

Neodolám a musím se pochlubit maličkým dílkem: Hledat na českém zpravodajství – Czech news search

Myslím, že to je typický příklad toho, jak Web 2.0 funguje (nebo si to tak alespoň představuji). Chci se podívat, zda je v pipes (o těch jsem psal tady) již něco českého a tedy dám do hledání Czech. Vypadne mi jediný odkaz – pajpa na hledání článků o grafiti na českých zpravodajských serverech – tedy přesněji v jejich RSS. Grafiti je ovšem gentlemanovi platné jak nevkusný deštník.

Ale hledat na českém zpravodajství je fain a někdo už udělal půlku práce za mne. Namířím tam, kde se filtruje podle grafiti výstup z inputboxu a každý si může hledat podle čeho chce. Přidám hospodářky, ať tam není jenom bulvár iDnes a publikuji. Deset minut práce a je vymalováno. Ještě tomu začít říkat beta…

Nejlepší na tom je, že si teď můžete zadat do hledání třebas “gripeny” a subscribnout RSS, které hledá právě tento termín. Získáte tak zpravodajský kanál na míru (kdo četl Rajské fontány tak ví, proč mám pro tento přístup slabost).

A teď uvažuji dál. Samozřejmě by to šlo nějak zobecnit. Hledat víc slov, mít možnost konfigurovat zdroje pro hledání. Ale mně se dnes nechce. To určitě udělá někdo jiný. Má vše, co k tomu potřebuje.

Update: Yahoo má očividně problémy s diakritikou.

Z Unixu do Webu 2.0

A je to tu! Další Velká Věc, o které se bude mluvit alespoň týden.

Yahoo se tentokrát opravdu pochlapilo – Pipes jsou dost zajímavá služba již teď. A hlavně mají i potenciál do budoucna. Zdá se, že se konečně objevil způsob, jak snadno a rychle spojovat existující weby a služby. Navíc Yahoo nic neponechalo náhodě a přišlo s kewl uživatelským rozhraním. Ale konec blurbu a hurá na věc.

Pipes ideově navazují na unixové roury. Nějaký program vyprodukuje data, předá je dalšímu programu, ten dalšímu, tak si je přehazují dokud je to baví a nakonci něco vyleze. Zdánlivě velmi omezené (data tečou jen jedním směrem, navíc žádné odbočky a větvení), ale najednou je osmdesát procent problémů snadno řešitelných.

Yahoo se inspirovalo, ale zašlo o něco dál. Fain změnou je luzné grafické rozhraní (kdo čekal AJAX nebude zklamán), ale ještě lepší je například možnost snadno debugovat připravované scripty. Co bohužel chybí je větší množství připravených zdrojů i skriptů. To však může být jen dočasný stav.

Pipes screenshot

Zdroje dat mohou být různé.

  • Vyhledávání Yahoo (nečekali jste google, že ne?)
  • Yahoo Local
  • Flickr
  • Google Base (Kdysi jsem do ní vkládal velké naděje, teď ale nevím, nakolik se uchytila. Pokud máte nějaké zkušenosti, tak se podělte v diskusi.)
  • A cokoli, co má RSS, Atom nebo RDF. To je velmi silná možnost. RSS a podobné protokoly se pomalu ale jistě stávají tmelem webu.

Akcí a filtrů prozatím také není moc. Řazení, filtrování, ořezávání a pár dalších. Na běžnou práci by to však mělo stačit. Některé operace vypadají na první pohled velmi zajímavě a jdou za hranici ostatních (ale nepostradatelných) trivialit, třeba Bábelská rybka.

Co se mi zatím líbí nejvíce jsou dvě možnosti

  • Již existující pipes můžete začlenit do svých. Takže můžete programovat i shora dolů nebo zdola nahoru.
  • Výsledek můžete exportovat v ledasčem, RSS, RDF a Atom jsou dnes asi samozřejmost, ale Json mi zvednul náladu.

Projekt se mi, musím přiznat, líbí, ale nevím, nakolik mu mohu prorokovat velkou budoucnost. Rozhodně jsem zvědavý na to, jak se uchytí, jak na něj bude reagovat okolí a nakolik bude integorván dál (co třeba přidat podporu do Automatoru?).

Zdroj: Za upozornění vděčím W2.0 komunitě na nyxu a hlavně Timu O’Reillymu. Od něj přebírám i tuto výstižnou citaci :

I want to talk about the implications for that marvelous aspect of the fundamental UNIX design: the pipe, and its ability to connect small independent programs so that they could collectively perform functions beyond the capability of any of them alone. What is the equivalent of the pipe in the age of the web? …This is one of the REALLY BIG IDEAS that is going to shape the next five or ten years of computing.

Ryba smrdí od návrhu

Srakyi blognul odkaz na docela zajímavý článek Franka Kellyho. Pár míst bych hned podepsal – třebas automatizované sestavení aplikace včetně provedení testů úžasně podporuje i další dobré zvyky. Ale s jedním bodem bych polemizoval: žádná nebo minimalistická dokumentace nemusí u mnoha projektů vadit. Pokud se třída dobře jmenuje, je umístěna ve správně pojemnovaném namespace a její metody jsou šikovně a výstižně pojmenovány, proč duplikovat námahu? Stačí přeci okomentovat jen to, co není očividné.

Dokumentace vždy a všude je navíc strašlivou koulí na noze. Duplikuje informaci a tudíž vytváří riziko vzniku nekonzistence. Není dobře podchytitelná při refacoringu. Jednou větou: Řekni to raději kódem! Dokumentovat má smysl jenom věci, které nejsou patrné na první pohled (a u těch by se programátor měl raději zamyslet, zda je nenapsat lépe než dokumentovat).

PS: o zmíněné teorii rozbitých oken před časem psal Scienceworld. Článek má i neméně zajímavou a k teorii poměrně kritickou diskusi.

Jak by vypadal svět bez Sunů?

Roumen má odpověď!

Mock testing – Potěmkinovy vesnice

Před pár týdny jsem objevil skvělou knihovnu EasyMock. Chystal jsem se o ní něco málo blognout, ale Otec Fura mne předběhnul. Rozhodně si jeho post přečtěte. Nazajde moc do hloubky, ale na první dojem to stačí.

A pokud by vám i potom vrtalo hlavou, jak přesně se liší mocky a stuby a jak se mezi nimi rozhodnout, rozhodně mrkněte na skvělé vysvětlení od Martina Fowlera. A možná stojí za to věnovat EasyMocku pozornost i pokud vás problematika mocků příliš nezaujala – je na nich dobře vidět, jak se může knihovna změnit přepsáním do Javy 5.

Tahák do programátorovy kapsy

  • Jak se sakra v Ruby udělá seznam?
  • Jaké má tahle metaoda pořadí parametrů?
  • Mám použít tag abbr nebo acronym?
  • Jak se v JSP naimportuje třída?
  • Kolik je hodin do večeře?

Programátor musí mnohdy pracovat i s technologií, u které si není jistý v kramflecích. A pak se hodí mít po ruce tahák. Pokud není potřeba ho skrývat před šéfem (nenapsali jste si do CV nic, co byste neuměli, že ne?) tak třebas i pěkně velký a barevný. (Když svou neznalost Orace na pozici Senior Oracle Administrator chcete utajit, tak ovšem nezbývá nic jiného než si opsat manuál na dlaň a předloktí.)

Naštěstí si už sposta lidí dala tu práci a sepsala pěknou řádku taháků. Tato jejich sbírka může být dobré místo, kde začít.

Vše, co jsem potřeboval vědět o Windows Vista

Už jsem tu psal, že vývoj Windows Vista provázely technické problémy. Ale jak se zdá, programátorům házely klacky pod nohy i manageři nesmyslnými požadavky na ochranu DRM. Zatímco práva vydavatelů “premiového obsahu” jsou zatím v bezpečí, nešťastný návrh si odnesou uživatelé Vist už dnes. A zítra. A pozítří.

Bezpečnostní expert a výzkumník na Aucklandské univerzitě na Novém Zélandu, Peter Gutmann, zveřejnil před Vánocemi zprávu s názvem Analýza nákladů spojených s ochranou obsahu ve Windows Vista. Rozebírá v ní nový operační systém Microsoftu, který byl vyvinut s velmi silným důrazem na ochranu digitálního obsahu před kopírováním. Ochrana obsahu je ve Windows Vista důležitější než stabilita a spolehlivost celého systému, je navržená tak, že jde často na úkor stability, a využívá metod, které zásadním způsobem zvyšují nejen hardwarové nároky na běh systému, ale i cenu komponent pro celý PC trh, říká Gutmann.

Díky velmi šikovně zvolenému bezpečnostnímu modelu jsou uživatelé vydáni na milost a nemilost Microsoftu, dodavatelům ovladačů a všem crackerům, kteří se za ně zvládnout vydávat:

Guttman speculates what effect this could have on military systems and refers to a 1997 incident which saw Windows NT disable the Aegis missile cruiser USS Yorktown (“NT Leaves Navy “Smart Ship” dead in the water”, Government Computer News, 13 July 1998). “Now Windows Vista can do the same thing via a by-design feature of the OS,” he says.

Rozhodně si přečtěte:
Windows Vista jsou záměrně vadné
Analýza nákladů spojených s ochranou obsahu ve Windows Vista
Vista the “longest suicide note in history”: NZ researcher

Log4E

Plugin do Eclipsu, který umožní snadno a rychle manipulovat s logováním ve vyvíjených programech. Jednoduše umožní přidat do třídy statickou proměnnou logger, logovat vstupy a výstupy z metod, hodnoty proměnných nebo na jedno kliknutí (dobře, na tři) opatřit všechny metody dané třídy logováním.

Log4E je poměrně dobře konfigurovatelný, lze si vybrat jaký z logovacích frameworků používat, zvolit formát i úrovně logování pro jednotlivé pozice (já například používám debug pro vstup do metody a trace pro výstup z ní) nebo se rozhodnout, na co vše se má plugin ptát a co rozhodovat automaticky (k nezaplacení).

Screenshot

Šikovné jsou i další příkazy, například nahrazení System.out a System.err výpisů logováním nebo změna logovacího frameworku pro danou třídu.

Log4E existuje ve dvou verzích, verzi zdarma a Pro. Profesionální verse navíc umožňuje pár docela šikovných možností, třebas si definovat vlastní šablony nebo provádět změny na mnoha třídách zároveň.

Závěr: je to šikovná, ale nikoli světoborná utilitka. Dost výrazně mi šetří čas i nervy, protože bych bez ní polovinu logů nenapsal a to by se mi vymstilo při ladění. Škoda, že není k dispozici updatovací stránka pro versi zdarma, někdo by ji asi využil. Myslím však, že mnoha vývojářům se 5.5 eura za PRO versi bohatě vrátí.

MacFUSE

Jedna z mála věcí, co jsem dosud záviděl uživatelům Linuxu byl FUSE – framework umožňující implementovat filesystemy v userspace. Nebyl jsem jediný, kdo záviděl a vývojáři z googlu s tou závistí dokonce i něco udělali. Výsledek je MacFUSE.

Projekt vypadá nadějně, podporován je Mac OS X 10.4, MacFUSE je naimplementován jako dynamicky natahované rozšíření jádra a je kompatibilní na úrovni zdrojových textů s původním FUSE. Některé z existujících filesystémů běźících v userpace již byly úspěšně otestovány: sshfs (na ten se obzvláště těším), ntfs-3g (read/write NTFS), ftpfs (read/write FTP), wdfs (WebDAV), cryptofs, encfs, bindfs, unionfs a beaglefs.

Blbophone?

Ten Kterého Nebudeme Linkovat bohužel nedisponuje veškerými dostupnými údaji a do jeho diskuse se můj komentář neprobojoval. Myslím, že není na škodu zveřejnit to tady.

A teď fakta

  • není možné doinstalovávat aplikace, na Windows Mobile jsou jich přitom desítky tisíc, na iPhone nic, existuje jen pár primitivních (natvrdo vestavěných) Apple aplikací
    • Polopravda. Viz Mac Rumors.
    • Aplikací jistě bude méně, ale posoudit výsledný stav lze dnes jenom těžko. Důležité je, aby aplikace uměly vše potřebné a dělaly to dobře, nemusí jich být x tisíc. Tvrdit nyní, že aplikace od Apple budou primitiví vyžaduje křišťálovou kouli.
      Výsledek: budoucnost nejistá.
  • neumí rozpoznávat písmo, musíte používat jen umaštěný palec
    • Zaplaťpámbu nemám palec umaštěný, zvykl jsem si na mýdlo a vodu a v poli nosím papírové kapesníčky ;)
    • Vážně: je to možnost, která chybí, ale nejspíše to nebude většině lidí vadit, rozpoznávání písma používá málokdo (obzvláště v našich luzích a hájích). Důležitá je rychlost a přesnost zadávání, ne to, jak je toho dosaženo. Uvidíme, jak se s problémem Apple vypořádá (Cade Metz ze zadávání nadšený nebyl, afaik ho označil za věc cviku).
    • Výsledek: Takovéto zařízení neslouží k zadávání kvanta údajů. Doufejme, že pro svůj účel bude vstup od uživatele sloužit
      dobře.
  • žádná možnost rozšíření o paměťové karty a snadné nahrávání souborů přes čtečku karet
    • Jen 4 až 8 GB interní Flash paměti a USB 2.
  • žádné aplikace pro práci s Word, Excel, PowerPoint či PDF soubory, což je věc ve světě Windows Mobile i Symbianu zcela běžná, nicméně na iPhone si přílohu v emailu prostě nepřečtete
    • PDF podporváno jistě bude.
  • žádné 3G, jen pomalé EGPRS
    • V této versi bohužel ne.
  • žádná navigační aplikace jako je TomTom, iGo či OziExplorer, přestože navigace na telefonech dnes zažívá doslova boom
    • Jen google maps.
  • žádná aplikace na pokročilou editaci fotografií
    • Nejisté. Těžko tu hledat hranici “pokročilosti” – plnotučný Photoshop na mobilním telefonu nejspíš nečeká nikdo. O použitelnosti takové aplikace raději ani nechci přemýšlet.
  • žádný přístup na nákup skladeb přes iTunes, stále potřebujete PC
    • Bohužel. Smutné, podobná omezení jsou dnes bohužel běžná.
  • extrémně vysoká cena, a to i přes dotace operátora (Cingular)
    • Ano, bohužel. Dotovaná cena o sto dolarů převyšuje ceny původních iPodů (kam ceny klesly je všeobecně známo). Nic pro socky.
  • žádná hardwarová klávesnice, takže zapomeňte na snadné psaní SMS či emailů
    • Viz bod č. 2.
  • žádný stylus pro přesné psaní či hraní her, jen prst
    • Otázka je, nakolik to bude vadit. Pokud bude produkt dobře promyšlený bude absence her s potřebou přesného ukazovátka stejná závada jako nemožnost spustit dooma na mainframu.
  • žádné FTP, SFTP, SSH, telnet, GnuPG, VPN, na firemní síť se tudíž nepřipojíte
    • Nejisté. A minimálně v případě VPN i nepravděpodobné.
  • název iPhone je ukraden společnosti Cisco a ta se o něj začala soudit
    • Soud rozhodne, pravděpodobnější je dle analytiků ovšem brzká dohoda. Tento krok Applu nechápu.
  • extrémní nestabilita první verze
    • Nejisté a nepravděpodobné. Na Keynote Jobs předváděl mnoho živých demonstrací a problémy ho nepostihly (což kontrastuje s tím, že Microsoft se v poslední době ukázkám na scéně spíše vyhýbá).
  • na telefonku samozřejmě neběží Max OS X, ale spíše cosi jako OS X Mobile, tedy zcela odlišný systém, jen se stejným marketingovým názvem pro lamy; podobně jako jsou zcela odlišné stolní Windows XP a mobilní
    Windows Mobile 5 (na plné OS X by onen telefon “bootoval” půl hodiny)

    • Nenabootoval, má v sobě ARM ;)
    • Těžko to však označit za nevýhodu.
  • dostupnost blbophone až za rok
    • …pokud se bavíme o Asii.

Update: nechci to téma už moc rozpatlávat, klikněte si třebas na shrnutí