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.

Raphae -Browserübergreifendes SVG Rendern

Mit der mit nur 60 kb recht kleinen Raphaë-Javascriptlibrary können alle geometrische Grundformen sowie Pixel-Bilder gezeichnet werden.

Performance-Technisch bassiert Raphaë auf SVG-Rendering das langsamer ist als ein Rendering per Canvas Element, dafür unterstützt es aber auch ältere Internet Explorer.

Raphaë kann unter raphaeljs.com heruntergeladen werden.

PhoneGap - Mobile-Apps auf sechs Plattformen

LogoPhoneGap ist ein HTML5-App-Framework das es ermöglicht Programme für sechs Mobile-Plattformen zu erstellen. Programme können für iPhone, HP webOS, Google Android, Windows Mobile, Symbian OS und BlackBerry entwickelt werden.

Die Programlogik wird dabei in JavaScript programmiert, die Oberflächen werden in HTML5 designt. PhoneGap stellt zur Ausführung der Programme auf allen Plattformen eine weitgehend einheitlichen API zur Verfügung. Über diese API ist der Zugriff auf native Funktionen des Handys möglich, dazugehören z.B. Neigungssensoren, Kamera, GPS, Kontaktdaten, Internet und vieles mehr.

Die eigentlichen Programme werden in einer Art Fullscreen-Browser ausgeführt. Dadurch sehen die meisten PhoneGap-Apps nicht aus wie mit dem SDK der Plattform nativ erstellte Apps. Allerdings sind PhoneGap Apps meist schneller erstellt und ohne Anpassung auch auf anderen Plattformen lauffähig. Zur Erstellung von Oberflächen können die bereits aus der Webentwicklung bekannten Javascriptframeworks wie jQuery oder MooTools verwendet werden. Es existieren auch einige spezielle Frameworks  wie  Sencha Touch oder jQuery Mobile die es ermöglichen ansprechende Touchscreen-Oberflächen in JavaScript zu erstellen.

PhoneGap kann unter www.phonegap.com heruntergeladen werden. Die API findet man unter docs.phonegap.com.

Cyberduck

Cyberduck ist ein freier FTP-Client,  der ursprünglich für Mac OS X entwickelt wurde. Inzwischen ist er auch für Windows  in einer stabilen Version erhältlich. Mit Cyberduck ist es aber nicht nur möglich auf FTP-Server zuzugreifen, das Programm unterstützt eien Vielzahl von Protokollen und Diensten. So kann auf folgende Services/Protokolle zugegriffen werden.

  • FTP (File Transfer Protocol)
  • SFTP (SSH Secure File Transfer)
  • WebDAV (Web-based Distributed Authoring and Versioning)
  • Amazon S3,
  • Google Storage
  • Windows Azure,
  • Rackspace Cloud Files
  • Google Docs

Durch die Möglichkeit auch über SFTP auf einen Server zugreifen zu können eignet sich Cyberduck auch als Alternative zu WinSCP. Cyberduck kann unter cyberduck.ch heruntergeladen werden.

WebGL - 3D-Engines für den Browser

Seit kurzem ist die erste Spezifikation von WebGL verfügbar. Chrome wird bereits mit aktiviertem WebGL Feature ausgeliefert. Von Firefox und Opera existieren Beta-Versionen mit WebGL-Unterstützung, nur Microsofts IE unterstützt den Standard bisher noch nicht.

WebGL ermöglicht den Javascriptseitigen Zugriff auf die OpenGL-ES-Schnittstelle. Dadurch wird es möglich 3D Inhalte direkt im Browser darzustellen, ein Plugin wird dafür nicht benötigt. Bei WebGL handelt es sich nicht um eine 3D-Engine, vielmehr ist es eine Programmier-Schnittstelle. Es gibt bereits einige Implementierungen von 3D-Engines die einem Entwickler die Low-Level Arbeit abnehmen und so einen einfachere Verwendung ermöglichen. Nachfolgen eine Aufstellung der bekanntesten Engines:

Greenshot eine Alternative zu SnagIt - Review

Seit dem letzten Artikel über das OpenSource-Screenshot-Programm Greenshot ist einige Zeit vergangen. Inzwischen ist das Programm in einer stabilen Version erschienen. Das Programm ist in einer Vielzahl von Sprachen verfügbar, darunter ist auch die  deutsche. Über Greenshot können ganze Fenster, Monitore oder auch nur Bereiche eines Fensters fotografiert werden. Nach dem ein Bild erstellt wurde kann dieses einfach über den integrierten Editor bearbeitet werden und so z.B. mit Pfeilen oder Kommentaren versehen werden.

Greenshot kann unter www.getgreenshot.org heruntergeladen werden. 

Berechnungen mit Wolfram Alpha

Wolfram Resarch bietet eine kostenlos verwendbaren, auf der Software Mathematica basierender Internetdienst zum Auffinden und Darstellen von Informationen an.

Über Wolfram|Alpha können einfach auch komplexe Berechnungen vorgenommen werden oder statistische Daten abgefragt werden. Man kann Wolfram|Alpha unter www.wolframalpha.com erreichen.

Tabellen-Spalten-Namen unter SQLite auslesen

Das auslesen der Spalten einer SQLite-Tabelle ist leider nicht über SHOW COLUMS FROM möglich, allerdings kann man sie über das folgende PRAGMA-SQL-Statement auslesen:

PRAGMA table_info( tabellen_name )

Als Rückgabewert erhält man die cid, den Tabellenname, den Feldtype, null / not null ,  das  dflt_value und ob es sich um einen PrimaryKey handelt. 

Weitere Informationen zu PRAGMA findet man unter: www.sqlite.org/pragma.html

Ubuntu als Webserver einrichten

Die Einrichtung eines Linux-Servers ist keine ganz triviale Aufgabe. Im Folgenden wird beschrieben, wie man Ubuntu 9.10 als Webserver konfiguriert. Dieses Tutorial entstand, weil es unter Ubuntu nicht ohne Weiteres möglich ist, eine funktionierende PHP-Umgebung mit PDO und SQLite zu installieren. Werden die benötigten Module lediglich über apt-get installiert, kommt es zu Versionskonflikten mit SQLite, die sich nur durch manuelles Kompilieren und Anpassungen an den Makefiles beheben lassen. Befolgt man jedoch die hier beschriebenen Schritte, ist dies nicht erforderlich. Offenbar nimmt Tasksel bestimmte Konfigurationsanpassungen vor, die bei einer manuellen Installation mit apt-get nicht automatisch erfolgen.