Sunday, November 2, 2008

If you gonna set up a web startup ...

Wanna be the next Google? Do I hear a "Yes" elsewhere ? I have loads of thoughts on this since I love doing web startup. So let's do this checklist to realize...

1. Do you know absolutely everything about your business? Do you eat your own dog food? Those "Well, I will use my product later when it is fully developed/established" or "Ehr, I will use my service later, got things to do now..." will definitely fail, more here

2. Are you ambitious/motivated enough? Doing startup is not doing your everday work, if you work only 8 hours a day and spend the rest of the day relaxing then you better quit it. Most IT staff work 8 hours per day under excellent management and what will make your company the next Google since there is no difference between you and other normal IT staff.

3. Do you have a successful team? From Taneli
Startup teams should be about things like attitude, values, goals, objectives, motivation, trust, learning, courage, energy, intensity, competence, superior judgement and good communication (emphasis on feedback).

They should not be about: micro-management, processes, business plans, formal matters, profit and loss statements, reports, politics, non-action, vague visions and missions, long hours and exhausted managers, strict roles and responsibilities.

Success Teams are often full of leaders. There isn't just one central person responsible of leadership: everybody leads, and they lead to every possible direction: their own teams, colleagues, their bosses, partners etc.

And in the end, let's discuss a quote from Kristoffer Lawson:
New startups are fantastic because they still think it's easy so they'll go for it and only later realise the deep hole they got themselves into :-)

Now you decide: do you give up or go forwards with the lessons learnt. If you decide to continue, chances are you'll have now learnt stuff the hard way and will be much better tomorrow. You need to be hammered to eventually become world-beaters!

Friday, October 24, 2008

We solved the problems with Flash 10

As you may know Flash 10 came out a week ago and due to its change in security policy we had to change the uploader as well as fix our flash player. It was fun doing pair programming with Kelvin. I myself was coding a brand new navigation, a forum and its feed. Thanks to MVC architecture, those things only cost me a week and it was a piece of cake. Meanwhile, Kelvin has completed tailoring the feed system and the flash player. Nice, MahShelf is running with its full speed.

Tuesday, July 15, 2008

Things learned from Muxlim

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.
Free Image Hosting at www.ImageShack.us

  1. Try your best not to show the users errors, instead inform them something more friendly like "Oops, something weird happened".

  2. 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.

  3. 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 :D

  4. 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 :D


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.

Thursday, July 10, 2008

Summer holidays, a month off means more tasks for me

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. :D


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 :)

Saturday, May 17, 2008

An draft entry for MahShelf.com

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',

Friday, May 9, 2008

The 5 Stages of a Consumer Web Startup

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 awidgetpre-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.

Thursday, May 8, 2008

A week of Memphis #2 (28 April 2008 -> 4 May 2008)

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?

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.



Sunday, May 4, 2008

Almost every application is now available on the web, how about mobile phone?

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

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.

Saturday, April 19, 2008

A week of Memphis #1 (13->20 April 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 :P . Ok, in the previous week, I did:

  1. Deploy a new production server.

  2. Write a php script to clean redundant files on that server.

  3. Solve DNS problem with the domain.

  4. Install memcache on my test server.

  5. Convert real link from text in the book description, for example: mahshelf.com now becomes http://mahshelf.com.

  6. Change page title dynamically to improve page SEO.

  7. Make a presentation about Web 2.0 user interface at EVTEK school and receive lots of criticisms about that :( .

  8. 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.

Tuesday, April 15, 2008

Some tips to improve the performance of a web app

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 :P

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 :P

  • 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. :D

Web users, please save web designers by upgrading to the latest IE7 or Firefox

When I was a normal web surfer, I never thought it would be a critical issue for web page to display correctly on every browser. But recently it comes to me as a head-ache matter when designing the layout of mahshelf.com. Luckily there is a javascript file that makes IE5-6 behave like a standard compliant browser. Although the situation about web design is temporarily stable, I am still looking a talented web designer in the future.

PS: I made a quick look at browser statistics table and in this month, IE5-6 browser users are continuously decreasing.

Friday, March 28, 2008

MahShelf.com has been slightly optimized

mahshelf logo


First, I am very grateful to those who bear the beta stage with me. I know there are such annoying bugs and inconvenience while using MahShelf.com but please do not worry, I am still eating my own dog food every day. Yes, I have made it my habit of reading funny comics and jokes there and it is real fun. Any inconvenience in usability you currently face is probably the one I hate the most while reading there. I try to improve the site considering myself as normal as any one else.


There will be many differences in the next release of MahShelf.com. The speed of uploading and reading has been improved a lot, the page is load faster thanks to the new server and new caching method. And there should be slight changes in UI such as users are allowed to post links in the comment, a better upload button is now located on the left, the page displays correctly in most browser ...


Although I think the site has achieved the stable stage in functionality, there are much more things to do to make it eye-candy to the user and yet fully accessible. :D


 

Sunday, March 23, 2008

PHP Warning: Module 'json' already loaded in Unknown on line 0

After installing a LAMP server on an old P3 800MHz machine - yes it is so old that it was picked up from my apartment storage room, I typed "php -v" and it says in the first line :
PHP Warning: Module 'json' already loaded in Unknown on line 0

It seems to be the modules json is loaded twice, I looked into the php.ini files and there it is:
extension=json.so

Simply commenting out that line solves the problem and yet leaves me the doubt where is it first loaded besides the time php.ini calls it. I guess there is something with the php5-json package I installed, it may already be included in php5 library and automatically loaded. That is not bad at all since the Debian team will maintain that package and give me the latest one. :D

Sunday, March 16, 2008

How did I tame my IE6 stand alone

Hooray,

Today morning, I wrote an entry about how difficult it is to have Firefox, IE7, IE6 and Safari running on a single machine. Now it is not really a matter anymore, thanks to someone has made a portable IE6, I can have an old friend back. There is also a Windows version of Safari 3, but it is still at beta stage and for some unknown reasons it crashed on my XP. (I will figure it out later.)

There are couples of tweaks need to be done before having IE6 operate properly. You can follow it here to enable cookies, append a "IE 6" title to the browser and fix the conditional comments feature in CSS. Life is just half beautiful again.

Later on, I found a Javascript bug on my site and, well, it is time to google for a good IE script debugger, I found this and this, and decided to use IE Developer Toolbar and Debug Bar since it looks neat and user-friendly. The functionality is somehow similar to the commendable Firebug of Firefox. If there is any problem, Script Debugger for Windows is my first candidate in the waiting list.

Web testing obstacles

Hi friends and folks,

For those who keep up with what I am currently doing, you may notice that our website is at pre-beta testing stage and I am very excited every time I think about it. But now there is one difficulty that I admit that I do not know how to solve, hope you guys can help.

I am testing HTML, CSS and Javascript on Firefox and IE7, the site seems to run well on those 2 standard browser but since I received several issues that it is broken on IE6, Safari and other older browser, the headache has started. For CSS issues, although it was the first pain for my head and I am not a CSS master, it was solved quickly by detecting and adding separate CSS file to separate browser.

Now comes the interesting part, playing with Javascript is fun but it is only the joy when you have the so-called "toys" in your hand. Without those tools Firebug, WebdeveloperToolbar, I feel confused. And that is the situation I currently face with IE6 and other unfamiliar browsers. It is even worse when my working environment only has Firefox and IE7. Fooling around between my laptop and PC is a waste of time. I really want to find a solution having everything on a single machine, I also hope in the internet, someone has made a Javascript debugger on IE6 or Safari. Then life should be much easier.

Well, meanwhile, I am downloading Safari on Windows and IE6 standalone to try out; fixing some PHP bugs with Eclipse and eh oh it's Sunday, may be going to the pool will refresh my mind a little bit.