Blog

Google App Engine Hackathon

October 14, 2009 · Leave a Comment

App Engine Logo

Google App Engine

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: November 6, 2009
  • Time: 9:00 am to 4:00 pm
  • Meeting capacity: 10 people
  • Food/drink: bring your own / buy in the building.
  • Sign up: Eventbrite.

It is not an introduction to web programming or a Google Apps session. It is assumed you know server-side web development — perhaps ASP, JSP or PHP. Please note, this session will be based on Python. 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. If you have any questions about whether you will get much out of the hackathon, please contact us.

Agenda
The idea is to familiarize everyone with the basic App Engine APIs.
1 hr – Getting Started – What is App Engine
1.5 hrs – Coding
15 mins – Introduction to Users API
1.5 hrs – Coding/lunch
15 mins – Introduction to UrlFetch and Mail APIs
1.5 hrs – Coding
15 mins – Introduction to Images and Memcache
1 hr – Coding
45 mins – Let attendees present the apps they worked on/wrap up
Prep Work
Attendees should plan to bring their own laptop.
Prior to the session, it would be helpful to have walked through the Hello World example:
http://code.google.com/appengine/docs/python/gettingstarted/
The Development Environment section of the above link suggests downloading Python 2.5 and the App Engine SDK. Please download these ahead of time.
The Download App Engine SDK page also has instructions on downloading and

Agenda The main goal is to familiarize everyone with the App Engine and how you can use it to build your web application “in the cloud”.

  • 1 hr – Getting Started – What is App Engine
  • 1.5 hrs – Coding
  • 15 mins – Introduction to Users API
  • 1.5 hrs – Coding/lunch
  • 15 mins – Introduction to UrlFetch and Mail APIs
  • 1.5 hrs – Coding
  • 15 mins – Introduction to Images and Memcache
  • 1 hr – Coding
  • 45 mins – Let attendees present the apps they worked on/wrap up

Prep Work

  • Attendees should plan to bring their own laptop.
  • The Development Environment section of the above link suggests downloading Python 2.5 and the App Engine SDK. Please download these ahead of time.
  • The Download App Engine SDK page also has instructions on downloading and setting up a development environment such as Eclipse. This is not mandatory.
  • It is helpful to have walked through the Hello World example ahead of time. We will be going over it again in the first couple of hours of the session so it is optional, not mandatory, to have done this.

Example Applications. 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 Cafe Survey. Another possibility is to create a wiki or a blog application.

→ Leave a CommentCategories: Techniques · Training
Tagged: ,

Secure Access to Google App Engine

September 17, 2009 · Leave a Comment

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.

For some companies HTTPS access through their own domain is essential.

We at Early Stage IT have come up with an interim solution. 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 75 msec to each access request.

With these parameters, is this a service that would be of interest to your company?

→ Leave a CommentCategories: Requirements
Tagged: , ,

Structuring Software Development Relationships

August 20, 2009 · Leave a Comment

How to structure a contract with customers is an interesting problem, especially since the two parties don’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.

Early Stage IT is in a unique position. On the one hand, we do work for clients and that puts us in a “supplier” role. On the other hand, as virtual CIO for our clients, we play a “client” 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:

  • 10 Contracts for your next Agile Software Project by Peter Stevens. It’s well written and concise, and a recommended reading for all. How many people’s blog entries get translated into a half-dozen languages?
  • A 5-part series by Chris Parsons of Eden Development.
    • Parts 1Part 2 and Part 3 argue that fixed price arrangements are inappropriate for software development because 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. I concur.
    • Part 4, argues that time and materials types of arrangements shift the risk to the client but the adversarial nature of the relationship remains. It’s not a good model for new relationships but can be OK once trust has been built up.
    • Part 5 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 “gently” exceeding them and (d) no-surprises billing — meaning that things like management fees, infrastructure usage fees are blended into the programmer rate.
  • The Vertical Slice by Lars Thorup. It’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’s typical clients.

Of all the different models, we like three the best. In order

  1. Peter Stevens’ Money for Nothing, Changes for Free
  2. Chris Parsons’ Billing with Integrity
  3. Peter Stevens’ Time and Materials with Variable Scope and Cost Ceiling

As always, feedback is welcome.

→ Leave a CommentCategories: Customer Relationship
Tagged: , ,

Cloud Development

July 25, 2009 · Leave a Comment

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.

  1. Cloud Development for Google App Engine
  2. Cloud Development for Amazon EC2
  3. Managing software delivery from outsourcers
  4. Managing evolution of database configurations
  5. Performance and Stress Testing
  6. Security Testing

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? Keep reading →

→ Leave a CommentCategories: Requirements · Techniques · Technology Strategy
Tagged: , , , , , , , ,

Cloud Computing implications for funding startups

July 1, 2009 · Leave a Comment

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 knitting.
  • John Bennett makes the point in his blog that Cloud Computing offers unprecendented opportunities for small- and medium-sized businesses (SMBs).

What does this have to do with Venture Capital?

  • Cloud computing makes it possible for startups to go after a niche SMB markets of the type John outlines.
  • 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.
  • 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 more small-dollar deals rather than fewer large-dollar deals.

Might other VC firms go the same way? Your thoughts?

→ Leave a CommentCategories: Raison d'etre
Tagged: , , ,

Question for the Entrepreneur: What’s your business?

June 8, 2009 · 3 Comments

It’s an annoying question. You want to get going with your business and here’s your IT partner asking these fluffy questions. But if you’re going to be successful, you need to know what business you are in.

Before going further, I want to review the Powell Doctrine. (Here is the original for your reference). Why Powell? Because business is war and we need to learn from one of the best. The Powell Doctrine, interpreted (by me) for business:

  1. What problem does your business solve? Is it a problem worth devoting several years of your life to?
  2. Do we have a clear attainable objective?
  3. Have the risks and costs been fully and frankly analyzed?
  4. Are there other, less painful, ways of solving the problem?
  5. Is there a plausible exit strategy to avoid endless entanglement?
  6. Have the consequences of the business been fully considered? Who will benefit from it — are they worth benefiting? Who will be hurt by the business?

And now to the main point of this post. Business involves choices. If you’re unclear about your core business,

  1. How will you decide who to compete with and who to cooperate with?
  2. When you are cooperating, is it capitulation or is it two parties joining together to achieve a common purpose?
  3. What will you buy and what will you build? Obviously, you want to build what is the core value of your business. You want to buy what is not core.
  4. If you’re going to raise money, and for your own purpose too, you will need to know what your market share is. Knowing market share involves knowing who to include and who to exclude when doing that measurement.
  5. Can you practically assure your stakeholders — investors, customers, yourself, your family — that you can deliver? Recall the other Powell Doctrine: Overwhelming Force in pursuit of your core mission†.
  6. Will the people your business benefits know what they will get for their money and what they won’t? Will they give it their support? Their love? Their money?

The real point is, a business is not an endless series of pragmatic decisions. You have to know why you’re doing it and what your business stands for.

———

† Thanks to Larry Grumer for his comment reminding me of this point.

→ 3 CommentsCategories: Requirements
Tagged: ,

Barriers to Acceptance: User IDs

May 4, 2009 · Leave a Comment

Have you ever been discouraged by a “Sign Up for free” link? Many users are. 15-20% users abandon a site rather than do the register-confirm-accept dance. Consider lowering the barrier that many users feel when asked to provide their email address to register. In this post, I discuss how you can use IDs from major providers instead of coming up with your own.

A word of caution: OpenID idea has enjoyed less than spectacular success. Still, a consensus seems to be evolving and a number of announcements this year suggest that perhaps the industry is arriving at a consensus.

A vision of the login sequence Login Screenusing IDs from other providers, is shown on the right.

The table below shows user counts that the UI vision above would target. They were compiled from Comscore stats for internet properties (MySpace is under Fox Interactive Media) and from a different report which zeroes in on email addresses.

# Site Users(000,000)
1 Gmail 31
2 Yahoo! 93
3 Hotmail 43
4 AOL 45
5 MySpace 89
:: :: ::
8 Amazon 63
:: :: ::
13 Facebook 51

A key question that remains to be asked is what are the stats for your users. Of course, you won’t know the answer to that question until you have gone live, so perhaps it is best to cast a wide net in the beginning.

Here are a few references for implementation:

  1. Some background material: What is OAuth and how does it work?
  2. If you want to do the programming, a recipe for OpenID 1.1 from Plaxo, instructions for using Yahoo! as an identity provider, using Google’s OAuth.
  3. If you want to use a third-party solution, RPX service for OpenID 2.0 from JanRain.

Of course, this only addresses the authentication question. How your users will be given entitlements to do what they need to do, and only what they need to do, remains an implementation decision.

→ Leave a CommentCategories: Requirements
Tagged: , , ,

Training: Instructor Led Classes vs eLearning

April 18, 2009 · Leave a Comment

Which form of training is best? Neither, I think.

With e-learning, the attention wanders, Outlook flashes incoming messages, some auto-update thingy on the PC comes to life and it’s over.

In-class learning is a little better because we learn not only from the trainer but also from the discussion. But how many of us really remember what was discussed a week after we come back from the training?

Ironically, the last time I had an effective learning experience was on-line but it wasn’t an e-learning course. It was a series of exercises where at each step you had to add a level of complexity to a working piece of software and get it doing more things. Two-3 hours later, you had a fairly complex piece of software and you looked at it and said, wow!

My most effective classroom training situation was a management training course where teams were given a hypothetical company to run. Every few hours, we had to make decisions about actions to take, those actions had consequences on the hypothetical company, the external circumstances changed, and you had a new set of problems to deal with. Whichever team showed the best EBITDA at the end of 3 days won!

Whether the training is on-line or in person is the wrong question. The effectiveness of the training is determined by how much effort has gone into constructing it, how much fun you can make it, and the wow factor at the end.

If you want your team trained, and trained well, and trained so they know the material forever after, find inspired training.

→ Leave a CommentCategories: Requirements · Training
Tagged: , ,

Cloud Lock-In

March 29, 2009 · 2 Comments

The good news with Cloud Computing is that our clients don’t have to sink precious capital into building or finding a data center or buying servers.

The bad news — at least the concern — is lock-in. Is a business locked in once they have grown? Do we have choices in case Amazon (or whoever) decides to raise their prices? Will the customers be able to take their business elsewhere if that happens?

There are a number of vendors out there providing cloud computing services:

  1. Amazon, of course.
  2. Rackspace
  3. GoGrid

Others will follow.  IBM has made announcements regarding Cloud Labs, Microsoft is working on Azure, etc. But I want to focus on Amazon, Rackspace and GoGrid in this post. They offer services that are somewhat analogous, each has the equivalents of S3 and EC2. Keep reading →

→ 2 CommentsCategories: Technology Strategy · Technology foundation
Tagged: , , , , , ,

Web Sites with Social Networking

March 22, 2009 · 2 Comments

So you want to build a web site with social networking as one of its components? You can start with a social networking foundation and build a web site around it, or you can start with a web site content management solution and add social networking to it. 

My purpose in this post is to gather the ingredients — the pasta and the sauce, if you will — and leave the preparation for another post. The assumption here is that the basic web site is the pasta and social networking is the sauce. Of course, it could be the other way round, depending on your business.

The most important thing is to be able to integrate the two parts.

Content Management

Content Management has been around longer and is more stable. Ric Shreves did a comprehensive study of the solutions in this space last summer. His conclusion: the top 3 systems are WordPress, Joomla and Drupal. Wikipedia’s list of content management systems is more exhaustive but less evaluative in its approach. My key take-away here is that the top 3 CMS systems are all based on PHP. That settles the programming language wars as far as I am concerned.

Social Networking

Here is a quick summary of technology solutions relative to social networking:

Finally, the startup factor.  What’s the solution that is commandeering startup money? I searched venture sites Xconomy and YouNoodle, looking for startups using the technologies mentioned above. The conclusion: Drupal (3½, Acquia, GoingOn, SocialActions(½), Halosys), WordPress(2, PayBox and Insoshi) and Joomla(0). 

So what do we recommend? That’s another discussion because it depends on the requirements.

→ 2 CommentsCategories: Technology foundation
Tagged: ,