Refactoring Software Contracts

posted by ryan on February 22nd, 2007

For most of our clients ownership of IP (Intellectual Property) is a key part of their business plan. So for the past few projects we have had to deal with Software contracts for the first time. Unlike many software companies we have no interest in retaining rights to IP and that has a lot to do with Rails. We don’t have code snippet repositories that we copy and paste from for new projects, instead rails becomes our toolbox as we constantly refine our patterns and best practices. The way we wrote the live filter search for Releaseme a year ago is night and day for how we are writing it for Livium although the general concept is similar. Rails allows us the speed to refactor features so easily we often don’t even look at the old code even for reference. This new kind of flexibility gives us the freedom to simply be a service. We don’t need to use code libraries to build our equity because we don’t have to rest on our laurels.

The other sticking point in the standard software contracts is the idea of indemnity and warranty. Most say that we are not only liable for any copyright issues that may arise from the code but we have to warranty that the code will be error free and fix any errors (within a time frame) at our own costs. All this for code software we don’t even own! I think those kinds of terms are simply one sided and make up a lot of the reasons we generally don’t work with contracts other than NDA’s.

The reality is IP agreements are a needed thing so we made our clause on indemnity and warrantee fair and simple, borrowing from the MIT License. This let’s us get back to what we enjoy doing most, building apps!

Provider’s Software Product is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the provider be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.

New site… voting and views

posted by ryan on February 19th, 2007

So we just launched a brand new site called Project Breakout . We are starting with a pre-contest to find a video to use for promoting the site. On March 2nd the first main contest runs to find the next big sketch comedy star with Sketchfest NYC. This is our first production site using Videoegg for video and Amazon S3 for all other media, this means our server is just serving up HTML and all the heavy lifting is being handled by Videoegg and Amazon. It’s also our first site with Slingshot hosting; they have been more than fantastic and if you have a serious rails app to deploy call them. There are two very cool things Hampton came up with for Breakout that I wanted to share:

Voting has always been an issue, how so you keep the doors open (not requiring signup) but keep the contest fair? We thought we would try setting a timer on the vote button both on the client and server side using their IP address. Then the user gets a visual countdown to when they can vote next. This means you can stay on the page and keep watching while voting every 30sec.

Also using that same IP address we changed ’44 views’ to ’44 views by 12 people’. So now when one user keeps refreshing a page over and over to get higher views everyone can see they did it. Why waste time trying to prevent that activity when you can just expose it.