Pokazywanie postów oznaczonych etykietą wizualizacja. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą wizualizacja. Pokaż wszystkie posty

16 marca 2010

gource & logstalgia - wizualizacja życia repozytorium kodu oraz aktywności na serwerze www

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:

SDL 1.2 (libsdl1.2-dev)
SDL Image 1.2 (libsdl-image1.2-dev)
PCRE3 (libpcre3-dev)
FTGL 2.1.3~rc5-2 (libftgl-dev)
PNG library (libpng12-dev)
JPEG library (libjpeg62-dev)



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:





Materiały dodatkowe:
Oficjalna strona projektu Gource
Oficjalna strona projektu Logstalgia

7 maja 2009

R - język statystyczny do wizualizacji danych eksperymentalnych

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:

  • dostarcza szeroką gamę technik statystycznych (liniowe i nieliniowe modelowanie, klasyczne testy statystyczne, analiza szeregów czasowych, klasyfikacja, grupowanie, etc)

  • ł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

    • library("NazwaBiblioteki") - użycie zainstalowanej biblioteki

    • 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:

http://rpy.sourceforge.net/rpy_demo.html

http://rpy.sourceforge.net/

Oczywiście to kolejny plus na korzyść Pythona :-)


Materiały wideo do nauki języka R:



Oto linki pomocnicze:

http://processtrends.com/Learn_R_Toolkit.htm

http://processtrends.com/

http://www.r-ekonomia.pl/?ksiazki,11

http://www.personality-project.org/r/r.plottingdates.html

http://orgmode.org/worg/org-tutorials/org-R/org-R.php

http://www.nceas.ucsb.edu/scicomp/Dloads/RCourse/RShortCourseMeetThreeNotes.pdf

http://www.nytimes.com/imagepages/2007/01/22/science/20070123_SCI_ILLO.html

http://learnr.wordpress.com/2009/05/10/import-a-text-file-with-repeating-titles/

http://learnr.wordpress.com/2009/05/05/ggplot2-two-time-series-with-different-dates/

http://chartsgraphs.wordpress.com/

http://www.scribd.com/doc/2171544/R-Programming

http://www.scribd.com/doc/288555/dataR

http://www.scribd.com/doc/6187359/R-Matrix-Tutor

http://www.math.ncu.edu.tw/~chenwc/R_note/index.php?item=plot

http://commons.wikimedia.org/wiki/File:R-US_state_areas-1D_log.svg

http://commons.wikimedia.org/wiki/File:R_sin(theta)_Surface_Plot.png

http://commons.wikimedia.org/wiki/File:R-horsekick_totals-quantileplot%2Bquartiles.svg

http://www.r-project.org/other-docs.html

http://processtrends.com/toc_trend_analysis_with_Excel.htm

http://skiadas.dcostanet.net/uploads/RandSweaveInTextMate.mov


Alternatywa dla wykresów - wykresy kołowe:

http://mkweb.bcgsc.ca/circos/tableviewer/

http://mkweb.bcgsc.ca/talks/circos/

http://mkweb.bcgsc.ca/circos/?gallery

17 grudnia 2008

Blender - zaczarowany ołówek 3D

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:


Kurs wideo programu Blender w języku polskim
Skategoryzowane tekstury oraz obrysy różnych obiektów
Baza tekstur
Modele samochodów
Polska strona społeczności blenderowania (forum, artykuły, modele)

Open Source Architecture
Tutorial: Blender Ambient Occlusion
Tutorial: building a house in Blender 3d software - part 1
Tutorial: building a house in Blender 3d software - part 2
Tutorial: building a house in Blender 3d software - part 3
Garden house demo
Virtuality vs. Reality
Using a Lattice to Redisign your model

Wizualizacja butelki Coca-coli

Użycie Blendera do tworzenia i analizy profili nośnych skrzydeł

http://en.wikibooks.org/wiki/Blender_3D:_Tutorial_Links_List#2D_Texture_Painting_Techniques

http://forum.blender3d.pl/viewtopic.php?p=29974&sid=fb546cf1f356e77c05a4f1e74e75a519

http://pg12.bialystok.pl/php/body/edukacja/technologia-informacyjna/budowa_kompa/artykuly/Projektowanie%20grafiki%203D%20w%20Blenderze%20(cz.3)/pf--10s052_54.pdf

http://wiki.blender.org/index.php/Manual.pl/Pierwsza_Animacja_w_30_i_30_Minut_Czesc_I

http://www.pixel2life.com/tutorials/blender_3d/

http://wiki.blender.org/index.php/Doc:Tutorials/Modelling/Curves/B%C3%A9zier

http://blenderunderground.com/forums/viewforum.php?f=19

12 czerwca 2008

Jak AJAX to JavaScript - znaczące możliwości wizualizacji



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.