Archive for the ‘Startups’ Category

30 Days Review from Concept to Beta –

Wednesday, February 15th, 2012

It’s been a long road of late nights, early mornings, and quite a bit of learning and coding. When I came up with the idea, I selected node.js and to develop the project. Shortly thereafter, I started working on the Android App, testing my mettle with Java, a language I hadn’t used in 9+ years. Seventeen days after the concept, we had our first test, resulting in an archive of Roger Waters ‘The Wall’.

The Android app was refined from a usability standpoint, the site UX lagging behind the infrastructure and databases being built to support the site, but, always moving forward, pushing 133 commits, sometimes massive rewrites to change functionality to work much differently than originally anticipated. Iteration sometimes led to massive backend changes while maintaining the site functioning and live as more people poked and prodded and were generally impressed with the idea.

Reminding myself that this is an app that was built ‘in my spare time’, I’m still somewhat amused that 1k+ lines of Javascript, 1.2k+ lines of Java, 100+ lines of PHP and a few dozen lines of Python were written and I have a workable site. I have started to write some Objective C, but, nothing more than a few tests and demo scripts to dive into writing the IPhone app.

With that said, I’m looking for people to beta test the Android App and give feedback. Extra Bonus points if you’re willing to go to a concert or event and use the app. Even more bonus points if you have the ability to recruit a second (or third) person to take pictures at the same concert. If you have an IPhone and are willing to Beta Test, get in contact with me. I don’t have that app completed, but, it is based very heavily on the Android App’s flow as we have spent a lot of time working out the interface. It is ugly, but, we believe it flows well and is very usable. Still have a minor lag bug that appears to be related to JSON parsing.

I’m still happy with Node.js and There are some things I will probably change with expressjs which I might handle with my own middleware, or, might do a fork/pull as it is functionality others may find valuable. I’ve reworked a lot of functionality to help the User Experience and have gotten a lot of good feedback.

I’m unsure whether I would write it entirely in node.js again, but, it was still a great learning experience. I might rewrite it later, but, for now, it seems to do just fine.

So, if you can help me out and try the app or find a few of your friends to help out, it would be appreciated.

Thank you.

First beta of my new webapp,

Saturday, January 28th, 2012

After a late night working until 2:45am on the finishing touches, my phone alerted me to the fact it was 5:35am and time for the first Live Photostream to take place.

The stream? Roger Waters – The Wall, from the Burswood Dome in Perth, AUSTRALIA. Special thanks to Paul Andrews for taking the pictures and doing a lot of testing beforehand.

From those that watched the stream in realtime – about 23 people based on the counter that I didn’t reset from my testing – I did receive a bit of good feedback and collected a lot of data to analyze.

Rule #1, do NOT keep modifying things during a live event. I saw a minor tweak, made a change, and broke some functionality. While it didn’t affect things, it did bug me to see the problem during the first test. Live with things until after the event – unless it is truly a showstopper. In this case, it was just an html tweak which caused some javascript to wrap and broke the JQuery click handler.

Rule #2, you can never collect enough data. While watching the stream, I realized I had turned off almost all of the debugging hints in node.js during development as it was really noisy. While most of the static assets are served with Varnish, those requests aren’t hitting the backend, so, I didn’t have a good indicator of real traffic. Running varnishncsa in one window while watching node.js with a bit of debugging turned on allowed me to see things, but, not logging pageviews, socket connects/disconnects and other data eliminates the ability to review things after the fact. I did think about putting some hooks into some of the express events (express being the framework I’m using).

Rule #3, always test your production environment well before the event/launch. As I had a very compressed development timetable knowing on Jan 13 that we wanted to do the first event on Jan 28, some infrastructure decisions I had made were not tested thoroughly beforehand resulting in having to run with a less than optimal setup. While Varnish and do work well together, some browser combinations had issues when doing brief usability tests. Fifteen days to write a scaleable architecture and an Android app is difficult. While I had no experience with node.js or prior to Nov 11, and haven’t touched Java since 2002 or so, I did spend a bit of time dealing with issues that came from lack of exposure to both.

As it isn’t recommended for node.js to handle static content, I used Varnish in a ‘cdn’ setup to offload static assets and media content. This worked very well except when I made a modification to some javascript and due to some of the rules in my VCL, I strip querystring arguments – making it impossible to just add ?v=2 to my javascript include. Bans for the CDN were only allowed from another host (remember that ‘test your complete production environment’ before launch?), so, a little manual telnetting from another machine allowed me to purge the javascript.

All in all, a great first test, several positive comments, and a nice, long list of requests/enhancements. I can see that this might be a fairly popular project.

If you would like to help beta test and have an Android phone, Download the app, take a few snapshots or enter texts and watch them show up on the Beta Test page.

If you have an event or are attending a concert where you would like to use SnapRelay, I can create a custom app specifically for your event. Let me know in the comments.

What is a startup?

Monday, December 12th, 2011

All this talk about startups, and I often wonder if people really understand what a startup is.

A bakery is not a startup. A consulting company is not a startup. Anything that requires multiplying the number of people in the business to scale, is not a startup.

A startup is a company that has an idea where doubling income does not require doubling staff. It is a business where scaling to add another 1000 clients requires very little additional hardware.

A software company is a startup. After writing that first copy, selling 1000 more has only slight incremental costs. Selling 10000 more requires only slightly more resources than that. A subscription web site is a startup. The difference between 10 paying subscribers and 1000 paying subscribers in terms of the labor to produce the site is minimal.

If you start a business and you are primarily responsible for earning the income through your direct efforts, you are an employee, not a business. A consultant is not running a business, s/he is a contracted employee with many employers. A software developer that sells his product and can take three days off without materially affecting his income is a business.

Startup or Bustup?

Sunday, November 6th, 2011

Lets set the stage.

Joe has an idea but lacks the funding to bring the idea to reality. An investor brings money to the table to help Joe bring his idea to fruition. A split of 55/45 is negotiated, with 45% going to the investor. Fast forward a few years and we have a startup that has a developed product, a few thousand users but no revenue and very little cash left to keep the startup running.

There are three choices:

Fold – accept that the idea didn’t gain traction, convince the investor to take the loss and move on. Sometimes, even though your heart may not find this to be an acceptable resolution, it might be the right answer. Unless you’ve got a lot of charisma and a well defined business model, you might find it difficult to obtain funding from him and his acquaintances for new projects. Investors understand that ideas fail and knowing when to cut the cord is a valuable skill.

Accept more investment capital – while the idea hasn’t gained enough traction yet, another investment will dilute the existing holdings based on the valuation of the company and the amount of cash received.

Bootstrap – hunker down, define your business model, hustle, and do it.

Lets assume that you don’t fold because the idea has merit, it just didn’t have enough time to gain enough traction.

In this situation, deciding to take an investment carries with it two problems. Your investor’s percentage gets diluted as does the founder. However, due to your equity split, the founder faces the additional problem of losing majority control of the startup. This is where it gets interesting.

As a founder you have to ask yourself, are you an entrepreneur with other ideas that you can develop if you are ousted, or, is this idea your baby?

A new investor may not be privy to the the reasons why the company didn’t gain the traction or why you ran out of money, but, in the back of your mind you might think that since you’ve lost the majority vote, you could be replaced at any time. If you’re doing a good job and you have the vision, why would your investors opt to replace you? Perhaps they will bring in someone to push you, but, they invested in you and your idea. If you have the passion, very few people they would bring in to replace you would have that gift. If they do remove you, you’ve got other ideas that you can now pursue. If you aren’t replaced, and the company later becomes very successful, you might not have made as much money as you could have, a successful exit for your investors raises your clout – making it much easier to find investments for your next idea.

Bootstrap. If you know the idea has the ability to start producing income shortly, by all means, deploy. If you’re confident in the idea, find bridge financing to get you to sustainability. Once you’ve worked out a revenue model and start collecting revenue from clients, your ability to find investors goes up dramatically – if you need investors at that point.

Only you can decide which path is the right one.

Entries (RSS) and Comments (RSS).
Cluster host: li