Archive for Březen, 2008

Bře 21

Co umí dobrý programátor?

Na root.cz se rozběhla celkem zajímavá diskuse na téma, co umí dobrý programátor. Vela lidí polemizuje nad tím, či dobrý programátor dokáže J2EE, regulární výrazy a nebo jiné technologie.

Podle mně je ale již otázka položená špatně. Neexistuje totiž „dobrý“ programátor anebo „zlý“ programátor. Existuje jen práce hotová a práce rozdělaná plus důvody, proč to dopadlo jak dopadlo.

To, že Franta Jetel neovládá J2EE ale jen Visual Basic 6 z něho špatného programátora nedělá a naopak. Používání nových technologií jen proto, že jsou nové je podle mně cestou do pekel. Dobrý kód je žádný kód, nebo jen minimální počet řádků. Každý řádek navíc („do budoucna“) jen přidává zbytečnou komplexnost, nutnost psát další testy, na což se každý po čase vykašle a tím se zvyšuje chybovost.

Proto zastávám heslo: Když už je něco naprogramované, neprogramovat to!

0
comments

Bře 17

Master Of Magic a chřipka

Už třetí den ležím v posteli s horečkami nad 38 stupňů Celsia, notebook mám položený na prsou a vážně se mi nechce do ničeho dokopat. Neměl jsem ještě vytahovat to kolo, byla to chyba.

Co se za víkend stalo? Server Marigold.cz publikoval o víkendu článek, kde se zmínil o projektu mého kolegy Hypotekář.cz. Na návštěvnost stránky to má blahodárný vliv a je to znát i druhý den po.

Je výhodou WordPressu, že u článků se dá nastavit, kdy se můžou zobrazit. Takto mám nastavených ve frontě X článků a o nic se nestarám (s tou horečkou jede psaní článků fakt těžko).

Co tedy dělám. Našel sem stránku s „opuštěnými“ hrami Abandonia a hned jsem si vybavil mé mládí, bez rozmyslu promrhané u počítače :-).

Jednu hru jsem si i stáhl, jmenuje se Master Of Magic. Je to klon Civilizace s magickými potvůrkami a kouzly a to vše běží v úžasné grafice 320×200.

 Screenshot ze hry Master Of Magic

Jestli jste fanda Civilizace a máte čas na takovéhle blbůstky, Master Of Magic vám nic jiného než odporoučím.

2
comments

Bře 14

Django, odpověď Pythonu na Ruby On Rails

I když Ruby je dle statistik mírně populárnější než Python, Python je mou osobní volbou na poli programovacích jazyků. Jedna věc se ale Ruby nedá upřít. A tou je způsob jakým se dokáže prodat (hlavně nově příchozím ovečkám z řad PHP).

Nevýhodou Pythonu bylo až donedávna velký výběr Web Frameworků, zatím co pro Ruby existuje de-facto jen jeden: Ruby On Rails. Až přednedávnem přišel Python se standardem WSGI, jednotící komunikaci mezi web serverem a aplikační vrstvou.

Standard WSGI je sám o sobě pěkný (využívá ho například projekt Paste, jednotící pomocí WSGI své jednotlivé komponenty), ale Python potřeboval konkurenci k RoR.

A tu našel v podobě projektu Django.

Django propaguje princip DRY (Don’t repeat yourself – Neopakujte se). Když už raz napíšete kód, například ke utříděnému zobrazování položek z databáze, framework je navržen tak, aby se dal tento kód znovu použít s minimálními úpravami v jiné části projektu.

Projekt v Djangu se skládá z takzvaných „aplikací“. Každá aplikace má (ale nemusí) svůj datový model napsaný jako třídy v Pythonu (tyto třídy jsou pak mapovány do relační databáze, Django podporuje řadu databází, včetně SqlLite nebo MySQL). Další částí jsou takzvané Views, ty se starají o zobrazení modelu pomocí šablon (templates). Django má svůj šablonovací jazyk, ale dá se rozšířit i o jiné dialekty. Abych se přiznal, tohle je část Djanga, které jsem přicházel dlouho na chuť (a ještě stále přicházím). V šablonách Djanga se totiž nedá psát Pythonovský kód, umožňuje jen základní tagy jako jsou if..else, for..loop a podobně (což je na druhou stranu dobře, nutí to programátora nepsat „špageta kód“)

Pro načítání dat směrem od uživatele se používá tzv. Newforms. Je to soubor utilit a tříd, které se starají o validaci dat z HTML formulářů a korekci případných chyb.

Toto je jen povrchní přelet co je to vlastně Django. Kdo se o tuhle oblast trochu zajímá a má rád jazyk Python, web framework Django mu odporoučím vyzkoušet, stojí fakt za to.

Na závěr přidám pár projektů, které běží pod Djangem:

0
comments

Bře 12

Whitespace, programovací jazyk pro další tisíciletí

Základním pravidlem, které podle mých zkušeností platí na 110% je, že kód se raz napíše, ale čte se ne 10 ale 100 krát znovu. Programátoři v jazycích (nejen) C a C++ mají tendenci psát prasácký kód, kterému rozumějí jen oni sami, aj to jen pár dní v roku při záhadné konstelaci Merkuru a Venuše.

Vela šikovných hlaviček si z tímto problémem lámalo hlavu a postupně přicházelo s novými a novými jazyky. Takto přišel Perl (ehm..), Java, Ruby a Python. Podle mého názoru, každému z těchto jazyků něco chybí (je lepší říct, že mají něco navíc). Perlu se odvažuji říct už nikdo ze současných programátorů nerozumí, Java má zas ty kudrnaté závorky, Python je zas příliš explicitní jazyk, i když se v blíží k cíli srozumitelnosti nejblíž.

Proto Britský programátoři přišli s revoluční ideou: vyvinuli programovací jazyk Whitespace, který nerozptyluje oko programátora zbytečnými závorkami, středníky a podobně. Kód je samovysvětlující a lehce se čte.

Pár příkladů je uvedeno na domovské stránce (nezapomeňte stlačit CTRL+A pro syntax highlighting):

Výhody jsou jasné. Jednoduchý zápis a zvýrazňování syntaxe (CTRL+A), zbytečně nerozptyluje uživatele závorkami a bloky kódu.

Na závěr jediná výtka, ještě se nenašel dobrovolník, který by portoval tento skvělý jazyk na platformu Windows a i knihovny trocha zaostávají za konkurenčními jazyky.

4
comments

Bře 07

12 WordPress pluginů pro kvalitní blog

I když standardní instalace WordPress-u obsahuje docela mocné nástroje pro blogování, hlavní výhoda WordPress-u je v jeho rozšířitelnosti doplňky, tzv. pluginy. Standardně se dodává jenom jedno rozšíření, aktivní filtr spamu Akismet. Pojďme se podívat, jaké pluginy používá tento web Kiwwisk.cz, běžící pod systémem WordPress 2.3.3.

Akismet (odkaz)

Je plugin používaný na aktivní filtrování spamu bez toho, aby obtěžoval uživatele obrázky CAPTCHA nebo kontrolními otázkami. Jeho instalace je jednoduch, budete jen potřebovat vygenerovaný klíč ze stránky WordPress.com. Každý den mi zachytí jen na této stránce desítku spamových komentářů, takže spokojenost.

All in One SEO Pack (odkaz)

Zajímavé rozšíření, umožňující pohodlné měnění TITLE a META tagů. Jedná se o základní SEO a instalace plus konfigurace pluginu je otázkou pár minut, takže toto rozšíření doporučuji.

Dagon Design Sitemap Generator (odkaz)

Je rozšíření umožňující pohodlné generování HTML mapy stránek. Příklad můžete vidět zde. Jedná se taktéž o základní SEO, který spolu s XML sitemap umožňuje robotům jako SeznamBot nebo GoogleBot zaindexovat celý váš web bez problémů.

External Links (odkaz)

Rozšíření přidává malé ikonky k odkazům ukazujícím mimo vaši stránku. Vyžaduje trošku větší úsilí na konfiguraci, aby zapadl do vaší WordPress šablony.

FeedBurner FeedSmith (odkaz)

Tento plugin redirektuje každý požadavek na XML RSS feed WordPress-u na stránky FeedBurner-u. FeedBurner používám pro pěkné statistiky týkající se přístupu na můj RSS kanál. Poskytuje aj pěknou ikonku která ukazuje, kolik lidí je přihlášených na můj XML RSS kanál (modrá ikonka v středním sloupci nahoře).

Google XML Sitemaps (odkaz)

Považuji za základní rozšíření každé stránky běžícím na WordPress-u. Za běhu vytváří XML feed (sitemap.xml) který čtou webový vyhledávače a usnadňují jim tak práci. Doporučuji sitemap.xml přidat i do robots.txt.

Search Meter (odkaz)

Rozšíření poskytuje přehledné statistiky kdo, kdy a co vyhledal pomocí formuláře ‚Hledat‘ na stránce. Kdo si libuje ve statistikách a tabulkách, neměl by tento plugin minout

Search Pages (odkaz)

Jednoduché rozšíření, které umožňuje prohledávat i statické stránky (pages) navíc ku klasickým příspěvkům.

Similar Posts (odkaz)

Umožňuje přidat pod příspěvek odkazy na podobné příspěvky na stránce. Někdy se ale „utne“ a nabídne nerelevantní příspěvek. I tak si myslím, že je to užitečný plugin.

Twitter Tools (odkaz)

Umožňuje lehkou integraci mikroblogovacího systému Twitter do WordPress-u. Je to taká blbůstka, kterou mám ale rád, přispívání do Twitter-u vyžaduje pár minut času denně. Výsledek je vidět v boxu ‚Co právě dělám?‘ napravo.

WP-Syntax (odkaz)

S ním umím krásně formátovat zdrojový kód v příspěvcích. Jako interní motor používá GeSHi, který podporuje spoustu jazyků a dialektů. Je to výborný plugin, no vyžaduje zásah do stylů stránky. Další výtkou je, že WordPress při uložení příspěvku zvykne syntax rozhodit (přidá zpětné lomítka nebo ‚ ‚ tam kde netřeba a pod.), takže pozor.

WPG2 (odkaz)

Integruje systém galerie Gallery2 do šablony WordPress-u. Já ho využívám na zobrazení náhodného obrázku z galerie, no jeho využití je rozhodně větší.

Tak, to je zatím vše. Poznáte další a lepší pluginy? Jestli jo, neváhejte a napište je do komentářů, budu se těšit.

3
comments

Bře 05

JQuery a Google Analytics, silná dvojka

Určitě jste už slyšely o Javascriptovom frameworku JQuery. Je to silná a inovativní knižnice, která už v základní verzi bez jakýchkoliv rozšíření (kterých jsou mimochodem stovky) dokáže dost podstatně ulehčit programátorovi život.

Google Analytics představovat nemusím, každý správný webmaster, který to myslí jen trošku vážně ho určitě používá na svých stránkách. Jeho hlavní výhodou je cena (zdarma) a velké množství přehledů, tabulek a grafů o návštěvnicích vašich stránek.

Zkombinováním těchto dvou služeb dostane webmaster do ruky silný nástroj na skutečně cílené monitorování návštěvnosti bez nutnosti (velkého) zásahu do už napsaného kódu. Ukažme si praktický příklad na defaultní instalaci WordPressu 2.3.3 (dodává se spolu s jQuery verzí 1.1.4, i když v době psaní tohoto článku je nejnovější verze 1.2.3).

Chceme monitorovat odchozí linky z už napsaných článků a článků je napsaných už velké množství. Zde je jednoduchý postup bez nutnosti zásahu do naspaného textu:

  • Vytvoříme si cíl, „goal“ v účtu Google Analytics, pojmenujme si ho třeba „/out“
  • Do záhlaví WordPress šablony vložíme následovný kód (do HEAD před BODY):
    <script src="/wp-includes/js/jquery/jquery.js?ver=1.1.4" type="text/javascript" />
    <script type="text/javascript">
    <!--
      jQuery(document).ready(function(){
        jQuery("div.post a").click(function(){
          urchinTracker("/out");
        });
      });
    //-->
    </script>
    

Vysvětlení: předpokládáme, že články jsou uloženy v tagu DIV s nastaveným class=“post“. Pomocí JQuery nastavíme všem odkazům v těchto blocích event handler onclick na funkci, která zavolá Google Analytics kód „urchinTracker(‚/out‘);“.

Šablonu uložíme a hotovo! JQuery se nám automaticky postará o korektní zavolání Analytics kódu a my nemusíme přepisovat každý článek a vkládat „onclick“ atributy do každého odkazu. Jako bonus navíc dostaneme kompatibilitu ve všech používaných prohlížečích.

3
comments

Bře 03

Google, GPay a iPhone, začátek konce?

Určitě je vám známo, že Apple, výrobce počítačů Mac a přehrávačů iPod vkročil do mobilního světa ve velkém stylu svým multimediálním zařízením iPhone. Hysterií, kterou tímto krokem Steve Jobs vyvolal není nepodobná davové psychóze.

Apple se zároveň při vývoji telefonu spolčil s Googlem. Google jako dodavatel služeb poskytuje uživatelům iPhone speciální verze vyhledávání, Google Maps, Google Calendar atd.

O čem už však nikdo nehovoří je, že Google si nechal patentovat systém na placení z mobilního telefonu, nazvaný Google GPay. Samo sebou placení skrze mobilní telefon není nic nového, už teď můžete platit za parkování pomocí mobilu, ale Google se nechává slyšet, že GPay je nezávislé na mobilních operátorech a jejich systémech zpoplatnění (něco ve stylu Skype Mobile, který způsobuje vrásky na čele nejednomu mobilnímu operátoři).

Konkurent Google, PayPal, spustil podobnou službu před rokem, no zatím se příliš neprosadila. Zato Google pomocí svého partnerství s Apple a jejím iPhone, pomocí svého nového frameworku pro mobilní zařízení Google Android, systému placení Google Checkout a monopolního postavení ve světě vyhledávání protlačit toto řešení jako standardní způsob placení pro jednadvacáte století a nahradit nebo aspoň omezit používání kreditních katet.

Je iPhone a Google Android začátek něčěho většího? A nebo je to začátek konce? Protože když se to Googlu podaří prosadit, bude tak kontrolovat obchodování nejen internetu od samého začátku (vyhledávání) až po konec (placení).

0
comments

Bře 01

CAPTCHA nadobro prolomen?

Captcha je Turingův test, který se na webe používá na rozpoznávání skutečných uživatelů od robotů. Určitě jste ho už viděli na mnoha stránkách například při registraci nebo zadávání komentářů. Má formu obrázku s více či méně čitelnými čísly a znaky. Jeho hlavním cílem je zabránění spamu a podobné havěti (na tento blog, i když je docela mladý přijde denně dvacítka spamů, ale postará se o ně Akismet).

Ale hackeři mají i jiné využití: např. automatizované skoupení lístků na koncert a pak prodej za vyšší cenu. Tu už musí nastoupit CAPTCHA velmi propracovaná. Není tajemstvím, že nejlepších výsledků dosahují systémy CAPTCHA Yahoo a Google. Hackerům však stačí i 20% úspěšnost při analýze CAPTCHA, proto musí být systém neprůstřelný.

Hackeři jsou ale lidé bystří a vymysleli jednoduchý systém, jak obejít i ten nejdokonalejší systém. Automatizovaný skript jednoduše vitípne ochranný obrázek z požadované stránky a naservíruje ho uživateli, nejčastěji na  porno stránce pod příslibem zobrazení obrázku nebo videa. Ještě lepší způsob je klasická počítačová hra v stylu StripPoker, jen namísto pokeru uživatel nic netušíc luští CAPTCHA.

Jak je vidno, ochrana soukromí uživatelů na internetu je jen iluze. Aj ten nejlepší systém vždy selže na nejslabším článku – lidském faktoru.

0
comments