Zápisník

// MiniMath - pozdě, ale přece

MiniMath jsem začal tvořit již někdy v roce 2006 jakožto semestrální práci na předmět Jazyky a překladače. Shodou okolností jsem tehdy měl i pokročilé C++, takže cvičící si k tomu přimyslel nějake požadavky, včetně GUI, a náplň vánočních prázdnin jsem měl jasnou.

Pozdě, ale přece?

Minimath ikonka

Program byl v podstatě hotov někdy ze začátku ledna 2007, nicméně teprve teď jsem se dostal k tomu, abych jej dostal do podoby, která se hodí k publikaci. Proč až teď? Přesnou odpověd neznám, ale zcela jistě v tom měly prsty školní a jiné povinnosti. Následující semestr byl totiž ve znamení programování bakalářky a jiných semestrálek (mj. PhotoBase vznikla jako práce na předmět Internet a WWW). Také se mi povedlo projekt recyklovat v předmětu Programování v jazyku Java, kde jsem celý kód přepsal do Javy a GUI do Swingu. Červenec jsem strávil (doteď nevím, proč tak dlouho) psaním bakalářky a v srpnu jsem částečně „odpočíval“ a částečně se učil na státnice. Po euforii z 20. září jsem nějakou chvíli neměl chuť nic dělat. Další semestr, už na mgr. studiu, byl ve znamení spousty semestrálek a podivných předmětů (znáte to, prvák je vždycky nejhorší). No a tím jsem se na časové ose přiblížil až k dnešku…

Co že to vlastně je

MiniMath prerelease

Hlavní okno programu

MiniMath je tedy překladač a interpreter příkazů vlastního jazyka matematických výrazů a operací. Umožňuje definovat proměnné a funkce včetně rekurze, kterou lze ovládat jen a pouze pomocí ternárního operátoru (nebo spíš funkce) If, a tak rekurzi zastavit, jako jednoduchý příklad lze uvést definici faktoriálu

fact (x) = if (x>0, x*fact(x-1), 1)

a = fact(6)

Hodnoty proměnných se počítají, až při výstupu na obrazovku, tedy jejich definici nelze založit na předchozí hodnotě (např. a=a+2). V tomto případě překladač pozná „přímou“ rekurzi a definici nepoužije. V případě definice faktoriálu výše ovšem pouze upozorní na možnost zacyklení, protože to lze správnou podmínkou zastavit. Výstup na obrazovku se provádí příkazem

write(promenna, „nebo nějaký text“)

Vypočtené hodnoty proměnných se cachují a platnost cache se nastavuje dynamicky podle změny závislostí a redefinicí závislých proměnných/funkcí. Platné cache hodnoty se v logu dynamicky zvýrazňují. Čtení ze vstupu se provádí zabudouvanou funkcí (z hlediska jazyka spíš klíčového slova) read, např.

a = read(„test výzvy ke vstupu“)

V tomto případě se read zavolá při každém vyhodnocení proměnné a (pokud už není v cache).

GUI je vytvořeno na frameworku Qt 4, opensource verzi, program je tudíž uvolněn pod GNU GPL. Pro formátování výstupu lze použít CSS, vzorový soubor je přiložen. MiniMath lze jednoduše rozšířit o další zabudované funkce, které nelze zadefinovat algebraickými operacemi. Ve zdrojovém kódu existuje příslušná abstraktní třída na zabudované funkce/konstanty. Pro lepší čitelnost doporučuji vygenerovat dokumentaci pomocí nástroje Doxygen.

Doufám, že aspoň někomu se můj prográmek bude líbit. Kompletní distribuci najdete na stránce projektu MiniMath.

// Na ČVUT vzniká Fakulta informatiky

Ano, titulek je správně. V pondělí 31.3. byl oficiálně zveřejněn projekt založení nové fakulty Českého vysokého učení technického v Praze. Na přípravě se podílejí především pracovníci nynější Katedry počítačů FEL ČVUT. Prozatím není nic jisté, nicméně v případě úspěchu projektu by nová Fakulta informatiky měla otevřít brány počínaje akademickým rokem 2009/10.

Její vznik můžete podpořit svým podpisem zde.

// Group policies - nastavení vyhnané do extrému

Dneska jsme na hodině Administrace Windows mimo jiné zkoumali možnosti nastavení lokálních group policies. Jak to i může dopadnout, ilustruje následující screen. Tento paskvil dostanete, když na Windows Serveru 2003 zakážete všechny karty dialogu Display properties (v české verzi Zobrazení - vlastnosti, prostě tam, co se mění tapeta, rozlišení a spol.). Nutno poznamenat, že žádný z pozůstalých prvků není funkční.

Obrazovka

// Také vám přišel "varovný" email?

Teprve podruhé v životě mi přišel phishingový mail (kulaté číslo, což?). První byl kdysi dávno a vydával se za Ebay. Byl hezky provedený, ale mělo to háček, žádný účet jsem tam nikdy neměl.

Až dnes dorazil onen varovný email jakoby od ČS, tj. ten druhý v sérii, který již před několika dny anoncovala spousta sdělovacích prostředků (z mojí RSS čtečky třeba Computerworld nebo Technet, ale bylo to určitě i v televizi a hromadě denního tisku). Takže jsem byl potěšen, že tentokrát na mě nezapomněli :-). Nicméně Thunderbird ihned odhalil, že link odkazuje úplně na jinou stránku, a email označil za podvod. Zajímavé je také to, že měl mail v hlavičce kódování windows-1251 …

Email v Thunderbirdu

Email v Thunderbirdu

Ani Firefox nezůstal pozadu a při přechodu na podezřelou stránku umístěnou na cizím webu mě upozornil (předpokládám, že by to udělal i jiný prohlížeč, i ten dočasně nejrozšířenější). Do funkce této detekce nevidím, takže netuším, zda to porovnává s nějakou databází (tudíž bych měl vlastně „kliku“, že mi přišel mail až teď a někdo web zavedl do databáze), nebo má nějaký sofistikovaný algoritmus, popřípadě křišťálovou kouli. Z hlediska účelu oklamat lidi je však úsměvné, že je stránka neobvykle napůl v angličtině, méně viditelná je absence diakritiky nad některými českými znaky, ale hlavně je pod přihlašovacími údaji do internetbankingu ještě nelogicky požadován PIN od platební karty…

Upozornění ve Firefoxu

Upozornění ve Firefoxu

Všechny banky, které jsou tímto čas od času postiženy, neustále opakují, že nikdy nekontaktují zákazníky emailem ohledně bezpečnostních záležitostí. Takže obrana je jednoduchá, emaily ignorujte, na odkazy neklikejte a pokud nejste sběratel, s klidem v duši je mažte.

// Nové výtvory

PhotoBase

PhotoBase

Konečně jsem se donutil k tomu, abych dopiloval a uvolnil první várku mých výtvorů z nedávné doby. Ty kódy existují už několik měsíců, jen jsem se pořád neměl k tomu je dokopat do nějaké rozumné formy a samozřejmě dopsat vhodný readme.txt soubor ;-)

Součástí „první“ várky je tedy jednoduchá webová galerie fotek, kterou jsem již dal do provozu i zde (odkaz). Je opravdu jednoduchá, takže zázraky typu Coppermine Photo Gallery nečekejte. Nicméně díky tomu zase běhá velmi svižně i na slabších strojích. A hlavně, hodlám na ní ještě něco tvořit.

browser statistics

Statistiky browserů

Druhým výplodem, spíš výplůdkem je generátor koláčových grafů na základě statistik získaných pomocí systému BBClone. Vykresluje TOP10 statistiky návštěvnosti (browsery, operační systémy, navštívené stránky a hledaná klíčová slova). Obrázek ukazuje návštěvnost podle browserů na tomto webu.

Více o obou aplikacích v sekci Projekty.