robsite

In rails

R.I.P. Joyent Slingshot

r-i-p-joyent-slingshot

Slingshot scheint tot zu sein. Funktioniert nicht mit aktuellen Rails-Versionen, der letzte Blogpost darüber stammt vom 2. August 2007 und die Doku wurde vor zwei Jahren das letzte mal aktualisiert.

Schade eigentlich. Wollte damit grad eine kleine Rails-Anwendung offline für Win+Mac benutzbar machen. Eine Alternative fand ich bis jetzt noch nicht.

· fail, rails ·

Re

re

Sorry für die downtime. Leichtes Versions-Chaos auf meinem neuen Rechner und dem Server führte zu obskuren Fehlern.

Aber immerhin hab ich bei der Gelegenheit gleich mal auf Rails 2.3 aktualisiert und ne neue Error-Seite gemalt :>
Rechts gibts nun auch die neuesten Kommentare zu sehn.

Type O Negative - She burned me down

· fail, musik, rails ·

Ultraviolet Syntaxes

Kleine Notiz für mich, da ich das immer vergesse und es auch nicht auf Ultraviolets Website steht:

actionscript, active4d, active4d_html, active4d_ini, active4d_library, ada, antlr, apache, applescript, asp, asp_vb.net, bibtex, blog_html, blog_markdown, blog_text, blog_textile, build, bulletin_board, c++, c, cake, camlp4, cm, coldfusion, context_free, cs, css, css_experimental, csv, d, diff, dokuwiki, dot, doxygen, dylan, eiffel, erlang, f-script, fortran, fxscript, greasemonkey, gri, groovy, gtd, gtdalt, haml, haskell, html-asp, html, html_django, html_for_asp.net, html_mason, html_rails, html_tcl, icalendar, inform, ini, installer_distribution_script, io, java, javaproperties, javascript, javascript+prototype, javascript+prototype_bracketed, jquery_javascript, json, languagedefinition, latex, latex_beamer, latex_log, latex_memoir, lexflex, lighttpd, lilypond, lisp, literate_haskell, logo, logtalk, lua, m, macports_portfile, mail, makefile, man, markdown, mediawiki, mel, mips, mod_perl, modula-3, moinmoin, mootools, movable_type, multimarkdown, objective-c++, objective-c, ocaml, ocamllex, ocamlyacc, opengl, pascal, perl, php, plain_text, pmwiki, postscript, processing, prolog, property_list, python, python_django, qmake_project, qt_c++, quake3_config, r, r_console, ragel, rd_r_documentation, regexp, regular_expressions_oniguruma, regular_expressions_python, release_notes, remind, restructuredtext, rez, ruby, ruby_experimental, ruby_on_rails, s5, scheme, scilab, setext, shell-unix-generic, slate, smarty, sql, sql_rails, ssh-config, standard_ml, strings_file, subversion_commit_message, sweave, swig, tcl, template_toolkit, tex, tex_math, textile, tsv, twiki, txt2tags, vectorscript, xhtml_1.0, xml, xml_strict, xsl, yaml, yui_javascript

Das sind die verfügbaren Syntaxen in Ultraviolet. Erzeugt hiermit:

require 'rubygems'
require 'uv' 
File.open('/Users/rob/Desktop/syntaxes.txt', 'w') {|f| f.write(Uv.syntaxes.join(', '))}

Ultraviolet ist eine klasse Library zum highlighten von Syntax. Benutz ich zusammen mit tm_syntax_highlighting für die schicken Codeboxen hier im Blag. tm_syntax_highlighting wiederum liest die Farbdefinitionen von TextMate aus, wodurch der Code hier genauso chique aussieht wie in meinem Lieblingseditor. Har!

· rails, ruby, webdev ·

Rails + Merb = Rails

Beginning today, the Merb team will be working with the Rails core team on a joint project. [...] Effectively, Merb 2 is Rails 3.

Whoa.

Why!?

As you have probably gathered from the above, there aren’t any clear points that the Merb and Rails team disagree on anymore. [...] Given this philosophical convergence, it just didn’t seem like there was much to gain by continuing to duplicate effort and spend time and energy fighting each other.

· merb, rails, ruby, webdev ·

Object#andand

Praktisches gem von Reg Braithwaite mit dem Methoden-Aufrufe auf nil-Objekten abgefangen werden können.

# Ohne andand:
@user = User.find(1)
@address = @user ? @user.address : nil
# Mit andand:
@address = User.find(1).andand.address

Enthält außerdem noch tap zum leichten debugging:

# Original:
p [1, 2, 3].reverse.map {|x| x**2 }
# Debug durch Auseinanderrupfen und Zwischenvariable:
bla = [1, 2, 3].reverse
p bla
p bla.map {|x| x**2 }
# Debug mit tap:
p [1, 2, 3].reverse.tap {|d| p d }.map {|x| x**2 }

Einfach sudo gem install andand und

require 'rubygems'
require 'andand'

in den Code.

Ähnlich praktisch ist der tee-Befehl auf der Commandline:

ps aux | tee p.txt | more

ps aux gibt alle laufenden Prozesse aus, tee p.txt schreibt die Ausgabe von ps aux in die Datei p.txt und gibt sie weiter an more.

Update:

Rails 2.3 hat andand-ähnliche Funktionalität schon eingebaut: try

@address = User.find(1).try(:address) 

Mehr dazu: ozmm.org/posts/try.html

· command line, productivity, programming, rails, ruby ·