<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Object Reload</title>
  
  <link href="http://objectreload.com/" />
  <updated>2011-10-24T08:05:19-07:00</updated>
  <id>http://objectreload.com/</id>
  <author>
    <name>Object Reload</name>
    <email>hello@objectreload.com</email>
  </author>

  
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/objectreload" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="objectreload" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
      <title>Why we believe EU grants are detrimental to entrepreneurship</title>
      <link href="http://objectreload.com/articles/2011/01/why-we-believe-eu-grants-are-detrimental-to-entrepreneurship.html" />
      <published>2011-01-06T00:00:00-08:00</published>
      <updated>2011-01-06T00:00:00-08:00</updated>
      <id>http://objectreload.com/articles/2011/01/why-we-believe-eu-grants-are-detrimental-to-entrepreneurship</id>
      
      <author>
        <name>Mateusz Drożdżyński</name>
        <email>m.drozdzynski@objectreload.com</email>
      </author>
      
      <content type="html">
        Polish government has been offering grants of up to £200,000 for new startups as a part of its Innovative Economy programme. They're easy to get, beneficiaries are not evaluated according to their likelihood of succeeding as long as their business plans meet certain predefined criteria. They're also not held accountable if their business ultimately fails. Sounds like a good plan? Don't think so.
        &lt;p&gt;Those grants teach aspiring entrepreneurs all the wrong lessons. They open up a possibility to get interest-free non-repayable business funding with no (or very limited) accountability. Business plans are evaluated by clerks with no prior investment experience, VC or otherwise. How are they meant to be able to asses whether your project is a good idea and will turn a profit?&lt;/p&gt;

&lt;p&gt;This explains why the failure rate of those businesses is so high—people apply for grants because they&amp;#8217;re available and so easy to get (why would anyone pass on such an opportunity?) without even thinking their ideas through. They burn through the funds over a couple years and close down shop with no ideas how to turn it into a real business. No questions asked.&lt;/p&gt;

&lt;p&gt;The Innovative Economy programme seems to be doing more harm than good. We&amp;#8217;re raising a generation of wannabe-entrepreneurs who think that someone else will always be paying their debts and fund their ridiculous ideas. Each year millions of euros are being wasted whilst the government and the EU are patted on their backs for creating equal opportunities for everyone.&lt;/p&gt;

&lt;p&gt;The majority of business funded through this programme could&amp;#8217;ve easily been bootstrapped, making their founders think twice before spending every penny. The remaining few which required high startup capital (e.g. hardware companies) should have been looking for private investors which would not only provide necessary funds but also advice and guidance.&lt;/p&gt;

&lt;p&gt;Luckily not long from now the programme will be over and maybe then people will realise how bad an idea it was in the first place&amp;#8230;&lt;/p&gt;
      &lt;img src="http://feeds.feedburner.com/~r/objectreload/~4/w5iYl5ao5EE" height="1" width="1"/&gt;</content>
    </entry>
  
    <entry>
      <title>How we’re going paperless in 2011</title>
      <link href="http://objectreload.com/articles/2011/01/how-we-are-going-paperless-in-2011.html" />
      <published>2011-01-05T00:00:00-08:00</published>
      <updated>2011-01-05T00:00:00-08:00</updated>
      <id>http://objectreload.com/articles/2011/01/how-we-are-going-paperless-in-2011</id>
      
      <author>
        <name>Mateusz Drożdżyński</name>
        <email>m.drozdzynski@objectreload.com</email>
      </author>
      
      <content type="html">
        We are always looking for ways to streamline how Object Reload is run and going completely paperless is one of the things I always wanted. 2011 might just be the year when we make that happen.
        &lt;p&gt;We already do most of our business electronically, but here are some areas that have been a problem for us in the past (or still are):&lt;/p&gt;

&lt;p&gt;- Contracts - Invoices (to customers and from contractors) - Bills - Other (including snail-mail)&lt;/p&gt;

&lt;p&gt;Let&amp;#8217;s see how we tackled these and what&amp;#8217;s still left to be done.&lt;/p&gt;

&lt;h2 id='contracts'&gt;Contracts&lt;/h2&gt;

&lt;p&gt;Back when we started in 2009 all contracts we signed were paper-based, both for our customers and for our contractors. We&amp;#8217;d have them printed, signed and shipped, taking a significant amount of time for all parties involved. Worse still, our developers&amp;#8217; contracts used to be renewed &lt;em&gt;monthly&lt;/em&gt;, generating even more paper work.&lt;/p&gt;

&lt;p&gt;At the beginning of 2010 we decided to move to annual contracts for our partners. It was a &lt;strong&gt;92%&lt;/strong&gt; reduction in the number of documents exchanged, but still not something we were satisfied with. So in late 2010 we started experimenting with &lt;a href='http://rightsignature.com'&gt;RightSignature&lt;/a&gt;, a great tool for online document signing. We&amp;#8217;re now using it for &lt;strong&gt;all customer and supplier contracts&lt;/strong&gt;, no paper involved. This not only helped us sign contracts much faster, but at the same time provide a better experience for our customers.&lt;/p&gt;

&lt;h2 id='invoices'&gt;Invoices&lt;/h2&gt;

&lt;p&gt;This is a big problem for our Polish branch—local law is very restrictive with respect to electronic invoices (you need a qualified digital signature) and very vague about sending PDFs by email. Therefore most invoices we send and receive are still printed and posted, although we do send them by email first. There&amp;#8217;s definitely a lot of room for improvement on that front.&lt;/p&gt;

&lt;p&gt;Invoices from our contractors used to be dealt with in the same manner, but starting this month we&amp;#8217;ve switched to &lt;strong&gt;RightSignature&lt;/strong&gt; due to slightly less restrictive laws when dealing with individuals as opposed to companies.&lt;/p&gt;

&lt;h2 id='bills'&gt;Bills&lt;/h2&gt;

&lt;p&gt;For the reasons outlined above, most utility companies still send paper invoices and there&amp;#8217;s little we can do about it. Our &lt;a href='http://www.playmobile.pl'&gt;previous mobile operator&lt;/a&gt; used to send us e-invoices, but since we switched to a &lt;a href='http://www.era.pl'&gt;different one&lt;/a&gt; it&amp;#8217;s no longer an option (note: they e-invoice individual customers, but not companies).&lt;/p&gt;

&lt;h2 id='other'&gt;Other&lt;/h2&gt;

&lt;p&gt;We use a number of tools to help us run on as little paper as possible. We use &lt;a href='http://basecamphq.com'&gt;Basecamp&lt;/a&gt; for managing projects, &lt;a href='http://backpackit.com'&gt;Backpack&lt;/a&gt; for knowledge-sharing and &lt;a href='http://campfirenow.com'&gt;Campfire&lt;/a&gt; for real-time chat. We also rely on &lt;a href='http://dropbox.com'&gt;Dropbox&lt;/a&gt; to keep all documents in sync between me and our office manager.&lt;/p&gt;

&lt;p&gt;Most mail that comes in either needs to be kept for legal reasons or is shredder/thrown-away anyway, so we had no need to digitalise it all, but I&amp;#8217;m revisiting that topic to see if we can minimise the number of documents stored even further.&lt;/p&gt;

&lt;h2 id='what_to_do_next'&gt;What to do next?&lt;/h2&gt;

&lt;p&gt;First and foremost, we need to find a workaround which will allow us to go completely digital with invoices. This is still a major flaw in our system and we&amp;#8217;re not giving up on trying to fix it. Bills and other documents are already limited to a few essentials, but I want to cut back even further.&lt;/p&gt;

&lt;h2 id='what_are_your_experiences_with_going_paperless'&gt;What are your experiences with going paperless?&lt;/h2&gt;

&lt;p&gt;If you have any experiences, good or bad, with going paperless or any tools that you can recommend, please share them with us! &lt;a href='mailto:hello@objectreload.com'&gt;Email us&lt;/a&gt;, &lt;a href='http://twitter.com/objectreload.com'&gt;stalk us on Twitter&lt;/a&gt; or &lt;a href='http://facebook.com/objectreload'&gt;visit our Facebook page&lt;/a&gt;. We appreciate all your comments.&lt;/p&gt;
      &lt;img src="http://feeds.feedburner.com/~r/objectreload/~4/WOC0DEXppmE" height="1" width="1"/&gt;</content>
    </entry>
  
    <entry>
      <title>Nurph’ said.</title>
      <link href="http://objectreload.com/articles/2011/01/nurph.html" />
      <published>2011-01-04T00:00:00-08:00</published>
      <updated>2011-01-04T00:00:00-08:00</updated>
      <id>http://objectreload.com/articles/2011/01/nurph</id>
      
      <content type="html">
        We're happy to announce that for the past two months we've been helping [Nurph](http://nurph.com) bring to life Twitter's missing group feature and enable you to chat with your Twitter community in real-time.
        &lt;h2 id='what_is_nurph'&gt;What is Nurph?&lt;/h2&gt;
&lt;iframe src='http://player.vimeo.com/video/17430906' frameborder='0' height='225' width='400'&gt; &lt;/iframe&gt;
&lt;p&gt;Every Twitter user needs a place to bring their friends &amp;amp; followers together to chat, and that&amp;#8217;s what Nurph Channels do best. Extend the conversation by chatting in real-time with your Twitter friends whilst your followers can watch.&lt;/p&gt;

&lt;p&gt;We believe they have the potential to be one of the hottest startups of 2011, so make sure to check them out or follow &lt;a href='http://blog.nurph.com/'&gt;their blog&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id='whos_working_on_nurph'&gt;Who&amp;#8217;s working on Nurph?&lt;/h2&gt;

&lt;p&gt;Kudos go to &lt;a href='http://twitter.com/szimek'&gt;Szymon&lt;/a&gt; who&amp;#8217;s been working closely with Neil (the founder of Nurph) to bring to awesome product to you.&lt;/p&gt;

&lt;p&gt;&lt;img src='/content/team/szymon-nowak.jpg' alt='Szymon Nowak' /&gt;&lt;/p&gt;
      &lt;img src="http://feeds.feedburner.com/~r/objectreload/~4/BDYUeZlE4cw" height="1" width="1"/&gt;</content>
    </entry>
  
    <entry>
      <title>Happy New Year!</title>
      <link href="http://objectreload.com/articles/2011/01/happy-new-year.html" />
      <published>2011-01-01T00:00:00-08:00</published>
      <updated>2011-01-01T00:00:00-08:00</updated>
      <id>http://objectreload.com/articles/2011/01/happy-new-year</id>
      
      <content type="html">
        2010 has been a tremendous year for all of us, for which we are all very grateful. We've established some fantastic partnerships, helped launch and maintain amazing products and the outlook for 2011 is even better!
        &lt;p&gt;We&amp;#8217;ll be making some exciting announcements in the first quarter of 2011. We&amp;#8217;re on track to launch our first in-house product and are dying to share it with you. It&amp;#8217;s been a roller-coaster ride with many ups and downs, but we&amp;#8217;re sure it&amp;#8217;ll be worth it. Stay tuned for more updates on that front.&lt;/p&gt;

&lt;p&gt;I hope 2010 has been a phenomenal year for all of you as well. But hey—2011 will be even better, right? Let&amp;#8217;s make is so!&lt;/p&gt;
      &lt;img src="http://feeds.feedburner.com/~r/objectreload/~4/8t2DQHfbEAE" height="1" width="1"/&gt;</content>
    </entry>
  
    <entry>
      <title>The Cambridge Student interview with Mateusz</title>
      <link href="http://objectreload.com/articles/2010/11/the-cambridge-student-interview-with-mateusz.html" />
      <published>2010-11-06T00:00:00-07:00</published>
      <updated>2010-11-06T00:00:00-07:00</updated>
      <id>http://objectreload.com/articles/2010/11/the-cambridge-student-interview-with-mateusz</id>
      
      <content type="html">
        [The Cambridge Student](http://www.tcs.cam.ac.uk) has recently [profiled (p. 16)](http://www.tcs.cam.ac.uk/download/TCS_Volume12_Michaelmas_Issue6.pdf) Mateusz and asked him about his academic and business careers. In his answers he describes how he developed his passion for building intuitive software, what inspired him to start Object Reload and how he manages to run the company whilst completing his degree. Read ahead for the full transcript of the interview.
        &lt;h2 id='q_what_are_your_favourite_places_to_visit_in_cambridge'&gt;Q: What are your favourite places to visit in Cambridge?&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A: I always enjoy winding down after a busy week by going to Starbucks and&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;reading a good book, especially earlier in the morning when it’s still quiet and peaceful; or just strolling around the city, admiring the architecture and looking for inspiration.&lt;/p&gt;

&lt;h2 id='q_what_is_the_most_unlikely_skill_which_you_have_learnt_while_at'&gt;Q: What is the most unlikely skill which you have learnt while at&lt;/h2&gt;

&lt;p&gt;Cambridge?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A: It would have to be appreciating free time. I learnt to schedule a few&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;hours a week just to clear my mind of distractions and reflect, which is something I would have previously considered a waste of time.&lt;/p&gt;

&lt;h2 id='q_how_good_is_cambridge_at_supporting_your_software_design_activities'&gt;Q: How good is Cambridge at supporting your software design activities?&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A: Computer Science here is very theoretical, so the majority of courses&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;focus on things which have no direct application in software design. Nonetheless, there were a few opportunities which enabled me to pursue my interest in software design and verify what I’d learnt from the experience of running a software company.&lt;/p&gt;

&lt;h2 id='q_were_you_interested_in_software_design_before_arriving_at_cambridge'&gt;Q: Were you interested in software design before arriving at Cambridge?&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A: Definitely. Software design has been my passion for a long time now,&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;having started freelancing when I was 15. I love building software which helps people solve real problems and this has inspired me to start my company—Object Reload. We believe software should be easy and intuitive and try to focus on making everything as simple as possible, but no simpler.&lt;/p&gt;

&lt;h2 id='q_does_your_academic_work_ever_conflict_with_your_extracurricular'&gt;Q: Does your academic work ever conflict with your extra-curricular&lt;/h2&gt;

&lt;p&gt;commitments?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A: I would like to think that I can stay on top of commitments rather well.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Juggling academic work, rowing and running a company can be hard at times, but my passion for simplicity has enabled me to streamline things as much as possible. I try to read email only once a day, hand over day-to-day running of the company to my Executive Assistant and spend a fair amount of time each week thinking how to make things less complicated and make better use of my time.&lt;/p&gt;
      &lt;img src="http://feeds.feedburner.com/~r/objectreload/~4/GekPKsJZbrI" height="1" width="1"/&gt;</content>
    </entry>
  
    <entry>
      <title>Thoughts on SEO</title>
      <link href="http://objectreload.com/articles/2010/09/thoughts-on-seo.html" />
      <published>2010-09-23T00:00:00-07:00</published>
      <updated>2010-09-23T00:00:00-07:00</updated>
      <id>http://objectreload.com/articles/2010/09/thoughts-on-seo</id>
      
      <author>
        <name>Mateusz Drożdżyński</name>
        <email>m.drozdzynski@objectreload.com</email>
      </author>
      
      <content type="html">
        Being a software company, often times we discuss with our clients their reasoning behind particular features they want us to build into their applications or websites. It helps both parties clarify the business value behind it, resolve any misunderstandings and misconceptions as well as work on alternative solutions should they be needed. There's only one argument we dread more than anything — "because of SEO". Let us explain why.
        &lt;h2 id='reading_the_tea_leaves'&gt;Reading the tea leaves&lt;/h2&gt;

&lt;p&gt;SEO is nothing more than that. One may argue that it&amp;#8217;s more like fine-tuning a system by carrying out small incremental changes, analysing their effect and figuring out whether they did the trick or not. They&amp;#8217;re wrong. Google&amp;#8217;s algorithms are way too complex to be beaten just by looking at them from the outside. Your conclusions are likely to be drawn from false assumptions about what you think influenced the ranking on a given day.&lt;/p&gt;

&lt;p&gt;Still thinking that those few extra links you stuck at the bottom of the page and all those keywords you threw into that article, making it completely incomprehensible for human beings, gave you that last boost in Google? Think twice — it&amp;#8217;s more likely that your page was simply liked to from a few more pages and voilà — you&amp;#8217;re up a few spots!&lt;/p&gt;

&lt;h2 id='optimise_for_your_customers_not_google'&gt;Optimise for your customers, not Google&lt;/h2&gt;

&lt;p&gt;How would you feel dining at a restaurant where food is optimised for industry critics and reviewers who, for example, happen to like over-salted fatty food with little nutritional value, but since that&amp;#8217;s what they give good reviews for everyone is served this crap?&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s exactly what SEO is about — pleasing Google at the expense of your customers and people who actually care about the content on your site.&lt;/p&gt;

&lt;p&gt;Our rule of thumb for SEO is remarkably simple — if it doesn&amp;#8217;t improve usability, you&amp;#8217;re doing it wrong.&lt;/p&gt;

&lt;h2 id='focus_on_whats_important'&gt;Focus on what&amp;#8217;s important&lt;/h2&gt;

&lt;p&gt;Snap out of this delusional thinking and check again who is paying your bills. I doubt it&amp;#8217;s Google. Focus on making your clients happy by optimising your site for them and they&amp;#8217;ll spread the good word.&lt;/p&gt;

&lt;p&gt;SEO is about quantity, not quality — would you rather have those extra few visitors you gained by trying to outsmart Google or a dedicated customer base who is enjoying your product because you care deeply about them? For us it&amp;#8217;s a no-brainer.&lt;/p&gt;

&lt;h2 id='leave_clever_tricks_to_google'&gt;Leave clever tricks to Google&lt;/h2&gt;

&lt;p&gt;Google is one of those places where cleverness flourishes in its purest form. They employ some of the most talented individuals on the planet to get search just right, so take your smart-ass hat off and let them figure it all out. They&amp;#8217;re doing their best to promote sites which bring quality content to the customer and demote those who don&amp;#8217;t.&lt;/p&gt;

&lt;p&gt;Focus on improving yourself and making awesome products, and believe us — you will reach the top sooner rather than later.&lt;/p&gt;
      &lt;img src="http://feeds.feedburner.com/~r/objectreload/~4/leIF07XAufk" height="1" width="1"/&gt;</content>
    </entry>
  
    <entry>
      <title>Thoughts on testing—part 1</title>
      <link href="http://objectreload.com/articles/2010/09/thoughts-on-testing-part-1.html" />
      <published>2010-09-17T00:00:00-07:00</published>
      <updated>2010-09-17T00:00:00-07:00</updated>
      <id>http://objectreload.com/articles/2010/09/thoughts-on-testing-part-1</id>
      
      <author>
        <name>Jakub Kuźma</name>
        <email>j.kuzma@objectreload.com</email>
      </author>
      
      <content type="html">
        It doesn't take a genius to realise that testing is a very personal matter. From Test::Unit purists to [RSpec](http://github.com/dchelimsky/rspec) evangelists, everyone has their own take on testing Ruby code. And whilst we believe that not only there are no silver bullets in most of the problems in software development but personal preferences make it unlikely that there will ever be any, we'd like to share our thoughts about testing in this series of posts. We hope it will be as enjoyable for you to read as it was for us to write.
        &lt;h2 id='consider_using_testunit_before_delving_into_thirdparty_frameworks'&gt;Consider using Test::Unit before delving into third-party frameworks.&lt;/h2&gt;

&lt;p&gt;There&amp;#8217;s nothing wrong with the plain ol&amp;#8217; Test::Unit. In fact, choosing it over fancier solutions such as RSpec, has many advantages.&lt;/p&gt;

&lt;p&gt;Firstly, you&amp;#8217;ll have hard time finding a Rails developer is unfamiliar with Test::Unit. Using it in your projects guarantees minimum hassle when swapping developers between projects.&lt;/p&gt;

&lt;p&gt;Whilst RSpec-like syntax offers some sugar candy it can be quite misleading sometimes. Consider the following two examples:&lt;/p&gt;
&lt;noscript&gt;
    class PostTest &amp;lt; ActiveSupport::TestCase
      test "adds 20 points to post author" do
        @post.save!
        assert 20, @post.author.points # should be assert_equal
      end

      should "add 20 points to post author" do
        @post.save!
        @post.author.points == 20 # no assertion, should be "@post.author.points.should == 20"
      end
    end
&lt;/noscript&gt;&lt;script src='http://gist.github.com/584078.js?file=1.rb'&gt; &lt;/script&gt;
&lt;p&gt;The first test will always pass, regardless of the value of &lt;code&gt;@post.author.points&lt;/code&gt; since &lt;code&gt;20&lt;/code&gt; evaluates to &lt;code&gt;true&lt;/code&gt;. Apparently mistakingly writing &lt;code&gt;assert&lt;/code&gt; instead of &lt;code&gt;assert_equal&lt;/code&gt; is quite a common fallacy of Test::Unit, often cited by RSpec enthusiast. It is not uncommon however to encounter the second example in an RSpec or a &lt;a href='http://github.com/thoughtbot/shoulda'&gt;shoulda&lt;/a&gt; + &lt;a href='http://github.com/jm/matchy'&gt;matchy&lt;/a&gt; test suite, where a similar mistake is made by forgetting to add &lt;code&gt;.should&lt;/code&gt; before the comparison.&lt;/p&gt;

&lt;h2 id='nested_contexts_make_writing_tests_easy_but_reading_them_tough_as_hell'&gt;Nested contexts make writing tests easy, but reading them tough as hell.&lt;/h2&gt;

&lt;p&gt;It isn&amp;#8217;t unusual to find between 10 and 15 contexts in a single test case. Each with its own setup, some nested three or four leves deep, yet sometimes containing only a single test. We found those test cases to be extremely unmaintainable, especially when you&amp;#8217;re trying to figure out which setups apply to a particular test. Keep your tests as flat as possible (or don&amp;#8217;t use contexts at all) and avoid deeply-nested setups at all cost. Don&amp;#8217;t worry too much when you repeat some code in your tests — DRY is great for your application code, but tests need to be readable first and foremost.&lt;/p&gt;

&lt;h2 id='dont_get_all_touchyfeely_with_your_database_save_records_only_when_you'&gt;Don&amp;#8217;t get all touchy-feely with your database. Save records only when you&lt;/h2&gt;

&lt;p&gt;have to.&lt;/p&gt;

&lt;p&gt;Avoid saving records in setups — saving your records in unnecessary in the majority of your test cases, especially when you&amp;#8217;re dealing with validations or properties which can be tested without ensuring database persistence. Save your records only when you have do, and do so from within that particular test. Try not to add things to your setup which are only used in one or two tests — you&amp;#8217;re better off having some repetition than initialising your data set unnecessarily way too many times.&lt;/p&gt;

&lt;p&gt;To illustrate this further — the following should be considered a bad practice:&lt;/p&gt;
&lt;noscript&gt;
    class PostTest &amp;lt; ActiveSupport::TestCase
      def setup
        @post = Post.make # "generic" post
        @old_post = Post.make(:created_at =&gt; 1.year.ago)
        @reported_post = Post.make.tap(&amp;:report)
      end

      # ...
    end
&lt;/noscript&gt;&lt;script src='http://gist.github.com/584078.js?file=2.rb'&gt; &lt;/script&gt;
&lt;p&gt;And refactored as follows:&lt;/p&gt;
&lt;noscript&gt;
    class PostTest &amp;lt; ActiveSupport::TestCase
      def setup
        @post = Post.make_unsaved
      end

      test "reporting posts" do
        @post.report! # saves and reports the post when needed
        assert @post.reported?
      end

      # ...
    end
&lt;/noscript&gt;&lt;script src='http://gist.github.com/584078.js?file=3.rb'&gt; &lt;/script&gt;
&lt;h2 id='set_up_in_startup'&gt;Set up in startup.&lt;/h2&gt;

&lt;p&gt;Parts of your test case don&amp;#8217;t need to be re-initialised for every single test case. You can avoid unnecessary database queries by instantiating them in &lt;code&gt;self.startup&lt;/code&gt; instead. In fact, you can apply this principle to all data which is not the subject of the individual test case, e.g. when testing Posts, try to avoid creating new users for every single test scenario — do it once during startup.&lt;/p&gt;
&lt;noscript&gt;
    class PostTest &amp;lt; ActiveSupport::TestCase
      def self.startup
        @@author = User.make
      end

      def setup
        @post = Post.make_unsaved(:author =&gt; @@author)
      end

      test "saves successfully" do
        assert @post.save
      end

      test "can be reported" do
        @post.save
        assert @post.report
      end

      # ...
    end
&lt;/noscript&gt;&lt;script src='http://gist.github.com/584078.js?file=4.rb'&gt; &lt;/script&gt;
&lt;h2 id='sharing_is_caring__do_it_with_modules'&gt;Sharing is caring — do it with modules.&lt;/h2&gt;

&lt;p&gt;Often times you&amp;#8217;ll end up with common behaviours you&amp;#8217;d want to test across multiple models. You can achieve modularity in no effort by using Ruby modules:&lt;/p&gt;
&lt;noscript&gt;
    module RemovableTests
      def test_sets_removed_at_attribute
        @model.remove
        assert @model.removed_at
      end
    end

    class PostTest &amp;lt; ActiveSupport::TestCase
      include RemovableTests

      def setup
        @post = @model = Post.make_unsaved
      end

      # ...
    end
&lt;/noscript&gt;&lt;script src='http://gist.github.com/584078.js?file=5.rb'&gt; &lt;/script&gt;
&lt;p&gt;No magic, pure awesomeness. This simple trick will help you DRY-up your tests and share common test cases between different models.&lt;/p&gt;

&lt;h2 id='summing_up__the_good_the_bad_and_the_ugly'&gt;Summing up — the good, the bad and the ugly.&lt;/h2&gt;

&lt;p&gt;Stay tuned for more thoughts on testing, but until then, here&amp;#8217;s a short summary of what we believe is worth taking away from this article:&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;Keep things simple&lt;/strong&gt; — Test::Unit is &lt;em&gt;good&lt;/em&gt; enough most of the time. Avoid choosing RSpec just because it&amp;#8217;s in fashion at the moment.&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;Keep things lightweight&lt;/strong&gt; — only save records to the database if you absolutely have to. Doing it before every test case is &lt;em&gt;bad&lt;/em&gt; for performance.&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;Keep things flat&lt;/strong&gt; — deeply nested contexts are &lt;em&gt;ugly&lt;/em&gt; as they hinder readability of your test cases. Split your tests up into different files if they&amp;#8217;re getting too long.&lt;/p&gt;
      &lt;img src="http://feeds.feedburner.com/~r/objectreload/~4/R5eE568Yl0Q" height="1" width="1"/&gt;</content>
    </entry>
  
    <entry>
      <title>September SRUG meeting and Rails 3: Appreciate with Charity campaign</title>
      <link href="http://objectreload.com/articles/2010/09/september-srug-meeting-and-rails-3-appreciate-with-charity-campaign.html" />
      <published>2010-09-07T00:00:00-07:00</published>
      <updated>2010-09-07T00:00:00-07:00</updated>
      <id>http://objectreload.com/articles/2010/09/september-srug-meeting-and-rails-3-appreciate-with-charity-campaign</id>
      
      <content type="html">
        [Silesian Ruby User Group](http://srug.pl), an organisation dedicated to promoting Ruby and Ruby on Rails in Silesia, is hosting its next meeting in Bielsko-Biała on the 17&lt;sup&gt;th&lt;/sup&gt; of September 2010. The event will start at 7pm in [Yacht Klub Polski Bielsko](http://www.ykpb.pl/) and move off to a local pub around 9pm for a networking session and a few pints of local brew. We're very excited to be speaking there, so make sure not to miss it.
        &lt;p&gt;- &lt;em&gt;Introduction to creating Rich Internet Applications using YUI3 and Rails 3&lt;/em&gt; — Jakub Kuźma from &lt;a href='http://objectreload.com&amp;quot;'&gt;Object Reload&lt;/a&gt; (that&amp;#8217;s us!) will talk about using the newest version of &lt;a href='http://developer.yahoo.com/yui/3/'&gt;Yahoo! User Interface Library&lt;/a&gt; to create sophisticated browser applications. - &lt;em&gt;TemplateDerby — extended ERB&lt;/em&gt; — Błażej Kosmowski from &lt;a href='http://selleo.com'&gt;Selleo&lt;/a&gt; will present his DRYML inspired templating system based on ERB - &lt;em&gt;Objects in the database&lt;/em&gt; — Tomasz Bąk from Selleo will guide us through interesting ways to serialise objects in relational databases with ActiveRecord, YAML, JSON and others.&lt;/p&gt;

&lt;p&gt;Whether you&amp;#8217;re genuinely interested in any of these topics or just want to hang out with the local Rails community, SRUG meetings are definitely worth coming to. Registration is now open at &lt;a href='http://srug.pl/2010/09/02/wrzesniowe-spotkanie.html'&gt;srug.pl&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PS.&lt;/strong&gt; Have you heard about the &lt;a href='http://mycharitywater.org/rails3'&gt;Rails 3: Appreciate with Charity&lt;/a&gt; campaign? We&amp;#8217;re giving back to the community by raising money for &lt;a href='http://www.charitywater.org/'&gt;charity: water&lt;/a&gt; to help build a freshwater well and give 5,000 people access to clean water. If you enjoy using &lt;a href='http://rubyonrails.org'&gt;Rails 3&lt;/a&gt;, please consider donating.&lt;/p&gt;
      &lt;img src="http://feeds.feedburner.com/~r/objectreload/~4/wAqj5M-j9-E" height="1" width="1"/&gt;</content>
    </entry>
  
    <entry>
      <title>Meet us at RubyConfUa 2010 and Future of Web Apps London 2010</title>
      <link href="http://objectreload.com/articles/2010/08/meet-us-at-rubyconf-ua-2010-and-future-of-web-apps-london-2010.html" />
      <published>2010-08-28T00:00:00-07:00</published>
      <updated>2010-08-28T00:00:00-07:00</updated>
      <id>http://objectreload.com/articles/2010/08/meet-us-at-rubyconf-ua-2010-and-future-of-web-apps-london-2010</id>
      
      <content type="html">
        We are glad to be able to announce the line-up of tech conferences we will be attending in the next few months. You will be able to meet us at the Future of Web Apps London 2010 (4-5 Oct 2010) as well as RubyConfUa 2010 in Kiev (16-17 Oct 2010). Give us a shout if you would like to meet up and chat.
        &lt;p&gt;&lt;strong&gt;RubyConfUa&lt;/strong&gt; and &lt;strong&gt;Future of Web Apps&lt;/strong&gt; are two completely different beasts in the conference world, yet both very relevant to what we do. The former is a great opportunity to socialise with our fellow Ruby programmers, exchange knowledge and talk about all the latest and greatest inside the world of Ruby and Rails. The latter gives us a chance to reflect on web application market and get a glimpse into the future we are all helping to create. We could not recommend them highly enough.&lt;/p&gt;

&lt;p&gt;At &lt;strong&gt;RubyConfUa&lt;/strong&gt; we are particularly looking forward to hearing our friend &lt;a href='http://twitter.com/josevalim'&gt;José Valim&lt;/a&gt; talk about &lt;em&gt;Past, Present and Future of Rails&lt;/em&gt;. We are also stoked to hear &lt;a href='http://twitter.com/drogus'&gt;Piotr Sarnacki&lt;/a&gt; and &lt;a href='http://twitter.com/hubert_lepicki'&gt;Hubert Łępicki&lt;/a&gt; give their talks on &lt;em&gt;Rails 3 mountable apps&lt;/em&gt; and &lt;em&gt;Measuring Agile Development Process with Ruby&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;At &lt;strong&gt;RubyConfUa&lt;/strong&gt; you will be able to meet:&lt;/p&gt;

&lt;p&gt;- Jakub Kuźma - Szymon Nowak - Wojciech Wnętrzak&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Future of Web Apps&lt;/strong&gt; also has a fantastic line-up this year. Kicking off with &lt;em&gt;NOW is the time!&lt;/em&gt; by David Hauser, followed by &lt;em&gt;The Future of Startups&lt;/em&gt; by Andrew Mason from &lt;a href='http://groupon.com'&gt;Groupon&lt;/a&gt; and &lt;em&gt;The 37signals way: A look into the design process of 37signals&lt;/em&gt; by Ryan Singer, this year&amp;#8217;s FOWA is looking to be nothing short of excellent.&lt;/p&gt;

&lt;p&gt;At &lt;strong&gt;FOWA&lt;/strong&gt; you will be able to meet:&lt;/p&gt;

&lt;p&gt;- Mateusz Drożdżyński&lt;/p&gt;

&lt;p&gt;We are very excited to meet you all there!&lt;/p&gt;
      &lt;img src="http://feeds.feedburner.com/~r/objectreload/~4/DUm2Zn1ZRNA" height="1" width="1"/&gt;</content>
    </entry>
  
    <entry>
      <title>Ready, steady, go!</title>
      <link href="http://objectreload.com/articles/2010/08/ready-steady-go.html" />
      <published>2010-08-27T00:00:00-07:00</published>
      <updated>2010-08-27T00:00:00-07:00</updated>
      <id>http://objectreload.com/articles/2010/08/ready-steady-go</id>
      
      <content type="html">
        We've just launched our new website and now we're updating it with a blog! This is where we'll be posting about our insights into web development, design, business and more.
        &lt;p&gt;We&amp;#8217;ve always wanted an outlet to share our thoughts with our audience and now we&amp;#8217;ve got one.&lt;/p&gt;

&lt;p&gt;Stay tuned for more:&lt;/p&gt;

&lt;p&gt;- Ruby on Rails articles and tutorials - Product updates - Insights into how we do business - &amp;#8230; and more!&lt;/p&gt;

&lt;p&gt;You can also &lt;a href='http://twitter.com/objectreload'&gt;follow us on Twitter&lt;/a&gt; or &lt;a href='http://www.facebook.com/pages/Object-Reload/137070469668515'&gt;become a fan on Facebook&lt;/a&gt; too keep up with what we have to say.&lt;/p&gt;
      &lt;img src="http://feeds.feedburner.com/~r/objectreload/~4/j_kUVgeMsys" height="1" width="1"/&gt;</content>
    </entry>
  
</feed>

