OpenSocial
Ein kurzer Artikel zum neuen Buzzword "OpenSocial" auf http://blog.dopefreshtight.de.
Den Ansatz finde ich aufjedenfall gut.
« October 2007 | Main | December 2007 »
Ein kurzer Artikel zum neuen Buzzword "OpenSocial" auf http://blog.dopefreshtight.de.
Den Ansatz finde ich aufjedenfall gut.
Da ich mein Projekt ja in endlicher Zeit fertigstellen möchte :-), habe mich mir gestern Abend mal zwei neue Bücher zugelegt, die mir dabei helfen sollen:
- IT-Projektmanagement kompakt
- Agility kompakt. Tipps für erfolgreiche Systementwicklung
Von dem ersten Titel erhoff ich mehr Struktur in die Entwicklung zu bekommen. Vom zweiten Titel, meinen Horziont in der Entwicklung von Software zu erweitern. Die Bücher sind zwar mit ca. 110 Seiten / Buch relativ klein, die Rezensionen sprechen aber eine deutliche Sprache. Ich bin gespannt.
Der neue Tonabnehmer von Frank Westpahl ist wirklich zu empfehlen.
Es geht um "The 4-Hour Workweek" ein Buch von Tim Ferriss. Der Podcast regt zum Denken an.
genutzt, aber irgendwie nicht gemerkt :-)?. Jaja, so erging es mir, aber meine Unwissenheit darüber wurde heute aus dem Weg geschafft. Bis jetzt habe ich auch noch nicht viel mit Metaprogrammierung gemacht, meistens hat man ja alles selber geschrieben und nicht für sich schreiben lassen ^^. Bei Rails wird die Metaprogrammierung aber sehr starkt verwendet. Nur ein paaar Beispiele:
- autmatisch generierte Setter- und Getter-Methoden
- Assoziationen
- Rails' Validierungsprozess
- usw...
Dazu ein schönes ZItat aus einem Rails-Buch, so ging es mir halt:
"Es gibt Leute, die das Metaprogrammierung nennen; wir nennen es einfach nur nützlich. Unsere Programme werden dadurch kürzer und leichter lesbar. Außerdem können wir auf diese
Weise Aufgaben direkt innerhalb des Codes erledigen, für die normalerweise externe
Konfigurationsdateien verwendet würden. So lässt sich viel leichter erkennen, was genau
geschieht."
Die Frage klingt vielleicht merkwürdig, aber was kann man als Projekt bezeichnen und was nicht? Lohnt sich der ganze Aufwand wie Arbeitsthese, Zeitplan usw.? Ich bin zu einem JA gekommen. Um eine Arbeit als Projekt zu bezeichnen sollte es diesen 4 Kriterien genügen:
-Eindeutiges Ziel (Ja, das passt)
-Begrenzt (Kann man so sagen)
-Individuell (Na, das hoffe ich doch)
-Hohe Komplexität (Muß ja nicht immer hoch sein, aber ich denke die ist schon ok)
Quelle: IT Projektmanagement kompakt
Und da ich jetzt meine Diplomarbeit als Projekt betrachte :), werde ich auch noch weiter an der Strukturierung feilen. Hoffe das so die Qualität des Endproduktes gesteigert wird.
So, heute hab ich mich mal intensiver mit dem Projekt "Folien und Videos hochladen" beschäftigt.
Nach ein paar Recherchen auf rubyforge.org bin ich zuerst auf das Tool flvtool2 und dann auf rvideo gestoßen. Es geht darum, dass man die Videos in .mov, .mpg usw. auf den Server hochlädt und dieser sie dann in .flv umwandelt. So kann man dann die Videos ohne Probleme mit dem Flash-Player im Browser anschauen. Mit rvideo hat man die Möglichkeit auf ffmpeg zuzugreifen.
Das Programm ermöglicht einem Videos in verschiedene Formate zu transcodieren. Mit relativ wenig Ruby-Code kann man dann z.B. aus einer .mpg eine .flv-Datei basteln. Ein Problem hat mich fast zur Verzweiflung gebracht. Nach der Transcodierung hatte die .flv-Datei keinen Sound... nicht wirklich optimal :-). Nach langer Fehlersuche habe ich plötzlich gemerkt, dass meine ffmpeg-Version nicht mehr auf dem aktuellen Stand ist! So konnte auch nicht lame eingebunden werden und damit keine mp3 in die flv-Datei. Naja, jetzt gehts und ich bin zufrieden ^^.
Hier noch der Code:
require 'rubygems'
require 'rvideo'
#file = RVideo::Inspector.new(:file => "lions.mpg")
#print file.audio_codec
#print file.video_codec
transcoder = RVideo::Transcoder.new
recipe = "ffmpeg -i lions.mpg -s 640x480 -s"
recipe += " 640x480 -y test2.flv"
#recipe += "\nflvtool2 -U test2.flv"
begin
transcoder.execute(recipe, {:input_file => "lions.mpg",
:output_file => "test2.flv", :resolution => "640x480"})
rescue TranscoderError => e
puts "Unable to transcode file: #{e.class} - #{e.message}"
end
So, heute hab ich mich nochmal in bissel um das Projekt - ich habs mal vaps (video and presentation system) genannt - gekümmert. Was mich noch etwas stört, ist die Tatsache, dass ich aus einer ppt-Datei keine jpg erstellen kann. Klar, es gibt Konverter für Windows, bis jetzt hab ich aber noch nichts brauchbares für Linux gefunden. Die meisten können nur mit Word- oder Excel-Dateien umgehen. Meine Idee war noch, dass ich eine hochgeladene ppt-Datei durch einen ps-Drucker jage. Der ps-Drucker von OpenOffice ist ganz nett, weiß aber noch nicht wie ich den ansprechen kann, besser gesagt ob es den auch Standalone gibt. Naja, falls jemand eine Idee hat, melden :-). Das ganze sollte ich aber über den Server ansprechen können.
Bis jetzt klappt die Variante das man eine pdf-Datei angibt und diese wird dann mit rmagick in Grafiken zerlegt. Rmagick baut auf ImageMagick oder GraphicsMagick auf. Mit der Video-Konvertierung sind so schonmal die Grundlagen vorhanden. Das ganze muß ich natürlich erst noch in Rails packen. Ein weiteres Problem, wenn ich das richtig verstanden habe ist die Rechtevergabe. Ich hab da an sowas wie Action Contol Lists gedacht... ? Naja, werde mir aufjedenfall mal acts_as_authenticated + acl_system anschauen, beides Rails' - Plugins.
Man Surft noch ein wenig durch die Gegend denkt an nichts böses und findet wieder mal ein neues Framework.
Merb heißt es und ist auch in Ruby geschrieben. Man kann die ganze Installation wieder über gem abwickeln. Es sieht aufjedenfall interessant aus, muß sich aber ersteinmal hinten anstellen, die Zeit :-).
Hier noch was von der Seite:
"Faster, Lighter, More Agile.
Like Ruby on Rails, Merb is an MVC framework. Unlike Rails, Merb is ORM-agnostic, JavaScript library agnostic, and template language agnostic, preferring plugins that add in support for a particular feature rather than trying to produce a monolithic library with everything in the core...."
Vom 02.10 - 05.10.2008 soll im nächstes Jahr das Rails Camp stattfinden. Die Veranstaltung ist vielleicht noch nicht so bekannt, deswegen mach ich hier mal ein bisschen Werbung. Das ganze wird von Mario Schröder organisiert.
"Patrick Lenz's incredible Ruby on Rails book is now FREE to Download!"
Aber nur noch 10 Tage, man muß lediglich seine eMail-Adresse angeben.
Sogenannte callbacks sind Methoden die im Model implementiert werden und eine schöne Sache in Rails um z.B. "manipulationen" an Datensätzen vor dem eigentlichen speichern oder vor dem eigentlichen löschen durchzuführen. Man kann die callbacks auf verschiedene Arten im Model implementieren.
1) def before_destroy
irgendwas
end
oder, was mir persönlich besser gefällt:
2) Am Anfang ein Symbol anlegen mit dem Methodennamen:
before_destroy :delete_images
und dann die eigentliche Methode als protected deklarieren:
protected
def delete_images
irgendwas
end
Die ganzen callback-Methoden sind schon in Rails implementiert, man muß sie lediglich mit eigenen Aktionen belegen, wie oben geschehen.
Ich dachte mir, man könnte ja mal alle Änderungen in Rails 2.0 an einer Stelle zusammentragen, so das jeder was davon hat. Wenn einer noch Änderungen kennt die hier nicht stehen, einfach schreiben.
- ActionWebService raus, ActiveResource rein (RESTful)
- aus z.B. show.rhtml wird show.html.erb
- es gibt jetzt einen Query Cache
- die Migration haben sich geändert
create_table :people do |t|
t.column, "account_id", :integer
t.column, "first_name", :string, :null => false
t.column, "last_name", :string, :null => false
t.column, "description", :text
t.column, "created_at", :datetime
t.column, "updated_at", :datetime
end
wird zu
create_table :people do |t|
t.integer :account_id
t.string :first_name, :last_name, :null => false
t.text :description
t.timestamps
end
- Verbesserung der HTTP-Authentifizierung
- verschiedene JavaScript und Css-Dateien können nun zu einer Datei zusammengeführt
werden
<%= javascript_include_tag(:all, :cache => true) %>
<%= stylesheet_link_tag(:all, :cache => true) %>
- die schöne Pagination ist aus dem Kern geflogen ;-(, also
schonmal ein Plugin suchen, ganz gut soll wohl "will_paginate"
sein
So mehr weiß ich gerade nicht.
Teilweise wurde Code von http://weblog.rubyonrails.org/2007/9/30/rails-2-0-0-preview-release
benutzt.
So, ich hab mal ein erstes ER-Modell für die Applikation gemacht. Es beinhaltet aber noch keine Authentifizierung, die wollte ich bei der nächsten Iteration einbinden.
Ich hab mir auch mal ein paar Gedanken gemacht, wie der ganze Ablauf sein soll um eine Datei von S3 herunterzuladen bzw. hochzuladen. Bei diesem Ansatz, zieht sich der User die Datei direkt von S3. Aber Bilder sagen mehr als tausend Worte:
Ich wollte das jetzt erstmal so implementieren oder sollte man das anders machen?
In den nächsten vier Episoden wird sich auf Railscasts alles um Rails 2.0 drehen. Die erste Folge fand ich schonmal ganz gut.
Gerade dieses tolle Rails-Plugin gefunden. Was das Plugin kann:
"RailRoad is a class diagrams generator for Ruby on Rails applications. It's a Ruby script that loads the application classes and analyzes its properties (attributes, methods) and relationships (inheritance, model associations like has_many, etc.) The output is a graph description in the DOT language, suitable to be handled with tools like Graphviz."
Vielleicht kann ich mir da die ein oder andere Idee für meine Diplomarbeit holen.
Werde mir das Plugin aufjedenfall mal genauer anschauen. Man kann mit dem Tool
auch SVG-Grafiken generieren. Mal schauen wie so eine Klassenstruktur in SVG
aussieht.
This page contains all entries posted to yet another innoq blog in November 2007. They are listed from oldest to newest.
October 2007 is the previous archive.
December 2007 is the next archive.
Many more can be found on the main index page or by looking through the archives.