<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Wolfmans Howlings: Snow Dogs R Us a rails based social networking site</title>
    <link>http://blog.wolfman.com/articles/2007/05/31/snow-dogs-r-us-a-rails-based-social-networking-site</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>A programmers Blog about Ruby, Rails and a few other issues</description>
    <item>
      <title>Snow Dogs R Us a rails based social networking site</title>
      <description>&lt;p&gt;I have started a new project for myself and a few friends, 
&lt;a href="http://www.snowdogsr.us"&gt;Snow Dogs R Us&lt;/a&gt;. This site just went live!
(on 6/20/2007). It is a full blown Web2.0 (insert other buzz words
here), social networking site for Snow Dogs and their (human) parents.&lt;/p&gt;

&lt;p&gt;It is certainly a challenging project and taking much longer than I
anticipated.&lt;/p&gt;

&lt;p&gt;The basic features include sign-up, forgot password, login, optional
profiles for the user and their snow dogs, and all the usual stuff
there.&lt;/p&gt;

&lt;p&gt;The advanced features include linking to friends for both the humans
and the pets, so the humans can link to other human friends, and the
pets can link to their friends too (Ala MySpace and Facebook etc). I
want to eventually have a &lt;a href="www.linkedin.com"&gt;LinkedIn&lt;/a&gt; type of network
as well, so you can see how many degrees you are away from other
people, this is a real challenge to do in Rails, and I will probably
actually write a Java engine to do that, as it is pretty compute and
memory intensive. (Its not really an essential feature of the site,
but I like technical challenges).&lt;/p&gt;

&lt;p&gt;Of course there will be the ability to comment on everything, rate
everything and tag everything, and there has to be the obligatory
Mashup with Flickr and YouTube for all those cute photos and videos of
our pets. (What other Web2.0 feature have I missed?).&lt;/p&gt;

&lt;p&gt;Luckily the &lt;a href="http://agilewebdevelopment.com/plugins"&gt;Rails community&lt;/a&gt;
has already made available a lot of plugins we can use. I currently
use these plugins...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;active_scaffold&lt;/code&gt; - for the admin interface&lt;/li&gt;
&lt;li&gt;&lt;code&gt;acts_as_taggable_on_steroids&lt;/code&gt; - for the tagging&lt;/li&gt;
&lt;li&gt;&lt;code&gt;haml&lt;/code&gt; - For all my HTML structure needs&lt;/li&gt;
&lt;li&gt;&lt;code&gt;test_spec_on_rails&lt;/code&gt; - a better way to test&lt;/li&gt;
&lt;li&gt;&lt;code&gt;acts_as_commentable&lt;/code&gt; - pretty basic comments&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cssformbuilder&lt;/code&gt; - highly customized, I need to make my mods available&lt;/li&gt;
&lt;li&gt;&lt;code&gt;restful_authentication&lt;/code&gt; - for authentication, I added the forgot
password hack slightly modified&lt;/li&gt;
&lt;li&gt;&lt;code&gt;transactional_migrations&lt;/code&gt; - Ideal for Postgresql&lt;/li&gt;
&lt;li&gt;&lt;code&gt;acts_as_rated&lt;/code&gt; - I started using acts as rateable but switched&lt;/li&gt;
&lt;li&gt;&lt;code&gt;calendar_date_select&lt;/code&gt; - for inputting dates&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sexy_migrations&lt;/code&gt; - Makes migrations so much easier&lt;/li&gt;
&lt;li&gt;&lt;code&gt;will_paginate&lt;/code&gt; - For paginating those pages&lt;/li&gt;
&lt;li&gt;&lt;code&gt;attachment_fu&lt;/code&gt; - For uploading the pictures (and FreeImage and ImageScience for scaling them)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I looked at
&lt;a href="http://blog.dnite.org/2007/3/14/has_many_friends-released"&gt;&lt;code&gt;has_many_friends&lt;/code&gt;&lt;/a&gt;
but it was so close to what I had already done I just decided to keep
my version, plus I want to add that degrees of freedom stuff later on.&lt;/p&gt;

&lt;p&gt;There have been many posts about the friendships links in Rails, some
decided to simply have a HABTM with two entries to make the link
symmetric, I don't like wasting space so my solution uses a single
entry for their friendship, and some SQL to find friends regardless of
whether they invited you or you invited them. I'll blog about that
later when I optimize it a bit more, as friendship links can grow
exponentially I think it is  prime candidate for optimization both in
the amount of space is uses in the database and for database access,
and simple has_many :through construct work but in this case will be
very inefficient.&lt;/p&gt;

&lt;p&gt;Another feature is the ability to create events and invite everyone or
just your friends (think evite for dogs), this is relatively simple
except keeping track of the invitations and who accepted etc. I also
link to Places, because an event is usually at a place, and of course
the place needs to have directions, so a link to Google maps is in
order there. Of course a place needs to be taggable and commentable and
rateable.&lt;/p&gt;

&lt;p&gt;Lastly is the ability to make recommendations. In the dog community we
share advice on Vets, food, dog friendly places to visit like
restaurants, parks, beaches etc. These all need to be taggable,
rateable and commentable and of course searchable. I've gone back and
forth on how to implement that, right now it is a simple table called
inputs (user input), which is taggable, commentable, and rateable. It
relies on people tagging properly, IE tag with restaurant for dog
friendly restaurants, and vet for vet recommendations etc. I
originally had a &lt;code&gt;belongs_to&lt;/code&gt; &lt;code&gt;input_type&lt;/code&gt; with predefined categories,
but decided to trust the user and just allow tags. We'll see how that
works. Maybe the tag input field needs to auto_complete with a list of
current tags so people are more inclined to tag with already used
tags.&lt;/p&gt;

&lt;p&gt;My biggest problem is the web design or look and feel, I am a
programmer not a designer, so I can solve the complex programming
issues and implement all the functionality, but I get really stuck
when I try to figure out how to present that information. If this was
a "for pay" project I would hire a web designer, but it is definitely
a not-for-profit project so I can't afford that, so I'll struggle with
the design.&lt;/p&gt;

&lt;p&gt;I'll post more entries on some of my solutions to the technical
problems as I go.&lt;/p&gt;

&lt;p&gt;A few things I have learned, is to use
&lt;a href="http://piston.rubyforge.org/"&gt;piston&lt;/a&gt;
for managing plugins, and avoid alpha plugins :)&lt;/p&gt;</description>
      <pubDate>Thu, 31 May 2007 12:59:01 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:c20965cc-c57f-487b-8112-59d991a6cd61</guid>
      <author>Jim Morris</author>
      <link>http://blog.wolfman.com/articles/2007/05/31/snow-dogs-r-us-a-rails-based-social-networking-site</link>
      <category>Rails</category>
      <category>rails</category>
      <category>social</category>
      <category>networking</category>
      <category>web2.0</category>
      <trackback:ping>http://blog.wolfman.com/articles/trackback/306</trackback:ping>
    </item>
    <item>
      <title>"Snow Dogs R Us a rails based social networking site" by wolfmanjm</title>
      <description>&lt;p&gt;I posted a blog entry with all the info on how to do that &lt;a href="http://blog.wolfman.com/articles/2007/06/23/developing-a-social-networking-site-part-3-tag-cloud" rel="nofollow"&gt;here&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 19 Aug 2007 17:34:30 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:4d00f65b-f500-432a-935e-54c3a89511e0</guid>
      <link>http://blog.wolfman.com/articles/2007/05/31/snow-dogs-r-us-a-rails-based-social-networking-site#comment-135</link>
    </item>
    <item>
      <title>"Snow Dogs R Us a rails based social networking site" by Andreas Kviby</title>
      <description>&lt;p&gt;Can you please post or past at pastie the code you use together with act as taggable on steroids to get the clouds on your startpage?&lt;/p&gt;</description>
      <pubDate>Sun, 19 Aug 2007 17:17:50 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:8d05fb7e-709d-4d69-9f63-b9db0eaa2ff3</guid>
      <link>http://blog.wolfman.com/articles/2007/05/31/snow-dogs-r-us-a-rails-based-social-networking-site#comment-134</link>
    </item>
    <item>
      <title>"Snow Dogs R Us a rails based social networking site" by Attila</title>
      <description>&lt;p&gt;OK ... figured it out.  My problem was not understanding that the 'rater' had to be infact a 'User' object.  I suppose the examples confused me.&lt;/p&gt;</description>
      <pubDate>Fri, 17 Aug 2007 09:45:45 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:86e357f3-4a73-4f82-bd9c-a3228b865c62</guid>
      <link>http://blog.wolfman.com/articles/2007/05/31/snow-dogs-r-us-a-rails-based-social-networking-site#comment-132</link>
    </item>
    <item>
      <title>"Snow Dogs R Us a rails based social networking site" by Attila</title>
      <description>&lt;p&gt;Hi. 
My project uses many of the same plugins, but I'm stuck trying to use acts&lt;em&gt;as_rated currently.  I've a lot of functionality working at this stage, at it for about 4 months now, but going is very slow.  I've also yet to actually use the acts&lt;/em&gt;as&lt;em&gt;taggable&lt;/em&gt;on_steroids ... but that's next weeks battle ;0).  I'm getting an error ..
"ActiveRecord::Acts::Rated::RateError (the rater object must be the one used when defining acts_as_rated (or a descendent of it). other objects are not acceptable):"
Don't suppose you've come across the problem ?.  I'm not going to post code snippets to pollute things here, but if you had a minute or two I could do with someone who's "been there" to glance at  it.
Email me if you pity a fellow Ruby Newby ... please :0)
Thanks in Advance,
Attila&lt;/p&gt;</description>
      <pubDate>Fri, 17 Aug 2007 04:41:47 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:4398c3bc-07a7-4750-937f-4d7400d326ce</guid>
      <link>http://blog.wolfman.com/articles/2007/05/31/snow-dogs-r-us-a-rails-based-social-networking-site#comment-131</link>
    </item>
    <item>
      <title>"Snow Dogs R Us a rails based social networking site" by wolfmanjm</title>
      <description>&lt;p&gt;I only use A/S for the admin interface, so its not an issue as I am not uploading anything via the admin I/F. The public I/F is not using A/S at all.&lt;/p&gt;</description>
      <pubDate>Tue, 10 Jul 2007 10:41:06 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:f54bb796-36ca-4444-97af-464955e0ce4f</guid>
      <link>http://blog.wolfman.com/articles/2007/05/31/snow-dogs-r-us-a-rails-based-social-networking-site#comment-85</link>
    </item>
    <item>
      <title>"Snow Dogs R Us a rails based social networking site" by john</title>
      <description>&lt;p&gt;how did you put active&lt;em&gt;scaffold and attachment&lt;/em&gt;fu to work together?&lt;/p&gt;</description>
      <pubDate>Tue, 10 Jul 2007 07:40:30 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:6f03c642-1d88-4976-929c-8e428cd92d2d</guid>
      <link>http://blog.wolfman.com/articles/2007/05/31/snow-dogs-r-us-a-rails-based-social-networking-site#comment-84</link>
    </item>
    <item>
      <title>"Snow Dogs R Us a rails based social networking site" by Daniel</title>
      <description>&lt;p&gt;Nice post! Especially the list of plugins, has been really helpful to me!&lt;/p&gt;</description>
      <pubDate>Fri, 06 Jul 2007 09:21:36 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:a7da9734-b979-4b6b-baa9-d461e591caba</guid>
      <link>http://blog.wolfman.com/articles/2007/05/31/snow-dogs-r-us-a-rails-based-social-networking-site#comment-8</link>
    </item>
    <item>
      <title>"Snow Dogs R Us a rails based social networking site" by wolfmanjm</title>
      <description>&lt;p&gt;I have seen a couple of books out on the subject...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.amazon.com/RailsSpace-Building-Networking-Addison-Wesley-Professional/dp/0321480791" rel="nofollow"&gt;http://www.amazon.com/RailsSpace-Building-Networking-Addison-Wesley-Professional/dp/0321480791&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.amazon.com/Practical-Rails-Social-Networking-Sites/dp/1590598415" rel="nofollow"&gt;http://www.amazon.com/Practical-Rails-Social-Networking-Sites/dp/1590598415&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 31 May 2007 14:24:47 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:4bd496c1-29cf-42eb-b1fc-6182a0f8d977</guid>
      <link>http://blog.wolfman.com/articles/2007/05/31/snow-dogs-r-us-a-rails-based-social-networking-site#comment-78</link>
    </item>
    <item>
      <title>"Snow Dogs R Us a rails based social networking site" by http://theplana.wordpress.com</title>
      <description>&lt;p&gt;Hi, im starting a similar project, and this post look useful for me. Also i was looking for a complete Social network example/OS project  in ruby. Do you know someone? &lt;/p&gt;</description>
      <pubDate>Thu, 31 May 2007 13:59:11 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:0522ed06-9627-410b-8a96-3976e7e8c1c6</guid>
      <link>http://blog.wolfman.com/articles/2007/05/31/snow-dogs-r-us-a-rails-based-social-networking-site#comment-76</link>
    </item>
  </channel>
</rss>
