2008-11-12
l10n
I've been doing some work getting a PHP backend to be multilingual (in the sense that you can type to it in any language and it all just works) and international (in the sense that different versions will be available for different languages). Getting this working properly is tricky, yet essential, which goes some way to explaining why I've not posted recently.
2008-11-09
Cloud
I needed to track what I'm spending, so I created an expenses spreadsheet using Zoho. So now I have a forum, a blog, the site itself, version control and my documents all "in the cloud". Amazing - no need to have a dedicated project machine anymore - any computer with a web browser can give me access to everything.
2008-11-08
Server
I've managed to launch a server on EC2 and ssh into it. The next steps appear to be:
- Create (bundle) my own machine image (AMI) that is configured how I like it
- Create and then mount persistent storage (EBS)
- Put my changes into hosted SVN somewhere
2008-11-07
ElasticFox
So I've registered for EC2, installed ElasticFox and started tinkering around. It'll take a few sessions to get to the point where I understand what's going on, and to get things working. I've also realised that I can save my budget by creating my "Coming Soon" page at GoDaddy, to avoid me having to run my EC2 instance all the time. Right now, the next steps are:
- Continue tinkering with ElasticFox until I've got the basic framework up and running
- Create a coming soon page at GoDaddy
- Get a professional logo, and add it to the coming soon page, the blog and the forum
- Start work on the back end and the front end, switching between the two as I desire
Hosting
I checked out Amazon's EC2, and it looks kinda cool. I don't anticipate MegaHAL10 to be massively popular, so I'd expect to be able to run it on a single server, but I like the idea of anticipating the scaling problem, so EC2 is a good candidate. Cost should be around $120 per month, given the current exchange rate. This is to have a "Small Instance" up for the entire month, and allows for a lot of data transfer; at least 10MB per day in and 100MB per day out. That might not sound like alot, but it fits my projected numbers, and multiplying the data by a factor of ten will only add about $10 per month to the bill anyway. This means, given my budget, I can fund six months before I'll need money coming in to help pay for things, which is less than my $1000 / one year mentioned yesterday.
I also need SVN hosting (I'd prefer Perforce, but can't find any hosting options for that, and I don't want to run my own server). beanstalk offer free SVN hosting, so I think I'll go with that.
Google's App Engine looks interesting, but is currently restricted to Python. Although that would suit a lot of projects I've got on the backburner, my intention with MH10 is to develop a stand-alone client, and C++ is a better option for me in that case.
Finally, I need a funky logo, so I plan to ask an artistic friend of mine to knock up a suitably Web2.0 logo, and the remainder of my budget will go on that. So the plan is to get a professional looking "coming soon" page up-and-running on EC2 under the megahal10.com domain as soon as possible. Once that's there, I'll be able to work both top-down (i.e. flesh out the web front-end) or bottom-up (the back-end), and it'll be nice to have the flexibility to switch between these two tasks as my mood dictates.
I also need SVN hosting (I'd prefer Perforce, but can't find any hosting options for that, and I don't want to run my own server). beanstalk offer free SVN hosting, so I think I'll go with that.
Google's App Engine looks interesting, but is currently restricted to Python. Although that would suit a lot of projects I've got on the backburner, my intention with MH10 is to develop a stand-alone client, and C++ is a better option for me in that case.
Finally, I need a funky logo, so I plan to ask an artistic friend of mine to knock up a suitably Web2.0 logo, and the remainder of my budget will go on that. So the plan is to get a professional looking "coming soon" page up-and-running on EC2 under the megahal10.com domain as soon as possible. Once that's there, I'll be able to work both top-down (i.e. flesh out the web front-end) or bottom-up (the back-end), and it'll be nice to have the flexibility to switch between these two tasks as my mood dictates.
2008-11-06
Registered!
My budget is now a measly $945, and megahal10.com has been registered until 2013. It's just parked at GoDaddy for the time being, but hopefully it won't be too long until I get this thing hosted somewhere or other.
One Year and $1000
That's my timeframe, and my budget. One year might seem like a long time, but I'm not suggesting that I want to spend a whole year developing MH10. No, I'd like to get all that done and dusted by the end of 2008. No, I want to give the project twelve months to prove itself. I'd like it to become profitable.
One of the many reasons why I'm beginning this project now is as a learning exercise; I've fallen behind when it comes to web development, so I want an excuse to develop something new to give myself a chance to catch up. I don't know how I'll spend $1000, but I'm guessing that hosting, graphic design, advertising and so forth will be required along the way, so I'm willing to give myself some kind of budget. I'd like the online version of MegaHAL10 to be successful enough that I can "monetize" it by showing ads somewhere on the site, and that those ads will, over the course of the twelve months, pay off the initial $1000 investment, continue to pay for the day-to-day running costs of the site (that is, the hosting), and perhaps leave a little left over, which I'll need to decide how to use (donations to charity, funding the next project, paying for the occasional night out at the movies, who knows)?
The first version of MH10 will be online. The only way of chatting with MegaHAL10 will be via its web site. I want to get the user interface and web back-end all sorted out before I make a stand-alone client, or release a development version to allow others to use the MH10 tech in their own applications. But those things will come, and this means that the web back-end will need to be implemented in a way that anticipates their eventual arrival; I can't code everything up in PHP, for example. Right now I'm thinking C++, but I'm also curious about the so-called "cloud", so I'll be looking at Amazon EC2 and Google App Engine over the coming days - I really don't know very much about them at all.
I should list some other requirements for MH10 here, for future reference:
One of the many reasons why I'm beginning this project now is as a learning exercise; I've fallen behind when it comes to web development, so I want an excuse to develop something new to give myself a chance to catch up. I don't know how I'll spend $1000, but I'm guessing that hosting, graphic design, advertising and so forth will be required along the way, so I'm willing to give myself some kind of budget. I'd like the online version of MegaHAL10 to be successful enough that I can "monetize" it by showing ads somewhere on the site, and that those ads will, over the course of the twelve months, pay off the initial $1000 investment, continue to pay for the day-to-day running costs of the site (that is, the hosting), and perhaps leave a little left over, which I'll need to decide how to use (donations to charity, funding the next project, paying for the occasional night out at the movies, who knows)?
The first version of MH10 will be online. The only way of chatting with MegaHAL10 will be via its web site. I want to get the user interface and web back-end all sorted out before I make a stand-alone client, or release a development version to allow others to use the MH10 tech in their own applications. But those things will come, and this means that the web back-end will need to be implemented in a way that anticipates their eventual arrival; I can't code everything up in PHP, for example. Right now I'm thinking C++, but I'm also curious about the so-called "cloud", so I'll be looking at Amazon EC2 and Google App Engine over the coming days - I really don't know very much about them at all.
I should list some other requirements for MH10 here, for future reference:
- The world's best ever learning chatterbot.
- Full unicode compliance, allowing it to converse in all languages.
- Archives of all conversations available on the web site, and indexed by search engines.
- Downloadable stand-alone clients for a variety of platforms.
- Support integration into third-party apps.
Fifteen Years
Fifteen years ago, in 1993, I was an undergraduate student at the University of Western Australia. Sitting in the back of a lecture on Information Theory, I started thinking about Markov Models and language modelling. Back in the lab, I hacked out a quick program in C that tokenised strings of characters into words, fed them into a Markov Model, and then used that model generatively to produce nonsensical, but often humorous, quasi-English sentences. MegaHAL was born.
Over the next couple of years, as I became aware of the World Wide Web, MegaHAL moved online, and became (for the time) massively popular. Thousands of people talked to the online version each day, in many different languages. I improved the performance of the program, releasing new versions rapidly. Due to demand I made the code available under the GPL, and MegaHAL was ported to many different platforms. Work on MegaHAL lead to my PhD, to my involvement in the Loebner Prize, to my work at Lionhead and so on. But I've let MegaHAL live on its own for quite a while now - the latest version is 9.1.1, which was released in early 2004, but I haven't touched the code personally since the turn of the century.
Today I decided that the time is ripe to implement a brand new version of MegaHAL, which I'm calling MegaHAL10. I intend to write it from scratch using everything I've learned in the intervening years, and make it available to talk to online, and for download.
I've started this project by starting a blog. I want to be completely open and honest about what I'm doing and why I'm doing it. I'm hoping that a small community of people who enjoy this kind of project will gather around and offer suggestions and well-meant criticism. I'm looking forward to seeing where this will all lead.
Over the next couple of years, as I became aware of the World Wide Web, MegaHAL moved online, and became (for the time) massively popular. Thousands of people talked to the online version each day, in many different languages. I improved the performance of the program, releasing new versions rapidly. Due to demand I made the code available under the GPL, and MegaHAL was ported to many different platforms. Work on MegaHAL lead to my PhD, to my involvement in the Loebner Prize, to my work at Lionhead and so on. But I've let MegaHAL live on its own for quite a while now - the latest version is 9.1.1, which was released in early 2004, but I haven't touched the code personally since the turn of the century.
Today I decided that the time is ripe to implement a brand new version of MegaHAL, which I'm calling MegaHAL10. I intend to write it from scratch using everything I've learned in the intervening years, and make it available to talk to online, and for download.
I've started this project by starting a blog. I want to be completely open and honest about what I'm doing and why I'm doing it. I'm hoping that a small community of people who enjoy this kind of project will gather around and offer suggestions and well-meant criticism. I'm looking forward to seeing where this will all lead.
Subscribe to:
Posts (Atom)