Leave the caves and create your tools!

GAE offers a free to get started approach, along with an instant “hello word” initial environment, making sandboxing ideas and building helpful tools for productivuty a snap.

To get started, download GAE, press the plus sign in the bottom left corner. Set the directory you would like to work out of and your almost done. Well, at least you are already at the stage you need to be to start playing with the system locally, in what we call the development environment (No one can see your system but you.) Just hit the [play] button on the GAE dashboard and you are running with your first environment. Just click the Browser (the compass looking thing), or go to http://localhost:8080 in your browser, and you should see your first “hello word! It is quite reassuring to see it work so smoothly (if indeed it does), and if this is the first time you have coded, trust me they have taken out a hell of allot of pain out of the tedium it can take to get here.

Without getting into the nitty gritty of code just yet, let’s push your baby to production (That means make it live/accessible to the world). That’s right, you are about to push a web application live to production!  First create a new app at the google app engine home page and follow the steps there (setting up your yaml for upload). Your yaml file tells google which app your are updating when you do so. Not making sure your yaml matches your project is like  you sending mail through the USPS without out a “from”/”to” address.

Once complete, press the blue arrow pointing upward (the “deploy” button) and it will deploy (AKA: push to prod, go live.)

Once deployed, you can update, monitor, or even share you application with the world. And all for free. Not that this baby would get allot of attention in its current state (just a “hello world”), but if it did, it would also be scalable. I mean 10 years ago this would have cost you quite a bit of time money, especially if you didnt know allot about server configurations, apache, linux, or windows server, or…well you get the idea.

There are a few sample apps you can play with on the GAE site. If you are ready, start developing some code i Python. Maybe had a hellow world message of your own.

When you start feeling saucy, try and create a model. A model is a data structure you can save, or persist, data to your system. Again to you newbies out there, this is the equivelent of your granfather telling you, “back in my day I had to walk up a hill in the snow to get to work, and up a hill in a blizzard to get back.” Setting up a database on a production server was a skill on its own, but to create one that is scalable, and without the need to architect it is amazing. You see, based on the models you create GAE intuitivley creates your “database”, stores it efficiently, and assumes where indexes need to be placed. You really don’t have to understand any of this, but if you want to you can look up those terms have at it: indexing, database, architecture, MVC…. Like I said, I’m just an old guy complaining about hills.

If you are still a bit timid about getting started, don’t worry there is a baby step in between these tween sized steps that can help you get ramped up before you start churning out lines and lines of code. Click on the “SDK Console” button on the GAE dashboard. It will open up a web page that is running locally, on your stage environment, that gives you windows into your system to hack around with. (This console lives inside your development app, so don’t forget to run your new app to get access to it.) Once in the console, click “Interactive Console”. There you will have a very rudimentary terminal that you can write temporary test scripts in. The output is shown on the right of the screen. This is a great place to get errors, make mistakes, and go nuts! (Note: The SDK Console also houses your development DB, so you can check to see what data you are saving after you have attempted to save it.)

Note: The easiest way to get started as a newbie, in my mind, is by using Python in GAE. Java, although awesome, is a bit more advanced.

I recently used GAE to create a few projects to help out the team. One for TeamCity monitor to view coverage reports and if a build is broken or not. And also one for Pivatol Tracker to help our press and marketing interpret what is coming out of the product pipeline, if its ready, and what are the stories of value within. I will post templates for those projects in the near future.

What do you and Sonic the Hedgehog have in common?

Sonic and his rings
Sonic and his rings

Have you ever played Sonic the hedgehog? Man, what a classic! The objective: Get your hedgehog, named Sonic, to jump, run and even roll through a stage, avoiding the array of animal-ish enemies, only to reach a guarded exit, protected by your arch nemesis, Dr. Evil. Beat him and the entrance to the next level is opened. Keep this up, level after level, enemy after enemy, and you will win the game. — But wait there’s more! If you are attacked without a collection of magical “rings” in your possession, you will die. With one or more rings you can narrowly avoid death by attack.

So which was more important, getting to the next level, or acquiring the rings? Well, any kid would tell you: Duh, both! Obvi. If you only collect the rings you may never get to the end of the level. Alternatively, if you only try to get to the end of the level, rendering yourself ringless, you dramatically decrease your chances of survival.

Of course, one could play the perfect game, dodging all would be attackers, and avoiding falling off cliffs to a spikey-floored doom. By doing so you would indeed win the game, just as anyone else. But who could make it through all those levels without one misstep, one slipped finger, or distracted moment when your Mom calls you down for dinner? I’m going to take a stab at it and say — not a single person. So, thanks to those gracious creators at Sega, you were given those wonderfully magic rings, giving you a fighting chance. You and everyone else jumped at the opportunity, capturing as many rings as you could. You mitigated risk, balanced your options, and grabbed on to what ever you could, outside of the clearly laid goal of completing the level, to of course do just that, complete the level and win the game; achieve success.

That is not a theme reserved for just hedgehogs named Sonic, or any game for that matter. Success is a goal some of us can see, and once we see it, we direct our focus directly at achieving it. But it is often that deterministic direction that creates a far more subtle misdirection.

Nine out of ten startups fail, right? I bet most of them are hard workers and/or have great ideas and/or have a focus and/or goals. A major hurdle to overcome, one that is far less obvious then the cliche advice to work harder/smarter, and the basis for why so many startup fall victim to those one-in-ten odds, is that it is the very focus on the goal that can cause the unbalance in your business, and ironically dooms your chances in achieving it.

Success may live on a straight-line, but the line seen is not necessarily the path to take. The best path is almost always one that dances around the line formed. Looking away, towards an entirely different direction, can reveal a path with far less hurdles when the focus is returned to the goals directive. You must let something go in order to truly have it — a cliché theme that works in almost any environment, and often takes a lifetime to master. Simply put, our “rings” come in the form of friendships, support systems, a passion for what you do, mistakes that need to be made, failures to learn from, vacations to escape to, and random ideas that inspire. When we remember to grab onto those rings when the opportunity to do so arises, or even sometimes when it doesn’t seem like it can, we will be far more able to last the “attacks” the startup game will inevitably throw our way.

So my fellow hedgehogs, should you grab at all the rings you can, even if at times by doing so you are unable to race towards the goal? Most definitely! Any kid who had a sega will tell you: you have to do both. Duh! Obvi.