<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <id>tag:cba.iboard.cc,2005:/feed</id>
  <link rel="alternate" type="text/html" href="http://cba.iboard.cc"/>
  <link rel="self" type="application/atom+xml" href="/feed"/>
  <title>CBA - Community Base Application</title>
  <updated>2012-05-20T11:08:40+02:00</updated>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711957daf98576f8000011</id>
    <published>2011-02-05T15:29:43+01:00</published>
    <updated>2011-03-04T17:54:47+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4a43f8e779892d51000006"/>
    <title>Pages and Postings can have Attachments % ryknehho</title>
    <content type="html">&lt;p&gt;was having an issue trying to post comments to a blog posting, seems like there's an undefined method 'comments' for a Blog object. does anyone have the same problem? funnily, it seems to work fine on pages.&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:47 +0100</updated>
    <author>ryknehho</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711957daf98576f800000c</id>
    <published>2011-02-01T07:42:09+01:00</published>
    <updated>2011-03-04T17:54:47+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d47aa56e779892065000007"/>
    <title>Multi-path CommentsController % nickendell</title>
    <content type="html">&lt;p&gt;Calculating the path where to redirect after :create, :update, :destroy was a bit of a hack but works fine now for any depth of nested resources.&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:47 +0100</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711957daf98576f800000d</id>
    <published>2011-02-01T10:00:59+01:00</published>
    <updated>2011-03-04T17:54:47+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d47aa56e779892065000007"/>
    <title>Multi-path CommentsController % nickendell</title>
    <content type="html">&lt;p&gt;Just reviewed yesterdays work and pushed a clean version to github.&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:47 +0100</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711957daf98576f8000006</id>
    <published>2011-02-05T23:42:57+01:00</published>
    <updated>2011-03-04T17:54:47+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4dcbd4e7798970a7000005"/>
    <title>HUD for pictures % nickendell</title>
    <content type="html">&lt;p&gt;Just added HUD for user-avatars too.&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:47 +0100</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711957daf98576f8000009</id>
    <published>2011-02-08T13:15:16+01:00</published>
    <updated>2011-03-04T17:54:47+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d5091a1e779890f9e000005"/>
    <title>Smells well again % Andreas</title>
    <content type="html">
&lt;p&gt;Got a hiccup after adding file-size-validation for attachments. Because there was files larger 1MB yet.&lt;/p&gt;

&lt;p&gt;When saving a user (which includes validation of embedded postings, which includes validation of embedded attachments) I got &lt;code&gt;user.invalid&lt;/code&gt;. After removing attachments with large pictures through the console, everything was fine again.&lt;/p&gt;

&lt;p&gt;Now I wonder, how I can test a case like this :)&lt;/p&gt;
</content>
    <updated>2011-03-04 17:54:47 +0100</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711957daf98576f800000a</id>
    <published>2011-02-08T17:50:43+01:00</published>
    <updated>2011-03-04T17:54:47+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d5091a1e779890f9e000005"/>
    <title>Smells well again % Andreas</title>
    <content type="html">&lt;p&gt;Inspired by Ryan Bates' "Railscast #252":&lt;a href="http://railscasts.com/episodes/252-metrics-metrics-metrics"&gt;http://railscasts.com/episodes/252-metrics-metrics-metrics&lt;/a&gt;, I've tried  "rails_best_practices":&lt;a href="http://cba.iboard.cc/rails_best_practices_output.html"&gt;http://cba.iboard.cc/rails_best_practices_output.html&lt;/a&gt; - Really cool ;-)&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:47 +0100</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711957daf98576f8000008</id>
    <published>2011-02-08T01:49:17+01:00</published>
    <updated>2011-03-04T17:54:47+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d5091a1e779890f9e000005"/>
    <title>Smells well again % nickendell</title>
    <content type="html">
&lt;p&gt;TDD Rocks! It is such a good feeling when tests shows you errors which you would not recognize without testing :)&lt;/p&gt;

&lt;p&gt;I missed, for some &lt;code&gt;DelayedJob.enqueue&lt;/code&gt;-lines, to append the delay, but &lt;code&gt;rake test&lt;/code&gt; shows them all before committing. &lt;/p&gt;
</content>
    <updated>2011-03-04 17:54:47 +0100</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711958daf98576f8000016</id>
    <published>2011-02-05T18:13:02+01:00</published>
    <updated>2011-03-04T17:54:48+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4d49cfe779895344000005"/>
    <title>Endless page implemented % nickendell</title>
    <content type="html">&lt;p&gt;Still a matter of review, though endless_page now works with userlist and blogs too.&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:48 +0100</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711958daf98576f8000019</id>
    <published>2011-02-07T01:18:02+01:00</published>
    <updated>2011-03-04T17:54:48+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4f3707e7798944fc000005"/>
    <title>When code smells % nickendell</title>
    <content type="html">
&lt;p&gt;BTW: I never drove CBA on a Windows-server and, may be, there are some more issues.&lt;/p&gt;

&lt;p&gt;CBA is tested on Mac OS X 10.6 and Debian (Kernel: Linux dev 2.6.26-2-amd64). &lt;/p&gt;

&lt;p&gt;I will appreciate mails concerning experience on other systems.&lt;/p&gt;
</content>
    <updated>2011-03-04 17:54:48 +0100</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711958daf98576f800001b</id>
    <published>2011-02-23T09:36:02+01:00</published>
    <updated>2011-03-04T17:54:48+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d64c604e779892bbf00001d"/>
    <title>rake delayed_jobs:work in background % Andreas</title>
    <content type="html">&lt;p&gt;On Mac OS X you can do this through a &lt;em&gt;LaunchDaemon&lt;/em&gt;. Documentation will follow.&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:48 +0100</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711958daf98576f800001d</id>
    <published>2011-02-09T19:23:17+01:00</published>
    <updated>2011-03-04T17:54:48+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d52d895e779890e8b000005"/>
    <title>Bundle update!!!! % Andreas</title>
    <content type="html">&lt;p&gt;Remove your &lt;code&gt;Gemfile.lock&lt;/code&gt; before &lt;code&gt;git pull&lt;/code&gt; ;-)&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:48 +0100</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711958daf98576f8000017</id>
    <published>2011-02-06T10:27:47+01:00</published>
    <updated>2011-03-04T17:54:48+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4e6617e779891695000015"/>
    <title>ooops -  Signup was broken % nickendell</title>
    <content type="html">&lt;p&gt;Now I know what I've to do next week. &lt;em&gt;How to test emails with rspec&lt;/em&gt; :)&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:48 +0100</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711958daf98576f8000013</id>
    <published>2011-02-04T18:21:30+01:00</published>
    <updated>2011-03-04T17:54:48+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4c353ee779891713000006"/>
    <title>Comments can be edited for 15 minutes % nickendell</title>
    <content type="html">&lt;p&gt;When an user posts a comment, the comment id and the timestamp will be stored in session[:comments] and then this values will be used in &lt;code&gt;Ability.rb&lt;/code&gt;&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:48 +0100</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711958daf98576f800001f</id>
    <published>2011-03-01T13:43:45+01:00</published>
    <updated>2011-03-04T17:54:48+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d67d13ce77989144b000009"/>
    <title>Experimenting with Google-Custom-Search % Andreas</title>
    <content type="html">&lt;p&gt;&lt;em&gt;Bad&lt;/em&gt;: If you're logged in and perform a search, clicking one of the results will sign you out. I have no idea how to fix this. Eventually by editing the google-javascript :( &lt;/p&gt;</content>
    <updated>2011-03-04 17:54:48 +0100</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711958daf98576f8000014</id>
    <published>2011-02-05T12:08:25+01:00</published>
    <updated>2011-03-04T17:54:48+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4d2cbee779894c18000006"/>
    <title>thor deploy:production % nickendell</title>
    <content type="html">&lt;p&gt;To do this &lt;em&gt;now&lt;/em&gt; and &lt;em&gt;simple&lt;/em&gt; was highly inspired by a talk by &lt;em&gt;Eishay Smith&lt;/em&gt; on Jan 14, 2011, found on "InfoQ":&lt;a href="http://www.infoq.com/presentations/Continuous-Deployment-50-Times-a-Day"&gt;http://www.infoq.com/presentations/Continuous-Deployment-50-Times-a-Day&lt;/a&gt;&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:48 +0100</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711959daf98576f8000028</id>
    <published>2011-01-27T14:31:08+01:00</published>
    <updated>2011-03-04T17:54:49+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4d39d1422d19473017000007"/>
    <title>README % nickendell</title>
    <content type="html">&lt;p&gt;Admins can delete user-accounts now.&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:49 +0100</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711959daf98576f8000027</id>
    <published>2011-01-27T14:05:55+01:00</published>
    <updated>2011-03-04T17:54:49+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4d39d1422d19473017000007"/>
    <title>README % nickendell</title>
    <content type="html">
&lt;p&gt;Fixes:&lt;/p&gt;

&lt;p&gt;bq. OAuth-Icons will not be displayed if no key is defined for a specific provider.&lt;br&gt;
New comments since last log in are marked blue now.&lt;/p&gt;
</content>
    <updated>2011-03-04 17:54:49 +0100</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711959daf98576f8000025</id>
    <published>2011-01-27T07:53:57+01:00</published>
    <updated>2011-03-04T17:54:49+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4d39d1422d19473017000007"/>
    <title>README % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;CBA installation on a fresh debian box works. There are a lot of debian packages to install and some bash-settings to set, which I will document later.&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:49 +0100</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711959daf98576f8000029</id>
    <published>2011-01-28T07:23:11+01:00</published>
    <updated>2011-03-04T17:54:49+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4d39d1422d19473017000007"/>
    <title>README % alta</title>
    <content type="html">
&lt;p&gt;"World Wide Education":&lt;a href="http://wwedu.com/wwedu/startengl.html"&gt;http://wwedu.com/wwedu/startengl.html&lt;/a&gt;, the company I work for, will start using "CBA":&lt;a href="http://cba.iboard.cc"&gt;http://cba.iboard.cc&lt;/a&gt; for new MicroApplications now.&lt;/p&gt;

&lt;p&gt;Though CBA is a very young project, you can expect that CBA will be polished day by day to satisfy all needs for WWEDU when using CBA for enterprise purposes. This will guarantee that CBA will not die a silent death.&lt;/p&gt;

&lt;p&gt;WWEDU uses a lot of OpenSource-stuff and this will be our give-back to the community.&lt;/p&gt;
</content>
    <updated>2011-03-04 17:54:49 +0100</updated>
    <author>alta</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711959daf98576f8000026</id>
    <published>2011-01-27T07:55:56+01:00</published>
    <updated>2011-03-04T17:54:49+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4d39d1422d19473017000007"/>
    <title>README % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;I wrote an &lt;em&gt;omniauth-strategie&lt;/em&gt; for campus.wwedu.com. so, wwedu-students may authenticate with their campus-account to our CBA-based micro-apps.&lt;/p&gt;</content>
    <updated>2011-03-04 17:54:49 +0100</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711959daf98576f8000022</id>
    <published>2011-02-16T05:29:58+01:00</published>
    <updated>2011-03-04T17:54:49+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d58e4b6e779896035000005"/>
    <title>Markdown and Textile supported % Andreas</title>
    <content type="html">
&lt;p&gt;Couldn't figure out why &lt;/p&gt;

&lt;p&gt;== Header&lt;/p&gt;

&lt;p&gt;sometimes work and sometimes don't.&lt;/p&gt;

&lt;p&gt;Anyhow&lt;/p&gt;

&lt;h1&gt;Header&lt;/h1&gt;

&lt;p&gt;works in any case.&lt;/p&gt;
</content>
    <updated>2011-03-04 17:54:49 +0100</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d7882f6daf9853c5f00000d</id>
    <published>2011-03-10T08:51:18+01:00</published>
    <updated>2011-03-10T08:51:18+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d766ec7daf985443800001b"/>
    <title>Comments reviewed once more % Andreas</title>
    <content type="html">&lt;p&gt;I have added new cucumber-features to test comments on &lt;code&gt;pages&lt;/code&gt; and &lt;code&gt;postings&lt;/code&gt;.&lt;/p&gt;</content>
    <updated>2011-03-10 08:51:18 +0100</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711959daf98576f800002a</id>
    <published>2011-01-28T22:42:29+01:00</published>
    <updated>2011-03-13T07:55:12+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4d39d1422d19473017000007"/>
    <title>README % nickendell</title>
    <content type="html">&lt;p&gt;With this version of &lt;em&gt;CBA&lt;/em&gt; you can define a file &lt;code&gt;config/google&lt;em&gt;analytics.head&lt;/em&gt;&lt;/code&gt; and put your javascript for Google-Analytics into this file. The file is then loaded in _production mode only.&lt;/p&gt;</content>
    <updated>2011-03-13 07:55:12 +0100</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4daec1b3daf9854359000019</id>
    <published>2011-04-20T13:21:23+02:00</published>
    <updated>2011-04-20T13:22:09+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4daec110daf985435900000d"/>
    <title>New model Invitation % Andreas</title>
    <content type="html">
&lt;p&gt;When I did &lt;em&gt;bundle update&lt;/em&gt; I got an error "&lt;code&gt;fetch': undefined method&lt;/code&gt;spec' for nil:NilClass (NoMethodError)"&lt;/p&gt;

&lt;p&gt;This could be solved with: a) locate your bundle-cache with command &lt;code&gt;gem list -d bundler´ and then delete all files in the cache-directory. Finally&lt;/code&gt;bundle update´ works.&lt;/p&gt;
</content>
    <updated>2011-04-20 13:22:09 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4db2bf68daf98549c2000011</id>
    <published>2011-04-23T14:00:40+02:00</published>
    <updated>2011-04-23T14:00:40+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4daec110daf985435900000d"/>
    <title>New model Invitation % Andreas</title>
    <content type="html">&lt;p&gt;The 'Invitation Function' is finished and working now.&lt;/p&gt;</content>
    <updated>2011-04-23 14:00:40 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4db30d39daf98549c2000083</id>
    <published>2011-04-23T19:32:41+02:00</published>
    <updated>2011-04-25T10:21:25+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4d39d1422d19473017000007"/>
    <title>README % Andreas</title>
    <content type="html">&lt;p&gt;Testing with SPORK added to cba:master&lt;/p&gt;</content>
    <updated>2011-04-25 10:21:25 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4dc5b63bdaf98565a200012b</id>
    <published>2011-05-07T23:14:35+02:00</published>
    <updated>2011-05-08T10:19:20+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4dc5138fdaf985615f000034"/>
    <title>Translator Module % Andreas</title>
    <content type="html">
&lt;p&gt;The view-code is a subject to be reviewed soon. I'm not happy with that. It's a quick and dirty solution with the intention not to touch the controller. I'll do some research to eliminate everything from the view.&lt;/p&gt;

&lt;p&gt;The idea is: &lt;em&gt;FormBuilder&lt;/em&gt; should be freedom-patched to handle translated fields for you. Once this will be done I will provide Translator as gem.&lt;/p&gt;
</content>
    <updated>2011-05-08 10:19:20 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711958daf98576f8000020</id>
    <published>2011-02-10T11:20:03+01:00</published>
    <updated>2011-05-10T17:34:04+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d53bb27e779893dd0000007"/>
    <title>install.rb  for easy installation % Andreas</title>
    <content type="html">
&lt;p&gt;Will work on Un*x-Machines only ;-)&lt;/p&gt;

&lt;p&gt;Tested on Mac OX 10.6, 10.7 and Debian with kernel 2.6.26-2-amd64&lt;/p&gt;
</content>
    <updated>2011-05-10 17:34:04 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4dd23069daf985523a000078</id>
    <published>2011-05-17T10:23:05+02:00</published>
    <updated>2011-05-17T10:23:05+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4dbec030daf9853b30000036"/>
    <title>PageComponent and PageTemplate sample-page % Adonica</title>
    <content type="html">&lt;p&gt;Thanks for sharing. Awylas good to find a real expert.&lt;/p&gt;</content>
    <updated>2011-05-17 10:23:05 +0200</updated>
    <author>Adonica</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4dd25414daf985523a0000f0</id>
    <published>2011-05-17T12:55:16+02:00</published>
    <updated>2011-05-17T12:55:16+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4dbec030daf9853b30000036"/>
    <title>PageComponent and PageTemplate sample-page % Janese</title>
    <content type="html">&lt;p&gt;Home run! Great slugging with that aswner!&lt;/p&gt;</content>
    <updated>2011-05-17 12:55:16 +0200</updated>
    <author>Janese</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4dd44e08daf985523a000277</id>
    <published>2011-05-19T00:54:00+02:00</published>
    <updated>2011-05-19T00:54:00+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4dbec030daf9853b30000036"/>
    <title>PageComponent and PageTemplate sample-page % Vina</title>
    <content type="html">&lt;p&gt;Superior tkhining demonstrated above. Thanks!&lt;/p&gt;</content>
    <updated>2011-05-19 00:54:00 +0200</updated>
    <author>Vina</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4dd4e524daf985523a0002da</id>
    <published>2011-05-19T11:38:44+02:00</published>
    <updated>2011-05-19T11:38:44+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d57d8d4e77989255200000d"/>
    <title>Noch keine deutschen Einträge % prashant</title>
    <content type="html">&lt;p&gt;nice blog&lt;/p&gt;</content>
    <updated>2011-05-19 11:38:44 +0200</updated>
    <author>prashant</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e0058bcdaf9854f2f000017</id>
    <published>2011-06-21T10:39:24+02:00</published>
    <updated>2011-06-21T10:39:24+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e004cdfdaf9854f2f000009"/>
    <title>Upgraded to Rails 3.0.9 % Andreas</title>
    <content type="html">&lt;p&gt;oh - and without even recognize it - I implicitly upgraded to &lt;code&gt;cucumber 1.0.0&lt;/code&gt; - cool :D&lt;/p&gt;</content>
    <updated>2011-06-21 10:39:24 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e0ad7a5daf9855d5f00006e</id>
    <published>2011-06-29T09:43:33+02:00</published>
    <updated>2011-06-29T09:43:33+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0ad6fcdaf9855d5f000068"/>
    <title>Bring back SPORK with cucumber 1.0.0 % Andreas</title>
    <content type="html">
&lt;p&gt;With this changes in &lt;code&gt;spork/test_framework/cucumber.rb&lt;/code&gt; you may use the autotest thor task of CBA again:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;thor application:run_autotests&lt;/code&gt;&lt;/p&gt;
</content>
    <updated>2011-06-29 09:43:33 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e0ad839daf9855d5f000074</id>
    <published>2011-06-29T09:46:01+02:00</published>
    <updated>2011-06-29T09:46:01+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0ad6fcdaf9855d5f000068"/>
    <title>Bring back SPORK with cucumber 1.0.0 % Andreas</title>
    <content type="html">&lt;p&gt;If you not sure where your GEMPATH is. Enter &lt;code&gt;echo $GEM_PATH&lt;/code&gt; on the command-line ;-)&lt;/p&gt;</content>
    <updated>2011-06-29 09:46:01 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e0af9c3daf9855d5f000090</id>
    <published>2011-06-29T12:09:07+02:00</published>
    <updated>2011-06-29T12:09:07+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0af860daf9855d5f000084"/>
    <title>We Are Green Again % Andreas</title>
    <content type="html">&lt;p&gt;Obviously turning off warnings is no good thing. But I will wait for cucumber and spork to fix this problems ;-)&lt;/p&gt;</content>
    <updated>2011-06-29 12:09:07 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e0b3971daf9855c06000028</id>
    <published>2011-06-29T16:40:49+02:00</published>
    <updated>2011-06-29T16:40:49+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0b35b0daf9855c0600000b"/>
    <title>rdiscount replaced by redcarpet % Andreas</title>
    <content type="html">
&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"This is an example of CodeHighlighting"&lt;/span&gt;
&lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"Use ```ruby to begin a code block and ``` to end it"&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;See &lt;a href="http://cba.iboard.cc/blogs/4d456adae7798923b100000a/postings/4e0af860daf9855d5f000084"&gt;We are green again&lt;/a&gt; for a larger code-highlighting example.&lt;/p&gt;
</content>
    <updated>2011-06-29 16:40:49 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e0b3bbddaf9855c0600003e</id>
    <published>2011-06-29T16:50:37+02:00</published>
    <updated>2011-06-29T16:50:37+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0b35b0daf9855c0600000b"/>
    <title>rdiscount replaced by redcarpet % Andreas</title>
    <content type="html">&lt;p&gt;You may check out &lt;a href="https://github.com/iboard/CBA/commit/c4d525a2c1d2e79d87ac706dce2f43d2c7648c3b"&gt;this commit&lt;/a&gt; to see how (easy) this change was done.&lt;/p&gt;</content>
    <updated>2011-06-29 16:50:37 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e0ea9e8daf985015500001a</id>
    <published>2011-07-02T07:17:28+02:00</published>
    <updated>2011-07-02T07:17:28+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0ea90adaf9850155000013"/>
    <title>MongoDB 1.8 % Andreas</title>
    <content type="html">&lt;p&gt;Next I'll setup some replication across my servers. There is a good presentation of this on &lt;a href="http://www.10gen.com/presentation/mongonyc-2011/replication-in-depth"&gt;MongoDB's Website&lt;/a&gt;.&lt;/p&gt;</content>
    <updated>2011-07-02 07:17:28 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e0ebe54daf9850155000044</id>
    <published>2011-07-02T08:44:36+02:00</published>
    <updated>2011-07-02T08:44:36+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0ea90adaf9850155000013"/>
    <title>MongoDB 1.8 % Andreas</title>
    <content type="html">
&lt;p&gt;Setting up the ReplicaSet was as simple as ABC too.&lt;/p&gt;

&lt;p&gt;See &lt;a href="https://gist.github.com/1059803"&gt;this Gist&lt;/a&gt; how I did the setup.&lt;/p&gt;

&lt;p&gt;Because my two nodes are located in two different data-centers, it took about 5 minutes to perform the initiate replication. During this time the application was not available.&lt;/p&gt;
</content>
    <updated>2011-07-02 08:44:36 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e0edd9fdaf985015500008b</id>
    <published>2011-07-02T10:58:07+02:00</published>
    <updated>2011-07-02T10:58:07+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0eda8fdaf9850155000079"/>
    <title>YARD on Mac OS X Lion Preview % Andreas</title>
    <content type="html">&lt;p&gt;&lt;code&gt;callcc&lt;/code&gt; at line 38 is raising an exception and a Bus Error.&lt;/p&gt;</content>
    <updated>2011-07-02 10:58:07 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e0eea76daf98501550000af</id>
    <published>2011-07-02T11:52:54+02:00</published>
    <updated>2011-07-02T11:52:54+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0eda8fdaf9850155000079"/>
    <title>YARD on Mac OS X Lion Preview % Andreas</title>
    <content type="html">
&lt;p&gt;use the following thor-task to deploy your documentation to a path or rsync to your web-server.&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;thor deploy:doc --source doc/* --target user@yourserver.cc --ssh
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2011-07-02 11:52:54 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e18d9afdaf985127f000012</id>
    <published>2011-07-10T00:43:59+02:00</published>
    <updated>2011-07-10T00:43:59+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e18d445daf985105500000a"/>
    <title>CBA is running with Rails 3.1.0.rc4 on this Debian-box % Andreas</title>
    <content type="html">
&lt;p&gt;Ok, I had to run&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;rake assets:clean       &lt;span class="c"&gt;# Remove compiled assets&lt;/span&gt;
rake assets:precompile  &lt;span class="c"&gt;# Compile all the assets named in config.assets.precompile&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;... and now the images are back again.&lt;/p&gt;
</content>
    <updated>2011-07-10 00:43:59 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e1964dfdaf985343c000009</id>
    <published>2011-07-10T10:37:51+02:00</published>
    <updated>2011-07-10T10:38:18+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e18d445daf985105500000a"/>
    <title>CBA is running with Rails 3.1.0.rc4 on this Debian-box % Andreas</title>
    <content type="html">
&lt;p&gt;Cool, at the end it took me about 4 hours to port this application from Rails 3.0 to Rails 3.1.&lt;/p&gt;

&lt;p&gt;Half the time I had to invest on Debian and the production mode. But fortunately my Debian box, running Apache2 and PhusionPassenger can handle 3.0 and 3.1 applications concurrently.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="/"&gt;CBA - this application&lt;/a&gt; is running on CBA branch rails31&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://altendorfer.at"&gt;Altendorfer.at&lt;/a&gt; is running on CBA master branch.&lt;/li&gt;
&lt;li&gt;rails.3.0.9 and rails.3.1.0.rc4 are both installed in the same rvm gemset which is loaded by Passenger.&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2011-07-10 10:38:18 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Page/4dbec030daf9853b30000036</id>
    <published>2011-05-02T16:31:14+02:00</published>
    <updated>2011-07-10T22:49:43+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4dbec030daf9853b30000036"/>
    <title>PageComponent and PageTemplate sample-page</title>
    <content type="html">PageComponent and PageTemplate sample-page&lt;div class="cover_picture" id="cover_picture_4dbec030daf9853b30000036" style=""&gt;&lt;a href="#" onclick="image_popup('/system/cover_pictures/4dbec030daf9853b30000036/popup/PageComponents.jpg?1304346670'); return false;"&gt;&lt;img alt="Pagecomponents" class="img-with-shadow" src="/system/cover_pictures/4dbec030daf9853b30000036/medium/PageComponents.jpg?1304346670" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h1&gt;DEMO PAGE&lt;/h1&gt;

&lt;p&gt;This is an example how you may use &lt;code&gt;PageTemplate&lt;/code&gt; and &lt;code&gt;PageComponent&lt;/code&gt; in CBA.&lt;/p&gt;

&lt;p&gt;For this Page we use &lt;code&gt;Page: Body and components only&lt;/code&gt; template. This will not show the title of the page since we'll render it within this body (DEMO PAGE)&lt;/p&gt;

&lt;p&gt;All attachments will be used within the follow components and doesn't need to be rendered by the page-template itself.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4dbebb9adaf9853b3000001a"&gt;see Posting ...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2011-07-10 22:49:43 +0200</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e1a126edaf98561ec00000f</id>
    <published>2011-07-10T22:58:22+02:00</published>
    <updated>2011-07-10T22:59:15+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e1a1161daf98561ec000009"/>
    <title>Draft mode % Andreas</title>
    <content type="html">&lt;p&gt;If I look at &lt;a href="https://github.com/iboard/CBA/commit/9dc52cd91e25ddc80e0b02f09a8b6a5f16aea91d"&gt;this commit&lt;/a&gt; I'm not sure if I did this as simple as possible. I guess I'll should review this on a cooler day ;-)&lt;/p&gt;</content>
    <updated>2011-07-10 22:59:15 +0200</updated>
    <author>Andreas</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4d711957daf98576f8000010</id>
    <published>2011-02-03T07:10:05+01:00</published>
    <updated>2011-07-10T23:03:25+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4a43f8e779892d51000006"/>
    <title>Pages and Postings can have Attachments % nickendell</title>
    <content type="html">
&lt;p&gt;I'm not sure - should attachments of type /image/ be rendered inline? Attachments are handled by &lt;em&gt;Paperclip&lt;/em&gt; and if an attachment is an image the variants&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt; &lt;span class="ss"&gt;:popup&lt;/span&gt;  &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"800x600="&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="ss"&gt;:preview&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"450x325="&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="ss"&gt;:medium&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"300x300&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="ss"&gt;:thumb&lt;/span&gt;  &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"100x100&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="ss"&gt;:icon&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"64x64"&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;are processed by &lt;em&gt;paperclip&lt;/em&gt;. So, it would be easy to display attachments in :show. But what's about the layout if there are many attachments?&lt;/p&gt;

&lt;p&gt;Any suggestions?&lt;/p&gt;
</content>
    <updated>2011-07-10 23:03:25 +0200</updated>
    <author>nickendell</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e2141fadaf985776e00003e</id>
    <published>2011-07-16T09:47:06+02:00</published>
    <updated>2011-07-16T09:47:06+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e213f22daf985776e000021"/>
    <title>Welcome Google+ % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;See &lt;a href="https://github.com/iboard/CBA/commit/46dc47a3b98b9f0bea3c8bd3c6a81de9e8e9d49b"&gt;Github-Commit&lt;/a&gt; how I did it.&lt;/p&gt;</content>
    <updated>2011-07-16 09:47:06 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e2a774cdaf98557f400000a</id>
    <published>2011-07-23T09:25:00+02:00</published>
    <updated>2011-07-23T09:25:00+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e2a76c8daf98557f4000005"/>
    <title>OmniAuth / Twitter / SSL Error % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;BTW: I need to do this on my debian box only. On Mac OS X twitter-authententication works fine without this 'trick'.&lt;/p&gt;</content>
    <updated>2011-07-23 09:25:00 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e2ea186daf98515c600002b</id>
    <published>2011-07-26T13:14:14+02:00</published>
    <updated>2011-07-26T13:18:53+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e2ea05edaf98515c6000015"/>
    <title>Version Conflicts with Rails RC4 and Sprockets beta.12 % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;Tho, I didn't test it, I'm sure Rails rc5 and sprockets beta12 will work together ;-).&lt;/p&gt;</content>
    <updated>2011-07-26 13:18:53 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e5f122ddaf9854e3a0005a7</id>
    <published>2011-09-01T07:03:41+02:00</published>
    <updated>2011-09-01T07:03:41+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e5f0e4ddaf9854e3a000049"/>
    <title>Mr. Birthday % Andreas Altendorfer</title>
    <content type="html">
&lt;h2&gt;Release Notes:&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;devise&lt;/em&gt; doesn't work with my bundle. So, this version runs with a fork of &lt;em&gt;devise&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Autotests and &lt;code&gt;thor application:run_autotests&lt;/code&gt; is back and works without issues on my macBook. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2011-09-01 07:03:41 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e634e4adaf9855e12000576</id>
    <published>2011-09-04T12:09:14+02:00</published>
    <updated>2011-09-04T12:09:14+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e634c6fdaf9855e1200003b"/>
    <title>Testing with Jasmine % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;TODO: In this version it is necessary to precompile assets whenever you change a js-file. &lt;code&gt;rake jasmine&lt;/code&gt; should handle fresh compiled versions of javascripts.&lt;/p&gt;</content>
    <updated>2011-09-04 12:09:14 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e6736addaf9852886000218</id>
    <published>2011-09-07T11:17:33+02:00</published>
    <updated>2011-09-07T11:17:33+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e6669f3daf985201a000048"/>
    <title>Using pow % reir</title>
    <content type="html">&lt;p&gt;I got a "Bad CPU type in executable" error due to my 32-bit Mac, so I had to install pow from source. See &lt;a href="https://github.com/37signals/pow/wiki/Installation"&gt;https://github.com/37signals/pow/wiki/Installation&lt;/a&gt;&lt;/p&gt;</content>
    <updated>2011-09-07 11:17:33 +0200</updated>
    <author>reir</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e6a07fbdaf9855ef30031ee</id>
    <published>2011-09-09T14:35:07+02:00</published>
    <updated>2011-09-09T14:35:07+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e692b1bdaf98514de000290"/>
    <title>Interpreter supports Youtube % Andreas Altendorfer</title>
    <content type="html">
&lt;p&gt;At the moment this works only if the posting or page uses &lt;em&gt;markdown&lt;/em&gt; as interpreter.&lt;/p&gt;

&lt;p&gt;YouTube playlists will not be displayed on iPads, single videos works, tho&lt;/p&gt;
</content>
    <updated>2011-09-09 14:35:07 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e6f5cb5daf9851c3300001d</id>
    <published>2011-09-13T15:37:57+02:00</published>
    <updated>2011-09-13T15:37:57+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d523c48e779896aa5000007"/>
    <title>Rails Best Practices % Victor Miclovich</title>
    <content type="html">&lt;p&gt;nice stuff&lt;/p&gt;</content>
    <updated>2011-09-13 15:37:57 +0200</updated>
    <author>Victor Miclovich</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e6f85a3daf9851c33001c86</id>
    <published>2011-09-13T18:32:35+02:00</published>
    <updated>2011-09-13T18:33:36+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e2e4a5bdaf985055b000023"/>
    <title>MongoDB Replica Set % Andreas Altendorfer</title>
    <content type="html">
&lt;p&gt;Today, September 13, 2011, I changed the config from Replica Set to Master/Slave. Which makes more sense for me since I run two servers only.&lt;/p&gt;

&lt;p&gt;New &lt;code&gt;config/mongoid.yml&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="c1"&gt;#....&lt;/span&gt;
&lt;span class="n"&gt;production&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;localhost&lt;/span&gt;
  &lt;span class="n"&gt;database&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;cba_production&lt;/span&gt;
  &lt;span class="n"&gt;allow_read_secondary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
  &lt;span class="n"&gt;slaves&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;s1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iboard&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cc&lt;/span&gt;
    &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;27017&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;On master: &lt;code&gt;/etc/mongodb/mongodb.conf&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="nv"&gt;MONGO_USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"mongod"&lt;/span&gt;
&lt;span class="nv"&gt;MONGO_OPTS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"--master --dbpath /data/mongodb/ --rest --journal"&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;On slave: &lt;code&gt;/etc/mongodb/mongodb.conf&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="nv"&gt;MONGO_USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"mongod"&lt;/span&gt;
&lt;span class="nv"&gt;MONGO_OPTS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"--slave --source edge.iboard.cc:27017 --dbpath /data/slave/ --rest --journal"&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2011-09-13 18:33:36 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e6f8698daf9851c33001c91</id>
    <published>2011-09-13T18:36:40+02:00</published>
    <updated>2011-09-13T18:36:40+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e6f5f89daf9851c330000a1"/>
    <title>Bad bug drops pages unexpectedly % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;As I have to restore my database from backup, I decide to change from a ReplicaSet (of 2 servers) to Master/Slave configuration. See &lt;a href="/postings/4e2e4a5bdaf985055b000023"&gt;comment of posting&lt;/a&gt;&lt;/p&gt;</content>
    <updated>2011-09-13 18:36:40 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e8e9411daf985700300065f</id>
    <published>2011-10-07T07:54:25+02:00</published>
    <updated>2011-10-07T07:58:37+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e8df4f9daf98548ce006e6d"/>
    <title>Tag-cloud implemented % Andreas Altendorfer</title>
    <content type="html">
&lt;p&gt;&lt;strong&gt;Layout fixed&lt;/strong&gt; - in &lt;em&gt;tag.css.scss&lt;/em&gt; we defined divs for tag-weight 0 to weight 8. If a tag has a weight &amp;gt; 8 then no css-div was found.&lt;/p&gt;

&lt;p&gt;To fix this I wrote a function named &lt;code&gt;normalized_tags_with_weight&lt;/code&gt; in module &lt;em&gt;ContentItem&lt;/em&gt;. With this little helper, all tag-weights will be between 0 and 8 by calculation &lt;code&gt;used_weight = 8/max_weight*weight&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;See &lt;a href="https://github.com/iboard/CBA/commit/2566ed9ad5e79a9f05c7db14cb25ba68c61da069"&gt;this commit&lt;/a&gt;&lt;/p&gt;
</content>
    <updated>2011-10-07 07:58:37 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e915977daf9852109000232</id>
    <published>2011-10-09T10:21:11+02:00</published>
    <updated>2011-10-09T10:21:11+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e91590fdaf9852109000007"/>
    <title>New controller to submit user notifications % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;Next step will be to deliver a copy of new notifications by  email.&lt;/p&gt;</content>
    <updated>2011-10-09 10:21:11 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Page/4d3c20c22d194769cf00000b</id>
    <published>2011-01-23T13:36:18+01:00</published>
    <updated>2011-10-11T18:45:42+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4d3c20c22d194769cf00000b"/>
    <title>Freedom</title>
    <content type="html">Freedom&lt;div class="cover_picture" id="cover_picture_4d3c20c22d194769cf00000b" style=""&gt;&lt;a href="#" onclick="image_popup('/system/cover_pictures/4d3c20c22d194769cf00000b/popup/OSI-Approved-License-100x137.png?1295786177'); return false;"&gt;&lt;img alt="Osi-approved-license-100x137" class="img-with-shadow" src="/system/cover_pictures/4d3c20c22d194769cf00000b/medium/OSI-Approved-License-100x137.png?1295786177" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h1&gt;The CBA-Project is licensed under the terms of&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.opensource.org/licenses/mit-license.php"&gt;The MIT License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Copyright (c) 2011 Andreas Altendorfer, World Wide Education&lt;/p&gt;

&lt;p&gt;Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br&gt;
of this software and associated documentation files (the "Software"), to deal&lt;br&gt;
in the Software without restriction, including without limitation the rights&lt;br&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br&gt;
furnished to do so, subject to the following conditions:&lt;/p&gt;

&lt;p&gt;The above copyright notice and this permission notice shall be included in&lt;br&gt;
all copies or substantial portions of the Software.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br&gt;
THE SOFTWARE.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <updated>2011-10-11 18:45:42 +0200</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e9806bcdaf9855e080001df</id>
    <published>2011-10-14T11:54:04+02:00</published>
    <updated>2011-10-14T11:54:04+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e980660daf9855e08000008"/>
    <title>Reverse GeoIndexing % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;The address used to search will not be saved with the user-record. And if you don't want to show your exact address, first search by address, and then modify the longitude and latitude to move the location stored with your user-record.&lt;/p&gt;</content>
    <updated>2011-10-14 11:54:04 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e9dc03edaf98511070011fa</id>
    <published>2011-10-18T20:06:54+02:00</published>
    <updated>2011-10-18T20:06:54+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e9db32edaf9851107000003"/>
    <title>Interpreter supports Google-maps % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;Find the source of this change in &lt;a href="https://github.com/iboard/CBA/commit/8b8417505aca0e1089ce9f7be52a5279451616ee"&gt;Commit 8b8417505aca0e1089ce9f7be52a5279451616ee&lt;/a&gt;&lt;/p&gt;</content>
    <updated>2011-10-18 20:06:54 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e9dc26ddaf9851107001200</id>
    <published>2011-10-18T20:16:13+02:00</published>
    <updated>2011-10-18T20:16:13+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e9db32edaf9851107000003"/>
    <title>Interpreter supports Google-maps % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;If you, &lt;strong&gt;the girl from the bus&lt;/strong&gt;, will accidentally read this post: "It was great to meet you in [PLACE:Patterson Park, Baltimore] ... I feel honored to met you at this sunny, funny, awesome afternoon. Keep rockin'!&lt;/p&gt;</content>
    <updated>2011-10-18 20:16:13 +0200</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4ecea403daf98529c2000008</id>
    <published>2011-11-24T21:07:31+01:00</published>
    <updated>2011-11-24T21:07:31+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ece9d5fdaf985263000000a"/>
    <title>Restrict postings to your individual groups % Andreas Altendorfer</title>
    <content type="html">
&lt;p&gt;&lt;strong&gt;Please note&lt;/strong&gt; When you save a posting with groups, CBA will save all users of all groups at this moment. If you remove a user from a group later, this user will still have access to the posting. &lt;/p&gt;

&lt;p&gt;It's like sending an email to a defined group of your address book. Once the mail is sent, it is sent ;-)&lt;/p&gt;
</content>
    <updated>2011-11-24 21:07:31 +0100</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4ed4f59bdaf9852cad000003</id>
    <published>2011-11-29T16:09:15+01:00</published>
    <updated>2011-11-29T16:09:15+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4df1fe74daf985689700001b"/>
    <title>SiteMenu % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;Controller added - see &lt;a href="/postings/4dfe2157daf9854fcc000005"&gt;This posting&lt;/a&gt;&lt;/p&gt;</content>
    <updated>2011-11-29 16:09:15 +0100</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4ed4f44cdaf9857266000c85</id>
    <published>2011-11-29T16:03:40+01:00</published>
    <updated>2011-11-30T07:24:05+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ed4e0fbdaf9857266000915"/>
    <title>Left sidebar per controller % Andreas Altendorfer</title>
    <content type="html">
&lt;p&gt;Steps to build this feature:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/d48e8b5a77e25edf9a854c1de58e97e79477f9c6#diff-2"&gt;Write a spec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/d48e8b5a77e25edf9a854c1de58e97e79477f9c6#diff-3"&gt;Write the helpers for the spec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/d48e8b5a77e25edf9a854c1de58e97e79477f9c6#diff-1"&gt;change the application-template&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;finally &lt;a href="https://github.com/iboard/CBA/commit/d48e8b5a77e25edf9a854c1de58e97e79477f9c6#diff-0"&gt;write the application-helper functions&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
</content>
    <updated>2011-11-30 07:24:05 +0100</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4ed9f5afdaf98506840016a8</id>
    <published>2011-12-03T11:10:55+01:00</published>
    <updated>2011-12-03T11:10:55+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ed9f348daf9850684000d02"/>
    <title>Testing dropdown-selects % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;&lt;a href="https://github.com/iboard/CBA/issues/15"&gt;This issue&lt;/a&gt; inspired me to write this spec. And I think it should be done for any form, just to make sure the user will not have such an experience.&lt;/p&gt;</content>
    <updated>2011-12-03 11:10:55 +0100</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4edb5817daf9852e1f000776</id>
    <published>2011-12-04T12:23:03+01:00</published>
    <updated>2011-12-04T12:23:03+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4edb57d4daf9852e1f000667"/>
    <title>rdoc reviewed % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;Who will do this for letter &lt;strong&gt;B&lt;/strong&gt;? ;-)&lt;/p&gt;</content>
    <updated>2011-12-04 12:23:03 +0100</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4ee7230edaf985344800000f</id>
    <published>2011-12-13T11:03:58+01:00</published>
    <updated>2011-12-13T11:04:47+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ee511dedaf9851ac6000046"/>
    <title>Get rid of a bad idea % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;Everything is green again. You can use the &lt;a href="https://github.com/iboard/CBA/commit/39043ddf82c556fd0095107bb01629b2a470e3b2"&gt;latest version in branch &lt;em&gt;master&lt;/em&gt;&lt;/a&gt; for production.&lt;/p&gt;</content>
    <updated>2011-12-13 11:04:47 +0100</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4e6e1640daf9855574000667</id>
    <published>2011-09-12T16:25:04+02:00</published>
    <updated>2011-12-19T10:08:09+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e6e13b0daf9855574000018"/>
    <title>CSS &amp; Layout cleaned up % Andreas Altendorfer</title>
    <content type="html">
&lt;p&gt;See top of &lt;code&gt;application.html.erb&lt;/code&gt; where the :resouce_action get prepared&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="x"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;

&lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;content_for?&lt;/span&gt; &lt;span class="ss"&gt;:resource_actions&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;span class="x"&gt;   &lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="n"&gt;content_for&lt;/span&gt; &lt;span class="ss"&gt;:right_column_top&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;span class="x"&gt;     &amp;lt;div id='resource-actions'&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;       &lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="k"&gt;yield&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="ss"&gt;:resource_actions&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;span class="x"&gt;     &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;   &lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;And down the file you'll see where the right column got rendered.&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;content_for?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="ss"&gt;:right_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;content_for?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:right_column_top&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;span class="x"&gt;          &amp;lt;div id='right-column'&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;            &lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;content_for?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:right_column_top&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;span class="x"&gt;              &amp;lt;div id='right-column-top'&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;                &lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="k"&gt;yield&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:right_column_top&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;    &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;span class="x"&gt;              &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;            &lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;span class="x"&gt;            &amp;lt;div id='right-column-bottom'&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;              &lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="k"&gt;yield&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:right_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;content_for?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:right_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;span class="x"&gt;            &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;          &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;        &lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2011-12-19 10:08:09 +0100</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Page/4d3c168f2d19476450000007</id>
    <published>2011-01-23T12:52:47+01:00</published>
    <updated>2011-12-19T16:53:19+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4d3c168f2d19476450000007"/>
    <title>Links</title>
    <content type="html">Links&lt;div class="cover_picture" id="cover_picture_4d3c168f2d19476450000007" style=""&gt;&lt;a href="#" onclick="image_popup('/system/cover_pictures/4d3c168f2d19476450000007/popup/PICT0025.JPG?1295787093'); return false;"&gt;&lt;img alt="Pict0025" class="img-with-shadow" src="/system/cover_pictures/4d3c168f2d19476450000007/medium/PICT0025.JPG?1295787093" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;CBA is at &lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://github.com/iboard/CBA"&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pivotaltracker.com/projects/203457"&gt;Pivotal Tracker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dav.iboard.cc/doc/cba/_index.html"&gt;RDOC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://beta.ruby-toolbox.com/projects/CBA"&gt;The Ruby-Toolbox&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Follow&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://twitter.com/Nickendell"&gt;@Nickendell - Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/iboard"&gt;iBoard - Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wwedu.com"&gt;WWEDU.com - World Wide Education&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://iboard.cc"&gt;iBoard.cc - My personal homepage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/p/follow_me"&gt;even more links ...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2011-12-19 16:53:19 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d4d2cbee779894c18000006</id>
    <published>2011-02-05T11:56:00+01:00</published>
    <updated>2011-12-31T02:32:22+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4d2cbee779894c18000006"/>
    <title>thor deploy:production</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d4d2cbee779894c18000006',2000);" onmouseover="showSideTab($('#posting_4d4d2cbee779894c18000006'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d4d2cbee779894c18000006"&gt;thor deploy:production&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d4d2cbee779894c18000006' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d4d2cbee779894c18000006/popup/PICT0068_2.JPG?1296903358'); return false;"&gt;&lt;img alt="Pict0068_2" class="img-with-shadow" src="/system/cover_pictures/4d4d2cbee779894c18000006/medium/PICT0068_2.JPG?1296903358" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;There is a new thor-task to deploy the app to the production server.&lt;/p&gt;
&lt;p&gt;See &lt;code&gt;config/application.yml[.sample]&lt;/code&gt; where you have to configure&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;production_server&lt;/li&gt;
	&lt;li&gt;production_user&lt;/li&gt;
	&lt;li&gt;production_path&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Deploying steps:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Test your app &lt;code&gt;thor application:test_all&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Commit &lt;code&gt;git commit -am '....'&lt;/code&gt;&amp;#8217;&lt;/li&gt;
	&lt;li&gt;do &lt;code&gt;thor deploy:production [--force]&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The thor-task will then push your changes to &lt;code&gt;origin/master&lt;/code&gt; and will call &lt;code&gt;git pull; touch tmp/restart&lt;/code&gt; on your server.&lt;/p&gt;
&lt;p&gt;Installing your ssh-key on the server will make it easy. Otherwise you have to enter your server&amp;#8217;s password.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;USE&lt;/span&gt; &lt;span class="caps"&gt;WITHOUT&lt;/span&gt; &lt;span class="caps"&gt;ANY&lt;/span&gt; &lt;span class="caps"&gt;WARRANTY&lt;/span&gt;!&lt;/strong&gt;&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:22 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d4e8bf8e779892043000005</id>
    <published>2011-02-06T12:54:36+01:00</published>
    <updated>2011-12-31T02:32:22+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4e8bf8e779892043000005"/>
    <title>CSS for print, thor-task to restart workers</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d4e8bf8e779892043000005',2000);" onmouseover="showSideTab($('#posting_4d4e8bf8e779892043000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d4e8bf8e779892043000005"&gt;CSS for print, thor-task to restart workers&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d4e8bf8e779892043000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d4e8bf8e779892043000005/popup/PrintingPress.jpg?1296993272'); return false;"&gt;&lt;img alt="Printingpress" class="img-with-shadow" src="/system/cover_pictures/4d4e8bf8e779892043000005/medium/PrintingPress.jpg?1296993272" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;Two new features in this commit:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;There is a @print-section within the css now.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;thor deploy:restart&lt;/code&gt; will restart the background-workers.
	&lt;ul&gt;
		&lt;li&gt;&lt;code&gt;deploy:restart&lt;/code&gt; will automatically run on the server after &lt;code&gt;thor deploy:production&lt;/code&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
    <updated>2011-12-31 02:32:22 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d456bf5e7798923b100000e</id>
    <published>2011-01-30T14:47:33+01:00</published>
    <updated>2011-12-31T02:32:22+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d456bf5e7798923b100000e"/>
    <title>Module 'Blogable' redesigned as 'ContentItem'</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d456bf5e7798923b100000e',2000);" onmouseover="showSideTab($('#posting_4d456bf5e7798923b100000e'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d456bf5e7798923b100000e"&gt;Module 'Blogable' redesigned as 'ContentItem'&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d456bf5e7798923b100000e' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d456bf5e7798923b100000e/popup/cba%20-%20Pivotal%20Tracker.jpg?1296395836'); return false;"&gt;&lt;img alt="Cba%20-%20pivotal%20tracker" class="img-with-shadow" src="/system/cover_pictures/4d456bf5e7798923b100000e/medium/cba%20-%20Pivotal%20Tracker.jpg?1296395836" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;The design of &lt;em&gt;Blogable&lt;/em&gt; was not satisfying and so I did implement it as &lt;em&gt;ContentItem&lt;/em&gt;.&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:22 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d4e9f85e779892232000040</id>
    <published>2011-02-06T14:17:58+01:00</published>
    <updated>2011-12-31T02:32:22+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4e9f85e779892232000040"/>
    <title>Development that doesn't hurt</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d4e9f85e779892232000040',2000);" onmouseover="showSideTab($('#posting_4d4e9f85e779892232000040'));"&gt;&lt;a href="/blogs/4d4dd674e7798975f900000e/postings/4d4e9f85e779892232000040"&gt;Development that doesn't hurt&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d4e9f85e779892232000040' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d4e9f85e779892232000040/popup/Screen%20shot%202011-02-06%20at%2014.16.56.png?1296998277'); return false;"&gt;&lt;img alt="Screen%20shot%202011-02-06%20at%2014.16.56" class="img-with-shadow" src="/system/cover_pictures/4d4e9f85e779892232000040/medium/Screen%20shot%202011-02-06%20at%2014.16.56.png?1296998277" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;Links to painless development&amp;#8230;&lt;/p&gt;
&lt;h3&gt;Ruby &amp;amp; Rails&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://rubyonrails.com"&gt;Ruby On Rails&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://railscasts.com"&gt;Railscasts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Environment&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://rvm.beginrescueend.com/"&gt;&lt;span class="caps"&gt;RVM&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://macromates.com/"&gt;Textmate&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Tools&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://rails-bestpractices.com/"&gt;Rails Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
    <updated>2011-12-31 02:32:22 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d4dd7f4e7798975f9000013</id>
    <published>2011-02-06T00:06:32+01:00</published>
    <updated>2011-12-31T02:32:22+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4dd7f4e7798975f9000013"/>
    <title>Best Music</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d4dd7f4e7798975f9000013',2000);" onmouseover="showSideTab($('#posting_4d4dd7f4e7798975f9000013'));"&gt;&lt;a href="/blogs/4d4dd674e7798975f900000e/postings/4d4dd7f4e7798975f9000013"&gt;Best Music&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d4dd7f4e7798975f9000013' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d4dd7f4e7798975f9000013/popup/DSC03042_filtered.jpg?1296947188'); return false;"&gt;&lt;img alt="Dsc03042_filtered" class="img-with-shadow" src="/system/cover_pictures/4d4dd7f4e7798975f9000013/medium/DSC03042_filtered.jpg?1296947188" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Visit &lt;a href="http://thesoundtheatre.com"&gt;TheSoundtheatre&lt;/a&gt; in Wels, Austria - It's always worth!&lt;/p&gt;

&lt;p&gt;Best music, best atmosphere, and good people.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We had 'Eric Burdon', 'Mother's Finest', 'The Syndicate', 'Purpendicular', 'LMT-Connection', 'Maceo Parker', 'Carolyn Wonderland', ....&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Find some videos at &lt;a href="http://iboard.cc/tag/thesoundtheatre"&gt;iBoard.cc/videos&lt;/a&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:22 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d4f3707e7798944fc000005</id>
    <published>2011-02-07T01:04:26+01:00</published>
    <updated>2011-12-31T02:32:22+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4f3707e7798944fc000005"/>
    <title>When code smells</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d4f3707e7798944fc000005',2000);" onmouseover="showSideTab($('#posting_4d4f3707e7798944fc000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d4f3707e7798944fc000005"&gt;When code smells&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d4f3707e7798944fc000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d4f3707e7798944fc000005/popup/PICT4097.JPG?1297037063'); return false;"&gt;&lt;img alt="Pict4097" class="img-with-shadow" src="/system/cover_pictures/4d4f3707e7798944fc000005/medium/PICT4097.JPG?1297037063" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;&lt;em&gt;Henry K.&lt;/em&gt; figured out that comments doesn&amp;#8217;t work with Win32.&lt;br /&gt;
And I ran in some kind of strange troubles when I tried to send notification-mails for new comments.&lt;/p&gt;
&lt;p&gt;Which means &amp;#8594; &lt;strong&gt;that code smells!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Next week, I will review and eventually redesign the &lt;em&gt;CommentsController&lt;/em&gt; and nesting of comments.&lt;/p&gt;
&lt;p&gt;Though, notifications will be sent to the server-admin, whenever one is creating a new posting or comment. &lt;em&gt;Obviously , in case of commenting a posting, the posting&amp;#8217;s owner should be notified instead of the server-admin&lt;/em&gt;&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:22 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d4d3b38e779894fb1000005</id>
    <published>2011-02-05T12:57:46+01:00</published>
    <updated>2011-12-31T02:32:22+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4d3b38e779894fb1000005"/>
    <title>Continuous loading reimplemented</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d4d3b38e779894fb1000005',2000);" onmouseover="showSideTab($('#posting_4d4d3b38e779894fb1000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d4d3b38e779894fb1000005"&gt;Continuous loading reimplemented&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d4d3b38e779894fb1000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d4d3b38e779894fb1000005/popup/PICT5456.JPG?1296907064'); return false;"&gt;&lt;img alt="Pict5456" class="img-with-shadow" src="/system/cover_pictures/4d4d3b38e779894fb1000005/medium/PICT5456.JPG?1296907064" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;As in &lt;a href="http://github.com/iboard/userbase"&gt;userbase&lt;/a&gt;, I’ve implemented &amp;#8216;continues loading&amp;#8217; of postings.&lt;/p&gt;
&lt;p&gt;You can configure the number of postings in &lt;code&gt;application.yml: paginate_postings_per_page&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If &lt;em&gt;javascript&lt;/em&gt; is disabled, standard &lt;em&gt;will-paginate&lt;/em&gt; will work. With &lt;em&gt;javascript&lt;/em&gt; enabled there is a &amp;#8216;load more&amp;#8217; button. Next, I will implement &amp;#8216;automatic loading&amp;#8217; when scrolling to the botton of the page.&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:22 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d52d895e779890e8b000005</id>
    <published>2011-02-09T19:10:29+01:00</published>
    <updated>2011-12-31T02:32:23+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d52d895e779890e8b000005"/>
    <title>Bundle update!!!!</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d52d895e779890e8b000005',2000);" onmouseover="showSideTab($('#posting_4d52d895e779890e8b000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d52d895e779890e8b000005"&gt;Bundle update!!!!&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d52d895e779890e8b000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d52d895e779890e8b000005/popup/PICT5884.jpg?1297275029'); return false;"&gt;&lt;img alt="Pict5884" class="img-with-shadow" src="/system/cover_pictures/4d52d895e779890e8b000005/medium/PICT5884.jpg?1297275029" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;If you&amp;#8217;re using &lt;span class="caps"&gt;CBA&lt;/span&gt; before and you pull from &lt;a href="http://github.com/iboard/CBA"&gt;GitHub&lt;/a&gt;, after February 9, 2011 you have to &amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;bundle update&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Notes:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;RedCloth &amp;#8212; edge doesn&amp;#8217;t work &amp;#8594; version set to 4.2.2&lt;sup class="footnote" id="fnr1"&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt; in &lt;code&gt;Gemfile&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;has_attached_file&lt;/code&gt; is obsolete with &lt;em&gt;mongoid&lt;/em&gt; and was replaced by &lt;code&gt;has_mongoid_attached_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="footnote" id="fn1"&gt;&lt;a href="#fnr1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; I will check which version is the highest working, and will update this later. At the moment I found 4.2.2 working and did not care about any further.&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:23 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d54e330e779897dfe000009</id>
    <published>2011-02-11T08:20:16+01:00</published>
    <updated>2011-12-31T02:32:23+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d54e330e779897dfe000009"/>
    <title>Local Layouts are 'pull-safe' now</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d54e330e779897dfe000009',2000);" onmouseover="showSideTab($('#posting_4d54e330e779897dfe000009'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d54e330e779897dfe000009"&gt;Local Layouts are 'pull-safe' now&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d54e330e779897dfe000009' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d54e330e779897dfe000009/popup/DSCN1247.jpg?1297408816'); return false;"&gt;&lt;img alt="Dscn1247" class="img-with-shadow" src="/system/cover_pictures/4d54e330e779897dfe000009/medium/DSCN1247.jpg?1297408816" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;&lt;code&gt;thor application:configure&lt;/code&gt; now supports local layouts.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;You&amp;#8217;ll be asked to enter a &lt;span class="caps"&gt;CSS&lt;/span&gt;- and layout-name.&lt;/li&gt;
	&lt;li&gt;Original application.css will be copied to &lt;em&gt;yourname&lt;/em&gt;.css&lt;/li&gt;
	&lt;li&gt;Original application.html.erb will be copied to &lt;em&gt;yourname&lt;/em&gt;.html.erb&lt;/li&gt;
	&lt;li&gt;New files will be appended to .gitignore&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, it&amp;#8217;s save to &lt;code&gt;git pull&lt;/code&gt; without losing your local layout.&lt;/p&gt;
&lt;p&gt;Have fun!&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:23 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d556a99e779891f45000005</id>
    <published>2011-02-11T17:58:04+01:00</published>
    <updated>2011-12-31T02:32:23+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d556a99e779891f45000005"/>
    <title>User Role Logic Changed!</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d556a99e779891f45000005',2000);" onmouseover="showSideTab($('#posting_4d556a99e779891f45000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d556a99e779891f45000005"&gt;User Role Logic Changed!&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d556a99e779891f45000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d556a99e779891f45000005/popup/PICT5540.JPG?1297443481'); return false;"&gt;&lt;img alt="Pict5540" class="img-with-shadow" src="/system/cover_pictures/4d556a99e779891f45000005/medium/PICT5540.JPG?1297443481" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;I&amp;#8217;ve changed the User-Role-Logic from &lt;strong&gt;mask&lt;/strong&gt; to &lt;strong&gt;integer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Before, &lt;code&gt;user_roles_mask&lt;/code&gt; was a bitmask.&lt;br /&gt;
Now, it&amp;#8217;s an integer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Old&lt;/strong&gt; &lt;code&gt;user.role?([:admin,:maintainer])&lt;/code&gt; returned true if the user was admin or maintainer. And, &lt;code&gt;user.role?(:maintainer)&lt;/code&gt; returned true only if the user had :maintainer checked.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;New&lt;/strong&gt; &lt;code&gt;user.role?(:maintainer)&lt;/code&gt; is true when the user is a maintainer or higher rated user.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ROLES = [:guest, :confirmed_user, :author, :moderator, :maintainer, :admin]&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;0=:guest and :guest only&lt;/li&gt;
	&lt;li&gt;1=:confirmed_user and :guest&lt;/li&gt;
	&lt;li&gt;2=:author and :confirmed_user, and :guest&lt;/li&gt;
	&lt;li&gt;&amp;#8230;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is much, much, much simpler in any aspect.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;ve a user-database already, please update thru the console.&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:23 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d4e6617e779891695000015</id>
    <published>2011-02-06T10:12:55+01:00</published>
    <updated>2011-12-31T02:32:24+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4e6617e779891695000015"/>
    <title>ooops -  Signup was broken</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d4e6617e779891695000015',2000);" onmouseover="showSideTab($('#posting_4d4e6617e779891695000015'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d4e6617e779891695000015"&gt;ooops -  Signup was broken&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d4e6617e779891695000015' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d4e6617e779891695000015/popup/PICT3040.jpg?1296983575'); return false;"&gt;&lt;img alt="Pict3040" class="img-with-shadow" src="/system/cover_pictures/4d4e6617e779891695000015/medium/PICT3040.jpg?1296983575" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;I just recognized that I&amp;#8217;ve configured a wrong &lt;code&gt;default_host&lt;/code&gt; in my server-settings.&lt;/p&gt;
&lt;p&gt;If you signed up to this server you&amp;#8217;ve received an email with confirmation-instructions with a link  to http://iboard.cc instead of http://&lt;strong&gt;cba&lt;/strong&gt;.iboard.cc.&lt;/p&gt;
&lt;p&gt;To fix this, just put the missing &lt;strong&gt;cba&lt;/strong&gt; infront of the &lt;span class="caps"&gt;URL&lt;/span&gt; and it will work.&lt;/p&gt;
&lt;p&gt;If you lost the confirmation-mail, you can request a new one &amp;#8594; &lt;a href="http://cba.iboard.cc/users/confirmation/new"&gt;here&lt;/a&gt;&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:24 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4ece9d5fdaf985263000000a</id>
    <published>2011-11-24T20:39:11+01:00</published>
    <updated>2011-12-31T02:32:24+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ece9d5fdaf985263000000a"/>
    <title>Restrict postings to your individual groups</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4ece9d5fdaf985263000000a',2000);" onmouseover="showSideTab($('#posting_4ece9d5fdaf985263000000a'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4ece9d5fdaf985263000000a"&gt;Restrict postings to your individual groups&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4ece9d5fdaf985263000000a' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4ece9d5fdaf985263000000a/popup/CBA_%20Edit%20Posting_%20News.jpg.jpg?1322163993'); return false;"&gt;&lt;img alt="Cba_%20edit%20posting_%20news.jpg" class="img-with-shadow" src="/system/cover_pictures/4ece9d5fdaf985263000000a/medium/CBA_%20Edit%20Posting_%20News.jpg.jpg?1322163993" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/iboard/CBA/commit/dde235a235b9c5adf69d7f119a3e57d603f6dea6"&gt;Latest version&lt;/a&gt; of CBA supports user groups and can restrict access to a posting to a defined user group.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Define your groups in your profile&lt;/li&gt;
&lt;li&gt;Enter 'Recipients' when editing a posting&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Only you and the members of the given groups will be able to access the posting.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Yes, I like Google's circle-idea ;-)&lt;/em&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:24 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e8df4f9daf98548ce006e6d</id>
    <published>2011-10-06T20:35:37+02:00</published>
    <updated>2011-12-31T02:32:24+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e8df4f9daf98548ce006e6d"/>
    <title>Tag-cloud implemented</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e8df4f9daf98548ce006e6d',2000);" onmouseover="showSideTab($('#posting_4e8df4f9daf98548ce006e6d'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e8df4f9daf98548ce006e6d"&gt;Tag-cloud implemented&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e8df4f9daf98548ce006e6d' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e8df4f9daf98548ce006e6d/popup/Screen%20Shot%202011-10-06%20at%2020.29.58.png?1317926137'); return false;"&gt;&lt;img alt="Screen%20shot%202011-10-06%20at%2020.29.58" class="img-with-shadow" src="/system/cover_pictures/4e8df4f9daf98548ce006e6d/medium/Screen%20Shot%202011-10-06%20at%2020.29.58.png?1317926137" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Today I've added tags to &lt;code&gt;Posting&lt;/code&gt;, using gem &lt;a href="https://github.com/wilkerlucio/mongoid_taggable"&gt;wilkerlucio / mongoid_taggable&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tags are implemented in &lt;code&gt;ContentItem&lt;/code&gt; and can be used in &lt;code&gt;Posting&lt;/code&gt; and &lt;code&gt;Page&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Seems to work great. CSS for the tag-cloud needs some fixes, though.&lt;/p&gt;

&lt;p&gt;Thank you &lt;a href="https://github.com/wilkerlucio"&gt;Wilker Lúcio&lt;/a&gt; for your gem.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:24 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d766ec7daf985443800001b</id>
    <published>2011-03-08T19:00:40+01:00</published>
    <updated>2011-12-31T02:32:24+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d766ec7daf985443800001b"/>
    <title>Comments reviewed once more</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d766ec7daf985443800001b',2000);" onmouseover="showSideTab($('#posting_4d766ec7daf985443800001b'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d766ec7daf985443800001b"&gt;Comments reviewed once more&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d766ec7daf985443800001b' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d766ec7daf985443800001b/popup/ink.jpg?1299607941'); return false;"&gt;&lt;img alt="Ink" class="img-with-shadow" src="/system/cover_pictures/4d766ec7daf985443800001b/medium/ink.jpg?1299607941" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Now there is a new view &lt;code&gt;/comments&lt;/code&gt; for moderators, maintainers, and admins. This view lists all comments and offers a delete-button to due easy removing spam-entries.&lt;/p&gt;

&lt;p&gt;I've done some more reviewing on the comment-model and added a 'root-resource' to access comments directly by their IDs without the context of their 'commendable'.&lt;/p&gt;

&lt;p&gt;Also, there are some reviewed and new cucumber-features to check the comments behavior.&lt;/p&gt;

&lt;p&gt;See &lt;a href="http://github.com/iboard/CBA/commit/f5c0c7d687534c653c5bc264186906ab2ee69d16"&gt;All changes on github&lt;/a&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:24 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e213f22daf985776e000021</id>
    <published>2011-07-16T09:34:58+02:00</published>
    <updated>2011-12-31T02:32:24+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e213f22daf985776e000021"/>
    <title>Welcome Google+</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e213f22daf985776e000021',2000);" onmouseover="showSideTab($('#posting_4e213f22daf985776e000021'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e213f22daf985776e000021"&gt;Welcome Google+&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e213f22daf985776e000021' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e213f22daf985776e000021/popup/Screen%20Shot%202011-07-16%20at%2009.31.54.png?1310801698'); return false;"&gt;&lt;img alt="Screen%20shot%202011-07-16%20at%2009.31.54" class="img-with-shadow" src="/system/cover_pictures/4e213f22daf985776e000021/medium/Screen%20Shot%202011-07-16%20at%2009.31.54.png?1310801698" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Google+&lt;/strong&gt; is here and if I wouldn't need my Facebook account for the API-key for OmniAuth(entication) I would properly deactivate my Facebook account now ;-)&lt;/p&gt;

&lt;p&gt;But ooops - CBA doesn't support Google-Logins. Time to add it!&lt;/p&gt;

&lt;h2&gt;Google Authentication was added to CBA (rails31 branch only)&lt;/h2&gt;

&lt;p&gt;There are some issues:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;URLs to long for webrick and unicorn in development-mode&lt;/li&gt;
&lt;li&gt;Adding other auth-services to an account with google-authentication works, though.&lt;/li&gt;
&lt;li&gt;But adding GoogleAuth to an account with existing auth-services doesn't work.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(1) &lt;strong&gt;works fine in production-mode with PhusionPassanger&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have no idea how to solve (1) but I will investigate to solve (3) &lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:24 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d6cb7b2daf985586d0000ec</id>
    <published>2011-03-01T10:09:07+01:00</published>
    <updated>2011-12-31T02:32:25+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d6cb7b2daf985586d0000ec"/>
    <title>Mac OS X 10.7 (Lion) and Dropbox</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d6cb7b2daf985586d0000ec',2000);" onmouseover="showSideTab($('#posting_4d6cb7b2daf985586d0000ec'));"&gt;&lt;a href="/blogs/4d4dd674e7798975f900000e/postings/4d6cb7b2daf985586d0000ec"&gt;Mac OS X 10.7 (Lion) and Dropbox&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d6cb7b2daf985586d0000ec' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d6cb7b2daf985586d0000ec/popup/Screen%20Shot%202011-03-01%20at%209.48.02%20AM.png?1298970546'); return false;"&gt;&lt;img alt="Screen%20shot%202011-03-01%20at%209.48.02%20am" class="img-with-shadow" src="/system/cover_pictures/4d6cb7b2daf985586d0000ec/medium/Screen%20Shot%202011-03-01%20at%209.48.02%20AM.png?1298970546" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;Living on the edge, I&amp;#8217;ve installed Mac OS X 10.7 on my MacBookPro. Tho&amp;#8217; it&amp;#8217;s a developer-version, it works fine. But one thing:  &lt;a href="https://www.dropbox.com/referrals/NTEyNTMyMDY3OQ?src=global0"&gt;Dropbox&lt;/a&gt; isn&amp;#8217;t working. &lt;br /&gt;
Fortunately I found a fantastic hint at: &lt;a href="http://forums.dropbox.com/topic.php?id=33706#post-294529"&gt;Dropbox Forum&lt;/a&gt; &lt;br /&gt;
Thank you, Filip S.!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I&amp;#8217;ve figured out a quick fix for this issue. Open Info.plist inside the application bundle, and change &amp;#8220;Bundle Version&amp;#8221; to 2.0 . Apparently Lion doesn&amp;#8217;t allow applications with low bundle versions to run for some reason.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Works perfect on my MacBook. Thanks again.&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:25 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d8329e1daf985328e000033</id>
    <published>2011-03-18T10:46:09+01:00</published>
    <updated>2011-12-31T02:32:25+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d8329e1daf985328e000033"/>
    <title>No more spam-comments</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d8329e1daf985328e000033',2000);" onmouseover="showSideTab($('#posting_4d8329e1daf985328e000033'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d8329e1daf985328e000033"&gt;No more spam-comments&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d8329e1daf985328e000033' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d8329e1daf985328e000033/popup/Screen%20Shot%202011-03-18%20at%2010.45.20.png?1300441569'); return false;"&gt;&lt;img alt="Screen%20shot%202011-03-18%20at%2010.45.20" class="img-with-shadow" src="/system/cover_pictures/4d8329e1daf985328e000033/medium/Screen%20Shot%202011-03-18%20at%2010.45.20.png?1300441569" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I just have added two flags to &lt;code&gt;Blog&lt;/code&gt; and &lt;code&gt;Page&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;allow_comments, :boolean, default =&amp;gt; true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;allow_public_comments, :boolean, default =&amp;gt; true&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;cba.iboard.cc suffers from spam-comments and now I can disallow comments for anonymous users.&lt;/p&gt;

&lt;p&gt;There is a rake-task&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;rake cab:set_comments_allowed_defaults
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;which sets &lt;code&gt;allow_comments: true&lt;/code&gt; but &lt;code&gt;allow_public_comments: false&lt;/code&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:25 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4edb3b04daf9852e1f000007</id>
    <published>2011-12-04T10:19:00+01:00</published>
    <updated>2011-12-31T02:32:25+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4edb3b04daf9852e1f000007"/>
    <title>Smooth Scrolling</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4edb3b04daf9852e1f000007',2000);" onmouseover="showSideTab($('#posting_4edb3b04daf9852e1f000007'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4edb3b04daf9852e1f000007"&gt;Smooth Scrolling&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4edb3b04daf9852e1f000007' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4edb3b04daf9852e1f000007/popup/Screen%20Shot%202011-12-04%20at%2010.17.22.png?1322990340'); return false;"&gt;&lt;img alt="Screen%20shot%202011-12-04%20at%2010.17.22" class="img-with-shadow" src="/system/cover_pictures/4edb3b04daf9852e1f000007/medium/Screen%20Shot%202011-12-04%20at%2010.17.22.png?1322990340" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;The "Scroll To Top"-button of CBA now scrolls &lt;em&gt;smoothly&lt;/em&gt; to the top of the page&lt;/p&gt;

&lt;p&gt;&lt;video controls="controls" src="/system/files/4edb3b04daf9852e1f000008/original/smooth_scrolling.m4v?1322990340"&gt;&lt;/video&gt;&lt;/p&gt;

&lt;p&gt;It's simple with &lt;a href="http://api.jquery.com/scrollTop/"&gt;jQuery&lt;/a&gt;. See &lt;a href="https://github.com/iboard/CBA/commit/7f831d27c7aeea67660403f7d15cd0f23477799b"&gt;this commit&lt;/a&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:25 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4edcba6ddaf9851728000008</id>
    <published>2011-12-05T13:34:53+01:00</published>
    <updated>2011-12-31T02:32:25+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4edcba6ddaf9851728000008"/>
    <title>Get rid of prototype.js</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4edcba6ddaf9851728000008',2000);" onmouseover="showSideTab($('#posting_4edcba6ddaf9851728000008'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4edcba6ddaf9851728000008"&gt;Get rid of prototype.js&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4edcba6ddaf9851728000008' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4edcba6ddaf9851728000008/popup/Screen%20Shot%202011-06-20%20at%2010.16.55.png?1323090039'); return false;"&gt;&lt;img alt="Screen%20shot%202011-06-20%20at%2010.16.55" class="img-with-shadow" src="/system/cover_pictures/4edcba6ddaf9851728000008/medium/Screen%20Shot%202011-06-20%20at%2010.16.55.png?1323090039" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Today (a bit late) CBA get rid of &lt;em&gt;prototype.js&lt;/em&gt; by replacing the last bit of code using it by &lt;em&gt;jcrop&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/f474b7e1495c85343f67918b29d546df784862ff"&gt;See commit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://deepliquid.com/content/Jcrop.html"&gt;jCrop&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Thank's to Ryan Bates for his &lt;a href="http://railscasts.com/episodes/182-cropping-images-revised"&gt;revised episode on Railscasts&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:25 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d67d13ce77989144b000009</id>
    <published>2011-02-25T16:56:44+01:00</published>
    <updated>2011-12-31T02:32:25+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d67d13ce77989144b000009"/>
    <title>Experimenting with Google-Custom-Search</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d67d13ce77989144b000009',2000);" onmouseover="showSideTab($('#posting_4d67d13ce77989144b000009'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d67d13ce77989144b000009"&gt;Experimenting with Google-Custom-Search&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d67d13ce77989144b000009' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d67d13ce77989144b000009/popup/Google%20Custom%20Search%20-%20Site%20search%20and%20more.jpg?1298649404'); return false;"&gt;&lt;img alt="Google%20custom%20search%20-%20site%20search%20and%20more" class="img-with-shadow" src="/system/cover_pictures/4d67d13ce77989144b000009/medium/Google%20Custom%20Search%20-%20Site%20search%20and%20more.jpg?1298649404" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I just have created a &lt;em&gt;Google Custom Search&lt;/em&gt; for my web sites.&lt;/p&gt;

&lt;p&gt;If you want to use &lt;strong&gt;CBA&lt;/strong&gt; with &lt;strong&gt;Google-Search&lt;/strong&gt; enabled, follow this steps&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sign up your &lt;a href="http://www.google.com/cse/"&gt;Google-Search-Account&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Create a file &lt;code&gt;config/google_site_search.html&lt;/code&gt; and paste the code you got from &lt;strong&gt;Google&lt;/strong&gt; into it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I'm still experimenting with &lt;strong&gt;Google Custom Search&lt;/strong&gt;, and I will post my experiences here.&lt;/p&gt;

&lt;h2&gt;Notices&lt;/h2&gt;

&lt;p&gt;If using CBA in a productive environment, please make sure the following changes fits your needs otherwise change this settings if required.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;robots.txt&lt;/code&gt; allows robot-access now&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;code&gt;rake cba:generate_sitemap&lt;/code&gt;&lt;/h2&gt;

&lt;p&gt;There is a new rake-task to generate a sitemap.xml, which will be used by &lt;strong&gt;googlebot&lt;/strong&gt;. To generate this file every eg 15 minutes you can define a cronjob in &lt;code&gt;/etc/cron.d/cba&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;15 * * * * rails [ -x /srv/rails/app/bin/generate_sitemaps ] &amp;amp;&amp;amp; /srv/rails/bin/generate_sitemaps&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;On my Debian-Box I've created the file &lt;code&gt;/srv/rails/bin/generate_sitemaps&lt;/code&gt;. Change this in your crontab.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;#!/bin/bash&lt;/code&gt;&lt;br&gt;&lt;code&gt;source /srv/rails/.profile&lt;/code&gt;&lt;br&gt;&lt;code&gt;export RAILS_ENV=production&lt;/code&gt;&lt;br&gt;&lt;code&gt;cd /srv/rails/app/cba&lt;/code&gt;&lt;br&gt;&lt;code&gt;rake cba:generate_sitemap&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Don't forget to &lt;code&gt;/etc/init.d/cron restart&lt;/code&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:25 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e634c6fdaf9855e1200003b</id>
    <published>2011-09-04T12:01:19+02:00</published>
    <updated>2011-12-31T02:32:26+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e634c6fdaf9855e1200003b"/>
    <title>Testing with Jasmine</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e634c6fdaf9855e1200003b',2000);" onmouseover="showSideTab($('#posting_4e634c6fdaf9855e1200003b'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e634c6fdaf9855e1200003b"&gt;Testing with Jasmine&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e634c6fdaf9855e1200003b' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e634c6fdaf9855e1200003b/popup/jasmine_logo.png?1315130479'); return false;"&gt;&lt;img alt="Jasmine_logo" class="img-with-shadow" src="/system/cover_pictures/4e634c6fdaf9855e1200003b/medium/jasmine_logo.png?1315130479" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;If you pull this &lt;a href="https://github.com/iboard/CBA/commit/d3cf8aff04bb309ebd5640cf3fe0a538cc6ff5de"&gt;CBA commit&lt;/a&gt; you'll find a version prepared to start with &lt;a href="http://pivotal.github.com/jasmine/"&gt;Jasmine&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This version doesn't fit my needs yet. It should be just a starter.&lt;/p&gt;

&lt;p&gt;However, to try it, you have to do:&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;bundle
&lt;span class="nv"&gt;RAILS_ENV&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;test &lt;/span&gt;rake assets:clean
&lt;span class="nv"&gt;RAILS_ENV&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;test &lt;/span&gt;rake assets:precompile
&lt;span class="nv"&gt;RAILS_ENV&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;test &lt;/span&gt;rake jasmine
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;And then visit &lt;a href="http://0.0.0.0:8888"&gt;URL 0.0.0.0:8888&lt;/a&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:26 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e57a4c5daf9853e7700000b</id>
    <published>2011-08-26T15:51:01+02:00</published>
    <updated>2011-12-31T02:32:26+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e57a4c5daf9853e7700000b"/>
    <title>Branch rails31 merged into master</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e57a4c5daf9853e7700000b',2000);" onmouseover="showSideTab($('#posting_4e57a4c5daf9853e7700000b'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e57a4c5daf9853e7700000b"&gt;Branch rails31 merged into master&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e57a4c5daf9853e7700000b' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e57a4c5daf9853e7700000b/popup/pool.jpg?1314366657'); return false;"&gt;&lt;img alt="Pool" class="img-with-shadow" src="/system/cover_pictures/4e57a4c5daf9853e7700000b/medium/pool.jpg?1314366657" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;CBA's branch &lt;em&gt;rails31&lt;/em&gt; is deprecated from now on. It is merged into &lt;a href="https://github.com/iboard/CBA"&gt;&lt;em&gt;master&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;All tests are fixed and green.&lt;/p&gt;

&lt;p&gt;If you pull from &lt;em&gt;Github&lt;/em&gt; make sure you &lt;code&gt;bundle update&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And now it's time for a fine summer weekend at the pool.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Have Fun!&lt;/em&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:26 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e5f0e4ddaf9854e3a000049</id>
    <published>2011-09-01T06:47:09+02:00</published>
    <updated>2011-12-31T02:32:26+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e5f0e4ddaf9854e3a000049"/>
    <title>Mr. Birthday</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e5f0e4ddaf9854e3a000049',2000);" onmouseover="showSideTab($('#posting_4e5f0e4ddaf9854e3a000049'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e5f0e4ddaf9854e3a000049"&gt;Mr. Birthday&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e5f0e4ddaf9854e3a000049' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e5f0e4ddaf9854e3a000049/popup/mrgeburtstag.png?1314852428'); return false;"&gt;&lt;img alt="Mrgeburtstag" class="img-with-shadow" src="/system/cover_pictures/4e5f0e4ddaf9854e3a000049/medium/mrgeburtstag.png?1314852428" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Yesterday, Aug 31th, was my 47th birthday. I got a lot of love and nice presents. One of it was &lt;em&gt;Rails 3.1 release&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;CBA's master moved to 3.1 release and is tested all green. &lt;/h2&gt;

&lt;p&gt;And there is a new feature: &lt;em&gt;Maintainers&lt;/em&gt; can edit &lt;code&gt;PageComponents&lt;/code&gt; inline. It's no longer necessary to edit an entire &lt;code&gt;Page&lt;/code&gt; to make changes in a single &lt;code&gt;PageComponent&lt;/code&gt; but you'll find an edit-link for each &lt;code&gt;PageComponent&lt;/code&gt;. Using it will open just this component in the "overlay-div". (The edit-button is visible for users with role &lt;code&gt;:maintainer&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Have Fun!&lt;/em&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:26 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e6669f3daf985201a000048</id>
    <published>2011-09-06T20:44:03+02:00</published>
    <updated>2011-12-31T02:32:27+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e6669f3daf985201a000048"/>
    <title>Using pow</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e6669f3daf985201a000048',2000);" onmouseover="showSideTab($('#posting_4e6669f3daf985201a000048'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e6669f3daf985201a000048"&gt;Using pow&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e6669f3daf985201a000048' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e6669f3daf985201a000048/popup/logo-pow.png?1315334955'); return false;"&gt;&lt;img alt="Logo-pow" class="img-with-shadow" src="/system/cover_pictures/4e6669f3daf985201a000048/medium/logo-pow.png?1315334955" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I discovered &lt;a href="http://pow.cx/"&gt;POW&lt;/a&gt; and installed it on my macBook. Painless and simple.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install POW like &lt;a href="http://pow.cx/"&gt;POW homepage&lt;/a&gt; guides you.&lt;/li&gt;
&lt;li&gt;If you're using .rvm do: &lt;code&gt;rvm --rvmrc --create 1.9.2-p180@r31&lt;/code&gt; in your project's root directory.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;ad2) Replace '1.9.2-p180@r31' by the rvm-environment you're using for development.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;POW&lt;/strong&gt; allows you to access your local development application at http://APPNAME.dev. So, get rid of &lt;a href="http://0.0.0.0:3000"&gt;http://0.0.0.0:3000&lt;/a&gt; the easy way.&lt;/p&gt;

&lt;p&gt;Links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://pow.cx"&gt;POW Homepage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://37signals.com/svn/posts/2998-setting-up-a-new-machine-for-ruby-development"&gt;Article by 37signals&lt;/a&gt; which inspired me. Thx!&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2011-12-31 02:32:27 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e663a6fdaf9855e12003dbf</id>
    <published>2011-09-06T17:21:19+02:00</published>
    <updated>2011-12-31T02:32:27+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e663a6fdaf9855e12003dbf"/>
    <title>Using issues on github</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e663a6fdaf9855e12003dbf',2000);" onmouseover="showSideTab($('#posting_4e663a6fdaf9855e12003dbf'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e663a6fdaf9855e12003dbf"&gt;Using issues on github&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e663a6fdaf9855e12003dbf' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e663a6fdaf9855e12003dbf/popup/Screen%20Shot%202011-09-06%20at%2017.20.57.png?1315322479'); return false;"&gt;&lt;img alt="Screen%20shot%202011-09-06%20at%2017.20.57" class="img-with-shadow" src="/system/cover_pictures/4e663a6fdaf9855e12003dbf/medium/Screen%20Shot%202011-09-06%20at%2017.20.57.png?1315322479" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I just started to use &lt;a href="https://github.com/iboard/CBA/issues"&gt;"Issues at Github"&lt;/a&gt; to track bugs and other issues of CBA.&lt;/p&gt;

&lt;p&gt;Feel free to post your pains.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:27 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e6e13b0daf9855574000018</id>
    <published>2011-09-12T16:14:08+02:00</published>
    <updated>2011-12-31T02:32:27+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e6e13b0daf9855574000018"/>
    <title>CSS &amp; Layout cleaned up</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e6e13b0daf9855574000018',2000);" onmouseover="showSideTab($('#posting_4e6e13b0daf9855574000018'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e6e13b0daf9855574000018"&gt;CSS &amp;amp; Layout cleaned up&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e6e13b0daf9855574000018' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e6e13b0daf9855574000018/popup/brush.png?1315837279'); return false;"&gt;&lt;img alt="Brush" class="img-with-shadow" src="/system/cover_pictures/4e6e13b0daf9855574000018/medium/brush.png?1315837279" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;After implementing &lt;a href="http://cba.iboard.cc/blogs/4d456adae7798923b100000a/postings/4e689597daf98514de000024"&gt;CSS3-Buttons&lt;/a&gt;, I cleaned up CSS and application.html.erb a bit.&lt;/p&gt;

&lt;p&gt;Admin-buttons are displayed at the upper right corner of the main-content-div and there is a div-tag for :right_column.&lt;/p&gt;

&lt;p&gt;If you want to display buttons or other stuff from your views, use&lt;/p&gt;

&lt;h2&gt;Resource action buttons&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;:resource_actions&lt;/em&gt; will be displayed on the top of the right column.&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;  &lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="n"&gt;content_for&lt;/span&gt; &lt;span class="ss"&gt;:resource_actions&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="nt"&gt;%p&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;link_to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'edit'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;edit_something_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vi"&gt;@something&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="ss"&gt;:class&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'button edit'&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;h2&gt;Other stuff for the right column&lt;/h2&gt;

&lt;p&gt;Will be displayed below &lt;em&gt;:resource_actions&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;  &lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="n"&gt;content_for&lt;/span&gt; &lt;span class="ss"&gt;:right_column&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
   &lt;span class="nt"&gt;%div&lt;/span&gt;
     whatever you want
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2011-12-31 02:32:27 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e6498c9daf9855e12000765</id>
    <published>2011-09-05T11:39:21+02:00</published>
    <updated>2011-12-31T02:32:27+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e6498c9daf9855e12000765"/>
    <title>RSpec and Selenium</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e6498c9daf9855e12000765',2000);" onmouseover="showSideTab($('#posting_4e6498c9daf9855e12000765'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e6498c9daf9855e12000765"&gt;RSpec and Selenium&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e6498c9daf9855e12000765' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e6498c9daf9855e12000765/popup/Test-driven_development.PNG?1315215561'); return false;"&gt;&lt;img alt="Test-driven_development" class="img-with-shadow" src="/system/cover_pictures/4e6498c9daf9855e12000765/medium/Test-driven_development.PNG?1315215561" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Latest version of CBA is prepared to use RSpec and test Javascripts.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;See this &lt;a href="https://github.com/iboard/CBA/commit/02967c7b9f14aac4c08c40fbea7aa2001745e3e1"&gt;Commit on Github&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Instead of using &lt;code&gt;thor application:test_all&lt;/code&gt; you may run &lt;em&gt;rake&lt;/em&gt; without any parameters now, to test everything, including the new Rspec tests.&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;rake
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;To run the specs only, do&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;rake spec:requests
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;I'd like to test the 'mouseover posting'-function which should popup a menu next the title of the posting. Unfortunately I ran into &lt;code&gt;Capybara::NotSupportedByDriverError&lt;/code&gt;. No idea how to test this behavior yet :(&lt;/p&gt;

&lt;h2&gt;Example&lt;/h2&gt;

&lt;p&gt;In CBA any user with role :admin or :maintainer can edit &lt;em&gt;PageComponents&lt;/em&gt; inline, when viewing a &lt;em&gt;Page&lt;/em&gt;&lt;br&gt;
This feature gets tested in &lt;a href="https://github.com/iboard/CBA/commit/a4fe8250121a670c8fdbab42581a60e551b0dcb2#diff-7"&gt;spec/requests/edit_page_component_inline_spec.rb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run the test&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;rake spec:requests
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;edit_page_component_inline_spec.rb:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'spec_helper'&lt;/span&gt;

&lt;span class="n"&gt;describe&lt;/span&gt; &lt;span class="s2"&gt;"Test editing PageComponents (inline)"&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;

  &lt;span class="n"&gt;describe&lt;/span&gt; &lt;span class="s2"&gt;"PageComponent Edit Button"&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;

    &lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="s2"&gt;"renders form in overlay and submits via ajax"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:js&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;

      &lt;span class="c1"&gt;# Setup data&lt;/span&gt;
      &lt;span class="n"&gt;cleanup_database&lt;/span&gt;
      &lt;span class="n"&gt;create_default_userset&lt;/span&gt;
      &lt;span class="n"&gt;my_page&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;create_page_with_component&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="ss"&gt;:title&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'A page with one component'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="ss"&gt;:body&lt;/span&gt;  &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"The page's body"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="ss"&gt;:is_draft&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="ss"&gt;:page_component&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;:title&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'First Component'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:body&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'This is the origin component'&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;

      &lt;span class="c1"&gt;# Make sure we are on the expected page&lt;/span&gt;
      &lt;span class="n"&gt;log_in_as&lt;/span&gt; &lt;span class="s2"&gt;"admin@iboard.cc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'thisisnotsecret'&lt;/span&gt;
      &lt;span class="n"&gt;visit&lt;/span&gt; &lt;span class="n"&gt;page_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_page&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;should&lt;/span&gt; &lt;span class="n"&gt;have_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"A page with one component"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;should&lt;/span&gt; &lt;span class="n"&gt;have_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"This is the origin component"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

      &lt;span class="c1"&gt;# Click the Edit link and edit the component&lt;/span&gt;
      &lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'a'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:text&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Edit'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;click&lt;/span&gt;
      &lt;span class="n"&gt;fill_in&lt;/span&gt; &lt;span class="s2"&gt;"Title"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:with&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'A modified component'&lt;/span&gt;
      &lt;span class="n"&gt;fill_in&lt;/span&gt; &lt;span class="s2"&gt;"Body"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:with&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"This is a modified component"&lt;/span&gt;
      &lt;span class="n"&gt;click_on&lt;/span&gt; &lt;span class="s2"&gt;"Update component"&lt;/span&gt;

      &lt;span class="c1"&gt;# Make sure modification is displayed&lt;/span&gt;
      &lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;should&lt;/span&gt; &lt;span class="n"&gt;have_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"A modified component"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;should&lt;/span&gt; &lt;span class="n"&gt;have_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"This is a modified component"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;h2&gt;Configuration and Helpers&lt;/h2&gt;

&lt;p&gt;After you have installed RSpec with &lt;code&gt;rake rspec:install&lt;/code&gt; you'll find this file:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;spec/spec_helper.rb&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="c1"&gt;# This file is copied to spec/ when you run 'rails generate rspec:install'&lt;/span&gt;
&lt;span class="no"&gt;ENV&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"RAILS_ENV"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;||=&lt;/span&gt; &lt;span class="s1"&gt;'test'&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;expand_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"../../config/environment"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;__FILE__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'rspec/rails'&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'capybara/rspec'&lt;/span&gt;

&lt;span class="c1"&gt;# Requires supporting ruby files with custom matchers and macros, etc,&lt;/span&gt;
&lt;span class="c1"&gt;# in spec/support/ and its subdirectories.&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'spec_data_helper'&lt;/span&gt;

&lt;span class="no"&gt;Dir&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"spec/support/**/*.rb"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;].&lt;/span&gt;&lt;span class="n"&gt;each&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="no"&gt;RSpec&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;configure&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="c1"&gt;# == Mock Framework&lt;/span&gt;
  &lt;span class="c1"&gt;#&lt;/span&gt;
  &lt;span class="c1"&gt;# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:&lt;/span&gt;
  &lt;span class="c1"&gt;#&lt;/span&gt;
  &lt;span class="c1"&gt;# config.mock_with :mocha&lt;/span&gt;
  &lt;span class="c1"&gt;# config.mock_with :flexmock&lt;/span&gt;
  &lt;span class="c1"&gt;# config.mock_with :rr&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mock_with&lt;/span&gt; &lt;span class="ss"&gt;:rspec&lt;/span&gt;

  &lt;span class="c1"&gt;# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures&lt;/span&gt;
  &lt;span class="c1"&gt;#config.fixture_path = "#{::Rails.root}/spec/fixtures" # TURNED OF FOR MONGOID&lt;/span&gt;

  &lt;span class="c1"&gt;# If you're not using ActiveRecord, or you'd prefer not to run each of your&lt;/span&gt;
  &lt;span class="c1"&gt;# examples within a transaction, remove the following line or assign false&lt;/span&gt;
  &lt;span class="c1"&gt;# instead of true.&lt;/span&gt;
  &lt;span class="c1"&gt;#config.use_transactional_fixtures = true  # TURNED OF FOR MONGOID&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;include&lt;/span&gt; &lt;span class="no"&gt;SpecDataHelper&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;code&gt;require 'spec_data_helper'&lt;/code&gt; and &lt;code&gt;config.include SpecDataHelper&lt;/code&gt; ensures that you can access the helper-functions in your specs under &lt;code&gt;spec/requests/*rb&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="http://dav.iboard.cc/doc/cba/SpecDataHelper.html"&gt;SpecDataHelper&lt;/a&gt;&lt;/strong&gt; defines helper functions you should use as shortcuts in your specs. e.g.&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;.&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;.&lt;/span&gt;
&lt;span class="n"&gt;describe&lt;/span&gt; &lt;span class="s2"&gt;"Test editing PageComponents (inline)"&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="n"&gt;describe&lt;/span&gt; &lt;span class="s2"&gt;"PageComponent Edit Button"&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="s2"&gt;"renders form in overlay and submits via ajax"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:js&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="n"&gt;cleanup_database&lt;/span&gt;             &lt;span class="c1"&gt;# Helper which drops any collections to make sure we start with an empty database&lt;/span&gt;
      &lt;span class="n"&gt;create_default_userset&lt;/span&gt;      &lt;span class="c1"&gt;# Create a user for each role.&lt;/span&gt;
      &lt;span class="n"&gt;log_in_as&lt;/span&gt; &lt;span class="s2"&gt;"admin@iboard.cc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'thisisnotsecret'&lt;/span&gt; &lt;span class="c1"&gt;# visit the login-page and login with one of the users.&lt;/span&gt;
&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;.&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;.&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;br&gt;&lt;small&gt;&lt;a href="http://en.wikipedia.org/wiki/File:Test-driven_development.PNG"&gt;Picture source&lt;/a&gt; - the picture attached to this post was taken from &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;Wikipedia&lt;/a&gt;.&lt;br&gt;&lt;/small&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:27 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e692b1bdaf98514de000290</id>
    <published>2011-09-08T22:52:43+02:00</published>
    <updated>2011-12-31T02:32:27+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e692b1bdaf98514de000290"/>
    <title>Interpreter supports Youtube</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e692b1bdaf98514de000290',2000);" onmouseover="showSideTab($('#posting_4e692b1bdaf98514de000290'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e692b1bdaf98514de000290"&gt;Interpreter supports Youtube&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e692b1bdaf98514de000290' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e692b1bdaf98514de000290/popup/skitched-20110909-094850.jpg?1315554554'); return false;"&gt;&lt;img alt="Skitched-20110909-094850" class="img-with-shadow" src="/system/cover_pictures/4e692b1bdaf98514de000290/medium/skitched-20110909-094850.jpg?1315554554" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;CBA's interpreter supports two new tags you can use in &lt;code&gt;Posting&lt;/code&gt; and &lt;code&gt;Page&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;YOUTUBE : id&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Embed a single Youtube-Video. &lt;em&gt;id&lt;/em&gt; is something like &lt;code&gt;Ynp-_pvoNAk&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;YOUTUBE_PLAYLIST : id&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Embed a Youtube-Playlist. &lt;em&gt;id&lt;/em&gt; is something like &lt;code&gt;79963DC001C316A6&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://altendorfer.at/blogs/4dc03768daf98528ee00014f/postings/4e68d7f6daf98524ae000078"&gt;altendorfer.at&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2011-12-31 02:32:27 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e689597daf98514de000024</id>
    <published>2011-09-08T12:14:47+02:00</published>
    <updated>2011-12-31T02:32:27+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e689597daf98514de000024"/>
    <title>CSS3 Buttons</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e689597daf98514de000024',2000);" onmouseover="showSideTab($('#posting_4e689597daf98514de000024'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e689597daf98514de000024"&gt;CSS3 Buttons&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e689597daf98514de000024' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e689597daf98514de000024/popup/Screen%20Shot%202011-09-08%20at%2012.10.28.png?1315476886'); return false;"&gt;&lt;img alt="Screen%20shot%202011-09-08%20at%2012.10.28" class="img-with-shadow" src="/system/cover_pictures/4e689597daf98514de000024/medium/Screen%20Shot%202011-09-08%20at%2012.10.28.png?1315476886" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Felix found a nice solution for CSS3-buttons and we've implemented &lt;a href="http://www.red-team-design.com/just-another-awesome-css3-buttons"&gt;this awesome buttons by red-team&lt;/a&gt; in CBA.&lt;/p&gt;

&lt;p&gt;Thank you - &lt;a href="http://www.red-team-design.com"&gt;red-team&lt;/a&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:27 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e6f5d0adaf9851c33000024</id>
    <published>2011-09-13T15:39:22+02:00</published>
    <updated>2011-12-31T02:32:28+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e6f5d0adaf9851c33000024"/>
    <title>CBA: Show 'Pages' on the side bar of a blog</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e6f5d0adaf9851c33000024',2000);" onmouseover="showSideTab($('#posting_4e6f5d0adaf9851c33000024'));"&gt;&lt;a href="/blogs/4e6f5ca3daf9851c33000018/postings/4e6f5d0adaf9851c33000024"&gt;CBA: Show 'Pages' on the side bar of a blog&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e6f5d0adaf9851c33000024' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e6f5d0adaf9851c33000024/popup/CBA_%20Editing%20Blog.jpg?1315921161'); return false;"&gt;&lt;img alt="Cba_%20editing%20blog" class="img-with-shadow" src="/system/cover_pictures/4e6f5d0adaf9851c33000024/medium/CBA_%20Editing%20Blog.jpg?1315921161" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;To show particular pages on the right side bar of a blog. Check this pages when you're editing a blog, as shown in the picture.&lt;/p&gt;

&lt;p&gt;&lt;img alt="Cba_" src="/system/files/4e6f65e6daf9851c33001079/medium/CBA_.jpg?1315923429"&gt;&lt;br&gt;
Show particular pages together with &lt;em&gt;any&lt;/em&gt; blog.&lt;/p&gt;

&lt;p&gt;&lt;img alt="Cba_%20community%20base%20application%20welcome" src="/system/files/4e6f65e7daf9851c3300107a/medium/CBA_%20Community%20Base%20Application%20Welcome.jpg?1315923430"&gt;&lt;br&gt;
Show particular pages on the root-page.&lt;/p&gt;

&lt;p&gt;To put things to the right column, programmatically - please read &lt;a href="/blogs/4d456adae7798923b100000a/postings/4e6e13b0daf9855574000018"&gt;this posting&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You can click the attachments listed below to enlarge the screenshots&lt;/em&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:28 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e6f5f89daf9851c330000a1</id>
    <published>2011-09-13T15:50:01+02:00</published>
    <updated>2011-12-31T02:32:28+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e6f5f89daf9851c330000a1"/>
    <title>Bad bug drops pages unexpectedly</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e6f5f89daf9851c330000a1',2000);" onmouseover="showSideTab($('#posting_4e6f5f89daf9851c330000a1'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e6f5f89daf9851c330000a1"&gt;Bad bug drops pages unexpectedly&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e6f5f89daf9851c330000a1' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e6f5f89daf9851c330000a1/popup/CBA_%20Editing%20Blog.jpg?1315921800'); return false;"&gt;&lt;img alt="Cba_%20editing%20blog" class="img-with-shadow" src="/system/cover_pictures/4e6f5f89daf9851c330000a1/medium/CBA_%20Editing%20Blog.jpg?1315921800" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;&lt;strong&gt;If you're using CBA in production, pull the latest version immediately!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A bad bug was not covered by tests &lt;em&gt;blush&lt;/em&gt; and causes data-loss when editing a 'Blog'.&lt;/p&gt;

&lt;p&gt;If you edit a blog and then update, unchecked pages was deleted, when they should be unlinked only.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/iboard/CBA/commit/8e16d9db500979ce6af3c0aed5cee5364aa08b0c"&gt;This commit&lt;/a&gt; fixes this issue.&lt;/p&gt;

&lt;p&gt;First, I wrote the &lt;a href="https://github.com/iboard/CBA/commit/8e16d9db500979ce6af3c0aed5cee5364aa08b0c#diff-3"&gt;Tests&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And then I figured out the bad code:&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="c1"&gt;# In model blog.rb&lt;/span&gt;
&lt;span class="c1"&gt;#BAD# @pages_before = self.pages.all&lt;/span&gt;
&lt;span class="c1"&gt;#BAD# self.pages = Page.criteria.for_ids(tokens.split(','))&lt;/span&gt;
&lt;span class="c1"&gt;#Better:&lt;/span&gt;
  &lt;span class="vi"&gt;@pages_before&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pages&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;unscoped&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;all&lt;/span&gt;
  &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pages&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nullify&lt;/span&gt;
  &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pages&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;Page&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;criteria&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;for_ids&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tokens&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;all&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;And I've added a dependency option to model blog.rb and page.rb:&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="c1"&gt;#page.rb&lt;/span&gt;
  &lt;span class="n"&gt;has_and_belongs_to_many&lt;/span&gt; &lt;span class="ss"&gt;:blogs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dependent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="ss"&gt;:nullify&lt;/span&gt;
&lt;span class="c1"&gt;#blog.rb&lt;/span&gt;
  &lt;span class="n"&gt;has_and_belongs_to_many&lt;/span&gt; &lt;span class="ss"&gt;:pages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dependent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="ss"&gt;:nullify&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2011-12-31 02:32:28 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e723736daf985567c000005</id>
    <published>2011-09-15T19:34:46+02:00</published>
    <updated>2011-12-31T02:32:28+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e723736daf985567c000005"/>
    <title>RSS Feed is back again</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e723736daf985567c000005',2000);" onmouseover="showSideTab($('#posting_4e723736daf985567c000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e723736daf985567c000005"&gt;RSS Feed is back again&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e723736daf985567c000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e723736daf985567c000005/popup/Screen%20Shot%202011-09-15%20at%2019.31.41.png?1316108085'); return false;"&gt;&lt;img alt="Screen%20shot%202011-09-15%20at%2019.31.41" class="img-with-shadow" src="/system/cover_pictures/4e723736daf985567c000005/medium/Screen%20Shot%202011-09-15%20at%2019.31.41.png?1316108085" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;The &lt;a href="/feed"&gt;feed.builder&lt;/a&gt; view did a 'concat' instead of output it's content as string. It was hard to write a test for this bug, because the content we expect is there, it's not formatted well, tho.&lt;/p&gt;

&lt;p&gt;See &lt;a href="https://github.com/iboard/CBA/commit/3cc8e285830054b0aafca8a1fbb03d3596214ce4"&gt;this commit&lt;/a&gt; how I did the test and fix.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:28 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e8aa68cdaf9856e4000007d</id>
    <published>2011-10-04T08:24:12+02:00</published>
    <updated>2011-12-31T02:32:29+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e8aa68cdaf9856e4000007d"/>
    <title>RailscastsPRO</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e8aa68cdaf9856e4000007d',2000);" onmouseover="showSideTab($('#posting_4e8aa68cdaf9856e4000007d'));"&gt;&lt;a href="/blogs/4d4dd674e7798975f900000e/postings/4e8aa68cdaf9856e4000007d"&gt;RailscastsPRO&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e8aa68cdaf9856e4000007d' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e8aa68cdaf9856e4000007d/popup/Screen%20Shot%202011-10-04%20at%2008.14.07.png?1317709451'); return false;"&gt;&lt;img alt="Screen%20shot%202011-10-04%20at%2008.14.07" class="img-with-shadow" src="/system/cover_pictures/4e8aa68cdaf9856e4000007d/medium/Screen%20Shot%202011-10-04%20at%2008.14.07.png?1317709451" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;&lt;a href="http://twitter.com/#!/rbates"&gt;Ryan Bates&lt;/a&gt;, famous for his Railscasts, announced &lt;a href="http://railscasts.com/pro"&gt;RailscastsPRO&lt;/a&gt; yesterday.&lt;/p&gt;

&lt;p&gt;The very first episode "Presenters" hits my needs perfectly. My  Achilles' heel named 'Views' and this episode remembers me to move code from views to presenters.&lt;/p&gt;

&lt;p&gt;I'm looking forward to see a lot of useful Railscasts with Railscast PRO.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:29 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e405441daf9850a4000000c</id>
    <published>2011-08-08T23:25:21+02:00</published>
    <updated>2011-12-31T02:32:29+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e405441daf9850a4000000c"/>
    <title>Fulltext search in CBA</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e405441daf9850a4000000c',2000);" onmouseover="showSideTab($('#posting_4e405441daf9850a4000000c'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e405441daf9850a4000000c"&gt;Fulltext search in CBA&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e405441daf9850a4000000c' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e405441daf9850a4000000c/popup/Screen%20Shot%202011-08-08%20at%2023.22.10.png?1312838721'); return false;"&gt;&lt;img alt="Screen%20shot%202011-08-08%20at%2023.22.10" class="img-with-shadow" src="/system/cover_pictures/4e405441daf9850a4000000c/medium/Screen%20Shot%202011-08-08%20at%2023.22.10.png?1312838721" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;CBA implements &lt;a href="https://github.com/aaw/mongoid_fulltext"&gt;fulltext_search&lt;/a&gt; to search in models Page and Posting.&lt;/p&gt;

&lt;p&gt;Please run&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;rake data:generate_fulltext_indeces
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;after installing this version. &lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;rake assets:precompile
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;may be necessary in production mode.&lt;/p&gt;

&lt;h2&gt;Source&lt;/h2&gt;

&lt;p&gt;See &lt;a href="https://github.com/iboard/CBA/commit/1ee86416c3f111c8b6f8bd916245ed4cc5d18d23"&gt;this commit&lt;/a&gt; how I did it.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:29 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e431660daf9850a40000f79</id>
    <published>2011-08-11T01:38:09+02:00</published>
    <updated>2011-12-31T02:32:29+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e431660daf9850a40000f79"/>
    <title>Sort using drag-n-drop</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e431660daf9850a40000f79',2000);" onmouseover="showSideTab($('#posting_4e431660daf9850a40000f79'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e431660daf9850a40000f79"&gt;Sort using drag-n-drop&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e431660daf9850a40000f79' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e431660daf9850a40000f79/popup/Screen%20Shot%202011-08-11%20at%2001.34.41.png?1313019488'); return false;"&gt;&lt;img alt="Screen%20shot%202011-08-11%20at%2001.34.41" class="img-with-shadow" src="/system/cover_pictures/4e431660daf9850a40000f79/medium/Screen%20Shot%202011-08-11%20at%2001.34.41.png?1313019488" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Today I proudly announce my first public gem at &lt;a href="https://rubygems.org/gems/jsort"&gt;Gemcutter.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using this gem you can setup an ordered list for drag-n-sort without a single line of Javascript-code.&lt;/p&gt;

&lt;p&gt;In CBA this gem is used to sort menus.&lt;/p&gt;

&lt;p&gt;Source is at &lt;a href="https://github.com/iboard/jsort"&gt;Github&lt;/a&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:29 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e8c2f86daf9857e410000c1</id>
    <published>2011-10-05T12:20:54+02:00</published>
    <updated>2011-12-31T02:32:29+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e8c2f86daf9857e410000c1"/>
    <title>Using Presenters in CBA</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e8c2f86daf9857e410000c1',2000);" onmouseover="showSideTab($('#posting_4e8c2f86daf9857e410000c1'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e8c2f86daf9857e410000c1"&gt;Using Presenters in CBA&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e8c2f86daf9857e410000c1' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e8c2f86daf9857e410000c1/popup/Screen%20Shot%202011-10-05%20at%2011.52.12.png?1317810053'); return false;"&gt;&lt;img alt="Screen%20shot%202011-10-05%20at%2011.52.12" class="img-with-shadow" src="/system/cover_pictures/4e8c2f86daf9857e410000c1/medium/Screen%20Shot%202011-10-05%20at%2011.52.12.png?1317810053" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;&lt;a href="http://altendorfer.at/blogs/4dc03768daf98528ee00014f/postings/4e8aa586daf9856e6c0000f2"&gt;Ryan Bates' first RailscastPRO&lt;/a&gt; is about 'Presenters'.&lt;/p&gt;

&lt;p&gt;I knew about the existence of &lt;em&gt;presenters&lt;/em&gt; but again, Ryan gave me the missing hint that I should use more presenters ;-)&lt;/p&gt;

&lt;p&gt;See the picture (click it to enlarge) how many lines of code went from the view to the presenter, and how readable the view is now. &lt;/p&gt;

&lt;p&gt;@ryan: "I like this kind of refactoring too ;-)"&lt;/p&gt;

&lt;p&gt;To see all the changes take a look at &lt;a href="https://github.com/iboard/CBA/commit/42442cc25b4ab27b2a2f013d1430b209737fda78"&gt;this commit&lt;/a&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:29 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e398943daf9857402000047</id>
    <published>2011-08-03T19:45:39+02:00</published>
    <updated>2011-12-31T02:32:30+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e398943daf9857402000047"/>
    <title>First steps with coffeescript</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e398943daf9857402000047',2000);" onmouseover="showSideTab($('#posting_4e398943daf9857402000047'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e398943daf9857402000047"&gt;First steps with coffeescript&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e398943daf9857402000047' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e398943daf9857402000047/popup/Sidetabs-1.png?1312393539'); return false;"&gt;&lt;img alt="Sidetabs-1" class="img-with-shadow" src="/system/cover_pictures/4e398943daf9857402000047/medium/Sidetabs-1.png?1312393539" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;Take a look at &lt;a href="https://github.com/iboard/CBA/commits/rails31"&gt;Commits between 2011-07-30 and 2011-08-03&lt;/a&gt; and see how the side tab-context-menu for posting-headers is done.&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:30 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e2a76c8daf98557f4000005</id>
    <published>2011-07-23T09:22:48+02:00</published>
    <updated>2011-12-31T02:32:30+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e2a76c8daf98557f4000005"/>
    <title>OmniAuth / Twitter / SSL Error</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e2a76c8daf98557f4000005',2000);" onmouseover="showSideTab($('#posting_4e2a76c8daf98557f4000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e2a76c8daf98557f4000005"&gt;OmniAuth / Twitter / SSL Error&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e2a76c8daf98557f4000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e2a76c8daf98557f4000005/popup/Screen%20Shot%202011-07-23%20at%2018.03.56.png?1311437089'); return false;"&gt;&lt;img alt="Screen%20shot%202011-07-23%20at%2018.03.56" class="img-with-shadow" src="/system/cover_pictures/4e2a76c8daf98557f4000005/medium/Screen%20Shot%202011-07-23%20at%2018.03.56.png?1311437089" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;If OmniAuth and Twitter Login ends up in this error&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="no"&gt;OpenSSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SSLError&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;SSL_connect&lt;/span&gt; &lt;span class="n"&gt;returned&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="n"&gt;errno&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="no"&gt;SSLv3&lt;/span&gt; &lt;span class="n"&gt;read&lt;/span&gt; &lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="n"&gt;certificate&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;certificate&lt;/span&gt; &lt;span class="n"&gt;verify&lt;/span&gt; &lt;span class="n"&gt;failed&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;you can fix this in CBA's application-config. Add the following line to your file &lt;code&gt;config/omniauth_settings.rb&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;  &lt;span class="no"&gt;OpenSSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;VERIFY_PEER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;OpenSSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;VERIFY_NONE&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Sure, disabling SSL-Verification seems not to be the right solution and will open some security issues. This is a quick and dirty hack to bring up Twitter-Authentication again.&lt;/p&gt;

&lt;p&gt;I will investigate to find a suitable solution with verification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt; If you pull the latest version from branch &lt;code&gt;rails31&lt;/code&gt; you have to edit &lt;code&gt;config/omniauth_settings.rb&lt;/code&gt; and add this line.&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="no"&gt;OMNIAUTH_CAPATH&lt;/span&gt;           &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"/etc/ssl/certs"&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2011-12-31 02:32:30 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e0eda8fdaf9850155000079</id>
    <published>2011-07-02T10:45:03+02:00</published>
    <updated>2011-12-31T02:32:31+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0eda8fdaf9850155000079"/>
    <title>YARD on Mac OS X Lion Preview</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e0eda8fdaf9850155000079',2000);" onmouseover="showSideTab($('#posting_4e0eda8fdaf9850155000079'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e0eda8fdaf9850155000079"&gt;YARD on Mac OS X Lion Preview&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e0eda8fdaf9850155000079' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e0eda8fdaf9850155000079/popup/Screen%20Shot%202011-07-02%20at%2010.49.41.png?1309596675'); return false;"&gt;&lt;img alt="Screen%20shot%202011-07-02%20at%2010.49.41" class="img-with-shadow" src="/system/cover_pictures/4e0eda8fdaf9850155000079/medium/Screen%20Shot%202011-07-02%20at%2010.49.41.png?1309596675" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Last weeks, RDOC of CBA was provided with 'darkfish' because YARD didn't work on &lt;em&gt;Mac OS X Lion preview 3&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Now I figured out how to enable &lt;a href="http://yardoc.org/"&gt;YARD&lt;/a&gt; even on &lt;em&gt;Lion&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Install the yard gem in &lt;code&gt;Gemfile&lt;/code&gt; with this line in your Gemfile&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"yard"&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;and &lt;code&gt;bundle&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then edit &lt;code&gt;yard.rb&lt;/code&gt;. With my rvm-environment it´s at  &lt;code&gt;~/.rvm/ruby-1.9.2-p180@r309/gems/yard-0.7.2/lib/yard.rb:35&lt;/code&gt;. Change the path to fit your system.&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="c1"&gt;# Workarround for Lion Preview: Force CONTINUATIONS_SUPPORTED to false&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# Whether or not continuations are (properly) supported&lt;/span&gt;
&lt;span class="c1"&gt;#workarround# begin&lt;/span&gt;
&lt;span class="c1"&gt;#workarround# #  begin; require 'continuation'; rescue LoadError; end&lt;/span&gt;
&lt;span class="c1"&gt;#workarround# #  cc = callcc {|cc| cc }; cc.call if cc&lt;/span&gt;
&lt;span class="c1"&gt;#workarround# #  CONTINUATIONS_SUPPORTED = true&lt;/span&gt;
&lt;span class="c1"&gt;#workarround# #rescue Exception&lt;/span&gt;
  &lt;span class="no"&gt;CONTINUATIONS_SUPPORTED&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
&lt;span class="c1"&gt;#workarround# #end&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Then run:&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;  &lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$RAILS_ROOT&lt;/span&gt;
  yard
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;CBA's documentation is much prettier again: &lt;a href="http://dav.iboard.cc/doc/cba/_index.html"&gt;online at my dav-server&lt;/a&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:31 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e18d445daf985105500000a</id>
    <published>2011-07-10T00:20:54+02:00</published>
    <updated>2011-12-31T02:32:31+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e18d445daf985105500000a"/>
    <title>CBA is running with Rails 3.1.0.rc4 on this Debian-box</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e18d445daf985105500000a',2000);" onmouseover="showSideTab($('#posting_4e18d445daf985105500000a'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e18d445daf985105500000a"&gt;CBA is running with Rails 3.1.0.rc4 on this Debian-box&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e18d445daf985105500000a' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e18d445daf985105500000a/popup/PICT3210.png?1310250053'); return false;"&gt;&lt;img alt="Pict3210" class="img-with-shadow" src="/system/cover_pictures/4e18d445daf985105500000a/medium/PICT3210.png?1310250053" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;There are some minor issues, I couldn't fix for now but CBA is running on this Debian-box with Rails 3.1.&lt;/p&gt;

&lt;p&gt;On Mac OS X all tests are green where on this Debian I need to use 2 extra gems &lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'therubyracer'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'execjs'&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;The icons for OmniAuth are not available in 'assets/....'. I'll try to fix this tomorrow. But I'm glad CBA is running here on 3.1.&lt;/p&gt;

&lt;h2&gt;Asset issues&lt;/h2&gt;

&lt;p&gt;I had to change paths to images in .js-files. See the following commits for details:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/d5101ce106bf015df4e477400fda00d2ac27701f"&gt;Fix path to close.gif and spinner.gif in .js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/444ca1fc3245ab64f9aa0c9a8a92e05c91e44de3"&gt;Fix path to spinner in js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/bc065763cad36148d40e759d9b8b30207fab9292"&gt;Fix missing.png path&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/bc065763cad36148d40e759d9b8b30207fab9292"&gt;Rails3.1 on Debian and OS X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/0f79af76098f0680527a9a66c8119e9509970131"&gt;Move avatars to assets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/iboard/CBA/commit/96b160de75a79acedd6c1753100ab64ccfce35f3"&gt;Rails 3.1 on debian&lt;/a&gt; &lt;em&gt;This seems to be a bug in Rails 3.1 when asset's file name contains numbers&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;SCSS&lt;/h1&gt;

&lt;p&gt;As you have noticed, the layout of CBA changed. This is because this version uses SCSS consequently. See &lt;code&gt;assets/stylesheets/&lt;/code&gt; for details.&lt;/p&gt;

&lt;p&gt;The big advantage of the new layout is that there is only one single line where a color is defined as &lt;code&gt;#ABCDEF&lt;/code&gt; and all other colors used are derived with &lt;code&gt;invert,lighten,darken($something,value)&lt;/code&gt;. So you can switch the entire layout from 'gray' to any color by just editing that single definition! &lt;a href="http://sass-lang.com/"&gt;I love SASS&lt;/a&gt;!&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:31 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e0b35b0daf9855c0600000b</id>
    <published>2011-06-29T16:24:49+02:00</published>
    <updated>2011-12-31T02:32:32+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0b35b0daf9855c0600000b"/>
    <title>rdiscount replaced by redcarpet</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e0b35b0daf9855c0600000b',2000);" onmouseover="showSideTab($('#posting_4e0b35b0daf9855c0600000b'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e0b35b0daf9855c0600000b"&gt;rdiscount replaced by redcarpet&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e0b35b0daf9855c0600000b' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e0b35b0daf9855c0600000b/popup/ryan_bates.png?1309358111'); return false;"&gt;&lt;img alt="Ryan_bates" class="img-with-shadow" src="/system/cover_pictures/4e0b35b0daf9855c0600000b/medium/ryan_bates.png?1309358111" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Thank You! &lt;a href="http://workingwithrails.com/person/6491-ryan-bates"&gt;&lt;em&gt;Ryan Bates&lt;/em&gt;&lt;/a&gt; for your latest &lt;a href="http://railscasts.com/episodes/272-markdown-with-redcarpet"&gt;RailsCast 'Markdown with redcarpet'&lt;/a&gt;. As always I couldn't resist to try this in my own project.&lt;/p&gt;

&lt;p&gt;CBA now switched from &lt;em&gt;rdiscount&lt;/em&gt; to &lt;a href="http://github.com/tanoku/redcarpet"&gt;&lt;em&gt;redcarpet&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New features are:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If a Posting or Page in CBA is set to be rendered with &lt;code&gt;Markdown&lt;/code&gt; it now uses &lt;em&gt;redcarpet&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;The choice of &lt;code&gt;Textile&lt;/code&gt;is still available&lt;/li&gt;
&lt;li&gt;Syntax highlighting was added for &lt;code&gt;body&lt;/code&gt; in &lt;code&gt;content_item.rb :: render_for_html&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Comments are now rendered with the same "Engine" as it's &lt;code&gt;commendable&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Updating&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;sudo easy_install pygments
git pull git://github.com/iboard/CBA.git
bundle
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;On debian-boxes&lt;/strong&gt; instead of &lt;em&gt;easy_install&lt;/em&gt; you may use:&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;apt-get install python-pygments
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Tested&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On OSX Lion Preview 4 and Debian&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:32 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e0ea90adaf9850155000013</id>
    <published>2011-07-02T07:13:47+02:00</published>
    <updated>2011-12-31T02:32:32+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0ea90adaf9850155000013"/>
    <title>MongoDB 1.8</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e0ea90adaf9850155000013',2000);" onmouseover="showSideTab($('#posting_4e0ea90adaf9850155000013'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e0ea90adaf9850155000013"&gt;MongoDB 1.8&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e0ea90adaf9850155000013' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e0ea90adaf9850155000013/popup/Screen%20Shot%202011-07-02%20at%2007.13.20.png?1309583626'); return false;"&gt;&lt;img alt="Screen%20shot%202011-07-02%20at%2007.13.20" class="img-with-shadow" src="/system/cover_pictures/4e0ea90adaf9850155000013/medium/Screen%20Shot%202011-07-02%20at%2007.13.20.png?1309583626" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I just upgraded from Mongo 1.6 to Mongo 1.8 on this Debian-Box. &lt;/p&gt;

&lt;p&gt;With absolutely no pain. Without reading one line of documentation. I did it as I thought it should work ... and it did.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download from &lt;a href="http://mongodb.org"&gt;MongoDB&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Untar&lt;/li&gt;
&lt;li&gt;Stop Mongodb&lt;/li&gt;
&lt;li&gt;Move the symbolic link from 1.6-path to the new 1.8-path&lt;/li&gt;
&lt;li&gt;Start Mongodb again&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That's how apps on linux should work. No installation at all. Copy files and use it. I love this.&lt;/p&gt;

&lt;p&gt;All CBA-Tests are green and actually writing this post took me more time  than upgrading mongodb.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:32 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e0af860daf9855d5f000084</id>
    <published>2011-06-29T12:03:12+02:00</published>
    <updated>2011-12-31T02:32:33+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0af860daf9855d5f000084"/>
    <title>We Are Green Again</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e0af860daf9855d5f000084',2000);" onmouseover="showSideTab($('#posting_4e0af860daf9855d5f000084'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e0af860daf9855d5f000084"&gt;We Are Green Again&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e0af860daf9855d5f000084' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e0af860daf9855d5f000084/popup/Screen%20Shot%202011-06-29%20at%2017.08.06.png?1309360731'); return false;"&gt;&lt;img alt="Screen%20shot%202011-06-29%20at%2017.08.06" class="img-with-shadow" src="/system/cover_pictures/4e0af860daf9855d5f000084/medium/Screen%20Shot%202011-06-29%20at%2017.08.06.png?1309360731" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;After updating to Rails 3.0.9, Cucumber 1.0.0 and Spork 0.9.0.rc8 some tests was broken.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/iboard/CBA/commit/10b4937df95e1ea4a3a4cdc81dcdf7d1eb6b50fb"&gt;This Commit&lt;/a&gt; fixes everything. But please notice &lt;a href="http://cba.iboard.cc/blogs/4d456adae7798923b100000a/postings/4e0ad6fcdaf9855d5f000068"&gt;this posting&lt;/a&gt; too. There are some things you have to do in the spork-gem, not in the CBA-source.&lt;/p&gt;

&lt;p&gt;On my machine I faced some UTF-8-Warnings during cucumber-tests. To get rid of them you may use the following workaround in &lt;code&gt;rack/utils.rb&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;Rack&lt;/span&gt;
  &lt;span class="c1"&gt;# Rack::Utils contains a grab-bag of useful methods for writing web&lt;/span&gt;
  &lt;span class="c1"&gt;# applications adopted from all kinds of Ruby libraries.&lt;/span&gt;

  &lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;Utils&lt;/span&gt;
    &lt;span class="c1"&gt;# Performs URI escaping so that you can construct proper&lt;/span&gt;
    &lt;span class="c1"&gt;# query strings faster.  Use this rather than the cgi.rb&lt;/span&gt;
    &lt;span class="c1"&gt;# version since it's faster.  (Stolen from Camping).&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;escape&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="n"&gt;original_verbosity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vg"&gt;$VERBOSE&lt;/span&gt;                 &lt;span class="c1"&gt;#### SAVE STATE&lt;/span&gt;
      &lt;span class="vg"&gt;$VERBOSE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;nil&lt;/span&gt;                                       &lt;span class="c1"&gt;#### TURN WARNINGS OFF&lt;/span&gt;
      &lt;span class="n"&gt;rc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gsub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/([^ a-zA-Z0-9_.-]+)/n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s1"&gt;'%'&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="vg"&gt;$1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;unpack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'H2'&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;bytesize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vg"&gt;$1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'%'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;upcase&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;' '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'+'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="vg"&gt;$VERBOSE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;original_verbosity&lt;/span&gt;                &lt;span class="c1"&gt;##### BACK TO ORIGINAL SETTINGS&lt;/span&gt;
      &lt;span class="n"&gt;rc&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="kp"&gt;module_function&lt;/span&gt; &lt;span class="ss"&gt;:escape&lt;/span&gt;

    &lt;span class="c1"&gt;# Unescapes a URI escaped string. (Stolen from Camping).&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;unescape&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="n"&gt;original_verbosity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vg"&gt;$VERBOSE&lt;/span&gt;               &lt;span class="c1"&gt;# SAME HERE&lt;/span&gt;
      &lt;span class="vg"&gt;$VERBOSE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;nil&lt;/span&gt;
      &lt;span class="n"&gt;rc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'+'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gsub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/((?:%[0-9a-fA-F]{2})+)/n&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
        &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="vg"&gt;$1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;delete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'%'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;].&lt;/span&gt;&lt;span class="n"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'H*'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="vg"&gt;$VERBOSE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;original_verbosity&lt;/span&gt;
      &lt;span class="n"&gt;rc&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2011-12-31 02:32:33 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e064198daf98569490000d6</id>
    <published>2011-06-25T22:14:19+02:00</published>
    <updated>2011-12-31T02:32:33+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e064198daf98569490000d6"/>
    <title>CBA branch for Rails 3.1</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e064198daf98569490000d6',2000);" onmouseover="showSideTab($('#posting_4e064198daf98569490000d6'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e064198daf98569490000d6"&gt;CBA branch for Rails 3.1&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e064198daf98569490000d6' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e064198daf98569490000d6/popup/photo.jpg?1309032856'); return false;"&gt;&lt;img alt="Photo" class="img-with-shadow" src="/system/cover_pictures/4e064198daf98569490000d6/medium/photo.jpg?1309032856" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I'm in the hospital because of an ear inflammation, getting antibiotics infusions. This is kinda boring and I had the idea to port CBA to Rails 3.1 instead of doing time. See -&amp;gt; &lt;a href="https://github.com/iboard/CBA/tree/rails31"&gt;Branch rails31&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="http://twitter.com/#!/davidjrice"&gt;@davidrice&lt;/a&gt;! Following his &lt;a href="http://davidjrice.co.uk/2011/05/25/how-to-upgrade-a-rails-application-to-version-3-1-0.html"&gt;instructions&lt;/a&gt; it was a matter of about 30 minutes to get all tests green.&lt;/p&gt;

&lt;p&gt;But fu* what shall I do tomorrow when even the cafeteria will be closed on Sunday :( Hopefully Formula-1 in Spain will make the day a bit exciting.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:33 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4de7696edaf985141d00004e</id>
    <published>2011-06-02T12:43:58+02:00</published>
    <updated>2011-12-31T02:32:34+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4de7696edaf985141d00004e"/>
    <title>Twitter Box</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4de7696edaf985141d00004e',2000);" onmouseover="showSideTab($('#posting_4de7696edaf985141d00004e'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4de7696edaf985141d00004e"&gt;Twitter Box&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4de7696edaf985141d00004e' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4de7696edaf985141d00004e/popup/Screen%20Shot%202011-06-02%20at%2012.33.06.png?1307011438'); return false;"&gt;&lt;img alt="Screen%20shot%202011-06-02%20at%2012.33.06" class="img-with-shadow" src="/system/cover_pictures/4de7696edaf985141d00004e/medium/Screen%20Shot%202011-06-02%20at%2012.33.06.png?1307011438" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;The new feature will display a "Twitter-Box" on the right sidebar of the CBA-Homepage.&lt;/p&gt;

&lt;h2&gt;Howto&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Grab your &lt;a href="http://twitter.com/about/resources"&gt;Twitter-Widget-code&lt;/a&gt; from the Twitter-Webpage.&lt;/li&gt;
&lt;li&gt;Store this code in &lt;code&gt;config/twitter.development.html&lt;/code&gt; and/or &lt;code&gt;config/twitter.production.html&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That's it.&lt;/p&gt;

&lt;h2&gt;Cucumber-feature&lt;/h2&gt;

&lt;p&gt;There are two new &lt;code&gt;web-steps&lt;/code&gt; for cucumber to create and delete files (&lt;code&gt;config/twitter.test.html&lt;/code&gt;) while running the features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: When using autotesting with 'Spork' it is necessary to delete the file at the end of the feature. Otherwise 'Spork' will recognize the changed timestamp of the file and will start over and over again ;-)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/4cd3fd5273c3d69a5c6027672e0a7be991976c7b"&gt;Code-Changes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/cbcc2edced1e30d2027f0773fc93b3098c67aad1#diff-1"&gt;New web-steps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2011-12-31 02:32:34 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4df1fe74daf985689700001b</id>
    <published>2011-06-10T13:22:28+02:00</published>
    <updated>2011-12-31T02:32:34+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4df1fe74daf985689700001b"/>
    <title>SiteMenu</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4df1fe74daf985689700001b',2000);" onmouseover="showSideTab($('#posting_4df1fe74daf985689700001b'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4df1fe74daf985689700001b"&gt;SiteMenu&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4df1fe74daf985689700001b' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4df1fe74daf985689700001b/popup/Screen%20Shot%202011-06-10%20at%2017.49.43.png?1307720999'); return false;"&gt;&lt;img alt="Screen%20shot%202011-06-10%20at%2017.49.43" class="img-with-shadow" src="/system/cover_pictures/4df1fe74daf985689700001b/medium/Screen%20Shot%202011-06-10%20at%2017.49.43.png?1307720999" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;New model &lt;code&gt;SiteMenu&lt;/code&gt; included today. &lt;a href="https://github.com/iboard/CBA/commit/41ccaddde7e2c08b2160119d8f810c6a10b620da"&gt;(See commit)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SiteMenu is a tree-model, defined as&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;   &lt;span class="ss"&gt;:name&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="c1"&gt;# The label&lt;/span&gt;
   &lt;span class="ss"&gt;:target&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="c1"&gt;# The URL&lt;/span&gt;
   &lt;span class="ss"&gt;:role_needed&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;integer&lt;/span&gt; &lt;span class="c1"&gt;# Current User must have at least&lt;/span&gt;
   &lt;span class="ss"&gt;:position&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;integer&lt;/span&gt; &lt;span class="c1"&gt;# the position of this item in the current node&lt;/span&gt;
   &lt;span class="ss"&gt;:children&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;There is a &lt;code&gt;SiteMenusHelper&lt;/code&gt; used in application-layout to display a sidebar for the currently selected root-menu.&lt;/p&gt;

&lt;p&gt;SiteMenu Model and ViewHelpers are tested with Unit- and Cucumber-tests.&lt;/p&gt;

&lt;p&gt;There is no interface to define the SiteMenu yet. Obviously an administration-interface is planed for the next future.&lt;/p&gt;

&lt;p&gt;You may use a rake task to create a standard menu from your pages.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;rake data:generate_standard_root_menu    # Generate standard root_menu&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <updated>2011-12-31 02:32:34 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4dfe2157daf9854fcc000005</id>
    <published>2011-06-19T18:18:31+02:00</published>
    <updated>2011-12-31T02:32:34+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4dfe2157daf9854fcc000005"/>
    <title>Site Menu Controller</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4dfe2157daf9854fcc000005',2000);" onmouseover="showSideTab($('#posting_4dfe2157daf9854fcc000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4dfe2157daf9854fcc000005"&gt;Site Menu Controller&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4dfe2157daf9854fcc000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4dfe2157daf9854fcc000005/popup/CBA_%20Manage%20Site%20Menus.jpg?1308500311'); return false;"&gt;&lt;img alt="Cba_%20manage%20site%20menus" class="img-with-shadow" src="/system/cover_pictures/4dfe2157daf9854fcc000005/medium/CBA_%20Manage%20Site%20Menus.jpg?1308500311" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;CBA now has a &lt;em&gt;SiteMenuController&lt;/em&gt; to give admins the opportunity to edit the SiteMenu through the web-interface instead of editing the database on the console.&lt;/p&gt;

&lt;p&gt;In today's release the views for editing site-menus are rather simple and rudimentary. Obviously this will be enhanced with a simpler drag-n-drop-sorting feature soon.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/d043a5e731f0ef96291183a62ba5c72f0cf65e55"&gt;RTFC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2011-12-31 02:32:34 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4dff020fdaf9850680000008</id>
    <published>2011-06-20T10:17:19+02:00</published>
    <updated>2011-12-31T02:32:34+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4dff020fdaf9850680000008"/>
    <title>Sitemenu sortable with drag and drop</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4dff020fdaf9850680000008',2000);" onmouseover="showSideTab($('#posting_4dff020fdaf9850680000008'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4dff020fdaf9850680000008"&gt;Sitemenu sortable with drag and drop&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4dff020fdaf9850680000008' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4dff020fdaf9850680000008/popup/Screen%20Shot%202011-06-20%20at%2010.16.55.png?1308557839'); return false;"&gt;&lt;img alt="Screen%20shot%202011-06-20%20at%2010.16.55" class="img-with-shadow" src="/system/cover_pictures/4dff020fdaf9850680000008/medium/Screen%20Shot%202011-06-20%20at%2010.16.55.png?1308557839" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;SiteMenus are now sortable with drag and drop using JQueryUI.sortable().&lt;/p&gt;

&lt;p&gt;See &lt;a href="https://github.com/iboard/CBA/commit/74aebb9b485b8dd28b3fbbbdfd6dad9c05677323"&gt;Commit&lt;/a&gt; to find out how this was done.&lt;/p&gt;

&lt;p&gt;Sorting SubItems in the tree still needs some fixes. After sorting Subitems it is necessary to reload the page in some cases. I'll fix this asap.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:34 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e004cdfdaf9854f2f000009</id>
    <published>2011-06-21T09:48:48+02:00</published>
    <updated>2011-12-31T02:32:34+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e004cdfdaf9854f2f000009"/>
    <title>Upgraded to Rails 3.0.9</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e004cdfdaf9854f2f000009',2000);" onmouseover="showSideTab($('#posting_4e004cdfdaf9854f2f000009'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e004cdfdaf9854f2f000009"&gt;Upgraded to Rails 3.0.9&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e004cdfdaf9854f2f000009' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e004cdfdaf9854f2f000009/popup/Screen%20Shot%202011-06-21%20at%2009.43.31.png?1308642527'); return false;"&gt;&lt;img alt="Screen%20shot%202011-06-21%20at%2009.43.31" class="img-with-shadow" src="/system/cover_pictures/4e004cdfdaf9854f2f000009/medium/Screen%20Shot%202011-06-21%20at%2009.43.31.png?1308642527" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I just upgraded from Rails 3.0.7 to Rails 3.0.9.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UTF-8-Encoding has to be forced in each file&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Model.paginate&lt;/code&gt; has to be replaced by &lt;code&gt;Model.all.paginate&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See &lt;a href="https://github.com/iboard/CBA/commit/75d69475f245fa27f10aa2497c635053cf67ac9d"&gt;this commit&lt;/a&gt; to see all changes.&lt;/p&gt;

&lt;p&gt;I did it like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;rvm gemset create r309&lt;/li&gt;
&lt;li&gt;rvm use 1.9.2@r309&lt;/li&gt;
&lt;li&gt;gem install rails&lt;/li&gt;
&lt;li&gt;bundle&lt;/li&gt;
&lt;/ol&gt;
</content>
    <updated>2011-12-31 02:32:34 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4dc5138fdaf985615f000034</id>
    <published>2011-05-07T11:40:32+02:00</published>
    <updated>2011-12-31T02:32:35+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4dc5138fdaf985615f000034"/>
    <title>Translator Module</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4dc5138fdaf985615f000034',2000);" onmouseover="showSideTab($('#posting_4dc5138fdaf985615f000034'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4dc5138fdaf985615f000034"&gt;Translator Module&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4dc5138fdaf985615f000034' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4dc5138fdaf985615f000034/popup/CBA_.jpg?1304761231'); return false;"&gt;&lt;img alt="Cba_" class="img-with-shadow" src="/system/cover_pictures/4dc5138fdaf985615f000034/medium/CBA_.jpg?1304761231" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Today I've implemented a new module named "Translator". &lt;/p&gt;

&lt;p&gt;With this Module you can define any Model to be translatable with just 2 lines of code in your model.rb&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;some_model.rb&lt;/code&gt;&lt;br&gt;&lt;code&gt;......&lt;/code&gt;&lt;br&gt;&lt;code&gt;include Translator&lt;/code&gt;&lt;br&gt;&lt;code&gt;translate_fields [:field_one, :field_two, ....]&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;and then you can access the translation of any field with&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;@some_model.t(:de,:field_one)&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;this will give you the German translation if one exists or *de*OriginalValue if not.&lt;/p&gt;

&lt;p&gt;To set the translated string of field_one, use&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;`@some_model.t(:de,:field_one, 'Eine Übersetzung')&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There is a layout-helper-method which will support you to include the proper input fields in views.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;translations_for_field( form_builder, field, field_type, *args, &amp;amp;block)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;See attached files for more details.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:35 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4dbff56cdaf98511c4000030</id>
    <published>2011-05-03T14:30:37+02:00</published>
    <updated>2011-12-31T02:32:35+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4dbff56cdaf98511c4000030"/>
    <title>New Feature - Pages shown with blogs</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4dbff56cdaf98511c4000030',2000);" onmouseover="showSideTab($('#posting_4dbff56cdaf98511c4000030'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4dbff56cdaf98511c4000030"&gt;New Feature - Pages shown with blogs&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4dbff56cdaf98511c4000030' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4dbff56cdaf98511c4000030/popup/CBA_%20Editing%20Blog.jpg?1304425836'); return false;"&gt;&lt;img alt="Cba_%20editing%20blog" class="img-with-shadow" src="/system/cover_pictures/4dbff56cdaf98511c4000030/medium/CBA_%20Editing%20Blog.jpg?1304425836" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;When editing a &lt;code&gt;Blog&lt;/code&gt; you can assign existing &lt;code&gt;Pages&lt;/code&gt; to this blog. Selected pages will then be displayed in the right side bar when rendering the blog.&lt;/p&gt;

&lt;h2&gt;The Idea&lt;/h2&gt;

&lt;p&gt;Items in the main-menu (&lt;em&gt;define in vies/home/menus/....&lt;/em&gt;) can route to Pages and/or Blogs. Most blogs will need some static information for new users. This information can now be provided in the side bar.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:35 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4dbfdbf5daf9850af3000014</id>
    <published>2011-05-03T12:41:57+02:00</published>
    <updated>2011-12-31T02:32:35+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4dbfdbf5daf9850af3000014"/>
    <title>CBA supports RSS-Feeds</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4dbfdbf5daf9850af3000014',2000);" onmouseover="showSideTab($('#posting_4dbfdbf5daf9850af3000014'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4dbfdbf5daf9850af3000014"&gt;CBA supports RSS-Feeds&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4dbfdbf5daf9850af3000014' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4dbfdbf5daf9850af3000014/popup/CBA%20-%20Community%20Base%20Application.jpg?1304419317'); return false;"&gt;&lt;img alt="Cba%20-%20community%20base%20application" class="img-with-shadow" src="/system/cover_pictures/4dbfdbf5daf9850af3000014/medium/CBA%20-%20Community%20Base%20Application.jpg?1304419317" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;h2&gt;RSS-Feed is back&lt;/h2&gt;

&lt;p&gt;I've just re-added builder-code from &lt;em&gt;userbase&lt;/em&gt; into this version of &lt;strong&gt;CBA&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;/feed.atom will build a feed of 'Pages', 'Postings', and their 'Comments'&lt;/p&gt;

&lt;h2&gt;ViewContext-Issue&lt;/h2&gt;

&lt;p&gt;When calling &lt;code&gt;posting.render_body(self)&lt;/code&gt; everything works fine and 'self' represents the Builder-view where model posting can render against.&lt;/p&gt;

&lt;p&gt;But when calling &lt;code&gt;page.render_body(self)&lt;/code&gt; self is something undefined. It's not 'nil' either it is any other thing?! At the moment there  is a workaround in rss_feed.builder until I will be able to figure out what's going on here.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:35 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4dc0f527daf985642b00001b</id>
    <published>2011-05-04T08:41:44+02:00</published>
    <updated>2011-12-31T02:32:35+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4dc0f527daf985642b00001b"/>
    <title>What's new in Baltimore?</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4dc0f527daf985642b00001b',2000);" onmouseover="showSideTab($('#posting_4dc0f527daf985642b00001b'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4dc0f527daf985642b00001b"&gt;What's new in Baltimore?&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4dc0f527daf985642b00001b' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4dc0f527daf985642b00001b/popup/Dashboard_%20RailsConf%202011%20-%20O_Reilly%20Conferences,%20May%2016%20-%2019,%202011,%20Baltimore,%20MD!.jpg?1304491303'); return false;"&gt;&lt;img alt="Dashboard_%20railsconf%202011%20-%20o_reilly%20conferences,%20may%2016%20-%2019,%202011,%20baltimore,%20md!" class="img-with-shadow" src="/system/cover_pictures/4dc0f527daf985642b00001b/medium/Dashboard_%20RailsConf%202011%20-%20O_Reilly%20Conferences,%20May%2016%20-%2019,%202011,%20Baltimore,%20MD!.jpg?1304491303" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Meet me in Baltimore @ the &lt;a href="http://en.oreilly.com/rails2011"&gt;RailsConf 2011&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was there last year and I'm looking forward to have a great time this year again.&lt;/p&gt;

&lt;p&gt;If you wanna meet me, just contact me at Twitter @nickendell&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:35 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4db40ceadaf9851890000019</id>
    <published>2011-04-24T13:43:39+02:00</published>
    <updated>2011-12-31T02:32:36+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4db40ceadaf9851890000019"/>
    <title>Start switching to HAML</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4db40ceadaf9851890000019',2000);" onmouseover="showSideTab($('#posting_4db40ceadaf9851890000019'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4db40ceadaf9851890000019"&gt;Start switching to HAML&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4db40ceadaf9851890000019' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4db40ceadaf9851890000019/popup/Screen%20Shot%202011-04-24%20at%2013.40.16.png?1303645418'); return false;"&gt;&lt;img alt="Screen%20shot%202011-04-24%20at%2013.40.16" class="img-with-shadow" src="/system/cover_pictures/4db40ceadaf9851890000019/medium/Screen%20Shot%202011-04-24%20at%2013.40.16.png?1303645418" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;User-views and invitation-view switched to &lt;a href="http://haml-lang.com/"&gt;&lt;em&gt;HAML&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All other html-views will follow step by step within the next weeks. Fortunately &lt;em&gt;haml&lt;/em&gt; and &lt;em&gt;erb&lt;/em&gt; can coexist in a project.&lt;/p&gt;

&lt;p&gt;I think &lt;em&gt;haml&lt;/em&gt; will force me to write cleaner views and it's much more readable than &lt;em&gt;html&lt;/em&gt; with &lt;em&gt;erb&lt;/em&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:36 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4db21c9adaf98543590000e7</id>
    <published>2011-04-23T02:26:02+02:00</published>
    <updated>2011-12-31T02:32:36+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4db21c9adaf98543590000e7"/>
    <title>Continuous testing with Spork</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4db21c9adaf98543590000e7',2000);" onmouseover="showSideTab($('#posting_4db21c9adaf98543590000e7'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4db21c9adaf98543590000e7"&gt;Continuous testing with Spork&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4db21c9adaf98543590000e7' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4db21c9adaf98543590000e7/popup/Screen%20Shot%202011-04-23%20at%2002.23.57.png?1303518362'); return false;"&gt;&lt;img alt="Screen%20shot%202011-04-23%20at%2002.23.57" class="img-with-shadow" src="/system/cover_pictures/4db21c9adaf98543590000e7/medium/Screen%20Shot%202011-04-23%20at%2002.23.57.png?1303518362" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Spork, cucumber, drb.rb, Mac OS X Lion preview 2 (w update)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slow testing is a reason to test less.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I live TDD for a year now and I learned to love it. But running the tests is some kind of boring. When searching for some extra speed I discovered &lt;em&gt;spork&lt;/em&gt; through the &lt;a href="http://bddcasts.com/series/tools/episodes/using-spork-to-speed-up-rspec-and-cucumber"&gt;BDDcast&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Great work! BTW&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Spork&lt;/em&gt; works just as shown in the screencast with my unit-tests but fails with a &lt;em&gt;Segementation fault&lt;/em&gt; in &lt;code&gt;drb.rb&lt;/code&gt; when it comes to &lt;em&gt;cucumber&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;After dig into some logs I figured out that there was a SegFault when calling &lt;code&gt;TCPServer&lt;/code&gt; and this smells to some leak with my &lt;em&gt;Mac OS X Developer Preview 2&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Here the steps which leads to success on my workstation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;rvm uninstall 1.9.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rvm install 1.9.2&lt;/code&gt;  (which should compile all native extensions with actual Lion-libraries)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;But compiling ruby1.9.2 failed because of a wrong link to the &lt;code&gt;libiconv.dynlib&lt;/code&gt;. To fix this ...&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;cd /usr/local/lib&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sudo mv libiconv.2.dylib __libiconv2.dynlib&lt;/code&gt; (just to be on the save side)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo ln -s ln -s $rvm_path/usr/lib/libiconv.2.dylib ./&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rvm install 1.9.2  -C --enable-shared&lt;/code&gt;  (now works)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bundle install&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And now everything works fine&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;AUTOFEATURE=true bundle exec spork cucumber&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AUTOFEATURE=true bundle exec autotest&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Start all at once with thor-task&lt;/h2&gt;

&lt;p&gt;In CBA's project path you can use &lt;code&gt;thor application:run_autotests&lt;/code&gt; to start the spork-server and autotest. The shortest way to jump into &lt;em&gt;continuos testing&lt;/em&gt;.&lt;br&gt;
Check out &lt;a href="http://github.com/iboard/CBA/blob/master/lib/tasks/test.thor"&gt;thor task @ github&lt;/a&gt; to see single steps necessary to bring up spork in the terminal&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:36 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d529af0e779897ecb000006</id>
    <published>2011-02-09T14:47:30+01:00</published>
    <updated>2011-12-31T02:32:37+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d529af0e779897ecb000006"/>
    <title>Bug Fixed</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d529af0e779897ecb000006',2000);" onmouseover="showSideTab($('#posting_4d529af0e779897ecb000006'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d529af0e779897ecb000006"&gt;Bug Fixed&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d529af0e779897ecb000006' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d529af0e779897ecb000006/popup/PICT3040.jpg?1297259408'); return false;"&gt;&lt;img alt="Pict3040" class="img-with-shadow" src="/system/cover_pictures/4d529af0e779897ecb000006/medium/PICT3040.jpg?1297259408" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;In partial &lt;code&gt;_form&lt;/code&gt; for edit page, I forgot to pass &lt;code&gt;@page&lt;/code&gt; as a &lt;code&gt;:local&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Even worser, I had no test-coverage for that :/&lt;/p&gt;
&lt;p&gt;This version fixes both. &amp;#8594; &lt;a href="https://github.com/iboard/CBA/commit/797931ccd089a62cd6c6dea93444b0015cd151f4"&gt;Commit@GitHub&lt;/a&gt;&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:37 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d64c604e779892bbf00001d</id>
    <published>2011-02-23T09:32:04+01:00</published>
    <updated>2011-12-31T02:32:37+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d64c604e779892bbf00001d"/>
    <title>rake delayed_jobs:work in background</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d64c604e779892bbf00001d',2000);" onmouseover="showSideTab($('#posting_4d64c604e779892bbf00001d'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d64c604e779892bbf00001d"&gt;rake delayed_jobs:work in background&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d64c604e779892bbf00001d' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d64c604e779892bbf00001d/popup/harddisc.jpg?1298450080'); return false;"&gt;&lt;img alt="Harddisc" class="img-with-shadow" src="/system/cover_pictures/4d64c604e779892bbf00001d/medium/harddisc.jpg?1298450080" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;h1&gt;On Linux-Servers&lt;/h1&gt;

&lt;h2&gt;Let &lt;code&gt;inittab&lt;/code&gt; take care about&lt;/h2&gt;

&lt;p&gt;Add the following line to your file &lt;code&gt;/etc/inittab&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;W1:23:respawn:/home/cba/bin/start_delayed_jobs_worker_cb&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Create the script &lt;code&gt;start_delayed_jobs_worker_cba&lt;/code&gt;
&lt;/h2&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
su - YOUR_RUNTIME_USER -c &lt;span class="s2"&gt;"/home/cba/bin/delayed_jobs_worker_cba"&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Make sure the file is executeable for &lt;em&gt;root&lt;/em&gt; (&lt;code&gt;chmod +x delayed_jobs_worker_cba&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;The script will change the user &lt;em&gt;YOUR_RUNTIME_USER&lt;/em&gt; - change this to your local user.&lt;/p&gt;

&lt;h2&gt;Finally create &lt;code&gt;delayed_jobs_worker_cba&lt;/code&gt;
&lt;/h2&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;/cba
&lt;span class="nv"&gt;RAILS_ENV&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;production rake delayed_jobs:work &amp;gt;&amp;gt; log/worker.log 2&amp;gt;&amp;amp;1
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;This will start the worker. (don't forget &lt;code&gt;chmod +x&lt;/code&gt;)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;init Q
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;init Q&lt;/em&gt; will start the script mentioned in &lt;code&gt;inittab&lt;/code&gt;. Watch &lt;code&gt;/etc/syslog&lt;/code&gt; to see if something went wrong.&lt;/p&gt;

&lt;h1&gt;Restart after code-changes&lt;/h1&gt;

&lt;p&gt;There is a &lt;em&gt;thor-task&lt;/em&gt; you can use to restart the application and background-jobs&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;    thor deploy:restart &lt;span class="o"&gt;[&lt;/span&gt;--worker_only&lt;span class="o"&gt;]&lt;/span&gt;  &lt;span class="c"&gt;# kill 'rake jobs:work' and 'touch tmp/restart.txt'&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2011-12-31 02:32:37 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4daec110daf985435900000d</id>
    <published>2011-04-20T13:18:41+02:00</published>
    <updated>2011-12-31T02:32:37+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4daec110daf985435900000d"/>
    <title>New model Invitation</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4daec110daf985435900000d',2000);" onmouseover="showSideTab($('#posting_4daec110daf985435900000d'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4daec110daf985435900000d"&gt;New model Invitation&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4daec110daf985435900000d' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4daec110daf985435900000d/popup/Screen%20Shot%202011-04-20%20at%2013.17.49.png?1303298350'); return false;"&gt;&lt;img alt="Screen%20shot%202011-04-20%20at%2013.17.49" class="img-with-shadow" src="/system/cover_pictures/4daec110daf985435900000d/medium/Screen%20Shot%202011-04-20%20at%2013.17.49.png?1303298350" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;In a WWEDU-project, I need a function where a user can invite others by sending an email.&lt;/p&gt;

&lt;p&gt;To due this, I've implemented a new model &lt;em&gt;Invitation&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Views, controller, and mailers will follow soon.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:37 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4ea1a4c8daf98515db000015</id>
    <published>2011-10-21T18:58:48+02:00</published>
    <updated>2011-12-31T02:32:38+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ea1a4c8daf98515db000015"/>
    <title>Tower</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4ea1a4c8daf98515db000015',2000);" onmouseover="showSideTab($('#posting_4ea1a4c8daf98515db000015'));"&gt;&lt;a href="/blogs/4d4dd674e7798975f900000e/postings/4ea1a4c8daf98515db000015"&gt;Tower&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4ea1a4c8daf98515db000015' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4ea1a4c8daf98515db000015/popup/Screen%20Shot%202011-10-21%20at%2018.54.52.png?1319216327'); return false;"&gt;&lt;img alt="Screen%20shot%202011-10-21%20at%2018.54.52" class="img-with-shadow" src="/system/cover_pictures/4ea1a4c8daf98515db000015/medium/Screen%20Shot%202011-10-21%20at%2018.54.52.png?1319216327" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I'm using &lt;a href="http://www.git-tower.com/"&gt;Git-Tower, by fournova&lt;/a&gt; simultaneously with git-command-line and &lt;a href="http://github.com"&gt;Github's Website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Git-Tower is the most comfortable way to do git, where the command-line still is unbeatable when it comes to speed ;-)&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:38 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4edb57d4daf9852e1f000667</id>
    <published>2011-12-04T12:21:56+01:00</published>
    <updated>2011-12-31T02:32:38+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4edb57d4daf9852e1f000667"/>
    <title>rdoc reviewed</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4edb57d4daf9852e1f000667',2000);" onmouseover="showSideTab($('#posting_4edb57d4daf9852e1f000667'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4edb57d4daf9852e1f000667"&gt;rdoc reviewed&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4edb57d4daf9852e1f000667' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4edb57d4daf9852e1f000667/popup/Screen%20Shot%202011-12-04%20at%2012.19.40.png?1322997716'); return false;"&gt;&lt;img alt="Screen%20shot%202011-12-04%20at%2012.19.40" class="img-with-shadow" src="/system/cover_pictures/4edb57d4daf9852e1f000667/medium/Screen%20Shot%202011-12-04%20at%2012.19.40.png?1322997716" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Today I reviewed the rdoc-remarks of Namespace '&lt;strong&gt;A&lt;/strong&gt;'&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://dav.iboard.cc/doc/cba/_index.html"&gt;Index A of API-doc&lt;/a&gt; is up to date ;-)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/a91adccd65ce2a82c500b41aec8ea04b3dcb66cd"&gt;Commit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2011-12-31 02:32:38 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d4dcbd4e7798970a7000005</id>
    <published>2011-02-05T23:14:46+01:00</published>
    <updated>2011-12-31T02:32:38+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4dcbd4e7798970a7000005"/>
    <title>HUD for pictures</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d4dcbd4e7798970a7000005',2000);" onmouseover="showSideTab($('#posting_4d4dcbd4e7798970a7000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d4dcbd4e7798970a7000005"&gt;HUD for pictures&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d4dcbd4e7798970a7000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d4dcbd4e7798970a7000005/popup/PICT0041.JPG?1297166838'); return false;"&gt;&lt;img alt="Pict0041" class="img-with-shadow" src="/system/cover_pictures/4d4dcbd4e7798970a7000005/medium/PICT0041.JPG?1297166838" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;Cover-pictures of &lt;code&gt;Blog&lt;/code&gt; and &lt;code&gt;Posting&lt;/code&gt; can be displayed in a &lt;span class="caps"&gt;HUD&lt;/span&gt; now.&lt;br /&gt;
Also, any &amp;#8216;Attachment&amp;#8217; of a posting of type /image/ can be displayed in a &lt;span class="caps"&gt;HUD&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;In addition there is a new rake-task, named &lt;code&gt;cba:reprocess_attachments&lt;/code&gt; to generate the &lt;code&gt;:popup&lt;/code&gt;-size of the attachment. One may use this rake-task whenever a new style was added to a &lt;em&gt;Paperclip-attachment&lt;/em&gt;&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:38 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d523c48e779896aa5000007</id>
    <published>2011-02-09T08:03:37+01:00</published>
    <updated>2011-12-31T02:32:38+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d523c48e779896aa5000007"/>
    <title>Rails Best Practices</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d523c48e779896aa5000007',2000);" onmouseover="showSideTab($('#posting_4d523c48e779896aa5000007'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d523c48e779896aa5000007"&gt;Rails Best Practices&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d523c48e779896aa5000007' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d523c48e779896aa5000007/popup/Screen%20shot%202011-02-09%20at%2007.53.36.png?1297235016'); return false;"&gt;&lt;img alt="Screen%20shot%202011-02-09%20at%2007.53.36" class="img-with-shadow" src="/system/cover_pictures/4d523c48e779896aa5000007/medium/Screen%20shot%202011-02-09%20at%2007.53.36.png?1297235016" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;Yesterday I discovered &lt;a href="http://rails-bestpractices.com/"&gt;rails_best_practices&lt;/a&gt;, which was mentioned in &lt;a href="http://railscasts.com/episodes/252-metrics-metrics-metrics"&gt;Ryan Bates&amp;#8217; Railscast #252&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This gem is really cool! When I ran it against the actual code of &lt;span class="caps"&gt;CBA&lt;/span&gt;, it mentioned 29 &amp;#8216;Errors&amp;#8217; and gave me detailed hints, where it would be worth to invest in some reviewing. And I did. Only two &amp;#8216;errors&amp;#8217; left (see Attachment). For this two things, I see no need to change it. I definitively want a 2-level nesting of comments, and I see no (sense-full) chance to make the method in the user-controller even shorter.&lt;/p&gt;
&lt;p&gt;From now on you will see the actual result for &lt;span class="caps"&gt;CBA&lt;/span&gt; &amp;#8594; &lt;a href="/rails_best_practices_output.html"&gt;here&lt;/a&gt;&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:38 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4edb7357daf9853882000037</id>
    <published>2011-12-04T14:19:19+01:00</published>
    <updated>2011-12-31T02:32:38+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4edb7357daf9853882000037"/>
    <title>Books</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4edb7357daf9853882000037',2000);" onmouseover="showSideTab($('#posting_4edb7357daf9853882000037'));"&gt;&lt;a href="/blogs/4d4dd674e7798975f900000e/postings/4edb7357daf9853882000037"&gt;Books&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4edb7357daf9853882000037' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4edb7357daf9853882000037/popup/books.jpg?1323004758'); return false;"&gt;&lt;img alt="Books" class="img-with-shadow" src="/system/cover_pictures/4edb7357daf9853882000037/medium/books.jpg?1323004758" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;h1&gt;I buy most of my eBooks at &lt;a href="http://pragprog.com/"&gt;The Pragmatic Bookshelf&lt;/a&gt;
&lt;/h1&gt;</content>
    <updated>2011-12-31 02:32:38 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d4a43f8e779892d51000006</id>
    <published>2011-02-03T06:58:16+01:00</published>
    <updated>2011-12-31T02:32:39+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4a43f8e779892d51000006"/>
    <title>Pages and Postings can have Attachments</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d4a43f8e779892d51000006',2000);" onmouseover="showSideTab($('#posting_4d4a43f8e779892d51000006'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d4a43f8e779892d51000006"&gt;Pages and Postings can have Attachments&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d4a43f8e779892d51000006' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d4a43f8e779892d51000006/popup/Screen%20shot%202011-02-03%20at%2006.57.41.png?1296712796'); return false;"&gt;&lt;img alt="Screen%20shot%202011-02-03%20at%2006.57.41" class="img-with-shadow" src="/system/cover_pictures/4d4a43f8e779892d51000006/medium/Screen%20shot%202011-02-03%20at%2006.57.41.png?1296712796" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Feb 3rd, 2011 | Models Page and Posting can have &lt;em&gt;Attachments&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;A new model 'Attachment' is embedded in 'Page' and 'Posting'.&lt;/p&gt;

&lt;p&gt;TODO: In the actual version you have to insert a few lines to the model and the views. This should be moved to a lib-module, so 'has_attachments' should work in any model. And there should be 'partials' for the views.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:39 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d58e4b6e779896035000005</id>
    <published>2011-02-14T09:15:54+01:00</published>
    <updated>2011-12-31T02:32:39+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d58e4b6e779896035000005"/>
    <title>Markdown and Textile supported</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d58e4b6e779896035000005',2000);" onmouseover="showSideTab($('#posting_4d58e4b6e779896035000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d58e4b6e779896035000005"&gt;Markdown and Textile supported&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d58e4b6e779896035000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d58e4b6e779896035000005/popup/PICT5436.JPG?1297671350'); return false;"&gt;&lt;img alt="Pict5436" class="img-with-shadow" src="/system/cover_pictures/4d58e4b6e779896035000005/medium/PICT5436.JPG?1297671350" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;This version of &lt;em&gt;CBA&lt;/em&gt; supports both &lt;strong&gt;markdown&lt;/strong&gt;, and &lt;strong&gt;textile&lt;/strong&gt;. Where &lt;em&gt;markdown&lt;/em&gt; is default.&lt;/p&gt;

&lt;p&gt;When updating to this version please follow this steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;bundle&lt;/li&gt;
&lt;li&gt;Set &lt;code&gt;:textile&lt;/code&gt; to your existing Pages, and Postings&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Update existing Pages and Postings, written with &lt;code&gt;:textile&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Use &lt;code&gt;rails console&lt;/code&gt; to update:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Page.all.each do |p|

  p.interpreter=:textile

  p.save

end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And for the blog-postings&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Blog.all.each do |b|
 b.postings.each do |p|
   p.interpreter=:textile
   p.save
 end
end
&lt;/code&gt;&lt;/pre&gt;
</content>
    <updated>2011-12-31 02:32:39 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d4d49cfe779895344000005</id>
    <published>2011-02-05T14:00:02+01:00</published>
    <updated>2011-12-31T02:32:39+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4d49cfe779895344000005"/>
    <title>Endless page implemented</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d4d49cfe779895344000005',2000);" onmouseover="showSideTab($('#posting_4d4d49cfe779895344000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d4d49cfe779895344000005"&gt;Endless page implemented&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d4d49cfe779895344000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d4d49cfe779895344000005/popup/PICT5520.JPG?1296910799'); return false;"&gt;&lt;img alt="Pict5520" class="img-with-shadow" src="/system/cover_pictures/4d4d49cfe779895344000005/medium/PICT5520.JPG?1296910799" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;On the root-page (where postings of blog &amp;#8216;news&amp;#8217; are shown), there is a &lt;em&gt;javascript&lt;/em&gt; now which will load the next page when the user scrolls to the end of the page.&lt;/p&gt;
&lt;p&gt;See: &lt;code&gt;public/javascripts/endless_page.js&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The script detects the &amp;#8216;EndOfPage-state&amp;#8217; and will click the &amp;#8216;load more-button&amp;#8217; automatically. That&amp;#8217;s all.&lt;/p&gt;
&lt;p&gt;I did this as explained in Ryan Bates&amp;#8217; &lt;a href="http://railscasts.com/episodes/114-endless-page"&gt;Railscast#114&lt;/a&gt; but adapted it for &amp;#8220;jQuery&amp;#8221;.&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:39 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d5091a1e779890f9e000005</id>
    <published>2011-02-08T01:43:16+01:00</published>
    <updated>2011-12-31T02:32:39+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d5091a1e779890f9e000005"/>
    <title>Smells well again</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d5091a1e779890f9e000005',2000);" onmouseover="showSideTab($('#posting_4d5091a1e779890f9e000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d5091a1e779890f9e000005"&gt;Smells well again&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d5091a1e779890f9e000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d5091a1e779890f9e000005/popup/PICT7090.JPG?1297125923'); return false;"&gt;&lt;img alt="Pict7090" class="img-with-shadow" src="/system/cover_pictures/4d5091a1e779890f9e000005/medium/PICT7090.JPG?1297125923" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;Today I reviewed and fixed &amp;#8230;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;New: when new comments are posted, notifications will be sent, to the owner of the Posting and the admin.&lt;/li&gt;
	&lt;li&gt;Associations of comments reviewed and &lt;strong&gt;fixed&lt;/strong&gt;.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;DelayedJobs&lt;/code&gt; can be delayed.&lt;/li&gt;
	&lt;li&gt;Failed jobs will be marked as failed an will not block the queue any longer.&lt;/li&gt;
	&lt;li&gt;New: &lt;code&gt;rake delayed_jobs:delete_failed_jobs&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Attachments validates the file size. See &lt;code&gt;application.yml[.sample]&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Attachments not saved in &lt;code&gt;CommentsController:create&lt;/code&gt; &amp;#8594; &lt;strong&gt;fixed&lt;/strong&gt;&lt;/li&gt;
	&lt;li&gt;Attachments are attached to the &amp;#8216;New Posting Notification&amp;#8217; &amp;#8211; &lt;strong&gt;fixed&lt;/strong&gt; (only the cover-pictures was attached before)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See all changes at &amp;#8594; &lt;a href="http://github.com/iboard/CBA/commit/db69698ce3a8a3e89a20671622f825414f680346"&gt;Github&lt;/a&gt;&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:39 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d4c353ee779891713000006</id>
    <published>2011-02-04T18:19:58+01:00</published>
    <updated>2011-12-31T02:32:39+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d4c353ee779891713000006"/>
    <title>Comments can be edited for 15 minutes</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d4c353ee779891713000006',2000);" onmouseover="showSideTab($('#posting_4d4c353ee779891713000006'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d4c353ee779891713000006"&gt;Comments can be edited for 15 minutes&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d4c353ee779891713000006' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d4c353ee779891713000006/popup/Shodou%20(Calligraphy).gif?1296839998'); return false;"&gt;&lt;img alt="Shodou%20(calligraphy)" class="img-with-shadow" src="/system/cover_pictures/4d4c353ee779891713000006/medium/Shodou%20(Calligraphy).gif?1296839998" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;Even guest users can post comments on pages and postings and may edit them within 15 minutes. This should give you a chance to correct typos or mistakes.&lt;/p&gt;
&lt;p&gt;After 15 minutes it should not be possible to edit comments because this will confuse other users when reading a thread which changes over time.&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:39 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d47aa56e779892065000007</id>
    <published>2011-02-01T07:38:14+01:00</published>
    <updated>2011-12-31T02:32:40+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d47aa56e779892065000007"/>
    <title>Multi-path CommentsController</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d47aa56e779892065000007',2000);" onmouseover="showSideTab($('#posting_4d47aa56e779892065000007'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d47aa56e779892065000007"&gt;Multi-path CommentsController&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d47aa56e779892065000007' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d47aa56e779892065000007/popup/Andi.jpg?1296542294'); return false;"&gt;&lt;img alt="Andi" class="img-with-shadow" src="/system/cover_pictures/4d47aa56e779892065000007/medium/Andi.jpg?1296542294" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;&lt;em&gt;CommentsController&lt;/em&gt; now works with different paths.&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;/page/:page_id/comments/:id&lt;/li&gt;
	&lt;li&gt;/blog/:blog_id/postings/:postings_id/comments/:id&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All with one single set of partials and without using &lt;code&gt;if ...&lt;/code&gt;&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:40 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d456c46e7798923b1000012</id>
    <published>2011-01-30T14:48:56+01:00</published>
    <updated>2011-12-31T02:32:40+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d456c46e7798923b1000012"/>
    <title>CBA now supports Blogs and Postings</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d456c46e7798923b1000012',2000);" onmouseover="showSideTab($('#posting_4d456c46e7798923b1000012'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d456c46e7798923b1000012"&gt;CBA now supports Blogs and Postings&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d456c46e7798923b1000012' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d456c46e7798923b1000012/popup/PICT5467_2.JPG?1296395334'); return false;"&gt;&lt;img alt="Pict5467_2" class="img-with-shadow" src="/system/cover_pictures/4d456c46e7798923b1000012/medium/PICT5467_2.JPG?1296395334" /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;p&gt;Jan 30th, 2011 | &lt;span class="caps"&gt;CBA&lt;/span&gt; now supports &lt;strong&gt;Blogs&lt;/strong&gt; and &lt;strong&gt;Postings&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If a blog is named &lt;strong&gt;News&lt;/strong&gt; it&amp;#8217;s postings will be displayed on the Home-page. You can configure the number of postings in &lt;code&gt;application.yml&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Only &lt;em&gt;registered users&lt;/em&gt; can create postings.&lt;/p&gt;
&lt;p&gt;Next todo: Of course, it should be possible to comment a posting.&lt;/p&gt;
&lt;h3&gt;Choose what you need&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;template.rb&lt;/code&gt; will ask you which of the resources (Pages, Blogs) you will use in your application.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;code&gt;template.rb&lt;/code&gt; is not finished yet and will not work with this version! There will be a posting as soon as installation from &lt;code&gt;template.rb&lt;/code&gt; will work.&lt;/p&gt;</content>
    <updated>2011-12-31 02:32:40 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e95bc25daf9850780000002</id>
    <published>2011-10-12T18:11:17+02:00</published>
    <updated>2011-12-31T02:32:41+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e95bc25daf9850780000002"/>
    <title>Added GeoLocation for user-model</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e95bc25daf9850780000002',2000);" onmouseover="showSideTab($('#posting_4e95bc25daf9850780000002'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e95bc25daf9850780000002"&gt;Added GeoLocation for user-model&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e95bc25daf9850780000002' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e95bc25daf9850780000002/popup/Screen%20Shot%202011-10-12%20at%2018.03.45.png?1318435877'); return false;"&gt;&lt;img alt="Screen%20shot%202011-10-12%20at%2018.03.45" class="img-with-shadow" src="/system/cover_pictures/4e95bc25daf9850780000002/medium/Screen%20Shot%202011-10-12%20at%2018.03.45.png?1318435877" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I was at #mongomunic on monday and one of the most impressive talks was by @coffepunk about GeoIndexing with MongoDB.&lt;/p&gt;

&lt;p&gt;So, I couldn't resist to try this within CBA.&lt;/p&gt;

&lt;p&gt;As Jörgen mentioned, it was really easy ;-) See &lt;a href="https://github.com/iboard/CBA/commit/1575406432d827c62959d3e30acfb054ff8187c6"&gt;this commit&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The bigger hack was to deal with the Google-API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attention&lt;/strong&gt; If you're running a CBA-Server and you pull this version, don't forget to add the following line to your file &lt;code&gt;config/omniauth_settings.rb&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;GOOGLE_PLACE_API_KEY      = 'not_used_for_v3'
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The value doesn't matter, tho, but the constant will be accessed in application.html.erb to support Google API v2 too.&lt;/p&gt;

&lt;p&gt;For now you have to enter longitude and latitude as values. Anyhow, the api to use Google-places will follow soon. Once this is done the user can enter his address or any other name of a place.&lt;/p&gt;

&lt;p&gt;@coffeepunk: You're right! It's fun and easy! :D &lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:41 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e980660daf9855e08000008</id>
    <published>2011-10-14T11:52:32+02:00</published>
    <updated>2011-12-31T02:32:41+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e980660daf9855e08000008"/>
    <title>Reverse GeoIndexing</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e980660daf9855e08000008',2000);" onmouseover="showSideTab($('#posting_4e980660daf9855e08000008'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e980660daf9855e08000008"&gt;Reverse GeoIndexing&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e980660daf9855e08000008' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e980660daf9855e08000008/popup/Screen%20Shot%202011-10-14%20at%2011.51.40.png?1318585951'); return false;"&gt;&lt;img alt="Screen%20shot%202011-10-14%20at%2011.51.40" class="img-with-shadow" src="/system/cover_pictures/4e980660daf9855e08000008/medium/Screen%20Shot%202011-10-14%20at%2011.51.40.png?1318585951" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;In the last version a user has to know the coordinates of her location to enter the value when editing her profile.&lt;/p&gt;

&lt;p&gt;Now I've added reverse-lookup and you can enter a place or address. Google-API will do the lookup and if an entry was found, it will update the preview-map.&lt;/p&gt;

&lt;p&gt;See &lt;a href="https://github.com/iboard/CBA/commit/ee01b0ae447165b134b51fab6b7b8fcc7ae23beb"&gt;this commit&lt;/a&gt; how this was done.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;On document-load: Initialize the map&lt;/li&gt;
&lt;li&gt;On keyUp in the location-field: Search by coordinates and update map&lt;/li&gt;
&lt;li&gt;On keyUp in field address: Search by address. If Google-API returns one place only, the zoom-level is set to 16 (close-up) otherwise it is set to 16-number of places found.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Have fun!&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:41 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e9db32edaf9851107000003</id>
    <published>2011-10-18T19:11:11+02:00</published>
    <updated>2011-12-31T02:32:41+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e9db32edaf9851107000003"/>
    <title>Interpreter supports Google-maps</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e9db32edaf9851107000003',2000);" onmouseover="showSideTab($('#posting_4e9db32edaf9851107000003'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e9db32edaf9851107000003"&gt;Interpreter supports Google-maps&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e9db32edaf9851107000003' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e9db32edaf9851107000003/popup/IMG_0442.jpg?1318959579'); return false;"&gt;&lt;img alt="Img_0442" class="img-with-shadow" src="/system/cover_pictures/4e9db32edaf9851107000003/medium/IMG_0442.jpg?1318959579" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;The interpreter of today's version of CBA supports Google-map-links within the text/body of 'Posting', 'Page', and 'PageComponent'&lt;/p&gt;

&lt;h1&gt;Example by place-name&lt;/h1&gt;

&lt;p&gt;The RailsConf 2010 and 2011 was at the Convention Center at &lt;strong&gt;&lt;a href="#" class="open-place"&gt;1 Pratt Street, Baltimore, MD, USA &lt;/a&gt;&lt;/strong&gt; and it was great!&lt;/p&gt;

&lt;p&gt;To generate a link like above, enter &lt;a href="#" class="open-place"&gt;"name of the place"&lt;/a&gt;, anywhere in your posting or page.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The RailsConf 2010 and 2011 was at the Convention Center in [ PLACE:1 Pratt Street, Baltimore, MD, USA ] and it and was great!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You may enter any 'Place' or 'Address' known by the Google-Places-API, like &lt;a href="#" class="open-place"&gt;Technisches Museum, Wien&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you'll use a PLACE-link, as an author of a posting or a page,  please notice: &lt;em&gt;if your place-name doesn't match any place or will find a ton of places, the map will stay blank or will take very long to load. If not sure, use maps.google.com to find a proper name.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;Example by location&lt;/h1&gt;

&lt;p&gt;To generate a link to a place defined by &lt;em&gt;latitude,longitude&lt;/em&gt;, enter [LOCATION:longitude,latitude], like here ...&lt;/p&gt;

&lt;p&gt;I had a funny afternoon-walk to The Frank Zappa Monument, which is located at &lt;strong&gt;&lt;a href='#' class='open-location'&gt;39.286481,-76.566949&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I had a funny afternoon-walk to The Frank Zappa Monument which is located at [ LOCATION:39.286481,-76.566949 ]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Google's satellite-picture and street-view seems to be outdated. No Zappa-Monument there :/ but I've attached the picture I took there. It was the birthday of the library, so it happened that Frank is wearing a birthday-hat :D&lt;/p&gt;

&lt;p&gt;Have fun!&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:41 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4ea131cddaf9857b07000007</id>
    <published>2011-10-21T10:48:13+02:00</published>
    <updated>2011-12-31T02:32:42+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ea131cddaf9857b07000007"/>
    <title>User-groups/Friends implemented</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4ea131cddaf9857b07000007',2000);" onmouseover="showSideTab($('#posting_4ea131cddaf9857b07000007'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4ea131cddaf9857b07000007"&gt;User-groups/Friends implemented&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4ea131cddaf9857b07000007' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4ea131cddaf9857b07000007/popup/CBA_%20Profile%20of%20Andreas%20Altendorfer.jpg?1319367528'); return false;"&gt;&lt;img alt="Cba_%20profile%20of%20andreas%20altendorfer" class="img-with-shadow" src="/system/cover_pictures/4ea131cddaf9857b07000007/medium/CBA_%20Profile%20of%20Andreas%20Altendorfer.jpg?1319367528" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I've added a new model 'UserGroup' which is embedded in User.&lt;/p&gt;

&lt;p&gt;A user can define several UserGroups and can add other users to this groups.&lt;/p&gt;

&lt;p&gt;At the moment this groups will not be used, just maintained. In one of the next updates you can use your user groups to grant access to your postings and pages.&lt;/p&gt;

&lt;p&gt;The plan: When writing a post you can address this post to individual users or several groups of your choice. Only this addressee will be able to read the post then. If you do not provide a list of recipients, the post will be public.&lt;/p&gt;

&lt;p&gt;See &lt;a href="https://github.com/iboard/CBA/commit/f7cdc39408493b3cc97d9a3c7c07a82e6d466ef2"&gt;this commit&lt;/a&gt; how UserGroup is implemented.&lt;/p&gt;

&lt;p&gt;As mentioned, the functionality to use this groups will follow soon.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:42 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4ea3f0c9daf9854169000010</id>
    <published>2011-10-23T12:47:37+02:00</published>
    <updated>2011-12-31T02:32:42+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ea3f0c9daf9854169000010"/>
    <title>jquery-ui for alerts and notes</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4ea3f0c9daf9854169000010',2000);" onmouseover="showSideTab($('#posting_4ea3f0c9daf9854169000010'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4ea3f0c9daf9854169000010"&gt;jquery-ui for alerts and notes&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4ea3f0c9daf9854169000010' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4ea3f0c9daf9854169000010/popup/Screen%20Shot%202011-06-20%20at%2010.16.55.png?1319367133'); return false;"&gt;&lt;img alt="Screen%20shot%202011-06-20%20at%2010.16.55" class="img-with-shadow" src="/system/cover_pictures/4ea3f0c9daf9854169000010/medium/Screen%20Shot%202011-06-20%20at%2010.16.55.png?1319367133" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;With &lt;a href="https://github.com/iboard/CBA/commit/d2e9b9d2d279c2266f54c86a8899432d28916092"&gt;this commit&lt;/a&gt; &lt;strong&gt;jquery-ui&lt;/strong&gt; is used for &lt;em&gt;alerts&lt;/em&gt;, &lt;em&gt;notices&lt;/em&gt;, and &lt;em&gt;user_notifications&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;Install your costumed &lt;a href="http://jqueryui.com/download/"&gt;jquery-ui theme&lt;/a&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Save current theme

&lt;ul&gt;
&lt;li&gt;vendor/assets/&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Generate and download your theme&lt;/li&gt;
&lt;li&gt;Execute some shell-commands&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="o"&gt;[&lt;/span&gt; -d vendor/assets/images &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; mkdir -p vendor/assets/images
&lt;span class="o"&gt;[&lt;/span&gt; -d vendor/assets/stylesheets &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; mkdir -p vendor/assets/stylesheets
cp ~Download/jquery-ui/css/custom-theme/images/* vendor/assets/images/
cp ~Download/jquery-ui/css/custom-theme/css/jquery-ui-1..... vendor/assets/stylesheets/jquery-ui.js
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;em&gt;adjust paths to fit your needs&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;#4. Edit &lt;code&gt;jquery-ui.css&lt;/code&gt; and replace &lt;code&gt;url(images/&lt;/code&gt; with &lt;code&gt;url(/assets/&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;Links&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://jqueryui.com/"&gt;jQuery-ui&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2011-12-31 02:32:42 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4ed4c523daf985726600019a</id>
    <published>2011-11-29T12:42:28+01:00</published>
    <updated>2011-12-31T02:32:42+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ed4c523daf985726600019a"/>
    <title>Facing troubles when running spork after Xcode update</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4ed4c523daf985726600019a',2000);" onmouseover="showSideTab($('#posting_4ed4c523daf985726600019a'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4ed4c523daf985726600019a"&gt;Facing troubles when running spork after Xcode update&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4ed4c523daf985726600019a' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4ed4c523daf985726600019a/popup/Screen%20Shot%202011-11-29%20at%2012.41.52.png?1322566947'); return false;"&gt;&lt;img alt="Screen%20shot%202011-11-29%20at%2012.41.52" class="img-with-shadow" src="/system/cover_pictures/4ed4c523daf985726600019a/medium/Screen%20Shot%202011-11-29%20at%2012.41.52.png?1322566947" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I did an update of Xcode and then, when I ran &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;spork &amp;amp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I got this error when running the first spec with&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;rspec --drb spec/*rb spec/requests/left_sidebar_spec.rb &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Error:&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;Preloading Rails environment
Loading Spork.prefork block...
Spork is ready and listening on 8989!
Running tests with args &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"--color"&lt;/span&gt;, &lt;span class="s2"&gt;"spec/spec_data_helper.rb"&lt;/span&gt;, &lt;span class="s2"&gt;"spec/spec_helper.rb"&lt;/span&gt;, &lt;span class="s2"&gt;"spec/requests/left_sidebar_spec.rb"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;...
Done.

Running tests with args &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"--color"&lt;/span&gt;, &lt;span class="s2"&gt;"spec/spec_data_helper.rb"&lt;/span&gt;, &lt;span class="s2"&gt;"spec/spec_helper.rb"&lt;/span&gt;, &lt;span class="s2"&gt;"spec/requests/left_sidebar_spec.rb"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;...
/Users/aa/.rvm/gems/ruby-1.9.2-p290@r31/gems/spork-0.9.0.rc9/lib/spork/forker.rb:50: &lt;span class="o"&gt;[&lt;/span&gt;BUG&lt;span class="o"&gt;]&lt;/span&gt; pthread_mutex_lock: Invalid argument &lt;span class="o"&gt;(&lt;/span&gt;EINVAL&lt;span class="o"&gt;)&lt;/span&gt;
ruby 1.9.2p290 &lt;span class="o"&gt;(&lt;/span&gt;2011-07-09 revision 32553&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;x86_64-darwin11.1.0&lt;span class="o"&gt;]&lt;/span&gt;

-- control frame ----------
c:0012 p:---- s:0046 b:0046 l:000045 d:000045 CFUNC  :raise
c:0011 p:0083 s:0042 b:0042 l:000da0 d:000da0 METHOD /Users/aa/.rvm/gems/ruby-1.9.2-p290@r31/gems/spork-0.9.0.rc9/lib/spork/forker.rb:50
c:0010 p:0055 s:0038 b:0038 l:0024e0 d:0024e0 METHOD /Users/aa/.rvm/gems/ruby-1.9.2-p290@r31/gems/spork-0.9.0.rc9/lib/spork/run_strategy/forking.rb:17
c:0009 p:0048 s:0032 b:0032 l:000031 d:000031 METHOD
....
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;To fix this, I did&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;rvm install 1.9.2-p290&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;which did a recompile of ruby using the new system-libraries.&lt;/p&gt;

&lt;p&gt;Start up spork again and running the specs, now worked well using spork.&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:42 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4ed60f41daf985700a000212</id>
    <published>2011-11-30T12:10:57+01:00</published>
    <updated>2011-12-31T02:32:43+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ed60f41daf985700a000212"/>
    <title>Fix interpreter and add support for videos</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4ed60f41daf985700a000212',2000);" onmouseover="showSideTab($('#posting_4ed60f41daf985700a000212'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4ed60f41daf985700a000212"&gt;Fix interpreter and add support for videos&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4ed60f41daf985700a000212' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4ed60f41daf985700a000212/popup/CBA_%20Edit%20Posting_%20News.jpg?1322652134'); return false;"&gt;&lt;img alt="Cba_%20edit%20posting_%20news" class="img-with-shadow" src="/system/cover_pictures/4ed60f41daf985700a000212/medium/CBA_%20Edit%20Posting_%20News.jpg?1322652134" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;See &lt;a href="https://github.com/iboard/CBA/commit/515a870747ce41031fff0557e06e2df5cbfb649d"&gt;this commit&lt;/a&gt;. This feature will allow rendering attachments of postings and pages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1&lt;/strong&gt;: When creating or editing your &lt;code&gt;Page&lt;/code&gt; or &lt;code&gt;Posting&lt;/code&gt; you can add &lt;code&gt;Attachments&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2&lt;/strong&gt;: Use  &lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;  &lt;span class="no"&gt;ATTACHMENT&lt;/span&gt;&lt;span class="ss"&gt;:n&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;anywhere in the body of your posting or page. Where &lt;em&gt;n&lt;/em&gt; is the number of the attachment (starting at 1)&lt;/p&gt;

&lt;p&gt;Depending on the content-type of the attachment one of the following methods will be used&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;link&lt;em&gt;to _filename&lt;/em&gt;, &lt;em&gt;path&lt;/em&gt; #default&lt;/li&gt;
&lt;li&gt;image_tag attachment.file.url(:medium)&lt;/li&gt;
&lt;li&gt;video_tag attachment.file.url&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here is an example with ATTACHMENT:n with n=1:&lt;/p&gt;

&lt;p&gt;&lt;video controls="controls" src="/system/files/4ed60f41daf985700a000213/original/plane_landing_wind.mov?1322651457"&gt;&lt;/video&gt;&lt;/p&gt;

&lt;p&gt;Source of this video is unknown. It's awesome, tho! This attachment is of type video/quicktime and has the extension .mov. It will play in Safari and other modern browsers but it will not play within Safari on the iPhone and iPad.&lt;/p&gt;

&lt;p&gt;Let's try a .3gp-video, the same way, using ATTACHMENT:n (with n=2)&lt;/p&gt;

&lt;p&gt;&lt;video controls="controls" src="/system/files/4ed61085daf98571cf000382/original/Hu_s_on_First.3gp?1322651781"&gt;&lt;/video&gt;&lt;/p&gt;

&lt;p&gt;This will rendered on iPads just as with standard Safari.&lt;br&gt;
On iPhones, a click on the video will open the quicktime-player on the phone in fullscreen mode.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And a third example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;video controls="controls" src="/system/files/4ed64345daf9857df1000002/original/Skiflug.mpg?1322664773"&gt;&lt;/video&gt;&lt;/p&gt;
</content>
    <updated>2011-12-31 02:32:43 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4ed9f348daf9850684000d02</id>
    <published>2011-12-03T11:00:40+01:00</published>
    <updated>2011-12-31T02:32:43+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ed9f348daf9850684000d02"/>
    <title>Testing dropdown-selects</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4ed9f348daf9850684000d02',2000);" onmouseover="showSideTab($('#posting_4ed9f348daf9850684000d02'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4ed9f348daf9850684000d02"&gt;Testing dropdown-selects&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4ed9f348daf9850684000d02' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4ed9f348daf9850684000d02/popup/PICT5431.JPG?1322911066'); return false;"&gt;&lt;img alt="Pict5431" class="img-with-shadow" src="/system/cover_pictures/4ed9f348daf9850684000d02/medium/PICT5431.JPG?1322911066" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;There is a risk in forms with drop down selects.&lt;/p&gt;

&lt;h2&gt;Scenario&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You have a field which can be edited by selecting from a drop down &lt;/li&gt;
&lt;li&gt;This drop down has no option for "nil-value"&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Sh%t$ will happen&lt;/h2&gt;

&lt;p&gt;When such a form gets rendered, the first option of the drop down is selected if the current value of the field is not in the list of options. Saving this form without changing anything will still update the field behind the drop down. That's definitely not what the user will expect here.&lt;/p&gt;

&lt;h2&gt;spec&lt;/h2&gt;

&lt;p&gt;with this spec you can make sure this will not happen for a form with any attribute.&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;  &lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="s2"&gt;"opening for edit and save without making changes should not change anything (Bugfix: PT#21801945)"&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="n"&gt;blog&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Blog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'Restricted users'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;is_draft&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;is_template&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;_saved_attributes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;blog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dup&lt;/span&gt;
    &lt;span class="n"&gt;log_in_as&lt;/span&gt; &lt;span class="s2"&gt;"admin@iboard.cc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"thisisnotsecret"&lt;/span&gt;
    &lt;span class="n"&gt;visit&lt;/span&gt; &lt;span class="n"&gt;edit_blog_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;blog&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;click_button&lt;/span&gt; &lt;span class="s2"&gt;"Update Blog"&lt;/span&gt;
    &lt;span class="n"&gt;blog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reload&lt;/span&gt;
    &lt;span class="n"&gt;_changed_attributes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;blog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;
    &lt;span class="n"&gt;_changed_attributes&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;delete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'updated_at'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;_changed_attributes&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="k"&gt;unless&lt;/span&gt; &lt;span class="n"&gt;_saved_attributes&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;].&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;eql?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"ATTRIBUTE CHANGED: &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; was '&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;_saved_attributes&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;' and changed to '&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;'"&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
      &lt;span class="n"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;_saved_attributes&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;].&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;eql?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt; &lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s2"&gt;"Attribute should not change "&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2011-12-31 02:32:43 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4ed4e0fbdaf9857266000915</id>
    <published>2011-11-29T14:41:15+01:00</published>
    <updated>2011-12-31T02:32:43+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ed4e0fbdaf9857266000915"/>
    <title>Left sidebar per controller</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4ed4e0fbdaf9857266000915',2000);" onmouseover="showSideTab($('#posting_4ed4e0fbdaf9857266000915'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4ed4e0fbdaf9857266000915"&gt;Left sidebar per controller&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4ed4e0fbdaf9857266000915' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4ed4e0fbdaf9857266000915/popup/Screen%20Shot%202011-11-30%20at%2007.24.35.png?1322634299'); return false;"&gt;&lt;img alt="Screen%20shot%202011-11-30%20at%2007.24.35" class="img-with-shadow" src="/system/cover_pictures/4ed4e0fbdaf9857266000915/medium/Screen%20Shot%202011-11-30%20at%2007.24.35.png?1322634299" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/iboard/CBA/commit/d48e8b5a77e25edf9a854c1de58e97e79477f9c6"&gt;This commit&lt;/a&gt; implements the following feature:&lt;/p&gt;

&lt;p&gt;As default behavior, CBA renders the left sidebar with a search-box, the current sub menu, and the tag-cloud.&lt;/p&gt;

&lt;p&gt;New with the changes in &lt;a href="https://github.com/iboard/CBA/commit/d48e8b5a77e25edf9a854c1de58e97e79477f9c6#diff-0"&gt;application.html.erb&lt;/a&gt; CBA looks for a partial named &lt;code&gt;_sidebar.haml|.html|.html.erb&lt;/code&gt; in the directory &lt;code&gt;app/views/CURRENT_CONTROLLER/&lt;/code&gt;. If this file exist, it will be rendered as a partial instead of the default stuff.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;example&lt;/strong&gt;: &lt;/p&gt;

&lt;p&gt;If you want a special left side-bar while the user is using the &lt;em&gt;BlogsController&lt;/em&gt;, just create the partial &lt;code&gt;app/views/blogs/_sidebar_left.haml&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Searchbox and Tag-cloud&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you like to place the search-box and/or tag-cloud onto your individual sidebar, use:&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;or with HAML&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;  &lt;span class="nf"&gt;#searchbox&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="s1"&gt;'search/form'&lt;/span&gt;

  &lt;span class="nf"&gt;#tagcloud&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tag_cloud&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Standard menue&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You still will be able to render the default menu in your sidebar. Here is the HAML-example&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;  &lt;span class="nt"&gt;%ul&lt;/span&gt;
     &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;build_submenu_box&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;current_root&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
        &lt;span class="nt"&gt;%li&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;entry&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2011-12-31 02:32:43 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d57d8d4e77989255200000d</id>
    <published>2011-02-13T14:12:52+01:00</published>
    <updated>2011-12-31T02:32:44+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d57d8d4e77989255200000d"/>
    <title>Noch keine deutschen Einträge</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d57d8d4e77989255200000d',2000);" onmouseover="showSideTab($('#posting_4d57d8d4e77989255200000d'));"&gt;&lt;a href="/blogs/4d57d86de779892552000008/postings/4d57d8d4e77989255200000d"&gt;Noch keine deutschen Einträge&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;Im Augenblick gibt es hier noch keine deutschen Einträge. Schalte bitte die Sprache auf &lt;a href="/switch_lcoale/en"&gt;Englisch&lt;/a&gt; um, dann siehst Du auch auf der &lt;a href="/"&gt;Startseite&lt;/a&gt; mehrere Einträge. Oder besuche den &lt;a href="/blogs/4d456adae7798923b100000a"&gt;englischen News-blog&lt;/a&gt; direkt.&lt;/p&gt;
&lt;/blockquote&gt;</content>
    <updated>2011-12-31 02:32:44 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4eff1de4daf98518e20023ed</id>
    <published>2011-12-31T15:36:20+01:00</published>
    <updated>2011-12-31T15:37:32+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4efef5fadaf98518e2000015"/>
    <title>MongoID Chaining More any_of Criterias % Andreas Altendorfer</title>
    <content type="html">
&lt;p&gt;If you deal with the idea to implements stuff like this ... wait a bit if it's possible.&lt;br&gt;&lt;a href="http://mongoid.org"&gt;MongoID&lt;/a&gt; will support new options when it's come to merge selectors, as &lt;a href="https://github.com/durran"&gt;Durran&lt;/a&gt; told me &lt;a href="https://github.com/mongoid/mongoid/issues/569#issuecomment-3320870"&gt;in response to my entry at Github&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Mongoid API in 3.0 will support it, I'll have the docs updated when it's released to show you how, but in short it will allow you to define the merge strategy when chaining criteria, either intersection, union, or override.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <updated>2011-12-31 15:37:32 +0100</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4f016481daf9853285000009</id>
    <published>2012-01-02T09:02:09+01:00</published>
    <updated>2012-01-03T21:10:28+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4f016481daf9853285000009"/>
    <title>IMPORTANT! Migrate your production-data</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4f016481daf9853285000009',2000);" onmouseover="showSideTab($('#posting_4f016481daf9853285000009'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4f016481daf9853285000009"&gt;IMPORTANT! Migrate your production-data&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4f016481daf9853285000009' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4f016481daf9853285000009/popup/Screen%20Shot%202012-01-02%20at%2009.01.29.png?1325491329'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-02%20at%2009.01.29" class="img-with-shadow" src="/system/cover_pictures/4f016481daf9853285000009/medium/Screen%20Shot%202012-01-02%20at%2009.01.29.png?1325491329" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Before you can use the &lt;a href="https://github.com/iboard/CBA/commit/789d0537506d8cbc430d067d2ed4e1077164752a"&gt;latest version of CBA&lt;/a&gt; on your production-servers, do the following migration (through the console)&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="nv"&gt;RAILS_ENV&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;production rails console
&lt;/pre&gt;
&lt;/div&gt;


&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="no"&gt;Posting&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;unscoped&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;all&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="nb"&gt;p&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;p&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;recipient_ids&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nil?&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;p&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;recipient_ids&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="o"&gt;[]&lt;/span&gt;
    &lt;span class="nb"&gt;p&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;recipient_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;nil&lt;/span&gt;
    &lt;span class="nb"&gt;p&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;
    &lt;span class="nb"&gt;p&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;recipient_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[]&lt;/span&gt;
    &lt;span class="nb"&gt;p&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt; &lt;code&gt;recipient_ids&lt;/code&gt; defaults to [] but old data will be stored without recipient_ids. Scopes of the latest commit will not find such entries.&lt;/p&gt;
</content>
    <updated>2012-01-03 21:10:28 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4efef5fadaf98518e2000015</id>
    <published>2011-12-31T12:46:02+01:00</published>
    <updated>2012-01-03T21:10:44+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4efef5fadaf98518e2000015"/>
    <title>MongoID Chaining More any_of Criterias</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4efef5fadaf98518e2000015',2000);" onmouseover="showSideTab($('#posting_4efef5fadaf98518e2000015'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4efef5fadaf98518e2000015"&gt;MongoID Chaining More any_of Criterias&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4efef5fadaf98518e2000015' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4efef5fadaf98518e2000015/popup/images.jpeg?1325332692'); return false;"&gt;&lt;img alt="Images" class="img-with-shadow" src="/system/cover_pictures/4efef5fadaf98518e2000015/medium/images.jpeg?1325332692" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;h1&gt;What we have&lt;/h1&gt;

&lt;p&gt;In CBA we have module ContentItem and two models using it: Page and Posting&lt;/p&gt;

&lt;p&gt;A ContentItem has the following "flags"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;is_draft (boolean)&lt;/li&gt;
&lt;li&gt;publish_at (nil or Time)&lt;/li&gt;
&lt;li&gt;expire_at (nil or Time)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and an array of recipients (User-Ids) this ContentItem is addressed to. If this Array is empty, the item is supposed to be public visible. Otherwise it should be displayed to the given users only.&lt;/p&gt;

&lt;h1&gt;The Problem&lt;/h1&gt;

&lt;p&gt;When I implemented scopes I ran into some trouble using &lt;em&gt;any_of&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The scopes should be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Posting.online  .... only postings between publish_at and expire_at&lt;/li&gt;
&lt;li&gt;Posting.published .. Doesn't have is_draft == true&lt;/li&gt;
&lt;li&gt;Posting.addressed&lt;em&gt;to (_user&lt;/em&gt;) .. Postings where &lt;em&gt;user&lt;/em&gt; is in the list of recipients or &lt;em&gt;recipient_ids&lt;/em&gt; is empty.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For &lt;em&gt;online&lt;/em&gt; and &lt;em&gt;addressed_to&lt;/em&gt; we need to use &lt;em&gt;any_of&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;Addressed To and Published - scope&lt;/h2&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="ss"&gt;:addressed_to&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;where&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;any_of&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; 
                                              &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:recipient_ids&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; 
                                              &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:recipient_ids&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
                                              &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:recipient_ids&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
                                              &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:user_id&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; 

                                          &lt;span class="p"&gt;)&lt;/span&gt; 
                                    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;h2&gt;Online-scope&lt;/h2&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="ss"&gt;:published&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;is_draft&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="ss"&gt;:online&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;any_of&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                 &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:publish_at&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;:expire_at&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
                 &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:publish_at&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lte&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="no"&gt;Time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="ss"&gt;:expire_at&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
                 &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:publish_at&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lte&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="no"&gt;Time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="ss"&gt;:expire_at&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="no"&gt;Time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()},&lt;/span&gt;
                 &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:publish_at&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:expire_at&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="no"&gt;Time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;
                &lt;span class="p"&gt;)}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;h1&gt;What happens&lt;/h1&gt;

&lt;h2&gt;STEP 1 - START WITH ALL POSTINGS OF BLOG(self)&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;_postings = self.postings.unscoped&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The criteria is OK&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="c1"&gt;#BSON::ObjectId('4e1fc176f9110517c4000002')},&lt;/span&gt;
  &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="p"&gt;{},&lt;/span&gt;
  &lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;    &lt;span class="no"&gt;Posting&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;embedded&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;h2&gt;STEP 2 - RESTRICT TO PUBLIC POSTS OR POSTS ADDRESSED TO OR OWNED BY USER&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;_postings = _postings.addressed_to(_user.id)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here the first &lt;em&gt;any_of&lt;/em&gt; comes in&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="c1"&gt;#BSON::ObjectId('4e1fc176f9110517c4000002'), &lt;/span&gt;
      &lt;span class="s2"&gt;"$or"&lt;/span&gt;    &lt;span class="o"&gt;=&amp;gt;[&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:recipient_ids&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; 
                   &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:recipient_ids&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;[]&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; 
                   &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:recipient_ids&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;[&lt;/span&gt;&lt;span class="no"&gt;BSON&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;ObjectId&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'4ea7dafdf9110540a3000013'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; 
                   &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:user_id&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="no"&gt;BSON&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;ObjectId&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'4ea7dafdf9110540a3000013'&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;
                 &lt;span class="o"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="p"&gt;{},&lt;/span&gt;
  &lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;    &lt;span class="no"&gt;Posting&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;embedded&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;The criteria is still ok. The $or-selector is added.&lt;/p&gt;

&lt;h2&gt;STEP 3 - RESTRICT TO !draft AND WITHIN GIVEN DATE-RANGE&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;_postings = _postings.published.online&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now we got&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="c1"&gt;#BSON::ObjectId('4e1fc176f9110517c4000002'), &lt;/span&gt;
      &lt;span class="ss"&gt;:is_draft&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
      &lt;span class="s2"&gt;"$or"&lt;/span&gt;     &lt;span class="o"&gt;=&amp;gt;[&lt;/span&gt;
                    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:publish_at&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:expire_at&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; 
                    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:publish_at&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"$lte"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;2011&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mo"&gt;02&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mo"&gt;0100&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="ss"&gt;:expire_at&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; 
                    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:publish_at&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"$lte"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;2011&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mo"&gt;02&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mo"&gt;0100&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="ss"&gt;:expire_at&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"$gt"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;2011&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mo"&gt;02&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mo"&gt;0100&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt; 
                    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:publish_at&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:expire_at&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"$gt"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;2011&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mo"&gt;02&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mo"&gt;0100&lt;/span&gt;&lt;span class="p"&gt;}}&lt;/span&gt;
                  &lt;span class="o"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="p"&gt;{},&lt;/span&gt;
  &lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;    &lt;span class="no"&gt;Posting&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;embedded&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;OK, the date-range was added with $or BUT where the $or for recipient_ids is gone??!&lt;/p&gt;

&lt;h1&gt;The Solution&lt;/h1&gt;

&lt;p&gt;When I did some research on this I found &lt;a href="https://github.com/mongoid/mongoid/issues/569"&gt;this issue on MongoID&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It makes clear that there can be one $or-key only for a given selector and my approach to combine two $or-selectors will not work :(&lt;/p&gt;

&lt;h2&gt;A Possible Workaround Without Using Chained &lt;em&gt;any_of&lt;/em&gt; Selectors&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This works for CBA. I hope I'll find a better solution for this, tho.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It fetches all posting-ids for each selector and then combines this id-arrays with &lt;strong&gt;&amp;amp;&lt;/strong&gt; which will result in a new array containing only ids which are present in all arrays. At the end we can provide a Mongo-Criteria using &lt;em&gt;postings.for_ids&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;postings_for_user_and_mode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;_draft_mode&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="c1"&gt;# if no user is given then return only public and online postings&lt;/span&gt;
  &lt;span class="k"&gt;unless&lt;/span&gt; &lt;span class="n"&gt;_user&lt;/span&gt;
    &lt;span class="n"&gt;_online&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;postings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;online&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;only&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;_public&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;postings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;publics&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;only&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
    &lt;span class="n"&gt;_published&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;postings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;published&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;only&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;postings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;for_ids&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_online&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;_public&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;_published&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;


  &lt;span class="c1"&gt;# if user is moderator and in draft_mode then return all postings&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;_draft_mode&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;_user&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;role?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:moderator&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;postings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;all&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;


  &lt;span class="c1"&gt;# The mongo-driver is not able to combine two any_of ($or) as "and"&lt;/span&gt;
  &lt;span class="c1"&gt;#&lt;/span&gt;
  &lt;span class="c1"&gt;# model.any_of( :f1 =&amp;gt; '1', :f2 =&amp;gt; '2').any_of( :d1 =&amp;gt; 'x', :d2 =&amp;gt; 'y')&lt;/span&gt;
  &lt;span class="c1"&gt;# is not equal to&lt;/span&gt;
  &lt;span class="c1"&gt;#    select * from model where ( f1 = 1 OR f2 = 2) AND ( d1 = x OR d2 = y ) &lt;/span&gt;
  &lt;span class="c1"&gt;# but it will act as&lt;/span&gt;
  &lt;span class="c1"&gt;#    select * from model where ( f1 = 1 OR f2 = 2 OR d1 = x OR d2 = y )&lt;/span&gt;
  &lt;span class="c1"&gt;#&lt;/span&gt;
  &lt;span class="c1"&gt;# Posting scopes using any_of are:&lt;/span&gt;
  &lt;span class="c1"&gt;#   * addressed_to(user_id)&lt;/span&gt;
  &lt;span class="c1"&gt;#   * online&lt;/span&gt;

  &lt;span class="c1"&gt;# public or addressed to _user&lt;/span&gt;
  &lt;span class="n"&gt;_addressed_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;postings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;addressed_to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_user&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;only&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="c1"&gt;# in range of publish_at and enxpire_at&lt;/span&gt;
  &lt;span class="n"&gt;_online_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;postings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;online&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;only&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="k"&gt;unless&lt;/span&gt; &lt;span class="n"&gt;_user&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;role?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:moderator&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;unless&lt;/span&gt; &lt;span class="n"&gt;_draft_mode&lt;/span&gt;
      &lt;span class="n"&gt;_visible_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;_online_ids&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;postings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;published&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;only&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;_addressed_ids&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
      &lt;span class="n"&gt;_visible_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;_addressed_ids&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;else&lt;/span&gt;
    &lt;span class="n"&gt;_visible_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;_online_ids&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;postings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;published&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;only&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;postings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;for_ids&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;_visible_ids&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2012-01-03 21:10:44 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4f0411fedaf98566d0000010</id>
    <published>2012-01-04T09:46:54+01:00</published>
    <updated>2012-01-06T14:07:18+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4f0411fedaf98566d0000010"/>
    <title>pre-released and expired postings are marked with badges</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4f0411fedaf98566d0000010',2000);" onmouseover="showSideTab($('#posting_4f0411fedaf98566d0000010'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4f0411fedaf98566d0000010"&gt;pre-released and expired postings are marked with badges&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4f0411fedaf98566d0000010' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4f0411fedaf98566d0000010/popup/scexp.png?1325666813'); return false;"&gt;&lt;img alt="Scexp" class="img-with-shadow" src="/system/cover_pictures/4f0411fedaf98566d0000010/medium/scexp.png?1325666813" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Now it's easy to identify postings which will not be online at this time.&lt;/p&gt;

&lt;p&gt;See 'postings.css.scss' where you can define the css-classes for .online, .expired, and .prerelease&lt;/p&gt;

&lt;p&gt;&lt;img src="/system/cover_pictures/4f0411fedaf98566d0000010/original/scexp.png?1325666813" alt="Screenshot"&gt;&lt;br&gt;&lt;/p&gt;
</content>
    <updated>2012-01-06 14:07:18 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4f0a9cd0daf98579dd00005f</id>
    <published>2012-01-09T08:52:48+01:00</published>
    <updated>2012-01-09T08:52:48+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e95bc25daf9850780000002"/>
    <title>Added GeoLocation for user-model % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;See &lt;a href="/postings/4e9db32edaf9851107000003"&gt;Example&lt;/a&gt;&lt;/p&gt;</content>
    <updated>2012-01-09 08:52:48 +0100</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4f13158bdaf98509fe000057</id>
    <published>2012-01-15T19:06:03+01:00</published>
    <updated>2012-01-15T19:06:03+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4f13158bdaf98509fe000057"/>
    <title>Chart-drawing with HighChart</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4f13158bdaf98509fe000057',2000);" onmouseover="showSideTab($('#posting_4f13158bdaf98509fe000057'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4f13158bdaf98509fe000057"&gt;Chart-drawing with HighChart&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4f13158bdaf98509fe000057' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4f13158bdaf98509fe000057/popup/Screen%20Shot%202012-01-15%20at%2019.00.46.png?1326650762'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-15%20at%2019.00.46" class="img-with-shadow" src="/system/cover_pictures/4f13158bdaf98509fe000057/medium/Screen%20Shot%202012-01-15%20at%2019.00.46.png?1326650762" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;After trying a lot of different JS-libs for chart-drawing, I made my decision: &lt;a href="http://www.highcharts.com/"&gt;HighChart&lt;/a&gt; for my &lt;a href="http://darts.iboard.cc"&gt;Darts Log Application&lt;/a&gt; (See &lt;a href="http://darts.iboard.cc/players/12"&gt;Example&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;HighChart is free for non-commercial applications and there is a fine &lt;a href="http://railscasts.com/episodes/223-charts"&gt;Railscast&lt;/a&gt; how to use it in a Rails-Application.&lt;/p&gt;

&lt;p&gt;BTW: If you're a Darts-player and you use Russ Bray Darts Scorer on your iPhone/iPad, you should checkout &lt;a href="http://darts.iboard.cc"&gt;&lt;/a&gt;&lt;a href="http://darts.iboard.cc"&gt;http://darts.iboard.cc&lt;/a&gt;&lt;/p&gt;
</content>
    <updated>2012-01-15 19:06:03 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Comment/4f1933f4daf9853ebb0003ff</id>
    <published>2012-01-20T10:29:24+01:00</published>
    <updated>2012-01-20T10:29:24+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4f177210daf9853ebb000014"/>
    <title>Fragment caching for Tag-cloud % Andreas Altendorfer</title>
    <content type="html">&lt;p&gt;See &lt;a href="https://github.com/iboard/CBA/commit/bb135b8694515cb9d34c1ad1566208dbbc2cbd02"&gt;this commit&lt;/a&gt;&lt;/p&gt;</content>
    <updated>2012-01-20 10:29:24 +0100</updated>
    <author>Andreas Altendorfer</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4f177210daf9853ebb000014</id>
    <published>2012-01-19T02:29:52+01:00</published>
    <updated>2012-01-22T11:29:30+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4f177210daf9853ebb000014"/>
    <title>Fragment caching for Tag-cloud</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4f177210daf9853ebb000014',2000);" onmouseover="showSideTab($('#posting_4f177210daf9853ebb000014'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4f177210daf9853ebb000014"&gt;Fragment caching for Tag-cloud&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4f177210daf9853ebb000014' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4f177210daf9853ebb000014/popup/Terminal.jpg?1327228169'); return false;"&gt;&lt;img alt="Terminal" class="img-with-shadow" src="/system/cover_pictures/4f177210daf9853ebb000014/medium/Terminal.jpg?1327228169" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I've added a &lt;em&gt;fragment-cache&lt;/em&gt; for the tag-cloud.&lt;/p&gt;

&lt;p&gt;Collecting the tag-cloud had a performance issue since we're now checking for expired, prerelease, draft, recipient_ids of any item. &lt;/p&gt;

&lt;p&gt;To fix this, the tag-cloud will be cached for 20 minutes now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;+&lt;/strong&gt;: It's fast again&lt;br&gt;&lt;strong&gt;-&lt;/strong&gt;: The tag-cloud will not update within this time.&lt;/p&gt;

&lt;p&gt;TODO: Expire caches when a posting or page will be created or updated instead of doing this every 20 minutes.&lt;/p&gt;
</content>
    <updated>2012-01-22 11:29:30 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4ee511dedaf9851ac6000046</id>
    <published>2011-12-11T21:26:06+01:00</published>
    <updated>2012-01-22T11:30:24+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4ee511dedaf9851ac6000046"/>
    <title>Get rid of a bad idea</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4ee511dedaf9851ac6000046',2000);" onmouseover="showSideTab($('#posting_4ee511dedaf9851ac6000046'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4ee511dedaf9851ac6000046"&gt;Get rid of a bad idea&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4ee511dedaf9851ac6000046' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4ee511dedaf9851ac6000046/popup/brush.png?1327228223'); return false;"&gt;&lt;img alt="Brush" class="img-with-shadow" src="/system/cover_pictures/4ee511dedaf9851ac6000046/medium/brush.png?1327228223" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;To be honest, implementing a method &lt;em&gt;render_for_html&lt;/em&gt; in the model (&lt;em&gt;ContentItem&lt;/em&gt;) was a bad idea. With &lt;a href="https://github.com/iboard/CBA/commit/c189fe0448fb879e4fb1b6c9362806871bd6d662"&gt;this commit&lt;/a&gt; we got rid of this.&lt;/p&gt;

&lt;p&gt;Thank's to TDD I can guarantee that everything is working well. Some CSS-issues will be fixed soon, though.&lt;/p&gt;

&lt;p&gt;In this new version, CBA's models, based on &lt;code&gt;ContentItem&lt;/code&gt; are rendered using a new class &lt;code&gt;Interpreter&lt;/code&gt; and presenters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not use this version in production&lt;/strong&gt;. It's a first preview of this new structure and CSS-fixes will follow later this week.&lt;/p&gt;

&lt;h1&gt;TDD RULEZ!&lt;/h1&gt;
</content>
    <updated>2012-01-22 11:30:24 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e91590fdaf9852109000007</id>
    <published>2011-10-09T10:19:28+02:00</published>
    <updated>2012-01-22T11:31:39+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e91590fdaf9852109000007"/>
    <title>New controller to submit user notifications</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e91590fdaf9852109000007',2000);" onmouseover="showSideTab($('#posting_4e91590fdaf9852109000007'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e91590fdaf9852109000007"&gt;New controller to submit user notifications&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e91590fdaf9852109000007' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e91590fdaf9852109000007/popup/%C3%9Cberwachungskammera.png?1327228299'); return false;"&gt;&lt;img alt="%c3%9cberwachungskammera" class="img-with-shadow" src="/system/cover_pictures/4e91590fdaf9852109000007/medium/%C3%9Cberwachungskammera.png?1327228299" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;There is a new controller for admins and maintainers to send user notifications to all or a list of users.&lt;/p&gt;

&lt;p&gt;UserNotifications will be displayed on top of page when a user is logged in. A user can hide notifications and can list all notification with menu "(i)"&lt;/p&gt;

&lt;p&gt;The route is &lt;code&gt;/user_notifications/new&lt;/code&gt;. Add a menu for it in 'Menus' or run rake-task &lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;rake data:generate_standard_root_menu
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Attantion!&lt;/strong&gt; This rake task deletes your current menu-records. Use it only for new installations. Otherwise add the new menu item manually.&lt;/p&gt;

&lt;p&gt;When composing a new notification:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter recipients (supports autocomplete by email or name)&lt;/li&gt;
&lt;li&gt;or leave the recipients field blank to send the message to all users.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Notifications are embedded in model User. When creating a new notification it is stored in admin's user-document and will be copied to all recipients after create.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Commits&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/e07b9fb8148932510101451851a45b9c23680fc5"&gt;UserNotificationsController added&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/CBA/commit/1ff8e096ebdb98ad55ad1fbe8bff7de45d1df0d8"&gt;Autocomplete recipients&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2012-01-22 11:31:39 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e946c28daf9853c60000002</id>
    <published>2011-10-11T18:17:44+02:00</published>
    <updated>2012-01-22T11:32:43+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e946c28daf9853c60000002"/>
    <title>Upgraded to Rails 3.1.1 and MongoID 2.3.1</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e946c28daf9853c60000002',2000);" onmouseover="showSideTab($('#posting_4e946c28daf9853c60000002'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e946c28daf9853c60000002"&gt;Upgraded to Rails 3.1.1 and MongoID 2.3.1&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e946c28daf9853c60000002' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e946c28daf9853c60000002/popup/cba256.png?1327228363'); return false;"&gt;&lt;img alt="Cba256" class="img-with-shadow" src="/system/cover_pictures/4e946c28daf9853c60000002/medium/cba256.png?1327228363" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Latest version of CBA works with Rails 3.1.1 and the new MongoID-version 2.3.1&lt;/p&gt;

&lt;p&gt;Both works fine and faster. I had to create a new gemset from scratch on my debian-box, tho.&lt;/p&gt;

&lt;p&gt;Notable: Using the latest MongoID, I could (had to) remove a workaround in Blog.rb.&lt;/p&gt;

&lt;p&gt;All tests are green. See &lt;a href="https://github.com/iboard/CBA/commit/988069b482bc450e03cda675fbd8683f0e4cf5ff"&gt;this commit&lt;/a&gt; for details on changes.&lt;/p&gt;

&lt;h2&gt;Upgrading your gemset&lt;/h2&gt;

&lt;p&gt;I was faced the following error when I did &lt;em&gt;bundle update&lt;/em&gt; &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;uninitialized constant Psych::Syck (NameError)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To fix this, I had to do&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;rvm install 1.9.2-p290
rvm use 1.9.2-p290
rvm gemset create r311
rvm use 1.9.2-p290@r311
gem install bundler
gem install rails -v 3.1.1
bundle update
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Because of the newly created gemset, I had to install passenger for this gemset too.&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;gem install passenger
rvmsudo passenger-install-apache2-module
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;And then copy the new passenger-config to /etc/apache/mods-enabled/passenger.conf&lt;/p&gt;

&lt;p&gt;A final &lt;code&gt;apachectl restart&lt;/code&gt; brought up the new version.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It's so cool to live on the cutting edge :D&lt;/em&gt;&lt;/p&gt;
</content>
    <updated>2012-01-22 11:32:43 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e4df203daf9853951000005</id>
    <published>2011-08-19T07:17:55+02:00</published>
    <updated>2012-01-22T11:35:33+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e4df203daf9853951000005"/>
    <title>HTML5 File Upload Progress Bar</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e4df203daf9853951000005',2000);" onmouseover="showSideTab($('#posting_4e4df203daf9853951000005'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e4df203daf9853951000005"&gt;HTML5 File Upload Progress Bar&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e4df203daf9853951000005' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e4df203daf9853951000005/popup/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228533'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-22%20at%2011.35.12" class="img-with-shadow" src="/system/cover_pictures/4e4df203daf9853951000005/medium/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228533" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;I wrote a new gem to display a progress bar while uploading files. It works works with Rails 3.1 and HTML5 browsers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/iboard/progress_upload_field"&gt;progress_upload_field@github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rubygems.org/gems/progress_upload_field"&gt;progress_upload_field@gemcutter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is an early prototype. Don't expect too much. But I think it's very useful and I will review and cleanup/finish it soon.&lt;/p&gt;
</content>
    <updated>2012-01-22 11:35:33 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e3bdcdbdaf985740200012b</id>
    <published>2011-08-05T14:06:51+02:00</published>
    <updated>2012-01-22T11:35:45+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e3bdcdbdaf985740200012b"/>
    <title>CBA with Ruby 1.9.3-preview and Rails 3.1.0.rc5</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e3bdcdbdaf985740200012b',2000);" onmouseover="showSideTab($('#posting_4e3bdcdbdaf985740200012b'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e3bdcdbdaf985740200012b"&gt;CBA with Ruby 1.9.3-preview and Rails 3.1.0.rc5&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e3bdcdbdaf985740200012b' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e3bdcdbdaf985740200012b/popup/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228544'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-22%20at%2011.35.12" class="img-with-shadow" src="/system/cover_pictures/4e3bdcdbdaf985740200012b/medium/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228544" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;If you wanna try CBA on the edge, there is a &lt;a href="https://github.com/iboard/CBA/commits/preview"&gt;Github branch &lt;strong&gt;preview&lt;/strong&gt;&lt;/a&gt; online.&lt;/p&gt;

&lt;p&gt;The steps to try this without any risk:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;rvm install 1.9.3-preview1&lt;/li&gt;
&lt;li&gt;rvm use 1.9.3-preview1 &lt;/li&gt;
&lt;li&gt;gem create gemset rails3.1-preview&lt;/li&gt;
&lt;li&gt;rvm use &lt;a href="mailto:1.9.3-preview1@rails3.1-preview"&gt;1.9.3-preview1@rails3.1-preview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;cd ......CBA/&lt;/li&gt;
&lt;li&gt;git checkout preview&lt;/li&gt;
&lt;li&gt;bundle install&lt;/li&gt;
&lt;li&gt;thor application:test_all&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Depending on your system you may face some troubles when gem installs &lt;em&gt;native extension&lt;/em&gt;. On Lion I had to recompile everything from scratch, and I had to skip the TKLib for ruby1.9.3, where on an old macMini with SnowLeopard it worked as listed above.&lt;/p&gt;

&lt;p&gt;Have fun!&lt;/p&gt;
</content>
    <updated>2012-01-22 11:35:45 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e3150fddaf9853997000009</id>
    <published>2011-07-28T14:07:25+02:00</published>
    <updated>2012-01-22T11:35:53+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e3150fddaf9853997000009"/>
    <title>Upgraded to Rails 3.1.0.rc5</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e3150fddaf9853997000009',2000);" onmouseover="showSideTab($('#posting_4e3150fddaf9853997000009'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e3150fddaf9853997000009"&gt;Upgraded to Rails 3.1.0.rc5&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e3150fddaf9853997000009' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e3150fddaf9853997000009/popup/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228553'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-22%20at%2011.35.12" class="img-with-shadow" src="/system/cover_pictures/4e3150fddaf9853997000009/medium/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228553" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;After pulling the latest version from github, please do&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;bundle update
rake assets:clean
rake assets:precompile &lt;span class="c"&gt;# only for production-mode&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2012-01-22 11:35:53 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e2ea05edaf98515c6000015</id>
    <published>2011-07-26T13:09:18+02:00</published>
    <updated>2012-01-22T11:36:02+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e2ea05edaf98515c6000015"/>
    <title>Version Conflicts with Rails RC4 and Sprockets beta.12</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e2ea05edaf98515c6000015',2000);" onmouseover="showSideTab($('#posting_4e2ea05edaf98515c6000015'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e2ea05edaf98515c6000015"&gt;Version Conflicts with Rails RC4 and Sprockets beta.12&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e2ea05edaf98515c6000015' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e2ea05edaf98515c6000015/popup/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228561'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-22%20at%2011.35.12" class="img-with-shadow" src="/system/cover_pictures/4e2ea05edaf98515c6000015/medium/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228561" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;I'm using &lt;code&gt;rails.3.1.0.rc4&lt;/code&gt; and &lt;em&gt;sprockets&lt;/em&gt; is not mentioned in my Gemfile.&lt;/li&gt;
&lt;li&gt;When I did &lt;code&gt;bundle update&lt;/code&gt; today,  &lt;code&gt;sprockets.2.0.0.beta.12&lt;/code&gt; was installed&lt;/li&gt;
&lt;li&gt;and compiling assets was broken, at least in development-mode&lt;/li&gt;
&lt;li&gt;Adding the following line for &lt;em&gt;sprockets&lt;/em&gt; to my &lt;code&gt;Gemfile&lt;/code&gt; and &lt;code&gt;bundle update&lt;/code&gt; fixed it.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"rails"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"3.1.0.rc4"&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"sprockets"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"2.0.0.beta.10"&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2012-01-22 11:36:02 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e2e4a5bdaf985055b000023</id>
    <published>2011-07-26T07:02:19+02:00</published>
    <updated>2012-01-22T11:36:11+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e2e4a5bdaf985055b000023"/>
    <title>MongoDB Replica Set</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e2e4a5bdaf985055b000023',2000);" onmouseover="showSideTab($('#posting_4e2e4a5bdaf985055b000023'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e2e4a5bdaf985055b000023"&gt;MongoDB Replica Set&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e2e4a5bdaf985055b000023' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e2e4a5bdaf985055b000023/popup/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228571'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-22%20at%2011.35.12" class="img-with-shadow" src="/system/cover_pictures/4e2e4a5bdaf985055b000023/medium/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228571" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Tonight cba.iboard.cc and altendorfer.at was down because the connection between primary and slave died.&lt;/p&gt;

&lt;p&gt;MongoDB switched to secondary-mode on the server where this application is running while primary was not reachable.&lt;/p&gt;

&lt;p&gt;In this state every request was answered with a 500 and the log tells me &lt;code&gt;Mongo::OperationFailure (not master and slaveok=false):&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The new setup in &lt;code&gt;config/mongoid.yml&lt;/code&gt; now take care of this:&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="l-Scalar-Plain"&gt;development&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt;
  &lt;span class="l-Scalar-Plain"&gt;host&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;localhost&lt;/span&gt;
  &lt;span class="l-Scalar-Plain"&gt;database&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;cba_development&lt;/span&gt;

&lt;span class="l-Scalar-Plain"&gt;test&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt;
  &lt;span class="l-Scalar-Plain"&gt;host&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;localhost&lt;/span&gt;
  &lt;span class="l-Scalar-Plain"&gt;database&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;cba_test&lt;/span&gt;

&lt;span class="l-Scalar-Plain"&gt;production&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt;
  &lt;span class="l-Scalar-Plain"&gt;host&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;localhost&lt;/span&gt;
  &lt;span class="l-Scalar-Plain"&gt;database&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;cba_production&lt;/span&gt;
  &lt;span class="l-Scalar-Plain"&gt;allow_read_secondary&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;true&lt;/span&gt;
  &lt;span class="l-Scalar-Plain"&gt;replica_set&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt;
    &lt;span class="p-Indicator"&gt;-&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;uri&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;mongo://localhost:27018&lt;/span&gt;
    &lt;span class="p-Indicator"&gt;-&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;uri&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;mongo://s1.iboard.cc:27018&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2012-01-22 11:36:11 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e1a1161daf98561ec000009</id>
    <published>2011-07-10T22:53:53+02:00</published>
    <updated>2012-01-22T11:36:23+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e1a1161daf98561ec000009"/>
    <title>Draft mode</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e1a1161daf98561ec000009',2000);" onmouseover="showSideTab($('#posting_4e1a1161daf98561ec000009'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e1a1161daf98561ec000009"&gt;Draft mode&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e1a1161daf98561ec000009' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e1a1161daf98561ec000009/popup/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228583'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-22%20at%2011.35.12" class="img-with-shadow" src="/system/cover_pictures/4e1a1161daf98561ec000009/medium/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228583" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;&lt;code&gt;ContentItems&lt;/code&gt; (Page, Blog, and Posting) got a new field &lt;code&gt;is_draft&lt;/code&gt;. If it's set to &lt;code&gt;true&lt;/code&gt; only Authors will see this entry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; If you pull this version when you already have content items, then you have to perform the following commands on your data (using console)&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;resource&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="no"&gt;Page&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="no"&gt;Blog&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="no"&gt;Posting&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
  &lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;unscoped&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;all&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_draft&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
    &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2012-01-22 11:36:23 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e17f7bedaf98571b1000131</id>
    <published>2011-07-09T08:39:58+02:00</published>
    <updated>2012-01-22T11:36:34+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e17f7bedaf98571b1000131"/>
    <title>Moving forward</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e17f7bedaf98571b1000131',2000);" onmouseover="showSideTab($('#posting_4e17f7bedaf98571b1000131'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e17f7bedaf98571b1000131"&gt;Moving forward&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e17f7bedaf98571b1000131' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e17f7bedaf98571b1000131/popup/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228594'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-22%20at%2011.35.12" class="img-with-shadow" src="/system/cover_pictures/4e17f7bedaf98571b1000131/medium/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228594" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;CBA master branch will switch to Rails 3.1 soon.&lt;/p&gt;

&lt;p&gt;At the moment, 'master' is for Rails 3.0.9. The new branch 'rails31' is fully functional and all tests are green. Only &lt;code&gt;install.rb&lt;/code&gt; doesn't know about the new assets-directory.&lt;/p&gt;

&lt;p&gt;Next week I will adapt install.rb and then I will move the 3.0-version to a new branch (which will be left unsupported) and merge rails31 to back to master.&lt;/p&gt;

&lt;p&gt;I love haml, sasl, coffee script and I will not stick around in an "old world" ;-) Rails 3.1 RC4 is stable and I guess ready for production.&lt;/p&gt;
</content>
    <updated>2012-01-22 11:36:34 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e0ad6fcdaf9855d5f000068</id>
    <published>2011-06-29T09:40:44+02:00</published>
    <updated>2012-01-22T11:36:43+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e0ad6fcdaf9855d5f000068"/>
    <title>Bring back SPORK with cucumber 1.0.0</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e0ad6fcdaf9855d5f000068',2000);" onmouseover="showSideTab($('#posting_4e0ad6fcdaf9855d5f000068'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e0ad6fcdaf9855d5f000068"&gt;Bring back SPORK with cucumber 1.0.0&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e0ad6fcdaf9855d5f000068' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e0ad6fcdaf9855d5f000068/popup/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228603'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-22%20at%2011.35.12" class="img-with-shadow" src="/system/cover_pictures/4e0ad6fcdaf9855d5f000068/medium/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228603" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;Since cucumber 1.0.0 spork doesn't work.&lt;/p&gt;

&lt;p&gt;As mentioned in &lt;a href="https://github.com/timcharper/spork/issues/122"&gt;spork's issue #122&lt;/a&gt; you can fix this problem by commenting some lines in &lt;code&gt;YOUR GEM PATH/spork/test_framework/cucumber.rb&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;preload&lt;/span&gt;
      &lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'cucumber'&lt;/span&gt;
      &lt;span class="c1"&gt;#if ::Cucumber::VERSION &amp;gt;= '0.9.0'&lt;/span&gt;
        &lt;span class="c1"&gt;# nothing to do nowadays&lt;/span&gt;
      &lt;span class="c1"&gt;#else&lt;/span&gt;
        &lt;span class="n"&gt;preload_legacy_cucumbers&lt;/span&gt;
      &lt;span class="c1"&gt;#end&lt;/span&gt;
      &lt;span class="k"&gt;super&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run_tests&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="c1"&gt;#if ::Cucumber::VERSION &amp;gt;= '0.9.0'&lt;/span&gt;
      &lt;span class="c1"&gt;#  ::Cucumber::Cli::Main.new(argv, stdout, stderr).execute!&lt;/span&gt;
      &lt;span class="c1"&gt;#else&lt;/span&gt;
        &lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Cucumber&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Cli&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Main&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vi"&gt;@step_mother&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="c1"&gt;#end&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2012-01-22 11:36:43 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4e04c455daf9856949000013</id>
    <published>2011-06-24T19:07:33+02:00</published>
    <updated>2012-01-22T11:36:52+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4e04c455daf9856949000013"/>
    <title>Attention when pulling latest version</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4e04c455daf9856949000013',2000);" onmouseover="showSideTab($('#posting_4e04c455daf9856949000013'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4e04c455daf9856949000013"&gt;Attention when pulling latest version&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4e04c455daf9856949000013' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4e04c455daf9856949000013/popup/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228612'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-22%20at%2011.35.12" class="img-with-shadow" src="/system/cover_pictures/4e04c455daf9856949000013/medium/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228612" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;The latest version on github includes a default scope for pages.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;default_scope  where(is_template:false)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;After pull it won't work for existing documents! You have to do&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Page.unscoped.all.each do |p|
  p.is_template = false
  p.save
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;in the console.&lt;/p&gt;
</content>
    <updated>2012-01-22 11:36:52 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d711beadaf98576f000000b</id>
    <published>2011-03-04T18:05:46+01:00</published>
    <updated>2012-01-22T11:37:03+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d711beadaf98576f000000b"/>
    <title>ATTENTION - Comment Associations Redesigned</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d711beadaf98576f000000b',2000);" onmouseover="showSideTab($('#posting_4d711beadaf98576f000000b'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d711beadaf98576f000000b"&gt;ATTENTION - Comment Associations Redesigned&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d711beadaf98576f000000b' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d711beadaf98576f000000b/popup/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228623'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-22%20at%2011.35.12" class="img-with-shadow" src="/system/cover_pictures/4d711beadaf98576f000000b/medium/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228623" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Comments&lt;/strong&gt; was embedded in &lt;code&gt;Page::comments&lt;/code&gt; and &lt;code&gt;Blog::Posting::comments&lt;/code&gt;. The difference in nested level causes some troubles with this code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Comment is a top-level-collection now&lt;/h2&gt;

&lt;p&gt;Comments of postings are referenced as&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Page
  references_many :comments, :inverse_of =&amp;gt; :commendable
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and Postings are referenced as&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Posting
    references_many :comments, :inverse_of =&amp;gt; :commendable
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And Comment has:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Comment
   referenced_in :commendable, :inverse_of =&amp;gt; :comments, :polymorphic =&amp;gt; true
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Migrate your data&lt;/h2&gt;

&lt;p&gt;A bit strange! We're using &lt;em&gt;MongoID&lt;/em&gt; but we still need migrations. And this seems to be more difficult than &lt;code&gt;generate migration&lt;/code&gt; in &lt;em&gt;ActiveRecordWorld&lt;/em&gt;?!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; checkout branch 'old_comments'&lt;/li&gt;
&lt;li&gt; run `rake cab:export_comments &amp;gt; /tmp/some_temp_file.json&lt;/li&gt;
&lt;li&gt;checkout branch 'master'&lt;/li&gt;
&lt;li&gt;run `cat /tmp/some_temp_file.json | rake cab:import_old_comments&lt;/li&gt;
&lt;/ol&gt;
</content>
    <updated>2012-01-22 11:37:03 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4d53bb27e779893dd0000007</id>
    <published>2011-02-10T11:17:11+01:00</published>
    <updated>2012-01-22T11:37:11+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4d53bb27e779893dd0000007"/>
    <title>install.rb  for easy installation</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4d53bb27e779893dd0000007',2000);" onmouseover="showSideTab($('#posting_4d53bb27e779893dd0000007'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4d53bb27e779893dd0000007"&gt;install.rb  for easy installation&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4d53bb27e779893dd0000007' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4d53bb27e779893dd0000007/popup/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228631'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-22%20at%2011.35.12" class="img-with-shadow" src="/system/cover_pictures/4d53bb27e779893dd0000007/medium/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228631" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;h2&gt;Clone'n'Code&lt;/h2&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;  curl -o install_cba.rb https://github.com/iboard/CBA/raw/master/install.rb
  ruby install_cba.rb
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Please also read the &lt;a href="http://github.com/iboard/CBA/wiki"&gt;Github-Wiki&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;What &lt;code&gt;install.rb&lt;/code&gt;will do&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Your environment will be checked to make sure it fits the requirements.&lt;/li&gt;
&lt;li&gt;You'll be asked to enter a name for your application.&lt;/li&gt;
&lt;li&gt;CBA will be cloned&lt;/li&gt;
&lt;li&gt;Config-files will be created&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;All you have to do is:&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Edit config-files to fit your needs&lt;/li&gt;
&lt;li&gt;Start your engine (&lt;code&gt;rails server&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sign up your first user, which will be an admin automatically&lt;/p&gt;

&lt;p&gt;Have Fun!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2012-01-22 11:37:11 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Page/4e69e35edaf9855ef3001731</id>
    <published>2011-09-09T11:58:54+02:00</published>
    <updated>2012-01-22T11:38:28+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4e69e35edaf9855ef3001731"/>
    <title>Credits</title>
    <content type="html">Credits&lt;div class="cover_picture" id="cover_picture_4e69e35edaf9855ef3001731" style=""&gt;&lt;a href="#" onclick="image_popup('/system/cover_pictures/4e69e35edaf9855ef3001731/popup/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228708'); return false;"&gt;&lt;img alt="Screen%20shot%202012-01-22%20at%2011.35.12" class="img-with-shadow" src="/system/cover_pictures/4e69e35edaf9855ef3001731/medium/Screen%20Shot%202012-01-22%20at%2011.35.12.png?1327228708" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;The CBA Core-team&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Andreas Altendorfer (Maintainer)&lt;/li&gt;
&lt;li&gt;Felix Mayerhofer&lt;/li&gt;
&lt;li&gt;Rosemarie Reisenberger&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3rd Party Source&lt;/h2&gt;

&lt;p&gt;CBA is openSource and benefits a lot of the work of the openSource community. This is the list of all &lt;em&gt;gems&lt;/em&gt; used for CBA developing.&lt;/p&gt;

&lt;p&gt;The list is not completed yet. Links to the projects will follow here.&lt;/p&gt;

&lt;h1&gt;Thank You!&lt;/h1&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'simplecov'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'&amp;gt;= 0.4.0'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:require&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:group&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:test&lt;/span&gt;

&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"rails"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"~&amp;gt; 3.1.0"&lt;/span&gt;

&lt;span class="c1"&gt;# Rails 3.1 - Asset Pipeline&lt;/span&gt;
&lt;span class="n"&gt;group&lt;/span&gt; &lt;span class="ss"&gt;:assets&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'sass-rails'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"~&amp;gt; 3.1.0.rc"&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'coffee-script'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'uglifier'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'json'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'jquery-rails'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'therubyracer'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'execjs'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'sprockets'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'~&amp;gt; 2.0.0.beta.12'&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="c1"&gt;# Bundle gems needed for Mongoid&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"mongoid"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"2.1.6"&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"bson_ext"&lt;/span&gt;

&lt;span class="c1"&gt;# Bundle gem needed for Devise and cancan&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"devise"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:git&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'git://github.com/iboard/devise.git'&lt;/span&gt; 
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"cancan"&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"omniauth"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"0.2.6"&lt;/span&gt;

&lt;span class="c1"&gt;# Bundle gem needed for paperclip and attachments&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"mongoid-paperclip"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:require&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"mongoid_paperclip"&lt;/span&gt;

&lt;span class="c1"&gt;# MongoID Extensions and extras&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'mongoid-tree'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:require&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'mongoid/tree'&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'mongoid_fulltext'&lt;/span&gt;

&lt;span class="c1"&gt;# Bundle gems for views&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"haml"&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"will_paginate"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"3.0.pre4"&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'escape_utils'&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"RedCloth"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"4.2.5"&lt;/span&gt; &lt;span class="c1"&gt;#"4.2.4.pre3 doesn't work with ruby 1.9.2-p180&lt;/span&gt;

&lt;span class="c1"&gt;# Gems by iboard.cc &lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"jsort"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"~&amp;gt; 0.0.1"&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'progress_upload_field'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'~&amp;gt; 0.0.1'&lt;/span&gt;


&lt;span class="c1"&gt;# Markdown&lt;/span&gt;
&lt;span class="c1"&gt;# do "easy_install pygments" on your system&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'redcarpet'&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'albino'&lt;/span&gt;
&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"nokogiri"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"1.4.6"&lt;/span&gt;


&lt;span class="c1"&gt;# Testing&lt;/span&gt;
&lt;span class="n"&gt;group&lt;/span&gt; &lt;span class="ss"&gt;:development&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:test&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'jasmine'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'1.0.2.1'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'headless'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'0.1.0'&lt;/span&gt;  
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'rspec'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'2.6.0'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'rspec-rails'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'2.6.1'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'json_pure'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'capybara'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'database_cleaner'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'cucumber-rails'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'cucumber'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'spork'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'0.9.0.rc9'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'spork-testunit'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'launchy'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'factory_girl_rails'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"1.1.0"&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'ZenTest'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'4.5.0'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'autotest'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'autotest-rails'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'ruby-growl'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'autotest-growl'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"mocha"&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"gherkin"&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'syntax'&lt;/span&gt; 
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"nifty-generators"&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s2"&gt;"rails-erd"&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'rdoc'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'unicorn'&lt;/span&gt;
  &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'yard'&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <updated>2012-01-22 11:38:28 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4dbebb9adaf9853b3000001a</id>
    <published>2011-05-02T16:11:40+02:00</published>
    <updated>2012-01-22T11:49:21+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4dbebb9adaf9853b3000001a"/>
    <title>New feature 'PageTemplate', and 'PageComponent'</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4dbebb9adaf9853b3000001a',2000);" onmouseover="showSideTab($('#posting_4dbebb9adaf9853b3000001a'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4dbebb9adaf9853b3000001a"&gt;New feature 'PageTemplate', and 'PageComponent'&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4dbebb9adaf9853b3000001a' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4dbebb9adaf9853b3000001a/popup/PageComponents.jpg?1304345524'); return false;"&gt;&lt;img alt="Pagecomponents" class="img-with-shadow" src="/system/cover_pictures/4dbebb9adaf9853b3000001a/medium/PageComponents.jpg?1304345524" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;&lt;strong&gt;New in CBA  - Simple Layout for &lt;code&gt;Page&lt;/code&gt; and &lt;code&gt;PageComponent&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;Page Components&lt;/h2&gt;

&lt;p&gt;A &lt;code&gt;page&lt;/code&gt; in CBA consists of a &lt;code&gt;:name&lt;/code&gt;, a &lt;code&gt;:body&lt;/code&gt;, &lt;code&gt;:attachments&lt;/code&gt;, and a &lt;code&gt;:cover_picture&lt;/code&gt;. Now there is a collection &lt;code&gt;:page_components&lt;/code&gt; too. A &lt;code&gt;Page&lt;/code&gt; can embed as many &lt;code&gt;page_components&lt;/code&gt; as you like. With no 'Layout' components are rendered below the body and attachments, and before comments.&lt;/p&gt;

&lt;p&gt;When editing a Page you'll find 'Add Component' at the end of the form.&lt;/p&gt;

&lt;p&gt;As the Page itself, any PageComponent can use a 'PageTemplate'&lt;/p&gt;

&lt;h2&gt;Page Template&lt;/h2&gt;

&lt;p&gt;Also new in CBA are Page(html)Templates. A &lt;code&gt;PageTemplate&lt;/code&gt; has a name, a css_class, and a html_template. Where &lt;code&gt;html_template&lt;/code&gt; is  HTML-code which can embed any of the following keywords (in CAPITAL letters):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;T I T L E&lt;/code&gt; ... will be replaced by the title of the page.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;B U T T O N S&lt;/code&gt; ... will be replaced by Edit-, and  Delete-buttons&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;C O V E R P I C T U R E&lt;/code&gt; ... will be replaced with an image_tag to the cover-picture of the page&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;B O D Y&lt;/code&gt; .... will be replaced by the B O D Y of the page.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;C O M P O N E N T S&lt;/code&gt; ... replaced by all &lt;code&gt;:page_components&lt;/code&gt; of the page&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;C O M P O N E N T[n]&lt;/code&gt;  ... render component 'n'&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;C O M M E N T S&lt;/code&gt; ... replaced by comments and new comment-form&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;A T T A C H M E N T S&lt;/code&gt; .... render all attachments.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;A T T A C H M E N T[n]&lt;/code&gt; .. link to Attachment 'n' of the page. Render inline if it's of type 'image'&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Page Template Names&lt;/h2&gt;

&lt;p&gt;Please notice that PageComponents doesn't render the entire set of keywords (yet). To identify templates of PageComponents please name all templates "Component: ....."&lt;/p&gt;

&lt;p&gt;You can create a default set of templates by &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;rake db:seed&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Please notice the CSS-Tags which will be printed on $stdout when running this rake-task and make sure you have this tags in your stylesheet.&lt;br&gt;
If you fork CBA after May 2nd, 2011 you will have this css-tags otherwise, or if you doesn't use &lt;code&gt;application.css&lt;/code&gt; but your own css-file, please copy and paste this styles to your file.&lt;/p&gt;

&lt;h2&gt;Example Usage&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="/p/pagecomponent_and_pagetemplat%24"&gt;Demo Page&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    <updated>2012-01-22 11:49:21 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Posting/4f1bce7bdaf9853feb00003d</id>
    <published>2012-01-22T09:53:15+01:00</published>
    <updated>2012-02-13T09:20:58+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/postings/4f1bce7bdaf9853feb00003d"/>
    <title>Rails 3.2 is here!</title>
    <content type="html">&lt;h1 onmouseout="hideWithDelay('posting_4f1bce7bdaf9853feb00003d',2000);" onmouseover="showSideTab($('#posting_4f1bce7bdaf9853feb00003d'));"&gt;&lt;a href="/blogs/4d456adae7798923b100000a/postings/4f1bce7bdaf9853feb00003d"&gt;Rails 3.2 is here!&lt;/a&gt;&lt;/h1&gt;  &lt;div class='cover_picture' id='posting_cover_picture_4f1bce7bdaf9853feb00003d' style=''&gt;
      &lt;a href="#" onclick="image_popup('/system/cover_pictures/4f1bce7bdaf9853feb00003d/popup/rails.png?1327222394'); return false;"&gt;&lt;img alt="Rails" class="img-with-shadow" src="/system/cover_pictures/4f1bce7bdaf9853feb00003d/medium/rails.png?1327222394" /&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;p&gt;&lt;a href="http://weblog.rubyonrails.org/2012/1/20/rails-3-2-0-faster-dev-mode-routing-explain-queries-tagged-logger-store"&gt;The Ruby On Rails Blog&lt;/a&gt; announced the official release of version 3.2.&lt;/p&gt;

&lt;p&gt;I couldn't resist from trying it. Fazit: Faaaast! Some gems I use not available for 3.2, tho. I'm looking forward to move &lt;a href="http://cba.iboard.cc"&gt;CBA&lt;/a&gt; to 3.2 within some weeks.&lt;/p&gt;

&lt;p&gt;Great job done by the RailsCore-Team and contributers. Thank You!&lt;/p&gt;
</content>
    <updated>2012-02-13 09:20:58 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Page/4d6903e3daf98519be000019</id>
    <published>2011-02-26T14:45:07+01:00</published>
    <updated>2012-02-16T17:11:23+01:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4d6903e3daf98519be000019"/>
    <title>Follow Me</title>
    <content type="html">Follow Me&lt;div class="cover_picture" id="cover_picture_4d6903e3daf98519be000019" style=""&gt;&lt;a href="#" onclick="image_popup('/system/cover_pictures/4d6903e3daf98519be000019/popup/vCardMediumQR.png?1322807309'); return false;"&gt;&lt;img alt="Vcardmediumqr" class="img-with-shadow" src="/system/cover_pictures/4d6903e3daf98519be000019/medium/vCardMediumQR.png?1322807309" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h1&gt;Follow me ... &lt;a href="http://altendorfer.at"&gt;Andi's Blog&lt;/a&gt; | &lt;a href="https://plus.google.com/u/0/116071098827301487282"&gt;+iboard.cc&lt;/a&gt; |  &lt;a href="http://twitter.com/Nickendell"&gt;@nickendell&lt;/a&gt;
&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://about.me/andreas.altendorfer"&gt;about.me&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <updated>2012-02-16 17:11:23 +0100</updated>
    <author>-</author>
  </entry>
  <entry>
    <id>tag:cba.iboard.cc,2005:Page/4d39d1422d19473017000007</id>
    <published>2011-01-21T19:32:34+01:00</published>
    <updated>2012-04-24T18:11:02+02:00</updated>
    <link rel="alternate" type="text/html" href="http://cba.iboard.cc/pages/4d39d1422d19473017000007"/>
    <title>README</title>
    <content type="html">README&lt;div class="cover_picture" id="cover_picture_4d39d1422d19473017000007" style=""&gt;&lt;a href="#" onclick="image_popup('/system/cover_pictures/4d39d1422d19473017000007/popup/IMG_0091.jpg?1295697706'); return false;"&gt;&lt;img alt="Img_0091" class="img-with-shadow" src="/system/cover_pictures/4d39d1422d19473017000007/medium/IMG_0091.jpg?1295697706" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h1&gt;CBA - Community Base Application Template&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://github.com/iboard/CBA"&gt;At Github&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Issues&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Known issues maintained in &lt;a href="https://github.com/iboard/CBA/issues"&gt;Github-Issues&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quickstart&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I highly recommend to use &lt;a href="https://rvm.beginrescueend.com/"&gt;RVM&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Requirements for CBA:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A running MongoDB Server&lt;/li&gt;
&lt;li&gt;A rvm gemset for Rails Rails 3.1.0&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;
&lt;pre&gt;   curl -o install_cba.rb &lt;span class="se"&gt;\&lt;/span&gt;
   https://raw.github.com/iboard/CBA/master/install.rb
   ruby install_cba.rb
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;This will install  a fully functional web-application, with user-authentication (incl. omniAuth) on a document oriented, non-SQL, MongoDB/MongoID database. Just ready to be extended by your 'real' application code. As a benefit, CBA will offer two MVCs &lt;code&gt;Page&lt;/code&gt; and &lt;code&gt;Blog&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note&lt;/em&gt;: &lt;a href="http://cba.iboard.cc/p/readme"&gt;Project's README&lt;/a&gt; &lt;em&gt;should be&lt;/em&gt; identical to &lt;a href="http://github.com/iboard/CBA/blob/master/README.textile"&gt;README.textile on Github&lt;/a&gt; -- I try hard to keep both versions in synchronized state, but check out the Github-version too.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;CBA&lt;/em&gt; is forked from &lt;a href="http://github.com/fortuity/rails3-mongoid-devise"&gt;Rails3-Mongoid-Devise by fortuity&lt;/a&gt;, extended by Andi Altendorfer with&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OmniAuth&lt;/li&gt;
&lt;li&gt;Paperclip&lt;/li&gt;
&lt;li&gt;CanCan&lt;/li&gt;
&lt;li&gt;jQuery&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CBA's own implementations&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Models/MVC

&lt;ul&gt;
&lt;li&gt;User&lt;/li&gt;
&lt;li&gt;Blog&lt;/li&gt;
&lt;li&gt;Posting&lt;/li&gt;
&lt;li&gt;Page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Features: 

&lt;ul&gt;
&lt;li&gt;Comments and Attachments for all models&lt;/li&gt;
&lt;li&gt;i18n enabled (en/de)&lt;/li&gt;
&lt;li&gt;installation.rb (See: &lt;a href="http://cba.iboard.cc/blogs/4d456adae7798923b100000a/postings/4d64c604e779892bbf00001d"&gt;Posting&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Configuration in application.yml&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;See: &lt;a href="http://cba.iboard.cc/blogs/4d456adae7798923b100000a/postings/4d53bb27e779893dd0000007"&gt;Posting 'installation.rb'&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;CBA is in heavy development age, so please read &lt;a href="http://cba.iboard.cc"&gt;CBA Blog&lt;/a&gt; from bottom to top. There are some latest news, not mentioned in this README.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Delayed Jobs&lt;/h2&gt;

&lt;p&gt;There is a rake-task to start the background jobs&lt;/p&gt;

&lt;div class="highlight"&gt;
&lt;pre&gt;  rake delayed_jobs:work
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Unfortunatley &lt;a href="http://github.com/tobi/delayed_job"&gt;DelayedJobs by 'tobi'&lt;/a&gt; doesn't work with &lt;em&gt;MongoId&lt;/em&gt;.&lt;br&gt;
So I did this my own way. To define new background-workers follow this steps:&lt;/p&gt;

&lt;p&gt;1 Define a worker in &lt;code&gt;app/workers&lt;/code&gt; (See &lt;a href="http://github.com/iboard/CBA/tree/master/app/workers%20for%20example"&gt;new_sign_up_notifier.rb&lt;/a&gt;)&lt;br&gt;
2 Enqueue new Jobs like shown in &lt;code&gt;app/model/user.rb&lt;/code&gt;, method &lt;code&gt;async_notify_on_creation&lt;/code&gt; (&lt;a href="http://gist.github.com/841907"&gt;Source&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;Resource 'Page'&lt;/h2&gt;

&lt;p&gt;Since nearly any website needs some kind of 'semi-static pages' and we need some kind of object to test the application, there is a resource Page with the following features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Consists of a title and a body&lt;/li&gt;
&lt;li&gt;The body is rendered with &lt;em&gt;RedCloth&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;The MongoId of &lt;code&gt;/page/MONGO_ID&lt;/code&gt; in the browser-address will be replaced by &lt;code&gt;/p/title_of_the_page&lt;/code&gt; with JS.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Testing with Spork&lt;/h2&gt;

&lt;p&gt;To run autotests you have to start the spork-server and then run autotest command&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;AUTOFEATURE=true bundle exec spark&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AUTOFEATURE=true bundle exec autotest&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To run your unit-tests using spork do&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;bundle exec spork TestUnit --port 8988&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;testdrb -I test test/unit/*rb&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Start all at once with thor-task&lt;/h2&gt;

&lt;p&gt;You can use &lt;code&gt;thor application:run_autotests&lt;/code&gt; to start the spork-server and autotest. The shortest way to jump into &lt;em&gt;continuos testing&lt;/em&gt; &lt;/p&gt;

&lt;h2&gt;Layout and Templates&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Edit application.css or 'your_name_given_at_install'.css&lt;/li&gt;
&lt;li&gt;Edit views/layout/application.html or views/layout/'your_name_given_at_install'.html.erb&lt;/li&gt;
&lt;li&gt;Read &lt;a href="/blogs/4d456adae7798923b100000a/postings/4dbebb9adaf9853b3000001a"&gt;Posting&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Visit &lt;a href="/p/pagecomponent_and_pagetemplat%24"&gt;Demo Page&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;License&lt;/h2&gt;

&lt;p&gt;See: &lt;a href="http://cba.iboard.cc/p/freedom"&gt;Freedom&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Links&lt;/h2&gt;

&lt;p&gt;See: &lt;a href="http://cba.iboard.cc/p/links"&gt;Link-page&lt;/a&gt;&lt;/p&gt;
</content>
    <updated>2012-04-24 18:11:02 +0200</updated>
    <author>-</author>
  </entry>
</feed>

