RSS
 

Pitch Perfect Elevator Pitch

10 May

Elevator for your elevator pitchI worked with and advised a lot of small and startup companies over the past couple of years. When meeting a new founder, I ask what they do. Often times they ramble on for a while and I have to discern what it is that they do. So, I try to head off the rambling and ask them to tell me their “elevator pitch.” If they’ve been in the startup-community for more that a few months, then they should know what that means—often they don’t.

The Elevator Pitch

What is an elevator pitch? It is the statement that you could make to a chance encounter in an elevator—the person who might be your first investor—and finish before they get off the elevator. Everyone should have an elevator pitch that they can recite without hesitation. The goal is for that person to invite you for a longer conversation; not to tell them everything about your venture.

Elements of an Elevator Pitch

Since you never know how long the elevator ride will be, you want to make sure to cover the most essential elements of the pitch, first. Start with a 30-second pitch (perhaps even less!) and make sure you cover these points:

  • Who is your audience?
  • What is their “problem” or pain-point?
  • What is your solution?

If you are in the elevator with someone with the means to finance you, then your ride will be longer. Extend your statement to include more detail:

  • What is your “special-sauce”?
  • What is your business model?
  • What is your “traction” and/or revenue?

With more time, you can cover:

  • Your team
  • Competition

You should have practiced different length versions of your pitch: 15-seconds, 30-seconds, 1 minute, 3 minute. Any longer than that probably involves an invitation rather than an elevator ride—in which case, you should follow Guy Kawasaki’s 10/20/30 rule from his blog, book, The Art of the Start, or talk. Practice your pitches so that they are articulated crisply and with confidence without sounding mechanical. Be sure that your passion comes though.

Another good summary on the broader topic of presentation preparation: How to Present and Pitch.

 

 
No Comments

Posted in Startup

 

Server Handling of Accept HTTP Headers

31 Aug

When a browser (or any web client) requests content from a web server, it can tell the server what types of content type it can interpret (HTML, text, audio, etc.). The underlying HTTP protocol allows these to be specified via “header” settings—metadata that is sent before any actual content, describing characteristics about the content. The browser can send an “Accept” header—to describe what it accepts—and the server responds with a “Content-type” header. The Accept header can be quite elaborate, but what happens when what happens when these conflict? Read the rest of this entry »

 

The ccPhp Framework: Installation

24 May

I have a whole series of posts, waiting in draft, describing my evolving PHP framework, I call ccPhp. If you have nothing better to do than play with someone else’s dalliances, then here is a quick installation guide.  A little backwards, because I’ve yet to publish reasons why you’d want to. But, if, after my eventual publications describe this framework, you decide to install it, this is the quickest place to see how to do that.

The following describes only one way to arrange the setup.  I have designed the framework with few cross-dependencies.  After my “standard” setup description, I will describe the few file dependencies so that you easily define your own file organization. (If you are on Windows, you can extrapolate the appropriate things to do there). Read the rest of this entry »

 

Crushed Under the Tower of Software-Babble

02 May

BNF Syntax diagrams

I think my brain cells are shrinking—it is unbelievable how quickly I forget. Such is the life of a software developer, these days.It is amazing how quickly I can forget the details of one programming language detail over another after just a few weeks away—when I see my old code, I amaze myself at how good a programmer I was… last month! Read the rest of this entry »

 

Fixing an Infected PHP/WordPress Web Server

17 Apr

Fixing an infected WordPress server. Darn if the ISP serving up our PHP and WordPress content wasn’t attacked with an exploit. So I did a lot of learning as I cleaned up my web server, this past weekend. The goal of this exploit was to infect visitors of the web site with viruses by coercing visitors’ browsers to download malware from predefined third-party sites, seeded with the malware. That means modifying web site code to send visitors to those malicious sites.

After noticing some strange behavior that tripped my anti-virus software on my Windows machine, Read the rest of this entry »

 
 

Avoid Objective-C Bugs w/Properties and Instance Variables (ivar)

25 Nov

Objective-C is the programming language of choice for iOS an Mac OSX programming, so becoming proficient in native programming for those platforms is essential to building great applications. Apple emphasizes that programmers must understand the “retain-release” model of how to manage objects. True, but this is not enough. Unfortunately, Objective-C makes it exceedingly easy to inadvertently write code that breaks the retain-release model, leading bugs that cause programs to crash.  You can adopt some practices to avoid such problems. Read the rest of this entry »

 
 

Buried in PHP Frameworks

30 Sep

With thanks to “moomin lens” via Flickr http://www.flickr.com/photos/jumpn_around/185876077/

There are 100s of PHP frameworks out there, but I have been so frustrated with so many of them; they are either too complex, not well designed, not well documented, buggy, or all of the above. Also, there is a lot of great technology for PHP that are notfull frameworks. It’d be nice to have a framework that does not try to do everything but, instead, allow easy integration of “best of breed” technologies. And a much more subjectively, only a subset of frameworks out there (though growing) embrace object design as typical of traditional, non-web programming using C++, Java, C#, etc. PHP 5 allows that kind of programming, but not all framework developers have embraced that approached it yet. I’ve spend a non-trivial amount of time with the following (well, I haven’t spend enough time with Kohana, yet): Read the rest of this entry »

 

Facebook f8 Conference Live Stream

22 Sep


We are excited to watch the Facebook developers conference live stream. Last night we started experiencing programmers pain since they’ve rolled out some changes prior to updating the documentation. The Hand Things Down app which is launching this weekend has broken so we are anxiously awaiting updates to the documentation. We are hoping to stay on our release schedule and will likely have to work night and day to hit our deadlines. Hurry up Zuck!

Enhanced by Zemanta
 
No Comments

Posted in Startup

 

Journey to Extreme Pitch

31 Aug

I recorded this video after coming home from Extreme Pitch. I wanted to give advice on what to do to calm yourself before a pitch. I think I managed to say don’t drink too much coffee and go to yoga, that advice probably won’t work for most people. Sorry guys! Read the rest of this entry »

 
No Comments

Posted in Startup

 

I Just Want to Submit a Frickin’ iPhone App to the App Store! (Part 3)

28 Jul

Way back in in “I Just Want to Create a Frickin’ iPhone App! (Part 1),” I walked you through the logistics of joining the developer program (no, you didn’t miss “Part 2,” I have not written it yet). Fast-forward a couple of months and it’s time to submit to the app store! For a company that has built a reputation on simplicity, Apple has concocted an arcane process and made it worse by not providing any complete nor accurate information to help with the application submission process.  Apple’s minimalistic approach is of no help… you often feel like your flying blind as you try to make your way through the process. I’ll try to give some heads-up and clarity if you, too, are going through this for the first time.

So, let’s hope I can remember all that I went through.

  1. Create specific App ID: iOS Provisioning Portal →App IDs →New App ID.  (Note: you cannot delete App IDs once they are created).
    1. Enter a name for this application. This is just for reference; it will not appear to a user.
    2. Select the “Bundle Seed ID”. Normally you will want to select the one that was assigned to you, in the drop down.
    3. Define the App ID Suffix.  This has to match the ID that is bound into the application, so you will probably want to copy the one assigned to the application you’ve been building, lest it be recognized as an entirely new application. This is not critical, but if you have beta testers and you change the App ID, the next update will not overwrite the older version of the app, they will have to delete the old one, explicitly.To find (or change) the current Bundle identifier in Xcode 4.x, select the Target of the project. The Summary tab shows the Bundle identifier in the “Identifier” field; or, in the “Info” tab, it shown as “Bundle identifier”. Of course, these settings come from the project’s .plist file, so you can access its “CFBundleIdentifier” (aka “Bundle identifier”) explicitly. The value in the app should be the reverse domain name, for example, “com.handthingsdown.htdmobile”; do not prefix the “Bundle Seed ID” to the bundle identifier in the app.
    4. This value should match the Bundle Identifier field when creating a new App ID. As noted in the “How To” tab, you can use wildcards for this value; however, a fully qualified ID is necessary to utilize the various services (e.g., Push Notification, Game Center, iCloud).
  2. Create an App Store provisioning file:  iOS Provisioning Portal →Provisioning →Distribution →New Profile.
    1. Be sure the “Distribution Method” is set to “App Store”.
    2. Select the App ID from the previous step to associate with your application.
    3. You wont have to — or be able to — select devices to include, as you would for ad hoc provisioning.
  3. Once the profile has been created, download and add it to your Xcode profiles.
  4. Create an archive build of your application, build for release and utilizing the App Store provisioning profile.
    1. If you haven’t already, you may want to duplicate the Release build-configuration to “Distribution App Store” (making sure that the target is not selected go to Xcode’s menu: Editor →Add Configuration →Duplicate “Release” Configuration.
    2. In the project’s target’s go to Build Settings →Code Signing →Code Signing Identity.  Below the build configuration you will use to build the Archive, set the “Any iOS SDK” setting to the provisioning profile you created for distribution to the App Store. (For the build configuration itself, I selected “Don’t Code Sign”; but I do not know if that matters).
    3. Modify build scheme’s Archive to use the build configuration you configured and build the Archive.
    4. From the Organizer’s Archive view, select and “Validate…” the binary. This performs (only) some tests of the module before uploading.
    5. We will jump away from Xcode for a moment….
  5. So you thought you were done signing up with programs with Apple? First an Apple ID, then the Developer Center, then an iOS Developer, and now iTunes Connect, itunesconnect.apple.com. Go to a web page and set up an account. This is where you will manage the applications that you submit to the App Store.
  6. Once your account is created, go to “Manage Your Apps” and select “Add New App”.
  7. Fill in the app name, SKU, and select a Bundle ID. Note that none of these settings can be changed once the app has been accepted by Apple.
  8. Click the “Ready to Upload Binary” button to start the process. The upload does not occur via the web page.
  9. Go back to Xcode. Since the Archive was just built, the Organizer window should be open with the Archive view shown. Be sure the correct Archive is selected (at the top of the list).
  10. Upload your application to Apple. There is the new, complicated way (which I used) and an old simpler way, that should still work—so I hear. So, back to Xcode…
    1. First, the old, simple way.  Ignore the messages on the iTunes Connect web page about the Application Loader. From Xcode’s Organizer window’s Archive’s view, click the “Submit…” button. That’s it!
    2. Now the difficult way:
      1. Click the “Share…” button. to build “iOS App Store Package”
      2. Select App Store certificate
      3. Open Application Loader and follow its steps to upload the .ipa file that was created in Xcode.
  11. Once the module has been submitted, there are additional automated checks that take place. So, wait an hour or so and check back at the iTunes Connect page. The status should change, if the module was accepted. If not, check your email to see what kind of errors may have occurred.
  12. If it passed the automated checks, you can now wait nervously for actual humans to vette the application. Expect this to take a full week.
Good Luck! Let me know what your experiences are.

Resources

Enhanced by Zemanta