Getting Down to Business with Facebook Pages

February 19th, 2010 by Jason

Facebook has some pretty awesome numbers; today they boast over 400 million active users, of which 200 million login every single day. Facebook users spend an average of 1 hour a day on Facebook and each user has an average of 130 friends. More than 60 million status updates areposted each day and 3 billion photos are uploaded to the site every month. But wait, there’s more. Enter the mobile Facebook user, or rather Facebook fanatic. Of those 400+ million users more than 100 million access Facebook via mobile devices (smart phones) like the iPhone, these uber users are twice as active on Facebook as the already impressively engaged non-mobile users.

In your Facebook

In your Facebook

No matter how you slice it, there’s a whole lot of Facebooking going on and it’s no wonder why businesses want to get in on this social network feeding frenzy.  So what is a business (brand, product, organization, public figure, artist or band) to do?

For starters, create a Facebook Page (http://ow.ly/19eM4). Having a Facebook Page lets a business exist in a fashion similar to a typical user profile and allows businesses connect and engage customers. Since your business page essentially acts like another friend to your connections, which in facebook lingo are called fans, bringing friends of those fans, that much closer to being fans of yours! Essentially this could be equated much like a giant ripple effect which keeps driving word-of-mouth to a wider and wider circle of fans, as your fans interact with your Facebook Page by commenting and linking to content on your Page (or posting on your Page depending how you have it configured) information spreads to their friends via News Feed.

If all this wasn’t enough to make you spring into action, as more than 1.5 million local businesses already have, I leave you with a few interesting figures pertaining to Facebook Pages to light the fire. More than 20 million people become fans of Pages each day which averages out to 4 Pages/month/user and the average user writes 25 comments on Facebook content each month. Those could be fans of your Page, and comments about your products, service, brand or business which could be rippling out across each fan’s network of an average of 130 friends. That’s a lot of potential word-of-month for showing up and sharing good content with an audience that’s probably well worth the effort.

In future posts we’ll introduce other Facebook features such as Facebook Share and Facebook Connect which offer additional opportunities for increasing exposure and engaging your audiences.

*statistics used in the article available are available here: http://ow.ly/19f6t

Practical, Useable, Convenience: Google Local Business Center and The Rise of Local Search

February 12th, 2010 by Jason

We are all familiar with the old adage “location, location, location” so it is no mystery that being conveniently situated where current and potential customers are plays a prime role in a business’s ability to maintain and grow its customer base. A sizable component of a business’s success is based upon, you guessed it, it’s locale. Although the original context of this business proverb was firmly planted in the geography of bricks and mortar, today this same truism applies triply (that’s 3x) to the space your business occupies in a search results list!

This is where local search comes to the rescue. Local search shines by delivering customers you may never have otherwise had. According to Wikipedia local search “is the use of specialized Internet search engines that allow users to submit geographically constrained searches against a structured database of local business listings.” That is to say, someone (a potential customer) types something like the following into a search engine…

“pizza delivery grand rapids mi”

A typical local search.

A typical local search.

…and, voila! The search presents the results as a list or maybe even a map showing all the nearby pizza deliveries in the area you specified; it’s the new way to “let your fingers to do the walking” and everyone is doing it.  Local search is a highly effective form of pure Internet advertising, poised to eclipse traditional advertising and it’s easy to see why with the proliferation of ubiquitous, always-on internet devices and location enabled search. Best of all, it’s free, easy to setup, and offers powerful tools and features to increase exposure and drive more business.

Results from a local search

Results from a local search

Several services offering great features of which every business owner should take advantage include local.yahoo.com and yelp.com. We’ll focus on Google’s Local Business Center (www.google.com/lbc) offering to get your business on the way to harnessing the power of local search.

Google has distilled the essence of its Local Business Center down to three main areas: manage your local listing, engage potential customers and see the results. Here’s a quick overview of some of the features you can look forward to and how to begin cashing in on local search for free!

Offer coupons online.

Offer coupons online.

To start, head over to www.google.com/lbc and sign up. From there, answer the questions and complete the forms as requested to add or claim your business listing. To verify that you are in fact the owner of a business, you can elect to have Google call the listed phone number of your business and then enter a code (nearly instantaneous) or have a postcard sent to the business address (about 10-days); I had to claim the Micro Visions, Inc. listing via post. Once you receive and enter your business verification code you’ll be free to post information within your listing.

A listing page as seen by customers.

A listing page as seen by customers.

LBC analytics

LBC analytics

Geo-analytics display where search comes from.

Geo-analytics display where search comes from.

Investing a little time creating a local business listing will help inform your customers and makes your business standout above competitors.

A Tale of Two APIs

February 4th, 2010 by Randy

At Micro Visions, we are continually exposed to various application programming interfaces (APIs) in order to bridge client applications to existing codebases around the web. APIs are nothing more than libraries of code, exposed publicly by a company, for someone else to hook their code into. APIs give developers access to external data like stock quotes, flight data, subscription lists and news.

One of the best APIs we have had the pleasure of using belongs to Campaign Monitor. Campaign Monitor (CM) is a web service where clients can manage their email lists. We have developed applications that bridge our own client’s applications with services provided by CM. The service is top notch and their API is a joy to work with.

We’ve also worked with PayPal’s API. PayPal offers a wealth of developer documentation at x.com. Unfortunately, the documentation is inconsistent as you travel between the official documents, the online documents, the support forums and the unofficial forums (where many of the answers are found of course). I posted an article to specifically address some of the hurdles you will encounter in configuring Recurring Payments (subscriptions) for PayPal’s Website Payments Pro plan.

Companies offering their own APIs would do well following Campaign Monitor’s example. Solid code and solid documentation make them an easy referral for future clients.

A Whole New Meaning for “Mobile Device”

February 2nd, 2010 by Rob Lough

Teaming with Microsoft on the 2008 introduction of SYNC, Ford Motor Company ushered affordable mobile technology into the OEM mainstream. Now offered on a dozen or more Ford products, SYNC has allowed almost any mobile phone and some media players to be brought into a SYNC-enabled vehicle and used via steering wheel, radio controls, touch screen, and voice commands.

For 2010, SYNC will make the car another iPhone accessory. With SYNC Open API, Ford allows outside developers access to SYNC, enabling it to support an increasing number of third-party iPhone applications, available through Ford’s own app store. Ford has also introduced SYNC in-car WiFi, used in conjunction with a customer provided cellular data card, effectively turning the car into a mobile hot-spot.

http://www.fordvehicles.com/innovation/SYNC/

Managing Updates Across Multiple Social Networks with HootSuite

January 29th, 2010 by admin

Many a friend, family member, colleague and client have asked how they can simplify posting updates to multiple social networks. Rather than individually tweeting on twitter and updating Facebook and LinkedIn, there are several options we can use to move updates from one social network to the others so that each of these disparate web communities are able to be updated simultaneously without the hassle of signing into each individually just to post the same update.

I prefer to “tie” my LinkedIn, Facebook, and Twitter accounts together using a slick web service called HootSuite.  HootSuite users compose a single update, check off the accounts to post, and send it. In a single click Facebook, LinkedIn and Twitter are all automatically pushed the latest news, all from one place.

The free web service hootsuite allows users to post to multiple social networks at once, among many other cool features.

The free web service hootsuite allows users to post to multiple social networks at once, among many other cool features.

Additionally, HootSuite offers some other great features, like historical click statistics for displaying the most popular messages by respective referrers.  Another extremely helpful feature is the ability to compose and schedule pending messages. You can even schedule blog posts for Wordpress.com accounts.  There is also a link shortening service ow.ly that transforms links like this: http://microvisionsinc.com/blog/2009/10/solid-state-drive-technology-delivers-exciting-promises/ into a link like this: http://ow.ly/11VEt ; helpful when limited to 140 character tweets.

HootSuite statistics make tracking the number clicks and where clicks come from is easy.

HootSuite statistics make tracking the number clicks and where clicks come from is easy.

HootSuite is easily set up and convenient to use.  Since setting up my account I’ve used it almost every single day and can highly recommend this amazing, free, online tool for managing updates on all your social networks.

HootSuite has a beautiful interface that's easy to use.

HootSuite has a beautiful interface that's easy to use.

An Introduction to Podcasts

January 22nd, 2010 by admin

While visiting loads of friends and family during the recent holidays and while conversing with coworkers and colleagues in subsequent weeks, I have been floored by the number of people who tip their heads to the side with a vacant stare and shrug their shoulders when asked, “What are your favorite podcasts?” or, “Which podcasts do you subscribe and listen to regularly?” We’re talking complete befuddlement.

These reactions have compelled me to spread the news about this incredible technology and the amazing sea of solid content that friends, family, colleagues, and cohorts could be enjoying, both to educate and entertain. Even though “podcasts” have been around for nearly six years and have been steadily building popularity, podcasts are still more than a bit under the radar.

Now, if you want to be cool before this technological zeitgeist goes mainstream, here’s a crash course in podcasts to teach you most everything you need to know to…

  1. Be hip to a cool “new” tech
  2. Explore a sea of incredibly informative, entertaining, and educational content

It’s 2010, we have two computers per household, ubiquitous wireless broadband in every coffee shop across the nation, 1,000 songs in our pockets* and now we give you the podcast!

Some prefer to use the term netcast as “podcast” is a little misleading. Podcast was borne of the popularity of Apple’s portal media player, the iPod. Also, with Apple’s inclusion of a Podcast Directory in their iTunes software, podcast is by far and away the term you’ll most frequently hear. There’s nothing wrong referring to a podcast as a netcast or vice versa, just know they are the same thing and you can access them on any computer or portal media player, not just Apple’s iPod. I’m in the habit of calling them podcasts and will refer to them that way henceforth.

What is a podcast?

Wikipedia has a great explanation: “A podcast is a series of digital media files (either audio or video) that are released episodically and downloaded through web syndication.” It’s like television or radio shows produced for distribution on the web via a subscription.

The audio and video quality will vary, depending on the equipment the podcast producer uses, but one thing is true of all my favorite shows: The content is top notch and delivered with pure passion. 95% of all podcasters produce their shows as a labor of love and from a desire to deliver a solid show that entertains, informs, and educates. Don’t take this the wrong way; it’s not as if every other podcast is a high school kid with a web camera playing Mister Wizard in the basement. Many podcasts are produced by people (or a team of people) with talent and production quality rivaling mainstream media. Some content is even in high definition and starring talent that gives professional broadcast journalists and television anchors a run for their money. Mainstream talent often guest stars on podcasts and some even produce podcasts themselves! You will be amazed at the content and production quality of podcasts available. Moreover, many of the major networks and mainstream broadcast providers such as NPR, PRI, ESPN, CNN, NBC, ABC, CBS, FOX, Discovery, G4, Newsweek, BusinessWeek, the New York Times are available.

Whatever you’re into, whatever you want to be more clued-up about or entertained by, it’s out there; hobbies, health, fitness, video games, business, sports, news, cooking, movies, automobiles, comedy, writing, television, acting, film making, science, technology, politics and the list goes on. As with the internet, there’s no end to what’s available.

Where to find podcasts

iTunes software is available free for download for both Mac and PC and has a beautifully organized directory of 100+ thousand free audio and video podcasts available for download inside their Podcast Directory in the iTunes store.

The iTunes Podcast Directory

The iTunes Podcast Directory

Download iTunes here: http://www.apple.com/itunes/download/

Another excellent, free open-source, podcast client is miro: http://www.getmiro.com/

The Miro Player

The Miro Player

Once you have one of these “podcatchers,” software built to find and subscribe to podcasts, you can browse genres or search for topics in their podcast directories, read descriptions, reviews, and sample episodes. When you find one that interests you, subscribe to it, and when a new episode is released iTunes will automatically download it for you!

New podcasts in my iTunes library

New podcasts in my iTunes library

How to watch/listen to Podcasts

Options abound for watching and listening to podcasts, but here are the main three:

  1. Podcatcher software like iTunes, Miro, or others
  2. Portable media devices like an iPod, Zune, or others
  3. Web browser on a computer to play episodes right from the web page

If you want to take the podcasts with you wherever you go, you’ll need an iPod or other portable media player such as a Zune (Microsoft only). This is one of my favorite ways to consume podcasts. I grab my iPod packed full of new shows and hit the treadmill or road, learning about all the lastest tech news and video games, movies, and book reviews. I watch most of my subscription video podcasts on my laptop, since it’s hard to run and watch a video podcast. For some podcasts to which I don’t subscribe but on which I occasionally find content of interest, I’ll just watch or listen to a few episodes right from the podcasts’ website, picking and choosing what I want to catch up on.

No matter how you listen to your favorite podcasts, I urge you to explore the podcast directories and find some favorites. Begin enjoying the content podcasters pour into each and every episode they produce.

Here are few staff recommendations worth checking out:

  1. This Week in Tech (TWiT)  - weekly audio podcast on all things tech
  2. MacBreak Weekly – audio podcast about all things Apple Computer (iphone, iPods, OS X…)
  3. GeekBrief.TV - quick video podcast geared towards gadgets, tech news and other geekery
  4. Grammer Girl’s Quick and Dirty Tips for Better Writing – excellent audio show on grammar if you want to know the difference between “affect” and “effect”, “loan” verses “lend”, “shall” verse “will” or when to use “which” instead of “that” or what the difference between “biweekly” and “semiweekly”
  5. Inside Home Recording – all about home studio recording
  6. Podcast Academy – a podcast about how to podcast, great podcast education
  7. Net@Night – covers what’s happening on the Net right now like cool sites, web services and viral videos
  8. Notes in Spanish Inspired Beginners – an awesome free way to learn Spanish
*Actually today an iPod has the capacity to hold over 40,000 songs, or audio podcasts as it were.

Democracy and the Internet

January 15th, 2010 by Jason
Jason Johnson and Jimmy Wales

Jason Johnson and Jimmy Wales

If you’ve ever done a search on the web for just about anything, chances are one of the results right up near the top of the page was for a subject page within Wikipedia.  Wikipedia is the world’s first, largest, online, open-source encyclopedia truly created by the people, for the people, in that the entries are articles which have been written collaboratively by volunteers from all over the world. What’s more, just about all of the articles can be updated, changed and edited by anyone with access to the Internet.  Today Wikipedia is “the” encyclopedia on the internet, and one of the ten (sixth according to Alexa ranks) most visited web sites in the world.

The effects of Wikipedia are profound and fundamentally changing the way knowledge is created and distributed throughout the world today. So where did it all start? With Jimmy Wales.

Jimmy Wales is the founder of Wikipedia, ranked 12th by Forbes Magazine in their first annual “Web Celeb 25” List, and named one of TIME Magazine’s “100 Most Influential People”. Today we had the satisfaction of attending his speaking engagement about “Democracy and the Internet.”

He shared stories about how developing and closed countries are slowly, cautiously becoming more and more democratized (even if only online), and how Wikipedia and the internet as a whole are beginning to ever so slightly “flatten” the world, open markets and promote cultural understanding.  Another interesting theme Mr. Wales presented during the opening of his speech, using various analogies, was how over time many things have increased in complexity, yet accessibility has broadened,  while our tools and maybe minds have too.  It was a fascinating presentation and I had the privilege of meeting him after the talk.

Keeping Changes in Check with Version Control

January 12th, 2010 by Randy

Micro Visions writes new source code for web and enterprise applications every day. As you can imagine, changes to these files, be it new features or bug fixes, can reach into the thousands every week. But what happens if new code for a proposed new feature is written and breaks the existing code in place? That’s where version control comes in.

Micro Visions uses version control software to keep source code for a project organized. Basically, this means that working code is “checked out” of a repository, worked on, then “checked back in” after changes are made. If tomorrow we realize that part of the project is now unusable because of a bug introduced yesterday, we can ask the repository to check us out a working copy of the entire project, as it stood yesterday, before the changes. This is only one of many scenarios where version control is invaluable.

We currently use TortoiseSVN, an open-source Windows client of the popular Subversion software. We like its platform-independence and its flexibility.

When first starting out with this product, however, and after pouring through the documentation, I couldn’t really quite get the hang of it until I started using it. I have thrown together a quick tutorial on using TortoiseSVN with a Visual Studio project on my blog.

Version control is usually associated with programming projects, but you can use it for just about anything. If you would like to know more, feel free to send me an email.

Creating a WordPress Widget

December 18th, 2009 by Randy

Note: The following article is the first in a series of programming articles that contain terminology that may be unfamiliar to the non-developer. If you have any questions, feel free to leave a comment and we would be happy to join in a conversation with you.

WordPress is an excellent platform for anyone to use for their blog, and it’s even better for developers who wish to extend its functionality through the inherent plugin architecture. This article will guide you through the steps of creating your own plugin, enabling it to act as a widget and creating its own control panel to use through the administration interface.

We will be creating a simple plugin that displays a short bio of the blog author in the sidebar. This was actually a real-world scenario I was faced with when the blog design called for a bio in the sidebar. Two of the requirements were  that the title (”author”) be represented by an image, and the author’s name be highlighted in bold. This situation called for custom markup to be generated instead of relying on the built-in WP sidebar functions.

So let’s get started.

The Foundation

The first thing to grasp is that a WordPress (WP) plugin, in its simplest form, is nothing more than a single PHP file residing in the wp-content/plugins folder. We will call our plugin mviAuthor.php.

A comment block needs to reside at the top of the file for WP to recognize information about your plugin.

plugin metadata

plugin metadata

The lines above are self-explanatory. WP uses this information in the admin panel as shown below.

manage plugins

manage plugins

plugin information

plugin information

The next step is to define a class that represents our plugin. Using a class is not necessary, but it keeps your code cleaner. If you are not familiar with using classes in PHP, refer to the documentation at php.net (http://www.php.net/manual/en/language.oop5.php). Let’s define our class.

setup the main class

setup the main class

All we’ve done here is declare the class (line 14) if it doesn’t exist (line 13) and include a default constructor (line 15).  We will need to display the author information, so let’s start simple and just display some static text.

display author function

display author function

Note that this function resides within the MVIAuthor class. We now have a function that can be called to actually output something to the screen. Let’s now set this up as a widget we can use.

Remember that this PHP file be run as long as we have activated the plugin. Therefore, the code in the file will be run every time a WP page loads. What we need to do then is to define a function to call when the plugins are loaded, register this plugin as a widget and define a function that will be called when the registration triggers. Let’s first react to the plugins getting loaded.

add_action function

add_action function

This statement is defined outside of any class or function, so it will run whenever WP loads the plugins. When they are loaded, a function named mviAuthor_init will called. Here is the definition for that function.

mviAuthor_init function

mviAuthor_init function

This function, also outside of the class, registers the plugin as a widget. The registration action calls a function named widget_MVIAuthor, and is defined below.

widget_MVIAuthor function

widget_MVIAuthor function

When this function is called, it makes sure the class has been defined (line 90), instantiates the class (line 91) and calls its displayAuthor function (line 92). If you go to the Widgets page in your WP admin panel, you will now see your widget in the Available Widgets panel.

available plugins panel

available plugins panel

If you drag the MVI Author widget over to the Sidebar panel, then look at your blog, you will see “This is the author text” displayed in the sidebar.

The Control Panel

Obviously we don’t want our widget to display “This is the author text”, but neither do we want to replace that text with something we want, directly in the PHP file either. If we did, we would have to require anyone using our widget to modify source code just to change their bio information. Luckily, WP lets you define a control panel for your widget, giving users an easy way to modify dynamic data.

Our first step is to register the function that will handle the control panel, so lets add a line to our mviAuthor_init function.

mviAuthor_init function

mviAuthor_init function

After registering the plugin as a widget, we then register the widget’s control panel by stating the function that will be called to handle the panel (line 107). Let’s now define that function.

control_MVIAuthor function

control_MVIAuthor function

Again, if the class exists (line 98), instantiate the class (line 99) and call a function to handle the control panel (line 100).

The function to handle the control panel resides within the MVIAuthor class. There is a lot going on within this function, so we will build it in little steps (Do not try to run the code in this function until you see it completely built. Otherwise WP will throw errors). The first step is to define how the control panel will look.

control function

control function

On the surface, we are simply displaying a small form, allowing the user to input the author’s name and a short bio.

widget control panel

widget control panel

Now we need a way to save the data that you will input here. Just clicking the Save button at this point will do nothing. First, we need to determine if the user has clicked the Save button. To do that, we will add a hidden field to our form, then test to see if its value was posted.

add hidden fields

add hidden fields

Using Dynamic Data

We can now test if $_POST['bioSubmit'] and $_POST['nameSubmit'] exist, and if so, save them to the WP database. This is done with the built-in update_option function.

using the update_option function

using the update_option function

We’ll just check if $_POST['bioSubmit'] exists (line 33). If so, we will assign the post variables to local variables (lines 34 and 36) and save them to the database (lines 35 and 37). Now we can retrieve those names from the database, using the built-in get_option function,

using the get_option function

using the get_option function

make sure the values exist,

assigning to local variables

assigning to local variables

and display them on the form.

display POST variables on form

display POST variables on form

Note that the options are returned from WP as an array, so to display the author’s name we use the syntax $aName['mviAuthorName']. We can now expand the displayAuthor function to display the values retrieved from the WP database.

revised displayAuthor function

revised displayAuthor function

What I’ve done here is grab the values using the built-in get_option function (lines 58 and 59), checked to make sure they exist and if not, store nothing (lines 61 through 73), then display the data. I’ve added a couple of classes so I can target them with CSS (lines 75 and 80). I’ve also displayed the image as my widget title. Note here that I used the built-in bloginfo function and passed it the ‘template_url’ property to link to my image.

Summary

Here is an outline of the steps used to create the widget:

  1. Create a PHP file and place it in the wp-content/plugins folder
  2. Define a class that represents your widget
  3. Add two functions to the class: one to display output to the sidebar and one to handle the control panel
  4. Define two functions outside of the class that will be called upon widget and control panel registration
  5. Define a function outside of the class that calls the widget and control panel registration functions
  6. Add an action to the file that starts the whole process when the WP plugins are loaded

Click here for a complete listing of the code used (.txt file).

Orchard Harvest Candles: E-commerce & Web Site Redesign

October 26th, 2009 by Jason

A few days ago we were pleased to have posted the new Orchard Harvest Candles web site. Orchard Harvest Candles, LLC specializes in selling eco friendly, richly scented candles online, and Micro Visions, Inc. had the pleasure of not only redesigning the website, but also developing and integrating an elegant e-commerce solution to ensure a smooth online customer shopping experience. Take a moment to checkout our client’s new web presence and see an example of a project we’ve worked on.

oh