Jak jsem si koupil MacBook

November 23rd, 2008

… aneb mé zkušenosti po dvou letech.


Read the rest of this entry »

3) DLR - Parser

September 29th, 2008

Parser je velice důležitá část kompilátoru. Jeho úkolem je sestavit abstract syntax tree (AST) z tokenů vygenerovaných scannerem. Jak na to si ukážeme v tomto díle.
Read the rest of this entry »

2) DLR - Scanner

September 9th, 2008

Na konci první kapitoly byla zběžně popsána běžná architektura kompilátorů. Ta se většinou skládá ze tří částí - scanner, parser a generátor CILu v případě .NET jazyka. Nicméně kompilátor postavený na DLR se částečně liší, namísto CILu je generován DLR abstract syntax tree (DLR AST).

Read the rest of this entry »

1) DLR - Úvod do implementace .NET jazyků

August 14th, 2008

english version >
Tento tutoriál je zaměřen na vývoj vlastního programovacího jazyka na platformě .NET s použitím nového frameworku Dynamic Language Runtime (DLR) od Microsoftu. DLR je zaměřený zejména na implementaci dynamických jazyků, které implementovat na .NETu bylo problematické a DLR poskytuje řadu funkcí, které vývoj dynamických jazyků zjednoduší.
Read the rest of this entry »

Jak na Bluetooth v .NET Compact Frameworku

May 22nd, 2008

Bluetooth je bezdrátová technologie široce využívaná pro bezdrátový přenos dat zejména v malých zařízení jako jsou například PDA. Pro uživatele není většinou žádný problém Bluetooth používat, ale z pohledu vývojáře se může stát vývoj aplikace využívající Bluetooth celkem flustrující záležitostí.
Read the rest of this entry »

WPF - pokročilé techniky DataBindingu

April 4th, 2008

V seriálu o Windows Presentation Foundation přibyl nový díl zaměřený na pokročilé techniky DataBindingu. Vysvětleny jsou především:

  • Validátory
    • jak například ošetřit to, aby vám uživatel do TextBoxu nabindovaného na vlastnost typu int nevložil text namísto čísla?
    • jak si vytvořit vlastní validátor, který rozhodne zda zadaná hodnota je či není validní?
    • jakým způsobem upozornit uživatele v případě, když zadaná hodnota není validní?
  • Konvertory - jak vytvořit a používat konvertory v případě, kdy potřebujete nabindovat dvě vlastnosti rozdílného datového typu

Nový díl naleznete na http://cs.wpfstart.com/?q=tutorial&qq=6 [^].

Tahle soutež stojí za to

April 2nd, 2008

Dnes mě v RSS překvapila zpráva o celkem netradičně pojaté soutěži, kterou Microsoft pořádá příští měsíc. Jedná se o 24 hodinový soutěžní maratón v programování.

Program soutěže vypadá víc než dobře, během celého dne proběhnou 3 kola vždy po jedné hodině, kde musí soutěžní týmy vytvořit mini-webovou aplikaci podle zadaných úkolů (každou hodinu jeden) a to za použítí ASP.NET 3.5, SilverLightu a Windows Live Services. Čas mezi jednotlivými kolami je vyplněn cool aktivitami jako pařby Halo 3 na 360ce nebo hraním fotbálku. Takové soutěže se mě určitě líbí a hned bych se přihlásil, kdybych měl alespoň další 2 lidi do týmu … a taky uměl SilverLight a ASP.NET … a ještě k tomu bydlel v ČR…

Každopádně Microsoft by měl takovýchto soutěží pořádat víc, jen bych možná do 24 hodin dal víc programování, alespoň 2x po 3 hodinách a nebál bych se udělat takovou soutěž na lokální úrovni, jedná se určitě o aktivitu, která dobře zpropagovaná může zaujmout hodně zájemců.

Více o této soutěži naleznete zde http://www.microsoft.com/cze/wintheweb/default.mspx ^

Jak ze třídy udělat pole - C# indexery

April 1st, 2008

Možná jeden z méně známých, nicméně užitečných konceptů v C# jsou tzv. indexery. Indexer (někdy také označován jako smart array) nám umožní zacházet s objektem třídy jako kdyby se jednalo o pole.

Class c = new Class();
c.Foo();
c[
0] = "abc";
c[
1] = "def";

Read the rest of this entry »

Unit testy událostí

February 22nd, 2008

go to english version »

Možná jste již byli v situaci, kdy jste potřebovali veřejnou událost (či události) na nějaké třídě testovat unit testy. Problém je, jak pozastavit test na určitou dobu kdy jsou očekávána volání patřičné události a také jak tyto volání logovat, aby unit test mohl porovnat zda všechna volání proběhla s očekávanými hodnotami a pořadí.
Zde je mé jednoduché řešení…
Read the rest of this entry »

Foldr funkce v C#

February 22nd, 2008

go to english version »

Znáte Foldr? Foldr je funkce, kterou najdeme ve většině funkcionálních jazycích jako je například Haskell (Foldr) či F# (List.Fold_r). Jedná se o velice užitečnou funkci pokud potřebujete zpracovat jednotlivé prvky pole a vrátit jako jeden výsledek (ne pole). Takovým příkladem by mohlo být například sečtení všech čísel v poli.

Foldr není součástí .NET frameworku! Implementaci této funkce najdete na konci tohoto článku.

Funkce Foldr má 3 parametry, první je zpracovávané pole (list), pak defaultní hodnota (def), která je použita jako poslední prvek pole a funkce (fun), která je volána na každé dva sousední prvky pole.

forma:          Foldr ( list, def, fun )

Jak to tedy funguje? Řekněme, že potřebujete sečíst všechna čísla v poli…

Teorie

forma:          Foldr (  list,                 def,  fun )
kód:            Foldr ( { 1,   2,   3,   4 },  0,    + )
sečtení:                  1 + (2 + (3 + (4 +   0)))      = 10

Read the rest of this entry »

« Previous Entries