.NET i takie tam

Archive for Październik 2007

Another „How Do I” Presentations

leave a comment »

Written by sakowicz

Październik 30, 2007 at 1:01 pm

Napisane w Screencasts

Nowy laptopik

leave a comment »

Dwa dni temu zamówiłem sobie nową zabawkę (to nie dla mnie tylko dla dziecka we mnie ;). Pisałem już wcześniej o moich dylematach związanych z tym zakupem, z jednej strony parametry miały być na tyle dobre, aby ten komputer posłużył mi przez następne 3 lata z drugiej rozsądek nakazywał coś w ‚przystępnej’ cenie. Moim pierwszym faworytem był 15″ Apple Macbook Pro – bardzo dobre parametry, super design, ale miał wady po pierwsze wysoka cena, po drugie po co mi Macbook skoro i tak głównym systemem na którym pracuje jest Windows, a przesiadka, jak na razie, nie wchodzi w grę? Fakt można skorzystać z wirtualizacji (Parallels, VMWare) i mieć dostępne dobrodziejstwa obu systemów w tym samym czasie. Jednak wizja ciągłej pracy na maszynie wirtualnej jakoś mnie nie pociąga. Następnie bawiłem się myślą o notebooku Alienware Area-51 m9750 – Święty Gral wszystkich mobilnych graczy. Tego laptopa można sobie dowolnie skonfigurować – chcesz mieć matryce RAID w laptopie? – nie ma problemu. Oczywistym minusem była cena, następną rzeczą która studziła nieco mój zapał – były rozmiary. To jest laptop 17″ i trzeba mu przyznać stosunek mocy do gabarytów jest bardzo dobry – ale ja wolałbym coś co mogę spokojnie schować do torby i przenieść. Aha należy wspomnieć też, że raczej nie popracujemy sobie na tym laptopie bez zewnętrznego zasilania, a zasilacz do niego to prawdziwa cegła! Więc na co w końcu padł mój wybór? – Wybrałem model luksusowy – Asus Lamborghini VX2S. Podstawowe parametry to:

  • 2.2 Ghz Intel Centrino Pro (Santa Rosa)
  • NVIDIA GeForce 8600M GT (512 RAM)
  • 2 GB RAM
  • 15.4″ 1680 x 1050 ( WSXGA+ )
  • 200 GB 7200 rpm

Teraz trochę się z nim pobawię a potem może coś jeszcze o nim napiszę …

Written by sakowicz

Październik 26, 2007 at 2:44 pm

Napisane w Misc

Keyword yield

leave a comment »

I know .NET 2.0 was introduced some time ago, so I should be familiar with most of its features. But form time to time it surprises me with something that I didn’t know about or I knew but I wasn’t realising how cool it really was. Recently I discovered contextual keyword – yield. Contextual keyword is again feature of .NET 2.0 and simply it means that certain word can be a name of variable and it become keyword only in certain cases. The yield word became keyword only when we put it before return. And what it does? Well it allow us to implement enumerable class in terms on another class. For example, we have classes:

public class Person
{
    private string _name;

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

    public Person()
    {
    }

    public Person(string name)
    {
        _name = name;
    }
}

public class Persons
{
    private Person[] _persons = new Person[4];

    public Persons()
    {
        _persons[0] = new Person("Adam");
        _persons[1] = new Person("Marcin");
        _persons[2] = new Person("Tomasz");
        _persons[3] = new Person("Filip");
    }
}

And we want to do something like this:

static void Main(string[] args)
{
    foreach (Person p in new Persons())
    {
        Console.WriteLine(p.Name);
    }
}

To achieve that we have to implement GetEnumerator method in the Persons class. We could do this like that:

public IEnumerator GetEnumerator()
{
    return _persons.GetEnumerator();
}

But we would miss whole point of this example. So we will take longer route and create PersonEnumerator class:

public class PersonEnumerator: IEnumerator
{
    private int _position = -1;
    private Person[] _persons;

    public PersonEnumerator(Person[] persons)
    {
        _persons = persons;
    }

    public object Current
    {
        get {
            return _persons[_position];
        }
    }

    public bool MoveNext()
    {
        _position += 1;
        return (_position < _persons.Length);
    }

    public void Reset()
    {
        _position = -1;
    }
}

Right now implementation of GetEnumerator method in the Persons class could look like this:

public IEnumerator GetEnumerator()
{
     return new PersonEnumerator(_persons);
}

So it is one solution but why create whole special class if keyword yield can generate it for us in CLR? Just delete the PersonEnumerator we don’t need it anymore and change the Persons.GetEnumerator method to something like this:

public IEnumerator GetEnumerator()
{
    foreach (Person p in _persons)
    {
        yield return p;
    }
}

Neat isn’t it?

Written by sakowicz

Październik 23, 2007 at 7:51 pm

Napisane w .NET

Google Docs goes mobile.

leave a comment »

[EN]
I’ve been using Google for keeping notes for ages. At first I was using Google Notebook and it was fitting for purpose. But then Google Docs came out, and I must admit it was great! Right now is even better, because Google is continuously improving it (not as a bit forgotten Google Notebook). For example now Google Docs is available on mobile devices. We only have to use this URL: http://docs.google.com/m.

[PL]
Od czasu gdy Google uruchomił usługę przechowywania notatek, regularnie z niej korzystam. Na początku było to Google Notebook i spełniał on swoje zadanie. Następnie ukazało się Google Docs i muszę przyznać, że w swej pierwszej dosłownie było świetne. Teraz jest jeszcze lepsze, dzięki temu, że Google cały prowadzi nad nim prace (nie tak jak nad nieco zapomnianym Google Notebook). Przykładowo, najnowszym dodatkiem jest obsługa Google Docs na urządzeniach mobilnych. Aby skorzystać z tej możliwości musimy jedynie użyć tego URL’a: http://docs.google.com/m.

Google Docs Mobile:

Google Docs main Google Docs document

Written by sakowicz

Październik 20, 2007 at 6:29 pm

Napisane w Misc, Tools

FileBrowser take two.

leave a comment »

Some time ago I’ve posted about FileBrowser control I created. The biggest advantage of this control is that it doesn’t have the limitations of standard DocumentList control. For example it allows you to browse for any folder on your device – not only ‚My Documents’ folder. The last couple of days I’ve been doing some work to improve performance of this control and I’ve fixed some bugs like problem with icon sizes on a devices with VGA display. You can download this control from here full source code is included.

Written by sakowicz

Październik 17, 2007 at 11:00 am

Napisane w .NET CF

Getting Started with Expression Blend

leave a comment »

Serwis Lynda.com udostępnił wideo tutorial dotyczący Windows Presentation Foundation (WPF) i programu Expression Blend. Całość dostępna jest tutaj.

Written by sakowicz

Październik 16, 2007 at 1:02 pm

Napisane w Screencasts

.NET Tip of The Day

leave a comment »

W ostatnich dniach nawał pracy po prostu mnie przytłacza, wdrożenie i te sprawy. Tym samym ciężko znaleźć wolną chwilę, żeby usiąść i napisać jakiegoś posta, a na brak tematów narzekać nie mogę. Pomimo ograniczonego czasu 😉 działając w sieci znalazłem ciekawą stronę dotNetTipofTheDay.org i jak nazwa wskazuje publikowane są tam krótkie, ale treściwe, tips & tricks dotyczące wszystkiego co jest związane z platformą .NET.

Written by sakowicz

Październik 15, 2007 at 9:48 am

Napisane w .NET, Uncategorized