<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/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>Aaron Feng: Category shoechicken</title>
    <link>http://www.aaronfeng.com/articles/category/shoechicken</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Adventures in software development</description>
    <item>
      <title>Should Shoechicken be soapy or restful?</title>
      <description>&lt;p&gt;Even though &lt;a href="http://shoechicken.com"&gt;Shoechicken&lt;/a&gt; is a &lt;a href="http://www.rubyonrails.org/"&gt;Rails&lt;/a&gt; application, currently it has no plans for any user interface.  It will only expose web services for external clients to consume.  In the web services world, you have two camps: &lt;a href="http://en.wikipedia.org/wiki/SOAP"&gt;SOAP&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;Representational State Transfer&lt;/a&gt;.  With that said, we had to make a decision as to which style of web services we will provide: &lt;a href="http://en.wikipedia.org/wiki/SOAP"&gt;SOAP&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/a&gt; or both.&lt;/p&gt;

&lt;p&gt;One big advantage of using &lt;a href="http://en.wikipedia.org/wiki/SOAP"&gt;SOAP&lt;/a&gt; is the code generation tools that are available in various languages.  It works extremely well when you control both sides.  However, it can get a little more hairy when you do not have the luxury of a homogenous environment. &lt;/p&gt;

&lt;p&gt;On the other hand, &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/a&gt; is very simple.  It just uses the old, trusty standard HTTP to transport requests without wrapping it.  All the client need to consume a service is a way to send HTTP requests and parse XML.&lt;/p&gt;

&lt;p&gt;We want to keep &lt;a href="http://shoechicken.com"&gt;Shoechicken&lt;/a&gt; as simple as possible.  I feel &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/a&gt; style of web services will be easier to implement and easier for clients to consume with fewer interoperability issues.&lt;/p&gt;

&lt;p&gt;During the day I work on a distributed financial system that provides &lt;a href="http://en.wikipedia.org/wiki/SOAP"&gt;SOAP&lt;/a&gt; style web services.  It would be fun to learn what is on the other side of the fence.  That is one of the main reasons I went with &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/a&gt; for &lt;a href="http://shoechicken.com"&gt;Shoechicken&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 06 Mar 2007 22:28:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:a2b42850-4af5-4c68-a8b3-c930c08f1549</guid>
      <author>Aaron Feng</author>
      <link>http://www.aaronfeng.com/articles/2007/03/06/should-shoechicken-be-soapy-or-restful</link>
      <category>shoechicken</category>
      <category>REST</category>
      <category>SOAP</category>
    </item>
    <item>
      <title>Distributed Development Team</title>
      <description>&lt;p&gt;Currently on &lt;a href="http://shoechicken.com"&gt;Shoechicken&lt;/a&gt; we have three team members.  Each one of us lives in a different city.  Not everyone is on the same time zone, and our schedule is slightly different.  It can be difficult to gather everyone together to have a discussion around &lt;a href="http://shoechicken.com"&gt;Shoechicken&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;At first we tried to use instant messaging, it is very light weight, so we can type to each other whenever as long as we are online.  However, most IM software is targeted for one-on-one chatting, and it does not save the history in a central location for later consumption.  We eventually moved to &lt;a href="http://campfirenow.com"&gt;Campfire&lt;/a&gt;, since it has everything we wanted and still kept it simple.  It allows multiple people to chat at the same time and saves the transcripts.  However, since everyone is on a different schedule, we still had a hard time getting people into &lt;a href="http://campfirenow.com"&gt;Campfire&lt;/a&gt; around the same time.&lt;/p&gt;

&lt;p&gt;We eventually went back to the old trusty email.  I was really surprised email actually worked better for us.  I was avoiding using email because I prefer real-time communication over delayed.  &lt;/p&gt;

&lt;p&gt;Part of the reason email worked well for us so far is because we are still in the very beginning of the project.  Everyone tends to have lots of little questions about various parts of the system.  It is hard to get across lots of unorganized information via chat style of communication.  The screen tends to scroll fairly quickly, and the conversations are often lost.  Especially when you have multiple people chatting at the same time.&lt;/p&gt;

&lt;p&gt;In general I am not a big fan of delayed communication.  I feel it divides up the team and often takes longer to get a response.  But in this case, we are all working on &lt;a href="http://shoechicken.com"&gt;Sheochicken&lt;/a&gt; as a side project, so some delay is not a problem.&lt;/p&gt;</description>
      <pubDate>Mon, 05 Mar 2007 23:21:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:94c543dd-d629-414b-a352-c50ee3b6ce04</guid>
      <author>Aaron Feng</author>
      <link>http://www.aaronfeng.com/articles/2007/03/05/distributed-development-team</link>
      <category>shoechicken</category>
    </item>
    <item>
      <title>Netflix</title>
      <description>&lt;p&gt;At one time we thought &lt;a href="http://shoechicken.com"&gt;shoechicken&lt;/a&gt; could possibly do the &lt;a href="http://http://www.netflixprize.com/"&gt;Netflix competition&lt;/a&gt;.  With a closer examination, there are some major differences on how &lt;a href="http://shoechicken.com"&gt;shoechicken&lt;/a&gt; provides recommendation compared to &lt;a href="http://www.netflix.com/"&gt;Netflix&lt;/a&gt;.  &lt;a href="http://jhorsley.com/blog/"&gt;James Horsley&lt;/a&gt; wrote a good &lt;a href="http://jhorsley.com/blog/articles/2007/02/25/netflix-competition"&gt;post&lt;/a&gt; on it.  That is a good news to everyone else, the money is still available!&lt;/p&gt;

&lt;p&gt;p.s.  The link to &lt;a href="http://jhorsley.com/blog/"&gt;James'&lt;/a&gt; blog was broken in the last feed, it has been fixed.&lt;/p&gt;</description>
      <pubDate>Wed, 28 Feb 2007 00:44:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:b0c61ab9-a2b1-4e29-92b4-e401d951c66d</guid>
      <author>Aaron Feng</author>
      <link>http://www.aaronfeng.com/articles/2007/02/28/netflix</link>
      <category>shoechicken</category>
      <category>netflix</category>
      <category>recommendation</category>
    </item>
    <item>
      <title>Shoechicken: AI Learning Agent</title>
      <description>&lt;p&gt;In the previous post I mentiond that I will be working on a side project called &lt;a href="http://shoechicken.com"&gt;shoechicken&lt;/a&gt;.  I was invited by my friend,&lt;a href="http://www.jhorsley.com/blog/"&gt;James Horsley&lt;/a&gt;, to work on the project.  &lt;/p&gt;

&lt;h2&gt;Background:&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://www.jhorsley.com/blog/"&gt;James Horsley&lt;/a&gt; and Mike Wootten (He has not setup his blog yet) started the project on &lt;a href="http://shoechicken.sourceforge.net/documentation.shtml"&gt;Source Forge&lt;/a&gt; in 2005.  The first implementation of the project was written in Java.  They also wrote a paper on the concept of &lt;a href="http://shoechicken.com"&gt;shoechicken&lt;/a&gt; with the assistance of a professor at &lt;a href="http://uwf.edu"&gt;University of West Florida&lt;/a&gt; that specializes in artificial intelligence.  The paper was presented at the &lt;a href="http://www.isca-hq.org/"&gt;International Society for Computers and Their Applications&lt;/a&gt; in 2006.  If you are interested, the paper can be found &lt;a href="http://shoechicken.com/shoechicken_CATA_2006_final.pdf"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;What is Shoechicken?&lt;/h2&gt;

&lt;p&gt;As posted on shoechicken's website...&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;Shoechicken is an intelligent system for rating RSS and Atom news content based on user preferences. The system builds a user profile implicitly by observing user interactions with news content. Shoechicken rates incoming content based on user preferences, and adapts to both long term and short term changes in preferences. The system is interoperable such that it can supply rated content for use by any news aggregator.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;Where is Shoechicken going?&lt;/h2&gt;

&lt;p&gt;Instead of continuing the implementation in Java, we are going try to do it in Ruby using Rails.  This also means we will be starting from the ground up.  Why Ruby?  None of us have done much in Ruby so this gives us an opportunity to learn a new language.  Oh yeah, this application is meant to conquer the world ;)&lt;/p&gt;</description>
      <pubDate>Tue, 27 Feb 2007 11:11:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:3fa31ce4-1a7d-40b6-8685-76e361445596</guid>
      <author>Aaron Feng</author>
      <link>http://www.aaronfeng.com/articles/2007/02/27/shoechicken-ai-learning-agent</link>
      <category>shoechicken</category>
    </item>
  </channel>
</rss>
