As the ubiquitous spirit of laziness relaxation permeates the holiday season, a will to do any serious and productive coding seems appallingly low. Instead of fighting it, I went along and tried to write something just for pure fun.
And guess what: it worked pretty well. Well enough, in fact, that the result seems to be worthy of public exposure – which I’m hereby doing. Behold the coded4 project:
What exactly is this thing? It’s a “time sheet” for the marvelous jQuery project, reconstructed from commit timestamps in its Git repository. coded4 created this result by analyzing repo’s history, grouping changesets by contributors, and running some heuristics to approximate timespans of their coding sessions.
And of course, this can be done for any Git (or Hg) repository. Pretty neat for a mere *pops up shell and types coded4 .
* 3 hours of casual coding, eh?
…nie jest żadną konkretną osobą. Jednak mimo tego, że nie istnieje, dzięki przeprowadzonej niedawno Wielkiej Warsztatowej Ankiecie możemy powiedzieć całkiem sporo o jego cechach szczególnych. Taka już uroda statystyki, średnich i median: niby nikt dokładnie nie przystaje do przeciętnych wyników, ale pomimo to mówią one całkiem sporo o badanej grupie.
Ankieta badająca przeróżne cechy członków społeczności Warsztatu jest przeprowadzana od czterech lat. Za każdym razem wypełnia ją coraz większa liczba osób, które poczuwają się do jakiejś przynależności do tego community. Jednak w tej edycji przyrost ten jest wręcz niepokojąco duży – aż trzykrotny (z ok. 200 do ponad 600), co według mnie stawia pod dużym znakiem zapytania sensowność uzyskanych wyników.
Bo i skąd się wzięli ci wszyscy ludzie? Czy nie było przypadkiem tak, że każdy kto ledwie parę razy odwiedził stronę gamedev.pl, uznał się za adresata ankiety? Innej możliwości nie widzę, zwłaszcza biorąc pod uwagę przeciętną ilość osób przebywających na kanale #warsztat (mniej niż 50) czy uczestniczących w dyskusjach na forum (z grubsza około setki).
Dwa czy nawet cztery lata temu te liczby były może o jakieś 20% mniejsze. Nawet jeśli mylę się w swoich zgrubnych szacunkach, nie ma żadnego uzasadnienia dla aż tak dużej liczby rzekomych warsztatowiczów, którzy “ujawnili się” w ankiecie.
No, może poza bardzo, bardzo luźną definicją warsztatowicza. Ale czy odwiedzanie jakieś strony internetowej jest wystarczającym kryterium bycia członkiem community? Osobiście “trochę” w to wątpię.
Koderzy wyróżniają się ponadprzeciętnym stopniem używania klawiatury, a pewnie i myszki. Miliony wciśnięć klawiszy, tysiące kliknięć i kilometry przejechane kursorem… Ale ile jest ich dokładnie? Można to policzyć jednym z wielu dostępnych programików. Samodzielnie napisanie takiej aplikacji też nie jest bardzo trudne: w Windows na przykład trzeba by użyć do tego mechanizmu hooków.
Jak każda zabawa, także i ta staje się jednak o wiele atrakcyjniejsza, jeśli w grę zaczyna wchodzić Internet :) Kiedyś funkcjonowało przedsięwzięcie znane jako Project Dolphin, którego celem było zliczanie wciśnięć klawiszy swoich użytkowników. Po rejestracji wystarczyło ściągnąć niewielki program klienta, działający w tle i wytrwale uaktualniający licznik stuknięć w klawiaturę. Co jakiś czas dane te były wysyłane na serwer.
Na identycznej zasadzie działa serwis WhatPulse. Posiada on aczkolwiek nieco większe możliwości, jako że statystyki dotyczą też aktywności myszy, a ponadto umożliwia zakładanie osobnych profili dla różnych komputerów, na których pracujemy. Ogólna zasada jest jednak taka sama.
Co daje uczestnictwo w takim projekcie – naturalnie oprócz poświęcenia małej części zasobów systemowych? Oczywiście dozgonną satysfakcję i możliwość śledzenia rosnących numerków :) Można rzecz jasna wymyślać bardziej racjonalne wyjaśnienia, jak na przykład mierzenie wydajności programistycznej wskazywanej przez liczbę kilobajtów wklepanego tekstu. Ale ponieważ zliczane są absolutne wszystkie wciśnięcia (i zresztą nic więcej – nie jest to żaden keylogger), równie dobry wynik osiągnie i superprogramista, i nałogowy użytkownik IRC-a.
Najlepiej więc jest być naraz i jednym, i drugim :) Na pewno zaś nie zaszkodzi przyjrzeć się generowanym przez siebie statystkom. Mogą być całkiem dobrą, dodatkową motywacją do… pracy ;)