8. February 2009

Macko Uško je populárnejší než Termix

Sociálne site sú dnes veľmi obľubené. Jednou z nich je aj svetoznáma Konecna.net, prípadne trochu menej známy príbuzný Facebook.com. A práve táto menej známa sieť umožňuje sprístupniť srandovnú funkciu: Staň sa fanúšikom. Chvíľku som sa bavil tým, že som hľadal obľúbené kapely a filmy. Zaklikával som ich. Potom si spomenul na skvelý, dokonalý a ničím nenahraditľný Termix. Inu, stal som sa fanúšikom. Ako tak hľadím do profilu, čo to nevidím. Žúžový večerníček Macko Uško je 4x populárnejší, než slávny Termix. Bol to kultúrny šok, o ktorý sa s vami takto rád podelím. :))

Skóre, ktoré som na Facebooku nameral:

  • Macko Uško – 16 465 fanúšikov (bez DPH)
  • Termix – 4 858 fanúšikov

30. January 2009

Je vám smutno? :-((

Predchádzajúci článok na tému Je vám smutno? :-(, otvoril cestu pre nový pohľad na IT. Dôkazom toho je aj veľký ohlas, ktorý som zaznamenal. Medzi tisíckami ďakovných listov, ktoré som dostal do redakcie, tu bol aj jeden inšpiratívny. Veľmi významná osoba vo svete funkcionálneho programovania mi dodala ďalšie zaujímavé výsledky. Toutou osobou nie je nik iný ako známy autor populárnej sociálnej siete konecna.net, majster lamba umenia: Lordrat.

Njskôr sa zameral na to, že niektoré programy berú prístup k užívateľovi esteticky pomocou ascii artu. Napríklad taký Clisp.

clisp
  i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
  I I I I I I I      8     8   8           8     8     o  8    8
  I  \ `+' /  I      8         8           8     8        8    8
   \  `-+-'  /       8         8           8      ooooo   8oooo
    `-__|__-'        8         8           8           8  8
        |            8     o   8           8     o     8  8
  ------+------       ooooo    8oooooo  ooo8ooo   ooooo   8

Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2006

[1]> :-(
:-
[2]>

Vidíme, že aj napriek silnému tlaku copyrightu, Clisp zareaguje prekvapene a dalo by sa povedať, že skoro až bez komentára :-

Ponorme sa do histórie, spýtajme sa kompilátora jazyka C a uvidíme či sa dokáže vysporiadať nie len s null pointermi, ale aj smajl pointermi.

echo ':-(' | gcc - -E
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"
:-(

Jednoznačne vidíme snahu o komunikáciu, kde sa kompilátor ponúka alternatívne riešenia pre vašu náladu.

O nepochopenie v medziľudských vzťahoch vôbec nie je núdza. S počítačmi je to podobne. Napríklad Bash vás vôbec nepochopí a naznačí vám, že od vás čakal niečo úplne iné

$ :-(
bash: syntax error near unexpected token `newline'

Zostaňme ešte chvíľku pri shelloch. Zdá sa, že tcsh emócie nezvláda. Je však veľmi cenné, že to dokáže priznať.

tcsh
> :-(
Too many ('s.

Zsh zaryto mlčí, podobne ako tomu bolo u PHP.

No a na záver jeden shell, ktorý sa vás pokúsi presvedčiť, že by ste sa mali tváriť :-) a nie :-( . A je to Ash.

ash
Syntax error: newline unexpected (expecting ")")

Za všetky príklady ďakujem Lordratovi.

25. January 2009

Je vám smutno? :-(

Poznáte taký ten pocit, kedy je vám smutno a nemáte to komu povedať. V dnešnej digitálnej dobe veľa vecí rieši počítač. Prečo by nemohol riešiť aj vaše :-( ? Pýtali sme sa preto rôznych programov, čo vám dokážu poradiť na :-( náladu. Niektoré sa s vami zakecajú, iné vás pošlú do /dev/null, kde slnko určite nesvieti.

Ako prvého sme sa spýtali Hugs. Hugs ako už sám názov hovorí vyjadruje objatie:

Hugs> :-(
Command not recognised.  Type :? for help

Vidíme, že Hugs reaguje citlivo a na zamračeného smajlíka odpovie :?

Pýtali sme sa preto ďalej. Python je v tomto ohľade veľmi solidárny, dokonca si s vami aj poplače a povie vám aký je svet strašný:

>>> :-(
  File "<stdin>", line 1
    :-(
    ^
SyntaxError: invalid syntax

Perl je trochu menej osobnejší, pragmatickejší a rozhodne sa s vami zahadzovať nebude:

:-(
syntax error at - line 1, at EOF
Execution of - aborted due to compilation errors.

Spýtali sme sa napríklad Fakulty Informatiky MU, čo vám povie, keď je vám smutno:

telnet fi.muni.cz 80
Trying 147.251.48.1...
Connected to fi.muni.cz.
Escape character is '^]'.
:-(
<?xml version="1.0" encoding="UTF-8"?>
    <title>Chyba 501 / Error 501 | Fakulta informatiky Masarykovy univerzity</title>

No, pekne zvalí to na vás, že je to vaša chyba.

Skúsme vniesť do emócii trochu logiky a spýtajme sa Yap-u:

[ Restoring file c:\ruzne\yap\Yap_4\bin\startup ]
[ YAP version Yap-4.4.4 ]

   ?- :-(.
[ SYNTAX ERROR at line 4:
 :-(
<==== HERE ====>

Logicky vám odpovie, že ak platí, že ste smutný, tak ste smutný. No poteš.

PHP pre istotu bude zanovito mlčať.

 :-(

No, ako vidíme, počítače zvládajú emócie na rôznej úrovni, niektoré sú solidárne iné nie.

Za inšpiráciu ďakujem Evke :)

18. January 2009

Ako Centos z VmWare na reálne železo prešiel

Mal som tu jeden Linuxový stroj nahodený vo VmWari. Aj keď je VmWare relatívne dobrý nástroj, jeho výkon ďaleko zaostáva za systémom na reálnom železe. Len ako drobná ilustrácia:

  • rsync z Linux HW na Linux HW – cca 10 MB/s
  • rsync z Linux VmWare na Linux HW – cca 700 KB/s

Uznávam, že je to len malý rozdiel a väčšina bežných užívateľov si ho “ani nevšimne”. No, ale to nie je zaujímavá časť príbehu. Väčšia sranda je s tým prenosom. Už za dávnych dôb som hlásal, že je možné skopírovať bežiaci stroj na nové železo a mám znova bežiaci stroj. Pomocou rsyncu je to veľmi jednoducho možné. Typicky:

rsync -avz -A -H --exclude proc --exclude sys / root@crpak:hda1

Lenže doba sa zmenila a nie všetko je ako bývalo. Tak som to všetko pekne narsyncoval, zapísal som zavádzač systému grub:

grub --no-floppy
root (hd0,0)
setup (hd0)
quit

A reštartoval som. Systém nabehol. Intermezzo s tým, že Centosovia nemajú priamo v kerneli a initrd podporu pre XFS, vynechám (ccc človek si prípadá tak o 10 rokov späť). Systém nabehol, pričom všetky služby strašne frflali, že majú len read only súborový systém. Kuknem na výpis príkazu mount a tam RW. Ha? Skúsim:

mount -o rw,remount /

Dostanem hlášku: Only root can do that. Trošku som si pripadal ako keď sa vo W2K objavila administrátorovi hláška: Kontaktujte svojho administrátora. Chíľu som skúmal, kde by mohol byť problém. Nakoniec to nebol problém ale feature. Selinux si kontróloval nastavenie atribútov a zamietol mi prístup. Problém bol v tom, že pri klasickom rsyncu sa neprenášajú atribúty filesystému, ktoré využíva Selinux. Rsync od verzie cca 2.6.9 podporuje prepínač `-X`, ktorý je to čo som potreboval.

rsync -av -A -H -X --exclude proc --exclude sys / root@crpak:hda1

Reboot a systém funguje parádne. Ešte je nutné dodať, že pre tar platí to isté ako pre rsync. Pokiaľ chcete zálohovať aj atribúty potrebné pre Selinux, použite nástroj star.

17. January 2009

Migrácia z Plone 2.5 na Plone 3

Hostujem na serveri niekoľko Plone portálov. Plone je open source CMS, ktoré má za sebou už nejaký rok vývoja a pomerne rozsiahlu komunitu. Riešil som migráciu Plone 2.5, ktorý bežal na aplikačnom serveri Zope 2.9. Nový Plone 3 si vyžaduje aj nový aplikačný server Zope 2.10. Radim Novotný radil použiť na migráciu produkt GSXML. Problém tohoto produktu však bol v tom, že po jeho nainštalovaný do starého Zopu, som neustále dostával chyby na každý request a nedalo sa prihlásiť ani do admin rozhrania. Produkt som preto odstránil a použil som nízko úrovňový export cez ZMI. Vytvorený export zexp som preniesol do nového portálu a dal import, ale ouhá:

Error Value: Input MIME type 'text/x-web-markdown' for transform
markdown_to_html is not registered in the MIME types registry

Našťastie Darcilious už podobný problém riešil. Celá finta spočívala v pridaní potrebných typov do mime type registry. Každý som pridal samostatne, stačilo vyplniť len meno typu a typ. Ja som pridával nasledovné:

text/x-web-intelligent
text/x-web-markdown
text/x-web-textile

Následne stačilo portál znova vyexportovať a importovať. Všetko prebehlo bez problémov. A migráciu som dokončil vyvolaním upgradu pomocou portal_migration

4. January 2009

Siriel 3.5 je opäť hrateľný v DosEmu

Skúšal som spustiť svoju starú hru Siriel 3.5 pod Linuxom v emulátore DosBox. Na tú smolu z nejakého dôvodu emulátor grafickej karty S3, ktorý je v DosBoxe implementovaný nefunguje úplne ako by som čakal. Hra je akoby 2x širšia po X-ovej osy, takže mapy sa cez seba prekrývajú. A rozhodne nie je hrateľná. Experimentoval som s rôznymi nastaveniami DosBoxu, ale nepodarilo sa mi ho úspešne rozbehnúť. Na záver som výskúšal DosEmu.

DosEmu funguje výborne. Spracovanie grafiky bolo niekoľko násobne rýchlejsie. Jediný problém bol, že hra bežala akoby trochu rýchlejšie, hlavne audio. Laždopádne už bola hrateľná. Takže, ak chcete vyskúšať Siriela , spustite ho v DosEmu (dostupné len pre Linux) :)

3. January 2009

O Sirielovi a ako som hľadal herný engine.

Raz za čas ma prepadne myšlienka, že by bolo fajn znovu spojazdniť Siriela. Siriel, je hra, ktorú som za dávnych časov napísal na strednej. Je to adventúrka inšpirovaná sériou hier, kde bola hlavná postavička vajíčko Dizzy. Túto hru majú na svedomí Code Masters. Veľmi populárna bola hlavne na ZX Spectre a Didaktikoch M a Kompakt.

Prvá PC verzia Siriela bola napísaná v Pascale v neuveriteľnom rozíšeni 320×200 a v pozadí hrala hudba. A tak vznikol Siriel 1. a Siriel 2. Hra Siriel 3. už zostala nedokončená, pretože svet sa predsalen trochu posunul, čo sa týkalo grafiky na 640×480. A Tak začal vznikať Siriel 3.5 (je možné spustiť v DosBoxe). Tentokrát som ho už postavil ako engine, do ktorého sa dali dohrávať datadisky. K dispozícii bol aj level editor, kde si človek mohol nakresliť vlastný level. Počas roku, čo som na ňom pracoval sa mi podarilo vyrobiť tri veľké datadisky: First mission, Cauldron a Golden ball.

No, lenže sláva DOS Pascalu netrvala večne. TPU a assemblerovský kód na správu pamäte bol neprenositeľný a všetky pokusy o kompiláciu tohoto programu pod Linuxom, či Windowsom úspešne zlyhali. Niekoľko krát som sa pokúsil previesť refaktoring a zmeniť základné knižnice. Ale po dňoch úporného zápasenia s mojím stredoškolským projektom, som to vzdal. Predsa len štýl programovanie nebol ešte vybrúsený.

Po márnych pokusoch som si povedal, že Siriela skúsim prepísať do C++. S istým úspechom som sa pohol ďalej, ale objektový návrh nebol úplne dobrý a hlavne neustále pády C++ komplikovali vývoj. Keď si to tak spetne zrovnám, tak Pascalovský kód bol veľmi stabilný. A tak vznikol Siriel 4.

Vďaka C++ však vývoj napredoval pomaly a hra bola síce rýchlejšia, ale vývoj sa spomaľoval a spomaľoval, až ma to prestalo baviť. Po nejakom roku odmlky som si zas povedal, že by možno stálo za pokus napísať Siriela v Pythone. Tak som sa pustil do písania enginu Siriel 5. Tu boli výsledky k dispozícii okamžite a s použitím PyGame to bola radosť vyvíjať.

Voľného času oproti strednej škole však silne ubudlo a tak som musel projekt na dlhú dobu nechať tak. Dnes som mal chvíľku čas. Inšpirovaný Scummvm, na ktorom bežia staré hry pre DOS, som si povedal, že sa pokukám po nete. Či už niekto engine nespravil, že by som doň len nafrkal levely, grafiku a hudbu. Našiel som pár kandidátov.

U väčšiny enginov je problém, že sa snažia byť 3D a taký ja nechcem, mne bohate stačí 2D, ktorý pobeží aj na šuntových počítačoch a nových mobiloch.

Tak a tu sú výsledky prieskumu:

  • Scummvm – staré hry bežia v pohode, je k dispozicíí aj verzia pre Symbian, avšak samotní autori odporúčajú použiť niečo iné na vývoj nových hier.
  • Fenix – sľubný projekt, čo sa týka záberu. Avšak vyzerá, že už je mŕtvy. Namiesto dokumentácie, si človek prečíta MySQL error a posledný release bol 04.2007
  • LÖVE – veľmi prepracovaný projekt s aktívnou komunitou. Ako skriptovací jazyk využíva Lua. Engine je síce postavený nad rýchlym SDL, ale zdá sa, že autori neoptimalizovali vykresľovanie obrázkov.
  • PyGame – nejedná sa síce o engine, ale o knižnicu napísanú v Pythone, ktorá poskytuje wrapper nad SDL. Takže človek môže využiť rýchlosť SDL knižnice napísanej v C a flexibilnosť Pythonu. Takže momentélne je to môj najhorúcejší kandidát, nad ktorým budem pokračovať v stavbe enginu.

Keď to vezmem celé dokola, tak ma prekvapuje, že sa vývoj v oblasti herných ne3D enginov akosi nepohol dopredu. Možno som však len málo googlil ;-)

  • Babel fish

      Translate from:

      Translate to:

  • Where’s the fish?

  • Further info

  • Twitter

    Follow @jurajmichalek on twitter.

  • Learning

    lynda.com online training tutorials
  • Tags

  • Topics

  • Comments