Okay, Nine More Ideas
I’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’ll get back to work in a few minutes. I just want to finish up this one level first.)
Once I started brainstorming at the beginning of the 30-days-30-ideas 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’ve actually published here over the last month or so, I’ve also jotted down a set of notes for an additional dozen or so software and business ideas.
The only reason these ideas didn’t also get published here is because I spent so much time doing the analysis and writing the blog posts for each idea.
At this point, I’m not willing to let the idea-generation process further delay the decision-making process. I’m anxious to start designing some software. So, tomorrow, I’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’m not very passionate about a particular idea.
But before I dive into the decision making process, I’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’t devoted nearly the same amount of time analyzing these ideas as I did with the other nineteen.
Google and Omniture and AWStats provide detailed information about how people use your website.
But wouldn’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?
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?)
And wouldn’t it be cool to see a detailed, day-by-day chart of your desktop usage patterns?
Idea #21: JavaScript Obfuscator
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.
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.
But the obfuscation was pretty fragile. The Perl script didn’t really know how to parse JavaScript, and I had to be careful not to let the obfuscator break the code.
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.
I downloaded the Rhino code and tinkered with it enough to think that it would be pretty simple to write a really solid obfuscator.
Idea #22: Copyright Infringement Finder
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.
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.
I think there’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.
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.
Idea #23: Quick DSLs for Eclipse
Recently, at my actual job, I developed a domain-specific programming language that customers and sales engineers can use to customize the company’s main product.
I developed an EBNF grammar and wrote a compiler. It was a fun project.
Now, it’d be really nice to have an Eclipse plug-in for the new language. But I’ve looked into it, and it looks like a pretty complex process.
Why?
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.
DSLs are becoming increasingly common, and it’d be nice if there was a fast, easy, standard methodology for creating IDE customizations for those new languages.
Idea #24: Product Info Search
So you’re thinking about buying a new laptop, and you want to know which brands have the most durable monitors. Or maybe you’re wondering which different brands of digital SLR cameras come with multi-point auto-focus capabilities.
Searching with Google can be frustrating, because the search results are filled with computer stores and camera shops. It’s usually a chore to weed out the actual product reviews, and it’s often difficult to find the manufacturer’s detailed product information.
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.
Idea #25: MicroISV GoldRush
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.
I’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’m trying to make is that there’s probably plenty of money to be made by developing software tailored to the prospectors in the MicroISV gold rush.
This is only a vague idea, but I’m kind of envisioning a single application to unify all of the tasks of a tiny, one-man software shop:
- Simple logging (and progress reporting) for features and bugs
- Simple CRM, for keeping track of client info and for logging communications with various clients
- Basic income/expense tracking
- Production and management of client invoices
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’s a kernel of a useful idea there.
Idea #26: Anonym Disambiguation
Have you ever searched for an old friend online?
Maybe one of your old high school buddies happens to also be a guy named “Benji Smith”.
Maybe your Benji Smith is an extremely successful real estate agent in South Carolina, who owned the benjismith.com domain name until April 2005.
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).
Or maybe you know Benji Smith (the heavyweight boxer in New Jersey) or Benji Smith (the high school cricket player in South Africa).
But wouldn’t it be convenient if a search engine could analyze all of the instances of “Benji Smith” 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?
But it’s even trickier than that, because people refer to themselves on the internet using all sorts of different anonyms.
Suppose you met someone online through a dating website who calls herself flowerjane77. In her Match.com profile, maybe she used a unique phrase to describe herself (”i’m a devout follower of nothingism”). Maybe she also has a MySpace profile, under a different username (inanejane), where she also mentions her (”profound unfaith in the principles of nothingism”). Based on the linguistic similarities between those two documents, it’s possible to create a weak association between the anonyms “flowerjane77″ and “inanejane”.
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.
Idea #27: Lick This Chocolate
Okay, fair warning: this isn’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.
I’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.
It’d be like a erotic version of the chocolate Easter bunny, and I think it’d make a great gift idea.
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.
Hot. Spicy. Nude. Chocolates.
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.
Idea #28: VaporTrade
Waaaaay back in my first published software idea, 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.
For example, I might ask the software to find all instances (over the last fifteen years) where a stock’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?
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:
ROLLING_MAX(5, MOVING_AVERAGE(3, (HIGH(MSFT) - CLOSE(MSFT)))
In English, that’s a formula for “a 5-day rolling maximum value of a 3-day moving average of the daily Microsoft trading range”.
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.
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.
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’ve been itching for something challenging like that.
Sometimes I wonder whether it would make a good product. In its current state, it’s just a command-line application.
No charts.
No colors.
No trendlines or candlesticks or bollinger bands.
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.
And one of the primary strengths of the application is that it was written just for me: a Java programmer. I didn’t have to simplify it, or make it intuitive for non-programmers. It’s intuitive for me, and that’s the only thing that has ever mattered. It’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’t comfortable authoring Java and XML files.
So I wonder whether it’d be worth the effort to wrap it all up in a pretty GUI and make the formula & hypothesis languages a little bit more accessible to ordinary humans.
But then what would differentiate it from the other zillions of stock market back-testing platforms?
To a certain extent, I think it would be better to market it as the “Stock Market Analysis Tool for Expert Programmers” because I’ve never heard of any other financial analysis tool that wasn’t specifically written for people with programming experience.










July 21st, 2006 at 6:54 am
> Ideas breed more ideas.
Or more generally, what you focus on expands.
July 21st, 2006 at 8:03 am
Since you are generous enough to share your thoughts, I’ll share mine too. :)
Idea #20: Desktop Analytics
I remember seeing someone on BoS who mentioned doing this already*. It was a tracker with a 1-minute granularity, and it would look at the window in focus, etc.. If you search in there, I am sure you’ll find it.
Idea #24: Product Info Search
Again, a bunch of different people are already doing this*. Here are two:
http://www.customizegoogle.com/
http://bettersearch.g-blog.net/
Idea #25: MicroISV GoldRush
I like this idea.. Especially if you have physical access to where these people hang out. Internet friends are nice, but people still favor the good’ol face-to-face interactions.
Idea #27: Lick This Chocolate
This is one of my most favorite of all of your ideas. I can just see this being a huge hit on Valentine’s day, birthdays, christmas, haloween, etc.. If you can do it, go for it! If you could get a FoodTV network person to incorporate it in their show, you got a HUGE winner! I can see Rachel Ray giggling, moving her hands around and showing this chocolate off!
Idea #28: VaporTrade
I can see your background popping up in this one. It is very neat. Reminds me of Mr.Data shuffling through the Federation database, looking for patterns to uncover a conspiracy. However, I don’t know how useful it is to look for patterns like this for applications in the stock market. This would work nicely, if you got a lot of constants like same people running the company for a long time, keeping the same overall strategy, etc.. Most large companies probably fall into this category, but other smaller, unknown ones might not. And your pattern search might be comparing apples to oranges giving you misleading information. Then again, you can always put a disclaimer.
*When I say “someone is already doing this”, it is just to give you a direction and not necessarily to say “This is a crowded market, avoid it”.
July 21st, 2006 at 2:08 pm
outback Says:
“This would work nicely, if you got a lot of constants like same people running the company for a long time, keeping the same overall strategy”
Actually, the software doesn’t try to form any conclusion about individual companies, or individual securities. Instead, it just tries to find consistent patterns in the marketplace.
For example, here are the kinds of reports that the software can produce:
When a $5 ~ $10 security decreases in price by at least 3% each day for five consecutive days, while trading volume increases by at least 5% each day, then the stock is most likely (68% probability) to lose 13% of its value over the next ten trading days. It is next most likely (24% probability) to level off and maintain its value over the next ten days. And, in 8% of cases, the security increases in price by 1% to 5% over the next ten days. This pattern has been detected 1689 times during the last ten years, so it has a standard margin of 2.43%.
Something like that.
The idea is not to predict the movements of particular securities, but to identify reliable, repeatable patterns in the market.
And maybe today the pattern is detected on MSFT or CAT, but next week it might apply to IP or JPM.
Of course, those patterns change over time, so I’d give more credence to a pattern that occurred commonly over the last year than to a pattern that occurred commonly ten years ago.
July 21st, 2006 at 6:14 pm
Your Desktop Analytics idea would be cool, for personal use at least.
But I see a much darker use in the distance, by companies wanting to monitor what their employees are doing all day. Yeah, I know they have a right to do it and all that, but it would make me very uncomfortable, regardless.
Maybe you could create a tool to trick the program into thinking you were doing something else, then you could sell both and hedge your bets. If you kept the updates at around a 6 month offset from each other, you could milk that cow forever……
*sinks into deep thought*
July 21st, 2006 at 8:46 pm
earl says:
“…I see a much darker use in the distance…”
Huh. I hadn’t even though of that. But you make an excellent point. I’d have to give some consideration to making the software really useful for individuals while minimizing the spyware capabilities that might be of interest in the employer/employee monitoring niche. Becuase that’s not a niche I’m particularly interested in exploring with my software company.
July 22nd, 2006 at 8:50 am
“…I see a much darker use in the distance…”
I am afraid that exists too, so don’t beat yourself up too much about it.
July 23rd, 2006 at 5:49 am
I am the person who was talking about the time tracking program on BoS. The program is at http://www.timesprite.com.
This does seem to be an area that people find interesting. Quite a few people have said to me that they had considered doing a similar thing. There are other competitors out there, some of them reasonably pricey (not necessarily a bad thing).
I was also uncomfortable about the monitoring thing, and essentially make it easy to edit/change the data if you want to. You can add or delete entries, pause the monitor, and specify an activity instead of having it automatically recorded. So even if a boss decrees that you will use
July 23rd, 2006 at 5:50 am
Oops, hit the submit button accidentally…
…even if a boss decrees you will use it, you have control over the end result.
July 24th, 2006 at 5:17 pm
Did yo pick something yet or is the search still on?