Blog Kokosa

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

NAVIGATION - SEARCH

Konkurs DevDay 2016 - darmowa wejściówka

logo

TL;DR: - Ludzie, ludzie, zwariowałem! Każdy szczęściu dopomoże, każdy dzisiaj wygrać może! Do wygrania wejściówka na konferencję DevDay o wartości 650 PLN. O zasadach konkursu na końcu wpisu.

Choć mogę powiedzieć, że "jestem .NETowcem", to staram specjalizować się w temacie ogólnie pojętej, niekoniecznie .NETowej wydajności i architektury aplikacji webowych. M.in. dlatego podjąłem się inicjatywy stworzenia grupy Warsaw Web Performance. Software Craftmanship też jest mi bliski sercu. I dlatego z dużą przyjemnością uczęszczam na konferencje ogólno-technologiczne, jeśli można je tak nazwać. Są pośród nich takie wydarzenia, na których po prostu nie wypada nie być, przynajmniej co jakiś czas. Bez wątpienia jedną z nich, jest tytułowy DevDay. W tym roku odbędzie się w dniach 14-16 września, po raz szósty w Krakowie, przy czym pierwszy dzień jest dniem warsztatowym, a główna konferencja to czwartek i piątek.

Nie jest ważne czy jesteś "conference junkie", wyznaczającym sobie rytm roku według kolejnych konferencji rozsianych po całej Polsce i Europie. Może być tak, że nie byłeś jeszcze na ani jednej Poważnej Konferencji, przez duże K. Wtedy tym bardziej powinieneś zainteresować się tym co się ma wydarzyć w Krakowie we wrześniu. Więcej...

.NET Core - kompilacja, uruchomienie, debuggowanie

Dziś chciałbym Was przeprowadzić przez proces skompilowania, uruchomienia i debuggowania .NET Core - czyli wersji open source środowiska .NET. Bez zbędnych wstępów przejdźmy do odpowiedzi na proste pytanie...

Po co?

Żeby bawić się, żeby bawić się, żeby bawić się na całego. Mamy źródła .NETa! Po co nam je kompilować? Żeby grzebać, zmieniać, analizować, psuć - aż w końcu wynajdziemy dla siebie miejsce na Pull Request i zapiszemy się w Hall Of Fame, a nasz kod powędruje na miliony komputerów na całym świecie!

A nawet jeśli nie mamy tak ambitnych planów, czy nie fajnie popatrzeć "do środka", jak działa .NET? Oczywiście CoreCLR to nie jest kod komercyjnego .NETa jeden-do-jednego. Ale zdecydowana większość trzewiów jest taka sama, więc jest się czym bawić. Na stronie .NET foundation mówią wprost:

.NET Core has two major components. It includes a small runtime that is built from the same codebase as the .NET Framework CLR. The .NET Core runtime includes the same GC and JIT (RyuJIT), but doesn’t include features like Application Domains or Code Access Security. (...)

.NET Core also includes the base class libraries. These libraries are largely the same code as the .NET Framework class libraries, but have been factored (removal of dependencies) to enable us to ship a smaller set of libraries.

Jeśli zatem coś nas pociąga w spojrzeniu w kod frameworka, którego używamy od lat, mamy ku temu okazję. Więcej...

NDepend - spojrzenie na .NET Core

Czy znacie narzędzie NDepend? Służy do statycznej analizy jakości kodu. Istnieje w świecie .NET już od wielu lat i zyskał zasłużoną renomę. Pisał o nim ostatnio Piotr Gankiewicz, zwycięzca konkursu Daj się poznać, którym przeanalizował swój projekt Warden. I mi nadarzyła się okazja by przyjrzeć się temu narzędziu bliżej. Kilka lat temu bawiłem się nim na potrzeby analizy projektów w pracy. A teraz zapragnąłem nim przebadać coś nieswojego, coś dużego - .NET Core. Jesteśmy szczęściarzami, że żyjemy w czasach, w których .NET ma swoją wersję Open Source. A skoro tak, to kto nam zabroni ocenić jakoś kodu pisanego przez sam Microsoft i zebrane wokół community? Warto tu nadmienić, że NDepend potrafi analizować skompilowane assembly więc tak naprawdę nie musiałbym się ograniczać do .NET Core tylko wziąć na tapetę ten komercyjny, dojrzały .NET Framework. Ale uważam, że podpatrzenie tego, co możemy ew. zmienić jest po prostu fajniejsze. Więcej...

.NET Developer Days 2016 - za 102 dni!

Czas naprawdę "szybko leci". Prawie jak wczoraj pamiętam udział w konferencji .NET Developer Days 2015, a tutaj już na poważnie rozkręciła się organizacja tegorocznego wydarzenia. Było ciekawie, więc z dużym zainteresowaniem śledziłem doniesienia organizatorów na temat tego, co szykują w tym roku. Poprzednią edycję szczegółowo opisałem we wpisie ".NET DeveloperDays - debriefing". Zapraszam do jej przeczytania, ale podsumowując - atmosfera, jedzenie, prelegenci - wszystko na plus. Było to duże wydarzenie, w którym uczestniczyło około 500 developerów. W ciągu dwóch dni, w dwóch ścieżkach, odbyło się w sumie 20 prelekcji, w tym gości takich jak Scott Hanselman i Scott Hunter. Swoją drogą, można je już obejrzeć na Channel 9. Ja najbardziej polecam "Scaling Yourself: Information Overload and Personal Productivity" Scotta Hanselmana na temat osobistej produktywności i rozwoju. Sesja bardzo w tematach, o których pisałem w "Jak się rozwijać" oraz "Technika Pomodoro (...)". Więcej...

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...