XUL - Platformübergreifende Anwendungen in JavaScript

XUL ist eine von der Mozilla-Stiftung entwickelte auf XML bassierende Beschreibungs- sprache. Mit XUL(XML User Interface Language) ist die gesamte Oberfläche des Firefox-Browser erstellt worden. XUL wird mittels der Gecko-Engine gerendert. Der  XLU-Runner ist eine Laufzeit- umgebung die es ermöglicht eigenständige Anwendungen zu erstellen. Dabei wird die Logik in JavaScript geschrieben.

XUL-Runner implementiert folgende Features:

  • XPCOM
  • Networking
  • Gecko rendering engine
  • DOM editing and transaction support (no UI)
  • Cryptography
  • XBL (XBL2 planned)
  • XUL
  • SVG
  • XSLT
  • XML Extras (XMLHttpRequest, DOMParser, etc.)
  • Web Services (SOAP)
  • Auto-update support (not yet complete)
  • Type ahead find toolbar
  • Accessibility support
  • IPC services for communication between gecko-based apps (not yet complete)
  • Storage - SqLite interfaces (not yet turned on by default)

Weitere Informationen unter: developer.mozilla.org

PHP-Reboot

PHP-Reboot ist eine an PHP angelehnte Sprache. Sie wird momentan von Rémi Forax für die Java-Virtual Machine implementiert und ist dadurch auf allen Java-Platformen lauffähig. Explizit wird hier Android genannt. PHP-Reboot soll keine eins-zu-eins Umsetzung von PHP werden, der Syntax und  Sprachumfang soll aber ähnelich sein. Die Sprache soll mit weniger Semikolons und $-Zeichen auskommen. PHP kommt mit Derby als integrierte Datenbank und bringt auch einen eigenen Webserver auf Basis von Grizzly. Die Sprache unterstützrt nativ XML und SQL, ws werden also keine anderen Tools benötigt um eine Web-Application zu erstellen.

PHP-Reboot kann in einer frühen Version unter code.google.com/p/phpreboot heruntergeladen werden.

Raspberry Pi - Preiswerter Minicomputer

Beim "Raspberry Pi" handelt es sich um einen günstigen Singel-Board-Minicomputer für Schulungszwecke. Er soll um die 25 Dollar kosten und währe damit unschlagbar billig. Ein besser ausgestattetes Beagel-Board kostet immerhin um die 120 Euro. Für viele Anwendungen ist die durch den "Raspberry Pi" zur Verfügung gestellte Leistung ausreichend. Der Pi setzt auf Ubuntu als Betriebssystem. Ein genauer Erscheinungstermin ist bisher noch nicht bekannt, auf der Homepage heißt es nur "spätes 2011".

Prototype Hardware-Austattung:

  • 700MHz ARM11
  • 128MB of SDRAM (256MB optional)
  • OpenGL ES 2.0
  • 1080p30 H.264 high-profile decode
  • Composite and HDMI video output
  • USB 2.0
  • SD/MMC/SDIO memory card slot
  • General-purpose I/O
  • Optional: Integrated 2-port USB hub and 10/100 Ethernet controller 

Weitere Infomationen unter: www.raspberrypi.org

gLabels - Visitenkarten unter Linux

gLabels ist ein Programm zum erstellen von Visitenkarten und Beschriftungen (für Leitz-Ordner usw.). gLable ist für Gnome optimiert und kompatibel mit vielen Standard-Visitenkarten-Vorlagen die einfach aus einer Liste ausgewählt werden können. Zum drucken können alle unter Linux unterstützten Drucker verwendet werden.

gLabels steht unter der General Public License und kann kostenlos unter glabels.sourceforge.net heruntergeladen werden.

Voronoi - ASCII-Art

Bei einem Voronoidiagramm, welches auch als Dirichlet-Zerlegung bezeichnet wird, handelt es sich um eine Darstellung eines endlichen Raumes, der in einzelne Regionen aufgeteilt wird. Jede Region kann einen oder mehrere Zentren besitzen. Dies variiert je nach Anwendungsfall. Die Größe der Regionen ist unabhängig von der Anzahl der Regionen und wird durch den Bezug zur euklidischen Metrik gebildet. Dies bedeutet, dass alle in der Region liegenden Punkte zu   keinem anderen Zentrum näher liegen, als zu seinem eigenen. Alle Punkte, welche die gleiche Distanz zu mehreren Zentren besitzen, werden als Grenzen bezeichnet.

Zur Bestimmung der Voronoi-Regionen wird die nächste Entfernung zweier Voronoi- Zentren durch nächst größere geteilt (best / good). Dies Zahl wird immer zwischen null und eins liegen. Punkte die nahe dem Zentrum sind haben fast den wert 0. Punkte nahe einer Kante haben fast den Wert eins. Was so viel bedeutet das sie fast genau soweit von zwei Punkten entfernt sind. Am Ende wird dieser Wert mit 10 multipliziert und in einen Integer gecastet. Diese Zahl ist dann der Index aus einem Array in dem alle für die Grafik zur Verfügung stehenden Zeichen abgelegt sind.

Opera Speed Dial - Sync Problem / Fehler

In den neueren Opera-Versionen kommt es immer wieder zu Problemen mit der Synchronisierung der Speed-Dial-Felder. Falls Opera einmal wieder alle, oder fast alle Felder vergessen hat, kann den Browser über die Einstellung "Sync Client State Speed Dial 2" dazu veranlassen alle Felder neu zu Synchronisieren.  

Dazu ist es lediglich notwendig den Wert "Sync Client State Speed Dial 2" auf 0 zu setzen. Am einfachsten erreicht man die entsprechende Einstellung in Opera indem man folgenden Link folgt. bzw. in die Adressleiste von Opera kopiert:

opera:config#Sync%20Client%20State%20Speed%20Dial%202

Nach dem zurücksetzen des Werts auf 0 sollte der Browser Speed-Dial innerhalb der nächsten Minute synchronisiert haben.

Maratis

Maratis ist ein einfaches, portables, grafisches Game-Developmet-Tool für Künstler und Entwickler. Die integrierte Engine wurde bereits unter Windows, Mac und iPhone getestet und kann laut Entwickler einfach auf andere Plattformen portiert werden. Die eigentliche Entwicklungsumgebung ist bisher nur für Windows verfügbar. In der aktuellen Fassung kann Maratis noch nicht mit kommerziellen Game-Developmet-Tool wie Unity mithalten, allerdings ist die Benutzeroberfläche sehr einfach und intuitiv gehalten. 

Weitere Informationen findet man unter: www.maratis3d.org

libRocket - Game-Interfaces auf die schöne Art

libRocket ist eine C++ Middelware die es ermöglicht mit HTML und CSS User-Interfaces für Spiele oder 3D-Anwendungen zu erstellen. libRocket ist für die Systeme Windows, Mac und Linux verfügbar und steht unter der MIT-Lizenz. 

Durch den Einsatzt bekannter HTML-Technik gestaltet sich das Erstellen von Oberflächen sehr einfach und es muss keine neue Technik gelernt werden.  Durch abstrakte Interfaces ist es möglich libRocket in unterschiedlichen Game-Engines einzusetzen. Es existieren Beispiele für Orge, OpenGL und DirectX, es ist aber auch der Einsatz von anderen Engines wie z.B Irrlicht möglich. 

Weitere Informationen zu libRocket  findet man auf der Projekt-Homepage: librocket.com

Operas neue Schnellwahl - Anpassungen

In Opera 11 ist eine neue Version der Schnellwahl eingebaut, welche automatisch nach Webseit-Logos sucht. Leider funktioniert das nicht immer richtig, besonders wenn kein Bild, sondern nur Schrift als Logo verwendet wir. Glücklicherweise ist es recht einfach dies zu ändern. Einen ausfühlichen Artikel in englischer Sprache findet man unter: dev.opera.com/articles/view/opera-speed-dial-enhancements.

Hier das Wichtigste zusammengefasst:

Über einen Icon-Link kann eine Bilddatei angegeben werden die in der Schnellwahl angezeigt werden soll, dises muss mindestens eine Größe von 114  x 114 Pixeln haben ansonsten wird sie ignoriert.  Es können auch mehrere Icons in unterschiedlichen Größen eingebunden werden, Opera wählt immer selbst die am besten passende aus. 

<head>
  <title>My Opera</title>
  <link rel="icon" type="image/png" href="http://path/to/logo.png">
</head>

Alternativ kann der Webserver angewiesen werden eine andere Webseite auszuliefern die dann in der Schnellwahl dargestellt wird. Dies ist möglich da Opera bei seinen Anfragen für die Schnellwahl immer einen speziellen Header mitsendet.

GET / HTTP/1.1
Host: www.bbc.co.uk/news
X-Purpose: preview 
User-agent: Opera/9.80 (Macintosh; Intel Mac OS X 10.6.6; U; en) Presto/2.8.99 Version/11.10

Beim Apache-Webserver kann diese Anfrage über folgende Rewrite-Rule auf einen andere Seite umgeleitet werden:

RewriteEngine On
RewriteCond %{HTTP:X-Purpose} ^preview$
RewriteRule ^(.*) /preview.html

Alternativ ist das auch über PHP möglich:

<?
if ($_SERVER["HTTP_X_PURPOSE"] == "preview") {
    // Send Speed Dial content
} else {
    // Send regular content
}
?>

Die Zeit bis zum nächsten Refresh der Vorschau kann entweder über ein Meta-Tag

<meta http-equiv="preview-refresh" content="3600">
oder über einen Response-Header geändert werden.

Preview-Refresh:3600

AntMe - Spielend Programmieren lernen

AntMe ist ein Ameisen-Simulations-Umgebung. Mit AntMe können Anfänger spielend erste Erfahrungen mit dem Programmieren sammeln. Ziel ist es bei AntMe ein Ameisenvolk erfolgreich zu managen. Dabei kann bei der Simulation nicht mehr eingegriffen werden, die Ameisen müssen autark handeln. Vor jeder Simulationsrunde kann die KI (Künstliche Intelligenz) der Ameisen programmiert werden.

Zum Programmieren eignen sich besonders die Programmiersprachen C# und VisualBasic, da für diese bereits Vorlagen existieren. Prinzipiell ist es aber möglich in allen .NET-Sprachen zu programmieren.

Ist die erste KI für die Ameisen programmiert kann sie über die Integrierte-Simulations-Umgebung getestet werden. AntMe kann unter antme.net bezogen werden.