Advertise with Googlier.com  Blog Kokosa .NET i okolice, wydajność, architektura i wszystko inne http://blog.kokosa.net/ http://www.rssboard.org/rss-specification BlogEngine.NET 3.1.0.1 pl-PL http://blog.kokosa.net/opml.axd http://www.dotnetblogengine.net/syndication.axd Konrad Kokosa Blog Kokosa 0.000000 0.000000 Pro .NET Memory Management oficjalnie wydany! <p><img src="http://blog.kokosa.net/image.axd?picture=%2f2018%2f12%2fgccake.jpg"></p><p>Oficjalnie mogę już ogłosić, że <span style="font-weight: bold;">moja książka została opublikowana</span>! Jest dostępna w sprzedaży w różnej formie, na różnych sklepach. M.in. na <a href="https://www.amazon.com/Pro-NET-Memory-Management-Performance/dp/148424026X/" target="_blank">Amazon </a>czy <a href="https://www.apress.com/us/book/9781484240267" target="_blank">stronie wydawcy Apress</a>. Więcej szczegółów jest też na <a href="https://prodotnetmemory.com/" target="_blank">mojej dedykowanej stronie</a>. 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&amp;A. Pytania wymyśliłem sam:)</p> <h3>Dlaczego ta książka jest taka duża?!</h3> <p>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.&nbsp;</p> <center> <blockquote class="twitter-tweet" data-lang="pl"><p lang="en" dir="ltr">Received <a href="https://twitter.com/konradkokosa?ref_src=twsrc%5Etfw">@konradkokosa</a>&#39;s .net memory book while out of town, my SO sends this me over whatsapp. 😂 <a href="https://t.co/un2A85vi6I">pic.twitter.com/un2A85vi6I</a></p>&mdash; Martijn Laarman (@Mpdreamz) <a href="https://twitter.com/Mpdreamz/status/1070277787095891968?ref_src=twsrc%5Etfw">5 grudnia 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </center> <p>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!</p> <center> <blockquote class="twitter-tweet" data-lang="pl"><p lang="en" dir="ltr">It looks like the book is big enough that it was allocated on LOH 🤪<a href="https://twitter.com/konradkokosa?ref_src=twsrc%5Etfw">@konradkokosa</a> <br><br>Looking forward to reading it soon 📚😍<a href="https://twitter.com/hashtag/prodotnetmemory?src=hash&amp;ref_src=twsrc%5Etfw">#prodotnetmemory</a> <a href="https://twitter.com/hashtag/dotnet?src=hash&amp;ref_src=twsrc%5Etfw">#dotnet</a> <a href="https://t.co/gznBwymHxF">pic.twitter.com/gznBwymHxF</a></p>&mdash; Szymon Kulec (@Scooletz) <a href="https://twitter.com/Scooletz/status/1069991122552938496?ref_src=twsrc%5Etfw">4 grudnia 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </center> <p>Osobiście ostatecznie się z tego cieszę. Książka ma przynajmniej jakiś swój, rozpoznawalny charakter :)</p><h3>Co jest w tej książce, a czego tam nie ma?</h3><p>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, <a href="https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/" target="_blank">wcześniej czy później zaczyna ona przeciekać</a>. 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".&nbsp;</p><p>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&lt;T&gt;. </p><center> <blockquote class="twitter-tweet" data-lang="pl"><p lang="en" dir="ltr">Wowwww; this book has everything!</p>&mdash; Ben Adams (@ben_a_adams) <a href="https://twitter.com/ben_a_adams/status/1065594424346980353?ref_src=twsrc%5Etfw">22 listopada 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </center> 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.&nbsp;<p></p> <center> <blockquote class="twitter-tweet" data-lang="pl"><p lang="en" dir="ltr">Anyway, this book is not only for curious NET devs but for folks curious about how memory management is handled in practice in a managed languages. If you need to build complex mem mgt in C++ tightly coupled with OS virtual memory/pages, that&#39;s worth a read...</p>&mdash; Alexandre Mutel (@xoofx) <a href="https://twitter.com/xoofx/status/1069954037355819008?ref_src=twsrc%5Etfw">4 grudnia 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </center> <p>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 <a href="http://gchandbook.org/" target="_blank">książki The Garbage Collection Handbook</a> 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!</p><h3>Czemu od czerwcowego wpisu o napisaniu książki, dopiero teraz trafia ona do odbiorców?</h3><p>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ą".&nbsp;</p><h3>Jak wyglądał proces pisania, ile to zajęło? Jak wybrałem wydawcę? Czemu nie self-publishing? Ile zarobiłem?!</h3><p>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.&nbsp;</p><p>--</p><p>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 <a href="https://www.goodreads.com/book/show/41738065-pro-net-memory-management" target="_blank">Goodreads</a> (najlepiej pozytywne)!</p> http://blog.kokosa.net/post/pro-net-memory-performance-oficjalnie-wydany konrad@kokosa.net http://blog.kokosa.net/post/pro-net-memory-performance-oficjalnie-wydany#disqus_thread http://blog.kokosa.net/post.aspx?id=4f3a129b-585a-452d-a3c4-ead8b517024a Thu, 06 Dec 2018 15:04:00 +0100 Ciekawostki Ogólne Programowanie książka książki wydajność gc pamięć .net Konrad Kokosa http://blog.kokosa.net/pingback.axd http://blog.kokosa.net/post.aspx?id=4f3a129b-585a-452d-a3c4-ead8b517024a 0 http://blog.kokosa.net/trackback.axd?id=4f3a129b-585a-452d-a3c4-ead8b517024a http://blog.kokosa.net/post/pro-net-memory-performance-oficjalnie-wydany#disqus_thread http://blog.kokosa.net/syndication.axd?post=4f3a129b-585a-452d-a3c4-ead8b517024a Powoli wracam... m.in. na .NET Developer Days! <p>Choć już raz pisałem o <a href="http://blog.kokosa.net/post/jak-idzie-pisanie-czyli-co-to-znaczy-100" target="_blank">skończeniu prac nad książką</a>, był to wtedy tylko pewien ważny etap prac - skończenie pisania treści jako takiej. Od połowy czerwca do połowy sierpnia trwał żmudny proces kolejnych iteracji korekt, uwzględniających uwagi recenzentów. I ten etap mam już właściwie za sobą. Teraz mogę powiedzieć w pełni prawdziwie - <span style="font-weight: bold;">nie pracuję już nad książką</span>! Dalsze prace są teraz po stronie wydawnictwa...</p><p>W związku z tym powoli wracam do życia zawodowego i... właściwie każdego innego. Ponieważ prace nad książką były bardzo wyczerpujące (również finansowo), muszę się teraz odrobinę skupić na innych rzeczach (np. zarabianiu ;)). M.in. do końca roku mam już zarezerwowanych kilka bardzo fajnych szkoleń&nbsp;<a href="https://bottega.com.pl/trener-konrad-kokosa" target="_blank" style="background-color: rgb(255, 255, 255);">z ramienia Bottega IT Minds</a>.&nbsp;</p><p>Z tego też względu mój jesienny prelekcyjny kalendarz wygląda bardzo skromnie. <span style="font-weight: bold;">Występuję do końca roku 2018 tylko trzy razy</span> w Polsce. Na wiele konferencji CFP w ogóle nie wysłałem, kilku odmówiłem (kiedyś nadrobię!). Dlaczego zdecydowałem się jednak na te trzy wystąpienia i gdzie one będą?</p><p style="text-align: center; "><img src="http://blog.kokosa.net/image.axd?picture=%2f2018%2f08%2fdotnetdeveloperdays.jpg"></p><p><br></p><p>Pierwsze to, nie bójmy się tego powiedzieć, <span style="font-weight: bold;">pewne spełnienie moich marzeń - wystąpienie na .NET Developer Days</span>. Moim zdaniem to najciekawsza ogólnie-.NETowa konferencja w Polsce. Duże wydarzenie, z dużym rozmachem, świetni prelegenci (w większości o dużej renomie międzynarodowej). W zeszłym roku&nbsp;<a href="http://blog.kokosa.net/post/net-developerdays-2017-ustalanie-agendy" target="_blank" style="background-color: rgb(255, 255, 255);">byłem członkiem rady programowej</a>, mając realny wpływ na treści tam wygłaszane. Była to spora frajda, mieć wpływ na tak dużą i cenioną przeze mnie konferencję.</p><p>Jednak od lat sobie obiecywałem, że "kiedyś tu wystąpię". I udało się! W tym roku możecie mnie posłuchać - <a href="http://net.developerdays.pl/#agenda" target="_blank" style="background-color: rgb(255, 255, 255);">według agendy</a> - pierwszego dnia o 15:20 w sali B. Przygotowuję na tę okazję całkiem nowy temat, oczywiście w ramach ulubionych przeze mnie tematów .NET-internalso-wydajnościowych:</p><p style="text-align: center; "><img src="http://blog.kokosa.net/image.axd?picture=%2f2018%2f08%2fndd.png"></p><p>Całą agenda wygląda dla mnie ciekawie - ja z chęcią zostanę na konferencji na oba pełne dni. <span style="font-weight: bold;">Zapraszam - jeśli tam będziesz - podchodź, zagaduj! </span>Chętnie opowiem<span style="font-weight: bold;"> jaką frajdą jest pisanie książki...</span></p><p>Drugie wystąpienie to&nbsp;<a href="https://umbracofestival.pl/" target="_blank">Umbraco Poland Festival</a>. Co ja mam wspólnego z Umbraco? To, że stoi na .NET więc można się przyjrzeć jego wydajności :)</p><p>Ostatnie wystąpienie to <a href="https://dotnetos.org/" target="_blank">konferencja... którą samą współorganizuję</a>. Ale to już zasługuje na jeszcze jeden, osobny post.</p><p>Do zobaczenia, gdzieś tam!</p><br> http://blog.kokosa.net/post/powoli-wracam-m-in-na-net-developer-days konrad@kokosa.net http://blog.kokosa.net/post/powoli-wracam-m-in-na-net-developer-days#disqus_thread http://blog.kokosa.net/post.aspx?id=ba420968-c2f5-4146-9d32-fe206b3936f0 Thu, 30 Aug 2018 14:41:00 +0100 Konferencje .net konferencje Konrad Kokosa http://blog.kokosa.net/pingback.axd http://blog.kokosa.net/post.aspx?id=ba420968-c2f5-4146-9d32-fe206b3936f0 0 http://blog.kokosa.net/trackback.axd?id=ba420968-c2f5-4146-9d32-fe206b3936f0 http://blog.kokosa.net/post/powoli-wracam-m-in-na-net-developer-days#disqus_thread http://blog.kokosa.net/syndication.axd?post=ba420968-c2f5-4146-9d32-fe206b3936f0 Jak idzie pisanie czyli co to znaczy 100% <p style="text-align: left;">Minęły ponad&nbsp;2 lata odkąd <a href="http://blog.kokosa.net/post/Projekt-Ksiazka-czyli-jak-nie-zarabiac-przez-3-miesiace" target="_blank">ogłosiłem projekt "Książka"</a> 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 <a href="http://gynvael.coldwind.pl/" target="_blank">Gynvaelem Coldwindem</a>, <a href="http://blogs.tedneward.com/" target="_blank">Tedem Newardem</a> czy <a href="https://codeblog.jonskeet.uk/" target="_blank">Jonem Skeetem</a> 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.&nbsp;</p><p>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.</p><p>Wyczerpany, ale<span style="font-weight: bold;"> z przyjemnością mogę ogłosić, że pozwoliło mi to w końcu dobić do wymarzonego 100% (*)</span> w moim arkuszu śledzenia postępów:</p><p style="text-align: center; "><img src="http://blog.kokosa.net/image.axd?picture=%2f2018%2f06%2fbookprogress100.png"></p><p>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:</p><p style="text-align: center; "><img src="http://blog.kokosa.net/image.axd?picture=%2f2018%2f06%2fbookprogressgraph.png"></p><p>Pytanie co owe 100% znaczą? Niestety nie to, że <span style="font-weight: bold;">już teraz rozwieszam w pokoju hamak i czekam na dane sprzedaży książki</span>. 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, <span style="font-weight: bold;">rozdzial po rozdziale, uwzgledniam zawarte tam uwagi i dokonuję ostatecznej korekty</span> (dodając czasem co nieco nowego). Ten proces zajmie jeszcze kilka tygodni.&nbsp;</p><p>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...</p><p>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 :)</p><p>Tymczasem, wracam do korekty!</p><p><br></p><p><br></p><p><span style="font-size: 12px;">(*) Uprzedzając pytania, niedokładne 100% wynika z niedokładności "średniej słów per strona" względem napisanych słów:)</span></p> http://blog.kokosa.net/post/jak-idzie-pisanie-czyli-co-to-znaczy-100 konrad@kokosa.net http://blog.kokosa.net/post/jak-idzie-pisanie-czyli-co-to-znaczy-100#disqus_thread http://blog.kokosa.net/post.aspx?id=8a2f88bb-7173-4993-b6a3-5e2405d7c1f6 Wed, 20 Jun 2018 13:38:00 +0100 Ogólne osobiste przemyślenia książka refleksje Konrad Kokosa http://blog.kokosa.net/pingback.axd http://blog.kokosa.net/post.aspx?id=8a2f88bb-7173-4993-b6a3-5e2405d7c1f6 2 http://blog.kokosa.net/trackback.axd?id=8a2f88bb-7173-4993-b6a3-5e2405d7c1f6 http://blog.kokosa.net/post/jak-idzie-pisanie-czyli-co-to-znaczy-100#disqus_thread http://blog.kokosa.net/syndication.axd?post=8a2f88bb-7173-4993-b6a3-5e2405d7c1f6