Azure Blob Storage .vs µTorrent
Sunday, May 29, 2011 4:47 PM

Jedan moj poznanik je jednog dana pokušao da pokrene Windows Azure Storage Emulator, ali je Blob Storage uporno odbijao da se pokrene sa mističnom porukom “The process cannot access the file because it is used by another process”.

Ispostavilo se da je problem u µTorrent aplikaciji koja je zauzela port 10000. Naravoučenije …

poz,

ZBL

by zmajcek
FP#TEST
Saturday, May 28, 2011 3:39 PM

U subotu 28.05.2011 održan je završni test kursa “Funkcionalno programiranje”.

Ovde možete naći postavke i rešenja zadataka.

O rezultatima će polaznici biti obavešteni naknadno putem mail-a.

pozz
ZBL

by zmajcek
FP#9
Saturday, May 28, 2011 3:35 PM

U subotu 28.05.2011 održano je deveto predavanje na temu “Funkcionalno programiranje”.

Prikazan je I objašnjen primer izrade Windows Forms aplikacije u programskom jeziku F#. Na kraju je rađen završni test.

Ovde možete naći kod.

pozz
ZBL

by zmajcek
FP#8
Monday, May 23, 2011 8:15 AM

U subotu 21.05.2011 održano je osmo predavanje na temu “Funkcionalno programiranje”.

Obrađene su sledeće teme:

  • Reaktivno programiranje u F#-u
  • Reactive Extensions (Rx)

Ovde možete naći PPTX i kod.

pozz
ZBL

by zmajcek
.NET UG - Async CTP
Monday, May 16, 2011 8:25 PM

U četvrtak 12.05.2011 održano je majsko okupljanje .NET user grupe u Beogradu. Održao sam predavanje na temu “Visula Studio Async CTP”.

Na predavanju su prikazana dva aktuelna asinhrona programska modela APM i EAP, a potom i predstojeći C# 5 programski model.

Ovde možete naći PPTX i kod.

by zmajcek
FP#7
Monday, May 16, 2011 8:15 PM

U subotu 14.05.2011 održano je sedmo predavanje na temu “Funkcionalno programiranje”.

Obrađene su sledeće teme:

  • Sekvencni izrazi
  • Asinhrono programiranje
  • Prilagođeni izrazi (Computation expressions)

Ovde možete naći PPTX i kod.

pozz
ZBL

by zmajcek
FP#6
Saturday, April 23, 2011 8:13 AM

U subotu 16.04.2011 održano je šesto predavanje na temu “Funkcionalno programiranje”.

Obrađene su sledeće teme:

  • Tehnike keširanja
  • Primena “repne rekurzije”

Ovde možete naći PPTX i kod.

pozz
ZBL

by zmajcek
FP#5
Saturday, April 23, 2011 8:08 AM

U subotu 09.04.2011 održano je peto predavanje na temu “Funkcionalno programiranje”.

Obrađene su sledeće teme:

  • Spoj funkcionalnog i objektnog
  • Funkcionalne data centrične aplikacije
  • Objektno orijentisana organizacija
  • Funkcionalne biheviorističke aplikacije
  • Interfejsi
    • Implementacija interfejsa
    • Interfejs IDisposable
  • Klase
    • Indeksirana svojstva
    • Preklapanje operatora
  • Korišćenje F# biblioteka u C#'-u

Ovde možete naći PPTX i kod.

pozz
ZBL

by zmajcek
FP#4
Friday, April 8, 2011 1:06 AM

U subotu 02.04.2011 održano je četvrto predavanje na temu “Funkcionalno programiranje”.

Obrađene su sledeće teme:

  • Definisanje aliasa
  • Kompleksni tipovi
    • Tip podataka unija diskriminatora
    • Tip podataka opcija
    • Tip podataka slog
  • Strukturni patterni

Ovde možete naći PPTX i kod.

pozz
ZBL

by zmajcek
FP#3
Thursday, March 31, 2011 8:48 AM

U subotu 26.03.2011 održano je treće predavanje na temu “Funkcionalno programiranje”.

Obrađene su sledeće teme:

  • Funkcionalni literali
  • Parcijalna primena funkcije
  • Operatori
  • Ulančavanje poziva funkcija
  • Kompozicija funkcija
  • Rekurzivna funkcija
    • Međusobno rekurzivne funkcije

Ovde možete naći PPTX i kod.

pozz
ZBL

by zmajcek
FP#2
Wednesday, March 23, 2011 9:13 AM

U subotu 19.03.2011 održano je drugo predavanje na temu “Funkcionalno programiranje”.

Obrađene su sledeće teme:

  • Inferencija tipa u F# i C#-u
  • Implementacija nepromenljivih (immutable) tipova u C#-u
  • Funkcioanlni tipovi podataka, ntorka (tuple) i lista
  • Naredba match

Ovde možete naći PPTX i kod.

pozz
ZBL

by zmajcek
FP#1
Thursday, March 17, 2011 8:22 AM

U subotu 12.03.2011 održano je prvo od devet predavanja na temu funkcionalnog programiranja u .NET-u.

Ovde možete naći PPTX i kod.

Jelena će probati da obezbedi live streaming Smile

pozz
ZBL

by zmajcek
Time Bomb
Friday, February 4, 2011 12:31 AM

Ako ste dev i čitate ovo, sva je prilika da koristite .NET Reflector. Kompanija Red Gate  koja je 2008. godine otkupila ovaj softver od njegovog autora Lutz Roeder-a odlučila je da počne sa naplatom ovog softvera (zvanično saopštenje možete pročitati ovde).

Namera softverske kompanije da prodaje softver je normalna i očekivana  ALIIIIII …

U .NET Reflector je ugrađena vremenska bomba, koja će onemogućiti korisnicima da već “instaliranu” besplatnu verziju ovog softvera koriste posle 30.05.2011 !!!

Povlačenje licence stare verzije, predstavlja korak dalje u destabilizaciji poslovnih modela zasnovanih na besplatnom softveru ("free as in free beer" || "free as in free speech"), koja je načeta prelaskom određenog broja više ili manje značajnih biblioteka na AGPL licencu koja de facto onemogućava bilo kakvo komercijalno korišćenje datih biblioteka (kupovina licence je naravno opcija Nerd smile, a prethodne verzije biblioteka zadržavaju svoje licence Smile).

Dalji razvoj komercijalnog softvera na OSS modelu u mnogome zavisi od reakcija .NET zajednice na ovu vest …

Što se tiče .Net Reflectora, ako je za utehu nama koji ga koristimo, sva je prilika da Mono Community priprema odgovor, kao i JetBrains.

do čitanja

ZBL

by zmajcek | 2 comment(s)
Filed under: ,
ДевДејс ‘09
Saturday, May 23, 2009 1:28 AM

Као најгори од све деце smile_embaressed последњи качим на нет своју презу и демое са овогодишењег ДевДејс скупа.

Исти ја, иста моја тошиба овај пут са Њин7 оперативним системом и ништа није затајило што је љл. Но о инсталацији, миграцији и apgrejdu овог оперативног система самог на себе, као и о неким утисцима у неком наредном посту…

Ukratko, šta je bila tema moje preze. (Vaš browser je ok nego meni nije više zabavno da kucam ćirilicu). Ispričao sam sve, nešto malo o razvoju korisničkog interfejsa na .NET platformi.

Fokus WPF priče bio je na novim DataGrid i Ribbon kontrolama. O Silverlight-u malo priče i demonstracija DeepZoom tehnologije na primeru http://memorabilia.hardrock.com/ sajta.

Office i SharePoint development sam neelegantno zaobišao, o Azureu su pričali Zlaja i Paki pa sam to izbacio. O LiveMeshu smo pričali kolega Zoki i ja na WebFu2 eventu, tako da nisam hteo da se ponavljam, a ni net nije radio najbolje, tako da …

Vezano za (znači) klasične (znači) web tehnologije dao sam kratak uvod u jQuery i ostatak prezentacije posvetio ASP.NET MVC Frameworku. Tu sam prikazao demo ( reusovan  i dobudžen sa PDC-a ) koji rešava jednostavan problem prikaza i filtriranja tabele na dva načina, čisto serverski i ajax.

Obzirom da je već/tek 1:38 AM idem da spavam.

pozz,

ZBL

by zmajcek | with no comments
zmajcek |> parallel |> Pattern for calling event handlers on UI thread when event fires on worker thread
Wednesday, January 7, 2009 8:24 PM

Recently I was working on a project that required parallel processing. Instead of using Task Parallel Library (TPL), I opt to make my own library (code). This library has very naive approach to task scheduling (without queue stealing technique) but it works smile_teeth.

I wanted it to have appealing API and to be compatible with Windows Apps thread model (which requires code that uses UI components to be executed on UI thread). Here is the code sample that illustrates this:

private void btnStart_Click(object sender, EventArgs e)
{
    ClearMessages();
    WriteMessage("ThreadId = {0}", getManagedThreadId());
    for (int j = 0; j < 20; j++)
    {
        //Create Task that multiplies input parameter by 2
//with pause caused by SpinWait var task = taskManager.Create<int, int>( i => { System.Threading.Thread.SpinWait(50000000); return i * 2; } , j); //When task is completed call WriteMessage method that
// adds line with text to the TextBox
task.Completed += delegate { WriteMessage("ThreadId = {0}; Result = {1}",
getManagedThreadId()
, task.Result); }; } } //This method HAS TO execute on UI thread in order to work private void WriteMessage(string format, params object[] arg) { var lines = txtDisplay.Lines.ToList(); lines.Add(string.Format(format, arg)); txtDisplay.Lines = lines.ToArray(); }

 

When new task is created, task scheduler puts it in to queue to wait for execution. Task executes on worker thread and fires Completed event on completion. And that's the tricky part. Completed event has to fire on UI thread so that you can use windows controls in the event handler to inform user about execution result.

Here is how I did that.

private AsyncOperation asyncOperation;

private SendOrPostCallback completedReporter;
public event EventHandler Completed;
private void CompletedReported(object o)
{
    Done = true;
    if (Completed != null)
    {
        Completed(this, new EventArgs());
    }
}

private SendOrPostCallback progressReporter;
public event ProgressChangedEventHandler ProgressChanged;
public void ProgressChangedReported(object o)
{
    if (ProgressChanged != null)
    {
        ProgressChanged(this, (ProgressChangedEventArgs)o);
    }
} 

I declared asyncOperation variable once and for each event that I wanted to fire on UI thread I declared variable of type SendOrPostCallback (beside standard event and event firing routine).

internal Task(Func<T, TResult> func, T data)
{
    Func = func;
    Data = data;
    Done = false;
    asyncOperation = AsyncOperationManager.CreateOperation(null);
    completedReporter = new SendOrPostCallback(CompletedReported);
    progressReporter = new SendOrPostCallback(ProgressChangedReported);
}

 

Then I instantiated asyncOperation variable and SendOrPostCallback variables associating them with appropriate event firing routines.

Now I could easily fire events on UI thread. Here is the code for Execute method that executes given task and fires Completed event:

internal override void Execute()
{
    _result = Func(Data);
    if (asyncOperation != null)
    {
        asyncOperation.Post(completedReporter, null);
    }
    else
    {
        completedReporter(null);
    }
}

 

Please note, that in this case, code execution on worker thread continues when the event is fired on the UI thread, WITHOUT WAITING for associated event handlers to complete execution on UI thread.

Till next reading,

ZBL

More Posts Next page »