
Z początkiem lutego ruszyła druga edycja konkursu "Daj się poznać" organizowanego przez Maćka Aniserowicza. Sprawa jest moim zdaniem prześwietna i stąd poświęcony jej osobny wpis. Co prawda sam zamierzam w nim wystartować, więc jeżeli czytając mnie dasz się namówić do udziału, dorabiam sobie konkurencję. Jednak ponieważ w tym konkursie, moim zdaniem, nie o wygraną chodzi - co mi tam!
Ale o co chodzi...?
Po pierwsze, o co chodzi w tym konkursie? Wszelkie szczegóły są jasno opisane na dedykowanej mu stronie, więc nie będę się tu rozpisywał. W dużym skrócie. Obieramy sobie temat projektu open source, który chcemy napisać i... go piszemy. Mamy na to trzy miesiące - od marca do maja. Ponadto, co najmniej dwa razy w tygodniu (średnio, mogą być drobne wahania) opisujemy ten proces na naszym blogu, przez 10 tygodni, więc możemy czasem trochę odsapnąć. I koniec. Nikt nie narzuca tematu, technologii, bloga itd. Z jednym wyjątkiem - kod projektu musi być hostowany na GitHubie.
Dlaczego warto?
Czemu uważam sprawę za prześwietną? Po pierwsze, jest to moim zdaniem genialny sposób na zmotywowanie się do zrobienia czegoś ciekawego i rozwijającego. Często mamy gdzieś z tyłu głowy całą listę fajnych rzeczy do zrobienia. Jakiś wymarzony pet project do napisania. Albo po prostu chęć nauczenia się czegoś nowego w praktyce. Sam tak mam notorycznie. Jeszcze w pracy jestem pełen zapału by zacząć TO pisać. W drodze z pracy już układam w głowie całe linie pięknego kodu... Po czym docieram do domu i nawet nie mam już siły spojrzeć na Visual Studio. Motywacja spada z głośnym łoskotem prosto do kosza. Dzięki "Daj się poznać" motywacja pochodzi z zewnątrz - zobowiązaliśmy się, być może jacyś ludzie już nas czytają i zadają pytania, no i nagrody liczne kuszą. To głupio tak już nie doprowadzić sprawy do końca.
Po drugie, ten konkurs to bardzo dobry pretekst do założenia lub rozpoczęcia regularnego używania bloga. Pisał o tym Maciek w poście "Jak prowadzić bloga programistycznego", pisałem i ja więc podpisuję się rękami i nogami. Może nie każdy musi prowadzić bloga o milionie odsłon i z wpisami co kilka dni. Ale jeśli chcemy się rozwijać to prowadzenie bloga jest jednym z naprawdę wartościowych sposobów na zmotywowanie się do tego. A skoro tak, dzięki konkursowi mamy ku temu okazję. Co więcej, nie będzie to blog powstały w próżni, na którego zajrzy z grzeczności nasza żona/mama/siostra. Będzie częścią całego szumu wokół konkursu, być może linkowany przez strony konkursowe. Będziemy mogli się podpiąć do streamu newsów z nim związanych na Twitterze czy Facebooku. Zatem motywacja podwójna, bo ten tylko wie jaką satysfakcję to przynosi, gdy ktoś czyta to co piszemy.
Po trzecie, w efekcie powyższych, mamy szansę na tytułowe "danie się poznać". Czy to pisząc naprawdę fajną rzecz, czy też naprawdę fajnie ją opisując na swoim blogu - mamy szansę przestać być anonimowymi devami w swoich anonimowych firmach. Sława, chwała, pieniądze - wiecie co i jak. I nawet jeśli nie chodzi o to, żeby zaraz rzucać papierem domagając się sztab złota podwyżki - to przestanie bycie anonimowym ma same zalety. Może nas ktoś zaprosi na konferencję/wykład, może w pracy nas bardziej docenią i zaczną bardziej szanować, może pojawią się oferty pracy, może poznamy przyszłą żonę, zachwyconą błyskotliwością naszych wpisów... Itd. itp. Najlepiej podsumował to laureat poprzedniej edycji, którego wypowiedź pozwalam sobie tu zacytować:

Po czwarte, nagrody. Nie jest to podróż dookoła świata, ale jeśli przy okazji powyższych zalet dodatkowo wygramy wypasione krzesło, XBoxa albo fajne oprogramowanie - czemu nie?!
Po piąte, podsumowując, jest to bardzo obiecujący sposób na podładowanie dev-akumulatorów. Krew w dev-żyłach może zacząć szybciej krążyć. Poczujemy fejm, poczujemy zew kodzenia, zaangażujemy się. Odświeżymy umysł czymś nowym. Może wkręcimy się w prowadzenie bloga. Może z naszego open source uczynimy produkt życia?
Czemu ja biorę udział? Bo już wkręciłem się w prowadzenie bloga, co można zauważyć po częstotliwości ostatnich postów. Lubię pisać, ale najbardziej lubię gdy to ktoś czyta. Chcę się zatem dać poznać. I wykorzystać konkursową motywację do napisania projektu, do którego zbieram się od dawna. Wreszcie może się uda!
No dobrze ale co...?
Ok. Nagadałem się czemu warto, ale co jeśli jednak nie mamy przed sobą listy naszych projektów marzeń? Ciekawe sugestie zaprezentował np. Paweł Tymura w swoim poście. Ja dorzucam kilka od siebie.
Custom server dla OWIN
OWIN fajna rzecz, bo otwarta. Na razie hostować ASP.NET możemy na IIS, Kestrelu lub WebListenerze. Aż kusi napisać jakiś własny, uber szybki customowy host. Albo międzyplatformowy, jak Kestrel. Albo jakiś dedykowany na konkretną platformę i wyciskający z niej co się da. Mi się marzy ale czasu brak.
Generator krzyżówek
Jak wygenerować sensownie wyglądającą krzyżówkę? Najfajniej tematyczną, z hasłami dla programistów typu "osiem bitów" to "bajt" itd. itp. Główne wyzwanie to algorytmika ale można przy okazji zaprząc np. F# albo inny język funkcyjny.
Raspberry Pi
Masz Malinkę albo coś podobnego? Napisz na nią jakąś ciekawą aplikację webową! Listę Todo, "twitter unfollow", cokolwiek. Można się pobawić ASP.NET Core, Windows 10 IoT itd. Zintegrować się z Azure. Pobawić ReactiveStreams.
Wzorcowy projekt aplikacji
Wiele jest nowych pomysłów na aplikacje. Świetnie można to zaimplementować i opisać serią wpisów. Programowanie reaktywne, architektura Flux. Do tego całe morze frameworków JS i ciekawych języków. Można o tym wszystkim poczytać, ale mało jest kompleksowych tutoriali od A do Z, które wszystko sensownie zbiorą do kupy i doprowadzą do powstania wzorcowego przypadku użycia.
Ilustracja wzorców projektowych
Podobnie jak powyżej, możemy się skupić na wzorcowej aplikacji ilustrującej użycie wzorców projektowych i zasad SOLID. Wraz z serią postów nieoceniona pomoc.
Uber-obfuskator JavaScript
Kiedyś coś takiego zacząłem pisać. Temat obfuskacji kodu JavaScript nie jest nowy, ale wciąż mi brakuje jakiegoś dojrzałego rozwiązania, które nie kończyłoby się na banalnym 'eval('kupa dziwnych literek')', które każdy "hacker" przeklei do konsoli, wykona i zobaczy kod po "defuskacji". A mamy tu całą gamę przedziwnych metod zaciemniania kodu, które można by definiować jako reguły i z takich klocków tworzyć prawdziwne dziwadła.
Podsumowanie
Każdy z powyższych tematów super chętnie sam bym napisał, ale czasu i motywacji brak. Jednak jeszcze kilka innych w głowie siedzi, jeszcze dla mnie ciekawszych. Jeden z nich wybiorę i wysyłam zgłoszenie do Maćka. Was też zachęcam, startujmy. I od razu życzę, powodzenia!