Pokazywanie postów oznaczonych etykietą konferencja. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą konferencja. Pokaż wszystkie posty

czwartek, 17 kwietnia 2025

Rancher czyli darmowy Docker Desktop

 Chyba każdy zna Dockera oraz jego graficzne UI czyli Docker Desktop. Projekt Docker początkowo był zarządzany przez jeden projekt OpenSource jednak z uwagi na prozę życia, tj. potrzebę samofinansowania pewnego dnia postanowiono rozdzielić silnik Dockerowy czyli Docker CLI oraz nakładkę graficzną czyli Docker Desktop i to UI sprzedać firmie zewnętrznej, która to komercjalizuje. Ten model biznesowy działa. Ostatnimi dniami jednak Docker Destkop postanowił podnieść ceny za swoje usługi, więc w firmie dla której obecnie pracuję postanowiono poszukać darmowych alternatyw. Taką darmową alternatywą wykorzystującą pod spodem darmowe Docker CLI jest Rancher.

Z moich obserwacji działa wolniej i nie aż tak intuicyjnie jak DD (Docker Desktop), ale robi robotę. I tak większość rzeczy robi się z konsoli, a nakładka graficzna jest raczej jako miły dodatek niż coś co jest niezbędne do korzystania z konteneryzacji dostarczanej przez DockerCLI.

Z takich uwag, to nie można mieć równocześnie uruchomionego DD oraz Ranchera. Albo jedno, albo drugie.


Linki:

https://www.rancher.com/ -> oficjalna strona projektu.

https://github.com/rancher/rancher - repozytorium kodu źródłowego na github


Dodatkowe komendy, które mogą być przydatne:

- Ustawienie kontekstu "default" dla Ranchera (Docker Desktop nadpisuje to ustawienie):

docker context ls

docker context use default

- Otwieranie w PowerShell ustawień konfiguracyjnych:

notepad.exe "\\wsl$\rancher-desktop\etc\docker\deamon.json"


A następnie dodać odpowiednie adresy IP do pliku konfiguracyjnego. 

Przykładowy wpis:

{
  "registry-mirrors": ["http://1.2.3.4:9090", "http:/1.2.3.4:9095"],
  "insecure-registries": ["1.2.3.4:9090", "1.2.3.4:9095"],
  "debug": true,
  "experimental": false
}


wtorek, 31 października 2017

.net developer days 2017 (conference)

It's been over a week since conference .net developers days 2017 ( link to conference page ). The .net developer days is the biggest, official microsoft .net conference in Poland and one of the biggest conferences dedicated to .net framework in Europe. This 2017 edition was located as previous in Warsaw and took 3 days (one day workshops, and two days of conferences). I took part only in conferences. 

Here are my thoughts about this conferences. This thoughts are not representative and some aspects are omitted. They are just my own thoughts about this conferences. I don't plan to discuss every presentation that I participate. If you are looking abstract of presenations it's the wrong place. 


The good:

- Dino Esposito -> my colleagues from work had very good memories of Dino from last year and they could not wait for him. If they could not wait for him, that means me either. And I was not disappointed. Dino was one of the bright star of that conference and I remember him very warmly. He had 3 presentations:
- ethics in work / conferences. Don't work for technology buzzwords. Work for your client needs.
- new functionality of SQL Server 2016 and 2017 -> every table will now can have it's own history (second built-in table for storing changes history) 
- UI session -> user on each platform (PC / Smartphone) expects different UI

- Daniel Marbach -> great session about async/await and the task parallel library. One of the best conferences speech in this conference. Tricky topic but necessary. If I had some free time I would practice task from his presentation (available on github). I regret that I don't saw his second speech.

- Cloud -> this topic started to be discussed in various scenarios. It's time to start thinking about it (and learn something about it).

- Food -> it was delicious. Especially the dinners.

The bad:

Too long -> Thursday was too long. We came at 9 am and the last prelection ends at 7 pm.  And there were also Q&A with speakers. Whole planed to 10 pm. That was too long. I came before the end and I really don't know about they talk at the end. I also talk with few friends and they don't know either :-(


And the ugly:

- cards with colors -> Missed cards with colors to evaluate the session after departure. I like those cards because I can notice what session I missed and is it worth to watch them later in youtube.

- smog -> when the conference was held we had a little smog in Warsaw and I feel it. After some time my head ached. I don't like smog :(


niedziela, 20 marca 2016

konferencja meet.js summit (#meetjs16)

O konferencji "Meet.js Summit 2016" dowiedziałem się dosyć niedawno, czyli na około tydź. przed konferencją. W tamtym czasie, biletów już nie było, jednak dzięki odrobinie szczęścia oraz życzliwości jednego z użytkowników portalu wykop.pl udało mi się zdobyć wejściówkę na tą konferencję (jednemu z uczestników coś wypadło i oddał wejściówkę, aby się nie zmarnowała). Tym oto zrządzeniem losu udało mi się pójść na tą, jakże wspaniałą konferencję, poświęconą językowi javasctipt.

Najpierw pokrótce opiszę kilka prezentacji, na których byłem, a nast. kilka uwag ogólnych na temat konferencji.

Katarzyna Jastrzębska - "Web projects with ClojureScript" -> Kasia pokazała nowy język, będący mieszanką Clojure oraz Javascriptu (te języki można mieszać ze sobą w składni, m.in. w taki sposób następuje odwołanie do obiektów drzewa DOM). Moje pierwsze wrażenie na temat ClojureScript jest takie, że nie zastosował bym go w moich, korporacyjnych projektach. Powodem jest zbyt słabo typowana składnia. Kasia jako przykład dynamiki języka, pokazała instrukcję "if", która nie jest wyrażeniem języka, a jedynie funkcją odpowiednio zmutowaną, aby pełniła taką rolę (sam język nie posiada instrukcji "if"). Jest przez to bardzo elastyczny. Niestety, ale w korporacjach utrzymanie istniejącego kodu trwa wiele lat, zespoły programistyczne zmieniają się często, a przez to miałem m.in. okazję utrzymywać kod jako piąty programista. Oczywiście każdy poprzednik miał swój sposób pisania kodu, swoje dobre praktyki oraz swoje niedbałości. Jak do tego dojdzie jeszcze pisanie "if-a" na 20 różnych sposobów, to w takim kodzie po kilku latach może być naprawdę niezły "mindfuck".
Pozwólcie, że zacytuję klasyka:
define TRUE FALSE
//Happy debugging suckers
Jeżeli natomiast chodzi o uwagi do prelegenta, to miałbym 3 drobne uwagi:
- więcej pewności siebie ;-)
- na slajdach, które pokazują tą samą metodę w 2 językach jednak fajnie by było, gdyby ta metoda posiadała tą samą nazwę, oraz te same parametry
- przy pokazywani praktycznych przykładów, dobrze jest wcześniej przygotować sobie snippety z kodem (wtedy wszystko odbywa się jakby płynniej)
- ale ogólnie to pozytywna prezentacja
- dziękuję za kubek scalaz ;-)

Grzegorz Koronowski - "Angular & JS lessons learned" -> całkiem fajna prezentacja nt. praktycznych przykładów korzystania z angular.js. Osobiście nie korzystałem z angulara na produkcji, natomiast kolega, który siedział obok mnie, nad jednym z pokazywanych przykładów (nr. 2 lub nr. 3), spędził sporo czasu w pracy, a na koniec doszedł niezależnie do podobnych wniosków, co autor. Ja się zastanawiałem nad przykładem nr.4, tj. czy nie prościej było by zwobić zwykły "target _blank", ale później sobie pomyślałem, że autor zapewne do nowego okna chciał przekazywać stan aplikacji lub jej parametry w sposób "ukryty", oraz obudować tą logikę w jakiś sprytny mechanizm. Takie też później padło pytanie, a odpowiedź mniej więcej pokrywała się z moimi przypuszczeniami. Ogólnie fajna i na pewno przydatna prezentacja. Taka życia.
Drobna uwaga do prelegenta: w wolnej chwili można ciut bardziej podszlifować język angielski. Jest dobrze, ale mogło by być jeszcze lepiej ;-)

Łukasz Fiszer - "Npm scripts as an automated tool" -> fajny talk. Łukasz przedstawiał sposoby automatyzacji tasków, oraz sporo porównywał do obecnie stosowanych narzędzi, tj. gulp i grunt. Że często próbuje się z nich zrobić "szwajcarski scyzoryk" i stosować nawet w tych miejscach, w których nie powinno się tego robić. Łukasz wspomniał też o tym, że na rynku popularne są dwa narzędzia o niekompatybilnych ze sobą plikach wsadowych, dlatego on pokazuje trzecie rozwiązanie. Z drugiej strony, podczas swojej prezentacji był bardzo przekonujący.

Robert Kawecki - "Reliable Node.js application for a reactive world" -> dosyć dobra prezentacja o tym, co jest ostatnio "trendy" w świecie backendu, czyli CQRS + EventStore + DDD, na przykładzie konkretnego, działającego produktu, stworzonej przez stosunkowo młodą firmę. A to wszystko w świecie javascriptu. Jak ktoś chce poznać obecne trendy na konkretnym, działającym (i wdrożonym produkcyjnie) przykładzie, w dodatku przedstawioną w bardzo prostej i przystępnej formie, to koniecznie powinien obejrzeć tą prezentację. Po prostu SUPER!!!.

Łukasz Korowicki - "Style Guide Driven Development - Episode IV - New Hope for Front-end" -> ta prezentacja, to taki przekrój przez dostępne obecnie na rynku sposoby tworzenia różnej maści "css-ów", czyli LESS, SASS. W sumie nie jestem grafikiem, więc się nie wypowiem nt. szczegółów.

Adrian Makowski & Adam Chwitkowski - "Creating easy going code" -> bardzo fajna prezentacja. Oboje panowie wybrali po kilka prostych zasad, zarówno z front-endu, jak i back-endu, których przestrzeganie bardzo ułatwia życie. Z front-endu było m.in. oocss, bem, itcss, natomiast z back-endu były 2 literki z SOLID oraz "composition over inheritence" (interfejsy > dziedziczenie) wraz z praktycznymi przykładami "bad code vs good code" + tdd. Rady odnośnie backendu znałem od dawna, za to najwyższy czas, zainteresować się tym, co oznaczają wymienione skróty z frontendu. Bardzo fajna i przydatna prezentacja.

Artur Szott - "React enlightenment - my 10 month Journey with React.js" -> z tego co pamiętam, to Artur pokazywał w swojej prezentacji, że sam React.js na początku może być nieco przytłaczający dla kogoś z zewnątrz, oraz pokazywał od czego można zacząć, czyli od ".jsx" natomiast testować z wykorzystaniem mocha i chai. Tak teraz sprawdzam i... nie mam więcej notatek na temat tej prezentacji, czyli raczej taki intro talk dla zupełnie początkujących w świecie react-a.

Zbyszek Tenerowicz - "Gettin your Node.js app production redy" -> od jakiegoś czasu, bawię się w domu kursem Node.js z nodeschool.io i ten talk był idealnie adresowany do mnie, ponieważ autor wychodzi z założenie, że jego widownia tyle co skończyła kurs na nodeschool.io albo inny, czyli zna podst. node.js i chciała by zrobić krok dalej, czyli umieścić swoje rozwiązanie na produkcji. Zbyszek pokazuje zaróno narzędzia z jakimi poleca się zapoznać, tj. pm2 (process manager),  podejścia programistyczne, jakie powinniśmy stosować w naszym node.js (aplikacja pomiędzy requestami http powinna być bezstanowa, ewentualnie kiedy już naprawdę jesteśmy zmuszeni utrzymywać stan pomiędzy requestami, to wtedy korzystamy z redis). Wszystko powinniśmy wykonywać asynchronicznie, polubić się z TypeScryptem, zapoznać się z poziomami logowania, podpiąć pod istniejące syst. monitorowania w firmie, o ile takie są (kiepski syst. monitorowania, na który ktoś patrzy full time, jest dużo lepszy niż dobry syst. monitorowania, na który sami będziemy patrzeli od czasu do czasu). Kolejne narzędzia / biblioteki, do monitorowania stanu aplikacji: Nsp chceck, node secure project, requireSafe (oraz komenda javascriptowa process.memoryUsage().rss wykonywana z wewnątrz naszego kodu). I na koniec linki, czyli absolutny "must watch", czyli netflix -> nodejs-in-flames, ponieważ lepiej wiedzieć co nas spotka w życiu wcześniej i od samego pocz. mieć przyg. plan naprawczy. Super talk. Jak dla osoby, która sama sobie po nocach koduje w node.js, a docelowo chcę zrobić jakiś własny "pet project", w którym node.js wykorzystam, to ten talk był dla mnie super.
p.s. uwaga na wycieki pamięci, ponieważ node.js ma limit 1.5gb danych (jak proces node.js będzie zajmował więcej pamięci, to się wywali).

Michał Załęcki - "Reactive JavaScript" -> ta prezentacja, to opis tego, czym są "reactive extensions", jaka była droga ewolucji w javascripcie, czyli callbacks -> promises -> asynnc/await -> react extensions (i dlaczego aktualnie warto stos. właśnie reactive extensions i w czym one są lepsze, np. dużo bardziej czytelna składnia niż async/await). Było też o zastosowaniu kilku wzorcach projektowych (m.in. obserwator), oraz programowania funkcyjnego w javascript. Całkiem przyjemny talk poglądowy, dlaczego warto korzystać z reactive extensions. Całkiem miło i przyjemnie spędzony czas.

Z prelekcji, na których nie byłem, za to widzę wielkie ochy i achy na twitterze, to Staś Małolepszy - "The future od Javascript is now. How to make the most of it?". Jak tylko pojawią się nagrania z konferencji w necie (prelekcje były nagrywane), to chętnie ją sobie obejrzę.

Uwagi ogólne do organizatorów? Super konferencja, dobra lokalizacja, wyżywienie, mega super prelekcje. Naprawdę mega konferencja. Czy czegoś mi brakowało albo co można by było zmienić? Brakowało mi dwóch rzeczy. W sumie pierdoły, ale mogę o nich wspomnieć:
- osoby z dzwonkiem, która by przypominała, że właśnie rozpoczęła się prezentacja na jednej z sali. Na korytarzu zawsze było kilka osób, był szum, ciągle coś się działo, więc bardzo łatwo można było przegapić czas rozpoczęcia prezentacji, co skutkowało tym, że drzwi do sali były otwarte trochę dłużej niż powinny (nawet 10-15 min od rozpoczęcia prelekcji) i siedząc w ostatnich rzędach było słychać szum dochodzący z korytarza.
- na jednej z konferencji zauważyłem fajny bajer, tj. 3 kolorowe karteczki (zielony, żółty, czerwony), które były dostępne podczas wychodzenia z prezentacji a wychodzący z prezentacji uczestnicy wrzucali je półmiska, dając tym samym łatwo widoczny "feedback".

Ale tak to super. Mega konferencja i jestem bardzo zadowolony, że mogłem wziąć w niej udział. Jakościowo to stała MEGA, co zresztą widać w opisach konkretnych prezentacji. Zdecydowanie polecam.



sobota, 19 września 2015

Konferencja DevDay 2015

W środowisku istnieje dobry zwyczaj, dawania "feedbacku", odnośnie wydarzeń, w których się wzięło udział. Feedback potrzebny jest organizatorom, prelegentom, aby wiedzieć, co ewentualnie poprawić, ale również i osobom postronnym zainteresowanym wybraniem się na podobny event w przyszłym roku, aby wiedzieć, czego mniej więcej można się spodziewać.

W związku z tym, postanowiłem po krótce opisać moje wrażenia z konferencji devday 2015. W tym roku, konferencja była płata, jednak istniała spora pula darmowych, biletów, które można było wygrać w różnych konkursach. Mi udało się wygrać bilet w konkursie organizowanym przez wroc# (i w związku z tym, z własnej inicjatywy pierwszego dnia konferencji chodziłem w "ich" koszulce, robiąc za żywą reklamę ;-)).

Konferenacja, jak zwykle bardzo udana. Konferencja twała 2 dni i podobnie jak rok temu, odbyła się w centrum dydaktycznym wydziału medycznego Uniwersytety Jagielońskiego. Większość prezentacji odbywało się w dwóch salach obok siebie, które dla spotkań otwierających oraz zamykających każdego dnia były łączone w jedną dużą salę wykładową. Z tego co wspominali organizatorzy, wszystkie sesje były nagrywane, więc jak ktoś przegapił coś interesującego, to w przyszłości będzie mógł sobie obejrzeć interesujące go sesje na youtubie.

Pod względem tematycznym rozrzut był całkiem spory, a prezentacje stały na mocno nierównym poziomie. Zdarzały się zarówno takie mega profesionalne, po których szczena opadała i chciało by się słuchać gościa jeszcze i jeszcze, a były też takie, na których zastanawiałem się "co ja tu robię" :/ Odniosłem też wrażenie, że przerwy między sesjami mogłby by być nieco krótsze, a dzięki temu prezentacje ciut dłuższe (np. o 5 min.).

Kolejnym miłym dla mnie zaskoczeniem był fakt, że powoli zaczynam być znany i rozpoznawany "wewnątrz" ;-) Zdarzyło się kilka syt., że ktoś do mnie podszedł i mówi "my się chyba znamy". Czasem było to z którejś z poprzednich konferencji, czasem z wg.net, a czasem z działalności z grupy net.developers.poland .Nie ukrywam, że bardzo miło było chwilę z wami porozmawiać :)

Zanim napiszę po kilka zdań, odnośnie różnych sesji, to zdecydowanie dwie zasługują na pochwałę: Chris Heilmann "Qou vadis, JavaScript" oraz Chad Fowler "From Homogeneous Monolith to Radically Heterogeous Microservices: The Wunderlist 3 story". Zdecydowanie najbardziej interesujące sesje tej konferencji.

Chad Fowler - "The passionate programmer 10 years later" - Ogólnie całkiem fajna i przyjemna sesja nt. podróży, jaką jest życie developera. Chad mówił o tym, że wiele się w życiu zmienia, że często dostawa rolę, lub pisał książkę o czym, na czym nie do końca się znał, ale taką miał rolę, więc ją wykonywał, a później jego praca i przemyślenia stawały się bestsellerami. Wspominał też o potrzebie znalezienia mentora, który pchnie nas ostro do przodu w naszym rozwoju, oraz o potrzebie bycia mentorem. Ogólnie spoko, jednak na samym pocz. nieco za bardzo przynudzał nt. swojej biografi ;-)

Oliver Sturm - "Creepy C#" - Sesja nt. błędów w kodzie. Oliver pokazał kilka przykładów złego kodu, który znalazł kiedyś na produkcji. Sesja miała wyraz humorystyczny (i z tego powodu podobała się kilku os., z którymi rozmawiałem), jednak dla mnie, przedstawione przykłady były zbyt banalne. Dla kogoś, kto wcześniej przerobił książki0 "Ucle Bob" Martina nt. jakości kodu źródłowego oraz na co dzień posługuje się R# te przykłady były zbyt banalne. Sorry, ale odniosłem wrażenie, że tracę czas.

Scoot Allen - "Introduction to Aurelia" - Scoot pokazał w swojej sesji to, można się dowiedzieć wchodząc na stronę i robiąc typowy tutorial. W zasadzie, cała ta sesja to było robienie tuoriala z komentarzem. Problem z tą sesją był taki, że na sam koniec, gdy padło pytanie: "w czym Aurelia jest lepsze od Angular.js"? to Scoot, który jest jedną z os. pracujących nad tym projektem, do końca nie umiał odpowiedzieć. Skoro "insider" sam nie wie, w czym jego produkt jest lepszy od głównego konkurenta, albo na czym będzie polegała główna różnica to poszę Cie, ale... nie.

Shay Friedman - "The wonderful world that is twitter bootstrap" - Kolejny, po Aurelii tutorial jednej z technologii. O termin bootstrapa obił mi się kiedyś o uszy, o tyle dla wielu os. na konferencji to był chleb powszedni. Mi osobiście się podobało i zamierzam pochodzić po stronie projektu i gdzieś to zastosować, o tyle wiem, że wiele os. miało z tą sesją problem taki, że technologia jest już na rynku 2-3 lata, wiele os. z niej korzysta, przyjeżdża gość na konferencje, to myśleli, że pokaże jakieś "tips & tricks", a nie tutoriala od zera do poczatkującego.

Rob Connery - Hard Lessons Learned: Why rethinkdb 2.0 is worth a look - Sesja nt. kolejnej bazy typu NoSQL, przeznaczonej do użytku w trybie on-line z nużym naciskiem położonym na skalowalność. Typowa baza, dla rodzącego się start-upu, opartej o wymianę danych on-line na wielu urządzeniach (synchronizacja). Unikalną umiejętnością tej bazy, jest łatwa replikowalność oraz skalowalność, czyli "rozdwajanie". Pojedyńczy przycisk myszy i z 1 bazy masz dwie (posiadające te same dane i wewnętrznie synchronizowalne).
Zapytania pisze się w języku funkcyjnym. Jak ktoś robi startup z dostępem on-line dostępny na kilku różnych urządzeniach jednocześnie to powienien się zainteresować tematem.

Manimaran Chandrasekaran - Buildin cloud scale enviroment with octopus deploy and powershell dsc - Temat wydawał mi się interesujący, szczególnie z uwagi na myśl o poznaniu i zrozumieniu octopus deploy oraz poznanie opinii na jego temat przez praktyka. Niestety poziom prowadzenia samej prezentacji, był na dosyć niskim poziomie. Już pal licho "angielskawy" prowadzącego, ale sam sposób prowadzenia, dobór materiałów, itp. pozostawiał jednak zbyt wiele do życzenia. Przychylam się do zdania, które uslyszałem w kuluarach: "autor powinien wziąć kamerę i spróbować poprowadzić swoją prezentację kilka razy na sucho, a nast. się obejrzeć". Wszystkim nam, wyszło by to na zdrowie.

Steve Freeman - Rediscovering the command line, or Your Data isn't that Big - Co mogę powiedzieć o tej prezentacji? Że sposób prowadzenia był "usypiający"? Że nie do końca mnie to kręciło? Że temat może i interesujący, jednak po obejrzeniu prezentacji doszedłem do wniosku, że gdzies sobie to zapiszę w głowie, że takie coś istnieje być może wrócę do tego kiedyś później. Temat chyba jednak bardziej na jakiś blog post, niż na masową konferencję.

Will Evans - Heretics, High priests, and Hegiolatry - są dwa dni po konferencji, a ja nawet za bardzo nie mogę sobie przypomnieć, o czym była ta prezentacja. Serio. Widocznie nic bardzo ważnego, albo coś, czego mój mózg nie był w stanie jakoś sensownie strawić. Nic dziwnego, że wyszedłem na 5-10 min przed końcem.

Chris Heilman - Qou vadis, javascript - Chrisa pamiętam jeszcze z Wroc#, jako gościa z Mozilli, który zatrudnił się w Microsofcie w celu zniszczenia Internet Explorer "od środka". Chris opowiadał o javascripcie, o jego zaletach, wadach, wizjach rozwoju i towarzyszącym temu problemach bez żadnych ogródek, ani tematów tabu. Jako, że .js jest obecnie mega gorącym zagadnieniem, warto było posłuchać naprawdę kumatego gościa, siedzącego w temacie po uszy, który mówił "jak jest" i jak to widzą, zarówno twórcy języka, jak i twórcy przeglądarek.

S.Belczyk, M.Łusiak, S.Elamin - "Lighting talks" - kilka, krótkich, 10-15 min "lighting talków". Taki miły i całkiem sympatyczny przerywnik, między większymi prezentacjami. Michał opowiadał tym, jak został prelegentem, Sam o tym, jak robili aplikacje dla jednej z konferencji i spieprzyli sprawę, a mimo tego, im zapłacili, natomiast Sebastian opowiadał o projektach naukowych (sondy kosmiczne, wielki zderzacz hadronów), które trwaja wiele lat, kosztują miliardy, a mają tylko jeden, decydujący releasee, a mimo to, udaje im się osiągnąć sukces.

Gary Short - Walkthrough of a European space data agency science - całkiem fajna prezentacja, nt. tego, w jaki sposób za pomocą komputerowej analizy zdjęć satelitarnych (ew. zdjęć lotniczych) wskazać miejsca, gdzie rosną wybrane rośliny, policzyć ich ilość a nawet, zbadać stan ich zdrowia (wskazać miejsca, w których wegetacja roślin danego typu przebiega w spos. niestandardowy). Jako ciekawostkę, autor pokazywał kody źródłowe, oraz prowadził prezentację w sposób taki, jak należy. Dobra robota.

Chad Fowler "From Homogeneous Monolith to Radically Heterogeous Microservices: The Wunderlist 3 story" - przed prezentacją, wiele os. bało się kolejnego "tutoriala dla początkujących", a w praktyce dostaliśmy coś 100 razy lepszego. Chad opowiadał, jak pewnego dnia rzucił dobrze płatną pracę na kierowniczym stanowisku w jednej z korpo w stanach, aby zostać CTO w jednym ze starupów w Berlinie, który robił "TODO list", czyli taki odpowiednik "Hello world". Opowiadał o problemach, jakie zastał jego zespół podczas pierwszego realesee ich monolitycznej aplikacji napisanej w Ruby (48h przycięcie łącza) oraz o podjęciu decyzji, o zmianie strategii. O wprowadzeniu mikroserwisów, o daniu bardzo dużej dowolności programistom w doborze technologii, o rozmowach z inwestorami, lub wewnętrznych rozmowach w dziale. Pokazywał też architekturę i o niej opowiadał. Dużo, konkretnego "mięcha". Wszystko od strony "praktycznej", żadnego zbędnego, pieprzenia ;-) Mega pozytyw.

Rob Conery - Document storage techniques with PostgreSql and JSONB - Ten sam Rob, który dzień wcześniej opowiadał o RethinkDb, nast. dnia wspominał o zaletach tradycyjnej, relacyjnej bazy danych oraz o rozszerzeniu, którym do niej napisał, dzięki któremu, z PostgreSql można zrobić bazę dokumentów i składować w niej dokumenty, niczym w bazie NoSQL. Pokazywał też te same, lekko skomplikowane zapytanie, które zrobił dzień wcześniej na bazie RethinkDb, i że w zasadzie, jak ktoś chce, to można to sprowadzić jedynie do różnicy w składni. Na pytania o różnice, między bazami, odpowiedział, że PostgreSql lepiej poradzi sobie ze statycznym wyciąganiem danych (mamy np. milion rekordów i piszemy select i wystarczy jedna maszyna), za to RethinkDb jest łatwiej skalowalny i lepiej poradzi sobie pod dużym obciążeniem z www  w syt. gdy trzeba będzie postawić 20-40 maszyn. Po za tym, PostgreSql, w odróżnieniu od niektórych dokumentowych baz dancyh, nie gubi danych <lol> :D

Nat Pryce - Metaphors we code by - taki "lekki" temat na sam koniec, o różnicach jeżykowych oraz "kulturowych", które wpływają na to, w jaki sposób myślimy oraz się ze sobą porozumiewamy. Taka lekka gatka o wszystkim i o niczym.

Uwaga: Podczas konferencji, było co najmniej kilka sesji poświęconych F#, jednak osobiście na żadną z nich sie nie wybrałem, więc ich tutaj nie opisuję.


sobota, 14 marca 2015

Wroc# (wrażenia nt. konferencji)

O konferencji Wroc# dowiedziałem się na początku stycznia z dwóch mniej lub bardziej niezależnych źródeł. Najpierw, informację podał gutek na naszej grupie programistycznej na portalu facebook.com. Kilka dni później, podobne info na liście mailingowej lider wg.net Michał Grzegorzewski. W sumie to nie wiem, kto póścił info, ale stwierdziłem, ze może warto by się było tym eventem zainteresować. Zanim podjąłem odp. decyzję, to... już Michał podał info na grupie, że limit biletów, dla członków grupy już został wyczerpany.  W międzyczasie, przejrzałem listę gości... i zrobiło się grubo :D W tym momencie wiedziałem, że chce się tam znaleźć :)

Teoretycznie, pozostało czekać, i dostać bilet z "puli otwartej", jednak pomny doświadczeń, z takimi losowaniami z 2 ost. imprez, na których chciałem się pojawić, tj. devday.pl/ i 2014.confitura.pl/ w przypadku których bilety rozeszły się w mniej niż 5 min. postanowiłem... wypełnić formularz kontaktowy, który znalazłem na oficjalnej stronie konferencji. Wpisałem, tam kim jestem i... dlaczego chciałbym się znaleźć na tej konferencji i... miałem nosa. W odpowiedzi na moją wiadomość, dostałem darmowy bilet na konferencję, a... kilka dni później ruszyły oficjalne zapisy, podczas których wejściówki rozeszły się w... 3 min :)

W międzyczasie okazało się, że dzień wcześniej szykuje się "grube" spotkanie Wrocławskiej grupy .NET. Pomny, jak to wyglądało wcześniej w przypadku Krakowskiego DevDays, przyjechałem do Wrocławia dzień wcześniej. I się nie zawiodłem. Spotkanie odbyło się w knajpie na Włodkowica 21 link do www.meetup.com, na którym zjawiło się naprawdę sporo devów, odbyły się 3 prelekcje nt. CQRS, podczas którego, darmowe piwo zapewniało nam pgs-soft.com.

Spotkanie fajne, podczas którego można się było poznać, porozmawiać, czegoś nauczyć, oraz wymienić poglądy nt. różnych technologii. Ja np. dostałem odp. na jedno z nurtujących mnie pyt. nt. simpledata., jak i była okazja do rozmów o własnych przemyślaniach nt. przyszłości różnych technologii.

Właściwa konferencja zaczęła się czwartek na Hali Stulecia we Wrocławiu. Na pocz. krótka rejestracja, tj. odchaczenie na liście gości po czym... dostajemy garść suwenirów. Już na samym początku konferencji, miłym zaskoczeniem był fakt, że... każdy dostał smycz z agendą oraz dyskietką 3,5 cala z własnym imieniem/nazwą jako identyfikatorem :D Zajebisty pomysł. Patrząc na tą dyskietkę, przypomniały mi się czasy dzieciństwa, kiedy jako 12-14 letni maluch żąglowałem takimi dyskietkami w naszym Atarii 500 :D
Oczywiście gadżetów było więcej, ale tamte wymienię na koniec mojego wpisu.

Więc mam już swój identyfikator, kurtka wylądowała w szatni, to wchodzę na salę. Akurat na sali przemawiał ktoś ważny z www.objectivity.pl/. Zrobiłem sobie kawę (stoły z napojami do wyboru do koloru stały przy jednym z boków sali) i usiadłem na jakimś randomowym krzesełku. Pierwsze co się rzucało, to piękny angielski os. przemawiającej. Od razu człowiek wiedział, że ma do czynienia z jakimś "native speakerem", w dodatku z top managmenu (kto był w Anglii, ten wie, że tzw. "Cambridge English" posługuje się tylko elita). Przemówienie było o tym, że... grupa devów chciała zorganizować konferencję, ściągnąć kogoś fajnego, na pocz. miało to być coś małego, ale... w trakcie jak to organizowali to im się ta konferencja ciągle rozrastała (i koszty również), ale postanowili przyjać to "na klatę". Miło z jego/ich strony ;)

Razem z gadżetami, dostaliśmy też do wypełnienia kartkę, z sesjami i uwagami, jako "feedback", więc dostusuje się z moją opinią, do wymienionej tam skali oceny prezentacji, tj.: zielonej, żółtej, czerwonej.

Christian Heilmann - "Innovating the outer web":
Całkiem ciekawy człowiek, związany ze środowiskiem "Open Source", który przez pewien czas pracował w fundacji Mozilli, cały czas walcząc z IE8 i... pewnego dnia stwierdził, że jeżeli naprawdę chce się wyeliminować z rynku IE8 to... należy się zatrudnić w Microsofcie i... wyelimować tą przeglądarkę z rynku "od środka" ;) Tak też zrobił i obecnie zmienia Microsoft, a dokładniej ich dział webowy od środka. Temat prezentacji, natomiast dot. stron... firmowych, rządowych, ale również tych będących często za firmowymi intranetami. To też jest web, a w wielu tych miejscach obowiązkową przeglądarką jest właśnie IE. I to od nas zależy, jaki ten "inny" web będzie i ile w nim będzie innowacji. Co ważne, Christian podał linka do strony QA w MS: (making-it-easier-for-enterprise-customers-to-upgrade-to-internet-explorer-11-and-windows-10.)
Wspominał też, o nowych przeglądarkach tworzonych przez MS i ich konfigurowaniu.
Ocena: Zielono mi, czyli mi się prezentacja podobała.

Matt Elis - "Litle changes to make your app a lot faster"
Prezentacja mocno techniczna i całkiem przyjemna. Matt pokazał, różne konstrukcje języka oraz sposób ich działania "od środka". Pomijając proste rzeczy, typu "unikać" jawnych i niejawnych mapować na "object" (lepiej używać generyków lub przekazując int do "string.Format" ręcznie wykonać metodę "toString()" (kompilator domyślnie najpierw zrzutuje nam int -> object -> string), a iterując na listach i kolekcjach o ile potrafimy przewidzieć ich długość (np. stosując foreach) to warto jawnie zadeklarować ich wielkość w kontruktorze (fajny, miły bajer), to... uderzył też w nowości języka C# 3.0, czyli... IEnumerable i LINQ. Buuu. Ja lubię linq i IEnumerable. W sumie domyślałem się, że to może działać wolniej niż typowa pętla for, a teraz już wiem dlaczego :) Jak coś ma być szybkie, to omijamy linq, IEnumerable i... klepiemy własne pętle for, niczym w C++ :/
Ocena: Prezentacja godna obejrzenia przez każdego programistę, czyli Zielono

Mark Seemann - "Type-Driven Development"
Sesja o F#, typach, i sposobie rozwiązywania problemów. Mark zrobił krótki wstęp o językach programowania, później przedstawił problem biznesowy, oraz pokazał swój sposób rozwiązania tego problemu w F#. Nie znam się na F#, ale sposób mówienia był lekko "senny", a kody które pokazywał Mark z tylnych krzeseł słabo widoczne (siedziałem w ost. rzędzie). Mark próbował "kalibrować" wielkość kodu, ale nie do końca mu to wychodziło i w konsekwencji moim głównym moim zadaniem podczas tej prelekcji było "jak by tu nie zasnąć". Zapewne problem przedstawiony przez Marka był fajny, dodatkowo na plus, że w swojej prezentacji poruszył realne zagadnienia i realne rozwiązania, jednak... sposób mówienia, oraz sposób prezentowania tej prezentacji nie do końca przypadł mi do gustu.
Ocena: żółto, (nie czerwono, bo jednak realne problemy, nie zielono, bo gdyby krzesełka były wygodniejsze, to bym tam usnął)

Lunch: Obiadek, obiadek. Aby być fair, to trzeba przyznać, że po każdej prezentacji była krótka przerwa na kawę i przekąski, które były smaczne i których było pod dostatkiem (cały czas przynoszone były nowe). Do tego, po sesji Marka była sesja obiadowa, a przed panelem dyskusyjnym piwo/wino/drinki (ale o tym później).
Ocena: zieleń ;)

Dan North - "O, Programmer"
Dan w swojej prezentacji opisywał zmieniające się role i wymagania, jakie stały przed programistami na przestrzeni lat, oraz jak to wygląda obecnie. Na początku kilka fajnych, śmiesznych obrazków (np. Pair programming, ludzi wspólnie oglądających "karty perforowane" itp. ;)). Później przeszedł do czasów współczesnych. Mi ta sesja bardzo przypominała materiał zamieszczony w 2 książkach nt. etyki pracy programistów, tj. pragmatyczny programista oraz mistrz czystego kodu-kodeks postepowania profesjonalnych programistow, za to, dla kilku chłopaków, którzy siedzieli obok mnie, to było "WOW".
Ocena: zielono (sesja, jak najbardziej na plus)

Maurice De Beijer - "What is new in ASP.NET vNext?"
Sesja bardzo ważna i moim zdaniem bardzo przydatna. Maurice pokazał w całkiem fajny i przyjemny sposób, nowości związane z nowym asp.net i nie będę ukrywał, wygląda to obiecująco. Wprawdzie jest jeszcze do dopracowania kwestia wydajności tego "mikrokompilowania", ale i tak chłopaki z MS wykonali kawał dobrej roboty, na którą wielu czekało. Tutaj jest jeszcze jedna uwaga, do prowadzącego: mógłby popracować nad swoim angielskim, oraz swoim akcentem, ponieważ z os. występujących na scenie, najtrudniej było go zrozumieć (z os. "z po za sceny" brylował jeden z uczestników, próbujący zadawać pytania, ale za cholere nie potrafiliśmy go zrozumieć, ani ja, ani chłopaki, którzy siedzieli obok. Widocznie organizatorzy też nie umieli go zrozumieć, bo zaraz po tamtej sesji, przenieśli "zadawanie pytań" na twittera ;)).
Ocena: zieleń (fajna i potrzebna prezentacja, tylko niech prelegent popracuje jeszcze nad akcentem ;)).

Chris Klug - "Decomposing AngularJS"
Temat brzmiał mocno pro-technicznie w Angularze. Uważam, takie sesje za potrzebe, ponieważ AngularJS robi się coraz popularniejszy, jednak z uwagi na mój brak komercyjnego doświadczenia z tą biblioteką (rok temu robiłem sobie tutoriale, z których już nic nie pamiętam), to tą sesję postanowiłem sobie odpuścić, bo wiedziałem, że i tak za dużo z niej nie zrozumię. Pochodziłem sobie po sali, pograłem na automatach, które przyniesiono do przedsionka (był m.in. "Tekken2", choć z tamtych czasów osobiście bardziej lubiłem serię "Virtual Fighter" ;)). Później wróciłem na końcówkę sesji i wygladało to "pro", czyli... mój nos mnie nie zawiódł. Pewnie i tak nie wiele bym z tej prezentacji zrozumiał, ale jak ktoś na codzień siedzi w Angularze to pewnie był zachwycony.
Ocena: brak oceny -> niech się wypowie ktoś, kto na co dzień siedzi w AngularJS.

Tutaj miała byc ost. sesja, z twórcą biblioteki Simple.Data, czyli Markiem Rendle, na którą mocno ostrzyłem sobie zęby, jednak Mark zachorował i w ost. chwili organizatorzy zamiast jego sesji zorganizowali panel dyskusyjny z prelegentami. Zanim to jednak nast. , na salę wyjechały kegi z "firmowymi browarami" serwowane w szklance z logo konferencji, które... organizatorzy postanowili podarować uczestnikom w ramach prezentu. I mając browara w dłoni zasiadłem do słuchania panelu dyskusyjnego. Atmosfera była fajna, jednak z uwagi na kwestie osobiste, nie wytrzymałem do końca i zwinąłem się z konferencji. Sam panel obejrzę sobie w przyszłości na youtube, a najbardziej żałuję, że jednak nie dane mi było być na afterparty. Cóż, takie życie :/

Ogólnie, jeżeli chodzi o prezentacje, to było bardzo dobrze i nawet nieco bardziej technicznie niż na DevDay. Tylko jedna "żółta kartka" i żadnej "czerwonej" to bardzo dobry wynik. W dodatku było mocno techczninie, zarówno na konferencji, jak i przed nią, więc uważam, że z całą pewnością czegoś się tutaj nauczyłem i coś z tej konferencji wyniosłem (nie licząc gadżetów ;)).

A skoro mowa o gadżetach, to, pomijając smaczne jedzenie (czy wspomninałem już o mnóstwie przekąsek dostęnych między prezentacjami?? ;)), to dostaliśmy:
- dyskietka 3.5 cala jako identyfikator (+ agenda i smycz)
- drewnianą łamigłówkę w firmowym woreczku o taką, jak ta :)
- koszulkę z logo konferencji
- szklankę do piwa/ lampkę do wina z logo konferencji (czy wspominałem wam już, że razem z moim bratem od ok 12 lat kolekcjonujemy szklanki i kufle do piwa z całego świata i obecnie samych kufli do piwa mamy ok 70 rodzajow, a szklanek to już będzie spokojnie ponad 220? :))
- ładnie wyglądający notes thinkme.pl/notesy.html - i tutaj ciekawostka. Akurat z tego gadżetu na pocz. cieszyłem się "najmniej", jednak jakie to życie potrafi być przewrotne. Jadąc dzisiaj do Warszawy PolskimBusem okazało się, że... przedmną stoi matka z 15 dziewczyną i... kierowca nie chciał jej wpuścić do autokaru mimo wykupionego biletu, tłumacząc się, że do 16 roku życia potrzebuje mieć pisemną zgodę rodziców (dziewczyna miała jechać sama, bez matki). I ja wtedy wyjmuję z plecaka notes #wrocsharp, oraz konferencyjny długopis, wspólnie wyrywamy kartkę z notatnika, mama skrobie zgodnę na kartce i dziewczyna może kontynuować podróż. Niby nic, ale jednak zawsze ten jeden dobry uczynek do przodu :)



Podsumowujac:
Z tego miejsca, bardzo chciałbym podziękować całemu zespołowi http://www.objectivity.pl/ za zorganizowanie tej konferencji oraz zaproszenie mnie na nią.
Uważam, że była to bardzo udana konferencja, na której występowali ciekawi prelegenci z interesującymi tematami. Organizacja eventu była na najwyższym poziomie, a geekowe akcenty znaleźć można było niemal na każdym rogu. W dodatku, konferecnję poprzedził fajny before.

I to wszystko za darmo. Czego chcieć więcej? Dla mnie bomba! Żyć nie umierać i (oby) do zobaczenia w przyszłości :)

poniedziałek, 29 września 2014

DevDay 2014 - relacja - dzień drugi (26.09.2014)

Dzień drugi to już właściwa konferencja. Pomijając występ początkowy oraz końcowy, przez większość dnia możliwe było wybranie jednego z dwóch wykładów, więc moja recenzja z założenia nie będzie obejmowała wszystkich dostępnych wykładów. Na szczęście, podczas sesji na salach dostępne były kamery wideo, więc w przyszłości możemy spodziewać się nagrać z sesji i nadrobić zaległości na youtubie lub innym vimeo.

Wychodząc z każdej z sesji, uczestnicy mogli wrzucić do koszyka kartkę jednego z trzech kolorów (zielony, żółty, czerwony) i w ten spos. ocenić prezentację

Dan North - Jackstones, a journey to Mastery.
No cóż. Ten wykład widziałem już wcześniej w internecie, jako zapis z którejś z poprzednich konferencji. Ogólnie wykład ciekawy i warty obejrzenia, jednak tak jak z każdym odgrzewanym kotletem, za każdym kolejnym razem smakuje nieco mniej. Jak ktoś jeszcze nie widział, to warte obejrzenia.
Kartka: zielona, bo mimo wszystko jednak warto tą prezentację obejrzeć.

Nial Merrigan - Defensive Programming 101 v5 - Common Security Mistakes in Web Applications
Bezpieczeństwo to jedna z tych rzeczy, na które warto zwracać uwagę, więc chętnie się na ten wykład wybrałem. Nial pokazał 10 najczęściej popełnianych błędów bezpieczeństwa. Zdecydowana większość była mi znana już wcześniej, ale takie perełki jak np. możliwość wyszukania plików web.config przez google, albo fakt, że iPhony nie walidują sieci wi-fi i łączą się ze wszystkim jak popadnie (np. jedziemy na lotnisko, zczytujemy nazwy darmowych sieci wifi, jedziemy w inne miejsce, tworzymy sieci wifi o takich samych nazwach i polujemy na jeleni metodą na "men in the middle" nie wiedziałem). Generalnie fajna sesja, na której zdecydowanie warto było być.
Kartka: zielona (zdecydowanie zasłużenie)

Qi - Hacking the mind: How Art can help us talk (and teach) technology
Po nazwie spodziewałem się sporo. Myślałem, że zostaną przedstawione jakieś fajne sposoby uczenia się. Po prowadzącym też spodziewałem się sporo. W końcu myślałem, że będzie albo coś o hakerstwie, albo o technikach uczenia. Niestety sporo się zawiodłem. Sesja była mdła, nieco zbyt nudna i bez pomysłu. Niby autor coś chciał nam przekazać np. pokazując fragment gazety mówił, że wiadomość ma być krótka i zwięzła przy czym... strasznie usypiał nas całą prezentacją, która zresztą trwała więcej niż było na nią przeznaczone. Generalnie, przez większość czasu się wynudziłem. Całą prezentację "uratowała" końcówka, dosłownie ost. 5 min. Czy było warto? Hmmm, ja tam się wynudziłem i generalnie żałowałem, że nie wybrałem się na konkurencyjną sesję.
Kartka: żółta (gdyby zakończył "o czasie", czyli bez ost. 5-7 min., z całą pewnością była by czerwona).

Rob Ashton - React + NPM for Great Good
Nie ma co ukrywać, na ten występ poszedłem specjalnie dla Roba. Temat jego wystąpienia był rzeczą względną. Był Rob i miało być fajnie. I w sumie tak też było. Rob pokazywał na scenie swoją żywiołowość oraz umiejętności posługiwania się VIM'em, opowiadając o kolejnym super-duper javoscriptowym frameworku przy okazji nabijając się z Angular.JS. Sam temat prezentacji wyglądał na taki niezbyt skomplikowany tutorial, Rob mówił bardzo żywiołowo i.. szybko. Tak szybko, że czasami nawet za szybko i momentami miałem problemy ze zrozumieniem o czym mówi. O ile do samej prezentacji można się było przyczepić, o tyle żywiołowa forma prezentacji była jakże miłą odmianą po usypiającej sesji Qi.
Kartka: zielona, głównie za sympatię do prowadzącego (i żywiołowość wystąpienia).

Kasia Mrowca - Art of Saying NO
Kolejny wykład, po którym spodziewałem się dowiedzieć czegoś ciekawego i... na którym się srodze zawiodłem. Może i Kasia się przygotowała, ale... mówiła dużo ogólników, mało konkretów. O ile na normalnej konferencji na jakiejś grupie .NET pewnie by to było ok, ale... na DevDay jednak publika jest nieco inna. Tutaj przyjechali sami entuzjaści, którzy "samorozwój" katują w praktyce na lewo i prawo od iluś tam lat. Osobiście byłem zawiedziony tym wystąpieniem i zdecydowanie spodziewałem się czegoś lepszego.
Karta: żółta (choć zastanawiałem się nad czerwoną).

Paul Stack - What is DevOps and How It Can Help My Bussiness Succeed?
Mimo iż stwierdzenie "DevOps" od dawna krąży w środowisku, to osobiście nie wiedziałem o co w tym chodzi, więc postanowiłem się dowiedzieć. I myślę, że moje oczekiwania zostały spełnione. Podczas prezentacji dowiedziałem się, że termin ten odnosi się do "Dev" (programistów), którzy równocześnie są też "Ops" (Administratorzy/Sieciowcy wdrażający ich rozwiązania w korpo). Tyle w teorii, jednak w praktyce, nie ma takiego stanowiska jak "devops", a sam termin "devops" to raczej kwestia kultury przedsiębiorstwa i panujących tam stosunków między różnymi specjalizacjami (płynne przechodzenie z admina w deva i na odwrót). Resztę prezentacji Paul pokazywał narzędzie do badania ruchu sieciowego opartego na logach linuxa oraz jak poprzez analizę tych logów sprawdzać, czy "jest jeszcze jest ok, czy już nie jest ok".
Kartka: zielona (całkiem przyjemna sesja).

Simon Brown - Software Architecture vs Code
Autor w założeniu starał się pokazać, że światy architektów i ich UML oraz programistów i ich "kodu" są wspólne i da się je połączyć, przy okazji starając się uzmysłowić kontekst i potrzebę samodoskonalenia poprzez analogię z łódką i łowieniem ryb, a... wyszło nie do końca wiadomo co. Jak tak sobie to teraz przypomnę, to w gruncie rzeczy trudno jest mi sobie uzmysłowić, co pozytywnego wyniosłem z tej sesji? To że samo przeczytanie książki o łowieniu ryb nic nam nie da, bo jeszcze trzeba zawartą tam wiedzę dostosować do otaczających nas warunków? Hmmm? Chyba to jednak nieco za mało jak na taką konferencję.
Kartka: zielona (bo było nieco śmiesznie, choć obecnie dałbym nieco gorszą ocenę). 

Po ost. sesji, nastał "beer time", czyli dalsze debaty. Najpierw na korytarzach uczelnii medycznej, na której odbywała się konferencja, a nast. w wynajętej knajpie.

Podsumowanie: Konferencja jak najbardziej na plus. Warsztaty z Danem były na całkiem fajnym poziomie (kilka nowych, inspirujących rzeczy), wykłady podczas konferencji ok (ale raczej takie sobie), organizacja na najwyższym możłiwym poziomie (wszystko blisko, koło siebie, dobra sala itp), spotkanie Krakowskiej grupy .NET (fajny dodatek) i możliwość spotkania się i pogadania z mnóstwem innych pasjonatów (najfajniejsza część konferencji). Fajnie było, chyba głównie z uwagi, na możliwość wyjścia ze swojej "jaskini" i spotkania innych, podobnych do siebie "geeków", których okazało się być zdecydowanie więcej niż się spodziewałem ;).
Fajnie było i do zobaczenia w przyszłości :)

DevDay 2014 - relacja - dzień pierwszy (25.09.2014)

Za nami najpopularniejsza, a przynajmniej najbardziej oczekiwana konferencja związana ze środowiskiem programistów .NET w 2014 roku, czyli Devday 2014.

Organizowana przez ABB konferencja była od dawna oczekiwana w środowisku, a problemy z dostaniem wejściówki tylko to potwierdziły. Pierwsza tura darmowych biletów rozeszła się w 5 min, druga w 2 min., więc postanowiłem nie czekać i wykupiłem płatne warsztaty, dzięki czemu bilet na bądź co bądź darmową konferencję dostałem gratis.

W związku z powyższym pozwoliłem pokusić się o małą recenzję tego, bądź co bądź bardzo wyczekiwanego eventu.

Dzień 1, 25.09.2014 (czwartek)
W czwartek odbyły się dwa szkolenia. Jedno z Angular.Js z Tiberu Covaci, oraz drugie  "Accelerated Agile: from months to minute" z Dan'em North. Ja wybrałem się na szkolenie z Agile ponieważ zarówno temat jak i prowadzący wydawali mi się bardziej interesujący. Inna sprawa, iż uważam, że angulara dużo lepiej i taniej można się nauczyć z jakiś książek/tutoriali niż z jednodniowego szkolenia.

Szkolenie składało się z 5 części tematycznych, trwających 50-70 min. każda z przerwami na kawę, toaletę oraz obiad. Podczas szkolenia byliśmy podzieleni na 7 sześcioosobowych zespołów, wewnątrz których mieliśmy wykonywać mniej lub bardziej skomplikowane zadania w stosunkowo krótkich okresach czasu (2-3 min.). Idea była prosta -> jest x ludzi w zespole i bardzo ograniczony czas, a trzeba dojść do konsensusu i wystosować wspólne stanowisko grupy wobec podanego tematu. A tematy? Różne, od tego, jak ma się nazywać zespół, na czym ma się skupić prowadzący podczas zajęć, po różne elementy cyklu wytwarzania oprogramowania. Szkolenie odbywało się więc w formie mniej lub bardziej luźniej zabawy, za to z elementem "tykającego zegarka".

Ok. A gdzie w tym to całe "mięcho", po które przyszliśmy? Hmmm, pierwsze sesje były raczej takie "zapoznawcze" oraz mniej lub bardziej ogólnikowe np. tworzenie oprogramowania składa się z 3 faz: 
- badawcza (testujemy technologię, narzędzia, koncepcję itp.)
- działającego prototypu (jesteśmy w stanie pokazać klientowi coś co działa mniej lub bardziej zgodnie z założeniami)
- odtwarzalnej produkcji na masową skalę (cykl zmniejszania kosztów i zwiększania zysków, czyli ktoś inny może odtworzyć naszą pracę mniejszym nakładem sił)

Była też cała sesja poświęcona tworzeniom wersji "spike" oraz "prod". Znałem wcześniej pojęcie PoF, ale nie znałem pojęcia spike
Jedak największe wrażenie na mnie wywarły 2 ostatnie sesje. 

Pierwsza z nich, związana z ryzykiem utrzymywania aplikacji i związanymi z nią testami, próbowała odpowiedzieć na pytanie, czy "pokrycie kodu testami" to najlepszy sposób mierzenia oprogramowania? Zdaniem prowadzącego niekoniecznie. Zamiast bawić się w automat, powinniśmy rozdzielić naszą funkcjonalność, pod względem "skomplikowania" oraz "konsekwencji wystąpienia błędu (jak bardzo nas to zaboli)" w odniesieniu do "kontekstu" w jakim działamy (kontekst zazwyczaj zna tylko "biznes"). Idea, którą starał nam się przekazać Dan, polegała na tym, że nie każda część syst. musi być równo przetestowana (np. unit testami). Że czas, który poświęcili byśmy na pisanie testów dla mało znaczącego i stosunkowo prostego elementu, dużo lepiej jest spożytkować na dodatkowe testy tam, gdzie jak coś się wywali to nas (i nasz biznes) mocno zaboli. Dan wspomniał też, że zazwyczaj jak trafimy na element, który jest zarówno bardzo skomplikowany jak i bardzo istotny biznesowo, to... najczęściej da się go rozdzielić na kilka mniejszych elementów i... choćby testowanie jest wtedy łatwiejsze.

Druga, sesja, która mi się bardzo podobała, to była sesja związana z wycenianiem czasu trwania projektów. Coś, z czym często programiści mają problem. Jak się okazało, z ok ~40 os. na sali, tylko 4-5 czuły się w tym w miarę mocne. Dan podszedł do tematu nieco inaczej. Nie pokazywał nam jakiś "magicznych" metodologii przepowiadania przyszłości, a posłużył się metaforą przewidywania pogody. O ile w przypadku prognoz pogody, mamy do czynienia z 4 zmiennymi i... nikt nie wymaga od prognoz specjalnej dokładności, o tyle w przypadku tworzenia oprogramowania tych zmiennych jest znacznie więcej (często od 8 w górę), a... wszyscy wymagają od nas dokładnego przewidywania, nawet na kilka mieś. do przodu.
Zamiast tradycyjnego wróżenia z fusów nt. pracochłonności, Dan zaproponował odwrócenie procesu, tzn. biznes powinien się zadeklarować, ile jest w stanie na dany projekt wydać oraz ile planuje na nim zarobić. Podając pewne widełki, np. 50-150 tyś. dolarów, można przyjąć pewien okres prac programistycznych, np. 3-9 mieś., i na tej podstawie prognozować, czy skończenie projektu jest prawdopodobne. Nast. wraz z upływem czasu i wzrostem wydanych kosztów, śledzić na bieżąco i doprecyzowywać szacowanie np. po wydaniu 40 tyś. dol. spróbować oszacować, czy już mamy połowę, czy dopiero 1/3. I później, wraz z biegiem czasu i coraz lepszym poznawaniem tematu prognozować, czy dany projekt w ogóle ma sens.
Może i nie jest to super opis tego, o czym mówił Dan, ale jest to mniej więcej pogląd na wycenianie, jaki warto jest zacząć rozważać, skoro wcześniejsze próby wyceniania zwyczajnie się nie sprawdzają.

Ogólnie warsztaty z Danem były całkiem miłe i przyjemne. Gdybym miał je ocenić to? Hmmm, z całą pewnością były inspirujące i coś z nich wyniosłem, a pewne przemyślenia będę się starał włączyć do rzeczywistych projektów. Czego zabrakło? Z całą pewnością narzędzi, SCRUM-u, i innych "sformalizowanych" specyfik. Ale czy na pewno zabrakło? Hmmm.
A ocena? Pocz. myślałem o 7/10, ale obecnie, po powrocie do domu bardziej skłaniał bym się do 8/10.

Po warsztatach, poszedłem wziąć prysznic i nieco odpocząć, ponieważ tego samego dnia swoje spotkanie miała również Krakowska grupa .NET.

Do siedziby ABB dotarłem tuż przed rozpoczęciem prelekcji przez Maćka Aniserowicza i nie żałuję, bo wcześniejszą prezentację Michała o F# miałem okazję już wcześniej zobaczyć na spotkaniu Warszawskiej grupy .NET.
Maciek mówił o Dependency Injection i jak ktoś czyta jego bloga to w sumie niczego zaskakującego się podczas tej prezentacji nie dowiedział, za to to, co było miłe podczas tego spotkania, to ilość ludzi, jaka się zebrała (były problemy z miejscami stojącymi na sali), a także darmowe piwo i pizza (na koszt tretton37) podczas spotkania o losowaniu licencji na R# nie wspomnę ;)

Po spotkaniu większość devów udała się na miasto w celu dalszej dyskusji mniej lub bardziej palących nas spraw. Fajnie było znowu pobyć w wśród większej ilości, często bardziej doświadczonych devów i powymieniać się własnymi, często jakże różnymi doświadczeniami.