All english written articles have English article tag and lays under horizontal line. First part is written in Czech.

čtvrtek 22. listopadu 2012

C# a .config soubor / Czech only article

Celkem nedávno se mi naskytl při žvb-ákování problém s updaterem. Zkrátka měl dotyčný nainstalovanou jinou verzi frameworku, než byla potřeba a dostal prapodivnou hlášku:
Docela mi to dalo zabrat protože obvykle se zobrazila chyba 0x a tak dále. Řešení se nalezlo poměrně snadno (google nezklamal a pomohl). Řešení spočívá v umístění speciálního souboru s příponou config. Stačí aby uvnitř bylo něco jako toto:

<startup>
  <supportedRuntime version="v4.0.30319" />
</startup>

Pokud se vyskytuje těchto pár řádků uživateli je hned nabídnuta správná verze ke stažení. Snad to pomůže aj někomu jinému.

středa 1. srpna 2012

Raspberry pi dorazilo / Czech only article

Konečně je doma. Celkem jsem čekal asi měsíc a půl. Očekával jsem že to bude trvat dýl, ale naštěstí to bylo poměrně rychlé. Přišlo mi v pondělí. A jelikož sem jako obvykle nepřipravenej, tak sem neměl ani zdroj ani sd kartu ani krabičku. Jediný co sem měl byla malina.
Nabíječku sem sem sehnal až v úterý. SD kartu jsem si uzmul z foťáku (odpovídá tomu i rychlost se kterou se předvádí). Krabičku jsem opatřil z lega. Destička se vešla úplně přesně. Nahrál jsem tam raspbian. Naštěstí všechny součásti fungovaly hned napoprvé. Celý včerejšek jsem se snažil nainstalovat program pro vzdálenou plochu. Z nějakého divného důvodu se stále nedařilo. Program ,,vino" nešel a tak jsem nakonec podle tohoto návodu nainstaloval tightvncserver. Problémy taky dělal skript pro automatické spouštění po restartu. Musel jsem jej upravit do této podoby:
### BEGIN INIT INFO
# Provides:             vncserver
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Start VNC Server at boot time
# Description:          Start VNC Server at boot time
### END INIT INFO

#!/bin/sh

export USER=root
export HOME=/root
export RUN_USER=pi

case "$1" in
  start)
    echo "Starting VNC Server"
    su pi -c "/usr/bin/vncserver"
    ;;

  stop)
    echo "Stopping VNC Server"
    su pi -c "/usr/bin/vncserver -kill"
    ;;

  *)
    echo "Usage: $0 {start|stop}"
    exit 1
    ;;
esac

exit 0

Další poznatky zas příště.

neděle 22. července 2012

XNA a Serializace IV. / XNA and serialization IV.

Původně jsem myslel, že dnes ukáži kus kodu pro provádění samotného ukládání a načítání, ale když jsem odeslal a vypustil do světe poslední článek, došlo mi pak v posteli (mimo jiné nejlepší místo na přemýšlení), že jsem zapomněl napsat jak je to u dědičnosti. Pokusím se to dnes napraviti.
Stejně jako minule uděláme si ukázkové dvě třídy, kdy bude jedna odvozena od druhé.
public class A{
    public A(){
    
    }

    public A(GenericReader reader){
        int version=reader.ReadInt();
        //nacitani hodnot
    }
    
    public virtual void Serialize(GenericWriter writer){
        writer.Write(0);//verze
        //zapis ostatnich hodnot
    }
}

public class B:A{
    public B(){
    
    }

    public B(GenericReader reader):base(reader){
        int version=reader.ReadInt();
        //nacitani hodnot
    }

    public override void Serialize(GenericWriter writer){
        base.Serialize(writer);
        writer.Write(0);//verze
        //zapis ostatnich hodnot
    }
} 

Následující příklad jasně ukazuje co je potřeba provést. Při ukládání metodou Serialize, je nutné pokaždé zavolat metodu od předka. Dále je také důležité aby metoda přepisovala metodu původní, to ale jak jistě milý čtenář ví provedeme klíčovými slovy virtual a override. Načítání hodnot v konstruktorech je běžné. Pouze opět zavoláme konstruktor předka pomocí base. Důležité je vědět, že se nejprve zavolá konstruktor předka a teprve potom konstruktor současný. Proto se nejprve při zápisu volá metoda od předka. Pořadí hraje v binární serializaci důležitou roli!!
Tak a zítra se podíváme konečně na obslužný kod, který napsané metody využije a zavolá.



In today's article I will write about serialization of derived classes. I simply forgot write about them yesterday.
This is our example, let's have two classes A and B:
public class A{
    public A(){
    
    }

    public A(GenericReader reader){
        int version=reader.ReadInt();
        //reading values
    }
    
    public virtual void Serialize(GenericWriter writer){
        writer.Write(0);//version
        //writing values
    }
}

public class B:A{
    public B(){
    
    }

    public B(GenericReader reader):base(reader){
        int version=reader.ReadInt();
        //reading values
    }

    public override void Serialize(GenericWriter writer){
        base.Serialize(writer);
        writer.Write(0);//version
        //writing values
    }
} 

For saving values in Serialize method is important have this method virtual. This is done by keyword virtual and override as usual. Derived class MUST call method from base class and after that write all values. This must be done because of constructors. Constructors are invoked from the most base class (in C# object class) to top most. In binary serialization is order very important.
 See you tomorrow.

sobota 21. července 2012

XNA a Serializace III. / XNA and serialization III.

Včera jsem napsal o třídách, které se postarají o ukládání dat do souborů samotných a dnes se podíváme na to, jak je využít.
Každá třída, která má být serializována na to musí být uzpůsobena. Možností je několik. Já jsem nakonec vybral možnost tuto. Každá třída má virtuální metodu Serialize, ta se stará o ukládání a speciální konstruktor, ten se stará o načítání. RunUO to má kapku jinak, ale tato možnost se mi zdála být lepší. Kupříkladu takto:
using System;

namespace VodacekEngine {
    public class Priklad {
        public Priklad(){
        }

        public Priklad(GenericReader reader){
            int version=reader.ReadInt();
            //zde nacitani promennych
        }
 
        public virtual void Serialize(GenericWriter writer){
            writer.Write(0);//verze, k cemu se pouziva vice dale
        }
    }
}

Verze je pro všechny objekty stejná, vřele doporučuji ji tam mít. Slouží k tomu, když bude potřeba nějakou proměnnou přidat, nebo odebrat. Pokud by tam nebyla nastal by při načítání problém a obsah se načetl špatně, nebo by skončil chybou. Nejčastěji pokus o čtení za koncem souboru.
Pokud chceme přidat novou proměnnou jednoduše zvedneme proměnnou s verzí a do čtení pak na verzi dáme podmínku kupříkladu přidáme naší třídě proměnnou jméno:
using System;

namespace VodacekEngine {
    public class Priklad {
        public string Jmeno;
        public Priklad(){
        }

        public Priklad(GenericReader reader){
            int version=reader.ReadInt();
            if(version>=1)Jmeno=reader.ReadString();
            else Jmeno=null;//nebo jina pocatecni hodnota
        }
 
        public virtual void Serialize(GenericWriter writer){
            writer.Write(1);//<------ zvednuta o 1
            writer.Write(Jmeno);
        }
    }
}

Místo podmínky, lze užít třeba switch a case, důležité je zvednout verzi a číst a zapisovat ve stejném pořadí.
Pokud by bylo potřeba proměnnou Jmeno nopak zrušit, tak opět zvedneme verzi o jedničku. Zapisování proměnné smažeme a upravíme načítání:
using System;

namespace VodacekEngine {
    public class Priklad {

        public Priklad(){
        }

        public Priklad(GenericReader reader){
            int version=reader.ReadInt();
            if(version==1)reader.ReadString();//promennou nacteme, ale neukladame
        }
 
        public virtual void Serialize(GenericWriter writer){
            writer.Write(2);//<------ zvednuta o 1
        }
    }
}
Proměnnou načteme, ale nikam ji neuložíme. (ono taky mezi námi není kam ukládat když ta proměnná neexistuje) Načítání je potřeba provést tak jako tak, jinak hodnoty uložené za touto by byly načteny špatně. Podmínka se také mírně změnila. Tentokráte testujeme pouze na tu jednu verzi ve které se proměnná vyskytovala.
Dalším problematickým případem je ukládání polí. Používá se tam jeden fígl. Pojďme se podívat na naši ukázkovou třídu:
using System;

namespace VodacekEngine {
    public class Priklad {
        public string[] Jmena;
        public Priklad(){
            Jmena=new string[]{"Pepa","Jernom","Kucir","Jelen"};
        }

        public Priklad(GenericReader reader){
            int version=reader.ReadInt();
            if(version>=1){
                int pocet=reader.ReadInt();//nacteme pocet prvku
                Jmena=new string[pocet];//vytvorime pole o poctu prvku
                for(int i=0;i>pocet;i++){
                    Jmena[i]=reader.ReadString();//postupne nacteme prvky pole
                }
            }
            else Jmena=new string[]{"Pepa","Jernom","Kucir","Jelen"};//initializace
        }
 
        public virtual void Serialize(GenericWriter writer){
            writer.Write(1);//<------ zvednuta o 1
            writer.Write(Jmena.Length);//zapiseme pocet prvku
            for(int i=0;i<Jmena.Length;i++){
                writer.Write(Jmena[i]);//zapisuje vsechny prvky
            }
        }
    }
}
Nejprve se zapíše počet prvků pole a poté prvky samotné. Při načítání se načte počet a for cyklem se provede načítání jednotlivých prvků.

Tak to je pro dnešek vše. Příště (snad zítra) se podíváme na kod, který řídí zápis a čtení do souborů a který výše uvedené metody volá.



In my last English article I wrote something about classes that are used to saving and loading types from files. In this article I will write something about implementation of reading and writing code in each class, that is need to be serialized.
Each class have one virtual method Serialize (this method is used to write data to file) and special constructor for reading values from file. RunUO (ultima online emulator) is using slight different idea, but I thing that this is better for our purpose. Let's have this simple example class:
using System;

namespace VodacekEngine {
    public class Example {
        public Example(){
        }

        public Example(GenericReader reader){
            int version=reader.ReadInt();
            //here reading values
        }
 
        public virtual void Serialize(GenericWriter writer){
            writer.Write(0);//version, I will discus it later
        }
    }
}
Variable called version is very important. This variable is used when you want to add or remove some variable from serialization. If this variable don't exist, you can get into some serious trouble.
If we want to add new variable, we must increase version. Here is example with our class:
using System;

namespace VodacekEngine {
    public class Example {
        public string Name;
        public Exammple(){
        }

        public Example(GenericReader reader){
            int version=reader.ReadInt();
            if(version>=1)Name=reader.ReadString();
            else Name=null;//here belong initial value
        }
 
        public virtual void Serialize(GenericWriter writer){
            writer.Write(1);//<------ increased
            writer.Write(Name);
        }
    }
}
If is version grater than one variable is read from file, if not we should initialize it.Writing is more simple. Only version is increased and added new variable.

If we need to remove variable Name simply again increase version and remove writing part. In reading part simply add if statement for last version where variable exist. Something like this:
using System;

namespace VodacekEngine {
    public class Example {

        public Example(){
        }

        public Example(GenericReader reader){
            int version=reader.ReadInt();
            if(version==1)reader.ReadString();//variable MUST be read, but is not stored
        }
 
        public virtual void Serialize(GenericWriter writer){
            writer.Write(2);//<------ increased
        }
    }
}
Removed variable NEED to be read but is not stored. Variable is not exist any more.
Our last example is writing arrays. There is used little trick. Here is our example class:
using System;

namespace VodacekEngine {
    public class Example {
        public string[] Names;
        public Example(){
            Names=new string[]{"Pepa","Jernom","Kucir","Jelen"};
        }

        public Example(GenericReader reader){
            int version=reader.ReadInt();
            if(version>=1){
                int count=reader.ReadInt();//count of items in array
                Names=new string[count];//creates array
                for(int i=0;i>pocet;i++){
                    Names[i]=reader.ReadString();//reading members of array
                }
            }
            else Names=new string[]{"Pepa","Jernom","Kucir","Jelen"};//initialize
        }
 
        public virtual void Serialize(GenericWriter writer){
            writer.Write(1);//<------ increased
            writer.Write(Names.Length);//write count of members in array
            for(int i=0;i<Names.Length;i++){
                writer.Write(Names[i]);//write each member
            }
        }
    }
}
First of all is written count of members in array and then in for loop all members. Version is off course increased. In reading part, is standard if statement for adding values. Then is read count of members in array. Array is created and then in for loop added variables. Really simple.
That is all for today. In next article I will show you code that is used for calling this methods.

pátek 20. července 2012

Viděl jsem: Doba ledová 4/ Czech only article

Tak jsem po delší době zašel do kina spolu s panem bratrem a Patrikem a Káťou. Tentokráte padla volba na nový animák Doba ledová 4.
Když jsme se dostali do kina docela sem si myslel kam se to sakra vlezl. Sál byl plný malých dětí s rodiči. Naopak reklamy (bezesporu nejlepší co v kině můžete vidět) nezklamaly. Hlavně upoutávka na nový český animovaný film Kozí příběh (se sýrem? nebo jak se menuje) nás všechny pobavila. Dostali jsme i předfilm. Docela jsem se podivoval, ale nakonec se ukázalo, že bez něj by celý program na těch 130 korun, které po nás chtěli, asi neměl.
Film samotný nebyl špatný a co navíc byl okořeněn komentářem jednoho malého diváka, který seděl za námi. Takové hlášky jako ,,Kdyby se pořádně dívali, tak by se jim to nestalo!" byly prostě super!

XNA Serializace den po té / XNA Serialization the day after

Minule sem sepsal jaký máme možnosti a dneska se podíváme jak vlastně na to. Vybral jsem nakonec možnost druhou tedy, jeden soubor s indexem a druhý s daty. Samotné třídy jsem sebral (snad se to může) ze zdrojáků RunUO ze starší verze 2.0 RC1, tedy z té samé kterou používáme na ŽvB. Ti, kteří by se zajímali jak vlastně funguje (nebo jak si to představuju že to funguje) ukládání na již zmíněném RunUO snad také dostanou zajímavé informace. Třídy jsem vypreparoval a upravil tak, aby byly co nejjednodušeji a mohl je každý použít. Stáhnout si je můžete tady. Jak to vlastně celé funguje? Velmi snadno.Veškerou zapisovací parádu obstarávají dvě třídy: GenericReader a GenericWriter. Netřeba vysvětlovat co která asi bude dělat je to zřejmé již z jejich názvů. Třídy lze použít i k jiným možnostem ukládání, které jsem popsal v předešlém článku, možnosti se jen budou lišit samotným kodem, který je určen pro ukládání. Třídy obsahují ukládání základních datových typů se kterými se můžete běžně setkat. Jenže jak uložit třeba Vector2, Vector3 nebo Matrix (tedy matici) a jiné další? Také velmi snadno(jak jinak). Je možné je rozložit na prvky ze kterých jsou složeny. Vector2 na X a Y souřadnici, Vector3 na souřadnice tři, Matrix není nic jiného než 16 float čísel.

public void Write(Vector3 vector){
    if ((m_Index + 12) > m_Buffer.Length) Flush();
 
    Write(vector.X);
    Write(vector.Y);
    Write(vector.Z);
}

public Vector3 ReadVector3(){
    return new Vector3(ReadFloat(), ReadFloat(), ReadFloat());
}

Horší situace nastane pokud budeme chtít ukládat třeba třídu Model, Texture2D a další věci načítané pomocí Content Pipeline. Zde to lze snadno obejít, uložíme pouze jména souborů a ty potom běžně po proběhnutí serializace načteme. Uložit lze i obsah delegátů, ale o triku který jsem na ně vymylel napíši něco později. Jediné na co je potřeba myslet je to, že je nutné zapisovat a číst prvky ve stejném pořadí.

Jak používat tyto třídy opět v dalším článku.



In my last post about basic of serialization I wrote something about possible ways. In this post I want to introduce classes for reading and writing into binary files. I modified classes from RunUO 2.0 RC1 source, that is used as Ultima Online emulator on ŽvB project and add reading and writing code for some XNA classes. Code can be downloaded from here. Reading and writing those types is very simple. Vector2, Vector3 or Matrix are only couple of floats. Vector2 have two X and Y, Vector3 have three and Matrix is only set of 16 floats. Here is example of serialization of Vector3:

public void Write(Vector3 vector){
    if ((m_Index + 12) > m_Buffer.Length) Flush(); 
 
    Write(vector.X);
    Write(vector.Y);
    Write(vector.Z);
}

public Vector3 ReadVector3(){
    return new Vector3(ReadFloat(), ReadFloat(), ReadFloat());
}

Texture2D, Model etc.. (basically all classes that are loaded by content pipeline) classes needs to be stored as strings. Simply write only file names of that assets and then load them by Content Pipeline. Only one thing is important. All parts needs to be written and read in same order.

In next article I will show you my code that handles saving and loading.

pondělí 18. června 2012

Ovladače / Drivers

Nevím ani co mě to popadlo a jal jsem se aktualizovat ovladače grafický karty. Domníval sem se že to pomůže a vše mi poběží ještě lépěji, jak šeredně jsem se spletl. Pěkně spokojený jsem šel žvb 2 vyzkoušet, ale hned záhy jsme utrpěl ledovou sprchu. Z mého krásného terénu (generovaný z výškové mapy) se stal cedník nu posuďte sami (viz obrázek a vídeo pod englickou částí). Problém způsobil poslední Catalyst verze 12.4, když jsem opět nainstaloval starou verzi (12.3) vše funguje normálně. Zajímavé také bylo, že ostatní hry (zaklínač a minecaft) fungovaly normálně, někde je chyba asi v součinnosti s XNA. Podivné. Má někdo stejné nebo podobné zkušenosti?



Today I tryed to update my graphics card drivers to new version. I think that ŽvB 2 (my project) will be running more smoothly with new driver. I was totally wrong. When I try to run my application I got something like this:
Terrain and other models were dissorted and have gaps. I also take a video with it:
Problem was removed by installing older Catalyst 12.3. Interesting was that other applications (witcher and minecraft) runs without any problem. Do you have any similar experience?

pátek 15. června 2012

Byl jsem na sciencecafe / Czech only article

Hilda mě minulé úterý vytáhla na pardubické science cafe, když sem se dozvěděl jaké je téma upřímně řečeno jsem se zhrozil, no posuďte sami:
Filosoficko-dějinný nástin vzniku kvantové teorie vrcholící v Bohrově rámci komplementarity
Téma mě uzemnilo a přemýšlel jsem jak se z toho vykroutit. Nicméně to nebylo třeba, celá přednáška byla tak poutavá a zajímavá, že vůbec nevadilo že jsem o tom vůbec nic nevěděl. Pan Grygar (bohužel to nebyl ten známý popularizátor astronomie ale pouze jeho jmenovec) dokázal zajímavě podat velmi odborné věci ohledně kvantové teorie. Další science café se bude doufejme konat po prázdninách, už nyní se  docela těším.

neděle 10. června 2012

Viděl jsem: Zítra se bude.../ Czech only article

Přednedávnem jsem shlédl záznam operního představení Zítra se bude... Není to úplně běžná opera, celé dílo je vytvořeno z historických pramenů, úředních záznamů z vykonstruovaného soudu s doktorkou Miladou Horákovou. Celé představení mě velmi zaujalo a doslova pohltilo. Zhudebněná obžaloba, rozsudek ale i úvodní a závěrečná báseň Oděvy levné jsou prostě úžasné. Trošku jsem se bál že obecenstvo na závěr nezatleská. Dost jsem se ptal sebe ale i okolí čemu ty lidé na konci tleskají. Tleskají tomu jak to komunisti pěkně a hezky udělali? Tleskají aby tím vzdali hold Miladě Horákové? Tleskají účinkujícím za jejich výkon? Osobně doufám, že první možnost je úplně vedle. Všem doporučuji aby si představení shlédli, opravdu to stojí za to. Pěkný je taky dokument paní Olgy Sommerové Do samoty v tanci o tvorbě hry samotné.

P.S.: myslel jsme že pan dirigent Ivanovič neumí česky ale pletl jsem se :-)

Ukázku ze hry si lze pustit tady:

sobota 26. května 2012

Akce cihla / Benefical brick

Jak se už pomalu stává dobrou tradicí jezdím toudle dobou za kučířem Tom.aashem na Akci cihla. Tom dělá takzvaného ,,nočaře", tedy hlídá stánek a prodává cihly přes noc. Tentokrát jsem zavítal na stánek na pražském Andělu, kde jsem doposud ještě nebyl. Nástup na stánek byl ve 21:00 a konec v 7:00, tedy deset hodin dlouhá směna. Můžu se označit jako poměrně zkušený pomocník nočaře, jelikož jsem noc na cihle strávil již potřetí. Noc proběhla dost v klidu, ožralých bylo stále po celou noc dostatek. Na Andělu se také běhá v kteroukoliv denní či noční dobu. Na poslední metro, nebo noční tramvaje jsou výkony dotyčných podobné jako výkony předních sportovců. Už loni se objevil na cihle výmysl limitů prodeje. Pokud na své směně splníte limit, dostanete na svém platu přidáno. Pro noc je stanoven limit 750 korun. (jedna cihla stojí 150, tedy musí se prodat minimálně 5 cihel), což je úkol poměrně nereálný. Další podivností byly samolepky, které si bylo možno pořídit jen a pouze pokud jste si koupili tričko, nebo cihlu. No ony ty samolepky byly výživné a přímo sršely ostrovtipem. Také jsem se nenechal zahanbit a cihlu jsem si stejně jako předešlé roky koupil. Tentokrát jsem si ji ale nenechal ve věži na místě ale vzal si ji s sebou. A to jen právě proto, abych se s vámi o ní mohl podělit. Splácal jsem krátkej program za pomoci HTML5 a knihovny Three.js a vytvořil pro vás jakousi virtuální cihlu. Jak se mi to povedlo o tom napíši někdy jindy. Náhled cihly najdete pod englickou částí.


Yesterday I spend my night in very unusual way. I was at Prag with my friend and ŽvB collegue - kučíř Tom.aash at stand of Benefical brick action. He works as night seller and watchman whole night from 9 pm to 7 am. It was not my first night at ,,brick" I was there two times before, so I know what can I expect. Night was quite peacefull and everything was OK. Offcource as every year I bought my brick. This year I took it home with me and I made little program using Three.js library and little of HTML5 canvas. Rusult can be seen uder this toppic. I will write later another article about how I do it.

sobota 5. května 2012

Den s hendikepem / Czech only article

Zúčastnil jsem se školního dne s hendikepem pořádaného pražským občanským sdružením futrue v rámci jejich bubliny-handin. Strávil jsem skoro celý den na invalidním vozíku a cítím jistou povinnost informovat vás čtenáře této zhůvěřilosti o svém zážitku. Už je to sice delší dobu ale... Během dne jsem se spolu se svým asistentem (Tom.aashem aka Kučířem) zúčastnil cvičení v budově Univerzity Pardubice na náměstí Československých legií. Samotný příjezd do budovy se ale ukázal jako velký problém. Věděl jsem sice o plošině u zadního vchodu ale ta byla na klíček. Asistent se tedy musel pro něj vydat na vrátnici. Nakonec se ukázalo, že plošina nefunguje vůbec a asistent musel opět na vrátnici shánět pomoc. Naštěstí pan elektrikář přišel záhy a ihned plošinu zprovoznil. Výuka proběhla bez potíží (dveře jsou bez prahu a uličky mezi stoly v počítačové učebně byly dostačující), další problém nastal když vznikla neodkladná potřeba navštívit sociální zařízení. Dveře mají práh ale ten lze s trochou cviku (který jsem ovšem postrádal) přejet i bez pomoci okolí. Překvapení na sebe ale nedalo dlouho čekat, kabinky byly příliš úzké na to aby se do nich dalo vjet. Možná je v budově záchod speciálně upraveny někde kde o něm nevim. (V době kdy to dnes zveřejňuji již o něm vím že je ve třetím patře úplně vzadu.) Další potíž jsem zaznamenal když jsme chtěli zkusit jízdu výtahem do vyšších pater. Zde jsem očekával ze vše proběhne bez potíží, jenže neproběhlo. Výtah je příliš malý. Nebylo možné se do něj vejít, až po sklopení všeho co na vozíku posklápět šlo se to konečně podařilo. Na samotny závěr dne jsme navštívili školní knihovnu na Stavařove. Dostat se tam trolejbusem bylo ovšem obtížné než se zdálo. Bylo nutné počkat na nízkopodlažní trolejbus ve kterém bylo místo, při cestě zpět se nám dokonce stalo že jsme museli nechat projet čtyři trolejbusy než přijel ten správný. Knihovna je naopak vybavena bezbariérově dobře a nenastal tam žádný problém. Závěrem lze doufat že po rekonstrukci i druhé budovy fakulty se situace v tomto objektu zlepší. Nefunkčnost plošiny si vysvětluji tak, ze nyní nemáme na fakultě žádného vozíčkáře který by ji každý den potřeboval. Je potřeba pamatovat na to, že postižení není nic nenormálního a že se to může přihodit každému z nás.


neděle 4. března 2012

Vysvědčení realizačnímu ,,týmu" manawydanu / Czech only article

O napsání tohoto článku jsem uvažoval docela dlouho ale teďka to nějak přeteklo a je to tady. Co bylo takovou poslední věcí je asi tento zápisek z konané akce:
O krok blíže k získání Goren-Zaru... Velká výprava dobrodruhů s různými motivy dokázala získat rady od samotného Pána smrti. Odměnou za své vysvobození pohovořil o původu bolesti a nastínil i možnost jejího oslabení. Trpaslíci se rady ihned chopili a vedeni čarodějem Fankem Diamantem se rozhodli osvobodit svou domovinu.
Čaroděj sám se vydal do ústraní, připravit vše potřebné k osvobození trpasličích slují. Co je čeká v dalších dnech nelze snadno říct... Prozatím snad prokopat se z dolu, kam se podařilo vytvořit stabilní portál. Dál? Těžko říct... 
no ale nepředbíhejme. Svoje působení můžu rozdělit na několik fází. První je taková ta fáze okouzlení. Ultimu jsem zatím do té doby poznal jen ze strany tvůrce hry a to ještě hry krajně specifické. Kdežto tam jsem dostal velký kus světa. Možnost vyrábět výrobky a následně je prodávat. Sem tam si i něco zabít. To byla docela pěkná doba. Potom se to docela fajn období začalo přelévat do období jakéhosi mírného prozření. Začal jsem tak nějak víc vnímat dění děj ve hře a i se do něj zapojovat. Stále to ale bylo fajn jít si zahrát a nějak děj ve hře posunou o trošku dál. Potom přišel první zádrhel a pak další a další až sem se dostal do bodu mírného naštvání ale zas sem se z toho stavu nějak dostal. Myslím že k tomu kladně přispěli nově příchozí členové ,,týmu" z řad hráčů. Byli to Kain, Nooblest (snad se to tak píše) a Hamish, nějak sem cítil že by mohli docela i se vším pohnout a rozhýbat dějovou linii která v té době dostávala silně na frak. Bohužel se mi zdá že jejich snažení bylo ihned záhy zbytek ,,týmu" potlačeno že fakticky Nooblest odešel úplně, Kain to zabalil před nedávnem a jedinej Hamish se to stále trošku snaží někam posunout. Další fáze ve které jsem se pohyboval byla zcela antiskorarovská. Prakticky stačilo aby se na chatu ozvalo GM Sokar: ahoj a já sem už hledal tlačítko logout. Poslední fáze ve které sem se až do včera vyskytoval byly úvahy kdy odejít jak odejít. No to je asi celý příběh idkyž značně zjednodušený ale co jsem chtěl hlavně nějak zhodnotiti celé ty 2 roky co jsem tam nějak aktivněji působil. Zvolil sem proto formu jakéhosi vysvědčení. Uvedu jednotlivá jména a pokusím se je svými zraky zhodnotit známkami jako ve škole, vždy se pokusím napsat důvody které mě k takovému hodnocení vedou. Tak tedy:

Whitey (aka veký šéf jak mu skromně říkám) - za 4-5 proč tak špatné hodnocení asi protože je vedoucím co prakticky nevede. Jeho pozice je ,,skriptař" je zde vidět ale snaha řešit problémy skriptově ikdyž snadné problémy jsou nutné řešit na vícekrát než se to konečně povede celé opravit. Co je ovšem špatně je oblíbená fráze ,,prosím o testy". Ta ve mě vzbuzuje rozporuplné reakce. Předně bych si napsaný skript měl ozkoušet sám potom jej teprve dát k dispozici hráčům. Jako fatálně chybný krok lze označit nejdříve odladění soubojového systému 2.5 který slušně fungoval a jeho ze dne na den nahrazení systémem 3, který na tom byl otřesně a tak přišel projekt o celý půl rok práce.

Geo (nemám) - za 1-2 sympatický tatínek programátor s dlouhým pingem odpovědí, právě jeho si asi vážím nejvíc ze všech. Napsal vlastní UO klient což je pro mě zatím něco nepředstavitelného a taky mě naučil používat pípáka twitteráka.

Marina (pro tu nemám žádné nové jméno) - za 3-4 příde mi jako poměrně náladová osoba. Jednou je s ní dobrá domluva a podruhé je k nevydržení. Osobní špatný zážitek jsem nabral při stavění ohrádky kdy nám asistovala. Zřejmě už u toho nechtěla sedět a tak nám dala jakési ultimatum že teď musíme vyvrátit strom který sme už dříve odstranili a ona si toho nevšimla. Odmítli sme to protože to už bylo uděláno, násilně vše ukončila a smazala. Mám ale i dobré zkušenosti kupříkladu se stavbou sklepa. Tady sem docela i zapomněl na debatu o tom jak správně psát programy. Ta mě docela i bavila.

Stig (nemám taky přízvisko)  - za 3 pokud mu napíšete na icq že máte problém ochotně a rád si jej pokud má čas vyslechne a pokusí se jej vyřešit, dá se s ním docela dobře domluvit, zažil jsem taky dost dobrých akcí pod jeho vedením, příkladem budiž krysař v cyproně, ale... (ted mě napadlo že je takové úsloví že to co je před ale se nepočítá ale tady to prosím počítejme) velmi rád zastává svůj názor a to mnohdy velmi hádavě a neústupně ikdyž není zrovna tak dobrý jako jeho oponentů. Možná právě proto dostal to co dostal.

Kain (abel, lothar...) - za 1-2 fajn matfyzák co dokazuje že tam chodí i celkem normální lidi. Kain se snažil vnést na RP shard trochu RP a logiky do bezduchýho expení a dungaření a bohužel tvrdě narazil. Dobře se s ním spolupracuje ikdyž mi příde že to občas trošku přehání a z neznámého důvodu se mě bojí.

Brak (asi nemá) - za 2, zajímavá akce s modrým kamenem, jediné co mě mrzí že nebude objasněn a dokončen, jinak taky docela fajn člověk s malířským nadáním který se naplno věnoval orkům.

RadstaR (stačí RadstaR) -za 2, výborný odborník na soubory Ultimy který rád a ochotně poradí ohledně technických věcí, akci od něj jsem nezažil řekl bych ale že je to takový muž v technické části

Sokar (aka ,,kde se vzalo tu se vzalo najednou to tu prostě je a hotovo") - za 5 (nečekaně) tady není co dodat, jediné co tento člověk docela umí je něco postavit, akce typu z ničeho nic se objeví 100 npc který napadnou skupinku dobrodruhů asi nejsou zkrátka pro mě.

Keringer (aka ocásek) - 5 absolutní nepochopení toho proč jsem to tady napsal, Sokarův ocásek a kývač, názorově jde s většinou aniž by se rozhlížel kolem, pozitivní zkušenost žádná.

Celkové hodnocení není bohužel moc lichotivé. Ikdyž přece jen se najdou věci pozitivní ale zdá se že ty negativní převažují. Celkové hodnocení manawdanu je asi takovéto: Server jako takový je na tom nadprůměrně dobře po technické stránce (vlastní klient) ale značně pokulhává při akcích a řešení otázek RP prostředí.

pátek 2. března 2012

XNA Serializace / XNA Serialization

Je to vlastně proces při kterém se ukládají objekty do souboru aby se při dalším spuštění programu mohly znovu načíst a dále používat. Bude to použito k ukládání místností v žvb2. Nejčastěji se provádí XML serializace nebo také binární (zápis informací ve dvojkové formě do souboru). XML je docela fajn a dá se snadno editovat, ale já to moc nemusím, nelíbí se mi jak se to cele prochází při zpracování. Nějaké to node a spol. Binární serializace je mi o dost bližší. Používá jej RunUO které používá žvb1. Každá třída má svou metodu serialize a deserialize ve které provádí zápis ale také čtení z datového proudu. Hodnoty musí být zapsány a potom vyzvednuty ve stejném pořadí to je snad jediné úskalí této metody. Já jsem nakonec vzal právě binární serializaci přímo z RunUO a jen ji trochu promazal a upravil. Snad se to smí. Níže je jakási moje úvaha o tom jaký způsob přesně použít. Jsou v zásadě 3 o kterejch jsem uvažoval aniž bych musel číst nebo hledat řešení od někoho jiného, jak to obvykle dělám.

do jednoho souboru:
bin soubor
Typ komponenty
data

Při chybě nebo ztrátě typu máme totální smůlu a je to celé v háji.

do dvou souboru:
bin soubor                                         idx soubor
    data                                                       typ
                                                          start záznamu
                                                         délka záznamu

Při ztrátě typu nebo chybě přeskočíme daný blok a pokračujeme dalším. Při chybě v indexu máme smůlu.

do tří souborů - ala RunUO:
bin soubor                         idx soubor                         pdb soubor
data                                       id typu                             typy podle id
                                         start záznamu
                                        délka záznamu
Při ztrátě typu se prostě jen ignoruje to dané id, při chybě v indexu máme smůlu.



Serialization is process that save objects states into file/s and than load them and use them in future. Most common ways is use XML or writing binary files. XML is quite good, it can be simply edited with normal text editor, but I don't like way of parsing files with nodes. So I choose binary files. I have some good experiencis with this way (žvb 1 emulator RunUO used this) and is possible simply correct errors such as mising type of component or error in getting values. Each class that can be serialized have special constructor and two methods Serialize and Deserialize. Thats all that is requred. Only disandvatage is that variables must be saved and loaded in same order. So I chose binary serialization from RunUO and make some small corrections. I will post another blog entry when I think that is all working properly. Firt, I must choose one of three methods that I know.

to one file:
bin file
Component type
data

When error is occoured all date are lost

to two files:
bin file                                                   idx file
    data                                             Component type
                                                   start position in stream
                                                         length of stream

When error is occoured we can easily skip demaged area and try to continue with loading. If error is in index file everything is lost

do tří souborů - ala RunUO:
bin file                                 idx file                                pdb file
data                                    id of type                        type of component
                                start position in stream
                                      length in stream

Same as above but we have types saved in extra file. Missing types can be easily skipped by id.

středa 29. února 2012

Viděl sem Rain man/Czech only article

Po docela dlouhé době sem se odhodlal sem něco i napsat. Nenapadalo mě co ale nakonec padla volba na to co jsem viděl a tím byl film Rain man. Zajímavé je jak sem se k němu dostal. Jak obvykle přes obří náhodu. Poslouchal jsem TOTO, je to asi 2 a půl hodinová skrumáž hudby od Hans Zimmera v podání pražských filharmoniků. Jsou tam teda skladby které bych označil za ukázku toho jak to vypadat spíš nemá ale pár věcí je povedených hodně (třeba sherlock holmes taky jeden můj oblíbenec). Potom se dlouho nic nedělo až najednou kučíř (zas on!) si přidal do svého seznamu videí na youtube TOTO. Mám obzvláště oblíbenou jednu část jmenuje se Las Vegas a tam právě zaznívá od šesté minuty. Právě toto video mě nakonec popudilo natolik že jsem si ten film sehnal. Ve filmu je krásně naznačeno co to vlastně je autismus a jak se projevuje. Na jednu stranu geniální rain man který propočítá kombinace karet z 6-ti balíčků, spočítá 147 vysypaných párátek na zemi, ale když má přejít silnici a když je právě uprostřed, tak se mu ukáže červená a on se zastaví jen protože je tam nápis ,,nechoďte". Film jako celek se mi líbil hodně, hlavně svou věrohodností. Určitě jej taky shlédněte.

čtvrtek 16. února 2012

Teaser trailer k filmu ze srazu ŽvB - Klíč v názvu / Teaser trailer to movie ŽvB - Klíč v názvu

Studio True ŽvB Pictures tvůrce takových snímků jako 20 let svobody, je velmi polichoceno prostřednictvím mé osoby uvést v pořadí již druhý trailer na výpravný velkolepý snímek z letního srazu ŽvB - Klíč v názvu. Snímek byl vytvářen v kooperaci s Flutter Studiem.

Skupina hrdinů spolu se svým super psem neváhá nasadit své životy pro boj s neznámými mimozemskými vetřelci, kteří se snaží podmanit a zničit celou jejich planetu. Všichni doufají v jejich úspěch, pokud zklamou, čeká je destrukce a nevyhnutelná smrt! Proto neváhají použít starodávné mocné artefakty. Pomohou jim termoska, červené desky, červený deštník, hrneček, holinka a lucerna odvrátit zkázu?

Ve snímku uvidíte takové hvězdy jako Tom.aashe, Jelena ale také Amandu, Daniela nebo George či Vodáčka. Nesmí chybět také psí herecká hvězda - Luboš. (vídeo je pod englickou částí)



True ŽvB Pictures is proud to announce realise of teaser trailer to movie form ŽvB convention - Klíč v názvu (Key in title). Movie was created with cooperation with Flutter Studio.

Couple of heroes together with their super dog defending their planet against dangerous strange enemies. Each of them have ancient powerfull artefakt. Can vaccum flask, red boards, red umbrella, cup and lantern helps them defend their planet?

In movie you can see such movie stars as Tom.aash, Jelen or Amanda, Daniel, Geoge and me. Cannot be forget to famous dog star Luboš.


pondělí 13. února 2012

Nové video - normály jako světlo / New video! Normals used as light

Když jsem se včera večer pokoušel znovu vyřešit stále trvající problém s projektorem (projective texturring se to menuje) a jako jeden výsledek mi vylezlo toto, tak jsem neváhal a dnes ráno to natočil. (vídeo je pod englickou částí) Jednoduše jsem použil normály modelů jako barvy, je to docela pěkné na pohled co myslíte?



Yesterday, I tryed to solve my almost half year problem with projective texure in my Light Pre-pass renderer. As one of my results I got this. (video is below) I simply used normal as light color. Isn't it look good?

středa 8. února 2012

Jak dostat zpět obsah Z-bufferu / How to Restore Depth Buffer in XNA

Po dlouhý době konečně zase další programátorský příspěvek a snad i englicky. Docela dlouho mě todle trápilo (snad i půl roku), dokonce jsem si na to položil otázku ZDE, ale bohužel bez výsledku. Až se konečně předevčírem poštěstilo a nalezl jsem TENTO článek, jak jinak než při řešení jiného problému jak to tak bývá. Základem úspěchu je mít hloubku uloženou v textuře (toto jsem již měl protože to používám pro věc zvanou light pre-pass) a tu potom projet speciálním shaderem popsaným v článku.

void PixelShaderFunction(in float2 texCoord:TEXCOORD0,
 out float4 color:COLOR0, out float depth:DEPTH){
    color=float4(0,0,0,0);
    depth=tex2D(DepthSampler, texCoord).r;
}

Tato část provádí ono kouzlo, protože zapisuje námi uloženou hloubku ale barvu ne (před vykreslením jsem povolil alfa blending). A to je kupodivu všechno. Jak prosté že ano? :-)



I am back! Here is another english post this time with XNA theme. Problem how to restore Depth Buffer was with me almost half of a year. I post THIS question, but without any good answer. Finally tomorrow I found it! In this article I have found everything that I need to know. First you need to have depth stored in texture (I already have this from Light Pre-Pass) and use special shader described in article.

void PixelShaderFunction(in float2 texCoord:TEXCOORD0,
 out float4 color:COLOR0, out float depth:DEPTH){
    color=float4(0,0,0,0);
    depth=tex2D(DepthSampler, texCoord).r;
}

This part of code wites only depth and don't affect color (before drawing enable alpha blending). That's it!

neděle 5. února 2012

Jak jsem opravoval vodu / Czech only article

Na tom ovšem není nic podivného příjmení na to mám docela dobré ovšem realita je trošku jiná. Byl jsem zvolen do postu pouštěče a zavírače vody, zatímco pan bratr byl dosazen do postu spojky a otec obsadil místo opraváře. Mé pracoviště bylo ve sklepě u HUV (hlavního uzávěru vody) kde jsem vleže prováděl pokyny přicházející z hůry od spojky která je přes 2 patra na mě řvala. Kdyby ovšem tušili že nevím na kterou stranu se kohoutkem voda zavírá a kterým naopak otevírá, tak by mě asi do tohoto postu neobsadili. Dostal jsem tedy z hůry jasný pokyn ZAVŘÍÍÍÍÍTTTTTT a já jsem kroutil a kroutil a kroutil až nadoraz. Je snad jasné že to bylo na opačnou stranu a že nahoře u opravovaného kohoutku tok vody neustával ba právě naopak. Koupelna vytopená není, takže jen poučení pro příště kohoutek se zavírá pohybem po směru hodinových ručiček.

čtvrtek 2. února 2012

Hrdý budžes / Czech only article

Tak jsem to konečně viděl! Už od Vánoc jsem se na to dost těšil. Měli sme s panem bratrem lístky do lóže. Vlastně to bylo poprvé co jsem byl v divadle v lóži. Docela mě překvapilo že se tam chodí s bundou a že se nedává do šatny, protože tam jsou věšáčky vlastní. (totok jsme samozřejmě vůbec nevěděli) Paní Hrzánová byla úžasná! Taky potom za odměnu víc jak 10x vyšla před tleskající dav aby se poklonila. Možná by se hodilo pár postřehů ale ty jen bodovitě:
  • představení mělo přestávku (tu sem nečekal protože hráli hodinu a půl v kuse a pak ještě další hodinu)
  • paní Hrzánová při válení se ve sněhu (rozuměj v prostěradle) ukázala snad nechtíc své spodní prádlo (bylo černé)
  • připadalo mi že jí 2x vypadl text, ale člověk si nemůže být nikdy jistý jestli to nebyla součást představení
Určitě všem vřele doporučuju (pokud nejste komunisti) abyste na tuto hru zašli!

A na závěr básničku:
Na kostele zvoní zvon,
seru, sereš, sere on,
na mou věru
jak tak seru
tak mi přišlo na mysl
jak sral kníže Přemysl.
(a pod tím bylo napsáno)
Horší než-li rusák
je ten čůůrák Husák.

dělej mi to zezadu

středa 1. února 2012

Trailer ze srazu ŽvB v TnM - velkofilm / Czech only article

True ŽvB Pictures na tomto snímku kooperovalo, doufám že ne naposledy, s Flutter Studiem. Ve snímku zazářily hvězdy takových jmen jako Tom.aash, Amanda, Jelen, Daniel, Vodáček (to sem já), George ale také pes Luboš.

Jak jsem byl na science cafe / Czech only article

Odpověď na otázku je snadná: pěšky jsem tam byl a že byla venku zima. Ale teď vážně. Asi bych měl nejdřív vysvětlit co to vůbec science cafe je. Dalo by se o tom říct (alespoň z mého pohledu) že je to vlastně přednáška odborníka na dané téma ve stravitelné formě pro veřejnost v příjemném prostředí kde se nemusí obávat kdykoliv volně položit otázku. Celou akci organizovala Univerzita Pardubice a občanské sdružení (snad už) Mladí pro budoucnost a bylo to vůbec první pardubické Science cafe. Zastoupení veřejnosti bylo velmi slušné, prej tam bylo asi 50 lidí. Téma polovodiče a  termoelektřina bylo podáno pěkně a srozumitelně. I když (chápe někdo proč se nepíše i když dohromady?) jsem měl občas menší problémy ale i tak to bylo super. Další setkání se bude konat 29.2. (je to tedy poslední úterý v měsíci) Téma bylo zvoleno alespoň pro mě tajemné - Labyrintem vařících se kamenů a potom ještě s přídavkem Zeolity. Určitě se opět zastavím.

A na závěr jedno takové malé zamyšlení, spíš mě to docela vyděsilo. Dneska ráno se na modrém velkém bratru (rozuměj tu věc začínající od f na které kdo není prý jakoby nebyl) objevilo toto:
XYZ a BjePjeMjeVje se stali přáteli poté, co se zúčastnili události Science Café Pardubice: Polovodiče a termoelektřina.
to jen pro představu kolik informací tento modrý špion o svých uživatelích ukládá. Otázkou je jak s nimi naloží potom co je už má...

čtvrtek 19. ledna 2012

Sled myšlenek / Czech only article

(za chybějící čárky a háčky se omlouvám celý text je napsán na Univerzálu)
Nemam co delat a sedim prave ve skole na chodbe na lavecce. Solitare sem hral uz 4x, nutno dodat ze sem vyhral jen jednou a to mam uz svoji strategii, kterou stale opakuji. Nikdy bych nerekl ze nekdy pudu do skoly dobrovolne navic, ale dnes pokud to vyde tak by vse melo byt fajn. Cekam na pana XYZ co sem ho mel na XYZ. Domluvil sem si s nim setkani ale zda se ze na me zapomnel. Dosahl jsem take jineho poznatku. Zitra je zde den otevrenych dveri. Budou tu predvadet neco s kinectem tak se tady planuju zastavit a poptat se jesti neni nahodou skolni. To by se mi naramne hodilo pro zvb 2.nemusel bych si ho kupovat, dosahl bych tiho co jsem potreboval a jeste by se to dalo zneuzit ve skole v nejakym predmetu. To je jedna z nejlakavejsich predstav na vs, moznost provadet primo ve skole takpveto veci i nad ramec vyuky. Nedovedu si to treba na stredni predstavit. Pokud ovsem skolni nebude tak se jiste pude nejak domluvit, vypadali ti dva jako doktorandi, nu uvidime. Minuty ale dale plynou. Asi si zahraju soliter jeste jednou. Ano jdu na to. Tak jsem prohral, opet! Je to dnes nejake zaklete. Tlakova nize v oblasti baltu a okluzni fronta od nemecka delaji obcas divy. Uz je to vazeni 52 minut. Nechce se mi tu cekat, ale zase mu to chci vytmavit, ze se na me vykaslal pokad ovsem vubec dorazi... Asi uz hrat nebudu, bude to tak lepsi, ikdyz se musi uznat ze pak cas utika docela uspokojive rychle. As si zacnu nosit neco na cteni. Nejakou peknou knihu, ale nevim jakou a jestli by me to vubec vydrzelo. Asi jo musela by to bjet dobra kniha co by me bavila. To bych potom trebas I ve skole byl o pul hodiny drive jen abych se dozvedel jak to pokracuje :-) hodina je v haji a on nikde. Myslim ze mel jeste nekoho po tom. Tak pockam do ctvrt a pak du! Je deset. Uz me to strasne nebavi. Soliter je pravda resenim ale uz ho hrat nechci. Bublinky praskacky me nezabavej ale zkusim je... Jde se n bubli-bubli. Tak a jsem opet zpet bodu mam 300. To je docela malo, uz sem videl lidi (charu a amber) co dokazali pres 500 pri kazde hre. Nevim proc mi tadle hra nejde asi protoze praskam bublinky prakticky bez planovani toho kam to spadne. Tak a je ctvrt a ja se balim!

sobota 14. ledna 2012

XNB soubor a základní informace / XNB file basic information

Před časem (rozuměj včera) jsem dostal najednou neodkladnou potřebu pro editor na ŽvB 2 vědět jak dostat informaci z XNB souboru co je zač. Zda-li je v něm uložena textura, nebo model a podobně. Naštěstí je dostupná jakási dokumentace formátu tohoto souboru ZDE všechno se zdálo být docela snadné pěkně jsem si plánoval jak soubor načtu, podívám se pro co je (windows, mobil, xbox) pro jaký je určen profil (HiDef, Reach) a potom konečně to po čem jsem nejvíc toužil, co je vůbec zač. Ale ejhle. Nemělo to být tak snadné a taky že nebylo (doteďka jsem na zjištění této informace krátkej). Cože to že jsem selhal? Může za to něco co se jmenuje ,,Xbox XMemCompress API". O této skoro až mystické věci se nikde nic nedozvíte. Naštěstí takto nejsou ošetřeny soubory vždy. Pouze v realise modu. Takže skoro vždycky jsem schopnej dostat základní informace. To pro začátek snad i stačí. Kompletní kod jde stáhnout TU.Jedná se jen o třídu co si sama informace ze souboru vycucne a potom je má v sobě uložený. Jak se to dá snadno použít je ukázáno v tom pragramu. Snad to pro někoho bude užitečný.



Tomorrow I was working little bit on my game editor for ŽvB 2. And I want to get some information about XNB files before loading them. Fortunatelly there is file format specification and it can be downloaded from HERE. With this I am able to get target platform (Windows, Mobile, XBox), profile (HiDef, Reach), version and if file is compressed od not. Main information I am seek for is type of the sousce file. If it si texture or model or something else. Unfortunatelly this information is in most situations compressed by some mysterious alogithm called ,,Xbox XMemCompress API". About this anything can't be found on the Internet. So I have written helper class that reads these basic information. It can be downloaded from HERE. I hope that can be usefull.

pátek 13. ledna 2012

Konzumní děti (dokument) / Czech only article

Shlédl jsem dokument ,,Konzumní děti" kdo by taky chtěl tak odkaz je ZDE. Je to velmi zajímavý dokument o tom jak mají americké ale taky už i české dětičky reklamou vymytý mozek. U některých praktik se mi dělalo docela nevolno kupříkladu u toho jak pořádají pro dětičky oslavu jen proto aby jim nutili svoje produkty a aby zjistili co se dětem líbí, nepřekvapilo by mě kdyby si za to nechávali ještě zaplatit. V některých věcech jsem i trošku viděl svého pana bratra, který jedno léto vyžadoval kupování jedné zmrzliny protože sbíral jakési body a taky o ty body hrál na internetu. Nutno podotknouti že já se necítím být ovlivněn reklamou a značkami. Nepotřebuji mít vše ,,i", tedy iPočítač, iMobil, iSluchátka... Kdo mě kdy viděl jak si jdu po ulici v izolepou poslepovaných sluchátkách které mají konektor 4x přepájený (alespoň k něčemu mi ta střední škola je), nevidím důvod proč bych je měl vyhodit když hrají více než uspokojivě. Taky když se podíváte na moje ošacení tak se musí  usoudit že se mnou modní styly necloumají. Vlastně mi jedna malá holka co jí je asi tak 14 (kdo zná Verču z žvb) že bych měl tudle bundu teda vyhodit a koupit si nějakou značkovou, třeba tu co má ve znaku tu fajfku. Myslím že je taky nutné poznamenat že tento dokument mi doporučil Tomaash a děkuji mu za to.

čtvrtek 12. ledna 2012

Esej do Sociální psychologie / Essay to social psychology

Zkouškové období v plném běhu a s tím taky konec mého oblíbeného předmětu sociální psychologie. (docela prapodivný předmět pro informatika nespa) Jako závěrečnou práci jsme měli napsat esej o libovolném tématu co se probíralo na cvičení. Tak jsem ji tedy napsal jak jinak než v poslední možný den a hned po vytisknutí sem letěl na trolejbus abych ho stihl. Pokud by měl někdo zájem tak si to tady může přečíst: ZDE ale pozor jen pro otrlé kterým nevadí chybějící čárky!



Exam period is in progress and also end of my favourite subject Social Psychology. As a final work we have to write an essay with theme for lessons. Because essay is written in czech (and I haven't time to rewrite it into english) so you haven't chance to read it. I am realy apologize for this. Maybe you can try to use google translator.

úterý 10. ledna 2012

ŽvB 2 - aneb cože to vlastně je/ ŽvB 2 - what the hell is this?

Ano na Nový rok jsem tady slíbil že se rozepíšu co je to vlastně ŽvB 2 a co od toho čekávám. Konečně jsem se dokopal k tomu něco o tom napsat, ikdyž to před chvilkou vypadalo že budu psát o něčem jiným.
ŽvB 2 by měla být jakási náhrada za ŽvB 1 (www.zvb.cz) což je projekt postavený na stařičké hře Ultima Online. Dnes a je to smutné už bohužel ručně malovaná hra s 2,5D rozhraním nepostačuje nárokům mládeže. Jakmile to není 3D a nemá to skvělou grafiku tak je to ihned odpad. Proto se zrodil už v září roku 2008 nápad že by bylo vhodné myslet na budoucnost a postupně si dělat zadní vrátka. Původně jsme si (spolu s Alexejem) mysleli že zvládneme udělat nějaký počátek a předložit jej jako dárek už do vánoc. V té době bylo v plánu udělat velkou síň (myšlena ta síň z Bradavického hradu z HP, ostatně vše co dělám je HP) ale cíl se postupně přetransformoval na pouze jakousi chodbu, kde by bylo možné ukázat spoustu věcí a představit možnosti. Dnes se píše rok 2012 a jak vidno do těch Vánoc sme to nestihli :-) Dnes jsem již bohužel sám. Našel jsem si sice spojence Junita, který mi dodal několik pěkných modelů které jsem použil ale ten jak se zdá už taky nemá tolik času. Pokusím se zde popsat česky i englicky jak jsem k jednotlivým částem dospěl, co jsem si kde vypůjčil a na co jsem přišel sám, snad to někomu pomůže. České zdroje neexistují vůbec (ikdyž je pravda že jsem našel jeden článek co mi pomohl přidat háčky a čárky...) bez engičtiny se tedy neobejdu vůbec. Jako základ jsem použil XNA a také InnovativeEngine od Seana Jamese. Docela jej doporučuju pro všechny kteří se chtějí takovéto věci naučit protože je zcela nehotový a vše si musíte dopsat sami a hlavně a to je to nejlepší celý je psán jako tutoriál, takže se snadno pochopí co a jak funguje. Taky jsem napsal pár věcí z jeho knihy, ta je taky dobrý zdroj informací. Pokud by se ale někdo rád přidal a s něčím s čímkoliv pomohl nebo by se chtěl optat tak mi určitě napište! A jako pokaždé se trošku musím vytáhnout tentokrát videem s implementovanou fyzikou JigLibX (je dole pod englickým článkem)



At New Year's day I have promised to tell you something about ,,ŽvB 2". ŽvB 2 is name of project based on todays project called ŽvB 1. And ŽvB 1 can be called as Harry Potter shard and therm shard is something like game sever of Ultima Online :-) Basicly is world of Harry Potter in Ultima Online. For young generation is Ultima very old game. Anything without 3D and cool effects and much blood is boring and ugly. At September 2008 an idea comes to me. I want to transfer ŽvB 1 to 3D world for future use. At this blog I try to write some articles about some parts of my Engine that I am writing. I have choosen XNA and as basic skeleton is used Sean Jame's Innovative Engine. Great thing about this engine is that is written as tutorial, so you can simply understand to all things in it. I have also implementend couple of thing from his book and tryed to improve them. Nowadays I am alone in this task. If anyone of you want to help me be suer to contact me!
And as last time there is my video with implemented JigLibX XNA physic library:

neděle 1. ledna 2012

A zejtra do školy / And back to school again

A je to tady, opět zítra do školy. Sice jen jako každé pondělí jen na psychologii ale bude to bohužel poslední přednáška. A pak by bylo vhodné se asi už i začít učit na zkoušky. Asi si uklidím pokoj, napíšu 3 hry a vyřeším všechny návrhy co na žvb mám :-) A jako ukázku toho jak úspěšně odolávám učení může být třebas todle vídeo ze ŽvB 2 co sem před chvilkou natočil. (je dole pod englickým příspěvkem) Co to je ŽvB 2 a o co se snažím popíšu později.



Today ends Christmas and New Years vacation :-( And again tomorrow back to school. Credit week is here and also examination part of semestr. It should be good to begin preparing for exams. But as we all now everythnig  is better than learning :-) As a example of my procrastination is video I have taken today. I am finally add physics JigLibX engine to my project ŽvB 2. But about my project I will speek later. Here it is: