Compact Framework Profiler

maj 12, 2008 by sakowicz

Firma EQATEC wydała profiler przeznaczony dla aplikacji pisanych na .NET Compact Framework. Program umożliwia jedynie pomiar czasów wykonania poszczególnych procedur i nie podaje żadnych dodatkowych informacji jak np. stan pamięci.

Sama obsługa programu jest dziecinnie prosta, kompilujemy naszą aplikację a następnie wskazujemy profilerowi pliki które chcemy przebadać. Profiler dodaje co potrzebuje do naszych plików i możemy rozpocząć testowanie na naszym urządzeniu. Po zakończeniu, wyniki zapisywane są do pliku xml, którego zawartość możemy przeanalizować w specjalnej przeglądarce. Program udostępniany jest za darmo i dostępny jest tutaj.

Object Thinking

maj 7, 2008 by sakowicz

Będąc w Galway wysłuchałem prezentacji ‘Object Thinking’ Alan’a Deana. Początek prezentacji, trzeba to powiedzieć, był zniechęcający, pojawiło się sporo akademickich formalizmów, mających nikłe odzwierciedlenie w codziennym życiu. Przykładowo przydługawe, dywagacje o tym który z terminów jest właściwy: software developer czy software engineer? Dość mistrzu, nie po to tu przyszedłem, nawijaj o obiektach.

Jednak gdy doszliśmy do meritum prezentacji, przestałem ziewać i zacząłem słuchać . Otóż padła propozycja aby odrzucić dotychczasowy sposób myślenia o klasach jako o zbiorze pól i właściwości, no i metod ale o nich za chwilę, i zastąpić je koncepcją samo-opisywalności. Zgodnie z propozycją, najprostsza, definicja klasy wyglądała by następująco:

public class Customer : Dictionary<Uri, Object> {}

Ciekawe prawda, ot taki pojemnik na wszystko. Metody, rzecz jasna, pozostają a ich celem jest opisywanie intencji klasy.

Uzasadnieniem takiego podejścia do klas, jest twierdzenie, że zdecydowana większość modyfikacji jakie, jesteśmy zmuszeni wprowadzać, dotyczy właśnie sposobu reprezentacji danych. Oczywiście tego typu zmiany zwykle, powodują reakcję łańcuchową i pociąga modyfikacje w innych klasach. Więc po co się z tym męczyć? Umożliwmy przechowywanie dowolnych danych i wszyscy będą szczęśliwi.

No chyba niezupełnie. Nie twierdzę, że idea jest pozbawiona sensu, bo widzę logikę tego rozumowania, jednak dostrzegam również kilka potencjalnych problemów.

Przede wszystkim porzucamy strong typing, wszystko może być obiektem więc konieczna jest walidacja elementów przechowywanych w naszym pojemniku. Oczywiście bez jawnego określenia typów, intellisense Visual Studio, przestanie nas ostrzegać o potencjalnych problemach. Dalej z punktu widzenia bazy danych, tabele też miały by zostać tylko pojemnikami na dane? Żadnych kluczy, indeksów etc. ? Już widzę jak przystają na to administratorzy baz danych.

Kolejnym problemem może być czynnik ludzki i nie chodzi mi tu o mentalne reperkusje przestawienia się na nowy sposób myślenia, a czysto pragmatyczne podejście. Nie oszukujmy się większość ludzi jest leniwa, a programiści to już w szczególności ;) . Wcale nie jest takie nieprawdopodobne, że niektóre wartości mogą być przechowywane w klasie po kilka razy (szczególnie jeśli pracujemy w zespole). Co może prowadzić do wszelakiej maści problemów.

Jak na razie nie oceniam, czekam, aż tęższe głowy od mojej wypowiedzą się w tej sprawie. Może za jakiś czas pojawią się jakieś study case, projektów wykorzystujących to podejście. Poczekamy zobaczymy. Tymczasem dla zainteresowanych slajdy i przykłady z prezentacji są dostępne tutaj.

Dino Esposito w Dublinie

maj 7, 2008 by sakowicz

27 maja w hotelu Alexander, odbędzie się całodniowa sesja zatytułowana: ‘A pattern-oriented look at LINQ and LINQ-to-SQL from within Web and Silverlight applications‘. Poprowadzi ją nikt inny jak Dino Esposito. Więcej informacji na temat wydarzenia można znaleźć tutaj.

DDD Ireland, Galway

maj 5, 2008 by sakowicz

Właśnie wróciłem z słonecznego Galway gdzie odbyło się DDD Ireland. l24590832312_8558 Wrażenia, jak najbardziej pozytywne. Przeszło 20 prezentacji podzielonych na 6 ścieżek, Super spikerzy, dobra organizacja i co najważniejsze świetna atmosfera która panowała od rozpoczęcia części oficjalnej do aż, późnych godzin nocnych. Jak zwykle w tego typu przypadkach miałem dylemat, które z prezentacji wysłuchać. Wybrałem następujące:

  • Using Workflow Foundation in a Service Oriented Architecture - Maurice de Beijer
  • WCF In Action: Tips & Tricks - Christian Weyer & Dominick Baier
  • My Favourite Patterns - Gary Short
  • Object Thinking - Alan Dean

Muszę przyznać, że niezależnie w ilu prezentacjach uczestniczę zawsze znajduję coś, co zmusza mnie do przemyśleń i w efekcie do udoskonalenia mojego warsztatu. Połączmy to z możliwością uzyskania natychmiastowych odpowiedzi na wszelkie trapiące nas wątpliwości a otrzymamy odpowiedź – czemu warto uczestniczyć w tego typu wydarzeniach.

DeveloperDeveloperDeveloper! Day

kwiecień 18, 2008 by sakowicz

DDDIreland

Oj błędy, błędy

kwiecień 16, 2008 by sakowicz

Wniosek dnia dzisiejszego - najprostsze błędy, zwykle są najtrudniejsze do znalezienia. I jeszcze jeden pisząc aplikacje rozproszone warto przemyśleć strategię operowania typami związanymi z datą/czasem.

Oto jak pobrać datę & czas z SQL Server’a za pomocą LINQ:

[Function(Name = "GetDate", IsComposable = true)]
public System.DateTime GetServerDate()
{
return ((System.DateTime)
(this.ExecuteMethodCall(this, ((MethodInfo)
(MethodInfo.GetCurrentMethod()))).ReturnValue));
}

Włochy 2008

kwiecień 15, 2008 by sakowicz

W niedzielę w nocy zawitałem z powrotem do Dublina. Spędziłem pięć dni w miejscu gdzie nie obowiązują przepisy ruchu drogowego, gdzie wciąż twardą ręką rządzi mafia a słowa takie jak pizza czy pasta nabierają całkiem nowego znaczenia. Wróciłem z państwa w państwie - Sycylii.


View Larger Map

Zwiedziłem Trapani, Palermo, Mondeo, Linguaglossa no i ma się rozumieć, obowiązkowo, Corleone. Widziałem Etnie - największym czynny wulkan Europy.

Zmęczony jednak niezmiernie zadowolony - powoli wracam do rzeczywistości.

Emulator & WM 6.1

kwiecień 6, 2008 by sakowicz

Microsoft udostępnił obraz systemu Windows Mobile 6.1 dla emulatorów. Jak na razie dostępna jest tylko wersja anglojęzyczna. Pliki do pobrania znajdują się tutaj.

Practices of an Agile Developer

kwiecień 2, 2008 by sakowicz

 

Serwis InfoQueue zamieścił interesującą prezentację odnośnie metodologii agile.

 

 

Summary

At NFJS Venkat Subramaniam, author with Andy Hunt of “Practices of an Agile Developer,” shared his pragmatic approach to some of the important technical and non-technical factors contributing to project success, including: coding, developer attitude, debugging, mentoring and feedback.

 

Bio

Venkat Subramaniam, founder of www.agiledeveloper.com, has trained and mentored over 3000 software developers internationally. He is a frequent conference speaker, a university lecturer, and teaches the Professional Software Developer series at Rice University. He is author of “.NET Gotchas” and coauthor with Andy Hunt of “Practices of an Agile Developer”.

 

 

Moją uwagę, szczególnie, przykuło jedno zdanie, które mniej więcej brzmiało tak: ‘Każdy (developer) powinien poświęcić dziennie minimum pół godziny na nauczenie się czegoś nowego.’. Co w tym takiego dziwnego - ano nic, może poza tym, że dokładnie to samo, do znudzenia, powtarzał mi mój tatko. ;)

 

Video & slajdy dostępne są tutaj.

Roczek

marzec 31, 2008 by sakowicz

 

Dziś mija rok, od chwili założenia tego bloga. Muszę przyznać, że czas ten zleciał, zdumiewająco szybko. Dopiero, co zastanawiałem się nad sensem tegoż przedsięwzięcia, a tu proszę pierwsza ‘rocznica’. Czas, więc na jakieś małe podsumowanie.

 

W sumie opublikowałem 175 postów (nie licząc tego), otrzymałem 130 komentarzy (aż tyle!?) i dorobiłem się 12 kategorii. Obecnie średnio dziennie odwiedza mnie ok. 120 osób, przy czym najlepszego dnia zaliczyłem 305 wejść na stronę. W sumie strona została wyświetlona ok. 29.000 razy, co daje mi ok. 80 wizyt dziennie. Dobrze, że wordpress.com nie zlicza także moich wejść, bo licznik wskazywałby teraz jakieś 50.000 ;)

 

Wyniki może nie są imponujące, ale też nie robiłem nic w kierunku popularyzacji bloga - pozostawiłem to naturalnemu biegowi rzeczy. Blog nie figuruje w żadnych katalogach, stronach społecznościowych nie korzystam też z serwisów typu digg czy wykop. Nie powiem, że nie zależy mi na ‘oglądalności’ no, bo przecież, w tym cały sens posiadania strony internetowej, niezależnie od jej charakteru. Jednak nie szukam, nazwijmy to ‘podkręcanej popularności’, chwilowych wizyt ludzi niezwiązanych/niezainteresowanych tematem. Wszak jest to blog o dość wąskiej (jak na informatykę) tematyce i do tegoż ‘wąskiego’ grona odbiorców są skierowane moje posty.

 

Z rzeczy, z które planuję, a nie mam czasu zrealizować jest zmiana silnika bloga z WordPress’a na BlogEngine.NET. Nie żebym miał jakieś problemy z wordpress’em, ale PHP nie ma dla mnie większego sensu i wolałbym być bliżej platformy .NET. Więc jeśli zauważycie jakieś drastyczne zmiany w wyglądzie strony, to znaczy, że w ostatnim czasie się potwornie nudziłem ;)

 

Ot, miało być króciutko, a wyszło tak jak widzicie. Dzięki wszystkim za obecność na blogu za komentarze i maile. Na koniec muszę sam sobie pogratulować :) za wytrwałości i świadomie przyznać, że nie sądziłem, że ten ‘eksperyment’ przetrwa i będzie miał się dobrze!