Things learned from Muxlim
July 16, 2008
The purpose of this entry is not to disparage the muxlim website but to remind myself that those things may happen to young startup and show the lesson of avoiding them.

- Try your best not to show the users errors, instead inform them something more friendly like “Oops, something weird happened”.
- Why does Muxlim use the Agavi framework? Is it supposed to be the next generation one? I have never heard of it before I met the error. But the real question is that isn’t it too risky to use a early-staged framework due to the lack of documentation and support? But I believe that the folks at Muxlim has made a right choice.
- Team MahShelf has something to learn from this error: let’s release frequently and constantly. Look at the latest date that Muxlim released the next version of their website :2008-07-09. Let’s move our asses to make the next release faster
- Doctrine is a good ORM in my opinion, so I need more time to think how to migrate from Propel to Doctrine and it will be a severe pain in my head. Oh well, it is still fine, I have made several “180-degree” decisions like that since I was in charged of MahShelf project
PS: To my friend, Slava: by looking at the muxlim website I can easily recognize which part of the site was your work and you have done so well. You are talented by your age. ![]()
PS * : For those who still do not understand this entry is about, Muxlim.com is a social network found in Finland and this entry was inspired by its error shown during its down time.
Summer holidays, a month off means more tasks for me
July 10, 2008
Hi, long time to see in this blog. And that was because I have been in my summer holidays in Espoo, Finland. It is such a nice city though there was not many interesting activities there. For me, hanging out with friends is enough fun.
Here is the list of things happened while I am away:
- Tasks, tasks, more tasks are coming and I have no choice but to finish it in order to keep up with the schedule.
- A brand new forum for Vietnamese students in Finland. It was created with the passion to replace the old one which is not quite well-organized and supported. Take a look and enjoy yourself there.
Updated: Looks like the old admin board did not accept to migrate to the new one. I agree that the old one has been the playground for the early students for a while and it has a great impact on them. But why did not they realize that the old fun time just passed away, the playground is rotten because of the way they administrated it: full of irrelevant posts in some important forums, no connection with other Vietnamese students in other cities and absolutely no help to the newcomers.
I heard that the only (functional) admin shares no access to the control panel to the other admin. Therefore he is the one who responsible to upgrade, react on emergency and have total control on the backend. If that was true then I do not have anything to say more, a communist forum, ehr ?
Hmm, feel free to post comments here ![]()
An draft entry for MahShelf.com
May 18, 2008
Dear users, enjoy the weekend with out new flash reader. Hopefully it will bring the easiness of reading and page navigating.
Beyond the basic features, there are some new features that worths mentioning:
Auto-hide menubar: not satisfy with the reading area why dont you increase it by hiding the menu bar?
In fullscreen mode, you can use mouse scroll to navigate to either the next page or previous page. It rocks!
A new brand new look and feel of the reader, no more I have to look at the old ugly reader.
There are much more hidden features in the flash reader and I let you figure out yourself.
Posting comments is more interesting with emoticons. Here is a list of all available emoticons (including hidden ones)
‘:)’=>’happy.png’,
‘:-)’=>’happy.png’,
‘:))’=>’smile.png’,
‘:-))’=>’smile.png’,
‘:D’=>’biggrin.png’,
‘:-D’=>’biggrin.png’,
‘:-O’=>’suprised.png’,
‘:O’=>’suprised.png’,
‘:S’=>’confused.png’,
‘:-S’=>’confused.png’,
‘:s’=>’confused.png’,
‘:-s’=>’confused.png’,
“;(”=>’cry.png’,
‘;-(’=>’cry.png’,
‘:(’=>’sad.png’,
‘:-(’=>’sad.png’,
‘:p’=>’tongue.png’,
‘:-p’=>’tongue.png’,
‘:P’=>’tongue.png’,
‘:-P’=>’tongue.png’,
‘;)’=>’wink.png’,
‘;-)’=>’wink.png’,
‘X(’=>’angry.png’,
‘X-(’=>’angry.png’,
‘8-)’=>’cool.png’,
‘8)’=>’cool.png’,
‘:idea:’=>’idea.png’,
‘:fav:’=>’favorite.png’,
The 5 Stages of a Consumer Web Startup
May 9, 2008
This is a collected article from GigaOM, so please remember the copyright belongs to them:
In my years covering technology, I’ve gotten more than my fair share of pitches related to the latest consumer Internet startup. Thanks to this I’ve been able to witness what amounts to be a near-familiar life cycle for these companies. Not every company hits every step, but most of these will be familiar to those of you in the Silicon Valley Social Media/Web 2.0-Something trenches.
IN THE BEGINNING
One day an entrepreneur is chatting with his friends, gets an idea, writes about the idea on his or her blog, and then starts coding. A few weeks or possibly days, a beta — increasingly a euphemism for a not-fully-thought-out-product — emerges.
THE LAUNCH
Then the buzz builds and the company opens up the beta far and wide. Maybe TechCrunch, ReadWriteWeb, WebWorkerDaily or WebWare write about the product. Either way, this is the first traffic spike and the entrepreneur rejoices. The VCs come calling. If they don’t, the angels will certainly do a fly-by.
But eight weeks later reality sets in. The traffic stops growing or — worse yet– dives. The VCs stop calling and blogs start posting Alexa charts that look like ski slopes or tabletops. But as an ever-optimistic entrepreneur it’s time to regroup, gather your programmers, toss back some Red Bull and…
LAUNCH A SOCIAL NETWORK WIDGET
If the user adoption press releases, the widget and subsequent coverage can’t get your site growing again, it’s time for the big guns...the open API. Now you’re a platform! The startup gets a fresh round of publicity, maybe more exposure to new users, and the founder rejoices again. This time the money men get serious because you have shown them you can survive the Silicon Valley jungle and you have a Facebook strategy.
12 MONTHS LATER
Maybe the media is getting too insistent with their questions about how this service is supposed to make money. Maybe the bills from Amazon Web Services are getting too high, or the VCs are getting impatient. The blogs are back to posting unflattering Alexa numbers. Compete data backs those charts up! So it’s time for advertising.
If the startup is well-funded or has a famous founder, the ad unit might be something novel like awidget, pre-roll voice ads on a mobile phone, or Beacon. Otherwise it’s generally based on banners and Google AdWords with promises of more to come.
THE END IS NEAR
But selling online advertising is hard. If Google, Yahoo, AOL or Microsoft haven’t stopped by with a buyout, it’s time to consider reality. You could always try your hand as an ad network or merge with a competitor, but more than likely it’s time to sell that domain name and user base on eBay or quietly shut your doors. Better luck next time.
Done:
- Refactor the code and delete image preview feature
- Study for exams
- Synchronize my calendar and todo list between google calendar and Rainlendar
- Make some hotfixes in the server
- Start reading the book: The Art of Agile Development
Am I not skillful enough?
May 9, 2008
This is a post expressing my thought and criticism on myself.
After attending the arctic startup event in Helsinki, I have seen lots of cool company and noticed what is their development stage, what is the development method and how talented they are … I also realized that our team is at the very beginning stage and indeed we are not cool. And if we can not survive or evolve, we are doomed.
A serious start-up company will not take normal people, in fact the company decreases the failure risk percentage by hiring (extremely) talented people. However, I am more or less a normal person, I did go to school every day, did play games every week, and programmed as a hobby… Sometimes, I ask myself how serious I am in this project, and what is the situation I am facing now if I continue living like I did before. Will I fail ?
I am facing a chance, yes it is a chance to completely change my life. Never before have I realized that I almost catch up with the web 2.0 trends, and if I do not do anything, I am losing it. Never before have I realized that this is the only chance to be popular and rich and to let my beloved mom know that she can be proud of her son. Yes, by the time I left that bar, I realized it well and suddenly I knew that my team was far behind race, we are somehow losing the battle because of the development process is too slow.
A friend made a joke that he definitely will not work for a start-up company like us because of the risk. However, I did take it seriously, I know that we are bearing the risk but in order to minimize it, we should change the way we work. In my point of view, if we do not change then we will certainly fail. Don’t be too optimistic.
I spent so much time on trivial thing, I should stop surfing non-sense or unrelated websites. I should focus on coding and do not afraid of refactoring or modifying to improve code quality, do not afraid of applying new features.
I should narrow down what I should learn, and hire other persons to handle with their profession instead of trying to do it myself. I admit that I can not handle a real production server and my knowledge on Linux is limited . I admit that I am not a web designer. In the future I only want to be a pure web developer. And that will be my only focus.
PS: Like scred team, I will try to work 12 hours a day.


I write this post with a Nokia 9300i and its default browser. Basically I just fired up the browser with the link m.wordpress.com but I was disappointed because of the limitation given by wordpress. All I got is a text input and text area for the post’s subject and content, i cant even write an url or insert my images. Then I googled for a blogging client and found a tool from telewaving but it s not available for my phone. Hope someone will write a similar tool in Java.
Silently a new flash reader has come
May 5, 2008
This evening I went to mahshelf.com to read my favorite books and immediately I was surprised by the new fancy flash reader. It looks neat and some features have been added to make it more convenient for the users, i think. I really like the new one and perhaps the quality of images has been improved too, or something happens to my eyes :p
Meanwhile, I am speding time developing some new features and reading more books. I just can’t help reading books, I am so addicted. Hope I one day will come up with the best and most optimized algorithm to serve PDF file in the system.
A week of Memphis #1 (13->20 April 2008)
April 20, 2008
Yeah, this type of blogging is copied from other blog but I think it’s cool to remind what I have done or at least my friends can keep up to my work. Make a comment if anything went wrong here
. Ok, in the previous week, I did:
- Deploy a new production server.
- Write a php script to clean redundant files on that server.
- Solve DNS problem with the domain.
- Install memcache on my test server.
- Convert real link from text in the book description, for example: mahshelf.com now becomes http://mahshelf.com.
- Change page title dynamically to improve page SEO.
- Make a presentation about Web 2.0 user interface at EVTEK school and receive lots of criticisms about that
. - Think about my mom, forex rates showed 1 Euro = 26,058.5 Vietnamese Dong yesterday, my currency lost its value for the last 5 years. Being a Vietnamese is tough.
Moreover, I also write a quick note here as a to-do list, if you find sth missing, inform me through the comment.
- Make a good benchmark on how memcache can really save the day.
- Although the link is automatically linked, it still breaks the layout if the URL is too long, need to truncate the URL (not easy with those php preg_replace functions
) - Need to add dynamic meta keywords to improve page SEO as well.
- Improve URL routing system.
- Fix current CSS tooltip, an alternative is using an AJAXed one to save bandwidth.
Some tips to improve the performance of a web app
April 15, 2008
Before writing anything about this, I would like to apologize Odin Chen because I did not fulfill my exaggeration that I will make my web app run 500 times faster than before. After the most recent benchmark, it probably runs only 10 times faster
Here is the list I have applied to my app, hope it helps someone
- Compress web files such as javascript and css files, that saves both web traffic and loading time.
- Add an expires header to web files and images, it is only necessary when those files are not changed before they expire (I am still finding the best way to do it)
- Choose a small footprint server, I know Ubuntu 7.10 is great but you do not need the latest PHP 5.2.5, why dont you consider Debian?
- Compile your own package with your own configuration, or at least install only the essential packages from the repos, not all of them
- Use a caching engine such as APC, eAccelerator, Zend Optimizer, or memcached …
- Use your skill in programming, yes by that I mean code efficiency : do not forget to join foreign table, that saves many time in database querying, and unset the variables or objects that used in actions file that are no longer needed in template file
In the future, if I read or think of some other tips I will blog about it, if you have any advice, do not hesitate do leave a comment here. ![]()


