DevHouseFriday mit Gary Vaynerchuk, Yehuda Katz und Scotland on Rails
Es hat uns wieder mal sehr gefreut, dass gestern das DevHouseFriday so zahlreich besucht wurde. Wir hatten diesmal aber auch sehr spezielle Gäste zu Besuch, u.a. Yehuda Katz, einer der Core Team Member der Rails- und Merb-Projekte. Im Live-Webcast von Oreilly “What to expect in Rails 3.0″ erzählte Yehuda .. tja, was in Rails 3.0 zu erwarten ist. Durch die leider nicht ideale Audioverbindung werden wir uns allerdings das Video noch einmal aus dem Archiv der Oreilly Webcasts laden müssen, um dann genauer über die Zukunft von Rails zu berichten. *hehe* :D
Nach der interessanten Stunde über Rails, galt “Freestyle” im Office: jedes cooles Video bekam eine Chance. Bumi präsentierte als nächstes “Getting Git: Getting Effective Project Management” von Mr. S. Chacon GIT (GitHub). Für alle, die wirklich mit Git durchstarten wollen und die rasante Präsentation mit ca. 150 Folien in gefühlten 15 Minuten verkraften können, ist dieses Video ein Muss.
Mein Lieblingsvideo war schließlich als drittes dran: Im Themengebiet “Business” referierte Gary Vaynerchuk auf der Web 2.0 Expo in New York über “Building Personal Brand Within the Social Media Landscape”. Ein sehr gelungener Vortrag über die Leidenschaft zur Arbeit, die 80-Std. Woche und dem machen-auf–was-man-Lust-hat. Alles unter dem Motto: “What do I want to do everyday for the rest of my live - do that”. 15 Minuten Motivationstraining versprochen.
Zum Schluss gab’s noch eine Runde RailsWay Magazine für alle Teilnehmer, da wir als Mediasponsor der bevorstehenden RailsWayCon dankenswerterweise einen guten Schwung im Briefkasten fanden. Und wo wir schon bei der RailsWayCon sind: Berlin wir kommen! Tim, Bumi und ich fliegen morgen in die Hauptstadt und freuen uns dort auf ein paar spannende Tage - nicht nur auf der Konferenz!
Using Paperclip with S3 authenticated url
Für Channelthing ist es besonders wichtig, dass die hochgeladenen Dokumente, die wir bei S3 ablegen, nur durch authentifizierte Benutzer abgerufen werden können. Daher haben wir uns eine kleine Extension zu Paperclip gebaut, die solch eine verschlüsselte URL von S3 erhält, sobald ein Dokument, etc. angezeigt werden soll.
Dazu muss man zum einen den Bucket erstmal “sicher” machen. Mit der kleinen Firefox-Extension S3Fox Organizer. Man erlaubt nur dem Owner auf das Bucket zuzugreifen.
Unsere Extension erhält nur die Methode authenticated_s3_url die über die get_link Methode von dem s3-Objekt unsere URL mit einem Hash zurückgibt der nur über eine bestimmte Zeit aufgerufen werden kann. Die url-Methode von Paperclip überscheiben wir anschliessend.
module Railslove module Paperclip module SecureS3 def authenticated_s3_url(style = nil, include_updated_timestamp = true, time_limit = 15.minutes) url = original_filename.nil? ? interpolate(@default_url, style) : self.s3.interface.get_link(self.s3_bucket.to_s, self.path(style), time_limit) include_updated_timestamp && updated_at ? [url, updated_at].compact.join(url.include?("?") ? "&" : "?") : url end end end end Paperclip::Attachment.send(:include, Railslove::Paperclip::SecureS3) Paperclip::Attachment.class_eval("alias :url :authenticated_s3_url")
Man sollte daran denken auch die entsprechenden Rechte, jedem hochgeladenem Dokument zu setzen. Die können über den Parameter s3_permissions gesetzt werden:
paperclip:
storage: "s3"
s3_credentials: <%= "#{RAILS_ROOT}/config/s3.yml" %>
path: ":attachment/:id/:style.:extension"
bucket: "RailsloveLovesS3"
s3_permssions: "authenticated-read"Nun haben wir unser gewünschtes Ziel erreicht.
Der Start in eine neue #yai7d-Woche: “Boswell”
Es hat nicht lange gedauert bis wir unseren ersten Kandidaten für die “Your app in 7 days”-Aktion gefunden haben: Mr. X möchte “Boswell” entwickeln - wenn das mal nicht spannend klingt! Leider können wir diesmal bis zum Launch keine weiteren Details über das konkrete Produkt berichten, aber die ersten Berichte über die technische Umsetzung sind bereits in Planung.
… jetzt aber ran ans Werk!
Reetweeten mit Fun - das Rezept gegen Langeweile
“too much time and bored by your timeline? #reetweet! http://reetweet.com“. Das neue “30-minutes-too-much-time-project” von Railslove. Also: auf gehts! reetweet this?.
Btw. Wir warten noch auf eine Ansage von den twitter-Jungs, bezüglich einem Eintrag auf die White-List von Twitter. Dann kann kann man noch mehr Zeit und mit noch mehr Spass - ohne Limits - reetweeten!
[edge Rails] the rails command now supports templates
Setting up a new Rails project is pretty boring. Installing plugins, gems, adding initializers, etc. always the same monotonous work. - not fun.
That’s why there have been quite a lot of starter apps. Most of them are git repositories with blank Rails apps bundled with plugins and extensions. But those are unflexible and the cloning of different repos somehow feels not right. - it’s better but still not fun.
I’ve also tried to avoid the boring setup work with several tools. My first very, very hackish attempt was kickrails. A stupid ruby script that preceduraly runs all the build commands for me. - not fun either.
But then came RG. An awesome über cool project developed by Jeremy McAnally. RG allows you to kickstart your Rails app using templates written in ruby. - fun! ;) One command and your done. RG runs the rails command and setups all the stuff to get you started based on templates.
I’ve created a fork, added some more helpers and used it for several projects. It turned out great.
Anyway what I wanted to tell is: RG just got added to Rails core. This means the rails command now supports templates for building your inital apps. Running rails -m/–template my_super_cool.template not only generates the default rails skeleton for you but also applies the template which installs plugins, gems, extensions, initializes a git repository, etc. - pretty awesome - fun!
I’m as excited as I’ve been when I’ve ran the rails command for the first time.
How do you setup your rails app? Now compare that to:

Isn’t rails great?!


