A môžete si to všimnúť hneď po príchode. Praha vás síce privíta modernou hlavnou stanicou, stačí však vyjsť do jej hornej časti, a ocitnete sa v krásnej secesnej budove, pod ktorou bola postavená nová stanica:
Centrum mesta je plné krásnych budov a kostolov, ktoré krásne vyniknú ráno v svetle vychádzajúceho slnka:
Vidíme tu renesanciu:
Gotiku:
Baroko Rokoko:
A keďže je skoro ráno, tak skoro žiadnych turistov:
Okrem historických budov tu nájdeme aj novšie štýly, napríklad neorenesanciu:
A, samozrejme, secesiu:
Zaujímavosťou Prahy sú takzvané domové značky, ktoré pôvodne nahradzovali čísla domov a slúžili ako adresa:
Po Starom meste je možné sa dlho túlať a objavovať jeho uličky a zákutia:
My sa však vydávame ku Karlovmu mostu:
Z námestia pred ním sú krásne „pohľadnicové“ pohľady na Pražský hrad na opačnom brehu Vltavy:
Poďme však na samotný most:
Medzi sochami na ňom nájdeme aj Kalvária s hebrejským nápisom „Svätý, svätý, svätý, je Pán zástupov“:
Ale aj svätých Cyrila a Metóda:
Ale už sa blížime k azda najromantickejšej štvrti Prahý – Malej strane:
Pred ňou ešte vidíme kanál Čertovka, ktorý od Malej strany oddeľuje ostrov Kampa:
K tomu sa však vrátime o chvíľu. Zatiaľ prejdeme Malostranskou bránou:
Mala strana je plná úzkych uličiek a celá stojí na úpätí kopca:
Po týchto uličkách a námestiach, pomedzi barokovými kostolmi a meštiackymi domami, sa rútia električky:
A niekedy sa človek čuduje, že tam dokážu prejsť:
Dajú sa tu tiež objavovať nečakané zákutia a dvory:
A ak správne odbočíte, ocitnete sa vo veľmi pokojnom prostredí Vajanových sadov:
Kde môžeme pozorovať jeho obyvateľov:
Trochu vyššie je ďalšia krásna záhrada – Valdštejnská:
Neďaleko máme stale Vltavu a krásne pohľady na ňu:
Na chvíľu sa však vráťme naspäť. Ak z Karlovho mosta odbočíme ešte pred Malostranskou bránou, dostaneme sa na malebný ostrov Kampa:
Po Čertovke dokonca premávajú lode:
A žijú na nej vodníci:
Môžeme sa však vrátiť na Malú stranu, do jej južnej časti:
Tu nájdeme kúsok Stredomoria v podobe maltézskeho kostola. Kostol je celkom zaujímavý tým, že nebol dobudovaný, takže gotický vstup a veže vedú do záhrady a až za ňou je menší kostol:
Chvíľu sa môžeme túlať sa po krásnych uličkách:
A už sme znovu na Kampe. Tentoraz pred domom vodníkov z filmu Ako utopiť dr. Mráčka:
Dosť však bolo rieky. Poďme hore na Pražský hrad.
Dominantou hradu je gotická Katedrála sv. Vita, Václava a Vojtecha:
Zaujímavý je jej južný vchod s mozaikou posledného súdu:
Ohromujúca ja však aj z vnútra:
V rannom svetle vyniknú aj nádherné vitráže:
Pekné je aj okolie katedrály:
A tiež kráľovské paláce. Na nich je vidieť postupný historický vývoj. Napríklad tu nad gotickými oblúkmi sú už široké renesančné okná:
Zo severnej strany Pražský hrad stále vyzerá nie ako palác, ale ako skutočný opevnený hrad:
A za jeho stenami a priekopou sa prestierajú krásne Kráľovské záhrady:
S Letohradkom kráľovnej Anny, ktorý je niekedy označovaný za najkrajšiu renesančnú stavbu na sever od Alp:
A nemenej krásnou sálou pre hry s loptou (Míčovnu):
Odtiaľto sa tiež môžeme pokochať katedrálou z diaľky
Z okolia hradu sa tiež otvárajú krásne výhľady na celé staré mesto. Hlavne červené strechy Malej strany sú nádherné:
Na západ od Hradu sa nachádza ďalšia z historických štvrtí Prahy – Hradčany. Pred branou na Hrad sa rozprestiera mnoho honosných palácov. Najzaujímavejší z nich je asi renesančný Schwarzenberský palác s krásnymi sgrafito na fasáde:
Keď však prejdeme Hradčanmi ďalej a zabočíme doprava pred Černínskym palácom, ocitneme sa na Loretanskom námestí:
A za ním už namiesto palácov šľachty je kláštor Kapucínov:
A maličké domčeky menej majetných obyvateľov mesta:
Dnes si túto štvrť obľúbili aj umelci:
A už sme na malebnej uličke Nový svet:
Z Hradčan sa tiež vieme dostať na Petřin. Je to kopec na ktorom nájdeme vyhliadkovú vežu:
Observatórium:
A tiež nádhernú obrovskú ružovú záhradu:
A už je koniec mojej fotopotulky. A keďže je romantická, tak sa rozlúčime s Prahou v lúčoch zapadajúceho slnka. Cestou z Petřina môžeme prejsť okolo Strahovského kláštora:
A po Úvoze zídeme dolu do Malej strany:
Do videnia, Praha!
Fotografie sú z augusta 2022.
]]>The buttons on Zenith’s original ‘clicker’ TV remote were a mechanical marvel. Diaľkový ovládač Zenith Space Command z roku 1956 nepotreboval batérie, ani ste nim nemuseli mieriť na televízor. Zaujímavé technické riešenie využívalo ultrazvuk.
File over app. Steph Ango o dôležitosti kontroly nad súbormi, lebo aplikácie prichádzajú a odchádzajú, ale súbory zostávajú.
File over app is a philosophy: if you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you this freedom.
The Command Line Is the GUI‘s Future. Podľa Lukasa Mathisa súčasné jazykové modely umožňujú konečne vytvoriť rozhranie založené na príkazoch, ktoré bude veľmi mocné, ale zároveň jednoduché na používanie.
Blog Daniela Lemire, v ktorom publikuje zaujímavé články a programovaní a prehľady vedeckých publikácií z rôznych oblastí.
Cestou po Námestí Majstra Pavla sa dostaneme až ku renesančnej radnici.
Pokračujeme ďalej historickými uličkami až k Levočskému gymnáziu. Na zaujímavú historizujúca budovu zo začiatku 20. storočia nadväzuje gotický Kláštor minoritov.
Medzitým hmla ustúpila a my sme sa vydali skúmať uličky mesta plné sympatických starých domov a brán.
Jedná z nich má krásne, zrejme renesančné, maľby. Akurát veľká škoda, že je v dosť zlom stave.
Ale to sme už naspäť na hlavnom námestí, kde môžeme obdivovať krásny gotický portál Baziliky sv. Jakuba.
A znovu aj renesančnú radnicu s jej nástennými freskami.
Pokračujeme ďalej k okraju historického mesta. Levoča je výnimočná aj v tom, že má skvele zachované mestské hradby.
Pritom z vnútornej strany hradieb väčšinou tam nie je ani asfalt, takže to vyzerá celkom dobovo.
Fotografie sú z konca októbra 2022.
]]>
V centre mesta je množstvo pekných zákutí:
Hlavná ulica je zaliata slnkom:
Trochu architektúry 20. storičia:
Menej vydarený príklad súčasnej architektúry — nový komplex okolo Mlynskej bašty:
A hneď vedľa za plotom je útulná záhradka:
Hipsterské Košice (Tabačka Kulturfabrik):
Fotografie sú z konca júla a začiatku augusta 2020.
]]>dnf install texlive-collection-latexrecommended \
texlive-collection-langczechslovak
Okrem toho odporúčam nainštalovať latexmk, ktorý zabezpečí správne spúšťanie LaTeXu a súvisiacich nástrojov pre preklad dokumentu:
dnf install latexmk
Na inštaláciu doplňujúcich balíkov a štýlov pre LaTeX je možné použiť trik. Ak v dokumente použijete balík, ktorý nie je nainštalovaný, LaTeX vypíše chýbové hlásenie, kde uvedie aj názov chýbajúceho súboru, napríklad multirow.sty
. Ten môžete použiť namiesto názvu RPM balíka:
dnf install 'tex(multirow.sty)'
Funguje to vďaka tomu, že každý RPM balík špecifikuje sadu „schopností“ (capabilities), ktoré zabezpečuje a tie sa dajú zadať pri inštalácii namiesto názvu balíka. Balíky s komponentmi pre LaTeX definujú schopnosti pre poskytované súbory .sty
v tváre tex(súbor.sty)
. Viac o schopnostiach môžete prečítať v príručke k RPM.
VERIFY ERROR: depth=0, error=certificate signature failure...
) a to aj napriek tomu, že predchádzajúca verzia OS s nim nemála problém. Dôvod je ten, že Fedora 21 prestala podporovať VPN certifikáty používajúce algoritmus MD5, ktorý už dlhšiu dobu nie je považovaný za dostatočne bezpečný. Ak však musíte stále používať staršie certifikáty a nemate možnosť to nijak ovplyvniť, v tomto článku nájdete spôsob, ako toto obmedzenie (aspoň dočasne) obísť.
Daný problém je opísaný v hlásení v bugzille RedHatu, kde je uvedené aj riešenie: nastaviť premennú prostredia OPENSSL_ENABLE_MD5_VERIFY
. Podarilo sa mi tiež nájsť návod pre zapnutie podpory MD5 v NetworkManager, čo umožni pripájať sa na VPN priamo pomocou nastavení siete v Gnome. Jeho nedostatok je však v tom, že vyžaduje zmenu systémového konfiguračného súboru, ktorý bude prepísaný pri aktualizácii NetworkManageru.
Lepší spôsob spočíva vo vytvorení samostatného konfiguračného súboru, ktorý doplní štandardnú konfiguráciu. Potrebujete vytvoriť adresár /etc/systemd/system/NetworkManager.service.d/
a v ňom súbor md5vpn.conf
. Obsah súboru má byť takýto:
[Service]
Environment="OPENSSL_ENABLE_MD5_VERIFY=1 NSS_HASH_ALG_SUPPORT=+MD5"
Tento súbor doplní konfiguráciu uvedenú v /usr/lib/systemd/system/NetworkManager.service
. Podrobnejšie informácie o tom, ako je možné doplniť alebo upraviť štandardnú konfiguráciu služieb systemd je možné nájsť v manuálových stránkach.
Posledné, čo musíte spraviť je opätovné načítanie konfigurácie a reštartovanie služby NetworkManager pomocou príkazu systemctl
:
systemctl daemon-reload
systemctl restart NetworkManager.service
Celý proces konverzie sa skladal z dvoch krokov:
Príkaz git svn umožňuje používať Git ako klient pre Subversion. Je teda možné vytvoriť lokálny Git repozitár, ktorý bude kópiou Subversion repozitára a zmeny urobené v Gite je možné nahrať naspäť do Subversion.
Pritom musíte brať do úvahy to, že model ukladania histórie v Subversion je vo viacerých ohľadoch odlišný od Gitu. Napríklad, zatiaľ čo Git používa na označenie autorov revízii ich meno a e-mailovú adresu, Subversion zaznamenáva len ich prihlasovacie mena.
Na základný prevod som teda použil príkaz v tvare:
git svn clone -s -A authors.txt <svn-repository-url> \
<local-repository-path>
Prepínač -s
alebo --stdlayout
označuje to, že repozitár používa štandardné rozloženie s podadresármi trunk
, tags
a branches
a tie sa použijú pre správnu konverziu vetiev a značiek. Za prepínačom -A
alebo --authors-file=
je uvedený súbor s priradením mien a e-mailových adries autorov ich prihlasovacím menám v Subversion. Záznamy v tomto súbore sú v tváre:
svn-login = Meno <email>
Po tomto je repozitár konvertovaný a je možné začať jeho čistenie. Keďže git-svn zabezpečuje obojsmernú konverziu, do každej revízie sú zaznamenané informácie identifikujúce zodpovedajúcu revíziu v Subversion. Tie sú súčasťou komentára a začínajú reťazcom „git-svn-id:
“. Ja som neplánoval ďalej používať Subversion, takže tieto identifikátory boli pre mňa zbytočné. Na druhej strane som chcel zachovať pôvodné číslo revízie. Inšpirovaný článkom Treya Hunnera som ich nahradil za značky v tváre svn: <číslo revízíe>
pomocou príkazu:
git filter-branch -f --msg-filter \
'sed -E "s/^git-svn-id:.*@([0-9]*).*$/svn: \1/"'
Príkaz git filter-branch prechádza všetky revízie a upravuje ich komentáre pomocou zadaného programu. V dánom prípade je to jednoduché nahradenie textu pomocou regulárneho výrazu.
Pôvodné čísla revízii majú nielen historickú hodnotu. Subversion totiž podporuje aj revízie bez komentára a v danom projekte takýchto revízii bolo viacero. Tieto revízie teraz získali aspoň komentár s poradovým číslom v starom systéme.
]]>JavaScript bol vytvorený v roku 1995 v spoločnosti Netscape ako jazyk pre skriptovanie webových stránok na strane klienta. Ako spomína Brendan Eich, autor jazyka, pôvodne sa uvažovalo o zabudovaní do prehliadača jazyka Scheme. Ale počas vývoja bol niekoľko krát zmenený nielen názov jazyka ale tiež jeho koncept. Po dohode so Sun Microsystems sa rozhodlo, že jazyk sa bude volať JavaScript a bude sa podobať na Javu. Malo isť o akýsi doplňujúci jazyk pre Javu, určený pre menej skúsených programátorov.
JavaScript umožnil pridávať na stránky rôzne dynamické efekty, ako je napríklad kontrola správnosti vyplnenia formulárov na strane klienta alebo jednoduché animácie. Ale efekty vytvárané pomocou neho boli často rušivé a nevkusné.
Samotný jazyk tiež mál viacero nedostatkov. Navyše jeho implementácie v rôznych prehliadačoch neboli úplne rovnaké a v rozhraniach, pre manipuláciu s obsahom HTML stránky, boli značné rozdiely. Spolu to viedlo k zlej povesti JavaScriptu medzi programátormi.
Okolo roku 2005 sa situácia zmenila. S príchodom popularity AJAXu, technológie umožňujúcej asynchronnú komunikáciu klientského kódu so serverom, sa JavaScript začal dostávať do popredia. Vynikajúcimi ukážkami jeho možnosti boli služby Google Maps a GMail, ktoré predviedli možnosti interaktívnych webových aplikácií.
Popularita jazyka sa odvtedy zvyšovala. Vzniklo množstvo knižníc a rámcov (napríklad jQuery a Prototype), ktoré zakrývali rozdiely medzi rozhraniami v rôznych prehliadačoch a zjednodušovali mnohé operácie. To umožnilo jednoduchšie využívať bohaté možnosti poskytované JavaScriptom.
Aj napriek rozšírenosti JavaScriptu, dlhu dobu nebolo tak veľa ľudí, ktorí ho poznali dobre. Douglas Crockford ho dokonca označil za najviac nepochopený programovací jazyk. Jedným z dôvodov je to, že napriek syntaktickej podobnosti s jazykmi Java a C++, JavaScript sa od nich výrazne líši.
JavaScript obsahuje množstvo prvkov, ktoré ho radia k funkcionálnym jazykom. Funkcie sú v ňom prvotriednymi objektmi a je možné s nimi manipulovať ako s hodnotami. Podporuje tiež uzávery (angl. closure) — možnosť definovať funkciu vo vnútri inej funkcie s tým, že vnútorná funkcia môže pristupovať k lokálnym premenným vonkajšej funkcie (a to aj po tom, čo vykonávanie vonkajšej funkcie bolo ukončené).
Zároveň je to objektovo-orientovaný jazyk, ale pritom je značne odlišný od bežne používaných objektových jazykov. Namiesto dedičnosti na základe tried, používa prototypovú dedičnosť. Objekt dedí spoločné vlastnosti z objektu prototypu, ktorý je pripojený ku konštruktoru triedy.
Tieto vlastnosti pridávajú jazyku značnú flexibilitu, ale na druhej strane odlišnosti spôsobujú problémy a nepochopenie. Programátori vzhľadom na slovo „Java“ v názve jazyka a podobnú syntax, očakávajú podobné vlastnosti jazyka a pritom narážajú na nečakané problémy.
Napriek všetkým problémom sa JavaScript stáva stále populárnejším. Hlavným dôvodom je samozrejmé to, že je štandardným jazykom pre skriptovanie vo webových prehliadačoch. Pričom s príchodom skupiny štandardov HTML5 sa jeho možnosti v tejto oblasti značne rozširujú. JavaScript sa stál základom pre stále rastúce množstvo webových aplikácií, ktoré poskytujú čoraz bohatšie používateľské rozhranie v mnohých prípadoch už porovnateľné s bežnými grafickými aplikáciami.
JavaScript ale začal prenikať aj do iných oblastí, často spolu s HTML a CSS. Tieto technológie sa používajú napríklad na vytváranie widgetov pre Dashboard v MacOS. Je tiež hlavným jazykom pre vytváranie aplikácií pre mobilný operačný systém WebOS1 a jedným zo štandardných jazykov pre Metro — nové používateľské rozhranie pre Microsoft Windows. Je v ňom napísané aj nové rozhranie pre spúšťanie aplikácií a prepínanie medzi úlohami v prostredí Gnome 3. Nesmieme zabudnúť ani na to, že je populárnym jazykom pre rozšírovanie aplikácií.
A v neposlednom ráde JavaScript preniká aj na server. Tam sa v poslednom čase stáva populárnou platforma node.js. Jej výnimočnou vlastnosťou je originálny prístup k vstupno-výstupným operáciám a paralelizmu. Všetok kód napísaný programátorom v JavaScripte beží v jednom vlákne, ale na druhej strane všetky vstupno-výstupné operácie sú asynchrónne a vykonávané paralelne. Kód programu sa potom skladá z callbackov — funkcií ktoré sú volané po dokončení určitej operácie. Výhodou tohto prístupu je to, že zbavuje od obrovských problémov spojených s prácou s viacerými vláknami. Na druhej strane je programovanie s intenzívnym využívaním callbackov pomerne neobvyklé, ale pre programátorov v JavaScripte je tento štýl bežný, keďže sa používa aj na klientskej strane.
Ako je vidieť, JavaScript sa postupne stáva jedným z najrozšírenejších programovacích jazykov. Jeho oblasť použitia už nie je obmedzená len na webové prehliadače, ale preniká aj na servery, desktopy a mobily. Takýmto spôsobom má šancu dostať sa do pozície univerzálneho jazyka pre aplikačné programovanie. Túto pozíciu sa neúspešne snažila obsadiť Java.
Treba poznamenať, že budúcnosť WebOS je dosť neistá po tom, čo spoločnosť HP (súčasný majiteľ firmy Palm kde WebOS vznikol) oznámila o ukončení vývoja zariadení s týmto systémom. Zdrojové kódy WebOS ale majú byť zverejnené pod open-source licenciou. ↩
Nedávno som písal text, ktorý obsahoval veľa slov obsahujúcich spojovník. Napríklad „doménovo-špecifický“ alebo „jazykovo-orientovaný“. Sú to dlhé slová, preto je často potrebné rozdeliť ich na dva riadky.
LaTeX, ktorý obvykle veľmi dobre rieši takúto úlohu, tento ráz ostal bezradný. Takéto slová vedel rozdeliť len na mieste spojovníka. Pri tom dokonca porušoval Pravidlá slovenského pravopisu, v ktorých sa uvádza: „Ak zložené slová písané so spojovníkom rozdeľujeme na mieste tohto rozdeľovacieho znamienka, spojovník píšeme na konci prvého aj na začiatku nasledujúceho riadka …“
Ako teda vyriešiť tento problém? Po dlhom pátraní som zistil, že riešenie poskytuje balík babel zabezpečujúci podporu pre rôzne jazyky. V režime pre slovenčinu definuje špeciálnu kombináciu "=
, ktorá sa má uvádzať namiesto spojovníka. Takto označený spojovník sa potom správne rozdeľuje (podľa PSP) a navyše slovo sa môže rozdeliť aj na iných miestach.
Podrobnosti o spojovníkoch a iných príkazoch a špeciálnych kombináciách poskytovaných balíkom babel si môžete prečítať v jeho dokumentácii.
]]>Tak ako každá oblasť ľudského života aj programovanie je istým spôsobom spojené s filozofiou. V tejto práci sa pokúsim pozrieť na niektoré filozofické otázky, ktoré súvisia s programovaním.
Poznámka: Tento článok vznikol ako seminárna práca z predmetu Vybrané problémy filozofie.
Na začiatok sa pokúsim stručne vysvetliť čo je to vlastne programovanie. Počítačový program je vlastne postupnosť príkazov, ktoré má vykonať počítač. V tejto postupnosti sa dajú tiež definovať podmienky, opakovanie príkazov, práca s pamäťou počítača a reakcie na rôzne udalosti, ako stlačenie klávesy. Programátor túto postupnosť zapisuje ako text v jednom z programovacích jazykov. Programovacie jazyky sa odlišujú rôznou úrovňou abstrakcie, teda či je jazyk bližší mysleniu človeka alebo tomu ako funguje počítač. Text, ktorý píše programátor sa nazýva zdrojový kód, a ten sa potom pomocou špeciálnych programov prekladá do tvaru, ktorý dokáže vykonávať počítač – do strojového kódu.
Pojmom filozofia sa v súvislosti s programovaním často označujú určité základné princípy, ktorými sa programátori riadia. Mnohé programovacie jazyky a operačné systémy majú svoju filozofiu – princípy a hodnoty, na ktoré sa opierajú. Napríklad filozofia operačného systému UNIX sa podľa jedného z jeho autorov, Douga McIlroya, dá stručne vyjadriť tak:
Píšte programy, ktoré plnia jednu úlohu, ale ktoré ju plnia dobre. Píšte programy, ktoré budu spolupracovať s ostatnými programami. Píšte programy, ktoré spracovávajú textové prúdy, pretože tie sú univerzálnym rozhraním.
Iné technológie sa môžu opierať o iné princípy. Napríklad operačný systém Apple Macintosh stavia na prvé miesto jednoduchosť a estetickosť používateľského rozhrania, atď. Princípy, na ktorých je postavený operačný systém potom ovplyvňujú aj aplikácie, ktoré sú napísane pre tento systém. Podobne princípy programovacieho jazyka ovplyvňujú programy napísane v ňom (možno v ešte väčšej miere, keďže jazyk, v ktorom je myslenie vyjadrované, ovplyvňuje samotné myslenie).
Takéto princípy sú potom základom na vytváranie určitých kultúr okolo daného operačného systému, programovacieho jazyka alebo inej významnej technológie. Každá z týchto kultúr má svoje špecifické tradície a zvyky, dokonca môže mať svoj špecifický jazyk – slang, svoje legendy a hrdinov.
Jednou z takýchto programátorských kultúr je napríklad takzvaná „hackerská“ kultúra. Na chvíľu sa musím zastaviť pri slove „hacker“, ktoré sa v médiach používa v nesprávnom význame na označenie počítačového zločinca. Pôvodne, v počítačovej kultúre, toto slovo označovalo človeka, ktorého teší poznávanie detailov vnútorného fungovania programov, počítačov a počítačových sieti.
Hackerská kultúra vznikla a rozvíjala sa v 60-tých rokoch minulého storočia v laboratóriu umelej inteligencie MIT1 a na ďalších amerických univerzitách. Od vzniku počítačovej siete ARPANET (predchodca Internetu) bola táto kultúra s ňou veľmi tesne spojená. Počítačová sieť umožnila jednoduchú výmenu poznatkov a spoluprácu ľudí, ktorí sa nachádzali na vzdialených miestach.
Práve neohraničená výmena informácii sa stala jedným z hlavných princípov hackerskej kultúry. Jednou z príčin je asi to, že táto kultúra sa vyvíjala v prostredí univerzít, kde existuje tradícia pre takúto výmenu poznatkov.
Tvorivosť môže byť príspevkom spoločnosti, ale len v prípade, že spoločnosť môže slobodne využívať jej výsledky.
Richard Stallman — GNU manifest
Pre niektorých ľudí sa voľna výmena informácii stala viac ako užitočným pracovným nástrojom. Pre nich možnosť študovať ako fungujú programy a upravovať ich podľa svojích potrieb je etickou otázkou. Podobne ako vo vede sú všetky poznatky verejné pre prospech celej spoločnosti aj zdrojové kódy programov by mali byť verejné a autori programov by nemalí obmedzovať používateľov. Toto je cieľom hnutia slobodného softvéru, ktorého zakladateľom je jeden z hackerov z MIT – Richard Matthew Stallman.
Príbeh tohto hnutia sa začal z jednej laserovej tlačiarne v laboratóriu umelej inteligencie MIT, v ktorej sa často zasekával papier. To spôsobovalo pracovníkom laboratória dosť veľké nepohodlie, ktoré by sa ale dalo pomerne jednoducho vyriešiť. Stačilo by upraviť program ovládajúci tlačiareň, aby upozorňoval používateľov tlačiarne na zaseknutý papier. Lenže ku tomuto programu neboli dodané zdrojové kódy, takže sa nedal upraviť. Richard Stallman našiel človeka na inej univerzite, ktorý mal zdrojové kódy. Ale ten mu ich odmietol dať, keďže podpísal so spoločnosťou vyrábajúcou tlačiarne dohodu o nezverejňovaní. Pre Richarda Stallmana to nebola len malá nepríjemnosť, toto odmietnutie bolo pre neho ako zrada nielen jeho ale celej spoločnosti. Dohoda, ktorá núti odmietnuť pomôcť kolegovi bola pre neho neetická.
Stallman potom založil hnutie slobodného softvéru a sformoval jeho filozofiu. Softvér je slobodný ak neobmedzuje slobodu jeho používateľov, konkrétnejšie, ak poskytuje štyri základné práva:
Stallman založil projekt GNU, ktorého cieľom bolo vytvorenie slobodného operačného systému, a tiež napísal licenciu GNU GPL, ktorá mala chrániť slobodu používateľov. Jej základom je princíp nazývaný copyleft2, podľa ktorého, ak niekto použil kód slobodného programu, musí aj jeho upravená verzia byť pod tou istou licenciou. Tým sa má zabrániť tomu, aby niekto mohol zobrať slobodný softvér a ďalej ho šíriť už bez príslušných slobôd.
Softvérové spoločnosti sa ale snažia o čo najväčší zisk. Preto chcu čo najviac obmedziť práva používateľov. Tvrdia, že oni, ako autori, vlastnia softvér a preto majú ako jediní právo rozhodovať o jeho distribúcii a používaní.
Veľmi často počujeme o softvérovom „pirátstve“, o „krádeži“ softvéru. Softvér ale nie je hmotná vec, je to informácia v digitálnej podobe, ktorá sa dá jednoducho kopírovať a šíriť. Takže tým, že si niekto urobí kópiu niektorého programu, nikomu nič nezoberie. Zverejňované údaje o stratach spôsobovaných „pirátstvom“ sa zakladajú na predpoklade, že každý, kto si skopíroval program, by ho inak kúpil. To ale často nie je tak.
Tieto obmedzenia, ktoré sa snažia zaviesť mnohé softvérové spoločnosti sú neetické. Oni jednak zakazujú používateľovi zisťovať ako fungujú programy na jeho počítači a prispôsobovať si ich. Takže používateľ stráca kontrolu nad svojim počítačom a nad svojimi údajmi. Ale tiež zakazujú pomáhať iným ľuďom tým, že im poskytneme kópiu programu. Práva autora programu sa tu stavajú nad práva používateľov programu, nad pomoc blížnemu a nad prospech celej spoločnosti.
Stallman uvádza porovnanie programov s receptami. Podobne ako recepty aj programy predstavujú vlastne návod na vykonanie určitej činnosti. Je bežne, že ľudia si recepty medzi sebou vymieňajú, je to súčasť dobrých medziľudských vzťahov. Ľudia si tiež upravujú recepty podľa svojej chuti a vytvárajú nové recepty na základe starých. Predstavte si, keby vydavateľ knihy s receptami zakazoval povedať recept niekomu, kto si nekúpil knihu, alebo by zakazoval upravovať recept. Presne toto sa teraz deje s počítačovými programami – pomoc blížnemu sa označuje za krádež3.
Musím ešte vyvrátiť častý omyl, že hnutie slobodného softvéru je proti predaju programov. Tento omyl je spôsobený aj tým, že slovo „free“ v angličtine znamená okrem „slobodný“ aj „bezplatný“. Sloboda softvéru nie je o cene ale o právach používateľa. Aj keď zarábanie na slobodnom softvére je zložitejšie, mnohé spoločnosti ukázali, že je to možné a sú celkom úspešné.
Niektorí ľudia nesúhlasia so Stallmanovym ponímaním slobody. Podľa nich obmedzenia, ktoré kladie licencia GNU GPL ju robia menej slobodnou ako niektoré iné licencie, ktoré umožňujú robiť s programom úplne čokoľvek, pokiaľ sa ponechá zmienka o pôvodných autoroch. V chápaní hnutia slobodného softvéru ale sloboda nie je absolútna, je obmedzená slobodou ďalších ľudí. Preto by nikto nemal právo slobodu, ktorú sam dostal, odobrať iným, teda šíriť modifikovaný slobodný program pod inou – neslobodnou licenciou. Takéto obmedzenie slobody jednotlivca je potrebné kvôli zachovaniu slobody všetkých.
Ako určitá opozícia voči hnutiu slobodného softvéru vzniklo hnutie Open Source (otvorených zdrojových kódov). Predstavitelia tohto hnutia sa snažia zdôrazňovať najmä praktické výhody slobodného softvéru, ako je vyššia kvalita a bezpečnosť programov, ktorá pramení z verejného vývoja a zapojenia množstva dobrovoľníkov, ktorí kontrolujú a zlepšujú kód programov. Hnutie open source ale nespomína etické hodnoty slobodného softvéru, keďže s nimi nie všetci súhlasia, a tak by to mohlo obmedziť rozširovanie takéhoto softvéru. Stallman ale oponuje, že na zaistenie slobody používateľov z dlhodobého hľadiska je nevyhnutné ich naučiť vážiť si svoju slobodu a bojovať za ňu.
Môže sa zdať, že témy, o ktorých som písal, sa týkajú iba programátorov a používateľov počítačov. Ale počítače sú dnes už natoľko bežnou súčasťou života, že ovplyvňujú život skoro každého. Okrem toho, otázky, ktorým sa venuje hnutie slobodného softvéru majú celospoločenský dosah. Toto hnutie sa totiž snaží postaviť dobre medziľudské vzťahy nad komerčné záujmy. V súčasnej ekonomickej situácii to môže naznačovať cestu, akou by sa malo vybrať svetové hospodárstvo – cestu, na ktorej najdôležitejší je človek, jeho sloboda a dobre medziľudské vzťahy.