<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Blog</title>
	<atom:link href="http://blog.earlystageit.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.earlystageit.com</link>
	<description>IT topics of interest to early stage companies</description>
	<lastBuildDate>Fri, 16 Jul 2010 16:04:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.earlystageit.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/966ccbbc0eab06abc88a7c11f347cf46?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Blog</title>
		<link>http://blog.earlystageit.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.earlystageit.com/osd.xml" title="Blog" />
	<atom:link rel='hub' href='http://blog.earlystageit.com/?pushpress=hub'/>
		<item>
		<title>A Reverse Proxy for Google App Engine</title>
		<link>http://blog.earlystageit.com/2010/07/10/gae-proxy/</link>
		<comments>http://blog.earlystageit.com/2010/07/10/gae-proxy/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 12:18:49 +0000</pubDate>
		<dc:creator>J</dc:creator>
				<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://blog.earlystageit.com/?p=354</guid>
		<description><![CDATA[Google App Engine supports HTTPS if you access your application through https://abc.appspot.com but not through https://www.abc.com. Google is working on a solution but there is currently no ETA. From a technology point of view, it comes down to the question of where your SSL is terminated. To have https, the certificate must reside on the server that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=354&subd=earlystageit&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://googleappengine.blogspot.com/2008/10/announcing-https-support-for-appspotcom.html" target="_blank">Google App Engine supports HTTPS</a> if you access your application through <span style="color:#0000ff;"><span style="text-decoration:underline;">https://abc.appspot.com</span></span> but not through <span style="color:#0000ff;"><span style="text-decoration:underline;">https://www.abc.com</span></span>. Google is working on a solution but there is currently no ETA. From a technology point of view, it comes down to the question of where your SSL is terminated. To have https, the certificate must reside on the server that fields the call. If it does not, your browser gives you a certificate error. Google has a generic *.appspot.com certificate at every app engine server but they don’t want to put a yourdomain.com certificate on servers in their infrastructure.</p>
<p>We <a href="http://blog.earlystageit.com/2009/09/17/secure-access-to-google-app-engine/" target="_blank">blogged</a> about it last year, envisioning a service to do this for other businesses. In this post, we take it a step further and describe the implementation.</p>
<p>The implementation uses an Amazon EC2 instance as a proxy server. There are three parts to setting up the proxy:</p>
<ol>
<li><strong>The foundation</strong>. A couple of years ago, Brad Larson described the process of <a href="http://www.sunsetlakesoftware.com/2008/09/13/running-drupal-website-amazon-ec2" target="_blank">setting up an EC2 server</a>. His purpose was different but the first steps of our process are the same as what he described. Following his lead, bring up an instance of a CentOS AMI. A couple of AMIs we have used are ami-0193f760 in US-East and ami-e32273a6 in US-West (both from RightScale). Snap a 1GB EBS volume to it and attach an IP address. See Brad&#8217;s article for details.</li>
<li><strong>The components</strong>. Squid requires just two components: <code>mod_ssl</code> and <code>squid</code>. Install them both using <code>yum</code> (or <code>apt-get</code> if you are using a different version of Linux).</li>
<li><strong>Integration</strong>. A few steps to this:
<ul>
<li>Make sure to update /etc/hosts and add the line <code>01.23.45.67 www.abc.com www_abc</code>.</li>
<li>Optional: for speed, add <a href="http://code.google.com/speed/public-dns/" target="_blank">Google nameservers</a> (or others good ones for your locale) to <code>/etc/resolv.conf</code>. To accomplish this, add the lines <code>nameserver 8.8.8.8</code> and <code>nameserver 8.8.4.4</code> to that file.</li>
<li>Finally, Squid Wiki <a href="http://wiki.squid-cache.org/ConfigExamples/Reverse/SslWithWildcardCertifiate" target="_blank">Configuring SSL Reverse Proxy</a> does a great job of walking through the steps of configuring the reverse proxy. We won&#8217;t reproduce the steps for creating a certificate. Here is the config file we use. Not much to it, declaring the SSL connection to the browser and to App Engine and tightening the security parameters.</li>
<pre>acl all src 0.0.0.0/0.0.0.0
acl Safe_ports port 443
acl gae dstdomain abc.appspot.com

visible_hostname www.abc.com
https_port 443 cert=/path/to/cert key=/path/to/key defaultsite=abc.appspot.com
cache_peer abc.appspot.com parent 443 0 no-query originserver ssl sslflags=DONT_VERIFY_PEER name=appspot
cache_peer_access appspot allow gae
always_direct allow gae

http_access allow gae Safe_ports
http_access deny all

debug_options ALL,1</pre>
</ul>
</li>
<li><strong>Debugging</strong>. For the novice, Squid can be a little cryptic. It was built for speed, not programming ease. Here are a few hints on what to do when things don&#8217;t work according to plan:
<ul>
<li>If squid won&#8217;t even start, <code>squid –N –d l -D</code> can be useful in figuring out why.</li>
<li>If it starts but does not behave as you would expect, that last line (<code><a href="http://www.squid-cache.org/Doc/config/debug_options/" target="_blank">debug_options</a></code><a href="http://www.squid-cache.org/Doc/config/debug_options/" target="_blank"> command</a>) can be used to control the level of detail that is logged. Reading those logs can be a bit of a black art. Use your favorite search engine and the <a href="http://oreilly.com/catalog/9780596001629/index.html" target="_blank">Squid book</a> for help.</li>
</ul>
</li>
<li><strong>Operation</strong>. Once you have a basic configuration running, tighten up the security and optimize it for performance. We will be adding to this section in the future but here is a good starting point: <a href="http://onlamp.com/pub/a/onlamp/2004/02/12/squid.html" target="_blank">Six Things First Time Administrators Should Know</a>.</li>
</ol>
<br />Filed under: <a href='http://blog.earlystageit.com/category/requirements/'>Requirements</a> Tagged: <a href='http://blog.earlystageit.com/tag/amazon-aws/'>Amazon AWS</a>, <a href='http://blog.earlystageit.com/tag/cloud-computing/'>Cloud Computing</a>, <a href='http://blog.earlystageit.com/tag/google-app-engine/'>Google App Engine</a>, <a href='http://blog.earlystageit.com/tag/security/'>Security</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/earlystageit.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/earlystageit.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/earlystageit.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/earlystageit.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/earlystageit.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/earlystageit.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/earlystageit.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/earlystageit.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/earlystageit.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/earlystageit.wordpress.com/354/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=354&subd=earlystageit&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.earlystageit.com/2010/07/10/gae-proxy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">J.Singh</media:title>
		</media:content>
	</item>
		<item>
		<title>IT Strategy for a Web Startup</title>
		<link>http://blog.earlystageit.com/2010/06/26/it-strategy-for-a-web-startup/</link>
		<comments>http://blog.earlystageit.com/2010/06/26/it-strategy-for-a-web-startup/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 21:20:53 +0000</pubDate>
		<dc:creator>J</dc:creator>
				<category><![CDATA[Customer Relationship]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Technology Strategy]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Building Web Applications]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://blog.earlystageit.com/?p=347</guid>
		<description><![CDATA[As we near the completion of a major web application for a startup, it&#8217;s time to reflect on the factors responsible for the success. Cloud Computing. The hardware cost for development was less than $750. That figure included the cost of a laptop. In an economic climate where startups have to do more with less, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=347&subd=earlystageit&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>As we near the completion of a major web application for a startup, it&#8217;s time to reflect on the factors responsible for the success.</p>
<ol>
<li>Cloud Computing. The hardware cost for development was less than $750. That figure included the cost of a laptop. In an economic climate where startups have to do more with less, how can you beat that?
<ul>
<li>We used Google App Engine for the most part but not exclusively.</li>
<li>For confidential documents, we used Amazon S3, preferring to go directly between the browser and Amazon, bypassing Google. Any doubts about whether Google will mine those documents were neutralized.</li>
</ul>
</li>
<li>Staying conceptual with the implementation.
<ul>
<li>Google App Engine was great for helping us stay conceptual. They take care of scalability, backups, OS versions, patches. All the stuff that drags you down.</li>
<li>Amazon EC2 is too low level. One has to worry about scalability, backups, OS versions, patches. So we go up a level with Rightscale and BitNami.</li>
<li>For the same reason, we would consider Amazon RDS over doing our own database management.</li>
</ul>
</li>
<li>Open Source Software. Most notably, jQuery. Their slogan is &#8220;write less, do more&#8221;. The reality matches the slogan. A rich milieu of available software allowed us to assemble components rather than write code. A couple of times we were bitten by it too. A month after we had integrated a component, the developer decided not to support it any more. We switched away. So one has to stay agile but that&#8217;s the name of the game anyway.</li>
<li>Staying conceptual with the requirements. This was the second-biggest factor: working with a team that trusts you, things don&#8217;t need to be written down to an excruciating level of detail. You hear the requirement in vague terms, you implement it, and if you had misunderstood, well, change quickly. Keeping the <a href="http://agilemanifesto.org/" target="_blank">Agile Manifesto</a> in mind.</li>
<li>Tracking shifts in business strategy. This was <em>the</em> biggest factor. The business strategy changed at least a couple of times during the project. The development was continuous, however. We were surprised to discover that the changes forced us to re-factor the code as it was re-purposed to fit the changing strategy — but very little of the code was thrown away. The re-factoring may have made it more modular, actually. By the time the business strategy had settled, we had software components that were well-tested already. Only the final integration was left to do.</li>
</ol>
<p>Your mileage will vary, of course, but these are the factors that made us successful for <em>this </em>project.</p>
<br />Filed under: <a href='http://blog.earlystageit.com/category/customer-relationship/'>Customer Relationship</a>, <a href='http://blog.earlystageit.com/category/requirements/'>Requirements</a>, <a href='http://blog.earlystageit.com/category/technology-strategy/'>Technology Strategy</a> Tagged: <a href='http://blog.earlystageit.com/tag/agile-development/'>Agile Development</a>, <a href='http://blog.earlystageit.com/tag/building-web-applications/'>Building Web Applications</a>, <a href='http://blog.earlystageit.com/tag/cloud-computing/'>Cloud Computing</a>, <a href='http://blog.earlystageit.com/tag/entrepreneurship/'>Entrepreneurship</a>, <a href='http://blog.earlystageit.com/tag/google-app-engine/'>Google App Engine</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/earlystageit.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/earlystageit.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/earlystageit.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/earlystageit.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/earlystageit.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/earlystageit.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/earlystageit.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/earlystageit.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/earlystageit.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/earlystageit.wordpress.com/347/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=347&subd=earlystageit&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.earlystageit.com/2010/06/26/it-strategy-for-a-web-startup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">J.Singh</media:title>
		</media:content>
	</item>
		<item>
		<title>Woven Clouds: OpenID</title>
		<link>http://blog.earlystageit.com/2010/01/31/woven-clouds-openid/</link>
		<comments>http://blog.earlystageit.com/2010/01/31/woven-clouds-openid/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 12:29:49 +0000</pubDate>
		<dc:creator>J</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[Tips and Techniques]]></category>

		<guid isPermaLink="false">http://blog.earlystageit.com/?p=320</guid>
		<description><![CDATA[When it comes to building services using the cloud, one often comes across the need to weave different cloud-based offerings together. One example is OpenID. I blogged about it last year. In this post, I would like to take it to the next level and offer a programming pattern for using it with specific examples [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=320&subd=earlystageit&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>When it comes to building services using the cloud, one often comes across the need to weave different cloud-based offerings together. One example is OpenID. I blogged about it <a href="http://blog.earlystageit.com/2009/05/04/barriers-to-entry-userids/" target="_blank">last year</a>. In this post, I would like to take it to the next level and offer a programming pattern for using it with specific examples for Google App Engine. JanRain&#8217;s <a href="https://rpxnow.com/" target="_blank">RPX API</a> makes it easy to incorporate.</p>
<h3>Ingredients</h3>
<p>When you sign up with RPX and register your application, you get:</p>
<ol>
<li>A application ID,</li>
<li>An iFrame widget and</li>
<li>An API token.</li>
</ol>
<p>When signing up, the domain names need to be provided. These are domain names from which an authentication request may originate. In our case, that includes localhost and www.example.com.</p>
<h3>Recipe</h3>
<p>Create a login page and place the iFrame widget on it. The iFrame will point to something like</p>
<pre>src="https://example.rpxnow.com/openid/embed?token_url=appRpxURL"</pre>
<p>where appRpxURL is a URL served by the application. When a user interacts with the login page, RPX calls the application at this URL with a token and the application is expected to turn around and request information about the user. This Google App Engine <a title="OpenID interaction code sample" href="http://www.earlystageit.com/srcCodeShow/OpenID.py" target="_blank">code fragment</a> illustrates the interaction (to access it, you will need to use an OpenID login). At this point, the application knows the user id. This part is documented in a number of places on the web.</p>
<h3>Integration</h3>
<p>In a number of the applications we develop at Early Stage IT, the user id is stored in a session variable using <a title="Session Management Utilities" href="http://gaeutilities.appspot.com/" target="_blank">GAE Utilities</a> for the remainder of the session. The above-cited code fragment shows this also. The application is still responsible for determining what the user is entitled to do. The first thing to do in handling a user request is to verify that the user has the requisite application capability. This is illustrated in the last part of the sample code.</p>
<p>When the user logs out, clear the cookies by calling theSession.terminate()</p>
<h3>If you use it…</h3>
<p>…please cite this blog post. Feedback — positive or negative — gratefully accepted.</p>
<br />Filed under: <a href='http://blog.earlystageit.com/category/techniques/'>Techniques</a> Tagged: <a href='http://blog.earlystageit.com/tag/google-app-engine/'>Google App Engine</a>, <a href='http://blog.earlystageit.com/tag/openid/'>OpenID</a>, <a href='http://blog.earlystageit.com/tag/tips-and-techniques/'>Tips and Techniques</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/earlystageit.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/earlystageit.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/earlystageit.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/earlystageit.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/earlystageit.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/earlystageit.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/earlystageit.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/earlystageit.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/earlystageit.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/earlystageit.wordpress.com/320/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=320&subd=earlystageit&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.earlystageit.com/2010/01/31/woven-clouds-openid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">J.Singh</media:title>
		</media:content>
	</item>
		<item>
		<title>Security in the Cloud?</title>
		<link>http://blog.earlystageit.com/2009/12/29/security-in-the-cloud/</link>
		<comments>http://blog.earlystageit.com/2009/12/29/security-in-the-cloud/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 13:56:48 +0000</pubDate>
		<dc:creator>J</dc:creator>
				<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Penetration Testing]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://earlystageit.wordpress.com/?p=294</guid>
		<description><![CDATA[Security is emerging as the #1 reason people give for shying away from the cloud, according to NIST (National Institute of Standards and Technology, Computer Security Division). This post is my attempt at pulling together the cloud security-related resources in one place. A recent article in Technology Review was quoted in NYT. The tone is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=294&subd=earlystageit&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Security is emerging as the #1 reason people give for shying away from the cloud, according to <a href="http://csrc.nist.gov/groups/SNS/cloud-computing/" target="_blank">NIST</a> (National Institute of Standards and Technology, Computer Security Division).</p>
<p>This post is my attempt at pulling together the cloud security-related resources in one place.</p>
<p>A recent <a href="http://www.technologyreview.com/web/24166/" target="_blank">article in Technology Review</a> was quoted in <a href="http://bits.blogs.nytimes.com/2009/12/24/is-our-data-too-vulnerable-in-the-cloud/" target="_blank">NYT</a>. The tone is more sensational than is warranted. The TR article is based on an experiment where researchers were able to discover whether a &#8220;victim&#8221; Virtual Machine was lightly or heavily loaded. OK, so you can tell when the server is busy — just like the pizza delivery guy can tell when folks are working late at the CIA office. It&#8217;s a long way from there to getting your hands on confidential information, IMHO.</p>
<p>Sensational or not the point of security is valid. If you are a cloud company your competitor may well use FUD (fear,uncertainty and doubt) against you. So how do we assure ourselves and our customers of the security of our cloud application? No silver bullets here, just old-fashioned common sense applied across the board. Keep in mind, security is more than IT security. If you have an ultra-secure IT infrastructure and your users leave passwords on yellow-stickies under their keyboards, the infrastructure was probably not worth the money you spent on it.</p>
<p>First, building security into the architecture, not as an afterthought. Amazon offers <a href="http://awsmedia.s3.amazonaws.com/AWS_HIPAA_Whitepaper_Final.pdf" target="_blank">these guidelines</a> for developing HIPAA-compliant applications. Whether you use Amazon or not, whatever your application&#8217;s security requirements, you need to have architecture guidelines for <em><strong>your application</strong></em>. And your implementation team needs to follow them.</p>
<p>Second, there are a number of assessment tools out there. Thanks to Steve Primost (<a href="https://www.infosecisland.com/userprofile/222.html" target="_blank">his blog</a>) for this link on the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=CD057D9D-86B9-4E35-9733-7ACB0B2A3CA1&amp;displaylang=en" target="_blank">Microsoft Security Assessment Tool</a>.</p>
<p>Third, if you were the customer, which would you find more compelling?</p>
<ol>
<li><em>We did an assessment of our software and believe it to be secure</em> or</li>
<li><em>We had an independent IT security firm go through our architecture and implementation and found it to be secure?</em></li>
<li><em>We had an independent IT security firm try to penetrate our security by hacking into our system. After a week, they gave up.</em></li>
</ol>
<p>The level you choose depends on how important security is for your business and your customers. Well, of course it is important. But are you/they willing to pay for the extra cost of insuring that it is?</p>
<br />Posted in Requirements Tagged: Amazon AWS, Cloud Computing, Penetration Testing, Security <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/earlystageit.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/earlystageit.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/earlystageit.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/earlystageit.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/earlystageit.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/earlystageit.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/earlystageit.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/earlystageit.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/earlystageit.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/earlystageit.wordpress.com/294/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=294&subd=earlystageit&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.earlystageit.com/2009/12/29/security-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">J.Singh</media:title>
		</media:content>
	</item>
		<item>
		<title>Introduction to Google App Engine</title>
		<link>http://blog.earlystageit.com/2009/12/10/google-app-engine/</link>
		<comments>http://blog.earlystageit.com/2009/12/10/google-app-engine/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 19:17:21 +0000</pubDate>
		<dc:creator>J</dc:creator>
				<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Building Web Applications]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Google App Engine]]></category>

		<guid isPermaLink="false">http://earlystageit.wordpress.com/?p=281</guid>
		<description><![CDATA[This talk will introduce software engineers to Google App Engine. Event Details: Google App Engine — Mass GTUG Meeting Location: MIT Campus, Building W92 at 304 Vassar St, Cambridge MA. Date: Tue, January 12, 2010 Time: 6pm – 8pm To register, click here It is not an introduction to web programming or a Google Apps session. It [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=281&subd=earlystageit&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 155px"><img title="Google App Engine Logo" src="https://www.google.com/accounts/ah/appengine.jpg" alt="App Engine Logo" width="145" height="111" /><p class="wp-caption-text">Google App Engine</p></div>
<p>This talk will introduce software engineers to Google App Engine.</p>
<p><strong>Event Details:</strong></p>
<ul>
<li> <strong>Google App Engine — Mass GTUG Meeting</strong></li>
<li><span style="text-decoration:underline;">Location</span><strong><span style="font-weight:normal;">: MIT Campus, Building W92 at 304 Vassar St, Cambridge MA.</span></strong></li>
<li><span style="text-decoration:underline;">Date</span>: Tue, January 12, 2010</li>
<li><strong><span style="font-weight:normal;"><span style="text-decoration:underline;">Time</span>: 6pm – 8pm </span></strong></li>
<li>To register, <a href="http://massgtug.gtugs.org/news/january2010-meeting" target="_blank">click here</a></li>
</ul>
<p>It is <em>not</em> an <em>introduction to web programming</em> or a <em>Google Apps</em> session. It is assumed you know server-side web development — perhaps ASP, JSP or PHP. Please note, <em>this session will be based on Python</em>. Still, it is not a programming language session — the emphasis will be on learning the available APIs which are common between Java and Python on GAE. The idea is to familiarize everyone with the basic App Engine APIs.</p>
<p>We will create a toy bank and be able to transfer &#8220;money&#8221; between accounts.</p>
<p><strong>Agenda:</strong></p>
<ol>
<li> Getting Started &#8211; What is App Engine</li>
<li>Structure of an App Engine Application</li>
<li>Data Store — <em>the data store is common between Python and Java</em>.</li>
<li>Template Engine — <em>the Template Engine is unique to the Python environment.</em></li>
<li>Transactions — <em>the transaction model is common between Python and Java</em>.</li>
</ol>
<p><strong>Prep Work:</strong> To get more out of the meeting, you may want to</p>
<ul>
<li>Visit the Google App Engine <a href="http://code.google.com/appengine/docs/python/gettingstarted/devenvironment.html" target="_blank">Getting Started Guide</a>.</li>
<li>The <a href="http://code.google.com/appengine/downloads.html" target="_blank">Downloads</a> page also has instructions on setting up a development environment such as Eclipse.</li>
<li>Walk through the <a href="http://code.google.com/appengine/docs/python/gettingstarted/" target="_blank">Hello World example</a> ahead of time.</li>
<li>Walk through this <a href="http://sites.google.com/site/io/working-with-google-app-engine-models" target="_blank">Data Modeling presentation</a> presentation ahead of time.</li>
<li>The design of the bank application is based on <a href="http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engine" target="_blank">this blog post</a> by Nick Johnson.</li>
</ul>
<p>If you do some of the prep work outlined above, you may be able to ask more pointed questions. I will make sure to allocate plenty of time for questions.</p>
<br />Posted in Requirements Tagged: Building Web Applications, Cloud Computing, Google App Engine <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/earlystageit.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/earlystageit.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/earlystageit.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/earlystageit.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/earlystageit.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/earlystageit.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/earlystageit.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/earlystageit.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/earlystageit.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/earlystageit.wordpress.com/281/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=281&subd=earlystageit&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.earlystageit.com/2009/12/10/google-app-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">J.Singh</media:title>
		</media:content>

		<media:content url="//www.google.com/accounts/ah/appengine.jpg" medium="image">
			<media:title type="html">Google App Engine Logo</media:title>
		</media:content>
	</item>
		<item>
		<title>Google App Engine Hackathon</title>
		<link>http://blog.earlystageit.com/2009/10/14/hackathon/</link>
		<comments>http://blog.earlystageit.com/2009/10/14/hackathon/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 12:16:42 +0000</pubDate>
		<dc:creator>J</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Google App Engine]]></category>

		<guid isPermaLink="false">http://earlystageit.wordpress.com/?p=267</guid>
		<description><![CDATA[This Hackathon will introduce software engineers to Google App Engine. It will be free of charge, first-come-first-served but preference will be given to software engineers in the web development area. Event Details: Location: Aprigo, 460 Totten Pond Rd suite 660, Waltham, MA. I would like to thank Aprigo for their sponsorship of this event. Date: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=267&subd=earlystageit&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 155px"><img title="Google App Engine Logo" src="https://www.google.com/accounts/ah/appengine.jpg" alt="App Engine Logo" width="145" height="111" /><p class="wp-caption-text">Google App Engine</p></div>
<p>This Hackathon will introduce software engineers to Google App Engine. It will be free of charge, first-come-first-served but preference will be given to software engineers in the web development area.</p>
<p><strong>Event Details:</strong></p>
<ul>
<li><span style="text-decoration:underline;">Location</span><strong><span style="font-weight:normal;">: Aprigo, 460 Totten Pond Rd suite 660, </span></strong>Waltham, MA. I would like to thank Aprigo for their sponsorship of this event.</li>
<li><span style="text-decoration:underline;">Date</span>: November 6, 2009<strong></strong></li>
<li><strong><span style="font-weight:normal;"><span style="text-decoration:underline;">Time</span>: 9:00 am to 4:00 pm </span></strong></li>
<li><strong><span style="font-weight:normal;"><span style="text-decoration:underline;">Meeting capacity</span>: 10 people</span></strong></li>
<li><strong><span style="font-weight:normal;"><span style="text-decoration:underline;">Food/drink</span>: bring your own / buy in the building.</span></strong></li>
<li><strong><span style="font-weight:normal;">Sign up: <a href="http://www.eventbrite.com/event/471862353" target="_blank">Eventbrite</a>.<br />
</span></strong></li>
</ul>
<p>It is <em>not</em> an <em>introduction to web programming</em> or a <em>Google Apps</em> session. It is assumed you know server-side web development — perhaps ASP, JSP or PHP. Please note, <em>this session will be based on Python</em>. Still, it is not a programming language class — the emphasis will be on learning the available APIs which are common between Java and Python on GAE. <span style="color:#0000ff;">If you have any questions about whether you will get much out of the hackathon, please <a href="http://www.earlystageit.com/contact" target="_blank">contact us</a>.</span></p>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Agenda</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">The idea is to familiarize everyone with the basic App Engine APIs.</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">1 hr &#8211; Getting Started &#8211; What is App Engine</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">1.5 hrs &#8211; Coding</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">15 mins &#8211; Introduction to Users API</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">1.5 hrs &#8211; Coding/lunch</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">15 mins &#8211; Introduction to UrlFetch and Mail APIs</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">1.5 hrs &#8211; Coding</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">15 mins &#8211; Introduction to Images and Memcache</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">1 hr &#8211; Coding</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">45 mins &#8211; Let attendees present the apps they worked on/wrap up</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Prep Work</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Attendees should plan to bring their own laptop.</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Prior to the session, it would be helpful to have walked through the Hello World example:</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">http://code.google.com/appengine/docs/python/gettingstarted/</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">The Development Environment section of the above link suggests downloading Python 2.5 and the App Engine SDK. Please download these ahead of time.</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">The Download App Engine SDK page also has instructions on downloading and</div>
<p><strong>Agenda <span style="font-weight:normal;">The main goal is to familiarize everyone with the App Engine and how you can use it to build your web application &#8220;in the cloud&#8221;. </span></strong></p>
<ul>
<li>1 hr &#8211; Getting Started &#8211; What is App Engine</li>
<li>1.5 hrs &#8211; Coding</li>
<li>15 mins &#8211; Introduction to Users API</li>
<li>1.5 hrs &#8211; Coding/lunch</li>
<li>15 mins &#8211; Introduction to UrlFetch and Mail APIs</li>
<li>1.5 hrs &#8211; Coding</li>
<li>15 mins &#8211; Introduction to Images and Memcache</li>
<li>1 hr &#8211; Coding</li>
<li>45 mins &#8211; Let attendees present the apps they worked on/wrap up</li>
</ul>
<p><strong>Prep Work</strong></p>
<ul>
<li>Attendees should plan to bring their own laptop.</li>
<li>The Development Environment section of the above link suggests downloading Python 2.5 and the App Engine SDK. Please download these ahead of time.</li>
<li>The <a href="http://code.google.com/appengine/downloads.html" target="_blank">Download App Engine SDK</a> page also has instructions on downloading and setting up a development environment such as Eclipse. This is not mandatory.</li>
<li>It is helpful to have walked through the <a href="http://code.google.com/appengine/docs/python/gettingstarted/" target="_blank">Hello World example</a> ahead of time. We will be going over it again in the first couple of hours of the session so it is optional, <em>not mandatory</em>, to have done this.</li>
</ul>
<p><strong>Example Applications<span style="font-weight:normal;">. Attendees are welcome to bring their own application ideas to work on during the Hackathon. For the main example, we will work on an application in the spirit of <a href="http://www.cafesurvey.com/" target="_blank">Cafe Survey</a>. Another possibility is to create a <span style="text-decoration:underline;">wiki</span> or a <span style="text-decoration:underline;">blog</span> application.</span></strong></p>
<br />Posted in Techniques, Training Tagged: Google App Engine, Training <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/earlystageit.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/earlystageit.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/earlystageit.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/earlystageit.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/earlystageit.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/earlystageit.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/earlystageit.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/earlystageit.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/earlystageit.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/earlystageit.wordpress.com/267/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=267&subd=earlystageit&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.earlystageit.com/2009/10/14/hackathon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">J.Singh</media:title>
		</media:content>

		<media:content url="//www.google.com/accounts/ah/appengine.jpg" medium="image">
			<media:title type="html">Google App Engine Logo</media:title>
		</media:content>
	</item>
		<item>
		<title>Secure Access to Google App Engine</title>
		<link>http://blog.earlystageit.com/2009/09/17/secure-access-to-google-app-engine/</link>
		<comments>http://blog.earlystageit.com/2009/09/17/secure-access-to-google-app-engine/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 09:53:00 +0000</pubDate>
		<dc:creator>J</dc:creator>
				<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[https support]]></category>
		<category><![CDATA[SSL support]]></category>

		<guid isPermaLink="false">http://earlystageit.wordpress.com/?p=264</guid>
		<description><![CDATA[Google App Engine supports HTTPS if you access your application through https://abc.appspot.com but not through https://www.abc.com. Google is working on a solution but there is currently no ETA. From a technology point of view, it comes down to the question of where your SSL is terminated. To have https, the certificate must reside on the server that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=264&subd=earlystageit&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://googleappengine.blogspot.com/2008/10/announcing-https-support-for-appspotcom.html" target="_blank">Google App Engine supports HTTPS</a> if you access your application through <span style="color:#0000ff;"><span style="text-decoration:underline;">https://abc.appspot.com</span></span> but not through <span style="text-decoration:underline;"><span style="color:#0000ff;">https://www.abc.com</span></span>. Google is working on a solution but there is currently no ETA. From a technology point of view, it comes down to the question of where your SSL is terminated. To have https, the certificate must reside on the server that fields the call. If it does not, your browser gives you a certificate error. Google has a generic *.appspot.com certificate at every app engine server but they don&#8217;t want to put a yourdomain.com certificate on servers in their infrastructure.</p>
<p>For some companies HTTPS access through their own domain is essential.</p>
<p>We at Early Stage IT use an interim solution — a proxy server. The pricing and reliability parameters are not fully set but we think it might cost about $35/month plus $0.30/GB for 3-nines availability. It would also add about 125 msec to each access request. We measured the delay at 75 msec but it may have been on a particularly calm day, internet-traffic-wise. Proxy servers terminate the SSL connection at the proxy with a <em>yourdomain.com</em> certificate, decrypt the message, re-encrypt it with a <em>*.appspot.com</em> certificate and send it along. The message <strong>can</strong> theoretically be snooped on while it is being transformed on that proxy server.</p>
<p>With these parameters, is this a service that would be of interest to your company?</p>
<br />Posted in Requirements Tagged: Google App Engine, https support, SSL support <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/earlystageit.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/earlystageit.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/earlystageit.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/earlystageit.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/earlystageit.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/earlystageit.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/earlystageit.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/earlystageit.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/earlystageit.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/earlystageit.wordpress.com/264/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=264&subd=earlystageit&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.earlystageit.com/2009/09/17/secure-access-to-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">J.Singh</media:title>
		</media:content>
	</item>
		<item>
		<title>Structuring Software Development Relationships</title>
		<link>http://blog.earlystageit.com/2009/08/20/structuring-software-development-relationships/</link>
		<comments>http://blog.earlystageit.com/2009/08/20/structuring-software-development-relationships/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 02:06:31 +0000</pubDate>
		<dc:creator>J</dc:creator>
				<category><![CDATA[Customer Relationship]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Billing]]></category>
		<category><![CDATA[Entrepreneurship]]></category>

		<guid isPermaLink="false">http://earlystageit.wordpress.com/?p=235</guid>
		<description><![CDATA[How to structure a contract with customers is an interesting problem, especially since the two parties don&#8217;t know each other in the beginning. We want the contract to be fair in distributing risk between the parties. We want to write the contract in such a way that neither side has an incentive to take advantage [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=235&subd=earlystageit&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>How to structure a contract with customers is an interesting problem, especially since the two parties don&#8217;t know each other in the beginning. We want the contract to be fair in distributing risk between the parties. We want to write the contract in such a way that neither side has an incentive to take advantage of the other. Finally, we want to write the rules of the game such that when things go awry, both sides have an incentive to fix the situation rather than descend into worse.</p>
<p>Early Stage IT is in a unique position. On the one hand, we do work for clients and that puts us in a &#8220;supplier&#8221; role. On the other hand, as virtual CIO for our clients, we play a &#8220;client&#8221; role vis-a-vis other suppliers. With both roles in mind, we did a survey of billing practices people employ. In this search, we favored billing practices that align with agile development. To cite some models:</p>
<ul>
<li><a href="http://agilesoftwaredevelopment.com/blog/peterstev/10-agile-contracts" target="_blank">10 Contracts for your next Agile Software Project</a> by Peter Stevens. It&#8217;s well written and concise, and a recommended reading for all. How many people&#8217;s blog entries get translated into a half-dozen languages?</li>
<li>A 5-part series by Chris Parsons of <a href="http://www.edendevelopment.co.uk/" target="_blank">Eden Development</a>.
<ul>
<li><a href="http://blog.edendevelopment.co.uk/2009/01/09/billing-with-integrity-part-1/" target="_blank">Parts 1</a>, <a href="http://blog.edendevelopment.co.uk/2009/01/16/billing-with-integrity-part-2/" target="_blank">Part 2</a> and <a href="http://blog.edendevelopment.co.uk/2009/01/23/billing-with-integrity-part-3/" target="_blank">Part 3</a> argue that fixed price arrangements are inappropriate for software development because <em>they’re implicitly set up to pit client and supplier against each other. This wastes valuable project budget and time on working out what to do when the project changes</em>. I concur.</li>
<li><a href="http://blog.edendevelopment.co.uk/2009/02/27/billing-with-integrity-part-4/" target="_blank">Part 4</a>, argues that time and materials types of arrangements shift the risk to the client but the adversarial nature of the relationship remains. It&#8217;s not a good model for new relationships but can be OK once trust has been built up.</li>
<li><a href="http://blog.edendevelopment.co.uk/2009/04/08/billing-with-integrity-part-5/" target="_blank">Part 5</a> describes what they actually do. The elements we like are (a) giving clients an expectation of the budget, (b) weekly billing, (c) setting weekly expectations and &#8220;gently&#8221; exceeding them and (d) no-surprises billing — meaning that things like management fees, infrastructure usage fees are blended into the programmer rate.</li>
</ul>
</li>
<li><a href="http://www.bestbrains.dk/Blog/2009/06/03/CollaborativeAgileContracts.aspx" target="_blank">The Vertical Slice</a> by Lars Thorup. It&#8217;s beautiful in its simplicity and I like it. It ensures the supplier has a stake in the success of the client. The 50% number, however, does not fit the risk profile of Early Stage IT&#8217;s typical clients.</li>
</ul>
<p>Of all the different models, we like three the best. In order</p>
<ol>
<li>Peter Stevens&#8217; <em><a href="http://agilesoftwaredevelopment.com/blog/peterstev/10-agile-contracts#MFN-cff" target="_blank">Money for Nothing, Changes for Free</a></em></li>
<li>Chris Parsons&#8217; <em><a href="http://blog.edendevelopment.co.uk/2009/04/08/billing-with-integrity-part-5/" target="_blank">Billing with Integrity</a></em></li>
<li>Peter Stevens&#8217; <em><a href="http://agilesoftwaredevelopment.com/blog/peterstev/10-agile-contracts#TAM-vscc" target="_blank">Time and Materials with Variable Scope and Cost Ceiling</a></em></li>
</ol>
<p>As always, feedback is welcome.</p>
<br />Posted in Customer Relationship Tagged: Agile Development, Billing, Entrepreneurship <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/earlystageit.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/earlystageit.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/earlystageit.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/earlystageit.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/earlystageit.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/earlystageit.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/earlystageit.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/earlystageit.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/earlystageit.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/earlystageit.wordpress.com/235/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=235&subd=earlystageit&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.earlystageit.com/2009/08/20/structuring-software-development-relationships/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">J.Singh</media:title>
		</media:content>
	</item>
		<item>
		<title>Cloud Development</title>
		<link>http://blog.earlystageit.com/2009/07/25/the-early-stage-it-manifesto/</link>
		<comments>http://blog.earlystageit.com/2009/07/25/the-early-stage-it-manifesto/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 01:42:24 +0000</pubDate>
		<dc:creator>J</dc:creator>
				<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Technology Strategy]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Cloud Development]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Issue Tracking]]></category>
		<category><![CDATA[SaaS]]></category>
		<category><![CDATA[Source Control]]></category>

		<guid isPermaLink="false">http://earlystageit.wordpress.com/?p=209</guid>
		<description><![CDATA[What are some of the hurdles we have encountered with Cloud Development? What mechanisms have we used to overcome them? The problems posed by the different cloud platforms are different. I will be writing on this topic in a series blog posts. I expect to blog on these topics. If you know of others, please [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=209&subd=earlystageit&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>What are some of the hurdles we have encountered with Cloud Development? What mechanisms have we used to overcome them? The problems posed by the different cloud platforms are different. I will be writing on this topic in a series blog posts. I expect to blog on these topics. If you know of others, please let me know. These list items will get hyperlinked over time.</p>
<ol>
<li>Cloud Development for Google App Engine</li>
<li>Cloud Development for Amazon EC2</li>
<li>Managing software delivery from outsourcers</li>
<li>Managing evolution of database configurations</li>
<li><a href="http://blog.quantitecture.com/2009/02/26/trends-in-load-and-performance-testing/" target="_blank">Performance and Stress Testing</a></li>
<li>Security Testing</li>
</ol>
<p>In this introductory post, I want to cover activities that cross all platforms. The premise of Cloud Development is that the company does not own any hardware. Under these circumstances, how does software development get done?<span id="more-209"></span></p>
<p><em>Tight control over source code is essential.</em><em> </em>This need does not go away with Cloud Computing. It becomes more important! It used to be that if you lost track of the latest source, you could always look at the working machine. No longer, not consistently anyway. In the<a href="http://groups.google.com/group/google-appengine?hl=en&amp;pli=1" target="_blank"> Google App Engine support forum</a>, there is a predictable weekly request from someone or the other for Google to help them retrieve their latest source code. The answer is always the same (no, can&#8217;t be done).  The team needs to use the source repository frequently to build from.  The source repository should be backed up, versioned and secure. What should be under source control? <em>Everything! </em>That includes<span style="text-decoration:underline;"> source code</span> (duh!), <span style="text-decoration:underline;">install scripts</span> (Rightscale scripts, for example, for creating an environment), <span style="text-decoration:underline;">security settings</span>,  even <span style="text-decoration:underline;">database configurations</span>. This last item will require further discussion; more on it in a subsequent post.</p>
<p><em>The issue tracking database</em> is the team&#8217;s second most important asset, after source code. It too needs to be backed up, versioned and secure<sup>†</sup>.</p>
<hr /><sup>†</sup> Here are a couple of recommendations to &#8220;rent&#8221; source code management and issue tracking software from:  <a href="http://www.dynamsoft.com/index.aspx" target="_blank">DynamSoft</a> and <a href="https://www.projectlocker.com/" target="_blank">ProjectLocker</a>. We use the former in our practice but both come well recommended.</p>
<br />Posted in Requirements, Techniques, Technology Strategy Tagged: Agile Development, Amazon AWS, Cloud Computing, Cloud Development, Entrepreneurship, Google App Engine, Issue Tracking, SaaS, Source Control <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/earlystageit.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/earlystageit.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/earlystageit.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/earlystageit.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/earlystageit.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/earlystageit.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/earlystageit.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/earlystageit.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/earlystageit.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/earlystageit.wordpress.com/209/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=209&subd=earlystageit&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.earlystageit.com/2009/07/25/the-early-stage-it-manifesto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">J.Singh</media:title>
		</media:content>
	</item>
		<item>
		<title>Cloud Computing implications for funding startups</title>
		<link>http://blog.earlystageit.com/2009/07/01/changes-in-venture-capital/</link>
		<comments>http://blog.earlystageit.com/2009/07/01/changes-in-venture-capital/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 14:51:04 +0000</pubDate>
		<dc:creator>J</dc:creator>
				<category><![CDATA[Raison d'etre]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<category><![CDATA[SaaS]]></category>
		<category><![CDATA[Software as a Service]]></category>
		<category><![CDATA[Venture Funding]]></category>

		<guid isPermaLink="false">http://earlystageit.wordpress.com/?p=201</guid>
		<description><![CDATA[File this one under is it wishful thinking or is it a real trend?. One swallow does not a summer make, but consider this: Someone I was meeting with yesterday said that they were winding down their venture fund because they had incurred heavy losses and concluded that they needed to stay closer to their [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=201&subd=earlystageit&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>File this one under <em>is it wishful thinking or is it a real trend?</em>.</p>
<p>One swallow does not a summer make, but consider this:</p>
<ul>
<li>Someone I was meeting with yesterday said that they were winding down their venture fund because they had incurred heavy losses and concluded that they needed to stay closer to their knitting.</li>
<li>John Bennett makes the point in his blog that Cloud Computing offers <a href="http://bestrategic.blogspot.com/2009/06/what-cloud-computing-offers-startups_17.html" target="_blank">unprecendented opportunities</a> for small- and medium-sized businesses (SMBs).</li>
</ul>
<p>What does this have to do with Venture Capital?</p>
<ul>
<li>Cloud computing makes it possible for startups to go after a niche SMB markets of the type John outlines.</li>
<li>Such a startup may not have the infinite potential of a Google or Facebook, but making a $20-50M company out of a $1-2M investment is pretty nice returns, even for a VC.</li>
<li>Seed-stage venture firms such as Launch-Capital have come into the market with a different model — and done well even in this economy. Their model is different in that they make <em>more small-dollar</em> deals rather than <em>fewer large-dollar</em> deals.</li>
</ul>
<p>Might other VC firms go the same way? Your thoughts?</p>
<br />Posted in Raison d'etre Tagged: Entrepreneurship, SaaS, Software as a Service, Venture Funding <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/earlystageit.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/earlystageit.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/earlystageit.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/earlystageit.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/earlystageit.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/earlystageit.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/earlystageit.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/earlystageit.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/earlystageit.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/earlystageit.wordpress.com/201/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.earlystageit.com&blog=5823501&post=201&subd=earlystageit&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.earlystageit.com/2009/07/01/changes-in-venture-capital/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">J.Singh</media:title>
		</media:content>
	</item>
	</channel>
</rss>