Až Vám zčerná obrazovka, přejděte na Linux!

Proč používat Linux

pátek 21. října 2011

Grails, Searchable plugin a org.hibernate.NonUniqueObjectException

Podařilo se mi při testování Searchable plugin získat org.hibernate.NonUniqueObjectException při Create operaci. Je to způsobeno chybou při vkládání do složeného indexu. Tvůrce pluginu s tím má nějaké potíže, takže je potřeba použít workaround: je potřeba během save() vypnout mirorring a občas pro jistotu reindexovat.

def searchableService
def save = {
def polozkaInstance = new Polozka(params)
searchableService.stopMirroring()
if (polozkaInstance.save(flush: true)) {
flash.message = "${message(code: 'default.created.message', args: [message(code: 'polozka.label', default: 'Polozka'), polozkaInstance.id])}"
redirect(action: "edit", id: polozkaInstance.id)

}
else {
render(view: "create", model: [polozkaInstance: polozkaInstance])
}
searchableService.startMirroring()
}


Třeba to někomu pomůže.

pátek 23. září 2011

Generování PDF v grails - chybějící české znaky


PDF plugin do Grails je rychlé a šikovné řešení, ale, samozřejmě jako se vším, co udělají kluci v USA, neřeší korektně kódování. Takže je potřeba embedovat font, který obsahuje patřičné znaky. Zde je ukázka, jak to udělat.
Třeba to někomu pomůže.
<style>
    @page {
        size: 210mm 297mm;
    }
    @font-face {
        src: url(file:///c:/windows/fonts/arialuni.ttf);
        -fs-pdf-font-embed: embed;
        -fs-pdf-font-encoding: Identity-H;
    }
    body {
        font-family: "Arial Unicode MS", Arial, sans-serif;
    }
    </style>

Kdy konečně svět pochopí. že celým problémem terorismu je Izrael

Chápu, že je to velmi kontroverzní názor, ale bojím se, že je tomu přesně tak.
Před odsouzením tohoto názoru doporučuji přečíst http://procislam.webovastranka.cz/wiki/299/1809
Co si myslím o terorismu jsem psal již dříve, takže prosím neobviňovat z jeho podpory.

středa 13. července 2011

Rychlejší než světlo

Tak jsem se dnes, 13.7.2011, díval na ČT 2 na pořad Hranice času. A jen tak mimochodem se zmínili o tom, že se vědcům podařilo prolomit bariéru rychlosti světla a to dokonce 4,7 krát. Ano, existuje Čerenkovovo záření, které vzniká tak, že gama-záření prochází průhlednou látkou, ve které se světlo pohybuje pomaleji než ve vakuu. Tady ale o tento případ nejde.
Jedná se o poměrně složitou teorii, kterou jednoduše shrnuje název Kvantové Tunelování. Klasická fyzika vychází z teorie kauzality. Představte si to jako domino. Dominové kostky máte v řade jednu za druhou. Když cvrnknete do první, postupně, jedna po druhé, rychlostí, kterou lze spočítat, začnou padat. Kvantové tunelování by mělo umožnit kauzalitu porušit. Představte si to tak, že necvrnknete jenom do jedné kostky, ale do všech. Rychlost šíření pádu tedy odpovídá rychlostí vaší ruky. Je tedy možné, že při správném způsobu cvrnknutí se poslední dominová kostka pohne ještě dříve, než by první narazila do druhé.
Profesor Günther Nimtz a jeho skupina z Univerzity v Cologne publikovali zprávu, v níž popisují přenos mikrovlnného signálu o frekvenci 8,7GHz na vzdálenost 11,4 centimetru rychlostí 4,7-krát vyšší než je rychlost světla. Tímto signálem byla Mozartova 40. symfonie.

Víc viz třeba tady nebo česky zde

sobota 12. března 2011

Jak málo někdy rozhoduje při souboji cechů

Za poslední dva dny jsme my v kofola_teamu na Shakes&Fidget zaznamenali tři naprosto rozdílné bitvy cechů.
První jsme prohráli velice těsně. Dobře si prohlédněte souboj druhého nejlepšího hráče protivníka a naše nejlepšího - Highlandera. Polomrtvá dá kritický zásah, který ubere víc než polovinu životů :-(
Tady je: http://www.youtube.com/watch?v=HTso6_ryqDU

Oproti tomu zase Highlander sám vymlátil téměř půlku cechu:

http://www.youtube.com/watch?v=lg1Bz8k--3E

A poslední je o tom, že když se spojí síly celého cechu, tam jdou vymlátit i daleko silnější soupeři: http://www.youtube.com/watch?v=z0g_i_S8cv0

sobota 5. března 2011

Onlajnovky a zamindrákované děti

Je zvláštní, jak "moderní" on-line hry zasáhly svět. Desítky různých her, desítky různých principů, a přitom vše o jednom. Chcete-li něčeho dosáhnout, musíte si zaplatit speciální bonusy.
Kde jsou staré dobré zlaté časy MUDů, neboli MultiUserBungeonů, jako byla Moria. Nedokážu si představit, že bych si kupoval lepší zbraně. Proto je zvláštní, že většinu hráčů tvoří děti.

Synovec, který hraje bůhvíco o mezihvězdných válkách, se mě z vážnou tváří zeptal, jestli si myslím, že by tuto hru hrál i takový stařík, který má, považte, třicet tři let! Bylo pro něj naprosto nepředstavitelné. Teprve když jsem mu připomněl, že já také občas pařím nějakou tu onlajnovku, zarazil se a řekl, že teda asi jo. A tyto děti podle mne tvoří také většinu platících účastníků. Podle mého průzkumu si to platí SMSkama z mobilu. A to buď tajně a nebo když jim přesvědčí dědečka či babičku.

Je to pěkný výchovný hnus, ale daleko horší vliv na ně má ona anonymita. Každý si hned myslí, že když nikdo neví, kdo on je, tak že si může dovolit urážet a být sprostý. A pak se to přenese do běžného života. Každopádně dnes nad ránem jsem si užil úžasný otřesný zážitek.

Jeden devítiletý kluk, říkejme mu Pepa Vařák, mně (účet Telcontar) a ještě jednomu důstojníkovi (říkejme mu dust) cechu kofola_team na S4.sfgame.cz, pod účtem josef120 napsal asi toto: "Pošli mi pozvánku"

Žádné prosím, please ani PLZ nebo můžu a tak. Prostě příkaz. Protože podmínka byla úroveň 60 a on měl jen 48, odespal jsem mu ve stejném stylu: "MUHAHAHAHAHÁÁÁÁÁ!!! AHAHAHAHA!!!!!"

Na to napsal: "Tak jo odešli mi tu pozvánku." A v dalším mailu přidal, že je houbičkář. Řekl jsem si, že ho přijmu, protože je cechu třeba každého houbičkáře (toho, kdo si kupuje bonusy (houbičky)), protože jenom za houbičky je možné vylepšovat vlastnosti cechu.

Součástí Shakes & Fidget je cechovní chat neboli kecátko. Když se přihlásil do cechu, rozvinula se na chatu následující debata:
:ahoj
Telcontar: cus
:čus
josef120: Ahoj čus cus co to jako má bejt?
: pozdrav?
josef120: Si mislíte že sem číňan? Debilové!
Telcontar: No nic

A dál to pokračovalo v podobném duchu. Mezi tím jsme si s mým prvním důstojníkem povídali, co si o něm myslíme. A protože ono kecátko umožňuje posílat zprávy taky samotnému hráči, psali jsme si to přímo v chatu a prokládali tím veřejnou komunikaci. Takže to v jednu chvíli vypadalo takto:

josef120: Jak se menuješ?
dust: A proč to chceš vědět?
josef120: si pičus? to je jasn. ja sem pepa v.
dust->Telcontar: Co si o něm myslíš?
Telcontar->dust: Asi pěkné pako.
dust-> Je to houbičkář?
dust: Aha. Můžeš mi říct, kolik je ti let?
Telcontar->dust: tvrdil že jo
josef120: devět a neser kreténe
dust: Myslel jsem si to. Víš o tom, že by tu někteří z nás mohli být tvoji taťkové? Tak by ses měl chovat slušně.
Telcontar->dust: Hmmm. Kolik hub z něho vytáhneme, než ho vykopneme? :-D
dust->Telcontar: :D Podívej se na jeho profil, já se zasmál, až jsem se za břicho popadal.
josef120: Pošuku!
Telcontar->dust: Tý brďo, on píše, že je pod ochranou hráče s levelem o jedna vyšším!
Telconar: josefe, kdy dodáš slibované houbičky a kolik?
dust->Telcontar: Dost dobrá otázka.
Telcontar->dust: Ty, ten hráč, pod kterého je ochranou, je asi on sám. Jmenuje se varak12...

A pak jsem dostal poštu od josef120:
žekni tim tvem pitomem hraču klidně tet.

A pak opustil cech.

neděle 20. února 2011

kofola_team_druhe_podzemi_s4.mpeg

Tak jsem se po dlouhé době rozhodl zkusit si další onlajnovku. V tomto případě Shakes & Fidget (pokud se rozhodnete to zkusit, použijte tento odkaz, dostanu za to plusové bodíky :-)). U ní není nutné trávit dny i noci jako u Travianu, i když to taky nějaký čas schlamstne.
Princip je v to, že jste hrdina (válečník, kouzelník nebo průzkumník) jedné z osmi ras (člověk, elf, temný elf, trpaslík, gnóm, ork, skřítek a démon) a tak jako každý správný hrdina chodíš po hospodách a necháváš se najímat na různé úkoly. Každý úkol trvá nějakou dobu a na každý den máš vyhrazeno 100 minut na dobrodružství.
Celé je to pěkně vymyšlené. Ovládání není ve skutečnosti nic jiného než pěkně graficky ztvárněné menu. V menu si vybereš "Hospoda", tam si klikneš na zadavatele úkolu, vybereš jedno ze tří dobrodružství a pak už jen čekáš, jak ono dobrodružství dopadne. Až uplyne doba dobrodružství, zobrazí se dva obrázku - jeden s tvojí podobiznou a jeden z nepřítelem. A ty jenom sedíš a koukáš, jak se tvůj hrdina ohání mečem, střílí z kuše, vysílá blesky nebo řeže motorovou pilou svého nepřítele a doufáš, že na konci zbyde tvému hrdinovi aspoň nějaký život, kdežto protivníkovi žádný.

Postupně jsem se dostal do cechu kofola_team, který momentálně vedu.
Tady zkusím dávat nějaké videa z výprav cechů do podzemí.

neděle 13. února 2011

Jak nastavit GMail jako výchozí mailer pro mailto: v Google Chrome

Postupně přecházím na svět Google+Linux. Pořídil jsem si Android, na Ubuntu používám jako výchozí prohlížeč Google Chrome, poštu čtu na GMailu, Kalendář mám v Google Aps, dokumenty tam začínám mít také. Jenom mne pořád štvalo, že se mi při kliknutí na mailto: vždy spustí evolution místo otevření GMailu. Ale to je již minulostí.
Hledal jsem v nastavení, jestli mi to neumožní, nic. Trochu jsem Gůglil a našel jsem rozšíření, které to umí. Kde stažení je zde: https://chrome.google.com/extensions/detail/dgkkmcknielgdhebimdnfahpipajcpjn .
Instalace jednoduchá, funkcionalita perfetní.
Třeba to někomu pomůže.

pondělí 31. ledna 2011

První potkání s Grails

Tak jsem se po dlouhém odkládání konečně dostal k tomu vyzkoušet si Grails. Na tento framework jsem četl poměrně hodně chvalozpěvů, jak moc je to jednoduché v něm něco udělat, a tak jsem si říkal, že by to snad ani nemuselo být nijak složité.
Stáhl jsem si Grailsy a protože vím, že IntelliJ IDEA má pro Grailsy podporu, zkusil jsem bez jakékoli přípravy to zkusit rozjet.
To, že IDEA je naprosto fantastická, jsem věděl už dávno. Ale to, co jsem právě prožil, to je prostě fantazie.
  1. V prvé řadě vytvoříte Grailsový projekt. Tady není co zkazit, jenom odklikáte from scratch, název a cestu (tak jak jste zvyklí), jenom místo Java projektu zvolíte Grails.
  2. Otevře se Vám místo klasického stromečku Project stromeček GrailsView, které obsahuje logicky uspořádané objekty. V tuto chvíli jsem naprosto nevěděl, co dělat, i sáhl jsem po Gůglu a vygůglil tutoriál Getting Started with Grails od Scotta Davise a Jasona Rudolpha. Je zdarma ke stažení na infoq.com, ale vyžaduje registraci. Tam jsem se dočetl o tom, co je doménová třída, controller a view (skončil jsem na straně 27 u "Hello World")
  3. Přes pravé tlačítko na Domain classes jsem si vytvořil první doménovou třídu Race a nakopíroval do ní seznam atributů z tutoriálu.
  4. Klikl jsem na RaceController - Generate controller, čímž se vygeneroval zajímavě vypadající CRUD Controller.
  5. Klikl jsem na Race Views - Generate views, čímž se vygenerovaly čtyři soubory GSP.
  6. Ze srandy jsem klikl na Run. Otevřel se prohlížeč a v něm uvítací stránka Grailsů a v ní odkaz na RaceController.
  7. Klikl jsem na něj a BINGO! Otevřela se mi velice hezky vypadající jednoduchá, ale plnohodnotná webová aplikace - evidence mých objektů Race!  
V tuto chvíli mi spadla čelist..

Všechno je to pěkně popsáno i s ukázkami zde 
Příště popíšu další zkušenosti s touto na první pohled geniální dvojicí - Grails a IDEA.