Sunday, 28 June 2009

Vote for us in the Techcrunch Europa Awards!

Hey all – we’ve got a bit of a favour to ask: we’ve been nominated in the Techcrunch Europa awards for Best Bootstrapped Startup (yay!) and we need your vote!

Click here to vote for MyFolia for Best Bootstrapped Startup

There is no signup or email required to vote, it’s just a simple click-and-vote process on PollDaddy – so if you have a spare second or two to vote for us we’d be very grateful! Voting ends this Wednesday – so be quick!

For anyone not in the internet industry and wondering what a “bootstrapped startup” is: A bootstrapped startup is any website run by people who are completely funding it themselves – with no outside company involvement or investment. The two of us have been running Folia completely our of our own pocket right from day one and we are really proud of how far we have taken it, and how much support we have had from all of our wonderful, amazing users in this time.

Many thanks for your support guys!

Saturday, 13 June 2009

Defeating the spammers

This month we've received an influx of backlink spammers setting up accounts and posting only links to sites they've set up. Apparently some site out there that does this for a living found our site, due to it's high page rank, and recommended us for it's backlink spamming newsletter. As a result we've been spending most waking moments checking who has signed up and deleting accounts that only set up 'spam gardens'.

We've also changed the site so that when a 'spam garden' is set up, and we don't notice it then we've put nofollow attributes to all links posted on the site. This pretty much renders the links as useless in the eyes of search engines and hopefully will deter these type of spammers over time.

Because we use RedCloth for all our text formatting on the site we can manipulate the text before rendering it to the site. This code sits in our initializers folder as redcloth_extenstions.rb of our Rails application:

module RedCloth::Formatters::HTML
include RedCloth::Formatters::Base

def link(opts)
"<a href=\"#{escape_attribute opts[:href]}\"#{pba(opts)} rel=\"nofollow\">#{opts[:name]}</a>"

def inline_html(opts)


def no_follow(text)
tokenizer =
out = ''
while token =
node = HTML::Node.parse(nil, 0, 0, token, false)
if node.tag? and == 'a'
node.attributes['rel'] = 'nofollow' unless node.attributes.nil?
out << node.to_s
puts out

The link override is the inbuilt link generator for textile, so, anyone who creates a link using the textile format will have the nofollow attribute added to their link.

The inline_html is called to check for html generated by the user (as we allow basic html support). This scans the html and looks for link tags then adds the nofollow automatically.

Without using RedCloth as our markup generator I'm not sure how we would have gone about in adding these attributes.

Sunday, 7 June 2009

Create a list of your favourite retailers!

On your gardener dashboard, in the bottom right corner, you’ll now find a new little widget box called “Faves”. This box has direct linkage to your fave gardens, fave plantings and…your new Fave Retailers page!

That’s right – you can now fave retailers on folia and keep a list for handy reference. As we don’t have a retailer search yet (it’s on its way!) we’ve added a link to this page to show you all the retailers you’ve used on folia so far so you can “quick fave” them. To add them to your faves list, just click the pink heart icon and it will be instantly added to your list.

p.s. While you’re at it, we’d love it if you took a quick look at the details of your fave retailers and add any contact details or missing information too. We’re also doing a big retailer cleanup this week, so if you notice any duplicates let us know and we’ll clean them up at the same time.

New faster search for folia

Hey Everyone!

In this release we’ve change the search on the site around a bit. I’m sure you’ve all noticed how slow it was in returning a specific plant or journal post or even have slow it was in just saving posts and topics. Ultimately, the search that we had running wasn’t coping with the massive growth on the site. Our weekly usage stats keeps going up, everyone is journalling and gardening like mad and we have well over 100 000 different plants and varieties (most of which were added in the last few weeks).

Hopefully we’ve fixed all of this and sped things up with switching over to the new search. By our test runs its looking like a huge improvement. Indexing the site now take about 30 secs (down from hours and hours) and the results are retrieved in a faction of a second from the database and it shouldn’t be as slow when you save topics and posts.

However with all good things, there’s also some setbacks. Our old search was using a system called Ferret which was slow but allowed for updates in real time (so when you added a planting, it would instantly update the search) however we’ve switched to Sphinx which has quick indexing but no real time updates. To counter this – I’ve told Sphinx to reindex itself every 2 minutes or so. There’s a few other things I can do to make it feel more ‘instant’ but for now it’s a good starting point. Currently Sphinx is running on Plants, Varieties / Cultivars, Groups, Topics (yes! you can now search topics across groups! Posts are coming soon!) and Journals/Questions. So if something you added hasn’t popped up yet – give it some time and it will appear in a short while. Ferret is still used to index Gardens and Plantings as we need real time updates for the milestones and tasks – but we’re looking into switching over these too.

Also with the new search comes a different search algorithm – just like how Yahoo and Google never return the same results. So the results won’t appear exactly like they used to in the old search. These will be mainly for the better as we’ve got some good matching improvements, but there’s bound to be the odd plant that doesn’t appear in the list like it did before. It’s still very much a work in progress whilst we tweak it for the site.

So have a play around and tell us what you think.