<?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/"
	>

<channel>
	<title>teaBUZZED &#187; On My Startup</title>
	<atom:link href="http://teabuzzed.com/category/on-my-startup/feed/" rel="self" type="application/rss+xml" />
	<link>http://teabuzzed.com</link>
	<description>technology and tea</description>
	<lastBuildDate>Fri, 02 Apr 2010 18:54:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>A good cofounder is&#8230;</title>
		<link>http://teabuzzed.com/2009/11/a-good-cofounder-is/</link>
		<comments>http://teabuzzed.com/2009/11/a-good-cofounder-is/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 19:50:57 +0000</pubDate>
		<dc:creator>Fred</dc:creator>
				<category><![CDATA[On My Startup]]></category>

		<guid isPermaLink="false">http://www.teabuzzed.com/?p=1153</guid>
		<description><![CDATA[A good cofounder is: 1. A pillar. This person is nearly impossible to replace because you trust them and they add incredible value to the team. It&#8217;s even more so if you&#8217;ve built a friendship and/or working relationship with them over time. Imagine starting from square one and going to a cofounder&#8217;s mixer.. I can&#8217;t. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>A good cofounder is:</strong></p>
<p>1.<strong> A pillar.</strong> This person is nearly impossible to replace because you trust them and they add incredible value to the team. It&#8217;s even more so if you&#8217;ve built a friendship and/or working relationship with them over time. Imagine starting from square one and going to a cofounder&#8217;s mixer.. I can&#8217;t. </p>
<p>2. <strong>Full of faith for the vision.</strong> They are not only motivated by the outcome but also by the work and the vision. They want to be a part of that vision because it&#8217;s something they fundamentally and philosophically believe in.</p>
<p>3. <strong>Someone who is not competitive with you. </strong>Many people start companies with their best friends, but sometimes this is exactly the wrong approach. Human relationships are complicated and someone you&#8217;ve known for years might seem like a good person to start a company with, that is until you start a company with them. Just remember to keep an open mind and that if you&#8217;re competitive with your cofounder, it probably won&#8217;t work out.</p>
<p>4. <strong>Someone you would trust with your life. </strong></p>
<p>5. <strong>Complementary.</strong> If you have an idea they expand on that idea. If you&#8217;re a bit too liberal they&#8217;re a bit too conservative. Complementary should not be confused with diametrically opposed. There is such a thing as too different to get a long. A good example of a complimentary founding team would be the two Steves of Apple fame.</p>
<p>6. <strong>Unexpected.</strong> The cofounder should impress you. Not because they want to or are trying to but because you just happen to be impressed with the quality of their work/ideas/direction or whatever. </p>
<p>7. <strong>Challenging.</strong> They don&#8217;t blindly follow every word and they don&#8217;t challenge you on every point. They challenge you when you need to be challenged. After all, you can&#8217;t always be right even if you&#8217;d like to be. </p>
<p>8. <strong>Easy for you to get along with on some other level than just work. </strong>Either you have similar political views/principals or you both love Family Guy.. Whatever it is you should easily be able to find stuff to talk about. If you can&#8217;t even have a conversation with this person, they probably shouldn&#8217;t be your cofounder.</p>
<p>9. <strong>Someone who sticks around even when the going gets tough.</strong> Real tough. As I&#8217;ve experienced first hand startups are extremely trying for spouses, partners, friends, family and everything else. It takes its toll and no one can cross the finish line without paying that price. No one. You&#8217;re going to need someone who doesn&#8217;t just shine in the initial stages, they also need to shine when shit hits the fan and you&#8217;re losing hair, sleep, sanity and whatever else.. </p>
<p>10. <strong>Someone who puts their money where their mouth is.</strong> You&#8217;ll know what this means when the time comes.. But the true test of character is when people start putting their own money into the project and they do it with both feet.</p>
<p>11. <strong>Well grounded with their ego.</strong> You obviously want someone brilliant to cofound your startup with.. But at what price? Don&#8217;t go for the guy with 2 PhDs and the nobel prize in Physics just because his IQ is 270. You have to first make sure they fit into your universe and in a good way. As Einstein said: &#8220;God does not play dice with the universe&#8221; and neither should you with your startup. Take that Niels!</p>
]]></content:encoded>
			<wfw:commentRss>http://teabuzzed.com/2009/11/a-good-cofounder-is/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The number one reason my startup failed</title>
		<link>http://teabuzzed.com/2009/08/the-number-one-reason-my-startup-failed/</link>
		<comments>http://teabuzzed.com/2009/08/the-number-one-reason-my-startup-failed/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 09:45:39 +0000</pubDate>
		<dc:creator>Fred</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[On My Startup]]></category>

		<guid isPermaLink="false">http://www.teabuzzed.com/?p=652</guid>
		<description><![CDATA[Disclaimer: As you can tell I really like tea but my real passion is software technology so don&#8217;t be alarmed. I think the two go well together IMHO. Section 0: Startup Failure Anonymous? Hi my name is Fred and I failed at a software startup. Is there a Startup Failure Anonymous group I should post [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Disclaimer:</strong> As you can tell I really like tea but my real passion is software technology so don&#8217;t be alarmed. I think the two go well together IMHO.</p>
<p><strong>Section 0: Startup Failure Anonymous?</strong><br />
Hi my name is Fred and I failed at a software startup. Is there a Startup Failure Anonymous group I should post this to..?</p>
<p><strong>Section 1: In the Beginning</strong></p>
<p>I currently work for a small company as a software engineer and have been with them for 5 years now. Let&#8217;s call them Company X. Company X sells a software product to doctors nationwide and pays me well so I have no complaints about that. My primary role there is development on their main product, a web service, and back-end web apps that help Company X manage everything from accounting to customer information and more.</p>
<p>About a year ago I endeavored to create a piece of software which would help manage Company X&#8217;s information <em>(I can&#8217;t get into specifics about what the actual product was because of contractual reasons but I can say that it was a business tool aimed at small to medium sized businesses and it was a django/jquery web app with a twist: a feature that used speech recognition so that users could interact with the app using voice commands from a mobile device like an iPhone)</em>.</p>
<p>I had looked countless hours on the net looking for an existing solution for Company X&#8217;s need and just couldn&#8217;t find one that fit the bill. That&#8217;s when I got this idea. The idea was I would develop this piece of software, get it working for Company X, make sure it worked well, and then pull a 37signals move and release it under my newly created LLC.</p>
<p>So it began&#8230; My new nighttime startup was just me, an independent contractor coder, and of course: several credit cards&#8230;!</p>
<p><strong>Section 2: Moving along</strong></p>
<p>It took us roughly 8-10 months of sleepless nights from concept to design to implementation. The plan was to get some buzz going for my web app by first releasing an iPhone app. The goal of the iPhone app was really threefold: getting some of that aforementioned buzz, testing out the server-side speech recognition, and making some cash to alleviate debt.</p>
<p>I guess two out of three ain&#8217;t bad. The app met some initial success but we realized quickly it wasn&#8217;t going to pay the bills. We were better off giving it away to encourage downloads. That certainly did the trick. Our system was tested to its limits when we set the price to free. We were successfully processing 1000s of daily requests which is more than I had hoped for. So on that note we were good.</p>
<p><strong>Section 3: Rewind just a little &#8211; I forgot to mention&#8230;</strong></p>
<p>We continued our march onwards. Or did we..? Well that&#8217;s when things get a bit foggy. I almost left something out. It didn&#8217;t kill my startup directly.. but it definitely hurt it tremendously. You might call it an accomplice in my startup&#8217;s murder.</p>
<p>This thing I&#8217;m speaking of was a bug in the 2 monster servers I purchased to handle the speech rec for the iPhone app. Speech recognition for the uninitiated is fairly memory/processor intensive even with today&#8217;s hardware hence the reason we needed some powerful servers. We thought about renting some Quads with decent memory but it would have been too expensive.. so I purchased 2 servers for a bargain at newegg.com and colocated them for dirt cheap.</p>
<p>At any rate after we had gotten everything set up we started noticing that either server would randomly throw a machine check exception every now and again which brought that entire machine to screeching halt. You can imagine my horror at this. They were brand spankin new..! I was pissed.</p>
<p>For nearly 2 months we pulled our hair out trying to figure out what was causing this behaviour. You can imagine what we tried: operating system version changes, disabling RAID, swapping memory. You name it and we tried it. Checking logs was useless. The kernel was killed before it could even write out something useful. The machine check exception was useless because it was too general to pinpoint any one piece of faulty hardware.</p>
<p>The one thing we had going for us was that it happened on both machines. So finally.. yes finally we figured out that the bug in question was an issue in our blazing fast Harpertowns&#8217; microcode. One quick update to the microcode and 5 minutes later the ghost in the machine was dead and we shot&#8217;em good..!</p>
<p><strong>Section 4: Painful realization&#8230;</strong></p>
<p>The unfortunate result of this wild goose chase was that my funds had dried up. I didn&#8217;t have enough credit or cash left to keep paying my contractor to finish the web app. The iPhone app was subsequently released (now that our servers were fully working) but as I stated above it didn&#8217;t generate a significant amount of cash from app sales.</p>
<p>So there I was &#8211; an iPhone app released and used by tens of thousands&#8230; but not a damned dime to finish the job..!! After all, I initially set out to create a solution, not a feature to that solution. The iPhone app was really just the beginning in my mind or so I thought. In the overall scheme it was going to be a buzz generator and beta test of my &#8220;killer&#8221; feature that would later be incorporated into the general solution. I couldn&#8217;t have been more wrong in my approach. I made a fundamental mistake which I&#8217;ll discuss later.</p>
<p>So anyway, when the funds ran out it obviously hit me that I had to shut it all down and I did. I pulled the app from the store, sold off the servers and continued on with my day job at Company X.</p>
<p><strong>Section 5: Reflections&#8230;</strong></p>
<p>I&#8217;ve had almost a year to think about where I went wrong.. Here are the main observations I made about my experience:</p>
<ol>
<li>iPhone app development is not trivial. This took up a huge portion of my time.</li>
<li>In a self-funded startup you&#8217;re always one emergency away from going bust i.e. your servers randomly generate machine check exceptions =)</li>
<li>the iTunes app store and hype are misleading. Most apps need enormous volume priced at 99 cents to make significant money from app sales and those tend to be video games or iFart type apps.</li>
<li>Decent designers cost a shitload, are usually too busy, and really hard to locate.</li>
<li>It was the most chaotic up and down roller coaster year of my entire life.</li>
<li>Startups are really really hard to do alone. I would have loved to have had a cofounder but it just didn&#8217;t work out that way.</li>
</ol>
<p><strong>Section 6: Reflections part II&#8230;</strong></p>
<p>After much thought and reflection I finally realized that integrating speech recognition into my solution and scaling it out web 2.0 style was ridiculous. This was a really tough thing to do even for large and well funded companies. How could I have hoped in my wildest dreams to implement something like that on such a large scale..?</p>
<p>I was so enchanted by this magical killer feature and the promise of speech recognition that I fell into a delusion. I made the entire solution about this one feature. Even though I thought it was a killer feature, one that would separate me from the competition. I failed to realize that this feature did not solve the original problem. Sure it was shiny and really freakin cool but people aren&#8217;t usually willing to pay for just &#8216;cool&#8217;. People are willing to pay for a solution to their problem. If you&#8217;re not solving someone&#8217;s problem then what are you doing..?? It wasn&#8217;t my original intent to implement this feature. It&#8217;s just something I stumbled upon during my research.</p>
<p><strong>Section 7: The number one reason my startup failed&#8230;</strong></p>
<p><em><strong>So the number one reason my startup failed was:</strong></em> I was distracted by a cool and shiny feature that didn&#8217;t solve anyone&#8217;s problem. The shinier and more tempting features of any software program should be regarded with a high level of suspicion. There may be a reason some things are so shiny and alluring. Traps often have this quality. My advice to anyone creating a solution is to march straight towards your initial goal, as long as the goal really does address a true need then that&#8217;s what you should focus on.</p>
<p><strong>Questions for the wise: </strong>Is the feature absolutely necessary for the solution to function..? If not will this feature take less than a day or two to implement&#8230;? In other words if the shiny feature you want to implement is not absolutely necessary for your solution and it will take more than a day or two to finish then move on.</p>
<p>That&#8217;s a wrap.. Love to hear your thoughts.</p>
]]></content:encoded>
			<wfw:commentRss>http://teabuzzed.com/2009/08/the-number-one-reason-my-startup-failed/feed/</wfw:commentRss>
		<slash:comments>76</slash:comments>
		</item>
		<item>
		<title>On Speech Recognition: Web App Integration, Pointers for Newbies, &amp; Lessons Learned from a failed startup</title>
		<link>http://teabuzzed.com/2009/08/on-speech-recognition-web-app-integration-pointers-for-newbies-lessons-learned-from-a-failed-startup/</link>
		<comments>http://teabuzzed.com/2009/08/on-speech-recognition-web-app-integration-pointers-for-newbies-lessons-learned-from-a-failed-startup/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 03:30:20 +0000</pubDate>
		<dc:creator>Fred</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[On My Startup]]></category>

		<guid isPermaLink="false">http://www.teabuzzed.com/?p=802</guid>
		<description><![CDATA[Piece of advice For all of those thinking of integrating speech recognition into their apps I have a word of advice for you: Don&#8217;t. But you&#8217;re implementing the Star Trek computer you say..? Well in that case it&#8217;s absolutely necessary to the core functionality of your solution! Starship software definitely needs damn good speech rec [...]]]></description>
			<content:encoded><![CDATA[<h2>Piece of advice</h2>
<p>For all of those thinking of integrating speech recognition into their apps I have a word of advice for you: Don&#8217;t.</p>
<p><strong>But you&#8217;re implementing the Star Trek computer you say..? </strong><br />
Well in that case it&#8217;s absolutely necessary to the core functionality of your solution! Starship software definitely needs damn good speech rec for its interface. How the hell else is it going to get your Earl Grey the right temperature..!? Well at least read this article before you embark on your journey so you have a better idea of where to start.</p>
<p><strong>Just so we&#8217;re straight:</strong><br />
Speech rec discussed in this article is the kind that understands short phrases and/or commands with no training required. It&#8217;s not free flowing dictation like that found in Dragon software. That requires training and still has a long ways to go before being viable in a web 2.0 kind of way.</p>
<h2>Engage:</h2>
<p><strong>Three main ways to integrate speech rec into a web app:</strong></p>
<ol>
<li>Telephony</li>
<li>Web Services</li>
<li>Embedded</li>
</ol>
<p><strong>1. Telephony &amp; VoIP:</strong></p>
<p>Why do we consider telephony..? Why not. There are more phones in the world than computers. They all have built in microphones and speakers and they all speak the same crappy language designed by the evil telcos years ago. This means that anyone anywhere who has access to a phone can interface with your app, international restrictions aside. All you need to do sign up for a  <a href="http://www.voip-info.org/wiki/view/DID">DID</a>. A DID stands for Direct Inward Dialing and can be any kind of phone number like 555-555-5555. When anyone picks up a phone and dials your DID they&#8217;ll be routed to your server where the call can then be managed by telephony software.</p>
<p>Asterisk &amp; FreeSwitch are the two big players here. Technically they&#8217;re soft switches, software created to handle and direct calls either between two VoIP points like Skype or they can be used to accept and/or direct calls from/to the POTS network, otherwise known as the Plain Old Telephone Service.</p>
<p>Both are open source but FS is definitely more so. You could say Asterisk is like MySql and FS is like Postgres. The former has a massive ecosystem and lots of commercial support, books, and a giant user base. FreeSwitch, on the other hand, is supported and developed by a smaller more cohesive group of talented and dedicated devs. By extension FS has a smaller but more dedicated user base much in the same way Postgres does.</p>
<p>Performance and stability wise FS easily wins the battle. However, support and availability for 3rd party extensions, tools, and dev resources definitely favor Asterisk.</p>
<p>For my solution I stuck with Asterisk but not because I liked it better as you&#8217;ll see why later on in the article..</p>
<p>So in summary telephony is great because you can operate free of operating system quirks, platform differences, and having to support several different devices.. but the real question is: does it scale..? Well yes it does but not easily. There are per minute charges for the DIDs. It&#8217;s cheap, i.e. around 2 cents a minute, but imagine supporting 1000 simulateneous calls to your server.. Quite possible performance wise as long as you offload the speech rec to another server, it&#8217;s just that you&#8217;re paying per minute every time someone calls in to interact with your app. That could get expensive pretty quickly. There is one way to get around all of this headache and that leads us to the next section of course.</p>
<p><strong>2. Web Services:</strong><br />
The web services setup is simple architecturally speaking: a voice sample is recorded either at a device, like an iPhone for example or from a computer mic and sent to the server as a file. The voice file can be compressed before it&#8217;s sent, most likely using Speex or GSM, and POSTed to the server RESTfully, uncompressed, and then decoded using your speech rec software. The server can then send back an interpretation to the client.</p>
<p>The nice thing about this solution is that it scales.! As long as you have some decent power server side you can easily decode thousands of requests a minute. A request being a spoken command or phrase no longer than 10-20 seconds in length. We&#8217;re talking voice commands here, not dictation, which is much much harder to do. It&#8217;s certainly possible but you&#8217;d need a lot more power.. This kind of tech just isn&#8217;t ready for prime time IMHO. If it were we might indeed have a star trek computer available. We&#8217;d still need to work out the AI though. Even if the dictation speech rec were 100% you&#8217;d need one behemoth of a program to analyze the meaning of it all.. Not yet available folks.</p>
<p>The one issue of course with going the web services route is that you have to implement a client side program for each device you want to work with. This particularly sucks in the mobile world since you&#8217;re dealing with so many device quirks and platforms.. If only working with devices was like working with browsers.. Never mind IE not supporting events the right way.. the iPod touch doesn&#8217;t even include a friggin mic..! Welcome to the world of mobile devices. And you thought browser quirks were bad&#8230;! </p>
<p><strong>3. Embedded</strong><br />
Honestly, I just put this option up there to warn you. Embedded speech rec just makes all speech rec look bad. Don&#8217;t bother. Sure it will rec a few hundred names and/or song titles.. In general though serious speech rec should be done in the cloud b/c that&#8217;s where the power is and good speech rec requires a good deal of power.</p>
<h2>Available Speech Rec solutions:</h2>
<p>You didn&#8217;t seriously think you were going to implement this part did you..? =) Companies who deal with this tech often have several PhDs on board and there&#8217;s a good reason for that: Recognizing human language in a meaningful way is really hard. At least by today&#8217;s standards. With all the nuances, intonations, accents, and signal distortion i.e. wind, weak signal, that annoying guy on the cell phone etc.. it&#8217;s amazing it works at all.. A real credit to the science and researchers behind it all.</p>
<p>That said it&#8217;s so far away from what the stupidest human you&#8217;ve ever met can do it&#8217;s almost humiliating we&#8217;re not further along.</p>
<p>At any rate it&#8217;s not like you&#8217;re trying to build the next starship voice interface. That&#8217;s currently impossible anyway so don&#8217;t try it. What you can do is build some basic speech rec into your app much in the same way major banks, airlines, and mobile operators have: automated voice attendants that understand a constrained set of responses, lists of names or places, and/or strings of numbers.. Here are the viable 3rd party options for doing just that:</p>
<p><strong>Commercially available:</strong></p>
<ol>
<li>Lumenvox (San Diego, CA)</li>
<li>Nuance (Burlington, MA)</li>
</ol>
<p><strong>Open Source:</strong></p>
<ol>
<li>Sphinx (Carnegie Mellon University)</li>
<li>Julius/Julian (Kyoto University, Japan)</li>
</ol>
<p><strong>The real deal:</strong><br />
I know there are others available like IBM, AT&amp;T, Microsoft, Acapela, Loguendo etc&#8230; but they all kind of suck. Trust me. The suits at AT&amp;T only care about BOA and AA contracts. IBM doesn&#8217;t even know it still has a speech rec department. Microsoft made some valiant efforts in the field but I&#8217;m not a windows dev and Loquendo/Acapela are in Europe so perhaps that&#8217;s why they were hard to get a hold of. Speaking French fluently I couldn&#8217;t get these guys to return my calls or emails. They did put me on their mailing list though. =)</p>
<p>Also it&#8217;s not like any of them are superior to what the other guys have or else we&#8217;d all know. Everyone is basically using the same kind of tech at their core. There is no one company with superior proprietary speech recognition. At least not yet. Maybe Google will be that company at some point but for now it doesn&#8217;t exist.</p>
<p>So your best bet is Lumenvox or Nuance. In particular <a href="http://www.lumenvox.com">Lumenvox </a>is your best bet because they are the most developer friendly and the nicest to work with. Nuance is alright but it&#8217;s a windows shop and they are a lot more pricey.. They also have a ton of products, some of which may even compete with what you&#8217;re trying to do..! It&#8217;s easy to get lost on their site.</p>
<p><strong>Open source dreams:</strong><br />
Accurate open source speech recognition is still but a dream unfortunately. I have the utmost respect and admiration for both the Sphinx and Julius teams. I mean holy shit.. They&#8217;re literally giving away speech recognition tech for free so all of us can tinker with it. The only real differences between the open source and commercially available solutions lie in what&#8217;s called their Acoustic Models. AMs for speech rec are like gold. A good AM is produced from several thousand hours of good audio samples. It&#8217;s what gives speech recognition its ability to recognize. Think stats: weights, averages, means, standard deviations.. etc.. that kind of thing&#8230;</p>
<p>The commercial products do indeed spend most of their time building up good AMs by enlisting large groups of people to help &#8216;train&#8217; the system. The open source guys just can&#8217;t afford to do this for obvious reasons. In fact Lumenvox is based in no small part on the Sphinx project. So you might say that Lumenvox is Sphinx with a really good AM and some polish. Some well intentioned efforts are being made over at <a href="http://voxforge.org">Voxforge.org</a> to provide better AMs for Sphix and Julius but they still have a ways to go.</p>
<h2>Wrapping Up:</h2>
<p>Stick with Asterisk for now if you go the telephony route:<br />
The primary reason I stuck with Asterisk was because FS dropped Lumenvox support. Understandably so.. Lumenvox attempted to charge them for dev licenses. I&#8217;m not sure that was a wise move on Lumen&#8217;s part but that&#8217;s politics I guess. FS is really becoming quite a contender in the world of Telephony &amp; VoIP so I hope they work it out. For me it was a deal breaker.</p>
<p>Eventually though I went the web services route. It made sense because using this approach we were able to scale out the solution web 2.0 style. Telephony becomes too expensive cost and performance wise. You can still get good performance from the telephony route, just not nearly what you can attain using web services.</p>
<p>Anyway, I should have just listened to the advice at the beginning of this article in the first place: forget about speech rec unless it&#8217;s absolutely central to your solution. I learned the hard way and I&#8217;m writing this so hopefully you won&#8217;t have to.</p>
<p>I may write some more on the subject later on. It really was an enlightening experience to submerge myself in this whole other universe. </p>
<p>At any rate this article should have at least moved you a little closer to building your very own Star Trek computer. If you want to hear more on the subject or have questions just submit a comment and I&#8217;ll do my best to answer.</p>
<p>That&#8217;s a wrap</p>
]]></content:encoded>
			<wfw:commentRss>http://teabuzzed.com/2009/08/on-speech-recognition-web-app-integration-pointers-for-newbies-lessons-learned-from-a-failed-startup/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
