piątek, 25 kwietnia 2008

Pytanie

Co zrobić, gdy musisz wyprasować parę rzeczy, a gdy tylko zaczynasz prasować, pies się wścieka i robi taki jazgot, że nie wiesz, czy zaraz nie zlecą się sąsiedzi ze skargą?

Odpowiedź A:
Bierzesz psa na jedną rękę i prasujesz drugą.

Odpowiedź B:
Bierzesz krzesło. Obniżasz deskę do prasowania. Sadzasz sobie psa na kolanach i prasujesz na siedząco.

[.....]
Chyba mimo wszystko polecam wariant B. Wprawdzie nie lubię prasować na siedząco (wczoraj był pierwszy raz :/ ), ale jedną ręką poradziłam sobie jeszcze ze spodniami. Co do koszul, nie ma mowy....

A pies był po prostu zazdrosny o żelazko :>

czwartek, 24 kwietnia 2008

Dawno temu...

...pisałam ostatniego posta. Ale cóż! Bywa i tak.
Od kwietnia poszłam na praktykę do kancelarii, w której już kiedyś byłam. I już po dwóch dniach kolega, który był u nich na stażu (czyt. praktyce ciut płatnej), zapropował, bym wskoczyła na jego miejsce. On już nie miał czasu, by dłużej zostać, bo musiał się zabrać na serio za magisterkę. Tak więc od paru tygodni pracuję sobie na pół etatu, poniekąd w branży. Tzn. dużo jest pracy biurowej, ale coś merytorycznego też się trafia. I w ten sposób mam malutki  wkład do naszego domowego budżetu.
W sumie ja też mam pracę mgr do napisania, więc tak dziubię po troszku, jak mam chwilę.. Może się uda już coś zanieść do promotora w przyszłym tygodniu. Trzymajcie kciuki!
Poza tym zabraliśmy się z powrotem do tańczenia. I coraz więcej radości nam to sprawia :) I widać już malutkie efekty dwumiesięcznych ćwiczeń. Również na wadze ;) (dokonała metoda - polecam).
Ach, no i wreszcie odbyła się u nas (chyba już ostatnia) parapetówa. Zdjęcia są, choć nie wiem, czy niektórzy by mnie nie udusili, gdybym je tu wrzuciła :D Twister w spódnicy bywa naprawdę ..urokliwy!
I nie wiem, czy wiecie, ale wiosna już na całego i chętnie poszłabym na spacer, a tak muszę wracać do pisania. Ale - ponieważ Piotrek imprezuje - to mu przynajmniej piwo z lodówki podwędzę..

wtorek, 8 kwietnia 2008

[C2C] Krótka relacja z konferencji

W sobotę byłem na konferencji C2C. Była ona o tyle wyjątkowa, że była organizowana przez różne Communities związane z .NET i SQL Server i była przez znaczona dla różnych Communities (stąd nazwa C2C). Były dwie ścieżki konferencji: .NET i SQL. Ja brałem udział w ścieżce .NET. Jeśli chodzi o moje ogólne wrażenie to jestem BARDZO zadowolony. Była to pierwsza konferencja, z tych na których byłem, która była pozbawiona marketingowego bełkotu, a każda prelekcja była na wysokim poziomie. To teraz po kolei:

Test Driven Development (TDD) w praktyce – Maciej Szczepański, Paweł Leśnikowski

Na początku było trochę nudnawo. Chłopcy pokazywali podstawy. Ale potem zaczęło się robić dużo ciekawiej. Pokazali w jaki sposób przy pomocy ReSharpera można proces tworzenia UnitTestów zgodnie z metodyką TDD przeprowadzać stosunkowo szybko. Następnie pokazali jak korzystać z framework'u RhinoMocks – czyli taka typowa obsługa Mock'ów. Nie wiem jak to się ma do innych takich frameworków – wyglądało dość naturalnie.

Ale przez połowę prezentacji pokazywali w jaki sposób zrealizować TDD w aplikacjach Webowych – czyli coś co dla mnie było raczej abstrakcją. Otóż da się – wystarczy umiejętnie i konsekwentnie stosować wzorzec MVP (Model-View-Presenter) i dzięki temu możemy łatwo uzyskać:

  • Dobry design aplikacji
  • Separation of Concerns poszczególnych warstw i obiektów
  • Stosunkowo obszerną możliwość stosowania testów

Lekką (bardzo) – bez żadnej w zasadzie logiki – warstwę UI.
Mi się MVP bardzo spodobało i zdecydowanie rozważę pracę zgodnie z tym wzorcem i stosowanie testów jednostkowych w Webie.


 

Debugging and Crash Dump Analysis of ASP.NET Web Sites – Martin Kulov

Martin pokazał ważną i przydatną rzecz. Najpierw omówił jakie są możliwości Debugging Tools for Windows, i które można kiedy stosować. Następnie przeprowadził ciekawe Case-Study do jakich "ciekawych" efektów może prowadzić np. błąd w module obsługującym błędy, i że Server.GetLastError może zwracać null. Konkretnie wyglądało to mniej więcej tak.
Mamy aplikację, z modułem którego zadaniem jest wyświetlanie obrazków z bazy danych, z własną obsługą błędów. W module tym źle jest zaimplementowany dostęp do cache'a (obrazki wczytywane są do cache byte-by-byte). Przy dużym obciążeniu aplikacji cache zostaje wyczyszczony jeszcze podczas ładowania obrazka i zostaje wygenerowany wyjątek. Wyjątek następnie jest przechwytywany przez własny moduł obsługi błędów i jest czyszczony przez Server.ClearErrors(). Jednak "poszło już" first-chance exception occured i w Global.asax w sekcji obsługi błędów (nasza obsługa) korzystamy zwykle z Server.GetLastError(), które zwraca null i po odwołaniu dostajemy NullReferenceException. Jedyny efekt jest taki, że u 1% klientów nie wyświetlają się obrazki. Koniec. Nie wiem co się stało, o co chodzi i dlaczego. Dodatkowo jest to aplikacja z prawdziwego zdażenia – działa produkcyjnie u klienta, który nie ma VisualStudio i nie możemy sobie tego łatwo zdebuggować.
Następnie Martin pokazał w jaki sposób wygenerować CrashDump dla naszego projektu i kolejno pokazał, że WinDbg jest narzędziem, z którego można naprawdę sensownie korzystać w krytycznych momentach. Przy wykorzystaniu tego narzędzia pokazał jak dojść gdzie konkretnie wystąpił błąd (wykonując kilka "magicznych" poleceń).


 

Wprowadzenie do Entity Framework – Jarek Kowalski

Tu było na początku trochę nudnawo.  I już się bałem, że tak będzie do końca, ale Jarek zaczął pokazywać po co nam EF, że nie będzie to kolejny zwykły OR-mapper. Pokazał dokładnie jak szerokie możliwości ma EF, jak ogólny będzie, po co ma być kolejny "standard" SQL (w założeniu ma być uniwersalny pomiędzy różnymi platformami baz danych). Dodatkowo pokazał po co nam EF skoro mamy LINQ to SQL (tego niestety nie pamiętam dokładnie, ale wiem, że to pokazywał).
Bardzo duży plus za to, że pokazał jak z tego korzystać – jak zoptymalizować, bo w "domyślnej" konfiguracji działa po prostu wolno. Więc jakie triki należy zastosować, żeby działało szybko.
Następnie długo i dokładnie odpowiadał na pytania – jeszcze po zakończeniu prelekcji.
W chwili obecnej jest już dostępna licencja GoLive. Release ma być około wakacji, a 3 miesiące po Release ma być dostęp dla innych Providerów. Podobno IBM ma już większość skończone. Najwięcej ma SyBase, a najbardziej z tyłu jest Oracle.
Co ciekawe będzie też wsparcie dla SQLce (pierwszy raz o tym słyszałem, ale o szczegółach za chwilę).


 

Understanding Goals and Features of the ASP.NET MVC Framework – Dino Esposito

Dino to podobno (ja nie widziałem) wielka gwiazda i guru w świecie ASP.NET. W każdym razie prezentacja, albo raczej show, które zrobił było warte tego co ludzie o nim mówili. Pokazał coś co jest teraz w wersji CTP czyli MVC Framework. Jak on sam określił to może szokować. I owszem szokowało. Zupełnie zmienia to obraz to tworzenie aplikacji webowych i podejście do tworzenia takich aplikacji. Bez ViewStatea, bez CodeBehind dla stron i kontrolek. Ogólnie ja po zobaczeniu tego miałem uczucie – WOW – w końcu MS zrobił coś, żeby ułatwić dobre zaprojektowanie aplikacji webowej. Ważne jest to, że to nie będzie rozszerzenie do WebForms. To będzie zupełnie inne podejście. I będą dwie drogi – albo WebForms, albo MVC i konsekwencje obu dróg.
Ale to jest na razie tylko CTP i jest w powijakach i podobno Dino w kuluarach powiedział, że "MVC sucks." – że to jest jeszcze za wcześnie, że jest nie przygotowane, że trzeba wiedzieć, że coś takiego istnieje, ale na razie się tym nie warto zajmować.


 

.NET Developer Toolbox A.D. 2008 – Marcin Celej, Michał Brzozowski

Chłopcy z KGD. NET pokazali typowe CaseStudy jak można stworzyć aplikację korzystając z dobrodziejstw .NET 3.5 łącząc wszystkie techniki. Stworzyli prototyp SmartClienta do sterowania portfelem inwestycyjnym. Wykorzystali tutaj WWF, WCF, połączyli te dwie technologie na dwa sposoby – najpierw WWF wykorzystujący dane pobrane przez serwis, potem WWF udostępniany przez WCF. Kolejno ładowanie danych do SQL Server przez LINQ to SQL. I tu mamy część "serwerową aplikacji".
Na naszym kliencie mamy bazę SQLce (Compact Edition), która jest aktualizowana Przez Framework Synchronization Serv. (czy jakoś tak) z dużą bazą danych. Tutaj parę słów – podobno ten Framework ma bardzo duże możliwości i można synchronizować w zasadzie wszystko z wszystkim, a nie tylko bazy danych. Następnie ładowanie danych do aplikacji klienckiej znowu przez LINQ to SQL i wyświetlanie w UI zrobionym w WPF. Ogólnie super. Przez 1h15 pokazali jak można łączyć nowe technologie w sensowny sposób.


 

Podsumowując - ogólne wrażenie – super, szczególne też. Tylko więcej takich konferencji.