Home

Previous Entry | Next Entry

Oct. 24th, 2006

  • 2:15 PM
me in B&W
Iusethis is one of the more profiled Catalyst sites out there, and people have been asking me what modules I used to build this site. I figured that was worth doing a blog post about, so here goes:

Catalyst::Runtime
Obviously :)

HTML::TagCloud
For /tags , and more recently /user/$user/tags . I've submitted patches to this module so I could generate html the way arne wanted :-) These patches has been rolled into the cpan distro by acme++

Catalyst::Model::DBIC::Schema
During early development, I loaded the DBIC classes automatically, but as I started stabilize the schema,
I used the feature to generate static classes from the database.

Net::Trackback
We support trackbacks using this module. It was pretty easy to integrate into the Catalyst controller,
and later when I found out trackback is a spammer's wet dream, it was easy to add domain checking in the
action. We now do explicit whitelisting of domains, with a user interface to add your domain, if you want
to be linked on the app entry. I'm also planning on adding avatar support through this feature

DBIx::Class::DateTime::Epoch
I store all dates as long ints in the database, and use this module to automatically inflate them to
DateTime objects.

Catalyst::Plugin::Authentication / Store::DBIC / Credential::Password
To handle user authentication. The flexibility nothingmuch++ put into our second generation auth layer makes me very happy. If you do auth in your app, you need to use the Authentication plugins.


Catalyst::Plugin::Unicode
My goal for iusethis was to make it unicode through and through. We still have some encoding problems,
specially related to TT, but mostly it's been working out well.

Catalyst::Plugin::PageCache
Threw this in after we started to get some load trouble. Works pretty well. Supplied a patch to make it not cache pages for auth'ed users. This patch is part of the latest CPAN release

Catalyst::Plugin::Email
All the mails sent from iusethis are generated with this module. I use the ->render method of the TT view
to easily generate the email bodies.

Catalyst::Plugin::HTML::Widget
I use HTML::Widget to generate the various forms in use on iusethis. At the time I started the project I decided it was the least bad of the alternatives. I haven't been keeping up with current developments tho, so it will be interesting to see if the latest releases on CPAN still works with my app :)

DBIx::Class::HTMLWidget
This one takes care of updating the data from HTML::Widget.

Catalyst::View::JSON
Added this module to easily generate JSON views. Another thing that Just Worked. Took me maybe 10 minutes to add JSON support.

Imager
I use imager to scale and convert icons/screenshots/avatars.

Catalyst::Plugin::Session / State::Cookie / Store::FastMmap
The session layer has unfortunately been giving me a lot of grief. For reasons unknown to me, sessions
are expired early, and sometimes my users have to delete their cookies :/ I've spent a fair amount of
time trying to debug this to no avail.

Catalyst::Action::RenderView
One of the things that Just Work. I don't think much about this one.

Catalyst::Plugin::Textile
Does all rendering of user supplied text on the site, like comments, app descriptions and release notes.

Crypt::PassGen
We use this one to reset your password if you forgot it.

XML::Feed
Generates all our XML::Feeds easily. Among other things, it means we can switch to atom easily, if wanted.

Module::Pluggable
This module is in use in our 'hotness' system, which scores apps based on recent popularity.

XML::OPML::SimpleGen
I've recently added support for getting your personal information in OPML format. This module made it a sinch.

Catalyst::Model::Xapian
This is a module I wrote to interface with Search::Xapian in my Search-engines. It's a little more high-level,
and includes an example indexer script.

I might have forgotten one or two, but that's mostly the modules that make up iusethis.com at the present time :) Hope this list will be useful to someone.

Comments

( 8 comments — Leave a comment )
(Anonymous) wrote:
Oct. 24th, 2006 04:01 pm (UTC)
Thanks
Nice list.
I learned about a few things i need to check out.
Thanks.
[info]feignedapathy wrote:
Oct. 24th, 2006 05:43 pm (UTC)
Thank you for this -- it's cool to see how 'real life' works, rather than the theoretical and the tutorial. :)
(Anonymous) wrote:
Oct. 24th, 2006 07:30 pm (UTC)
marcus++
cool :)

did you use anything for the ajax stuff? (like, say, Catalyst::Plugin::Prototype)
[info]marcusramberg wrote:
Oct. 24th, 2006 08:27 pm (UTC)
Re: marcus++
nope... I use all the js directly in the TT templates.
[info]shlomif wrote:
Oct. 25th, 2006 04:47 pm (UTC)
Thanks
Thanks for listing it here. I enjoyed reading it.
[info]shlomif wrote:
Oct. 29th, 2006 01:14 pm (UTC)
How to Implement Tag Queries?
Speaking of tags, I'd like to ask - how one can implement tag queries using Catalyst or in general? Suppose I have a set of tag IDs - @t, and I want to find all items that were tagged with all these tags - how do I do that?

Assume we have an items table, a tags table and a table containing all items tags relations.

Regards,

Shlomi Fish
(Anonymous) wrote:
Oct. 30th, 2006 03:14 pm (UTC)
maybe you know it...
Catalyst::Plugin::PageCache use old Cache plugins, maybe You know if it will be rewritten to use new Cache layout?
[info]ladyscissrhands wrote:
Nov. 14th, 2006 06:44 pm (UTC)
Could you please help me?
Hello, I don't mean to intrude upon your personal journal or anything, but I happened to come across it when I was searching for some HTML help... I feel bad asking because I don't know you, but you seemed knowledgeable and I was wondering if you could help me with the code for creating a tag cloud, like the one you have on your journal. Any help you could give me would be very much appreciated. I'm really sorry if this seems random or awkward since it's coming from a complete stranger. But in any case, best wishes and thank you. :)
( 8 comments — Leave a comment )

Advertisement

Latest Month

June 2009
S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930    
Powered by LiveJournal.com
Designed by Tiffany Chow