Pomyślałem sobie, żę warto opublikować ten bajerancki przykład bezgranicznej wyobraźni programistów zwany gource. Z założenia jest to aplikacja napisana w C++ z wykorzystaniem korzyści płynących z poniższych bibliotek:
Mając dowolne repozytorium GITa pobrane np: z serwisu github możemy obejrzeć niesamowitą animację renderowaną w czasie rzeczywistym z cyklu życia projektu. Osoby zatwierdzające / skłądujące kod w repozytorium uwidocznione są jako ludki strzelające z laserów do dynamicznego drzewa kodu. Bajerancko ukazuje się nam w lini czasu życia naszego kodu jego rzeczywisty rozwój i spojrzenie na kod nabiera zupełnie innego wirtualnego wymiaru. Z resztą sami spójrzcie:
Sposób kompilacji na Ubuntu 9.10:
$ git clone git://github.com/acaudwell/Gource.git $ cd Gource $ sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev $ ./configure $ make $ make install
Uruchomienie na repozytorium Gource:
$ ./gource
Innym pomysłem na wizualizacje wirtualnego życia jest projekt logstalgia.
Efekt wizualizacji przedstawia pinponga z logów dostępu serwera www (access.log). Obserwacja odbijania a la gra typu ping-pong umożliwia uzmysłowienie natężenia ruchu na serwerze www. Oto przykładowy filmik z działania:
Pomimo brzmiącego wzniośle tytułu i wielkiej litery R na czątku artykuł nadal dotyczy on dziedziny programowania. Tym razem dotykam nieco odmiennego aspektu - narzędzia do statystycznej analizy danych R, które cieszy się dość sporą popularnością w kręgach naukowych, gdyż cytując wikipedię: GNU R to język programowania i środowisko do obliczeń statystycznych i wizualizacji wyników. Każdy czytelnik w tym miejscu może zadawać sobie zasadnicze pytanie: co można w tym zrobić i dlaczego lepej niżeli w moim języku programowania ?.
Oto kilka cech, które pozostawiają w tyle moje ulubiony języki programowania i skłaniają mnie do użycia języka R:
łatwość z jaką można tworzyć dobrze zaprojektowane wykresy z jakością nadającą się do publikacji. Dotyczy to także symboli i formuł matematycznych
repozytorium pakietów CRAN, które zawiera ponad 1500 gotowych bibliotek do użytku w naszych statystykach - zaimplementowana jest spora liczba metod oraz przekształceń statystycznych
tekstowa i graficzna konsola obsługi, jak również możliwość uruchamiania przygotowanych skryptów
stworzenie wykresu często polega na wczytaniu w jednej linii danych ze źródła siecowego, plikowego, w tym popularne formaty CSV oraz Excel ! przypisaniu do zmiennej oraz w kolejnej linii wywołana funkcji plot() ze zminną(zmiennymi) przechowującą(przechowującymi) dane w argumencie. Efekt jest widoczny natychmiast w specjalnym oknie graficzym wykresów
powalająca na kolana baza rodzajów wykresów w postaci galerii z przykładami kodu w języku R
polecenia języka są intuicyjne i uproszczone do niezbędnego minimum:
package.install("nazwaPakietu", depedencies=TRUE) - dodawania pakietu, w efekcie czego pakiet jest pobierany z wskazanego repozytorum CRAN oraz kompilowany wraz z dokumentacją i przykładami użycia
nazwaBibliotek.funcka(argumenty) - użycie funckcji z biblioteki
tworzenie interaktywnych wykresów oraz możliwość używania akceleratorów grafiki 3D w wykresach
wbudowane przestrzenie nazw, profiler, debuger, garbage collector :-), których niekiedy może pozazdrościć język PHP
programowanie objaśniającego (pakiet Sweave)
funkcje statystyczne do przeprowadzania analizy regresji i analizy wariancji
funkcje do przeprowadzania klasyfikacji oraz analizy klastrowania
generatory liczb losowych oraz generatory liczb losowych z określonych rodzin rozkładów prawdopodobieństwa
funkcje do radzenia sobie z brakującymi obserwacjami oraz wstępną analizą danych
funkcje do korzystania z metody bootstrap i analizy przeżycia
prognozowanie na podstawie posiadanych danych !
możliwa edukacja w zakresie testów statystycznych dotyczących testowania hipotez o równości parametrów położenia, o równości parametrów skali, dotyczących prawdopodobieństwa sukcesu, procedury testowania istotności dla wybranych współczynników zależności pomiędzy dwoma zmiennymi oraz testy zgodności
Przegląd możliwości systemu R w wygodny sposób zarysowuje możliwości tego specyficznego języka programowania. Liczne prezentacje oraz artykuły umacnają mnie w przekonaniu, że warto wykreślać w tym języku wykresy z danych pomiarowych, szczególnie jeśli zależy mi na dokładności oraz pewności, że dany wykres reprezentuje wskazaną porcję danych.
Niesamowite jest to, że w języku R możemy osadzać np: język Python i odrotnie w języku Python możemy osadzać język R, co widać na poniższych stronach:
W pierwszych krokach przedstawiłem Blendera. Używam go skutecznie od jakiegoś czasu do kreowania różnych wizualizacji projektów, maszyn, wynalazków i chciałbym docenić ten program za spore jak na Open Source możliwości kreowania swojego świata w kilku wymiarach, intuicyjny interfejs użytkownika, wbudowany silnik gier, niesamowite narzędzie animatorskie, niezwykłą deskę kreślarską oraz niebanalne efekty renderingu. Artykuł ten ma na celu prezentację moich modeli, którymi chciałbym się z Wami podzielić oraz omówić ich powstanie. Jako pierszy model stworzyłem rakietę, byćmoże niezbyt ambitny projekt, ale zawsze "ten pierwszy raz" ;) w Blenderze. Oto widok konstrukcji z perspektywy deski roboczej:
Kolejnym pomyslem i modelem, ktory kazdemu poczatkujcemu tworcy 3D nasuwa się na deskę kreślarską jest jakiś dwuślad.
Następnym odkryciem jest oczywiście domek moich marzeń :-) Co prawda nie jest idealny, brakuje mu jeszcze wiele, lecz zarys to podstawa do wyobrażenia złożoności ;) Dodaje wyrenderowany na szybko rozkład ścian ...
Oczywiście chciałbym się z Wami podzielić praktycznymi lekturami w postaci wideo, które są niemal obowiązkowe i pobudzają kreatywnośc w świecie 3D. Oto one:
Zgodnie z nurtem, który spostrzegamy od lat kilku na stronach www będących pochodną nurtu Web 2.0 jako brak przeładowania strony, niemalże natychmiastowe wyniki po kliknięciu na link lub tzw. AJAX wspaniale ewolouuje w zbiór dość efektywnych rozszerzeń dla języka JavaScript :)
Jest coś, co muszę Wam podrzucić do rozważenia. Jest to zbiór bibliotek zwany Mootools, który służy szeroką gamą gotowych rozwiązań problemów prezentacyjnych.
Używam i cieszy mnie fakt, że JavaScript znajduje w końcu coraz więcej praktycznych zastosowań na fronend. Najbardziej mnie cieszy, że silniki interpretujące/wykonujące dynamicznie JavaScript stają się coraz szybsze i mniej pamięciożzerne. A jeszcze większą pociechą dla nas wszystkich jest fakt, że niebawem zapomnimy o IE6, bo ludziska z firmy M$ znają konsekwencje rynkowe, jakie niesie niespełniająca standardów sieciowych przeglądarka.
Marcin Bielak, architekt i programista biznesowych aplikacji internetowych. Stawia od początku na wysoką jakość produktu. W programowaniu wykorzystuje: Open Source, Linux, Python, Golang, ECMAScript/JavaScript.