Secrets of Search

Douglas Merrill from Google talks about what it takes to build a search engine for the web.

Besides that what strikes me as interesting is their choice of languages “focusing” (he didn’t exactly say that, but it’s what you understand, when he says they won a prize for it) their efforts in machine translation on: Arabic and Chinese … o.O

Default Values for Boolean Options in Ruby

Let’s say you read settings from a YAML file and have some sort of settings object. Then you check if certain options are set with custom values or you have to set default/fall-back values on them. If you are dealing with Boolean options you have to be careful … as I had to find out myself.

Initially you would probably do something like the following to set a default value on a Boolean option:

settings[:some_option] ||= true # set default value if nothing set

Do you see the problem? What happens if the option was deliberately set to

false

? You would overwrite it because both cases

nil

(i.e. nothing set) and

false

would evaluate to

false

in the context of the

||=

operator and you would in both cases assign the right hand value (and overriding an explicit user choice in one case) … *ouch*.

So the correct solution is something like the following:

settings[:some_option] = true if settings[:some_option].nil?

Just be careful … 😀

Joomla! Wold Conference 2012 Keynote: Changing the world with Open Source

Pascal Finette gave a great keynote at Joomla! World Conference 2012 talking about how Mozilla came to be and what they learned along the way. He shares insights on how to build a competitive product, a healthy community and maybe even a business around it, but developing and governing it the open source way.