i18n

Ruby,Ruby on Rails — Johannes am 8. Januar 2008

ich hasse Globalize. Wollte ich nur mal gesagt haben. Und je öfter ich damit zu tun kriege, desto entnervter werde ich!

Ich würde das nie für eigene Projekte einsetzen.

Es gibt doch Gettext und mit Ruby-GetText ein wunderbares Ruby-binding.

Wozu also der ganze Quatsch?

ps: Ein Perfomance- Vergleich der Webseiten sagt schon alles.

Wie man ein Projekt in ein anderes lädt

Subversion — Johannes am 5. Januar 2008

Möchte man, wie ich, zwei svn-Repositories zusammenbringen, bietet sich svnadmin dump mit einem anschließenden svnadmin load an.

Subversion wird alle Commits im neuen Repository wiederholen, und der alte Baum wird im Verzeichnis my_old_repo stehen. Die Changesets aus dem alten Repository behalten ihr Originaldatum, bekommen aber natürlich neue Revisionsnummern.

Nun zur Tat

Man dumpe also als erstes sein (altes) Repository:

svnadmin dump REPOS_PATH > DUMPFILE

Jetzt erstellt man ein neues Verzeichnis, wo das alte Repo rein kommt:

svn mkdir my_old_repo
svn ci -m "created my_old_repo dir to import my old repo to"

Dannach lädt man diesen Dump in sein Repository:

svnadmin load --parent-dir my_old_repo < DUMPFILE

Man kann einzelne Revisionen dumpen, oder alle Revisionen von einer bestimmten bis zu einer bestimmten.

Siehe auch Migrating Repository Data Elsewhere

Wie man einzelne Verzeichnisse dumpt

Filtering Repository History beschreibt, wie man mit svndumpfilter
seinen Dump auf bestimmte Verzeichnisse beschränken kann.
Man jage seinen Dump durch ein Filter:

svndumpfilter include sub_dir < DUMPFILE > SUB_DIR_DUMPFILE

Diesen Dump lädt man wie erwartet mit svnadmin load in sein neues Repository.

Ein schönes Wochenende wünscht

Johannes

DOS Zeilenendemarkierungen entfernen

Allgemeines — Johannes am 4. Januar 2008

Ab und an gerät man ja doch in Feindkontakt. Dann hat einem jemand seine Files mit diesen Ekelhaften ^M’s vollgeschissen. Als vimmer ist einem aber auch da sehr schnell geholfen:

:.,$s/(ctrl-v)(ctrl-m)//g (enter)

Muss man sich halt nur merken. Darum dieser Post.

Lovely Ternary Operator

Ruby — Johannes am

seit ich ihn kenne – und das ist ganz, gaaanz lange her – liebe ich ihn, den Ternery Operator von Ruby:

puts true ? 'I am happy' : 'I don\'t know Ternary'

In computer science a ternary operator is an operator that takes three arguments. The arguments and result can be of different types. [Wikipedia]

Using Rails with Subversion

Ruby on Rails,Subversion — Johannes am

Subversion als Versionsmanagementsystem ist qasi Standart. Ich nutze svn für alle meine Projekte seit Jahren.

Dabei haben sich bei mir einige Routineschritte etabliert, die die Konfiguration der svn:ignore betrifft. Diese will ich Ihnen nicht vorenthalten.

Logfiles

svn remove log/*
svn commit -m "removing log files from subversion"
svn propset svn:ignore "*.log" log/
svn update log/
svn commit -m "Ignoring files in /log/ ending in .log"

tmp

svn remove tmp/*
svn propset svn:ignore "*" tmp/
svn update tmp/
svn commit -m "Ignoring files in tmp/"

database.yml

svn move config/database.yml config/database.yml.sample
svn commit -m "Moving database.yml to database.yml.sample to provide a template"
svn propset svn:ignore "database.yml" config/
svn update config/
svn commit -m "Ignoring database.yml"

SVG::Graph

Bibliotheken,Ruby — Johannes am 3. Januar 2008

ist eine Ruby Bibliothek von Sean Russell, mit der man schöne SVG-Grafen erstellen kann. Die Bibliothek begann als Clone von SVG::TT::Graph, einer Perl Library und hat sich jetzt auf eine ganz eigene Codebasis gestellt.

SVG::Graph ist die Vektoralternative zu Gruff von Geoffrey Grosenbach.

Wir hoffen, dass neben Firefox bald weitere Browser SVG unterstützen.

Die drei wichtigsten Features von CSS 3

CSS — Johannes am

1)

  box-sizing: border-box;

2)

  width: calc( 10% - 2*2em - 2px );

3)

  column-count: 3;
  column-gap: 2em;

some more Details:

box-sizing

Mit der Eigenschaft box-sizing hält ein alternatives Box-Modell Einzug in CSS 3. Hier kann man die Gesamtbreite einer Box angeben:

  box-sizing: border-box;

calc()

Auch Berechnungen werden erlaubt sein:

p.box {
  float:right;
  padding: 0 2em;
  border-right: 2px solid black;
  width: calc( 10% - 2*2em - 2px );
}

column

Worauf ich schon seit Jahren warte – Spaltensatz:

#content {
  column-count: 3;
  column-gap: 2em;
}

Aber:

Mit einer fertigen Recommendation ist in nächster Zeit leider nicht zu rechnen. Zu vielen Modulen wurde nach jetzigem Stand noch keine Veröffentlichung oder Working Draft gemacht; zumindest keine Öffentlichen. Auch viele angesetzte Termine wurden bereits überschritten. Andererseits besteht kein wirklicher Grund zur Eile. Die CSS2-Empfehlung stammt aus dem Jahr 1998 und ist auch noch nicht komplett umgesetzt.

gotAPI.com

Tipp — Johannes am

will ich ja auch nie mehr missen.

Event.Behavior

Bibliotheken,JavaScript — Johannes am

ist ein im Aufbau befindliches Projekt, das JavaScript mit Metaprogrammierung derart aufpeppelt, dass man quasi seine Logik in fließenden Sätzen aufschreiben kann:

with(Event.Behavior){
  show('state_field').when('country').is('United States');
  show('province_field').when('country').is('Canada');
}

Zu finden auf livepipe.net/projects/event_behavior

Ein Schattendasein: elseif

Ruby — Johannes am

Es ist schon merkwürdig, warum Folgendes nicht einfach ein elseif funktioniert!, oder wenigstens einen Syntaxfehler wirft:

irb(main):001:0> if false
irb(main):002:1> elseif true
irb(main):003:1> puts "elseif funktioniert!"
irb(main):004:1> end
=> nil

elseif heisst ja in Ruby elsif (was vielleicht den Erwartungen widerspricht).

irb(main):005:0> if false
irb(main):006:1> elsif true
irb(main):007:1> puts "elsif funktioniert wie erwartet."
irb(main):008:1> end
elsif funktioniert wie erwartet.
=> nil

Ich bin sehr an weiteren Informationen über elseif interessiert!

Nächste Seite »
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2012 webwalk | powered by WordPress with Baeh quiet Barecity