Freitag, 27. November 2009

Latex: Hyperref und PST-PDF plus schöne Index-Style-Datei

Habe heute festgestellt, dass die beiden sich zumindest unter Linux nicht besonders gut vertragen. Er schmeißt dann immer den Fehler

name{page.4} has been referenced but does not exist, replaced by a fixed one

Dieser wird nicht mehr geworfen, sobald man das Package "pst-pdf" entfernt.

Habe nun auch eine schöne Index-Style-Datei. Um sie zu verwenden einfach makeindex mit der option "-s my_index_style.sti" aufrufen.

%--------[custom_ind.sti]--------------

% This file is part of MakeIndex

%

%sty.file for mkidx32.exe - redefines:

quote '+'

headings_flag 1

heading_prefix "{\\bf "

heading_suffix "}\\nopagebreak%\n \\indexspace\\nopagebreak%"

delim_0 "\\dotfill "

delim_1 "\\dotfill "

delim_2 "\\dotfill "

delim_r "~--~"

suffix_2p "\\,f."

suffix_3p "\\,ff."

suffix_mp "\\,ff."

preamble "\n\n\\begin{theindex}\n"

postamble "\n\n\\end{theindex}\n"

symhead_positive ""

encap_prefix "\\"

%---------------------------------------

Mittwoch, 18. November 2009

Rails locales

Um deutsche Ausgaben zum Beispile von Datumswerten zu bekommen, kann man seit Rails 2.2 lokale aktivieren. Gebraucht wird dazu nur eine entsprechende Datei in


<rails-root>/config/locales/<name>.yml


Diese muss dann noch in der config/enviroment,rb aktiviert werden:


config.i18n.default_locale = :de


In diesem Beispiel benötigt man also eine Datei namens de.yml im entsprechenden Verzeichnis


Auf http://github.com/svenfuchs/rails-i18n/tree/master/rails/locale hat Sven Fuchs schon einige Sprachen gesammelt. Vielen Dank dafür.


Eingesetzt werden kann das ganze dann wie folgt:


<%= h @newsmessage.updated_at :format => "%A, %d. %B %Y" %>

wird zu

<%= l @newsmessage.updated_at :format => "%A, %d. %B %Y" %>


Das Ergebnis ist dann ein Datum mit deutschen Namen- und Wochentagen. Der Rest ist ganz normal, wie man es von Rails gewohnt ist. (Falls man spezielle wünsche hat, kann man natürlich die "de.yml"-Datei entsprechend konfigurieren. 


Vieleicht für manche auch noch ganz praktisch: Der Einsatz von multiplen locales ist unter http://www.railsbuch.de/2009/3/15/i18n gut beschrieben.

Sonntag, 15. November 2009

Rails-Plugin Paperclip

Folgendes Problem:

Ich programmiere in Rails eine Homepage und will in einem Bereich Hörproben oder andere Downloads zur Verfügung stellen. Diese sollen nicht im Filesystem, sondern in der Datenbank gespeichert werden.

Hierzu verwende ich nun einen Zweig des Plugins Paperclip, zu finden hier. (Im Prinzip kann amn dort auch nachlesen, was nun hier steht)

Meine Vorgehensweise war dabei wie folgt ([name] dabei immer durch den gewünschten Namen ersetzen, also inkluseive der eckicken Klammern)

  1. plugin installieren

    script/plugin install git://github.com/patshaughnessy/paperclip.git

  2. der tabelle des models folgende spalten hinzufügen:

    [name]_file :binary
    [name]_file_name :string
    [name]_file_size :integer
    [name]_content_type :string

  3. in app/model/model.rb folgende zeilen einfügen: (mein Model in diesem bsp heißt "Model")

    has_attached_file :[name], :storage => :database
    default_scope select_without_file_columns_for(:[name])

  4. im view zum anlgegen muss der "form_for"-Bereich mit mutipart erweitert werden:

    <% form_for(@model, :html => { :multipart => true }) do |f| %>

  5. Nun kann man das ganze mit einem file_field hochladen:

    <p>
    <%= f.label :name %><br />
    <%= f.file_field :name %>
    </p>

  6. Im controller des models das dazumengen:

    downloads_files_for :[modelname], :[name]

  7. Erreichbar sind die dateien jetzt unter

    /:relative_root/:class/:attachment/:id?style=:style


    In meinem Fall also

    http://url/models/names/:id


Zu beachten: beim Download sind es die Plurale! also mit angehangenem "s"

Bei mir kam noch hinzu, dass nur eingeloggte Benutzer die Dateien downloaden durften. Mein Filter in der Model-Datei also:

before_filter :check_logged_in, :only => :[name]s
(Wieder mit Plural!!!)

Vielen Dank an Pat Shaughnessy

Samstag, 7. November 2009

KDenlive - Erfahrungsbericht

Ich habe mich nun mit KDenlive ein wenig auseindander gesetzt. Hier mein Bericht:


KDenlive ist ein nichtlineares Videobearbeitungsprogramm für den KDE-Destop. Mann kann also an Videos mit mehreren Audio- und Tonspuren arbeiten. Es ist sehr umfangreich, übersichtlich und strukturiert. Alles was man als Laie von einem Halb-Professionellen Tool erwarten kann. Und das beste: Es ist frei!


Zuerst mal mein System:

KUbuntu 9.10 AMD64
AMD Athlon X2 3000+
4 GB Kingston RAM
aureichend Festplattenspeicher
die Grafikarte tut zwar ncihts zur Sache, ist aber en nvidia 8600GT mit 512 DDR2 RAM


Ansich bin ich sehr zufrieden. Gut gefällt mir Medienbibliothek in die ich meinen Projektordner lade und aus dem ich dann meine entpsrechenden Materialien in die Zeitleiste ziehe. Auch die verschiedenen Überblend-, Audio- und Videoeffekte lassen sich sehen. Alles in allem hat man sehr schnell ein vorzeigefähiges Video zusammengeschnitten. Auch das framegenaue arbeiten macht richtig Spaß. Durch die gute Anbindung an die Systembibliotheken kann man das ganze dann auch in so ziemlich allen gängigen Codecs rendern. Auch hier wird man verwöhnt durch viele zur Auswahl stehende Profile. Falls man sich mit der Materie besser auskennt, kann man sich aber auch eigene Profile anlegen, in denen dann dem Encoder spezifische Parameter mitgegeben werden können.


Ein kleines Manko muss ich aber erwähnen. So klappt bei mir bei manchen Files das schneiden nicht wirklich. Zwar wird die Tonspur korrekt geschnitten, die Videospur ist allerdings nach dem schneiden zu kurz. Allerdings konnte ich noch nicht feststellen ob es an den verwendeten Filmschnipseln lag oder tatsächlich am Programm.


Die Version aus den Standartpacketquellen lief bei mir nur sehr instabil, die Version aus dem Projektrepository aber läuft perfekt. Und wenn es mal abschmiert, so ist die automatische Wiederherstellung ein wahrer Genuss.


Alles in allem ein tolles Projekt, mit dem man gar kein Geld mehr für irgendwelche kostenpflichtige Videosoftware ausgeben will, zumindest im privaten Bereich. Ich bin auch zuversichtlich, dass sich meine kleinen Probleme in naher Zukunft lösen werden. Sobald es meine Zeit zulässt und ich fertig bin, zeige ich auch ein Beispiel von einem mit KDenlive geschnitten Video.


Und hier der Verweis auf die Projekthomepage:
http://www.kdenlive.org/