Improving the performance of Ajax on ThingsToDoSingapore.com

Recently I started working on Things To Do Singapore again.

Apparently the javascript libraries were getting quite thick and this was affecting the loading of the interface.

There is the use of the following :

  1. Xajax Library
  2. Jquery Library
  3. Google friends Connect Api
  4. Facebook Connect Api
  5. SWFUpload Library

After much observation I realised the SWFUpload Library sometimes takes too long to load and fails as well causing the whole interface to fail loading at time seriously affecting usability of the site. Perhaps this might be to cause of the high bounce rate I observer from my Google Analytics of 80%.

I spent this morning thinking how to go about solving this problem and this was the method I came to

Javascript library should be classify into two groups as critical and non-critical to user experience.

The Xajax Library, jQuery library are considered critical to user experience

The Google Friends Connect library as well as the Facebook Connect library are not often employed. though these two library are too tightly integrated with the core achitecture. Perhaps it was a bad design choice.

SWFUpload is not often used by other users and hence rarely employed.

Having done the proper classification, I next work  on loading the SWFUpload asynchronously after the other library and interface has loaded. This in face drastically reduced improved useer experience. It reduced user waiting time as well as at the same time reduced the error rate of the loading interface.

This was how I did it.

jQuery(document).ready(function() {

loadScript(“http://thingstodosingapore.com/swfupload/swfupload.js”);
loadScript(“http://thingstodosingapore.com/swfupload/swfupload.queue.js”);
loadScript(“http://thingstodosingapore.com/swfupload/fileprogress.js”);
loadScript(“http://thingstodosingapore.com/swfupload/handlers.js”);
//alert(“swf loaded”);
});

function loadScript(sScriptSrc) {
var oHead = document.getElementById(‘head’);
var oScript = document.createElement(‘script’);
oScript.type = ‘text/javascript’;
oScript.src = sScriptSrc;
oHead.appendChild(oScript);
}

Picking up Photoshop on the Run – YouTube

Recently I started using Photoshop intensively. More and more a need is there to do so in order to keep cost low.

Thankfully one night while having supper with Pasha, he unknowingly commented on how photoshop tutorials were so easily available over YouTube. What he said was totally true. You could just pretty much go about learning any aspects of a software you want to pick up over YouTube nowadays. No longer do you have to read through lines of ambiguous written instructions to understand what the hell is going on.

inexplicable bug with cooliris

Recently I did an extension for ThingsToDoSingapore.com by getting it to display images on Cooliris.

All is going well on Firefox until I attempted to do the following on Internet Explorer

A php script basically redirects the browser to this location

http://www.cooliris.com/tab/#cs=11&url=http%3A%2F%2Fthingstodosingapore.com%2Fcooliris.rss&guid=288f5cc75ef1fbabd4e8bc27a3de59ab.jpg

Where one particular image is zoomed in on.

Apparently when cooliris loads up this URL gets redirected automatically to

http://www.cooliris.com/tab/#cs=11&url=http%3A%2F%2Fthingstodosingapore.com%2Fcooliris.rss instead.

This is a most puzzling scenario. I will over the next few days go about understanding this issue to see if there might be a possible solution to it.

PHP set to further penetrate Enterprise solutions arena

What is Enterprise Application?
Enterprise Applications are software which provides business logic support functionality for an enterprise, typically in commercial organizations, which aims to improve the enterprise’s productivity and efficiency.

Characteristics of enterprise software:
Characteristics of enterprise software are performance, scalability, and robustness. Enterprise software typically has interfaces to other enterprise software.

Services provided by enterprise software are typically business-oriented tools such as online shopping and online payment processing, interactive product catalogue, automated billing systems, security, content management, CRM, ERP, Business Intelligence, HR Management, Manufacturing, EAI etc.

What is Scalability?
There are a number of different aspects of scalability. It always starts with performance, code maintainability, fault tolerance, and the availability of programming staff.

Why people has negative impression that PHP is only for small scale web-sites?
PHP is a language for the rapid development of dynamic Websites. It also has many features that are friendly to beginning programmers, such as the fact that it doesn’t require variable declarations. However, many of these features can lead a programmer inadvertently to allow security holes to creep into a Web application. The popular security mailing lists teem with notes of flaws identified in PHP applications, but PHP can be as secure as any other language once you understand the basic types of flaws PHP applications tend to exhibit.

PHP is an open source programming language that is widely popular on the web. However because PHP so popular in shared hosting environments, many people have an impression that PHP is only for small scale web-sites. This is patently untrue, and PHP is in use in many large scale web sites such as Yahoo, wikipedia and Lufthansa Online Ticketing for the creation of large web applications such as IMP.

Enterprises want to have specific assurances about a web technology they use in the following areas:

  • performance and fast development
  • reliability and security
  • extensibility – able to use industry standards to communicate with other software systems.
  • scalability – able to add additional servers as the load increases.
  • load balancing – ability to distribute the load so no single server is overloaded
  • high availability – ability to survive failure of server components transparently.

Conclusion:
To achieve high performance and scalability – it not only depend on language, it also depend on the developers.

Cited from Why not PHP for enterprise applications?

Problems integrating SWFupload with Joomla

I am currently working on integrating the SWFUpload library with Joomla 1.5. All seems to be working well except till the portion whereby the file is uploaded.

I get the response by the system to do a login and this response is returned to me via uploadSuccess(file, serverData) method in the SWFupload handlers.js file. The session is not maintained apparently when I do the post.

I am currently referencing http://docs.joomla.org/Creating_a_file_uploader_in_your_component for possible resolutions to this bug.

Now I am heading off to work as the Dancing Christmas tree. Hopefully I would solve it when I get back in the evening.

Japanese Anime One Piece, a first application of the Object Oriented Approach

I  have been watching One Piece the anime for a while now. True as what Endric has said there has been close to zero fill ins as compared to other Anime series.

Endric explained that One Piece was created using a different concept as compared to conventional animations. Namely it is an objected oriented structural approach whereby instead of one author having to draw up the whole series himself, he engages instead a team  of comic artist each of them concentrating on just one character.

This approach results in a very diverse variety of content as well as increased mulit facet building to the characters within the stories itself. making the anime series richer than most. All these on top of the fast turn around  time in churning out interesting stories. Comic artist also could leverage on each other to avoid the normal writers block, since they could draw inspiration from the ideas of their team mates.

All in all, I would give it a two thumbs up.

Extending Joomla to use Jquery

Recently there seems to be a lot of libraries that are being created using Jquery.

Joomla has been traditionally used with the  mootools library. Instead of using this library, I have opted to instead use the Jquery library.

I created a component for myself and  loaded the jQuery library into one of the sub folders of this Joomla component. I further instructed Joomla to load the javascript file.

Keeping my fingers crossed I wrote this syntex in the template file

<script>

jQuery(document).ready(function(){alert(‘hello world’)});

</script>

And Eureka!! It worked. Now I will go on further extending Joomla to create a very user friendly component for my clients which have been facing lots of problems with the counter-intuitive Joomla Administration interface.

12 Ways to Use Facebook Professionally

Facebook has to be the most talked about, and the most misunderstood, web service/platform right now. If you haven’t gotten drawn in by the hype, it may surprise you to learn that many people have already found Facebook to be an essential addition to their web working toolbox. Why? Because the Facebook social networking experience can be precisely what you want to make of it. Think of Facebook as a professional tool, and that’s what it is. It doesn’t matter how millions of high school and college students are using Facebook to get out of doing homework. You can make it into whatever you want, even your own personal media broadcasting channel.

Let’s look at 12 ways Facebook can benefit the web worker, particularly those who are home-based. The more connected you are to your co-workers and clients without being intrusive, the better your working relationship.

Note: you may need to have an existing Facebook profile to follow some of these links.

Think of it like personalizing your desk. You can’t help it. When you walk by someone’s desk, your eye is drawn to the pictures and the way they have personalized and organized their space. You pick up on clues to their lives without realizing it. Mary is a Mom whose desk is filled with pictures of two young children, and there are “To Mommy” pictures pinned to the side of her cubicle. You know what her weekends are probably like. John is still dating his high school sweetheart. He likes to scuba dive and he got some great shots of his last trip to Bonaire. You can see the paperback that Bill is reading on the corner of his desk. “Hey, I’ve been meaning to read that. Can I borrow it when you’re done?” Sally has a collection of labels from her favorite wine bottles. You know what to get her for her birthday.

Only display on your profile what you’d put on your desk. Just because Steve owns a picture his buddy took of him getting sick after an all-night party doesn’t mean he’s going to frame it and put it out for his co-workers to admire. Don’t add anything to your profile that you wouldn’t display for your supervisors, co-workers and clients to see as they’re walking by your work environment.

Look for old co-workers and current connections. I found more contacts on Facebook this way than I did on LinkedIn. Former colleagues have “Googled” me, and after a few emails to catch up we don’t communicate again. By adding these people to Facebook, I feel more connected to them without having to actively maintain a conversation via email. Look for business opportunities out of shared interests.

Add friends selectively. Contrary to popular belief, Facebook isn’t about “collecting” friends. There’s no reward for quantity, and you can have a rich experience on the platform with only a handful of connections. The quality of your Facebook experience will be based on the quality of the people in your network. Create a limited profile for those people that you are on the fence about whether to include. By default your limited profile contains everything in your full profile, so take the time to edit it down.

Add apps selectively. Right now, there are over 2000 apps you can add to your Facebook profile. The temptation may be to try them all. Don’t. Just because you can add Love Quotes to your profile, it doesn’t mean you should if you want Facebook to be a professional tool for you. Pick apps that won’t waste your time when you visit your Facebook home page, so avoid those that involve playing games. Read/Write Web offers a selection of top apps for work. Read the app description carefully and know exactly what you’re getting, and what the privacy settings are before you go. It helps to see how your contacts are using the app first. But never fear, worst comes to worst you can remove an app as easily as you added it.

Think of your apps in two ways…what do you want to see (that will appear on your Facebook home page) and what do I want the world to see (that will appear on your profile)? You might consider adding an app that you don’t display on your profile at all, but it uses the collective wisdom and usage patterns of your network to provide you with valuable information. Or, if you visit your Facebook home page often it can help keep you organized having nothing to do with your friends’ actions.

Edit your news feed preferences. You don’t necessarily have to know the moment someone adds a new picture, but you may want to know when they’ve made a new connection you may have in common. Click the “preferences” button on your Facebook home page and use the sliders to give preference to the type of information you want. The more you fine-tune this information, the less time you’ll waste sifting through useless updates.

Edit your profile and security settings. Give careful consideration to exactly who sees your profile and when. Don’t take the default settings which tend to expose more information than you may be comfortable. Take the time to go through each link in the Privacy area and make necessary adjustments. Maybe you don’t want people who are casually searching to know who your friends are or “poke” you. Maybe you don’t want a public profile (accessible to people who are not on Facebook). Facebook can come back to bite you as Miss New Jersey learned. This is especially true if your primary network is geography-based. It’s one thing to share your full profile with everyone who went to the same college or high school you did, it’s another to share your profile with everyone in the New York City metropolitan area.

Incorporate the tools you’re already using into your profile. Web workers like playing with all the latest toys. Do you blog? Do you Twitter, Pownce or Jaiku? Do you read feeds? There are Facebook apps available for all these services. If you have already use these tools professionally, why not add them to your Facebook profile? After you add the respective app, you simply do what you were already doing and let the app do the work. You can see the Twitter updates from your Facebook contacts without necessarily following their updates in Twitter itself. If your blog is on WordPress.com, you can add the WordPress app and your posts will automatically be pushed to your Facebook profile, along with recent comments. If you don’t host your blog with WordPress.com, you can easily use the built-in Notes application to post your blog feed as you publish. It will let your contacts know through your mini-feed when you’ve posted a new entry. Since your friends can edit their news feeds as easilly as you can, they can control how much of your life they really want to see.

The Google Reader Shared Items app publishes to your profile those items you’ve shared in Google Reader, as the name implies. Do you think your contacts would like to read that interesting post? Don’t disturb them by emailing them, click the “Share” button in Google Reader and now it’s right there on your profile with minimal added effort on your part. The “Top Shared” panel takes a del.icio.us/popular approach to showing the most shared posts across everyone who has installed the app.

Join Groups related to your business interests. Many groups on Facebook are nonsense, but there are quite a few that can provide useful information and professional connections. Don’t miss the already existing groups for our parent site, GigaOm and sister site NewTeeVee. Each group can feature a Wall (like a guestbook…a continuous scroll of messages) and threaded discussion lists. Rather than trying to search for groups, watch the groups that your friends are joining, as often you will find them of interest for yourself. After all, they’re in your contact list because you have something in common, right? You might even think about using Facebook to virally address a business cause, as some are doing in their effort to save Business 2.0 magazine from going under. I only wish there was a way to see updated discussion threads on one screen rather than clicking group to group.

Limit time wasted on Facebook. Facebook can suck you in easily. Remember, you have work to do. You won’t help your career if you fall behind on projects because you were too busy playing in iLike. If you find that you’re spending too much time reading Facebook message boards or reading about your friends’ favorite book selections then set limits for yourself. Facebook is a black hole. In order to get the most of Facebook, you have to be on the platform. Consider the Facebook toolbar for Firefox which will notify when you have a reason to go check the home page. You can also work with Facebook from your mobile phone, so think about babysitting your profile while you’re waiting in line or otherwise bored and not being productive anyway.

Be philanthropic. And look good to your friends while doing it. Can Facebook change the world? Probably not. But you can do your part and show it off. You can add the Causes app to specifically benefit nonprofit organizations. You can join groups that stand for actions you believe in. Use your Facebook profile to show the best side of you to your contacts, and if the environment or a cause benefits from your actions then all the better.

Ask Questions. Tap into collective intelligence with the My Questions app. Don’t know the best resource for a particular problem? Maybe your network can provide some insight. Many of us have used our blogs for this very purpose. Asking your question on Facebook instead filters out the general public, and doesn’t leave a trail for Google to follow.

Look for events. It’s not all concerts. There’s some opportunity for good, face-to-face business networking if you’re open to it. If you are already use the Upcoming.org site to find and track conferences and other events you can add that information to your profile. Or you can use Facebook’s built-in events application to see what conferences and events your connections may be attending. Last week I attended a wonderful NTEN (Nonprofit Technology Network) webinar that I only knew about thanks to Facebook.

Are you using Facebook as part of your work day? Tell us about it in the comments.

The article was cited from webworkerdaily.com

A web that is hard to escape from

I sat by the river of Kallang enjoying the breeze as the sun slowly set over the western horizon. it was the end of the year again and the winds from the north were blowing. The air was chilly. Certain parts of Singapore has been flooded today due to heavy incessant raining. Alena was with me entertaining herself. We sat beside each other, but as is normally the case, worlds apart from each other.

It so chanced across my mind the idea of what constitutes the shakespearen style tragedy during that very instance sitting there by the river with all these around me. In such normal tragedies the main character meets a bad end not because of his flaws but ironically because of his strength. A strength which in that unique instance of a situation becomes a fatal flaw.

Past few weeks the incentive to work for money slowly but surely evaporated like the morning mist with the coming of dawn. I was of the mind to step away for a while and do some journeying. What kept me working was but duty. To avoid no task, but to handle and deliver everything promptly as has been promised and agreed upon. Ironically, it was mainly due to closely sticking to this only mission statement and my lack of incentive for money that causes a contradiction.

My lack of incentive for money wishes that each project that comes in be the last for a while, my close sticking to my mission statement was like a magnet that inevitably attracts more and more projects and consequently money in my direction, additional of which I really have not much need of at the moment. It was hard if not impossible that other elements on this net of karmic cause and effect be convinced that my time and effort be inconsequential and not useful to their cause and agenda without my active involvment in betraying my cause and mission statement.

Metaphorically it resembled a Shakespearean style tragedy. One obtains not what one desires due not to his lack of strengths but exactly because of the existance of such strengths.

I continued sitting on the bench by the river pondering how I ever landed myself up in this web of things?