wz

Váš vkus

Ξ July 23rd, 2007 | → 7 Comments | ∇ Osobní |

Jedna taková anketa, abych věděl o vkusu čtenářů mého veleblogu (ano správně, tohle neni weblog ani blog … ale veleblog! :)).

Subjekt:

Anketa:

 

Extended Straight Downloader - Nostalgie

Ξ July 22nd, 2007 | → 2 Comments | ∇ Můj soft |

Když jsem se před hodinou pokoušel extrahovat jedno swf pro kivana, použil jsem k tomu jeden můj program, který už používam mooooc dlouho. Uvědomil jsem si, že je to program neskutečně praktický, a jako jediný z mých programů ho používám i já sám. Žádný podobný program neexistuje. Leží mi na disku už od roku 2005 (to je taková doba! To jsem chodil do prváku! Dokážete si to představit?) a přestože je to můj nejpraktičtější a nejunikátnější program, nikdy jsem si nedal tu práci dát ho na web. Když jsem se podíval do jeho zdrojáku, našel jsem tam dokonce jeho aktualizovanou verzi - protože jsem si v té době bral nenávist k bushovi opravdu k srdci, tak jsem na něj tehdy vložil malý banner :).

To je zároveň důkaz pro kivana, že MF Softworks existuje už celou řadu let :D …
Každopádně jsem se rozhodl, že vám tento skvostný program dám k dispozici. Co vůbec dělá a co je na něm tak unikátního? Do prvního pole zadáte url, do druhého soubor a prográmek vám stáhne přesný výstup do souboru, takže můžete stahovat jak soubory, tak třeba neznámé vstupní soubory flashových sajtů (jako byla ta kivanovo sajta). Jak je možné, že tuhle featuru už dávno neobsahují prohlížeče? Vždyť je to přece potřebné, tedy já to shledávám potřebné … nebudu přeci pro každou blbost vytvářet nový soubor s linkem na soubor, abych ho pak otevřel v prohlížeči a kliknul uložit cíl jako.
Program je reglej v MSD, takže žádný kopie se dělat nebudou jasný?! :)

Link pro stažení: http://leviathan.xf.cz/filez/ESD.exe
(k běhu potřebujete msvbvm60.dll, ale od win2k výše je obsažen normálně v základní instalaci windowsů)

 

Microsoft JET databáze, ADO, OLEDB a tvorba slovníku

Ξ July 21st, 2007 | → 4 Comments | ∇ Můj soft |

Leviathanovo osobní zamyšlení:
Ano, ten titulek skutečně vypadá, jako kdybych chtěl vystřískat nějaký návštěvy navíc :). Navíc mě docela štve, že většina posledních článků přispívá k dojmu že tohle je nějakej geekovskej weblog (přitom neni, že ne? :)). A teď jdu psát další geekovskej článek! Co to se mnou je? Já vim co to se mnou je …. prázdniny! No … doufám, že už brzy skončí a já se zas začnu věnovat normálním věcem jako například pivu nebo holkám.

K věci. Pamatuju si, jak jsem říkal Nedymu (http://devden.wz.cz/) o JETu - pochopitelně, že ne dobrovolně, akorát se pokoušel dát najevo zájem, aby získal programátora na svojí stranu. Jenže mě s tím nedy strašně sral, nemám rád, když se mě někdo pořád na něco ptá a vůbec neskrývá ten druhý záměr.

Jednoho dne o prázdninách mě prostě z ničeho nic napadlo, že si napíšu slovník. V tu samou chvíli mě napadlo, že ten slovník NEUDĚLÁM, pokud se nevrátím zpět k Visual Basicu, protože ten jediný umím profesionálně a prakticky. Tak jsem dal sbohem javě a céčku a vložil jsem do mechaniky svaté CD a provedl jsem instalaci, při které jsem se nemohl zbavit nostalgické nálady. Už to bude 6, 7 let co jsem se poprvé začal učit Visual Basic a dnes znám vetšinu jeho funkcí tak dobře jako písmena na klávesnici.

Ovšem to samé nemůžu říct o JETu (databázovém systému Microsoftu). Ten jsem použil za celou dobu jenom párkrát a v jednom z těch případů ještě tak lamersky, že celá aplikace byla posléze odsouzena k vyřazení z provozu a přepsání (bez využití JETu, ale texťáku, který sloužil jako databáze). Přes to všechno si pořád myslím, že JET je dobrej databázovej systém. Proto jsem se taky rozhodl k této databázi přistupovat pomocí mezivrstvy ADO (ActiveX Data Objects). ADO je novější (1996), než jeho starší kolega DAO (1992 - Data Access Objects) … No co? 11 let to je jako nic :) JET využívá jazyka sequel.

Vytáhnul jsem tedy mojí (velmi dobrou) učebnici “1001 Tipů a triků pro Visual Basic” a začal jsem se šprtat ADO. Přes den, kdy se šprtat ADO nedalo (v pokoji bylo 33°C) jsem sháněl zdroj dat pro můj slovník. Nejdříve jsem chtěl vykrást můj milovaný slovnik.cz: Poprosil jsem Tondu, jestli by mi nenapsal PHP skript, kterej by za pomoci URL (slovnik.cz má rád metodu GET) vydoloval html výstup kompletně všech stránek slovníku a následně je spojil dohromady. To bohužel nešlo, protože slovnik.cz byl mírně chráněn proti takovémuto vykrádání. Hledal jsem tedy jiný slovník a přitom jsem omylem narazil na šestimegovaej texťák, kterej obsahoval celý anglicko český slovník. Byl šiřitelný pod licencí GNU/FDL, po čímž jsem si představil “vem si z toho ty data a autory vymaž, je to přece oupn sors” :)

Posléze jsem bohužel zjistil, že slovník obsahuje jisté výrazy, které nejsou přeložné. No jasný, to jsou celý oupnsorsáci, nedostanou za to prachy, tak na to serou … klidně si daj na web nekompletní slovník, kterej je navíc tak dementně udělanej, že by autoři zasloužili pořádně profackovat. To jsem měl radši ukrást nějakej komerční, bylo by to tisícekrát lepší. Ale mě to bylo v podstatě jedno, databáze, kterou jsem z toho hodlal udělat se bude dát v budoucnu nahradit lusknutím prstu :).

Začal jsem tedy dělat bastlo skript, který měl převést hnusnej oupnsorsáckej texťák do krásný MDB databáze. V tomhle jsem si trochu nechal poradit od Tondy, protože jsem databázovej laik. Díky němu má teď databáze 16 mega a ne 160, protože jsem se chystal používat char místo varchar :) Databáze tedy byla na světě.

Bylo mi líto toho bastlo programu, tak jsem ho nakonec povýšil na hlavní projekt slovníku. Zanechal jsem tam ty bastlo funkce netknuté, kontrolní prvky jsem odsunul za hranici formuláře a začal jsem tvořil slovník. Slovníku vznikly asi tři verze předtím, než vznikla finální. Při vytváření slovníku jsem měl problém s vyhledáváním, jelikož sloupce s typem varchar za boha nešly indexovat, ale nakonec jsem to vyřešil zase pomocí ADO a jeho funkcí.

Poslední problém byl s distribucí projektu. Musel mít instalátor, protože většina počítačů bez officu nemá MDAC (Microsoft Data Access Components), některé dokonce ani interpreter Visual Basicu (msvbvm60.dll). Instalátor je ale zabugovanej, tak jsem musel stáhnout Service Pack 5 pro Microsoft Visual Studio 6.0.

První betatesteři byli touny s kivanem. Oba dva rozběhli můj projekt bezproblému na Linuxu (!!!).

Nakonec asi download:
http://leviathan.xf.cz/filez/mfs_dict.rar

Až najdu nějaký lepší zdroj slovní zásoby, dám vám vědět, bude potřeba jenom vyměnit soubor db.mdb.
To je zatím ode mě vše.

 

Přízvuk

Ξ July 17th, 2007 | → 10 Comments | ∇ Uncategorized |

Určitě jste všichni (ano - úplně všichni kdo toto čtete, vím to) hráli GTA: San Andreas. A nejde dohrát SA bez toho, aby se vám vryl do paměti East Side nigga přízvuk. Já osobně jsem po dohrání SA začal do svojí angličtiny značně přimíchávat nigga přízvuk, což není vůbec dobrý děti. Z koukání na americký filmy s titulkama se naučíte mluvit jako tlustej americkej pojídač hamburgrů nebo tuctovej nigga z bronxu. Americký přízvuk je hnusný! Hnusný stejně jako ten odporný národ, na němž jediná dobrá věc je, že vzešel částečně z Britské krve (která už je tak promíchaná, že tam vůbec, ale vůbec není znát).

Také mě dnes nesmírně vytočil (opět a znova kdo jiný než …) Ra-dek Hu-lán. V jedné z jeho posledních ztláskanin se zmiňuje o tom, že si založil nový blog, ve kterém bude psát v Angličtině. Samozřejmě mi to nedalo a šel jsem se podívat, jak píše Anglicky člověk s í-kvé-sto-padesát. Přečetl jsem první větu a okamžitě jsem zavřel prohlížeč … chtěl jsem si zapálit cigaretu, ale došly mi. Napsal tam … “I am using Microsoft Windows Mobile phones for last two years”. Takovou hovadinu! Další jeho nesmysly jsem už opravdu nechtěl číst … nenavštěvujte hu-lán tečka info.

Ale zpět k přízvuku … co byste řekli na Bristký přízvuk? Britských přízvuků je celá řada … Východoanglický, Jihoanglický, Severoanglický, Skotský etc. Jsou ale jisté prvky, které mají všechny společné:

1. RHOTICITA
Rhoticita (Rhoticity) je velmi důležitý prvek v rozlišování Britského a amerického akcentu. Zatímco americký přízvuk je rhotický, Britský je nerhotický. Rhoticita je o vyslovování obráceného “r” ve slovech. Pro příklad uvedu:

  • Sloveso “To Spar” se nerhoticky vysloví jako “To Spa” (tu spá), zatímco rhoticky se vysloví s obráceným “r” nakonci (vezměte “r” ze slova fresh).
  • Slovo “Here” se nerhoticky vysloví s obráceným “e” na konci (hý- a takovej ten zvuk údivu), zatímco rhoticky se vysloví s obráceným “r” na konci.

Takže pamatujte, Bristký akcent je nerhotický! Žádné obrácené “r” ve slovech!

2. “U” versus “YU”
Další velmi důležitý rozdíl předvedu na příkladech:

  • Slovo “stupid” s Bristským akcentem čteno “styupid”, někdy dokonce ”sty:pid” (moc neznám IPA, takže ty fonetický překlady čtěte česky a dvojtečka je prodloužení)
  • americkým akcentem je slovo “stupid” čteno “stu:pid” - stoopid
  • SLovo “duty” s Bristkým akcentem čtenou “dyuty”, zatímco americkým “du:ty” (není to zas až tak dlouhé u, aby se šlo říct že je to jako dooty)

3. A = AAH
V Britském přízvuku čteme “a” jako aah … “á”.

  • Například “father” … f’aah’ther
  • Nebo “ask” Britsky “ásk” americky “ésk”

4. T=T ; T!=D
američané vyslovují “t” jako “d”, britové “t” jako “t”:

  • Britským akcentem “duty” - “dyuTy”
  • americkým akcentem “duty” - “doody”

5. EE(íí) vs E(i)
Předvedu na příkladech:

  • Britové vyslovují “been” jako bean “býn”
  • Američané vyslovují “been” jako bin “bin” … znáte to: “Ajv bin livin …”

Takže žádný krátký “i” jasný?

6. DVOJHLÁSKY
Dvojhlásky jsou na Britském přízvuku ta NEJNÁDHERNĚJŠÍ VĚC a proto jsem si je nechal nakonec.

  • Slova jako “So”, “Go”, “No”. Bylo vám odjakživa vštěpováno, že se prostě čtou “sou gou nou”. Ale to je americkým akcentem!
  • Chcete-li mluvit Britským akcentem, musíte to “s” (v So) změkčit a před “o” ještě vložit “e”. Nevím jak bych vám to vysvětlil, ale ta slova se potom čtou nějak jako “Se:u (když chcete zvýraznit)”, “Seu”, “Geu”, “Neu”.

Britský přízvuk se často stává terčem posměchu amerických idiotů kvůli známému pozdravu Hello. Britové vyslovují Hello vznešeně “hele:u”, zatímco američané buransky “helou”.

Tak co, líbí se vám Bristký přízvuk tak jako mně? To bude pro dnešek ode mě všechno. Goodbye, then.

 

Very není jenom velmi

Ξ July 9th, 2007 | → 2 Comments | ∇ Uncategorized |

Učím se anglicky už deset let, a celých deset let mi cpou do hlavy yankeeovský výrazy pro lamy, který znormovala nějaká stará tlustá hag, mající svou arse celý den ve svojí chair, čumějíc skrze popelníky. Přicházím tak o naprosto unikátní a krásné možnosti použití rozličných slovních spojení ve všemožných konstelacích a kontextech.

Poslední měsíce jsem narazil na obzvláště rozmanitou škálu použití slova “very”. Jak přeložíte very? Asi jako každý jiný .. velmi. “velmi” je ale pouze jedno z mnoha použití. Představte si, když vám někdo řekne.

  • This is life of very yours

Lámali byste si nad tím hlavu, přitom se to dá lehce přeložit jako “Je to právě tvůj život” a nebo “Je to tvůj život, a ničí jiný”. Zde je to ještě skombinované s další věcí - nahrazení “your” (this is your very life) výrazem “of yours”. Pokud si vzpomínáte na jeden song Phila Collinse, jmenuje se “No son of mine” a je to to samý jako “not my son”.

Teď si můžete říct … no a co, tak to není jenom velmi, ale také právě. Ale podívejte se na další věty:

  • In the very beginning
  • On the very last page

Tady se právě “právě” nehodí. První větu nebude “právě na začátku”, ale “na samém začátku” .. což uznejte, se trochu liší. V další větě se to ale liší už hodně: Ne “Právě na poslední straně”, ale “Na samé poslední straně”.

Když chcete říci, že je to vaše jablko (:)) a zároveň chcete zdůraznit, že není nikoho než vaše, řeknete “this is my very apple”. I když je to docela špatný příklad, protože použít very v souvislosti s takovou banalitou z váš udělá akorát šaška :)

Také chci zdůraznit, že TADY NEJSTE V AMERICE V BRONXU! TADY JSTE V BRITÁNII, takže žádný námitky vztahující se k hnusné americké angličtině.

Tak děti :) , teď se koukneme, jak se na slovo ”very” dívá můj oblíbený slovník (http://slovnik.cz) :

very - právě
very - pravý (též i biblicky)
very - skutečný
very - úplný (dokonalý)
very - dokonalý
very - moc (velice, hovor.)
very - velmi
very - velice
very - úplně
very - naprosto
very - pravý (též biblicky)
very - hned
very - absolutně
very - i
very (the …) - právě (ten)
very - přesně ten
very - samotný
very - samý

Vidíte to děti?! Tolik významů! Je víc než pravděpodobné, že má very další a hezčí významy, takže teď jděte a řádně proškolte svoje učitelky! :)

 

Interview With God

Ξ July 6th, 2007 | → 1 Comments | ∇ Uncategorized |

Na tohle video jsem kdysi dávno narazil a moc se mi líbilo. Musíte umět aspoň trochu anglicky, abyste to pochopili … kdo neumí, může mi napsat a já mu to přeložím (pokud toho bude hoden).
Text napsal jistý Octavian Paler, který zemřel 7.května 2007.

 

Objektově Orientované Programování

Ξ July 4th, 2007 | → 5 Comments | ∇ Uncategorized |

Nedavno mi Touny půjčil knížku o Javě, kterou jsem si přečetl a docela jsem se i bavil tím, jak autor popisuje chovatelství zvířat pomocí objektově orientovaného programování. Rozhodl jsem se, že si také nějaký takovýho model napíšu. Zeptal jsem se tedy kivana (kterému jsem půjčoval knížku o C++, která se silně zaměřovala na objekty), jestli by mi nepomohl vybrat nějaké vhodné prostředí, kde by se dal snadno implementovat polymorfismus a enkapsulace. Po přečtení posledních dvou termínů kivan zemřel, takže jsem si musel pomoci sám (a rozhodl jsem se ho zahrnout do mého projektu, a má to! :))

Vybral jsem si oblíbené téma … člověk a reprodukce. Cílem bude vytvořit názornou strukturu tříd, kde konečnými třídami budou muž a žena. Můž a žena budou moci za určitých podmínek dohromady stvořit nového člověka, který bude mít téže reprodukční schopnosti. Každý člověk bude nositelem určitých (pojmenujme si je příznačně DNA), které budou popisovat jeho rodiče a jeho úplný rodokmen. Není to nic složitého, ale na můj druhý progámek v Javě (hned po Hello World) je to docela dobré.

Pokusím se vám popsat, jak jsem postupoval v návrhu a realizaci tohoto projektu. Nejdříve ale pár základních pojmů pro neznalé:

Co je to třída? Třída je datová struktura, obsahující své vlastní interní proměnné, metody a přístupové metody. Třída sama o sobě slouží pouze jako takový blueprint (nevím, jak bych to česky řekl).
Co je to objekt? Objekt je nezávislá instance třídy, jejíž data jsou strukturována podle třídy, jejíž instancí je. Každý objekt je nezávislý na jiných (vyjma statických proměnných a metod)

Určitě se shodneme na tom, že z hlediska forem života nemá cenu jít hlouběji, než ke třídě popisující člověka. Člověk sám jako takový nemůže v reálněm světě existovat … musí to být buď muž, nebo žena, proto v deklaraci třídy přidáme modifikátor “abstract”, který činí danou třídu abstraktní - nemůžeme z ní vytvořit žádný objekt. Takže tedy máme člověka.
Dále budeme mít Muže a Ženu, kteří budou z člověka odvozeni (budou to jeho potomci).
Aby lidé mohli vykonávat mnohé činnosti, potřebují k tomu orgány … a protože orgán jako takový nemůže existovat, vytvoříme abstraktní orgán.
A protože nám jde o reprodukci, odvodíme z této třídy dva potomky - mužství a ženství (líp jsem to už opravdu nemohl nazvat :))
Abychom zajistili přírodně identický reprodukční proces, musíme vytvořit také složky, ze kterých nový život vznikne, pojmenujme si je jako MuzskaSlozka a ZenskaSlozka.
A nakonec budeme potřebovat nějaký “generátor” nových lidí, takže mě napadá Postel :)

Protože budeme zapouzdřovat, musíme začít s psaním těch nejzákladnějších tříd, takže začneme s Orgánem :)

package devel.java;

public abstract class Organ
{
protected boolean pripraven = false;
public void Priprav()
{
this.pripraven = true;
System.out.println(”ORGAN: Organ je pripraven”);
}
public void Zklidni()
{
this.pripraven = false;
System.out.println(”ORGAN: Organ neni pripraven”);
}
}

Orgán bude nést proměnnou “pripraven”, která bude obecně indikovat to, jestli je orgán připraven vykonávat svou hlavní činnost. Metody Priprav() a Zklidni() budou toto nastavovat. Proměnná “pripraven” má modifikátor přístupu Protected, protože bude vyžadováno čtení z této proměnné z jejího potomka.
Ještě, než vytvoříme potomky této abstraktní třídy, musíme vytvořit mužkou a ženskou složku:

package devel.java;

public class MuzskaSlozka
{
public final String data = “M;”;
private boolean funkcni = false;
public MuzskaSlozka(boolean je_neni)
{
this.funkcni = je_neni;
}
public boolean GetFunkce()
{
return this.funkcni;
}
}

Tato třída je nositelem proměnné “data”, což je jako-chromozom :) a také obsahuje proměnnou “funkcni”, která je nastavována při konstrukci objektu (v konstruktoru) a značí, jestli je složka funkční.

ZenskaSlozka je to samé.

package devel.java;

public class ZenskaSlozka
{
public final String data = “Z;”;
private boolean funkcni = false;
public ZenskaSlozka(boolean je_neni)
{
this.funkcni = je_neni;
}
public boolean GetFunkce()
{
return this.funkcni;
}
}

Nyní, když máme vše potřebné, pro sestrojení funkčních orgánů, můžeme se do toho pustit, tak tedy Muzstvi:

package devel.java;

public class Muzstvi extends Organ
{
public void Vzrus()
{
this.Priprav();
System.out.println(”MUZSTVI: Muzstvi je pripraveno ke generaci slozky”);
}
public void Vychladni()
{
this.Zklidni();
System.out.println(”MUZSTVI: Muzstvi neni pripraveno ke generaci slozky”);
}
public MuzskaSlozka GenerujSlozku()
{
System.out.println(”MUZSTVI: Generuji slozku …”);
if(this.pripraven)
{
System.out.println(”MUZSTVI: Funkcni slozka byla generovana”);
return new MuzskaSlozka(true);
}
System.out.println(”MUZSTVI: Nefunkcni slozka byla generovana”);
return new MuzskaSlozka(false);
}
}

Přístupové metody příznačne obsahují Vzrus() a Vychladni() :) , které nastavují činnost orgánu. Následně je zde důležité metoda “GenerujSlozku”. Tato metoda je typu MuzskaSlozka, tudíž vrací objekt typu MuzskaSlozka. Ovšem toto vrátí pouze, je-li orgán připraven. Není-li orgán připraven, vrátí speciální MuzskaSlozka, která bude mít svojí vnitřní proměnnou “funkcni” nastavenou na false a bude to tudíž indikátor pro Postel, že nový život nelze vytvořit.

“Ženství” bude to samé, akorát s tím, rozdílem, že ZenskaSlozka bude funkční i tehdy, není-li orgán připraven. Jak je tomu v normálním světě.

package devel.java;

public class Zenstvi extends Organ
{
public void Vzrus()
{
this.Priprav();
System.out.println(”ZENSTVI: Zenstvi je pripraveno dobrovolne a je funkcni”);
}
public void Vychladni()
{
this.Zklidni();
System.out.println(”ZENSTVI: Zenstvi neni pripraveno, ale je funkcni”);
}
public ZenskaSlozka GenerujSlozku()
{
System.out.println(”ZENSTVI: Generuji slozku …”);
if(this.pripraven)
{
System.out.println(”ZENSTVI: Perzistentni zenska slozka je k dispozici”);
return new ZenskaSlozka(true);
}
System.out.println(”ZENSTVI: Perzistentni zenska slozka je nedobrovolne k dispozici”);
return new ZenskaSlozka(true);
}
}

A nyní vytvoříme tu poslední a nejdůležitější třídu před Mužem a Ženou - totiž člověka. K čemu by nám byly orgány, když nemáme něco třídy člověk, do kterých bychom je implementovali?.

package devel.java;

public abstract class Clovek
{
protected boolean zije = false;
protected int vek = 0;
protected String jmeno = “unnamed”;
private String DNA = “C;”;
public void Oziv()
{
this.zije = true;
System.out.println(”CLOVEK: Clovek “+jmeno+” byl oziven”);
}
public void Zabij()
{
this.zije = false;
System.out.println(”COLVEK: Clovek “+jmeno+” byl zavrazden”);
}
public void Prejmenuj(String novejmeno)
{
this.jmeno = novejmeno;
System.out.println(”CLOVEK: Clovek “+jmeno+” byl prejmenovan na ”
+novejmeno);
}
public void StrojCasu(int novyvek)
{
this.vek = novyvek;
System.out.println(”CLOVEK: Cloveku “+jmeno+” byl zmenen vek na ”
+ novyvek);
}
public String GetJmeno()
{
return this.jmeno;
}
public int GetVek()
{
return this.vek;
}
public void Say(String what)
{
System.out.println(this.jmeno+”: “+what);
}
public void AddDNAChain(MuzskaSlozka M, ZenskaSlozka Z, Muz muz, Zena zena)
{
this.DNA = this.DNA + “[” + M.data + “=” + muz.jmeno + “(” + muz.vek + “);” + Z.data + “=” + zena.jmeno + “(” + zena.vek+ “)]; < ” + muz.GetDNA() + ” ZDNA> ” + zena.GetDNA() + ” !!>>”;
System.out.println(”CLOVEK: Cloveku “+jmeno+” byla pozmenena DNA”);
}
public String GetDNA()
{
return this.DNA;
}
}

Jak můžete vidět, třída člověk už předpokládá existenci svých potomků, a není to tím, že ona myslí, ale je to tím, že programátor myslí :). Člověk obsahuje pár vlastností, pro člověka typických, jako je jméno nebo věk. Také si všimněte, že promenná DNA, která uchovává “genetickou informaci” daného člověka už obsahuje “C;”. To je proto, že jsem se rozhodl, že stvořím i zvířata a chci mít nezávislý nezapouzdřený systém DNA, takže “C;” značí, že nositel dané informace je člověk. Důležitá je zde metoda AddDNAChain(), která bude posléze volána Postelí, aby zakódovala do DNA nového člověka DNA svých rodičů.
Máme-li člověka hotového, můžeme konečně vytvořit specifické lidi - Muže a Ženu.

package devel.java;

public class Muz extends devel.java.Clovek
{
private Muzstvi muzstvi = new Muzstvi();
public Muz(String jmeno, int vek)
{
this.Prejmenuj(jmeno);
this.StrojCasu(vek);
this.Oziv();
System.out.println(”MUZ: Byl vytvoren muz “+jmeno);
}
public MuzskaSlozka Sex(Zena Z)
{
MuzskaSlozka MS;
this.muzstvi.Vzrus();
MS = this.muzstvi.GenerujSlozku();
this.muzstvi.Vychladni();
System.out.println(”MUZ: Muz “+this.jmeno+” mel sex s “+Z.jmeno+” a vratil slozku”);
return MS;
}
}

Vidíte, že muž je oproti člověku rozšířen pouze možností vracet mužskou složku pomocí trefně pojmenované metody Sex() :)
Stejně jako prvnímu muži i ženě, musíme jim nastavit jméno a věk sami, již při konstrukci. Lidé stvoření prostým vytvořením objektu Muz nebo Zena budou jako Adama a Eva. Adama a Evu stvořil bůh a Muze a Zenu stvořil Leviathan :) Tito lidé se již budou moci množit sami, ale to předbíhám. Teď ještě ženu, abychom to měli kompletní a mohli jít na to nejzajímavější:

package devel.java;

public class Zena extends devel.java.Clovek
{
private Zenstvi zenstvi = new Zenstvi();
public Zena(String jmeno, int vek)
{
this.Prejmenuj(jmeno);
this.StrojCasu(vek);
this.Oziv();
System.out.println(”ZENA: Byla vytvorena zena “+jmeno);
}
public ZenskaSlozka Sex(Muz M)
{
ZenskaSlozka ZS;
this.zenstvi.Vzrus();
ZS = this.zenstvi.GenerujSlozku();
this.zenstvi.Vychladni();
System.out.println(”ZENA: Zena “+this.jmeno+” mela sex s “+M.jmeno+” a vratila slozku”);
return ZS;
}
}

Toto je trochu neobvyklé, že žena vrací svou složku, ale jsme v modré sféře, holt to musíte brát jako fakt. Děti nedělá žena, děti dělá Postel!!!!
Ano je to skutečně tak, v tomto programu děti skutečně dělá Postel. Postel se tedy stává nejdůležitější věcí na světě!

package devel.java;

public class Postel
{
public Postel()
{
System.out.println(”POSTEL: Byla vyvtorena postel”);
}
public Muz GenerujMuze(Muz muz, Zena zena, String jmeno)
{
System.out.println(”POSTEL: Postel bude generovat noveho muze”);
MuzskaSlozka M;
ZenskaSlozka Z;
Muz novy;
M = muz.Sex(zena);
Z = zena.Sex(muz);
if(M.GetFunkce() && Z.GetFunkce())
{
System.out.println(”POSTEL: Obe slozky jsou funkcni”);
novy = new Muz(jmeno,0);
novy.AddDNAChain(M,Z,muz,zena);
System.out.println(”POSTEL: Muz “+muz.jmeno+” a Zena “+zena.jmeno+” dali vzniknout novemu zivotu.”);
System.out.println(”POSTEL: Je to Muz a jmenuje se “+novy.jmeno+ “, je mu “+novy.vek+” let”);
return novy;
}
System.out.println(”POSTEL: Jedna ze slozek nebyla funkcni, vracim null”);
return null;
}
public Zena GenerujZenu(Muz muz, Zena zena, String jmeno)
{
System.out.println(”POSTEL: Postel bude generovat novou zenu”);
MuzskaSlozka M;
ZenskaSlozka Z;
Zena nova;
M = muz.Sex(zena);
Z = zena.Sex(muz);
if(M.GetFunkce() && Z.GetFunkce())
{
System.out.println(”POSTEL: Obe slozky jsou funkcni”);
nova = new Zena(jmeno,0);
nova.AddDNAChain(M,Z,muz,zena);
System.out.println(”POSTEL: Muz “+muz.jmeno+” a Zena “+zena.jmeno+” dali vzniknout novemu zivotu.”);
System.out.println(”POSTEL: Je to Zema a jmenuje se “+nova.jmeno+ “, je ji “+nova.vek+” let”);
return nova;
}
System.out.println(”POSTEL: Jedna ze slozek nebyla funkcni, vracim null”);
return null;
}
}

Já miluju tuhle postel :) Víte jak je užasná? O takové automatizaci se panu Nedvědovi ani nezdálo! Prostě jenom dáte do postele muže a ženu, řeknete, jak se bude jmenovat. Postel zařídí, aby měli muž a žena sex a oba vyprodukovali svoji složku. Potom vytvoří nového člověka, vezme obě dvě složky a naláduje je do DNA nového člověka, kterého nakonec vrátí :). Je zde rozlišeno, jestli má postel generovat ženu, nebo muže, takže si doknce můžete vybrat! :)

Teď vám ukážu názornou ukázku použití těchto tříd. Takže budeme tvořit nové lidi a budem je párovat! Já si rád hraju na boha a vy? :)

package devel.java;

public class Lidstvo
{
public static void main(String args[])
{
Muz petr = new Muz(”Petr”, 18);
Zena renata = new Zena(”Renata”, 17);
Zena jana;
Muz michal = new Muz(”Michal”, 18);
Zena veronika = new Zena(”Veronika”, 17);
Muz james;
Postel postel = new Postel();
jana = postel.GenerujZenu(petr, renata, “Jana”);
james = postel.GenerujMuze(michal, veronika, “James”);
jana.StrojCasu(18);
james.StrojCasu(18);
Muz josef;
josef = postel.GenerujMuze(james, jana, “Josef”);
System.out.println(”— DNA: 1.generace —”);
System.out.println(”Petrova DNA: “+petr.GetDNA());
System.out.println(”Renaty DNA: “+renata.GetDNA());
System.out.println(”Michalova DNA: “+michal.GetDNA());
System.out.println(”Veroniky DNA: “+veronika.GetDNA());
System.out.println(”— DNA: 2.generace —”);
System.out.println(”Jany DNA: “+jana.GetDNA());
System.out.println(”Jamesova DNA: “+james.GetDNA());
System.out.println(”— DNA: 3.generace —”);
System.out.println(”Josefova DNA: “+josef.GetDNA());
System.out.println(”\nstuff happens :)”);
petr.Zabij();
petr = null;
System.out.println(”lol sry :)”);
}
}

Na začátku Leviathan stvořil Petra a učinil ho mužem, potom stvořil Renatu a učinil jí ženou (upozorňuji, že toto nemá naprosto žádnou souvislost s kivanem, který je také petr a renatou, slečnou z S1A … i když :)). Jenže Leviathanovi se nelíbil tento pár, a tak stvořil nový … stvořil Michala a učinil ho mužem a stvořil Veroniku a učinil jí ženou.
Potom bůh stvořil Postel! A do této postele on vložil (jak programátorské :)) Petra a Renatu. Tak vznikla Jana! Leviathan ale chtěl pro Janu partnera, a tak vložil do postele Michala a Veroniku … a hle!!! Vznikl James!! :)
Bůh urychlil vývoj Jamese a Jany a nastavil jim rovných 18 let, strčil je do postele a Vzniklo první skutečné dítě - Josef zvaný Pepa :)
Potom Leviathan nechal na standardní výstup vypsat DNA všech lidí a protože se mu Petr prostě nelíbíl, tak ho zabil :). A od té doby je Renata smutná.

Pokračování této telenovely, s novou upgradelou verzí mého světa :)
A na závěr vám nabídnu přesný výstup programu s Petrem,Renatou,Michalem a Veronikou: http://krepelky.kx.cz/vystup.txt

 

Návštěvnost za od T minus 160 dní

Ξ July 2nd, 2007 | → 3 Comments | ∇ Uncategorized |

Dnes je to mu přesně 156 dní, co běží můj weblog. A protože 156 je takové hezké číslo (je to přesně jedna lomeno 2,307692307 roku :)), rozhodl jsem se shrnout návštěvnost mého weblogu.

Od konce ledna se průměrná denní hodnota návštěvnosti vyšplhala až na CCA 23 lidí (podle toplistu). Což obecně není moc, ale zdá se mi to docela vyhovující, protože povětšinou píšu o věcech z vlastního života a sem tam něco odborného (velmi zřídka “sem tam”). Přesto velkou většinu návštěv tvoří návštěvníci, přicházející z vyhledávačů google a seznam. Mě vlastně ani nezáleží tak moc na návštevnících z celé širé České republiky, jako na návštevnících mě známých, kamarádech, slečnách a respektu či pozornosti hodných lidí z mého okolí blízkého i širokého. Beru tento blog také jako jakýsi můj velký internetový profil, kde se o mě člověk/slečna se zájmem o mou osobu může dozvědět něco více … více, než ze strukturovaných profilů.

Zde je hrůbě vidět tendence návštěvnosti. To citelné zvýšení průměrné hodnoty mě těší :).

Na závěr snad všem čtenářům/čtenářkám … “Zachovejte mi přízeň, bavte se čtením mých článků, a nebojte se komentovat”

 

Solaris 10, aneb jak mi tekly nervy

Ξ July 1st, 2007 | → 12 Comments | ∇ Uncategorized |

Bylo tomu minulý týden, co jsem se rozhodl začít učit Javu, protože si myslím, že mi to prospěje na vejšce, kde se snad v jiném vyšším jazyku ani nedělá. A protože je to platforma vyvíjená firmou Sun Microsystems, rozhodl jsem se, že do toho půjdu hardcore a budu se jí učit přímo na operačním systému od Sun Microsystems - Solaris.

Solaris 10 je založen na UNIXovém jádře System V (ranné verzi vycházely z jádra BSD Unixů) a existuje pro architektury SPARC, intel x86 a x86-64. Po krátké registraci u Sun Microsystems jsem si stáhnul pět částí ISO obrazu instalačního média. První problém nastal velmi brzo … já jako windowsák jsem samozřejmě nevěděl, jak 5 částí ISO souborů spojit do jednoho. Tak jsem na internetu hledal a hledal … a nakonec jsem našel nápovědu nečekaně na stránkách Sun Microsystems, trik byl v tom použít tento příkaz: “copy part1 + part2 + part3 + part4 + part5 kompletniISO”. V životě by mě nenapadlo, že WinDose něco takového umí (Ano, tímto vyzívám H*lána, aby neprodleně opustil tento svět).

Další problém nastal po mimořádně krátkém okamžiku … ISO mělo celkem 5,31GB :) A jak všichni jistě dobře víte, standardní DVD-R má 4,7GB. I přes tuto skutečnost, jsem se naivně pustil do vypalování obrazu na běžné mínusko, což samozřejmě skončilo neúspěchem. V tu chvíli jsem si ale radostně uvědomil, že moje zlatá vypalovačka Asus umí nejen DVD+-R, ale i DVD+-R Dual Layer a DVD-RAM. Dual Layer byla pro mě jasná volba. Ale přece jenom bydlím 16 kilometrů od civilizace, takže koupit DLko byl docela problém. Alespoň jsem si Solaris nachvíli nainstaloval do emulátoru.

V Pátek jsem si sebou potom vzal prachy na chlast a DLko. Prochlastal jsem množství peněz, ale na DLko jsem pořád ještě měl, tak jsem nejdřív čekal, než otevře úchyl Průša prodejnu a když neotevřel, šel jsem do RAMMu. V RAMMu jim už došly Dual Layer pluska, tak jsem si koupil cca o 40 korun dražší mínusko (105 ká). Šťastnej z výhodné koupě jsem si to namířil k nádraží, kde jsem zjistil, že mi chybí dvacka na jízdenku, tak jsem musel improvizovat … zašel jsem do McDonalds a koupil si jednoho číze (20 ká) za 45ti korunovou stravenku :)

Doma jsem šel okamžitě spát.

Když jsem se probudil, vyčistil jsem svůj první záložní disk (20GB) a zničil jeho formát. Potom jsem vložil DLko do vypalovačky a Solaris 10 jsem konečně vypálil.
Byl jsem hrozně podělanej z toho, že si během partišnování vymažu WinDose nebo záložní disk č.2 (to bych snad opravdu obrečel, protože se na těch diskách skrývá moje dlouhá minulost a krásné vzpomínky … holt počítačová éra), tak jsem oba disky na IDE1MASTER a IDE2SLAVE vypojil z napájení i ze sběrnice.

Solaris krásně nabootoval a dal mi pár krásných možností instalace, Solaris Interactive, Jump, Solaris Interactive Text (desktop session) a Solaris Interactive Text (console session). Zvolil jsem Solaris Inteactive, což se ukázalo jako problém. Suňáci maj totiž nějak nedomáklou instalaci v grafickým rozhraní (i když vypadala překrásně). Poprvý instalace zamrzla na 3% a já jsem musel resetoval, připojit disk s WinDose AxePee, spustit diskmgmt.msc, protože na Solarisovým disku byl už solarisovej filesystem, ale bez dat a bez zavaděče, a disk znova napartišnovat na PRI-DOS. Řekl jsem si “to byla náhoda, nějakej hardvér se kousnul, to se u 95tek stávalo běžně”, tak jsem znova spustil Solaris Interactive instalaci. Tentokráte to nezamrzlo na 3%, ale když bylo na ProgressBaru 95%, spadlo grafický rozhraní a v textovém režimu se objevilo “Configuring additional network options” nebo podobně. Říkal jsem si … “to asi čuchá naše DHCP, to bude v pohodě”. Jenže disk přestal chrochtat a grafický rozhraní nahodit zpátky nešlo. No tak jsem znova resetoval, znova zapojil WinDose, znova partišnoval na PRI-DOS a znova odpojoval disky.

Teď už jsem zvolil Solaris Interactive Text (Desktop Session) … a to mě opravdu rozesmálo. Tohle bylo úplně to samý jako Solaris Interactive, akorát v Grafickým okně běžela emulovaná konzole s textovou instalací :D. Ale zkusil jsem to, na 98% to opět spadlo a svádělo to “Configuring additional network options”.

Uběhlo už moc hodin a já jsem si řekl, že naposledy tedy zkusím Solaris Interactive Text (Console Session). Instalace přes tuto možnost trvala destkrát tak dlouho, ale systém se v pořádku nainstaloval. Po instalaci se mě laskavě zeptal, jestli chci používat grafické rozhraní X.org nebo XSun … já mám s X.org přece jenom nějakou tu zkušenost, takže jsem zvolil X.org. Instalátor mi doporučil, abych si X nakonfiguroval, tak jsem bez resetu pustil xorgconf. Milej zlatej xorgconf zamrznul dřív než bys řekl SLAX. Reset.

Nabootoval krásnej GRUB s možností “SOLARIS X86-64″ a “SOLARIS FAILSAFE”. Zvolil jsem první možnost, jenže solaris na mě začal řvát, že jsem naprostej kretén windowsáckej a že jsem měl zvolit failsafe, protože jsem natvrdo rebootoval. Tak jsem opět na tvrdo rebootoval a zvolil jsem failsafe. Failsafe opravil něco čemu říkal “boot database” nebo podobně a potom mi doporučil reboot. Rebootoval jsem a zvolil první možnost. A v tu chvíli jsem zjistil, že solaris si očuchal můj procesor a zjistil, že je 64bitovej, tak se nainstaloval jako 64bitovej systém :)

Naběhlo X a mohl jsem si vybrat mezi JDE (Java Desktop Enviroment) nebo něčím co začínalo na C. Pochopitelně jsem si vybral JDE, protože jsem slyšel, že trochu připomíná windowsy. A ono opravdu připomíná :). Nalogoval jsem se jako root a hned jsem se těšil, že půjdu na net, protože jsem si myslel, že si Solaris “očuchal DHCP” a všechno sám nastavil … OMYL! Byl jsem naivní windowsák! Solaris nejen že vůbec nevěděl o žádným DHCP, ale on vůbec nevěděl, že je v počítačí síťovej adaptér!!! Nainstalovaná byla jenom zpětnovazební smyčka sloužící pro interní systémovou komunikaci (lo0)! Tohle mě dožralo a šel jsem spát :).

Další den jsem se marně pokoušel nainstalovat svůj Integrovaný adaptér “VIA Compatible Ethernet Adapter”, jak ho označoval WinDose. Ve WinDose na netu jsem vygoogloval, že UNIXy obecně mají velké problémy s adaptéry s čipem VIA, protože ovladač na ně je dostupný pouze přes WinDose Update. To bylo ohromný zklamání.

Celej disk se Solarisem jsem teda zase napartišnoval a vypnul jsem počítač. Říkám si … “kua, dyk já tu mám ještě někde ten RealTek!!!” … Jasně!! Měl jsem někde zahrabanej adaptér od RealTeku!! Začal jsem pracně vyhledávat a kupodivu jsem ho velmi rychle našel …. tenhle zlatej adaptér mi zachránil náladu. Hned jsem ho oprášil a zasunul do jednoho z volných PCI slotů. Opět jsem začal instalovat Solaris … s jistou nadějí.

A jak mile jsem byl překvapen, když mi Solaris oznámil, že našel rozhraní rt-cosi-0 a zeptal se mě, jestli chci instalovat a konfigurovat toto rozhraní. S radostí jsem zvolil YES a nastavil jsem “use DHCP”. Instalace zase probíhala šíleně dlouho, ale nakonec se povedla. Při prvním spuštění JDE jsem okamžitě otevřel terminál a psal “ping 192.168.0.1″, dostal jsem okamžitou odpověď “192.168.0.1 is alive.” :). Internet konečně fungoval!

Registroval jsem svůj 64bitovej Solaris10 u Sun Microsystems na svůj uživatelský účet a stáhnul jsem seznam aktualizací. Seznam byl neskutečně dlouhej, takže jsem si řek, že instalaci aktualizací nechám na později.

Zachvíli jsem se ale začal cítit v Solarisu mírně nesvůj a začal jsem být nervózní - to se projevovaly Abstinenční přízraky závislosti na WinDose. Taky ten GAIM “universal messenger” je dost odpornej komunikátor a mozilla je hnus největší. V budoucnu mám v plánu stáhnout tam Operu (Ano, Opera je distribuovaná také pro Solaris). Solaris má balíčkovací systém (pgk-get, ne apt-get jak jste zvyklí z Linuxů), ale také hojně využívá klasických instalátorů jako ve WinDose (InstallShield).

Screenshoty mám uložené, ale zrovna jsem ve WinDose, takže doplním možná potom. Zatím si můžete vygooglovat “Solaris 10″ nebo “Solaris 10 JDE”.

 

Leviathan

    kdo je Leviathan

    Jsem student aktuálně čtvrtého ročníku střední průmyslové školy strojní a elektrotechnické v českých budějovicích

     


 


RSS Zdroj

    ::

    RSS 2.0 < ZDE

    Přidejte si můj zdroj do vaší RSS čtečky

     

Statistiky