Tuesday, October 23, 2012

Česká programátorská klávesnice pro Mac

Už dlouho používám layout klávesnice "Česká programátorská" (Czech Programmers). Vývojář totiž potřebuje psát znaky jako []{}<>'#$ a to hodně a rychle. Ale také potřebuje psát znaky jako ěščřžýáí, protože o vývoji je potřeba komunikovat hezky česky. Jsou v podstatě 3 způsoby jak to řešit:
  • přepínat mezi anglickou a českou - po delším používání to je neskutečná otrava, každé přepnutí bolí, protože to je změna kontextu. Musím myslet na to, kterou klávesnici zrovna mám nebo sledovat ikonku jazyka. I v českém e-mailu chci psát třeba smajlíky a musím přemýšlet, jak se tyhle znaky na aktuální klávesnici píšou. Chyby jsou časté, takže to pak člověk vzdá a míň důležité e-maily a chaty píše "cesky".
  • používat klávesové zkratky pro speciální znaky na české klávesnici - lepší varianta, naučit se ty zkratky nedá tolik práce. Ale vývojář potřebuje více speciální znaky než háčky. Dlouhodobě to programování zpomaluje. Také zkuste přijít do internetové kavárny v zahraničí - pouze se znalostí české klávesnice budete mít s e-mailem problém.
  • Česká programátorská klávesnice - podle mě ideální kompromis mezi dvěma předchozími variantami: je to anglická klávesnice a když zmáčknete ALT, je to česká. Máte jenom jednu klávesnici, nepřepínáte. A protože háčky potřebujete méně častěji, psaní háčků přes ALT tolik nezpomaluje. Nevýhodou je dostupnost jenom pro Windows a Linux. A to se dnes mění.
Nastoupil jsem nedávno do firmy Inmite, kde většina zaměstnanců má po vzoru Googlu jablečné přístroje. A při prvotním nastavování mě nejvíc štvala klávesnice. Googlil jsem českou programátorskou, ale kde nic tu nic. Tak jsem si stáhnul pěkný program Ukelele a v něm vytvořil první českou programátorskou klávesnici pro Mac OS:

Stahujte zde (verze 0.2)

Featury:
  • plnohodnotná anglická (US) klávesnice jako základ
  • při stisknutí ALTu se píšou háčkovaná a čárkovaná písmena
  • funguje samostatná klávesa pro háček a čárku pro psaní např. ďťň
  • ALT+SHIFT+háčkované písmeno udělá velké háčkované písmeno
Co chybí:
  • ostatní znaky na české klávesnici, speciální znaky stejně píšu přes anglickou
Jak nainstalovat:
  1. Zkopírujte soubor s klávesnicí do /Library/Keyboard Layouts
  2. Zvolte klávesnici v System Preferences → Language & Text → Input Sources
Klávesnice je raná betaverze, dejte vědět jak to funguje v komentářích.

Sunday, December 11, 2011

TED - Get excited about science!

TED is a scientific conference - sounds boring and complicated right? But it's not an ordinary conference. All videos from the talks are free for everyone to watch, download, copy etc. All the talks are meant for audience used to YouTube - speakers don't expect too much prior knowledge, but they try to show, amaze and inspire - in max. 20 minutes. I have discovered TED just a few months ago, but it's already my new passion.

Topics of TED talks are really broad - not just about computers and technology as you might think. I really enjoy talks about psychology, education, food or architecture. Every college student can find talks from their respective field. And the speakers are really the smartest people on the planet - top scientists or famous people like Stephen Hawking or Larry Page.

You see a speaker on a stage and get sleepy because of your experience of boring 1.5 hour lectures at university? It's different! Time limit is 20 minutes, that's like one episode of Big Bang Theory (and that's what I do now, when I'm out of new TV series). Speakers are not trying to explain how things work in detail, but rather show new ideas, possibilities and accomplishments. Speakers' goal is to inspire and start a global conversation about their idea. For that their videos need to go viral - and any video doesn't go viral when it's boring or too technical.

Yeah, but what about if your English is not that good enough to understand talks about science? Good news, talks are using crowd-sourced translations of subtitles. Most of the talks are translated to many languages, including Czech. But I watch it usually with English subtitles, Czech ones distract me :-)

OK, so you might check out a talk or two? Start with these ones - my favorites. All of them are really "jaw-dropping":
  • How algorithms shape our world - you thought that artifitial inteligence is sci-fi or not significant? Complex algorithms are moving vast amounts of money right now. 
  • Best stats you've ever seen - third-world countries are not that poor as you might think - shown in a beautiful visualization.
  • Why work doesn't happen at work - If you want your employees to be creative, the workplace needs to change. Ever wondered why Google invests so much into offices? You will learn why banning Facebook at work is a WRONG idea.
  • The thrilling potential of SixthSense technology - wide-opening concept of new ways of interacting with machines and taking online into offline world.
  • Surprising science of motivation - traditional reward-punishment system doesn't work when you want your employees to be creative. Higher salary doesn't automatically mean better performance. Learn why.
  • Let's use video to reinvent education - great way how to teach kids really anything at school - use technology to humanize lessons! I wish I was learning with help of those videos.
  • A headset that reads your brainwaves - control computer with your thoughts - I like most how flexible is it - you can train it to react to any thoughts, not just some predefined ones.
  • The game layer on top of the world - great talk about gamification - how to use gaming principles in real-life software and influence people. Now I understand ideas behind Foursquare much better.

What's your favorite TED talk? Share in comments.


Sunday, July 17, 2011

Firefly & Serenity - English subtitles with Chinese translated

I just love Firefly - it's the kind of TV series you can watch over and over and every time it surprises you. The characters, originality, beliavable universe and humor - it's Joss Whedon's masterpiece.

Characters in the series speaks Chinese occasionally. It makes sense, exodus from old Earth was led by two strongest countries - USA and China. They don't say anything important in Chinese, it's usually when they get emotional and want to spit it out. The Chinese phrases are spicy, sometimes use very rude language. And being able to understand these phrases makes the show atmosphere even better.

There are some websites with translations from Chinese, but you don't want to stop the show, go to the website, read it and go back - that spoils the moment. What I really wanted was to see Chinese translation instantly. I haven't found this anywhere else, so I embedded translations into existing English subtitles. It's for both Firefly series and Serenity movie.

Download here
Download only Chinese translated (thanks to Jacob Kossman)

Note: People in Firefly universe doesn't speak just English and Chinese. I have found also one sentence in Czech and one in Russian. They are translated as well.

Enjoy the subtitles, now you have a reason to watch it all over again!

Wash: "Psychic, though? That sounds like something out of science fiction."
Zoe: "We live in a space ship, dear."
Wash: "So?"

Friday, April 22, 2011

Dlužníček - jak to vzniklo a moje plány

Dlužníček (v angličtině Settle Up) je Android aplikace pro správu dluhů a výdajů v rámci nějaké skupiny. V tomto článku nebudu popisovat aplikaci jako takovou (to si můžete přečíst na webu aplikace), ale popíšu vznik, kde jsem teď a co plánuji do budoucna.

Jak mě to napadlo? Problém "bordelu v účtech" jsem řešil už hodněkrát. Především na výletech našeho Tulák Hawai Clubu. Tento semestr studuji předmět KO - Kombinatorická Optimalizace. Je to docela obtížný předmět a spoustu lidí mělo problém vymyslet vhodné téma semestrálky. Měli jsme si vymyslet něco "ze života", kde by se řešil nějaký optimalizační problém. Vymyslel jsem si problém "rozpočítávání peněz" a v zadání zmínil, že by se to dalo implementovat jako Android aplikace, kdybych vymyslel nějaký rozumný algoritmus (ostatní semestrálky píšou v MatLabu).

Přišla obávaná první konzutace, kde cvičící obvykle zadání ztíží, někdy až tak že z toho je rázem úplně jiný problém. Můj cvičící se chytil myšlenky Android aplikace a navrhl ztížení - platby musí být možné zadat jen pro některé členy a musí být možno nastavit tolerance transakcí. Poradil taky se základním algoritmem na "kdo má komu kolik poslat". Přemýšlel jsem o algoritmu a přišel na vylepšení, které opravdu vždy vrátí minimální počet transakcí mezi účastníky. V tom mě to chytlo. Android mě baví, spoustu zkušeností jsem nabral celoroční prací pro startup Bondaii. Kreslil jsem si obrazovky a hrál si s ikonkami a texty. První verze byla za pár dní hotová. Hodně těžké bylo vymyslet správný název aplikace - je to dost důležité pro budoucí úspěch. S prvními screenshoty jsem šel za dvěma Americkými kamarádkami a dost důkladně jsme probírali možné varianty jmen. Nakonec vyhrálo slangové Settle Up (používá se hlavně když zavírají bar a barman chce po všech aby zaplatili svoje účty). To ale není moc známé slovo pro lidi, kteří nejsou native speakeři. Pro češtinu jsem proto vymyslel Dlužníček (ano, Poledníček byla moje inspirace), protože předpokládám že počáteční skupina uživatelů bude hlavně z Česka.

Jak jsem měl jméno, začalo mě to bavit čím dál víc. Aplikace konečně začínala být použitelná. Vydal jsem jí v den Piva s Googlem, protože jsem potřeboval prvotní feedback od účastníků. Dostal jsem návrhy hlavně na malá vylepšení UI, která jsou ale velmi důležitá. Tyto maličkosti jsou to, kvůli kterým máte aplikaci rádi a budete ji doporučovat dál. Dnes jsem vydal verzi s těmito vylepšeními a rozjel trochu marketing. Chci si na aplikaci vyzkoušet, jak správně marketovat Android aplikaci jako správný solopreneur (inspirací mi byla přednáška o solopreneurshipu v eClubu ČVUT). Takže jsem zřídil web, Facebook, Google Group a Twitter. Experimentuji taky s mobilní reklamou AdMob. Mám reklamu ve své druhé aplikaci GPS Averaging, dokonce i něco málo vydělává. AdMob má nyní skvělou funkci - House Ads. Můžete nastavit, že např. 50% zobrazených reklam bude reklama na jinou vaší aplikaci. A je to zdarma. Takže už směle inzeruji Dlužníčka. Opravdu jsem zvědavý, jak poroste zájem o aplikaci. Přihlásil jsem se s aplikací do soutěží aDevCamp App Contest a AppParade.

Co plánuji dál? Hlavní featura aplikace, na kterou se chci zaměřit je podpora více skupin. Často se pohybujete ve více sociálních skupinách a vedete si dluhy uvnitř těchto skupin. To bude hotové brzy. Potom už bude aplikace připravená na další velkou featuru - online skupiny. Proč by si měl každý vést dluhy sám? Např. na výletě pak budou moci platby zadávat různí členové skupiny z různých mobilů a vše se bude automaticky synchronizovat přes internet (i s buzzwordem Cloud Sync, server plánuji na AppEnginu). I online skupiny budou dále fungovat offline a budou se synchronizovat až budete online (v zahraničí můžete být bez netu). Tím se podle mě aplikace stane opravdu cool.

To ale není všechno. Až budu psát server, budu psát API hezky RESTful, abych mohl potom API k datům zveřejnit. Pak bude moci kdokoli napsat iPhone klienta, mobilní stránky, Chrome extension atd. A tím by se mohla aplikace slušně rozšířit. Až bude mít aplikace dost uživatelů, plánuji na ní taky něco vydělat. Aplikace bude ale vždy free. Plánuji integrovat AdMob reklamu a v menu nabídnout odstranění reklamy za nějakou malou částku (technicky přes In-App Billing).

Tak co myslíte? Má aplikace šanci se prosadit? Uvítám názory v komentářích.

Friday, August 27, 2010

Jak používat Facebook bez webu facebook.com

Facebook (FB) v dnešní době jede. Kdo na něm není, ochuzuje se o spoustu zajímavých informací nejenom od svých kamarádů. Na Facebooku mi ale vadí čas strávený na jejich webu. Využívají spoustu sociálních technik, které uživatele nutí být na webu co nejdéle = větší zisk z reklamy. Uživatel tak snadno podlehne "lajkování" stránek "které by se mu mohly líbit", "friendování" přátel, "které by mohl znát", hraní blbostí, které hrají jeho kamarádi atd. Tím ale já nechci trávit čas - chci sledovat, co je nového, komentovat, občas něco na FB napsat, chci chatovat přes Facebook chat, chci číst notifikace a chci vidět, jak se blíží eventy, kterých se účastním. A to jde v pohodě i bez webu facebook.com.

Nejdřív to nejdůležitější - sledování feedu vašich přátel. Objevil jsem skvělou webovou službu HootSuite. Ta umožňuje sledovat feedy z různých webových služeb na jedné stránce vedle sebe. Já přes to sleduji Facebook, Twitter a LinkedIn. Konkrétně u FB jde dělat všechno co na webu - náhledy fotek, komentování, lajkování. Publikování toho taky hodně umí - vygeneruje např. náhled odkazu. A hlavně si můžu vybrat, do jakých sítí chci publikovat, takže nemusím do všech sítí publikovat stejný obsah.

Facebook Chat používá dnes více lidí než ICQ. Jeho webové rozhraní je ale příšerné. Často se to odpojuje, někdy zpráva nedojde, někdy víckrát, hrůza. Naštěstí jde FB chat přidat do libovolného Jabber klienta. Já používám instant messenger Digsby, který už má FB chat zabudovaný (a spoustu dalších IM sítí). Pak vůbec neřeším, na jaké IM síti uživatel zrovna je.

Facebook Events (odmítám český překlad události, jsou to akce) jsou taky užitečná  věc. Organizace akcí je jednoduchá a jasně pak vidím kdo jde a kdo ne. Dají se jednoduše zorganizovat i masové akce. Abyste viděli, kdy akce bude a co se bude dít nemusíte chodit na facebook.com. Facebook umožňuje sdílet akce ve formátu iCal. Tomu rozumí různé kalendáře, já používám Google Calendar. FB akce mám pak přehledně ve svém kalendáři (a automaticky i ve svém Android mobilu). Odkaz na exportování akcí do iCalu najdete dole na facebookové stránce s akcemi. Nebo to lze taky provést přes službu FBCal, ta umí do Vašeho kalendáře přidat také narozeniny vašich kamarádů.

Poslední nutnou věcí jsou notifikace - je důležité vědět, když vás někdo otaguje na fotce, když vás někdo požádá o kamarádství, nebo reaguje na váš comment. Zde je nastavení jednoduché, Facebook umožňuje notifikace zasílat na e-mail, takže zamiřte do nastavení Facebooku.

Uvedenou čtveřici nástrojů používám už přibližně měsíc a jsem velmi spokojen. Neztrácím čas na webu facebook.com a přitom nepřicházím o nic, co Facebook nabízí. Tyto nástroje jsou v lecčems i lepší - ve feedu vidím i Twitter a LinkedIn, Facebook chat mám spolehlivý a integrovaný do IM a kalendář akcí mám více přehledný a synchronizovaný s mobilem.

Friday, June 11, 2010

Videa a fotky z celého roku v USA

Jsem zpátky z USA, kde jsem studoval na Kansas State University. Hodně jsem toho zažil a viděl a o mnohém vypovídají videa, která jsem natáčel. Zde jsou ty nejzajímavější z celého roku:













































No a jestli vás zajímají fotky, tak ty jsou všechny na mojí Picasse.

Wednesday, April 21, 2010

Wordpress jako CMS? Proč ne!

Dostal jsem zakázku vytvořit víceméně statické stránky, musejí ale být později administrovatelné přes web bez mé pomoci. Přemýšlel jsem, jestli to udělám v CakePHP, ale nakonec mi přišel jednodušší nějaký Content Management System (CMS). Hodně jsem slyšel o Wordpressu, ale to je systém především na správu blogu nebo internetového magazínu. Půjde nasadit i na statický web? Přišel jsem na to, že jde a velmi dobře.

Wordpress je open-source systém, který běží na PHP a MySQL, takže ho nainstalujete na každý běžný server. Instalace byla až trapně jednoduchá. Nakopíroval jsem tam soubory, zobrazil stránku v prohlížeči a Wordpress mě vedl vším nastavením za ručičku. Defaultně se ale Wordpress chová jako blogovací systém, na první stránce máte seznam posledních blogpostů. Jde tomu ale snadno pomoct. Wordpress podporuje dva typy příspěvků - Posts a Pages. Vás zajímají Pages, statické stránky. A v poslední verzi Wordpressu lze v nastavení zvolit jednu Page jako výchozí - seznam posledních blogpostů je pryč. Opět přes webové nastavení Wordpressu odstraníte widgety typické pro blog (archiv příspěvků, poslední kometáře) a přidáte widget se seznamem statických stránek, který bude vaše menu. A máte základ vaší webové stránky hotov.

S tím, že webová stránka beží na Wordpressu jsem najednou získal spoustu věcí navíc:

  • pěkné a přehledné administrační rozhraní
  • web je přístupný vyhledávačům a je validní
  • jednotlivé stránky mají pěkné URL
  • snadné nahrávání souborů a obrázků
  • přístup k rozsáhlé databázi pluginů a užitečných widgetů
O pluginech se rozepíšu více. V průběhu vývoje si zákazník vzpomene, že chce na stránkách třeba kalendář. Stačí projít databázi pluginů a vybrat si nějaký z mnoha kalendářů. Já si vybral jeden dobře vypadající a včetně administrace. Pluginy jsou otestované, funkční a ušetří vám spoustu práce. Pokud chcete Wordpress používat jako CMS, doporučuji plugin CMS. Předělá administrační rozhraní tak, že je orientován na Pages. Posts jsou potlačeny. A přidá do admin rozhraní další vychytávky typické pro správu CMS. 

Říkáte si, že to je všechno pěkné, ale chcete mít pod kontrolou design stránky? Wordpress na to myslí. Především má databázi témat, kde jedním klikem obléknete Váš web do pěkného hávu. Někdy ale chcete se na designu vyřádit sami. Nejlepší je vybrat si podobné téma Vašim představám a upravit ho. Můžete to dělat  přes skvělé administrační rozhraní, na soubory přes FTP nemusíte vůbec šáhnout. Až na úpravu témat potřebujete znalost HTML, CSS a trochu PHP programování. Na ostatní činnosti to vůbec není potřeba. Takže vytvořit web s Wordpressem zvládne i středně pokročilý uživatel webu bez programovacích znalostí.

S Wordpressem jsem spokojen, web je snadno rozšiřitelný a ušetřil mi spoustu času. Ne nadarmo ho k září 2009 používalo 202 miliónů webů na celém světě a to číslo pořád roste. Podívejte se, jak můj web nakonec vypadá a tady je screenshot z administračního rozhraní:



Thursday, March 25, 2010

Jak levně procestovat USA

Už jsem ve Spojených Státech tři čtvrtě roku a mám za sebou hodně cestování. Před začátkem školy jsme viděli New York City, na podzim jsme podnikli road trip do Kalifornie, před Vánoci autem na východní pobřeží, po Vánocích snowbordování v Coloradu a na jarní prázdniny road trip na Floridu. Jsme studenti a tak se každý ušetřený dolar hodí. V tomto článku se s Vámi podělím o mé poznatky - jak si za levno užít Ameriku.

Co vidět
Amerika je obrovská země. Plně si to uvědomíte jenom na vlastní oči. A je tu toho spoustu k vidění. Nejzajímavější jsou obě pobřeží, ale i ostatní části Ameriky stojí za to. Doporučil bych především národní parky a města.
Národní parky jsou překrásné a jejich návštěva vyjde levně. Pokud plánujete víc národních parků, vyplatí se koupit roční permanentku za $100. Dají se tam napsat dva lidi, takže bude platit až pro dvě auta. Jinak zaplatíte okolo $25 za auto do jednoho parku. Kromě národních parků zde najdete i státní parky, které stojí pakatel nebo nic a také skrývají krásné poklady.
Americká města jsou v lecčems podobná a mě osobně po chvíli mrakodrapy omrzely. Jsou ale města, která mají přesto svůj charakter a stojí je za to navštívit. Z těch měst, která jsem navštívil to jsou: New York City, San Diego, Los Angeles, Las Vegas, Washington DC., New Orleans.
Vyhnul bych se turistickým atrakcím jako velké zábavní parky, vodní světy atd. Pro studenta jsou předražené. Najdou se ale výjimky jako Kennedyho Vesmírné Centrum na Floridě. Naopak muzea jsou mnohem levnější a ve Washingtonu DC jsou úplně zadarmo!

Čím cestovat
Ač ceny letenek jsou docela nízko, vyhnul bych se létání, pokud to není nutné např. z časových důvodů. Nejlépe Ameriku poznáte autem. Celá infrastruktura je na autech postavená, takže i když někam přiletíte, stejně si budete muset půjčit auto. Autu nahrává výborný systém dálnic, levnější benzín a opatrnější řidiči a tím pádem bezpečnější jízda. Benzín je 2-3x levnější než v ČR. Vzdálenosti jsou mnohem větší, ale řidiči to ani tak nepřijde. Nastavíte rychlost na palubním počítači, sundáte nohy z pedálu a držíte volant rovně :-) Další výhoda je, že uvidíte spoustu států po cestě, nikoliv jenom tu nejvíc profláklou oblast.
Jak auto sehnat? Na kratší dobu si můžete auto půjčit, je to docela levné. Pokud jste v USA déle, určitě se vyplatí auto koupit. Můj kamarád koupil Forda Tauruse v dobrém stavu za přibližně $4000 a pravděpodobně ho za trochu menší cenu na konci prodá. Máte pohodlí vlastního auta a výrazně ušetříte. Dojet někam autem je vždy výhodnější než tam letět. A veřejná doprava kromě největších měst prostě není.

S kým cestovat
Cestovat sám je nuda, chce to kamarády. Jejich volbu nechám na Vás. Přišli jsme na to, že ideální počet lidí na road trip jsou čtyři. Čtyři se v autě vejdou pohodlně a benzín vyjde levně. V pěti už by to bylo mačkání, jak s kufry tak na sedačkách. Dvě nebo víc aut bych nedoporučoval, protože čim víc lidí, tim se hůř domlouvá kam se pojede. Být ve čtyřech se vyplatí i kvůli ubytování - viz níže.

Kde spát
Pokud cestujete do oblasti, kde je teplo, doporučuji stan. Stan koupíte levně nebo Vám ho někdo půjčí. Ušetříte výrazně. Většina národních a státních parků má vyhrazená místa na kempování. Zaplatíte okolo $5 za auto a máte místo v lese se sedačkou a grilovacím krbem. Blízko měst se dá spát také v kempech. Vyjde to levněji než motel a občas to jde i zadarmo. Kempy totiž večer zavírají a otvírají až kolem osmé ráno. Pokud přijedete za tmy a pak si přivstanete, tak není nikdo kdo by po vás chtěl zaplatit.
Ale ne vždy to ve stanu jde a je také dobré se vysprchovat a zasurfovat na internetu. Na to jsou ideální motely. Osvědčilo se nám střídat noc ve stanu s nocí v motelu. Po celé Americe je síť motelů Motel 6. Mají nízké ceny a přijatelné vybavení pokojů. Jsou u každého většího města. Dostanete pokoj s koupelnou a dvěmi velkými postelemi. Tam se pohodlně 4 lidé vyspí. V tomto případě Vás to vyjde kolem $15 na jednoho. Bohužel ve většině motelů 6 se platí za wi-fi $3 na jeden počítač. Nejdřív proskenujte okolí, často chytíte internet od vedle zdarma. Jinak si to kupte na jeden počítač a potom přes kabel připojení nasdílejte na další počítače.
Někdy ale budete chtít bydlet v centru velkého města a nasát atmosféru. Tam motely 6 nejsou, ty jsou u dálnic. Volba tedy padá na hostel. Nejdřív si zmapujte terén na internetu. Nevěřte moc internetovým cenám, téměř vždy jsou v reálu vyšší. Normální cena je okolo $20 na noc na osobu. Budete ale v pokoji pro 6-10 lidí na palandě. Berte raději hostely patřící do nějaké skupiny, třeba Hostelling International. U no-name hostelu vás může čekat nějaké špinavé překvapení. Většina hostelů ale nabízí snídani a wi-fi zdarma a můžete tam potkat super lidi. Na pár nocí ve velkých městech se to určitě vyplatí.

Co jíst a pít
Nejvíc se rozhodně vyplatí fast-foody. Jsou všude, je to levné a víte, co můžete čekat. Jídlo je tučné, takže toho nemusíte jíst tolik. Když si vybíráte, soustřeďte se na tzv. Value Meals. Vždy se vyplatí dát si dva nebo tři value meals než normální menu. Třeba v Burger Kingu mají Whopper Jr. za $1, který se velikostí rovná normálnímu Whopperu v ČR. Ve Wendy's mají Jr. Bacon Cheesburger za $1.30. V McDonaldu mají dvě jablkové taštičky za $1. Dívejte se po speciálních akcích, třeba v Arby's mají 5 malých jídel za $5. Z toho se mohou najíst dva lidi. Dobrý nápad je také Subway - footlong bageta za $5. Pokud si tam necháte dát všechnu zeleninu, nemůžete to skoro sníst (a Subway je taky trochu zdravější). V Little Ceasars mají velkou pepperoni pizzu za $5 - z toho se taky nají dva lidi. Občas se vyplatí nakoupit suroviny ve Wallmartu a udělat si večeři na ohni nebo namazat bagetu.
Pijte vodu! To je velký rozdíl oproti Evropě, voda je ve všech fast-foodech zdarma. Stačí říct "cup of water" a dostanete vodu zdarma (pokud řeknete "water" dostanete placenou balenou vodu). Nápoje si také můžete neomezeně doplňovat. Proto se nevyplatí menu (obvykle stojí $6) - dva value burgery jsou víc než jeden normální, hranolky stejně nechcete a vodu máte zdarma. A máte večeři i s pitím za $2. S alkoholem se dělají hrozné obštrukce, dejte na to pozor. Musí Vám být nad 21 a musíte mít pas. Nakupujte v Liquor Store, protože pivo z Wallmartu má snížené procento alkoholu. Vyplatí se víno v takové velké krabici s pípou za $13. Stačí pro 4 lidi a je dobré. Popíjejte ale jenom na pokoji nebo v přírodě kde si jste jistí, že nikdo nepřijde.

Tyto rady jsme dodržovali na našem posledním road tripu z Kansasu na Floridu a se vším všudy (doprava, jídlo, ubytování, vstupy, Kennedy Space Center) nás to vyšlo přibližně na $400 na jednoho. A že jsme si to užili! (video: část 1 / část 2)

Tuesday, August 18, 2009

Amerika a Američani

Jsem ve Spojených státech už skoro dva týdny. Měl jsem možnost poznat Manhattan v New Yorku a Manhattan v Kansasu – první typické velkoměsto, druhé typické maloměsto. Vypozoroval jsem několik zajímavostí o Americe a Američanech, o které bych se rád podělil.

Plýtvání, plýtvání, plýtvání

To mě zarazilo nejvíc. V USA se plýtvá vším a na každém rohu. Plýtvá se například:
- auty: rodiny mají minimálně aut jako lidí, klidně i dvojnásobný počet aut než lidí
- místem: města jsou rozlehlá, ulice široké, zahrady obrovské
- elektřinou: všude je klimatizace, moc se nezhasíná
- benzínem: všichni mají velké bouráky a pickupy
- vodou: Každé spláchnutí na záchodě sebere tak 5 litrů vody
- jídlem: V restauracích lidé většinou jenom něco nakousnou, nechají to na stole a jdou si pro něco jiného.

Jídlo

Jídlo v USA je dobré. Neměl jsem ještě nic co by mi nechutnalo. Chutě jsou výrazné, dost jídla je odtučněné, ale dohání se to cukrem. Běžná praxe ve většině restaurací a fast-foodech je all-you-can-eat bufet. Přijdete do restaurace, zaplatíte jednu taxu a můžete jíst co se do vás vejde. Včetně neomezeného pití. Je to skutečně nezvyk oproti ČR. Ke každému jídlu je spousta příloh, salátů, omáček, dortů, neomezené zmrzliny atd. Jídlo je levné, dobré a je ho opravdu hodně. Musím se tu začít krotit a pořádně sportovat :)

Stereotypy platí

Koukáte na americký film a říkáte si, že ve skutečnosti je určitě všechno jinak? Ve většině případů to opravdu tak je. Třeba černoši: Mluví svým nezaměnitelným slangem, mladí se přes den flákají u basketu a večer v kroužcích po ulicích, když jedou po městě mají naplno zapnutý hiphop, když se hádají s bělochem, běloch je automaticky 'rasist' atd. Jdete po městě a všude vidíte předměty, místa a lidi "jako ve filmu". Ze začátku jsme se tomu smáli, teď už nám to ani nestojí za zmínku.

Pohodlnost

Různé vynálezy sloužící k pohodlí jsou někdy až absurdní. Dostávají mě záchody – ve škole je máme na fotobuňku, takže se po tom co vstanu automaticky spláchnou. Ale to samé se stane když se předkloním, takže mě to jednou osprchovalo :) Nebo někde místo umyvadla jsou jenom dvě díry ve zdi. Tam strčíte ruce a automaticky vám je to namydlí a ze všech stran umyje. Znáte McDonalds drive-thru? Tady mají drive-thru banku. Všechno co potřebujete v bance vyřídíte z auta. Mohl bych pokračovat... Ale něco se i hodí – třeba u každého sportoviště je voda na pití zdarma – to přijde vhod.

Přátelskost

Američané jsou hodně přátelští. Lidé se dívají do očí, i neznámí se zdraví, ptají se 'How are you?', v pohodě si pokecáte s prodavačkou v obchodě, se servírkou, s bankovní úřednicí. Lidé jsou usměvavaví a snaží se maximálně pomoci a vyhovět. Možná to i trochu přehánějí, sama ta bankovní úřednice nám říkala že někteří lidé jsou až 'creepy friendly'. Obecně tu je přátelkost povrchnější, máte spousty "kamarádů", s kterými každý den prohodíte pár slov na chodbě.


Celý článek by mohl vyznít jako kritika USA, ale není to tak. Je to jiná kultura a rád tuto kulturu poznám. Všeho je hodně, všechno je větší, všude koukají příležitosti k aktivitě a lidé jsou přátelštější. To vidím jako největší plus, je skutečně velmi jednoduché se s někým seznámit a neztratit se tu.

Sunday, May 24, 2009

CakePHP: jak upéct PHP aplikaci snadno a rychle

Už od ledna tohoto roku si hraji s PHP frameworkem CakePHP. Kvalitních PHP frameworků je několik, já jsem hledal něco rozšířeného a s minimální dobou nutnou k pochopení. Byl jsem frameworkem příjemně překvapen a už mám za sebou dvě PHP aplikace v tomto frameworku. V tomto článku popíšu ty nejlepší featury Caku a uvidíte, že to je piece of cake.

CakePHP je hodně podobný frameworku Ruby On Rails (ROR). Částečně z něho vychází, ale není to úplná předělávka, protože jazyk PHP má svoje specifika stejně jako jazyk Ruby. Základní principy jsou ale stejné. Především to, že framework má konvence pro pojmenovávání všeho - tříd, tabulek v databázi, sloupců v databázi, proměnných atd. Důležité je ale říct, že vývojář nemusí tyto konvence dodržovat. Když je ale dodržuje, ušetří si tím spoustu práce. Když je všechno pojmenované tak jak má, nastoupí spousta užitečných vlastností, které sami autoři v dokumentaci označují jako "magie". Většina podobných frameworků je založena na návrhovém vzoru Model-View-Controller, stejně tak Cake. Cake poměrně dost vývojáře nutí MVC používat, což je jedině dobře. Dřív jsem si to psal sám a ač jsem se o MVC snažil, mnohdy jsem ulítnul někam jinam. Výhoda těchto konvencí je jasná - kód je pak přehledný a snadno pochopitelný pro jiného vývojáře. Framework tak odstraňuje vlastnost PHP, kdy je jednu věc možno "naprasit" spoustu způsoby a kód je pak velmi nepřehledný. Abych to shrnul - Cake přebírá hlavní výhody Ruby On Rails, ale je to PHP (něco co znáte) a také odpadají problémy s hostingem.

Když jsem s Cakem začínal, překvapila mě podrobná dokumentace CookBook (kuchařka). Není to strohá referenční příručka ale ani spousta zbytečného textu ala Microsoft Help. Je to pěkně stručně psané a u všeho jsou příklady, které lze hned kopírovat a použít. Celá příručka je dobře hiearchicky rozdělená a dobře se čte. Navíc framework má za sebou hodně silnou komunitu. Na serveru Bakery je spousta článků které popisují konkrétní příklady a problémy z praxe a jak je vyřešit v Caku. Takových serverů je víc: Když jsem něco nechápal, vždy se stačilo zeptat Googlu.

Jak začít? Byl jsem až překvapen jak to je jednoduché. Stáhnete si distribuci, zdrojáky nakopírujete na localhost. Spustíte program do příkazové řádky, který se jmenuje "cake". Nebojte nemusíte si pamatovat žádné příkazy, program se na všechno ptá a vy jenom odpovídáte. Nastavíte přístup k databázi, název a cestu k vašemu projektu a cake vygeneruje potřebné adresáře a soubory. Cake podporuje snad všechny myslitelné databáze, má nad databází objektovou abstrakci, takže změna databáze znamená pouze přepsání jednoho slova v konfiguraci. Máte už v databázi nějaké tabulky? Super, tak pro ně uděláme web. Cake stejně jako ROR podporuje metodu zvanou scaffolding. Stačí pro každou tabulku vytvořit controller a model a tadá, máte vygenerovaný kompletní CRUD (create read update delete) nad tabulkou. A to včetně stránkování a pěkného defaultního vzhledu. Jak vytvořit controller a model? Předpokládejme že vaše tabulka se jmenuje users. V adresáři controllers/ vytvořte soubor users_controller.php s obsahem:

<?php

class UsersController extends AppController {

var $scaffold;

}
?>

a v adresáři models/ vytvořte soubor User.php s obsahem:

<?php

class User extends AppModel {
}
?>

Nyní v prohlížeči zadejte http://localhost/users a budete koukat. Alespoň já jsem koukal jako puk. To, co mi vždy trvalo spoustu hodin a hrozně mě nebavilo tady už je hotové. A pokud jste udělali něco špatně, například špatně nastavili přístup k databázi, Cake vás nenechá na holičkách. Vypíše pěknou a přesnou chybovou hlášku, kde je napsáno v jakém souboru na jaké řádce máte co upravit. A jak vidíte z URL, Cake se také stará o pěkné adresy pomocí mod_rewrite. Pěkné, nemyslíte?

Scaffolding je ale pouze tak na ukázku. Vy potřebujete mít plnou kontrolu nad view, modely a controllery abyste mohli napsat plnohodnotnou PHP aplikaci. V jiných frameworcích musíte všechno psát od nuly, v Caku ne. Opět nastupuje skvělý program pro příkazovou řádku "cake". Na příkazové řádce se přesuňte do adresáře vašeho projektu. Poté zadejte příkaz "cake bake" (upéct koláč:D). A můžete vyrábět modely, controllery a view jak na běžícím páse. Program se vás ptá na podrobnosti a vy odpovídáte. Nejdřív je dobré upéct modely. Zde se vás program zeptá na vztahy mezi modely (tabulkami). Cake podporuje základní vztahy belongsTo (N:1), hasMany(1:N), hasOne (1:1) a hasAndBelongsToMany (N:N). To určitě nadefinujte u všech tabulek, později to ušetří hodně práce. U modelů se vás program ještě zeptá na omezení pro jednotlivá data - např. minimální a maximální počet znaků, ale jsou i složitější vzory jako "email", "číslo kreditní karty" atd. Vytvoření modelů proto trvá déle, ale controllery a view máte během chvilky. Pak zadejte do prohlížeče http://localhost a budete koukat podruhé. Máte hotový web nad celou databází, včetně CRUDu všeho. A to včetně vztahů mezi tabulkami! Tzn. Ve formuláři pro vytváření knihy bude rovnou <select> pro vybrání ke kterému autorovi patří. A když si prohlížíte autora rovnou uvidíte seznam souvisejících knih! Zkuste si zadat něco špatně do formuláře - jé ona funguje validace formulářů podle těch kritérií co jste zadali při tvorbě modelu! A koukněte do kódu. Je to všechno přehledné a připravené k úpravě. Tenhle způsob mi hrozně vyhovuje - nemám prázdný projekt kde musím studovat dokumentaci jak se to dělá a podle toho něco tvořit - tady už mám základ hotový a jenom upravuji pěkný přehledný kód a tím se rovnou učím "jak to dělat".

A to jsem možnosti Caku jenom nakousl. Obsahuje další samozřejmé věci - např. správu layoutů, můžete definovat layouty pro různá zobrazení. Správu přihlášení pomocí komponenty Auth - pokud máte databázi správně pojmenovanou (tabulka users, pole username a password), nemusíte ani nic nastavovat, stačí v controlleru definovat metody login() a logout(), vytvořit view pro logovací stránku a tadá, máte přihlašování a odhlašování. Nebo podpora lokalizace, když všechny texty opouzdříte funkcí __ (dvě podtržítka), jste připraveni na lokalizaci webu. Funkce funguje tak, že když najde jazykový ekvivalent, použije ho a když ne, vypíše to, co jste funkci zadali.

Líbí se mi také různí pomocníci, tzv. Helpery. Třeba HtmlHelper generuje pěkné a validní XHTML. Třeba zadáte příkaz $html->image('cake.png') a ono to vytvoří validní HTML obrázek s tím, že se nemusíte starat o URL obrázku i poté, co z localhostu přejdete na na nějaký hosting. Nebo FormHelper je úžasný. Formulář v Caku napíšete asi takhle:

echo $form->create('Building');

echo $form->input('name');

echo $form->input('address');

echo $form->input('public');

echo $form->input('accessible_from');

echo $form->input('company_id');

echo $form->end('Submit');

Tento kód vygeneruje validní XHTML formulář a políčka přizpůsobí typům z tabulky buildings. "name" je string, takže to bude běžný <input type="text" />. "public" je boolean takže to bude checkbox. "accessible_from" je datum takže to bude kalendářík. "company_id" je cizí klíč takže to bude <select> z výběrem existujících companies. Nutno říct že i texty jako nadpisy formulářových políček nebo texty chybových hlášek se inteligentně vygenerují podle databáze. Jak tento formulář vypadá můžete vidět zde.

A poslední věc kterou musím zmínit - jak v Caku získáváte data z databáze? Zapomeňte na SQL, to je moc složité :-) Řekněme, že chceme získat autora který má příjmení Herbert a všechny jeho knihy. V controlleru AuthorsController ve funkci view() napíšeme pouze tento příkaz:

$this->set('author',$this->Author->findBySurname("Herbert"));

Tato funkce vytvoří ve view proměnnou $author obsahující pole dat, které potřebujeme. Funkci findBySurname jsme nikde nedefinovali, máme jenom v databázi tabulku authors a sloupec surname. Cake poskládá SQL dotaz a to včetně všech joinů. Vše vrátí jako přehledné pole.

V souboru views/authors/view.ctp (view pro detail autora) pak už jenom vypíšeme pole foreachem:

echo $author['Author']['firstname'];
echo $author['Author']['surname'].'<br />';
foreach ($author['Book'] as $book)
{
echo '<b>'.$book['title'].'</b><br />';
echo $book['anotation'].'<br />';
}

A to jsem pouze nakousnul jenom ty nejvýraznější featury. CakePHP toho umí mnohem víc a jak budete web tvořit, budete je postupně objevovat. Nutno říct, že spousta věcí jde v Caku generovat, ale nemusíte nic z toho používat. Reálné projekty mají často specifika, na které třeba Cake nemyslí. Nevadí, vše je možné rozšířit a napsat po svém. Ale pak samozřejmě budete psát víc kódu. Například já jsem pracoval v projektu s PostGISem, který má vlastní SQL funkce, které Cake nevygeneruje. Vlastní SQL samozřejmě můžu použít, ale musím si potom například psát vlastní validaci.

Chcete vidět CakePHP v praxi? Pomocí něho už jsem vytvořil dva projekty - GPS hru Catch&Run a systém pro evidenci elektrických zásuvek Juice My Laptop. Catch&Run už je plně přizpůsobený web mým potřebám. Juice My Laptop je ještě v začátcích, je to z velké části vygenerované Cakem. Juice My Laptop jsem celkem tvořil asi 3 hodiny. A z toho hodinu jsem tvořil databázi a zadával vztahy mezi tabulkami. Nesrovnávám CakePHP s jinými PHP frameworky, protože s nimi nemám dostatek zkušeností. Ale s Cakem jsem naprosto spokojený.

No a třešnička na závěr - v celém projektu se tvorba webu přirovnává k pečení koláče. Pekařské termíny se prolínají dokumentací. Není nad to se při čtení dokumentace zasmát :-)

Tuesday, February 17, 2009

Patý semestr na STM – praktický a zábavný

Mám za sebou další semestr na ČVUT FEL STM – byl ve znamení praktických pokročilých předmětů, zahájení práce na bakalářce a objevení skvělého International Student's Clubu. Nastal také posun v přípravě nových programů – Fakulty Informatiky a Otevřené Informatiky na FELu. Tak jdeme na to.

V tomto semestru už se hodně projevily konkrétní zájmy jednotlivých studentů. Máme už poměrně velkou volnost ve výběru předmětů, tak spoustu mých kamarádů studovalo hodně odlišných předměty. To je ale určitě dobře, každý by měl dělat hlavně to, co ho baví.

Povinný předmět byl Semestrální projekt. Tady trochu selhala organizace, nikdo nám o tom nic neřekl. Chtělo by to třeba jednu přednášku o bakalářkách a tomto projektu. Ale poradili jsme si a informace zjistili sami. Většina z nás už si v září našla vedoucího práce pro bakalářku a zvolila si téma. Tento projekt jsme pak pojali jako zárodek bakalářky. Většina mých kamarádů nemusela ani nic dělat a dostala kredity zadarmo s tím, že bakalářku budou dělat příští semestr. Já jsem u svého vedoucího musel vypracovat podrobné zadání a analýzu bakalářky jako přehledný dokument. Takže docela pohoda, bavilo mě to.

Další povinný předmět z oboru Softwarové inženýrství se vlastně skládal ze dvou předmětů – Řízení SW projektů a Realizace programových systémů. Předměty měli společné dvojcvičení a přednášky oddělené. Měli jsme pracovat na softwarovém projektu, který na rozdíl od předmětu z třetího semestru měl mít funkční výstup. V týmech nás bylo docela dost, takže se nikdo extra nenadřel. Náš tým měl za úkol kontrolovat kód jakéhosi ovladače na bezdrátovou kartu pro Linux. Bylo nás hodně, tak jsme se rozdělili na „management" a „programátory". Já jako příslušník managementu jsem kódu moc nerozuměl, ale stačilo, abych vytvořil a přednesl pár prezentací. Zkoušky pak byly dvě, oboje z teorie, která je v tomto předmětu celkem intuitivní a dá se dobře naučit. Těmto předmětům by se dalo přezdívat „důl na kredity", měli jsme dokonce možnost nechat si uznat projekt tvořený v tomto předmětu jako Semestrální projekt (viz výše).

Dál budu psát o povinně-volitelném předmětu Tvorba mobilních aplikací. Byl to snad nejzajímavěji pojatý předmět, co jsem kdy studoval. Probíhal totiž formou hry. Na začátku jsme se rozdělili na týmy po 7 mi lidech. Každý měl na starosti jednu mobilní aplikaci. A byly to aplikace vskutku zajímavé – GPS navigátor, interaktivní čtečka QR kódů, rozpoznávání obrazců nakreslených v prostoru Wii ovladačem, zpracování infračervených signálů, rozpoznávání zvuků mobilním telefonem, Bluetooth lokalizátor a skládačka fragmentů obrázků stažených z internetu. Cvičení byla víceméně konzultační a pro testování našich aplikací. Bylo na nás, jakou platformu a provedení si zvolíme (záviselo to především na telefonu, který každý vlastnil). No a v zápočtovém týdnu proběhla velká hra. Běhali jsme s mobily po škole po připravených stanovištích a soutěžili s ostatními týmy. Klíčem k úspěchu byla daná mobilní aplikace – jak byla rychlá, jestli byla bez chyb, jestli měla intuitivní uživatelské rozhraní. Výsledky ve hře potom ovlivňovaly hodnocení studenta. Zkouška byla nepovinná ústní a když člověk překonal strach a přišel, mohl si známku jenom vylepšit.

No a nyní ke strašáku tohoto semestru – Administrace webového serveru. Předmět vypadal vskutku zajímavě – naučím se jak spravovat webový server Apache. Předmět ale byl mnohem těžší, než jsem si myslel. Cvičení byla ryze praktická – vždy jsme přišli k rozbitému webovému serveru, museli jsme ho spravit a potom vykonat sadu konfiguračních úkolů. Pro linuxové guru to nebyl problém ale já s linuxem zas takový kamarád nebyl, tak jsem pár prvních cvičení zápasil s banalitami jako jak kopírovat text z Firefoxu do mceditu a zpátky. Pak už mi to trochu uteklo a každé cvičení jsem stihnul jenom pár prvních úkolů. Dělala se semestrálka ve formě wiki článku týkající se předmětu a bylo nám nabídnuto, že jí můžeme i prezentovat a pak dostaneme body navíc. Ač jsem o to prosil cvičícího jednou osobně a dvakrát mailem, prezentace mi nebyla umožněna. Zkouška probíhala stejně jako cvičení – rozbitý server, úkoly, 3 hodiny. Pak byla ještě písemka z teorie a pouze a pouze na součtu z praxe a teorie záviselo hodnocení. Učil jsem se skutečně hodně, rozjel jsem si server na svém linuxu gOS, chodil jsem i do školy kde jsem si to zkoušel na místním Gentoo Linuxu. Ale z prvního termínu zkoušky jsem dostal za E, což jsem nemohl přijmout. Zasekl jsem se na problému, kde byly úmyslně špatná práva na přístup k adresáři o dvě úrovně výše než psala chybová hláška. A na tomto problému závisely i další úkoly. Strávil jsem další 4 dny Apachem a nyní můžu říct, že umím vcelku obstojně nakonfigurovat Apache server. Druhý termín mě ale opět zklamal. Vše jsem nastavil a fungovalo mi to v prohlížeči. Hodnocení ale neprováděl člověk ale automatický skript. Ten měl v sobě chyby a za skoro funkční konfiguraci mi přidělil polovinu bodů. Po teoretickém testu jsem se domáhal spravedlnosti u cvičícího, který toho evidentně měl po celém dnu dost. Moje připomínky ale uznal a dostal jsem se alespoň na známku C. Suma sumárum: V tomto předmětu jsem se naučil hodně, ale organizace nebyla zvládnutá a spoléhání na strojové hodnocení tak komplexní záležitosti jako je nastavení serveru není dobrý nápad.

Tento semestr byl pro mě také hodně humanitní, chtěl jsem si to už odbýt. Historie 1 byla pohodička kde stačilo vytvořit jednoduchou prezentaci a když jsem poslouchal, dozvěděl jsem se zajímavé kapitoly z historie 20.století. Etika byl zajímavý předmět vedený římskokatolickým knězem. Na cvičení jsem pouze poslouchal, neškodilo by víc aktivity přenést na studenty. Hodina se potom většinou zvrhla na diskuzi všichni proti cvičícímu na téma Potraty/Eutanázie/Konzumní sex :-) Ale i přesto dokázal pan Slámečka chytře oponovat. Jako tělocvik jsem si tento semestr dal Lezení na stěně a poté, co jsem přemohl počáteční strach z výšek, mě to velmi bavilo.

Poslední předmět o kterém budu psát je Rétorika, což byl mimořádně povedený humanitní předmět. Byl o tom, co jsme se nikdy na střední neučili a byla to chyba – o lidské komunikaci. Také o sebeprezentaci a pochopení gest a jiné neverbální komunikace. A vynikající paní Pinková to dokázala pojmout jednoduchými hrami mezi námi studenty, kde jsme přímo na sobě zkoumali různá gesta a prováděli různé hlasové rozcvičky, úpravy dýchání atd. Bylo to velmi vtipné a poučné. Každý také několikrát během semestru musel přednášet před publikem na zvolené téma, což bylo velmi přínosné, zvlášť když následovala diskuze o přednostech a nedostatcích dané prezentace. Překvapilo mě, že se paní Pinková nebála i ožehavých témat a např. na hodině před Vánoci nám vysvětlila (a předvedla!) některé ženské a mužské neverbální signály sloužících obvykle ke svádění opačného pohlaví. Prostě předmět jak má být :-)

Ještě něco málo o tom, jak se to vyvíjí s Fakultou informatiky. Ta získává reálnější obrys, konečně je rozhodnuto o prostorách, FI bude mít pronajaté patro v krásné nové budově Národní technické knihovny. FI má nový web, ale stejně pořád fakulta není schválena. Magisterský program určitě nebude a bakalářský bude schválen až v dubnu. V té době bude mít většina středoškoláků rozhodnuto a nová fakulta bude těžko shánět studenty. Věřím ale, že se počáteční zmatky zvládnou a FI bude jednička pro studium informatiky v Praze.

V současné době lépe vypadá program Otevřená Informatika na FELu, který už je kompletně schválený. Já na něj budu nastupovat na magistra. Je více hardwarově zaměřený, ale každý si tu najde svoje. Bohužel tento program je zde na úkor programu STM, který je v propagaci a i jinde zatlačován do pozadí. Neví se, jak dlouho tento program bude ještě přijímat nové studenty.

A svůj blogpost bych chtěl zakončit názorem na International Student's Club. Do tohoto semestru jsem o něm nevěděl a docela toho lituji. Myslím totiž, že členství v ISC dodá studiu tu správnou šťávu! Když jste členové, stanete se tzn. Buddies. Staráte se o mezinárodní studenty, kteří přijíždí na naší univerzitu. Já jsem si vybral dvě Američanky, které jsou hrozně super. Pomohl jsem jim s papírováním, provedl je po Praze a nyní už mě čeká jenom chodit s nimi na party a jezdit na výlety :-) Je to samozřejmě nepovinné, ale je to skvělá příležitost jak zlepšit angličtinu a poznat lidi z celého světa. Zrovna včera byla „Integration party" v pražském P.M. baru, kde jsem potkal spoustu lidí a ještě dostal večeři od ISC zadarmo :-)

Monday, November 24, 2008

MyHeritage – rodokmen Vaší rodiny snadno a komunitně

V poslední době jsem se zabýval mapováním historie naší rodiny. Zjišťoval jsem informace od příbuzných, s dědou jsme byli v okresním archivu nahlížet do matrik a na nejstarší záznamy jsme si najali profesionálního genealoga. A pak jsem objevil komunitní web MyHeritage – můj výzkum nabral úplně jiný rozměr. Tvorba rodokmenu nebyla nikdy tak jednoduchá a příjemná. A hlavně – pomocí dalších uživatelů jsem se dostal ještě o 100 let více do minulosti!

MyHeritage mě úplně uchvátil – je to robustní komunitní web založený na nejmodernějších webových technologiích se spoustu funkcemi. To se projeví už při tvorbě samotného rodokmenu – vše je drag&drop, vkládání je inteligentní – např. doplňuje příjmení, pomáhá s vytvořením vztahů mezi lidmi, nabízí přidání různých faktů k osobám.

rodokmen.png

První mě zaujalo vkládání rodinných fotek – na fotkách můžete tagovat obličeje a ty se pak zobrazují přímo v rodokmenu. To by ale nebylo nic převratného, takhle to funguje například na Facebooku. Ale na MyHeritage otagujete pár lidí, systém se z toho naučí a další fotky už taguje za Vás! Někdy rozpozná i přímo osobu na fotografii (třeba z rodinné oslavy), někdy jenom označí, že na tomto místě je obličej a vyzve mě k zadání jména. Rodokmen s fotkami vypadá pak skvěle.

Zadával jsem do systému zatím známé údaje a najednou se vedle jedné osoby ukázala taková zelená ikonka – funkce SmartMatch zapracovala. To je asi nejlepší feature této stránky. Systém zjistil, že stejnou osobu už někdo v rodokmenu má a nabídnul mi porovnání rodokmenů – a skutečně! Zjistil jsem, že v roce 1720 bratr mého předka emigroval do Ameriky. Tam založil rodinu a jeho potomek nyní zadal svůj rodokmen na MyHeritage. Ale údaje o otci tohoto bratra se samozřejmě shodují! A to i dál do minulosti. Profesionálnímu genealogovi jsem platil za zjištění takhle dávných informací o jednom člověku 500 Kč. Tady jsem to měl zadarmo na pár kliknutí. Informace od toho genealoga jsem si ověřil, rozšířil a přidal ještě 3 generace předků do minulosti!

smartmatch.png


Procházel jsem webem dál a našel další užitečné funkce – třeba export rodokmenu do PDF. Čekal jsem, že tahle funkce bude placená, ale nikoli. Vše na tomto webu je do 500ti osob v rodokmenu zadarmo. A ty PDF vypadají graficky opravdu pěkně. Rodokmen lze rozsekat na A4 nebo lze vygenerovat jedno velké PDF! A těch nastavení – zvolit jde všechno od zobrazovaných informací po různá témata vzhledu.

U statistik ještě zůstaneme, těch je na webu také požehnaně – pomocí statistik jsem třeba zjistil: kdo žil nejkratší/nejdelší dobu, kdo se nejvíckát vdal/oženil, kdo byl nejstarší/nejmladší při narození dítěte, kdo měl nejvíc dětí, kteří dva partneři měli největší věkový rozdíl, průměrná délka života v mé rodině, nejčastější jména a příjmení mých předků, ...

A to není všechno. Web je třeba plně přeložen do češtiny – a to pěkně profesionálně, nikoliv tak nejednotně jako na Facebooku. Na webu je spousta obvyklých komunitních funkcí – vaši žijící příbuzní jsou automaticky zváni k přispívání do rodokmenu Vaší rodiny(pokud zadáte jejich e-mail). Nebo třeba feed změn na rodokmenu. Nebo třeba kravinky jako najdi 5 mě nejpodobnějších celebrit (podle podobnosti obličeje).

Pokud Vás rodinná historie alespoň trochu zajímá, určitě se podívejte na MyHeritage. Získáte tak skvělý nástroj pro správu Vaší rodinné historie a možná objevíte předky a i žijící příbuzné, o kterých jste neměli ani tušení.

(Můj rodokmen na MyHeritage)

Tuesday, June 10, 2008

Čtvrtý semestr na STM – matematika kam se podíváš

Mám za sebou další semestr na ČVUT FEL STM. Tento semestr byl oproti tomu minulému mnohem víc teoretický a matematický, nebylo to ale tak hrozné. Navíc v tomto semestru proběhla revoluce v podobě nové Fakulty Informatiky. Chcete vědět víc? Čtěte dál!

V tomto semestru se plně začaly projevovat rozdíly mezi jednotlivými obory, společných předmětů je pořád méně. Navíc jsme měli větší volnost ve volitelných a povinně volitelných předmětech. Z toho plyne, že málokdo měl stejné předměty jako já. Proberu nejdřív ty povinné předměty:

Diskrétní matematika – rovnou začneme s tím nejmatematičtějším předmětem. Probíralo se především počítání s čísly omezenými modulem, což se dalo použít v předmětu Bezpečnost přenosu a zpracování dat. Ač jsem se tohoto předmětu hodně bál, tak cvičení byly pochopitelné, psaly se dvě průběžné písemky (což je dobře protože jinak by mi všechno učení zbylo až na zkouškové) a při učení na zkoušku mě překvapily dobře zpracovaná skripta a hlavně sbírka příkladů napsaná „lidsky". Ač na prvních termínech byla docela vysoká úmrtnost, přišla mi takhle matematika lehčí než Úvod do algebry nebo Matematická logika

Bezpečnost přenosu a zpracování dat – zajímavý předmět o šifrách a síťové bezpečnosti. Velká část látky byla stejná s Diskrétní matematikou, protože šifry často počítají v nějakém modulu. Někdy dokonce byla matematika v tomto předmětu rozšířením toho, co jsme znali z DMA. Tyto předměty se tedy pěkně doplňovaly a bylo to takové zajímavé uplatnění teorie v praxi. Naučili jsme se jak jednoduché šifry tak běžně používané šifrovací algoritmy jako RSA, AES, MD5 atd. Jako studijní materiál byly místo skript velmi podrobné slidy. Nebylo úplně snadné algoritmy z nich pochopit, takže se studovalo stylem „najdu algoritmus ve slidech a pochopím ho na Wikipedii". Cvičení moc přínosné nebyly, nebyla na nich žádná motivace. Opět se ale naštěstí psaly dvě písemky v průběhu semestru. Celkově ale tento předmět hodnotím jako nejtěžší v celém semestru, hlavně kvůli spoustě vzorečků a postupů, které bylo nutné se naučit mechanicky nazpaměť.

Vytěžování dat – tento předmět nás učil jak získat ze zdánlivě nesouvisejících kvant dat zajímavé skutečnosti. Předmět se také zabýval neuronovými sítěmi. Velmi přitažlivá témata, ale zpracování špatné. O cvičeních skoro nikdo nechápal, co to vlastně děláme. A na jednom cvičení nám bylo oznámeno, že máme za 14 dní odevzdat semestrálku na reálných datech. Nikdo nevěděl jak na to, práce s programem Rapid Miner byla velmi zdlouhavá, protože nám na cvičeních nebyla pořádně vysvětlena. Spoluprácí s ostatními a metodou pokus-omyl se nějak podařilo semestrálku zvládnout. Jako studijní materiál byly k dispozici jenom slidy, které byly naprosto strašné. Slidy jenom z pár hesel, nebylo vůbec jasné, co je důležité, všude spousta nepochopitelných obrázků. A na internetu se toho o Data Miningu také moc nedozvíte. Tento předmět vyučovala katedra kybernetiky a závěr každé přednášky byla propaganda ve stylu „máme tenhle a tenhle výzkum, pojďte studovat k nám". Zachránilo nás jenom to, že zkoušející u zkoušky nedávali moc pozor...

Profesionální komunikace – takový trochu psychologický předmět o komunikaci mezi lidmi. Cvičení byly povinné a probíhaly formou diskuse. To ani neobtěžovalo a na konci semestru přišel zápočtový test. Před ním jsme museli povinně protrpět přednášku, která nám byla spíše pro smích. Test nebyl těžký, nebylo se na něj potřeba ani moc učit. K dispozici byly poznámky k přednáškám, které mě přišly jako středoškolská látka opepřená pár odbornými výrazy. Problémem testu bylo, že některé otázky byly dost sporné a známka se určovala jenom z tohoto testu. Možná by neškodilo zavést třeba referáty, kterými by šla známka vylepšit.

Teoretická informatika – tento předmět jsem si dal jako volitelný, především protože byl údajně potřebný pro magisterské studium na FELu. S příchodem Fakulty Informatiky už to pravděpodobně bude úplně jinak. Ale rozhodně jsem zvolením tohoto předmětu neprohloupil! Předmět byl takovým pokračováním Datových struktur a algoritmů a zabýval se hlavně grafy. Každé cvičení se psala minipísemka, takže jsem se připravoval průběžně a všechno chápal. Z velmi dobře zpracovaných slidů a cvičení jsem pochopil, že grafové pojmy do sebe krásně logicky zapadají a grafy se dá elegantně řešit spousta algoritmických problémů, například hledání nejkratší cesty. Rychle jsem pochopil věci, které mi byly na střední škole při řešení programovací olympiády vždy záhadou. Na cvičeních, proseminářích, za domácí úkoly a za semestrálku šly získávat body. Což mě bavilo a bodů jsem pak měl ke zkoušce docela dost. Jako semestrálku jsem natočil video o Dijkstrově algoritmu. Tenhle předmět mě prostě opravdu překvapil a bavil.

Programové rozhraní operačních systémů – povinně volitelný předmět, prakticky zaměřený. V první části se programovala libovolná aplikace v C++ s GUI a Thready. Výhodou bylo, pokud byla aplikace spustitelná na Linuxu i na Windows. Pracovalo se v trojčlenných teamech, takže to docela šlo. My jsme programovali SMTP Server. Druhý úkol byl zajímavější – opět v teamech nabourat připravený POP3 server a pomocí buffer overflow spustit na napadeném PC vlastní kód. Bylo k tomu potřeba disasemblovat binární kód v C++ a přijít na slabé místo programu. Docela náročný úkol, ale touto zajímavou cestou jsme se naučili, jak programy pracují na úrovni operačního systému a jak psát programy v C++ bezpečně. Co nás štvalo, byla přísnost hodnocení prací cvičícího T. Luska. Jinak ale hodnotím tento předmět kladně.

Další předměty – kromě naposled povinného tělocviku jsem si zapsal povinný letní kurz, kam jedem v létě a všichni se na kurs těšíme. Dále jsem chodil na přípravu na zkoušku CAE. Platilo se sice 2000,- za semestr, ale stálo to za to. Angličtina to byla skutečně kvalitní. Musíme mít také nějaké humanitní předměty, takže jsem chodil na Filosofii. Byla to docela flákačka, i když občas se strhla zajímavá filosofická debata.

Celkově tedy hodnotím tento semestr rozhodně kladně. V předmětech bylo hodně teorie, ale vždy bylo jasné, jak se dá teorie použít v praxi. Obecně mě těší, že se dá škole věnovat míň a míň času a můžu teď při škole i pracovat. V prvním semestru jsem chodil do školy každý den. Ve druhém semestru čtyři dny. Ve třetím a čtvrtém semestru tři dny. No a nyní mám rozvrh na další semestr (přednášky nepočítám) vtěsnaný do dvou dnů! A protože mám už docela dost kreditů, vypadá to, že poslední semestr se vejde do dne jednoho :-)

A jak to vypadá s budoucností STM? Jisté je to, že zanikne. Není jisté to, co tento program nahradí. V únoru děkan fakulty odvolal celé vedení katedry počítačů kvůli tomu, že připravovali Fakultu Informatiky. Tento krok vyvolal hlasitou reakci studentů. Je ostuda, že Praha oproti Brnu, Ostravě nebo Bratislavě pořád fakultu informatiky nemá. Hlavně díky podpoře studentů to tedy vedení katedry počítačů nevzdalo a děkan se s námi alespoň začal bavit. Plán nové fakulty má i podporu rektora ČVUT. Pokud akreditace dopadne dobře, nastoupíme na magistra rovnou na Fakultu Informatiky a otevře se také bakalářský obor, kam studenti STM automaticky přestoupí. Studenti oboru Výpočetní technika na programu EaI budou moci přestoupit volitelně. Vedení FELu navíc vypracovalo program Otevřená informatika. Je více zaměřený na hardware a kybernetiku, ale i "softvéráři" si tam najdou svoje. Je škoda, že se takhle dělí síly. Pevně doufám, že to s Fakultou Informatiky dopadne.

Monday, March 17, 2008

Google Talk - jak dát ICQ sbohem pomocí Jabberu

Už to bude víc než 6 let, co používám ICQ pro rychlou textovou komunikaci (instant messaging). Můžu tedy říct, že vím o tomto protokolu hodně. V poslední době už mě ICQ přestává bavit a postupně přecházím na otevřený komunikační protokol Jabber. Co mě na ICQ vadí? Jaké má Jabber výhody? Proč používám jabber klienta Google Talk? Čtěte dál.

Začal jsem ICQ používat v době, kdy o něm vědělo jenom pár lidí. V té době byl instant messaging relativně novinka a ICQ bylo jedno z prvních. Český národ je odjakživa spořivý a když se objevila možnost bezplatné náhrady smsek, ICQ se začalo rychle šířit. Později lidé už byli zvyklí a nechtěli přejít na nic jiného. To je podle mě důvod, proč je v České republice tato síť nejpoužívanější (v současné době okolo 2 miliónů uživatelů). V ostatních zemích tomu vůbec tak není, lidé používají mnohem vyspělejší protokoly (nejvíce Windows Live Messenger).

Mnoho lidí argumentuje nesmyslnými licenčními podmínkami provozování ICQ. Podmínky jsou sice vtipné, ale uživatele se nijak nedotýkají. Kdyby se jimi společnost vlastnící ICQ (AOL) řídila, rovnou může celé ICQ vypnout. Co mě na ICQ nejvíc vadí je jeho zastaralost a uzavřenost. ICQ byla ze začátku bomba, ale jeho vývoj těžce pokulhává. Mluvím tu především o oficiálním klientovi, který je velký, zatížený reklamou, nevkusnou grafikou a nepotřebnými funkcemi. Přijde mi, že přechod z verze 5 na verzi 6 byl spíš downgrade než upgrade. Z klienta zmizelo spoustu funkcí, mimo jiné tvorba vlastních statusů. Přibyly takové kraviny jako nativní otevírání odkazů v Internet Exploreru. Uzavřenost protokolu je také problém – ICQ běží na několika oficiálních serverech, které mají samozřejmě výpadky. Společnost AOL si pak může dělat co chce – např. přibližně před rokem se šířil vir, který pomocí ICQ posílal kamarádům odkaz na sebe. Jak to vyřešilo AOL? Vypnulo posílání odkazů v celé síti! Naprosto neprofesionální přístup.

Dobře, nelíbil se mi oficiální klient, začal používat multiprotokolový klient Miranda. Miranda je skvělá – pomocí volně dostupných pluginů si ji můžete plně přizpůsobit k obrazu svému. Přizpůsobení chce hodně času a trpělivosti na nastavování. To mě jako geekovi nevadí, běžné uživatele to asi odradí. Co mě ale vadí – i po stažení několika Miranda Packů, sáhodlouhém nastavování a ladění to nefunguje úplně dobře. Objevují se malé chybky, občas klient spadne. To se dá přežít. Co se ale přežít nedá, je pokud chcete pluginy nebo celou Mirandu upgradovat. Ukáže se, že pluginy jsou nekompatibilní a celá Miranda se sesype. Z toho důvodu jsem už dva roky používal pořád stejnou Mirandu, kterou jsem se bál upgradovat. Dlouho mě také vadila nemožnost posílání souborů v ICQ síti.

Díval jsem se tedy po jiném řešení a objevil jsem otevřený protokol Jabber. Otevřený znamená, že každý si může pustit svůj Jabber server. Jabber můžete začít používat tak, že se zaregistrujete např. na stránkách jabber.cz. Tento server podporuje také transport do jiných sítí, můžete tedy komunikovat i s lidmi např. z ICQ. Potom si stáhnete nějakého volně dostupného klienta. Nejlepší klient na Jabber je pravděpodobně Psi. Ani tento klient se mi ale moc nelíbí, není úplně dotažený do konce a obsahuje opět zbytečné funkce. To je důvod, proč už jsem na Jabber nepřešel dávno.

googletalkclient.gifUž dlouho používám Gmail a občas jsem používal i v něm zabudovaný chat. Vyzkoušel jsem, jak by se chatovalo pomocí programu Google Talk. Po jeho instalaci se chatování přeneslo do jiné dimenze. Google Talk je jako všechny služby Googlu – velmi jednoduchý na použití a vyladěný do detailů. Nemá žádné zbytečné funkce, umí prostě dobře chatovat. Spolupracuje s Gmailem, kde se všechna konverzace ukládá. Pokud v Gmailu vyhledáváte, automaticky se vyhledává i ve vašich chatech. Google Talk má příjemný jednoduchý design, je nenáročný na paměť, oznamuje nové maily na Gmailu. Chatování běží na Jabberu, spojíte s kýmkoli z této sítě (nebo i přes Jabber transport s jinými sítěmi). Také kvůli němu jsem začal používat Google Apps for your domain. Tato služba umožňuje využívat služby Googlu jako mail, kalendář nebo chat na vlastní doméně. Moje Jabber ID (JID) nyní není něco jako nick@reklamafirmy.com, ale pěkně me@destil.cz.

Google talk klient může klamat velmi jednoduchým vzhledem. Ale překvapí Vás, když začnete doopravdy s někým chatovat. Pokud má protějšek taky Google talk, můžete mu bezplatně zavolat. Volání je mnohem lepší než přes Skype – protokol, který jsem taky donedávna občas používal. Nezatěžuje vaši linku jinými uživateli, vše je automaticky nastaveno, zpoždění je minimální, přenos hlasu je plynulý a hlas zní přirozeněji. Rovněž posílání souborů je pěkně vyřešeno – běží pěkně rychle a má spoustu vychytávek. Např. pokud posíláte obrázek, zobrazí se přímo v chatovacím okně. Navíc tohoto klienta zvládne nainstalovat opravdu každý.

Google talk je proto podle mě nejlepší klient pro Jabber. Spousta mých kamarádů už Jabber také používá, ICQ tak můžu s čistým svědomím opustit.

Tuesday, January 29, 2008

Třetí semestr na STM – nejpraktičtější ze všech

Mám za sebou další semestr na FEL STM – tentokrát to byl velmi praktický semestr a ani to nebolelo. Navíc se v jeho průběhu rozhodlo o budoucnosti celého programu STM. Zajímá Vás jaké to bylo a bude? Čtěte dál!

V tomto semestru se cesty studentů na STM rozdělily na 4 obory. Největší zájem byl o obor Web&Multimedia těsně následovaný oborem Softwarové inženýrství. Menší zájem byl o obor Manažerská informatika a na obor Inteligentní systémy nastoupilo jenom okolo 15ti studentů. Tento obor by mohl být zajímavý, ale bohužel byl zřízen „na poslední chvíli". Já jsem si vybral cestu oboru Softwarové inženýrství s tím, že si nepovinně zapíšu některé předměty týkající se webu z Webu&Multimédií. Vyhnu se tak grafickým předmětům, které jsou ve W&MM povinné. Většina předmětů ale byla společná pro všechny obory.

Programování v jazyku v C++ byl čistě programovací předmět. Během semestru jsme nemuseli skoro nic dělat a o to byl pak těžší začátek ledna. Museli jsme odevzdat docela složitou semestrálku v C++, která musela být zkompilovatelná nejpřísnějšími kompilátory. Osobně jsem s jazykem C prožil spoustu bezesných nocí a vzpomínal na krásnou Javu. Možná by pomohlo, kdybychom na cvičení byli motivováni něco dělat díky bodům za aktivitu. Jinak byl ale předmět dobře připraven a materiály byly kvalitní. V zápočtovém týdnu se psala velká písemka, která byla de facto zkoušková. Měla dvě části – klauzurní a klasifikovanou část. Klauzurní se hodnotila jenom má zápočet/nemá a za klasifikovanou byly body na zkoušku. Vše bylo programování v C++ na papír, na což jsme dost nadávali. V klauzurní části jsem měl nějakou malou chybu, která by se hned po spuštění programu projevila. Papír bohužel spustit nejde. Naštěstí se vše dalo zachránit na opravném termínu, ale byly to horké chvilky. Obecně předmět hodnotím kladně, donutil mě naučit se v C++ a při neodfláknuté semestrálce se dal dát ze semestru.

Úvod do softwarového inženýrství je povinný předmět mého oboru. Při absolvování jsem váhal, jestli jsem si obor zvolil dobře. Předmět nás měl naučit analýze pomocí UML a vyzkoušet si práci v týmech. V 5tičlenných týmech jsme měli provést kompletní analýzu složitějšího softwarového projektu. UML nás ale nikdo neučil. Nakonec jsme sklouzli k tomu, že jsme psali texty, které byly „manažerské" a kreslili diagramy, které „vypadaly fakt dobře". Ale nikdo by podle nich žádný softwarový projekt nestvořil. Navíc v půlce semestru byl také klauzurní test (je/není zápočet), který některým týmům snížil počet členů. Na konci semestru se nám podařilo vygenerovat 100stránkovou pochybnou ale dobře vypadající dokumentaci. Zkouška pak byla docela v pohodě, protože sami zkoušející pořádně neovládali UML. Zkoušku složil nakonec ten, kdo byl sebevědomý a řekl: „Chci jedničku". Tento předmět mě skutečně nepřesvědčil, že analýza je u větších projektů potřeba a že to není jenom ztráta peněz a lidských zdrojů.

Tvorbu webových aplikací 1 jsem si zapsal nepovinně. Tento předmět mě velmi bavil. Byl jeden z mála, kde se na cvičeních něco dělalo. Učili jsme se klasickou kombinaci webových technologií XHTML+CSS+JS+PHP+MySQL. Učili jsme se ale vše pěkně tak, jak se v současné době má na webu programovat. I já, který s těmito technologiemi pracuji už dlouho jsem se něco přiučil – např. vychytávky v JavaScriptu, správné použití Model-View-Controlleru v PHP nebo použití šablon. Jako semestrálku jsem předělal moje fórum na destil.cz, což se hodilo. Navíc nepovinná bodovaná aktivita byla vypracovat článek na české Wikipedii o webových technologiích. To je myslím výborná myšlenka – studenti se něco naučí a zároveň pomohou rozšířit největší encyklopedii světa. Tento předmět mě opravdu moc bavil a díky bodům ze semestru jsem ani nemusel na zkoušku.

Počítačové sítě byl nejtěžší předmět tohoto semestru. V průběhu jsme museli absolvovat dvě praktické úlohy a naprogramovat dvě síťové aplikace. Praktické úlohy byly zajímavé – konfigurace Linux a Cisco sítě. Navíc v se síťovalo v týmech, kde vždy byl alespoň jeden, kdo tomu rozumněl. Programovací úlohy byly horší. První byla přenost souboru pomocí TCP. To v Javě není aní tak těžké, ale serverová strana se po nás chtěla vícevláknová se současným obsluhováním více klientů. Kdo Javu a vlákna moc neovládá, měl problémy. Takové věci by se podle mě neměly učit v Počítačových sítích. Druhá úloha byla ještě těžší – implementovat přenos souboru pomocí UDP protokolu, ale s detekcí a opravou chyb pomocí algoritmu "plovoucího okénka". Nikdo nám neřekl jak na to a samotný algoritmus je poměrně komplikovaný. Museli jsme toho opravdu hodně vygooglit a strávit několik nocí programováním a ještě mnohem víc nekonečným laděním...Opět si myslím, že programování by se mělo probírat jinde. Zkouška byla hardcore. Práce v semestru na ní neměla skoro žádný vliv a otázky byly velmi těžké, žádné ABCD. Navíc přednáškové slidy byly velmi nedostatečné – pouze seznam pojmů, nikoliv jejich vysvětlení. Nikdo moc takovou obtížnost nečekal a na prvních termínech byla úmrtnost okolo 70%. Potom se většina předmětu zalekla, začala googlit významy pojmů a vše vypracovávat na stm-wiki. Vedení vyšlo vstříc a další testy udělalo lehčí. Nakonec až na ústním dozkoušení se mi podařilo jedničku vybojovat, ale rozhodně to nebyla procházka růžovým sadem. Předmět hodnotím ale spíše kladně, naučil jsem se něco o vláknech, automatech (v Javě) a náročná zkouška mě donutila se něco o sítích doopravdy naučit.

Technologie XML byl hodně v pohodě předmět. Na cvičení se nemuselo nic dělat a semestrálka zabrala tak jeden den. Bylo pro ní přesně dané zadání podle kterého se postupovalo. Při tvorbě jsem se dozvěděl něco o užitečnosti XML, jeho validace, transformace a přístupu ke XML v Javě. Zkouška probíhala pomocí elektronického testu psaného z domova, který šel s pomocí kamarádů na ICQ bez problémů zvládnout.

Databázové systémy byl také velmi jednoduchý předmět. V semestru jsme trochu začali dělat na semestrálce, takže pak samotná tvorba semestrálky ani nebolela. Opět dobře připravený template na semestrálku, který se jenom vyplňoval. V předmětu jsem se dozvěděl jak pracovat s databází Oracle, pokročilé SQL dotazy a výhodu obrázkového E-R modelu. E-R modelem lze jednoduše databázi "nakreslit" a vše pak jednoduše exportovat do SQL. Zkouška pak byla relativně jednoduchá vzhledem k mým předchozím zkušenostem s SQL.

Datových struktur a algoritmů jsem se docela bál. Látka byla poměrně složitá – grafové, rekurzivní a jiné algoritmy s důrazem na co nejmenší efektivitu. Měli jsme ale skvělého cvičícího – pana Chludila. Mrzí mě, že jsme neměli cvičení víc. U více předmětů se totiž projevil nedostatek místností pro katedru počítačů – cvičení jsme měli zkrouhlé na půlku a místo toho jsme měli prosemináře (trochu praktičtěji založené přednášky). Zpátky k panu Chludilovi – srozumitelně nám dokázal vysvětlit i komplikované algoritmy a dokonce nás dokázal pro ně „nadchnout". To se málokomu podaří. Na každém cvičení se psala malá písemka, ale to bylo jenom dobře, aspoň jsme pak na cvičení věděli o co jde. Semestrální práce byla krátká ale zábavná – mělo se zpracovat jedno téma z předmětu libovolným způsobem. Jediná podmínka byla co největší názornost. Dalo to pojmout třeba s humorem a natočitvideo. Vznikla tak výborná databáze materiálů pro učení. Zkouška byla jedna z těžších. Já jí proplul, když jsem šel zkusit předtermín a měl docela štěstí na otázky.

Anglickou konverzaci jsem si zapsal, abych se vyhnul druhému jazyku. Měli jsme na ní rodilého mluvčího pana Cooka, který byl typicky americky trhlý, dozvěděli jsme se i něco zajímavého a občas anglicky promluvili.


Když semestr shrnu tak jsem s ním byl vcelku spokojený – všechny předměty byly praktické, nabyté zkušenosti mohu využít rovnou v praxi. K tomu patřilo obrovské množství semestrálek, které se měly všechny odevzdávat začátkem ledna. Měli jsme tedy krušný začátek ledna, ale nakonec se všechno stihlo. Semestrálkami jsme se toho také hodně naučili. V semestru se mi obecně nelíbilo flákání na cvičeních (které by nám usnadnilo zkouškové) a naopak nedostatek cvičení na zajímavých předmětech (které byly jenom chabě nahrazovány prosemináři). Výsledkem semestru jsem ale byl mile překvapen. Kromě semestrálek jsem se ani moc nenadřel a ačkoli jsem to nijak neplánoval, dokončil jsem semestr se samými jedničkami a těším se na tučné prospěchové stipendium :-)


A co k slibované budoucnosti STM? V průběhu semestru jsme se dozvěděli, že nebude žádný magisterský program pro STM a STM zanikne! Byl to pro nás docela šok, zvlášť když před minulými volbami nás každý ujišťoval, ať se ničeho nebojíme. Nebude to ale zas tak hrozné. Elektrotechnická fakulta se nakonec nerozpadne na dvě(Elektrotechnika x Informatika), vedení se dohodlo na kompromisu. Bude restrukturalizované celé studium a vznikne nový bakalářský obor Informatika. Ten nebude separátní jako teď STM, nebudou dva studijní programy. Tento obor nebude mít společný první ročník s ostatními obory jako teď na EaI. Informatika bude převážně kopírovat STM, ale bude tam o pár víc teoretických a elektrotechnických předmětů navíc. Pořád to podle mě bude nejlepší volba pro studium informatiky v Praze.

No a na tento program bude navazovat regulérní magisterské studium. Tato změna nastane právě, když náš ročník dostuduje STM bakaláře. Bude nám umožněn plynulý přechod na tohoto nového magistra. Stačí, když si do konce bakaláře zapíšeme dva teoretické předměty navíc. Obavy z toho, že naše studium skončí po bakaláři jsou tedy zažehnány.

PS: Moji kamarádi z FELu začali tento rok provozovat e-shop s tričky s geekovskou tématikou, sám nosím RTFM tričko a Have you tried turning it on and off again tričko a musím uznat, že stojí za to!

Saturday, June 23, 2007

Druhý semestr na STM - suma sumárum

Právě jsem úspěšně zakončil 2.semestr bakalářského programu Softwarové technologie a management na ČVUT Fakultě elektrotechnické . Především zájemcům o tento studijní program chci podrobně tento semestr v tomto článku popsat a zhodnotit. Začnu u jednotlivých předmětů:

Technologie pro web a multimedia: Myslel jsem, že když už tolik let dělám webové stránky, že mi tento předmět nemůže nic nového přinést. Byl jsem příjemně překvapen. Naučil jsem se, jak psát stránky validní, accesibilní a přístupné pro internetové vyhledávače. Dokonce i v HTML jsem se naučil některé nové tagy a poznal krásy formátování jenom za pomoci CSS. Předmět nebyl těžký, byl velmi prakticky zaměřený a kromě několika lehkých testů stačilo udělat jako semestrálku validní HTML stránku, která bude splňovat tato kritéria . Předmět mě konečně dokopal k profesionalizaci mých osobních stránek, mojí semestrálku můžete vidět na webu destil.cz .

Struktura a architektura počítačů: Tohoto předmětu jsem se bál, protože nejsem žádný odborník na hardware a myslel jsem, že se bude jednat o Elektrotechniku pro informatiky 2. Opět jsem byl příjemně překvapen. Zajímali jsme se o číslicový návrh logických obvodů, jak realizovat logické operace pomocí hradel. To samo o sobě zajímavé není, ale nabyté zkušenosti jsme měli možnost ihned otestovat v laboratoři. Obvod jsme nejdřív navrhli v programu Xilinx a pak nahráli do malého přípravku, který měl tlačítka a diody. Velmi nás to bavilo, tak jsme s kamarádem předmětu zasvětili i trochu volného času a navrhli jenom pomocí obvodů malou hru Ping pong pro dva hráče, kde jezdí diodky tam a zpátky a hráč musí "odpálit" blikání správným stisknutí tlačítka. Jezdění se zrychluje a ještě jsme zobrazovali score na sedmisegmentovém displeji. Bylo velmi poučné se dozvědět i něco o tom, jak to v počítači funguje na nižší úrovni, že počítač není krabice plná magie :)

V druhé části semestru jsme brali počítání v různých číselných soustavách, což by měla být základní znalost každého dobrého informatika. Na laboratořích jsme programovali v Assembleru, což bylo také zajímavé. Assemble se dost podobá vyšším programovacím jazykům a přitom jsme měli přehled, co se děje v procesoru. Psali jsme různé prográmky co většinou zobrazovaly něco na displeji a rovnou program zkoušeli na reálném přípravku. Předmět byl docela lehký, protože na cvičeních se snadno daly získat body za aktivitu. Za laboratorní úlohy a písemky byly další body a nakonec to dopadlo tak, že jsem na zkoušku vůbec nemusel a měl jedničku už ze semestru.

Programování v jazyku Java: Bylo trochu škoda, že laboratorní cvičení bylo jenom jednou za 14 dní. Zvlášť pro ty, kteří viděli Javu poprvé mohlo být těžké to všechno pochopit. Mě osobně ale předmět bavil ze všech nejvíc. Probíraly se především velmi praktické věci v Javě – GUI, práce se sítí, vlákna a objektový přístup. Cvičení probíhala tak, že cvičící psal kód nějakého uceleného programu (slovník, hra Life, jednoduché malování, jednoduchý webový prohlížeč), my to psali s ním a on vše komentoval, proč a jak to tak píše. Tento přístup se mi zdál hodně dobrý, hodně jsem se toho naučil. Na programy napsané ve škole navazovaly domácí úkoly, které nám pomohly upevnit získané znalosti. K zápočtu byla ještě potřeba semestrálka – mohli jsme jí dělat ve dvojici a pustili se do většího programu – hře Bomberman po síti. Při psaní semestrálky jsem se toho naučil asi nejvíc. Ve zkouškovém se psala písemka, která byla docela těžká, ale díky dostatku bodů ze semestru ztráta bodů ani moc nevadila.

Objektové modelování: Na tento předmět jsem se těšil, ale naopak jsem byl zklamán. Byl velmi chaoticky organizován a místo učení objektového přístupu a popis problémů pomocí UML diagramů před nás byl postaven pekelný program Daskalos. Tento program byl vyvinut fakultou a je určen jenom pro studiní účely. Má umožňovat objektový návrh systému a automatické generování UML diagramu. Je ale neskutečně chybový a ne-blbuvzdorný. Pokud student zkoušel v Daskalu pracovat metodou pokus-omyl, se zlou se potázal, jeho snažení většinou skončilo zničením dosavadní práce. Vedlo to proto k paranoidímu zálohování každé změny. Navíc se pro popis metod objektů používal jazyk Smalltalk. Neexistuje k němu žádná pořádná dokumentace, pochopit jeho syntaxi byl opravdu boj. Ani přednášky nám moc nepomohly, přednáška o Smalltalku byla až na konci semestru! Cvičení byla většinou konzultační ohledně našich semestrálek, nic moc nám cvičící s Daskalem neporadili. Naštěstí bodové hodnocení bylo nastaveno mírně a na konci se ještě psal primitivní test, takže získat dobrou známku nebyl problém. Jenom mě štve, že mi tento předmět skoro vůbec nic nedal.

Právní aspekty podnikání: Tento předmět byl také trochu strašák – žádná cvičení, jenom přednášky a pak zkouška. Z takové nudné věci jako právo se ale nakonec vyklubala docela zábavná záležitost, hlavně díky osobě přednášejícího – pana Šejnosty. Je to vždy optimistický a vtipem sršící právník, který jinak nudné zákony prokládal příklady ze své právnické praxe a scénkami přímo se studenty. Často dokázal rozesmát celou posluchárnu. Na zkoušce se psal docela obsáhlý test, z něhož 80% otázek bylo zveřejněno předem. Následovala ústní zkouška, která byla moje nejvtipnější zkouška na FELu. Ten, kdo měl odvahu a šel bojovat o lepší známku, měl to v kapse. Ukázka jedné ústní zkoušky:

Šejnost: Chcete tu dvojku?
Keymaster: Ne
Šejnost: Tak mi tedy řeknete, co je to veřejně prospěšná společnost
Keymaster: hmm.... mmm... to je ta společnost, která...
Šejnost: Ha! dostal jsem vás, nic takového neexistuje, právě jsem si to vymyslel!
Keymaster: No vy jste mě nenechal domluvit, ja jsem chtěl říct že to je společnost která neexistuje
Všichni vybuchli smíchy
Asistentka: Tak teď vás dostal...
Šejnost: Za jedna.

Tvorba elektronické dokumentace: V tomto předmětu jsme se měli učit, jak psát odborné práce v programu OpenOffice. Vtipné bylo, že byl vyučován katedrou Elektrických pohonů a trakce, která asi na FELu už nemá co učit. Museli jsme přednášet dvě prezentace a zpracovat dva odborné články. Bylo toho zbytečně moc, klidně by stačil jeden článek a prezentace. Moc jsme se toho nenaučili, předmět byl spíš na obtíž, do prezentací a článků jsme museli násilně vkládat povinné objekty jako grafy, tabulky, vzorce a grafiku a to nám zabralo dost volného času. Ale zase kdo vše odevzdal a odprezentoval, neměl s jedničkou problém.

Bezpečnost v elektrotechnice: Tento předmět byl ryze formální a archaický. Vedení si myslí, že každý student elektrotechniky by měl absolvovat vyhlášku 50. Podle mě to je pro nás zbytečné, protože nikdy žádné zásuvky zapojovat nebudeme a největší napětí, se kterým se setkáme bude ve zdroji počítače. Naštěstí to bylo jenom pár cvičení a dostal to každý, i když se na to vykašlal. Jsem tedy teď Osoba poučená podle vyhlášky 50 :)

Anglický jazyk 2-2: V letním semestru jsem absolvoval nejvyšší úroveň angličtiny, která se na FELu dá studovat. Bylo to dost podobné minulému semestru, nekvalitní materiály, ale kvalitní cvičící. Spousta docela použitelných odborných slovíček a gramatika na úrovni FCE. Celkem lehce jsem angličtinou proplul a mám ji už na celé studium odškrtnutou...

Matematická logika: Nejtěžší předmět tohoto semestru. Cvičení byla jenom jednou za 14 dní, nešlo nic získat ze semestru, šlo se rovnou na zkoušku. Na předmět jsem celý semestr kašlal, ale byl jsem překvapen že na cvičeních alespoň tuším, oč jde (narozdíl od algebry z minulého semestru). Látka nebyla tak těžká a my měli dobrou cvičící. Na zkoušku jsem se učil asi týden a vše v pohodě pochopil. Nestačilo ale pochopit jenom příklady a matematické pojmy. Logika je celá o odvozování a definování a v písemce záleželo doslova na každém písmenku. Snažil jsem se většinou definice popisovat vlastními slovy a to mi moc neprocházelo. Zkoušku na první pokus neudělalo přes 50% studentů, já jsem s odřenýma ušima dostal dvojku. Podle mě ale předmět nakonec dopadne výrazně lépe než algebra.

Když bych to měl nějak dát dohromady tak tenhle semestr byl lehčí než ten minulý. Ubylo neinformatických předmětů, často jsme se učili velmi praktické věci. Na přednášky jsem sice chodil, ale s kamarády jsme si koupili switch a většinou se to zvrhlo v malou LAN party :) V tomto semestru už jsme si mohli sestavovat vlastní rozvrh, takže jsem mohl chodit do školy jenom pondělí až středa. Opravili nám před FELem minigolf, který jsme často chodili někdy i místo přednášek zadarmo hrát. Prostě jsem se nějak výrazně nenadřel a zkouškové dopadlo tak, že mám nárok na druhé největší stipendium. No není ta vysoká škola pohoda?