Archiwum na grudzień, 2007

Z nadmiaru wolnego czasu w okolicy Świąt wyłania się nowa wersja jTemplates - 0.6.
Podstawową zmianą w stosunku do poprzedniej edycji jest umożliwienie iteracji obiektów (a nie tylko tablic) przy pomocy tagu #foreach:

$(’#result’).setTemplate(’{#foreach $T as i}{$T.i$key} - {$T.i}{#/for}‘);
$(’#result’).processTemplate({‘a’:1, ‘b’:2, ‘c’:3});

Inną nowością jest funkcjonalność “Runnable Function” pozwalająca uruchomić funkcje jak zmienną, czyli bez jawnej specyfikacji w postaci nawiasów.

Pełna lista zmian i najnowsza wersja programu jak zawsze na stronie: http://jtemplates.tpython.com/.

Tym razem krótko: polecam znakomity artykuł Filozofia - czyli przedmowa “Sagi o Linuksie”? pióra (a właściwie “klawiatury”) Keyto. Świetny tekst napisany bardzo przyjemnym językiem na temat GNU, Uniksa i nie tylko.

Ciężko opisać moje zdziwienie, gdy dzisiaj czytają listę nowości na FreshMeat ujrzałem FlightGear w pełnej wersji 1.0. Projekt, który jednoznacznie przypomina mi rok 1999, kiedy to po raz pierwszy zainstalowałem Linuksa. FlightGear zawsze rozpoczynał wszelkie zestawienia gier dostępnych na tą platformę.
Symulator lotu, charakteryzujący się świetnym odwzorowaniem rzeczywistości i bogatą bazą modeli samolotów. Cytując z Wikipedii (na licencji: GNU FDL):

Wyróżnia się on profesjonalnym podejściem do symulacji, które przejawia się m.in. w bardzo realistycznym odwzorowaniu nie tylko dynamiki lotu, ale także takich szczegółów jak zgodne z rzeczywistą datą i czasem rozmieszczenie ciał niebieskich.

Jednym z wiodących założeń projektu, postawionym przez twórców projektu już na samym jego początku, są - obok realizmu samego lotu - niewygórowane wymagania sprzętowe projektu.

FlightGear obsługuje m.in. następujące modele dynamiki lotu (ang. Flight Dynamic Model):

* JSBSim - zalecany model dynamiki, oparty na układzie współrzędnościowym, uwzględniającym 6 stopni swobody obiektu; może pracować jako osobny program lub być wywoływanym przez system wizualizacji. Pliki konfiguracyjne dla poszczególnych modeli samolotów i silników są oparte na XMLu. Zawarte w nich informacje bazują na dokumentacji technicznej i danych eksperymentalnych, opisanych przez odpowiednie charakterystyki.

* YASim - model dynamiki będący częścią FlightGear, opiera się na nieco innym podejściu do symulacji niż poprzedni. Bazuje na modelowaniu przepływów powietrza, stąd pod uwagę brane są informacje o geometrii płatowca i jego masie, co ułatwia tworzenie plików konfiguracyjnych dla poszczególnych maszyn.

* UIUC (LaRCsim) - model bazujący na LaRCsim, pierwotnie rozwijanym przez NASA.

Piękne wspomnienia z dawnych lat… i jakby wciąż aktualne…

Impulsem do napisania kilku słów na temat Robocode nadała najnowsza wersja (1.5.1) tego oprogramowania.

Czym zatem jest Robocode?

Zapewne każdy widział w telewizji czy na żywo jak Japończycy z pasją konstruują skomplikowane roboty, a następnie wypuszczają je na arenę tworząc Elektroniczne Sumo. Ten robot, który wypchnie inny z kręgu wygrywa. Istnieje wiele odmian rozgrywki, odbywają się nawet mistrzostwa świata robotów walczących.
Wprawdzie dyscyplina nie jest aż taka kosztowna jak się początkowo wydaje, ale mimo wszystko wymaga sporo zaangażowania i podróżowania z całą elektroniką po różnych konkursach.

Dla osób preferujących ciepło domowego kominka powstał Robocode.
W Robocode nie konstruujemy fizycznie robota, a jedynie oprogramowujemy jego funkcjonalność.

Mam więc dostępne funkcje odpowiedzialne za poruszanie, strzelanie (z działa, gdyż pojazdem sterowany jest czołg), radar i inne. Językiem programowania jest w pełni obiektowa Java - klasa naszego robota jest potomkiem klasy Robot. Po oprogramowaniu czołgu, wrzucamy go na arenę razem z innymi maszynami i obserwujemy przebieg batalii.

Program zrealizowany jest w bardzo przystępny i intuicyjny sposób. API programowalne jest dobrze opisane. Polecam zabawę.

A teraz coś z zupełnie innej beczki: Veronica Belmont (ex-gwiazda CNET i pierwsza dama Internetu, obecnie pracująca dla Mahalo) i jej wywiad z Eric Steuer (Creative Director w Creative Commons) na temat licencji CC i nie tylko…

Faktem jest, że zawsze zabraknie wystarczającej liczny słów by opisać inwencję i kreacjonizm ludzki. CC pozwala uświadczyć go na własny użytek, gdzie bliski kontakt z sztuką innej osoby (a czasem i geniusza) wpływa na rozwój nie tylko jednostki, ale i całego społeczeństwa. Daleki jestem od propagowania komunizmu artystycznego, ale gdy z drugiej strony patrzę na zapędy organizacji “chroniących praca autorów”, to aż mi się robi niedobrze.

Kilka dni po premierze Visual Studio 2008 ukazała się najnowsza wersja środowiska NetBeans - oznaczona pełnym numerem 6.0.
Zmiany w stosunku do 5.5 są znaczące - gównie w sferze wygody obsługi. Tak więc dostajemy poprawiony system podpowiedzi kontekstowych, rewolucji (zdecydowanie na dobre) uległa refaktoryzacja zmiennych.
Pakiet podstawowy obsługuje języki: Java (J2EE, J2SS i bardzo dobrze J2ME), C/C++ (choć wciąż występują problemy z konfiguracją), Ruby (wraz z Ruby on Rails), a także wspierają technologie i rozwiązania jak: UML, SOA, XML i wiele innych.
Pierwsze wrażenia do zainstalowaniu pozytywne. Środowisko działa szybko (w przeciwieństwie do Eclipse) i intuicyjnie. W interfejsie nie poczyniono sporych zmian (choć jest kilka).

Na stronie: http://www.netbeans.org/kb/60/intro-screencasts.html można znaleźć kilka dobrze przygotowanych podcastów prezentujących ceny najnowsze wersji NetBeans.
Więcej podobnych filmików znajduje się na stronie: http://netbeans.tv/

Śpieszę donieść, iż światło dzienne ujrzała następna wersja jTemplates, tym razem oznaczona numerem 0.5.1. W porównaniu do poprzedniej poprawia błąd związany z działaniem tagu #cycle. Aktualizacja nie jest wymagana w przypadku nie korzystania z tego znacznika.