Nov 092009

One of my friends asked me if this service is doable:

  • Every hour multiple machines (clients) will send ~1M actions records to the service
  • Each action contains: user id, action, action result, start time, end time, and couple of user profile keys
  • The service should be able to deliver reports for any given time frame (minutes), within 15 min after the period finishes. For example, report for 3pm~3:30pm should be available by 3:45pm
  • Reports include: how many users did a specific action with specific result (during that time frame), how many actions does a specific user did, and top number of actions taken by others users who did the same action as the user (hard to understand, but think about Amazon, “Customers bought this item also bought…)
  • Most important thing is: all these requirements should be done on no more than 4 machines, include redundancy, which means should be done on 2 or 3 machines

I have to say, this is a pretty common requirements for online services (shopping, search, gaming,… could be anything), and if I can make it and make the solution linear, then it will be pretty much interesting (let’s say, 40 machines supporting 10M actions per hour, a lot already).

I will do some research (the nosql stuffs could well fit into this one), and post thinking/design here.

Jun 212009

Lots of people (include myself) said framework does not fit big web sites, whatever it is based on Ruby, Python, or PHP, then why do I still use a framework?

Quick answer – I need something in web development like Visual Basic.

Let me explain some more – while I’m trying to build a Windows application, if it is simple or it is just for prototype, I can use Visual Basic (maybe Delphi now to get rid of troubles caused by .Net). On Unix I use Perl/shell to archieve the same goal. However, I don’t have anything in hands, till now, on web development, so I need something, which framework seems promising.

I don’t think I will build any big web sites with the framework, but there are way too many small web sites/applications that I want to get them done within a week. Building a perfect achitecture is not that fast, even with PHP frontend and C/C++ backend. Almost all this kind of applications are database oriented, with less complex logic but needs to be fancy in UI. Thinking of most frameworks work AJAX UI, this seems to be the best choice.

Sure, once the application needs to be turned to a real web site, performance, capacity, and security, etc. will become critical, and at that time I would like to change the whole platform from a framework to a solid achitecture. I still believe none of the existing framework can provide the performance that big web sites want.

I post here to answer questions like:

  • Is framework good to build a big web site?
  • You mentioned you don’t like framework, but why are you still using them?
Jun 142009

It seems godaddy supports PHP only so I’m thinking of stop learning Python for now even it has better framework. There are some widely used PHP framework that I can take to deploy to godaddy, which is more convenience.

Currently I’m comparing Zend, CakePHP, and Symfony. I guess I won’t try Zend as it sound like too old, and does not support application generation. People mentioned CakePHP lack os real model support, while Symfony is sort of too complicated to start with.

I will focus on CakePHP and Symfony, I get a feeling that I will stick with CakePHP without any reason, but sure I will do serious research on Symfony as well.

Again, I will post my findings here.