První obětí války je jazyk

(Překlad anglického eseje Why Grammar is the First Casualty of War od Terryho Jonese.)

Co mě opravdu zneklidňuje na Bushově „válce s terorismem“ je jazyk. Jak se vede válka s abstraktním podstatným jménem? To je jako chtít vybombardovat vraždu. Představte si, že by Bush řekl: „Vybombardujeme vraždu, ať se ukrývá kdekoliv. Najdeme všechny vrahy a budoucí vrahy a vybombardujeme každou vládu, která vrahům dopřeje útočiště.“

A druhá věc, která mi na Bushově a Blairově „válce s terorismem“ vadí: Jak poznají, že vyhráli? U většiny válek stačí počkat, dokud druhá strana není mrtvá nebo se nevzdá. Jak se ale může vzdát terorismus? Abstraktní podstatná jména se vzdávají špatně. Ony vůbec z vlastní vůle dělají jen máloco; nehnou s nimi dokonce ani školení filologové. Jejich úkryt nevypátráte, zásobovací linky nepřerušíte. Hořká sémantická pravda zní, že proti takovým slovům vyhrát nemůžete – ledaže by se vám je snad podařilo vyhnat z Oxfordského slovníku angličtiny. To by je naučilo.

Připouštím, že druhá světová válka byla proti fašismu. Ale zrovna tohle abstraktní podstatné jméno se lstivě schovávalo za velice konkrétní nacistickou vládu. Když jsme chtěli vyhrát, stačilo porazit Německo. Válka prezidenta Bushe žádné takové řešení nepřipouští. Chtít „zničit terorismus“ je jako chtít zakázat, aby si z vás někdo dělal šašky.

A co víc, terorismu v jeho současné definici se nemůže dopustit konkrétní země. Když Amerika vybombardovala súdánskou továrnu na léky, protože měla dojem, že se v ní vyrábí chemické zbraně, byla to hloupost. Ale nebyl to terorismus, protože to vláda Spojených států udělala oficiálně. A omluvila se. To je zásadní: žádný terorista se špetkou sebeúcty se nikdy neomlouvá. Proto také pan prezident Bush nevěděl, koho má vybombardovat v rozhořčení nad pádem Světového obchodního centra. Kdyby to udělaly Bermudy, měl by to jednoduché, prostě by vybombardoval Bahamy. Muselo být k vzteku, že lidé, kteří zapříčinili takovou katastrofu, nebyli národ.

Teroristé navíc – na rozdíl od států – neposedí na místě, abyste je mohli vybombardovat. Mají protivný zvyk přesouvat se z místa na místo, občas dokonce do zahraničí. Celé je to velice neamerické (kromě výcviku).

A jako by to všechno nestačilo, nikdy nevíte, kdo jsou ti teroristé zač. Jaksi z principu se objeví až v okamžiku, kdy provedou svůj konkrétní akt terorismu. Do té doby je to třeba jen obyčejný Tim McVeighů odvedle nebo sympatický pan Atta, co se učí řídit letadlo.

Zapomeňme tedy na abstraktní podstatné jméno. Přejmenujme konflikt na „válku s teroristy“, to zní konkrétněji. Ale to jsme dostali ještě obskurnější sémantiku: co má pan prezident Bush na mysli pod označením „terorista“? Žádnou definici nám nedal, tak si budeme muset nějakou domyslet podle jeho činů. Soudě podle nich žijí všichni teroristé v „táborech“ v Afghánistánu. Tam nejspíš tráví večery s kusem žvance, kytarou a zpěvem u táborového ohně. Navíc se v těchto „táborech“ věnují „výcviku“ a hromadění zbraní, které my následně můžeme rozmetat našimi kazetovými bombami a raketami.

Nikdo zřejmě panu prezidentovi neřekl, že k celé té hrůze září 2011 stačilo z větší části jen asi půl krabice nožů na koberce. Předpokládám, že by Spojené státy mohly vybombardovat veškeré skladové zásoby kobercových nožů na celém světě, ale mám dojem, že teroristy bychom tím nevyhladili.

Kromě toho jsem myslel, že teroristé, kteří narazili letadly do Světového obchodního centra, žili na Floridě a v New Jersey. Myslel jsem, že síť Al-Káida funguje v 64 státech po celém světě, včetně Ameriky a mnoha evropských států – jejichž vybombardování by si zřejmě odpustil i pan prezident Bush. Ale ne: pan prezident, kongres, Tony Blair a skoro celá dolní sněmovna jsou přesvědčeni, že teroristé žijí v Afghánistánu.

A co přesně se myslí větou „nesmíme se teroristům vzdát“? Vzdali jsme se v okamžiku, kdy na Afghánistán dopadla první bomba. Strůjci 11. září si v tom okamžiku dozajista museli odšpuntovat své nealkoholické šampaňské. Úspěšně vyprovokovali Ameriku k útoku na další chudou zemi, o které doposud příliš nevěděla. K útoku, který vzbudil vlnu odporu v celém arabském světě a zajistil další podporu islámských fundamentalistů.

Slova ztratila na hodnotě, některá z nich změnila význam, a filologům zbývají jen oči pro pláč. První obětí války je jazyk.

Tilak Odin Ventile po roce

Už je to víc než rok, co jsem koupil bundu Tilak Odin z materiálu Ventile. První a podrobnější postřehy už jsem psal, zbývá zhodnotit zkušenosti z podzimu, zimy a delšího nošení.

K podzimu se Odin hodí stejně jako k jaru, tedy výborně. V chladnějších teplotách ho můžete mít na sobě neustále – díky dobré prodyšnosti materiálu a větrání přes boční zipy se dá překlenout i docela velké rozpětí aktivit a teplot, aniž byste ho museli neustále stěhovat do batohu a zase zpátky. Menší podzimní deštíky zvládá hravě. Větší déšť, jak už jsem psal v první části, bych v něm snášel nerad. Vítr nedělá problémy, materiál téměř neprofoukne a díky dobrému střihu se můžete do bundy stáhnout jako do nory. Velmi příjemný je v tomhle ohledu zvlášť vysoký „rolák“ neboli želví krk.

Fotka z Českosaského Švýcarska

Ze stejných důvodů se bunda osvědčila i v zimě. (Což ovšem nemění nic na tom, že je praktičtější a pohodlnější sáhnout po opravdické zimní bundě s tepelnou izolací.) Se sněhem si Ventile poradil dobře, sněžení a válení ve sněhu mu nijak nevadí a když už navlhne, rychle vysychá. Co by mohl být problém je opakované tání a zamrzání: kdyby materiál nabral hodně vody a následně zmrzl (třeba při spaní venku), bál bych se, že by se mohl mechanicky poškodit, prostě zlomit. Na zimní spaní venku jsem už ale měl syntetickou zimní bundu, takže jsem nezkoušel.

Nepříjemně mě překvapila odolnost materiálu proti opakovanému mechanickému namáhání, v místech skladů a ohybů se za rok provozu vyklubalo několik dírek:

Dírka ve skladu rukávu

Podobně dopadlo i zakončení rukávů:

Ošoupané zakončení rukávů

U tak drahého materiálu oslavovaného pro mechanickou odolnost je to škoda. Na druhou stranu je to pochopitelné, přírodní vlákna zvládají opakované namáhání na jednom místě špatně. (Zvláštní je, že pod batohem nebo na spodním lemu zůstala bunda nedotčená.) Jinak jsem s odolností Ventilu spokojený – s občasným otřením o skálu, trní nebo větvičky si netřeba dělat hlavu. Podobně se s bundou nebojím k ohni, i když větší uhlíky bych samozřejmě chytal nerad.

Pral jsem za rok jednou, v tekutém pracím prostředku bez enzymů, bunda vypadá spokojeně a uschla za pár hodin, kupodivu dřív než syntetický Tilak Ketil.

Když to shrnu, Ventile není tak dokonalý materiál, jak by se z marketingových řečí mohlo zdát (překvapení!), ale přesto patří Odin k mým nejoblíbenějším kusům oblečení a kdyby na to přišlo, rád bych ho koupil znovu.

Writing Better Objective-C: Warnings, Analyzer and Namespaces

Three quick tips to improve your Objective-C code.

First, make sure your code compiles without warnings. The compiler should be your friend. If it doesn’t like something, it usually has a point and the code in question is awkward or downright wrong. Some warnings are harmless, but you can’t leave them in the code anyway, since they would make it harder to notice the important ones. Also, when you later pass the code to somebody else or return to it a month later, would you know which warnings were OK? If there’s no reasonable way to rewrite the code without triggering a warning, use a compiler pragma to silence it. And finally, there’s a compiler switch for turning all warnings into errors. Consider using it, keeps you honest. (Some languages like Go even went as far as to treat all warnings as hard errors by design.)

The same reasoning applies to the static code analyzer (Product → Analyze in Xcode). You even have the option to run the analyzer as a part of the build, which might be a good idea, at least for some build configurations.

Both previous tips should be a natural thing for any professional programmer. The third one is not a hard requirement, but a reasonable idea anyway – it’s about prefixing your symbol names with a personal name prefix. The problem is that Objective-C lacks namespaces, a tool to distinguish between two symbols with the same name coming from two different packages. If you have two different Vector classes, in Perl you could have Some::Package::Vector and Other::Vector, in Java you have the URL prefix to tell them apart. In Objective-C you just have a class name conflict. That’s why most symbols have the strange prefixes in their names, such as NS in NSArray or UI in UIView. It’s poor man’s namespaces.

It’s a good idea to join the game and pick a reasonable symbol prefix, too. It makes the (small) chance of a name conflict smaller and the code more consistent. Also, you get a slight bonus in the auto-completion, since typing your class prefix quickly narrows down the suggest options.

S trávou to není v pohodě

Marek Vácha napsal článek o legalizaci konopí, se kterým stojí za to nesouhlasit. Konopí a halucinogeny obecně mají velký potenciál, kladný i záporný. Já v žádném případě nechci tvrdit, že dlouhodobé časté kouření trávy ničemu nevadí – naopak, taky znám několik případů, které ukazují opak.

Je ovšem otázka, jestli je marihuana pro celou společnost skutečně tak nebezpečná, abychom ji museli kriminalizovat. Protože když zákonem zakazujeme něco, co zároveň zcela běžně děláme, vytváříme nebezpečný precedent: devalvujeme vážnost zákona. Za současné situace bychom buď měli poslat velké procento mladých lidí do vězení, nebo máme zákony, které není potřeba dodržovat. Obojí je špatně.

Ne všechno špatné by mělo být nelegální. A kriminalizace není jediný způsob, kterým se společnost může bránit proti nežádoucímu chování.

Code Reviews for iOS and Objective-C

Code quality matters to me. When I started programming professionally I quickly realized that better code generally means lower stress levels and higher productivity, which was a huge incentive to improve. There are three tools that I find invaluable in this regard: acknowledging my own limits, testing, and code reviews.

Accepting your own limits is important in order to stop writing heroic code. Apart from a few really twisted minds, the high-profile programmers we admire are not superhumans empowered with magic brain power. More often they “just” know how to keep even the complex things reasonably simple to work with. Today, whenever my design starts to feel like a too great struggle uphill, I know it’s almost certainly wrong. And that’s a good thing.

Testing took a great burden off my chest – each time we were about to ship an update to our calculator app used by hundreds of thousands users, it was a great relief to run the test suite covering dozens of intricate corner cases and be reasonably sure that I didn’t break anything by adding the new features or fixing bugs. And not only that: the need to test modules in isolation forced me to decouple my designs. And that’s a good thing.

But at the end of the day there are simply too many degrees of freedom when designing code architecture, too many blind alleys. There are too many subtle errors that won’t be prevented neither by good design, the compiler, the automated test suite, nor user testing. And this is where code reviews shine – for nothing will help your code more than a careful, critical reading by a second pair of eyes. Being the only programmer in our team, this was a luxury I had to do without. And that’s a sad thing.

Which is why I am now offering Objective-C and iOS code reviews as a paid service.

I am not a wizard programmer that will make your code dance and your cat sing, but I am competent in what I do. I know the language, including the C bits that you wouldn’t bring up as a conversation topic during the Sunday lunch. I have reported bugs in the SDK. I was writing code for the platform when iOS was still called the “iPhone OS”, and our team has shipped our first iPad app before the iPad started selling to the public. I have written libraries used by dozens of iOS apps. I’m in the top 10% of Stack Overflow in C, Objective-C, iOS, multithreading, or Xcode.

Show me your code and I’ll make it better.

Lezení v Boskovicích: Průzkum

Jak už jsem psal v předchozím příspěvku, rádi bychom v Boskovicích měli lezeckou stěnu. Celá situace je v plenkách, chystáme podklady pro diskuzi. V rámci toho jsem udělal krátký dotazník, abychom měli představu, jakým způsobem by se stěna využívala. Jelikož už přestaly přibývat nové odpovědi, nabízím shrnutí.

Read More

Alan Watts: The Way of Zen, výpisky

Podle zažitých konvencí nejsem jen tím, co právě dělám. Jsem i tím, co už jsem udělal, a tato konvenčně sestříhaná verze mé minulosti by snad dokonce měla být víc „já“ než to, co dělám v tuhle chvíli. Protože to, čím právě jsem, je tak prchavé a nedefinovatelné, zatímco to, čím jsem byl, je neměnné a konečné. A je to také pevným základem pro předpovídání věcí budoucích, takže se nakonec více ztotožňuji nikoliv s tím, co je, ale s tím, co už není!

Read More

Koho a proč nebudu volit za prezidenta

Řada lidí považuje prezidenta za státního maskota: neškodného maňáska, který volně obráží zahraniční rauty, klade věnce a pronáší novoroční projevy. Ve skutečnosti má šikovný prezident řadu možností, jak formálně i neformálně posouvat veřejné dění. (Jmenuje například premiéra nebo ústavní soudce, může vyhlásit amnestii, může trvalým odmítáním zákonů destabilizovat vládu.) Jako významná veřejná osoba má také snadný přístup do médií, takže má výbornou možnost vybírat a tvarovat témata pro veřejnou diskuzi. Jinými slovy, na volbě prezidenta záleží.

Read More

Schladminger Tauern

V létě jsem byl poprvé v Alpách, byl jsem z nich nadšený. Vybral jsem si Nízké Taury, konkrétně takzvané Schladmingské Taury ležící jižně od města Schladming. Doprava je bezproblémová, v horách není přelidněno, je tam dostatek vody a dá se udělat pěkná okružní trasa s cílem zpátky ve Schladmingu. Většinu času máte na sever krásný výhled na Dachstein:

image

Read More

Krátký příspěvek k rohlíčkovému problému

Přírodním vědám se začasté vyčítá přílišná odtažitost od skutečného světa; obraz roztržitého matematika patří k pevně zavedeným kulturním stereotypům. A přesto se matematika umí trefně vyjádřit k palčivým problémům našich každodenních životů, o čemž svědčí i následující graf:

image

Read More