Apr 21

Dieser Blogpost auf der Betavine-Seite schreibt, dass es kein “keypress”-Eventtype in der Vodafone Mobile Widget Runtime gibt.
Das bedeutet aber nicht, dass in Mobile Widgets überhaupt keine KeyEvents abgefangen werden können. “keydown” und “keyup” können sehr wohl verwendet werden.

Hier ein Beispiel unter Verwendung von jQuery:

$(function(){
  $(document).keyup(function(e){
    if(!gameOver){
      switch(e.keyCode){
        case 52: //this is left! (4 on mobile)
           // move left functions
           break;
        case 50: //this is up! (2 on mobile)
           // move up functions
           break;
        case 54: //this is right (6 on mobile)
           // move right functions
           break;
        case 56: //this is down! (8 on mobile)
           // move down functions
           break;
        }
     }
  });
});

Übrigens, auch für Mobile Widgets kann man sehr schön gameQuery (ein Addon für jQuery) verwenden.
Über die mobile Spieleentwicklung mit Widgets aber ein anderes Mal ein kleines Tutorial.

Apr 21

Hier ein kleines Widget, das ich heute gebaut habe, um herauszufinden, welche Tasten auf dem Handy welche Keycodes werfen, damit ich diese dann verarbeiten kann.

Das Widget sollte demnächst auch im Vodafone Widget Portal zur Verfügung stehen (wenn alles gut läuft), ansonsten gibt’s das auch hier schon zum Download (keycode_listener.wgt)

BTW: Natürlich läuft das Widget auch ganz normal im Opera Browser und fängt auch hier die Keycodes der Tasten ab. Ist also für jeden Entwickler interessant.

Apr 02

Beim Erstellen des wgt-Archivs sollte man nicht die Funktion des Finders “… komprimieren” bzw. “compress …” verwenden, da die Vodafone Widget Runtime dieses Archiv auf Grund der 64bit-Komprimierungsmethode nicht erkennt.

Statt dessen z.B. über die Konsole:

  zip -r widgetname.wgt *
Apr 02

Momentan arbeite ich an einem Widget für die Vodafone Widget Runtime. Diese Widgets orientieren sich an Opera Widgets, allerdings stößt man manchmal auf interessante Probleme.

Ein Icon für das Widget kann in der config.xml definiert werden per

<icon>Pfad/zum/icon.png</icon>

Das Problem ist jedoch, wenn man den gesamten Widget-Ordner komprimiert (was nach den Opera Widget Specifications OK ist) und auf dem Mobilgerät einspielt, so wird das Widget-Icon nicht angezeigt.

Lösung:
Anstatt den gesamten Ordner zu komprimieren, nur die Dateien und Unterverzeichnise im Widget-Hauptordner komprimieren!

Anstatt

  zip -r widgetname.wgt widgetordner/

also

  zip -r widgetname.wgt *

im jeweiligen Ordner ausführen.

Dann gehts.

Mär 31

Abwrackprämie: Interview mit Kai Kießler: “Stau im deutschen Internet”

Wir bitten um Aufmerksamkeit, hier die aktuellen Staumeldungen im deutschen Internet:

Es gibt viele Staus, deshalb hier alles ab 5km:

Auf der Internet-Daten-Autobahn 1 (kurz A1) Hannover Richtung Hamburg,  zwischen Hannover-Flughafen und Hannover-Nord, stauen die Daten sich auf Grund einer Datenkollision auf einer Länge von 7km.

Wir bitten um weiträumige Umfahrung.

Jul 15

Hier die Folien meines Vortrags über “Facebook-Anwendungen mit RubyOnRails” beim gestrigen WebMontag in der Uni Paderborn.

FacebookOnRails.pdf

Jul 03

Auch mit Rails 2.1 und dem xss_terminate Plugin scheint es Probleme zu geben. Beim Speichern eines Objekts kommt immer der Fehler

 You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]

Der Fix ist einfach: Eine neue Version des Plugins herunterladen, diese ist gefixt und das Problem ist gelöst.

Jul 03

Wie man an meinen letzten beiden Blogeinträgen erkennt, versuche ich momentan ein Projekt auf Rails 2.1 umzustellen. Das ist nicht all zu schwer, da wir das Projekt vorher auf Rails 2.0 laufen hatten, allerdings gibt es doch einige Stellen die mich wundern.

Zum Einen lief Gettext nach der Umstellung nicht mehr und jetzt auch acts_as_taggable_on_steroids  nicht mehr. Beim Aufruf von xyz.tag_list gab es eine Fehlermeldung:

stack level too deep

Weiterlesen »

Jul 01

Mit Rails2.1 und gettext gibt es anscheinend einige kleine Probleme. Beim Start des Servers kam es bei mir immer zu der Meldung:

 undefined method `init_gettext' for ApplicationController:Class

Gelöst werden kann dies, indem man im Verzeichnis config/initializers eine Datei gettext.rb anlegt mit folgendem Inhalt:

require 'gettext/rails'
module ActionView
  class Base
    delegate :file_exists? , :to => :finder unless respond_to?( :file_exists? )
  end
end
Jun 26

Ohne jetzt hier wieder den alten Kampf zwischen WebORB und RubyAMF als Schnittstelle zwischen Ruby und Flex anzufachen, wollte ich hier etwas aus unserer eigenen Erfahrung berichten.

Vor einiger Zeit sind haben wir ein größeres Projekt von WebORB auf RubyAMF umgebaut. Wir hatten die Anwendung zuerst mit WebORB aufgebaut, da das WebORB besser gepflegt schien und RubyAMF nicht mehr weiter entwickelt wird (jedenfalls nicht vom ursprünglichen Entwickler und nicht momentan, wer weis was die Zukunft bringt). Doch mit der Zeit stellten wir fest, dass WebORB seeehr langsam ist und ausserdem sehr speicherhungrig. Wir haben ein System mit mehreren Mongrel-Instanzen laufen, dass von einem monit überwacht wird.
Weiterlesen »