Disable console.log in production
Apr 30th
You know the problem – sometimes you just forget one console.log statement in your JavaScript and have console logs in production mode or even worse – the script is completely broken on IE. Here I describe a way how you can be sure that console is defined and quiet in production mode:
Define a HTML5 data-atribute in your applictaion.html.haml:
%html
%head
...
%body{data-env: Rails.env}
...
Second step is to include this javascript snippet, which checks – after the DOM is loaded – if we are in production mode or if console is undefined. If so, we define console.log as an empty function.
if ($('body').data('env') == 'production' || typeof console == "undefined"){
var console = { log: function() {} };
}
});

Elefile. Send large files. Secured by Steganos.
Apr 4th
Elefile is out! Over the last weeks, we were very thrilled to work on Stegonos‘ newest goodie. Sending big files safely has now become a matter of a few clicks. And Elefile does client to client encryption, ruling out man-in-the-middle attacks and server-breakins safely. We were very thrilled when Steganos Founder and Managing Director Gabriel Yoran asked us to work on the Elefile product and enjoyed the work on it a lot – hopefully as much as you might enjoy using it!
Allready, the german computer magazine PCgo has made a review.
qipoqo is the bitcrowd CampChamp
Mar 18th
Congratulations to qipoqo! They came, pitched and won. We are looking forward to build their product with and for them – a platform for cashfree exchange of services. Of course we’ll keep you informed about the development and so on!
![]()
There’s a nice article on Silicon Allee, where all pitches from the Startup Camp are described.
Here is an blogpost with some more info about qipoqo.
***
Photo by Sandy Hathaway
Meet us at the Startup Camp!
Mar 16th
We’re now off to the Startup Camp. The pitches for the Camp Champ will be at 4pm. Not to be missed! Tomorrow we will be talking about our learning from founding our own projects and developing software for startups.
Meet us there, we’re around!
Christoph and Dirk talking about the campchamp and agile programming
Mar 14th
bitcrowd CampChamp auf dem Startup Camp Berlin – Interview mit Christoph Beck und Dirk Holzapfel from Entrepreneurs Club Berlin e.V. on Vimeo.
Interview mit Christoph Beck und Dirk Holzapfel von bitcrowd, Berlins führender Ruby on Rails-Agentur und Namensgeber des diesjährigen Startup-Wettbewerbs des SCB12 über Lean Startup, Scrum und agile Entwicklung.
Das Interview führt Borris Häring von Berlin-Info.de
bitcrowd CampChamp 2012 – the pitch competition of Startup Camp Berlin 2012
Mar 1st

We are very happy to be the main partner of the Startup Camp Berlin 2012. The bitcrowd CampChamp is an amazing prize! Submit your idea and win an incredible:
- 40 days of development time for your prototype or minimum viable product by Berlin’s best agile software agency bitcrowd
- 16 hours of first-class legal advice by the Berlin based legal firm lindenpartners
- 6 months of office space for 3 team-members at Humboldt Innovation, the technology transfer office of Humboldt University.
The prize
The total value of this year’s bitcrowd CampChamp 2012 prize is approximately 40.000 €!
Best of all:
- No equity,
- Neither loans…
- …nor future procurement commitments.
Apply now! Doors are open until Wednesday March 7th, 2012
Supernice Iconset
Feb 24th
Big props go out to Jan Kovařík for designing the amazing icon set glyphicons and releasing it under CC.
Here’s a little snippet:
Great job!
SCSS or SASS
Jan 12th
Use SCSS or SASS? The opinions vary widely (also at BitCrowd). This blog post issueing the pros and cons of both sides in a clean, objective way. Flaming starts at the comments ![]()
Make Makandra Consul work with RSpec 2.x and Rails 3.x
Jan 9th
To make the RSpec matcher of the authorization solution Consul work with Rspec 2.x you have to include the matcher in spec_helper.rb this way:
RSpec.configure do |config|
config.include Consul::Spec::Matchers
end
Without these lines you’ll get the following error when using the check_power matcher:
Failure/Error: it { should check_power(:submissions) }
NoMethodError:
undefined method 'check_power' for #<RSpec::Core::ExampleGroup::Nested_1:0x00000104e4e210>
# ./spec/controllers/submissions_controller_spec.rb:5:in `block (2 levels) in <top (required)>'
This is how the matcher is defined in Consul:
module Spec
module Matchers
class CheckPower
def initialize(*args)
@expected_args = args
end
def matches?(controller)
@controller_class = controller.class
@actual_args = @controller_class.instance_variable_get('@consul_power_args')
@actual_args == @expected_args
end
def failure_message
"expected #{@controller_class} to check against power #{@expected_args.inspect} but it checked against #{@actual_args.inspect}"
end
def negative_failure_message
"expected #{@controller_class} to not check against power #{@expected_args.inspect}"
end
def description
description = "check against power #{@expected_args.inspect}"
description
end
end
def check_power(*args)
CheckPower.new(*args)
end
end
end
end
ActiveSupport::TestCase.send :include, Consul::Spec::Matchers
Test PDF output with Cucumber
Nov 10th
Want to really test what’s in some PDF output of your Rails application?
If it’s enough for you to test the raw text only, here is a solution:
Add this to your Gemfile (e.g. within your :cucumber group):
Put this in a new file in your step definitions folder:
pages = Array.new
reader = PDF::Reader.new(StringIO.new(page.source))
@pdf = reader.pages.collect(&:text).join("\n")
end
Then /^I should (not )?see "([^\"]*)" in the PDF$/ do |inversion, text|
if inversion
@pdf.should_not include(text)
else
@pdf.should include(text)
end
end
Use your new steps:
And I inspect the generated PDF
Then I should see "Something" in the PDF
Drawback: Whitespaces may be missing in the text output, so you may have to look for “MyText” instead of “My Text” (if you have a suggestion how to fix this, please use the comments).

