Here be a sample post with a custom background image. To utilize this “feature” just add the following YAML to a post’s front matter.

  background: filename.png

This little bit of YAML makes the assumption that your background image asset is in the /images folder. If you place it somewhere else or are hotlinking from the web, just include the full http(s):// URL. Either way you should have a background image that is tiled.

If you want to set a background image for the entire site just add background: filename.png to your _config.yml and BOOM — background images on every page!

Background images from Subtle Patterns (Subtle Patterns) / CC BY-SA 3.0

1. Why use Caching?

Are you aware of the Pareto principle, also known as the 80-20 rule, which states that, for many events, roughly 80% of the effects come from 20% of the causes? Well, this principle also holds true for, where most of the traffic is driven by some of the podcasts, and only some of the search criteria are used the most. So why not cache them?

For application caching Podcastpedia uses Ehcache, which is an open source, standards-based cache for boosting performance, offloading your database, and simplifying scalability. It’s the most widely-used Java-based cache because it’s robust, proven, and full-featured.

This post presents how Ehcache is integrated with Spring, which is the main technology used to develop

Octocat Source code for this post is available on Github - is an open source project.

Continue Reading ...

Why use reCAPTCHA?

We have a section on, called Recommend podcast, that allows visitors to submit podcasts. Lately we have received very good suggestions – thank you all you Guys for that, but also lots of spam. A way to signifactly reduce the amount of spam, is to use captchas, which is a type of challenge-response test used in computing to determine whether or not the user is human. One popular implementaiton of captchas, is reCAPTCHA, now owned by Google. You might thing that solving catpchas is annoying, but by using reCAPTCHA you help to digitize books, newspapers and old time radio shows – here is a greatd TED talk from Luis von Ahn on massive-scale online collaboration explaining how this works:

Last but not least, you help us avoid email spam, which I guess you know by now how annoying and dangerous that can be.

This post presents how reCAPTCHA is integrated with a Spring MVC form to recommend podcasts.

Octocat Source code for this post is available on Github - is an open source project.

Continue Reading ... uses the MySQL database, in version 5.5.32 (# mysql -V),  to store metadata (title, description, update frequency, url of the image, urls of episodes etc.) of podcasts from the directory. The database contains both MyISAM (for performance and full-text indexing capabilities) and InnoDB tables. An upgrade to version 6 and only to InnoDB tables is considered, once it’s mature enough and GoDaddy will support it. This post presents how MySQL server is configured, and to be more specific how the my.cnf file looks like.

Continue Reading ...


Each podcast on has one or several associated keywords. When you go to a specific podcast you will see all the associated keywords :

Podcast keywords sample

Podcast keywords sample

There is also a special entry in the main menu – Keywords – that displays all the keywords associated to podcasts, ordered by the number of podcasts associated with. But the really cool part of the page is the autocomplete box – you can easily find podcasts related to a topic of your interest by typing in the first characters of the topic’s name. Let’s say you would like to see if there any podcasts related to Java, you would type “Ja”, the autocomplete functionality will display the keywords that start with “ja” and you can see “Java” exist and select it:

Autocomplete jQuery

Autocomplete keywords box

As shown in the picture above, you can select several keywords on the same page. But enough talking… let’s see how the magic happens behind the scenes, because this is actually the topic of this post.

Octocat Source code for this post is available on Github - is an open source project.

Continue Reading ...