středa, června 27, 2007

To neprojde...

Taková malinkatá celebritka mezi .NET vývojáři Jeff Atwood se rozhodl, že si na svůj blog vpustí reklamu a zisky z ní utratí na sponzorování open source (OSS) projektů vyvinutých pro .NET (viz Supporting Open Source Projects in the Microsoft Ecosystem. Vcelku nic moc zajímavého.

Zajímavé jsou ale některé komentáře pod jeho textem. Třeba ten od Franse Bouma:

In fact, the whole MS platform eco system isn't suitable for open source tools to become very effective. As soon as they do, MS will come with an equivalent, and what's worse: large droves of developers don't even know how to spell open source, left alone that they're even looking for open source projects, they simply look at Redmond and wait till MS comes with something.

In the Java community, things are completely the opposite. The whole eco-system around Java is simply build on top of the open source model: libraries and tools are very often free and open source. The business model of java oriented companies is build around providing services, not by selling licenses. On the MS platform this is the opposite.

Vcelku s tímto popisem situace souhlasím. Také používám (soukromě i pracovně) několik OSS produktů, jako je třeba MbUnit (na kterou jsem přešel z NUnit, protože MbUnit má spoustu sexy vlastností, které NUnit nemá), nebo ZedGraph (vážně lepší než drtivá většina placených komponet pro kreslení grafů, distribuovaná pod LGPL), nebo #ziplib (a asi i další).

Nicméně je fakt, že většina těchto komponent dříve nebo později dojde do situace, kdy si Microsoft všimne, že mu někdo loupe perníček, a buď si koupí (rozuměj zaměstná) přímo vývojáře té které komponenty, nebo vymyslí něco vlastního, skoro stejného, ale ne tak úplně kompatibilního, a přibalí to k Visual Studiu, nebo to vydá jako nějakou zdarma stažitelnou komponentu, na což vývojáři většinou reagují tak, že převedou své aplikace na věci od Microsoftu. Podívejte, jak nepotřebné jsou k Visual Studiu přibalené Crystal Reports od doby, kdy Microsoft distribuuje svůj vlastní ReportViewer (pro jednoduché reporty, samozřejmě).

Já to Microsoftu nezazlívám: je to firma, jejímž cílem je znásobovat investice do ní vložené, která potřebuje růst na trhy na kterých zatím není a tak dále. Microsoft je trochu jako hypermarket: všechno co potřebujete byste měli najít pod jednous třechou, aby vás ani nenapadlo dívat se jinam. Na druhou stranu se pak nemůže nikdo divit, že některé lidi takový přístup znechutí, a že začnou raději věnovat něčamu jinému než je .NET. Něčemu, co jim přinese nehynoucí slávu a uznání, a ne jen temný kout v domě zapomnění.

Říkám si: v čem je ten rozdíl, mezi vývojáři opravdového OSS, kteří se věnují Javě, nebo Ruby, nebo něčemu podobně zajímavému, a vývojáři kteří se spokojeně rochní v teplé náruči Microsoftu?

Napadlo mě tohle: zatímco všichni ti opravdoví OSS vývojáři tělem i duší, sní o tom, že jejich produkt (jeden z mnoha ve stejné kategorii na Sourceforge) napraví svět a tak dále, a že když budou dost dobří, tak je nakonec zaměstná Google nebo nějaká podobně trendy firma, snem vývojářů pro Windows (nebo platformy Microsotu obecně) je opustit řeholi zaměstnání, stát se nejprve MicroISV a pak třeba i regulérním ISV (tedy že naberou zaměstnance, kteří budou makat za ně). Rozdíl je totiž v tom, že zatímco pro osvědčené OSS platformy (Linux, Java, atp.) jsou věci zadarmo, pro ty, co se tak či onak spolčili s Microsoftem je naopak normální za věci platit. Takže stačí, když vyvinete nějakou sadu dostatečně kulatých a gradientních tlačítek, vyrobíte si stránku, zaspamujete pár diskusních fór (nebo nabídnete svůj "produkt" pro nekomerční využití zdarma), a díky té mase vývojářů se docela slušně uživíte.

Jistě OSS produkty se živí službami. Ale množství počátečního kapitálu a výše rizika pro zaběhnutí produktu založeného na službě jsou úplně jinde než u balíku ovládacích prvků, který lze vyvinout poměrně dobře i u práce (dokonce i když máte rodinu) a riziko je vcelku nulové.

Chci tím říct: myslím si, že lidem, kteří obcují s produkty Microsoftu současný stav vcelku vyhovuje. Dává jim totiž naději, že jednoho dne budou pracovat na svém, a že zvyk Microsoftích nohsledů nakupovat licence, jim umožní zbavit se jha práce pro někoho jiného. To, že v okamžiku, kdy se stanou příliš úspěšnými, vrhne Microsoft na stejné pole několik set ze svých tisíců vývojářů, kteří je o jejich malý kšeft zase připraví, je nevzrušuje, protože se ukájejí tím, co tvrdí Paul Graham a Tim O'Reilly: totiž že jsou pod radarem, že na ně není vidět, že jim se něco takového prostě nemůže stát.

Proto si myslím, že podporovat finančně OSS projekty pro .NET je jen takové plácnutí do vody, které stejně nikam nepovede. Aby to bylo k něčemu, musel by se změnit přístup Microsoftu, a to se nestane, protože Microsoft potřebuje růst a nemůže si dovolit, aby místo, kam by se mohl natlačit on sám, zabírala nějaká pochybná skupinka předstírající filantropii, či co.

Tak tohle mě napadlo.

neděle, června 24, 2007

Úleva?

Opravdu jsem se těšil. Víte, myslel jsem, že až dodělám tu zatracenou disertaci, tak že se mi strašně uleví nejen od toho, že nejsem typ ABD (Anything But Dissertation) studenta, ale že i ty páteční a sobotní večery ihned přejdou zpět na ten poklidný režim, ve kterém byly ještě tak před dvěma lety (tedy než jsem si uvědomil, že by se mohlo stát, že to nestihnu). Však to znáte: lahvinka bílého, nějaké to programování, nějaké to hraní počítačových her, trochu toho nezávazného psaní.

A ono nic.

Pořád jsem nějaký napjatý, nějak se nedovedu dostat do režimu příjemného utrácení toho infinitizemálního množství volného času kterým teď disponuji.

Dobrá, ještě jsem měl nějaké resty v podobě článku na letošní IMEKO, který jsem slíbil školiteli, a který jsem včera dopsal do nějaké ucelenější podoby. Pak je tu ta věc s přednáškou, kterou budeme mít na Avalconu (pardon, Festivalu Fantazie, či jak se to píše), ale to už je zábava, to není úkol, který by mě stresoval (seriózní práci jsem vychytrale nechal na BVerovi a sám se chystám působit jako ten hloupý z komické dvojice). Je taky fakt, že software, který píšu v práci se blíží k vydání, a že mě stresuje skutečnost, že vzhledem k tomu, že jsem na tuto část byl prakticky sám, tak teď musím nejen dokončovat nějaké ty pozapomenuté drobnosti, dopisovat unit testy, provádět aplikační testování, psát manuál a do pátku nastudovat WiX a vyrobit v něm instalátor, ale jelikož jsem se vcelku dobře naučil nenosit si práci domů, tak kromě takového toho latentního stresu to mimo pracovní dobu nějak extra neprožívám.

Čili nechápu, v čem je problém. Kam se, sakra, poděl můj víkendový klid?

Říkám si, jestli to není tím, že jsem si konečně začal uvědomovat to, o čem psal před časem Steve Yegge, tedy fakt, že už mi zbývá jen velmi omezené množství pětiletých projektů, které stihnu ve svém volném čase udělat. Momentálně mám v hlavě nejméně čtyři, a každý víkend, který věnuji něčemu jinému mě vzdaluje od realizace byť i jediného z nich.

Proto nějak nejsem s to donutit se dohrát Moment of Silence, a který jsem se opravdu těšil (a který mě opravdu nadzvihl dementní ochranou StarForce, která není inzerována na obalu). Proto tři dny chodím kolem knihovny, než vyberu nějakou knihu k přečtení, protože je mně jasné, že než i jen začít číst nějakou zhovadilost, je lepší nečíst nic, proto mám na stole tři knížky o programování (resp. o technologiích), u kterých uvažuji, jestli stojí zato číst je celé, když nejspíše 80% z jejich obsahu nikdy k ničemu nepoužiji (i když Mythical Manmonth jsem nakonec dočetl, a nemrzí mě to, protože pěkně shrnuje to, co jsem tak nějak tušil), proto sem málo píšu, protože něco rozumného napsat mi sebere hodinu až dvě času, který jsem mohl třeba prospat (ověřil jsem si, co psal George Orwell v Holdu Katalánsku -- dospělí muži opravdu dokáží žít velmi dlouho v brutálním spánkovém deficitu).

A tak dále.

Zkrátka, jsem nějak celkově vypruzený, a nevím co s tím mám dělat.

Ach jo.

pátek, června 22, 2007

The Rise of Machines

Už je to tady: Japanese firm exhibits droid construction worker.

Kapitán Kyborg může začít psát knihu "A vy jste se mi smáli, volové"

středa, června 13, 2007

Není větší potěšení pro ortodoxního lumpa...

Přináší mi nevýslovné potěšení sledovat, jak se společnost Apple v tomto týdnu kolosálně ztrapnila. (Můžu si dovolit být takto přímočarý, protože se ukázalo, že tato stránka je pod úroveň Apple fanboys, čili žádný hate-mail mi nehrozí.) Nejprve opravdu nudná a nezajímavá keynote na které Steve Jobs dokázal nepředstavit žádné novinky, a pak celé to fiasko se Safari pro Windows (nekonzistentní UI, fonty, bezpečnostní chyby, problémy s národními verzemi Windows, paměťová nenažranost a tak dále a tak podobně, ve fázi, kdy jiné firmy, kterým je vyčítána chybovost aplikací, jsou už jen o dva release candidates daleko od finální verze).

Prostě krása.

Rozumějte: Jak už jsem vysvětloval, je mi firma Apple a její produkty vcelku lhostejná, ale ten hype, který kolem Apple vznikl v poslední době mě trochu vyděsil. Říkal jsem si: Ohó, co když Apple uspěje a budeme mít dvě platformy místo jedné? Jakékoliv programování pak bude znamenat dvojnásobek práce (i když díky Mono jsem jakožto .NETář ještě vcelku klidný), a nakonec jedna z plaforem bude vždy horší (většinou to bývá ta, kterou její uživatelé adorují), a multiplatformní vývoj znamená kompromisy, dvojnásobek testování a ladění a tak dále. Prostě žít v monokultuře Windows je jistě v některých ohledech nepříjemné, ale na druhou stranu je tu jistota 95% pokrytí trhu, což je zejména pro MicroISV (Independent Software Vendor) zatraceně důležitá věc.

Abyste si nemysleli: na druhou stranu tak trochu doufám, že se Apple podaří tak trochu uspět, protože to bude znamenat větší tlak na Microsoft a zlepšení a zlevnění jeho produktů. Ale neměl by být ten úspěch příliš velký, protože i když naučit se Objective-C a Cocoa by mi asi nakonec nedělalo žádné větší problémy, nějak se mi do toho nechce. Především proto, že je mi Apple nesympatické svou arogancí a sebestředným snobstvím (které vyvěrá z jeho kormidelníka).

Ovšem po tom, co Apple předvedlo tento týden, to zatím vypadá tak, že tahle firma opravdu směřuje k tomu, aby se stala producentem spotřební elektroniky, a že na vývoj software v rozsahu, který by jeho platforma potřebovala, prostě nemá. Leopard byl nejprve odložen s trapnou výmluvou na realokaci vývojářů na port OS X na iPhone (všimli jste si, že skluz Longhornu, resp. Vista byla mnoha apple-holiky zesměšnován, zatímco u Leopardu je to naprosto vpořádku? Já vím, Leopard se zatím nezpozdil o 5 let, ale co není může být...), pak se ukázalo, že 300 nových funkcí bude asi spíš 300 drobných doladění, filesystém se měnit nebude, pokus o port prohlížeče na jinou platformu dopadl děsivě, z důvodů nedoladěnosti a strachu z exploitů (jak se domnívám na základě nějakých textů od lidí, kteří se telefony zabývají) nebude mít iPhone otevřené API, a vlastně to bude spíš iPod který umí náhodou telefonovat, než pravý smartphone. A tak dále a tak podobně.

Čili v oblasti operačních systémů a věcí okolo se Apple letos opravdu není třeba bát.

Dokonce si myslím, že teorie toho, jehož jméno se nevyslovuje ohledně přechodu Apple na OS od Microsoftu (vyšlo dnes, nelikuji záměrně) není tak nesmyslná jak by se mohlo zdát. Apple vždy byla především hardwarová společnost, a myslím, že stejně jako Apple otočilo ohledně procesorů Intel, může kdykoliv prohlásit, že Microsoft není nepřítel ale kamarád, a že je nesmysl vyvíjet OS X, když současná verze Windows už není tak hloupá jak byla, a že na hardware od Apple (a s patřičným apploidním tématem) se s ním dají dělat chytré věci a tak podobně.

No, uvidíme.


PS: Nemůžu si odpustit jedovatou slinu: jakto, že nikdo z těch nadřazených Apple uživatelů neobjevil v Safari všechny ty bezpečnostní chyby, které se našly (a byly ověřeny i v současné produkční verzi na OS X), když stupidním uživatelům Windows to nezabralo ani půl dne? Aha, už vím, Apple uživatel na počítači pracuje a nemá čas na pitominy. Navíc OS X je bezpečný, tak proč v něm hledat chyby, že? (Eh, ulevilo se mi :-))

Vítr změn (aneb Kde, sakra, vězí?)

Jistě, je to banální, ale koupil jsem si teď nedávno nový monitor. Po nějakém tom týdnu rozmýšlení jsem nakonec zvolil 20" širokoúhlý (s rozlišením 1680x1050, nebo tak něco). Je to velmi pěkná věc, také asi proto, že poměr 16:10 je nejblíže zlatému řezu ze všech. Ale co chci říct: přivedlo mě to k úvahám nad uživatelskými rozhraními, a jak nudná a stejná vlastně jsou.

Musím říct, že mě dost překvapuje, že po pětadvaceti letech vývoje používají operační systémy tu samou metaforu pro práci jako tehdy na začátku. Skoro všechny součásti hardwaru se za ty roky proměnily k nepoznání (ať už jde o výkon složitost, nebo kapacity), software, který uživatel nevidí, udělal obrovské pokroky (multitasking, správa paměti, různé tyhle síťové vrsty a frameworky obecně), objevilo se tolik různých aplikací, které jsou užitečné, a které tu předtím nebyly. Ale uživatelské rozhraní je pořád stejné: desktop, na který se dají házet ikony, které mají představovat soubory (ale také programy -- myslím, že tohle spoustu lidí dost mate, že ikona reprezentuje různé věci v různých situacích), okno, nějaké prvky na jeho zavření, přesunutí nebo změnu velikosti, nějaká ta lišta se seznamem spuštěných aplikací a to je všechno.

Říkám si: jasně, většina lidí asi tuhle abstrakci pochopí, ale když uvážíte, jak se osobní počítače změnily za dobu své existence, jsou všechny současné (mainstreamové, konzumentské) operační systémy dost trapné. Uvažte: jediné co všichni ti lidé, kteří pracují na rozšíření uživatelského rozhaní o 3D možnosti, dokázali zatím vymyslet je 3D přepínač aplikací a nějaké další trapné pokusy dodání třetího rozměru oknům, které jsou prostě z principu dvourozměrné, a další rozměr nemá smysl, dokud se zcela nezmění metafora, kterou operační systémy v uživatelském rozhraní používají. Tedy: samá pastva pro oči, žádná inovace. (Ach, ještě máme Ribbon, což je zajímavá věc, a je to od Microsoftu docela odvaha takhle zásadně změnit svou dojnou krávu -- Office. I když chápu, že koncentrace funkcí v Office už dosáhla hranice, kdy nebylo možné ho dále nutit lidem s tím, že obsahuje nové funkce, protože na ně stejně nikdo nepřišel. Ohledně UI MS Office je rozhodně zajímavé přečíst si blog Jensena Harrise An Office User Interface Blog.)

Samozřejmě, že změna metafory by nejspíše vyžadovala změnu ovládání, které by muselo nějak přirozeně reflektovat trojrozměrnost pracovní plochy, ale myslím si, že dneska není zase takový problém vyrobit pro jeden systém dvě rozhraní: jedno klasické 2D pro konzervativce a další opravdu 3D pro experimentátory a trhnout balík na prodeji předraženého ovladače.

Jedna věc, kterou jsem zapomněl napsat v textu o WPF byla, že WPF přímo vybízí k tomu, aby designeři designovali uživatelská rozhraní do problémové domény, a ne do operačního systému. Myslím tím to, že WPF umožňuje snadno implementovat takovou abstrakci, které odpovídá problému který řešíte, a ne aplikaci, která jen vypadá konzistentně s operačním systémem, ale jinak se používá špatně (samozřejmě ve WPF můžete UI přepínat podle potřeby).

To je rozhodně změna k lepšímu.

V jakémsi podcastu jsem slyšel (pokud si dobře vzpomínám), že všichni doktoři byli naprosto unešení z malého dema, které v Microsoftu sestavili aby předvedli možnosti WPF, a které imitovalo databázi pacientů. Prý lepší popsání problémů, které řeší zatím neviděli.

Rozumím tomu.

Uživatelská rozhraní často upadají do stereotypů, které vznikly před mnoha lety, kdy nebylo možné řešit rozhraní tak, jak je to přirozené, a tak se z různých důvodů se uživatelé přizpůsobovali aplikacím, místo aby to bylo naopak.

Dneska si myslím, že už takové ohýbání uživatelů není nutné. Tak doufám, že si toho někdo všimne...

pondělí, června 11, 2007

Ing. jIRI Ph.D.

Ach, ano. Minulý týden v pondělí jsem obhájil svou disertační práci a od toho data mohu beztrestně používat titulu Ph.D. za mým ctěným jménem. Samozřejmě toho hojně využívám, už jsem si změnil signatury u všech e-mailů, nové vizitky jsou v tisku a v práci mi asisteky, se kterými jsem si ještě před týdnem tykal, musí říkat "pane doktore".

Nebo tak nějak.

Ve skutečnosti největší změnou je ten obrovský pocit úlevy, na který mě připravoval jeden bývalý spolužák, a který se nedostavil po sdělení výsledků obhajoby, ale už v okamžiku, kdy jsem PowerPoint úspěšně dovedl k poslednímu snímku (jeden obrázek jsem v zápalu boje přeskočil, ale jelikož si toho nikdo nevšiml, uvažuji nad tím, kolik jich ještě bylo možno vynechat, aniž by tím prezentace utrpěla, nebo to nějak závažněji změnilo výsledek hlasování ctěných členů komise). Kupodivu při závěrečné sérii dotazů (z nichž některé byly docela záludné a nepříjemně k věci, a občas jsem opravdu odpovídal bezelstným "nevím", které mi bylo prominuto jen proto, že jsem už vypadl z denní rutiny akademického světa) jsem byl už klidný a usměvavý a spokojený, že všechno co jsem mohl ovlivnit, jsem udělal nejlépe jak to bylo v dané situaci možné.

A pak si mě znova zavolali a sdělili mi výsledek a potřásli jsme si se všemi rukou a každý se na mě usmíval, a pak asistenka vedoucího katedry přinesla tác s nějakou whisky, kterou jsem den předtím koupil v Tescu ve Vršovicích a jak jsem byl na lačno, abych se z toho tlaku nepozvracel, tak se mnou rozlilo takové teplo a klid a mír, a pak jsem se ještě chvíli toulal na katedře a nakonec skončil se školitelem a nějakými dalšími lidmi U pětníka, kde jsem toho čtvrt litru Tullamore Dew zalil pěti dvanáctkami, a nakonec jsem se vykolébal do metra a na tramvaj a pustil jsem si z přehrávače na plné pecky Power Ballads a taky kousky Bloodsport a Becoming X, takže když jsem dojel k BVerovým domů, kde jsem squatoval, abych se převléknul z kouzelnického do normálního oblečení, byl jsem už docela vláčný, pročež, když jsem pak jel do hospody, kde jsme to měli v úzkém přátelském kruhu oslavit, jsem vzal tramvaj opačným směrem, čehož jsem si všiml až na Zahradním městě, ale nevadilo mi to, protože jsem si celou tu dobu říkal: "Zatraceně, jIRI, tak jsi to dokázal!"

Dneska už mě ten fakt, že jsem postgraduální studium nakonec dokončil tak nefascinuje. Jak jsem od začátku věděl, ta výsledná změna je poměrně malá. Ale jako u každého velkého projektu, čímž dokončení a obhájení disertace určitě je, se člověk cítí tak nějak vnitřně spokojený a naplněný tou skutečností, že není takový idiot jak si o sobě občas myslí, a že když se vzepne a mákne si, tak že dokáže věci.

Obecně souhlasím s lidmi, kteří tvrdí, že Ph.D. je z 5% štestí, z 15% inteligence a z 80% vytrvalost. Opravdu není takový problém vymyslet téma, které je zajímavé a "pro vědu přínosné". Problém je v realizaci a smysluplném shrnutí celé věci. Právě na to člověk potřebuje to odhodlaní a vytrvalost, ale především souvislá kvanta času. A těch se mi zatraceně nedostávalo, a proto obdivuji moji manželku, že to se mnou vydržela, a dopřála mi všechny ty volné víkendy a dlouhá odpoledne, během kterých jsem to nakonec dokázal.

Jinak jsem se během práce na disertaci dopustil dvou nejhloupějších ukázkových chyb, jakých se člověk může dopustit. Zaprvé jsem upadl hned po obhajobě minima (tedy tezí disertační práce) do myšlenkové pasti, kdy mi někdo řekl, že něco nejde a já tomu nekriticky uvěřil. Trvalo mi pak pět let se od toho tvrzení osvobodit a zjednodušit věci několika předpoklady, které jsou docela dobře platné i mimo svět disertačních prací, a všechny věci nakonec zapadly do sebe.

Druhou chybou byla má snaha o zapojení vedoucího katedry do procesu odevzdání. On to má rád, ale musí na tyhle věci mít čas. Já jsem mu poslal ze 70% hotový text v okamžiku, kdy byl vytížen, on ho proletěl, učinil závěr, a toho se pak držel až do samého konce, kdy si u toho závěrečného rukotřasu neodpustil poznamenat, že práce potřebovala ještě měsíc.

Inu, má pravdu. Za měsíc se dá lecos stihnout. Ale další měsíc nedokáže vytvořit ten tlak, který můj mozek tak dobře stimuluje. Jde o to, že jsem se poctivě snažil práci dokončit celých těch pět let, co jsem pryč ze školy. Ale ono to prostě nešlo, protože jsem se nedokázal vykolejit ze slepé uličky, do které jsem upadl.

Ale tohle stejně nikoho nezajímá.

Takže abych učinil nějaký komický závěr: představuji si Aberta Einsteina, jak obhajuje obecnou teorii relativity na FEL ČVUT, a v polovině mu někdo řekne "pane kolego, časový limit na vaši prezentaci je dvacet minut..." (tedy já jsem se vešel poměrně přesně, ale někteří nešťastníci, kteří mluvili moc dlouho prý byli bez milosti utnuti a navedeni na poslední snímek). A druhá představa: Shakespeare prezentuje Romea a Julii v PowerPointu:

  • Romeo a Julie
    • on Montek
    • ona Kapuletová
    • nenávist
    • láska
    • Merkucio umírá
a tak dále a tak podobně. No uznejte, nebyla by to ohromná legrace?