Inverse Captcha Anti-Comment-Spam Technique: Now A Regular Mephisto Plugin

posted: September 25th, 2007 · by: Sven

in: Programming · tagged as: , , , , , , , ·  36 comments »

After I had revamped my initial experimental approach to the “Inverse Captcha” anti-spam technique as a regular Mephisto Plugin lately I have promised to explain how you can use it to get rid of your blog comment spam.

This plugin is getting a bunch of additional attention these days, especially after it was linked to in Quarks’ Ruby on Rails Security Guide. So, some additional information is past due. There you go.

Read the rest of this entry

Disable Globalize::ViewTranslation SQL logging

posted: September 16th, 2007 · by: Sven

in: Programming, Globalization · tagged as: , , , , , , , ·  5 comments »

Sometimes you just want less noise in your log files, especially when your Globalize setup runs pretty fine and you don’t need it to tell you about every single move it makes: Globalize can be just too chatty then.

Joost Hietbrink thought this, too, and sent me the following code snippet. So you don’t need to suffer from Globalize’s chattiness any more :-)

Read the rest of this entry

Funny things and common gotchas to know and avoid - Get on Rails with Globalize! Part 7 of 8

posted: June 7th, 2007 · by: Sven

in: Programming, Globalization · tagged as: , , , , , , , ·  12 comments »

This article is part of the series “Get on Rails with Globalize!” and like the two last installments it’s a catch-all list: this time we’re going to point out some unexpected behaviours, problems and other funny things. Nothing world-shattering, just some things that you’ll probably want to be informed about so you don’t run into any problems.

  • I’m seeing lot’s of strange characters!
  • Weird Currency parsing results
  • Globalize WrongLanguageError on attribute read
  • Globalizes screws my RJS (or: my IE6)!

I’ll edit and complete this list as needed. If you’ve found any other common gotchas concerning Globalize, please drop me a note!

Read the rest of this entry

Pimp your Globalize: Extensions, Plugins and Patches - Get on Rails with Globalize! Part 6 of 8

posted: May 26th, 2007 · by: Sven

in: Programming, Globalization · tagged as: , , , , , ·  11 comments »

This article is part of the series “Get on Rails with Globalize!” and like the last installment it’s a catch-all list: this time we’re going to get some really cool extensions, plugins and patches caught. Stuff that makes Globalize an even mightier tool by adding useful functionality or connecting it to other important tools:

  • Multilingual URLs
  • Get Globalize working with :include and no base language
  • Translate your application while browsing it
  • Localized, concise Rails URL helpers
  • Get Liquid templates to play nice with Globalize
  • Globalize time_ago_in_words method of Rails
  • Multiple arguments to fetch

I’ll edit and complete this list as needed. If you know of a Globalize extension, a library, plugin or patch that you found useful and that would fit into this collection, please drop me a note!

Read the rest of this entry

Advanced techniques, tips and tricks - Get on Rails with Globalize! Part 5 of 8

posted: May 18th, 2007 · by: Sven

in: Programming, Globalization · tagged as: , , , , , ·  9 comments »

This article is part of the series “Get on Rails with Globalize!” and it’s a bit of a catch all list of useful techniques, tips and tricks. Stuff that you probably don’t necessarily need in every project but that you should be aware of:

  • Bridge Globalize and TZInfo
  • Preload View Translations in Production
  • Clear Globalize’s translations runtime cache
  • Use nice predicated block helpers in your views
  • Organize your translations through Globalize’s namespaces
  • Alternative Storage Mechanism for Model Translations

I’ll edit and complete this list as needed. If you know of a tip or trick that you found handy and that would fit into this collection, please drop me a note!

Read the rest of this entry

Concise, localized Rails URL helpers? Solved (twice).

posted: May 13th, 2007 · by: Sven

in: Programming, Globalization · tagged as: , , , , , ·  25 comments »

Originally triggered by Jeremy Hubert I’ve posted some thoughts about more concise and transparently localized Rails url_helper methods last month.

Basically Jeremy nailed a problem that occurs as soon as you define a Rails route that includes the locale as the leftmost parameter: you now can’t use Rails’ url_helper methods in a reasonable DRY way any more! A reasonable solution was pending.

Plugins to the rescue. By the end of this article you’ll be able to choose between two different solutions to this problem.

Read the rest of this entry

Report: 30 days with no blog spam on Mephisto!

posted: May 8th, 2007 · by: Sven

in: Programming · tagged as: , , , , , , , ·  13 comments »

I promised to keep you posted with the results of my experimental ”outer spam floodgate” Mephisto extension. Tell you what. I’m super-happy with the results as I haven’t seen any blog spam this month! Yes, right. No spam.

Read the rest of this entry

Concise & transparently localized Rails url_helper methods?

posted: April 24th, 2007 · by: Sven

in: Programming, Globalization · tagged as: , , , , , ·  19 comments »

Update: It’s worth noting that the following information has been updated in the follow-up article: Concise, localized Rails URL helpers? Solved (twice).

Recently Jeremy Hubert commented on my tutorial about routes setup for Globalize. In short he criticized that Globalize doesn’t provide a solution for transparently adding the locale to Rails url_helpers where needed. Instead of being able to say:


article_url(@article)   

You have to specify the locale for each and every call to an url_helper, like so:


article_url(@current_locale, @article)  

Needless to say that this does raise some eyebrows in the Rails community. So let’s see if we can come up with an acceptable solution here. This post describes some intermediary results.

Read the rest of this entry

How to add a floodgate to Mephisto's nearly perfect spam protection

posted: April 4th, 2007 · by: Sven

in: Programming · tagged as: , , , , , , , ·  8 comments »

Mephisto comes with Akismet support baked right into its heart and it works like a charm. I’ve been totally pleased with it spotting nearly every spam comment and collecting them for later review and bulk deletion.

Now, 30 days later, I found it was time to clean up the spammy comments piles that Mephisto hunted down for me. Actually nearly 900 comments had piled up. Year, that’s 30 per day. I don’t think that’s that much compared to what others receive.

But to me 900 spam comments in 30 days is too much. I don’t want to spend the time to manually check 900 comments even if I’d have to do it only once a month. No way.

I thus revisited an idea that Damien Katz called “negative captcha”. I realized that I’ve actually had experiences with this type of “protection” and they’ve been pretty good.

Read the rest of this entry

Howto use: Mephisto article list pagination plugin

posted: April 3rd, 2007 · by: Sven

in: Programming · tagged as: , , , , , ·  25 comments »

I’ve been asked for instructions on how to use the Mephisto pagination plugin that I’ve published last week. Well, that makes sense :-) So there you go.

The plugin allows you to add very basic pagination functionality to your article section pages (that is, pages like your blog homepage, sub-section pages etc.). Right now, there are only means to add a “older posts” and “newer posts” links to access the previous and next paginated articles list’s pages - you can see this at the bottom of my blog’s homepage.

Read the rest of this entry

Mephisto article list pagination plugin

posted: March 28th, 2007 · by: Sven

in: Programming · tagged as: , , , , , ·  11 comments »

When I switched to Mephisto last month I could not believe my eyes that there’s no post pagination on any of the section pages that list blog posts besides the archives.

Since, I wondered if that’s probably just a bit too closeminded to consider this a usability breakdown or something like this … might just be a matter of taste, too. But then I happened to run in this very issue twice the other day.

I consider this functionality crucial because it’s a well-known usability pattern all across the web these days. Millions of blogging engines do it this way (don’t they?), so it should be default in Mephisto, too, IMO … but actually it isn’t. So I decided to follow Rick’s suggestion and write a plugin to implement this.

Read the rest of this entry

How to set up your routes? - Get on Rails with Globalize! Part 4 of 8

posted: March 17th, 2007 · by: Sven

in: Programming, Globalization · tagged as: , , , , , , ·  34 comments »

Routes are one of the harder-to-grasp areas of Rails. How should you set up your routes for Globalize? Do you need to change anything at all?

As often, the short answer is: it depends. It might well be that you can leave your routes setup completely untouched. Probably they’ll need some easy touches though.

This article tries to provide a (slightly) longer answer and shows some of the basic options you have. (There has been quite some request for a howto on this topic, so I’ve decided to change the original outline of this series).

Read the rest of this entry

Join the release-party: Globalize now ready for Rails 1.2!

posted: March 7th, 2007 · by: Sven

in: Programming, Globalization · tagged as: , , , , , , ·  5 comments »

If you haven’t joined the masses yet camping in the front of the doors of the Globalize developers team, eagerly awaiting the Globalize for-1.2 release to get out of the doors … finally, time has come now.

Globalize is now fully compatible with the much celebrated Ruby on Rails 1.2 release! So get your party heads on, use your noise makers and start dancing!

Read the rest of this entry

Globalize's advanced features - Get on Rails with Globalize! Part 3 of 8

posted: January 14th, 2007 · by: Sven

in: Programming, Globalization · tagged as: , , , , , , ·  21 comments »

In Part 2 of this series you’ve seen:

  • how to setup your application to use Unicode
  • how to select and keep the current user’s locale
  • how to translate entire templates (instead of individual strings)
  • how to translate Rails ActiveRecord messages

In this article we’ll talk about some of the more advanced features Globalize comes with like:

  • Abstracting ViewTranslations (sprintf-like usage)
  • Singular and (multiple) plural ViewTranslations
  • Globalize’s Currency class
  • Piggybacking translations of associated models
Read the rest of this entry

Some common questions on getting started - Get on Rails with Globalize! Part 2 of 8

posted: December 3rd, 2006 · by: Sven

in: Programming, Globalization · tagged as: , , , , , , ·  21 comments »

In Part 1 of this series you’ve seen how easy it is to get up and running with Globalize. And you’ve seen what the most basic concepts of this multilanguage plugin for Ruby on Rails are, namely:

  • .t for ViewTranslations (arbitrary, static text)
  • the translates directive for ModelTranslations and
  • .loc to localize your date, time and number formats.

In this article we’ll talk about some common questions on getting started like:

  • How to setup your application to use Unicode
  • How to select and keep the current user’s locale
  • How to translate entire templates (instead of individual strings)
  • How to translate Rails ActiveRecord messages

(Update 06/12/06.: mention ActiveRecord::Multibyte and explain MySQL/Unicode character-set)

Read the rest of this entry

artweb design
Sven Fuchs
Grünberger Str. 65
10245 Berlin, Germany


http://www.artweb-design.de

Fon +49 (30) 47 98 69 96
Fax +49 (30) 47 98 69 97