Archive for the ‘Uncategorized’ Category
Choosing my thesis topic
Working on mahshelf, barisma, recepist, sf-resource projects sure brought me lots of experiences in web developement. I can list below a few of them and I intend to choose one of them as the topic for my thesis
- I learned to upgrade a web app from symfony 1.0 to symfony 1.2 (mahshelf.com), that may sound simple but it was a pain in the ass due to the incompatibility between those versions. Manual changes have been made in controllers, routings and even the templates.
- I learned to optimize a web app, both in the frontend with compressing css, js files, moving the static files to the cdn; and backend (PHP, MySQL optimization). I really had fun when doing those tasks
- I developed a brand new web app (recepist.fi) with symfony 1.2. If I choose this topic, it will be a complete tutorial on how I have created things around this web app. However, I have not finished developing this app which means I will have to do the research and write documents at the same time. The case is not suitable since I am quite hurry and just want to write things I have been clearly aware of.
- I am a jQuery fan. Spending time writing jQuery portfolios makes me realize that I have written several useful jQuery plugins and I should write my thesis about it
So far there are 4 to choose from. I myself find 1) really interesting to write about since there are tweaks, hacks and lots of scripts just to get things done. However, it will be boring for the teachers who give reviews since I am pretty sure that they do not know what I am writing about. And 1) is not truly practical since hardly any web company need this topic.
2) was fun when I did the tasks. Not only they mention a lot about high performance website and web optimization on books and blogs, there are also several FF plugins and open source tools for me to finish the benchmark. I am likely to choose this because (to be continued)
fiksuhuuto, sentti, kakusuu and maybe all other finnish penny auction sites are just scams
Detecting browsers javascript hacks in a tweet
Hi folks.
I am recently very fond of the term “code in a tweet” which means that a very useful piece of source code can even fit a Twitter post. Below here is the shortest javascript that can detect IE browser by Andrea (yeah, IE sucks and we have to detect it to eliminate its problems)
IE='\v'=='v'
Moreover, Gareth Heyes has come up with other browser detections and gather them together
//Firefox detector 2/3 by DoctorDan FF=/a/[-1]=='a'
//Firefox 3
FF3=(function x(){})[-5]=='x'
//Firefox 2
FF2=(function x(){})[-6]=='x'
//IE detector I posted previously IE='\v'=='v'
//Safari detector Saf=/a/.__proto__=='//'
//Chrome Chr=/source/.test((/a/.toString+''))
//Opera Op=/^function \(/.test([].sort)
Usage: The variable assignment is the abbreviation of the browser e.g. FF, IE, Op, Saf, Chr which return true or false.
And this is the most interesting part: one-liner to rule them all
B=(function x(){})[-5]=='x'?'FF3':(function x(){})[-6]=='x'?'FF2':/a/[-1]=='a'?'FF':'\v'=='v'?'IE':/a/.__proto__=='//'?'Saf':/s/.test(/a/.toString)?'Chr':/^function \(/.test([].sort)?'Op':'Unknown'
Usage: B will return a string of the abbreviation of the browser
Tell me what do you think? And if you find any cool stuff like that let me know.
MooTools the Ajax experience
[Updated] Sorry to be arrogant and simple minded but I always think jQuery rocks and try to inspire as many people as possible to use or move to jQuery because of one simple reason: the more users and developers use jQuery the better it is and the more plugins will be created.
[Updated] jQuery 1.3 is out and it is super fast ! Read more

I have once used Mootools for one of my projects and it turned out to be running well. The performance was fast and I had no problem implementing its animation effects and plugins. However, I found several complaints about mootools on the Internet that will affect my choice of JS library in the future.
- Mootools does not have any well organized or responsive forum.
- It does not even have all of the many useful threads that were written for 1.1 available. What it does have – a Google group – is so undermonitered that John Resig’s profile shows up on the home page (now what does that say about JQuery responsiveness)! I have never, never! gotten a response to any of the requests I have made on the Google group page, despite my not being a noob.
- No plugins are available unless you already know where to find them, or you write them yourselves. As oppossed to J which makes it easy to get plugins. Yes I know they posted something on the blog.
- SVN was dumped for GIT. Maybe not bad from a technical standpoint, but I don’t know how to use GIT, and am not about to start learning.
- I rarely see the core developers on IRC, probably because we have different hours. But it is very difficult to get answers there, and thread is downright insulting to noobs – no matter how much he wants to learn. Worse though, the channel is not be stored. All of the questions and answers that are served are only to individuals – they cannot be accessed by someone who is searching for an answer. And lets face it – IRC is not good for most users. Is it so hard to have a chat box on the screen that allows for normal people to communicate, or at least to be able to see the thread?! I know a good framework that can be used to write such a tool!
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.
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
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
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.
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
. 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.
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.
MahShelf.com has been slightly optimized

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.