Blog Kokosa

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

NAVIGATION - SEARCH

Advanced .NET Debugging - recenzja

Nie wiem czy macie prawo jazdy, ale nawet jeśli nie, to pewnie zrozumiecie wysublimowaną analogię, którą zaraz przeczytacie. Otóż jeżdżąc samochodem i mniej więcej kojarząc przepis drogowe, możemy jeździć z powodzeniem całe życie. Jednak chcąc być profesjonalnym, zawodowym kierowcą-wyjadaczem, spędzającym w samochodzie całe dnie, prędzej czy później ubrudzimy sobie ręce smarem, grzebiąc w silniku. Podobnie widzę życie .NET developera. Zdecydowana większość może "jeździć" bardzo dobrze, znając składnię, wzorce projektowe, sztuczki i kruczki. I będą profesjonalistami. Ale jest mniejsza grupa geeków, nerdów, wyjadaczy, którym to nie wystarcza. Chcą zrozumieć internalsy CLR, chcą wiedzieć jak to wszystko działa pod spodem, jak wgrzebać się w pamięć i jak używać tak surowych narzędzi jak WinDbg. Osobiście myślę, że to jest po prostu ciekawe i każdego może kiedyś zainteresować, choćby na chwilę. Popularność czerwcowych devWarsztatów, które ja oraz Sebastian Solnica zdecydowaliśmy się poprowadzić, niejako to potwierdzają.

Dla takich osób istnieje książka, którą mogę z czystym sumieniem polecić - tytułowe Advanced .NET Debugging autorstwa Mario Hewardta. Więcej...

O talentach... czyli właśnie Ty masz talent.

A właściwe o tym, że właśnie Ty masz talent! I nie ważne co Ci mówią inni, co Ci mówi świat, ani tym bardziej - co sam o tym myślisz. Skąd taka pewność? Bo tak. Stary bardzo nie jestem, ale coś tam już wiem, wiele też się dowiedziałem od wielokrotnie mądrzejszych ode mnie.

Zacznijmy jednak od początku. A zawsze najlepiej jest zacząć od siebie. Sam bowiem wiele lat borykałem się z tematem talentów. Właściwie to przez pierwsze kilkanaście lat swojego życia raczej się nim nie zajmowałem, bo mając nieliche problemy z poczuciem własnej wartości, temat czy mam jakieś talenty wydawał się kosmicznie odległy. Coś mnie interesowało, coś mniej, ale raczej skupiałem się na tym, w czym talentu nie mam. Nie mam talentu do sportu, nie mam talentu do gadania z ludźmi, nie mam talentu do prowadzenia samochodu. Mogłem tak długo wymieniać i się dołować. I powiem wam jedno, krótko i zwięźle - bullshit! Więcej...

HTC Vive - recenzja

vive1

Wpis nietechniczny też czasem musi się pojawić. A okazja jest dobra, bo miałem wczoraj przyjemność pobawić się nową na rynku zabawką - zestawem do rzeczywistości wirtualnej HTC Vive. Wszystko dzięki firmie SteamBytes, z którą to mnie łączą różne konotacje personalne. Fajna firma, zajmuje się tworzeniem gier na urządzanie mobilne z edukacyjnym zacięciem, nabyła sobie właśnie ten VR. A skoro tak, to czemu nie korzystając z zaproszenia, przy okazji trochę się pobawić?

Temat VR towarzyszy mi od dzieciństwa i od dzieciństwa mi się jakoś marzy. Pewnie to wpływ Kosiarza umysłów czy Johnego Mnemonica. Pamiętam jak dziś pewien zryw w tym kierunku w roku 1995 w postaci gogli VFX1. Jednak nie oszukujmy się, wtedy było jeszcze za wcześnie. Dwa wyświetlacze LCD o rozdzielczości 263 x 230 pikseli i 256 kolorów?! Po tamtym falstarcie bardzo długo nic się nie działo. Oczywiście pojawiały się różne specjalistyczne sprzęty do virtual i augmented reality ale nic nawet nie próbowało trafiać w segment konsumencki. Więcej...

Microsoft BUILD Tour Warsaw

buildtour_small

Jeśli ktoś ma coś wspólnego z Microsoftem, szczególnie w kontekście programistycznym, na pewno kojarzy konferencję Build - duże, trzydniowe wydarzenie dla developerów. W tym roku odbyło się w dniach 30 marca - 1 kwietnia w San Francisco. Ze względu na raczej kosmiczną cenę rejestracji (w tym roku 2195 $) oraz koszty przelotów i pobytu tam - dla dużej części świata, a już na pewno dla "przeciętnego Polaka", jest to wydarzenie raczej mało osiągalne. Kojarzy się zatem głównie z live streamingiem na Channel 9 i... tyle. Więcej...

“Daj się poznać” - podsumowanie

DajSiePoznac-logo-small

Nie będę oryginalny pisząc, że nie jestem oryginalny i zbliżający się koniec konkursu "Daj się poznać" odnotuję krótkim podsumowaniem. A zatem oto i podsumowanie.

Celem mojego udziału nie było skończenie projektu, bo realnie patrząc, wiedziałem, że się z tym nie wyrobię. Chciałem jednak zmotywować się do działania. O motywacjach pisałem przed rozpoczęciem konkursu. Biorąc pod uwagę ogrom dodatkowych “zaangażowań”, które miałem przez ten trzymiesięczny okres, za

największy sukces uważam fakt, że w ogóle dotrwałem do końca!

Ale przechodząc od ogółu do szczegółu, co się udało, a co nie? Więcej...

Pierwsze kroki z GraphX

Zgodnie z wynikami wcześniejszych poszukiwań, do rysowania grafów w projekcie zamierzam używać biblioteki GraphX. Co prawda, jak słusznie zauważył w jednym z komentarzy Karol, istnieje bardzo ciekawa alternatywa. Syncfusion udostępnia bowiem swoje biblioteki za darmo w ramach licencji Community, dla projektów Open Source. A mają tam naprawdę mnóstwo świetnych kontrolek. I zapewne docelowo ich użyję - do zbudowania ładnego GUI. Jednak do rysowania grafów na razie wciąż spróbuję użyć GraphX, bo wydaje mi się bardziej zoptymalizowany do rysowania dużych zbiorów danych.

Na początku optymistyczne spróbowałem użyć tych kontrolek od razu w projekcie F#. Jednak odbiłem się od ściany licznych mniejszych lub większych problemów. Musiałem zatem zrobić krok wstecz i przygotować minimalny, działający przykład w starym, dobrym C#. W tym celu odchudziłem jak się tylko dało przykład .\GraphX\Examples\SimpleGraph i stworzyłem nowy projekt WPF. Jak zatem używa się GraphX? Więcej...

Projekt "Książka" czyli jak nie zarabiać przez 3 miesiące?

just-relax-small

Pracuję na etacie od 10 lat. O ile mnie pamięć nie myli, dokładnie 10 lat - pierwszy miesiąc to był właśnie Maj 2006 roku. Trzeba przyznać, że czas ten minął błyskawicznie i nie mogę powiedzieć, że był zawodowo jakimś ciężkim znojem. Zwłaszcza, że jak już pisałem, miałem rok przerwy i byłę fotografę. Były oczywiście okresy trudniejsze i okresy przyjemniejsze, ale praca w kamieniołomach to nie była.

Z drugiej strony jednak 10 lat to obiektywnie kawał czasu. I dobry moment, żeby się na chwilę zatrzymać i spojrzeć w tył. Zatrzymałem się zatem i popatrzyłem. Wiele tam nie zastałem - moja praca była ok i pracodawcy byli jak najbardziej ok, ale można by to wszystko określić raczej terminem "stagnacja". Prywatnie działo się bardzo wiele - ze ślubem na czele - ale mam na myśli tę zawodową część życia. Ostatni rok zaś, jak można zauważyć, w końcu mnie "ruszyło" i postanowiłem zacząć realizować się w dawno mnie kuszących i pociągających obszarach. Zaktywowałem się w społeczności, zacząłem być prelegentem, prowadzić bloga. Wszystko to jest super i jestem pewny, że to część mnie, a nie chwilowe zafascynowanie. O motywacjach pewnie jeszcze kiedyś napiszę, ale teraz chciałbym powrócić do tytułowego pytania. Więcej...

WPF i komponent do grafów

Trochę sporo ostatnio czasu w ramach projektu poświęciłem na naprawianie biblioteki ClrMd i pisania poradników o GitHubie. W ramach rdzennego rozwoju projektu skupiłem się na neo4j, teraz pora najwyższa wrócić do interfejsu i zastanowić się nad ważnym pytaniem - czego użyję jako biblioteki rysującej grafy. Na pierwszy ogień poszło przeglądanie “internetów” i wyszukanie opcji, których będę mógł użyć w WPF. Wynik tych poszukiwań nie jest przytłaczający. Wygląda na to, że jest pewne pole do popisu dla osoby, która napisze funkcjonalny i ładny komponent WPF do rysowania grafów. Ja w ramach tego projektu nie mam na to czasu, więc pozostaje mi korzystać z gotowców. Więcej...

Naprawa buga i Pull Request na przykładzie ClrMd

W poprzednich częściach znęcałem się nad biblioteką ClrMd i zawartym w niej niedopatrzeniu – poważnym problemie z deadlockiem. Korzystając, że jest to Open Source dostępny na GitHubie, czuję się w obowiązku spróbować dostarczyć oficjalną poprawkę. A to świetna okazja do napisania artykuliku o tym, jak to formalnie przeprowadzić.

Mając namierzony błąd w ukochanym projekcie, zacząć musimy od rzeczy podstawowej - issue. Jeśli błąd zgłosił już ktoś inny, na razie nie musimy się tym przejmować. Ale jeśli jesteśmy “szczęściarzami” i pierwsi coś odkryliśmy, zanim przystąpimy do dalszych działań błąd taki najlepiej formalnie zgłosić. Więcej...

MemoryVisualizer - Paket - dodanie Neo4j

W poprzednim wpisie zmieniłem system zarządzania zależnościami z Nugeta na Paket. Ściąganie paczek Nugetowych skonwertowało się automatycznie za pomocą dołączonego narzędzia, teraz pora dodać główny cel tych zabiegów - archiwum z przenośną (samowystarczalną) wersją Neo4j.

Jest ona dostępna pod poniższym adresem i trochę waży:

$ wget http://neo4j.com/artifact.php?name=neo4j-community-3.0.1-windows.zip
...
Length: 62661995 (60M) [application/zip]

Aby dodać taką zależność musimy ją dodać do pliku packet.dependencies:

$ more paket.dependencies
source https://www.myget.org/F/roslyn-nightly/
source https://www.myget.org/F/dotnet-core
source https://www.nuget.org/api/v2/
framework >= net45

nuget FsXaml.Wpf 0.9.9
nuget Microsoft.Diagnostics.Runtime 0.8.31-beta

http http://neo4j.com/artifact.php?name=neo4j-community-3.0.1-windows.zip

Więcej...