Posted in tutorials, video, web | January 7th, 2011 | Comments: 0

Webcasting is best defined as “broadcasting audio and video over the Internet.” It’s a valuable, yet affordable tool to share a live or pre-recorded message or event with viewers all over the world.

In the realm of corporate communications, webcasting is an ideal solution for:

-Industry Seminars

-Sales Presentations

-Employee Training

-Investor Relations

-AGM’s

-Safety Demonstrations

-Product Demonstrations

-Public Relations / Press Conferences

-Internal Communications

-Special Events (PR stunts, product launches, unveilings)

So what are the benefits of webcasting?

Greater reach for your event or message.  Imagine holding a seminar for a million people; you’d have to rent a heckuva big hotel ballroom to hold everyone!  Or, you could webcast the event to an unlimited number of participants.

Cut down on travel and event costs.  You’ll save a lot of money by holding an event just once, instead of taking people on a roadshow or flying your whole audience to one location.

Interactive webcasts allows instant feedback. Presenters in front of the camera and microphone can answer emails, phonecalls or Skype calls from viewers around the world.

Webcasting provides a real, personalized experience for viewers. You can put faces to names of presenters who might normally just be known by their titles within your organization.

Webcasts can be made available forever. Once an event or pre-recorded video is put on the ‘Net, viewers can refer back and pause on relevant parts of every webcast.

Webcasts ensure consistent messaging. The exact same information is being delivered to your entire audience, eliminating the chance that presenters will adjust their presentations from crowd to crowd.

We found an excellent example from TED of how webcasting is used to share information, or just a good idea.

JetSlides : Online Presentation Builder

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
Ping This!
Posted in tutorials, web | July 27th, 2010 | Comments: 0

Although Flash is reaching more and more devices every day and expects to be on 50% of all mobile devices by 2012, it is always a good idea to have alternative content for older devices that can not support Flash, or users that choose to disable it.

Here are a few quick ways for web designers/developers to display alternative content for devices without Flash.

1) Embed Code


	
	
		
	
	Alternative content
	
		
	

2) SWFObject

http://code.google.com/p/swfobject/

You can display the alternative content in the <div> that you are writting the Flash object to. If you wish to do other things (redirects or content changes) you can detect if Flash is installed with the JavaScript below.

     var flashSupported = document.getElementById('myContent');
     // if flash is not supported then go to a HTML page
     if( flashSupported.innerHTML.indexOf('embed') == -1 )
          document.location.href="noFlash.html";

3) Flash Player Detection Kit

The Flash® Player Detection Kit helps developers implement robust player detection for a variety of deployment environments by providing a set of templates and techniques to successfully detect the version of Flash Player installed on a user’s computer, and, if needed, to then install the latest version of Flash Player. The kit also includes a detailed explanation and sample files for implementing the new, player-based Flash Player Express Install experience.

http://www.adobe.com/products/flashplayer/download/detection_kit/

4) User Agent

If you have some programming knowledge you can check the User Agent sent from the browser. If you know the agents that do not have Flash support or you would like to show alternative content this is easily done.

List of User Agents

http://www.user-agents.org/

C#

Request.UserAgent

PHP

$_SERVER['HTTP_USER_AGENT']

JavaScript

http://www.quirksmode.org/js/detect.html

Posted by Beau Durrant

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
Ping This!
Posted in tutorials | February 16th, 2010 | Comments: 0

They are everywhere! Strange, abbreviated web addresses.  What are these things? Are they dangerous? Let’s find out!

Why URL Shorteners
The creation of URL shortening was introduced in 2002 in order to simplify long, hard to read links. The driving force behind its widespread adoption today is due primarily to the popularity of Twitter. As the social medium was quickly adopted – sharing links to interesting web content became the primary focus of it’s users. Many times, these links would come close to eating up the entire 140 character limit provided to share a tweet. Lacking the ability to share entire thoughts as completely as a typical Twitter user would like, a solution was needed to this difficult predicament. To solve this problem, Twitter turned to URL abbreviation.

How Abbreviation Works
When you use a link shortening service, your link is entered into a database and associated with a key. This key can be randomly generated or in some cases, chosen by the creator which will show up at the end of the new URL. Each time your shortened URL is clicked on, the key is referenced in a database, the URL is found and the visitor is re-directed to the correct location on the internet.

What are the Risks?
There are a few things to keep in mind when you are using or creating shortened URLs. Sometimes people will obscure their links to hide the final destination of the link. Many times, advertisers, who get paid to sell a product online, will shroud affiliate links so that people who click on them don’t know that they are being sold something. Other times, phishermen (people who are trying to steal your login information) will use URL shorteners to trick you into providing information you shouldn’t be sharing.

To minimize your risk, ensure you trust the person who is sharing this link with you and closely examine the website you arrive at before you decide to share sensitive information. It may be safe to say that you will never be approached by any reputable organization in this fashion.

One of the major risks you face in shortening your links is the stability of web service you choose to use. If your link is being used over a long period of time, it will not work anymore if your link shortening service goes out of business. Facing dead links internet-wide is a major risk introduced by the growth and popularity of URL shortening.

The Future Outlook
Some of the common URL shorteners today are websites like bit.ly, owl.ly and tinyurl.com – the pioneer in this field.

You will find that most shortening services have short URLs to improve the abbreviation process. As the industry grows, hacked domains, which are domains using country code endings (like .ly – Libya’s country code) are becoming increasingly used to create short memorable phrases for shortening services and for many other purposes as well.

Google has a URL shorterner called Goo.gl, and Youtube uses Youtu.be. Even Coke has their own service at http://cokeurl.com/

This trend of brand association will continue to evolve and grow as organizations attempt to cultivate loyalty across social networks by giving consumers the opportunity to share branded links with their friends.

URL shortening services will continue pop-up all over the internet and it will be an industry that thrives as social media thrives.

To wrap things up, it’s important that I share one last link with you to complete your education on URL shortners, please click here.

This is why your education is now complete. Congratulations!

Posted by Neil Gilbert

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
Ping This!
Posted in tutorials, web | January 19th, 2010 | Comments: 1

If you have tried to run Zend Framework on IIS 6 you may have run into a few problems. I will be covering how to get Zend Framework running once you have PHP installed. I am assuming that you have a clear understanding on how to set up Zend Framework and how it works.

1) ISAPI Redirect

You will need to install an ISAPI Redirect to simulate a .htaccess file on IIS.

There are a couple options you can use:
ISAPI_Rewrite ($99)
IIRF (Free)

2) Custom Controller

I always extend the Zend_Controller_Action, then all the controllers in the /application/controller directory will extend my custom controller not the Zend_Controller_Action. This is a good place to put $_GLOBALS in the Zend registry, set up database connections and site configuration options.

To get Zend Framework running with IIS 6 you will need to extend the Zend_Controller_Action, override the _redirect function and modify some server variables.

class Zoom_Controller_Action extends Zend_Controller_Action
{ 

	public function _redirect($string)
	{
		if( !stristr($string, "http://") ) $string = "http://" . $_SERVER['SERVER_NAME'] . $string;
		header("location: $string");
	}	

	public function init()
	{
		$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
		$_SERVER['QUERY_STRING'] = substr( $_SERVER['REQUEST_URI'] , strrpos( $_SERVER['REQUEST_URI'] , '?') + 1);
		// LOOP THROUGH THE QUERYSTRING TO POPULATE THE $_REQUEST and $_GET arrays
		$queryStringVariables = split('&', $_SERVER['QUERY_STRING']);
		foreach( $queryStringVariables as $variable )
		{
			list($key, $value) = split('=', $variable);
			$value = urldecode($value);
			if( strpos($key, '[') )
			{
				$key = substr( $key, 0, strpos($key, '[') );
				if( !is_array($_REQUEST[$key]) ) $_REQUEST[$key] = array();
				$_REQUEST[$key][] = $value;
			}
			else
			{
				$_REQUEST[$key] = $value;
				$_GET[$key] = $value;
			}
		}
	}

}

3) Controllers

Now all the controllers in the /application/controller directory can extend the Zoom_Controller_Action. You must also call the parent::init() from all controllers extending the Zoom_Controller_Action to be sure to modify the server variables.

class ErrorController extends Zoom_Controller_Action
{ 

	public function init()
	{
		parent::init();
	}

}

Posted by Beau Durrant

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
Ping This!
Posted in tutorials, web | January 19th, 2010 | Comments: 0

I have written a simple function to generate a random string in PHP. It was made to generate a string with uppercase, lowercase and numeric values. It can be modified to accept any ASCII characters and can generate a string of any length.

This function may also help understanding passing variables by reference and recursion.

Function

function generateRandomString( $length, &$string )
{
	// RANDOM TO CHOOSE 1. UPPERCASE / 2. LOWERCASE / 3. NUMBER
	$which = mt_rand( 1, 3 );
	switch( $which )
	{
		case 1:
			$min = 65; $max = 90;
			break;
		case 2:
			$min = 97; $max = 122;
			break;
		case 3:
			$min = 48; $max = 57;
			break;
	}

	// GET RANDOM NUMBER FOR CHARACTER
	$rand = mt_rand( $min, $max );

	// CONVERT ASCII TO CHAR AND APPEND TO STRING
	$string .= chr( $rand );

	// IF EQUAL TO OR GREATER THAN LENGTH THEN RETURN
	if( strlen($string) >= $length ) return;

	// RECURSION - BUILD THE STRING
	generateRandomString( $length, $string );
}

Usage

Posted by Beau Durrant

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
Ping This!