We love open source and we invest in continuous learning. We give back our knowledge to the community.

Wildcard Search With Thinking Sphinx


Right after starting with Thinking Sphinx(Thinking Sphinx plugin), it was quite hard to find a concise guide on how to enable wildcard search. For those out there who might not know, Sphinx(Sphinx free open-source SQL full-text search engine) searches default to matching whole words, not partial ones, so you won’t get any results of you search, for example, for one letter or part of a name. So, how to get around this?? .. well .. Sphinx(Sphinx free open-source SQL full-text search engine) provides wildcard search and below is how you can enable this with Thinking Sphinx(Thinking Sphinx plugin)

Install Emacs 23 From CVS


This is the first of a set of posts talking about Emacs. In this case we are going to install Emacs from the CVS repositories on Unix based systems. Emacs has alternative mirrors repositories in Bazaar, Git, Mercurial and Arch. You can check out the procedure and other information on EmacsFromCVS

Parsing an OPML With Ruby


And Ruby just doesn’t stop surprising us!! In the past we have to deal with XML files and parse them, incredibly easy task using Hpricot library. Now the turn was for OPML(OPML) (Outline Processor Markup Language) files. In case you are not familiar with this type of files, its most common use is to exchange lists of web feeds between web feed aggregators.

Google Analytics With AJAX


It’s been a while since us all have been working in fully AJAX enabled sites (as is the case of Indieoma(Indieoma), one of our projects). Time comes when you’d like to know a little bit about who is accessing the site, when, which page, why .. and a few more questions Google Analytics can answer for you (not particularly the last one) in a very simple manner most of you already know about.

Dumb Script to Reassemble HTML + SSI Pages


While working on our website(WyeWorks website), we wanted to serve some dynamic content but it just didn’t justify having some “big” dynamic technology behind to achieve this. Also as programmers, we like our code (even our static website content) to be nicely separated so we can keep things in order, better maintenance, blah blah blah. Seriously, we really like those things :)

Setting Up Passenger in Linux


Clearly one of the problems with Rails as a major platform right now is it’s hosting situation. Currently a good solution is to proxy HTTP requests from Apache or Nginx to a cluster of mongrels, which is tricky to set up and somewhat tedious. I wanted to easily have our rails applications deployed (in our development environment), and have them running without having to manually start each server. Messing around I found Passenger(Passenger), a module for Apache that hosts Rails applications. Note this was tested in Ubuntu, but it’s very similar for other Linux distributions.

Twenty Reasons I Love Ruby


Inspired by Hal Fulton’s article Thirty-seven Reasons I Love Ruby(Thirty-seven Reasons I Love Ruby), i’d like to share my top twenty reasons I love Ruby.

  1. It’s object-oriented. What does that mean? Well, for every ten programmers, there are twelve opinions as to what OOP is. I will leave it your judgment. But for the record, Ruby does offer encapsulation of data and methods within objects and allows inheritance from one class to another; and it allows polymorphism of objects. Unlike some languages (like C++ for instance) Ruby was designed from the beginning to be object-oriented.

Gravatars in Mephisto (Article’s Title Included)


Goal: I just want to see the gravatars not only for comments but in the article’s title also.

I have no prior knowledge of Mephisto (this is my second day with it) nor Liquid. So, here is how i did it … may be far from perfect but it seems to pull it off:

Comments, easy:

There is already a method gravatar that receives a hash with the comment properties and does the trick. So, placing the following line in the right spot of the appropriate liquid file (for me that’s the _article.liquid file) should be enough: