<?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>benjismith.net &#187; biz</title>
	<atom:link href="http://benjismith.net/index.php/category/biz/feed/" rel="self" type="application/rss+xml" />
	<link>http://benjismith.net</link>
	<description>Benji Smith, Software Research</description>
	<lastBuildDate>Wed, 01 Jun 2011 17:08:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Going Solo</title>
		<link>http://benjismith.net/index.php/2007/12/10/going-solo/</link>
		<comments>http://benjismith.net/index.php/2007/12/10/going-solo/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 21:54:47 +0000</pubDate>
		<dc:creator>benji</dc:creator>
				<category><![CDATA[biz]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[So, I finally bit the bullet and started my own company. I&#8217;ve been a free-agent for about three weeks now, and I love it.
Hooray for me!!
The new company is called Wry Research, and at least at first, I&#8217;m mostly just doing AI research consulting for a couple of clients. I&#8217;m trying to also fit in [...]]]></description>
			<content:encoded><![CDATA[<p>So, I finally bit the bullet and started my own company. I&#8217;ve been a free-agent for about three weeks now, and I love it.</p>
<p>Hooray for me!!</p>
<p>The new company is called Wry Research, and at least at first, I&#8217;m mostly just doing AI research consulting for a couple of clients. I&#8217;m trying to also fit in some original product development, when I have spare time. But I don&#8217;t have a whole hell of a lot of spare time, so I&#8217;m mostly just consulting right now.</p>
<p>But life is very good, and I&#8217;m enjoying the freedom and flexibility of being a solo software developer.</p>
<p>In the near future, I&#8217;ll talk about some of the work I&#8217;m doing as a consultant. I&#8217;ll also talk a little bit about a really cool research project that I&#8217;m doing, in conjunction with the Columbia Medical School Neurovascular Research Lab. Depending on the success of the research, it could lead me to developing a very cool product/service for the medical research community.</p>
<p>I&#8217;ll keep ya posted :)</p>
]]></content:encoded>
			<wfw:commentRss>http://benjismith.net/index.php/2007/12/10/going-solo/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>The New Decision</title>
		<link>http://benjismith.net/index.php/2006/10/28/the-new-decision/</link>
		<comments>http://benjismith.net/index.php/2006/10/28/the-new-decision/#comments</comments>
		<pubDate>Sat, 28 Oct 2006 20:33:14 +0000</pubDate>
		<dc:creator>benji</dc:creator>
				<category><![CDATA[biz]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://benjismith.net/index.php/2006/10/28/the-new-decision/</guid>
		<description><![CDATA[Yesterday, I returned from obscurity to tell you that I&#8217;ve been busily grinding away at three major projects. Today, I&#8217;m going to tell you a little bit about the first project, with some background information for those who may not have been following along.
Over the summer (and immediately following my failed interview at Google) I [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I returned from obscurity to tell you that I&#8217;ve been busily grinding away at three major projects. Today, I&#8217;m going to tell you a little bit about the first project, with some background information for those who may not have been following along.</p>
<p>Over the summer (and immediately following my <a href="http://benjismith.net/index.php/2006/06/07/interviewing-with-google/">failed interview at Google</a>) I announced a project to brainstorm <a href="http://benjismith.net/index.php/2006/06/08/30-days-30-ideas/">30 business ideas in 30 days</a>. Although the project slipped a little bit (I ended up developing 28 ideas in 43 days), I came up with a broad range of possible software projects.</p>
<p>Over the next month or so, I arrived at a decision: the <a href="http://benjismith.net/index.php/2006/08/12/some-wistful-thoughts-and-a-decision/">AI-Coder</a> project rose to the top of my list, and I started working on an implementation. But within a few weeks, I ran into a number of difficulties (both technical and legal) and I decided to <a href="http://benjismith.net/index.php/2006/08/27/ai-coder-due-diligence-why-im-changing-plans/">reconsider</a>.</p>
<p>So, I returned to my list of <a href="http://benjismith.net/index.php/2006/08/02/biz-three-more-ideas-hit-the-chopping-block/">semifinalist projects</a> and began to weigh the options.</p>
<p>And now I&#8217;ve chosen a new project.</p>
<p><span id="more-78"></span>Here&#8217;s a quick rundown of the my thought process as I revisited those four ideas:</p>
<p><strong><a href="http://benjismith.net/index.php/2006/06/10/biz-idea-01-webdelve-analytics/">WebDelve</a></strong></p>
<p>I still think this would be a very cool project, and I&#8217;m still enamoured with the idea of using a Windows GUI application (rather than a webapp) as a platform for a rich web-analytics experience. I also really like the idea of presenting the kinds of charts typically only seen in financial applications as an advanced mechanism for exploring the different characteristics of web-surfing behavior.</p>
<p>When I&#8217;m looking at my own web stats, I&#8217;d love to be able to view them as a seven-day moving average, or as a pair of crisscrossing momentum lines or as a region between a set of Bollinger Bands. It&#8217;d also be nice if i could drill down to see the browsing activities of individual users, rather than always having to work with aggregate stats. I&#8217;d like to be able to annotate the charts with my own notes, and I&#8217;d like to join my web-analytics queries with queries on my other database tables (products, purchases, users, articles, blog posts, etc).</p>
<p>So I think I could develop a really unique product in this space.</p>
<p>But, like I said before, I don&#8217;t relish the idea of competing with the world&#8217;s googliest search engine company. Google Analytics is one of the four most important pieces of software produced by Google (in order of importance: Search, AdSense, AdWords, and Analytics). These separate applications work in four-part harmony for Google&#8217;s overall revenue strategy, since Analytics is the tool that advertisers use to maximize their revenue. And when the advertisers maximize their revenue, so does Google.</p>
<p>Google isn&#8217;t likely to smile at competing products, and I&#8217;m not likely to smile if they&#8217;re frowning at me.</p>
<p>Plus, integration with AdWords isn&#8217;t something I could offer, and the WebDelve product would be significantly less compelling than theirs, for that reason alone.</p>
<p><strong><a href="http://benjismith.net/index.php/2006/07/06/biz-idea-15-beltway-analytics/">Beltway Analytics</a></strong></p>
<p>This project would also be fun, and very personally satisfying. I&#8217;d get to participate, indirectly, in American politics (which I enjoy). I&#8217;d also get to flex my skills in writing machine learning algorithms and natural language processing systems.</p>
<p>Unfortunately, the whole project would have to be driven by advertising revenue. Which would almost certainly mean Google AdSense. And, call me crazy, but I&#8217;m just not comfortable relying on a single source of revenue for an entire business model. (Though I wouldn&#8217;t mind supplementing my revenue with ad dollars.)</p>
<p>Besides, there have recently emerged lots of interesting players in this space. Between <a href="http://findlaw.com">FindLaw</a>, <a href="http://www.govtrack.us">GovTrack</a>, and <a href="http://www.google.com/ig/usgov">Google U.S. Government Search</a> (couldn&#8217;t they think of a catchier name?), many of the features I was planning are already being offered. (Though, without quite as much natural language processing as I would have liked. For example, wouldn&#8217;t it be interesting to know that a recent piece of legislation contained three different quotes from the Bible, or from a United Nations document?)</p>
<p>Anyhow, although I think it&#8217;d be a fun research project, the Beltway Analytics project lacks many of the key criteria for me to consider it a viable business plan right now.</p>
<p><strong><a href="http://benjismith.net/index.php/2006/06/13/biz-idea-04-project-artifact-management/">Project Artifact Management</a></strong></p>
<p>This one is so tempting.</p>
<p>Unlike the software industry&#8211;where there&#8217;s already a multitude of free software to manage the versioning, transfer, documentation, and release of project resources&#8211;most other industries are still grappling with the need for a robust methodology to handle their project artifacts.</p>
<p>In fact, just a few weeks ago, I was talking with my older brother&#8211;who has a masters degree in civil engineering and works in the transportation sector&#8211;about how his company (and the industry at large) manages its project assets. In most engineering firms, electronic documents are continually passed back and forth between the project personnel and the client. Technical specs, charts, diagrams, schematics, construction and fabrication plans, FMEA analyses, and on and on and on. Document versioning information (when it exists at all) is usually just pasted into the filename.</p>
<p>And, in most cases, these documents travel around in email attachments or burned onto DVDs and sent through the mail. <em><strong>The mail!!</strong></em></p>
<p>He said that a few artifact-tracking systems have started to appear in the marketplace. But they&#8217;re very complex. And very expensive.</p>
<p>The engineering industry is just ripe for the kind of product I&#8217;m envisioning. Other industries are in even worse shape. I mentioned the intelligence and law enforcement communities in my original blog post as being particularly hungry for this kind of software. I&#8217;ve talked with a few people from the intelligence community about this software, and they&#8217;d be espcially interested in a solution that combines artifact tracking and versioning with strongly encrypted access controls to sensitive documents.</p>
<p>Unfortunately, in these industries, I would need a very knowledgeable sales person, with a Rolodex full of industry contacts. And the sales cycles would be long and difficult. This isn&#8217;t the kind of software I could sell myself, either by whipping up a brochure-style website or by trying to make sales appointments myself. I don&#8217;t know any such person (my brother is an engineer, not a salesman), and I definitely don&#8217;t have the cash to hire a sales team.</p>
<p>So, as much as I like this idea, I&#8217;m putting it on the shelf for now.</p>
<p><strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">VaporTrade</a></strong></p>
<p>I actually started developing this software many years ago, back in the late 1990&#8217;s when the stock market was experiencing its heyday of growth.</p>
<p>When I looked for new investment opportunities, I browsed through a few hundred charts every day, keeping my eye out for particular price-movement patterns. Maybe I wanted to find a security with high price volatility over the previous weeks whose decreasing price was about to cross the 90-day moving average.</p>
<p>Or whatever.</p>
<p>At first, I trained my eyeballs to look for these kinds of patterns. And I got pretty good at it. I could look at twenty or thirty charts per minute, only pausing to look at the ones that might meet my criteria. But it didn&#8217;t take long for me to realize that those patterns could be described logically and that I could use software to search for my criteria in a pool of thousands of securities.</p>
<p>Even more compelling was that I could go back in time, through the previous ten years of market history, to test the validity of my assumptions. It&#8217;s nice to have actual numbers to quantify the effectiveness of each type of pattern. And it&#8217;s even nicer to have a dispassionate algorithm doing the work, instead of my over-emotional brain.</p>
<p>Of course, since I was just writing the software for myself, I didn&#8217;t bother to develop any fancy GUI interface. At that time, the VaporTrade software was just a fast analysis engine, with a small set of command-line tools for querying the engine and an XML syntax for describing patterns.</p>
<p>Obviously, I don&#8217;t think I could market a command-line analysis tool for the stock market.</p>
<p>But I think the core idea is still worthwhile, and I think it could be very powerful if I build a slick GUI to accompany those tools.</p>
<p>Plus, this idea is very good from a business perspective, since it will facilitate the capturing of additional revenue streams. Not only will I sell the software, but I&#8217;ll also sell a daily data feed of market prices and volumes. And, since the software will be built entirely around a plug-in architecture (even core services like charting will be provided through plug-ins), I&#8217;ll have the opportunity to up-sell additional capabilities like paper-trading, money-management, hypothesis testing, and portfolio tracking.</p>
<p>So, there you have it, folks. This is the project I&#8217;ll be working on for the next six months. Even though I&#8217;ve been at it for a little while, I&#8217;m going to cheat slightly by declaring today as the official start date. Six months from today&#8211;on April 28, 2007&#8211;I&#8217;ll release the first public beta of the VaporTrade platform. I hope you&#8217;ll stick around and take the software for a spin around the block.</p>
<p>Along the way, I&#8217;ll keep you posted about my progress, writing with copious detail about my technical and business decisions. In fact, tomorrow I&#8217;ll write about a jaw-droppingly-stupid decision I&#8217;ve (proudly) made, to implement one of my core infrastructural components from scratch.</p>
]]></content:encoded>
			<wfw:commentRss>http://benjismith.net/index.php/2006/10/28/the-new-decision/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>AI-Coder Due Diligence: Why I&#8217;m Changing Plans</title>
		<link>http://benjismith.net/index.php/2006/08/27/ai-coder-due-diligence-why-im-changing-plans/</link>
		<comments>http://benjismith.net/index.php/2006/08/27/ai-coder-due-diligence-why-im-changing-plans/#comments</comments>
		<pubDate>Mon, 28 Aug 2006 03:53:01 +0000</pubDate>
		<dc:creator>benji</dc:creator>
				<category><![CDATA[aicoder]]></category>
		<category><![CDATA[biz]]></category>

		<guid isPermaLink="false">http://benjismith.net/index.php/2006/08/27/ai-coder-due-diligence-why-im-changing-plans/</guid>
		<description><![CDATA[As much as I&#8217;m loathe to admit it, I&#8217;ve bitten off a bit more than I think I can chew with the AI-Coder project.
Why the sudden change of heart?
I&#8217;ve been doing my homework.
Over the last three weeks, I&#8217;ve given a lot of consideration to the four high-level design goals that I outlined a few days [...]]]></description>
			<content:encoded><![CDATA[<p>As much as I&#8217;m loathe to admit it, I&#8217;ve bitten off a bit more than I think I can chew with the AI-Coder project.</p>
<p>Why the sudden change of heart?</p>
<p>I&#8217;ve been doing my homework.</p>
<p><span id="more-72"></span>Over the last three weeks, I&#8217;ve given a lot of consideration to the four high-level design goals that I outlined <a href="http://benjismith.net/index.php/2006/08/22/ai-coder-high-level-design/">a few days ago</a> (fun, security, speed, and legality). I&#8217;ve written some sample code, I&#8217;ve buried my head in a small stack of technical books, and I&#8217;ve read through pages and pages of federal and state laws.</p>
<p>As a result, I&#8217;ve identified some major obstacles. On their own, each of the obstacles presents a barrier I could probably overcome. But combined, the accumulated weight of these obstacles is more than I&#8217;m willing to tackle for this project.</p>
<p>Needless to say, I&#8217;m pretty disappointed.</p>
<p>Anyhow, to give you an idea of the challenges inherent to this project, I&#8217;ll walk you through my thought process as I considered the technical and business implications of making the AI-Coder project fun, secure, fast, and legal.</p>
<p><strong>Sounds Like Fun!!!</strong></p>
<p>There are plenty of programmers who write code in their spare time, for fun or self-betterment (as evidenced by more than 120,000 projects and more than 1.3 million registered users at <a href="http://sf.net">SourceForge</a>), so I&#8217;ve never been too concerned when people have asked me how I&#8217;d find people willing to write code in their spare time. Hobby programming is already remarkably common. And hobby programming with the potential to win cash prizes is almost a no-brainer.</p>
<p>But the one detail that always nagged at me was this: How many programmers are really passionate about chess strategy?</p>
<p>Sure, coders are more likely to play board games than your average citizen, but focusing on super-geek games like chess, backgammon, go, or othello would be too limiting. To develop a large, broad, and enthusiastic community, I&#8217;d need to include a game with more broad-based appeal. Something cool. The kind of game that could even convince non-programmers to start slinging some code.</p>
<p>So I decided to include Texas Hold&#8217;Em (or some other poker variant) in the AI-Coder platform. (As a bonus, I&#8217;ve already written thousands of lines of poker AI code myself over the last year.)</p>
<p>In my opinion, the availability of cash-money pokerbot tables would be a key ingredient to the long-term success of the AI-Coder project. Although I&#8217;d offer cash tournaments for plenty of other turn-based strategy games, I think poker would be the real money-maker.</p>
<p><strong>Dealing from the Bottom of the Deck</strong></p>
<p>Even without offering poker-style games, I&#8217;d have to think about cheaters. What are all the possible ways people could exploit the system to gain an unfair advantage?</p>
<p>What if one player could sneak a peek at another player&#8217;s cards?</p>
<p>What if a player could modify the state of the table, stacking his own hand with better cards, or sabotaging the hands of his opponents?</p>
<p>What if, in a game with more than two players, two or more players could secretly communicate with one other, conspiring against the solo players at the table? What kind of software architecture can prevent two bots from colluding?</p>
<p>What if, at the moment preceding a catastrophic loss, the losing player can crash the system by blowing the stack, eating through the heap, or overflowing a buffer? How can the software prevent (or at least detect and punish) any bot who sabotages the game to avoid losing?</p>
<p>This is where I thought the .NET platform would provide a straightforward solution. With my experience writing code for a managed environment (the JVM), I assumed that I could get up to speed on .NET security without too much trouble.</p>
<p>My technical experimentation over the last few weeks has proven that assumption wrong.</p>
<p>Microsoft has actually given a lot of thought to the security architecture in the .NET framework with a concept they call <em>AppDomains</em>. All managed code executed by the CLR is first loaded into a privilege-managed <em>AppDomain</em> sandbox. Code executing in one <em>AppDomain</em> is prevented from accessing the objects allocated in another <em>AppDomain</em> unless the objects are deliberately marshalled (using dynamic proxies or serialization) across the sandbox boundaries. In addition, each <em>AppDomain</em> can have its resource-access privileges completely locked down, preventing certain assemblies from accessing the file-system or connecting to a remote host on the network.</p>
<p>By loading each bot into its own <em>AppDomain</em>, I could use those isolation mechanisms to prevent quite a few exploits. A rogue bot would be unable to sabotage the game-state or peek at the hidden cards in his opponents&#8217; hands or collude with another conspiring player.</p>
<p>But, unfortunately, all <em>AppDomains</em> in the parent process still allocate their objects on the same global heap, so it would be impossible to enforce memory restrictions on a player-by-player basis, leaving the door wide open for a player to deliberately over-allocate objects, throwing an <em>OutOfMemoryException</em> and corrupting the state of the current game.</p>
<p>How could I monitor allocations to fairly distribute resources among all the active players?</p>
<p>This is where it gets really tricky.</p>
<p>By implementing the game controller as an unmanaged C++ application, I could create an instance of the CLR as an <em>ICLRRuntimeHost</em> COM object. By instantiating that COM object using a custom implementation of the <em>ICLRPolicyManager</em> interface, I could set my own escalation policy for trapping (and recovering from) <em>OutOfMemoryExceptions</em>, using a custom <em>IHostMemoryManager</em> to keep careful records of allocations, deallocations, and GC compactions. I could catch <em>OutOfMemoryExceptions</em> as they occur, causing the offending player to automatically forfeit his hand.</p>
<p>That&#8217;s pretty impressive stuff, but it <strong><em>still</em></strong> wouldn&#8217;t really solve the problem. What if, at a ten-player table, Player#1 filled 90% of the available memory with his objects? By the time Player#10 got his turn, he might throw an <em>OutOfMemoryException</em> by allocating only a fraction of the memory unfairly claimed by the first player. Rather than punishing the player who actually uses the last byte of memory, I should punish the player who allocates more than his fair share.</p>
<p>As far as I can tell, the only way to accomplish that granularity of memory management is to run each player&#8217;s code in its own separate process, using COM interop for inter-process communication. At that point, the conveniences of the .NET framework fall mostly by the wayside, and I&#8217;m left implementing a whole lot of unmanaged C++ code.</p>
<p>I was prepared to write a thin C++ management layer as the controller for this architecture, but this is more than I bargained for. With only a little C++ experience, and no exposure to COM at all, I&#8217;m reluctant to pursue this route.</p>
<p><strong>The Need for Speed (or, at least, Non-Slowness)</strong></p>
<p>The idea of having third-party code executing on my server is not appealing, even if that code was confined to execute within a secure sandbox. AI code, often written by novices, would probably chew through a server&#8217;s CPU cycles pretty quickly.</p>
<p>I&#8217;ve considered building speed-incentives into the game rules. Maybe the winner of a particular game would forfeit a percentage of his winnings if his code was too slow. Maybe the winner of a Hold&#8217;Em hand would be determined by some combination of hand strength and execution speed.</p>
<p>But what if a GC collection was triggered in the middle of someone&#8217;s algorithm, to clean up for the allocations of the previous player? Without process (and heap) isolation, it would be very hard to come up with a fair mechanism for measuring execution time of any given player&#8217;s code.</p>
<p>A few people have suggested to me that I should just host the game server, allowing people to connect their algorithmic code via a SOAP interface, or some other remote API. But then it&#8217;s impossible to guarantee the integrity of the game. What if someone&#8217;s &#8220;AI&#8221; code just consists of a GUI where a human can compete against all the other machines (in many cases, humans are <strong><em>much</em></strong> better than machines at playing these games). And what if a few players started teaming with one another, colluding against the other players at the table. The only way to prevent those kinds of exploits is to execute the code in a known secure sandbox.</p>
<p>But what would it cost to fully host an ongoing competition like I&#8217;ve envisioned with the AI-Coder project?</p>
<p>In my experience writing poker AI code, a straightforward decision (folding a hand with a deuce and a three, off-suite) can be made in a few milliseconds. But more difficult decisions (like determining whether to fold a straight when an opponent might be bluffing a flush) can take two or three seconds to run through all of the probabilistic calculations, stochastically modelling the opponent&#8217;s likely hand, based on his observed play-style. (The exact sequence of checks, calls, and raises tells you a lot about what cards the player is actually holding.)</p>
<p>Realistically, with novices writing code, I&#8217;d expect an average ten-seat table to run at real-life poker-table speeds: about one full hand per minute. Maybe two. So a single server would be able to handle between ten and twenty simultaneous users.</p>
<p>In order to be profitable, I&#8217;d need to host a large cluster of powerful servers. Although I could start off small with a closed beta, increasing the hardware along with market demand and using an invitation system to control the flow of new members, it would definitely be a challenge to grow a scalable architecture.</p>
<p><strong>I Don&#8217;t Want to Go to Prison</strong></p>
<p>And of course, I&#8217;ve spent many many hours conducting legal research, trying to identify the potential regulatory hurdles I&#8217;d encounter with a business like this.</p>
<p>It&#8217;s not pretty.</p>
<p>Most of the laws (at the federal and state level) would consider the AI-Coder business model to be &#8220;gambling&#8221;, as long as the games involved an &#8220;element of chance&#8221;. Even if the game outcome is predominantly affected by the skill level of the participants (as would surely be the case with an AI programming contest), the influence of that &#8220;element of chance&#8221; would make the contest subject to gambling laws.</p>
<p>In <a href="http://caselaw.lp.findlaw.com/casecode/uscodes/18/parts/i/chapters/50/sections/section_1081.html">Title 18, Chapter 50, Section 1081</a> of the US Code, a &#8220;gambling establishment&#8221; is defined as:</p>
<div style="margin-left:20px;font-style:italic;">any common gaming or gambling establishment operated for the purpose of gaming or gambling, including accepting, recording, or registering bets, or carrying on a policy game or any other lottery, or playing any game of chance, for money or other thing of value.</div>
<p>The penalty for operating a gambling establishment is detailed in <a href="http://caselaw.lp.findlaw.com/casecode/uscodes/18/parts/i/chapters/95/sections/section_1955.html">Title 18, Chapter 95, Section 1955</a>, to whit:</p>
<div style="margin-left:20px;font-style:italic;">Whoever conducts, finances, manages, supervises, directs, or owns all or part of an illegal gambling business shall be fined under this title or imprisoned not more than five years, or both.</div>
<p>Ouch.</p>
<p>And, as if that wasn&#8217;t bad enough, I&#8217;d like to refer you to <a href="http://caselaw.lp.findlaw.com/casecode/uscodes/18/parts/i/chapters/96/sections/section_1961.html">Title 18, Chapter 96, Section 1961</a> and <a href="http://caselaw.lp.findlaw.com/casecode/uscodes/18/parts/i/chapters/96/sections/section_1962.html">Section 1962</a>:</p>
<div style="margin-left:20px;font-style:italic;">&#8220;Racketeering activity&#8221; means (A) any act or threat involving murder, kidnapping, gambling, arson, robbery, bribery, extortion, dealing in obscene matter, or dealing in a controlled substance &#8230; which is chargeable under State law and punishable by imprisonment for more than one year;</p>
<p>It shall be unlawful for any person who has received any income derived &#8230; from a pattern of racketeering activity &#8230; to use or invest &#8230; any part of such income &#8230; in interstate or foreign commerce.</p></div>
<p>Racketeering, huh?</p>
<p>And you thought writing AI code was difficult? I bet you&#8217;ve never tried writing a thousand lines of code with a pair of brass knuckles on your fingers. Now that&#8217;s what I call hard-core programming!! And how would you like to try on a pair of cement shoes, my friend?</p>
<p>Of course, the Feds will be very interested in all the internet traffic going to and from my servers. According to <a href="http://caselaw.lp.findlaw.com/casecode/uscodes/18/parts/i/chapters/119/sections/section_2516.html">Title 18, Chapter 119, Section 2516</a>:</p>
<div style="margin-left:20px;font-style:italic;">The Attorney General &#8230; may grant &#8230; an order authorizing or approving the interception of wire or oral communications by the Federal Bureau of Investigation, &#8230; when such interception may provide or has provided evidence of &#8230; any offense which is punishable under the [gambling and racketeering] sections of this title.</div>
<p>Of course, all of this relies on the notion that the AI-Coder platform could be classified as &#8220;gambling&#8221;, a classification that rests largely on the &#8220;element of chance&#8221; inherent in some of the games.</p>
<p>But what if I could eliminate the element of chance from the games? Obviously, games like chess and backgammon are already purely games of skill. But would it be possible to slightly re-write the rules of Texas Hold&#8217;Em to eliminate the element of chance?</p>
<p>I&#8217;ve developed an ingenious idea that I call &#8220;collaborative shuffling&#8221;, wherein one player gets to arrange the deck in whatever order he likes. He can stack the deck to his own advantage. But then he passes the deck to a second player, who re-arranges the cards again. The only restriction is that the second player is unable to see the values of the cards, so he can&#8217;t know how the first player arranged them.</p>
<p>The collaborative shuffling process would eliminate randomness from the game, while still providing a mechanism for scattering cards throughout the deck. As a classic example of a <a href="http://en.wikipedia.org/wiki/Prisoners_Dilemma">Prisoner&#8217;s Dilemma</a>, the shuffle would become a key strategic element of the game.</p>
<p>But, even with the &#8220;element of chance&#8221; gone, would the AI-Coder project be free from legal trouble?</p>
<p>I don&#8217;t think so.</p>
<p>Even though it might be possible for a non-random poker variant to pass muster against the federal gambling laws, the state statues are much more varied in their construction.</p>
<p>In Florida, for example, the state Criminal Code (in <a href="http://www.leg.state.fl.us/statutes/index.cfm?mode=View%20Statutes&#038;SubMenu=1&#038;App_mode=Display_Statute&#038;URL=CH0849/Sec14.HTM">Title XLVI, Chapter 849, Section 14</a>) specifically prohibits wagering &#8220;any money or other thing of value upon the result of any trial or contest of skill, speed or power or endurance of human or beast&#8221;, making violations of the prohibition punishable as a second-degree misdemeanor.</p>
<p>Arizona doesn&#8217;t create a special prohibition against games of skill, but (in <a href="http://www.azleg.gov/ars/13/03305.htm">Title 13, Section 3305</a>) it places a blanket prohibition on any wagers concerning &#8220;the results of a race, sporting event, contest or other game of skill or chance&#8221;. A violation of this statute is a class 1 misdemeanor.</p>
<p>The Arkansas statutes (in <a href="http://www.arkleg.state.ar.us/NXT/gateway.dll/ARCode/title03839.htm/subtitle04515.htm/chapter04724.htm/section04737.htm?f=templates$fn=document-frame.htm$3.0#JD_5-66-113">Title 5, Chapter 66, Section 113</a>) prohibit &#8220;betting any money or any valuable thing on any game of hazard or skill&#8221;. The fine is $25.</p>
<p>Similar prohibitions against wagering on skill-based games exist in at least five or six other states.</p>
<p>So, I could probably operate legally, if I eliminated the element of chance from all of my games, and if I excluded residents of non-skill-gaming states from participating.</p>
<p>But the law is a slippery thing. I&#8217;d be stupid not to retain expert legal counsel, since I&#8217;m not personally capable of keeping up-to-date on the gambling laws for 50 different states, as well as the federal laws (which, by the way, automatically kick-in whenever you&#8217;re charged with a violation of a state gambling law).</p>
<p><strong>So, that&#8217;s it then?</strong></p>
<p>If it were just the legal issues, I might have the stomach to go for it.</p>
<p>I&#8217;ve found a number of attorneys who specialize in gambling laws, and I could hire them to do some research for me, giving me a set of parameters within which I could operate legally.</p>
<p>I don&#8217;t have a lot of start-up capital, but getting some sound legal advice would be a good use of that cash.</p>
<p>And if it were just a matter of learning COM interop programming with C++, I&#8217;d be up to the task. After all, I&#8217;ve learned a half-dozen different programming languages over the last few years, and I could certainly learn a few more.</p>
<p>If my only concern was providing a fun coding experience, or setting up a fast implementation, I&#8217;d take the plunge.</p>
<p>But there are too many obstacles here, and I&#8217;m afraid I&#8217;d injure my probability of succeeding by picking a project so fraught with peril.</p>
<p>Instead, I&#8217;m going back to the drawing board.</p>
<p>I&#8217;m going to re-visit my previous list of ideas and decide on a more suitable business plan. Unfortunately, despite my enthusiasm for the AI-Coder idea, this is the wrong project for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://benjismith.net/index.php/2006/08/27/ai-coder-due-diligence-why-im-changing-plans/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>AI-Coder: High Level Design</title>
		<link>http://benjismith.net/index.php/2006/08/22/ai-coder-high-level-design/</link>
		<comments>http://benjismith.net/index.php/2006/08/22/ai-coder-high-level-design/#comments</comments>
		<pubDate>Wed, 23 Aug 2006 04:37:04 +0000</pubDate>
		<dc:creator>benji</dc:creator>
				<category><![CDATA[aicoder]]></category>
		<category><![CDATA[biz]]></category>

		<guid isPermaLink="false">http://benjismith.net/index.php/2006/08/22/ai-coder-high-level-design/</guid>
		<description><![CDATA[As an artist, I&#8217;ve often started a new drawing or painting right in the medium, dipping a paintbrush into my palette and splashing something preliminary onto the canvas. Some of my favorite drawings have started with pen on paper, having no idea what the hell I was working toward, but just enjoying the process.
In many [...]]]></description>
			<content:encoded><![CDATA[<p>As an artist, I&#8217;ve often started a new drawing or painting right in the medium, dipping a paintbrush into my palette and splashing something preliminary onto the canvas. Some of my favorite drawings have started with pen on paper, having no idea what the hell I was working toward, but just enjoying the process.</p>
<p>In many cases, those first few haphazard strokes set a tone and texture that guides the rest of the creative process.</p>
<p>While the paint is still wet, and the figure is still mostly unformed, I&#8217;ll step back from the canvas and look at what I&#8217;ve done so far, asking myself &#8220;What is this? I like what I&#8217;ve got so far, but how can I turn it into something worthwhile?&#8221;</p>
<p>The decisions made during that post-improvisational stage often determine whether the painting gets hung on my wall or tossed into the dumpster.</p>
<p>I feel the same way right now, at the beginning of the AI-Coder project.</p>
<p><span id="more-71"></span>Although I&#8217;ve spent the last year or so experimenting with AI techniques and building my own game-playing software, those tasks really just give me a preliminary sketch for the overall design of the AI-Coder platform. Since I&#8217;m developing this software for widespread consumption, the design constraints and priorities are entirely different than if I was building something just for myself. And of course, as is always the case, some of the design criteria conflict with one another.</p>
<p>At this point, I&#8217;ve identified four overarching principles that should guide the whole development process. In no particular order, it&#8217;s essential that the software is:</p>
<ul>
<li>Fun</li>
<li>Secure</li>
<li>Fast</li>
<li>Legal</li>
</ul>
<p>All four of those constraints will make a big difference on the software design, and all four of them are critical to the monetary success of the project. If I fail to meet any of those criteria, I can expect big problems.</p>
<p><strong>Ahem&#8230;What?</strong></p>
<p>My parents are avid readers of this blog, and when they read that I&#8217;d chosen the AI-Coder project, they were completely perplexed. Not necessarily because I had chosen this  project above all the others. Rather, they were perplexed about what this project even <strong><em>is</em></strong>.</p>
<p>I can hardly blame them. So far, I haven&#8217;t figured out how to explain the gist of the AI-Coder project without going into a twenty minute explanation.</p>
<p>So before I dive into my four design criteria, I&#8217;m going to step back for a second and try to write a 30-second elevator pitch for AI-Coder:</p>
<div style="margin:20px;"><em><strong>AI-Coder</strong> is an ongoing contest, where smart programmers can win cash prizes by writing better AI code than their opponents, in strategy games like chess, othello, and poker.</em></div>
<p>I&#8217;m sure that the definition of the AI-Coder project will fluctuate as the software (and the business develops), but that&#8217;s the core idea. And hopefully, a description like that clearly expresses what I&#8217;m trying to accomplish without needing any further explanation.</p>
<p>Now that I&#8217;ve gotten the elevator pitch pretty solidified, I can focus on my four central design criteria.</p>
<p>Over the next week, I&#8217;ll post four follow-up articles, discussing how the elements of fun, security, speed, and legality will affect the design decisions of the AI-Coder platform.</p>
<p>And, by the end of that process, I hope to develop a clear concept (from both a business and a technical perspective) of how my preliminary sketches will develop into a fully-formed picture, one that I&#8217;ll be proud to put on public display.</p>
]]></content:encoded>
			<wfw:commentRss>http://benjismith.net/index.php/2006/08/22/ai-coder-high-level-design/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Some Wistful Thoughts, and a Decision</title>
		<link>http://benjismith.net/index.php/2006/08/12/some-wistful-thoughts-and-a-decision/</link>
		<comments>http://benjismith.net/index.php/2006/08/12/some-wistful-thoughts-and-a-decision/#comments</comments>
		<pubDate>Sat, 12 Aug 2006 08:22:16 +0000</pubDate>
		<dc:creator>benji</dc:creator>
				<category><![CDATA[biz]]></category>

		<guid isPermaLink="false">http://benjismith.net/index.php/2006/08/12/some-wistful-thoughts-and-a-decision/</guid>
		<description><![CDATA[My deepest apologies for being somewhat incommunicado lately.
At times like these, I should remind my readers that&#8211;in addition to my entrepreneurial ambitions&#8211;I&#8217;m still happily (and busily) employed in the software business. And sometimes that means I&#8217;ve got to focus on projects for the people who actually pay my salary.
In today&#8217;s blog post, first I&#8217;ll talk [...]]]></description>
			<content:encoded><![CDATA[<p>My deepest apologies for being somewhat incommunicado lately.</p>
<p>At times like these, I should remind my readers that&#8211;in addition to my entrepreneurial ambitions&#8211;I&#8217;m still happily (and busily) <a href="http://benjismith.net/resume.php">employed</a> in the software business. And sometimes that means I&#8217;ve got to focus on projects for the people who actually pay my salary.</p>
<p>In today&#8217;s blog post, first I&#8217;ll talk a little bit about what I&#8217;ve been doing at work lately. And then I&#8217;ll grumble a little bit about last week&#8217;s <a href="http://benjismith.net/index.php/2006/08/03/disheartening-wordpress-bug/">lost-blog-post snafu</a>. And then, I&#8217;ll talk about a little bit about the final five business ideas in my <a href="http://benjismith.net/index.php/2006/06/08/30-days-30-ideas/">30-days-30-ideas</a> project, culminating with an announcement of which idea I&#8217;ll be pursuing. (!!!)</p>
<p>Here we go&#8230;</p>
<p><span id="more-70"></span>So, it&#8217;s gotten busy at the office lately. We&#8217;re entering the final stages of our release cycle, and code freeze is coming up soon. One of my main contributions to the product is a new domain-specific language, with an accompanying compiler. Most of my actual engineering work is done, though I&#8217;m still adding a few tweaks here and there, when the need arises (last week, I added an inheritance model to the language &#038; compiler).</p>
<p>But it seems like now is when the really intense work is kicking in. With a new compiler available, I&#8217;ve been conducting training sessions with engineers from some of the company&#8217;s other teams. The QA department is going to use the compiler to automate lots of testing that used to be manually conducted (or only semi-automated). And the professional services department is going to use the compiler, in lieu of our config UI, to produce product customizations for our clients.</p>
<p>As author of the compiler, I&#8217;m now also the resident expert with the new language. Although I&#8217;ve written a few dozen demo scripts to showcase different aspects of the language functionality, I&#8217;m assuming my workload will triple (at least) over the coming weeks, as I assume primary responsibility for authoring code in the new language.</p>
<p>And that&#8217;s okay. For me, crunch-time can be oddly satisfying, if I&#8217;m working on a project that really interests me. When I&#8217;m passionate about a piece of software, I don&#8217;t mind taking some extra time to make sure that it gets the love and attention it needs.</p>
<p>For some reason, at times like this, I&#8217;m reminded of the <a href="http://en.wikipedia.org/wiki/A_team">A-Team</a>, a silly American TV series from the early 1980&#8217;s.</p>
<p>After a ridiculous battle with an army of thugs, and after escaping from yet another imprisonment in an abandoned warehouse (using their ingenuity with blow-torches and explosives to free themselves), the A-Team would end each episode back on the run again. Covered in dirt and dried blood, Hannibal Smith (the A-Team&#8217;s unflappable leader) would lean back in his chair and chew on a gnarly cigar, smiling into the wind and barking &#8220;I love it when a plan comes together.&#8221;</p>
<p>That&#8217;s how I feel at the end of a successful software project.</p>
<p>And the A-Team metaphor works on so many levels. Most software projects are written by a ragtag team of weirdos (is there a Murdock or a B. A. Barackas on your team?), and most software projects are at least partially welded together from bits of old farm machinery. At the end of the project, we satisfactorily drink a celebratory beer or puff on a metaphorical cigar. And then, immediately thereafter, we find ourselves on the run from the law again, fugitives from sanity and reason, riding around southern California in a dilapidated old van.</p>
<p>Metaphorically, at least.</p>
<p>Anyhow, I was just having a nostalgic moment and thought I&#8217;d share it with everyone. Those of you without a background in American pop culture circa 1985 won&#8217;t have a clue what I&#8217;m talking about.</p>
<p>That&#8217;s the kind of feeling I&#8217;m hoping to cultivate with my own software business. Sure, I want to produce useful software. And, of course, I have certain revenue targets that I expect to meet. And ultimately, I&#8217;d like to contribute something back to the field of computer science. But, along the way, I&#8217;d also like to keep that software passion alive and kicking by working on really cool and interesting projects.</p>
<p>Anyhoo&#8230;now that I&#8217;ve gotten <strong>THAT</strong> out of my system, I&#8217;d like to talk about last week&#8217;s lost blog post.</p>
<p>I had written a long, thorough, and contemplative treatise on the topic of pricing. I dissected each of my five remaining business ideas, from the perspective of different pricing models, examining how each business idea supported different kinds of pricing options, and how those pricing options either supported or undercut the inherent strengths and weaknesses of each idea.</p>
<p>And then at the end, for a laugh, I decided to attach this hilarious photograph:</p>
<p><img src="http://benjismith.net/wp-content/uploads/2006/08/priceisright.jpg" alt="The Price is Right. Maybe." height="379" width="500" /></p>
<p>And somehow, in the process of uploading the photo, I lost most of the pricing post.</p>
<p>I&#8217;ve decided not to rewrite it. The original draft took too much effort, and I think I&#8217;d be disappointed trying to recreate it. But here are a few of the salient points, in no particular order:</p>
<ul>
<li>Nearly all of the businesses would support some kind of segmented pricing model. This kind of pricing model divides the market into various segments (Community Edition, Pro Edition, and Enterprise Edition) based on the typical budgets of the members of each segment. Although the more-advanced product-types have a few additional features, the different editions exist primarily to allow customers to measure the depth of their wallets and purchase accordingly.</li>
<li>The <strong><a href="http://benjismith.net/index.php/2006/06/10/biz-idea-01-webdelve-analytics/">WebDelve</a></strong> and <strong><a href="http://benjismith.net/index.php/2006/06/13/biz-idea-04-project-artifact-management/">Project Artifact Manager</a></strong> products are the perfect textbook examples of segmentable products, since they&#8217;re basically just shrink-wrap software applications, installed on the customer&#8217;s own hardware, with little need for advanced customization options.</li>
<li>The <strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">VaporTrade</a></strong> product is especially interesting, since most customers would probably also purchase a subscription to a daily data-feed. The data-feed could have its own segmentation (including different aggregations of securities and indices), and I could put together an interesting set of cross-promotions. (Buy the VaporTrade SuperGenius Edition, and get six months of the Omnibus DataFeed for FREE!!!)</li>
<li>Pricing can be tricky when a competing product, from the world&#8217;s googliest search engine company, is available for free to pretty much anyone who wants it. The <strong><a href="http://benjismith.net/index.php/2006/06/10/biz-idea-01-webdelve-analytics/">WebDelve</a></strong> product would have to differentiate itself in significant ways (other than price). These would likely be 1) The data is on your own server, 2) The product comes with a zillion reports, but you can also write your own, 3) Sure, you can see a high-level aggregate of user activity, but you can also drill-down to individual sessions of people browsing your site, 4) Better integration with your product/content database (write queries that JOIN your web analytics DB with your e-commerce DB), and 5) Better time-series charting analytics (moving averages, momentum, relative strength, etc).</li>
<li>Pricing is basically not a factor, at all, with the <strong><a href="http://benjismith.net/index.php/2006/07/06/biz-idea-15-beltway-analytics/">Beltway Analytics</a></strong> idea. I can&#8217;t think of a way to develop this website without it being <em><strong>entirely</strong></em> funded by advertising revenue. And that makes me nervous as hell.</li>
<li>The <strong><a href="http://benjismith.net/index.php/2006/06/21/biz-idea-06-ai-coder/">AI-Coder.com</a></strong> project actually has more possible pricing models than any of the other ideas. I&#8217;ve already proposed the subscription model to lots of people. Users could participate for free, at a limited level, but would be required to pay a small monthly fee ($4.99 ~ $6.99) for more intensive use of the system. But most of the feedback I&#8217;ve received has indicated that people will resoundingly refuse to pay a subscription fee. But what if I offered (daily/weekly/monthly) prizes for top-performing gamebots? What if each game contest is a tournament, with a small cash prize? What if two chessbots each pay fifty cents to enter a tournament, with the winner taking home a crisp, cool, dollar? (They&#8217;d also pay me a dime for facilitating the tournament.)
<p>What if universities wanted to pay a fixed rate for a class tournament? What if companies wanted to host extra-curricular tournaments among the members of their engineering teams? I could rent out my game servers by the CPU-minute.</p>
<p>I could provide a downloadable version of the tournament platform, so that users could test their gamebots before entering them into live competitions. They could get the basic SDK for free, paying me only to facilitate individual contests. Or, I could facilitate the tournaments for free while also giving away the basic SDK, making money only by selling an advanced GUI interface to the SDK (where users could host their own scrimmage tournaments to develop the AI abilities of their gamebots).</p>
<p>In all likelihood, the ideal pricing model for this software would probably be a hybrid, segmented approach. Subscriptions should be available for those who want a flat monthly rate. Cash tournaments should be available, for people willing to stake a few dollars on the quality of their AI. And flat-rate, one-time group tournaments should be available, for college classes, corporate tournaments, and other groups-of-nerds.</li>
</ul>
<p>In the final shakedown of things, I&#8217;ve decided to pursue the <strong><a href="http://benjismith.net/index.php/2006/06/21/biz-idea-06-ai-coder/">AI-Coder.com</a></strong> idea. With actual cash on the line, I think there are thousands of programmers who&#8217;d be interested in participating. By providing a market-segmented pricing structure for tournament stakes (anywhere from a nickel-per-game to twenty bucks for a best-five-of-seven), I should be able to entice users into playing, while also keeping the skilled gamebot authors away from the absolute beginners.</p>
<p>This is possibly not the most profitable idea in my list. The <strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">VaporTrade</a></strong> software probably has the greatest profit potential (particularly because of the accompanying data-feed). And the <strong><a href="http://benjismith.net/index.php/2006/06/10/biz-idea-01-webdelve-analytics/">WebDelve</a></strong> software probably has broader market appeal (though I don&#8217;t relish the the idea of competing with one of Google&#8217;s principle products).</p>
<p>But, the AI-Coder software really appeals to that side of me that&#8217;s passionate about computer science. This is where I think I&#8217;ll do the most interesting algorithmic work. This is where I think I&#8217;ll make the greatest contribution back to the computer science community. And this is where I&#8217;ll probably get to hang out with the ragtag team of weirdos that I like so much.</p>
<p>I think this project will be the most satisfying to me personally.</p>
<p>So six months from now, if everything goes as planned, I&#8217;ll be covered in dirt and dried blood, muttering to myself &#8220;I love it when a plan comes together&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://benjismith.net/index.php/2006/08/12/some-wistful-thoughts-and-a-decision/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Three More Ideas Hit the Chopping Block</title>
		<link>http://benjismith.net/index.php/2006/08/02/biz-three-more-ideas-hit-the-chopping-block/</link>
		<comments>http://benjismith.net/index.php/2006/08/02/biz-three-more-ideas-hit-the-chopping-block/#comments</comments>
		<pubDate>Wed, 02 Aug 2006 07:41:04 +0000</pubDate>
		<dc:creator>benji</dc:creator>
				<category><![CDATA[biz]]></category>

		<guid isPermaLink="false">http://benjismith.net/index.php/2006/08/02/biz-three-more-ideas-hit-the-chopping-block/</guid>
		<description><![CDATA[In last Monday&#8217;s post, I narrowed my list of twenty-eight business ideas down to only eight remaining contenders. By the end of this week, I hope to arrive at a final decision.
At this point, I have a certain affection for each of the eight surviving business ideas. But if I don&#8217;t eliminate seven of those [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://benjismith.net/index.php/2006/07/24/biz-ideas-the-first-twenty-losers/">last Monday&#8217;s post</a>, I narrowed my list of twenty-eight business ideas down to only eight remaining contenders. By the end of this week, I hope to arrive at a final decision.</p>
<p>At this point, I have a certain affection for each of the eight surviving business ideas. But if I don&#8217;t eliminate seven of those ideas, I&#8217;ll never get started on the really satisfying work of designing software, writing code, developing a marketing plan, and ultimately earning ridiculous sums of money.</p>
<p>So it&#8217;s time to make a few more cuts.</p>
<p><span id="more-64"></span>Today, I&#8217;m eliminating these three ideas:</p>
<ul>
<li><strong><a href="http://benjismith.net/index.php/2006/06/11/biz-idea-02-budget-buddy/">Idea #2: Budget Buddy</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/16/biz-idea-18-art-marketplace/">Idea #18: Art Marketplace</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">Idea #27: Lick This Chocolate</a></strong></li>
</ul>
<p>There was a certain appeal to the <strong>Budget Buddy</strong> idea. It would have been a simple implementation, my six-month timetable would have provided ample time for development and testing, and I could have spent some extra time developing a compelling set of aesthetically-pleasing charts and graphs.</p>
<p>But the market for this software would be somewhat elusive: People with organizational tendencies strong enough to compel the usage of budgeting software probably already have a budget-tracking methodology of their own (most likely a simple Excel spreadsheet).</p>
<p>Likewise, the organizationally-impaired among us are not very likely to use budgeting software to begin with, so the target demographic for this software would be the slim margin of people who possess the discipline to budget, but who lack the tools to do so.</p>
<p>And since simple budgets can be constructed with the humblest of tools (pad of paper + pen), I&#8217;d be nervous about trying to find (and sell to) such a narrowly-scoped market segment. Finally, the low price tag and the lack of repeat-sales opportunities (or upsell opportunities) makes this software quite a bit less compelling.</p>
<p>As for the <strong>Art Marketplace</strong> and <strong>Lick This Chocolate</strong> ideas&#8230;well&#8230;I&#8217;m really sad to see them go.</p>
<p>I&#8217;m an artist at heart, and I&#8217;d love to be somehow involved in an art-oriented business. But I&#8217;ve decided that these ideas just aren&#8217;t strong enough. Here are a few reasons:</p>
<ul>
<li>The Art Marketplace is really just an online store. I could customize an existing auction/ecommerce engine without writing much new code. But I think my skills as a software author are one of my most important assets, and I think I&#8217;d be better served by choosing an idea that makes better capitalization of those skills.</li>
<li>An online Art Marketplace would require major efforts in marketing, on two separate fronts: I&#8217;d need to create a strong marketing presence among art-producers as well as among art-consumers. I&#8217;m disconnected enough from the world of fine arts that I really don&#8217;t know how to market to either of those demographics (much less to <strong>both</strong> of them simultaneously).</li>
<li>The Lick This Chocolate business would require even less software customization than the Art Marketplace. And, as much as I&#8217;d love to be surrounded by sculptors, nude models, and mountains of chocolate, this idea would require me to hire a small team of talented employees. Since one of my primary objectives is to bootstrap this business from scratch, with very little budget for salaries or materials, it would be silly to choose a business model where I couldn&#8217;t personally contribute more to the day-to-day operations. If I were already an accomplished sculptor or chocolatier, this idea would be much more attractive.</li>
</ul>
<p>So those are today&#8217;s cuts.</p>
<p>All three of these ideas are still very attractive to me, for their own reasons, and maybe I&#8217;ll pursue them later. But, for now, the list has been trimmed down to just these five final contenders:</p>
<ul>
<li><strong><a href="http://benjismith.net/index.php/2006/06/10/biz-idea-01-webdelve-analytics/">Idea #1: WebDelve: Small Business Web Analytics</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/06/13/biz-idea-04-project-artifact-management/">Idea #4: Project Artifact Management</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/06/21/biz-idea-06-ai-coder/">Idea #6: AI-Coder.com</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/06/biz-idea-15-beltway-analytics/">Idea #15: Beltway Analytics</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">Idea #28: VaporTrade</a></strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://benjismith.net/index.php/2006/08/02/biz-three-more-ideas-hit-the-chopping-block/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Imitation is the Greatest form of Stealing</title>
		<link>http://benjismith.net/index.php/2006/08/01/biz-imitation-is-the-greatest-form-of-stealing/</link>
		<comments>http://benjismith.net/index.php/2006/08/01/biz-imitation-is-the-greatest-form-of-stealing/#comments</comments>
		<pubDate>Tue, 01 Aug 2006 19:04:48 +0000</pubDate>
		<dc:creator>benji</dc:creator>
				<category><![CDATA[biz]]></category>

		<guid isPermaLink="false">http://benjismith.net/index.php/2006/08/01/biz-imitation-is-the-greatest-form-of-stealing/</guid>
		<description><![CDATA[As you all know, a few weeks after I posted my Budget Buddy software idea, a software developer named Phil announced the release of his own web-based BudgetSimple product. Clearly, Phil&#8217;s software was developed as a direct response to my publicly-posted idea, and he managed to sneak his product onto the market before I could [...]]]></description>
			<content:encoded><![CDATA[<p>As you all know, a few weeks after I posted my <a href="http://benjismith.net/index.php/2006/06/11/biz-idea-02-budget-buddy/">Budget Buddy</a> software idea, a software developer named Phil <a href="http://seartech.blogspot.com/2006/07/well-id-been-going-back-and-forth-on.html">announced</a> the release of his own web-based <a href="http://budgetsimple.com">BudgetSimple</a> product. Clearly, Phil&#8217;s software was developed as a direct response to my publicly-posted idea, and he managed to sneak his product onto the market before I could develop my own version of it.</p>
<p>(Just kidding, Phil :)</p>
<p>Now, I&#8217;ve discovered that the same thing has happened again.</p>
<p><span id="more-63"></span>On July 4th, I wrote about an idea for a role-playing game called <a href="http://benjismith.net/index.php/2006/07/04/biz-idea-13-assassinate-game/">Assassinate!</a> Then, over the course of the next seven days, someone in Scotland obviously read my blog, started a company (called <a href="http://www.outerlight.com">Outer Light</a>) and developed <a href="http://www.theshiponline.com">The Ship</a>, which was publicly released on July 12.</p>
<p>According to a <a href="http://www.nytimes.com/2006/07/27/technology/27game.html">July 27 article</a> in the New York Times, this &#8220;ingenious&#8221; game is &#8220;essentially a virtual version of real-life games like Assassin&#8221;. Here&#8217;s how Times writer Charles Herold describes the opening scenes of The Ship:</p>
<div style="margin:20px"><em>The first thing I do when I arrive in my cabin is search the closets. I take a hat, a pair of glasses and a straight razor, which I put in my pocket. Then I walk out into the luxury cruise ship’s corridor, where men and women elegantly dressed in 1920’s garb walk past Art Deco fixtures, eyeing me suspiciously. I grab a fire ax off the wall and put it under my jacket.</p>
<p>I receive a message with my quarry’s name and most recent location. She’s one deck below me in the bar, so I hurry down the stairs, carefully looking at each passer-by. A woman in a ball gown pulls out a flare gun and is about to fire it at a man in a top hat when a ship security officer grabs her. The top-hatted man, realizing the woman knows his face and will be back, takes off his hat and puts on a new suit and an eye patch.</p>
<p>My quarry has left the bar, but a new message says she’s out on deck. I hurry outside. Is that her? I move closer. It is her. I walk forward, trying to give the impression that I’m looking elsewhere so she doesn’t run, but as I’m about to pull out my ax, a man pulls out a steak knife and, before I can even react, stabs me to death.</em></div>
<p>Good grief. That sounds startlingly familiar.</p>
<p>Compare it with my own description of the Assassinate! game:</p>
<div style="margin:20px"><em>You wake up at a sleazy motel in downtown Chicago. &#8230; The room is bare. There are no sheets on the mattress. There&#8217;s a cracked mirror on the wall, above a small sink. On the dresser is a small dagger, with a three-inch blade. Next to the dagger is an envelope containing $500 in cash. Written on the outside of the envelope are the words &#8220;KILL: EDWARD EPSTEIN&#8221;.</p>
<p>At this point, you start wandering around downtown Chicago, searching through the streets, the hotels, the cafes, and the bowling alleys for a guy named Edward Epstein. You talk to bums, drug dealers, waitresses, cops, newspaper reporters, and whoever else you meet on the streets. When you find Edward Epstein, you put a knife in him.</p>
<p>As compensation for your services, you’re paid $5000 and given a new assignment: Nancy Reynolds.</p>
<p>Of course, Edward Epstein and Nancy Reynolds are two other players in the game. They’re also wandering around downtown Chicago. Both of them have been given a weapon and an envelope full of cash. Maybe one of those envelopes has your name on it.</em></div>
<p>Obviously, the people at Outer Light studios completely copied my idea. And understandably, I&#8217;m a bit shaken by the whole thing.</p>
<p>But I&#8217;ve got to give those guys credit for developing and marketing an entire game: the characters, the storyline, the graphics, the client-server software and everything, all within a single week. I&#8217;m so impressed, in fact, that I&#8217;m willing to forgive the blatantly obvious fact that they stole my idea.</p>
<p>Seriously though&#8230;</p>
<p>It&#8217;s actually very validating to see that these ideas are being simultaneously developed by other authors. It gives me the feeling that my intuitions about the software market are correct. Or at least, that my intuitions are congruent with the intuitions of other software developers throughout the world. If I&#8217;m hopelessly misguided, at least I&#8217;m in good company.</p>
]]></content:encoded>
			<wfw:commentRss>http://benjismith.net/index.php/2006/08/01/biz-imitation-is-the-greatest-form-of-stealing/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Biz Ideas: The First Twenty Losers</title>
		<link>http://benjismith.net/index.php/2006/07/24/biz-ideas-the-first-twenty-losers/</link>
		<comments>http://benjismith.net/index.php/2006/07/24/biz-ideas-the-first-twenty-losers/#comments</comments>
		<pubDate>Tue, 25 Jul 2006 05:08:42 +0000</pubDate>
		<dc:creator>benji</dc:creator>
				<category><![CDATA[biz]]></category>

		<guid isPermaLink="false">http://benjismith.net/index.php/2006/07/24/biz-ideas-the-first-twenty-losers/</guid>
		<description><![CDATA[The time has come, my friends.
It&#8217;s been fun lollygagging around, lazily daydreaming about business ideas. But now it&#8217;s time to start throwing the dumb, unworkable ideas into the fire.
I won&#8217;t quiiiite make a final decision today, but I am going to narrow down my choices significantly, crossing twenty of the twenty-eight ideas off my list. [...]]]></description>
			<content:encoded><![CDATA[<p>The time has come, my friends.</p>
<p>It&#8217;s been fun lollygagging around, lazily <a href="http://benjismith.net/index.php/2006/06/08/30-days-30-ideas/">daydreaming about business ideas</a>. But now it&#8217;s time to start throwing the dumb, unworkable ideas into the fire.</p>
<p>I won&#8217;t quiiiite make a final decision today, but I am going to narrow down my choices significantly, crossing twenty of the twenty-eight ideas off my list. In doing so, I&#8217;ll provide some broad reasons why I&#8217;m eliminating various groups of ideas.</p>
<p>And when all the eliminated ideas have been laid out on the table, we&#8217;ll take a brief look at the eight remaining ideas. And then I&#8217;ll try to clear my head, preparing myself for the increasingly difficult task of killing my remaining babies, until only the winning idea remains.</p>
<p><span id="more-62"></span>But, what are we waiting for? There&#8217;s a lot of work to do.</p>
<p>Let me present you with the first category of losers:</p>
<p><strong>The Problem Has Already Been Solved</strong></p>
<p>As I&#8217;ve discovered from many of my informative readers, some of these ideas have already been done (and done extremely well) by other software developers. In many cases, the existing products have been on the market for years. They have mature feature-sets and an established clientele. In most of those cases, I&#8217;m going to choose not to compete.</p>
<p>At least, not right now. Not with this product. In the future, when my software company consists of more than just me, it might make more sense to deliberately engage an established competitor with a mature product. But not today.</p>
<p>In some cases, the exact software that I had in mind doesn&#8217;t exist, but the market has compensated in some other way, solving the problem through the introduction of other products or services.</p>
<p>One way or the other, these ideas all fall into the &#8220;It&#8217;s Already Been Solved&#8221; category:</p>
<ul>
<li><strong><a href="http://benjismith.net/index.php/2006/06/12/biz-idea-03-simple-mail-server/">Idea #3: A Simpler Email Server</strong></a>
<p>Hosted Gmail and Zimbra, as well as Exchange (and a bunch of other friendly Windows email servers)</li>
<li><strong><a href="http://benjismith.net/index.php/2006/06/20/biz-idea-05-tivo-for-audio-streams/">Idea #5: TiVo For Audio Streams</strong></a>
<p>The ubiquity of Podcasts pretty much eliminates the market potential here.</li>
<li><strong><a href="http://benjismith.net/index.php/2006/06/23/biz-idea-08-dotjnet-bytecode-translator/">Idea #8: DotJNet Bytecode Translator</strong></a>
<p>Between the <a href="http://www.ikvm.net/">IKVM Project</a> and J#, there&#8217;s not much more compelling functionality I could offer.</li>
<li><strong><a href="http://benjismith.net/index.php/2006/06/30/biz-idea-09-holdem-simulator/">Idea #9: Holdem Simulator</strong></a>
<p><a href="http://www.calculatem.com">CalculateEm</a> offers similar functionality to my application, but it&#8217;s already capable of screen-scraping more than 100 different poker clients. Implementing 100 different screen scrapers sounds really tedious to me, so I don&#8217;t want to compete on those grounds. As far as a full-featured simulator/bot-construction kit, <a href="http://winholdem.net">WinHoldEm</a> is already very popular. I think my software is superior (in nearly every way), but that&#8217;s not really a market niche I&#8217;m interested in pursuing.</li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/04/biz-idea-14-instant-photo-sharing/">Idea #14: Instant Photo Sharing</strong></a>
<p>When I saw the software and services currently being offered by <a href="http://flickr.com">Flickr</a> I knew they had already implemented my vision for this software. Anything I implemented now would just be an attempt to copy their already-significant accomplishments.</li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/16/biz-idea-19-my-blue-country/">Idea #19: My Blue Country</strong></a>
<p>Evidently, the national political parties and PACs already have the distribution-of-campaign-funds problem pretty much solved.</li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/12/biz-idea-16-incessant-pestering/">Idea #16: Incessant Pestering</strong></a>
<p>Need I mention the competitors? There are a billion of them, and my differentiating points are very slight, at best.</li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">Idea #21: JavaScript Obfuscator</strong></a>
<p>There are already many seemingly-capable JavaScript obfuscators on the market (and they generally only sell for $15 or $20). I don&#8217;t know if they perform their obfuscations directly on the Abstract Syntax Tree. But, honestly, who cares?</li>
</ul>
<p><strong>There&#8217;s Just Not Enough Market Potential</strong></p>
<p>As much as I like these ideas, I just don&#8217;t think it would be possible to make enough money to justify the effort.</p>
<ul>
<li><strong><a href="http://benjismith.net/index.php/2006/07/01/biz-idea-10-simd-java/">Idea #10: SIMD for Java</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/03/biz-idea-11-desktop-workspaces/">Idea #11: Desktop Workspaces</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">Idea #23: Quick DSLs for Eclipse</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">Idea #26: Anonym Disambiguation</a></strong></li>
</ul>
<p>In general, I think these would make cool open source projects (in particular the SIMD for Java, or Eclipse DSL projects) or personal research projects (like the Anonym Disambiguation website), but I think building a successful business from any of them would be a long shot.</p>
<p><strong>They Just Don&#8217;t Excite Me</strong></p>
<p>I&#8217;m going to be committing myself to this project for a long time, so it would be a mistake to get engaged in a project that doesn&#8217;t really stir my passions. And, although I think these could all be valid products, I&#8217;ll leave them for someone else to implement. Someone who can get really jazzed about household inventories (sorry mom!!!) or a search engine for product data &#038; reviews:</p>
<ul>
<li><strong><a href="http://benjismith.net/index.php/2006/07/03/biz-idea-12-household-inventory-database/">Idea #12: Household Inventory Database</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">Idea #20: Desktop Analytics</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">Idea #22: Copyright Infringement Finder</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">Idea #24: Product Info Search</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">Idea #25: MicroISV GoldRush</a></strong></li>
</ul>
<p><strong>Insufficient Domain Knowledge</strong></p>
<p>I these are all very strong ideas, but they&#8217;re probably not quite right for me:</p>
<ul>
<li><strong><a href="http://benjismith.net/index.php/2006/06/22/biz-idea-07-retail-analytics/">Idea #7: Retail Analytics</a></strong>
<p>I have very little experience in the world of retail sales (either electronically or in a physical store). Even though I could implement the analytics, I think I&#8217;d be at a disadvantage during requirements-gathering and marketing. Of course, I could overcome those weaknesses (especially with a few more people on my team), but for this first product, I&#8217;d rather focus on something where my own current level of domain knowledge will suffice.</li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/04/biz-idea-13-assassinate-game/">Idea #13: Assassinate!</a></strong>
<p>God, it sounds like fun, doesn&#8217;t it? Unfortunately, I have nearly zero experience with games, either in building them or (probably more importantly) in playing them. Maybe this&#8217;ll be a good project for later, but I think I&#8217;d need serious help from actual gamers, and at the moment, I&#8217;m just a one-man-show.</li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/15/biz-idea-17-composers-workbench/">Idea #17: Composer’s Workbench</a></strong>
<p>As much as I&#8217;ve daydreamed to the contrary, I&#8217;ve never been anything but a wannabe musician. I&#8217;d love to <strong><em>use</em></strong> software like this, but I&#8217;d be deluding myself to believe that I&#8217;m competent to <strong><em>build</em></strong> software like this myself right now.</li>
</ul>
<p><strong>The Finalists</strong></p>
<p>That makes twenty ideas eliminated so far.</p>
<p>Leaving eight ideas that are still under consideration (in no particular order):</p>
<ul>
<li><strong><a href="http://benjismith.net/index.php/2006/06/10/biz-idea-01-webdelve-analytics/">Idea #1: WebDelve: Small Business Web Analytics</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/06/11/biz-idea-02-budget-buddy/">Idea #2: Budget Buddy</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/06/13/biz-idea-04-project-artifact-management/">Idea #4: Project Artifact Management</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/06/21/biz-idea-06-ai-coder/">Idea #6: AI-Coder.com</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/06/biz-idea-15-beltway-analytics/">Idea #15: Beltway Analytics</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/16/biz-idea-18-art-marketplace/">Idea #18: Art Marketplace</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">Idea #27: Lick This Chocolate</a></strong></li>
<li><strong><a href="http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/">Idea #28: VaporTrade</a></strong></li>
</ul>
<p>This is where it gets really tricky.</p>
<p>I&#8217;m going to have a tough time deciding which of these exciting ideas excites me the most. Which of these technically challenging projects will be technically challenging enough to satisfy my interests, while being straightforward enough to implement (on my own) within a six month time frame?</p>
<p>Which of these marketable ideas are truly marketable enough to meet my revenue requirements? For me to seriously consider one of these ideas, it needs to have to potential to produce (at minimum) $250,000 in annual revenue within a few years. Otherwise, it&#8217;s probably not the kind of business that can substantially grow. And, while I like the idea of a one-man software company, I&#8217;m more interested in building a business with a bit more growth potential.</p>
<p>So, over the coming days, I&#8217;m going to continue chewing over these ideas. I&#8217;ll try to eliminate at least one idea every day (though I&#8217;ll be out of town again this weekend, so I probably won&#8217;t finish the elimination process until late next week).</p>
<p>Please continue contributing your critique.</p>
<p>I&#8217;ve really appreciated everyone&#8217;s feedback so far in this process. Many of the ideas I&#8217;ve posted have grown from the suggestions and comments people have posted to the blog entries. And many of my conclusions regarding the software marketplace would have been woefully uninformed if not for the continued participation of my readers.</p>
<p>So, thanks for sticking around this long.</p>
]]></content:encoded>
			<wfw:commentRss>http://benjismith.net/index.php/2006/07/24/biz-ideas-the-first-twenty-losers/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Okay, Nine More Ideas</title>
		<link>http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/</link>
		<comments>http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/#comments</comments>
		<pubDate>Fri, 21 Jul 2006 06:43:29 +0000</pubDate>
		<dc:creator>benji</dc:creator>
				<category><![CDATA[biz]]></category>

		<guid isPermaLink="false">http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/</guid>
		<description><![CDATA[I&#8217;ve noticed something remarkable over the last month or so:
Ideas breed more ideas.
Thinking about these ideas, and writing about them, is addictive in a way that reminds me a lot about playing Tetris. (Yeah, yeah, yeah. I&#8217;ll get back to work in a few minutes. I just want to finish up this one level first.)
Once [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve noticed something remarkable over the last month or so:</p>
<p>Ideas breed more ideas.</p>
<p>Thinking about these ideas, and writing about them, is addictive in a way that reminds me a lot about playing Tetris. <em>(Yeah, yeah, yeah. I&#8217;ll get back to work in a few minutes. I just want to finish up this <strong>one level</strong> first.)</em></p>
<p>Once I started brainstorming at the beginning of the <a href="http://benjismith.net/index.php/2006/06/08/30-days-30-ideas/">30-days-30-ideas</a> project, it was difficult to turn off the spigot. The ideas came to me faster than I could write about them. So, in addition to the nineteen ideas that I&#8217;ve actually published here over the last month or so, I&#8217;ve also jotted down a set of notes for an additional dozen or so software and business ideas.</p>
<p>The only reason these ideas didn&#8217;t also get published here is because I spent so much time doing the analysis and writing the blog posts for each idea.</p>
<p>At this point, I&#8217;m not willing to let the idea-generation process further delay the decision-making process. I&#8217;m anxious to start designing some software. So, tomorrow, I&#8217;ll start crossing ideas off the list, either because I think the marketing obstacles or the technical challenges or just too high. Or maybe because I&#8217;m not very passionate about a particular idea.</p>
<p>But before I dive into the decision making process, I&#8217;ll publish my notes for some of those other dozen or so ideas. Let me give you fair warning, though: some of the ideas are only half-baked. I haven&#8217;t devoted nearly the same amount of time analyzing these ideas as I did with the other nineteen.</p>
<p><span id="more-61"></span><strong>Idea #20: Desktop Analytics</strong></p>
<p>Google and Omniture and AWStats provide detailed information about how people use your website.</p>
<p>But wouldn&#8217;t it be cool if you could get similar types of statistical reports about the usage of your own computer? How much time did you spend on the internet? How much time did you spend using Excel? How many bytes of internet traffic did you use? How heavily-loaded is your CPU?</p>
<p>How many google searches do you do every day? How effective are your web searches? (What ratio of your page views are on search-engine pages, verses actual content pages?)</p>
<p>And wouldn&#8217;t it be cool to see a detailed, day-by-day chart of your desktop usage patterns?</p>
<p><strong>Idea #21: JavaScript Obfuscator</strong></p>
<p>Back when I started working on my WebDelve software, it occurred to me that it would be nice to automate the obfuscation of the JavaScript driving the collection-tier of the application.</p>
<p>I had been using a Perl script to perform regex replacements on the JavaScript, getting rid of comments, obscuring variable names, and removing unnecessary whitespace. The resultant JavaScript code was not only well-obscured, but also much more compact than the original code.</p>
<p>But the obfuscation was pretty fragile. The Perl script didn&#8217;t really know how to parse JavaScript, and I had to be careful not to let the obfuscator break the code.</p>
<p>Then it occurred to me that I could use the Mozilla JavaScript engine (the Java implementation is called Rhino) to perform obfuscation at a much more semantic level. I could actually create an abstract syntax tree from a snippet of JavaScript, and then I could perform my obfuscations directly on the parse tree, subsequently serializing the parse tree back into JavaScript code.</p>
<p>I downloaded the Rhino code and tinkered with it enough to think that it would be pretty simple to write a really solid obfuscator.</p>
<p><strong>Idea #22: Copyright Infringement Finder</strong></p>
<p>A friend of mine is a professional photographer who works in Hollywood, taking pictures of celebrities and models. Up until last year, he kept a comprehensive portfolio on his website.</p>
<p>But it was a constant battle for him to find and fight the many people who made digital prints of his images and sold them on eBay or used them on their own websites, without permission. Eventually, he gave up the fight, and took most of his portfolio offline.</p>
<p>I think there&#8217;s a big market for an online service where artists (and other types of content owners) could register their images and writings and music. The software would create a content fingerprints and then scour the internet, looking for unauthorized usage. When the software found offenders, the people hosting the unauthorized content would be contacted with requests to either remove the content or apply for redistribution rights.</p>
<p>I think content producers would be thrilled with such a service. But the internet is a big place, and infringements would be hard to find.</p>
<p><strong>Idea #23: Quick DSLs for Eclipse</strong></p>
<p>Recently, at my actual job, I developed a domain-specific programming language that customers and sales engineers can use to customize the company&#8217;s main product.</p>
<p>I developed an EBNF grammar and wrote a compiler. It was a fun project.</p>
<p>Now, it&#8217;d be really nice to have an Eclipse plug-in for the new language. But I&#8217;ve looked into it, and it looks like a pretty complex process.</p>
<p>Why?</p>
<p>The grammar and compiler are already there. It should be possible to produce a basic plug-in (with syntax highlighting, hyperlink navigation, and rudimentary refactoring) without having to do anything else at all.</p>
<p>DSLs are becoming increasingly common, and it&#8217;d be nice if there was a fast, easy, standard methodology for creating IDE customizations for those new languages.</p>
<p><strong>Idea #24: Product Info Search</strong></p>
<p>So you&#8217;re thinking about buying a new laptop, and you want to know which brands have the most durable monitors. Or maybe you&#8217;re wondering which different brands of digital SLR cameras come with multi-point auto-focus capabilities.</p>
<p>Searching with Google can be frustrating, because the search results are filled with computer stores and camera shops. It&#8217;s usually a chore to weed out the actual product reviews, and it&#8217;s often difficult to find the manufacturer&#8217;s detailed product information.</p>
<p>A search engine that deliberately eliminated pages from online retailers (or at least, confined retailers to a distinct part of the search UI) would be extremely helpful.</p>
<p><strong>Idea #25: MicroISV GoldRush</strong></p>
<p>They say that the people who really profited from the original California gold rush were the people selling shovels and pickaxes. Very few prospectors ever struck it rich panning for gold, but the people selling the pans made a killing, whether or not anyone found any actual gold.</p>
<p>I&#8217;m sure the same is true right now, in the midst of an explosion of small software companies. Certainly, very few of the one-man software companies will ever become multi-million dollar corporations (and, to be fair, many solo software developers go solo precisely because they like the freedom and flexibility of operating a very small business). But the point I&#8217;m trying to make is that there&#8217;s probably plenty of money to be made by developing software tailored to the prospectors in the MicroISV gold rush.</p>
<p>This is only a vague idea, but I&#8217;m kind of envisioning a single application to unify all of the tasks of a tiny, one-man software shop:</p>
<ul>
<li>Simple logging (and progress reporting) for features and bugs</li>
<li>Simple CRM, for keeping track of client info and for logging communications with various clients</li>
<li>Basic income/expense tracking</li>
<li>Production and management of client invoices</li>
</ul>
<p>There are probably a few more features that would need to be included, in order to make this a compelling piece of software for a MicroISV owner, but I think there&#8217;s a kernel of a useful idea there.</p>
<p><strong>Idea #26: Anonym Disambiguation</strong></p>
<p>Have you ever searched for an old friend online?</p>
<p>Maybe one of your old high school buddies happens to also be a guy named &#8220;Benji Smith&#8221;.</p>
<p>Maybe your Benji Smith is an extremely successful real estate agent in South Carolina, who owned the benjismith.com domain name until April 2005.</p>
<p>Maybe the Benji Smith you know is actually a ballroom dance instructor in Tennessee, whose buddy Matt Pickwell bought the benjismith.com domain name for him in May 2005, the nanosecond it became available again (after the other Benji Smith let it expire).</p>
<p>Or maybe you know Benji Smith (the heavyweight boxer in New Jersey) or Benji Smith (the high school cricket player in South Africa).</p>
<p>But wouldn&#8217;t it be convenient if a search engine could analyze all of the instances of &#8220;Benji Smith&#8221; out there and use a set of similarity algorithms to cluster all that Benji Smith related information into nodes corresponding with each of the actual Benji Smith individuals out there?</p>
<p>But it&#8217;s even trickier than that, because people refer to themselves on the internet using all sorts of different anonyms.</p>
<p>Suppose you met someone online through a dating website who calls herself <em>flowerjane77</em>. In her Match.com profile, maybe she used a unique phrase to describe herself (&#8221;i&#8217;m a devout follower of nothingism&#8221;). Maybe she also has a MySpace profile, under a different username (<em>inanejane</em>), where she also mentions her (&#8221;profound unfaith in the principles of nothingism&#8221;). Based on the linguistic similarities between those two documents, it&#8217;s possible to create a weak association between the anonyms &#8220;flowerjane77&#8243; and &#8220;inanejane&#8221;.</p>
<p>I think a specialized search engine, focused on performing anonym disambiguation of internet identities, could be very popular. Particularly if its primary objective was to analyze and associate the identities represented across hundreds of different dating and social networking websites.</p>
<p><strong>Idea #27: Lick This Chocolate</strong></p>
<p>Okay, fair warning: this isn&#8217;t a software idea at all. But this idea has been rattling around in my head for many years, and I think it could be a successful business.</p>
<p>I&#8217;d like to recruit a small team of college art students to do create original sculptures, with live nude models as subjects, using blocks of high-quality dark chocolate as a sculpting material.</p>
<p>It&#8217;d be like a erotic version of the chocolate Easter bunny, and I think it&#8217;d make a great gift idea.</p>
<p>An ex-girlfriend of mine from a few years ago was expert in making the most incredible chocolates, laced with cayenne pepper and other spices, and I really like the idea of using a similar recipe for these chocolates.</p>
<p>Hot. Spicy. Nude. Chocolates.</p>
<p>The more expensive pieces would be carved directly in chocolate by the artists. Less expensive pieces would be limited-edition reproductions of original sculptures by the same artists.</p>
<p><strong>Idea #28: VaporTrade</strong></p>
<p>Waaaaay back in <a href="http://benjismith.net/index.php/2006/06/10/biz-idea-01-webdelve-analytics/">my first published software idea</a>, I briefly mentioned my experience with stock-market technical analysis. Back in 1999 and 2000, I developed some software for performing in-depth analysis of price movement patterns on historical stock market data.</p>
<p>For example, I might ask the software to find all instances (over the last fifteen years) where a stock&#8217;s closing price increased by at least 2% each day, for five consecutive trading days, while the trading volume simultaneously decreased by at least 5% each day. Then, with all of those instances, I might filter out all the securities whose prices were less than $10 or more than $10, or where the trading volume averaged less than a million shares per day. Finally, I could ask the software to create clusters, based on the price movement patterns of the securities over the next ten trading days. Which ones decreased in price by more than 5%? Which ones increased in price by at least twenty-five cents?</p>
<p>At the core of the software was an extremely fast analytics engine capable of stringing together arbitrarily complex formulae. I wrote a formula parser to read strings like this:</p>
<p><code>ROLLING_MAX(5, MOVING_AVERAGE(3, (HIGH(MSFT) - CLOSE(MSFT)))</code></p>
<p>In English, that&#8217;s a formula for &#8220;a 5-day rolling maximum value of a 3-day moving average of the daily Microsoft trading range&#8221;.</p>
<p>The formula evaluator compiled these formulas into an internal representation that allowed for lots of cool optimizations: prefetching of data that would likely be used, caching of values from intermediate calculations, short-circuiting to eliminate unnecessary calculations. And, as a bonus, the more complex the formula, the more likely it would be to benefit significantly from the optimizations. Even back then, with an ancient computer (and an even more ancient JVM), I was able to analyze more than 33 million data points (15 years of data, 250 days per year, for about 9000 securities) in about twenty minutes, calculating a few dozen different statistical indicators on each and every security.</p>
<p>I was very happy with the software. And I used it myself, with quite a bit of success, earning double-digit percentage returns on my investment every month. Until spring of 2000, when the market tanked and I lost most of my previous gains.</p>
<p>The software has been sitting quietly in my personal source code repository for the last five years, just waiting for me to dust it off again and do something interesting with it. The mathematics (and the parser, and the optimizer) made for very fun programming, and I&#8217;ve been itching for something challenging like that.</p>
<p>Sometimes I wonder whether it would make a good product. In its current state, it&#8217;s just a command-line application.</p>
<p>No charts.</p>
<p>No colors.</p>
<p>No trendlines or candlesticks or bollinger bands.</p>
<p>It consumes an XML file describing the formulae and the hypotheses that use those formulae. Then it connects to the database, retrieves the financial data, evaluates all of the formulae, and produces statistical reports (in CSV format, for import into Excel) based on the success and failure of the hypotheses. There is no GUI at all.</p>
<p>And one of the primary strengths of the application is that it was written just for me: a Java programmer. I didn&#8217;t have to simplify it, or make it intuitive for non-programmers. It&#8217;s intuitive for me, and that&#8217;s the only thing that has ever mattered. It&#8217;s easy for me to extend the software to perform new kinds of analysis just by writing new classes that implement a standard interface. But the software would be pretty useless for anyone who wasn&#8217;t comfortable authoring Java and XML files.</p>
<p>So I wonder whether it&#8217;d be worth the effort to wrap it all up in a pretty GUI and make the formula &#038; hypothesis languages a little bit more accessible to ordinary humans.</p>
<p>But then what would differentiate it from the other zillions of stock market back-testing platforms?</p>
<p>To a certain extent, I think it would be better to market it as the &#8220;Stock Market Analysis Tool for Expert Programmers&#8221; because I&#8217;ve never heard of any other financial analysis tool that wasn&#8217;t specifically written for people with programming experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://benjismith.net/index.php/2006/07/21/biz-okay-nine-more-ideas/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Idea #19: My Blue Country</title>
		<link>http://benjismith.net/index.php/2006/07/16/biz-idea-19-my-blue-country/</link>
		<comments>http://benjismith.net/index.php/2006/07/16/biz-idea-19-my-blue-country/#comments</comments>
		<pubDate>Sun, 16 Jul 2006 19:13:19 +0000</pubDate>
		<dc:creator>benji</dc:creator>
				<category><![CDATA[biz]]></category>

		<guid isPermaLink="false">http://benjismith.net/index.php/2006/07/16/biz-idea-19-my-blue-country/</guid>
		<description><![CDATA[I live in downtown Salt Lake City, Utah.
I love the city. I love the people. I love having the mountains just a stone&#8217;s throw away. During the winter months, I go snowboarding every week with six or seven people from my office. We manage to get a solid half-day in on the slopes, and still [...]]]></description>
			<content:encoded><![CDATA[<p>I live in downtown Salt Lake City, Utah.</p>
<p>I love the city. I love the people. I love having the mountains just a stone&#8217;s throw away. During the winter months, I go snowboarding every week with six or seven people from my office. We manage to get a solid half-day in on the slopes, and still get back to our desks by 1 PM to finish off the rest of the work day.</p>
<p>But living in Utah has its down-sides. For starters, I consider myself pretty politically liberal, so living in the most conservative of all the fifty states often makes me feel like I&#8217;m not really participating in the political process. I have a solid track record, during every single election, of picking the losers.</p>
<p><span id="more-48"></span>Of course, I think I&#8217;d still be frustrated if I lived somewhere like Massachusetts. My vote still wouldn&#8217;t make much difference (though it&#8217;d be nice to be on the winning side of an election, for a change).</p>
<p>Instead, I&#8217;d much rather be casting my vote in a swing state, like New Hampshire or Florida or Nebraska. I&#8217;d rather be helping unseat a vulnerable incumbent than vote helplessly against Utah Senator Orrin Hatch. Again.</p>
<p>For example, if I could re-allocate my congressional votes this fall to any other state in the Union, I might choose Pennsylvania. In that state, Senator Rick Santorum (R) has his job cut out for him. He only has a 36% approval rating, and he only won re-election in 2000 by a slim majority (52%). Or, if I had a choice, I might choose to vote in Rhode Island, where Senator Lincoln Chafee (R) has only a 49% approval rating. Chaffe won the 2000 election with 57% of the votes. Political analysts are currently calling it a tossup, but with enough support from district-hoppers like me, a Democratic candidate might be able to oust Chaffee.</p>
<p>But why should I be able to vote in Pennsylvania or Rhode Island? After all, I have my own representation here in Utah. Shouldn&#8217;t I be more concerned with convincing<br />
Senators Hatch and Bennett to better represent my views?</p>
<p>I don&#8217;t think so.</p>
<p>The Republican majority is so entrenched in Utah that those senators have no reason to give consideration to opposition opinions. At this point, the only way to have my opinions reach Washington DC would be for me to move to another state.</p>
<p>Or maybe there&#8217;s another way.</p>
<p>Elections are won and lost, to a certain extent, with money. The candidates with the biggest campaign budgets tend to win the most elections. And I, for one, would be happy to vote with my wallet, if I thought I could make a difference at the national level.</p>
<p>So my idea is to develop a website where sad, blue, red-state residents like myself could make campaign contributions to unnamed candidates in as-yet-undetermined states. Then, the software would evaluate all available statistics for each district, and each race, using that information to allocate funds to the campaign budgets of highly contested races, making proxy campaign contributions in the names of the original contributors.</p>
<p>&#8220;But Wait!!&#8221; I can hear you saying. &#8220;This isn&#8217;t a for-profit business idea. How could this possibly be considered &#8217;starting a software business&#8217;?&#8221;</p>
<p>And I&#8217;ll concede that you&#8217;ve got an excellent point there. In order to make this work, I&#8217;d publish (very prominently) the fact that I&#8217;d retain 3% of the contributions for administration costs. But even with those fees in place (and I don&#8217;t think I&#8217;d be willing to take more than 3%), it would be difficult for me to earn a living at it. In order for me to meet my regular $250,000 personal gross revenue target, I&#8217;d need to oversee $8.3 million in donations, or $160,000 per week.</p>
<p>That&#8217;s a lot of cash.</p>
<p>It might be possible to drum up that kind of support in an election year like this one, where there&#8217;s so much at stake for Democrats. But it would be much more difficult during a less-intense election year. And it would be damn near impossible during those pesky oddly-numbered years when nobody gets kicked out of congress.</p>
<p>So, even if you <em><strong>could</strong></em> call this a business idea, I&#8217;m sure it doesn&#8217;t have the consistency or the revenue potential that I&#8217;m looking for, personally.</p>
<p>But it sure would be nice. Some of us would like to feel like part of a representative democracy again.</p>
<p>&#8230;</p>
<p><em>This is the nineteenth of <a href="http://benjismith.net/index.php/2006/06/08/30-days-30-ideas/">30 business ideas</a> that I’ll be writing about over the course of 30 days. Or maybe it&#8217;ll only end up being <a href="http://benjismith.net/index.php/2006/07/11/biz-idea-only-fifteen/">19 ideas in 36 days</a>. We&#8217;ll see. Either way, one of these ideas will become a product over the next six months, and the foundation of my new software business.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://benjismith.net/index.php/2006/07/16/biz-idea-19-my-blue-country/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

