20 grudnia 2008

Poznaj trasę mojej podróży dzięki KML i Google Maps

Ostatnio przyciągnął moją uwagę pewien projekt połączenia nawigacji z fotografowaniem, który umożliwia powiązanie zdjęć z danymi z GPS i opublikowaniem własnej mapy podróży na Google Maps. Projekt ten nosi nazwę. Warto zauważyć, że przykładowe ścieżki podróży, wraz z opublikowanymi zdjęciami w formacie KML, które opublikował autor są dość pokaźnym kawałkiem technologii w rękach człowieka-programisty ;-)

Oto przykładowa interpretacja pliku KML przez Google Maps:




Dodatkowe linki:
Co to jest KML?
KML na wikipedii
Przykłady kodu KML

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 grudnia 2008

CouchDB - odkrycie kolejnego wymiaru noSQL

Jak zwykle szukając w wielkim sieciowym worku różnych rozwiązań natkąłem się na dość interesujący temat składowania dokumentów w systemie bazodanowym wspierającym map reduce o nazwie CouchDB. Postaram się nieco przybliżyć zagadnienie oraz podać linki do procesu instalacji CouchDB, wraz z zaprezentowaniem przykładowych rozwiązań klienckich w działaniu na dostępych materiałach w sieci.
CouchDB posiada interfejs REST dostępu do danych. Jest on prosty, gdy wystarczy nam pobranie prostych danych. Jeśli chcemy jednak wykonać skomplikowane zapytanie, musimy naszą bazę odpowiedni przygotować i utworzyć widok, przy pomocy którego wywołujemy zapytanie. Dla lubiących SQLe - to jest przesiadka do innego wymiaru, takiego bez SQLi :-) Porządnie opanowane widoki mogą przyspieszayć odczytu danych wielokrotnie. I tutaj nie oszczędzamy, tzn. potrzebujemy widoku z przekrojem danych z kilkoma opcjami, zróbmy sobie te N-opcji i baza zadba o odpowiednie serwowanie nam gotowych wyników.
Polecam świetny wstępniak do CouchDB, który na pewno przybliży zabawe z tą bazką.




Materiały wideo:








Cloud Computing in Plain English





Linki:
Into to REST
Mars: A MapReduce Framework on Graphics Processors
Grid Gain
Disco is an open-source implementation of the Map-Reduce framework for distributed computing
Linux Journal chats with GoGrid about Cloud Computing
Cloud Computing in Plain English

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