Thursday, May 07, 2009

iPhone Search Bar and Web Services

I have started experimenting with developing applications for the iPhone last week - which is mainly why I bought a new mac mini to replace my old PowerBook G4.

Apple did an amazing job with the documentation and there are a lot of great tutorials and resources available on the web and iTunes. After playing around with the 'hello world' app example I went a head and applied lessons from four different tutorials to utilize the search bar, picker view, web view and consume a web services

The following "Nael's Are You Feelin' Lucky" example combines these elements to present behavior similar to Google's "I'm feeling lucky" button on their search page - except it uses the Yahoo! Search Web services instead.

It was a great little educational experiment. Feel free to comment.


Tuesday, May 05, 2009

MAMP: Mac, Apache, MySQL, & PHP

Install Apache, PHP and MySQL on a Mac in a few clicks. Search "Mac Apache MySQL PHP" and the first result you will get is MAMP. Like the popular LAMP installs for Linux you can do the same with a Mac with just a few clicks. You also get additional features that I have not seen on LAMP installs: a command and control center and Dashboard widget.


Technorati Blogosphere Tag Chart

Just a few minutes after claiming my blog on Technorati I got introduced to their Blogosphere Chart widget which goes to show how useful this tool can be for not only researching your topics but keeping tabs on the top tags this week.

The chart below compares Personalization vs. Context vs. Social Media vs. Social Web

 
You can probably already tell what is on my mind, why is 'Personalization' not a popular tag? It almost looks like Context, Social Media, and Social Web are going hand in hand, yet in my honest opinion Context and Personalization are like peanut butter and jelly (I really don't like peanut butter though) Given your visitors' context a great website will deliver content specifically personalized for that user. 

Just a tiny observation on my end.


New Bloggers: Submit your content to the Social Web - the sooner the better

Over the weekend I created my Technorati Profile to help promote my blog, build links, network and aid in my research before posting. Basically these are the reasons why one should use Technorati - one of many similar tools.

About a month a go I started an experiment on this blog to generate more traffic with more focused and consistent content. The experiment started out with more technology focused content where I mainly write about the Social Web,  Marketing via the Social Web, and applications mainly ones that have to do with a map or mash-up or again the Social Web.

The experiment also included new branding and theme to disassociate myself from the old brand where I wrote about "Random Sh!t" which included many different topics including but not limited to Politics, Photoshop Cartoons, Software, and the Flight Simulator I worked on right after graduation in 2006. I still chose to keep these labels and content as a history and a reminder to remain focused on the new purpose of my blog. i.e. To Present My Thoughts on Technology and Web Applications. 

This blog started in 2006 just after I completed my Software Engineering and Management degree. Back then the topics were not as focused as they are today, and the traffic I am receiving via Twitter is outstanding compared to what this blog was used to.

So I decided to take this experiment a step further and claim my blog on Technorati in hopes to generate even more traffic. The OpenID method of claiming the blog did not work for me so I am using the other method of embedding the provided link on my blog. Instead of just posting the link somewhere on the page, I figured I might as well make a blog post of it and talk a little bit about Technorati. Of course since I have not claimed my blog yet on there I have yet to gain any knowledge on how to best promote your blog on Technorati - feel free to comment to share your experiences -

I will however post on this next week once I have experimented with this new tool. At the end of the road there is no harm done by acquiring another knife to carve myself a tiny piece of the steak one would refer to as the Social Web. 

Sunday, May 03, 2009

Social Media and the Swine Flu: The Social Web Pandemic

What does it mean that a disease has been categorized as a pandemic? Mainly the disease must spread through a population dispersed over a large geographic area; a continent or even several continents.

Consider the Swine Flu example. Lets say the Swine Flu is the recent profile page on Facebook or Twitter for example with around 400 friends or followers - those that caught it world wide. In only a couple of weeks the Swine Flu became one of the top ten topics discussed on Twitter. This is the main essence of the Social Web. What lessons can be learned from this event and applied to promoting your website, product or service via the social web?

Rule 1: Content is King
A search on Google for "Swine Flu" returns about 260 million results, that is a lot of content. From just the results on the first page we see only one result that we can categorize as the most authoritative source - the Centers for Disease Control and Prevention (CDC) website. Think about this as your official website when one searches for the main topic on your website, product or service. Your website needs to rank high on the keywords that are crucial to your business.

Rule 2: Start a [INSER YOUR BLOG, PRODUCT, SERVICE NAME HERE] pandemic
Now scan through the results on the first few pages, what do you find in common? A whole lot of them are news websites and blogs - Reuters (8), BBC (9), Guardian (9), Harvard (9), CNN (10), ... and then we have digg.com. Why is this interesting? For two reasons,

  • Digg.com has a page rank of 8, comparable to all these news websites. See the numbers in parenthesis above.
  • But most importantly, you can freely submit your content to Digg.com. Its much harder to get your content on the above sites.

Digg allows the most obscure blogs and websites surface by allowing their members to 'dig' the content and collectively determine the value of your content.

There are many online destinations such as Digg that allow you to do this: del.ici.us (8), Slashdot(9), StumbleUpon (8), Technorati(9), Reddit(8).

Then there are the social networks such as LinkedIn(8), Facebook(9), and Twitter(9) that also allow for propagating your content. Think about it, all these websites allow you to propagate your content and have the same Google PageRank as the World's biggest news corporations.

Rule 3: Keep up with the trends
So back to our Swine Flu example. This event allowed - as much as it is unfortunate - for very creative people to promote their products and services. Their products did not include health answers to tips how to prevent getting infected but included a Swine Flu Google Maps mashup, a cartoon, and a Swine Flu iPhone application. It is very important to keep up with the trends and optimize your website accordingly in order to funnel some of these searches back to your site. 

The benefit of doing this is mainly because optimizing for keywords within your field of expertise would only result in a fraction of the potential visitors. A search for 'Swine Flu' does not put the rest of my life on hold - I may in fact have had a problem and by just seeing the Swine Flu Google Map a spark may go off in my head: "Hey, that is exactly the solution to my problem: I need a map that will ...."

A really good book to read on trends and how they spread like epidemics is Malcolm Gladwell's "The Tipping Point - How Little Things Can Make a Big Difference" The topics he writes about in this book cannot be any more applicable to trends on the Social Web and how little things can lead to a viral promotion of your product or service allowing you to hit critical mass much quicker than traditional approaches to marketing.

Marketing and promotion on the Social Web is a new beast, so one really needs to look at it differently.

Saturday, May 02, 2009

URL SEO Best Practices & Liferay Virtual Hosting

It is very important to have a good URL if you are looking to improve your search engine page rank. At least if you are doing everything wrong in terms of SEO, having a good URL gives your website a little bit of hope.

Don't use numbers, page ids, user ids, session ids, or even odd characters
Think about it, if the URL does not speak your language, you will have no idea what content it may point to and hence there is very little reason for you to click it. For example, what gives you more reason to click through this:
this:
http://www.youtube.com/watch/The%20Hostage%20Audi%20Ad
or this:
http://www.youtube.com/watch/The-Hostage-Audi-Ad

Unfortunately Youtube does not have friendly URLs - but they don't need it since they are blessed with high page ranks - on the other hand the rest of us should care.

Don't have multiple URLs for the same page
Here is a thought imagine you are asking for directions to the highway and someone tells you:
  1. You can go North on Cawthra turn East on Burnhamthorpe, then North on Hurontario and you will see the ramps after Robert Spec....OR
  2. You can stay North on Cawthra until you get to the ramps when you reach East Gate
If I am already late or lost I really don't need to think about different routes to my destination. So stick to canonical URLs - that is the standard way of giving out directions i.e. http://www.elshawwa.blogspot.com and not http://elshawwa.blogspot.com

Also, if you are using friendly URLs for your content don't even think about leaving the non friendly URLs. Whatever reason you may have to think it is good, you are wrong. So having http://www.mywebsite.com/members/12 and http://www.mywebsite.com/members/nael is never a good idea. You may tell yourself "But this way I give my users more ways to access my content and they can choose what they like best". Do you know what happens to restaurants with overstuffed menus operating under the misguided notion that more choice is better and that to be successful in that business you need to offer every dish under the sun - even if it means offering french fries in an authentic Indian restaurant? Well, they end up on Kitchen Nightmares with Gordon Ramsay. What you would do in this case, is point these old URLs to a 404 page where you can direct the user to the right URL.

Bloggers: say no to a short URL
Goes back to the first point of having descriptive URLs:
  • http://www.elshawwa.blogspot.com/seo
  • http://www.elshawwa.blogspot.com/seo-url-best-practices
Which would you click on? Sure they are both descriptive but clearly one is better than the other. URLs can be multi word - just separate them with dashes - so make use of max size. On blogger I first publish the post with the keywords that describe my post the best as the title. I then edit it and save it with the proper title I want.

Say no to long URLs
Ok now you might think I am being indecisive here, but hear me out. For the sake of the argument, say you are going for an interview and you are lead through 6 doors, down 4 flights of stairs, through more doors, down an elevator into the basement, and finally through even more doors to meet the boss. What would you think at this point? I would think this is some kind of joke as clearly if this person was of any importance they would not be tucked away where the sun does not shine.
So back to URLs, if you see yourself doing something like:
http://www.mywebsite.com/news/world/europe/italy/soccer/ac-milan 
then think of that boss tucked away in the basement's basement - that is what your visitors will think.

So what is behind my reasons of publishing this? Mainly because by default content management applications generate URLs for you and attach all sorts of stuff to the url, from session ids, content ids, user ids, dates, times, you name it they have it. For example Liferay Portal does that, and if you go to Liferay's website you will see it. That /web/guest/home part is really annoying and adds no value to your URL. Last week I figured out how to get that rubbish out, and from now on this is the first thing I will do when promoting any Liferay portal to production. I'm actually surprised Liferay has it on their production site, and that is mainly the reason why I have incorrectly assumed it can't be removed.

Removing the /web/guest/home part from a Liferay URL is easy:
  • First go into your Communities Admin panel and decide on the Community you want to do this for
  • For your public facing site, that is your Guest community. So click on the Configure Pages action under Actions
  • One of the tabs is "Virtual Hosting" - click on it
  • Set up your public domain i.e. mywebsite.com
  • Clear out the field that appends /web after the domain. Usually you don't want anything in there unless you have multiple Communities in Liferay





Friday, May 01, 2009

Thinking Out Loud: Content Personalization - Context Aware Ads and the Social Web

In continuation from the first Thinking Out Loud post titled "Content Personalization - Tell Me Who Your Friends Are" the second - yet more important - use of this type of personalized content is targeted advertisement. Google has owned this area with their AdSense and AdWords products to deliver 'personalized' advertisements to you. Delivering ads based on content and context are very precise methods to target advertisements, but can it be done better? and where can the Social Web have a role?

I'm logged in to my GMail right now reading a message from Rogers regarding my TV cable service and guess what? All the ads on the right are about TV, whether it is watching it online for free, switching to another cable company or getting satellite TV. Those are very precise advertisements, but they are just guesses based on the text around it. If I just signed up for Rogers last week, odds are I am not looking to switch my provider today - what a waste of precious ad space. Is there a better way to target ads?

Here is another example that will better illustrate the business case for this type of advertisement. I just bought a Mac Mini this week and I just Googled "Mac Mini". Based on my  search criteria, the content present on the page and some complex weighting algorithm the ads Google will serve up will be related to purchasing a Mac Mini or a computer in general, but I already bought one  - again very precise but what a waste of ad space.

One might say "but Nael, your search term was vague, Google did the best it can". Unfortunately the average user does not know how to build a proper search engine query to reach to the results they are looking for with as a little searching as possible. The first thing that will come to mind is to search the product name, and then if that did not give them what they want they'll add another term and so on until eventually they will find what they need or they give up and try later.

Now imagine you can create a profile on these search engines that deliver these targeted advertisements, not just a profile with the usual information on it; i.e. name, location, picture, interests, etc. but one you can point to the different windows into your online identity; blog, Twitter, Picasa Web, and LinkedIn. Now the whole is greater than the sum of its parts.

In this manner, advertisements can become even more personalized - not just by the search terms you provide - but by using the aggregate of all the content you freely publicize on the social web.

So what is very interesting is that it seems Google picked up the ball in this field by allowing you to create your own Google Profile like the one I just created. What is this for I wonder? It is not so hard to imagine that it can be used for the next generation of personalized advertisements, or it can also be Google's Facebook killer, either way we can agree on at least one thing, there is no better place to have such a profile page than on Google.