Ich kann es kaum glauben: technoweenie, auch bekannt als Rick Olson, hat seine Community-Website RailsWeenie auf CodeRay umgestellt.
CodeRay ist eine Bibliothek zum Highlighten von Code verschiedener Sprachen, allerdings mit Betonung auf Ruby—> HTML. Ich arbeite seit Jahren daran, und sowohl Ruby-Mine als auch rubyforen.de setzen es ausgiebig ein. Zur Zeit gibt es leider immer noch keine ordentlich getestete Version, und die Dokumentation lässt zu wünschen übrig. Das wird sich bis Jahresende ändern, versprochen!
Das war der erste Durchbruch. Danke, Rick!
Weiterlesen: Ankündigung als Snippet
Heute traf sich die Ruby-User-Group Berlin im newthinking store in Kreuzberg.

Bram Moolenaar scheint Ruby zu mögen. Vim hat ja schon seit langem Ruby-Support, aber nun ist Vim 7.0 fertig und folgendes steht in der offiziellen Ankündigung:
Since Vim 6.4 many new features have been added. To mention a few: ... - Intelligent completion for C, HTML, Ruby, Python, PHP, etc. ...
Man beachte die Reihenfolge! Und: Java == etc. I love my Vim. :)
Ja. Ihr müsst euch anschauen, was David Kamphausen und sein Team dort produzieren:
Ein Open-Source-3D-Echtzeit-Strategiespiel zum Mitmachen!
Die Grafik des Spiels läuft mit C++, aber die gesamte Spiellogik (Lebewesen, Feinde/Freunde, Regeln, Physik, Interaktion, Level, Scripte, ...) ist in Ruby programmiert und dementsprechend änderbar. Schon jetzt hat das Spiel über 12.000 Zeilen Ruby-Code. Es soll auf Windows, Linux und FreeBSD laufen.
Für why the lucky stiff ist die Sprache Ruby keine Konstante (nicht einmal ein Eigenvektor), sondern ein Spielzeug. Das sieht man an seinem jüngsten Blogeintrag auf RedHanded in der Kategorie bits, mit dem schönen Namen EigenCharges. Die Leser waren wie üblich begeistert bis schockiert, unter anderem cypher, der auch diesen Beitrag angestoßen hat. Zeit für den Syntax-Sonntag! Im Gegensatz zu Superman kommen wir allerdings nicht immer pünktlich.
Heute habe ich wieder gesehen, wie nützlich Ruby-Einzeiler sind. Das Kommando ruby akzeptiert die aus Perl bekannten Schalter-e, -n und -p.
Hinweis: Ich hoffe doch mal, jeder kennt LaTeX!
Mein Arbeitgeber (und Prof) hat uns die TeX-Quellen seiner Vorlesung gegeben. Ich wollte herausfinden, wofür er die notes-Umgebung bisher eingesetzt hat. Dafür hätte ich mehrere Dokumente einzeln öffnen und nach solchen Blöcken durchssuchen müssen:
\begin{notes}
Beispiel:
$\phi:=\exists x( Ryz\wedge \forall y(\neg y\eq x\vee Ryz))$.
\end{notes}
Wir sind doch nicht mehr im Mittelalter! Konsole öffnen, Ruby fragen:
ruby -ne "print if /\\\\begin\\{notes\\}/ .. /\\\\end\\{notes\\}/" *.tex
\begin{notes}[1A]
Beispiele an der Tafel
\end{notes}
\begin{notes}[1B]
Beweis an der Tafel
\end{notes}
\begin{notes}[1C]
Abgeleitete Regeln werden mit zwei Buchstaben bezeichnet
Beweise an der Tafel
...
Voilà ! Sämtliche Daten, die mich interessieren, werden herausgefiltert.
Am Besten man schickt das gleich an einen Editor, damit man in Ruhe lesen kann:
ruby -ne "..." *.tex | gvim -c "set ft=tex" -
Außerdem brauchten wir noch eine Dokumentation zur Makro-Datei, in der allerhand Abkürzungen in der Form
\\nc{\\Bigmid}{\\;\\Big|\\;}
standen. Einen Prototyp erzeugte ich ebenfalls sehr einfach mittels ruby -ne. 5 Minuten später war das Dokument fertig.
Gerade wer Ruby als Hochsprache einsetzt und objektorientiert programmiert, der vergisst leicht, dass Ruby auch eine Scriptsprache ist. Ruby kann praktisch alles, was Perl kann, nur einfacher. Und Perl kann alles, was die Shell kann, nur einfacher.
Wer ruby -h mit perl -h vergleicht, könnte Ruby für einen Perl-Klon halten.
Hier die zehn (für mich) wichtigsten Optionen:
Ruby the Shell!
Syntax-Sonntag! Heute:
Dieser Erfahrungsbericht eines Java-Opfers macht wieder deutlich, wogegen wir Dynamiker eigentlich kämpfen.
Ach, und die Klasse String ist aus mir unbekannten Gründen als final gekennzeichnet. Tolle Wurst. Was ich mache, wäre nämlich am besten in einer Unterklasse von String aufgehoben. Aber ich kann natürlich auch die tausendste StringWrapper selbst implementieren, bitte sehr, gern geschehen.
Sicher, es ist immer etwas schwierig, sich auf ein neues/ungewohntes Paradigma einzustellen. Und diese statische Typisierung hat bestimmt auch irgendwelche Vorteile, die mir grad nicht einfallen. Mir ist aber heute so richtig klargeworden, wie sehr man in solchen Sprachen damit beschäftigt ist, nur den Compiler zufriedenzustellen, obwohl man doch genau weiß, was man tut. Bevormundung durch Technik. Nix für Leute mit Stolz. :->
Danke, Jochen!
Ach, wenn ich es richtig verstanden habe, geht es einfach darum, aus eine Collection (Array) von Zahlenwerten den kleinsten zu finden.
In Ruby: [1,2,3].min.
In Python: min(1,2,3).
Gern geschehen.
Zeit für den Myntax-Mittwoch! Und zwar geht es um
module Kernel
alias old_require require
def require *args, &blk
if args.first == eval('self', TOPLEVEL_BINDING)
puts "Have fun, and don't use eval!"
else
old_require *args, &blk
end
end
end
require self
Ruby hat es im April auf Platz 18 des TIOBE Programming Community Index geschafft. Vielleicht ist es bald eine Level-A-Sprache (= Mainstream).
Der Index wird berechnet anhand der Suchmaschinen Google, MSN, Yahoo! und den Google Newsgroups der letzten 12 Monate. Gesucht wird nach dem Term "[Sprache] programming".
Ein alternativer Index ist der nicht ganz ernst gemeinte Love/Hate-Index von Thomas David Baker. Schon im April 2004 war Ruby dort ganz oben, zwei Jahre später gibt es keinen Zweifel mehr: Ruby ist die meistgeliebte Sprache überhaupt.
Was gibt es Neues in Rails 1.1?
Die Bergarbeiter in der Ruby-Mine haben einen ganzen Wagen voller Hinweise ans Licht gebracht - auf Deutsch, diesmal.
Wer also nicht genug Englisch kann, um die Originalartikel zu lesen, oder unsere Ergänzungen lesen möchte, findet auf
die Ergebnisse tagelangen Grabens.
Viel Spaß :)
Syntax-Sonntag, verspätet. Ich hatte bis eben noch Urlaub. Heute geht es, wie versprochen, um
Die neue Version ist da. Bei den ganzen neuen Features blicken wir auch noch nicht ganz durch, aber demnächst erscheinen hier noch Beiträge zum Thema.
Nicht :-) ohne Stolz kann ich sagen, dass auch 3 kleine Patches von mir darin enthalten sind. Das macht deutlich, wie einfach es ist, bei Rails mitzuhelfen.
Es gibt ein paar Schwierigkeiten mit alten Ruby-Versionen:
Und noch ein Syntax-Plugin für Vim: Rails-Logfiles.
Besonders Windows-User leiden darunter, dass die Logfiles so einfarbig sind, weil dort das ANSI-Färben nicht funktioniert. Dieses Plugin soll Abhilfe schaffen: Es ist kreischbunt, bietet also viel Raum für den Programmierer, die Einstellungen anzupassen. Bearbeitet einfach die HiLink-Sektion, um die Farben zu ändern.
Ihr müsst die Datei in den syntax-Ordner eurer Vim-Installation schieben. Aktiviert wird das Highlighting entweder mit :set ft=railslog oder durch folgenden Eintrag in die filetype.vim:
" Rails log file au BufNewFile,BufRead development.log,test.log,\ production.log setf railslog
Download: railslog.vim