<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-22979050</id><updated>2024-10-27T10:01:51.320+01:00</updated><title type='text'>Alto on Rails</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://altoonrails.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default?alt=atom&amp;redirect=false'/><link rel='alternate' type='text/html' href='http://altoonrails.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Thorsten Böttger</name><uri>http://www.blogger.com/profile/13600717214547160869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2iutDlQx-71pYELTcTEyD1GSpylCE71T0Se6c-FdvpgQ74dtGzZkjHGt6KDujTWBMldfRaNQiei1U56QywOoYvU_3oJiXaPpavCvYRA17BHUqPRocpOVfHBCeSYby0gg/s220/next2_small.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-22979050.post-3466389877125585608</id><published>2008-07-14T21:47:00.004+02:00</published><updated>2008-07-14T22:02:40.635+02:00</updated><title type='text'>Resize existing images when using attachment_fu</title><content type='html'>If you use the &lt;a href=&quot;http://github.com/technoweenie/attachment_fu/tree/master&quot;&gt;attachment_fu&lt;/a&gt; plugin and want to resize all your existing image files after changing any of your thumbnail formats, write a littler runner script like this:&lt;div&gt;&lt;br /&gt;&lt;pre class=&quot;textmate-source&quot;&gt;&lt;span class=&quot;linenum&quot;&gt;    1&lt;/span&gt; &lt;span class=&quot;source source_ruby source_ruby_rails&quot;&gt;&lt;span class=&quot;comment comment_line comment_line_number-sign comment_line_number-sign_ruby&quot;&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby&quot;&gt;#&lt;/span&gt; resize_images.rb&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;linenum&quot;&gt;    2&lt;/span&gt; only_this &lt;span class=&quot;keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;support support_class support_class_ruby&quot;&gt;ARGV&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;constant constant_numeric constant_numeric_ruby&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby&quot;&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;    3&lt;/span&gt; classes &lt;span class=&quot;keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby&quot;&gt;[&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;    4&lt;/span&gt;   &lt;span class=&quot;string string_quoted string_quoted_single string_quoted_single_ruby&quot;&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby&quot;&gt;&#39;&lt;/span&gt;Photo&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby&quot;&gt;&#39;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby&quot;&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;    5&lt;/span&gt; &lt;span class=&quot;punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby&quot;&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;    6&lt;/span&gt; classes &lt;span class=&quot;keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby&quot;&gt;=&lt;/span&gt; only_this&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;blank? &lt;span class=&quot;keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby&quot;&gt;?&lt;/span&gt; classes &lt;span class=&quot;punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby&quot;&gt;[&lt;/span&gt;only_this&lt;span class=&quot;punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby&quot;&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;    7&lt;/span&gt; classes&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;each &lt;span class=&quot;keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby&quot;&gt;do &lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;variable variable_other variable_other_block variable_other_block_ruby&quot;&gt;klass&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby&quot;&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;    8&lt;/span&gt;   puts &lt;span class=&quot;string string_quoted string_quoted_double string_quoted_double_ruby&quot;&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby&quot;&gt;&quot;&lt;/span&gt;resizing all &lt;span class=&quot;source source_ruby source_ruby_embedded source_ruby_embedded_source&quot;&gt;&lt;span class=&quot;punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby&quot;&gt;#{&lt;/span&gt;klass&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;to_s&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;tableize&lt;span class=&quot;punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;    9&lt;/span&gt;   &lt;span class=&quot;support support_class support_class_ruby&quot;&gt;Kernel&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;const_get&lt;span class=&quot;punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby&quot;&gt;(&lt;/span&gt;klass&lt;span class=&quot;punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;find&lt;span class=&quot;punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;constant constant_other constant_other_symbol constant_other_symbol_ruby&quot;&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby&quot;&gt;:&lt;/span&gt;all&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;constant constant_other constant_other_symbol constant_other_symbol_ruby&quot;&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby&quot;&gt;:&lt;/span&gt;conditions&lt;/span&gt; &lt;span class=&quot;punctuation punctuation_separator punctuation_separator_key-value&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;string string_quoted string_quoted_single string_quoted_single_ruby&quot;&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby&quot;&gt;&#39;&lt;/span&gt;parent_id IS NULL&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby&quot;&gt;&#39;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;each &lt;span class=&quot;keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby&quot;&gt;do &lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;variable variable_other variable_other_block variable_other_block_ruby&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby&quot;&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;   10&lt;/span&gt;     puts &lt;span class=&quot;string string_quoted string_quoted_double string_quoted_double_ruby&quot;&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby&quot;&gt;&quot;&lt;/span&gt;...&lt;span class=&quot;source source_ruby source_ruby_embedded source_ruby_embedded_source&quot;&gt;&lt;span class=&quot;punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby&quot;&gt;#{&lt;/span&gt;image&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;public_filename&lt;span class=&quot;punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;   11&lt;/span&gt;     temp_file &lt;span class=&quot;keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby&quot;&gt;=&lt;/span&gt; image&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;create_temp_file&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;   12&lt;/span&gt;     image&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;attachment_options&lt;span class=&quot;punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;constant constant_other constant_other_symbol constant_other_symbol_ruby&quot;&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby&quot;&gt;:&lt;/span&gt;thumbnails&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;each &lt;span class=&quot;punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;meta meta_syntax meta_syntax_ruby meta_syntax_ruby_start-block&quot;&gt; &lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;variable variable_other variable_other_block variable_other_block_ruby&quot;&gt;suffix&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;variable variable_other variable_other_block variable_other_block_ruby&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby&quot;&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;   13&lt;/span&gt;       image&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;create_or_update_thumbnail&lt;span class=&quot;punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby&quot;&gt;(&lt;/span&gt;temp_file&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby&quot;&gt;,&lt;/span&gt; suffix&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby&quot;&gt;*&lt;/span&gt;size&lt;span class=&quot;punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby&quot;&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;   14&lt;/span&gt;     &lt;span class=&quot;punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;   15&lt;/span&gt;   &lt;span class=&quot;keyword keyword_control keyword_control_ruby&quot;&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;linenum&quot;&gt;   16&lt;/span&gt; &lt;span class=&quot;keyword keyword_control keyword_control_ruby&quot;&gt;end&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;linenum&quot;&gt;   17&lt;/span&gt; &lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;which you can call with&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;pre class=&quot;textmate-source&quot;&gt;&lt;span class=&quot;source source_ruby source_ruby_rails&quot;&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby&quot;&gt;/&lt;/span&gt;script&lt;span class=&quot;keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby&quot;&gt;/&lt;/span&gt;runner &lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby&quot;&gt;/&lt;/span&gt;script&lt;span class=&quot;keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby&quot;&gt;/&lt;/span&gt;resize_images&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;rb &lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;if you want to resize all images stores with attachment_fu. Or if you only want to resize your Photo model images:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;pre class=&quot;textmate-source&quot;&gt;&lt;span class=&quot;source source_ruby source_ruby_rails&quot;&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby&quot;&gt;/&lt;/span&gt;script&lt;span class=&quot;keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby&quot;&gt;/&lt;/span&gt;runner &lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby&quot;&gt;/&lt;/span&gt;script&lt;span class=&quot;keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby&quot;&gt;/&lt;/span&gt;resize_images&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby&quot;&gt;.&lt;/span&gt;rb &lt;span class=&quot;variable variable_other variable_other_constant variable_other_constant_ruby&quot;&gt;Photo&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;textmate-source&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;textmate-source&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://altoonrails.blogspot.com/feeds/3466389877125585608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/22979050/3466389877125585608' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default/3466389877125585608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default/3466389877125585608'/><link rel='alternate' type='text/html' href='http://altoonrails.blogspot.com/2008/07/resize-existing-images-when-using.html' title='Resize existing images when using attachment_fu'/><author><name>Thorsten Böttger</name><uri>http://www.blogger.com/profile/13600717214547160869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2iutDlQx-71pYELTcTEyD1GSpylCE71T0Se6c-FdvpgQ74dtGzZkjHGt6KDujTWBMldfRaNQiei1U56QywOoYvU_3oJiXaPpavCvYRA17BHUqPRocpOVfHBCeSYby0gg/s220/next2_small.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22979050.post-7896865810300077344</id><published>2008-06-22T23:54:00.002+02:00</published><updated>2008-06-22T23:58:12.688+02:00</updated><title type='text'>How to call a common deploy task during the deployment?</title><content type='html'>For example, if you want to clean up your releases directory on every deployment (using &lt;a href=&quot;http://capify.org/&quot;&gt;Capistrano&lt;/a&gt;), simply add the following lines to your deployment script:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class=&quot;textmate-source&quot;&gt;&lt;span class=&quot;source source_ruby source_ruby_rails&quot;&gt;&lt;span class=&quot;comment comment_line comment_line_number-sign comment_line_number-sign_ruby&quot;&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby&quot;&gt;#&lt;/span&gt;deploy.rb&lt;br /&gt;&lt;/span&gt;after &lt;span class=&quot;string string_quoted string_quoted_single string_quoted_single_ruby&quot;&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby&quot;&gt;&#39;&lt;/span&gt;deploy&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby&quot;&gt;&#39;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;string string_quoted string_quoted_double string_quoted_double_ruby&quot;&gt;&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby&quot;&gt;&quot;&lt;/span&gt;deploy:cleanup&lt;span class=&quot;punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;That&#39;s it :-)</content><link rel='replies' type='application/atom+xml' href='http://altoonrails.blogspot.com/feeds/7896865810300077344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/22979050/7896865810300077344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default/7896865810300077344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default/7896865810300077344'/><link rel='alternate' type='text/html' href='http://altoonrails.blogspot.com/2008/06/how-to-call-common-deploy-task-during.html' title='How to call a common deploy task during the deployment?'/><author><name>Thorsten Böttger</name><uri>http://www.blogger.com/profile/13600717214547160869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2iutDlQx-71pYELTcTEyD1GSpylCE71T0Se6c-FdvpgQ74dtGzZkjHGt6KDujTWBMldfRaNQiei1U56QywOoYvU_3oJiXaPpavCvYRA17BHUqPRocpOVfHBCeSYby0gg/s220/next2_small.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22979050.post-114833061283173543</id><published>2006-05-22T22:18:00.000+02:00</published><updated>2006-05-22T22:43:32.856+02:00</updated><title type='text'>The X and the P, and the RoR in my mind</title><content type='html'>Fast könnte man meinen, &lt;a href=&quot;http://www.rubyonrails.org/&quot;&gt;Ruby on Rails&lt;/a&gt; sei für &lt;a href=&quot;http://www.jera.com/techinfo/xpfaq.html&quot;&gt;eXtreme Programming&lt;/a&gt; geschaffen worden. Oder XP sei die Grundlage bei der Entwicklung von Rails gewesen. So sehr ergänzen und fördern sich die beiden gegenseitig. Kaum vorstellbar, die spontanen Richtungswechsel und Systemänderungen sollten in einer Java- oder - schlimmer noch - in einer C++ Umgebung realisiert werden.&lt;br /&gt;&lt;br /&gt;Schön schlank, überschaubar und vor allem erlebbar muss Software-Entwicklung sein, und damit das Ergebnis der Arbeit. Ruby on Rails ist und bietet genau das. Dicht am Kunden und seinen Bedürfnissen sein (&lt;span style=&quot;font-style: italic;&quot;&gt;on site customer&lt;/span&gt;), die nächsten und damit wichtigsten Änderungen und Erweiterungen mit dem Kunden durchsprechen (&lt;span style=&quot;font-style: italic;&quot;&gt;planning game&lt;/span&gt;), einen kleinen Prototypen basteln, schnell und effektiv (&lt;span style=&quot;font-style: italic;&quot;&gt;small releases, iterative/incremental&lt;/span&gt;), mit allen Vorteilen einer modernen Programmiersprache, direkte, spürbare Unterstützung bei der Arbeit durch integriertes Unit- und Funktionstesting (&lt;span style=&quot;font-style: italic;&quot;&gt;continuous testing and integration&lt;/span&gt;) oder O/R-Mapping, descriptives Programmieren (&lt;span style=&quot;font-style: italic;&quot;&gt;simple design&lt;/span&gt;) und Unterstützung durch moderne Werkzeuge. Was braucht man mehr?&lt;br /&gt;&lt;br /&gt;Jeder, der die Chance hat, mit Ruby on Rails zu arbeiten und dieses Framework in einem agilen Projekt einzusetzen, der sollte diese Chance nutzen! &lt;a href=&quot;http://c2.com/ppr/about/author/kent.html&quot;&gt;Kent Beck&lt;/a&gt; und &lt;a href=&quot;http://c2.com/cgi/wiki?WardCunningham&quot;&gt;Ward Cunningham&lt;/a&gt; haben den Grundstein gelegt, &lt;a href=&quot;http://www.loudthinking.com/about.html&quot;&gt;David Heinemeier Hansson&lt;/a&gt; hat die tragenden Wände gebaut. Jetzt sind wir dran!</content><link rel='replies' type='application/atom+xml' href='http://altoonrails.blogspot.com/feeds/114833061283173543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/22979050/114833061283173543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default/114833061283173543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default/114833061283173543'/><link rel='alternate' type='text/html' href='http://altoonrails.blogspot.com/2006/05/x-and-p-and-ror-in-my-mind.html' title='The X and the P, and the RoR in my mind'/><author><name>Thorsten Böttger</name><uri>http://www.blogger.com/profile/13600717214547160869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2iutDlQx-71pYELTcTEyD1GSpylCE71T0Se6c-FdvpgQ74dtGzZkjHGt6KDujTWBMldfRaNQiei1U56QywOoYvU_3oJiXaPpavCvYRA17BHUqPRocpOVfHBCeSYby0gg/s220/next2_small.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22979050.post-114271754535381525</id><published>2006-03-18T22:11:00.000+01:00</published><updated>2006-03-18T22:32:25.403+01:00</updated><title type='text'>Stand up and fight</title><content type='html'>&lt;a href=&quot;http://www.frankwestphal.de/Schlagwort-extremeprogramming.html#Extreme%20Programming&quot;&gt;Extreme Programming&lt;/a&gt; ist nicht neu. Und doch irgendwie zu neu. Und zu anders. Kaum vorstellbar. Vor allem nicht, dass es auch funktioniert. &lt;a href=&quot;http://www.pairprogramming.com/&quot;&gt;Pair Programming&lt;/a&gt;? Da machen ja dann zwei Leute das, was sonst einer könnte... &lt;a href=&quot;http://www.extremeprogramming.org/rules/testfirst.html&quot;&gt;Test First&lt;/a&gt;? In der gleichen Zeit kann man doch richtigen Code schreiben... Extrem ist nicht gut. Wir bleiben lieber beim normalen. &quot;Für Spielereien haben wir keine Zeit.&quot; &quot;Universitäre Spinnerei.&quot; All das habe ich schon gehört. Und &lt;a href=&quot;http://www.extremeprogramming.org/rules/standupmeeting.html&quot;&gt;Stand-up Meetings&lt;/a&gt;? Leute werden für&#39;s Rumstehen und Labern bezahlt...&lt;br /&gt;&lt;br /&gt;Apropos Stand-up Meeting. Mal abgesehen davon, dass sie tatsächlich im Stehen abgehalten werden, sind sie ziemlich sinnvoll. Und selbst das Stehen hat seinen Sinn. Es gibt keinen schnelleren Weg, um sich einen Überblick zu verschaffen. Über das, was die anderen machen und gemacht haben. Und auch und vor allem darüber, was man selber macht oder gemacht hat. Forcierte &lt;a href=&quot;http://de.wikipedia.org/wiki/Reflexion_%28Philosophie%29&quot;&gt;Reflexion&lt;/a&gt;. Sofort wird nachvollziehbar, warum so viele Manager XP ablehnen.&lt;br /&gt;&lt;br /&gt;Und warum jeden Tag? Weil an einem Tag so irre viel passiert. &lt;a href=&quot;http://de.wikipedia.org/wiki/Club_der_toten_Dichter#.22Carpe_Diem.22&quot;&gt;Carpe diem&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://altoonrails.blogspot.com/feeds/114271754535381525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/22979050/114271754535381525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default/114271754535381525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default/114271754535381525'/><link rel='alternate' type='text/html' href='http://altoonrails.blogspot.com/2006/03/stand-up-and-fight.html' title='Stand up and fight'/><author><name>Thorsten Böttger</name><uri>http://www.blogger.com/profile/13600717214547160869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2iutDlQx-71pYELTcTEyD1GSpylCE71T0Se6c-FdvpgQ74dtGzZkjHGt6KDujTWBMldfRaNQiei1U56QywOoYvU_3oJiXaPpavCvYRA17BHUqPRocpOVfHBCeSYby0gg/s220/next2_small.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22979050.post-114107291819477778</id><published>2006-02-27T21:30:00.000+01:00</published><updated>2006-02-28T23:54:46.600+01:00</updated><title type='text'>Ein Wort über Pair Programming</title><content type='html'>Hab&#39;s heute gemerkt. &lt;a href=&quot;http://www.pairprogramming.com/&quot;&gt;Pair Programming&lt;/a&gt; ist gut. Und wichtig. Und es macht auch mehr Spass. Viel wurde schon geredet über Pair Programming. Viel Positives, und auch viel Negatives. Angezweifelt wird es immer noch. Auch ich bin nicht immer überzeugt. Arbeite auch gerne mal alleine. In Ruhe. Hmm... Welche Ruhe meine ich denn damit? Meine innere jedenfalls nicht.&lt;br /&gt;&lt;br /&gt;Vielleicht ist das aber auch der entscheidende Punkt. Das ultimative Pro, wenn wir denn eins gebraucht haben. Ruhe ja, Konzentration auch. Aber auch Ausreden, Faulheiten und halbgare Ideen. Und irgendwie spürt man diese Löcher, die man alleine produziert. Die innere Ruhe? Der Schein trügt. Man stimmt sich nicht ab, man übersieht und überblickt nicht. Die innere Ruhe braucht man schon alleine deshalb, weil man sonst den Faden komplett verliert, wenn man alleine auf ein paar Zeilen Code schaut.&lt;br /&gt;&lt;br /&gt;Seit heute bin ich endgültig überzeugt. Habe heute ohne meinen Partner programmieren müssen. Du hast mir gefehlt, Kumpel. Ein &lt;a href=&quot;http://www.wackeldackel.com/&quot;&gt;Wackeldackel&lt;/a&gt; reicht halt doch nicht.</content><link rel='replies' type='application/atom+xml' href='http://altoonrails.blogspot.com/feeds/114107291819477778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/22979050/114107291819477778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default/114107291819477778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default/114107291819477778'/><link rel='alternate' type='text/html' href='http://altoonrails.blogspot.com/2006/02/ein-wort-ber-pair-programming.html' title='Ein Wort über Pair Programming'/><author><name>Thorsten Böttger</name><uri>http://www.blogger.com/profile/13600717214547160869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2iutDlQx-71pYELTcTEyD1GSpylCE71T0Se6c-FdvpgQ74dtGzZkjHGt6KDujTWBMldfRaNQiei1U56QywOoYvU_3oJiXaPpavCvYRA17BHUqPRocpOVfHBCeSYby0gg/s220/next2_small.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22979050.post-114082396321164391</id><published>2006-02-25T00:22:00.000+01:00</published><updated>2006-02-25T00:44:19.970+01:00</updated><title type='text'>Rails-Projekt</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://photos1.blogger.com/blogger/4836/2346/1600/rails_big.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;http://photos1.blogger.com/blogger/4836/2346/320/rails_big.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Am 27.01.2006 hat mein Leben nach Reuters begonnen. Und dann gleich sowas. Schweineglück, wieder einmal. Glaubte, endlich ein cooles Java-Projekt gefunden zu haben, klein, überschaubar, nicht abgehoben, persönlich. Habe ich aber nicht. Offenbart hat sich mir ein noch cooleres Rails-Projekt, mit coolen Leuten, coolen - wenn auch neuen - Technologien und coolem Auftrag. Schweineglück halt. Und &lt;a href=&quot;http://www.qype.com&quot;&gt;Qype&lt;/a&gt; rulez.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt; macht Spass. &lt;a href=&quot;http://www.rubyonrails.org/&quot;&gt;Ruby on Rails&lt;/a&gt; noch mehr. Web 2.0 ist interessant. Tagging, Social Networking, und Blogging ist angesagt. Und Extreme Programming mit &lt;a href=&quot;http://www.frankwestphal.de&quot;&gt;Frank Westphal&lt;/a&gt;, &lt;a href=&quot;http://www.tammofreese.de&quot;&gt;Tammo Freese&lt;/a&gt; und Jochen Kramer ist schnell, agil, spontan, elegant und effektiv. Anders eben. Und besser. Weil die Leute halt doch wichtig sind. Habt ihr gehört, ihr Clowns da draussen?</content><link rel='replies' type='application/atom+xml' href='http://altoonrails.blogspot.com/feeds/114082396321164391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/22979050/114082396321164391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default/114082396321164391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22979050/posts/default/114082396321164391'/><link rel='alternate' type='text/html' href='http://altoonrails.blogspot.com/2006/02/rails-projekt.html' title='Rails-Projekt'/><author><name>Thorsten Böttger</name><uri>http://www.blogger.com/profile/13600717214547160869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2iutDlQx-71pYELTcTEyD1GSpylCE71T0Se6c-FdvpgQ74dtGzZkjHGt6KDujTWBMldfRaNQiei1U56QywOoYvU_3oJiXaPpavCvYRA17BHUqPRocpOVfHBCeSYby0gg/s220/next2_small.gif'/></author><thr:total>0</thr:total></entry></feed>