1.class gibt nicht ‘Ruby’, sondern ‘Fixnum’ zurück

obwohl auch Ruby 1st class ist. 😉
ri (Dokumationsausgabe) verwende ich bis jetzt am häufigsten, aber die Methodenaufrufe mit Blöcken und Iteratoren haben schon einen Reiz. Weniger Klammern und über meinen häufigsten Fehler, ein vergessener Srichpunkt, brauche ich mich auch nicht ärgern.
Veränderbare Strings mit [] und << fielen mir auf, sowie freez und sonst merke ich mir, $_globale_Variable, @_Instanzvariable, @@_Klassenvariable, ? am Ende von Bezeichnern für Boolean-Rückgabewerte, ! am Ende für Mutator-Alternativen und mit “=” kann eine Methode durch Wertzuweisung aufgerufen werden.
Bezüglich “whitspace” gibt es auch einige interessante Details. Ein Zeilenumbruch ist jedenfalls nach einem Operator, Punkt oder Komma in einem Array- oder Hashliteral und Methodenaufruf erlaubt.
Ab Ruby 1.9 funktionirt auch:

blumerl = Array.new
.push(“Rose”)
.push(“Kaktus”)
.push(“Brennessel”)
.sort

da Zeilen die mit Punkt beginnen als Fortsetzungszeile erkannt werden.

Leerzeichen zw. Methodenbezeichner und öffnender Klammer sind gefährlich und produzieren eine Warnung, da
f(4+5)+2 etwas anderes ergibt, als
f (4+5)+2

Nächstes mal notiere ich mir hier einiges zu Datentypen und Objekten in Ruby.

Ubuntu 10.10 ist erhältlich

Nun ist es mir doch tatsächlich das erste mal seit Ubuntu 5.4 passiert, dass ich nicht schon tagelang auf die neue Version warte und so hätte ich Maverick Meerkat beinahe verpasst. 😯 Man kann das aber auch als Zeichen dafür werten, dass ich eben mit der 10.04 LTS Version schon völlig zufrieden bin. 😉

Free apps, safe and fast web browsing, a dedicated music store and much more. Ubuntu brings the very best technologies straight to your desktop.

heißt es auf Features.

Blueprints for Maverick
Ubuntu

WP-Plugins

Ich habe wieder einmal zwei WP-plugins getestet. Leider finde ich noch immer das gleiche Problem, dass man sich sehr oft nicht einmal die Mühe macht, ein gültiges HTML zu verwenden. Ausbessern kommt schon wegen der Updates für mich nicht mehr in Frage.
Janrain Engage – ein Plugin zur Anmeldung über das Janrain Engage(rpx) web service.

Simple Facebook Share Button by disparate.info hätte ich sonst zwar vielleicht verwendet, aber der Markup Validation Service zeigt 5 Errors, 5 warning(s) auf

Maemo, MeeGo und das Nokia N900

Es ist noch nicht lange her, da entdeckte ich mit Begeisterung Openmoko und den Neo FreeRunner, siehe auch Surfspur. Maemo, MeeGo und das Nokia N900 entzücken mich heute und ich will mir zu dieser fantastischen Hard- und Software gar nicht viel notieren, sondern nur die Links zu den Seiten sind mir hier wichtig. Dort findet man ja alle Details. Nur ein Zitat aus Wikipedia zu MeeGo:

MeeGo ist ein auf Linux basierendes, quelloffenes Betriebssystem, das in Smartphones, Handhelds, Netbooks, ans Internet angeschlossenen TV-Geräten und PKWs Einsatz finden soll.[1] Es ist eine Verschmelzung von Nokias Betriebssystem Maemo mit Intels Moblin-Projekt. Das Projekt ist bei der Linux Foundation angesiedelt. MeeGo ist ein Multiplattformprojekt und unterstützt die Architekturen X86/Intel-Atom und ARM. Die Übertragung auf andere Hardwareplattformen ist jederzeit möglich…
Die MeeGo 1.0 Core Software Platform umfasst den Linux-Kernel 2.6.33, das Standarddateisystem Btrfs, Nokias UI-Framework Qt 4.6, DeviceKit und für die Hardware-Schnittstellen udev. Des Weiteren sind X.org, ein Telefonie- und ein Bluetooth-Stack sowie Media-Frameworks Bestandteil des Systems. Auf die Kernplattform setzen die sog. ..

Weblinks:
Opie
Nokia N900 with free gps
MeeGo
Maemo
Maemo (Wikipedia)
Nokia N900

Ruby – Core API

Operatoren und Kontrollstrukturen
Reihenfolge der wichtigsten Operatoren:
• [] (Menge)
• ** (Potenz)
• !, + (Vorzeichen), – (Vorzeichen)
• *, /, %
• > > (Bitverschiebung links), < < (Bitverschiebung rechts)
• & (bitweise Und)
• ^ (bitweise Exklusiv-Oder), | (bitweise Oder)
• <=, <, >, >=
• <= >, ==, ===, !=, =~ (entspricht Muster, s.u.), !~ (entspricht Muster nicht)
• &&
• ||
• .., …
• ?:
• =, +=, -=, *=, /= usw.
• not
• or, and

Core API
siehe auch RubyDoc.org

Zu Kontrollstrukturen:
if Bedingung
Anweisung(en)
...
elsif Bedingung
Anweisung(en)
...
[elsif ...]
else
Anweisung(en)
end

in Ruby gibt es aber auch ein “unless” als nachgestellte Fallentscheidung (weniger Verneinungen; für mich oft leichter lesbar).

case Variable
when Wert1, ...
Anweisung(en)
...
when Wert2, ...
Anweisung(en)
...
...
else
# Kein Wert trifft zu
Anweisung(en)
...
end

while Bedingung
Anweisung(en)
...
end

dazu die “until”- Schleife, bis Bedinggung eintritt;

loop do
Anweisung(en)
...
end


for Variable in Menge
Anweisung(en)
...
end