by Asim Jalis
HARD ALGORITHMS
Work on hard algorithms problems. For example:
(a) Speech: Hidden Markov Models.
(b) Optimization: Monte-Carlo simulations, simulated annealing, etc.
(c) Clustering.
(d) Conjoint Analysis.
(e) Operations Research: Simplex, and other algorithms.
BUG TRACKING 2.0
Create a traditional web services company with a 2.0 abstraction
twist.
(a) First create a REST-ful XML based web service that provides
issue tracking. You can make queries like:
http://foo/GetBugs/JoeUser. Basically open, close, list, update
bugs (CRUD) all through URLs and XML-containing HTTP POST
requests.
(b) Then build a really simple UI interface on top of this
that internally calls the same abstract web services. THis is a
proof of concept and for people who don't want to write their
automated clients.
(c) Users pay a subscription fee. Free gets you 100 bugs. Premium
gets you a lot more bugs and other features, such as multiple
users sharing an account. For example, your whole dev team can
have accounts.
(d) Users have a choice: Either interact with this bug database
through the web UI or do it through the web services layer. We
provide them with Python/Perl/C#/Java scripts to interact with
the web services.
(e) Why would users want to do this? Here is a scenario: someone
wants to use this to automatically open bugs for build breaks,
they can do this. They can have scripts that automatically open
and close bugs.
GENERIC WEB 2.0 DATABASE APPLICATION
Generalize #2. Now superficially #2 looks like a bug tracking
database but really there is nothing bug-tracking-specific about
it. It is basically a web database. So if it is factored
correctly, the same model could be used to create a photo sharing
website and other things. Or maybe just sell the code base to
people interested in setting up services like this. Be the
plumbing company.
PYTHON FOR FUNCTIONAL TESTING
Here is a simple way to functionally test applications like
PowerShell. While it is testable using C#, Python might be
easier. Here is the basic approach. Start the application, pipe
stuff to it's prompt, read the input, make assertions about the
input. Python's unit-testing framework could be used.
Currently I have a giant bat file that runs the functional tests.
This forces me to look at the output, to make sure things are
okay. Not the best solution.
These are not tests that are checked in but sanity check that I
use to ensure that basic scenarios are still working.
NAME FOR A SOFTWARE COMPANY
Askterisk. Askterix. Asterix. Asterisky. AsteriskSky.
AsteriskRiver.
INTEGRATING WEB WITH TELEPHONE
This concept seems pregnant with possibilities. Reminder service.
Wake-up calls. Etc. A toolkit other companies can use to provide
these services, or other services. Google has an April Fool's
joke related to the wake-up call. But this could actually work as
a product.