<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-US">
  <title>Building Web Apps Blog - Home</title>
  <id>tag:blog.buildingwebapps.com,2008:mephisto/</id>
  <generator version="0.7.3" uri="http://mephistoblog.com">Mephisto Noh-Varr</generator>
  
  <link href="http://blog.buildingwebapps.com/" rel="alternate" type="text/html" />
  <updated>2008-09-27T06:11:10Z</updated>
  <link rel="self" href="http://feeds.feedburner.com/buildingwebappsblog" type="application/atom+xml" /><entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-09-27:10619</id>
    <published>2008-09-27T05:14:00Z</published>
    <updated>2008-09-27T06:11:10Z</updated>
    <category term="knowledge base" />
    <category term="spartina" />
    <category term="webvanta" />
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/404422561/second-webvanta-site-launched" rel="alternate" type="text/html" />
    <title>Second Webvanta Site Launched</title>
<content type="html">
            &lt;p&gt;When we first built BuildingWebApps.com, it was a dedicated application. As we’ve mentioned previously, we’ve since rewritten it as a multi-tenant application, in support of our new business, &lt;a href='http://www.webvanta.com'&gt;Webvanta&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;We’re pleased to announce that the second site on the platform is now live: &lt;a href='http://www.spartina.com'&gt;Spartina.com&lt;/a&gt; is a “knowledge base for entrepreneurs ready to turn their ideas into great Internet businesses.”&lt;/p&gt;


	&lt;p&gt;You’ll see some visual design similarities to BuildingWebApps, which are not due to any platform constraints but simply to the fact that the same designer created both designs and reused some elements for efficiency. The Webvanta platform enables each site to be completely re-skinned.&lt;/p&gt;


	&lt;p&gt;If you’re interested in creating your own knowledge base site on any topic, please &lt;a href='http://www.webvanta.com/contact'&gt;send us a message&lt;/a&gt; and we’ll get in touch.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/404422561" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/9/27/second-webvanta-site-launched</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-09-07:10618</id>
    <published>2008-09-07T13:30:00Z</published>
    <updated>2008-09-08T14:18:15Z</updated>
    <category term="tc50" />
    <category term="techcrunch" />
    <category term="webvanta" />
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/386726061/webvanta-s-coming-out-party" rel="alternate" type="text/html" />
    <title>Webvanta's Coming Out Party</title>
<content type="html">
            &lt;p&gt;It’s been awfully quiet here on the blog, and as is often the case, that doesn’t mean we’ve been slacking—quite the contrary, we’ve been nose-to-the-grindstone.&lt;/p&gt;


	&lt;p&gt;Since our last post here, we’ve been busy:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;We’ve renamed our company to Webvanta Inc. (formerly Collective Knowledge Works, Inc.).&lt;/li&gt;
		&lt;li&gt;We’ve refocused our business plan for the hosted web service we’re building to serve web designers, rather than small businesses. You can read the teaser at &lt;a href='http://www.webvanta.com'&gt;webvanta.com&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;We’ve just launched the second information portal built on our platform, &lt;a href='http://www.spartina.com'&gt;Spartina.com&lt;/a&gt;. It’s an information resource for entrepreneurs building Internet-based businesses, which we’ve built for David Hehman, a Webvanta investor and board member.&lt;/li&gt;
		&lt;li&gt;We’ve been doing the rounds of Angel investor groups, as we put together our first serious financing round.&lt;/li&gt;
		&lt;li&gt;While doing all that, we’ve managed to get out a couple more screencasts, including one on &lt;a href='http://www.buildingwebapps.com/learningrails/22'&gt;Deployment&lt;/a&gt; just released.&lt;/li&gt;
	&lt;/ul&gt;


&lt;div&gt;

	&lt;p&gt;&lt;img src='http://blog.buildingwebapps.com/assets/2008/9/8/techcrunch50_demopit.png' alt='' /&gt;&lt;/p&gt;


&lt;/div&gt;

	&lt;p&gt;And, today we’re having our coming-out party, of sorts, at &lt;a href='http://www.techcrunch50.com/2008/index.php'&gt;TechCrunch 50&lt;/a&gt;. We’re not one of the 50 companies that will be on stage, but we’ll be showing our stuff in the &lt;a href='http://www.techcrunch50.com/2008/the-demopit/'&gt;DemoPit&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;If you’re a web designer who is intrigued by the idea of a more powerful, easier-to-use platform for building and deploying sophisticated web sites with no programming, head on over to &lt;a href='http://webvanta.com'&gt;Webvanta.com&lt;/a&gt; and sign up for our beta invitation list. We’re still in alpha testing now, but we plan to gradually open up to beta testers in the next two months.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/386726061" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/9/7/webvanta-s-coming-out-party</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-07-25:10601</id>
    <published>2008-07-25T11:00:00Z</published>
    <updated>2008-07-25T21:07:46Z</updated>
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/346035122/new-and-improved-even-if-it-looks-the-same" rel="alternate" type="text/html" />
    <title>New and Improved, Even If It Looks the Same</title>
<content type="html">
            &lt;p&gt;Yesterday was a big day here at BuildingWebApps/Collective Knowledge Works.&lt;/p&gt;


	&lt;p&gt;We have transitioned to a new code base, in which nearly all of the code underlying the site has been rewritten. Initially, the site should look exactly the same, and have all the same features, so in one sense this was a great deal of work whose goal was to have no visible change.&lt;/p&gt;


	&lt;p&gt;We had a few rough spots yesterday, but things seem to be in pretty good shape now, so please &lt;a href='http://www.buildingwebapps.com/contact'&gt;let us know&lt;/a&gt; if you encounter any problems.&lt;/p&gt;


	&lt;p&gt;So why did we do this? The big change is that our application is now a multi-tenant system, capable of hosting multiple sites within the same application. And in the process, we’ve cleaned up the system architecture and made it far more extensible.&lt;/p&gt;


	&lt;p&gt;We’ll be talking more about what we’re doing with this in the fall, but suffice it to say that anyone will be able to build a site like BuildingWebApps on our platform.&lt;/p&gt;


	&lt;p&gt;Now that we’ve made it through this big transition, we’ll get back to adding features, and you’ll see some results of that effort before too long.&lt;/p&gt;


	&lt;p&gt;At the same time, we’ve switched to &lt;a href='http://engineyard.com'&gt;Engine Yard&lt;/a&gt; as our host. The site is now running on two load-balanced slices, giving us greater redundancy and scalability, as well as the superb hands-on support from the Engine Yard team. Engine Yard is graciously providing us with these slices as the premier sponsor of the &lt;a href='http://www.buildingwebapps.com/course'&gt;Learning Rails online course&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Kudos to our &lt;span class='caps'&gt;CTO&lt;/span&gt; Christopher Haupt and a small cadre of contractors (with &lt;a href='http://webficient.com/home'&gt;Phil Misiowiec&lt;/a&gt; making the largest contribution) for pulling this off. (I wrote a large part of the original application, but I’m now primarily the business guy and am leaving most of the coding to the pros.)&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/346035122" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/7/25/new-and-improved-even-if-it-looks-the-same</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-07-25:10600</id>
    <published>2008-07-25T00:19:00Z</published>
    <updated>2008-07-25T00:21:48Z</updated>
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/345136592/startup-camp-and-foo-camp" rel="alternate" type="text/html" />
    <title>Startup Camp and Foo Camp</title>
<content type="html">
            &lt;p&gt;I had a great time at Startup Camp and Foo Camp. It’s quite an amazing collection of folks that O’Reilly brings together.&lt;/p&gt;


	&lt;p&gt;I’ve posted an &lt;a href='http://www.buildingwebapps.com/articles/6513-startup-camp-and-foo-camp'&gt;article with a few pictures and other tidbits&lt;/a&gt;.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/345136592" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/7/25/startup-camp-and-foo-camp</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-07-07:10536</id>
    <published>2008-07-07T14:15:00Z</published>
    <updated>2008-07-05T21:20:05Z</updated>
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/345136593/testing-rails-screencasts" rel="alternate" type="text/html" />
    <title>Testing Rails Screencasts</title>
<content type="html">
            &lt;p&gt;After 10 lessons in which we built a simple Rails application without stopping to worry about testing, we’re redeeming ourselves by stepping back to fix up the tests and explain how to write new ones. The lesson was too long for one screencast, so we’ve posted it in two parts:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href='http://www.buildingwebapps.com/learningrails/19'&gt;Unit Tests&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href='http://www.buildingwebapps.com/learningrails/20'&gt;Functional Tests&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/345136593" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/7/7/testing-rails-screencasts</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-07-05:10537</id>
    <published>2008-07-05T21:28:00Z</published>
    <updated>2008-07-05T21:30:10Z</updated>
    <category term="information diet" />
    <category term="rss" />
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/327619693/keeping-up-with-the-information-flood" rel="alternate" type="text/html" />
    <title>Keeping Up with the Information Flood</title>
<content type="html">
            &lt;p&gt;The web is such a wonderful facilitator of publishing and communication that it’s almost impossible not to be chronically overwhelmed by the amount of information available.&lt;/p&gt;


	&lt;p&gt;I’ve been working on my information diet for years, having dropped most print newspapers a few years ago, then cut out most magazines, and more recently having worked toward an effective approach for dealing with the incredible amount of information available via &lt;span class='caps'&gt;RSS&lt;/span&gt; feeds.&lt;/p&gt;


	&lt;p&gt;Even if I were to focus my interest solely on startups, Ruby on Rails, marketing, writing, or photography, there’s far more content produced every day than I can hope to (or want to) read. Striking the right balance between reading enough to stay informed and find things of interest, but not so much that it takes too much time or feels burdensome, is a real challenge.&lt;/p&gt;


	&lt;p&gt;I’ve just posted an &lt;a href='http://www.mslater.com/2008/7/5/coping-with-the-information-flood'&gt;article on my evolving feed-reading habits&lt;/a&gt; over on my personal blog.&lt;/p&gt;


	&lt;p&gt;What’s your strategy?&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/327619693" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/7/5/keeping-up-with-the-information-flood</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-06-20:10517</id>
    <published>2008-06-20T18:09:00Z</published>
    <updated>2008-06-20T18:13:38Z</updated>
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/316377402/startup-camp-here-we-come" rel="alternate" type="text/html" />
    <title>Startup Camp Here We Come</title>
<content type="html">
            &lt;p&gt;We’re thrilled to have been selected as one of the seven companies to participate in &lt;a href='http://oatv.com/foo'&gt;Startup Camp&lt;/a&gt;. This promises to be a fantastic opportunity to learn from a lot of great folks.&lt;/p&gt;


	&lt;p&gt;If you’re wondering just what it is we’re up to, take a look at our &lt;a href='http://www.buildingwebapps.com/about'&gt;About Us&lt;/a&gt;. As you’ll see, it’s somewhat divergent from the BuildingWebApps site, but built from the same technology base. We’ll have more to say in the coming months.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/316377402" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/6/20/startup-camp-here-we-come</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>chaupt</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-06-01:10510</id>
    <published>2008-06-01T05:57:00Z</published>
    <updated>2008-06-01T06:01:35Z</updated>
    <category term="learningrails" />
    <category term="podcast" />
    <category term="railsconf" />
    <category term="rubyonrails" />
    <category term="screencast" />
    <category term="travel" />
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/302215034/slides-from-podcaster-screencaster-talk" rel="alternate" type="text/html" />
    <title>Slides from Podcaster/Screencaster Talk</title>
<content type="html">
            &lt;p&gt;Michael and I are at &lt;a href='http://www.railsconf.com/'&gt;RailsConf&lt;/a&gt; this week and joined a panel with our podcasting and screencasting colleagues in the Rails community. See our &lt;a href='http://www.slideshare.net/guest75489e/podcast-screencasting-on-rails/'&gt;combined slides&lt;/a&gt; for some great tidbits and behind-the-scenes information.&lt;/p&gt;


&lt;div&gt;&amp;lt;object height='355' width='425' style='margin:0px'&gt;&amp;lt;param name='movie' value='http://static.slideshare.net/swf/ssplayer2.swf?doc=podcastscreencastingonrails-1212294960722738-9' /&gt;&amp;lt;param name='allowFullScreen' value='true' /&gt;&amp;lt;param name='allowScriptAccess' value='always' /&gt;&amp;lt;embed allowfullscreen='true' type='application/x-shockwave-flash' src='http://static.slideshare.net/swf/ssplayer2.swf?doc=podcastscreencastingonrails-1212294960722738-9' allowscriptaccess='always' height='355' width='425'&gt;&amp;lt;/embed&gt;&amp;lt;/object&gt;&lt;div&gt;&lt;a href='http://www.slideshare.net/?src=embed'&gt;&lt;img src='http://static.slideshare.net/swf/logo_embd.png' alt='SlideShare' /&gt;&lt;/a&gt; | &lt;a href='http://www.slideshare.net/guest75489e/podcast-screencasting-on-rails?src=embed' title='View Podcast &amp;amp; Screencasting On Rails on SlideShare'&gt;View&lt;/a&gt; | &lt;a href='http://www.slideshare.net/upload?src=embed'&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/302215034" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/6/1/slides-from-podcaster-screencaster-talk</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>chaupt</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-05-27:10507</id>
    <published>2008-05-27T15:28:00Z</published>
    <updated>2008-05-27T15:33:15Z</updated>
    <category term="events" />
    <category term="railsconf" />
    <category term="travel" />
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/299167798/railsconf-2008-book-signing" rel="alternate" type="text/html" />
    <title>RailsConf 2008 Book Signing</title>
<content type="html">
            &lt;p&gt;Mike Clark, primary author of the new Pragmatic Programmers book &lt;a href='http://www.pragprog.com/titles/fr_arr/advanced-rails-recipes'&gt;Advanced Rails Recipes&lt;/a&gt;, will be holding a book signing meet-and-greet at RailsConf 2008 in Portland OR, this Friday. It will be at the Powell’s Books booth during the 12:30 lunch break.&lt;/p&gt;


	&lt;p&gt;Both Michael and I contributed recipes to the book and one or both of us plan on being at the signing for a little while. Come on by if you are at the conference and say hello!&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/299167798" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/5/27/railsconf-2008-book-signing</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>chaupt</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-05-23:10504</id>
    <published>2008-05-23T17:58:00Z</published>
    <updated>2008-05-23T18:05:27Z</updated>
    <category term="learningrails" />
    <category term="podcast" />
    <category term="railsconf" />
    <category term="rubyonrails" />
    <category term="screencast" />
    <category term="travel" />
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/296742595/podcasting-and-screencasting-in-rails-panel" rel="alternate" type="text/html" />
    <title>Podcasting and Screencasting in Rails Panel</title>
<content type="html">
            &lt;p&gt;Besides the &lt;a href='http://blog.buildingwebapps.com/2008/5/20/podcast-meetup-at-railsconf'&gt;birds-of-a-feather&lt;/a&gt; (BOF) meetup at RailsConf 2008 that Michael recently blogged about, we will now also be doing a panel about &lt;a href='http://en.oreilly.com/rails2008/public/schedule/detail/4515'&gt;podcasting and screencasting&lt;/a&gt; with our podcasting colleagues: Geoffrey Grosenbach of the &lt;a href='http://podcast.rubyonrails.org/'&gt;Ruby on Rails podcast&lt;/a&gt;, Ryan Bates of &lt;a href='http://railscasts.com/'&gt;Railscasts&lt;/a&gt;, and Gregg Pollack of &lt;a href='http://railsenvy.com/'&gt;RailsEnvy&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;This talk will be at 4:25pm on Friday, May 30th. We’ll be talking about the nuts and bolts of podcasting and screencasting and getting things warmed up for the &lt;span class='caps'&gt;BOF&lt;/span&gt; general discussion. Come join us if you are in Portland for RailsConf 2008!&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/296742595" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/5/23/podcasting-and-screencasting-in-rails-panel</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-05-20:10499</id>
    <published>2008-05-20T18:55:00Z</published>
    <updated>2008-05-23T22:13:44Z</updated>
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/294481457/podcast-meetup-at-railsconf" rel="alternate" type="text/html" />
    <title>Podcast Meetup at RailsConf</title>
<content type="html">
            &lt;p&gt;Together with Geoffrey Grosenbach of the &lt;a href='http://podcast.rubyonrails.org'&gt;Ruby on Rails podcast&lt;/a&gt;, Ryan Bates of &lt;a href='http://railscasts.com'&gt;Railscasts&lt;/a&gt;, and Gregg Pollack of &lt;a href='http://railsenvy.com'&gt;RailsEnvy&lt;/a&gt;, we’re organizing a meetup at RailsConf to talk about the future of podcasting and screencasting for Rails developers.&lt;/p&gt;


	&lt;p&gt;If you’ve been listening to our &lt;a href='http://www.buildingwebapps.com/learning_rails'&gt;Learning Rails&lt;/a&gt; course or any of the other Rails podcasts or screencasts, this is your chance to make it a two-way conversation and help guide future efforts.&lt;/p&gt;


	&lt;p&gt;We’ve proposed this as a Birds of a Feather (BOF) session for 9 pm Friday night. The conference organizers won’t make their &lt;span class='caps'&gt;BOF&lt;/span&gt; selections until the 26th, so for now the location of the session is unknown. Check back here for updates.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;&lt;em&gt;Update: We’re on the schedule! Rooms &lt;span class='caps'&gt;D135&lt;/span&gt; and 136, 9-10 pm Friday.&lt;/em&gt;&lt;/strong&gt; See &lt;a href='http://en.oreilly.com/rails2008/public/schedule/detail/4484'&gt;listing on the conference site&lt;/a&gt; for details.&lt;/p&gt;


	&lt;p&gt;I hope to have a chance to meet a bunch of our readers and listeners there.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/294481457" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/5/20/podcast-meetup-at-railsconf</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>chaupt</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-05-20:10498</id>
    <published>2008-05-20T15:43:00Z</published>
    <updated>2008-05-20T16:13:15Z</updated>
    <category term="bugs" />
    <category term="git" />
    <category term="plugins" />
    <category term="rubyonrails" />
    <category term="submodules" />
    <category term="vcs" />
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/294383370/got-git-submodules-not-a-go-go" rel="alternate" type="text/html" />
    <title>Got Git? Rails, Plugins, and Submodules Not a Go Go</title>
<summary type="html">&lt;p&gt;This is a summary of some of the challenges we’ve had with our Ruby on Rails Git migration and attempting to use submodules for vendor/rails and various plugins. We’ve run in to problems switching and merging between branches with and without submodules. Once I work this all out, I’ll write up a “real” article for BuildingWebApps.com.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;This is a summary of some of the challenges we’ve had with our Ruby on Rails Git migration and attempting to use submodules for vendor/rails and various plugins. We’ve run in to problems switching and merging between branches with and without submodules. Once I work this all out, I’ll write up a “real” article for BuildingWebApps.com.&lt;/p&gt;
&lt;p&gt;Sorry, it was a really long night, so I’m a bit Ga Ga. This is a summary of some of the challenges we’ve had with our Git migration and attempting to use submodules for vendor/rails and various plugins. We’ve run in to problems switching and merge between branches with and without submodules. Once I work this all out, I’ll write up a “real” article for BuildingWebApps.com.&lt;/p&gt;


	&lt;p&gt;For our current project, we’ve made the migration over to the &lt;a href='http://git.or.cz/'&gt;Git&lt;/a&gt; distributed version control system. I’ve been using Git for tracking 3rd party open source projects, as well as using &lt;a href='http://www.selenic.com/mercurial/wiki/'&gt;Mercurial&lt;/a&gt;. I’m still learning the ropes. Git’s support for branching was the main selling point for us. We’ve been using Subversion for a long time with great success, but the biggest weakness has been how much a pain it is to have multiple branches and deal with multi-way merges. While switching to Git requires a bit of a &lt;a href='http://git.or.cz/course/svn.html'&gt;learning curve&lt;/a&gt;, it isn’t too bad.&lt;/p&gt;


	&lt;p&gt;Git makes working with multiple branches a relative breeze. Last week, I decided to give the submodule feature a try for tracking Ruby on Rails (vendor/rails) Edge, as well as a to migrate various plugins over. We used Piston in Subversion to good effect, and submodules seemed adequate as a replacement. There are numerous articles about setting up submodules, a couple of good ones are &lt;a href='http://woss.name/2008/04/09/using-git-submodules-to-track-vendorrails/'&gt;here&lt;/a&gt; and &lt;a href='http://woss.name/2008/04/11/using-git-submodules-to-track-vendorrails-2/'&gt;here&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Our scenario may or may not be that unique. We have a master branch (and other working branches) that represent our “version 1” code tree. We are doing a large refactoring in a set of branches for “version 2”. The two lines are running in parallel, and we occasionally merge/rebase from version 1 over to version 2. Version 1 is frozen around Rails 2.0.2. Version 2 is tracking Edge. I’ve set up version 2 to use submodules for vendor/rails as well as a number of our plugins. We are using Git 1.5.5.x at the moment.&lt;/p&gt;


	&lt;p&gt;The problem appears to be when you swap between branches of version 1 and version 2 (those without submodule and those with, respectively). There may be other problems, but we are tracking this down (interestingly, I have seen different results between Git 1.5.4 and 1.5.5, bugs?).&lt;/p&gt;


	&lt;p&gt;Starting with a clean clone of the remote repository (we are using &lt;a href='http://github.com/'&gt;GitHub&lt;/a&gt; quite happily), all starts out good. The master branch is clean and version 1 looks good.&lt;/p&gt;


	&lt;p&gt;I then switch to version 2 with a &lt;code&gt;git checkout --track -b version2 origin/version2&lt;/code&gt;. Remember that version 2 is using submodules for vendor/rails and some plugins (e.g. rspec, rspec-rails, acts_as_versioned, etc.). I see delete messages for vendor/rails and the submoduled plugins. Interestingly, if I then do a &lt;code&gt;git status&lt;/code&gt;, I see two entries (one for vendor/rails, another for one plugin—acts_as_versioned in this example). I don’t see the other plugins. The correlation here appears to be that the delete status only exists for those plugins that exist currently on the master (version 1) branch.&lt;/p&gt;


	&lt;p&gt;If I do &lt;code&gt;git submodule init&lt;/code&gt; next, I see entries for all of my submodules being “registered”. If I then immediately do a &lt;code&gt;git submodule update&lt;/code&gt;, I see the standard updating/downloading type messages and get the correct versions. Now if I &lt;code&gt;git status&lt;/code&gt;, all on the version2 branch appears “clean”.&lt;/p&gt;


	&lt;p&gt;At this point, if I want to switch back to master (version1 branch), things go a bit crazy. If the immediate next command is &lt;code&gt;git checkout master&lt;/code&gt;, I get the dread “error: Untracked working tree file ‘vendor/plugins/acts_as_versioned/CHANGELOG’ would be overwritten by merge” error (where the file may be different). Again, this appears to be in a directory where in the version 2 branch it is a submodule, but in the version 1 branch it is not.&lt;/p&gt;


	&lt;p&gt;Now I’m stuck. Various combinations of &lt;code&gt;git clean&lt;/code&gt; don’t seem to help. &lt;code&gt;git status&lt;/code&gt; insists the working directory is clean.&lt;/p&gt;


	&lt;p&gt;So, how do I go back?&lt;/p&gt;


	&lt;p&gt;If I &lt;code&gt;git checkout master -f&lt;/code&gt;, I can switch. But, and a big but, the plugins that aren’t supposed to be in this branch and a variety of files from vendor/rails appear when doing a &lt;code&gt;git status&lt;/code&gt;. If I clean those with &lt;code&gt;git clean&lt;/code&gt;, I get a whacked directory tree.&lt;/p&gt;


	&lt;p&gt;Pending figuring this out, I’m switching back to the static inclusion of files in the vendor area and tracking them by hand. I’ll document a solution when found (or if anyone can set me straight or send pointers).&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/294383370" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/5/20/got-git-submodules-not-a-go-go</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-05-20:10497</id>
    <published>2008-05-20T15:25:00Z</published>
    <updated>2008-05-20T15:35:50Z</updated>
    <category term="rails apps" />
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/294363232/good-works-in-rails" rel="alternate" type="text/html" />
    <title>Good Works in Rails</title>
<content type="html">
            &lt;p&gt;Among the vast diversity of applications written in Rails, you’ll find many that meet personal or business needs. A few go for higher goals, addressing the needs of less fortunate people worldwide.&lt;/p&gt;


	&lt;p&gt;Here’s a couple examples that I encourage you to explore, and donate or loan some money:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href='http://www.BringLight.com'&gt;BringLight&lt;/a&gt;, founded by ex-Adobe execs Melissa Dyrdahl and Drew McManus, allows you to donate to a specific project, so you know exactly where your money is going. You can search by the type of project or by location.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href='http://www.microplace.com'&gt;MicroPlace&lt;/a&gt; is a micro-lending site, operated by eBay (its first Rails application). Make a small loan to an entrepreneur on the other side of the world.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;These are striking examples of how we can use the power of web applications to connect people that otherwise would be isolated and spread some of our high-tech affluence to other communities.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/294363232" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/5/20/good-works-in-rails</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-05-19:10496</id>
    <published>2008-05-19T18:58:00Z</published>
    <updated>2008-05-19T19:00:46Z</updated>
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/293708321/page-hierarchy-screencast-posted" rel="alternate" type="text/html" />
    <title>Page Hierarchy Screencast Posted</title>
<content type="html">
            &lt;p&gt;We’ve just posted our &lt;a href='http://www.buildingwebapps.com/learningrails/15'&gt;seventh screencast&lt;/a&gt;, the 15th lesson in the &lt;a href='http://www.buildingwebapps.com/learning_rails'&gt;Learning Rails&lt;/a&gt; series. In this screencast, we add the concept of subpages, so we can have pages that don’t appear in the main navigation but instead show up as second-level navigation links on their parent page. To do so, we use a self-referential has_many association.&lt;/p&gt;


	&lt;p&gt;There’s lots more than can be done to continue refining our little content management system, but it’s rapidly approaching a useful level for small sites. We’ll wrap up some loose ends in the next screencast, and then move on in future screencasts to take care of the Contact Us and Resources pages. Then we plan to circle back and fix up the tests.&lt;/p&gt;


	&lt;p&gt;We’re thrilled to see that several thousand people are following the screencasts, and that the comments we’ve received have been overwhelmingly positive. If you’d like to help spread the word, pick up our &lt;a href='http://www.buildingwebapps.com/affiliate'&gt;Learning Rails ad&lt;/a&gt; and include it on your blog.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/293708321" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/5/19/page-hierarchy-screencast-posted</feedburner:origLink></entry>
  <entry xml:base="http://blog.buildingwebapps.com/">
    <author>
      <name>chaupt</name>
    </author>
    <id>tag:blog.buildingwebapps.com,2008-05-12:10492</id>
    <published>2008-05-12T16:18:00Z</published>
    <updated>2008-05-12T16:39:39Z</updated>
    <category term="BOC" />
    <category term="how-to" />
    <category term="learningrails" />
    <category term="podcast" />
    <category term="rubyonrails" />
    <category term="screencast" />
    <category term="tutorial" />
    <link href="http://feeds.feedburner.com/~r/buildingwebappsblog/~3/288802476/screencast-6-lesson-14-cold-soft-white-underbelly" rel="alternate" type="text/html" />
    <title>Screencast 6/Lesson 14: Cold, Soft White Underbelly</title>
<content type="html">
            &lt;p&gt;The sixth screencast is posted and should be propagating to iTunes and our email lists now. In this episode we do something quick (show setting up acts_as_textiled), then show something else that should be quick, but turns in to a reality check.&lt;/p&gt;


	&lt;p&gt;Michael walks through “dropping in” in-place editing to our simple &lt;span class='caps'&gt;CMS&lt;/span&gt;, and quickly demonstrates what happens when you have to scratch the surface of Rails: things don’t work as documented, things may not have documentation, plugins can quickly drift out of sync with the current releases of Rails (edge or otherwise), you may have to sift through Rails bug reports to find “just the right patch”.&lt;/p&gt;


	&lt;p&gt;Blue Oyster Cult may have gotten it right with &lt;a href='http://www.last.fm/music/Blue+Öyster+Cult/_/Hot+Rails+to+Hell'&gt;Hot Rails to Hell&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;The great thing (???) is that almost certainly someone has had to cover this ground before and a little targeted use of Google will yield a clue. The thing that absolutely sucks is that almost certainly someone has had to cover this before, proposed a fix that is gathering dust, and you have to dig for it.&lt;/p&gt;


	&lt;p&gt;Of course, that’s where we hope to help…trying to expose the rough, dark edges &lt;span class='caps'&gt;AND&lt;/span&gt; help provide useful documentation/links/screencasts that will smooth those corners.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/buildingwebappsblog/~4/288802476" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://blog.buildingwebapps.com/2008/5/12/screencast-6-lesson-14-cold-soft-white-underbelly</feedburner:origLink></entry>
</feed>
