Blog Kokosa

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

NAVIGATION - SEARCH

.NET Developer Days 2016 - wywiad

Pisałem, organizowałem konkurs, aż w końcu konferencja .NET Developer Days 2016 stała się faktem. Mi się osobiście podobała. Dużo "mięsa" o .NET i C#, profil zdedydowanie bardziej techniczny niż w zeszłym roku. Warsztaty z Tedem Newardem, które odbyły się dzień wcześniej też mi się podobały. Choć spodziewałem się więcej ale może po prostu za dużo już w tym siedzę, żeby dać się łatwo zaskoczyć. W każdym razie możliwość wymiany choćby kilku zdań z nim czy Jonem Skeetem to atrakcja sama w sobie. Najmilej zaś wspominam dużo lepsze after-party niż w zeszłym roku, w tym samym miejscu co sama konferencja. Mnóstwo okazji do ciekawych rozmów!

Ja natomiast chcąc jakoś zamknąć moją współpracę z organizatorami, poprosiłem o wywiad z "dyrektorem naczelnym" tego zamieszania - Maciejem Pileckim. Zapraszam do lektury! Więcej...

Tajemnice CLR - jak działa GetType()

Wstęp: Jeśli jeszcze nie bywacie na devspl.slack.com to zdecydowanie polecam. Z obecnie istniejących tam 175 kanałów na pewno wybierzecie coś dla siebie. Ja zaglądam regularnie na kilka, w tym na kanał #dotnet. A tam czasem pojawiają się naprawdę ciekawe pytania! Co najmniej dwa zainspirowały mnie na tyle, że postanowiłem zainicjować nową serię pt. Tajemnice CLR. Odpowiedzi na ciekawe pytania i rozterki, na jakie się natknę. Jeśli macie pomysły - pytajcie! Czy to tu, czy na wspomnianym Slacku. Wchodzić z odpowiedziami będziemy głęboko, nie będzie tu żadnego ciu ciu babciu.

Dziś pierwsze pytanie, które zadała Angelika Piątkowska:

Jak tak naprawdę działa GetType()?

Rozszerzając to pytanie: Skąd obiekt wie jakiego jest typu? Czy to wie kompilator czy runtime? Jak się do tego ma CLR? Czy z faktu, że C# jest statycznie i silnie typowany wynika, że wywołania metody GetType() tak naprawdę nie istnieją i kompilator może je zastąpić odpowiednim wynikiem już w trakcie kompilacji? Więcej...

Poznań Game Arena i Game Industry Conference


Odbyłem w ostatni weekend wraz ze studiem MythicOwl gościnnie podróż na naprawdę spore wydarzenie jakim są poznańskie targi gier komputerowych - Poznań Game Arena. I choć byłem kiedyś zapalonym graczem, były to drugie targi tego typu w moim życiu. Pierwsze to była Gambleriada wiele, wiele lat temu, ktoś to jeszcze pamięta? I choć nie gram już regularnie, właściwie nie gram wcale, to gdzieś tam w głębi serca siedzi ten dzieciak, który pograłby w coś fajnego. No i geek, który nadal się interesuje kartami graficznymi i tym co obecnie da się z nich wyciągnąć w grach. Oraz nieustannie planuje napisać jakąś własną gierkę i zarobić na niej miliony - kto tak nie ma?! Dlatego z bardzo dużym zainteresowaniem skorzystałem z okazji by zobaczyć jak takie PGA wygląda. Co więcej, od lat wraz z targami odbywa się równolegle gamedevowa konferencja więc przy okazji miałem nadzieję posłuchać czegoś ciekawego, co może mnie zainspiruje. Zapraszam na krótki spis przemyśleń, bardziej niż relację jako taką.

Zainteresowało mnie najbardziej jak tak naprawdę obecnie wygląda gamedev z punktu widzenia developera. To co udało mi się wywnioskować na towarzyszącej targom konferencji Game Industry Conference, to że obecnie gry pisze się w specyficzny sposób. Mówię tu o małych studiach, robiących gry mobilne, indie games itp. Ze względu na ogrom podaży, nikt nigdy nie wie czy gra "zaskoczy". I by sprawdzić czy się będzie sprzedawać, jedyne co można zrobić to... zacząć ją sprzedawać. Jak nie "zaskoczy", to projekt jest dość szybko porzucany, bez przedłużających się prób poprawienia pomysłu. Takie szybkie prototypowanie. Np. studio mające kilkanaście osób pracuje równolegle nad trzema tytułami w zespołach grafik + developer + managier. Również w trakcie prac nad grą często protypują, sprawdzają różne pomysły, porzucają je itd. Podoba mi się takie "zwinne" podejście!

W ogóle gamedev to taki całkiem inny, równoległy świat. Widzę takie samo zaangażowanie i ilość wiedzy jak w świecie konferencji .NET & craftmanship na których się pojawiam, tylko temat inny :) 

VR który najbardziej mnie interesuje na razie jest trochę w powijakach. Obecny głównie na stoiskach indie. Mainstream jeszcze jakby nie za bardzo. Co do sprzętu to dało się odczuć bardzo duże zainteresowanie Playstation VR. Co nie dziwi, ze względu na cenę to pierwszy sprzęt "dla Kowalskiego". Niestety ze względu na kolejki nie udało mi się tym pobawić. Sporo też było HTC Vive i trochę mniej ostatecznej wersji Oculus Rift. Osobiście mam już pomysł na pewną "grę" pod te zabawki, ale to odleglejsze plany.

W gamdevie (takie odniosłem wrażenie) rządzi Unity oraz Unreal Engine. To pierwsze mnie cieszy bo to ważny akcent .NETowy. Przedstawiciele byli na targach, porozmawiałem nawet z nimi chwilę o internalsach silnika ale rozmowa dość szybko wkroczyła na poziom przekraczający wiedzę osób ze stoiska więc... dostałem wizytówkę z prośbą by dopytać mailowo. 

Co do samych targów, to oczywiście rzucał się w oczy ogrom ilości dzieciaków, w których widziałem siebie sprzed lat 20tu. Rozpalone oczy w poszukiwaniu gier, gadżetów i konkursów. Kurczowo trzymane zdobycze. Ale też poczułem, że się w tym aspekcie zestarzałem (e.. dojrzałem). Myślałem, że to nigdy nie nastąpi ale już nie jestem młodzieżą! Zaczynam nie kumać niektórych ich zachowań, memów, pomysłów. No ale może to i dobrze. Same gry też juz zdecydowanie tak nie kręcą - swoją liczbę godzin i dni straconych na granie już odhaczyłem! Ale... Civilization VI (love). Moja nieustanna słabość do tej serii powróciła ze zdwojoną siłą, już po kilku rozegranych turach. Oj kupię! Ale po książce...

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

Inny, wspaniały świat - odcinek I

Programiści i "informatycy". Czasem narzekamy, czasem słusznie. A czasem niesłusznie. W każdym razie, informatycy, a szczególnie programistki i programiści znajdują się w uprzywilejowanej sytuacji. Rynek jest ogromny, potrzeby kadrowe również. Zaraz po studiach możemy przebierać w ofertach i to za niezłe pieniądze. Może to się zmieni, może będzie jeszcze lepiej, albo całkiem gorzej. Może nastąpi globalna rewolucja i najbardziej cenni staną się rolnicy? Tak czy inaczej, na razie, takie są fakty. A co by było gdyby popyt był mniejszy niż podaż, jak to bywa w wielu innych zawodach? Co by było gdyby rynek był uregulowany, a przez to niesprawny? Dodatkowo obwarowany często zbędnymi, formalnymi wymogami? Jesień natchnęła mnie na odrobinę prozy z gatunku fiction. Zapraszam do alter-świata PRLu w roku 2016

Każdy odcinek stawia bohatera Mirka przed wyborem, którego dokonujesz Ty Czytelniku. Ja na podstawie głosowania piszę kontynuację fabuły - około 400 słów by nie było za długo, by było granularnie. Zobaczymy gdzie nas to zaprowadzi! Zapraszam do wspólnej zabawy. Więcej...

Blog po angielsku czy po polsku?


Od samego początku gdy podjąłem decyzję o założeniu bloga miałem klasyczną rozterkę - po polsku czy po angielsku? Pytałem, myślałem, zastanawiałem się. Pierwotny wybór jak widać padł na język polski. I zdecydowanie tej opcji nie żałuję. Jeśli i Ty stoisz teraz przed takim wyborem, to z mojego osobistego i subiektywnego doświadczenia zdecydowanie radzę - pisz po polsku! Oczywiście zasięg jest mniejszy ale... No właśnie, to właściwie koniec wad. Zalety są za to liczne: Więcej...


Konkurs - .NET Developer Days 2016

Pisałem na początku lipca, czemu to warto wybrać się w październiku do Warszawy na konferencję .NET Developer Days. Obiecałem też wtedy konkurs, w którym wygrać będzie można jedną wejściówkę na to zacne wydarzenie.

Najwyższa pora ten konkurs ogłosić. Myślałem, myślałem, co by tu zrobić by nie było nudno. I wymyśliłem. Obecność m.in. Jona Skeeta i Teda Newarda, a zwłaszcza przedkonferencyjny warsztat całodniowy tego drugiego, to bliski mojemu sercu temat "internalsów" .NETa. W związku z tym, konkurs będzie zabawą w tym obszarze, a konkretnie próbą napisania jak najgorszsego kodu ukazującego problem ukrytych alokacji. Poprzez taką paradoksalną zabawę trochę się pouczymy, a ktoś wygra wejściówkę o wartości 1200 PLN! Więcej...

Konkurs DevDay 2016 - rusza głosowanie

Publikuję listę tematów/propozycji jakie podaliście w ramach konkursu, w którym można wygrać wejściówkę na DevDay. Zwycięzcą będzie ta osoba, która jest autorem tematu z największą liczbą pozytywnych głosów ("lajków") komentarza pod tym postem - głosowanie zakończy się w środę 31 sierpnia o godzinie 23.59.59. 

Przypominam, że tematem zgłaszanym była propozycja o czym chcielibyście posłuchać na kolejnych grupach Warsaw Web Performance.

Głosujcie zgodnie ze swoim sumieniem ale moja ogromna prośba - głosujcie na to co naprawdę Was zainteresowało! Na podstawie Waszych głosów będę zabiegał o prelegentów, którzy opowiedzą o tym, co wybraliście. Więcej...

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