Website access log visualization

Wyobrażaliście sobie kiedyś log serwera jako walkę zawołań z obsługującą je maszyną, walkę realizowaną w stylu legendarnej gry Pong? Zapewne nie, ja zresztą też nie :)

Jak się jednak okazało, ktoś wpadł na tak szalony pomysł i w dodatku fantastycznie go zrealizował. Zawsze zdumiewa mnie, gdy ludzie potrafią spędzać wiele godzin nad czymś, co w praktyce nie ma wielkiego zastosowania, ale po prostu ładnie wygląda, oferuje swojemu autorowi dobrą zabawę i rozwój osobisty. Taka sztuka dla sztuki poniekąd, ale jaka ładna:

I jeszcze jak „romantycznie” się nazywa: Logstalgia ;) Bliźniaczym projektem, do którego trafiłem najpierw przeklikując się przez repozytorium w GitExtensions jest Gource. On z kolei przedstawia historię zmian aplikacji jako rozwój drzewka, z centralnie umieszczonym folderem głównym, gdzie na każdej gałęzi rosną pliki:

Genialne jest to, że autorzy commitów latają wokół drzewa jak pracowite owady. Naprawdę, w kategorii „zrobienie sztuki z czegoś trywialnego”, oba wspomniane narzędzia dostają Złote Globy i Oskary jednocześnie ;)

Szymek

Wprawdzie istnieje realna obawa, że nikogo to nie interesuje, to jednak odczuwam potrzebę by wyjaśnić czemu przez pół roku nie napisałem tu ani słowa.

A byłoby co pisać. W pracy każdego dnia trafiały się drobne nowinki, sztuczki, kruczki i haki. Wzbogaciłem wiedzę na temat Gita, Basha, PHP, JS (również jQuery), MySQL, aż ciężko wszystko wymienić. Pogłębiłem wiedzę użytkową i administracyjną w aplikacjach Atlassian (JIRA, Fisheye, Confluence). I o wielu z tych rzeczy bardzo chciałem coś napisać, podzielić się wiedzą i ułatwić innym to, czego sam się naszukałem.

Jednak życie zaoferowało mi udział w najwspanialszym projekcie – ojcostwie :) Po dniu pracy, pomijając potrzeby domowe i zmęczenie Żony, patrząc czysto po ojcowsku, ja po prostu wolałem spędzać czas z synem niż kolejne godziny gapić się w ekran. Pewnie mógłbym gdzieś upchnąć redagowanie, jednak mam być może trudne podejście w tej kwestii, bo lubię pisać za jednym zamachem bez wielodniowego trzymania szkiców, a jednocześnie lubię opisać dobrze i z pomysłem. A to się przeważnie wyklucza z pisaniem z doskoku :)

Dzisiaj Szymek spędza dzień z Babcią, a ja powoli w głowie układam sobie życie codzienne by jednak wrócić do aktywniejszego realizowania swoich hobby. W powietrzu wisi wiele moich projektów, zarówno programistycznych, jak i muzycznych, graficznych. Byłoby świetnie, gdyby udało się chociażby drobnymi kroczkami iść z nimi do przodu. Aby tak się jednak stało muszę ułożyć sobie dni, nauczyć się bycia dobrym mężem i tatą jednocześnie mając czas na swoje sprawy. Tak by na moich pasjach nie traciła rodzina. Są nawet projekty, których realizacja jest wspólnym dobrem moim i Żony, więc myślę, że przy dobrych chęciach z obu stron uda się to ogarnąć ;)

W Nowy Rok weszliśmy z własnym samochodem, ułożonymi sprawami finansowymi, z Najpiękniejszym Szkrabem u boku, więc najlepsze co mogę zrobić to podtrzymywać tę dobrą passę. I czemu miałoby się nie udać :) ?

Facebook

Facebook ma to do siebie, że ciągle się zmienia, ciągle rozwija, ciągle dodaje nowe opcje. I ma to do siebie, że o sporej części z nich nie informuje, a ludzie nie mają o nich pojęcia.

Zupełnie przypadkowo dziś natknąłem się na ciekawą opcję: pobieranie informacji ze swojego profilu w postaci archiwum. Jeśli więc ktoś chciałby poczytać sobie wszystko co do tej pory wypocił na swojej (i nie tylko) tablicy, ma taką możliwość. W dodatku nasze informacje profilowe zrzucane są w postaci plików html, można je więc przeglądać lokalnie w swojej przeglądarce, nie mając dostępu do internetu.

Mamy więc Profil, czyli wszystkie informacje o naszej pracy, wykształceniu, zainteresowaniach – generalnie o wszystkim, co można znaleźć w naszym profilu online. Jest to przygotowane bardzo schludnie i po lekkim sprzątaniu (np. wyrzuceniu kilku stron, które się lubi, a którymi nie ma się co chwalić) wyszło by z tego całkiem zręczne CV ;) Mamy Tablicę, czyli zrzut całego naszego słownego udzielania się na Fejsie – można więc stanąć oko w oko z zalewem pierdół, o których pisałem niedawno. Jest też pełny zestaw naszych zdjęć, które wrzucaliśmy na przestrzeni dni, tygodni, miesięcy czy też lat egzystencji na FB. Całość uzupełnia lista znajomych (alfabetycznie imię i nazwisko) oraz archiwum konwersacji w systemie prywatnych wiadomości. Przeczytaj resztę tego wpisu »

Facebook

Facebook. Przedstawiać chyba nie trzeba? Zjawisko o skali epidemicznej, stworzone by ludzi łączyć, w praktyce raczej będące największym, bezcelowym pochłaniaczem czasu.

Znam ludzi, którzy zamiast robić coś konstruktywnego mogli siedzieć przed komputerem i co 10 sekund klikać „Odśwież pulpit”. Znam też takich, którzy godzinami oglądają telewizję, takich, którzy wolą przespać każdą wolną chwilę, takich co to wolą ubijać krwiożercze stonogi swoim elfickim alter ego. Nie twierdzę, że sam nie wpadam w takie pułapki – wręcz przeciwnie, sam zmarnotrawiłem kupę czasu na bieganie wojem-magiem w Runes of Magic, które to chciałem jedynie przetestować, a ostatecznie wpadłem w syndrom „jeszcze jednego levelu” (dopiero z perspektywy czasu widzę jakie to głupie, więc odradzam wszystkim, którzy też myślą o „tylko spróbowaniu”).

Jednak pracując przy komputerze, zarówno w pracy jak i hobbystycznie, chcąc nie chcąc mogę zaobserwować bodajże największego zjadacza czasu i szarych komórek: Facebooka. Przeczytaj resztę tego wpisu »

OpenSSH

Praca w systemach rozproszonych wymaga używania wielu danych uwierzytelniających. Pal licho jeśli do wszystkich serwerów mamy ten sam login, możemy użyć wtedy jednego klucza SSH i problem z głowy. Schody zaczynają się gdy potrzebujemy łączyć się z różnymi lokacjami używając różnych nazw użytkownika.

Oczywiście w pewnym sensie to też nie jest za wielki problem. Bo przecież wystarczy wpisać ssh login@lokalizacja i już, łączymy się. Wyobraźcie sobie jednak sytuację, że trzeba zapamiętać 30 i loginów i tyleż samo haseł do nich, przy czym hasła te to nie żadne 1234 czy qwerty, ale losowe ciągi znaków prosto z generatora. Ile to czasu można stracić próbując sobie przypomnieć czy to było może 76b2jfuds6yfb, czy też 8on$2cd… O ile w ogóle da się to zapamiętać ;)

Z pomocą przychodzi plik konfiguracyjny dla protokołu ssh, czyli ~/.ssh/config, gdzie ~ to nic innego jak katalog domowy użytkownika (przeważnie /usr/home/nasz_login/ dla systemów Unix oraz C:\Users\nasz_login\ dla Windows). Przeczytaj resztę tego wpisu »

Barcelona-vs-Manchester-United

Próbuję sobie przypomnieć od kiedy kibicuję Barcelonie i prawdę mówiąc nie mam pojęcia. Wiem jedno: swoje świadomie oglądanie światowej piłki nożnej rozpocząłem dość późno, bo w związku z wieloma innymi zainteresowaniami nigdy nie miałem czasu (i potrzeby) by śledzić wszelakie niuanse taktyczne, transfery, statystyki, nie miałem też kablówki, satelity, a nawet komputera i internetu. I nawet jeśli nie byłem fanem Barcy od dziecka, to od najmłodszych lat byłem fanem dobrego futbolu.

Po placu za piłką biegałem od maleńkości. Szło mi nawet nieźle, nieskromnie napiszę, że ustalanie składów rozpoczynało się między innymi ode mnie – do czasu pęknięcia kości piszczelowej i wykrycia cysty. Ciężkie decyzje (operować od razu, czekać czy się zaleczy równolegle z pęknięciem?), ostatecznie 6 tygodni w gipsie (jak się okazało: na darmo, bo cysta została), operacja, kolejne 8 tygodni w gipsie, rentgen, kolejne 2 tygodnie. Cała 6 klasa podstawówki odbębniona nauczaniem domowym i sanatoryjnym. Po zdjęciu trzeciego gipsu, czyli po 16 tygodniach unieruchomienia nogi, moja „maszynka do strzelania goli” wyglądała jak patyk i rehabilitacja trwała bardzo długo. Pamiętam jak przy wchodzeniu po schodach robiłem łuk „na bok”, bo nie mogłem zginać nogi w kolanie. Po całej tej „przygodzie” już nigdy nie grało mi się tak dobrze, w drużynach na WFie też już nie byłem takim pewniakiem.

Naszły mnie takie wspomnienia, bo uświadomiłem sobie jak dawno nie grałem w piłkę. Naprawdę, ostatnim razem chyba w technikum i na studiach, jakaś halówka bez większego znaczenia. I smutne to, bo zawsze lubiłem wysiłek fizyczny (który częściowo przeszedł na deskorolkę, ale od dłuższego czasu raczej zbieram kalorie niż je spalam). A mecze takie, jak ten wczorajszy, uświadamiają mi jak bardzo lubiłem to bieganie za kawałkiem napompowanej skóry. Przeczytaj resztę tego wpisu »

Generowanie i używanie kluczy SSH

Ciągłe wpisywanie hasła dostępu do serwera potrafi zmęczyć każdego, bywa upierdliwe gdy potrzebujemy zrobić coś w 2 sekundy, a w przypadku mnogości danych uwierzytelniających można pomylić lub zapomnieć tego właściwego hasła. Z pomocą przychodzą klucze SSH.

Oczywiście żeby korzystać z dobrodziejstw protokołu SSH musimy posiadać odpowiedniego klienta i/lub zainstalowane wymagane pakiety. W systemach Linux czy MacOSX nie ma z tym problemu, bo domyślnie są zainstalowane. Windows nie oferuje tego typu połączeń, ale instalując PuTTY, MSysGit lub Cygwin wzbogacamy system o tę (i nie tylko tę) funkcjonalność.

Na początek może kilka słów czym w ogóle są klucze SSH. Funkcjonalność ta, jak i cały protokół SSH, wymyślona została przez Fina Tatu Ylönen’a, który zirytowany próbą wykradnięcia jego hasła w sieci uniwersyteckiej postanowił stworzyć coś, co nie będzie przesyłało w świat nieszyfrowanych haseł. Jego pomysł zrobił całkiem niemałą furorę, więc z początkowo otwartego kodu stał się komercyjnym oprogramowaniem, a z ostatniej wersji wydanej na licencji open source (1.2.12), podrasowanej przez ludzi z OpenBSD, powstał darmowy odpowiednik – OpenSSH. Ten wpis ma więcej stron (2). Przeczytaj resztę tego wpisu »

GIT-Extensions-logo

Zakładając, że mamy już zaistalowane GitExtensions, wiemy o istnieniu witryny github.com i generalnie mamy świadomość czym jest Git – możemy połączyć to wszystko w sensowną całość.

Nie tak dawno pisałem o pracach nad wtyczką Social Connect, której rozwój wsparłem kilkoma swoimi pomysłami i poprawkami. Przy tej okazji miałem możliwość bardziej zapoznać się z GitHub’em, na którym do tej pory byłem jedynie zarejestrowany. Zbiegło się to mniej więcej z wydaniem wersji GitExtensions 2.10, która przyniosła możliwość integracji ze wspomnianym serwisem github.com – nie omieszkałem oczywiście wypróbować tego w praktyce. Konfiguracja ta nie jest czymś bardzo skomplikowanym, jednak może komuś przydać się tych kilka wskazówek. Przeczytaj resztę tego wpisu »

Ludzie nie przestają mnie zadziwiać.

Zabrakło mi słów, po obejrzeniu tego:

Autor tej grafiki jest dla mnie niedoścignionym mistrzem, co ja bym dał żeby tak umieć…. Grafikę w pełnej krasie można zobaczyć tutaj.

Szok. Cudowne. Wspaniałe. Rewelacyjne. Uwielbiam.

Estetyka kodu - wcięcia

Jedni wolą lato, inni zimę. Jedni wolą samochody, inni motory. Programiści mają swoją własną wojenkę: wcięcia powinny bazować na spacjach, czy tabulatorach?

Nie trzeba długo szukać, by trafić na dziesiątki postów, dyskusji, czy wręcz kłótni dotyczących estetyki pisania (czy raczej czytania) kodu. Sam nigdy się nad tym specjalnie nie zastanawiałem, używałem tabulatorów, bo irytowało mnie, gdy trzeba było mnóstwo razy klepać backspace. Teoretycznie działa shift+tab, ale w praktyce bywa z tym różnie: a to wcięcie ustawione jest na 4 spacje, a w kodzie nie wiedzieć czemu są 3, a to środowisko programistyczne ustawione jest na wcięcia tabulatorem i nie obsługuje zmniejszania wcięć spacjowych itd itd itd…

Temat wrócił do mnie dzisiaj, gdy pracując nad swoimi zadaniami nadziałem się na fragment kodu kolegi z pracy. Jako, że w naszym dziale panuje NetBeans, który domyślnie ma zaznaczoną opcję „expand tabs to spaces” (nie tak dawno wyszła nowa wersja i każdy ją instalował przeważnie zostawiając ustawienia standardowe), a ja pracowałem zdalnie z użyciem Eclipse, który z kolei domyślnie ma wcięcia tabulacyjne – pojawił się zgrzyt. Zaledwie kilka linijek kodu, ale za to z wcięciem na pół ekranu, shift+tab robiący wielkie nic = irytacja. Przeczytaj resztę tego wpisu »