Nový projekt

Wednesday, August 17th, 2011

Kromě programování taky rád hraju na pár nástrojů a před 3 měsíci jsem se rozhodl rozšířit svůj repertoár o klavír. U tohoto nástroje se tak nějak předpokládá, že znáte noty a dokážete je číst víceméně plynule přímo z listu.

Po letech hraní jsem byl konečně donucen k osvojení této dovednosti a jako správný programátor jsem si napsal malou webovou aplikaci, která mi to usnadní. Aplikace je k nalezení na notationtraining.com.

Došlo e-mailem:

Jak vnímáte TDD dva a půl roku po napsání tohoto blogu? Ještě stále TDD, nebo už je pro Vás tato metodika mrtvá? Pokud stále žije, popasoval jste se s tím, jak ji napasovat na projekt, který s něčím takovým od základu nepočítá, ale naopak kupí všechny známé programátorské chyby na jednu hromadu?

Jde o to, že momentálně se potýkám s tímtéž – rád bych ve firmě zavedl TDD jako oficiální metodiku, ale praktická zkušenost chybí a stejně tak chybí i znalost, jak to napasovat právě na ty “nemocné” projekty, kde je toho paradoxně nejvíce zapotřebí.

Email odkazuje na následující článek: http://dejv.eu/15-vyhody-tdd/

TDD stále využívám. Hlavně v dynamických jazycích se jedná o nepostradatelný nástroj. U těchto jazyků se automatické testování hodí i při deploymentu. Například u projektů napsaných v Ruby hned poznám jestli jsou nainstalovány všechny knihovny a skripty jsou kompatibilní se systémem na serveru.

U starších projektů je to složitější. Starám se o jednu rozsáhlou CRUD aplikaci napsanou špagetovým stylem, kdy metody komponent pouze volají jiné komponenty. V tomto případě je využití TDD dosti náročné, jelikož většina úkolů spočívá v modifikaci takto napsaného kódu, který sám od sebe nelze jednoduše vyjmout. Dvojnásobně to platí pro projekty jejichž IDE postrádají jakékoliv nástroje pro automatický refactoring.  Jednou z možností by byla investice do přepsání, alespoň, hlavních modulů.

U lépe napsaných projektů by to mohlo jít i za pochodu. Sám jsem jeden takový měl a zavedl jsem pravidlo kdy opravení každé chyby vyžadovalo napsání příslušného testu. Pokrytí testů bylo sice velmi mizivé, ale během krátké doby zasahovalo nejproblémovější části aplikace.

Technologie pro 2011

Sunday, January 2nd, 2011

Technologie se vyvíjí neuvěřitelným tempem a tak jsem si udělal krátky soupis věcí na které bych se rád během následujícího roku mrknul abych zůstal v obraze.

  • Go – systémový programovací jazyk od společnosti Google. Něco málo jsem v něm už naprogramoval a pracovalo se mi v něm daleko lépe než například v C. V Go hledám parťáka do stacku k Ruby, kde ho plánuju používat na výkonově náročné části.
  • R – tenhle nástroj na statistické výpočty používám už přes rok. Zatím však pouze pro kreslení grafů (na což je lepší než všechny knihovny dohromady) a nově bych ho rád vyzkoušel pro nejrůznější hrátky se strojovým učením.
  • Clojure – v nerdovských kruzích velmi populární jazyk odvozený od LISPu, který běží na JVM. S tímto typem jazyků moc zkušeností zatím nemám, takže to bude určitě hodně zajímavé.
  • Node.js – framework pro psaní server-side aplikací v javascriptu.
  • Coffee Script – každý další rok píšu víc a víc Javascriptu. Coffee script je pak jazyk, který má daleko hezči syntaxi a do Javascriptu se překládá. Po HTML, který nahradil haml, se rád zbavím dalšího hnusného jazyka.
  • Android – prý budou všechny aplikace běžet na mobilech. Tak to omrknu a něco málo naprogramuju.

Výborný připomínací email

Wednesday, December 29th, 2010

Každého provozovatele webových aplikací trápí počet lidí, kteří se zaregistrují a aniž by vykonali nějakou akci odejdou a nikdy se nevrátí. Tihle uživatelé jsou velmi ceněná komodita, jelikož jde o lidi, kteří hledají velmi specifický produkt natolik, aby podstoupili trápení s vyplňováním registrace. Takové lidi pak stačí jen trochu nakopnout aby se staly spokojenými zákazníky, které nejdříve odradil nedostatek času, neznámé prostředí či třeba telefonát.

Dnes jsme se do jedné aplikace zaregistroval, podíval se co tam zhruba je a bez nějaké akce odešel. Za dvě hodiny mi přišel následující mail, který sem dávám jako případnou inspiraci. Jde o jeden z nejlépe napsaných emailů tohoto typu, které jsem prozatím viděl.

Hello,

You signed up for TaskSmash, but don’t have any tasks on your calendar. Why not?

Before you decide whether or not to use TaskSmash to stay productive, you should at least click around and see how easy it is to use.

To log in, go to http://taskSMASH.com/

PS: pokud tuhle aplikaci chcete vyzkoušet můžete použít následující kód: 72813FA8

Ohlédnutí za rokem 2010

Monday, December 27th, 2010

Cestování
Rok jsem začal výbornou cestou po Maroku. Šlo o klasický baťůžkářský výlet, během kterého jsem téměř pokořil rekurzivní horu, spal na úpatí vodopádu, na poušti jsem v noci postrašil bandu nějakých turistů a neustále odmítal výhodné nabídky na koupi hašiše a prostitutek. Celou cestu jsem navíc sepsal a postupně ji uveřejňuji na webu.

Z dalších cest lze jmenovat ničím nezajímavou Malorku, Miláno ve kterém jsem omylem navštívil čistě černošskou hospodu, Bergámo se zmatenýma portugalcema či Bělehrad ve kterém jsme panáky rakyje prokládali pivama.

Vývojařiny
Po deseti letech jsem opustil Delphi jako svůj primární programovací nástroj a naplno přešel k Ruby. Můj hlavní stack teď představuje Ruby, minimalistický framework Sinatra a na straně šablon pak haml. Během roku jsem strávil pár týdnů s jazykem Go, který mně velmi bavil a doufám, že v něm brzo vyrobím něco většího. Z větších zvláštností jsem pak psal věci pro grafické karty za pomocí frameworku CUDA, udělal pár menších věci v Haskellu a vytvořil dva menší, jednoúčelové, programovací jazyky.

Internetové Projekty
Během roku jsem postupně omezil práci pro zákazníky a začal se naplno věnovat vlastním věcem. Nutno však říct, že bez jakéhokoliv úspěchu.

Rok začal prací na ConcertInu, která nikam nevedla a během krátké doby jsem z projektu vycouval, abych se věnoval vlastním věcem. Honzovi se během léta podařilo najít jiného programátora a během září projekt spustili.

Když pominu jednoduchý todo list, který je v součastné době už mrtvý, tak jsem se po zbytek roku věnoval práci na Rejose.com. Což je projekt, který mou osobu provází už téměř 4 roky. Jen za druhé pololetí roku 2010 jsem jeho podobu změnil asi 6 než dokonvergoval do součastného stavu, vyhledávače pracovních inzerátů. Návštěvnost mizivá což se snad během příštího roku změní.

Na úplný závěr roku jsem pak spustil aplikaci, která má pomáhat v učení cizích slovíček. Během posledního týdne začala aplikace krásně růst a ze všech projektů mi dělá největší radost.

Osobní život
Snad jen velmi stručně. V březnu jsem opustil kapelu, kterou jsem pomáhal zakládat. V červenci jsem se z malého bytu v přízemí paneláku na okraji Brna přestěhoval do velkého bytu v samém centru, po 4 letech vztahu jsem pak začal bydlet s přítelkyní a během jednoho měsíce jsem se s ní rozešel. Svobodného života jsem si však moc neužil a během dvou měsíců jsem si našel novou.

Na to jak se v mém životě roky nic nezměnilo to byl opravdu bouřlivý rok, který mě ve své druhé polovině odměnil nebývalou pracovitostí.

Výhled a shrnutí
Uplynulý rok hodnotím pozitivně. Hromada věcí se povedla, zhruba stejně velká hromada nepovedla. Tedy přesně tak jak to má být. Nový rok začínám s pracovní náladou a dvěma projektama, kterým se mám v plánu věnovat.

Cíl na příští rok je velmi prostý: dovést vlastní projekty do stavu kdy budou vydělávat a nadobro opustit práci pro ostatní lidi.

Zkušenosti s Chrome Web Store

Thursday, December 23rd, 2010

Google před pár dny spustil Chrome web store, což má být tržiště pro webové aplikace spustitelné v prohlížeči Chrome. Cílovou skupinou jsou především uživatelé vybaveni zařízeními které obsahuji Chrome OS, ale funguje i na obyčejném počítači.

Aplikace může být integrována různými způsoby. V nejjednodušším případě jde o obyčejný link na webovou aplikaci s přidanými metadaty (ikonka, screenshot, popisek). Dále to můžou být aplikace napsané v HTML5 fungujících i v offline režimu. Jako bonus je přítomnost payment api, které uživatelům umožňují za aplikace platit.

Před pěti dny jsem aplikaci na učení cizích slovíček v tomto systému publikoval. Pro aplikace ve formě odkazu stačí vytvořit jednoduchý textový soubor s popiskem a zaplatit 5 dolarů. Publikování je hotové za pár minut, neprobíhá žádný schvalovací proces.

Má aplikace je v jednom z nejméně populárních segmentů (vzdělávací programy) a během pěti dnů jsem získal 24 instalací, které produkují okolo 30 návštěv denně. Zajímavá je míra zapojení těchto uživatelů, kteří aplikaci využívají daleko více než  návštěvníci z vyhledávačů (měřeno počtem spuštění jednotlivých testů).

Konkurence v podnikání

Tuesday, November 30th, 2010

Zhruba po třetí jsem začal číst knihu Growing a business. Je to jedna z nejlepších podnikatelských knih na které můžete narazit a to i přes to, že je stará cca čtvrt století a autor píše hlavně o jeho zkušenostech se zásilkovým katalogem zahradnického náčiní (fakt). Při čtení se mi zalíbil následující text, který je na jednu stranu naprosto jasný, ale stojí za trochu hlubšího přemýšlení.

Remember that in business you are never trying to “beat” the competition. You are trying to give your customer something other than what they are receiving from the competition. It is a waste of time and energy trying to beat the competition because the customer doesn’t care.

Teorie vs. praxe

Saturday, November 13th, 2010

Go home and once in a while cook food. YES, real food. It will teach you the difference bet following a recipe and creating a meal. First is oriented towards knowing what you need to create the dish and second to create a meal with what you have……just a little difference.

Zdroj: http://blog.kapilkaisare.info/from-an-architect-to-a-programmer

Výborná rada pro všechny, kteří si myslí, že pouze čtením a studiem dokáží být v nějakém oboru experty.

Otázky při pracovních pohovorech

Friday, October 8th, 2010

Při dnešním čtení jsem narazil na výborný citát:

Bullshit questions will get bullshit answers.

Zkuste na to myslet, až se na dalším pohovoru budete ptát uchazeče na jeho silné stránky, pracovní nasazení a další velmi oblíbené otázky bez obsahu.

Tři stupně lidí

Monday, September 27th, 2010

V lidské společnosti se často opakuje princip tří tříd lidí. Vždy existuje nejnižší třída od které se ti průměrní snaží všemi možnými způsoby odlišit. Na vrcholku pyramidy pak máme lidi, kteří se vnějšími výrazy podobají těm na prvním, ale nikdo nepochybuje kam doopravdy patří. Myšlenku se zkusím ilustrovat na třech případech.

Novodobý zbohatlík, který vlastně ani nemusí mít tolik peněz, se snaží odlišit od všech těch chudáků tím že si kupuje drahé věci. Dle reálného bohatství to můžou být sportovní auta či například značkové oblečení. Naproti tomu lidi z tradičně bohatých rodin nemají tohle zapotřebí, protože i když chodí oblečeni stejně jako lidi chudí a jezdí ve Fabii tak nikdo nepochybuje o tom kam vlastně patří a tím že si drahé věci nekupují se odlišují od nové náplavy lidí, kteří se snaží ukázat něco co vlastně nejsou.

Stejný princip platí i u inteligence. Máme lidi prosté a pak máme obrovskou hromadu průměrně inteligentních lidí, kteří se od nich potřebují odlišit a tak v kavárnách vedou učené debaty o smyslu života, vesmíru a vůbec. Ve volném čase pak sledují artové filmy a ohrnují nos nad tou obyčejnou lůzou všude kolem. V kontrastu pak existují vysoce inteligentní lidi, kteří už nemají potřebu ani nutnost svou inteligenci předvádět a i bez hlubokých debat a artových filmů na první pohled vidíte, že nejsou vůbec hloupí.

A přesně stejný princip funguje i v našem oboru. Máme programátory prasáky, kteří netuší která bije a za pomocí nejjednoduších technik bastlí kód. Pak máme velkou hromadu lidí, často s titulem senior či architekt (nově pak guru, pirate či ninja), kteří se snaží o naprostý opak. Všude využívají desítky layerů abstrakcí, hromadu návrhových vzorů a při vývoji prosazují přesně tu techniku, která je právě in. Na různých konferencích se pak plácají po ramenou jací jsou hrdinové. Ve stínu pak žije malá skupinka vyvolených, jejichž kód se v použitých prostředcích velmi podobá první skupině. Využívá jen několika málo jednoduchých technik a přesto je snadno pochopitelný, jednoduše udržovatelný a za všech okolností spolehlivý. Tihle lidi nemají potřebu demonstrovat nadřazenost přehnanou složitostí, ale stačí jim psát praktický a zároveň funkční kód.

Twitter (@dejv)