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)!

Trzej Dot Netos - pierwsze programistyczne tourne w Polsce!

Uwaga, uwaga!

Chciałem z wielką przyjemnoścą ogłosić akcję Trzej Dot Netos. Jestem co najmniej podekscytowany bo przygotowania trwają już od kilku miesięcy. I oto wreszcie jest i mogę oficjalnie, publicznie ogłaszać!

Ale co?

Pakujemy się we trójkę w samochód i wyruszamy w Polskę5 miast, dzień po dniu. Trzech .NETomaniaków. Trzej Dot Netos w trasie. Codziennie wieczorem inne miasto, inni ludzie ale te same tematy - wydajność .NET, wnętrza .NET, zaawansowane tematy .NET. Tematycznie - ostra jazda bez trzymanki. Litości nie będzie. Jeśli nudzisz się na sesjach o .NET na innych konferencjach, teraz powinieneś być zadowolony! Oczywiście nie ma to być sztuka dla sztuki. Wszystkie poruszane tematy będą praktyczne i życiowe. Ale nie będziemy nudzić, że "typy referencyjne są na stercie, a wartościowe na stosie itd. itp.". Oj nie nie! Więcej...

Niedzielnik Kokosa - 19-11-2017

Internet codziennie zalewa nas informacjami. Jeśli nie masz czasu tego wszystkiego ogarnąć, oto garść wybranych przeze mnie, najciekawszych treści, na które natknąłem się w tracie ostatniego tygodnia:

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ć

Święto .NET w Warszawie - już za tydzień!

Drugi tydzień października zapowiada się na tyle ciekawie w światku .NET, że aż postanowiłem napisać o tym post. By nic nikomu nie utknęło. Ofert do zdobycia bardzo ciekawej wiedzy są zarówno darmowe jak i płatne. Oto podsumowanie:

  • 17.10 (wtorek) wieczorem od 18 odbywa się 112. spotkanie Warszawskiej Grupy .NET z gościem specjalnym: Sasha Goldshtein - Squeezing the Hardware to Make Performance Juice (prezentacja w j. angielskim) oraz mną jako supportem. Sashy, autora książki Pro .NET Performance, mam nadzieję nie trzeba nikomu przedstawiać. Rejestrujcie się koniecznie!
  • 18.10 (środa) odbywają się całodniowe warsztaty z kilkoma z prelegentów konferencji .NET Developer Days. W tym również z Sashą - Production Performance and Troubleshooting of .NET Applications. Uwaga: opcja płatna!
  • 19-20.10 (czwartek i piątek) odbywa się konferencja .NET Developer Days. O tym czemu uważam to za świetną opcję pisałem już w maju. Uwaga: opcja płatna!
  • 21.10 (sobota) odbywają się 32. DevWarsztaty pod tytułem Microservice development (with examples in NServiceBus) z Szymonem Kulcem i Tomaszem Masternakiem. O tym, że warto ich posłuchać w tym temacie też mam nadzieję nie muszę nikogo przekonywać. Uwaga: zapisy ruszają 11.10 o 9 rano!

Nic nie pozostaje tylko brać kalendarze w dłoń i planować! Życzę wszystkim udanych eventów, a jeśli wybieracie się na konferencję to przypominam moją instrukcję obsługi ;)

Niedzielnik Kokosa - 20-08-2017

Internet codziennie zalewa nas informacjami. Jeśli nie masz czasu tego wszystkiego ogarnąć, oto garść wybranych przeze mnie, najciekawszych treści, na które natknąłem się w tracie ostatniego tygodnia:

Niedzielnik Kokosa - 13-08-2017

Internet codziennie zalewa nas informacjami. Jeśli nie masz czasu tego wszystkiego ogarnąć, oto garść wybranych przeze mnie, najciekawszych treści, na które natknąłem się w tracie ostatniego tygodnia:

Niedzielnik Kokosa - 06-08-2017

Internet codziennie zalewa nas informacjami. Jeśli nie masz czasu tego wszystkiego ogarnąć, oto garść wybranych przeze mnie, najciekawszych treści, na które natknąłem się w tracie ostatniego tygodnia:

Niedzielnik Kokosa - 30-07-2017

Internet codziennie zalewa nas informacjami. Jeśli nie masz czasu tego wszystkiego ogarnąć, oto garść wybranych przeze mnie, najciekawszych treści, na które natknąłem się w tracie ostatniego tygodnia:

Niedzielnik Kokosa - 23-07-2017

Internet codziennie zalewa nas informacjami. Jeśli nie masz czasu tego wszystkiego ogarnąć, oto garść wybranych przeze mnie, najciekawszych treści, na które natknąłem się w tracie ostatniego tygodnia: