March 21st, 2010
Jak potvrdí asi každý, kdo se programováním zabýval delší dobu, většina programovacích jazyků si je hodně podobná. Existují sice odlišnosti v tom, jaké používají závorky, čím oddělují příkazy, jestli (jak) podporují objektové programování nebo jak přistupují ke správě paměti. To jsou ale jen kosmetické záležitosti a drobná vylepšení klasického “imperativního” stylu výpočtu, kdy počítač provádí jeden příkaz (instrukci) za druhým tak, jak je programátor zapsal.
To ale není jediný možný přístup k tvorbě programů. Teorie (a koneckonců i praxe) říkají, že stejné výpočetní síly jde dosáhnout také pomocí vhodně složené sady logických formulí (“Logické programování”). Nabízí se otázka, jestli – a jak – způsob programování ovlivní, jaké chyby se v programu mohou vyskytnout. Logické programování ale je spíš koncept výpočtu než určitý programovací jazyk, proto se ve zbytku textu omezím na vyprávění o jazyku Prolog, který z tohoto konceptu vychází.
Read the rest of this entry »
Posted in Prolog | No Comments »
May 15th, 2009
Zhruba před měsícem se mi naskytla příležitost k výměně notebooku za nový, kterou jsem rád využil. Po zkušenostech s HP se mi moc nechtělo řešit instalaci Linuxu a hardwarové perverze. Stejně tak se mi nechtělo dělat si "Unix" z Windows, aby na nich šlo aspoń trochu pracovat. Po zvážení všech alternativ a uvážení, že OS X je vlastně zčásti maskované FreeBSD… jsem se vydal vstříc novým zážitkům s novým OS.
Read the rest of this entry »
Posted in Nezařazeno | 3 Comments »
May 5th, 2009
Díky tomu, že spammeři vám vlezou úplně všude, je dnes běžnou součástí většiny formulářů, je dnes běžnou součástí většiny veřejně viditelných webových formulářů captcha. Tedy otázka nebo úkol, jehož zpracování je pro člověka triviální, ale počítač se s ním (zatím) nedokáže jednoduše vypořádat.
Read the rest of this entry »
Posted in Nezařazeno | 1 Comment »
October 22nd, 2008
V posledních měsících vyšlo několik opravdu zajímavých her pro PC. S dobrým nápadem, od zkušených autorů a výbornými recenzemi. Přesto si ani jednu z nich nekoupím. Aby nedošlo k nedorozumění, neplánuju si je ani stáhnout od pirátů, nebo obstarat jinak. Prostě je, přestože by mě zajímaly, nebudu hrát.
Read the rest of this entry »
Posted in GameDev, Real Life | 2 Comments »
August 29th, 2008
O mobilní telefony a mobilní Internet se mimo běžne volání a SMS a občasné hledání v jízdních řádech moc nezajímám. Při cestách po ČR s sebou buď vozím notebook, nebo (a to většinou) jde o cesty tak krátké, že Internet nepotřebuju vůbec. Celý minulý měsic a pár dní k tomu jsem strávil v zahraničí, pouze s telefonem (Nokia 6120) a s Windows Mobile PDA. Na obou zařízeních byl nainstalovaný prohlížeč Opera. V tomto zápisku se snažím shrnout svoje zkušenosti (teda spíš připomínky), které jsem během měsíčního používáni nasbíral.
Read the rest of this entry »
Posted in Real Life, Windows Mobile | 1 Comment »
June 1st, 2008
Po zápisku o HTML::Mason přidávám pár hintů k dalšímu šablonovacímu systému pro Perl, tentokrát pro Petal. Proti Masonu je Petal o dost jednodušší, ale na weby s několika stránkami bohatě stačí. Petal má navíc velkou výhodu v tom, že je kompletně postavený na XML, takže je možné jeho použití jednoduše kombinovat s dalšími XML nástroji. Některé věci v něm ale jsou zjednodušené možná až příliš – například syntaxe výrazů v podmínkách. To může znamenat problém, pokud je viditelnost některých prvků stránky řízena složitější logikou a využívá se více proměnných.
Read the rest of this entry »
Posted in Perl | No Comments »
May 28th, 2008
Posledních pár týdnů žije český Internet – nebo alespoń jeho malá část – snahou o oživení herního časopisu Excalibur. Ve své době šlo o legendu a zároveń první časopis v ČR, který se věnoval počítačovým hrám jako hlavnímu tématu. Po založení časopisu Score (a odchodu většiny redakce) jeho sláva postupně upadala, až upadla úplně. Včetně časopisu. Martin Ludvík (-ml-), vydavatel časopisu, se několikrát pokoušel o oživení časopisu a využití značky, pokaždé ale bez valného úspěchu.
Read the rest of this entry »
Posted in GameDev, Real Life | 2 Comments »
May 25th, 2008
HTML::Mason je jednou z výborných (řekl bych nejlepších, ale dost jsem jich ještě nevyzkoušel) voleb při vývoji webových aplikací v Perlu. Výhod je spousta – komponenty, přehledná syntax, jednoduché na naučení. Dokud je vyvýjená aplikace v angličtině a pro anglicky mluvící, je všechno krásné, funkční a jednoduché. Problém začne až ve chvíli, kdy se na web začne míchat Unicode.
Read the rest of this entry »
Posted in Perl | No Comments »
January 26th, 2008
V minulém příspěvku o Sudoku solveru. -mt- v diskuzi pod příspěvkem namítal, že solver je podobně rychlý jako jeho naivní solver v C++. Že by chytré řešení v Javě bylo stejně rychlé jako naivní řešení v C++ zní trochu divně — ledaže by to s tou chytrostí nebylo tak horké…
Nebylo. Při kontrole korektnosti pozice se testovalo, zda v některé skupině (tj. řádku, sloupci nebo podčtverci) nejsou dvě stejné hodnoty a že pro každé pole zbývá alespoń jedna možná hodnota. Přidáním dalšího testu, který kontroluje, jestli do každé skupiny stále lze vložit (nebo už je vloženo) všech devět číslic. Na úloze z předchozího příspěvku klesl počet návratů při backtrackingu díky rychlejší detekci nekorektní pozice z 174844 na 35039.
Bez dalších technických optimalizací se čas nutný přo nalezení řešení výše zmíněné úlohy (na stejném stroji) snižil z průměrných 2940,3 ms na 392.16 (± 16) ms. Nová verze solveru včetně zdrojových kódů je ke stažení na stránce projektu. Několik nápadů na zrychlení ještě zbývá, ale to zas někdy příště…
Posted in AI | No Comments »
January 5th, 2008
Když jsem před časem programoval Sudoku solver v Javě, použil jsem jednoduchý, dalo by se říci až naivní, přístup k vytvoření zásobníku pro backtracking. Při řešení jednoduchých sudoku naivní implementace nevadí, protože k backtrackování dochází jen minimálně. Jak to je s (ne)efektivností tohoto řešení doopravdy se ukázalo až na opravdu těžkých zadáních z Minimum Sudoku.
Read the rest of this entry »
Posted in Java | 5 Comments »