Category Archives: Uncategorized

Extracting Latitude and Longitude Coordinates of an Address

It is 6 AM – I will be hitting the hay shortly after sunrise as I finish coding a new component for my CRM. Part of the system required me to geocode an address before storing it in the database. Geocoding refers to extracting the latitude and longitude coordinates of a specified location. During my research, I found some amazing open datasets to help build such a system. However, I eventually sided with using Google’s enormous database of geocoded locations because I assume it is the most up-to-date.

So I ended up coding the following PHP script to extract the lat and lng coordinates of addresses submitted by the user. The script uses jQuery to send an AJAX request for a JSON output after querying the XML API for Google Maps.

I know this script would be useful for others so I am making it available to everyone. To use this code in your own projects, simply change the Google Maps API key found on line 10.

Use the following link to Download the Full Code. Have fun!

Brain Wall: Web 2.0 Post-it Notes

I have been having a lil’ too much fun building back-end applications lately. One tool I felt would be particularly useful is the incorporation of “Post-it notes” on individual pages within a Content Management System (CMS) – this would allow employees to leave messages and reminders for themselves or others in the organization. Got a customer complain that you would rather procrastinate on? Stick a Post-it note on it!

Then a neuron misfired in my head: it would be pretty neat if there was a crowd sourced implementation of virtual sticky posts…an app that would let random people post random thoughts on a webpage. So I ended up pulling an all-nighter to build Brain Wall - stick your thoughts.

Brain Wall

I came across a neat startup, BubbleShout, that uses a similar concept. Brain Wall app could have other uses, such as in conferences or weddings to prompt interactions from attendees, etc. Or maybe there is no practical use. Maybe I am just dehydrated and sleep talking. I should go to bed, have fun!

Anatomy of a Simple Search Engine

Google receives more than 100 million search requests each day. It is the job of a Search Engine to fetch, sort, and rank the appropriate results for each query from its dataset of several billion web pages. It goes without saying that this is a tremendously complex task – but essentially all search engines are composed of four attributes:

1. Crawling for new content.
2. Storing the content once it is found.
3. Applying algorithms to the content to glean off useful data.
4. Making the content searchable.

It is possible to build a simple search engine of your own. I have written a simple script in PHP to crawl, store, and search the content. Use the code in the following links to get started:

1. Code for how to build a crawler that stores data in an index using MySQL. (example)
2. Code for searching the data once it has been stored in the index. (example)

PHP code for Search Engines

Powerful Search Engines need to process tremendous amounts of data – this is often accomplished using programming environments such as C and Python. If you’re interested in learning more about building crawlers and writing sorting algorithms, I suggest you read Programming Collective Intelligence: Building Smart Web 2.0 Applications and Webbots, Spiders, and Screen Scrapers: A Guide to Developing Internet Agents with PHP/CURL.

Search Engine Optimization Course – Spring 2011

Many marketers are interested in organically growing traffic to their websites. It is the most cost efficient and scalable strategy for both small and large businesses. Search Engine Optimization (SEO) is an area of study that looks at present developments in the Search Engine Marketing (SEM) space to optimize website content for traffic and user retention.

I have been teaching a course in Search Engine Optimization at Humber College for the past 2 years. The course introduces students to best practices in SEO; such as, HTML optimization, meta tagging, server directives, SE submission, content targeting, traffic analytics, website engagement, conversions, content distribution, social media, keyword analysis, A/B variant testing, online advertising, geo targeting, etc. The course is primarily geared towards career oriented individuals involved in promoting businesses or marketing online properties.

The course begins on March 1st, 2011.

400 Words to Inspiration

I dream my painting, and then I paint my dream. – Vincent Van Gogh

Richard Dawkins is one of the most interesting people of our times – and he had this to say about life: We are all going to die, and that makes us the lucky ones. Most people are never going to die because they are never going to be born. The potential people who could have been here in my place but who will in fact never see the light of day outnumber the sand grains of Sahara. Certainly those unborn ghosts include greater poets than Keats, scientists greater than Newton. We know this because the set of possible people allowed by our DNA so massively outnumbers the set of actual people. In the teeth of these stupefying odds it is you and I, in our ordinariness, that are here!

We all had some crazy ideas and dreams when we were kids. When people asked – “What do you want to do when you grow up?” you didn’t say “I want to play safe and be an executive for a Fortune 100 company” or “I want to work for the government for the job security”? You wanted to do something that excited you, that you were passionate about – “Air Force, Astronaut, Sports, Artist, Miss World” etc. You didn’t even think if that would get you enough money. You just wanted to do it.

As Tony Robbins put it, “The only thing that’s keeping you from getting what you want is the story you keep telling yourself about why you can’t have it.

As is often the case, the most uncomfortable thing to do is the one that people need to act on the soonest.

Failing is not scary. What’s scary is that you are 60 and reflecting back on your life “May be I should’ve given my dreams a chance, maybe I would’ve succeeded, maybe I would’ve lived my dream” If you wait until it’s obvious, it’s already too late. You have missed the boat.

Take a minute to contemplate this: What would you be doing right now if you had no risk of failing?

I don’t know any answers, but I know that the most important investment you can make is in yourself.  As someone wise correctly remarked, once you’re on the right path, all you have to do is keep walking.

I made a big decision today to begin a new chapter in my life. Wish me luck.

Emerging Technologies and Trends in Social Media

I delivered a workshop to the Directors Guild of Canada (DGC) on Emerging Technologies in Social Media. It was primarily based on an updated version of my previous slideshare presentation at Telefilm. So much has happened in this space since my last workshop. There is great amount of interest in real-time content, cloud computing, and tablet computers.

Some useful insights:

1. Much of the innovation in mobile is driven by the convergence of mobile with social media sites.
2. Search advertising is more effective than display ads because it targets intent.
3. The social graph represents objects in the graph (people, pages, photos, etc) and the connections between them (e.g., friend relationships, shared content, and photo tags).
4. 2011 will be the year of the Tablets. Say goodbye to Netbooks.

View more presentations from jawadshuaib.

Programmatically Determining Gender Bias on Facebook Events

Few things in life suck more than arriving at an event dominated by just one gender.payday loans To rectify this social dilemma, I have created a simple tool to determine the male to female ratio of any public event on Facebook. Yes, now there is an app for that!

This is just a proof of concept =) The application uses the Facebook Social Graph API to query the specified public event and then iterate over its member profiles to determine the gender bias.

casino online

Mobile Application for finding Wallpapers

Last night I went on a hunt for a new iPhone wallpaper. Google Images &> “iPhone Wallpapers”.

I didn’t find anything fancy despite some digging around.

The problem is that image search is not optimized for this purpose – the good folks at Google couldn’t care less what my iPhone wallpaper looks like.

So I came up with a mobile optimized app to help find a wallpaper specific to your device.

In other words, if you are on a phone, tablet or desktop you will get images with resolutions calibrated exactly for your device.

It is a browser based application so you can start using it right away from any platform; iOS, android, windows, etc.

Pretty neat, huh? casino bonus

A Systems Approach for Building Scalable Businesses

Henry Ford Assembly Line

Everything around us is a system. The human body is a system comprising of organs. An ant colony is a system. Our Solar System is a system. A thousand solar systems, a million ant colonies, and a billion humans all share the same underlying principles of growth and organization. Without systems, there is chaos.

Why do majority of new businesses fail, yet most franchises succeed? Systems.

So, it comes as no surprise that good businesses have well defined procedures for handling sales, marketing, IT, customer service, finance, etc. Any process that may need to be repeated in the future should be systematized. Procedures are important because they can be repeated and scaled without re-inventing the wheel each time. It is the entrepeneur’s job to focus on creating and improving these procedures so that the employees may run them.

And how do you build a system? Simply document each and every process. Documented procedures save time by templating the initial hard work. Here are some simple examples for small businesses:

1. Create a template for the weekly newsletter.
2. Create a procedure for saving tax receipts and business expenses.
3. Build a CMS to update the website.
4. Create a cover letter template for all business communication.
5. Use a CRM to manage customer database.

This sort of procedural approach makes it possible to refine processes based on the success and failure associated with each sub-system. online kasino

Wii Controlled Robotic Arm

Last month, I bought a neat little robot called OWI-535 Edge Robotic Arm. I immediately fell in love!

Inevitably, though, I ended up jamming it open and hooked a micro controller into it. I used an Arduino Uno micro controller to program the arm to move in random directions. It was exciting to watch it move using its own logic!

Around the same time, I came across a cheap Wii Nunchuck on eBay. I decided to try and hack its internal gyro system to control the robotic arm. The final product was an Arduino based Wii Nunchuck controlled robotic arm. And here is the video:

If you are interested in building something like this, you are welcome to use the following resources. I am also open-sourcing the code for the tinkerer’s out there :)


1. Use an Adafruit Motorshield to control multiple DC motors
2. Read data from Wii Nunchuck into the Arduino
3. Wiring schema for the Non-OEM Nunchucks casino