<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Harvie píše blog</title>
	<atom:link href="http://blog.harvie.cz/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.harvie.cz</link>
	<description>Seriózně nejen o seriózních tématech...</description>
	<lastBuildDate>Fri, 19 Feb 2010 15:39:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Copyright není samozřejmost &#8211; odměňovat umělce ano!</title>
		<link>http://blog.harvie.cz/2010/02/podivnosti/copyright-neni-samozrejmost-odmenovat-umelce-ano/</link>
		<comments>http://blog.harvie.cz/2010/02/podivnosti/copyright-neni-samozrejmost-odmenovat-umelce-ano/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 01:44:54 +0000</pubDate>
		<dc:creator>Harvie</dc:creator>
				<category><![CDATA[burokracie]]></category>
		<category><![CDATA[cyberpunk & nostalgie]]></category>
		<category><![CDATA[podivnosti]]></category>

		<guid isPermaLink="false">http://blog.harvie.cz/?p=610</guid>
		<description><![CDATA[
Intelektuální vlastnictví vs. Intelektuální dědictví
Copyright (autorské právo) má svou oporu v teorii, že vše co člověk vymyslí/vytvoří má původ v jeho vlastní mysli (v jeho mozku). Každý, kdo ví alespoň úplné minimum o fungování mozku také ví, že by tento mozek byl bez vlivů okolního prostředí jen hroudou neuronů &#8211; mrtvým kusem masa. A já [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://upload.wikimedia.org/wikipedia/commons/b/bf/Copyright_%28Simple_English%29_Wikibook_header.png" style="float:left; height: 120px;" /></p>
<h2>Intelektuální vlastnictví vs. Intelektuální dědictví</h2>
<p>Copyright (autorské právo) má svou oporu v teorii, že vše co člověk vymyslí/vytvoří má původ v jeho vlastní mysli (v jeho mozku). Každý, kdo ví alespoň úplné minimum o fungování mozku také ví, že by tento mozek byl bez vlivů okolního prostředí jen hroudou neuronů &#8211; mrtvým kusem masa. A já musím tedy tvrdit, že všechno, co kdy který člověk vyprodukuje (včetně tohoto článku) je jen kombinace předešlých vjemů. Ve skutečnosti není lidské tvoření o nic záhadnější, než například lidské trávení (i když výsledný produkt nám často připadá mnohem zajímavější nebo krásnější).<br />
<br style="clear:left;"/><br />
<span id="more-610"></span></p>
<p>Pokud vám nepřipadá můj názor jako dostatečně věrohodný a fundovaný, třeba vám za větší autoritu poslouží parapsycholožka a odbornice přes výzkum vědomí a memetiky Susan Blackmore z oxfordské univerzity například se svojí knihou &#8220;Teorie memů&#8221;. Dalším známým jménem ve vědeckých kruzích je Richard Dawkins, který má k tématu taktéž co dodat. Pokud jste si již přečetli doporučovanou literaturu (nebo jste byli tak naivní a uvěřili mi) a přijali tedy fakt, že z mozku nikdy &#8220;nevypadne&#8221; nic, co by nebylo jen zvláštní kombinací toho, co jsme do něj předtím &#8220;vložili&#8221; a že tedy <b>každé dílo je dílo odvozené</b>, můžeme postoupit k dalším bodům.</p>
<p>Ale to stále není fakt, na kterém bych chtěl svoji teorii stavět. Dalo by se totiž například namítat, že to odvozené dílo bylo odvozeno unikátním způsobem specifickým pro daného autora. To se dá opět popřít podle stejné teorie &#8211; autorovo ego je tvořeno jen jeho vlastními vzpomínkami na prožitky z vnějšího světa. V tom případě nám ale zase vyvstává otázka, jestli právě tyto vzpomínky nejsou tím, co tvoří autora unikátním. Musím přiznat, že jsou. A nejsou to jen vzpomínky &#8211; řadím tam i způsob, kterým se přeorganizoval mozek tohoto autora v reakci na tyto vjemy a prožitky (dále budu ale souhrnně říkat jen &#8220;vzpomínky&#8221;).</p>
<p>Problém je v tom, že ten známý hudebník nebo režisér, který na některých jednotlivcích chce vysoudit peníze za porušení autorských práv (a kterému to zákony umožňují) v sobě nese (a tudíž i vkládá do díla) jiná díla, která podléhají autorským právům jiných autorů. Podle této logiky by tedy tento autor měl odvádět z každého díla tantiémy například učitelce, která ho naučila jazyk ve kterém je dílo napsáno/namluveno a zároveň by on i učitelka měli kaskádovitě platit poplatky všem, kteří se na tvorbě pravidel tohoto jazyka podíleli. Jazyk je ale kromě sbírky pravidel od konkrétních autorů také sbírkou spojení a novotvarů, které vznikají mezi lidmi víceméně anonymně, všichni, kdo tento jazyk používají by tedy měli všem odvádět poplatky, což by se vzájemně anulovalo až do chvíle, kdy by autor chtěl na svém díle vydělávat. V takovém případě by měl odvést poplatky všem lidem, kteří daným jazykem mluví. Zní to jako DEMAGOGIE? Není to o nic více demagogické a abstraktní, než současný autorský zákon.</p>
<h2>Copyright není slučitelný s moderními technologiemi</h2>
<p>Pokud někdo vystaví autorský obsah na svých webových stránkách a poté se snaží právně vymáhat škodu způsobenou tím, že si někdo tento obsah stáhne a případně ho dál šíří, tak je možná v právu podle zákona, ale z technického ani morálního pohledu ne.</p>
<p>Samotný fakt, že si někdo prohlíží webovou stránku, nebo obsah na ní umístěný ze své podstaty většinou znamená stažení tohoto obsahu, uložení obsahu na disk a následné prohlížení z disku. Prakticky všechny webové prohlížeče tedy prohlížený obsah ukládají na disk a je tedy irelevantní obviňovat někoho za to, že si obsah uloží záměrně sám. Také s šířením takto získaného obsahu je spojen jistý problém. Ve skutečnosti si totiž tento obsah nejdřív stáhne poskytovatel internetového připojení (ISP) a až následně ho &#8220;šíří&#8221; ke svým klientům. V některých případech ISP dokonce obsah ukládá na svých discích, aby urychlil jeho stažení, až ho uživatel bude chtít stáhnout (prohlížet) znovu.</p>
<p>Tedy v případě, že by si někdo například stáhnul na disk &#8220;copyrightovanou&#8221; stránku a následně ji na CDčku přinesl kamarádovi, zaslal mailem, nebo ji dokonce vystavil na svém webu (ve všech případech je podle mého názoru více než slušné tuto kopii šířit s odkazem na původní zdroj), nedopouští se ničeho neobvyklého, co by milióny uživatelů internetu nedělali denně. Jediným paradoxním momentem může být případ, kdy autor původního textu bude mít zájem text z internetu odstranit, pak je asi nejvhodnější využít zašifrovaný dokument ochráněný pomocí nějakého DRM mechanismu, nebo schopností automatické aktualizace (například formáty PDF a ODF). Takový autor může mít ale stejně smůlu, protože hodný strýček google cachuje a zpřístupňuje veškerý obsah webu (což se často hodí, pokud hledáme nějakou smazanou nebo neexistující stránku).</p>
<h2>Copyleft? Nelegální!</h2>
<p>Dalším problémem české legislativy je copyleft. Copyleft je opak copyrightu &#8211; tedy případ, kdy se autor rozhodne vzdát se všech svých autorských práv (ve prospěch ostatního obyvatelstva vesmíru). V takovém případě má český autor totiž smůlu a prakticky nemá cestu, jak zaručit předem neznámé množině lidí bezúhonnost v případě, že by chtěli jeho dílo nějakým způsobem využít. Dle české legislativy totiž momentálně není možné uzavírat licenční smlouvu bez vědomí obou stran (tj. např. ve smyslu &#8220;porušením této pečeti stvrzujete smluvní podmínky&#8221;). Smlouvu je (pokud vím) možné uzavřít pouze verbálně, nebo podpisem.</p>
<p>Tento problém se do jisté míry snaží řešit port (a překlad) sady licencí <a href="http://www.creativecommons.cz/">creative commons</a> na český právní systém.</p>
<h2>OSA, RIAA, BSA a podobní</h2>
<p>Existují také organizace, které se dají nazvat jako &#8220;kolektivní vymahači autorských práv&#8221;, v Čechách nás zajímá především Ochranný svaz autorský (OSA), Recording Industry Association of America (RIAA) a Business Software Alliance (BSA). V zásadě jde o skupinu lidí kteří, ačkoli sami většinou žádné umění neprodukují, cítí, že by měli dostávat poplatky spojené s autorskými právy různých producentů, interpretů a podobně. Tyto poplatky poté více či méně přerozdělují mezi konkrétní autory. Nemusím ale už samozřejmě říkat, že si jisté ne-nezajímavé procento z těchto finančních prostředků ponechávají na svůj &#8220;provoz&#8221;.</p>
<p>Celá věc má několik háčků. Například, že OSA, ačkoli nejde o státní institut, má svoji oporu přímo v zákoně. Poplatky této organizaci tedy musí odvádět například každý provozovatel restaurace s živou hudbou. Spolu s poplatkem také zašle seznam skladeb, které byly veřejně předváděny (pokud vím, tak to neplatí v případě, že interpret i autor skladby jsou jedna osoba, ale nebyl bych si tím úplně jistý&#8230; ).</p>
<h2>Nezapomínejte ale podporovat umění!</h2>
<p>Přesto všechno má copyright jistý smysl. Copyright podporuje umění a tvorbu. Problémem je ale, pokud se na vztahu autora/umělce a konzumenta chce přiživovat některá třetí strana. Mnoho umělců si na tenhle systém stěžuje, protože přichází o zisky. Mnohem lepší je chodit na konzerty, nebo přímo podporovat nezávislé umělce nějakou jinou formou.</p>
<h2>Další odkazy a zdroje:</h2>
<p><a href="http://creativecommons.org/">http://creativecommons.org/</a><br />
<a href="http://www.creativecommons.cz/">http://www.creativecommons.cz/</a><br />
<a href="http://cypherpunk.cz/?p=236">http://cypherpunk.cz/?p=236 (Creative Commons Conference – ihrisko.org)</a><br />
<a href="http://petrkrcmar.blog.root.cz/2010/02/18/nejmensi-autorske-dilo-tri-slova/">http://petrkrcmar.blog.root.cz/2010/02/18/nejmensi-autorske-dilo-tri-slova/</a> (aneb jak se dá soudit o 3 slova z textu písně &#8211; dokonce nejsou ani v původním pořadí)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.harvie.cz/2010/02/podivnosti/copyright-neni-samozrejmost-odmenovat-umelce-ano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>České školství &#8211; Metodika výuky a IT</title>
		<link>http://blog.harvie.cz/2010/02/podivnosti/ceske-skolstvi-metodika-vyuky-a-it/</link>
		<comments>http://blog.harvie.cz/2010/02/podivnosti/ceske-skolstvi-metodika-vyuky-a-it/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 01:55:27 +0000</pubDate>
		<dc:creator>Harvie</dc:creator>
				<category><![CDATA[burokracie]]></category>
		<category><![CDATA[podivnosti]]></category>
		<category><![CDATA[politika]]></category>

		<guid isPermaLink="false">http://blog.harvie.cz/?p=305</guid>
		<description><![CDATA[
Napsat tento článek jsem měl v plánu už delší dobu, ale nebyl jsem si jistý s jakým by se mohl setkat ohlasem ze strany školy a zvláště pak jednotlivých vyučujících, ale v důsledku událostí, které nastaly koncem mého třetího ročníku docházky do střední školy jsem se rozhodl vytvořit jeho co nejpřijetelnější verzi už nyní. (Ale [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://upload.wikimedia.org/wikipedia/commons/c/ce/Johan_amos_comenius_1592-1671.jpg" style="height: 120px; float:left;" /><br />
Napsat tento článek jsem měl v plánu už delší dobu, ale nebyl jsem si jistý s jakým by se mohl setkat ohlasem ze strany školy a zvláště pak jednotlivých vyučujících, ale v důsledku událostí, které nastaly koncem mého třetího ročníku docházky do střední školy jsem se rozhodl vytvořit jeho co nejpřijetelnější verzi už nyní. (Ale k jeho zveřejnění bez dalších úprav a korektur jsem se nakonec dostal až nyní o dva roky později &#8211; čistě z časových důvodů)<br />
<br style="clear:left;" /><br />
<span id="more-305"></span><br />
<b>Důležitou věcí je, že si nepřeji, aby byl tento článek jakkoliv šířen mezi osoby, které si ho samy nevyžádají &#8211; tj. především školní weby, časopisy apod. Pokud nesouhlasíte, nemusíte si ho číst. Taktéž bych rád stanovil, že se problémy zde uvedené netýkají partikulárně některé konkrétní školy, ale jsou prostě jen výcucem z postřehů a historek, které jsem za posledních pár let zachytil z éteru a podnětem pro zamyšlení, pevně doufám, že následující řádky pomohou alespoň některým ústavům lehce poopravit směr, kterým se ubírají. Přece jenom IT je velmi specifický obor a nelze na něj aplikovat všechny učebnicové metodiky výuky v nezměněné formě. Já sám jsem si dva roky takovou výuku zkoušel, ale přesto tento článek jsem kdysi psal spíše jako student.</b></p>
<p>Na naší škole se vyučuje relativně nový obor &#8220;informační technologie&#8221;, jehož jsem v současné době studentem. Pokud je někdo laik, tak si asi bude myslet, že z názvu oboru vyplívá tak akorát, že náš student (můj spolužák) toho bude vědět o textovém editoru 2x více než průměrná sekretářka a bohužel tak někdy i vypadá výuka, to je podle mého názoru ale opravdu nehezká chyba.</p>
<p>Nyní uvedu několik konkrétních demonstrativních případů, předem ale upozorňuji, že nechci obviňovat vedení ani vyučující, protože jsem v životě nečetl osnovy pro dané předměty. Chci se zabývat tím, jak věc působí v důsledku &#8211; nikoli příčinou tohoto defektu v návrhu výuky.</p>
<h2>Obsluha konkrétních aplikací</h2>
<p>Do tohoto problému bych zařadil snad všechny předměty, kde se učí práce s nějakým programem jako například grafický editor, grafické systémy a pod. I když byly i vyjímky &#8211; například výuka práce s digitálními multimédii probíhala podle mého názoru velmi rozumným způsobem. U některých předmětů se ale bohužel postupuje úplně jinak. Já osobně kategoricky zavrhuji přístup naučit se vše nazpaměť. Vysloveně nejhorší variantou je případ kdy si studenti všechny postupy zapisují (nebo dokonce kreslí) do sešitu. Naopak správným přístupem je snažit se pochopit, jak myslel programátor, který program navrhoval a hlavně se také naučit číst text na obrazovce a přemýšlet o tom &#8220;co vlastně dělám?&#8221;.</p>
<h2>Používání proprietárního software</h2>
<p>Velké monopolní korporace chrlící placený software si vždy najdou způsob, jak se protlačit do státního sektoru. Kromě úplatků na vysokých místech se snaží zalíbit se i na těch nižších. Více než finanční podporou toho zvláště na školách dosahují rozdáváním licenčních smluv umožňujících používání jejich software zdarma, nebo alespoň levněji. Vedení školy má většinou jiné starosti a je logické, že se o tuto problematiku buď nestará vůbec a nebo poslechne profesory. Tito profesoři mají každopádně často omezený úhel pohledu na věc, možná že už roky stojí mimo dění v oboru a oslněni leskem lákavé nabídky od té či oné společnosti přehlížejí, že jinde se dá pořídit kvalitnější produkt ještě výhodněji a často s velmi svobodnou licencí. <i>(Pozn.: nejsem vpravo ani vlevo, jsem spíše nestranný, ale pokud bych si musel vybrat, budu o jeden mikrometr uhýbat doleva, ale ani s jednou z těchto politických filosofií nesympatizuji, protože nemám rád podobná škatulkování, předpřipravené názory a vzory myšlení).</i></p>
<p>Mezi takové programy osobně řadím vše s licencemi GNU/GPL, BSD a dále různý opensource a freeware. Když pominu desítky výhod, které mají tyto programy po technické stránce (na to tu není místo, ale na příklad uvedu, že pokud dá autor programu k dispozici zdrojové kódy své aplikace, tak tím umožní každém zkompilovat si program tak, aby co nejlépe využíval jeho hardware i stávající software. Také se tím umožní rychleji opravovat chyby a přidávat do softwaru nové vlastnosti. Bohužel samotným aktem otevření zdrojových kódů autor technicky přijde o možnost účinně kontrolovat šíření programu a proto takové výhody u placeného software nelze získat. Již teď existují aplikace, které nefungují například na operačním systému Microsoft Windows z toho důvodu, že ke své činnosti potřebují mít zdrojové kódy k dispozici). Placené programy také většinou mají větší nároky na hardware, protože je známé, že na vývoji software se dá často ušetřit v případě, že je to vyváženo výkonnějším strojovým parkem koncového zákazníka.</p>
<p>Největší nevýhodou proprietárního software je ale to, že jeho existence, vývoj a budoucnost závisí čistě na marketingových rozmarech a likviditě společnosti, jež software vlastní. Nyní to vysvětlím na příkladu z letošního školního roku.</p>
<p>Na naší škole je vyučována práce s kancelářským balíkem Microsoft Office. V okamžiku, kdy vyšla verze 2007 se prakticky zmněnilo celé uživatelské rozhraní aplikace, studenti byli zmateni a podobně. Samozřejmně to není pro studenty problém a je to čistě věc zvyku. Chtěl jsem ale na tomto příkladu demonstrovat, jako si naší školou může nadnérodní gigant manipulovat jak se mu zlíbí. Nemluvě o tom, že kvůli nové verzi byly zakoupeny nové počítače. Zde tento problém ovšem nekončí. Žádná společnost tu nebude věčně (a i když to tak letos možná nevypadá, tak i Microsoftu jednou dojde dech), stejně jako žádný proprietární software nebude do nekonečna opravován a podporován a může se lehce stát, že uživatelé takového software budou uzavřeni ve slepé uličce. Jeden člen marketingového oddělení tak může (v kombinaci se stylem výuky na naší škole, kdy je student fixován na konkrétní postupy naučené na zpaměť a na konkrétní komerční software) znehodnotit všechny znalosti získané studentem v průběhu výuky.</p>
<p>U freesoftwaru vyvájeného a spravovaného komunitou dobrovolníků a případně ještě nějakou další organizací je tato situace neuskutečnitelná od chvíle, kdy původní autor deklaruje svůj software jako &#8220;veřejné vlastnictví&#8221; a každý ho může pomáhat vyvíjet, ale nikdo ho nemůže poškodit. Pro více praktických informací doporučuji přečíst krátkou publikaci <i>Katedrála a tržiště (Eric Raymond)</i>, která oba přístupy k vývoji softwaru srovnává.</p>
<p>Na druhou stranu se můžeme podívat na stávající a osvědčené nasazení freesoftwaru na škole. Školní server je kompletně postaven na freesoftwaru, až na místy nefungující pro školu specifické nastavení a aplikace. V některých učebnách je instalován GNU/Linux a na většině počítačů je prohlížeč wobový Firefox, který značně napomáhá bránit infikaci školních počítačů malwarem.</p>
<h2>Hardwarové vybavení</h2>
<p>Informace, které typicky student dostane o hardwarové podstatě počítače se dají většinou popsat jako katalog obchodu s hardwarem a nelze se divit otázkám na konkrétní trendy. Nemám osobně nic proti tomu držet čas s dobu, ale věcí, kterou nemohu nezdůraznit!!! je to, že většina &#8220;pokroku&#8221;, který v posledních letech proběhl v tomto oboru není nic než prachsprostá machinace manažerů marketingu hardwarových gigantů. Bohužel pak vznikají studenti, kteří si myslí, že jsou ulra-počítačovými-specialisty, protože vědí která je nejdražší grafická od nVidie. Pokud se takového člověka potom zeptáte jestli má představu jak taková grafická karta funguje, tak nejen že to nebude vědět, ale dokonce si bude myslet, že funguje úplně jinak než deset let stará karta (protože je více barevná a má větší chladič).</p>
<h2>Telefonní seznam</h2>
<p>Tento příklad jsem vymyslel jako univerzální vysvětlení jednoho z problémů v takovém podání, že by ho měl pochopit i laik. Ve škole se často učí obsah telefonního seznamu, který stejně brzy zastará místo toho, aby se studentům ukázalo jak si seznam opatřit a jak v něm hledat. Taky by student místo informací, které po prvním testu zapomene, získal nadčasovou vědomost v podobě porozumění, která by mu přinesla obohacení a pomoc i v budoucnosti a v některých případech by ji mohl aplikovat i na praxi.</p>
<h2>Programování</h2>
<p>Já osobně se netajím tím, že jsem odpůrcem Visual Basicu a nyní nastíním proč si myslím, že je od základu špatný pro výuku programování. Visual Basic není jen programovacím jazykem, ale také vývojovým prostředím, které má programátorům umožnit snažší návrh grafické podoby aplikací. Na tom by ještě nebylo nic špatného. Dokonce ani nemůžu brát jako argument, že BASIC používá specifickou syntaxi, která je o pár let starší než tak, kterou používá třeba C, JAVA, PHP a pod. to je každopádně jen otázka zvyku a návrhu kompilátoru (který už roli hrát může, ale rozhodně ne z pedagogického hlediska). Problém Visual Basicu je, že svádí vyučující k tomu zadávat studentům &#8220;klikací&#8221; úlohy, kde student desítky minut provádí návrh GUI (což je činnost ne nepodobná kreslení čtverečků v kreslícím programu pro děti) a pak napíše deset řádek kódu, o kterém v lepším případě tuší proč je takový a ne jiný. To všechno za porušování nejzákladnějších programátorských návyků. Z tohoto &#8220;programování&#8221; si pak student odnese minimum použitelných znalostí. Poměrně vtipný zážitek mám z rozdílových zkoušek z programování, na které jsem se dokonala připravil prohlédnutím několika málo ilustračních obrázků z učebnice &#8211; o tom by asi programování být nemělo. Jako řešení bych doporučoval nasadit jiný jazyk, nejvíce se nabízí asi PHP, které je zvláště na naší škole oblíbeno jak mezi studenty, tak mezi profesory. Bohužel i ve výuce tohoto jazyka jsem shledal drobná úskalí, ale rozhodně bych to viděl jako krok správným směrem.</p>
<h2>Musíš to udělat</h2>
<p>Docela mě udivuje, že počty opravných zkoušek z programování jsou často větší než například z matematiky. Myslím, že programování je předmět, ve kterém by se dalo studentům vyjít vstříc (i inviduálně) tak, aby je výuka bavila. Já osobně letos žádné programování na rozvrhu neměl, ale musím říct, že jsem neslyšel jediný pozitivní ohlas na tento předmět. Protože je pro mne osobně programování jednoduché vzhledem k tomu, jak dlouho se jím zabývám, chápu, že mnoho studentů může mít k němu naprosto opačný vztah. Také mám pocit, že se v Čechách výuka řídí mottem &#8220;Chceš-li něco depopularizovat, vyučuj to ve škole.&#8221;. Chápu, že ze školy nelze udělat nezávaznou zábavu, ale přesto se může řešení najít i jinde než v sankcích za to, že někdo nemá na konkrétní předmět talent.</p>
<h2>Hygiena v IT?</h2>
<p>Nyní dovolte, abych trochu polevil na vážnosti&#8230; ;o)<br />
Na počítače v učebnách (především jde o klávesnici a myš) sahá denně minimálně 5 lidí (pravděpodobně více). Nepočítám, kolikrát sem viděl někoho, kdo po použití WC nepoužil umyvadlo a že většina našich studentů jezdí do školy hromadnou dopravou, ale protože jsou slušně vychovaní, tak jim nezbývá nic jiného než stát a držet se (jako stovky lidí před nimi) upocenou rukou za tyče a madla v tomto dopravním prostředku. Tím se dostáváme k zajímavému počtu lidí, u kterých je pravděpodobnost, že se na školní počítače dostanou bakterie, viry, kvasinky a další havěť z jejich rukou. Ani proti tomuto druhu virů škole nepomůže antivirus AVG, který je na škole momentálně instalován na většině počítačů&#8230; A mikroskopické zárodky se tak mohou s radostí množit v tlusté černé vrstvě, kterou jsou školní počítače (zvláště ve vytíženějších třídách) pokryty. Jako řešení se nabízí jednoduchá věc, a sice vybavit učebny kromě špičkových technologií inženýrů z Redmondu také zastaralým hadrem a rozprašovačem, kam by správce z učebny jednou za čas namíchal vodu s vhodným saponátem, aby si první hodinu v pondělí mohl nedobrovolně každý student svůj stroj vyčistit. Stejně tak by si čistící prostředky mohl vypůjčit každý, kdo by o to měl zájem. Možná by se potom nestávalo, že na veřejných klávesnicích bude hustá úrodná půda připravená k orbě.</p>
<p>Tady musím doplnit, že se nepovažuji za žádného paranoidního hygienika a naopak myslím, že přicházet denně do styku s určitým množstvím bakterií a jiných nakažlivých organizmů je mnohem zdravější, než žít v naleštěné skleněné kouli odříznutý od všech mikrobů, protože stykem s nákazou je obranyschopnost lidského těla posilována více než pitím různých Actimelů, polykáním syntetických vitamínů a podobně. Ovšem na druhé straně je extrém, kdy je student 4 hodiny nucen používat počítačové periferie pokryté černým hnusem složneným z potních výměšků jeho spolužáků. Mimochodem víte, že pot má stejné složení jako moč?</p>
<p><i>Doufám (ačkoli tomu příliš nevěřím), že jsem tyto řádky nepsal nadarmo. V nejhorším případě se článek přidá k dalším špatně nebo vůbec pochopeným článkům tohoto blogu. Více udělat nemohu.</i></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.harvie.cz/2010/02/podivnosti/ceske-skolstvi-metodika-vyuky-a-it/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Rychlo-úvod do Crosskompilace s MinGW</title>
		<link>http://blog.harvie.cz/2010/01/linux-and-free-software/rychlo-uvod-do-crosskompilace-s-mingw/</link>
		<comments>http://blog.harvie.cz/2010/01/linux-and-free-software/rychlo-uvod-do-crosskompilace-s-mingw/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 22:23:57 +0000</pubDate>
		<dc:creator>Harvie</dc:creator>
				<category><![CDATA[GNU/Linux & free software]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://blog.harvie.cz/?p=700</guid>
		<description><![CDATA[Dneska se v rychlosti podíváme na to, jak na GNU/Linuxu narychlo vyprodukovat windowsí spustitelnou binárku pomocí MinGW. Tento článek je zaměřen spíše na začátečníky, pokročilí předpokládám pochopí vše z následujícího screenshotu (trochu okurková sezóna no&#8230;):


Instalace MinGW
V rychlosti si ověříme, jestli naše distribuce (v mém případě ArchLinux) má balíčky s vývojovým prostředím MinGW.
0   harvie@harvie-ntb [...]]]></description>
			<content:encoded><![CDATA[<p>Dneska se v rychlosti podíváme na to, jak na GNU/Linuxu narychlo vyprodukovat windowsí spustitelnou binárku pomocí MinGW. Tento článek je zaměřen spíše na začátečníky, pokročilí předpokládám pochopí vše z následujícího screenshotu (trochu okurková sezóna no&#8230;):<br />
<img src="http://show.harvie.cz/linux/MinGW-CrossCompile.png" /></p>
<p><span id="more-700"></span></p>
<h2>Instalace MinGW</h2>
<p>V rychlosti si ověříme, jestli naše distribuce (v mém případě ArchLinux) má balíčky s vývojovým prostředím MinGW.<br />
<code>0 <img src='/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  harvie@harvie-ntb ~ $ pacman -Ss mingw<br />
community/mingw32-binutils 2.19.1-1<br />
    A set of programs to assemble and manipulate binary and object files (mingw)<br />
community/mingw32-gcc 4.4.0-1<br />
    A C and C++ cross-compilers for building Windows executables on Linux<br />
community/mingw32-gcc-base 4.4.0-1<br />
    A C cross-compiler for building Windows executables on Linux<br />
community/mingw32-runtime 3.15.2-1<br />
    mingw32 run-time library<br />
community/mingw32-w32api 3.13-1<br />
    Windows header files fro mingw32 C cross-compiler</code><br />
Vidím, že balíčky jsou v repozitáři community, neměl by tedy být žádný problém je stáhnout a nainstalovat. Já jsem zvolil instalaci balíčku <b>mingw32-gcc</b>, přičemž ostatní balíčky se nainstalovaly jako závislosti.</p>
<h2>Kompilátor</h2>
<p>Po instalaci se podíváme, co se nám vlastně nainstalovalo:<br />
<code>0 <img src='/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  harvie@harvie-ntb ~ $ ls -l /usr/bin/*mingw*<br />
-rwxr-xr-x 1 root root  20776 19. úno  2009 /usr/bin/i486-mingw32-addr2line<br />
-rwxr-xr-x 2 root root  44464 19. úno  2009 /usr/bin/i486-mingw32-ar<br />
-rwxr-xr-x 2 root root 253608 19. úno  2009 /usr/bin/i486-mingw32-as<br />
-rwxr-xr-x 2 root root 209972 25. srp 15.52 /usr/bin/i486-mingw32-c++<br />
-rwxr-xr-x 1 root root  19552 19. úno  2009 /usr/bin/i486-mingw32-c++filt<br />
-rwxr-xr-x 1 root root 209044 25. srp 15.52 /usr/bin/i486-mingw32-cpp<br />
-rwxr-xr-x 2 root root  68412 19. úno  2009 /usr/bin/i486-mingw32-dlltool<br />
-rwxr-xr-x 1 root root  33920 19. úno  2009 /usr/bin/i486-mingw32-dllwrap<br />
-rwxr-xr-x 2 root root 209972 25. srp 15.52 /usr/bin/i486-mingw32-g++<br />
-rwxr-xr-x 1 root root 207316 25. srp 15.52 /usr/bin/i486-mingw32-gcc<br />
-rwxr-xr-x 1 root root  81176 19. úno  2009 /usr/bin/i486-mingw32-gprof<br />
-rwxr-xr-x 2 root root 265696 19. úno  2009 /usr/bin/i486-mingw32-ld<br />
-rwxr-xr-x 2 root root  31428 19. úno  2009 /usr/bin/i486-mingw32-nm<br />
-rwxr-xr-x 2 root root 176864 19. úno  2009 /usr/bin/i486-mingw32-objcopy<br />
-rwxr-xr-x 2 root root 226028 19. úno  2009 /usr/bin/i486-mingw32-objdump<br />
-rwxr-xr-x 2 root root  44468 19. úno  2009 /usr/bin/i486-mingw32-ranlib<br />
-rwxr-xr-x 1 root root 270432 19. úno  2009 /usr/bin/i486-mingw32-readelf<br />
-rwxr-xr-x 1 root root  22856 19. úno  2009 /usr/bin/i486-mingw32-size<br />
-rwxr-xr-x 1 root root  22840 19. úno  2009 /usr/bin/i486-mingw32-strings<br />
-rwxr-xr-x 2 root root 176868 19. úno  2009 /usr/bin/i486-mingw32-strip<br />
-rwxr-xr-x 1 root root  47592 19. úno  2009 /usr/bin/i486-mingw32-windmc<br />
-rwxr-xr-x 1 root root 129940 19. úno  2009 /usr/bin/i486-mingw32-windres</code><br />
Jak vidíte, na disku je hromada zajímavých utilit, které názvy odpovídají utilitám pro sestavování linuxových binárek. Z těchto názvů také můžeme odhadnout, že jde hlavně o assembler a kompilátory jazyků C a C++ (všechny optimalizované pro architekturu i486). Použití je naprosto analogické ke kompilaci céčkových programů ve Windows a na Linuxu.</p>
<h2>Hello, world!</h2>
<p>Vytvoříme si soubor hello.c s následujícím obsahem:</p>
<pre><code>#include &lt;stdio.h&gt;
#include &lt;windows.h&gt;
void main(void) {
	char text[] = "This is MinGW hello world!";
	puts(text);
	MessageBox(0, text, "some caption", MB_OK | MB_ICONINFORMATION);
	//For info about MessageBox: <a href="http://msdn.microsoft.com/en-us/library/ms645505(VS.85).asp">http://msdn.microsoft.com/en-us/library/ms645505(VS.85).asp</a>
}
</code></pre>
<p>Tento program by po spuštění měl vypsat do konzole text a stejný text zobrazit jako popup.</p>
<h2>Kompilace</h2>
<p>Ve chvíli, kdy máme uložený soubor hello.c, můžeme provést samotnou kompilaci:<br />
<code>i486-mingw32-gcc hello.c -o hello.exe</code><br />
tím vznikne soubor hello.exe, který už můžeme spustit pomocí WINE&#8230;</p>
<p>Pozn.: Protože MinGW gcc defaultně kompiluje windowsí binárky se subsystémem, který zobrazí příkazový řádek a to platí i pro grafické aplikace, u kterých nechceme, aby naše aplikace otevírala nějaké okno terminálu navíc, musíme někdy gcc přidat parametr <b>-mwindows</b>, který zajistí že okno bude schované. Takto lze mimo jiné také přeměnit běžný program pro příkazový řádek napsaný v C v daemona, který po spuštění poběží na pozadí a vidět bude jen ve výpisu procesů.</p>
<p>Mimochodem toto je IMHO jeden z četných nedostatků MS Windows. Na Windows musím překompilovat (nebo alespoň přelinkovat) celý program, abych povolil nebo zakázal zobrazení konzole, což vadí hlavně u grafických programů, kde se používá na ladění a třeba u interpreterů různých jazyků, kde se předem neví, jestli program bude textový nebp grafický. A tak výrobci softwaru musí většinou distribuovat dvě verze jinak naprosto stejného programu. O proti tomu GNU/Linux a podobné se s problémem vypořádaly o dost lépe. Tam totiž platí, že standartní textový (samozřejmě i chybový) výstup má naprosto každý program a záleží jen na rodičovském procesu, který tento program spouští, jak s ním naloží. Například pokud tedy spouštím Chromium (nebo jiný grafický webový prohlížeč) z příkazového řádku, jeho výstup se zobrazí, protože shell jeho výstup čte a zobrazuje, pokud ho ale spouštím pomocí ikonky z grafického prostředí, tak je tento výstup ignorován a vidím jen samotné okno prohlížeče. Samozřejmě je zde i možnost nastavit spouštěcí ikonku tak, aby spustila místo programu terminál, který teprve tento program spustí a výstup zobrazí. Což se opět využívá především u textových aplikací, nebo pro ladění programů.</p>
<h2>Spuštění ve WINE</h2>
<p><code>0 <img src='/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  harvie@harvie-ntb Temp $ WINEDEBUG=fixme-all wine hello.exe<br />
This is MinGW hello world!</code></p>
<p>Všimněte si snad jen toho, že jsem na začátek řádku, kde spouštím WINE přidal výraz <b>WINEDEBUG=fixme-all</b>, který potlačí ladící výpisy z WINE. Ale i tak je je WINE trošku línější a zavedení programu nějakou tu chvilku trvá. Naštěstí výslednou binárku lze použít nejen ve WINE, ale samozřejmě také přímo na Microsoft Windows.</p>
<p>a to je prozatím vše přátelé <img src='/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.harvie.cz/2010/01/linux-and-free-software/rychlo-uvod-do-crosskompilace-s-mingw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O Squattingu</title>
		<link>http://blog.harvie.cz/2009/09/kultura/o-squattingu/</link>
		<comments>http://blog.harvie.cz/2009/09/kultura/o-squattingu/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 22:18:28 +0000</pubDate>
		<dc:creator>Harvie</dc:creator>
				<category><![CDATA[kultura]]></category>
		<category><![CDATA[politika]]></category>

		<guid isPermaLink="false">http://blog.harvie.cz/?p=605</guid>
		<description><![CDATA[ Tenhle týden jsem už od začátku dostával nápady na různé články a tak to vemu pěkně popořádku, začnu článkem o squattingu.
Když píšu tenhle perex, tak ještě nevím, k čemu na konci článku dojdu, protože chci prostě nechat myšlenky volně plynout, abych mohl mít alespoň pocit, že jsem byl trochu objektivní. Rozhodl jsem se článek [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://upload.wikimedia.org/wikipedia/commons/0/07/Okupa.svg" style="float:left;" /> Tenhle týden jsem už od začátku dostával nápady na různé články a tak to vemu pěkně popořádku, začnu článkem o squattingu.<br />
Když píšu tenhle perex, tak ještě nevím, k čemu na konci článku dojdu, protože chci prostě nechat myšlenky volně plynout, abych mohl mít alespoň pocit, že jsem byl trochu objektivní. Rozhodl jsem se článek koncipovat jako pomyslný rozhovor, který naprosto schizofrenně vedu sám se sebou, abych nalezl pravdu. Tento styl jsem zvolil, protože chci ve článku postihnout celou problematiku co nejkomplexněji a systém otázka&#038;odpověď mi umožňuje nejpřehlednější členění informací.<br />
<br style="clear:left;" /><br />
<span id="more-605"></span></p>
<p><b>Upozornění: Tento článek nemusí odpovídat faktům ani názorům převládajícím ve squatterské komunitě a je čistě odrazem mých osobních zkušeností, případně informací ze zdrojů, které považuji za věrohodné. Já nejsem squatter, jsem jen sympatizant &#8211; proSquatter.</b></p>
<h1>Squatting</h1>
<p>Možná jste tento týden zaznamenali v médiích záplavu zpráv o takzvaných squatterech, kteří na několik hodin obsadili dům na Pražském Albertově. Tady je můj myšlenkový postup k řešení celého problému:</p>
<p><b>Squatteři říkají, že právo na bydlení je nadřazené osobnímu vlastnictví, na základě čeho to tvrdí?</b></p>
<p>Rozhodně to není definitivní a všeobjímající tvrzení &#8211; je to spíš zkrácenina, která se vejde na transparenty a letáky. Squatteři se kterými jsem setkal osobní vlastnictví uznávají a ve squatterských komunitách by se asi nesetkalo s pozitivním ohlasem, pokud by si někdo bez dovolení vzal osobní věc někoho jiného (např. telefon, notebook, spacák). Na druhou stranu jsou věci, o které se squatteři dělí, protože je to tak výhodnější (jídlo, voda, teplo nebo cokoli jiného o co se dá dělit a hlavně PROSTOR). V zásadě jde o systém &#8220;já na bráchu &#8211; brácha na mě&#8221;, jenom bez peněz, takže někdy můžete víc brát a méně dávat, jindy zas musíte zamakat, ale nikdo není nucený něco dělat &#8211; stejně tak není nikdo nucený v takové komunitě přebývat.</p>
<p><b>Cože? Squatteři mají notebooky? (na IT blogu jsem si to nemohl odpustit)</b></p>
<p>Ano. Kolem squattingu je hnutí, které má silné zastoupení na internetu. Squatteři pomocí internetu šíří svoje myšlenky a vzájemně se podporují jak lokálně, tak mezinárodně. Může se to zdát komické, protože squatteři se někdy zdají jako banda lidí, co vás okrade, aby si mohla nakoupit drogy, ale když pak začnete s jednotlivými squattery mluvit, zjistíte, že nemáte před sebou squattery, ale úplně normální lidi, kteří jsou sice svobodomyslní a veselí, ale jinak jde o poměrně stejné složení jako kdekoli jinde a studenti vysokých škol, nebo profesoři nejsou vyjímkou (ani podmínkou), zaregistroval jsem také jeden šlechtický titul (z čehož mezi squattery pokud vím neplynou žádné výhody ani nevýhody).</p>
<p>Já jsem to jako člověk, který jinak žije mimo squatterskou subkulturu jednou risknul a přišel jsem plný očekávání do nedávno vyklizené vily Milada na akci, kde se měla řešit ochrana soukromí na internetu (o které jsem věděl, protože se touto problematikou nějakou dobu zabývám). Šel jsem tam tak trochu na slepo s jediným člověkem, kterého jsem znal osobně už z dřívějška. Několik lidí (včetně mě) tam mělo notebooky a rozhodně jsem nezaregistroval žádné snahy o jeho odcizení. Ani v případě, když jsem notebook nechal ležet na rozvrzané židli a asi na 10 minut jsem se vydal před barák vyhlížet další účastníky akce. (nesmíte se zlobit, ale jsem zvyklý posuzovat bezpečnost jednotlivých míst v Praze podle toho, kde si dovolím vytáhnout notebook, nebo kde bych nevytáhl radši ani mobil ;o) Předtím jsem tento squat znal jenom jako místo konání divokých hudebních akcí, takže jsem opravdu nevěděl, co mám čekat &#8211; když jsem se potom začal bavit s pár přítomnými lidmi, začínal jsem pomalu chápat, že squaty asi nebudou přesně to, co nám říkali ve škole a moje zvědavost přerůstala v zájem.</p>
<p>Není zajímavé, že v Praze mě už na ulici okradli o totálně rozmlácený mobil, který by už nevzali ani v zastavárně, ale v tom &#8220;doupěti drog, špíny a hnusu&#8221; se nikdo po mém notebooku ani neohlédl? No vážně&#8230; Píšu z něj tenhle článek.</p>
<p><b>Dobře, takže se squatteři neokrádají navzájem, to je sice hezké, ale co my ostatní občané? Majetek squatterů je tedy kradený mimo squat?</b></p>
<p>Ano. Většinou je ukradený kontejnerům, legálním i nelegálním skládkám, nebo bouračkám plným suti. Stejně tak může být věnován jako haraburdí &#8220;za odvoz&#8221; a případně dále vyměňován mezi squatty. Existují také finanční příjmy ze sbírek, vstupného na benefiční akce a prodeje různých tiskovin nebo jiných výrobků.</p>
<p><b>Většinou?</b></p>
<p>Squatting znamená obsadit a žít, nic víc, nic míň. Nelze zaručit, že nikdo nebude krást. Vím skoro jistě, že i u vás v ulici bydlí někdo, kdo sice možná nájem platí, ale stejně krade.</p>
<p><b>Ale daně a nájem si z těch příjmů squatteři asi neplatí, že?</b></p>
<p>Ne. To je zhruba jediný <u>oficiální</u> rozdíl mezi &#8220;bydlením&#8221; a &#8220;squatováním&#8221;.</p>
<p><b>A jak se máme tedy my &#8220;spořádaní občané&#8221; vyrovnat s tím, že v našem městě pobíhá několik desítek nějakých neznámých hipíků a bezdomovců, kteří považují za dobrý nápad přijít k nám domů a zabydlet se nám třeba na gauči v obýváku?</b></p>
<p>To je zásadní otázka, protože to je přesně to čeho se všichni lidé, kteří se o problematiku příliš nezajímají nejvíce bojí &#8211; mají totiž pocit, že by někdo mohl narušit jejich osobní vlastnictví. Prakticky se není s čím vypořádávat. Filozofickou stránku nechám na vás. Squatteři se rozhodně nenastěhují k vám domů do vaši vily nebo bytu, to je totiž prostředí, ze kterého většinou znechuceně utíkají do squattů. A hlavně pod pojmem squatting se nerozumí obsadit libovolný prostor, ale prostor, který splňuje některá kritéria.</p>
<p>Squatteři se zajímají výhradně o dlouhodobě nevyužité nebo dokonce chátrající domy. Většinou jde o vybydlené domy, nebo jiné prostory, které jsou opuštěné kvůli finančním problémům jejich majitele. V čechách jsou časté případy, kdy investor zakoupí dům a poté zkrachuje, nebo dlouhou dobu nemůže sehnat kupce. Obzvláště nekalé jsou praktiky, kdy majitel nechává chráněný dům záměrně chátrat, dokud statik nepřikáže jeho zboření, které umožní vybudování nové finančně lukrativnější budovy například na výhodném pozemku někde v centru města. Další &#8220;kulišárnou&#8221; je tunelování půjček od finančních institucí, při kterých majitel ručí domem na pokraji spadnutí, který koupil za výhodnou cenu, aby tento potom propadl bance.</p>
<p>Kapitolou samou pro sebe byla potom známá vila Milada. Squat, který byl po deseti letech své existence vyklizen vznikl obsazením a opravou domu původně vlastněného státem, který byl za socialismu kvůli svému dezolátnímu &#8220;zbourán&#8221;. Problém byl v tom, že ho zbourali jen v katastru, což v té době zřejmě nebyl neobvyklý postup. V tomto případě šlo dle mého názoru o velmi legitimní obsazení a považuji za drzost jeho opětovné zapsání na katastr pod nového vlastníka. Jediné, co šlo dle mého názoru Miladě vytknout, bylo rušení nočního klidu, které znepříjemňovalo život studentům na nedalekých kolejích.</p>
<p><b>Proč tedy majitelé objektů tolik bojují za vyklizení těchto squattů?</b></p>
<p>Často je to přímo státní správa nebo policie, která si dojde za majitelem pro podpis, kterým posvětí vystěhování squatterů. Nicméně je prakticky pravidlem, že se squatteři pokouší vyjednávat s majitelem.</p>
<p>Vyjednávání se například podařilo v domě, kde se nyní nachází Holešovický hudební Cross Club, který je dle mých informací zapůjčen, mě neznámým pánem v důchodu, který tento dům zrestituoval po sametové revoluci. Tento klub je nyní ale více klubem, kam míří denně kromě místních také desítky turistů i když dříve to byl privátní klub, pro pár lidí, kde několik lidí také bydlelo.</p>
<p>Samozřejmě je možné, že navzdory obsazení má investor s nemovitostí plány a tudíž se snaží squatterů dříve nebo později zbavit. Často se ale jedná o historický dům a squatteři ho brání i z filozofických důvodů. Uvádím jen některé z nich:<br />
- Historickou památku nesmí nahradit beton<br />
- Města mají patřit lidem, ne kancelářským skleníkům<br />
- My jsme dům opravili</p>
<p><b>Ať už je morální pohled na problém libovolný, zákon je stejně zákon! Kde squatteři berou zákonné právo obsazovat cizí majetek?</b></p>
<p>Zákony mají být co nejlepší projekcí &#8220;morálky&#8221; do právnické řeči, pokud jsou tedy zákony a morálka v rozporu, je nutné změnit zákony, pokud není možné zákony změnit tak, aby morálce odpovídali, musí někde nutně existovat nějaký střet zájmů, úplatky nebo podobná nekalost, která do práva nepatří a v takovém případě je nutné zakročit &#8211; byť třeba porušením právních norem.</p>
<p><b>Squatteři tedy očekávají legalizaci squattingu? Bude je potom tento &#8220;legální squatting&#8221; vůbec lákat?</b></p>
<p>Ano. A v evropě se s legálním squattingem na několika místech setkáme. Například v Holandsku stačí najít dům, který je prokazatelně nepoužívaný (staré dopisy ve schránce, atd&#8230;) po určitý zákonem stanovený čas, obsadit ho a telefonicky nahlásit squat na policii, která následně přijede ověřit, jestli je obsazení legitimní.</p>
<p>Není důvod, proč by squattery neměl bavit legální squatting, odmítají spíše placení nájmu a daně z nemovitosti.</p>
<p><b>Nikdo nemůže zaručit, že se ve squattu nebudou brát drogy a že se v jeho okolí nezvýší kriminalita, proč bych měl tedy squat ve svém městě trpět?</b></p>
<p>V souvislosti s touto otázkou se mi vybavuje datum 13.9., kdy se squatteři pokusili obsadit prázdný dům, který je v sousedství policejní stanice. To by se dalo chápat jako projev vyzrálosti a snahu tuto kriminalitu minimalizovat.</p>
<p>Dále je nutné si uvědomit, že drogově závislí budou drogy brát a bude jim jedno kde. Dle mého skromného názoru je tedy lepší, pokud budou schováni ve squattu, než pokud tak budou činit na lavičce v parku před základní školou, kam posíláte své děti. Nicméně i tam mohou narazit, protože ve většině squatterských komunit mimo jiné platí pravidla proti drogám, protože drogově závislí budou jen těžko prospěšní životu v kolektivu, ale také protože je to jen zbytečné přitahování pozornosti správních orgánů nebo policie. A nějaká velkovýroba drog na squattech je také opravdu přehnaný mýtus a takový squat by asi těžko přežil třeba těch 10 let, jako Milada, po které by byl jentak přehlížen.</p>
<p>Samozřejmě to samo o sobě by nestačilo, squatty umí být také prospěšné.</p>
<p><b>Jaké pozitivní aktivity tedy mohu od squattu čekat?</b></p>
<p>Politické aktivity<br />
Různé kulturní akce jako např. výstavy, koncerty, vernisáže<br />
Workshopy &#8211; DIY výroba, opravy a podobné rukodělné aktivity (šití, sítotisk, oprava bicyklů, práce s počítačem,&#8230;)<br />
Humanitární aktivity (food not bombs &#8211; vaření zdarma pro bezdomovce)</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/cczQAUxFWZo&#038;hl=cs&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/cczQAUxFWZo&#038;hl=cs&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><b>Politické aktivity? Jsou vůbec v mém zájmu?</b><br />
Ačkoli se squatterské hnutí může navenek tvářit jako skupina levicových extremistů, ve skutečnosti slovo squating neznamená nic kromě aktu obsazení a udržení domu. Přesto nejsou různé druhy levicových názorů u squatterů ojedinělé, ale jde většinou spíše o snahu získávat a udržovat svobodu ze strany státu, hlavně také omezit zásahy do soukromí a případné represe. Tudíž bych u squatterů nepředpokládal nějakou masivní podporu některé konkrétní politické strany (zvláště těch, co mají více než 20% křesel v parlamentu). A předpokládám, že procento nevoličů je mezi squattery asi stejné, nebo možná trochu menší, než u jiných lidí.</p>
<p>Ještě jednou bych zopakoval, že ačkoli se to může zdát pravidlem, nebo běžnou praxí, tak pro squattera není závazné nic jiného, než squattování (jinak by to logicky nebyl squatter). Politická příslušnost, nebo sympatie s nějakou politickou stranou jsou pro squatting asi tak důležité, jako hudba, kterou preferujete nebo třeba styl oblékání &#8211; tudíž prakticky vůbec.</p>
<p><b>Mám pocit, že squatteři se někdy ohánějí právem na bydlení a jindy zas svými kulturními aktivitami, to si jako vybírají jak se jim to hodí?</b></p>
<p>Mezi squattery jsou často lidé, kteří se z nějakých důvodů (ať už dobrovolně nebo nedobrovolně) ocitli bez domova a tak pochopitelně chtějí squat využít i k bydlení, případně nabídnout bydlení dalším lidem. Kulturní stránka squatu je samozřejmě také důležitá. Díky kulturním akcím získávají squaty podporu širší veřejnosti a případně nějaké finance, nebo materiál. Na bydlení ve squatu je důležitý taky fakt, že legálně nikdo nemůže být násilím vystěhován ze svého bytu v případě, že se tam již zabydlel (tuto informaci mám z policejní příručky).</p>
<p><b>Tohle má být kultura? Slyšeli tihle lidé někdy o vápnu na zeď nebo o teorii hudební kompozice? Mě se to nelíbí &#8211; tohle není hudba.</b></p>
<p>Pravda je, že většina squattů je vevnitř spíše vybarvená grafitti nebo jinými malbami a polepená samolepkami nebo plakáty, než vymalovaná vápnem. A ano, žít se dá i bez bílých zdí. Pokud se squatterům náhodou po bílých zdech stýská, vždy se na ně mohou jít podívat do hypermarketu, banky nebo nějakého podobného skladiště.</p>
<p>Pokud jde o hudbu&#8230; Mě se ta otázka nelíbí &#8211; tohle není správný názor. Ale ve squattech se děje všechno možné a prostor pro svoji tvorbu tam má prakticky každý, kdo přijde z ulice s žádostí na zapůjčení prostorů. A ač to zní sebevíc populisticky, tak kromě punku a rave (&#8220;techna&#8221;) není tedy ve squattech vyjímkou ani konzert vážné hudby nebo čehokoli jiného. Pokud jde o ty &#8220;tvrdší&#8221; hudební styly, tak je možné na parties občas vidět tančit i poměrně starší lidi, nebo zřídka dokonce nějakého zvědavého důchodce.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/wNeQwUBc36c&#038;hl=cs&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/wNeQwUBc36c&#038;hl=cs&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><b>V souvislosti se squattingem jsem zaslech výraz &#8220;anarchoautonomismus&#8221;, co to znamená?</b></p>
<p>Ve zkratce je to politický směr, který se snaží rozdrtit jednotky moci na co nejmenší části &#8211; samosprávné celky, jako mohou být například squatty. Takový systém je pak chráněn před různými revolucemi, totalitarismem nebo ekonomickými krizemi, protože lokální problémy se nešíří za hranice těchto jednotek. Na tomto principu funguje například i lidské tělo, které je také rozdělené na buňky a je nutné poškodit velké množství buněk, aby zemřel celý organismus. Naproti tomu chyba nebo kolaps jedné buňky (vyjímkou může být např. rakovina) většinou smrt celého organismu nezpůsobí. Navíc každá buňka může upravovat svoje vnitřní prostředí nezávisle na ostatních a pravděpodobnost, že bude fungovat demokracie v buňce o deseti lidech, kteří se většinou dohodnou je nesčetněkrát vyšší, než že všichni budou spokojeni v centrálně spravovaném státě o velikosti České Republiky. Navíc v případě neshod existuje opravdu velké množství buňek, kam se nesouhlasící člen může přestěhovat. V případě, že by počet členů buňky přerůstal počet v jakém je možné se dohodnout na pravidlech fungování v buňce, je jednoduchým a účinným řešením buňku rozdělit na dvě nebo více menších. Spolupráce jednotlivých buňek samozřejmě vyloučena není.</p>
<p><b>Odkud pochází slovo squat?</b></p>
<p>Slova squat anebo squatter (z angl. squat &#8211; sedět na bobku, krčit se).</p>
<p>Také jsem se v básnickém románu &#8220;Růže pro Miladu&#8221; setkal s označením &#8220;dřepník&#8221;, což je vlastně výstižné.<br />
Dále se tam také píše &#8220;V indiánském jazyce národa Povayanasquatsi, slovo squat znamená slovo život.&#8221;.<br />
&#8220;Skvo&#8221; je také tuším nějaké indiánské slovo pro dívku.</p>
<p><b>Ještě jedna věc mi vždycky vrtala hlavou&#8230; Proč si ty squatteři tak vyžívají ve skákání po střechách a přivazování na komínech?</b></p>
<p>To je běžná taktika proti vystěhování domu. Je to samozřejmě trochu lest&#8230; Střecha je ideálním místem, protože než se &#8220;zasahující osoby&#8221; dostanou na střechu, musí projít celým domem a překonat případné barikády, atp. Hlavně je ale prakticky nemožné ze střechy někoho &#8220;sundat&#8221; bez ohrožení na zdraví nebo životě a v tom případě je porušován zákon (obzvlášť za předpokladu, že squatteři na &#8220;nájezdníky&#8221; sami nijak neútočí). Ovšem je stále riziko, že jako v případě Milady přijedou pod značkou bezpečnostní agentury <a href="http://antifa.cz/254-mzdomova-vyklizeni-squatu-milada.html">známí neonacisté</a> a podobní kriminálníci, kteří už mají na účtu horší zločiny a nějaké &#8220;ohrožení&#8221; je už trápit nemusí a kteří navíc mají odlišný pohled na svět a jsou proti squattování i ideologicky. Takový zásah se potom změní na osobní boj, kdy jsou barikády zapáleny, střecha zbořena a lidé jsou z komínů odřezáváni, stahováni nebo shazováni bez ohledu na to, jestli spadnou skrz bývalou střechu do domu, nebo z několikapatrové výšky na zem.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/XHGkMgM2g3U&#038;hl=cs&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/XHGkMgM2g3U&#038;hl=cs&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><b>A proč se někdo stane squatterem i přesto, že by si klidně mohl  dovolit platit za nájem?</b></p>
<p>Důvody mohou být různé. Někdo je politicky zainteresovaný a nebo je to třeba umělec, který cítí, že by ho produkce v komerční sféře omezovala (nebo již omezuje). Často lidé mívají více důvodů.</p>
<p>Nejzajímavější bude asi fakt, že squatting je jedna z metod, která může člověku zprostředkovat bezprostřednost vlastní existence. Život ze dne na den není pro každého a chce to velkou duševní i fyzickou sílu, ale odměnou je vědomí toho, že jste každý den prožili naplno. Každý den přináší nové pocity &#8211; bolest, radost, nebo nejnepravděpodobnější pitoreskní situace. Představte si svět, kde váš vlastní život je jediná věc, kterou můžete ztratit. Pokud pochopíte, že čas je neocenitelná hodnota, už nebudete mít touhu odvádět polovinu svého času v podobě daní, ale budete chtít prožít každý moment naplno. Tato filozofie (nebo lépe řečeno stav mysli), kdy si je člověk vědom toho, že v příští minutě již nemusí být naživu a žije proto tedy každý moment, jako by byl jeho poslední se vyskytuje v různých podobách napříč různými kulturami, punkeři řvou &#8220;No Future!&#8221;, někteří čarodějové a shamani zase mají výraz &#8220;vědomí smrti&#8221;, nevím jistě, jestli je pro tento stav i nějaký ustálený výraz v buddhistické terminologii, ale myšlenka &#8220;žít tady a teď&#8221; je buddhismu také blízká.</p>
<p><b>Zas*aný hipízácký nemakačenkové!</b></p>
<p><img src="http://mtpundit.com/wp-content/uploads/2009/05/shut-up-hippie-nixon.jpg" /></p>
<p>Je zbytečné sedět u počítače, televize nebo v kanceláři a dělat si názor na něco, co jsem v životě neviděl nebo nezažil na vlastní kůži. Někteří lidé ale stejně budou jen dál plácat svými ideály krásy a nepodstatnými názory bez argumentů v televizních zprávách, soudních síních nebo internetových diskuzích. A kdyby to bylo pro vás tak jednoduché a nebyl ve vašich duších strach živený předsudky, místo tohoto článku bych napsal jen &#8220;jděte se podívat do nejbližšího squattu&#8221;.</p>
<p>Barák se sám neopraví, ale narozdíl od finančního systému lépe a bezprostředně ohodnotí odvedenou práci, a ta se pak stane něčím osobním, co jí dá nový smysl.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.harvie.cz/2009/09/kultura/o-squattingu/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Správa SSL certifikátů v NSSDB pomocí CertUtil</title>
		<link>http://blog.harvie.cz/2009/08/linux-and-free-software/sprava-ssl-certifikatu-v-nssdb-pomoci-certutil/</link>
		<comments>http://blog.harvie.cz/2009/08/linux-and-free-software/sprava-ssl-certifikatu-v-nssdb-pomoci-certutil/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 02:08:34 +0000</pubDate>
		<dc:creator>Harvie</dc:creator>
				<category><![CDATA[(ne)bezpečnost]]></category>
		<category><![CDATA[GNU/Linux & free software]]></category>
		<category><![CDATA[návody]]></category>

		<guid isPermaLink="false">http://blog.harvie.cz/?p=592</guid>
		<description><![CDATA[Dnes jen ve zkratce ukáži, jak pomocí utility certutil přidat (nebo odebrat) kořenové certifikáty do NetScape Ssl DataBáze. Což se hodí (jako v mém případě) k přidání SSL certifikátů do prohlížeče Google Chrome (nebo v mém případě open source verze Chromium).

Níže už vidíte způsob, jakým přidáte do prohlížeče certifikáty CaCertu (které využijete i se serverem [...]]]></description>
			<content:encoded><![CDATA[<p>Dnes jen ve zkratce ukáži, jak pomocí utility certutil přidat (nebo odebrat) kořenové certifikáty do NetScape Ssl DataBáze. Což se hodí (jako v mém případě) k přidání SSL certifikátů do prohlížeče Google Chrome (nebo v mém případě open source verze Chromium).<br />
<span id="more-592"></span></p>
<p>Níže už vidíte způsob, jakým přidáte do prohlížeče certifikáty CaCertu (které využijete i se serverem harvie.cz).</p>
<p>Takhle přidáte certifikáty do databáze:<br />
<b>curl &#8216;http://www.cacert.org/certs/root.crt&#8217; | certutil -d sql:$HOME/.pki/nssdb -A -t &#8220;C,,&#8221; -n CaCert-Root<br />
curl &#8216;http://www.cacert.org/certs/class3.crt&#8217; | certutil -d sql:$HOME/.pki/nssdb -A -t &#8220;C,,&#8221; -n CaCert-Class3</b></p>
<p>Takhle je vypíšete:<br />
<b>certutil -d sql:$HOME/.pki/nssdb -L</b></p>
<p>Takhle je vymažete:<br />
<b>certutil -d sql:$HOME/.pki/nssdb -D -n CaCert-Root<br />
certutil -d sql:$HOME/.pki/nssdb -D -n CaCert-Class3</b></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.harvie.cz/2009/08/linux-and-free-software/sprava-ssl-certifikatu-v-nssdb-pomoci-certutil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiplatformní aplikace s GTK+ (C-Perl-Java-Python-PHP-Ruby-C#)</title>
		<link>http://blog.harvie.cz/2009/08/nezarazeno/multiplatformni-aplikace-s-gtk-c-perl-java-python-php-c/</link>
		<comments>http://blog.harvie.cz/2009/08/nezarazeno/multiplatformni-aplikace-s-gtk-c-perl-java-python-php-c/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 01:32:49 +0000</pubDate>
		<dc:creator>Harvie</dc:creator>
				<category><![CDATA[GNU/Linux & free software]]></category>
		<category><![CDATA[nezařazeno]]></category>
		<category><![CDATA[návody]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[programování]]></category>

		<guid isPermaLink="false">http://blog.harvie.cz/?p=532</guid>
		<description><![CDATA[
Dnes si ukážeme, jak pomocí knihovny GTK+ udělat podobnou &#8220;hello world&#8221; aplikaci, jako vidíte na obrázku. Bude složená z okna, textového vstupu a tlačítka. Při stisku tlačítka se zadaný text nastaví jako titulek tlačítka a navíc vypíše do konzole. Tuto aplikaci bude možné spouštět jak na Windows, tak na GNU/Linuxu, na BSD a dokonce na [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img291.imageshack.us/img291/4340/hellop.png" style="float: left;" /><br />
Dnes si ukážeme, jak pomocí knihovny GTK+ udělat podobnou &#8220;hello world&#8221; aplikaci, jako vidíte na obrázku. Bude složená z okna, textového vstupu a tlačítka. Při stisku tlačítka se zadaný text nastaví jako titulek tlačítka a navíc vypíše do konzole. Tuto aplikaci bude možné spouštět jak na Windows, tak na GNU/Linuxu, na BSD a dokonce na MacOS X. A aby toho nebylo málo, stejnou aplikaci napíši hned v několika jazycích. Cílem tohoto souhrnu je ukázat, jak snadné je vyvíjet multiplatformní aplikace pomocí open-source nástrojů. Také si na základě tohoto článku můžete získat základní povědomí o zmíněných jazycích.<br />
<span id="more-532"></span><br style="clear: left;" /></p>
<h2>Návrh grafického rozhraní</h2>
<p>První, co musíme udělat je navrhnout (naklikat) grafické rozhraní naší aplikace. K použijeme program Glade 3, který je principiálně dost podobný všem ostatním GUI builderům, jako QT Designer, Gazpacho, C++ Builder, wxGlade, Boa Constructor, nebo Microsoft Visual Studio. Tento hotový design potom můžeme snadno použít v celé řadě programovacích jazyků.</p>
<p>Na obrázku níže vidíte, co je naším cílem:<br />
<img src="http://img220.imageshack.us/img220/5717/glade3.png" /></p>
<p>Glade a vlastně i ostatní potřebné knihovny se v binární verzi pro Windows 32, Windows 64 a MacOS dají stáhnout na adrese <a href="http://ftp.gnome.org/pub/GNOME/binaries/">http://ftp.gnome.org/pub/GNOME/binaries/</a>, čtěte ale dále, protože možná pro vás bude výhodnější si stáhnout GTK+, Glade a další podpůrné knihovny jako jeden bundle i s vývojovým prostředím, nebo interpreterem vašeho oblíbeného jazyka. Pokud máte Linux nebo BSD, tak bude zase nejrozumnější využít instalaci balíčků přímo z repozitářů vaší distribuce, které jsou již vzájemně odladěné.</p>
<p>Postup je také jednoduchý:<br />
- vytvoříme nový projekt (použijeme formát GtkBuilder &#8211; ne LibGlade)<br />
- na panelu vlevo pod záložkou &#8220;toplevels&#8221; poklikáme na &#8220;Window&#8221;, tím vytvoříme nové okno<br />
- pod záložkou &#8220;containers&#8221; klikneme na &#8220;Vertical Box&#8221; a následně klikneme do vytvořeného okna, v dialogu změníme počet částí na &#8220;2&#8243;. okno by se mělo rozdělit na dvě části<br />
- pod záložkou &#8220;Control and Display&#8221; klikneme na &#8220;Text Entry&#8221; a pak do horní části našeho okna, tím se umístí widget na zadávání textu<br />
- stejným způsobem umístíme do dolní části widget &#8220;Button&#8221; ze stejné kategorie</p>
<p>Vsuvka: Pokud jde o ony &#8220;kontainery&#8221;, kam patří i &#8220;Vertical Box&#8221;, je třeba vysvětlit, co to znamená. Kontainer je widget, do kterého můžeme vkládat další widgety (třeba opět kontainery). Trik je v tom, že každý kontainer se jinak chová při resizování (změně velikosti) okna (nebo nadřazeného kontaineru). Pokud použijeme kontainer &#8220;Fixed&#8221;, tak můžeme přesně určit, kde který widget bude, ale při zvětšování a zmenšování okna to bude asi vypadat dost neprakticky a rozhodně ne elegantně. Proto máme třeba námi použitý &#8220;Vertical Box&#8221;, který prostor okna spravedlivě rozdělí mezi N widgetů a přizpůsobuje jejich velikost při každé změně. Pro složitější projekty je ale většinou třeba kombinovat různé druhy kontainerů.</p>
<p>Dále musíme přiřadit handlery signálů (jména funkcí, které se budou volat při dané akci):<br />
- na panelu vpravo se nalézá strom widgetů, my vybereme okno &#8220;window1&#8243;<br />
- v dolní části panelu přejdeme na záložku signály a najdeme signál &#8220;destroy&#8221; (ve třídě GtkObject), klikneme vedle něj do sloupce &#8220;handler&#8221; a z nabídky vybereme handler &#8220;on_window1_destroy&#8221; (asi nemá smysl vymýšlet si vlastní jména handlerů).<br />
- stejným způsobem vybereme widget &#8220;button1&#8243;  a ke GtkButton signálu &#8220;clicked&#8221; opět z nabídky vybereme handler &#8220;on_button1_clicked&#8221;, tím jsme s návrhem hotovi<br />
- pokud si nechcete s designem aplikace už nějak více hrát, můžete uložit svůj výtvor například do souboru &#8220;hello.ui&#8221;.<br />
- Důležité je, že uložíte soubor ve formátu GtkBuilder a s příponou .ui (ta je kvůli Glade).</p>
<p>Nyní máme hotový XML soubor s popisem našeho rozhraní, který je možné buď externě načítat z našeho programu, což je výhodné, protože můžeme kdykoli upravit vzhled programu bez zásahu do kódu (a případné rekompilace), nebo ho nějakým způsobem umístit jako řetězec přímo do kódu našeho programu, což má zase jiné výhody (např. kompaktnost).</p>
<p>Pro představu &#8211; výsledný XML soubor vypadá třeba takhle:</p>
<pre><font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">?xml</font> <font color="#2040a0">version=</font><font color="#008000">&quot;1.0&quot;</font><font color="#2040a0">?</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">interface</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
  <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">requires</font> <font color="#2040a0">lib=</font><font color="#008000">&quot;gtk+&quot;</font> <font color="#2040a0">version=</font><font color="#008000">&quot;2.16&quot;</font><font color="#2040a0">/</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
  <font color="#444444">&lt;!-- interface-naming-policy project-wide --&gt;</font>
  <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">object</font> <font color="#2040a0">class=</font><font color="#008000">&quot;GtkWindow&quot;</font> <font color="#2040a0">id=</font><font color="#008000">&quot;window1&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
    <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;title&quot;</font> <font color="#2040a0">translatable=</font><font color="#008000">&quot;yes&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>Hello world!<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
    <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">signal</font> <font color="#2040a0">name=</font><font color="#008000">&quot;destroy&quot;</font> <font color="#2040a0">handler=</font><font color="#008000">&quot;on_window1_destroy&quot;</font><font color="#2040a0">/</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
    <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">child</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
      <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">object</font> <font color="#2040a0">class=</font><font color="#008000">&quot;GtkVBox&quot;</font> <font color="#2040a0">id=</font><font color="#008000">&quot;vbox1&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
        <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;visible&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>True<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
        <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;orientation&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>vertical<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
        <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">child</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
          <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">object</font> <font color="#2040a0">class=</font><font color="#008000">&quot;GtkEntry&quot;</font> <font color="#2040a0">id=</font><font color="#008000">&quot;entry1&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
            <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;visible&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>True<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
            <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;can_focus&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>True<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
            <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;invisible_char&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font><font color="ff0000">&amp;#x25CF;</font><font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
            <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;text&quot;</font> <font color="#2040a0">translatable=</font><font color="#008000">&quot;yes&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>Hello world!<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
          <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/object</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
          <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">packing</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
            <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;position&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>0<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
          <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/packing</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
        <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/child</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
        <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">child</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
          <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">object</font> <font color="#2040a0">class=</font><font color="#008000">&quot;GtkButton&quot;</font> <font color="#2040a0">id=</font><font color="#008000">&quot;button1&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
            <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;label&quot;</font> <font color="#2040a0">translatable=</font><font color="#008000">&quot;yes&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>Button1<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
            <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;visible&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>True<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
            <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;can_focus&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>True<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
            <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;receives_default&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>True<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
            <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">signal</font> <font color="#2040a0">name=</font><font color="#008000">&quot;clicked&quot;</font> <font color="#2040a0">handler=</font><font color="#008000">&quot;on_button1_clicked&quot;</font><font color="#2040a0">/</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
          <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/object</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
          <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">packing</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
            <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">property</font> <font color="#2040a0">name=</font><font color="#008000">&quot;position&quot;</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>1<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/property</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
          <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/packing</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
        <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/child</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
      <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/object</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
    <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/child</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
  <font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/object</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
<font color="#2040a0"><strong><font color="4444FF"><strong>&lt;</strong></font><font color="#2040a0">/interface</font><font color="4444FF"><strong>&gt;</strong></font></strong></font>
</pre>
<h2>Kód aplikace</h2>
<h3>Úvod</h3>
<p>Backend k našemu hello.ui jsem napsal hned v několika jazycích, které ovládám, abych ukázal výhody použití GTKBuilderu a přiblížil ho co nejširší programátorské veřejnosti. Je nutné vědět, že GTKBuilder nebyl součástí knihovny GTK+ odjakživa. Dříve se pomocí glade generovaly soubory s příponou .glade a v kódu se načítali pomocí knihovny LibGlade, nebo byla možnost pomocí Glade přímo vygenerovat kód v jazyce C, což bylo ve verzi 3 taktéž zrušeno &#8211; paradoxně kvůli nedostatečnému výkonu tohoto kódu. Nyní existuje tzv. GTKBuilder, což je funkce (nebo spíše třída) umožňující načíst GUI ze souboru nebo z řetězce.</p>
<p><font color="red">Ještě nejsou hotovy příklady ve všech jazycích, takže mohu zatím akorát slíbit, že je časem dopíši.</font></p>
<p>Teď je třeba popsat, jak funguje kód následujících příkladů. Nebudu rozebírat každý zvlášť, protože všechny dělají vesměs to samé (i když často pomocí dost odlišné logiky). Jen stručně shrnu, základní rysy kódu, který využívá GTKBuilder.</p>
<p>Tady je seznam akcí, které každý z programů musí vykonat:<br />
- načte knihovnu GTK+ (případně moduly s interfacem k ní)<br />
- definuje funkce/metody sloužící jako handlery signálů jednotlivých widgetů (viz. níže)<br />
- Inicializuje GTK pomocí volání gtk_init<br />
- vytvoří instanci GTKBuilderu<br />
- pomocí gtk_builder_add_from_file nebo gtk_builder_add_from_string načte GUI vytvořené v Glade<br />
- pomocí gtk_builder_connect_signals prováže handlery signálů s funkcemi nebo metodami v kódu (jména funkcí jsme již přiřazovali v Glade)<br />
- pomocí gtk_builder_get_object získá reference na jednotlivé widgety (abychom s nimi mohli pracovat)<br />
- v případě, že hlavní okno nemělo už z glade nastaveno visible=true (jako v našem případě), nastaví to<br />
- pokud není programátor líný, tak uvolní GTKBuilder z paměti, protože jsou už všechny widgety načteny<br />
- spustí hlavní cyklus GTK (gtk_main), který neustále hlídá, jestli nebylo stisknuto nějaké tlačítko, atp. Tento cyklus pokračuje donekonečna, dokud není z nějakého důvodu ukončen.<br />
- zkončí</p>
<p>Dále tu máme handlery signálů, které musí program implementovat, jinak connect_signals() zkončí s chybou. V našem případě jsou pouze dva:<br />
- on_window1_destroy: voláním gtk_main_quit ukončí hlavní cyklus GTK a tím se program ukončí (protože hned za cyklem je příkaz exit)<br />
- on_button1_clicked: získá text zadaný do entry1, nastaví ho jako label widgetu button1 a navíc ho vypíše ho do konzole.</p>
<p>To je vše, co náš program dělá a nyní se již pojďme podívat na konkrétní kódy v jednotlivých jazycích.</p>
<hr />
<h3>C</h3>
<p>Pokud jde o C, je situace trochu jiná než v ostatních jazycích (i když o něco lepší než v Assembleru). Knihovna GTK je napsaná v C, takže s kompatibilitou nebo rychlostí by problém být neměl, největší obtíží je asi kompilace (resp. dodání správných přepínačů kompilátoru). Na GNU/Linuxu většinou stačí mít dostatečnou verzi příslušné knihovny a potřebné hlavičkové soubory, potom lze celou aplikaci hezky zkompilovat pomocí příkazu, který jsem si poznamenal do zdrojáku.</p>
<p>V případě Windows jsou požadavky víceméně stejné, ale pokud nechcete používat CygWin bude nejtěžší do systému správně nainstalovat všechny knihovny. Moje znalosti jsou v tomto směru omezené, protože Windows nepoužívám a přenositelnost svých aplikací zkouším jen občas ve VirtualBoxu. Vím ale, že se mi podařilo můj program zkompilovat pomocí vývojového prostředí <a href="http://www.codeblocks.org/">Code::Blocks</a> (nástupce Dev-Cpp), které umožňuje při startu vytvořit GTK+ Projekt, stejně je ale potřeba nainstalovat všechny knihovny na své místo a sdělit kompilátoru jejich umístění. V té době ale tuším ještě nebyly k dispozici windowsí binárky Glade a celé se to muselo takhle bastlit, teď tuším by to šlo nějak přehledněji stáhnout a nainstalovat z repozitářů Gnome. Každopádně se mi to podařilo. Tuším ale, že jsem musel kód psaný na Linuxu pro Windows drobně upravit (tuším přidat makro G_MODULE_EXPORT před každou funkci, která je handlerem signálu), potom už se dal program zkompilovat jak na Windows, tak na Linuxu.</p>
<pre><font color="#444444">/* GTK Hello world! by Harvie 2oo9
 *
 * Compile this with:
 * gcc -o hello hello.c $(pkg-config --cflags --libs gtk+-2.0) -export-dynamic
 * or
 * gcc -Wall -g -o hello hello.c `pkg-config --cflags --libs gtk+-2.0` -export-dynamic
 */</font>

<font color="0000ff"><strong>#include <font color="#008000">&lt;stdio.h&gt;</font></strong></font>
<font color="0000ff"><strong>#include <font color="#008000">&lt;gtk/gtk.h&gt;</font></strong></font>

<font color="#2040a0">GtkBuilder</font>      <font color="4444FF">*</font><font color="#2040a0">builder</font><font color="4444FF">;</font>
<font color="#2040a0">GtkWidget</font>       <font color="4444FF">*</font><font color="#2040a0">window1</font>, <font color="4444FF">*</font><font color="#2040a0">button1</font>, <font color="4444FF">*</font><font color="#2040a0">entry1</font><font color="4444FF">;</font>

<strong>void</strong> <font color="#2040a0">on_window1_destroy</font> <font color="4444FF">(</font><font color="#2040a0">GtkObject</font> <font color="4444FF">*</font><font color="#2040a0">object</font>, <font color="#2040a0">gpointer</font> <font color="#2040a0">user_data</font><font color="4444FF">)</font>
<font color="4444FF"><strong>{</strong></font>
	<font color="#2040a0">gtk_main_quit</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
<font color="4444FF"><strong>}</strong></font>

<strong>void</strong> <font color="#2040a0">on_button1_clicked</font><font color="4444FF">(</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font>
  <font color="#2040a0">gtk_button_set_label</font><font color="4444FF">(</font><font color="#2040a0">button1</font>, <font color="#2040a0">gtk_entry_get_text</font><font color="4444FF">(</font><font color="#2040a0">entry1</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font>
  <font color="#2040a0">puts</font><font color="4444FF">(</font><font color="#2040a0">gtk_entry_get_text</font><font color="4444FF">(</font><font color="#2040a0">entry1</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font>
<font color="4444FF"><strong>}</strong></font>

<strong>int</strong> <font color="#2040a0">main</font> <font color="4444FF">(</font><strong>int</strong> <font color="#2040a0">argc</font>, <strong>char</strong> <font color="4444FF">*</font><font color="#2040a0">argv</font><font color="4444FF">[</font><font color="4444FF">]</font><font color="4444FF">)</font>
<font color="4444FF"><strong>{</strong></font>
	<font color="#2040a0">gtk_init</font><font color="4444FF">(</font><font color="4444FF">&amp;</font><font color="#2040a0">argc</font>, <font color="4444FF">&amp;</font><font color="#2040a0">argv</font><font color="4444FF">)</font><font color="4444FF">;</font>

	<font color="#2040a0">builder</font> <font color="4444FF">=</font> <font color="#2040a0">gtk_builder_new</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
	<font color="#2040a0">gtk_builder_add_from_file</font><font color="4444FF">(</font><font color="#2040a0">builder</font>, <font color="#008000">&quot;hello.ui&quot;</font>, <font color="#2040a0">NULL</font><font color="4444FF">)</font><font color="4444FF">;</font>

  <font color="#2040a0">window1</font> <font color="4444FF">=</font> <font color="#2040a0">GTK_WIDGET</font> <font color="4444FF">(</font><font color="#2040a0">gtk_builder_get_object</font> <font color="4444FF">(</font><font color="#2040a0">builder</font>, <font color="#008000">&quot;window1&quot;</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font>
  <font color="#2040a0">button1</font> <font color="4444FF">=</font> <font color="#2040a0">GTK_WIDGET</font> <font color="4444FF">(</font><font color="#2040a0">gtk_builder_get_object</font> <font color="4444FF">(</font><font color="#2040a0">builder</font>, <font color="#008000">&quot;button1&quot;</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font>
  <font color="#2040a0">entry1</font> <font color="4444FF">=</font> <font color="#2040a0">GTK_WIDGET</font> <font color="4444FF">(</font><font color="#2040a0">gtk_builder_get_object</font> <font color="4444FF">(</font><font color="#2040a0">builder</font>, <font color="#008000">&quot;entry1&quot;</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font>

	<font color="#2040a0">gtk_builder_connect_signals</font><font color="4444FF">(</font><font color="#2040a0">builder</font>, <font color="#2040a0">NULL</font><font color="4444FF">)</font><font color="4444FF">;</font>

  <font color="#2040a0">g_object_unref</font><font color="4444FF">(</font><font color="#2040a0">G_OBJECT</font> <font color="4444FF">(</font><font color="#2040a0">builder</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font>

  <font color="#2040a0">gtk_widget_show</font><font color="4444FF">(</font><font color="#2040a0">window1</font><font color="4444FF">)</font><font color="4444FF">;</font>
  <font color="#2040a0">gtk_main</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>

  <strong>return</strong> <font color="#FF0000">0</font><font color="4444FF">;</font>
<font color="4444FF"><strong>}</strong></font>
</pre>
<hr />
<h3>Perl</h3>
<p>Musím se přiznat, že Perl se poslední dobou stává mým favoritem a je favoritem i mezi jazyky, které bych si vybral na tvorbu přenositelných okeních aplikací používajících GTK. Perl sice nemusí být tak rychlý jako C, ale je velmi pohodlný a kód je možné přenášet mezi různými systémy bez rekompilace. Teoreticky můžu mít jeden soubor s příponou .pl, který bude v sobě mít zakomponované i rozhraní z glade a který pustím prakticky všude.</p>
<p>Pro více informací bych doporučil web <a href="http://gtk2-perl.sourceforge.net/">http://gtk2-perl.sourceforge.net/</a>.</p>
<p>A pokud jde o instalaci na Windows, tak není o moc složitější, než pomocí některého z Linuxových balíčkovacích systémů. Všechno co potřebujete (a mnohem víc) dokáže stáhnout a nainstalovat program <a href="http://code.google.com/p/camelbox/">CamelBox</a>. Jediný problém, který mi nastal při instalaci CamelBoxu bylo to, že jsem již předtím nainstaloval starší verzi Glib (kvůli kompilaci GTK aplikace v C, ale myslím, že to potká i například uživatele GIMPu nebo InkScapu). Při pokusu o spuštění programu na mě tedy vyběhla jen konzolová hláška &#8220;<i>*** This build of Glib was compiled with glib 2.20.0, but is currently running with 2.16.3, which is too old. We&#8217;ll continue, but expect problems!</i>&#8221; následovaná popupem a pádem programu. Na stránkách CamelBoxu mi poradili, abych odstranil starou knihovnu z cesty (proměnná prostředí %PATH%), já ale knihovnu pro jistotu rovnou odinstaloval a potom už vše fungovalo jak má. Jen poznamenám, že kvůli inkompetenci Microsoftích programátorů musí mít v sobě každá aplikace zakompilované nastavení, jestli má ukazovat konzoli, nebo ne. Z toho vyplívá, že v adresáři c:/camelbox/bin/ naleznete kromě souboru perl.exe také soubor wperl.exe, který okno konzole nezobrazuje a tedy je pro většinu GTK+ aplikací nejvhodnější. Pro spuštění programu stačí na skript kliknout pravým tlačítkem a přes možnost &#8220;Otevřít v programu&#8221; nastavit, aby se všechny soubory s příponou .pl spouštěly pomocí zmíněného programu perl.exe nebo wperl.exe.</p>
<pre>
<font color="#444444">#!/usr/bin/env perl
#GTK Hello world! by Harvie 2oo9

</font><strong>use</strong> strict;
<strong>use</strong> warnings;
<strong>use</strong> utf8;
<strong>use</strong> Gtk2 <font color="a52a2a"><strong>qw</strong></font><font color="4444FF"><strong>(</strong></font>-init<font color="4444FF"><strong>)</strong></font>;

<strong>my</strong> <font color="#2040a0">$builder</font> = Gtk2::Builder-&gt;<strong>new</strong><font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>;
<font color="#2040a0">$builder</font>-&gt;add_from_file<font color="4444FF"><strong>(</strong></font><font color="#008000">'hello.ui'</font><font color="4444FF"><strong>)</strong></font>;

<strong>my</strong> <font color="#2040a0">%widgets</font>;
<strong>foreach</strong> <strong>my</strong> <font color="#2040a0">$widget</font> <font color="a52a2a"><strong>qw</strong></font><font color="4444FF"><strong>(</strong></font>window1 button1 entry1<font color="4444FF"><strong>)</strong></font>
<font color="4444FF"><strong>{</strong></font>
	<font color="#2040a0">$widgets</font><font color="4444FF"><strong>{</strong></font><font color="#2040a0">$widget</font><font color="4444FF"><strong>}</strong></font>=<font color="#2040a0">$builder</font>-&gt;get_object<font color="4444FF"><strong>(</strong></font><font color="#2040a0">$widget</font><font color="4444FF"><strong>)</strong></font>;
<font color="4444FF"><strong>}</strong></font>

<font color="#2040a0">$builder</font>-&gt;connect_signals<font color="4444FF"><strong>(</strong></font> <font color="a52a2a"><strong>undef</strong></font> <font color="4444FF"><strong>)</strong></font>;
<font color="#2040a0">$builder</font> = <font color="a52a2a"><strong>undef</strong></font>;

<font color="#2040a0">$widgets</font><font color="4444FF"><strong>{</strong></font><font color="#008000">'window1'</font><font color="4444FF"><strong>}</strong></font>-&gt;show<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>;

Gtk2-&gt;main<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>;
<strong>exit</strong>;

<strong>sub<font color="ff0000"> on_window1_destroy</font>
{</strong>
    Gtk2-&gt;main_quit<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>;
<font color="4444FF"><strong>}</strong></font>

<strong>sub<font color="ff0000"> on_button1_clicked</font>
{</strong>
	<font color="#2040a0">$widgets</font><font color="4444FF"><strong>{</strong></font><font color="#008000">'button1'</font><font color="4444FF"><strong>}</strong></font>-&gt;set_label<font color="4444FF"><strong>(</strong></font><font color="#2040a0">$widgets</font><font color="4444FF"><strong>{</strong></font><font color="#008000">'entry1'</font><font color="4444FF"><strong>}</strong></font>-&gt;get_text<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font><font color="4444FF"><strong>)</strong></font>;
	<font color="a52a2a"><strong>print</strong></font> <font color="#2040a0">$widgets</font><font color="4444FF"><strong>{</strong></font><font color="#008000">'entry1'</font><font color="4444FF"><strong>}</strong></font>-&gt;get_text<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>.<font color="#008000">&quot;</font><font color="#77dd77">\n</font>&quot;;
<font color="4444FF"><strong>}</strong></font>
</pre>
<hr />
<h3>Java</h3>
<p>&#8230;bude doplněno&#8230;<br />
(zatim to nevypada, ze by java-gnome podporovala GtkBuilder &#8211; misto toho se zatim placaji s LibGlade, takze to mozna potrva dele)</p>
<hr />
<h3>Python</h3>
<p>Python může být také zajímavý pro některé účely, osobně ale nemám rád jeho syntaxi, takže ho moc nepoužívám. Pro více informací o PyGTK se podívejte na <a href="http://www.pygtk.org/">http://www.pygtk.org/</a>, je tam návod na instalaci na Windows i na Linux, ale na Linuxu ho pravděpodobně už nainstalovaný máte, nebo je to otázka pár kliknutí myší v oblíbeném správci balíčků.</p>
<pre><font color="#444444">#!/usr/bin/env python</font>
<font color="#444444">#GTK Hello world! by Harvie 2oo9</font>

<strong>import</strong> <font color="#2040a0">gtk</font>

<strong>class</strong> <font color="#2040a0">Hello</font><font color="4444FF">:</font>

<strong><font color="ff0000">	def</font><font color="ff0000"> on_window1_destroy</font><font color="2040a0">(self, widget, data=None)</font>:
</strong>		<font color="#2040a0">gtk</font>.<font color="#2040a0">main_quit</font><font color="4444FF">(</font><font color="4444FF">)</font>

<strong><font color="ff0000">	def</font><font color="ff0000"> on_button1_clicked</font><font color="2040a0">(self, widget, data=None)</font>:
</strong>		<font color="#2040a0">self</font>.<font color="#2040a0">button1</font>.<font color="#2040a0">set_label</font><font color="4444FF">(</font><font color="#2040a0">self</font>.<font color="#2040a0">entry1</font>.<font color="#2040a0">get_text</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">)</font>
		<strong>print</strong><font color="4444FF">(</font><font color="#2040a0">self</font>.<font color="#2040a0">entry1</font>.<font color="#2040a0">get_text</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">)</font>

<strong><font color="ff0000">	def</font><font color="ff0000"> __init__</font><font color="2040a0">(self)</font>:
</strong>		<font color="#2040a0">builder</font> <font color="4444FF">=</font> <font color="#2040a0">gtk</font>.<font color="#2040a0">Builder</font><font color="4444FF">(</font><font color="4444FF">)</font>
		<font color="#2040a0">builder</font>.<font color="#2040a0">add_from_file</font><font color="4444FF">(</font><font color="#008000">&quot;hello.ui&quot;</font><font color="4444FF">)</font>

		<font color="#2040a0">self</font>.<font color="#2040a0">window1</font> <font color="4444FF">=</font> <font color="#2040a0">builder</font>.<font color="#2040a0">get_object</font><font color="4444FF">(</font><font color="#008000">&quot;window1&quot;</font><font color="4444FF">)</font>
		<font color="#2040a0">self</font>.<font color="#2040a0">button1</font> <font color="4444FF">=</font> <font color="#2040a0">builder</font>.<font color="#2040a0">get_object</font><font color="4444FF">(</font><font color="#008000">&quot;button1&quot;</font><font color="4444FF">)</font>
		<font color="#2040a0">self</font>.<font color="#2040a0">entry1</font> <font color="4444FF">=</font> <font color="#2040a0">builder</font>.<font color="#2040a0">get_object</font><font color="4444FF">(</font><font color="#008000">&quot;entry1&quot;</font><font color="4444FF">)</font>
		<font color="#2040a0">builder</font>.<font color="#2040a0">connect_signals</font><font color="4444FF">(</font><font color="#2040a0">self</font><font color="4444FF">)</font>

		<font color="#2040a0">self</font>.<font color="#2040a0">window1</font>.<font color="#2040a0">show</font><font color="4444FF">(</font><font color="4444FF">)</font>

<strong>if</strong> <font color="#2040a0">__name__</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#008000">&quot;__main__&quot;</font><font color="4444FF">:</font>
	<font color="#2040a0">main</font> <font color="4444FF">=</font> <font color="#2040a0">Hello</font><font color="4444FF">(</font><font color="4444FF">)</font>
	<font color="#2040a0">gtk</font>.<font color="#2040a0">main</font><font color="4444FF">(</font><font color="4444FF">)</font>
</pre>
<hr />
<h3>PHP</h3>
<p>Už jsem rozchodil PHP-GTK, takže přidávám i tento příklad. Můžete si všimnout mého svévolného rozmaru v používání PHP, založeného na nedostatku znalostí zvyků objektově orientovaného programování v PHP, protože je to snad poprvé, kdy se mi zdálo, že je v PHP třeba použít OOP (bez objektů by se z handlerů špatně přistupovalo k widgetům) a tak jsem se musel s některými problémy docela škaredě vypořádat po svém. Nicméně kdyby bylo PHP lépe promyšlené, tak by se i tento program obešel bez OOP podobně jako třeba v C.</p>
<p>Pokud to s programováním s GTK+ myslíte vážně, doporučil bych vám vyzkoušet i ostatní jazyky, tím vás ale rozhodně nechci od PHP nijak odrazovat. Pokud máte dobrý důvod používat PHP (i to je myslím možné), podívejte se na <a href="http://gtk.php.net/">http://gtk.php.net/</a> a <a href="http://php-gtk.eu/">http://php-gtk.eu/</a>.</p>
<pre><font color="#444444">#!/usr/bin/php -c/etc/php/php-gtk.ini
</font>&lt;?php
<font color="b000d0">//</font>GTK Hello world! by Harvie 2oo9

<font color="#2040a0">$app</font> = <strong>new</strong> HelloWorld<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>;
Gtk::main<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>;

class HelloWorld <font color="4444FF"><strong>{</strong></font>

	public <font color="#2040a0">$widgets</font>;
	public <font color="#2040a0">$builder</font>;

	function __construct<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font> <font color="4444FF"><strong>{</strong></font>
		<font color="#2040a0">$this</font>-&gt;builder = <font color="#2040a0">$builder</font> = <strong>new</strong> GtkBuilder<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>;

		<font color="#2040a0">$builder</font>-&gt;add_from_file<font color="4444FF"><strong>(</strong></font><font color="#008000">'hello.ui'</font><font color="4444FF"><strong>)</strong></font>;
		<font color="#2040a0">$builder</font>-&gt;connect_signals_instance<font color="4444FF"><strong>(</strong></font><font color="#2040a0">$this</font><font color="4444FF"><strong>)</strong></font>;

		<strong>foreach</strong><font color="4444FF"><strong>(</strong></font>array<font color="4444FF"><strong>(</strong></font><font color="#008000">'window1'</font>,<font color="#008000">'entry1'</font>,<font color="#008000">'button1'</font><font color="4444FF"><strong>)</strong></font> as <font color="#2040a0">$widget</font><font color="4444FF"><strong>)</strong></font> <font color="4444FF"><strong>{</strong></font>
			<font color="#2040a0">$this</font>-&gt;widgets<font color="4444FF"><strong>[</strong></font><font color="#2040a0">$widget</font><font color="4444FF"><strong>]</strong></font> = <font color="#2040a0">$builder</font>-&gt;get_object<font color="4444FF"><strong>(</strong></font><font color="#2040a0">$widget</font><font color="4444FF"><strong>)</strong></font>;
		<font color="4444FF"><strong>}</strong></font>
		<font color="#2040a0">$this</font>-&gt;widgets<font color="4444FF"><strong>[</strong></font><font color="#008000">'window1'</font><font color="4444FF"><strong>]</strong></font>-&gt;show_all<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>;

	<font color="4444FF"><strong>}</strong></font>

	function on_button1_clicked<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>	<font color="4444FF"><strong>{</strong></font>
		<font color="#2040a0">$this</font>-&gt;widgets<font color="4444FF"><strong>[</strong></font><font color="#008000">'button1'</font><font color="4444FF"><strong>]</strong></font>-&gt;set_label<font color="4444FF"><strong>(</strong></font><font color="#2040a0">$this</font>-&gt;widgets<font color="4444FF"><strong>[</strong></font><font color="#008000">'entry1'</font><font color="4444FF"><strong>]</strong></font>-&gt;get_text<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font><font color="4444FF"><strong>)</strong></font>;
		echo<font color="4444FF"><strong>(</strong></font> <font color="#2040a0">$this</font>-&gt;widgets<font color="4444FF"><strong>[</strong></font><font color="#008000">'entry1'</font><font color="4444FF"><strong>]</strong></font>-&gt;get_text<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>.<font color="#008000">&quot;</font><font color="#77dd77">\n</font>&quot; <font color="4444FF"><strong>)</strong></font>;
	<font color="4444FF"><strong>}</strong></font>

	function on_window1_destroy<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font><font color="4444FF"><strong>{</strong></font>
		Gtk::main_quit<font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>;
		<strong>exit</strong><font color="4444FF"><strong>(</strong></font><font color="4444FF"><strong>)</strong></font>;
	<font color="4444FF"><strong>}</strong></font>

<font color="4444FF"><strong>}</strong></font>
?&gt;
</pre>
<hr />
<h3>Ruby</h3>
<p>&#8230;bude doplněno&#8230;</p>
<hr />
<h3>C#</h3>
<p>&#8230;bude doplněno&#8230;</p>
<pre><font color="#444444">/*
pracuje se na tom...

compile with
mcs hello.cs -pkg:gtk-sharp-2.0
mono hello.exe
*/</font>

<font color="#2040a0">using</font> <font color="#2040a0">Gtk</font><font color="4444FF">;</font>
<font color="#2040a0">using</font> <font color="#2040a0">System</font><font color="4444FF">;</font>

<font color="#2040a0">class</font> <font color="#2040a0">Hello</font> <font color="4444FF"><strong>{</strong></font>

        <strong>static</strong> <strong>void</strong> <font color="#2040a0">Main</font><font color="4444FF">(</font><font color="4444FF">)</font>
        <font color="4444FF"><strong>{</strong></font>
                <font color="#2040a0">Application</font>.<font color="#2040a0">Init</font> <font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>

                <font color="#2040a0">Window</font> <font color="#2040a0">window</font> <font color="4444FF">=</font> <font color="#2040a0">new</font> <font color="#2040a0">Window</font> <font color="4444FF">(</font><font color="#008000">&quot;helloworld&quot;</font><font color="4444FF">)</font><font color="4444FF">;</font>
                <font color="#2040a0">window</font>.<font color="#2040a0">Show</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>

                <font color="#2040a0">Application</font>.<font color="#2040a0">Run</font> <font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>

        <font color="4444FF"><strong>}</strong></font>
<font color="4444FF"><strong>}</strong></font>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.harvie.cz/2009/08/nezarazeno/multiplatformni-aplikace-s-gtk-c-perl-java-python-php-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kdo nás zachrání? Psychopati!</title>
		<link>http://blog.harvie.cz/2009/07/podivnosti/kdo-nas-zachrani/</link>
		<comments>http://blog.harvie.cz/2009/07/podivnosti/kdo-nas-zachrani/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 15:32:37 +0000</pubDate>
		<dc:creator>Harvie</dc:creator>
				<category><![CDATA[podivnosti]]></category>
		<category><![CDATA[vesmír]]></category>

		<guid isPermaLink="false">http://blog.harvie.cz/?p=519</guid>
		<description><![CDATA[
Nedávno jsem četl článek o depresích napsaný Jiřím X. Doležalem (jehož názory sice respektuji, ale zdaleka ne v celém rozsahu). Ve článku byla pronesena zajímavá myšlenka &#8211; něco ve smyslu, že &#8220;deprese je cena, kterou musíme zaplatit za kreativitu&#8221;.

Nyní se objevují vědecké důkazy toho, že kreativita a schizofrenie jsou z velké části zapříčiněny stejným genem [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img221.imageshack.us/img221/1705/multiple2wosignsi8.jpg" style="float: left;" height="200" /><br />
Nedávno jsem četl článek o depresích napsaný <a href="http://jxd.cz/">Jiřím X. Doležalem</a> (jehož názory sice respektuji, ale zdaleka ne v celém rozsahu). Ve článku byla pronesena zajímavá myšlenka &#8211; něco ve smyslu, že &#8220;deprese je cena, kterou musíme zaplatit za kreativitu&#8221;.<br />
<span id="more-519"></span><br />
Nyní se objevují vědecké důkazy toho, že kreativita a schizofrenie jsou z velké části zapříčiněny stejným genem a proto se často objevují současně v různých kombinacích, v harmonii nebo i v disharmonii.<br />
<a href="http://science.slashdot.org/story/09/07/17/1824250/Creativity-Potentially-Linked-To-Schizophrenia?art_pos=1">http://science.slashdot.org/story/09/07/17/1824250/Creativity-Potentially-Linked-To-Schizophrenia?art_pos=1</a><br />
<a href="http://www.newscientist.com/article/dn17474-artistic-tendencies-linked-to-schizophrenia-gene.html">http://www.newscientist.com/article/dn17474-artistic-tendencies-linked-to-schizophrenia-gene.html</a></p>
<p>Můj osobní postřeh (nebo spíše náhled do budoucnosti) je takový, že v případě, že by došlo k násilnému a hromadnému omezování svobody občanů nějakou vládnoucí elitou (jako tomu bylo např. ve světě, který známe z Orwellova románu 1984), by se právě lidé s psychickými poruchami mohli stát tvrdým jádrem odboje proti systému spolu s lidmi, u kterých se samovolně vyskytnou velmi živé (nebo dokonce lucidní) sny, dojde u nich k náhodnému požití některého psychedelika, k některým z druhů epileptických záchvatů, psychospirituální krizi, nebo k libovolnému jinému náhledu do vnitřního vesmíru, kterému alespoň prozatím nemůže žádná vláda doopravdy zabránit. Fakt je, že mutace, ke kterým dochází při lidském rozmnožování nelze předvídat a myslím, že to platí i o klonování. Vždycky se někde najde nějaký &#8220;Neo&#8221;, který bude schopný vymanit se z matice.</p>
<p>Update: Pozn. autora: Popravdě je třeba říct, že deprese (a další psychické poruchy) nejsou neřešitelným problémem a už vůbec bysme si neměli myslet, že s depresí k nám přijde kreativita, nebo že nemůžeme být kreativní bez depresí. Pokud budeme s depresemi nebo jinými menšími psychickými nerovnováhami pracovat, je velmi pravděpodobné, že je po vynaložení odpovídajícího úsilí zvládneme. Pokud tedy bude některý psychický problém omezovat váš život, nebo snižovat jeho kvalitu či vaše zdraví, je bezpodmínečně nutné vyhledat odbornou pomoc. A i v případě, že nesouhlasíte s předepsanou medikací, je třeba všechny změny v užívání léků probrat s lékařem, věřím, že se pokusí nalézt léčiva, která vám budou vyhovovat co nejvíce.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.harvie.cz/2009/07/podivnosti/kdo-nas-zachrani/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Fakta: Chuck Norris vs. Linus Torvalds</title>
		<link>http://blog.harvie.cz/2009/06/linux-and-free-software/fakta-chuck-norris-vs-linus-torvalds/</link>
		<comments>http://blog.harvie.cz/2009/06/linux-and-free-software/fakta-chuck-norris-vs-linus-torvalds/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 23:19:16 +0000</pubDate>
		<dc:creator>Harvie</dc:creator>
				<category><![CDATA[GNU/Linux & free software]]></category>
		<category><![CDATA[překlady]]></category>

		<guid isPermaLink="false">http://blog.harvie.cz/?p=488</guid>
		<description><![CDATA[
Myslím, že každý zná alespoň základní fakta o Chucku Norrisovi. Nyní jsou zde fakta Linusovi Torvaldsovi!
Překlad z: http://www.linuxscrew.com/2007/10/28/fun-chuck-norris-vs-linus-torvalds/

Linus Torvalds jednou našel segmentation fault v binárce vesmíru.
Linus Torvalds může zabít Chucka Norrise pomocí kill -9.
Linus Torvalds nikdy nezemře, prostě jen vrátí nulu.
První program, který Linus Torvalds napsal měl umělou inteligenci.
Linus může dělit nulou.
Linus Torvalds používá Linux [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.linuxscrew.com/wp-content/uploads/2007/10/chuck_linus.jpg" style="float: left;" /><br />
Myslím, že každý zná alespoň základní <a href="http://necyklopedie.wikia.com/wiki/Chuck_Norris">fakta o Chucku Norrisovi</a>. Nyní jsou zde fakta <a href="http://necyklopedie.wikia.com/wiki/Linus_Torvalds">Linusovi Torvaldsovi</a>!<br />
Překlad z: <a href="http://www.linuxscrew.com/2007/10/28/fun-chuck-norris-vs-linus-torvalds/">http://www.linuxscrew.com/2007/10/28/fun-chuck-norris-vs-linus-torvalds/</a><br />
<span id="more-488"></span></p>
<p>Linus Torvalds jednou našel segmentation fault v binárce vesmíru.<br />
Linus Torvalds může zabít Chucka Norrise pomocí kill -9.<br />
Linus Torvalds nikdy nezemře, prostě jen vrátí nulu.<br />
První program, který Linus Torvalds napsal měl umělou inteligenci.<br />
Linus může dělit nulou.<br />
Linus Torvalds používá Linux ve svých náramkových hodinkách i v tousteru.<br />
Linus Torvalds nikdy nepřijímá chybové zprávy.<br />
Neexistuje žádná teorie pravděpodobnosti, existuje jen seznam událostí, kterým Linus Torvalds umožní nastat.<br />
Linus Torvalds nikdy nespí. Jen hackuje.<br />
Linus surfuje po webu s netcatem.<br />
Linus Torvalds může hrát 3D hry realtimovým interpretováním zdrojového kódu v jeho hlavě.<br />
Linus vynalezl <a href="http://en.wikipedia.org/wiki/Redpill">červenou pilulku</a>.<br />
Linus Torvalds nestudoval univerzitu v Helsinkách, univerzita v Helsinkách studovala Linuse Torvaldse.<br />
Linus Torvalds vyvinul programovací jazyk, vedle kterého vypadá Python jako děrné štítky.<br />
Linus Torvalds nepotřebuje bootovat.<br />
Linus reálný, dokud není deklarován jako integer.<br />
Linus nemusí splachovat záchod, jenom řekne “make clean”.<br />
Linus Torvalds nemá žádné závislosti.<br />
Linusovi Torvaldsovi stačí jeden pohled na tvojí plochu a hned ví, jaké porno jsi sledoval. V posledních deseti letech.<br />
Linus Torvalds <a href="http://xkcd.com/225/">spí s nunchuckami</a>.<br />
Linus může snadno zbohatnout pomocí CHOWNutí tvého bankovního účtu, ale nedělá to, protože v tom nevidí výzvu.<br />
Linus nepoužívá ke čtení manuálů program &#8216;man&#8217;, místo toho má přímo v hlavě program &#8216;god&#8217;.<br />
Linus Torvalds dokáže v hlavě propočítat všechny iterace nekonečné smyčky. Za pět sekund.<br />
Linus Torvalds už nenosí brýle, ne kvůli laserové operaci očí, ale protože si konečně správně nakonfiguroval xorg.conf ve svém mozku.<br />
Linus Torvalds může používat nice menší než -20.<br />
Linus Torvalds zásadně pracuje jen s neřipojenými disky.<br />
Linus Torvalds nedebuguje, jeho programy jsou vždy perfektní.<br />
Linus Torvalds umí <a href="http://www.strangehorizons.com/2004/20040405/badger.shtml">nainstalovat Linux na mrtvého jezevce</a>.<br />
Linus Torvalds nepotřebuje zálohovat, jen počká, až ho celý svět ozrcadlí.<br />
Linus Torvalds ovládá svět. Microsoft je jen rozptýlení, aby nikdo nepodezdříval nenápadného finského programátora.<br />
Linus Torvalds už má Linux 4.0, jen si ho nechává pro sebe, aby vytvořil napětí.<br />
Linus Torvalds nenavrhnul Linux, aby běžel na platformě x86, Intel navrhnul x86, aby bylo na čem pouštět Linux.<br />
Lidé se modlí k Ježíšovi, Ježíš se modlí k Linusovi.<br />
Linus se nestará o softwarové patenty, může kdykoli napsat `sudo mv /tmp/ms /dev/null`.<br />
Linus Torvalds má větší práva než root.<br />
Kdybys mohl číst Linusovy myšlenky, uviděl bys nekonečný proud binárního vědomí.<br />
Jazyk C museli vytvořit, protože Linus Torvalds vystrašil A i B.<br />
Linus má na klávesnici jen svě tlačítka &#8211; ‘0′ a ‘1′.<br />
Linusův kernel nikdy nepadá.<br />
Linus nedělá binárky pomocí GCC, on používá _write_.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.harvie.cz/2009/06/linux-and-free-software/fakta-chuck-norris-vs-linus-torvalds/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Kybernomád</title>
		<link>http://blog.harvie.cz/2009/05/cyberpunk-a-nostalgie/kybernomad/</link>
		<comments>http://blog.harvie.cz/2009/05/cyberpunk-a-nostalgie/kybernomad/#comments</comments>
		<pubDate>Mon, 11 May 2009 21:24:48 +0000</pubDate>
		<dc:creator>Harvie</dc:creator>
				<category><![CDATA[cyberpunk & nostalgie]]></category>

		<guid isPermaLink="false">http://blog.harvie.cz/?p=399</guid>
		<description><![CDATA[ Víte, že i sídliště mají svoje kybernomády? Krátká freestyle cyberpunková povídka podle skutečnosti. Stačí zavřít oči a věřit, že to tak je.

Je teplá letní noc a já stojím uprostřed parku, ten park ale není vidět. Všude je tma. Jen horizont září. Celý jsem obtočený sídlištěm. Některá okna blikají luminoforovou září, jiná sálají teplým světlem [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img49.imageshack.us/img49/4159/highway20at20night.jpg" style="float:left;" /> Víte, že i sídliště mají svoje kybernomády? Krátká freestyle cyberpunková povídka podle skutečnosti. Stačí zavřít oči a věřit, že to tak je.<br />
<span id="more-399"></span><br style="clear:left;" /><br />
Je teplá letní noc a já stojím uprostřed parku, ten park ale není vidět. Všude je tma. Jen horizont září. Celý jsem obtočený sídlištěm. Některá okna blikají luminoforovou září, jiná sálají teplým světlem žárovek. Fajn. Tady to udělám. Vytáhnu dva masivní elektroakustické měniče spojené ergonomickým mostem a připojím si je na mozek. Ještě trochu přitlačím, aby bylo spojení dokonalé. Dopiju a zmačkanou PET láhev hodím do koše. Chvíli hledám v hlavě svoje pocity, abych si je zapamatoval. Dnes naposledy. Příště znovu.</p>
<p>Sednu si na lavičku a pozoruji tmu. Tma je tak černá, že se do ní promítají moje myšlenky. Nachvíli se vrátím na břeh vnímání, abych si konečně pustil hudbu. Všechno plyne kolem, myšlenky se mihnou kolem stejně jako běžec, který proletěl kolem mne. Podle mých dřívějších zkušeností to byl dnes poslední noční sportovec, ale na to už nemyslím. Elektronická hudba si začíná pomalu podrobovat moji mysl. Nyní vidím vše jasně. PsyTrance i nalámané rytmy se vzájemně doplňují a já už zase stojím na nohách. Park i sídliště se nějak mimovýznamově podobají vesmíru. Jdu do tmy. Zavřu oči a hledám novou vizi když se nořím hluboko do svojí psychiky. Znovu je otevřu, ale realita ztratila význam. Koukám se přímo skrz reálný svět, který se odráží na hladině vesmíru.</p>
<p>Jdu dál parkem až na jeho okraj, kde potkám sídliště. Jdu nahoru po betonových schodech, ale ještě předtím mi černá kočka stojící na jejich vrcholu dá ránu proudem. Nedá. Nebyl to proud, to jsem se jen na zlomek vteřiny vrátil do reality. Jsem zpátky za realitou. Teď už zas koukáme skrz sebe. Napadlo mě, že možná i já jsem ta kočka i ten vesmír. Všechno v jednom kompaktním celku. Ani jeden z nás se nehýbá. Nemusí se hýbat. Přijdu ke kočce, která si mne nevšímá i přes lehkou nejistotu. Nedokáže říct kdo jsem já, stejně jako já nevím, kdo se skrývá za jejíma zeleně zářícíma očima. I tak něco tuším. Na konci schodiště pokračuji dál.</p>
<p>Jsem psychopat a proto jsem volný. Hledám toho blázna ve studně vlastní duše a nabízím mu pomocnou ruku. Vytahuji ho ven. Chci ho mít tady a teď. Uvědomuji si svojí schizofrenii a snažím se jí posílit, jsem někdo jiný někde jinde a chci aby mne to odneslo ještě dál. Začínám být paranoidní, ale nemám z ničeho strach. Nic totiž neexistuje. Každý člověk ve vesmíru, každá věc i každá entita existují jen v mojí mysli, můžu je popřít, podpořit, změnit. Na protějším chodníku jdou nějaký lidi a pořád se smějou. Smějou se mě? Mám totiž pocit, že mi čtou myšlenky. Možná se taky smějou na mě, protože já se na ně taky směju, zámávám a pozdravím je. Kontakt s realitou mě zas na chvíli rozhodí, ale jak o tom přemýšlím, jsem už skoro zpět. Hraju symfonii světa a svět je mým hudebním nástrojem. Na jednu stranu výdobytky komunistického urbanismu, na druhou stranu prostor pro fantazii. Sametově černé plátno čekající na bílou barvu.</p>
<p>Jdu dál skrz nekonečné sídliště, ohýbám si ulice v prostoru tak, aby vedly kam se potřebuju dostat. Chci jít hluboko do svojí hlavy, dráždit neurony, jejich synapse. Vznáším se těsně nad asfaltem ulice. Proplouvám městskou pouští jako kyber-nomád.</p>
<p>Cítím šamany minulosti i budoucnosti, tok informací skrz čas se střetává v jednom bodě v mojí mysli, v mém srdci. Tam, kde všechno končí, začíná i plyne. Vidím město z budoucnosti. Je všude kolem mě. Lidé cestují rychlostí světla po datové dálnici, která vede všude kolem mě. Nevidím je, jen cítím. Přemýšlím co asi dělají. Nakupují? Prostě <abbr title="Same Shit - Different Day">SSDD</abbr>. Říkám si nejdříve. Možná žijí v nějakých směšně malých buňkách těch budov okolo. Jsou tak velké, že ani nedoklédnu ke střeše. Možná se hádají, zápasí, milují se. Nic se nezmění. Je to jedno, lidstvo může zmizet, ale za nepředstavitelně dlouhou dobu se zase objeví. V absolutním vyjádření je celý vesmír naprosto jednoduchý.</p>
<p>Po dlouhé době zase začínám přemýšlet o lidech, které potkávám. Všechny vnitřnosti se mi kroutí. Moje tělo se snaží uvařit samo sebe jak se vracím do reality. Je to jak nějakej dojezd. Vyrovnání tlaku na palubě. V tom momentě není horší bolest než vidět svět kolem sebe. Stačí jedna titulní strana novin a cítím jak mi praská lebka. Už zase stojím bezbraný na poušti mezi lidmi co sami prohráli boj se sebou. Jdu si lehnout, chci zapomenout na to co se děje kolem.</p>
<hr />
<p><b>Update</b>: Před nějakou dobou jsem narazil na zajímavý odstavec v knize Victora Sancheze, který si tímto dovoluji zde citovat (nechci kvůli němu vytvářet nový článek a myslím, že sem patří):</p>
<p><i>Obava a archaické odmítání tmy je předsudek, kterého se můžeme zbavit, neboť stejně tak jako existuje noc a den, světlo a tma ve světě kolem nás, i my v sobě neseme ontologickou proměnlivost, tudíž přijmeme-li tmu jako přirozený stav, můžeme se jí přizpůsobit tím, že přejdeme do našeho &#8220;temného bytí&#8221;, které, nutno zdůraznit, nemá zhola nic společného s nesmyslným spojováním temnoty se zlem.</p>
<p>Je třeba mít na paměti, že nejsou-li předměty kolem nás vidět, neznamená to, že zmizí, nýbrž se změní v to, čím jsou ve tmě. A toto je nesmírně důležitý bod: svět, ani my, nejsme ve tmě stejní. Čaroděj si to uvědomuje, a proto má pro něj tma zvláštní význam. Ví, že v temnotě se oslabí přirozený popis světa a jeho tok v obvyklém vnímání, a že přirozená proměna světa za tmy i jeho vlastní proměna ve svou temnou bytost velice usnadňují pronikání do jiné reality.</i></p>
<p>(Victor Sanchez &#8211; Učení Dona Carlose)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.harvie.cz/2009/05/cyberpunk-a-nostalgie/kybernomad/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adresářová struktura na GNU/Linuxu a podobných systémech</title>
		<link>http://blog.harvie.cz/2009/05/linux-and-free-software/adresarova-struktura-na-gnulinuxu-a-podobnych-systemech/</link>
		<comments>http://blog.harvie.cz/2009/05/linux-and-free-software/adresarova-struktura-na-gnulinuxu-a-podobnych-systemech/#comments</comments>
		<pubDate>Mon, 11 May 2009 15:43:28 +0000</pubDate>
		<dc:creator>Harvie</dc:creator>
				<category><![CDATA[GNU/Linux & free software]]></category>

		<guid isPermaLink="false">http://blog.harvie.cz/?p=447</guid>
		<description><![CDATA[ Tento článek si klade za úkol co nejstručněji rozebrat systém uspořádání (rozmístění) souborů a adresářů v souborovém systému u většiny Linuxových distribucí.

Na Linuxu se setkáme s UNIXovým uspořádáním adresářů. Například na rozdíl od M$ Window$ je zde mnohem chytřejší práce s disky a dalšími úložišti. Nesetkáme se zde s žádnou složkou &#8220;Tento počítač&#8221;, ve [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img503.imageshack.us/img503/3318/directorytree3petitinveo.jpg" style="float:left;" /> Tento článek si klade za úkol co nejstručněji rozebrat systém uspořádání (rozmístění) souborů a adresářů v souborovém systému u většiny Linuxových distribucí.<br />
<span id="more-447"></span><br style="clear:left;" /><br />
Na Linuxu se setkáme s UNIXovým uspořádáním adresářů. Například na rozdíl od M$ Window$ je zde mnohem chytřejší práce s disky a dalšími úložišti. Nesetkáme se zde s žádnou složkou &#8220;Tento počítač&#8221;, ve které by se napevno objevovaly všechny disky pojmenované pomocí písmenek. Na UNIX-like systémech (jako je i GNU/Linux) místo toho máme jeden kořenový adresář, neboli také root (anglicky kořen &#8211; pozor. tímto pojmem se označuje více věcí. root je například také uživatelské jméno nejvyššího administrátora v systému, který může udělat absolutně cokoli). Na tento kořenový adresář je mapována jedna disková jednotka, tudíž vše co je na disku uloženo se zobrazí v kořenovém adresáři. Na tomto disku potom můžeme vytvářet další adresáře. Samozřejmě potřebujeme pracovat s více než jedním diskem, proto můžeme do prázdných adresářů připojit další jednotky.</p>
<p>Nyní se podíváme na to, jaké adresáře obsahuje většina Linuxových systémů.</p>
<h2>== Základní adresáře ==</h2>
<p><b>/</b> &#8211; root (kořenový adresář), obsahuje úplně vše ;o)<br />
<b>/boot</b> &#8211; obsahuje jádro systému, konfiguraci zavaděče a většinou je umístěn na zvláštním diskovém oddílu z důvodu rychlejšího startu systému<br />
<b>/sbin</b> &#8211; obsahuje základní systémové programy (příkazy), které může spustit jenom root (administrátor)<br />
<b>/bin</b> &#8211; obsahuje základní systémové programy<br />
<b>/lib</b> &#8211; obsahuje základní systémové knihovny a podpůrné programy<br />
<b>/usr</b> &#8211; obsahuje další programy (které nejsou nezbytné pro chod systému) a knihovny v dalších podadresářích <b>/usr/bin</b>, <b>/usr/sbin</b> a <b>/usr/lib</b>, které odpovídají adresářům <b>/bin</b>, <b>/sbin</b> a <b>/lib</b>.<br />
<b>/etc</b> &#8211; obsahuje nastavení systému a jednotlivých programů (které platí pro celý systém)<br />
<b>/home</b> &#8211; obsahuje domácí adresáře všech uživatelů kromě roota. V domácím adresáři je uloženo vše co uživatel na systému vytvoří, upraví nebo nastaví (kromě jeho hesla, které je v souborech /etc/passwd a /etc/shadow).<br />
<b>/root</b> &#8211; domácí adresář uživatele root. root jako jediný nemá domácí adresář v /home<br />
<b>/tmp</b> &#8211; adresář, kam může zapisovat každý uživatel svoje dočasné soubory (například nedokončené soubory při stahování z internetu,&#8230;). Tento adresář bývá často umístěn v paměti místo na disku. Tudíž do něj můžeme zapisovat (i ho číst) mnohem vyšší rychlostí, než kdyby byl na disku, ale při vypnutí počítače se jeho obsah smaže. Pokud bychom do něj uložili více souborů, než se vejde do paměti, bude jeho část nahrána do tzv. swapu na disk, ten bude při restartu opět přepsán jinými daty.<br />
<b>/var</b> &#8211; obsahuje různá data, u kterých se počítá, že se budou často měnit jako například tzv. &#8220;logy&#8221; (soubory, kam se zapisuje vše co se na systému děje &#8211; když se někdo přihlásí, změní heslo nebo jiné nastavení, atd&#8230;). Také zde nalezneme webové stránky (v případě, že počítač je webový server), databáze a podobně.<br />
<b>/opt</b> &#8211; obsahuje většinou velmi velké aplikace, které se instalují mimo správce softwarovýh balíků. Například komerční hry jako (Unreal Tournament 2007,&#8230;). Jinak je dobré snažit se instalovat software tam kam patří do adresářů uvedených výše. U her a podobného softwaru je tento adresář používán kvůli zjednodušení instalace.</p>
<h2>== Adresáře VFS (virtuálního souborového systému) ==</h2>
<p>Adresáře, kam je připojený nějaký VFS neobsahují soubory, které by byly skutečně uloženy někde na disku, ale soubory, pomocí kterých můžeme přistupovat k jiným věcem (hardware, běžící jádro a jeho moduly,&#8230;)</p>
<p><b>/dev</b> &#8211; obsahuje zařízení. na Linuxu se většinou uplatňuje pravidlo, že pokud možno vše je soubor. v tomto adresáři se tedy zobrazí nový soubor vždy, když připojíme k počítači nové zařízení. (např. /dev/input/mice je myš a pokud tento soubor přečteme, uvidíme spoustu nesrozumitelných binárních dat pokaždé, když pohneme myší&#8230;)<br />
<b>/sys</b> &#8211; obsahuje soubory pomocí kterých můžeme nastavovat různé systémové věci, je nutné si uvědomit, že tato nastavení se nikam neuloží a po restartu zmizí. Pro příklad můžeme nastavit sílu podsvícení displaye notebooku pomocí zápisu čísla od 0 do 9 na příslušného souboru, nebo v jiném souboru si zase přečteme teplotu procesoru, rychlost větráčku a podobně.<br />
<b>/proc</b> &#8211; zhruba podobný jako sys, obsahuje některá nastavení podobná /sys, hlavně ale také informace o běžících procesech (spuštěných programech), dá se z něj tedy zjistit, jaké programy běží, kolik zabírají paměti a podobně. Z procu se také dá zjistit, jak je na tom počítač s pamětí, jaký je v něm procesor, jak rychle procesor běží, ACPI rozhraní (opět teploty disků, procesoru&#8230;) atd&#8230;</p>
<h2>== Domovské adresáře ==</h2>
<p>Už jsem se zmínil, že v adresáři <b>/home</b> najdeme domovské adresáře všech uživatelů. Uživatel &#8220;harvie&#8221; má tedy domácí adresář &#8220;<b>/home/harvie</b>&#8220;, pokud je tento uživatel přihlášený, existuje pro něj zkratka &#8220;<b>~/</b>&#8220;, která ho do tohoto adresáře vždy zavede. Tudíž pro uživatele harvie je adresa <b>~/</b> stejná jako <b>/home/harvie</b>, ale pro uživatele root, který jako jediný standartně nemá domov v <b>/home</b> odpovídá <b>~/</b> adresáři <b>/root</b>. Domovské adresáře všech uživatelů jsou (vedle přihlašovacího shellu) nastaveny v souboru /etc/passwd.</p>
<p>Systém domovských adresářů je velmi praktický, protože obsahuje jen data vytvořená uživatelem a pokud ho tedy zazálohujeme, zazálohujeme jen důležité věci, o které uživatel stojí. Také je to výhodné např. při instalaci nového systému, protože je možné přejít na úplně jinou distribuci Linuxu, nebo celý systém reinstalovat a ihned po spuštění budou mít všichni uživatelé nastavený vzhled i všechny aplikace stejně jako před reinstalací, takže většinou ze začátku ani nepoznají rozdíl.</p>
<p>V domovském adresáři se nachází několik dalších významných složek:</p>
<p><b>~/Desktop</b> (např. <b>/home/UZIVATEL/Desktop</b>) &#8211; Položky plochy pro Gnome/KDE/Xfce a podobná prostředí<br />
<b>~/.config</b> &#8211; uživatelské nastavení programů &#8211; už jsem psal, že nastavení se ukládá do adresáře <b>/etc</b> , jenomže to platí pro celý systém, ale pokud uživatel chce mít jako jednotlivec nějaký program nastavený jinak, potom si jo může změnit zde. Starší programy byly (a jsou) zvyklé ukládat si svoje nastavení do složky pojmenované podle jména tohoto programu (např. <b>~/.mozilla/firefox</b>), dnes ale stále přibývá programů, které využívají možnost uložení <b>~/.config</b>.</p>
<p>Ostatní soubory, které si uživatel ve složce vytvoří jsou jeho vlastními a jejich uložení záleží na jeho vkusu&#8230;</p>
<h2>== Předpony souborů ==</h2>
<p>Všichni asi znají přípony ve jménech souborů jako .html nebo .mp3, na Linuxu se ale často používají také předpony (a to jak pro soubory, tak pro adresáře), existují asi 2:</p>
<p><b>nejakynazev</b> &#8211; obyčejný soubor nebo adresář<br />
<b>~nejakynazev</b> &#8211; záloha souboru <b>nejakynazev</b> (vznikne například předtím, než uložíme textový dokument <b>nejakynazev</b> v našem oblíbeném editoru)<br />
<b>.nejakynazev</b> &#8211; Skrytý/neviditelný soubor, uživatel je může vidět, ale pokud nechce, tak nemusí. většinou jsou tak skryté soubory a adresáře s nastavením, aby běžného uživatele nemátly a nerušily od práce (když si každý spuštěný program uloží svoje nastavení, tak většinou vznikne v domácím adresáři nepořádek, který je třeba oddělit od souborů, které uživatel vytvořil záměrně).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.harvie.cz/2009/05/linux-and-free-software/adresarova-struktura-na-gnulinuxu-a-podobnych-systemech/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
