Sunday, April 20, 2008

My years on the net from 1998-2000

1998 - Insurance and Finance, and my first domain name
Once upon a time (September 1998) I bought my first domain name - agentus.com. The domain name was inspired by a course in "distributed artificial intelligence and intelligent agents" I (partially) followed while being an IT trainee in an insurance and finance company. Learned quite a bit from insurance (enjoyed working with actuaries, i.e. basic risk analysis for insurance pricing), but felt I had some unfinished business in academia (and entrepreneur wise), so in the summer of 1999 I left the finance company to university to start on a PhD scholarship in the fall.

1999 - Back to University
I spent the most of the summer of 1999 doing what could be called entrepreneurship-in-a-sandbox, i.e. not actually doing much concrete (coding wise), but reading up on e-commerce literature[2] to figure out something entrepreneurial to do. I ended up with a few vague ideas (one was creating a service to automatically create brand and domain names), but nothing that I really believed could fly (maybe the insight into risk analysis wasn't such a great thing?). The PhD scholarship was part of project called "Electronic Commercial Agents" - ElComAg. One of the first things when I created web pages for the project was an updated list of academic events and call for papers to e-commerce and CS related conferences, workshops and journals, this was gradually improved over the years and grew into eventseer.net.

2000 - Entrepreneurial year
At this time CoShopper.com and LetsBuyIt.com provided coshopping services, the idea behind these services was roughly to be a "crowd-shopping middleman" i.e. if a lots of consumers got together and purchased things (e.g. hundreds of dvd players) they should get it cheaper than on their own. Inspired by this and my recent insurance experience I thought something like: "insurance is by nature a crowd-risk-sharing product, so what is more natural than co-shopping of insurance?". Another nice property of insurance (at least selling it..) is that it is highly virtual so close to no distribution cost[3]. (Coshopping of insurance actually happened already then but more implicit, e.g. if you're a member of an organization you might get cheaper insurance).
I strongly believed this would change the insurance industry, and in particular for insurance brokers (and perhaps even for reinsurance industry, but I don't remember why :), so together with 2 CS project students I tried to make this idea fly, but the highlight became a full day workshop with executives from a very large insurance broker. (From Feb 2000 investment mood starting changing around the world and when summer of 2000 arrived it all died out).

As mentioned I had the summer before thought of a service for automatic brand and domain name creating, so I got a CS project student working on it (in parallel with the insurance project) and we got approved to participate in a summit for entrepreneurs sponsored by the University[4], the first part of the workshop revealed significant business level holes in the idea (revenue potential etc.), so we had to be agile and think of something new so we changed the idea to an ontology-based browser plugin to support search. At the summit's presentation real investors were in the panel, and when we spoke with one of them he said informally he might be willing to invest a very large amount, not being used to be close to large numbers it somewhat freaked me out[5] . Coincidentally(1) enough during the first part of the summit (which was in February ) I saw the front page of a financial newspaper (in the reception area) that the stockmarket was seriously down, i.e. the dot.com bubble burst.

Coincidentally(2) again during the second part of the entrepreneurial summit I got a phone call on behalf of a large investor, I had recently sent him an email with misc. ideas. I stayed in touch and later in the year (fall) I got funding from that investor to found a company together with my brother and the student who worked on the automatic brand name project. I worked on this company part time in addition to my PhD studies for about 2-3 years until going back to PhD fulltime.

I was a co-organizer for something called "technology café", mainly together with other PhD students from many parts of the university (e.g. industrial ecology, political science, linguistics, social anthropology and computer science). Together with a few of them we tried to develop a company (during the fall) doing consulting and services related to indicators for industrial eco-efficiency. We had meetings with potential local investors and customers, but our business model was quite vague so it was a hard sell, so the initiative unfortunately fizzled out.

One of the guys from the industrial eco-efficiency initiative had another project related to services related to carbon quota market (this was 3 years after the Kyoto Protocol), they were lacking an IT guy so I was for a brief period one of the 5 people working on it, but due to my newly funded company (2 paragraphs up) I had to pass this project on. In retrospect I honestly wish I didn't, this company - PointCarbon - became very successful now with customers in more than 200 countries :-)

Hm, 2000 was truly a busy year, other than that I remember getting my submitted first paper rejected ;-) But things started getting somewhat better on the academic front in 2001.

[1] - intellige.. twice in a course name had to be good :)
[2] - online/PDF e-commerce literature such as Make Your Site Sell and Wilsonweb, and magazines: Fast Company, Business 2.0, Red Herring and Wired (some of them approximating phone book size per monthly issue. Not as being in silicon valley, but an ok substitute while being 9 timezones east of it, i.e. Scandinavia).
[3] - you pay someone to take on your risk, and the combined pay of the entire crowd is going to at least cover the costs of reimbursements to those who have incidents the insurance covers.
[4] - it was mainly traditional engineering companies participating at the innovation summit, e.g. with more tangible projects like a mobile asfalt producing vehicle. Our idea was accepted because it was exotic with a dot.com'ish like company (at least I believe so).
[5] - I saw bigger numbers as in IT trainee in insurance and finance, but they felt more distant.

Saturday, April 12, 2008

Biting the Hand that Feeds the Double Standard?


Maybe it is just me, but I am personally somewhat puzzled by two recent world events:
  1. protests against a big event in a country who at the same time is the major supplier of goods to those who are protesting against the event (double standards?)
  2. suggested actions that severely irritates another country who is the major supplier of energy to several of the countries who are irritating it (biting the hand that feeds you?)

Friday, April 4, 2008

A Machine Learning Theory Dream Team



Russia is the birthplace of many great mathematicians, and the work from quite a few of them have significant impact on state-of-the-art computer science and machine learning theory, e.g.:
  • Ludwig O. Hesse (1811-1874) - Hessian Matrix
    • Used in calculations of Logistic Regression (which can be used for binary classification), and feed-forward Neural Networks
  • David Hilbert (1862-1943) - Hilbert Space
    • E.g. a feature space for Radial Basis Function kernels in Support Vector Machine classifiers can be described with a Hilbert Space
  • Andrey N. Kolmogorov (1903-1987) - Kolmogorov Complexity
    • Used in algorithmic information theory, and also in theory behind evolutionary and genetic programming
  • Andrei A. Markov (1856-1922) - Markov Models and Markov Chains
    • Can be used e.g. for simulation (in games).
    • Noteworthy later "spinn-offs": Hidden Markov Models (HMM) and Markov Chain Monte Carlo (MCMC).
  • Andrei N. Tikhonov (1906-1993) - Tikhonov Regularization
    • Tikhonov Regularization is roughly a templating language for classification and regression. The template variable is a loss function, e.g. if using a square loss function you get Ridge Regression (also known as Regularized Least Squares Regression or Shrinkage Regression), an epsilon-insensitive loss function gives Support Vector Machine Regression, and a hinge loss function gives Support Vector Machine Classification.
Kudos.

Thursday, March 20, 2008

Test-Driven Parsing with Python, Dparser and Doctest

Dparser for Python is the easiest-to-use parsing framework I've ever seen and used. It requires very little boilerplate code and supports having grammars in docstrings. Under the hood Dparser is a Scannerless Generalized Left-to-right Rightmost (GLR) derivation parser based on the Tomita Algorithm (no less :-) (See also A look at DParser for Python - note: a bit old article)

DParser and Doctest
Since DParser uses docstrings for grammars it didn't work together with Python doctest, but a small change in dparser.py replacing occurrences of f.__doc__ with f.__doc__.split(""">>>""")[0] seemed to fix that. This means that you can relatively easily do test-driven development of parsers, i.e. just write tests and the least amount of grammar + code to make tests pass. (note: I used Dparser 1.18 combined with (Stackless) Python 2.5.1 on Linux). Check out the small example below to see how it works (first part of docstrings has the grammar and the rest of the docstring are doctests testing the corresponding grammar):

from dparser import Parser
import doctest

def d_start(t):
"""start : noun verb
>>> Parser().parse('cat flies')
>>> Parser().parse('dog flies')
"
""

def
d_noun(t):
"""noun : 'cat' | 'dog'
>>> Parser().parse('cat', start_symbol='noun')
'cat'
>>> Parser().parse('dog', start_symbol='noun')
'dog'
"
""
return t[0]

def
d_verb(t):
"""verb : 'flies'
>>> Parser().parse('flies', start_symbol='verb')
'flies'
"
""
return t[0]

def
_test():
doctest.testmod()

if __name__ == '__main__':
_test()


# note: output when running time python example.py -v
Trying:
Parser().parse('cat', start_symbol='noun')
Expecting:
'cat'
ok
Trying:
Parser().parse('dog', start_symbol='noun')
Expecting:
'dog'
ok
Trying:
Parser().parse('cat flies')
Expecting nothing
ok
Trying:
Parser().parse('dog flies')
Expecting nothing
ok
Trying:
Parser().parse('flies', start_symbol='verb')
Expecting:
'flies'
ok
2 items had no tests:
__main__
__main__._test
3 items passed all tests:
2 tests in __main__.d_noun
2 tests in __main__.d_start
1 tests in __main__.d_verb
5 tests in 5 items.
5 passed and 0 failed.
Test passed.

real 0m0.080s
user 0m0.068s
sys 0m0.008s

Tuesday, March 11, 2008

Software Engineer tv-series for kids?

Bob the builder, Fetch the Vet, Fireman Sam and Postman Pat are all great. But where is the software engineer tv-series for kids? Not to be overly politically correct, but there also seems to be a slight unbalance in the gender of the main person for the existing shows - Ada the software engineer tv-series anyone?

It would be great to hear kids get inspired and ask for a new ide or compiler instead of a new shovel..

Thursday, March 6, 2008

My first years on the Net

Figured out that I have been on the Internet for about 19 years (a prime time I must say). Didn't experience the stone age of the Internet, but I probably started somewhere around the bronze age or at least the iron age of the Internet. Here follows a summary of my first years on the net.

1989-90
I was fortunate and got (dial-up) Internet access at high school through a project called SIRNett (~Schools in regional network, purpose was distance-education collaboration between high schools). Cool things at the time included Turbo Pascal, Amiga and e-mail. Was Guinea pig for the the Winix email software (developed in Trondheim), the software also had terminal emulation (we had a local unix box of some kind, don't remember which). Winix later became infamously known (for a while) as the largest IT scandal in Norway, but I guess investing hundreds of millions of kroner (/5 to get rough $ amounts) on creating commercial software relying on Internet services around 1990 was somewhat optimistic.
(note: The first Internet ISP appeared in 1990
(according to this source there were about 560k worldwide Internet users in 1989)

1991
1st (playful) year at University, lots of computers and all with Internet connection. MUD (Multi-User Dungeon), archie and ftp were the cool things (nic.funet.fi). Computers were either IBM PS/2's or DEC VAX/VMS terminals (even one terminal with Motif/Xish UI). Met some smart people in NVG who were extremely early adopters of Linux (Linux was born in 1991). The local college had a 64kbit/s line (which was easily saturated by ftp traffic).
File format of the year: DMS (for Amiga).

1992
Became involved in PVV. Learned to use Latex to write documents. Starting using Perl. Tried a bunch of flavours of unixes and met some incredibly smart people (quite a few of them ended up in the search industry, e.g. Yahoo, Fast, Google, Overture and Microsoft :) Monster box at the time was flipper.pvv.unit.no, it was a Dolphin OS based RISC box (spinn-off company of then still-alive Norsk Data). Tried Gopher (which I was quite impressed of, little did I know what was yet to come).

1993-1994
Mosaic, NCSA Web server, Netscape. Oh joy!

1995
Semester Project about "Marketing on the Internet". Field trip to Silicon Valley with visits to Berkeley University, Apple, Oracle, IBM Almaden Research Center (Ted Selker showed us a prototype keyboard with 2 trackpoints), Sun (demo of Java, it was only ~1+- applet at the time, one at San Francisco Chronicle if I don't remember incorrectly), Silicon Graphics where I got my head scanned on a nice Onyx IRIX box. But I didn't know that 10 years later I should visit the same campus and seriously use my head again in a job interview with multiple rock stars :)

1996-1997
Internship with IBM Canada. Cool software at the time was PointCast and Smit (for AIX). Working for IBM while Deep Blue beat Kasparov in Chess was quite fun :)

For my years on the net from 1998 to 2000 click here