<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss"><id>tag:blogger.com,1999:blog-3136839918408275768</id><updated>2009-10-16T16:25:41.776-07:00</updated><title type="text">Anatomy of a Webapp</title><subtitle type="html">The adventures of two Stanford Computer Science students as they build a web application from scratch.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><author><name>jason</name><uri>http://www.blogger.com/profile/17640352801849092305</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/AnatomyOfAWebapp" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry><id>tag:blogger.com,1999:blog-3136839918408275768.post-2141975866456013244</id><published>2007-05-17T23:58:00.001-07:00</published><updated>2007-05-18T00:11:48.061-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="web app" /><category scheme="http://www.blogger.com/atom/ns#" term="screenshots" /><category scheme="http://www.blogger.com/atom/ns#" term="r2" /><category scheme="http://www.blogger.com/atom/ns#" term="interface" /><category scheme="http://www.blogger.com/atom/ns#" term="ui" /><title type="text">Screenshots!</title><content type="html">Hey,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_IHvL0sWRR0o/Rk1QaHg7FrI/AAAAAAAAAAU/7dHBhc4_v1U/s1600-h/links_screenshot.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer;" src="http://bp2.blogger.com/_IHvL0sWRR0o/Rk1QaHg7FrI/AAAAAAAAAAU/7dHBhc4_v1U/s320/links_screenshot.jpg" alt="" id="BLOGGER_PHOTO_ID_5065793565485635250" border="0" /&gt;&lt;/a&gt;I realize I have disappeared from the blog for a long time, but I swear I have been hard at work on the web app itself.  After getting the basic functionality done (adding links, searching, etc.), I have spent &lt;span style="font-style: italic;"&gt;way&lt;/span&gt; too much time on the look and feel of the interface.&lt;br /&gt;&lt;br /&gt;On the one hand, I've learned a lot about ajax and dynamic web design.  On the other I might suffer a stroke if I find one more bug in Firefox or IE.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_IHvL0sWRR0o/Rk1QQHg7FqI/AAAAAAAAAAM/5iraBCr94QY/s1600-h/login_screenshot.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer;" src="http://bp2.blogger.com/_IHvL0sWRR0o/Rk1QQHg7FqI/AAAAAAAAAAM/5iraBCr94QY/s320/login_screenshot.jpg" alt="" id="BLOGGER_PHOTO_ID_5065793393686943394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At this point I will switch over to working on the rating system.  For R2 to work, users have to be able to weed out bad links, and approve of useful ones.   We also need to add a way for users to flag spam.&lt;br /&gt;&lt;br /&gt;-Ben&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript" language="javascript"&gt;
var sc_project=2423278; 
var sc_invisible=0; 
var sc_partition=23; 
var sc_security="8dbffdef"; 
var sc_remove_link=1; 
&lt;/script&gt;

&lt;script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img  src="http://c24.statcounter.com/counter.php?sc_project=2423278&amp;java=0&amp;security=8dbffdef&amp;invisible=0" alt="web page hit counter" border="0" /&gt; &lt;/noscript&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3136839918408275768-2141975866456013244?l=anatomyofawebapp.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/2141975866456013244/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3136839918408275768&amp;postID=2141975866456013244" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/2141975866456013244" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/2141975866456013244" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/2007/05/screenshots.html" title="Screenshots!" /><author><name>Ben</name><uri>http://www.blogger.com/profile/16459761128204233473</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01872301375153929416" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp2.blogger.com/_IHvL0sWRR0o/Rk1QaHg7FrI/AAAAAAAAAAU/7dHBhc4_v1U/s72-c/links_screenshot.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3136839918408275768.post-4460476897662387343</id><published>2007-05-16T23:47:00.000-07:00</published><updated>2007-05-16T23:52:29.157-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="web20 relates2 r2 webdev firefox mozilla xul" /><title type="text">Firefox Extension Progress</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_r07i7NjrCsc/Rkv7Tu63IFI/AAAAAAAAAAc/ulyuRNAU930/s1600-h/extension.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_r07i7NjrCsc/Rkv7Tu63IFI/AAAAAAAAAAc/ulyuRNAU930/s320/extension.jpg" alt="" id="BLOGGER_PHOTO_ID_5065418522339254354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So I've begun the Firefox extension. Writing an extension in XUL and JS for Firefox is likely one of the least pleasant programming experiences I've had. My main problem with it is the lack of decent tools for debugging. As far as I can tell, unless you have a glaring syntax error somewhere in your code, you never hear about any problems from the browser. Rather, your JS thread just exceptions out silently and stops execution.&lt;br /&gt;&lt;br /&gt;Despite these difficulties, I think we've beaten down the hard part of the plugin. You can now pull up a sidebar with a keyboard shortcut and it will notice what track what page your eyeballs are on. All that remains now is to yank data with the API and show it in a snazzy way. As proof that the extension is somewhat functional, enjoy this screenshot.&lt;br /&gt;&lt;br /&gt;If anyone has any experience in building extensions like this please drop me a line and give me some hints :) I'm spending more time looking at example code than I am writing my own, but more information will help. Also, Ben should post sometime soon with a screenshot of how he's prettied up the web interface.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript" language="javascript"&gt;
var sc_project=2423278; 
var sc_invisible=0; 
var sc_partition=23; 
var sc_security="8dbffdef"; 
var sc_remove_link=1; 
&lt;/script&gt;

&lt;script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img  src="http://c24.statcounter.com/counter.php?sc_project=2423278&amp;java=0&amp;security=8dbffdef&amp;invisible=0" alt="web page hit counter" border="0" /&gt; &lt;/noscript&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3136839918408275768-4460476897662387343?l=anatomyofawebapp.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/4460476897662387343/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3136839918408275768&amp;postID=4460476897662387343" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/4460476897662387343" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/4460476897662387343" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/2007/05/firefox-extension-progress.html" title="Firefox Extension Progress" /><author><name>jason</name><uri>http://www.blogger.com/profile/17640352801849092305</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="12649887602385274991" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp2.blogger.com/_r07i7NjrCsc/Rkv7Tu63IFI/AAAAAAAAAAc/ulyuRNAU930/s72-c/extension.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3136839918408275768.post-175164767047453763</id><published>2007-05-05T22:21:00.000-07:00</published><updated>2007-05-05T22:58:26.551-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="r2 coachella ajax web20 relates2 prototype django" /><title type="text">And back to our regular schedule</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_r07i7NjrCsc/Rj1t_ngp0MI/AAAAAAAAAAM/lYcUUmSzeys/s1600-h/mainpage.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_r07i7NjrCsc/Rj1t_ngp0MI/AAAAAAAAAAM/lYcUUmSzeys/s320/mainpage.jpg" alt="" id="BLOGGER_PHOTO_ID_5061322495939432642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_r07i7NjrCsc/Rj1t_3gp0NI/AAAAAAAAAAU/9wiOZsrGiXY/s1600-h/links.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_r07i7NjrCsc/Rj1t_3gp0NI/AAAAAAAAAAU/9wiOZsrGiXY/s320/links.jpg" alt="" id="BLOGGER_PHOTO_ID_5061322500234399954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Sorry for that long interlude. I'll chalk most of it up to &lt;a href="http://www.coachella.com/"&gt;The Coachella Valley Music Festival&lt;/a&gt; which took up five days of our lives, and I've definitely spent the week recovering as well. In case you were wondering the show rocked. I'm not sure if I'll ever get over how amazing Ratatat was.&lt;br /&gt;&lt;br /&gt;Anyway, back to R2. Things are actually on schedule! There is an interface, though it isn't exactly pretty. I just spent an hour and a half refactoring our &lt;a href="http://www.djangoproject.com/"&gt;django&lt;/a&gt; code so it is quite pretty and will be nicer to work with. I learned from &lt;a href="http://www.coderbattery.com/django-views-ordered-by-file-and-directory"&gt;this post&lt;/a&gt; that you can separate your views into separate files for ease. I did the same with our URLs and I'm contemplating doing the same to our models. We now keep primary, API, and Ajax code in totally separate files.&lt;br /&gt;&lt;br /&gt;Speaking of Ajax, I also rewrote all of the JavaScript in the site using the &lt;a href="http://www.prototypejs.org/"&gt;Prototype library&lt;/a&gt;. That library is awesome. JavaScript is downright incomplete without it. I'm pretty new to real JS coding so if you have any tips for me leave a comment. I can generally get by with it but I have no eye for front-end work in general.&lt;br /&gt;&lt;br /&gt;We've also had two meetings with our TA, both of which went very well. We were way ahead of schedule for the first week so things worked out in our second meeting even though we spent 5 of the 7 interleaving days in SoCal. The group that meets before us is developing an XBox 360 game, so when we get there they are demo'ing on an XBox while I just have my MacBook. It's a little intimidating.&lt;br /&gt;&lt;br /&gt;We have big plans for this week, and I'll probably spend the rest of the night and some of Sunday on the project. Here's what we hope to have done this week:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;API 100% ready to ship.&lt;/li&gt;&lt;li&gt;Some fancy Ajax to enhance the UI (we have type-inference, we need auto-title-getting and some others)&lt;/li&gt;&lt;li&gt;Implement the user system&lt;/li&gt;&lt;li&gt;Get the browser plugin to hello world state&lt;/li&gt;&lt;/ul&gt;It should be pretty doable, but I think I have a few midterms this week so we'll see.&lt;br /&gt;&lt;br /&gt;Oh, and of course, enjoy some screenshots of the testing UI at 1140 lines of python, 279 lines of template/html, and a few dozen lines of CSS and JS.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript" language="javascript"&gt;
var sc_project=2423278; 
var sc_invisible=0; 
var sc_partition=23; 
var sc_security="8dbffdef"; 
var sc_remove_link=1; 
&lt;/script&gt;

&lt;script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img  src="http://c24.statcounter.com/counter.php?sc_project=2423278&amp;java=0&amp;security=8dbffdef&amp;invisible=0" alt="web page hit counter" border="0" /&gt; &lt;/noscript&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3136839918408275768-175164767047453763?l=anatomyofawebapp.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/175164767047453763/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3136839918408275768&amp;postID=175164767047453763" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/175164767047453763" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/175164767047453763" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/2007/05/and-back-to-our-regular-schedule.html" title="And back to our regular schedule" /><author><name>jason</name><uri>http://www.blogger.com/profile/17640352801849092305</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="12649887602385274991" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp2.blogger.com/_r07i7NjrCsc/Rj1t_ngp0MI/AAAAAAAAAAM/lYcUUmSzeys/s72-c/mainpage.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3136839918408275768.post-602766821984355449</id><published>2007-04-21T16:57:00.000-07:00</published><updated>2007-04-21T16:58:50.267-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="web20 relates2 r2" /><title type="text">Development Roadmap</title><content type="html">Part of the project proposal was to write a roadmap for development, and here it is.&lt;br /&gt;&lt;br /&gt;April 20, 2007 - database backend, simple ui&lt;br /&gt;April 27, 2007 - define api, improve adding ui&lt;br /&gt;May 4, 2007 - implement api, web adding ui done&lt;br /&gt;May 11, 2007 - begin browsing ui, plugin&lt;br /&gt;May 18, 2007 - finish simple browsing, add through plugin&lt;br /&gt;May 27, 2007 - begin graphical browsing, have plugin lookup data&lt;br /&gt;June 3, 2007 - finish browsing, polish site, start ui for plugin&lt;br /&gt;June 10, 2007 - polish plugin, publish site, add seed relations, data&lt;br /&gt;&lt;br /&gt;I feel I could get this done a lot faster if I weren't taking 5 other classes, but oh well. It seems pretty reasonable.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript" language="javascript"&gt;
var sc_project=2423278; 
var sc_invisible=0; 
var sc_partition=23; 
var sc_security="8dbffdef"; 
var sc_remove_link=1; 
&lt;/script&gt;

&lt;script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img  src="http://c24.statcounter.com/counter.php?sc_project=2423278&amp;java=0&amp;security=8dbffdef&amp;invisible=0" alt="web page hit counter" border="0" /&gt; &lt;/noscript&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3136839918408275768-602766821984355449?l=anatomyofawebapp.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/602766821984355449/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3136839918408275768&amp;postID=602766821984355449" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/602766821984355449" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/602766821984355449" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/2007/04/development-roadmap.html" title="Development Roadmap" /><author><name>jason</name><uri>http://www.blogger.com/profile/17640352801849092305</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="12649887602385274991" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3136839918408275768.post-6692859078939984149</id><published>2007-04-16T11:29:00.000-07:00</published><updated>2007-04-16T11:33:47.837-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="relates2" /><category scheme="http://www.blogger.com/atom/ns#" term="web20" /><category scheme="http://www.blogger.com/atom/ns#" term="netvibesparty" /><category scheme="http://www.blogger.com/atom/ns#" term="r2" /><title type="text">Still alive</title><content type="html">Hey folks, just wanted to let you know that we're still alive and working on R2. Other school-related things kept me busy this weekend. Tomorrow I give a presentation on R2 to the rest of the Software Project class. I'll let you know how it goes.&lt;br /&gt;&lt;br /&gt;If anyone is perchance going to be at the &lt;a href="http://eco.netvibes.com/sfparty/"&gt;Netvibes&lt;/a&gt; party in SF tonight shoot me an &lt;a href=""&gt;email&lt;/a&gt;. I'll be there.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript" language="javascript"&gt;
var sc_project=2423278; 
var sc_invisible=0; 
var sc_partition=23; 
var sc_security="8dbffdef"; 
var sc_remove_link=1; 
&lt;/script&gt;

&lt;script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img  src="http://c24.statcounter.com/counter.php?sc_project=2423278&amp;java=0&amp;security=8dbffdef&amp;invisible=0" alt="web page hit counter" border="0" /&gt; &lt;/noscript&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3136839918408275768-6692859078939984149?l=anatomyofawebapp.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/6692859078939984149/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3136839918408275768&amp;postID=6692859078939984149" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/6692859078939984149" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/6692859078939984149" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/2007/04/still-alive.html" title="Still alive" /><author><name>jason</name><uri>http://www.blogger.com/profile/17640352801849092305</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="12649887602385274991" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3136839918408275768.post-7927676450343400703</id><published>2007-04-12T20:10:00.000-07:00</published><updated>2007-04-13T15:56:12.759-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="web20 relates2 r2 semanticweb" /><title type="text">Announcing Relates2</title><content type="html">The project shall be called Relates2! We call it R2 for short.&lt;br /&gt;&lt;br /&gt;I turned in the first draft of my project proposal yesterday. I'll post a PDF of the final here after I meet with a tutor and revise it and whatnot. The whole thing is 13 pages long and definitely not worth reading because proposals are by nature repetitive, but here's the introduction and the feature set. I'll get into the gritty technical details this weekend when I actually start coding (finally).&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Summary&lt;/span&gt;&lt;br /&gt;Relates2 is a web-based application where users can declare a relationship between any two web addresses (URIs). URIs can be associated by any relationship in R2's database, which can be amended and added to by users under guidance by administrators. Once the relationship between two sites is known, linked content can either be embedded throughout the web through our API or can be viewed using our Firefox plugin. In the end users enjoy a richer browsing experience that is augmented by relevant largely user-generated content.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Feature Specification &lt;/span&gt;&lt;br /&gt;R2 is made up of several interlocking but conceptually distinct components: the backend, the web interface, the API interface, and the browser plugin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Database/Backend &lt;/span&gt;&lt;br /&gt;This part of the product is invisible to the user and thus we are free to implement it any way we see fit. All it really has to do is be reliable and store the data required to run the rest of the site: every relation we recognize, every type of resource we recognize, every pair of related URIs, users, rules, and various statistics.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Web Interface&lt;/span&gt;&lt;br /&gt;This is the first user-facing part of the product. Through it, users can:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   Link two sites&lt;/span&gt;. Upon entering the URIs of the two sites, R2 tries to infer the types of the URIs and suggests them to the user. The interface also suggests a relationship between the two resources if it knows their types. The user is free to override either. Once entered, the link is stored in the database and available for querying.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   View related content&lt;/span&gt;. The user can enter a URI and then view a list of all content related to that URI. The related content interface will at the very least allow the user to sort by type of relation and popularity of the link. When content links correspond to media the media will be previewed inline. The web interface will also allow a user to agree or disagree with a link. This interface is the part of the project most open to interpretation. Though it is not of the highest priority we believe that there is a lot of innovation that could go into this part of the site, including graphical and interactive methods of viewing relationships.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   View new content&lt;/span&gt;. The user can view a list of all the recently linked resources. Sorting can be done at least by popularity and relationship.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;API&lt;br /&gt;&lt;/span&gt; The API allows developers to do anything that can be done through the web interface, only through XML and without any presentation necessary. There will also be API calls to return pre-formatted information for easy embedding on the web. The API will feature useful presentation-minded features that prepare content for embedding, i.e. a method such as getThumbnail that knows how to extract a thumbnail from common sources such as Flickr and YouTube. To use the API developers will need to have an API key in much the same way that the Flickr and Facebook APIs require.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Browser Plugin&lt;/span&gt;&lt;br /&gt;The last component of R2 will be a browser plugin targetted at Firefox users. It will normally run as an icon in the corner of the browser window, out of the user's view until the user wishes to use it. When the user views a site that has related content known to R2, the icon changes colors to signify that it has information for the user. If interested, the user can click the icon and a sidebar will appear. Related content will be listed as it is in the web interface, with media shown inline where possible and various sorting options available. The user can quickly add other content through the plugin as well.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript" language="javascript"&gt;
var sc_project=2423278; 
var sc_invisible=0; 
var sc_partition=23; 
var sc_security="8dbffdef"; 
var sc_remove_link=1; 
&lt;/script&gt;

&lt;script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img  src="http://c24.statcounter.com/counter.php?sc_project=2423278&amp;java=0&amp;security=8dbffdef&amp;invisible=0" alt="web page hit counter" border="0" /&gt; &lt;/noscript&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3136839918408275768-7927676450343400703?l=anatomyofawebapp.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/7927676450343400703/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3136839918408275768&amp;postID=7927676450343400703" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/7927676450343400703" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/7927676450343400703" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/2007/04/announcing-relates2.html" title="Announcing Relates2" /><author><name>jason</name><uri>http://www.blogger.com/profile/17640352801849092305</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="12649887602385274991" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3136839918408275768.post-7512319680681288100</id><published>2007-04-12T12:06:00.000-07:00</published><updated>2007-04-12T12:28:14.674-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="techcrunch web20 webannotation tagging artoo" /><title type="text">TechCrunch covers web annotations</title><content type="html">Too bad TechCrunch didn't decide to write &lt;a href="http://www.techcrunch.com/2007/04/10/5-ways-to-mark-up-the-web/"&gt;this article&lt;/a&gt; about web annotations a month and a half later. Otherwise, I would hope that we were on it because I think Artoo is in the same product space but does web annotations much better.&lt;br /&gt;&lt;br /&gt;Annotating the web is definitely not a new idea, as the article points out. However, I think we have a better idea of what kinds of annotations users actually want to utilize now than we did before. We also know that users have something valuable to contribute to a website. I think that the solutions covered by TechCrunch don't quite have the right understanding still.&lt;br /&gt;&lt;br /&gt;If you squint your eyes del.icio.us is nothing more than a web annotation tool. It lets users decorate a site with a few tags to describe it, although no one cares what these tags are once they get to a website. It's a tiny way to remix the web.&lt;br /&gt;&lt;br /&gt;These tools go far beyond the functionality of del.icio.us, of course. The annotation is supposed to enhance the browsing experience once a user has reached a page. This is exactly the goal of Artoo.&lt;br /&gt;&lt;br /&gt;I really think that the latest generation of annotation tools misses the point of what users want yet again. 'Web graffiti' is too harsh of a term to describe them, but not much too harsh. They focus on text and actual markups on the physical page. They expect that whoever has something worth saying about the page also runs across the page and has the plugin installed. They also expect that users viewing annotations on a page trust the block of text or inline image left by some other user. This is the crux of their shortcomings: they believe that annotations can stand on their own.&lt;br /&gt;&lt;br /&gt;I fundamentally disagree that an annotation can stand on its own. Artoo abstracts the notion of an annotation by adding a level of indirection. Rather than letting a user's contribution atop a site stand alone, Artoo gives the annotation context and legitimacy. A web resource (anyone have a better name for this? I mean a video, a picture, a web page, just any piece of content.) &lt;span style="font-style: italic;"&gt;can&lt;/span&gt; stand on its own, for it is used to doing that. Yelp.com reviews exist perfectly well far away from the things they review because Yelp is an entity on its own with its own sense of legitimacy. A random inline annotation on a webpage has no such luck; it is untrustworthy by default because this is the wild, wild web.&lt;br /&gt;&lt;br /&gt;The simple addition of indirection makes Artoo innovative far beyond what anyone will call web graffiti. I wish &lt;a href="http://www.trailfire.com/"&gt;TrailFire&lt;/a&gt;, &lt;a href="http://www.stickis.com/"&gt;Stickis&lt;/a&gt;, &lt;a href="http://www.shiftspace.org/"&gt;ShiftSpace&lt;/a&gt;, &lt;a href="http://www.fleck.com/"&gt;Fleck&lt;/a&gt;, and &lt;a href="http://www.diigo.com/"&gt;Diigo&lt;/a&gt; all the best, but their products are inherently limited when compared to Artoo.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript" language="javascript"&gt;
var sc_project=2423278; 
var sc_invisible=0; 
var sc_partition=23; 
var sc_security="8dbffdef"; 
var sc_remove_link=1; 
&lt;/script&gt;

&lt;script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img  src="http://c24.statcounter.com/counter.php?sc_project=2423278&amp;java=0&amp;security=8dbffdef&amp;invisible=0" alt="web page hit counter" border="0" /&gt; &lt;/noscript&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3136839918408275768-7512319680681288100?l=anatomyofawebapp.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/7512319680681288100/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3136839918408275768&amp;postID=7512319680681288100" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/7512319680681288100" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/7512319680681288100" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/2007/04/techcrunch-covers-web-annotations.html" title="TechCrunch covers web annotations" /><author><name>jason</name><uri>http://www.blogger.com/profile/17640352801849092305</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="12649887602385274991" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3136839918408275768.post-6091470183016577739</id><published>2007-04-11T11:05:00.000-07:00</published><updated>2007-04-11T11:12:14.472-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="artoo" /><category scheme="http://www.blogger.com/atom/ns#" term="software" /><category scheme="http://www.blogger.com/atom/ns#" term="cs" /><title type="text">We figured out a name</title><content type="html">Thanks to those who suggested names for our project. Last night whilst stuck in a diner for 2 hours my girlfriend and I figured out a name that not only makes some measure of sense but also came with an available domain name&lt;br /&gt;&lt;br /&gt;However, the name is top secret for a bit. For now we will be referring to the project as Artoo.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript" language="javascript"&gt;
var sc_project=2423278; 
var sc_invisible=0; 
var sc_partition=23; 
var sc_security="8dbffdef"; 
var sc_remove_link=1; 
&lt;/script&gt;

&lt;script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img  src="http://c24.statcounter.com/counter.php?sc_project=2423278&amp;java=0&amp;security=8dbffdef&amp;invisible=0" alt="web page hit counter" border="0" /&gt; &lt;/noscript&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3136839918408275768-6091470183016577739?l=anatomyofawebapp.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/6091470183016577739/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3136839918408275768&amp;postID=6091470183016577739" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/6091470183016577739" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/6091470183016577739" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/2007/04/we-figured-out-name.html" title="We figured out a name" /><author><name>jason</name><uri>http://www.blogger.com/profile/17640352801849092305</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="12649887602385274991" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3136839918408275768.post-4020334138405455295</id><published>2007-04-09T01:13:00.000-07:00</published><updated>2007-04-09T02:11:22.366-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="__product__ webapp idea" /><title type="text">About our __PRODUCT__</title><content type="html">__PRODUCT__ is what I'm calling our project in our proposal (due on Thursday, so soon!) since I cannot for the life of me come up with an interesting name that is available in domain form.&lt;br /&gt;&lt;br /&gt;But I can tell you what it is we intend to build. Maybe readers can help us come up with a name. Critiques of the idea and features are also welcome, of course.&lt;br /&gt;&lt;br /&gt;We want to connect pieces of content, largely the user-generated variety, to other pieces of content with some kind of human-understandable meaning. We want to see &lt;a href="http://www.youtube.com/watch?v=zRJszFE8yEs"&gt;video someone shot&lt;/a&gt; at a protest when we read the &lt;a href="http://www.latimes.com/news/la-me-peace18mar18,1,2607440.story"&gt;coverage by the LA Times&lt;/a&gt;. We believe that when you look at the site for the &lt;a href="http://www.sanfranciscohiltonhotel.com/"&gt;Hilton San Francisco&lt;/a&gt; you should also be able to easily see its &lt;a href="http://www.yelp.com/biz/G25YJj4oij-zDVKFtt19Xw"&gt;reviews on Yelp&lt;/a&gt; and &lt;a href="http://www.flickr.com/photos/mylifein4x6/254220343/"&gt;photos on Flickr&lt;/a&gt;. The web is a limitless resource, but it is so huge that it can be unmanageable. All we have to guide us through it is the noble hyperlink, but sometimes we need something more.&lt;br /&gt;&lt;br /&gt;So __PRODUCT__ is a webapp that allows users to associate two URIs together under some chosen relation. The URIs are typed so we can make sure that http://somephoto DEPICTS http://somethingelse, if that makes any sense. With our help users can always add more types and relations. The extensibility of the system is key.&lt;br /&gt;&lt;br /&gt;Users will glue together two websites through the web interface to __PRODUCT__. Likely people who create the user-generated content that lives on the web will want to connect their work to related pieces of work. Either their photo depicts a place, their video shows the reality of a news story, or their blog post replies to another blog post. So much of what we create on the web is connected in really interesting ways, but these connections are either unknown or cost at least the time of a Google search to find.&lt;br /&gt;&lt;br /&gt;Once __PRODUCT__ has information about these connections, so much that is interesting can be done with it. It can be browsed in a real graphical web on our website. You can formulate interesting, logical queries based on real relationships rather than the best guess of a complicated spidering algorithm. Through our API related content can be embedded throughout the web. Just imagine if your Flickr photos of a developing news story showed up right next to the text of a story on the New York Times' site. And through our Firefox extension your entire browsing experience could be enhanced by having related content available whenever a sidebar is open - Flickr and YouTube thumbnails, Yelp ratings, and any other kind of media that can be published, all a click away and in your browser.&lt;br /&gt;&lt;br /&gt;It's entirely open-ended, we are just providing the tool that creates an opportunity. I think some of the most novel uses of this different form of tagging are way different than what I have thought of (so far I just have connecting old media with new and propagating tiny pieces of content). With its open API and the cleverness of a community I think that the sky is the limit for __PRODUCT__.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript" language="javascript"&gt;
var sc_project=2423278; 
var sc_invisible=0; 
var sc_partition=23; 
var sc_security="8dbffdef"; 
var sc_remove_link=1; 
&lt;/script&gt;

&lt;script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img  src="http://c24.statcounter.com/counter.php?sc_project=2423278&amp;java=0&amp;security=8dbffdef&amp;invisible=0" alt="web page hit counter" border="0" /&gt; &lt;/noscript&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3136839918408275768-4020334138405455295?l=anatomyofawebapp.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/4020334138405455295/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3136839918408275768&amp;postID=4020334138405455295" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/4020334138405455295" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/4020334138405455295" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/2007/04/about-our-product.html" title="About our __PRODUCT__" /><author><name>jason</name><uri>http://www.blogger.com/profile/17640352801849092305</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="12649887602385274991" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3136839918408275768.post-2882509414630542205</id><published>2007-04-08T21:19:00.000-07:00</published><updated>2007-04-08T21:31:41.570-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ben" /><title type="text">About Ben</title><content type="html">Hi,&lt;br /&gt;&lt;br /&gt;I'm Ben.  I'm a senior, graduating at the end of this quarter.  I am originally from Minnesota, but I  have transplanted to California.  Like Jason, I program mostly in C/C++ and Python, though I have experience in Java, Javascript, etc.  After school, I'm looking forward to taking some time off to travel in New Zealand.  Afterwords I will settle down and get a real job in the Bay Area.&lt;br /&gt;&lt;br /&gt;Personally, my interests are all over the place.  I like poetry, national parks, religions (I'm a religious studies minor), politics, and dogs.  My music tastes are also eclectic, but I reserve a special place in my heart for Daft Punk.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript" language="javascript"&gt;
var sc_project=2423278; 
var sc_invisible=0; 
var sc_partition=23; 
var sc_security="8dbffdef"; 
var sc_remove_link=1; 
&lt;/script&gt;

&lt;script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img  src="http://c24.statcounter.com/counter.php?sc_project=2423278&amp;java=0&amp;security=8dbffdef&amp;invisible=0" alt="web page hit counter" border="0" /&gt; &lt;/noscript&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3136839918408275768-2882509414630542205?l=anatomyofawebapp.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/2882509414630542205/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3136839918408275768&amp;postID=2882509414630542205" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/2882509414630542205" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/2882509414630542205" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/2007/04/about-ben.html" title="About Ben" /><author><name>Ben</name><uri>http://www.blogger.com/profile/16459761128204233473</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01872301375153929416" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3136839918408275768.post-1360407505112714197</id><published>2007-04-08T18:15:00.000-07:00</published><updated>2007-04-08T21:44:46.541-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jason anatomyofawebapp" /><title type="text">About Jason</title><content type="html">Hi again, this is Jason. I'll make Ben get on and post something later. I wanted to offer a bit about myself to kick off the blog.&lt;br /&gt;&lt;br /&gt;So I'm actually a junior right now, but I'm graduating in the middle of next year so I'm doing my senior project this quarter. I am originally from Texas but now I live in the Bay Area. I started programming sometime in high school and I've been pretty intent on becoming a programmer ever since. I worked as a dev intern at &lt;a href="http://www.meebo.com/"&gt;meebo&lt;/a&gt;, which is awesome, last summer and I will be there again this summer. I code in C/C++ and Python primarily, but I've done a good deal of Java and LISP and can get by in pretty much any popular language if necessary. After I get out of this school I plan to take some time off and launch a company of my own.&lt;br /&gt;&lt;br /&gt;Aside from the geek credentials, though, I am a person. I like post-punk and post-rock music, which sounds really pretentious but actually isn't that much so. I live in a co-op house called Kairos, as does Ben. I manage the kitchen, where I like to wash dishes and cook extravagant food. I TA an assortment of classes, this quarter being &lt;a href="http://cs107.stanford.edu/"&gt;CS107 Programming Paradigms&lt;/a&gt;. I really like hobo jokes and every other Wednesday night I can be found holding a glass of the cheapest wine that doesn't come in a bag or a jug known to man.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript" language="javascript"&gt;
var sc_project=2423278; 
var sc_invisible=0; 
var sc_partition=23; 
var sc_security="8dbffdef"; 
var sc_remove_link=1; 
&lt;/script&gt;

&lt;script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img  src="http://c24.statcounter.com/counter.php?sc_project=2423278&amp;java=0&amp;security=8dbffdef&amp;invisible=0" alt="web page hit counter" border="0" /&gt; &lt;/noscript&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3136839918408275768-1360407505112714197?l=anatomyofawebapp.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/1360407505112714197/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3136839918408275768&amp;postID=1360407505112714197" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/1360407505112714197" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/1360407505112714197" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/2007/04/about-jason.html" title="About Jason" /><author><name>jason</name><uri>http://www.blogger.com/profile/17640352801849092305</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="12649887602385274991" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3136839918408275768.post-7332391915665173688</id><published>2007-04-08T16:29:00.000-07:00</published><updated>2007-04-08T21:20:18.222-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="anatomyofawebapp" /><category scheme="http://www.blogger.com/atom/ns#" term="cs" /><category scheme="http://www.blogger.com/atom/ns#" term="webapp" /><title type="text">Welcome to Anatomy of a Webapp</title><content type="html">Hi there. I am Jason, one of the writers of this blog and a developer of a yet-to-be-named webapp for the &lt;a href="http://cs194.stanford.edu/"&gt;CS194 Software Project&lt;/a&gt; class at &lt;a href="http://www.stanford.edu/"&gt;Stanford University&lt;/a&gt;. Ben, the other developer, and I will be writing about our experience building a webapp from the ground up.&lt;br /&gt;&lt;br /&gt;This will be our 'senior project,' a project that every CS major at Stanford has to do to graduate. The class is 10 weeks long and by the end, on June 12, our project will be complete. The class actually stops meeting after this week and we don't meet again until the end of the quarter to demo what we have accomplished. Our only deliverables are a 12-15 page project proposal, due this Thursday, and the finished product. We will be meeting weekly with a TA for the class to discuss our progress and seek advice, but every bit of planning and every line of code is written by the two of us.&lt;br /&gt;&lt;br /&gt;Expect posts to come every few days. We'll explain just what our project is about soon, as well as a bit about ourselves. And once we ramp up coding we'll tell you about features as they're implemented, show off screenshots, complain about school, and generally try to show as much of the experience of building a software project as possible.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript" language="javascript"&gt;
var sc_project=2423278; 
var sc_invisible=0; 
var sc_partition=23; 
var sc_security="8dbffdef"; 
var sc_remove_link=1; 
&lt;/script&gt;

&lt;script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img  src="http://c24.statcounter.com/counter.php?sc_project=2423278&amp;java=0&amp;security=8dbffdef&amp;invisible=0" alt="web page hit counter" border="0" /&gt; &lt;/noscript&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3136839918408275768-7332391915665173688?l=anatomyofawebapp.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://anatomyofawebapp.blogspot.com/feeds/7332391915665173688/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3136839918408275768&amp;postID=7332391915665173688" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/7332391915665173688" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3136839918408275768/posts/default/7332391915665173688" /><link rel="alternate" type="text/html" href="http://anatomyofawebapp.blogspot.com/2007/04/welcome-to-anatomy-of-web-app.html" title="Welcome to Anatomy of a Webapp" /><author><name>jason</name><uri>http://www.blogger.com/profile/17640352801849092305</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="12649887602385274991" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry></feed>
