Google Technology User Group Hamburg

Erstes Treffen mit den Themen AppEngine, Mapplets und Gadgets.

[29dsnh4p5a] Am 23. Juni fand das erste Treffen der Google User Group Hamburg statt. Sie beschäftigt sich mit der Vielzahl der Technologien jenseits einer einfachen Suche, die Google inzwischen zur Nutzung auch für eigene Projekte anbietet.
Die Firma „eprofessional“ stellte an diesem Abend den Raum und netterweise auch die Getränke. „Google Technology User Group Hamburg“ weiterlesen

Mehrsprachige Webseiten mit Ruby on Rails (2)

Teil 2 – Platzhalter, Validierungen, Modellklassen

[Zu Teil 1]

Oft enthalten Webseiten Sätze, in denen sich ein einzelnes Wort sich dynamisch ändert. Beispielsweise „Sie sind als „name“ eingeloggt.“ Zur Übersetzung können wir natürlich den Satz aus seinen Bestandteilen zusammenbauen. Oft gibt es ein Problem: in verschiedenen Sprachen ist der Satzbau anders.

Besser ist deshalb die sogenannte Interpolation, wie man sie in Ruby ja kennt. Im Satz steht ein markierter Platzhalter, der zur Laufzeit ersetzt wird. Die yaml-Datei zur Spezifikation nutzt hierbei nicht die Ruby Syntax, sondern markiert die zu ersetzenden durch doppelte geschweifte Klammern. Achtung: In Rails 3 hat sich die Syntax leicht geändert.

# Definition
  logmsg: "You are logged in as {{name}}."
 
# call
I18n.translate(:logmsg, :name => 'Administrator')
# or short form
t :logmsg, :name => 'Administrator'

Wir müssen dabei sicherstellen, das die Parameter von Definition und Aufruf übereinstimmen. Die translate()-Methode dabei relativ tolerant: Überflüssige Parameter werden ignoriert, fehlende Parameter werden mit einem „(???)“ ersetzt.

:!: Achtung: die übersetzende Person muss wissen, dass sie die Variablennamen in den Klammern nicht mit übersetzen soll!
Eine weitere kleine Falle lauert bei den Variablennamen: Sie dürfen nicht wie eine der anderen Parameter der translate()-Methode heißen. Verboten sind deshalb „default“ und „scope“.

„Mehrsprachige Webseiten mit Ruby on Rails (2)“ weiterlesen

SQL: Feld aus verknüpfter Tabelle setzen

Ein kleiner Kniff für den Joomla Community Builder

Neulich erhielt ich eine kleine Auftragsanfrage. Ein bestehende Webanwendung wird stark erweitert und dabei auf das CMS „Joomla“ umgestellt. Zur Mitgliederverwaltung wird die Erweiterung „Community Builder“ eingesetzt.
Bisher hatten die Nutzer eine Nummer als Loginnamen. Diese Nummer soll jetzt für alle alten Nutzer in ein Feld „Mitgliedsnummer“ überführt werden. So weit die Anforderung aus Kundensicht.

Analyse

Joomla verwaltet die Benutzer in einer Tabelle jos_user. „SQL: Feld aus verknüpfter Tabelle setzen“ weiterlesen

Mehrsprachige Webseiten mit Ruby on Rails

Teil 1 – Übersicht

Software in mehreren Sprachen anzubieten ist eine immer wiederkehrende Aufgabenstellung. Um so erstaunlicher ist es, dass Ruby on Rails erst sehr spät hierfür ein standardisiertes Vorgehen eingeführt hat. Seit Version 2.2. ist eine „Internationalization API“ Bestandteil von Ruby on Rails.Das Ruby-On-Rails Mehrsprachigkeitsmodul „Mehrsprachige Webseiten mit Ruby on Rails“ weiterlesen

Jad Check auf Googles Servern

jadchecklogo120x48Der Jad-Check ist ein Qualitätsicherungswerkzeug für Anbieter von Java-Handysoftware. (J2ME- bzw. JME-Midlets)
Er prüft die sogenannte Jad-Datei auf häufig auftretende Fehler. Einige dieser Fehler sind sonst sehr schwer zu finden, sodass man Zeit bei der Fehlersuche spart. Andere Fehler führen nur auf wenigen Handys bei der Installation von Midlets zu Problemen. Nach Murphy Law sind dies typischerweise die von wichtigen Kunden. Als Anbieter kann man sich durch den Test also Ärger sparen und die Kundenzufriedenheit steigern. „Jad Check auf Googles Servern“ weiterlesen

Turing Award für Barbara Liskov

Der Turing Award ist wohl die bedeutendste Auszeichnung in der Informatik. Ein guter Grund, sich mit den Errungenschaften von Frau Liskov zu beschäftigen. Ihr Team hat in den Siebzigern die Programmiersprache CLU entwicklet. In dieser Zeit war für die normalen Programmierer die heißeste Frage, ob man tatsächlich Programme ohne goto-Befehle schreiben kann. „Turing Award für Barbara Liskov“ weiterlesen

Webdesign und Mobiledesign in China

Unsere eigene Kultur bestimmt auch, was wir als ansprechend wahrnehmen, zum Beispiel, welche Webseiten wir gut finden. Das wird einem oft erst bewusst, wenn man mit ganz anderen Vorlieben in anderen Kulturen konfrontiert wird. In Forum Nokia findet sich ein Bericht zu chinesischen Design für klassisches und mobiles Internet. „Webdesign und Mobiledesign in China“ weiterlesen

Vergleich von Strings in PHP

In meiner Programmiertätigkeit wechsle ich oft zwischen verschiedenen Programmiersprachen. Hat man erstmal Konzepte wie strukturierte und objektorientierte Programmierung verstanden, ist das auch gar nicht so schwierig. Probleme tauchen manchmal aber ausgerechnet bei ganz einfachen Dingen auf.

Strings in PHP zu vergleichen ist eigentlich einfach, gibt es doch den „==“ Operator. Doch es lauert eine Falle: „Vergleich von Strings in PHP“ weiterlesen

Multifunctional Produkt

Vor einigen Tagen bekam ich vom Sun Newletter ein Hinweis auf die Ricoh & Java Developer Challenge. Zu gewinnen gibt z.B. eine Reise zur JavaOne, und auch ein Spot-Entwicklerkit für Sensoren.

Aufgabe ist, eine Anwendung für das Ricoh Multifunctional Produkt (MFP) zu schreiben. „Multifunctional Produkt“ weiterlesen

Schleudergefahr: Google-Sitemaps

Schleudergefahr
Schleudergefahr

Wohl die meisten Websitebesitzer möchten, das ihre Seiten gut über Google gefunden werden. Dazu muss Google all unsere Webseiten finden und „verstehen“.
Um Google dabei zu helfen, auch wirklich wichtigen Seiten zu finden, kann man eine sogenannte Google-Sitemap anlegen.

So weit so gut.

Das dafür vorgesehene XML-Format ist in der Praxis zu komplex, um es „von Hand“ zu erstellen. Also sucht man nach einer automatischen Lösung. Ein Programm soll die Sitemap automatisch erstellen. Je einfacher, desto besser.

Das führt uns zu Problem 1: „Schleudergefahr: Google-Sitemaps“ weiterlesen