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í: