Pokazywanie postów oznaczonych etykietą framebuffer. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą framebuffer. 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

4 grudnia 2008

Linux framebuffer server - jak uruchomić aplikacje graficzną na serwerze bez trybu graficznego

Często zdarza mi się używać niesamowitych rozwiązań technologicznych :-) Opisane poniżej rozwiązanie nie tyle stwarza warunki do rozwoju, ale również do testowania rozwijanych projektów. Mowa tutaj o trybie framebuffer możliwego do użycia w graficznym systemie X11 windows system. Poniżej przedstawie jak najprościej uruchomić i podglądać nasz wirtualny system graficzny.



Na początek uzupełniamy system o pakiet serwera ramki Xvfb:

sudo apt-get install xvfb


Następnie startujemy wirtualny serwer graficzny w tle poleceniem:

sudo startx -- `which Xvfb` :2 -screen 0 1024x768x24 2>&1 >/dev/null &


W następnej kolejności uruchamiamy naszą aplikacje graficzną na serwerze np: gimp poleceniem:

sudo DISPLAY=:2 gimp


W tym czasie możemy zrobić zrzut ekranu naszego wirtualnego serwera graficznego poleceniem:

xwd -display :2 -root | convert xwd:- /tmp/framebuffer_server_autput.png

lub możemy po zainstalowaniu aplikacji byzanz nagrać obraz z serwera graficznego do animowanego plku GIF:

sudo apt-get install byzanz
sudo DISPLAY=:2 byzanz-record -l --display=:2 /tmp/rec.gif


Uzyskany ze zrzutu ekranu obrazek możmy wyświetlić np: w ten sposób:

sudo DISPLAY=:0 gthumb /tmp/framebuffer_server_autput.png

a wówczas naszym oczom może ukazać sie następujący widok:



Zadajecie sobie pewnie pytanie "po cóż mi taki bezużyteczny framebuffer, skoro nie mam dostępu do pulpitu" i odpowiedzią jest poniższe rozwiązanie używające serwera X11vnc do przechwytycenia widoku framebuffera.

Na początek instalujemy pakiet X11vnc:

sudo apt-get install x11vnc


Po starcie w następujący sposób:

x11vnc -display :2

zauważymy komunikaty typu:

04/12/2008 20:50:11 Autoprobing TCP port
04/12/2008 20:50:11 Autoprobing selected port 5900
04/12/2008 20:50:11 fb read rate: 480 MB/sec
04/12/2008 20:50:11 screen setup finished.
04/12/2008 20:50:11
04/12/2008 20:50:11 WARNING: You are running x11vnc WITHOUT a password. See
04/12/2008 20:50:11 WARNING: the warning message printed above for more info.
04/12/2008 20:50:11

The VNC desktop is: localhost:0
PORT=5900

Informacje wymagane do połączenia z framebuffer serwerem to localhost:0. Połączenia możemy dokonać używając klienta w ten sposób:

vncviewer localhost:0

Powinien pojawić się nam w nowym oknie przechwycony pulpit naszego wirtualnego serwera graficznego.

Dopiero po wykonaniu powyższych przykładów widać wyraźniej, jakie otwierają się przed nami możliwości. Możemy dla przykładu używać wirtualnego pulpitu do uruchamiania procesów automatycznego testowania stron internetowych przy pomocy takich narzędzi jak Selenium oraz Hudson, których moc postaram się przybliżyć w kolejnej wypowiedzi.

Linki:
http://en.wikipedia.org/wiki/Xvfb
http://www.hackinglinuxexposed.com/articles/20040608.html
http://www.xfree86.org/4.2.0/Xnest.1.html
http://wiki.x.org/X11R6.8.2/doc/Xvfb.1.html
http://wiki.seleniumhq.org/display/SRC/Selenium-RC+and+Continuous+Integration