Blog Kokosa

.NET i okolice, wydajność, architektura i wszystko inne

NAVIGATION - SEARCH

Pro .NET Memory Management oficjalnie wydany!

Oficjalnie mogę już ogłosić, że moja książka została opublikowana! Jest dostępna w sprzedaży w różnej formie, na różnych sklepach. M.in. na Amazon czy stronie wydawcy Apress. Więcej szczegółów jest też na mojej dedykowanej stronie. Być zatem nie może, że nie napiszę o tym ważnym wydarzeniu na mojej blogu! Żeby nie czynić tego tekstu nudną ścianą tekstu, proponuję krótkie Q&A. Pytania wymyśliłem sam:)

Dlaczego ta książka jest taka duża?!

To pierwsze pytanie, które może się Wam nasunąć. Na Twitterze wiele osób "śmieszkuje" z jej rozmiaru. Fakt, te ponad 1000 stron i ponad kilogram wagi robi mogą robić pewne wrażenie, nawet na mnie! Nie było moim celem napisanie takiej dużej książki, nie wyznaczałem sobie żadnych celów na tym polu. Ale też żadnych granic. Po prostu chciałem napisać to co wydawało mi się istotne i przydatne w kontekście pamięci w .NET. A że temat jest naprawdę obszerny, gdy się w niego wgłębić, to oto i efekt. Innymi słowy, nawet patrząc na ten kilogram tekstu, nie widzę większych fragmentów, których bym chciał się pozbyć. Może poza paroma drobnymi fragmentami, które bym napisał zwięźlej. Ale to nie zrobiłoby wielkiej różnicy. 

Nakłada się na to jeszcze aspekt samego wydawcy. Początkowo spodziewałem się około 500 stron, ostatecznie skończyłem na 800. Ale w trakcie tych ponad dwóch lat pisania Apress zmienił szablon swoich książek. Na prośby czytelników zwiększył czcionki, trochę marginesy - podobno źle się ludziom czytało drobny maczek. Ja go osobiście lubię ale pola do negocjacji nie było wiele. Książka z dnia na dzień z 800 stron przekształciła się w... 1200 stron. Na szczęście drobne sugestie z mojej strony zredukowały tę liczbę do obecnych 1072!

Osobiście ostatecznie się z tego cieszę. Książka ma przynajmniej jakiś swój, rozpoznawalny charakter :)

Co jest w tej książce, a czego tam nie ma?

Można się spotkać z głosami, że skoro zarządzanie pamięci w .NET jest automatyczne, to o czym tam pisać te tysiąc stron? I tak i nie. Automatyczne zarządzanie pamięcią i Garbage Collector są wygodną dla programisty abstrakcją. Ale jak każda abstrakcja, wcześniej czy później zaczyna ona przeciekać. Programując coś więcej niż projekty na studiach, prędzej czy później, bardziej lub mniej, w końcu zderzamy się z takimi przypadkami. Okazuje się, że warto lepiej zrozumieć jak coś działa i jak tego używać - nawet jeśli jest "automatyczne". 

Poza tym, "zarządzanie pamięcią" to nie tylko GC. W książce opisuję pojęcia finalizacji, po co jest IDisposable, po co są struktury. Co się ostatnio w C# zadziało na tym polu. Po co jest i jak działa Span<T>.

Co więcej, jedną z głównych moich ambicji wobec tej książki było nie tylko opisanie jak coś działa, ale również dlaczego zostało tak zaprojektowane. Ta książka ma dać Wam poczucie, że rozumiecie nie tylko .NET GC ale każdy inny napotkany potem GC będzie również dla Was łatwiejszy do zrozumienia. 

W książce nie zrealizowałem natomiast jednej z moich pierwotnych ambicji - obszernego porównania .NET GC z innymi GC. I dobrze. To zbyt obszerny temat i do tego niezbyt praktyczny dla programisty .NET. Jest to fajny temat na osobną książkę hmm.... Pierwotnie też, będąc m.in. pod wrażeniem książki The Garbage Collection Handbook i jej akademickiego "sznytu", sam chciałem zawrzeć dużo więcej teorii u siebie. Pierwotnie wręcz książka była podzielona na część "teoretyczną" (co i jak z GC) i "praktyczną" (implementacja w .NET). Ale nijak mi się to nie spinało. Pierwsza część byłaby nudna i niepraktyczna, a jednak wymagana do zrozumienia części drugiej. Ostatecznie więc gdzieś się one przenikają w każdym rozdziale (przy znacznym uszczupleniu części teoretycznej). I też dobrze!

Czemu od czerwcowego wpisu o napisaniu książki, dopiero teraz trafia ona do odbiorców?

Jak widać prace teoretycznie skończyłem już w czerwcu [http://blog.kokosa.net/post/jak-idzie-pisanie-czyli-co-to-znaczy-100] więc skąd takie opóźnienie?! Otóż samo napisanie tekstu to jedno, ale potem przerzucenie go przez tryby recenzji, poprawek i zatwierdzania - to drugie. Teoretycznie czas ten nie wymagał z mojej strony wiele pracy, z wyjątkiem kilku okresów bardzo intensywnego "zatwierdzania". Jednak jeśli dodać do tego tworzenie stron, marketing i inne sprawy formalne - nadal tak naprawdę "pracowałem nad książką". 

Jak wyglądał proces pisania, ile to zajęło? Jak wybrałem wydawcę? Czemu nie self-publishing? Ile zarobi��em?!

Są to wszystko świetne pytania. Na tyle, że planuję większy post-retrospektywę na ten temat. Z niego dowiecie się wszelkich szczegółów jak to u mnie wyglądało. 

--

A może Wy macie jakieś pytania? Na wszystkie chętnie odpowiem. Szczególnie na te związane z procesem wytwórczym, na które odpowiem we wspomnianym dedykowanym poście. Czekam też na pierwsze recenzje na Amazon albo Goodreads (najlepiej pozytywne)!

Jak idzie pisanie czyli co to znaczy 100%

Minęły ponad 2 lata odkąd ogłosiłem projekt "Książka" w maju 2016 roku. Wtedy jeszcze nie zdawałem sobie sprawy jak potężne jest to przedsięwzięcie, choć oczywiście wiedziałem, że łatwe nie jest. Rozmowy z Gynvaelem Coldwindem, Tedem Newardem czy Jonem Skeetem utwierdzały mnie w narastającym przekonaniu, że faktycznie łatwo nie będzie. I nie było. Przez ten okres pracowałem na etacie, brałem urlopy płatne i bezpłatne, w końcu odszedłem z etatu, robiąc tylko okazjonalne szkolenia oraz konsultacje. Wszystko to jednak było za mało, by pracować nad książką w rozsądnym tempie. 

Ostatecznie od stycznia 2018 r. nie robię właściwie nic tylko piszę bite 6-8 godzin dziennie, dzień w dzień. Widać to zresztą choćby po zerowej aktywności na tym blogu.

Wyczerpany, ale z przyjemnością mogę ogłosić, że pozwoliło mi to w końcu dobić do wymarzonego 100% (*) w moim arkuszu śledzenia postępów:

Ponieważ skrupulatnie, codziennie, od początku pisania obecnej wersji (bo była też wersja alfa i beta w formie notatek), widzę dokładnie jak dopiero to ostatnie półrocze pomogło w osiągnięciu tego celu:

Pytanie co owe 100% znaczą? Niestety nie to, że już teraz rozwieszam w pokoju hamak i czekam na dane sprzedaży książki. Znaczą tyle, że wszystkie rozdziały zostałe napisane i sformatowane, wysłane do wydawnictwa do procesu tech review (który też już jest w większości zakończony). Wraz ze spływaniem owych recenzji, rozdzial po rozdziale, uwzgledniam zawarte tam uwagi i dokonuję ostatecznej korekty (dodając czasem co nieco nowego). Ten proces zajmie jeszcze kilka tygodni. 

Dopiero potem pałeczkę przejmuje wydawnictwo, rozpoczynając fazę produkcji (różnej maści korekty, skład, ilustracje itp. itd.). Nastąpi to zatem, gdzieś w okolicach przełomu lipca i sierpnia. W tym momencie również oficjalnie ogłaszana jest książka - tzn. jej tematyka, autor, tytuł, planowana data publikacji. Niestety, do tego czasu jeszcze oficjalnie i publicznie nie mogę mówić o tym kto ją wydaje i o czym dokładnie jest...

Uwzględniając etap produkcji, szacuję, że sama publikacja nastąpi... jesienią. Jest to myślę wystarczająco nieprecyzyjne określenie, by było prawdziwe :)

Tymczasem, wracam do korekty!



(*) Uprzedzając pytania, niedokładne 100% wynika z niedokładności "średniej słów per strona" względem napisanych słów:)

Czy i jak się rozwijać w IT?

Miałem ostatnio przyjemność brać udział w bardzo ciekawej akcji - programistyczne Devrekolekcje. Za całym tym zamieszaniem stał Grzegorz Kotfis (gratulacje!), któremu udało się zachęcić wiele ciekawych osób do wypowiedzenia się na ważne i interesujące tematy. Odnosiły się one po kolei do kwestii, które poruszył Uncle Bob w swojej prezentacji The Scribe's Oath mającej być swoistą przysięgą programisty. Polecam zarówno oryginalną prezentację jak i wszystkie odcinki samych devrekolekcji.

Ja w ramach tej akcji wybrałem bliskie memu sercu hasło:

"I will never stop learning and improving my craft"

Opowiadam o nim około 10 minut i zachęcam oczywiście do obejrzenia. Jednak w tym poście chciałem umieścić moje główne przesłanie i odrobinę je rozwinąć w stosunku do devrekolekcji

Więcej...

Podsumowanie roku 2017

Mało ostatnio pisuję na blogu bo 110% sił wkładam w pisanie książki. Jednak podsumowania roku 2017 nie mogę sobie odmówić. Po pierwsze, to już tradycja - podsumowałem rok 2016 oraz rok 2015. Po drugie, może to kogoś zainteresuje. Po trzecie, to wartościowy dla mnie materiał, nad którym muszę się zastanowić i który jest dobrym checkpointem przed rokiem następnym. Są tu umieszczone tylko sprawy zawodowe. Zatem nie przedłużając.

Z czego jestem zadowolony ("sukcesy"):

  • zmiana pracy - zawodowo największa, duża zmiana. Podjęcie dość dla mnie odważnej decyzji by porzucić wygodny i bezpieczny etat w banku Millennium na rzecz własnej działalności. Pierwsze miesiące zresztą już podsumowałem tu i tu.  
  • uzyskanie tytyłu MVP - jest to wyróżnienie, z którego się bardzo cieszę. Nie dość, że to przyjemne poklepanie po ramieniu, to jeszcze zapewnia dodatkowe atrakcje. Zarówno materialne (różnorakie subskrypcje itp.) jak i niematerialne (ciekawe znajomości, społecznościowe akcje jak zlot MVP w Belgradzie). 
  • praca nad książką - ruszyła z kopyta i pierwszy raz zaczynam wierzyć, że w końcu to skończę. Obecny grafik kończy się z końcem maja więc już w wakacje...
  • szkolenia komercyjne - stały się jednym ze źródeł utrzymania jak i satysfakcji. Świetna rzecz!
  • wiele prelekcji (naliczyłem 12) - w tym chyba rekordowe warszawskie 4Developers gdzie miałem dwie godzinne sesje i jeszcze półtoragodzinny panel dyskusyjny :)
  • pierwszy webinar online - na Wroc# Online opowiadałem o różnych architekturach
  • pierwsze nagranie ala vlogerskie czyli udział w Devrekolekcjach - na jeden z najbardziej interesujących mnie tematów czyli jak i czy się rozwijać w IT
  • przebyłem w podróżach służbowych po Polsce prawie 5000 km odwiedzając wiele różnych firm na konsultacjach i szkoleniach
  • utrzymanie bloga - co prawda jedynie w stanie śpiączki ale zawsze to coś...
  • projekty poboczne - https://github.com/kkokosa/Tune oraz http://tooslowexception.com/zero-garbage-collector-for-net-core

Z czego jestem zadowolony... nie bardzo ("porażki"):

  • wydanie książki - rok 2017 miał być rokiem wydania książki jednak nie udało się. Jednak nie mam sobie wiele do zarzucenia. Szybciej po prostu się nie dało, a przecież nie próżnowałem. Nie traktuję więc tego jako porażki. Jednak patrząc na plany na rok 2017 jest to najważniejszy niezrealizowany punkt więc musi się tu znaleźć.
  • blog - chciałbym pisać więcej. M. in. szkoda mi Niedzielnika Kokosa - wymaga mało nakładu pracy. A i tak nie udaje mi się go ogarnąć. Na pewno chciałbym też pociągnąć dalej swoje interaktywne opowiadanie

Plany:

Tego za dużo by tu o tym mówić, ostatnio lubię planować... :) 

Podsumowując:

Życzę wszystkim jak najbardziej udanego roku 2018 - zarówno zawodowo, jak i pod każdym innym, jeszcze ważniejszym względem!

Na swoim - kolejne trzy miesiące: do roboty!

W ramach swojej podróży "na swoje" postanowiłem trochę tę czynność upublicznić. I tak jak miałem garść przemyśleń po pierwszym miesiącu, tak mam i po trzech kolejnych. 

Żeby nie przedłużać, pozwolę je sobie wypunktować. Otóż przez ostatnie trzy miesiące "na swoim"...

...było pozytywne:

  • przebyłem w podróżach służbowych po Polsce prawie 5000 km będąc po trzy razy w Krakowie i Gdańsku oraz raz w Poznaniu, odwiedzając siedem różnych firm na konsultacjach i szkoleniach spędzając w nich w sumie 16 dni - dało mi to potężną dawkę wiedzy, motywacji i ciekawego doświadczenia
  • udał mi się całkiem niezle artykuł Zero Garbage Collection - pojawił się m.in. w The week in .NET, The Morning Brew, dotNET Weekly, CSharpDigest itd. itp. To taki mój pierwszy powszechny post więc się cieszę. Widać zalety pisania po angielsku
  • jeszcze większym zainteresowaniem niż powyższy artykuł cieszyły się informacje o moim pobocznym projekcie Tune, który nie dość, że jest mi potrzebny do książki to jeszcze daje dużą frajdę w pisaniu
  • miałem dwie prelekcje na konferencjach i na dwóch meetupach, w tym po raz pierwszy z "soft talkiem", z którym chyba będę podróżował dalej (najbliżej w listopadzie na rg-dev w Rzeszowie):

  • jestem zachwycony i non-stop używam Toggl - co do minuty wiem ile zajmuje mi każda z moich aktywności typu przygotowanie do prezentacji, szkolenia, pisanie książki itd.
  • grałem 2 godziny w Firewatch, 2 godziny w Inside, 9 godzin w No Man's Sky i 2h w Ori and the Blind Forest :]

...jest do poprawy:

  • nie trudno sobie wyobrazić, że ze względu na te wszystkie podróże moja praca nad książką ucierpiała - przez najbliższe miesiące zmieniam priorytety i koncentruję się na niej
  • moje metody pracy produktywnej m.in. pomodoro są... wymagające - wciąż się ich trzymam ale z różną skutecznością. Czasem "pomidor" trwa u mnie 50 i więcej minut co jest bez sensu z punktu widzenia zmęczenia umysłu. Do poprawy.
  • sztuka odmawiania. Klęska urodzaju? Czasem muszę z żalem odmówić pewnym zleceniom i innym propozycjom. Jest to dla mnie trudne bo są to rzeczy ciekawe i/lub dochodowe. Ale się nie roztroję (bo rozdwajam się chyba już). Tylko co jak urodzaj się skończy, będzie lipa...
  • sporo zajęć więc wypadły mi z harmonogramu niedzielniki - koniecznie chciałbym do nich wrócić

Instrukcja obsługi konferencji

Październik, jesień, sezon konferencyjny w pełni. Część wydarzeń już za nami, sporo jeszcze przed nami. Co robić wybierając się na konferencję? Jak do niej podejść, czego oczekiwać? Jestem konferencjo-maniakiem i uważam, że taka forma aktywności bardzo dużo może nam zaoferować. Ale wiele też zależy właśnie od tego, jak takową konferencję przeżyjemy. Na podstawie swoich doświadczeń (głównie błędów) oraz rozmów z innymi, proponuję krótką "instrukcję obsługi", która powinna pozwolić uzyskać jak najwięcej satysfakcji i cennej wiedzy. Piszę to w kontekście konferencji IT ale wydaje się być to instrukcja stosowalna do konferencji z każdej dziedziny. Nie przedłużając zatem... Więcej...

Na swoim - pierwszy miesiąc: produktywność, głupcze!

W ramach swojej podróży "na swoje" postanowiłem trochę tę czynność upublicznić. Nie będę publikował comiesięcznych raportów finansowych, bo na razie nie ma co publikować. Ale mam garść przemyśleń po pierwszym miesiącu i chciałem się nimi podzielić. Mam nadzieję, że jeśli ktoś z Was myśli o podobnych ruchu to może to wydać się interesujące. Więcej...

Konrad 2.0 czyli praca na swoim


I stało się. Odszedłem z etatu w Banku Millennium i idę "na swoje". Dziś właśnie jest mój pierwszy dzień "wolności".

Gdy w kwietniu 2015 roku po raz pierwszy występowałem na WG.NET, serce mało nie wyrwało mi się z klaty ze stresu. Jak dziś pamiętam jak wracając do domu musiałem wstąpić po dużą porcję frytek by uzupełnić spalone z tremy zapasy. To była realizacja od dawna drzemiącego, ale mocno uśpionego we mnie marzenia, by coś "porobić". Byłem już wtedy mocno wkręcony w udzielanie się na StackOverflow, ale publiczne wystąpienie to był kolejny etap. Połknąłem bakcyla totalnie. To mnie kręci i to lubię. Bardzo liczny i pozytywny odzew w ankietach tylko nakręcił mnie dodatkowo.  Więcej...


Jak idzie pisanie książki?


Wiele osób wie o moim "projekcie książka". Tytułowe pytanie słyszę bardzo często. Tak, tak, mówię o Tobie i o Tobie i o Tobie.. ;) To bardzo fajne, miłe i motywujące. Odpowiadałem więc i odpowiadam na to pytanie osobiście już setki razy. Pomyślałem, że odpowiem też publicznie, w paru słowach. Dzięki temu odpowiedź może być pełniejsza i bardziej uporządkowana. A zatem odpowiadam :) Więcej...


AAAAAby zostać MVP

mvp_self

AAAAAby zostać MVP... zgłoś się sam! Program Microsoftu o nazwie Most Valuable Proffesional istnieje już od wielu, wielu lat i jest swoistym, honorowym wyróżnieniem osób z pasją, które działają na rzecz społeczności, szerząc wiedzę i dzieląc się doświadczeniem. Ludzie którzy inspirują, organizują i pomagają. Tak przynajmniej ja na ten projekt patrzę i tak chciałbym MVP kojarzyć. Jakieś przykre komentarze, że to "marketingowcy Microsoftu" mnie nie interesują. Zawsze w takich sytuacjach zamiast się bez sensu sprzeczać, wolę zastanowić się co można zrobić by coś zmienić. Kategoria Visual Studio and Development Technologies czeka! Więcej...