ruby-mine

exploring the mine

Rails Weenie nutzt CodeRay

von murphy am 15.06.2006 (19 Uhr)

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

 
Kommentare (5)

RUGB0606

von murphy am 02.06.2006 (01 Uhr)

Heute traf sich die Ruby-User-Group Berlin im newthinking store in Kreuzberg.


Vollständigen Artikel lesen...
 
Kommentare (6)

Vim 7.0: Noch mehr Ruby?

von murphy am 25.05.2006 (01 Uhr)

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. :)

 
Kommentare (2)

Ein 3D-Spiel in Ruby???

von murphy am 17.05.2006 (20 Uhr)

Ja. Ihr müsst euch anschauen, was David Kamphausen und sein Team dort produzieren:

Battles of Antargis - Logo

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.


Vollständigen Artikel lesen...
 
Kommentare (4)

Optionen aufladen mit Ruby

von murphy am 16.05.2006 (02 Uhr)

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.

Ruby-DSL of the Week - oder - Was macht why da schon wieder?


Vollständigen Artikel lesen...
 
Kommentare (1)

ruby -h

von murphy am 04.05.2006 (00 Uhr)

Heute habe ich wieder gesehen, wie nützlich Ruby-Einzeiler sind. Das Kommando ruby akzeptiert die aus Perl bekannten Schalter-e, -n und -p.

Reales Beispiel aus der LaTeX-Welt

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.

Fazit

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.

Top 10 Interpreterschalter

Hier die zehn (für mich) wichtigsten Optionen:

1. -w
Ist durch Warnungs-Ignorierende Software wie Rails und RedCloth etwas aus der Mode gekommen. Dennoch: Schaltet die Warnungen an und beachtet sie, wenn ihr selbst entwickelt!
2. -e "puts 'Hello, World!'"
Code direkt ausführen.
3. -Ilib
Erweitert den Suchpfad (aka $:) um lib. Sehr nützlich, wenn man Ruby auf Verzeichnisse hinweisen will, die sie sonst nicht durchsuchen würde.
4. -rdatei.rb
Läd die Datei per require. Funktioniert nicht für Gems.
5. -rubygems
Da Gems sich manchmal überaschend verhalten und ich gerne auch mal ohne sie arbeiten möchte (zu Testzwecken, weil Ruby ohne schneller startet, weil $" dann nicht so unübersichtlich ist), habe ich das automatische Laden von RubyGems auf meinem System abgeschaltet. Hiermit aktiviere ich es wieder.
6. -n
Das Script bzw. der -e-Befehl wird mit while gets; ...; end umschlossen. Die globalen Variablen $_ und $. speichern die mit gets gelesene Zeile (mit Zeilenende) und deren Nummer. print, puts, split usw. arbeiten mit $_ als Standardargument. Das erklärt das mystische print if.
7. -d
Setzt $DEBUG auf true. Man kann sehr einfach ein- und ausschaltbaren Debug-Code in sein Programm einbauen, indem man den betreffenden Zeilen if $DEBUG anhängt.
8. -c
Nicht ausführen, sondern nur die Syntax checken. Bei Dateien, die alleine nicht lauffähig sind, ist das nötig (zB funktioniert class Admin::LoginController nicht, wenn das Modul Admin unbekannt ist.)
9. -h
Weil wir alle Hilfe brauchen.
10. -v
Test nach Neuinstallation oder einfach um rauszufinden, dass auf den dummen Sun-Workstations in unserer Uni noch Ruby 1.6.4 läuft.

Ruby the Shell!

 
Kommentare (2)

^^

von murphy am 30.04.2006 (19 Uhr)

Syntax-Sonntag! Heute:

Selbstdefinierte Operatoren - oder - Wie bringe ich Ruby zum Lachen


Vollständigen Artikel lesen...
 
Kommentare (6)

Erfahrung mit Static Typing

von murphy am 29.04.2006 (23 Uhr)

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.

 
Kommentare (2)

Rubinrote Strings - Teil 3: Heredocs

von murphy am 19.04.2006 (10 Uhr)

Zeit für den Myntax-Mittwoch! Und zwar geht es um

Heredocs - oder - Code in der 2. Dimension


Vollständigen Artikel lesen...
 
Kommentare (2)

Zen of Ruby

von murphy am 12.04.2006 (02 Uhr)
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
 
Kommentare (0)

Ruby auf Platz 18

von murphy am 10.04.2006 (02 Uhr)

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.


Vollständigen Artikel lesen...
 
Kommentare (1)

Neues in Rails 1.1

von murphy am 05.04.2006 (03 Uhr)

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

rails11.rubychan.de

die Ergebnisse tagelangen Grabens.

Viel Spaß :)

 
Kommentare (0)

Rubinrote Strings - Teil 2: Fancy Strings

von murphy am 03.04.2006 (02 Uhr)

Syntax-Sonntag, verspätet. Ich hatte bis eben noch Urlaub. Heute geht es, wie versprochen, um

Fancy Strings


Vollständigen Artikel lesen...
 
Kommentare (8)

Rails 1.1

von murphy am 28.03.2006 (16 Uhr)

Endlich!

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.

Rails 1.1 - Diff #4089
Es gibt ein paar Schwierigkeiten mit alten Ruby-Versionen:
Ruby 1.8.2
script/console ist unter Windows kaputt. Man muss die neue irb.bat von Ruby 1.8.4 in den ordner ruby\bin kopieren.
Wie man dann allerdings die Tab-Ergänzung wieder zum Laufen bekommt, weiß ich nicht.
Ruby 1.8.3
Geht jetzt gar nicht mehr, Rails weigert sich zu starten.
New in Rails 1.1 Blogpost Download Dokumentation (Englisch)
 
Kommentare (0)

railslog.vim

von murphy am 26.03.2006 (00 Uhr)

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

 
Kommentare (0)