Toronto February Meetup: Case Study - Kakool.com
Join us this month for a special presentation by Toronto user group member, Jay Julian. Details below:
Kakool is a soon-to-launch Drupal-based entertainment resource (featuring tens of thousands of anecdotes, jokes, quotations, and images) and community. The site uses more than 100 modules and will boast such features as content recommendations and user-configurable profile pages. This presentation/discussion will examine past and present issues & challenges and explore possible future developments.
Jay Julian Payne is the founder of anecdotage.com & kakool.com, a former Hollywood correspondent on KPRI in San Diego, and author of Celebrity Anecdotes: Funny Stories About the Stars.
Time: 6:30 - 8:30 pm Thursday, February 21st
Location: Centre for Social Innovation - 215 Spadina Ave, 4th floor [map]



Meet
Hey, I went to the meet and there was some other organization in the room. They said the Drupal thing had been moved downstairs but I couldn't find anyone.
Hi interfaced, The meetup is
Hi interfaced,
The meetup is at 6:30 next thursday.
-BTM
Discussion Highlights
Discussion recap:
-- site intro: kakool.com [http://kakool.com/about] is a [drupal 5] social networking site that uses member ratings to offer personalized recommendations
-- CMS options: googled "joomla sucks" (1,500 results) & "drupal sucks" (500 results, many from drupal.org).. as Khalid observed, "very scientific" ;)
-- other drupal-powered social networking sites: Andrew noted lullabot's dabble.com [Search, collect and organize your favorite web videos].. there's also a decent list here:
http://www.seo-expert-blog.com/list/the-most-incomplete-list-of-drupal-s...
-- recommendations (cre module): we have 40,000 nodes & will have performance issues as the NxN similarity matrix (currently very sparse) is populated (whenever a pair of nodes is rated by one of more users)
-- recommendations tuning: I created a "Tuner" user whose specific nodes (a universal query set) can be rated by all users to generate a dense matrix & better recommendations. Not sure this is the best approach..
-- drupal tags are case sensitive: Solution: PHP has a case-conversion function. Someone mentioned a possible patch.
-- drupal search bug, not indexing all nodes: there is a patch [see: http://drupal.org/node/193080]
-- drupal search vs fastsearch: Khalid noted that adsense module now includes google site search, which may render synonyms & porter stemmer modules obsolete. Sphinx search (external to Drupal) is also an option. Used by some sites like NowPublic.
-- content caching: Colan noted that drupal caches content for anonymous users. We discussed caching views & possibly writing a module to control SQL caching & expiry.
-- custom pagers (adds pager to views lists): these caused serious performance issues (4,000ms queries!) & were disabled
-- buddylist vs user_relationships: though some developers (eg. Andre Molnar) prefer user_relationships, buddylist seems to be the solution of choice.
-- usernode vs bio vs content_profile: Khalid advised against using usernode (the oldest of the crop). Node profile was its successor, but has lots of dependencies. Content Profile [for drupal 6+] is the successor of node profile. Bio is an alternative solution and is simple enough to configure. [There's a long thread here: http://drupal.org/node/160546]
-- content warnings: Our adult content flagging system uses grant IDs. Khalid warned to watch out for the node_access table growing too big and having extra joins that slow things down whenever you are listing/viewing nodes.-- configurable user pages: I mentioned mysite module [http://drupal.org/project/mysite] lets users drag & drop blocks [demo here: http://therickards.com/mysite]
-- image module & thickbox: we had trouble with thickbox-views integration, which is solved with CCK. Good tutorial here: http://drupal.org/node/144725
-- we visited various drupal sites & looked at examples of lightbox, image carousels, image pagers [adsofthworld.com], etc
-- pagers missing from taxonomy views: fixed by selecting "Use Pager" on taxonomy_view views - duh! (very odd, tho, as it was working & I didn't change it)
-- IE6 login problems: IE rejects login attempt but shows user among those online. Andrew noted that drupal treats kakool.com & www.kakool.com as separate domains. Colan's solution: modify the vhost entry to say Redirect Permanent for www to the main domain. Colan adds: "I always like having the 'www' there so I always do it like below. The first stanza if forredirection, and the next is for all of the normal stuff:
<VirtualHost IP-address-goes-here:80>
ServerName example.com
RedirectPermanent / http://www.example.com/
</VirtualHost>
<VirtualHost IP-address-goes-here:80>
ServerName www.example.com
...
</VirtualHost>
-- VIDs don't correspond to NIDs: one of our content types was set to "Create new revision"
-- CAPTCHA: Andrew discovered my first spam users. I mentioned Gotcha [http://drupal.org/project/gotcha] which places a hidden input field on a contact form. Someone mentioned an ascii captcha system. Someone mentioned another system that pulls images from a pets website & asks users to identify the cats.
-- facebook profile import: Having trouble logging in via script. Someone mentioned a javascript solution.
-- facebook TOS violations: we discussed the legal implications of scraping & Plaxo's Robert Scoble (whose Facebook account was canceled: see http://scobleizer.com/2008/01/03/ive-been-kicked-off-of-facebook). Colan noted a site which claims to have received permission from FB to allow user imports. Khalid & others were wary of providing Facebook passwords to 3rd party sites (& of Facebook in general). Someone suggested using drupal's openID features.
-- gauging drupal expertise: Khalid mentioned http://ohloh.com, which tracks developer commits. Ohloh measures quantity, not quality, but the kudos system give human feedback too. [Colan lamented ohloh's glacial site updates.]
-- drupal.org: we discussed the irony that drupal.org itself neglects to use modules which could improve its usability (eg: free tagging & rating). Someone suggested using targeted google searches [site:drupal.org ...] Khalid later noted: "Part of it is to avoid extra load on an already very busy site. Part of it is to avoid modules written by unexperienced developers, and may have security holes. Part of it is this is volunteer
driven and requires people to put in the work. Part of it is decision by committee. Not as simple as a site run by one person saying 'let us install this.'"
-- drupal performance & server architecture: Khalid spoke about scalablity. "Adding a few servers is not only about the initial cost of the hardware. You will have to pay monthly to host them, and someone has to administer them, do security fixes to them, upgrade the software, ...etc. Moreover, for a large setup, complexity becomes an issue too. People have to manage it regularly. Staff turn over becomes crucial in such cases."