fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
24 minut

Relacja z C2C (Communities to Communities) 2009


16.03.2009

Dzień: 14 marca 2009. Miejsce: Wydział Biologii UW. Wydarzenie: druga edycja konferencji Communities 2 Communities, czyli od społeczności dla społeczności. Zeszłoroczna, pierwsza edycja, okazała się strzałem w dziesiątkę i prawdziwą perełką wśród polskich wydarzeń technologicznych traktujących o produktach ze stajni Microsoftu. Poprzeczka zawieszona została bardzo wysoko. Czy tegoroczni organizatorzy “dali radę” – czyli strzał w 10 – czy może całkiem odwrotnie – czyli strzał w kolano? Poniżej moje wrażenia, zainteresowanych zapraszam do lektury.


Organizacja

Ilu miejsc organizatorzy by nie przewidzieli, i tak każda liczba okazałaby się niewystarczająca. Pierwszy (zamknięty, tylko dla grup pasjonackich) etap rejestracji trwał niespełna godzinę, po czym wyczerpały się wejściówki. W tyle samo czasu rozeszły się miejsca przewidziane na rejestrację otwartą. Zainteresowanie, jak widać, ogromne. Brawo za promocję?

Na początek kilka słów oburzenia… Tak wielkie parcie społeczności na udział w konferencji nie przeszkodził niemałej liczbie zarejestrowanych nie stawić się na miejscu (na szczęście nie chodzi o ścieżkę .NET). Może dobrze by było opublikować gdzieś publicznie listę takich bezczelnych “rejestracyjnych zapychaczy”? Zaiste podły to zwyczaj – rejestrować się gdzie popadnie, zajmować miejsce innym potencjalnym uczestnikom, a następnie olać sprawę i nie przyjść. T-f-u. [koniec kilku słów oburzenia]

Gdzie można upchnąć tylu zainteresowanych “geeków”? Większość konferencji tego typu (o ile skala wydarzenia na to pozwala) ma miejsce w warszawskiej siedzibie Microsoftu. Tym razem zdecydowano się na uczelnię – Uniwersytet Warszawski. Dobrze to czy niedobrze… uczestnikom nie powinno to robić różnicy. Mi właściwie także różnicy nie robiło. Jedyne co mogę stwierdzić to fakt, że w MS w takie dni da się poczuć specyficzny “klimat” technologicznej imprezy. A na uczelni nie.

Kolejna kwestia, której nie sposób było nie zauważyć, to brak ciepłego posiłku w trakcie konferencji. Chyba kryzys daje się sponsorom we znaki:). Narzekać jednak nikt nie powinien – w końcu konferencja jest darmowa, a organizatorzy zapewnili kawę, herbatę i kanapki. Co i tak było “gestem” powyżej moich oczekiwań.

A jak samo “mięcho”, czyli sesje? Podzielono je na trzy ścieżki: .NET, SQL i ITPRO. Przyznać trzeba, że bardzo interesujące nazwiska pojawiły się we wszystkich trzech salach. Rok temu mieliśmy jedną prawdziwą gwiazdę – Dino Esposito. W tym roku z kolei, że wymienię tylko te najbardziej znane (przynajmniej dla mnie): Udi Dahan, Julia Lerman, Allan Mitchell, András Belokosztolszki… A to nie koniec prelegentów zagranicznych. Oprócz nich można było oczywiście posłuchać również naszych rodzimych prezenterów.
Ja przykleiłem się oczywiście do krzesła w sali .NETowej, inne tematy niespecjalnie mnie pociągały. Dlatego też moje dalsze spostrzeżenia tyczą się wyłącznie tego obszaru konferencji. Kończąc zatem obowiązkowe wspomnienie o nieistotnych kwestiach żarcia, lokalizacji itd przejdźmy do części właściwej.

Marek Byszewski – Tour de VSTS 2010

Ta sesja to dla mnie dość twardy orzech do… opisania. Zaczęło się bardzo obiecująco. Pierwsze minuty traktowały o tym “jakich tematów poruszać nie będziemy”. Tutaj Marek wspomniał o Parallel Extensions, usprawnieniach Garbage Collectora, ulepszeniach Visual Studio w kwestii programowania baz danych, Code Contracts… Jeżeli pomięto TAKIE tematy, to jak pasjonująca będzie dalsza część…?
No i niestety – okazało się, że “nowości w VS 2010” ograniczyły się do pewnych dodatków do TFSa. Moim zdaniem decyzja o prezentowaniu głównie takiej funkcjonalności nie była szczególnie szczęśliwa. Najpierw zmarnowaliśmy kilka minut na krótkie wprowadzenie do TFS. Obeznani z produktem nudzili się, bo już to znali, a nieznający nudzili się, bo niewiele mogli z tego wynieść. Następnie konieczna była walka z wersją CTP VS 2010 w celu pokazania procesu tworzenia nowego buildu, co również powodowało chęć ziewania. Potem zobaczyliśmy sposób zarządzania testami w nowym TFS i pracę z repozytorium kodu, co mimo kilku fajnych feature’ów (jak np. gated check-in) niestety nie wzbudziło zbytniego zainteresowania. Właściwie jedyny ciekawy element właściwej prezentacji to przedstawienie pojęcia ‘debugger historyczny’ – nowość, która pozwoli odtworzyć stan debuggowanej aplikacji z każdego dowolnego momentu od jej rozpoczęcia. Jeżeli tylko będzie działało to lepiej niż na wersji CTP (co do czego nie mam wątpliwości), to diagnozowanie błędów stanie się dużo prostsze.
Na koniec nadszedł czas na Q&A, czyli pytania i odpowiedzi. Te kilka minut ponownie mnie skonfundowały… z jednej strony cieszyłem się, że można posłuchać czegoś interesującego (zarówno pytania, jak i odpowiedzi były na wysokim poziomie), a z drugiej smuciłem, bo przecież cała sesja mogła wyglądać w ten sposób. Marek potrafi ciekawie i z detalami opowiadać o technologii i ma ogromną szczegółową wiedzę. Gdyby wybrał KTÓRYKOLWIEK z pominiętych aspektów nowego CLR/.NET/C#/VS, ocena byłaby z pewnością bardzo wysoka. A tak… wykładowa sala i ogólna atmosfera przyniosły mi na myśl uczelniane czasy, gdy z niecierpliwością oczekiwało się na koniec nudnych zajęć.

Ocena: 3/10 (wszystkie elementy oprócz ‘ocena ogólna sesji’ otrzymały dużo wyższe noty, więc gdyby trochę inny dobór materiału…).

Julia Lerman – My Favorite Entity Framework Tips & Tricks

Jakikolwiek dotnetowiec mający do czynienia z dostępem do baz danych musiał natknąć się kiedyś na nazwisko Julie Lerman. Jest to chyba postać numer jeden jeśli chodzi o ten obszar programowania. Mało tego, będąc dwa tygodnie temu na MVP Summit w Redmond na własne oczy widziałem z jakim szacunkiem zwraca się do niej zespół tworzący Entity Framework. Jakby tego było mało – niedawno wydana została napisana przez nią książka, właśnie na temat EF. Jednego można więc być pewnym – Julie wie o czym mówi:).
Dużego kontaktu z Entity Framework nie miałem – ot, poświęciłem kiedyś kilka godzin żeby mniej więcej wiedzieć co w trawie piszczy. Nastawiałem się więc na otrzymanie garści porad pomocnych dla programistów zaczynających przygodę z tym O/RMem. I co tu kryć, otrzymałem dokładnie to.
Porady dotyczyły kilku różnych aspektów wykorzystania tej biblioteki. Najbardziej potrzebne i praktyczne były wg mnie te dotyczące programowego dostępu do kluczy obcych. Pamiętajcie: jeżeli chcecie ustawić wartość klucza obcego w dziecku relacji, możecie to zrobić bez ciągnięcia z bazy obiektu rodzica! Nie jest to dostępne “wprost” z Intellisense, dlatego mogę się założyć, że w tysiącach rozwiązań na całym świecie “rodzice” wędrują niepotrzebnie pomiędzy serwerem aplikacyjnym a bazą danych. Z pewnością fajne było też zaprezentowanie możliwości języka Entity SQL (koncepcja bliźniacza z HQL w (n)Hibernate). Jak się okazuje – nie jesteśmy skazani na zapytanie wygenerowane z providera tłumaczącego LINQ To Entities na SQL, ale możemy własnoręcznie stuningować wybrane bloki dostępu do danych. A pomoże nam w tym aplikacja eSqlBlast. Kolejny dość ciekawy, choć zapewne znany wszystkim korzystającym z Entity Framework, element to klasa MetadataWorkspace. Jeśli przyjdzie mi się kiedyś na poważne zajmować EF, z pewnością będę o tym pamiętał.
Pozostałe ‘tricki’ nie były już tak interesujące i momentami ocierały się o “oczywistą oczywistość”. Przykładowo stworzenie pliku z własną definicją konstruktora dla partial class uważam za dość banalną czynność… ale z drugiej strony poziom sesji z założenia miał oscylować wokół ‘100’, więc się do tego przyczepić nie mogę.
Zdziwił mnie też trochę zachwyt nad prezentowana klasą “CommandExecutor”, która pozwala zebrać całą obsługę logowania zdarzeń czy wyjątków w jednym miejscu. Nie było to jednak nic specjalnie ‘fancy’ – żadnego AOP, żadnych delegatów… Zwykłe sekwencyjne wywoływanie metod. Zdziwiło mnie to na tyle, że napisałem dziś do Julie maila z propozycją ‘spimpowania’ tego rozwiązania, implementując przykład wykorzystujący lambdy (zgodnie ze sposobem opisanym tu). Może po prostu czegoś nie wyłapałem podczas sesji, w którym to przypadku wyjdę na przemądrzałego buca, ale co mi tam:).
Na szczególną uwagę zasługiwał zdecydowanie sposób prowadzenia sesji. Widać, że Julie to prawdziwa PRO. Żarcik, dialog, śmieszna fotka, anegdota… Słuchało się bardzo przyjemnie. Jestem niesamowicie zadowolony, że taka osoba zgodziła się przyjechać do Polski i poprowadzić dla nas prezentację.

Update: na szczęście nie okazałem się megabucem:) Julie sugestia się spodobała i ucięliśmy sobie miłą kilkumailową wieczorną pogawędkę.

Ocena: 7/10 (bardzo fajnie prowadzone i w większości przydatne porady, dla początkujących jak znalazł).

Piotr Leszczyński – Kolejny kontener Dependency Injection? NIE – dziękuję! Czyli o koncepcji meta-kontenera słów kilka

Tej sesji obawiałem się najbardziej. Z jednej strony – Piotrek miał bardzo udany występ na warszawskim Speaker Idolu. Z drugiej zaś – bałem się, że nie będąc turbodoświadczonym prelegentem zbyt wysoko sam sobie postawił poprzeczkę. Ogromnie się zdumiałem, gdy okazało się, że moje obawy były bezpodstawne. Przez cały czas trwania sesji Piotrek doskonale panował nad przekazywanymi informacjami, odpowiednio modulował głosem, perfekcyjnie prowadził nas przez pojęcia takie jak Inversion Of Control, Service Locator i Dependency Injection. I choć czasami można było zauważyć lekkie zdenerwowanie, w niczym ono nie przeszkadzało. Zabawny wstęp zapowiadał ciekawą zawartość, i tak też się stało.
Piotrka zapowiedziano jako ‘prelegenta, którego wzorem jest Bartek Pampuch‘:). Muszę przyznać, że: po pierwsze, wzór wybrany niezwykle ambitnie; po drugie, jak tak dalej pójdzie, to uczeń z pewnością doścignie mistrza. Nieczęsto spotyka się prowadzących tak wzorowo przygotowanych do sesji, wykorzystujących i na żywo relacjonujących filmiki z nagranym procesem tworzenia kodu, co eliminuje literówki/zawieszenia/wywalenia VS i inne nieprzyjemne przygody. Aż miło popatrzeć i posłuchać. Ale dość o sztuce prowadzenia prezentacji, do meritum, do meritum.
Co do tematu sesji także miałem mieszane uczucia. Ot, chłopaki wymyślili mechanizm pozwalający podmieniać różne frameworki DI… i tyle. O czym tu mówić przez ponad godzinę? Okazało się, że jednak jest o czym. Prelegent wybrał najlepszą z możliwych dróg, czyli zaczęliśmy od przykładu obrazującego “co to jest Inversion Of Control i po co jest Inversion Of Control”. Posłuchać można było o filozofii loose coupling (luźnych powiązań między klasami/modułami), dlaczego to jest ‘fajne’, jak się do tego mają interfejsy i jak to wpływa na testowanie jednostkowe z wykorzystaniem mocków. Po takim nakreśleniu pewnych pojęć Piotrek przeprowadził nas przez proces refaktoryzacji prostego kodu tak, aby z kupy pomieszanych ze sobą klas przejść do architektury ‘loosely coupled’. Najpierw wyodrębniono interfejs definiujący wymaganą funkcjonalność i ręcznie dostarczono jego implementację, aby następnie zaprezentować koncepcje Service Locator i Dependency Injection. Z tych kilku minut można było wyciągnąć jeden bardzo ważny wniosek, który został następnie jasno i stanowczo stwierdzony przez prowadzącego: “w Inversion of Control najważniejsza jest IDEA, a nie IMPLEMENTACJA”. I chwała mu za to, miejmy nadzieję że choć kilka osób dzięki temu zwróci się w stronę pokazywanych mechanizmów.
Można by rzecz “chwila, to wszystko już było!”. Tak, to prawda. Mówił o tym Kuba Binkowski na wg.net, mówił o tym Bartek Pampuch na MTS, o IoC mówi się wszędzie od dawna. Jednak moim zdaniem – na ten temat mówić się powinno nadal, tego nigdy za wiele. Szczególnie jeśli mówi się w jasny, poprawny, zrozumiały sposób.
Dopiero pod koniec prezentacji przedstawione zostały założenia MetaKontenera. Bardzo podoba mi się pomysł promowania własnych rozwiązań w ten sposób. Stworzyć pewną koncepcję a następnie zaprezentować ją na konferencji? Git. Zauważyć się jednak dało, że publiczność dość sceptycznie podchodzi do zaproponowanego obejścia problemu wiązania się z konkretną implementacją DI. Ja osobiście – trzymam kciuki za tą inicjatywę, ale sam raczej nie zdecydowałbym się na jej wykorzystanie. Powód jest bardzo prosty – w zamian za uniezależnienie się od jednego konkretnego frameworku oddaję wszystkie jego zalety, ograniczając się jedynie do interfejsu zdefiniowanego przez meta-kontener. W tym przypadku nie ma oczywiście innej drogi niż znalezienie wspólnego dla wszystkich rozwiązań zbioru funkcjonalności, ale ten wspólny zbiór to (o ile dobrze zrozumiałem) po prostu wstrzyknięcie zależności przez konstruktor… Może właśnie dlatego autorzy inicjatywy Common Service Locator zatrzymali się na tym etapie i nie poszli krok dalej? Z sali padł trafny komentarz, że przecież zwykle w razie potrzeby zamiana Unity na Castle czy Ninject na Autofac tak czy siak nie wiąże się z ogromem pracy…
Ale moim zdaniem Piotrek i tak wyszedł z sesji Q&A obronną ręką, pomimo tego, że kilkakrotnie pojawiały się pytania wyjaśnione podczas prezentacji. Podał scenariusze, w których takie rozwiązanie ma sens. Podał powody, dla których razem z Szymonem stworzyli ten projekt. Dla mnie te uzasadnienia były wystarczające – zrozumiałem po co projekt powstał i jaki jest jego cel.

Ocena: 9/10 (za świetne prowadzenie sesji na bardzo ważne tematy – tak trzymać).

Ingo Rammer – Hardcore Production Debugging of .NET Applications

Rok temu Martin Kulov bardzo udanie opowiadał o debuggowaniu aplikacji ASP.NET. Sesja była ciekawa, ale wyszedłem z niej myśląc “całkiem fajny ten WinDbg, ale nigdy nie będę chciał używać czegoś tak skomplikowanego”. Teraz Ingo Rammer podjął temat ponownie, co zaowocowało myślami “co za potęga, nie mogę się doczekać możliwości wypróbowania tego w praktyce!” (oby to życzenie nie spełniło się jednak zbyt szybko;)…).
Tak zaawansowanego i w gruncie rzeczy monotonnego i nudnego tematu nie da się przedstawić w PORYWAJĄCY sposób. Tak myślałem do wczoraj. Ingo dosłownie PORWAŁ publiczność. Lekkość z jaką prowadził sesję, uśmiech z którym opowiadał anegdoty i dowcipy, luz i pewność z jaką odpowiadał na pytania na nowo zdefiniowały wielu osobom pojęcie “profesjonalna prezentacja”. Pakiet Debugging Tools for Windows wywołujący salwy szczerego śmiechu? Coś nieprawdopodobnego. Albo my jesteśmy szaleni albo Ingo jest mistrzem w swoim fachu.
Z dotychczasowego opisu jednak można odnieść mylne wrażenie, że pośmialiśmy się i tyle. Gott bewahre! W ciągu tych kilkudziesięciu minut otwarły mi się oczy na zupełnie nowe możliwości diagnozowania błędów, znajdowania ich źródeł, wykrywania zarobaczonego kodu i usuwania jego skutków! Z narzędziami takimi jak WinDbg, cds i gflags nie ma rzeczy niemożliwych. Przekonaliśmy się o tym obserwując jak Ingo odpala swoją spreparowaną na cele prezentacji aplikację zawierającą masę różnych, trudnych do wykrycia błędów.
Zmierzyliśmy się z kilkoma scenariuszami. Pierwszy, najprostszy, zakładał, że mamy nieograniczony dostęp do problematycznej maszyny i potrafimy odtworzyć błąd. Wówczas – keine phoblem – odpalamy aplikację w WinDbg, wpisujemy kilka komend (sxc clr, .loadby sos mscorwks, g), wywołujemy wyjątek i analizujemy aktualny stan programu (możemy wypisać wyjątek – !pe, podejrzeć aktualne wątki – !threads, przyjrzeć się zawartości stosu – !clrstack/!dumpstack -ee). Po wykryciu przyczyny błędu usuwamy ją i żyjemy długo i szczęśliwie. Inny scenariusz zakładał, że błąd pojawia sie “raz na jakiś czas”. Dzwoni do nas klient mówiąc “MAM TO TERAZ NA EKRANIE!” i jest to nasz jedyny kontakt z problemem. Rozwiązanie wcale nie jest trudne: każemy klientowi stworzyć memory dump (adplus.vbs -pn <nazwa_procesu> -hang/-crash), odbieramy go od niego i analizujemy jak normalną lokalną aplikację. Alternatywne podejście to zdalne podłączenie się WinDbg do tej aplikacji. W tym celu klient musi skorzystać z komendy cdb.exe /server:port <nazwa_procesu> i tyle – aplikacja jest udostępniona dla naszego WinDbg.
Dowiedzieliśmy się też o bardzo potężnym mechanizmie WinDbg, dostępnym pod komendą .ocommand. Bez wchodzenia w zbędne szczegóły, polecenie to daje nam możliwość sterowania procesem debuggowania poprzez wysyłanie poleceń z kodu .NET (System.Diagnostics.Trace.WriteLine()). Nauczyliśmy się również ustawiać breakpointy w działającym programie i reagować na interesujące nas zdarzenia, ignorując wszystkie pozostałe. Sweet.
Kolejnym bardzo interesującym punktem było debuggowanie uruchamiania usługi systemowej. Podpięcie się pod ten proces w normalny sposób graniczy z cudem – musielibyśmy mieć palce szybkie jak błyskawica. Z pomocą narzędzia GFlags możemy jednak “wstrzyknąć” się z naszym WinDbg przed samo uruchomienie usługi i podpiąć tam gdzie potrzebujemy. Funkcjonalność tą da się również wykorzystać w niecny sposób – Ingo zaprezentował nam jak na poziomie systemu przekierować wywołanie excel.exe na calc.exe. Śmiechu było co niemiara:).
Z czystym sumieniem mogę powiedzieć, że ta sesja to mistrzostwo świata. Zaprezentowanie takiego tematu w takim sposób wydawało mi się niemożliwością. Co prawda pod sam koniec zacząłem się już powoli gubić, ale… materiały będą dostępne do ściągnięcia, więc zawsze będzie można usystematyzować wiedzę we własnym zakresie.

Ocena: 10/10 (za milion przydatnych rad, pełen profesjonalizm i ubaw po pachy).

Udi Dahan – Avoid a Failed SOA – Business and Autonomous Components to the Rescue

Cóż… nie będę ukrywał, że gdyby na całym C2C miała być TYLKO TA JEDNA sesja, i nawet gdyby C2C było w innym mieście, to i tak bym pojechał. Udi to po prostu mega-mistrz architektury oprogramowania, ze świetnym blogiem, wielkim uznaniem na całym świecie i innowacyjnym spojrzeniem na nasz developerski światek. Szczególnie w kontekście SOA. Spodziewałem się naprawdę nie wiadomo czego. A co dostałem? Nie będę ukrywał – dostałem prawdziwą ucztę dla oczu i uszu, którym architektura oprogramowania nie jest pojęciem obcym i obojętnym.
Nad prezenterskim warsztatem Udiego rozwodzić się zbytnio nie będę – w końcu to stary scenowy wyga mający za sobą wystąpienia na takich imprezach jak chociażby TechEd. Wysokim poziomem prowadzenia sesji nie mógł mnie więc zaskoczyć… a jednak? Chyba jednak tak , ponieważ nie spodziewałem się Udiego parodiującego “wszystkowiedzącego konsultanta” głosem Yody z Gwiezdnych Wojen. Bezcenne.
A merytoryczna zawartość tego przedstawienia? Przyznać muszę, że te 70 minut minęło mi jak z bicza strzelił. Cały czas słuchałem z zapartym tchem (żeby nie powiedzieć “z zaparciem” czy “z otwartymi ustami”, bo jedno i drugie może się głupio skojarzyć), starając się nie uronić ni słowa. Od samego początku było wiadomo, że czeka nas coś niesamowitego. Proste stwierdzenie rzucone przy pierwszym slajdzie – “o loose coupling trzeba pamiętać nie tylko w design time, ale również w run time i od strony biznesowej” – mogło zaciekawić od razu. Jak to? O co mu chodzi?
Udi zabrał nas w podróż w czasie, skacząc pomiędzy najważniejszymi momentami wielkiego projektu, za który był odpowiedzialny przez ponad dwa lata. Przedstawiał nam różne kąty patrzenia na cel do wykonania: z perspektywy technologii, architektury i biznesu. Dokładnie opisał do czego może doprowadzić ślepe podążanie za wytycznymi Service Oriented Architecture, bez dogłębnej ich analizy i zrozumienia (chodziło o wytyczne z artykułu A Guide to Developing and Running Connected Systems with Indigo). Na własnej skórze przekonał się, że robienie czegoś “by the book” nie zawsze jest perfekcyjnym rozwiązaniem. Przedstawił nam scenariusz budowania niezliczonej liczby serwisów, nakładania warstwy na warstwę, wszystko zgodnie z wytycznymi SOA… i jak to się skończyło. Trzy główne przyczyny problemów – skończona liczba wątków w systemie, locki w bazie danych, zbyt mało pamięci – nie dały się pokonać tak banalnymi sposobami jak podwojenie liczby serwerów czy dorzucenie kolejnych gigabajtów RAMu. Nieumiejętne i źle rozumiane programowanie asynchroniczne tylko pogorszyło sprawę. Kolejna bardzo ważna uwaga: “technologia nie rozwiąże problemów architektonicznych”.
Następnie poświęciliśmy kilka minut na wypracowanie zupełnie innego spojrzenia na problem. A właściwie na całą filozofię usług, kontraktów, komunikacji pomiędzy komponentami. Udi postawił tezę, że wszystkiemu winna była synchroniczna komunikacja powodująca ‘tight coupling at runtime’. Wytłumaczenie rozwiązania (przebudowa systemu zgodnie z założeniami architektury pub/sub, publisher/subscriber) było “clue” całego wystąpienia. Należało przestawić się ze stanowiska “tell me” na “subscribe to events”, ze strategii “give me information NOW” na “cache data and update on change”, z myślenia w czasie teraźniejszym na myślenie w czasie przeszłym, z komunikowania “i want to do something” na oznajmianie “something happened”. Słuchanie Udiego wyłuszczającego główne założenia event-driven architecture było naprawdę pasjonujące.
Publiczność została zmuszona do przeanalizowania dotychczasowego pojmowania serwisów/usług/kontraktów. Czy na pewno usługa powinna być postrzegana jako zbiór czynności, które oferuje? Może lepiej, gdyby była definiowana zdarzeniami, jakie publikuje? Pozwoliłoby to zredukować synchroniczną komunikację i zagnieżdżone, cykliczne zależności pomiędzy komponentami…
I tak dalej, i tak dalej… Opisać tego nie sposób. Sam nie przetrawiłem jeszcze wszystkiego co usłyszałem, ale wiem jedno: ten koleś to naprawdę skarbnica wiedzy i cieszmy się i radujmy, że chce się tą wiedzą i doświadczeniem podzielić. Miazga.

Ocena: 10/10 (za wszystko, a w szczególności wymuszenie innego spojrzenia na SOA).

Artur Paluszyński – Interakcyjne sceny 3D w Windows Presentation Foundation

O tej sesji mam najmniej do napisania. Po pierwsze – spóźniłem się na nią 20 minut. Po drugie – nie spodziewałem się po niej niczego szczególnego. Jednak po kilku pierwszych minutach na sali zacząłem żałować i jednego i drugiego. Od Artura biła taka pewność siebie, że można stwierdzić: chłop wie o czym mówi. Ciągłe wstawki o DirectX czy OpenGL (o których nie mam pojęcia) oraz podawane bez chwili wahania odpowiedzi na wszystkie pytania padające z sali robiły wrażenie.
Możliwości WPF zaprezentowane na ekranie także mogły spowodować opad szczęki. Zwykły guzik owinięty na walcu, który dodatkowo można obrazać, przybliżać i oddalać? A to wszystko w kilku linijkach kodu? W jakich nam czasach przyszło żyć… i pomyśleć, że nadal istnieją takie brzydkie potwory jak okno “zarządzania” relacjami w Management Studio.
Niestety z powodu spóźnienia siedziałem na nie swoim miejscu, więc nie miałem na czym robić notatek. Nie potrafię zatem przytoczyć prezentowanych technologii i rozwiązań, jednak całość powinna być wkrótce dostępna do ściągnięcia ze strony konferencji.

Ocena: 8/10 (za szacunek, jaki prowadzący wzbudzał ogromem i szczegółowością swojej wiedzy).

“Side sessions”

Warto nadmienić, że po każdej sesji z zagranicznym prelegentem była możliwość dalszej dyskusji w specjalnie do tego przeznaczonej salce. Pierwsze 15 osób + prelegent = ? Pomysł bardzo ciekawy, jednak nie dane mi było uczestniczyć w żadnej z takich sesji. Wiązało się to niestety z opuszczeniem następnego regularnego wystąpienia. A nie wyobrażałem sobie takiego scenariusza.

Podsumowanie

Na koniec napisać jeszcze należy, że ścieżkę .NET oraz zakończenie konferencji prowadził Kuba Jałbrzykowski, znany też jako “zwycięzca konkursu Speaker Idol na MTS” albo “ImagineCupowa twarz Microsoftu“. Moim (i jak widzę nie tylko moim) zdaniem spisał się wzorowo. Chyba już wiem kto będzie prowadził Familiadę jak Karol Strasburger pójdzie na emeryturę:).

Po tym wszystkim nasuwa się jedno pytanie… jak to możliwe, że konferencja zbudowana rękoma społeczności odnosi tak wielki sukces? Skąd tak imponująco stabilny, nieugięcie niezmienny, niesamowicie wysoki poziom, którego próżno szukać choćby na MTS? Wszystko to oczywiście opierało się o pomoc ludzi z Microsoftu, o wsparcie sponsorów, o komercyjne zaplecze, ale sama idea pozostaje ta sama. To SPOŁECZNOŚĆ jest autorem tego wydarzenia. Czyżby uwolnienie od korporacyjnych restrykcji, możliwość nieskrępowanego wyrażania poglądów i prezentowania dowolnego rodzaju wiedzy były podwalinami tego sukcesu? Hmm…

Zorganizowanie TAK poważnej konferencji na TAK dużą skalę z TAK znakomitymi prelegentami w czasach TAKIEGO kryzysu zasługuje na wielkie brawa i podziękowania. W imieniu wszystkich uczestników dziękuję więc organizatorom. Było naprawdę mega-git.

Ocena całej konferencji: 8.

Nie przegap kolejnych postów!

Dołącz do ponad 9000 programistów w devstyle newsletter!

Tym samym wyrażasz zgodę na otrzymanie informacji marketingowych z devstyle.pl (doh...). Powered by ConvertKit
Notify of
brejk

@procent: Jak zwykle rzeczowo i na temat :-) Po przeczytaniu czuję się, jakbym był na sesjach ścieżki .NET ;-) 10/10

me
me

i jeszcze tylko swobodne przytoczenie zdania z prezentacji Udiego: Nigdy nie mamy czasu na zaplanowanie architektury za pierwszym razem, ale zawsze mamy czas na naprawianie błędów przez to spowodowanych.

nuwanda

Świetna relacja! Dzięki szczególne za dobre notaty ;)

Sir Anen

Fajnie napisane i dużo zapamiętałeś – Ja prawdę mówiąc podziwam ogólnie ciebie i żałuję że nie było dane nam pogadać. Co do Artura , chciałem gościa zagiąć ale Brawa za jego super wiedze ( tutaj już mogę powiedzieć iż wiem czego on nie wiem :P ) ale mimo godziny nie poddał się powiedział wszystko.

Bartek Pampuch
Bartek Pampuch

Procent – dzięki za podwiezienie na dworzec, szkoda, że przeze mnie straciłeś początek ostatniej sesji. Pozdro

Hellix
Hellix

Mam łezkę w oku, bo mnie tam nie było…:( Świat jest niesprawiedliwy. :(
Świetna relacja. Pozostaje tylko gratulować organizatorom i oby tak dalej!

jj
jj

Spodziewałem się tak szczegółowej relacji. W końcu robiłeś notatki.
Jeśli chodzi o moje odczucia na temat c2c to jest podobnie… biorąc pod uwagę: środki, zasoby i porównując do efektu: mistrzostwo świata!

Procent

@brejk: …i trzeba bylo na .netowych sesjach faktycznie fizycznie być, w koncu sa ciekawsze niz te wasze eskułele ;) @nuwanda: Polecam robienie notatek, to byl moj pierwszy raz i zaluje ze dopiero teraz zaczalem. Moze glupio wyglada, ale duzo latwiej systematyzuje sie nowa wiedze sluchajac i notujac jednoczesnie… teoretycznie powinienem to wiedziec ze studiow :). @Sir Anen: Dzieki, ale nie przesadzajmy, chcesz zebym zarumieniony chodzil przez nastepny tydzien?;) @Bartek Pampuch: Nie ma za co, nie dramatyzujmy z tym spoznieniem. Nie mialem z WPF3D wczesniej stycznosci wiec i tak byla to dla mnie czarna magia. A zostanie zruganym przez taksowkarza za… Read more »

Hellix
Hellix

Ehh…Gdyby chodziło o reflex to byłbym pierwszym zarejestrowanym. Śledziłem przygotowania do konferencji od pierwszej wzmianki na Twoim blogu…
No nic – Mam nadzieję że za rok będzie równie ciekawie.

Justyna

Macieju – relacja super. Robienie notatek rzeczywiście się przydaje ;-).

Gutek

@Procent
No wlasnie ja w sprawie notatek ;)
sxe clr – wlaczenie przechwytywania wyjatkow
sxd clr – wylaczenie przechwytywania wyjatkow
nie sxc – takiego polecenia nie ma :(
Gutek

Moja książka

Facebook

Zobacz również