<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Krotscheck.net</title>
	<atom:link href="http://www.krotscheck.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.krotscheck.net</link>
	<description>Michael Krotscheck's insights, ideas, and inspirations about web technology, life, and the kitchen sink.</description>
	<lastBuildDate>Mon, 23 Aug 2010 05:07:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Zend_Auth_Adapter_Facebook</title>
		<link>http://www.krotscheck.net/2010/08/21/zend_auth_adapter_facebook.html</link>
		<comments>http://www.krotscheck.net/2010/08/21/zend_auth_adapter_facebook.html#comments</comments>
		<pubDate>Sat, 21 Aug 2010 22:00:13 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Auth]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/2010/08/21/zend_auth_adapter_facebook.html</guid>
		<description><![CDATA[This post is rather more nerdy than my other ones, and goes to describe how to create a Facebook authentication adapter for the Zend Framework, using the new Facebook Graph API. I do not intend to support this code explicitly, but I do work with it and will update it to suit my own needs. [...]]]></description>
			<content:encoded><![CDATA[<p>This post is rather more nerdy than my other ones, and goes to describe how to create a Facebook authentication adapter for the Zend Framework, using the new Facebook Graph API. I do not intend to support this code explicitly, but I do work with it and will update it to suit my own needs. If you&#8217;re impatient, the full code for the adapter and a sample controller are the last two code samples at the bottom of this post.</p>
<h3>A discussion about OAuth and OpenID</h3>
<p>Strictly speaking, Facebook supports <a href="http://oauth.net/" target="_blank">OAuth</a>, not <a href="http://openid.net/foundation/" target="_blank" title="The OpenID Foundation">OpenID</a>. OAuth is a way for your application to act on behalf of someone else on another side, while OpenId exists solely for you to use the other website as an authorization authority. The difference is subtle, however telling that Facebook has explicitly stated that it does not want to be an authorization authority. In practice, however, the two standards are interchangeable, and OAuth works pretty well as a way to authenticate a user.</p>
<h3>How Facebook Auth Actually Works</h3>
<p>Here&#8217;s the flow in four easy steps:</p>
<ol>
  <li>The user clicks on a &#8220;Login to Facebook&#8221; link on your server, which redirects them to another page on your server that handles the authentication.</li>

  <li>Your Facebook Auth page puts all the parameters for your authentication, such as your app ID and scope, into a URL and sends the user to Facebook via that URL.</li>

  <li>Once Facebook returns the user (presumably authenticated) to your server, you can use the parameters sent via the URL to request an authentication token from Facebook. This is done via curl or some other server-to-server communication by calling the graph API.</li>

  <li>You use this authentication token to access the user&#8217;s information on Facebook.</li>
</ol>
<h4>Step 1: Get all the data you need</h4>
<p>To properly authenticate with Facebook, you need four pieces of data. The first two are your application id and your application secret, both of which are available on your developer application page.</p>
<div class="image">
  <img src="http://www.krotscheck.net/wp-content/uploads/2010/08/Screen-shot-2010-08-21-at-1.50.04-PM.png" width="479" height="480" alt="Screen shot 2010-08-21 at 1.50.04 PM.png" />

  <p>A sample Facebook application page</p>
</div>
<p>The second two pieces of data are specific to your implementation. These are the redirect URI, which is used to tell Facebook where to send the user once they are done authorizing your application, and the permission scope, which you use to tell Facebook what permissions you want to request from the user. This latter one actually warrants some more documentation, which Facebook has graciously provided <a href="http://developers.facebook.com/docs/authentication/permissions" target="_blank">here</a>. Be careful: Users can get really suspicious if you ask for too much data.</p>
<h4>Step 2: Redirect your user to Facebook.</h4>
<p>With this data, you can redirect your user to Facebook. Facebook will then work some magic and ask the user whether they want to grant your application access to their profile. Don&#8217;t forget to urlencode that Redirect URI.</p>
<div class="code">
  <pre>
$loginUri = "https://graph.facebook.com/oauth/authorize?client_id={$appId}&amp;redirect_uri={$redirectUri}&amp;scope={$scope}";
header('Location: ' . $loginUri);
</pre>
</div>
<h4>Step 3: Request an Auth Token</h4>
<p>Assuming that the user authorizes your application, Facebook will return them to your redirect URI with the &#8220;code&#8221; parameter in the URL. You can use this parameter to request an authorization token from Facebook. In this case I&#8217;m using the Zend Request handler to simplify things a little.</p>
<div class="code">
  <pre>
$client = new Zend_Http_Client( "https://graph.facebook.com/oauth/access_token" );
$client-&gt;setParameterGet('client_id', $appId);
$client-&gt;setParameterGet('client_secret', $secret);
$client-&gt;setParameterGet('code', $code);
$client-&gt;setParameterGet('redirect_uri', $redirectUri);

$result = $client-&gt;request('GET');
$params = array();
parse_str($result-&gt;getBody(), $params);
$token = $params['access_token'];</pre></div>

<h4>Step 4: Read the user&#8217;s profile</h4>
<p>At this point, you have an auth token that grants you access to read the user&#8217;s profile information in accordance to the permissions they have granted you. These permissions are completely blind- you don&#8217;t have to additionally specify what you want to access &#8211; the requests will simply return the information to which you have access.</p>
<div class="code">
  <pre>
$client = new Zend_Http_Client( "https://graph.facebook.com/me" );
$client-&gt;setParameterGet('client_id', $appId);
$client-&gt;setParameterGet('access_token', $token);
$result = $client-&gt;request('GET');
$user = json_decode($result-&gt;getBody());</pre>
</div>

<h4>Zend_Auth_Adapter_Facebook</h4>
<p>For those of you who would rather not take the above code and wrap it into your own Auth Adapter, I&#8217;ve gone ahead and done all that work for you. Below you will find a sample Zend Controller, as well as a pre-baked Auth Adapter. If you come across any major security problems in it, I&#8217;d love to know, since I use this adapter myself <img src='http://www.krotscheck.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<div class="code">
<p>file: Zend/Auth/Adapter/Facebook.php</p>
  <pre>
class Zend_Auth_Adapter_Facebook implements Zend_Auth_Adapter_Interface
{
    /**
     * The Authentication URI, used to bounce the user to the facebook redirect uri.
     * 
     * @var string
     */
    const AUTH_URI = 'https://graph.facebook.com/oauth/authorize?client_id=%s&amp;redirect_uri=%s';
    
    /**
     * The token URI, used to retrieve the OAuth Token.
     * 
     * @var string
     */
    const TOKEN_URI = 'https://graph.facebook.com/oauth/access_token';
    
    
    /**
     * The user URI, used to retrieve information about the user.
     * 
     * @var string
     */
    const USER_URI = 'https://graph.facebook.com/me';
    
    /**
     * The application ID
     *
     * @var string
     */
    private $_appId = null;

    /**
     * The application secret
     *
     * @var string
     */
    private $_secret = null;

    /**
     * The authentication scope (advanced options) requested
     *
     * @var string
     */
    private $_scope = null;

    /**
     * The redirect uri
     *
     * @var string
     */
    private $_redirectUri = null;

    /**
     * Constructor
     *
     * @param string $appId the application ID
     * @param string $secret the application secret
     * @param string $scope the application scope
     * @param string $redirectUri the URI to redirect the user to after successful authentication
     */
    public function __construct($appId, $secret, $redirectUri, $scope)
    {
        $this-&gt;_appId = $appId;
        $this-&gt;_secret = $secret;
        $this-&gt;_scope = $scope;
        $this-&gt;_redirectUri   = $redirectUri;
    }

    /**
     * Sets the value to be used as the application ID
     *
     * @param  string $appId The application ID
     * @return Zend_Auth_Adapter_Facebook Provides a fluent interface
     */
    public function setAppId($appId)
    {
        $this-&gt;_appId = $id;
        return $this;
    }

    /**
     * Sets the value to be used as the application secret
     *
     * @param  string $secret The application secret
     * @return Zend_Auth_Adapter_Facebook Provides a fluent interface
     */
    public function setSecret($secret)
    {
        $this-&gt;_secret = $secret;
        return $this;
    }

    /**
     * Sets the value to be used as the application scope (array())
     *
     * @param  string $scope The application scope
     * @return Zend_Auth_Adapter_Facebook Provides a fluent interface
     */
    public function setApplicationScope($scope)
    {
        $this-&gt;_scope = $scope;
        return $this;
    }

    /**
     * Sets the redirect uri after successful authentication
     *
     * @param  string $redirectUri The redirect URI
     * @return Zend_Auth_Adapter_Facebook Provides a fluent interface
     */
    public function setRedirectUri($redirectUri)
    {
        $this-&gt;_redirectUri = $redirectUri;
        return $this;
    }


    /**
     * Authenticates the user against facebook
     * Defined by Zend_Auth_Adapter_Interface.
     *
     * @throws Zend_Auth_Adapter_Exception If answering the authentication query is impossible
     * @return Zend_Auth_Result
     */
    public function authenticate()
    {
    	// Get the request object.
    	$frontController = Zend_Controller_Front::getInstance();
    	$request = $frontController-&gt;getRequest();
    	
    	// First check to see wether we're processing a redirect response.
    	$code = $request-&gt;getParam('code');
    	
    	if ( empty ($code ) )
    	{
	    	// Create the initial redirect
	    	$loginUri = sprintf(Zend_Auth_Adapter_Facebook::AUTH_URI , $this-&gt;_appId, $this-&gt;_redirectUri);
	 		
	    	if ( !empty($this-&gt;_scope) )
	    	{
	    		$loginUri .= "&amp;scope=" . $this-&gt;_scope;
	    	}
	    	
	    	header('Location: ' . $loginUri );
    	}
    	else
    	{
    		// Looks like we have a code. Let's get ourselves an access token
	    	$client = new Zend_Http_Client( Zend_Auth_Adapter_Facebook::TOKEN_URI );
	    	$client-&gt;setParameterGet('client_id', $this-&gt;_appId);
	    	$client-&gt;setParameterGet('client_secret', $this-&gt;_secret);
	    	$client-&gt;setParameterGet('code', $code);
	    	$client-&gt;setParameterGet('redirect_uri', $this-&gt;_redirectUri);
	    	
	    	$result = $client-&gt;request('GET');
	    	$params = array();
	    	parse_str($result-&gt;getBody(), $params);
	    	
	    	// REtrieve the user info
	    	$client = new Zend_Http_Client(Zend_Auth_Adapter_Facebook::USER_URI );
	    	$client-&gt;setParameterGet('client_id', $this-&gt;_appId);
	    	$client-&gt;setParameterGet('access_token', $params['access_token']);
	    	$result = $client-&gt;request('GET');
	    	$user = json_decode($result-&gt;getBody());
	    	
            return new Zend_Auth_Result( Zend_Auth_Result::SUCCESS, $user-&gt;id, array('user'=&gt;$user, 'token'=&gt;$params['access_token']) );
    	}
    	
        return new Zend_Auth_Result( Zend_Auth_Result::FAILURE, null, 'Error while attempting to redirect.' );
    }
}
</pre>
</div>
<div class="code">
<p>file: modules/default/controllers/FacebookauthController.php</p>
<pre>
/**
 * Sample Facebook Auth Controller.
 * 
 * @author Michael Krotscheck
 */
class FacebookauthController extends Zend_Controller_Action
{
	/**
	 * Application default action
	 */
	public function indexAction ()
	{
		$appId = 'YOUR_APP_ID';
		$secret = 'YOUR_APP_SECRET';
		$redirectUri = 'http://path-to-this-controller-and-action';
		$scope = 'YOUR_COMMA_SEPARATED_APPLICATION_SCOPE';
		
		// Create the authentication adapter.
		$adapter = new Zend_Auth_Adapter_Facebook( $appId, $secret, $redirectUri, $scope );
		
		// Get an authenticator instance
		$auth = Zend_Auth::getInstance();
		
		// This call will automatically redirect to facebook with the passed parameters.
		$result = $auth-&gt;authenticate($adapter);
		
		if ( $result-&gt;isValid() )
		{
			// Get the messages
			$messages = $result-&gt;getMessages();
			
			// Get the user object from the returned messages.
			$fbUser = $messages['user'];
			
			var_dump($fbUser);
		}
	}
}
</pre>
</div>


Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F21%2Fzend_auth_adapter_facebook.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F21%2Fzend_auth_adapter_facebook.html&amp;title=Zend_Auth_Adapter_Facebook&amp;notes=This%20post%20is%20rather%20more%20nerdy%20than%20my%20other%20ones%2C%20and%20goes%20to%20describe%20how%20to%20create%20a%20Facebook%20authentication%20adapter%20for%20the%20Zend%20Framework%2C%20using%20the%20new%20Facebook%20Graph%20API.%20I%20do%20not%20intend%20to%20support%20this%20code%20explicitly%2C%20but%20I%20do%20work%20with%20it%20a" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F21%2Fzend_auth_adapter_facebook.html&amp;title=Zend_Auth_Adapter_Facebook&amp;bodytext=This%20post%20is%20rather%20more%20nerdy%20than%20my%20other%20ones%2C%20and%20goes%20to%20describe%20how%20to%20create%20a%20Facebook%20authentication%20adapter%20for%20the%20Zend%20Framework%2C%20using%20the%20new%20Facebook%20Graph%20API.%20I%20do%20not%20intend%20to%20support%20this%20code%20explicitly%2C%20but%20I%20do%20work%20with%20it%20a" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F21%2Fzend_auth_adapter_facebook.html&amp;t=Zend_Auth_Adapter_Facebook" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F21%2Fzend_auth_adapter_facebook.html&amp;title=Zend_Auth_Adapter_Facebook&amp;annotation=This%20post%20is%20rather%20more%20nerdy%20than%20my%20other%20ones%2C%20and%20goes%20to%20describe%20how%20to%20create%20a%20Facebook%20authentication%20adapter%20for%20the%20Zend%20Framework%2C%20using%20the%20new%20Facebook%20Graph%20API.%20I%20do%20not%20intend%20to%20support%20this%20code%20explicitly%2C%20but%20I%20do%20work%20with%20it%20a" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F21%2Fzend_auth_adapter_facebook.html&amp;title=Zend_Auth_Adapter_Facebook" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F21%2Fzend_auth_adapter_facebook.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2010/08/21/zend_auth_adapter_facebook.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Breaking down a Client Application</title>
		<link>http://www.krotscheck.net/2010/08/02/breaking-down-a-client-application.html</link>
		<comments>http://www.krotscheck.net/2010/08/02/breaking-down-a-client-application.html#comments</comments>
		<pubDate>Tue, 03 Aug 2010 01:36:09 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/2010/08/02/breaking-down-a-client-application.html</guid>
		<description><![CDATA[With so little time to blog over the past few months, I took a few moments to really think about why I&#8217;d fallen out of the habit. I believe (personally) that much of this is because my writing time now goes into guiding and educating my own development team, and once I realized that I [...]]]></description>
			<content:encoded><![CDATA[<p>With so little time to blog over the past few months, I took a few moments to really think about why I&#8217;d fallen out of the habit. I believe (personally) that much of this is because my writing time now goes into guiding and educating my own development team, and once I realized that I saw no reason to exclude all of you from any of these emails either. So yes, you should expect the content to start picking up again, but the topics will be focused around applied software development rather than the marketing and retail topics I spoke about while I was still at Resource.</p>
<p>This particular email was written to demystify the difference (as far as I&#8217;m concerned) of all the different parts of a client application. However rather than a heavy discussion on methods and algorithms, what I present here are actually the higher level concepts that govern the structure of an application. I tried to order them in a fairly logical fashion, starting at the &#8220;front&#8221; of the application (what you see) and moving towards the &#8220;back&#8221; (the bits that the user should never see).</p>
<p>But first, I feel it is important to understand the difference between business logic and view logic:</p>
<ul>
  <li>Business logic manages data and enforces business rules. It cleans, saves, reads, compares, and makes sure that the data models are properly updated. It is also important to make the distinction between server-side business logic and client business logic. That which lives on the server is usually focused more on business rules, while that which lives in the client usually cares more about server interaction and data manipulation.</li>

  <li>View logic manages how data is displayed. It manages state, formatters, strings and view indexes, and doesn&#8217;t really care about how that data got to where it is, it only cares about how it should be displayed <i>within this particular view</i>.</li>
</ul>
<p>Having said that, here are the major components of a client application. Caveat, this might not mean much to you Javascript guys.</p>
<p><b>Skin</b></p>
<p>A skin acts to describe the containers, colors and graphics that a control or view use. It can change its appearance based on a skin state (not to be confused with view state), and can refer to styles set by the component which it is skinning. It should not have any business or data logic whatsoever.</p>
<p><b>Control</b></p>
<p>A Control is the lowest level of functional components which comprise an application. These are our buttons, labels, data grids, view containers and so forth, and they are characterized by the fact that the data they display is not specialized, nor do they contain any real internal business logic at all. They know how to interact with a generic type and dispatch events when a particular action occurs.</p>
<p><b>View</b></p>
<p>A view is a collection of controls, containers, formatters, skins and subviews, all connected via a presentation model. It acts to collect and arrange elements rather than figuring out what each piece is supposed to do. As such, Views should contain little to no code at all, and should be managed by states and properties.</p>
<p><b>Item Renderer</b></p>
<p>An Item renderer is a very specialized kind of view, which deals with the display of a single piece of data in a collection. As a result, it is the only view which should be dependent on an external piece of data &#8211; one that is injected into a property of that ItemRenderer from a parent (the data property). Item renderers may contain Presentation MOdels to help them manage user gestures, but rarely make use of a data model as this is already provided.</p>
<p><b>Presentation Model</b></p>
<p>It is the job of the presentation model to act as a mediator between the view and the rest of the application. This does not mean that it should manage data, nor necessarily contain it. Instead, its job is to expose all the methods and data which are being used by the View, which includes models (bindable), states, actions which describe user methods and (in some cases) validators.</p>
<p><b>Data Model</b></p>
<p>The data model is a dumb data container. It should contain little-to-no logic on its own, and instead allow the tasks to clean, sort and manipulate anything that is assigned to the model. Thinking of it differently: The Data Model is the <i>authoritative source</i> of any data used in the application. All data starts here and ends here. Views get their data from the Data Model via binding. Tasks retrieve model instances. Presentation models make data available by exposing a public instance of a data model.</p>
<p><b>Task</b></p>
<p>Tasks are where our &#8220;business&#8221; logic resides, in the most generic and granular way possible. As an example, the act of loading a user might require reading the user object, retrieving their preferences, and initializing the application locale. Rather than try to handle this all in one task, it is better to use a SequenceTask or ParalellTask to collect the three different actions. Why? Because your preferences screen might need to reload user preferences after they&#8217;ve been saved, but you don&#8217;t want to refresh the entire user.</p>
<p>Tasks, much like presentation models, are able to collect any data and utilities they need to achieve what they need to achieve, however when they are done they need to let go of those items and dispose of themselves properly. The important thing to note here is that any business logic that can be put into the service layer <i>should</i> live in the service layer; We don&#8217;t want to expose the guts of our business rules to the world, and servers are much easier to protect from questionable data manipulation.</p>
<p><b>Delegate</b></p>
<p>A delegate is our service proxy, and acts as a channel back and forth from the database. It allows us access to the business logic that lives on the server in a reliable and consistent way. In most cases, each delegate method will have one task that wraps it and makes sure that the data is properly cleaned and presented.</p>
<p><b>Utility</b></p>
<p>Utilities are classes that provide common data manipulation routines that are global to all aspects of the application. A good utility, for instance, would be a method that handles date conversions from GMT to Local and back. A less desirable utility method would be one that formats a piece of data for a specific view, as this should be handled within the view itself.</p>
<p><b>Libraries</b></p>
<p>Libraries are the catchall for everything that was left out, and it includes pieces of highly specialized logic that don&#8217;t really fit neatly elsewhere. Good examples of this are video encoding libraries, classes that manage encryption, filesystem manipulation and other tasks like that.</p>
<p><b>VO</b></p>
<p>A VO, or Value Object (also known as DO/Data Object) is the raw data which we manipulate. It describes a particular Domain Object and acts as a package that we pass from method to model to view. They only contain data related to that same object, and should not contain any formatting logic and only limited validation logic (is-not-zero checks and so forth). Formatting should be handled by the view, validation should be handled by tasks or utilities.</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F02%2Fbreaking-down-a-client-application.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F02%2Fbreaking-down-a-client-application.html&amp;title=Breaking%20down%20a%20Client%20Application&amp;notes=With%20so%20little%20time%20to%20blog%20over%20the%20past%20few%20months%2C%20I%20took%20a%20few%20moments%20to%20really%20think%20about%20why%20I%27d%20fallen%20out%20of%20the%20habit.%20I%20believe%20%28personally%29%20that%20much%20of%20this%20is%20because%20my%20writing%20time%20now%20goes%20into%20guiding%20and%20educating%20my%20own%20developme" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F02%2Fbreaking-down-a-client-application.html&amp;title=Breaking%20down%20a%20Client%20Application&amp;bodytext=With%20so%20little%20time%20to%20blog%20over%20the%20past%20few%20months%2C%20I%20took%20a%20few%20moments%20to%20really%20think%20about%20why%20I%27d%20fallen%20out%20of%20the%20habit.%20I%20believe%20%28personally%29%20that%20much%20of%20this%20is%20because%20my%20writing%20time%20now%20goes%20into%20guiding%20and%20educating%20my%20own%20developme" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F02%2Fbreaking-down-a-client-application.html&amp;t=Breaking%20down%20a%20Client%20Application" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F02%2Fbreaking-down-a-client-application.html&amp;title=Breaking%20down%20a%20Client%20Application&amp;annotation=With%20so%20little%20time%20to%20blog%20over%20the%20past%20few%20months%2C%20I%20took%20a%20few%20moments%20to%20really%20think%20about%20why%20I%27d%20fallen%20out%20of%20the%20habit.%20I%20believe%20%28personally%29%20that%20much%20of%20this%20is%20because%20my%20writing%20time%20now%20goes%20into%20guiding%20and%20educating%20my%20own%20developme" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F02%2Fbreaking-down-a-client-application.html&amp;title=Breaking%20down%20a%20Client%20Application" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F08%2F02%2Fbreaking-down-a-client-application.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2010/08/02/breaking-down-a-client-application.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hi, my name is Mike, and I&#8217;m a Flash Developer</title>
		<link>http://www.krotscheck.net/2010/05/03/hi-my-name-is-mike-and-im-a-flash-developer.html</link>
		<comments>http://www.krotscheck.net/2010/05/03/hi-my-name-is-mike-and-im-a-flash-developer.html#comments</comments>
		<pubDate>Tue, 04 May 2010 03:24:58 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[flamewar]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/2010/05/03/hi-my-name-is-mike-and-im-a-flash-developer.html</guid>
		<description><![CDATA[Let me ask you this: Am I less of a person because I write code for a living? How about this: Am I less of a person because I work in Flash? I haven&#8217;t really (well, sortof) weighted in on the Flash vs. HTML5 debate yet, mostly because the main posters pro and con are [...]]]></description>
			<content:encoded><![CDATA[<p>Let me ask you this: Am I less of a person because I write code for a living?</p>
<p>How about this: Am I less of a person because I work in Flash?</p>
<p>I haven&#8217;t really (well, sortof) weighted in on the Flash vs. HTML5 debate yet, mostly because the main posters pro and con are both more technically qualified, have a stronger social following, and/or have more backing from marketers. It is the futility of the debate itself that interests me, both from a very personal perspective and from the perspective of an internet veteran.<br /></p>
<p>The nature of the debate that I observe from the comfort of my Laptop is the following:</p>
<ul>
  <li>Camp A: Here&#8217;s a bunch of reasons why Flash sucks!</li>

  <li>Camp B: Nuh-uh! Here&#8217;s a list of reasons why that&#8217;s not the case!</li>
</ul>
<p>As you probably realize yourself, this argument structure is essentially religious, and can be replayed whenever two people have different opinions and are not willing to reconcile. It&#8217;s certainly not restricted to the technology space (Choice vs. Life anyone?), and the futility of entering into such an argument is well known to anyone who&#8217;s ever been involved in a flame war.</p>
<p>Now take this Adobe/Apple debate and pose it to our society (full of technology-advocates, evangelists and gurus), and you&#8217;ll soon come to realize that Adobe cannot win this argument, not given its current strategy. This is for two reasons:</p>
<ol>
  <li>You cannot win a flamewar from a defensive position.</li>

  <li>You cannot win a flamewar with reason.</li>
</ol>
<p>Adobe&#8217;s Flash Team are doing an admirable job at defending against everything that&#8217;s coming out of Apple, the Javascript community, and the standards purists. Unfortunately by the time they get to debunking these statements the damage has been done, and no matter how quickly they respond they will never get the same media penetration that Apple will. Why? Because people don&#8217;t like to be told they&#8217;re wrong, and anyone who listens to a flamewar long enough will start to tune out. Just ask Fox News- they make a living on this &#8211; and there&#8217;s no way you can reach an unreceptive audience no matter how good your arguments are.</p>
<p>Secondly, any aggressor can very easily cherry-pick its arguments to attack the defender on weak points, and thus invalidate their entire argument simply because one point wasn&#8217;t well researched. While the overall flash platform is a strong contender on the web, you&#8217;ll notice that the argument is focused on a few key shortcomings &#8211; performance, accessibility, &#8216;open-ness&#8217; and the like &#8211; in which HTML5 has strength. By defending specifically against these weak points, Adobe is then empowering critics to further choose sub-points where they have strength, and through this cycle the argument is diminished and diminished until at the end all we remember is that Adobe was trying to defend itself and their critics never ran out of anything to point to and say: &#8220;Hey you suck&#8221;.</p>
<p>Lastly, as I have seen in several cases, arguments have started go get personal, and as soon as you enter <i>that</i> arena you can invalidate someone&#8217;s argument simply by pointing out their own shortcomings. To use myself as an example, you can invalidate anything I have to say about Flash and HTML5 by pointing out that I&#8217;m not a real CS major, that I haven&#8217;t remained at a job for more than 4 years, or that I go so far as to claim that there are people more qualified to talk about this than I in the very first paragraph in this post. My experience and job title doesn&#8217;t matter &#8211; as soon as you say &#8220;Oh, you don&#8217;t know what you&#8217;re talking about, you&#8217;re not a CS Major&#8221; you&#8217;ve got me completely discredited.</p>
<p>But what bothers me the most is the first concession which the Adobe Community had to make, and that is that their pool of developers draws from the design community and are subsequently not the best. Now, every technology has a wide range of developer competence, yet with Flash it&#8217;s becoming a banner cry: &#8220;Flash Developers suck&#8221;. Your technology choice does not define how skilled you are, and yet it&#8217;s becoming pretty clear that those of us who choose Actionscript and Flash are seen as incompetent, less than human, and not worth listening to because we&#8217;re blind and ignorant fanboys who don&#8217;t understand what they&#8217;re missing with [Insert Language Here].</p>
<p>This last point is perhaps the most damaging, because it&#8217;s eroding Adobe&#8217;s hard-won community. Do you like feeling like a shitty developer? Do you want to be the pariah of the web? Do you like being told that you are the scum of the earth? No, and I don&#8217;t either, and if like myself you&#8217;re simply trying to make a living, chances are you&#8217;re seriously considering learning something else to make sure you remain employable.</p>
<p>So the real question is: Will rational minds prevail? I doubt it.</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F05%2F03%2Fhi-my-name-is-mike-and-im-a-flash-developer.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F05%2F03%2Fhi-my-name-is-mike-and-im-a-flash-developer.html&amp;title=Hi%2C%20my%20name%20is%20Mike%2C%20and%20I%27m%20a%20Flash%20Developer&amp;notes=Let%20me%20ask%20you%20this%3A%20Am%20I%20less%20of%20a%20person%20because%20I%20write%20code%20for%20a%20living%3F%0AHow%20about%20this%3A%20Am%20I%20less%20of%20a%20person%20because%20I%20work%20in%20Flash%3F%0AI%20haven%27t%20really%20%28well%2C%20sortof%29%20weighted%20in%20on%20the%20Flash%20vs.%20HTML5%20debate%20yet%2C%20mostly%20because%20the%20main%20poster" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F05%2F03%2Fhi-my-name-is-mike-and-im-a-flash-developer.html&amp;title=Hi%2C%20my%20name%20is%20Mike%2C%20and%20I%27m%20a%20Flash%20Developer&amp;bodytext=Let%20me%20ask%20you%20this%3A%20Am%20I%20less%20of%20a%20person%20because%20I%20write%20code%20for%20a%20living%3F%0AHow%20about%20this%3A%20Am%20I%20less%20of%20a%20person%20because%20I%20work%20in%20Flash%3F%0AI%20haven%27t%20really%20%28well%2C%20sortof%29%20weighted%20in%20on%20the%20Flash%20vs.%20HTML5%20debate%20yet%2C%20mostly%20because%20the%20main%20poster" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F05%2F03%2Fhi-my-name-is-mike-and-im-a-flash-developer.html&amp;t=Hi%2C%20my%20name%20is%20Mike%2C%20and%20I%27m%20a%20Flash%20Developer" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F05%2F03%2Fhi-my-name-is-mike-and-im-a-flash-developer.html&amp;title=Hi%2C%20my%20name%20is%20Mike%2C%20and%20I%27m%20a%20Flash%20Developer&amp;annotation=Let%20me%20ask%20you%20this%3A%20Am%20I%20less%20of%20a%20person%20because%20I%20write%20code%20for%20a%20living%3F%0AHow%20about%20this%3A%20Am%20I%20less%20of%20a%20person%20because%20I%20work%20in%20Flash%3F%0AI%20haven%27t%20really%20%28well%2C%20sortof%29%20weighted%20in%20on%20the%20Flash%20vs.%20HTML5%20debate%20yet%2C%20mostly%20because%20the%20main%20poster" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F05%2F03%2Fhi-my-name-is-mike-and-im-a-flash-developer.html&amp;title=Hi%2C%20my%20name%20is%20Mike%2C%20and%20I%27m%20a%20Flash%20Developer" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F05%2F03%2Fhi-my-name-is-mike-and-im-a-flash-developer.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2010/05/03/hi-my-name-is-mike-and-im-a-flash-developer.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>What makes a &#8216;Rockstar&#8217; Developer?</title>
		<link>http://www.krotscheck.net/2010/01/10/what-makes-a-rockstar-developer.html</link>
		<comments>http://www.krotscheck.net/2010/01/10/what-makes-a-rockstar-developer.html#comments</comments>
		<pubDate>Sun, 10 Jan 2010 15:11:30 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[entrepreneurship]]></category>
		<category><![CDATA[rockstar]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/2010/01/10/what-makes-a-rockstar-developer.html</guid>
		<description><![CDATA[I&#8217;ve recently been involved in a discussion about what makes a rockstar developer for a startup. This has always surprised me- the reality of the matter is that there are no rockstars, only people who think of themselves as rockstars, and those are the last people you want in charge of your product. So I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently been involved in a discussion about what makes a rockstar developer for a startup. This has always surprised me- the reality of the matter is that there are no rockstars, only people who think of themselves as rockstars, and those are the last people you want in charge of your product. So I figure, as someone who&#8217;s been around the block a few times, it would be good to come up with a list of what actually makes for a &#8220;rockstar&#8221; developer. If I miss anything, feel free to contribute in the comments.</p>
<h4>1- They don&#8217;t think of themselves as rock stars.</h4>
<p>Arrogance is perhaps a key requirement in being an entrepreneur, but overconfidence will drain your cash pool faster than hookers and blow.</p>
<h4>2- They have a proven track record of multiple shipped products.</h4>
<p>You don&#8217;t want a hotshot kid out of school, you want a seasoned professional, preferably one who knows how to write applications for the industry you&#8217;re trying to reach.</p>
<h4>3- They care more about frameworks than plumbing.</h4>
<p>Unless you&#8217;re trying to design a complex new mathematical algorithm (in which case you should probably be partnering with a university research lab), you want someone who can grasp a system rather than a method. If this guy ends up in deep technical discussions about the optimal way of implementing a sort, you&#8217;ve got the wrong guy.</p>
<h4>4- They&#8217;re not willing to work for free</h4>
<p>Risk management and strategic thinking is key to long-term project viability. If you have someone willing to work for equity, they&#8217;re willing to take risks with your payment processing gateway just as easily as they&#8217;re taking a risk on you.</p>
<h4>5- They believe in development process and best practices to speed up their work.</h4>
<p>The last thing you want is someone who&#8217;s trying to reinvent the wheel. Mind you, this also likely means that the first two weeks or so of development you&#8217;ll see a lot of development support tools get set up and used before code actually starts, but that&#8217;ll give you time to get your documentation in order.</p>
<h4>6- They have a positive attitude.</h4>
<p>If someone bitches, they&#8217;re looking to blame themselves. Instead, you want them to identify their concern as a problem they can solve.</p>
<h4>7- They get uncomfortable when you ask about their social life.</h4>
<p>&#8217;cause, well, currently it&#8217;s still socially odd to prefer coding on a saturday night.</p>
<h4>8- You don&#8217;t want Alphabet/Acronym soup in their technical skills.</h4>
<p>Lots of languages means little depth in each, and depth = speed. Pick a serverside language (PHP, .Net, Ruby, etc), pick a database (MySQL, SQLServer, Postgres, etc), and pick a frontend (Flex, Mootools, JQuery, etc). Focus on that. If a dev has only a few languages this does not mean they&#8217;re stupid- it means they know how to focus.</p>
<h4>9- They&#8217;re involved in the community.</h4>
<p>Speaking, attending, whatever, you need to make sure their technical skills don&#8217;t stagnate, and that they&#8217;re willing to accept ideas from outside.</p>
<h4>10- You respect them</h4>
<p>Respect means you are willing to listen when they tell you you&#8217;re full of it, and that&#8217;s key in a partnership. You&#8217;re not looking for a monkey you can put in a corner who can bang out some code- you&#8217;re looking for a partner who&#8217;ll act as a technical sounding board.</p>
<div class="hr"></div>
<p>So now I have this question: What makes for a rockstar business partner?</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F01%2F10%2Fwhat-makes-a-rockstar-developer.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F01%2F10%2Fwhat-makes-a-rockstar-developer.html&amp;title=What%20makes%20a%20%27Rockstar%27%20Developer%3F&amp;notes=I%27ve%20recently%20been%20involved%20in%20a%20discussion%20about%20what%20makes%20a%20rockstar%20developer%20for%20a%20startup.%20This%20has%20always%20surprised%20me-%20the%20reality%20of%20the%20matter%20is%20that%20there%20are%20no%20rockstars%2C%20only%20people%20who%20think%20of%20themselves%20as%20rockstars%2C%20and%20those%20are%20t" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F01%2F10%2Fwhat-makes-a-rockstar-developer.html&amp;title=What%20makes%20a%20%27Rockstar%27%20Developer%3F&amp;bodytext=I%27ve%20recently%20been%20involved%20in%20a%20discussion%20about%20what%20makes%20a%20rockstar%20developer%20for%20a%20startup.%20This%20has%20always%20surprised%20me-%20the%20reality%20of%20the%20matter%20is%20that%20there%20are%20no%20rockstars%2C%20only%20people%20who%20think%20of%20themselves%20as%20rockstars%2C%20and%20those%20are%20t" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F01%2F10%2Fwhat-makes-a-rockstar-developer.html&amp;t=What%20makes%20a%20%27Rockstar%27%20Developer%3F" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F01%2F10%2Fwhat-makes-a-rockstar-developer.html&amp;title=What%20makes%20a%20%27Rockstar%27%20Developer%3F&amp;annotation=I%27ve%20recently%20been%20involved%20in%20a%20discussion%20about%20what%20makes%20a%20rockstar%20developer%20for%20a%20startup.%20This%20has%20always%20surprised%20me-%20the%20reality%20of%20the%20matter%20is%20that%20there%20are%20no%20rockstars%2C%20only%20people%20who%20think%20of%20themselves%20as%20rockstars%2C%20and%20those%20are%20t" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F01%2F10%2Fwhat-makes-a-rockstar-developer.html&amp;title=What%20makes%20a%20%27Rockstar%27%20Developer%3F" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2010%2F01%2F10%2Fwhat-makes-a-rockstar-developer.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2010/01/10/what-makes-a-rockstar-developer.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>How to Publish a Flash Application to the Facebook Stream</title>
		<link>http://www.krotscheck.net/2009/12/21/how-to-publish-a-flash-application-to-the-facebook-stream.html</link>
		<comments>http://www.krotscheck.net/2009/12/21/how-to-publish-a-flash-application-to-the-facebook-stream.html#comments</comments>
		<pubDate>Mon, 21 Dec 2009 20:19:23 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[share]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/2009/12/21/how-to-publish-a-flash-application-to-the-facebook-stream.html</guid>
		<description><![CDATA[If you&#8217;re in an agency and/or have been paying attention to Business Week and the Wall Street Journal recently, you&#8217;ll know that my former employer Resource Interactive recently released a service offering called &#8220;Off The Wall&#8220;, which in short is a way to extend your e-commerce workflow into the Facebook stream. &#8220;Share on Facebook&#8221; can [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re in an agency and/or have been paying attention to <a href="http://investing.businessweek.com/research/markets/news/article.asp?docKey=600-200910301156BIZWIRE_USPR_____BW5656-2QHHJKCOH16I2N0SL20B0UG0AN&amp;params=timestamp||10/30/2009%2011:56%20AM%20ET||headline||Resource%20Interactive%20Unveils%20Facebook%20Ecommerce%20Experience||docSource||Business%20Wire||provider||ACQUIREMEDIA" target="_blank">Business Week</a> and the <a href="http://blogs.wsj.com/digits/2009/12/21/shopping-comes-to-your-facebook-stream/" target="_blank">Wall Street Journal</a> recently, you&#8217;ll know that my former employer <a href="http://www.resource.com" target="_blank">Resource Interactive</a> recently released a service offering called &#8220;<a href="http://offthewall.resource.com/" target="_blank">Off The Wall</a>&#8220;, which in short is a way to extend your e-commerce workflow into the Facebook stream. &#8220;Share on Facebook&#8221; can now push a product to a user&#8217;s news feed, and if someone wants more information they never actually have to leave the Facebook environment to perform a &#8220;me too&#8221; purchase.<br /></p>
<p>Cool, huhn? Security concerns aside (Believe me, I am never giving <i>anything</i> on facebook my credit card information), this isn&#8217;t exactly new- pushing product information into the Facebook stream was what the original <a href="http://en.wikipedia.org/wiki/Facebook_Beacon">Facebook Beacon</a> was all about, and that was shut down via a class action lawsuit because it published user sales data without user approval. Additionally, pushing rich media applications into the Facebook stream is not new- anyone who&#8217;s viewed a youtube video in their Facebook stream knows how seamless that can be. What&#8217;s interesting though is that Resource has overcome the legal concerns with two changes: First, by giving users control of what to share when, and secondly by actually launching a full commerce application into something that people check every day.</p>
<p>If your initial reaction is disgust (&#8220;What? Another way for people to sell us their stuff? Blegh&#8221;) then you and I are pretty much on the same page, however don&#8217;t be blinded by other creative uses of this. For instance, if you want to buy someone a Christmas present, wouldn&#8217;t it be nice if you saw their wishlist items in the stream? What about gaming- if a friend of yours is playing some kind of a live flash mini game&#8230; wouldn&#8217;t you want to join them immediately? There are legitimate uses for this that don&#8217;t turn your stomach, so I figured I&#8217;d write a quick overview on how to put it together.</p>
<h2>So how did they do that?</h2>
<p>If you already have an application you want to run inside the Facebook news stream, then the process of getting it shareable is extremely simple, and is easily accessible to anyone who knows a little bit about flash, HTML metadata and the facebook platform. You have to perform the following tasks, most of which are trivial unless you are trying to do anything covered by a regulatory body (like accepting credit card information). For that you have to have a secure and federally accredited server, and that&#8217;s way outside of the scope of this article.</p>
<h3>Step 1: Add the &#8220;Share on Facebook&#8221; link on the page in question.</h3>
<p>The first thing you need to do is give your users the ability to actually share your page. This can be as easy as <a href="http://www.facebook.com/facebook-widgets/share.php" target="_blank">including a particularly formatted link</a> in your product page or as complicated as including <a href="http://wiki.developers.facebook.com/index.php/Fb:share-button" target="_blank">FBML</a> in your site&#8217;s header and namespace. Note that the share URL can include URL parameters that will customize the content of the page, and should be pointed at the hosted URL of your flash application- this is crucial for step 2.</p>
<div class="code">
  <pre>
&lt;a name="fb_share" type="button_count" href="http://www.facebook.com/sharer.php?u=[url to share]&amp;t=[title of content]"&gt;Share&lt;/a&gt;&lt;script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"&gt;&lt;/script&gt;
</pre>
</div>
<h3>Step 2: Add the correct meta tags to the page you want to share.</h3>
<p>When a user clicks on the above link, it actually triggers the Facebook Sharer script to scrape the provided URL for metadata that tells it how to share this page. All of this data is contained in the metadata tags of a page, and you can read the extensive documentation <a href="http://wiki.developers.facebook.com/index.php/Facebook_Share/Specifying_Meta_Tags" target="_blank">here</a>, however the important piece you&#8217;re looking for is how to share multimedia content. If you&#8217;ll read the documentation carefully, you&#8217;ll notice that while all references talk about video, in reality this share functionality allows you to display <i>any</i> flash content in the Facebook stream simply by replacing video_url with the URL to your flash SWF. This is still restricted to user action of course- nobody will see a flash app launched immediately, they&#8217;ll still see the icon and title as with any Youtube Video, and the application won&#8217;t launch until the user actually clicks on the icon.</p>
<div class="code">
  <pre>
&lt;meta name="title" content="video_title" /&gt;
&lt;meta name="description" content="video_description" /&gt;
&lt;link rel="image_src" href="video_screenshot_image_src url" /&gt;
&lt;link rel="video_src" href="video_src url"/&gt;
&lt;meta name="video_height" content="video_height" /&gt;
&lt;meta name="video_width" content="video_width" /&gt;
&lt;meta name="video_type" content="application/x-shockwave-flash" /&gt;
</pre>
</div>
<p class="small"><span style="color: #BBBBBB; font-size: .8em">EDITORIALIZING: What worries me on this is that Facebook&#8217;s documentation is very clearly targeted at video sharing, and that this may be a violation of their intent of the sharer script. In short, what Resource is publishing as an innovation to social commerce is little more than a hack bolted into a loophole. Even so, I don&#8217;t believe Facebook will try to blacklist retailer sites to put this genie back in its bottle, because it both encourages use of their platform while also opening the gates to more legitimate uses. The ability to see that someone is, say, playing a game right now and your ability to join them is only a single click away puts an entire new spin on live online gaming, especially with the recent release of Adobe Collaboration Services, but I digress&#8230;</span></p>
<h3>Step 3: Get your domain whitelisted by Facebook</h3>
<p>If you paid especially close attention to the documentation linked above, you&#8217;ll also note that multimedia sharing won&#8217;t work if your domain is not whitelisted by Facebook. This is to protect Facebook from people who might want to distribute illegal content that would get them in trouble (licensed movies for instance), but also gives Facebook ultimate white and blacklist control over any activity they don&#8217;t want subverting their functionality. The process is actually extremely simple: <a href="http://www.facebook.com/developers/developer_help.php" target="_blank">Click this link</a>, fill out the form, and wait for them to get back to you. Last time I did it it took less than 24 hours, but that was for a major retail site; your experience might vary.</p>
<p>That&#8217;s it. Enjoy!</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F21%2Fhow-to-publish-a-flash-application-to-the-facebook-stream.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F21%2Fhow-to-publish-a-flash-application-to-the-facebook-stream.html&amp;title=How%20to%20Publish%20a%20Flash%20Application%20to%20the%20Facebook%20Stream&amp;notes=If%20you%27re%20in%20an%20agency%20and%2For%20have%20been%20paying%20attention%20to%20Business%20Week%20and%20the%20Wall%20Street%20Journal%20recently%2C%20you%27ll%20know%20that%20my%20former%20employer%20Resource%20Interactive%20recently%20released%20a%20service%20offering%20called%20%22Off%20The%20Wall%22%2C%20which%20in%20short%20is%20a%20w" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F21%2Fhow-to-publish-a-flash-application-to-the-facebook-stream.html&amp;title=How%20to%20Publish%20a%20Flash%20Application%20to%20the%20Facebook%20Stream&amp;bodytext=If%20you%27re%20in%20an%20agency%20and%2For%20have%20been%20paying%20attention%20to%20Business%20Week%20and%20the%20Wall%20Street%20Journal%20recently%2C%20you%27ll%20know%20that%20my%20former%20employer%20Resource%20Interactive%20recently%20released%20a%20service%20offering%20called%20%22Off%20The%20Wall%22%2C%20which%20in%20short%20is%20a%20w" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F21%2Fhow-to-publish-a-flash-application-to-the-facebook-stream.html&amp;t=How%20to%20Publish%20a%20Flash%20Application%20to%20the%20Facebook%20Stream" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F21%2Fhow-to-publish-a-flash-application-to-the-facebook-stream.html&amp;title=How%20to%20Publish%20a%20Flash%20Application%20to%20the%20Facebook%20Stream&amp;annotation=If%20you%27re%20in%20an%20agency%20and%2For%20have%20been%20paying%20attention%20to%20Business%20Week%20and%20the%20Wall%20Street%20Journal%20recently%2C%20you%27ll%20know%20that%20my%20former%20employer%20Resource%20Interactive%20recently%20released%20a%20service%20offering%20called%20%22Off%20The%20Wall%22%2C%20which%20in%20short%20is%20a%20w" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F21%2Fhow-to-publish-a-flash-application-to-the-facebook-stream.html&amp;title=How%20to%20Publish%20a%20Flash%20Application%20to%20the%20Facebook%20Stream" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F21%2Fhow-to-publish-a-flash-application-to-the-facebook-stream.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2009/12/21/how-to-publish-a-flash-application-to-the-facebook-stream.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Looking at Student Debt as an Opportunity</title>
		<link>http://www.krotscheck.net/2009/12/10/looking-at-student-debt-as-an-opportunity.html</link>
		<comments>http://www.krotscheck.net/2009/12/10/looking-at-student-debt-as-an-opportunity.html#comments</comments>
		<pubDate>Thu, 10 Dec 2009 16:02:19 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[loans]]></category>
		<category><![CDATA[market analysis]]></category>
		<category><![CDATA[opportunity]]></category>
		<category><![CDATA[scholarship]]></category>
		<category><![CDATA[student debt]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/2009/12/10/looking-at-student-debt-as-an-opportunity.html</guid>
		<description><![CDATA[<p>There is a $128 billion dollar untapped demand for student debt assistance, if you can find a way to meet it. The conditions of the environment in which this demand exists may even contribute to an increase in the demand as you provide a debt-assistance service.<br /></p>]]></description>
			<content:encoded><![CDATA[<p><b>Summary:</b> There is a $128 billion dollar untapped demand for student debt assistance, if you can find a way to meet it. The conditions of the environment in which this demand exists may even contribute to an increase in the demand as you provide a debt-assistance service.</p>
<div class="hr"></div>
<p>We all know that students have no money- many of us have been there and scraped by on ramen and coffee often for weeks on end, and now we are all, to a greater or lesser extent, burdened by the cost of our education as we have leveraged part of our future to gain the success we have now. It&#8217;s part of our environment. It&#8217;s who we are, it&#8217;s what we expect, it&#8217;s part of our lives, and it will be part of our childs&#8217; lives as they grow up. We don&#8217;t think much about it- it&#8217;s simply there.</p>
<p>If you&#8217;ve watched this video from TED on how <a target="_blank" href="http://www.ted.com/talks/ken_robinson_says_schools_kill_creativity.html">schools kill creativity</a>, you know that there are some salient points to be made about how our primary and secondary educational system encourages a certain type of talent &#8211; science and maths &#8211; while actively discouraging the humanities and arts. While I would love to see more study on the topic, I want to extrapolate on Sir Ken Robinson&#8217;s argument and apply it to the space of postsecondary education.</p>
<p>Consider: If you were a student entering college today, and you were told that you&#8217;re going to walk out with an average of $23,000 in debt ($33,000 for private schools, according to <a target="_blank" href="http://projectonstudentdebt.org/files/File/Debt_Facts_and_Sources.pdf">this study</a> [PDF] ), would you choose a career in engineering or in the fine arts? To <a target="_blank" href="http://www.democratandchronicle.com/article/20090329/NEWS01/903290339/Many-college-students-face-mountain-of-debt-once-they-graduate">quote one</a> student, borrowing so much only makes sense &#8220;as long as you&#8217;re going to the school for a career that will pay enough&#8221;, so it certainly seems like we are actively discouraging pursuit of &#8220;cultural&#8221; careers in the arts and humanities.</p>
<p>Is this a problem? Good question, but it certainly shapes our national identity. If we want to be known as a country of technical innovators, then this system is perfectly fine as it fills our homes with highly technical thinkers. If in contrast we want to be known as a cultural mecca, it&#8217;s the worst thing ever as we are actively discouraging our students from pursuing fields that contribute to that.</p>
<p>But that&#8217;s not the point I&#8217;m trying to make here, it is simply the path to how I got to this blog post. See, I see this as a problem, and problems need solutions, so I want to take a business-side approach to this issue and ponder on any market opportunities that might exist. After all, if federal programs are unable to meet this country&#8217;s educational needs, then private business will have to pick up the slack, and they&#8217;re only going to do it if there&#8217;s money to be made.</p>
<h3>Some Numbers</h3>
<p>To take some numbers from <a target="_blank" href="http://www.trends-collegeboard.com/student_aid/pdf/2009_Trends_Student_Aid.pdf">this study</a> [PDF], I&#8217;ve extracted the following table:</p>
<h5>Table 1: Total Student Aid and Nonfederal Loans Used to Finance Postsecondary Education Expenses in Constant (2008) Dollars (in Millions), 1998-99 to 2008-09</h5>
<table border="0" cellpadding="0" cellspacing="0" class="callout">
  <tbody>
    <tr>
      <th>Year</th>
      <th>2004</th>

      <th>2005</th>

      <th>2006</th>

      <th>2007</th>

      <th>2008</th>
    </tr>

    <tr>
      <th>Federal Grants</th>
      <td>$21,441</td>

      <td>$20,503</td>

      <td>$20,579</td>

      <td>$22,328</td>

      <td>$24,784</td>
    </tr>

    <tr>
      <th>Federal Loans</th>

      <td>$63,674</td>

      <td>$65,272</td>

      <td>$66,327</td>

      <td>$72,938</td>

      <td>$83,981</td>
    </tr>

    <tr>
      <th>Work-Study</th>


      <td>$1,257</td>

      <td>$1,183</td>

      <td>$1,127</td>

      <td>$1,123</td>

      <td>$1,171</td>
    </tr>

    <tr>
      <th>Tax Credit</th>

      <td>$7,030</td>

      <td>$6,990</td>

      <td>$7,000</td>

      <td>$7,000</td>

      <td>$6,830</td>
    </tr>

    <tr>
      <th>State Grants</th>

      <td>$7,681</td>

      <td>$7,696</td>

      <td>$8,195</td>

      <td>$8,446</td>

      <td>$8,492</td>
    </tr>

    <tr>
      <th>Institutional Grants</th>

      <td>$25,140</td>

      <td>$26,840</td>

      <td>$28,330</td>

      <td>$29,960</td>

      <td>$31,160</td>
    </tr>

    <tr>
      <th>Private Grants</th>

      <td>$9,890</td>

      <td>$10,620</td>

      <td>$11,280</td>

      <td>$12,200</td>

      <td>$11,960</td>
    </tr>

    <tr>
      <th>Private Loans</th>

      <td>$16,030</td>

      <td>$19,250</td>

      <td>$22,050</td>

      <td>$23,760</td>

      <td>$11,900</td>
    </tr>
  </tbody>
</table>
<p>What we can easily extract from this is the individual line items which add load to students. The loans are easy, and I am also including Work Study and Institutional Grants. The former, because it&#8217;s activity that actively detracts from a student&#8217;s attention to their studies (by having a job) and the latter for reasons I discuss below. Given that, I&#8217;ve generated the following table:</p>
<h5>Table 2: Total unmet need covered by students in Constant (2008) Dollars (in Millions), 1998-99 to 2008-09</h5>
<table border="0" cellpadding="0" cellspacing="0" class="callout">
  <tbody>
    <tr>
      <th>Year</th>

      <th>2004</th>

      <th>2005</th>

      <th>2006</th>

      <th>2007</th>

      <th>2008</th>
    </tr>

    <tr>
      <th>Total Unmet Need Financed by Debt</th>

      <td>$106,101</td>

      <td>$112,545</td>

      <td>$117,834</td>

      <td>$127,781</td>

      <td>$128,212</td>
    </tr>
  </tbody>
</table>
<p>Do you see what I see? I see a $128 billion dollar demand for a solution, but demand is only useful if a supply may be found that may be profitably offered to that market. Thankfully, the actual act of marketing any solution you can come up with is easy- between high school career counselors and college students&#8217; naturally viral nature you effectively have a captive audience, assuming your solution is a good one. But unless you&#8217;re the treasury or the federal bank you can&#8217;t exactly pull $128 billion dollars and slap it on the table, and even if you were I doubt the taxpayers would be willing to pay for that (though we do love our <a target="_blank" href="http://en.wikipedia.org/wiki/Military_budget_of_the_United_States">bombers</a>).</p>
<h3>Universities as Contributors to the Problem</h3>
<p>On of the real culprits in this whole situation is Universities themselves. College Tuition has been increasing at an average rate of <a target="_blank" href="http://www.finaid.org/savings/tuition-inflation.phtml">8% a year</a>, while the <a target="_blank" href="http://en.wikipedia.org/wiki/Median_household_income">median household income</a> is hardly keeping up, especially if you take inflation into account. My own Alma Mater for instance (Carnegie Mellon) posted an annual tuition rate of $40,000 dollars this year, which from what I can tell is the highest in the nation and a significant uptick from the $18,000 I was paying in 2000. So how exactly can universities justify this increase?</p>
<p>Fact is, those tuition numbers are simply not real, because universities are skimming the market. Simply put, all the financial data a student is asked to report when they apply for financial aid year after year is used to calculate exactly how much the student and their family can afford. Once they have this number, they will add as many student loans as the student is eligible for (maxxed out of course), and might even add some private loans to it as well. Once they have that number, they will add something called a &#8220;Need based grant&#8221;, &#8220;Merit based grant&#8221; or &#8220;institutional grant&#8221; (or something similar) as a line item to make up the difference because they can&#8217;t charge you any more.</p>
<p>This makes identifying a good solution to student debt a far more difficult problem, because as soon as you find a business solution to meet the above noted demand, universities can simply respond by adding another line item to their financial aid calculations and the problem is right back where it started.</p>
<h3>Or&#8230; is it?</h3>
<p>Here&#8217;s where things get a little devious, and I apologize for suspending my personal ethics to even suggest this. Consider: If you provide a method for students to raise money against their debt, and universities in response raise their tuition to capture that value so that the debt doesn&#8217;t actually go away&#8230; then they are <i>increasing the size of the market.</i> That&#8217;s right, simply by helping students find a way to meet their debt obligations, the behavior of the other actors in the market environment will ensure that your market size grows. And while this certainly doesn&#8217;t provide a real solution to the <i>actual</i> problem, it should have any finance guy&#8217;s salivary glands working in overtime.</p>
<p>If, of course, you can meet the demand. In a new and successful way.</p>


Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F10%2Flooking-at-student-debt-as-an-opportunity.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F10%2Flooking-at-student-debt-as-an-opportunity.html&amp;title=Looking%20at%20Student%20Debt%20as%20an%20Opportunity&amp;notes=There%20is%20a%20%24128%20billion%20dollar%20untapped%20demand%20for%20student%20debt%20assistance%2C%20if%20you%20can%20find%20a%20way%20to%20meet%20it.%20The%20conditions%20of%20the%20environment%20in%20which%20this%20demand%20exists%20may%20even%20contribute%20to%20an%20increase%20in%20the%20demand%20as%20you%20provide%20a%20debt-assistance%20service." title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F10%2Flooking-at-student-debt-as-an-opportunity.html&amp;title=Looking%20at%20Student%20Debt%20as%20an%20Opportunity&amp;bodytext=There%20is%20a%20%24128%20billion%20dollar%20untapped%20demand%20for%20student%20debt%20assistance%2C%20if%20you%20can%20find%20a%20way%20to%20meet%20it.%20The%20conditions%20of%20the%20environment%20in%20which%20this%20demand%20exists%20may%20even%20contribute%20to%20an%20increase%20in%20the%20demand%20as%20you%20provide%20a%20debt-assistance%20service." title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F10%2Flooking-at-student-debt-as-an-opportunity.html&amp;t=Looking%20at%20Student%20Debt%20as%20an%20Opportunity" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F10%2Flooking-at-student-debt-as-an-opportunity.html&amp;title=Looking%20at%20Student%20Debt%20as%20an%20Opportunity&amp;annotation=There%20is%20a%20%24128%20billion%20dollar%20untapped%20demand%20for%20student%20debt%20assistance%2C%20if%20you%20can%20find%20a%20way%20to%20meet%20it.%20The%20conditions%20of%20the%20environment%20in%20which%20this%20demand%20exists%20may%20even%20contribute%20to%20an%20increase%20in%20the%20demand%20as%20you%20provide%20a%20debt-assistance%20service." title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F10%2Flooking-at-student-debt-as-an-opportunity.html&amp;title=Looking%20at%20Student%20Debt%20as%20an%20Opportunity" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F10%2Flooking-at-student-debt-as-an-opportunity.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2009/12/10/looking-at-student-debt-as-an-opportunity.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Looking for a Partner</title>
		<link>http://www.krotscheck.net/2009/12/06/looking-for-a-partner.html</link>
		<comments>http://www.krotscheck.net/2009/12/06/looking-for-a-partner.html#comments</comments>
		<pubDate>Mon, 07 Dec 2009 00:00:31 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/2009/12/06/looking-for-a-partner.html</guid>
		<description><![CDATA[I think it&#8217;s about high time that I find a partner. Let me explain: I have an Idea- and I think it&#8217;s a pretty big idea- but as I&#8217;ve moved forward with the tech implementation I&#8217;m starting to realize that my biggest hurdle is that I&#8217;m not a designer (no matter how much I might [...]]]></description>
			<content:encoded><![CDATA[<p>I think it&#8217;s about high time that I find a partner.</p>
<p>Let me explain: I have an Idea- and I think it&#8217;s a pretty big idea- but as I&#8217;ve moved forward with the tech implementation I&#8217;m starting to realize that my biggest hurdle is that I&#8217;m not a designer (no matter how much I might think I am). It&#8217;s not a question of skill- well, ok, in some cases it is &#8211; but more a question of speed: I can sling code with the best of them, but I can&#8217;t for the sake of me figure out how to make something easy use and/or pretty without beating my head against the wall for days on end. I don&#8217;t have the practice, skills or experience to do that quickly, so I end up finding more and more excuses to refine the technology than really focusing on what matters: the User experience.</p>
<p>As such, the skill set should complement my own- I can handle the implementation, you should be able to handle the look, feel, and experience. This goes beyond simple design, too- we&#8217;re going to have to collaborate on feature priorities, but as for the how to and now what that would be left largely in your hands. This means you&#8217;ll have to have a strong work ethic, and be willing and able to receive and reciprocate mutual encouragement- if one of us slips, we both fall, so in the truest sense of the word I&#8217;m looking for a Partner.</p>
<p>I don&#8217;t care about location- we can do meetings by Skype, phone or whatever as long as you are recommended and vetted by someone I know and trust. In fact, if you&#8217;re located in Pittsburgh that would be pretty awesome, as the startup community there with <a href="http://www.innovationworks.org/">InnovationWorks</a> and the <a href="http://alphalab.org/">Alpha Lab</a> are incredibly supportive of getting endeavors of the ground. That&#8217;s hardly a requirement though, so don&#8217;t let that turn you off.</p>
<p>There are two real requirements though: 1- You&#8217;re a seasoned professional (feel free to define that as you see fit), and 2- You have a highly developed sense of ethics. You&#8217;ll understand why that second one is important as soon as you get a whiff of the idea.</p>
<p>What do you get? Well, first of all you get to work with a seasoned code nerd who appreciates (as you saw above) good UI and UX, and really wants to make it part of the core of the team. I can&#8217;t exactly pay you- No startup at this stage of the game can, but you&#8217;ll be happy to know that I&#8217;m not getting paid either (In fact, I&#8217;m currently paying for the servers). As for equity- well, partner is partner, and I&#8217;m willing to go even-split, but that might include more people down the road as the business side of the idea starts to become more prominent.</p>
<p>So&#8230; uh&#8230; what&#8217;s the idea? There are a lot of people out there who know what it is already- I&#8217;m certainly not unwilling to share, but I&#8217;m not about to blog about it. I firmly believe that there&#8217;s no such thing as a new idea on the internet, and the only way you can differentiate yourself is to do it better. Having said that, a current google search doesn&#8217;t turn up with much, so I figure it&#8217;s worth a shot.</p>
<p>Interested? Know someone who might be interested? Well then drop me a line, send me some visual samples, get a mutual friend to introduce you and I&#8217;ll fill you in on the actual scope of the idea.</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F06%2Flooking-for-a-partner.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F06%2Flooking-for-a-partner.html&amp;title=Looking%20for%20a%20Partner&amp;notes=I%20think%20it%27s%20about%20high%20time%20that%20I%20find%20a%20partner.%0ALet%20me%20explain%3A%20I%20have%20an%20Idea-%20and%20I%20think%20it%27s%20a%20pretty%20big%20idea-%20but%20as%20I%27ve%20moved%20forward%20with%20the%20tech%20implementation%20I%27m%20starting%20to%20realize%20that%20my%20biggest%20hurdle%20is%20that%20I%27m%20not%20a%20designer%20%28" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F06%2Flooking-for-a-partner.html&amp;title=Looking%20for%20a%20Partner&amp;bodytext=I%20think%20it%27s%20about%20high%20time%20that%20I%20find%20a%20partner.%0ALet%20me%20explain%3A%20I%20have%20an%20Idea-%20and%20I%20think%20it%27s%20a%20pretty%20big%20idea-%20but%20as%20I%27ve%20moved%20forward%20with%20the%20tech%20implementation%20I%27m%20starting%20to%20realize%20that%20my%20biggest%20hurdle%20is%20that%20I%27m%20not%20a%20designer%20%28" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F06%2Flooking-for-a-partner.html&amp;t=Looking%20for%20a%20Partner" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F06%2Flooking-for-a-partner.html&amp;title=Looking%20for%20a%20Partner&amp;annotation=I%20think%20it%27s%20about%20high%20time%20that%20I%20find%20a%20partner.%0ALet%20me%20explain%3A%20I%20have%20an%20Idea-%20and%20I%20think%20it%27s%20a%20pretty%20big%20idea-%20but%20as%20I%27ve%20moved%20forward%20with%20the%20tech%20implementation%20I%27m%20starting%20to%20realize%20that%20my%20biggest%20hurdle%20is%20that%20I%27m%20not%20a%20designer%20%28" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F06%2Flooking-for-a-partner.html&amp;title=Looking%20for%20a%20Partner" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F06%2Flooking-for-a-partner.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2009/12/06/looking-for-a-partner.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Forging ahead at SxSW</title>
		<link>http://www.krotscheck.net/2009/12/01/forging-ahead-at-sxsw.html</link>
		<comments>http://www.krotscheck.net/2009/12/01/forging-ahead-at-sxsw.html#comments</comments>
		<pubDate>Tue, 01 Dec 2009 14:00:26 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/?p=2263</guid>
		<description><![CDATA[First, the big news: <a href="http://www.afhill.com/blog">Andrea Hill</a> and I will be jointly leading one of the core conversations at <a href="http://sxsw.com/">South By Southwest</a>. Cool, huhn? Even better, our conversation will be focused on managing your career and figuring out how to pursue opportunities, somethign that's been at the forefront of both of our minds recently.]]></description>
			<content:encoded><![CDATA[<p>First, the big news: <a href="http://www.afhill.com/blog">Andrea Hill</a> and I will be jointly leading one of the core conversations at <a href="http://sxsw.com/node/3854">South By Southwest</a>. Cool, huhn? Even better, our conversation will be focused on managing your career and figuring out how to pursue opportunities, something that&#8217;s been at the forefront of both of our minds recently. But before I extrapolate more on where we&#8217;re going with this, let me first show you what our session will be all about:</p>
<div class="callout">
<h4><a href="http://panelpicker.sxsw.com/ideas/view/4553">Forging Your Ideal Career</a></h4>
<p>You’ve proven you’re a great developer / designer. How do you rise above the production floor to share your ideas and insights, and drive the solution rather than simply implementing it? Presenters will share their strategies for cultivating your career and attaining personal satisfaction while still keeping a steady paycheck!</p>
<ul>
	<li>What if you feel your company&#8217;s career path is not for you?</li>
	<li>How do you position yourself as what you want to be doing, versus what you&#8217;re currently doing?</li>
	<li>How can networking help?</li>
	<li>What opportunities exist outside work?</li>
	<li>Forget work-life balance: how do you maintain paid work-unpaid work balance?</li>
	<li>How do you get support from your organization for your outside activities?</li>
	<li>What ideas do you share with your employer, versus keeping them to yourself?</li>
	<li>Wherein lies the problem: Your career, your job, or your company?</li>
	<li>When is it time to leave?</li>
	<li>How do you move on without burning bridges? </li>
</ul>
</div>
<span style="color: #BBBBBB; font-size: .8em"><p class="small">Personally, I find this ironically appropriate because I recently left an employer whom I absolutely loved in favor of a new opportunity, but I digress&#8230;</p></span>
<p>Now that we&#8217;ve been chosen (muchas gracias), we&#8217;ve entered into a tacit agreement with the organizers that we will help them make this years&#8217; SxSW as awesome as humanly possible. No pressure, right? Well, they&#8217;ve also thrown us a bit of a curve ball in that we&#8217;ve been asked to lead a discussion (Known as a Core Conversation) rather than holding a joint presentation. This means no A/V equipment, and the content coming from the discourse rather than the presentation.</p>
<p>After thinking about it for a bit, I really feel this is a much better format for the topic. Consider: Careers are very personal things, and for either of us to claim that we have all the answers is just a mite bit arrogant. So rather than proclaim to be career management experts (which we&#8217;re not), we&#8217;re just two people with applicable history who are willing to seek out guidance from others with similar experiences.</p>
<p>Yet it&#8217;s also extremely important to frame what the topic is NOT. This is not a way for you to get out of a stifling company, nor a way for you to get your unappreciative boss fired. This is especially not a forum where you can bitch about lazy coworkers who are holding you back. This is a forum where we discuss how to frame your career goals, evaluate your current situation for opportunities, and move from there.</p>
<p>Which brings me to you, our readers, as we&#8217;re looking for feedback and information to help us lay the foundations. We&#8217;re looking for any kind of feedback- experiences, questions, data- everything from real experiences about why you made a career based move to silly topics about your lucky teddy bear. Spit it out, we&#8217;d love to know it. </p>


Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F01%2Fforging-ahead-at-sxsw.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F01%2Fforging-ahead-at-sxsw.html&amp;title=Forging%20ahead%20at%20SxSW&amp;notes=First%2C%20the%20big%20news%3A%20Andrea%20Hill%20and%20I%20will%20be%20jointly%20leading%20one%20of%20the%20core%20conversations%20at%20South%20By%20Southwest.%20Cool%2C%20huhn%3F%20Even%20better%2C%20our%20conversation%20will%20be%20focused%20on%20managing%20your%20career%20and%20figuring%20out%20how%20to%20pursue%20opportunities%2C%20somethign%20that%27s%20been%20at%20the%20forefront%20of%20both%20of%20our%20minds%20recently." title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F01%2Fforging-ahead-at-sxsw.html&amp;title=Forging%20ahead%20at%20SxSW&amp;bodytext=First%2C%20the%20big%20news%3A%20Andrea%20Hill%20and%20I%20will%20be%20jointly%20leading%20one%20of%20the%20core%20conversations%20at%20South%20By%20Southwest.%20Cool%2C%20huhn%3F%20Even%20better%2C%20our%20conversation%20will%20be%20focused%20on%20managing%20your%20career%20and%20figuring%20out%20how%20to%20pursue%20opportunities%2C%20somethign%20that%27s%20been%20at%20the%20forefront%20of%20both%20of%20our%20minds%20recently." title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F01%2Fforging-ahead-at-sxsw.html&amp;t=Forging%20ahead%20at%20SxSW" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F01%2Fforging-ahead-at-sxsw.html&amp;title=Forging%20ahead%20at%20SxSW&amp;annotation=First%2C%20the%20big%20news%3A%20Andrea%20Hill%20and%20I%20will%20be%20jointly%20leading%20one%20of%20the%20core%20conversations%20at%20South%20By%20Southwest.%20Cool%2C%20huhn%3F%20Even%20better%2C%20our%20conversation%20will%20be%20focused%20on%20managing%20your%20career%20and%20figuring%20out%20how%20to%20pursue%20opportunities%2C%20somethign%20that%27s%20been%20at%20the%20forefront%20of%20both%20of%20our%20minds%20recently." title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F01%2Fforging-ahead-at-sxsw.html&amp;title=Forging%20ahead%20at%20SxSW" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F12%2F01%2Fforging-ahead-at-sxsw.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2009/12/01/forging-ahead-at-sxsw.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MAX Report, Day 1</title>
		<link>http://www.krotscheck.net/2009/10/06/max-report-day-1.html</link>
		<comments>http://www.krotscheck.net/2009/10/06/max-report-day-1.html#comments</comments>
		<pubDate>Tue, 06 Oct 2009 13:35:33 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/?p=2254</guid>
		<description><![CDATA[Miss me? Yes, I haven&#8217;t posted for&#8230; oh man, way too long, and I honestly don&#8217;t think my schedule&#8217;s going to change much at all, so I doubt I&#8217;m going to pick up the pace anytime soon. But having said that, I&#8217;m currently in L.A. for the Adobe MAX conference, and since one of the [...]]]></description>
			<content:encoded><![CDATA[<p>Miss me? Yes, I haven&#8217;t posted for&#8230; oh man, way too long, and I honestly don&#8217;t think my schedule&#8217;s going to change much at all, so I doubt I&#8217;m going to pick up the pace anytime soon. But having said that, I&#8217;m currently in L.A. for the Adobe MAX conference, and since one of the caveats of Resource sending me here was that I&#8217;d try to collate all the things I came across and bring them back to the company, I figure I might as well make a few blog posts about it. Also, since I know my general readership isn&#8217;t as nerdy as I, I&#8217;ll try to put things in non-technical terms. I&#8217;m not going to explicitly critique individual sessions here- that&#8217;s tedious and boring, and you can see them online anyway (The keynote, for instance, is <a href="http://max.adobe.com/online/?sdid=EXCFD">here</a>) &#8211; but I will talk about the new stuff that&#8217;s coming out and give you some minor editorializing on it.</p>
<h3>Flash to iPhone!</h3>
<p>Yes, you&#8217;ve probably heard it everywhere- the next version of Flash will be able to compile for the iPhone. Chances are you&#8217;ve already learned all the details, so here&#8217;s a recap:</p>
<ol>
<li>Flash will be able to compile natively to the iPhone. This is a bytecode compiler, not a version of the AIR runtime or anything like that (Well, it might be, but Adobe&#8217;s not telling us what&#8217;s up).</li>
<li><em>Right Now</em> the support for mobile features is limited. For instance you can write to the camera, but you can&#8217;t read from the camera. So AR isn&#8217;t an option&#8230; yet.</li>
<li>Since it&#8217;s pretty limited from a hardware standpoint, it will require mastery of a new application and component framework called &#8220;Slider&#8221; (Introduced today).</li>
<li>As Adobe works on a roughly 18 month release cycle, you can expect the new version of Flash CS5 to be out around April/May, with betas available in the next month or three (Though they might accelerate it to coincide with the Catalyst/Builder release slated for Q1).</li>
</ol>
<span style="color: #BBBBBB; font-size: .8em">
<h4>Editorializing</h4>
<p>The interesting thing to note here isn&#8217;t that it&#8217;s &#8220;ooh ooh, iPhone&#8221;, but that it&#8217;s &#8220;ooh ooh, native bits!&#8221;. Adobe&#8217;s shown that Actionscript isn&#8217;t restricted to the flash player anymore, which could mean one of two things: 1- It&#8217;s Saberrattling directed at Microsoft and Sun to take their hands off the web space, else they&#8217;ll have competition in the Desktop space, 2- They&#8217;re trying to push AS as a legitimate development environment, or 3- Nothing, really, it&#8217;s just cool tech.</p>
</span>
<h3>Flash Player 10.1</h3>
<p>Secondly, Adobe announced a <a href="http://www.adobe.com/devnet/logged_in/jchurch_flashplayer10.1.html?devcon=f2">new point release of the Flash Player</a> this morning. There are lots of features, but perhaps the largest is that this player has been designed to work on 29 out of 30 mobile platforms (guess which one&#8217;s not in the list). Yes- that&#8217;s the full flash player available to smartphones. Additionally, here are some more takeaways:</p>
<h4>Resource Usage</h4>
<p>Mobile devices simply don&#8217;t have the computing power of desktop or laptop computers, so one of the major hurdles (and criticisms, if you listen to Apple and Google) is that the Flash Player puts a pretty significant strain on your system. While no amount of player improvement will save you from badly written software, it&#8217;s nice to see Adobe put some money into improving their own platform, and we&#8217;ll see exactly what the actual impact is.</p>
<h4>Multitouch Support</h4>
<p>Multitouch screens are everywhere now, mostly thanks to Apple, and for the Flash player to be competitive on a mobile platform it must accept input from a multitouch screen. This now opens the door to multitouch web experiences, which also makes Flash a competitive development platform for interactive walls and the such.</p>
<h4>Streaming Enhancements</h4>
<p>I doubt you&#8217;ll notice the actual impact of this, other than you won&#8217;t see as many interruptions while watching youtube&#8230; on your phone&#8230; while driving. No, really- the streaming enhancements are there to smooth out video playback in an environment where the video player is rapidly moving across different network access points (like cellular towers). You as a mobile user probably don&#8217;t realize how often your phone switches from one tower to the next because it&#8217;s handled so seamlessly, however it really did become obvious while watching video. If this enhancement really does what Adobe says it will, then live television on mobile devices will actually become technically feasible&#8230; while moving.</p>
<span style="color: #BBBBBB; font-size: .8em">
<h4>Editorializing</h4>
<p>Personally I&#8217;m going to take all the marketing promises with a grain of salt, however whether or not these features perform is secondary to the nature of the features themeselves: This is probably the first time I&#8217;ve seen such an obvious example of how the desktop environment is no longer the feature driver, but is rather subject to how mobile devices are evolving. In order to bring Flash to the mobile platform, Adobe had to make some significant updates to the Flash Player, and desktop users stand to benefit greatly from them.</p>
</span>

<h3>Mosaic</h3>
<p>I highly suspect that this is the rebranding of the <a href="http://www.krotscheck.net/2008/10/04/adobe-genesis-make-your-own-mashup.html">Adobe Genesis</a> project which I blogged about some time ago. In short, it&#8217;s a way to create a series of interactive pods that can intercommunicate, but which in and of themselves have their own independent functionality. These pods can then be arranged on a page as you see fit (to, say, build out an HR application) and these pages can be managed (either at the page or pod level) by a workflow.</p>
<p>This is probably one of the strongest moves I&#8217;ve seen recently into the Enterprise software space (Well, other than the Oracle-Sun acquisition), and means that we might finally see a crack in the armor of monolithic ERP systems.</p>
<span style="color: #BBBBBB; font-size: .8em">
<h4>Editorializing</h4>
<p>99.9% of you won&#8217;t care about this. To the remaining .1% who are operating with enterprise-scale budgets and are sick of hiring arrogant SAP consultants, this is a watershed product. Also, go follow <a href="http://twitter.com/dan_mcweeney">Dan McWeeney</a>- he&#8217;s one of the Devs on the project.</p>
</span>
<h3>AIR 2.0</h3>
<p>The announcement of AIR 2.0 addresses most of the major complaints people have had with the AIR platform. These are as follows:</p>

<ol>
<li><b>Native Installer support</b><br />
This sounds like you can create an installer which is not dependent on having the AIR runtime installed. There wasn&#8217;t too much detail on this, but I&#8217;m hopeful.</li>
<li><b>Memory Improvements</b><br />
Tweetdeck won&#8217;t kill your machine anymore (Well, it still will, but it&#8217;ll do less of that- expect a 50% improvement).</li>
<li><b>Launching Native Applications</b><br />
It will be possible to launch already installed applications from your AIR application, so if, for instance, you&#8217;re building some kind of a file browser, you can now open those files in the application they were meant to be opened in.</li>
<li><b>USB Recognition</b><br />
We saw a demo of reading files from a USB drive. While this may mean that only device recognition is possible (hey, there&#8217;s some kind of new USB device, but I don&#8217;t know what it does), if this is fully built out we can see hardware device UI&#8217;s managed completely via the flash platform.</li>
</ol>
<span style="color: #BBBBBB; font-size: .8em">
<h4>Editorializing</h4>
<p>Honestly, this (plus the snippets pane in Flash which I don&#8217;t cover here) pretty much spell the end of Director. Good riddance.</p>
</span>

<h3>Flash CS5</h3>

<p>There are a ton of new features available in the upcoming Flash CS5, and as I&#8217;ve talked about the iPhone above, I&#8217;ll highlight the other ones here.</p>

<ul>
<li><b>Real Text Support</b><br />
This version of &#8220;Real Text Support&#8221; (Wasn&#8217;t there a buzzword like this a few years back?) means left to right, ligatures, underline, strikethrough, paragraph flow and the consolidation of all text embedding.</li>
<li><b>XFL as the base file format</b><br />
The base file format of a Flash file is moving to XML, so anyone can create/author flash files, and we won&#8217;t step on each other&#8217;s toes when they&#8217;re committed to a versioning system. Personally, I wonder how long it&#8217;s going to take Microsoft to write a XAML conversion script.</li>
</ul>
<span style="color: #BBBBBB; font-size: .8em">
<h4>Editorializing</h4>
<p>About bloody time. Also, I should note that we just upgraded to CS4 two weeks ago, so I don&#8217;t expect to have official corporate blessing to use any of this stuff for another two years.</p>
</span>
<h3>LiveCycle Collaboration Services</h3>
<p>This is what I spent most of my day on yesterday, and will be spending most of my day on on Wednesday as well. In short, it is a way to create live multiuser experiences easily on the flash platform. If that doesn&#8217;t make sense to you, think of your favorite webconferencing solution (WebEx, Acrobat Connect, etc) and realize that now you can put this into your branded flash application. Oh yeah, and that works on mobile, too.</p>
<p>To be honest, this is really hard to describe unless you have a working sample, but imagine for a moment that you&#8217;re on the ESPN site doing your draft picks for fantasy football. Normally, you&#8217;d have to take turns, and it would take forever for emails to work their way around and so fort. Well, if this site was LCCS enabled you would see all the other players in your league interacting real time (no really, you&#8217;ll see their mice moving around), and could hand the baton around as to who gets to pick next.</p>
<p>Now, this has been around for a while known first as Cocomo and AFCS- but the big change now is that they&#8217;ve announced pricing. The best place to look is <a href="http://forums.adobe.com/message/2292267#2292267">here</a>, though I expect it&#8217;ll be officially posted somewhere else as well. Something to note- their blog doesn&#8217;t appear to be linked from the labs site, so here&#8217;s the link to the <a href="http://blogs.adobe.com/collabmethods/">LCCS Blog</a>.</p>

<span style="color: #BBBBBB; font-size: .8em">
<h4>Editorializing</h4>

<p>It&#8217;s going to take a while to figure out what neat things people will do with this. I already have a few ideas, but I&#8217;m hardly the only mensa-grade genius thinking of these things, so we&#8217;re bound to see some really cool stuff.</p>
</span>
<hr />

<p>That&#8217;s about it for now. Today is going to be a really long day, so I doubt I&#8217;ll be able to post again, but you&#8217;ll definitely get an update from me on Wednesday-ish. If I missed anything, don&#8217;t hesitate to comment.</p>


Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F10%2F06%2Fmax-report-day-1.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F10%2F06%2Fmax-report-day-1.html&amp;title=MAX%20Report%2C%20Day%201&amp;notes=Miss%20me%3F%20Yes%2C%20I%20haven%27t%20posted%20for...%20oh%20man%2C%20way%20too%20long%2C%20and%20I%20honestly%20don%27t%20think%20my%20schedule%27s%20going%20to%20change%20much%20at%20all%2C%20so%20I%20doubt%20I%27m%20going%20to%20pick%20up%20the%20pace%20anytime%20soon.%20But%20having%20said%20that%2C%20I%27m%20currently%20in%20L.A.%20for%20the%20Adobe%20MAX%20con" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F10%2F06%2Fmax-report-day-1.html&amp;title=MAX%20Report%2C%20Day%201&amp;bodytext=Miss%20me%3F%20Yes%2C%20I%20haven%27t%20posted%20for...%20oh%20man%2C%20way%20too%20long%2C%20and%20I%20honestly%20don%27t%20think%20my%20schedule%27s%20going%20to%20change%20much%20at%20all%2C%20so%20I%20doubt%20I%27m%20going%20to%20pick%20up%20the%20pace%20anytime%20soon.%20But%20having%20said%20that%2C%20I%27m%20currently%20in%20L.A.%20for%20the%20Adobe%20MAX%20con" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F10%2F06%2Fmax-report-day-1.html&amp;t=MAX%20Report%2C%20Day%201" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F10%2F06%2Fmax-report-day-1.html&amp;title=MAX%20Report%2C%20Day%201&amp;annotation=Miss%20me%3F%20Yes%2C%20I%20haven%27t%20posted%20for...%20oh%20man%2C%20way%20too%20long%2C%20and%20I%20honestly%20don%27t%20think%20my%20schedule%27s%20going%20to%20change%20much%20at%20all%2C%20so%20I%20doubt%20I%27m%20going%20to%20pick%20up%20the%20pace%20anytime%20soon.%20But%20having%20said%20that%2C%20I%27m%20currently%20in%20L.A.%20for%20the%20Adobe%20MAX%20con" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F10%2F06%2Fmax-report-day-1.html&amp;title=MAX%20Report%2C%20Day%201" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F10%2F06%2Fmax-report-day-1.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2009/10/06/max-report-day-1.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Video on the Web: An Overview for Non-Geeks</title>
		<link>http://www.krotscheck.net/2009/07/01/video-on-the-web-an-overview-for-non-geeks.html</link>
		<comments>http://www.krotscheck.net/2009/07/01/video-on-the-web-an-overview-for-non-geeks.html#comments</comments>
		<pubDate>Wed, 01 Jul 2009 15:54:55 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/?p=2216</guid>
		<description><![CDATA[<p>In combination with my presentation on Streaming Media on the Web given to <a href="http://www.columbusdigital.org">Columbus Digital</a> last night, I figured I'd provide a high-level overview of how streaming media works on the web. I'm very intentionally trying to write this for a non-technical audience, so please provide feedback if I get a little too dense.</p>
<p>There are, in essence, three different ways to consume media on the internet. This is regardless of what kind it is- a solution that would work for sound will also work for video and vice-versa. While technical implementation may limit the formats you can broadcast, those choices are usually made well after the project requirements have been set.</p>]]></description>
			<content:encoded><![CDATA[<p>In combination with my presentation on Streaming Media on the Web given to <a href="http://www.columbusdigital.org">Columbus Digital</a> last night, I figured I&#8217;d provide a high-level overview of how streaming media works on the web. I&#8217;m very intentionally trying to write this for a non-technical audience, so please provide feedback if I get a little too dense.</p>
<p>There are, in essence, three different ways to consume media on the internet. This is regardless of what kind it is- a solution that would work for sound will also work for video and vice-versa. While technical implementation may limit the formats you can broadcast, those choices are usually made well after the project requirements have been set.</p>
<h3>Progressive Download</h3>
<p>The first is Progressive Download. This is the easiest and the one you&#8217;re most likely to encounter in your day to day life, and will also be the cheapest for you to implement. In essence, you copy a video file and a player out onto a normal web server, and when a user loads the page with the player, that player will start to download the video and begin playing it as soon as it has enough to ensure a continuous stream.</p>
<p>The advantages are many. First, it&#8217;s easy to do- dozens of prepackaged players exist, and encoders are pretty easy to find as well. In some cases, you don&#8217;t even need a player- quicktime will play directly in your browser as long as you have the plugin. The downside is that your video is available for anyone and everyone to download and, presumably, rebroadcast on their own servers. </p>
<p>If you&#8217;re working on a viral campaign this is actually an advantage, but in most cases it&#8217;s probably not- who knows how some enterprising individual will mashup your video, right?</p>
<h3>Server Based Streaming</h3>
<p>The second method is server-based streaming. Rather than using a single web server, you&#8217;re now using two: A web server for your player, and a streaming server for your media. The user experience is practically identical- all changes happen under the hood as the user is only receiving the part of the media they&#8217;re currently watching. Once a particular second has been consumed, it&#8217;s discarded.</p>
<p>The advantages of this method are several: First, it&#8217;s a lot easier to detect how fast your client&#8217;s connection is, so you can provide them a smaller file that will still give them a good user experience. Secondly it is more secure- your user can&#8217;t really save the media without a third-party program, and those fail if you encrypt your stream. Thirdly, you can publish live media streams with this method- concerts, conventions, presentations and the like are now all accessible in real time.</p>
<p>Unfortunately this method isn&#8217;t exactly cheap&#8230; if done in house. It usually means a new server, server software that will cost thousands, and a developer who knows how to set up and maintain your server. To keep costs low you can contract with a media hosting company that already has the hardware and software set up. The free ones include Vimeo and Youtube, though they limit you to certain players and encryption is usually not available.</p>
<h3>Peer to Peer Streaming</h3>
<p>This method is (surprise surprise) very popular in the adult industry, but is also used for more common applications like Skype. The role of the server is cut out almost completely in this, as we instead broadcast media directly from one user to another.</p>
<p>The nice thing about this is that you can have a high-quality person-to-person interaction without paying an arm and a leg for bandwidth.</p>
<p>The disadvantages are largely experience related, since one of your users must act as the media publisher via a camera, microphone, or pre-downloaded file. That user will then be limited to how many people they can broadcast to simultaneously by how fast their internet connection is. <br />
</p>
<h3>Strategies for Selection</h3>
<p>Given the above, choosing a media streaming approach is relatively easy. The default is progressive download- if you don&#8217;t have a lot of media and don&#8217;t need anything encrypted or fancy, just go with that. If that&#8217;s not enough for you, decide whether you need a live feed: If not, use a streaming server.</p>
<p>After this things get a little trickier, because live media may be broadcast in many forms. The rule of thumb I use is as follows: If the number of consumers of a single media stream exceed the number of streams that can be provided at the highest bitrate given the internet connection, use a streaming server.</p>
<p>Some examples:</p>
<ul>
	<li><strong>The Democratic National Convention</strong><br />
		Single source of video, many users: Server Based Streaming</li>
	<li><strong>YouTube</strong><br />
		Many sources of video, many users: Progressive download or Server Based Streaming (I recommend the latter based on scale).</li>
	<li><strong>Pandora</strong><br />
		Many individual audio files, must be secured from copying: Streaming server</li>
	<li><strong>Amazon.com Album Previews</strong><br />
		Many individual audio clips: Progressive download</li>
	<li><strong>Customer service training video (internal)</strong><br />
		Lives on internal network, not live, single video: Progressive download.</li>
	<li><strong>Internet Phone</strong><br />
		Thousands of sources, thousands of consumers: Peer to Peer.</li>
</ul>
<p>I hope this guide was helpful. If you have any additional questions, don&#8217;t hesitate to put them in the comments.<br />
</p>


Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F07%2F01%2Fvideo-on-the-web-an-overview-for-non-geeks.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F07%2F01%2Fvideo-on-the-web-an-overview-for-non-geeks.html&amp;title=Video%20on%20the%20Web%3A%20An%20Overview%20for%20Non-Geeks&amp;notes=In%20combination%20with%20my%20presentation%20on%20Streaming%20Media%20on%20the%20Web%20given%20to%20Columbus%20Digital%20last%20night%2C%20I%20figured%20I%27d%20provide%20a%20high-level%20overview%20of%20how%20streaming%20media%20works%20on%20the%20web.%20I%27m%20very%20intentionally%20trying%20to%20write%20this%20for%20a%20non-technical%20audience%2C%20so%20please%20provide%20feedback%20if%20I%20get%20a%20little%20too%20dense.%0D%0AThere%20are%2C%20in%20essence%2C%20three%20different%20ways%20to%20consume%20media%20on%20the%20internet.%20This%20is%20regardless%20of%20what%20kind%20it%20is-%20a%20solution%20that%20would%20work%20for%20sound%20will%20also%20work%20for%20video%20and%20vice-versa.%20While%20technical%20implementation%20may%20limit%20the%20formats%20you%20can%20broadcast%2C%20those%20choices%20are%20usually%20made%20well%20after%20the%20project%20requirements%20have%20been%20set." title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F07%2F01%2Fvideo-on-the-web-an-overview-for-non-geeks.html&amp;title=Video%20on%20the%20Web%3A%20An%20Overview%20for%20Non-Geeks&amp;bodytext=In%20combination%20with%20my%20presentation%20on%20Streaming%20Media%20on%20the%20Web%20given%20to%20Columbus%20Digital%20last%20night%2C%20I%20figured%20I%27d%20provide%20a%20high-level%20overview%20of%20how%20streaming%20media%20works%20on%20the%20web.%20I%27m%20very%20intentionally%20trying%20to%20write%20this%20for%20a%20non-technical%20audience%2C%20so%20please%20provide%20feedback%20if%20I%20get%20a%20little%20too%20dense.%0D%0AThere%20are%2C%20in%20essence%2C%20three%20different%20ways%20to%20consume%20media%20on%20the%20internet.%20This%20is%20regardless%20of%20what%20kind%20it%20is-%20a%20solution%20that%20would%20work%20for%20sound%20will%20also%20work%20for%20video%20and%20vice-versa.%20While%20technical%20implementation%20may%20limit%20the%20formats%20you%20can%20broadcast%2C%20those%20choices%20are%20usually%20made%20well%20after%20the%20project%20requirements%20have%20been%20set." title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F07%2F01%2Fvideo-on-the-web-an-overview-for-non-geeks.html&amp;t=Video%20on%20the%20Web%3A%20An%20Overview%20for%20Non-Geeks" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F07%2F01%2Fvideo-on-the-web-an-overview-for-non-geeks.html&amp;title=Video%20on%20the%20Web%3A%20An%20Overview%20for%20Non-Geeks&amp;annotation=In%20combination%20with%20my%20presentation%20on%20Streaming%20Media%20on%20the%20Web%20given%20to%20Columbus%20Digital%20last%20night%2C%20I%20figured%20I%27d%20provide%20a%20high-level%20overview%20of%20how%20streaming%20media%20works%20on%20the%20web.%20I%27m%20very%20intentionally%20trying%20to%20write%20this%20for%20a%20non-technical%20audience%2C%20so%20please%20provide%20feedback%20if%20I%20get%20a%20little%20too%20dense.%0D%0AThere%20are%2C%20in%20essence%2C%20three%20different%20ways%20to%20consume%20media%20on%20the%20internet.%20This%20is%20regardless%20of%20what%20kind%20it%20is-%20a%20solution%20that%20would%20work%20for%20sound%20will%20also%20work%20for%20video%20and%20vice-versa.%20While%20technical%20implementation%20may%20limit%20the%20formats%20you%20can%20broadcast%2C%20those%20choices%20are%20usually%20made%20well%20after%20the%20project%20requirements%20have%20been%20set." title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F07%2F01%2Fvideo-on-the-web-an-overview-for-non-geeks.html&amp;title=Video%20on%20the%20Web%3A%20An%20Overview%20for%20Non-Geeks" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F07%2F01%2Fvideo-on-the-web-an-overview-for-non-geeks.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2009/07/01/video-on-the-web-an-overview-for-non-geeks.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bootstrapping a Startup: Zend and WordPress Auth Integration</title>
		<link>http://www.krotscheck.net/2009/05/16/bootstrapping-a-startup-zend-and-wordpress-auth-integration.html</link>
		<comments>http://www.krotscheck.net/2009/05/16/bootstrapping-a-startup-zend-and-wordpress-auth-integration.html#comments</comments>
		<pubDate>Sat, 16 May 2009 11:00:47 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/2009/04/22/bootstrapping-a-startup-zend-and-wordpress-auth-integration.html</guid>
		<description><![CDATA[Three weeks ago, Columbus hosted Startup Weekend, and one of the presenters (blah name here) effectively stated that the first step of a startup should be to get something out there to gauge interest. This is fair- fact is there’s no point in throwing development hours at a project if you don’t know whether it’ll [...]]]></description>
			<content:encoded><![CDATA[<p>Three weeks ago, Columbus hosted Startup Weekend, and one of the presenters (blah name here) effectively stated that the first step of a startup should be to get something out there to gauge interest. This is fair- fact is there’s no point in throwing development hours at a project if you don’t know whether it’ll gain traction. This also gives you an opportunity to gather metrics and information that you can take to potential investors.</p>
<p>The real challenge, however, is “Getting Something Out There” that you can build on. I don’t mean setting up a blog or a couple of static pages, I mean putting in place a scaffolding that you don’t have to replace in its entirety as your business concept matures. The optimal solution then seems to be to use an established software package that can be extended to suit your needs.</p>
<p>Easier said than done. Every CMS out there claims to be extendable, yet not all are created equal. Furthermore extensibility usually requires that you build within their own framework, which then locks you into a third party whom you don’t have control over.</p>
<p>This can be overcome by developing your business services independently, and create a loose integration between your application and your CMS. By doing this you’re suddenly free to proceed with your own plans without the added worry of being locked into a platform.</p>
<p>So why did I choose WordPress and Zend? Well, WordPress has an easily understood plugin structure as well as an active developer community, plus its plugins allow you to do pretty much anything your heart desires. Zend was chosen because it’s a professionally supported application framework with quite a few corporate backers, and it’s written in the same language as WordPress- PHP (Plus, it’s what I know- Added Bonus).</p>
<p>The rest of this post is going to get technical, so I hope those of you who aren’t as geeky as I don’t mind. In essence I describe how to accomplish a loose WordPress-to-Zend integration with all the benefits I described above.</p>
<h3>Step 0: Assumptions</h3>
<p>Before I begin, there are some assumptions I’m going to make.</p>
<ol>
  <li>You know how a Zend MVC application is structured.</li>

  <li>Your Zend code base will be hosted on the same server as your WordPress install.</li>

  <li>You are running application stacks on the same primary domain. (blog.fancybrandname.com and www.fancybrandname.com works)</li>
  <li>Your Zend application will handle user authentication records. This is because you don’t necessarily want to be restricted to WordPress’ table structure.</li>
  <li>Your application uses the MVC Templating System that comes with Zend.</li>
  <li>The WordPress integration code will live in the plugins directory on the WordPress side and (with one notable exception) in the ~library/ directory on the Zend side.</li>
</ol>
<p>Most importantly, please understand that this implementation is NOT for the faint of heart, and requires additional code on your part. I cannot easily make any assumptions about how user authentication is handled within your Zend application, nor what models or methods you have built to simplify object retrieval.</p>
<h3>Step 1, Database: Create a linking table</h3>
<p>The first fundamental requirement is that we need some way of linking the WordPress user table (usually named wp_users) to the user table in the zend application. Usually this is done via a linking table, that might look something like this:</p>
<div class="code">
<pre>
CREATE TABLE `user_id_link_table` (
  `id_zend` bigint(20) unsigned NOT NULL,
  `id_wordpress` bigint(20) unsigned NOT NULL,
  KEY `id_zend ` (`id_zend `),
  KEY `id_wordpress ` (`id_wordpress `)
);
</pre>
</div>
<h3>Step 2, Zend and WordPress: Configure the Cookie Domain</h3>
<p>To make sure your authentication cookies are available across your two domains, you’ll need to make sure both WordPress and Zend are looking for the same cookie. The way to do this is to set a wildcard Cookie domain so it transfers from one domain to another. If you look through the various configuration files and session initialization methods, you might see entries like “www.yourdomain.com” or “blog.yourdomain.com” near a reference to a cookie domain. To make sure they transfer, replace all instances with “.yourdomain.com” (the period at the beginning is important). That should ensure that your cookies are portable.</p>
<h3>Step 3, Zend: Setting up an integration controller</h3>
<p>The first thing we need to do is make sure that your Zend Application is fully loaded. Since you might want to use view helpers in your page templates, this means that we actually have to set up a ‘dummy’ controller that is used for integration purposes only, but which doesn’t try to output anything. This is easily done:</p>
<div class="code">
  <p>File: ~controllers/IntegrationController.php</p>
  <pre>
&lt;?php
/**
 * The Integration Controller.
 */
class IntegrationController extends Zend_Controller_Action
{
    /**
     * Index action. Sets up the entire framework but disables output.
     */
    public function indexAction()
    {
        $this-&gt;_helper-&gt;viewRenderer-&gt;setNoRender();
    }
}
</pre>
</div>
<h3>Step 4, Zend: Extending the AutoLoader</h3>
<p>The fourth step is that we need to extend the Zend AutoLoader, because otherwise it will get confused when WordPress tries to load its plugins. Since we don’t really know which plugins will be loaded ( and thus we can’t explicitly include them in our $PATH ), we’re simply going to restrict the Zend Autoloader to restrict its activities to certain namespaces.</p>
<p>This file is called ~library/Wordpress/Loader.php<br /></p>
<div class="code">
  <p>File: ~library/Wordpress/Loader.php</p>
  <pre>
&lt;?php
require_once('Zend/Loader.php');

/**
 * The WordPress loader class is a quick filter that ensures only specific application
 * libraries are passed through to load handling.
 */
class WordPress_Loader extends Zend_Loader
{
    /**
     * Override of the loadClass method.
     *
     * @param string $class
     * @param string|array $dirs
     */
    public static function loadClass($class, $dirs = null)
    {
        $parts = split("_", $class );

        switch ( $parts[0] )
        {
            case 'Zend':
            case 'Wordpress':
            case 'YourNamespace':
                parent::loadClass($class, $dirs);
        }
    }

    /**
     * This handler has to be here for Zend_Loader invocation purposes
     *
     * @param class $class
     * @return string|boolean
     */
    public static function autoload($class)
    {
        try {
            self::loadClass($class);
            return $class;
        } catch (Exception $e) {
            return false;
        }
    }
}
?&gt;
</pre>
</div>
<p>Once we’ve extended our AutoLoader, we now have to properly invoke it in our Zend Bootstrapper.</p>
<p class="note">NOTE: You may have to adjust the following code somewhat so it fits in with your application. My own application has a Bootstrap Class within which this is a private method.</p>
<div class="code">
  <p>File: ~bootstrap.php</p>
  <pre>
/**
 * Application Bootstrapper.
 */
class Bootstrap
{
    private function setAutoLoad()
    {
        require_once ( 'Zend/Loader.php' );
        // Notice that I'm still calling Zend_Loader, but I'm passing the new Classname.
        Zend_Loader::registerAutoload('Wordpress_Loader');
    }
} 
</pre>
</div>
<h3>Step 5, Zend: Creating a Session Model</h3>
<p>This fifth step is necessary if you’re going to delegate all authentication tasks to the Zend application rather than to WordPress itself. By treating our user sessions like a CRUD-based application, we can abstract it entirely into a Model rather than keeping the code within a Controller. By doing this we can invoke the method from anywhere, including a WordPress plugin.</p>
<p class="note">NOTE: I’m putting this session class into the WordPress namespace, while it really should go into a namespace appropriate to your application.</p>
<div class="code">
  <p>File: ~library/Wordpress/Model/Session.php</p>
  <pre>
&lt;?php
/**
 * The session model wraps basic session creation and destruction methods
 * into one single interface. 
 */
class WordPress_Model_Session extends WordPress_Model_Abstract
{
    /**
     * Creates a new session (aka logs in a user)
     *
     * @param string $user
     * @param string $password
     * @return 
     */
    public function create ( $user, $password )
    {   
        // Get our authentication adapter and check credentials
        $adapter    =   $this-&gt;_getAuthAdapter( $user, $password );
        $auth       =   Zend_Auth::getInstance();
        $result     =   $auth-&gt;authenticate($adapter);

        if ( !$result-&gt;isValid() )
        {
            return false;
        }
        else
        {
            // We're authenticated! Add your own logic here.


            return true;
        }
    }

    /**
     * Destroys a session (aka logs out a user)
     */
    public function destroy ( )
    {
        Zend_Session::forgetMe();
        Zend_Auth::getInstance()-&gt;clearIdentity();
    }

    /**
     * Constructs an instance of the auth adapter for this model.
     *
     * @return Zend_Auth_Adapter_DbTable
     */
    protected function _getAuthAdapter( $login, $password )
    {
        // Put your authentication plugin loader code here.

        return $adapter;
    }
}

</pre>
</div>
<h3>Step 4, Zend: Add an integration method to your Zend Bootstrapper</h3>
<p>The last thing we need to do is create a method in our bootstrapper that lets us load the entire application without Zend trying to parse the URL into which it was loaded. To do this, we create our own HTTP Request instance with a URL that invokes the Controller and Action we created in step 3, thus effectively ‘fooling’ the FrontController into thinking it was invoked from somewhere else.</p>
<div class="code">
  <p>File: ~/bootstrap.php</p>
  <pre>
/**
 * Application Bootstrapper.
 */
class Bootstrap
{
    /**
     * Executes the application in a bootstrapped integration state.
     */
    public function integrate()
    {
        // Construct a 'Dummy' Url to use for our Request.
        $uri = sprintf ( 'http://%s/integration/index',$_SERVER['HTTP_HOST'] );
        // Create a new request object
        $request = new Zend_Controller_Request_Http( $uri );
        // Dispatch our FrontController
        $this-&gt;_frontController-&gt;dispatch( $request );
    }
}
</pre>
</div>
<p>At this point, we’re done with all the work we need to do on the Zend side of things. On to the WordPress Plugin!</p>
<h3>Step 6, WordPress: Create a plugin</h3>
<p>The sixth step is to make sure that your entire Zend Application is available to WordPress. This is a security risk- the instant someone discovers a vulnerability in WordPress they’ve got access to everything, so make sure you have a competent PHP developer who knows how to secure an application.</p>
<div class="code">
  <p>File: ~/wp-content/plugins/zend/zend.php</p>
  <pre>
&lt;?php
/*
Plugin Name: Zend Integration Plugin
Version: 1.0.0
Description: Allows WordPress to authenticate users against the a Zend Session Model
Author: Michael Krotscheck
Author URI: http://www.krotscheck.net/
*/

class ZendIntegrationPlugin
{
    /**
     * Constructor. Initializes this class.
     */
    function __construct()
    {

    }
}

// Load the plugin hooks, etc.
$zend_integration_plugin = new ZendIntegrationPlugin();

</pre>
</div>
<h3>Step 7, WordPress: Load the Zend Framework</h3>
<p>The next step is to load your Zend application. By creating a method that explicitly loads our Bootstrapper and then invoking the integration method we created in Step 3 above, we load all necessary classes and dependencies without them interfering with WordPress.</p>
<div class="code">
  <p>File: ~/wp-content/plugins/zend/zend.php</p>
  <pre>
class ZendIntegrationPlugin
{
    function __construct()
    {
        // .... previous code ....
        $this-&gt;Wordpress_framework_init();
    }

    /**
     * Initialize the Zend framework for inclusion.
     */
    public function WordPress_framework_init()
    {
        // Import the Zend Bootstrapper. This path needs to be absolute.
        require_once ( '@APPLICATIONROOT@/bootstrap.php' );

        // Create a new Bootstrapper instance and invoke the integration method.
        $bootstrap = new Bootstrap ( );
        $bootstrap-&gt;integrate();
    }
}
</pre>
</div>
<h3>Step 8, WordPress: Disable Unnecessary Functions</h3>
<p>Since we’re delegating all session authentication tasks to your Zend application, we need to explicitly disable many of WordPress’ default functionality related to password and account management. We do this by using the application hooks created explicitly for that purpose.</p>
<div class="code">
  <p>File: ~/wp-content/plugins/zend/zend.php</p>
  <pre>
&lt;?php

class ZendIntegrationPlugin
{
    function __construct()
    {
        // ... previous code ...

        // Disable Lost Password, Retrieve Password, and Password Reset
        add_action('lost_password', array(&amp;$this, 'disable_function'));
        add_action('retrieve_password', array(&amp;$this, 'disable_function'));
        add_action('password_reset', array(&amp;$this, 'disable_function'));

        // Remove Password Fields from the wordpress user profile.
        add_filter('show_password_fields', array(&amp;$this, 'disable_password_fields'));
    }

    /**
     * Used to disable certain display elements, e.g. password
     * fields on profile screen.
     */ 
    function disable_password_fields($show_password_fields)
    {
        return false;
    }

    /*
     * Used to disable certain login functions, e.g. retrieving a
     * user's password.
     */
    function disable_function()
    {
        die('Disabled');
    }
}
</pre>
</div>
<h3>Step 9, WordPress: Autoload the session</h3>
<p>This is perhaps the most complex piece of the plugin, because we have to do three things: First, we have to detect whether the authentication states between your Zend application and WordPress match. If they don’t, we have to either create a wordpress session or destroy it. The tricky bit here is that WordPress requires use of its own user database, so we have to retrieve basic information from the Zend User tables and construct a WordPress user should it not already exit.</p>
<p>Unfortunately, I cannot say how your Zend application is built nor what models exist that would allow you to retrieve a user record. As such I’ve inserted pseudocode in the method below that describes what needs to happen rather than make guesses about your implementation.</p>
<div class="code">
  <p>File: ~/wp-content/plugins/zend/zend.php</p>
  <pre>
&lt;?php

class WordPressAuthenticationPlugin
{
    function __construct()
    {
        // ... previous code ...

        add_filter('plugins_loaded', array(&amp;$this, 'auto_login'));
    }

    /**
     * This method runs after the plugins is loaded, and attempts to detect
     * an out-of-sync session.
     */
    public function auto_login()
    {
        $isZendAuthenticated = Zend_Auth::getInstance()-&gt;hasIdentity();
        $isWordpressAuthenticated = is_user_logged_in();

        // Check to see if we're logged out of Zend but still logged in to WordPress
        if ( !$isZendAuthenticated &amp;&amp; $isWordpressAuthenticated )
        {
            // Log out of WordPress.
            wp_logout();
            wp_clearcookie();
            set_current_user(null);
        }

        // Check to see if we're logged in to Zend but not WordPress
        if ( $isZendAuthenticated &amp;&amp; !$isWordpressAuthenticated )
        {
            // Retrieve the user record from Zend
            $yourUserObject = yourUserRetrievalMethod();
            $wordpress_user_id = yourWordpressIdRetrievalMethod($user);

            // Check for the wordpress user ID, create a new user if necessary.
            if ( $wordpress_user_id == NULL )
            {
                // Retrieve the user creation scripts.
                require_once(ABSPATH . WPINC . DIRECTORY_SEPARATOR . 'registration.php');

                // Create a user object, using the hashed password value (It matter doesn't what you use as long as it's unique)
                wp_create_user($yourUserObject-&gt;login, $yourUserObject-&gt;password, $yourUserObject-&gt;email);

                // Check for a successful insert
                $wordpress_user_id = username_exists($login);
                if ( !$user_id )
                {
                    die("Error creating user!");
                }
                else
                {
                    yourWordpressIdUpdateMethod($user, $user_id);
                }
            }

            // Now that we know we have an existing wordpress user record that matches our Zend Table,
            // try to create a wordpress session
            $wpUser = new WP_User($wordpress_user_id, $yourUserObject-&gt;login);
            $wpPassword = md5($yourUserObject-&gt;password);
            wp_login($yourUserObject-&gt;login, $wpPassword, true);
            wp_setcookie($yourUserObject-&gt;login, $wpPassword, true);
            wp_set_current_user($wpUser-&gt;ID, $yourUserObject-&gt;login);
            return;
        }
    }
}
</pre>
</div>
<h3>Step 10, WordPress: Enable Login via WordPress</h3>
<p>At this point we are maintaining the authenticated session across our applications, but we don’t yet have WordPress authenticating users against our Zend user table. As above, I can’t make assumptions about how your authentication is set up, but I can show you which application hooks to set up, leaving the rest of the logic for you to fill in.</p>
<div class="code">
  <p>File: ~/wp-content/plugins/zend/zend.php</p>
  <pre>
&lt;?php

class WordPressAuthenticationPlugin
{
    function __construct()
    {
        // ... previous code ...

        add_filter('check_password', array(&amp;$this, 'check_password'), 10, 4);
    }

    /**
     * Override Check Password
     */
    public function check_password($check, $password, $hash, $user_id)
    {
        // Retrieve a user by the WordPress User ID. You can use any class in your Zend application.
        $user = findZendUserByWordpressId ( $user_id );

        // Check for a valid return data.
        if ( $user )
        {
            // Try to log in.
            $sessionModel = new WordPress_Model_Session();
            return $sessionModel-&gt;create( $user-&gt;login, $password );
        }

        return false;
    }
}
</pre>
</div>
<h3>Step 11, WordPress: Enable Logout via WordPress</h3>
<p>The very last vanity task to perform is to enable logging out via the WordPress buttons. Again we use an action handler, and in this case we explicitly call the Session destroy method we created in Step 5.</p>
<div class="code">
  <p>File: ~/wp-content/plugins/zend/zend.php</p>
  <pre>
&lt;?php

class WordPressAuthenticationPlugin
{
    function __construct()
    {
        // ... previous code ...

        add_action('wp_logout', array(&amp;$this, 'logout'));
    }

    /**
     * Runs Logout routines against the Zend controller.
     */
    public function logout ()
    {
        $sessionModel = new WordPress_Model_Session();
        $sessionModel-&gt;destroy();
    }
}
</pre>
</div>
<div class="hr">&nbsp;</div>
<p>And that&#8217;s it. With all these pieces in place your Zend application should now be integrated with your WordPress intall. Congratulations! Now your startup has a fully functional, plugin ready CMS without being tied to a commercial solution for the long term.</p>


Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F16%2Fbootstrapping-a-startup-zend-and-wordpress-auth-integration.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F16%2Fbootstrapping-a-startup-zend-and-wordpress-auth-integration.html&amp;title=Bootstrapping%20a%20Startup%3A%20Zend%20and%20Wordpress%20Auth%20Integration&amp;notes=Three%20weeks%20ago%2C%20Columbus%20hosted%20Startup%20Weekend%2C%20and%20one%20of%20the%20presenters%20%28blah%20name%20here%29%20effectively%20stated%20that%20the%20first%20step%20of%20a%20startup%20should%20be%20to%20get%20something%20out%20there%20to%20gauge%20interest.%20This%20is%20fair-%20fact%20is%20there%E2%80%99s%20no%20point%20in%20throw" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F16%2Fbootstrapping-a-startup-zend-and-wordpress-auth-integration.html&amp;title=Bootstrapping%20a%20Startup%3A%20Zend%20and%20Wordpress%20Auth%20Integration&amp;bodytext=Three%20weeks%20ago%2C%20Columbus%20hosted%20Startup%20Weekend%2C%20and%20one%20of%20the%20presenters%20%28blah%20name%20here%29%20effectively%20stated%20that%20the%20first%20step%20of%20a%20startup%20should%20be%20to%20get%20something%20out%20there%20to%20gauge%20interest.%20This%20is%20fair-%20fact%20is%20there%E2%80%99s%20no%20point%20in%20throw" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F16%2Fbootstrapping-a-startup-zend-and-wordpress-auth-integration.html&amp;t=Bootstrapping%20a%20Startup%3A%20Zend%20and%20Wordpress%20Auth%20Integration" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F16%2Fbootstrapping-a-startup-zend-and-wordpress-auth-integration.html&amp;title=Bootstrapping%20a%20Startup%3A%20Zend%20and%20Wordpress%20Auth%20Integration&amp;annotation=Three%20weeks%20ago%2C%20Columbus%20hosted%20Startup%20Weekend%2C%20and%20one%20of%20the%20presenters%20%28blah%20name%20here%29%20effectively%20stated%20that%20the%20first%20step%20of%20a%20startup%20should%20be%20to%20get%20something%20out%20there%20to%20gauge%20interest.%20This%20is%20fair-%20fact%20is%20there%E2%80%99s%20no%20point%20in%20throw" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F16%2Fbootstrapping-a-startup-zend-and-wordpress-auth-integration.html&amp;title=Bootstrapping%20a%20Startup%3A%20Zend%20and%20Wordpress%20Auth%20Integration" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F16%2Fbootstrapping-a-startup-zend-and-wordpress-auth-integration.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2009/05/16/bootstrapping-a-startup-zend-and-wordpress-auth-integration.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Advanced WordPress Installs</title>
		<link>http://www.krotscheck.net/2009/05/11/advanced-wordpress-install.html</link>
		<comments>http://www.krotscheck.net/2009/05/11/advanced-wordpress-install.html#comments</comments>
		<pubDate>Mon, 11 May 2009 21:30:23 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[columbus]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[wordcamp]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress mu]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/?p=2200</guid>
		<description><![CDATA[<p>As some of you might know, I'll be speaking at <a href="http://www.wordcampcolumbus.com/" target="_blank">WordCamp Columbus</a> this Saturday. The title of the presentation is &#34;Advanced WordPress Installs&#34;, but I figured I'd put out a slightly more detailed overview of what I'll be speaking about.</p>]]></description>
			<content:encoded><![CDATA[<p>As some of you might know, I&#8217;ll be speaking at <a href="http://www.wordcampcolumbus.com/" target="_blank">WordCamp Columbus</a> this Saturday. The title of the presentation is &quot;Advanced WordPress Installs&quot;, but I figured I&#8217;d put out a slightly more detailed overview of what I&#8217;ll be speaking about.</p>
<p>To begin with, this session starts where the <a href="http://codex.wordpress.org/Installing_WordPress#Famous_5-Minute_Install" target="_blank">5 minute install</a> stops. There are plenty of tutorials out there that will help you set up your own WordPress blog, so I&#8217;m not going to bother repeating them. Instead I&#8217;m going to start covering topics that you&#8217;ll run into when you want to have your WordPress install do more than what it was originally designed to do.</p>
<p>Since the topics covered are very technical in nature, I will also take the time to demystify some of them. In other words, if you&#8217;re already a developer in your own right you might not get much out of this presentation, as I will be covering some basic PHP syntax, server redirects as well as an overview of modifying DNS records.</p>
<p>On the other hand, if you are a blogger who&#8217;d like to have a good introduction, or are curious about how WordPress might fit into your corporate environment, this will be an excellent overview.</p>
<h3>Section 1: One Install, Many Blogs</h3>
<p>11:00AM-11:20AM</p>
<p>If you&#8217;re an avid blogger and/or maintain more than one WordPress blog, consolidating all of your blogs onto one single WordPress install can help with everything from plugin management to upgrades. Most plugins, however, naturally assume that they exist on a solitary install, so if you want to use something like <a href="http://wordpress.org/extend/plugins/google-sitemap-generator/" target="_blank">Google XML Sitemaps</a> there are some additional steps you need to take. As such, this first part will cover the following topics:</p>
<ol>
	<li>Writing a Dynamic Configuration File (PHP)</li>
	<li>Request Redirects with mod_rewrite</li>
	<li>Configuring plugins for multi-site use</li>
</ol>
<h3>Section 2: WordPress<sup>&mu;</sup></h3>
<p>	11:20AM-11:40AM</p>
<p>In many corporate environments it&#8217;s often optimal to manage multiple blogs through one single administrative interface, which is where <a href="http://mu.wordpress.org/">WordPress<sup>&mu;</sup></a> (Multi-User) comes into play. Installs such as these are often tricky, because they require a bit more technical expertise to get them set up properly. As such, I will be covering the following:</p>
<ol>
	<li>A brief feature overview of WordPress<sup>&mu;</sup></li>
	<li>Installing WordPress<sup>&mu;</sup>.</li>
	<li>Redirecting for subfolders (http://www.yourdomain.com/<strong>blogname</strong>).</li>
	<li>Redirecting for subdomains (http://<strong>blogname</strong>.yourdomain.com/ ).</li>
	<li>Updating CNAME DNS records for subdomains.</li>
</ol>
<p>If we have time at the end of the session I will open the floor for any additional questions you might have about installation challenges you might have faced. I can&#8217;t promise a comprehensive answer to all of them, but between myself and the rest of the room we should be able to get you pointed in the right direction.</p>


Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F11%2Fadvanced-wordpress-install.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F11%2Fadvanced-wordpress-install.html&amp;title=Advanced%20WordPress%20Installs&amp;notes=As%20some%20of%20you%20might%20know%2C%20I%27ll%20be%20speaking%20at%20WordCamp%20Columbus%20this%20Saturday.%20The%20title%20of%20the%20presentation%20is%20%26quot%3BAdvanced%20WordPress%20Installs%26quot%3B%2C%20but%20I%20figured%20I%27d%20put%20out%20a%20slightly%20more%20detailed%20overview%20of%20what%20I%27ll%20be%20speaking%20about." title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F11%2Fadvanced-wordpress-install.html&amp;title=Advanced%20WordPress%20Installs&amp;bodytext=As%20some%20of%20you%20might%20know%2C%20I%27ll%20be%20speaking%20at%20WordCamp%20Columbus%20this%20Saturday.%20The%20title%20of%20the%20presentation%20is%20%26quot%3BAdvanced%20WordPress%20Installs%26quot%3B%2C%20but%20I%20figured%20I%27d%20put%20out%20a%20slightly%20more%20detailed%20overview%20of%20what%20I%27ll%20be%20speaking%20about." title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F11%2Fadvanced-wordpress-install.html&amp;t=Advanced%20WordPress%20Installs" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F11%2Fadvanced-wordpress-install.html&amp;title=Advanced%20WordPress%20Installs&amp;annotation=As%20some%20of%20you%20might%20know%2C%20I%27ll%20be%20speaking%20at%20WordCamp%20Columbus%20this%20Saturday.%20The%20title%20of%20the%20presentation%20is%20%26quot%3BAdvanced%20WordPress%20Installs%26quot%3B%2C%20but%20I%20figured%20I%27d%20put%20out%20a%20slightly%20more%20detailed%20overview%20of%20what%20I%27ll%20be%20speaking%20about." title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F11%2Fadvanced-wordpress-install.html&amp;title=Advanced%20WordPress%20Installs" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F05%2F11%2Fadvanced-wordpress-install.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2009/05/11/advanced-wordpress-install.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Do You Follow Me On Twitter?</title>
		<link>http://www.krotscheck.net/2009/04/22/do-you-follow-me-on-twitter.html</link>
		<comments>http://www.krotscheck.net/2009/04/22/do-you-follow-me-on-twitter.html#comments</comments>
		<pubDate>Wed, 22 Apr 2009 12:49:23 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[conversation]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/2009/05/12/do-you-follow-me-on-twitter.html</guid>
		<description><![CDATA[<p>One thing that has really started to bother me since the advent of Tweetdeck is the fact that I can't tell who's interested in actually having a conversation, and who's stuffed me into a filter and only follows me out of some... misplaced belief that a mutual follow will ensure that I provide them with my undying adulation. Thus I pose to you a social experiment: If you actually clicked on the twitter link to this post, and are reading this paragraph, either send me a private line, @ me or comment on this post, and I'll put you on the list of "people who are actually interested in having a conversation".</p>
<p>Everyone on that list gets followed. Everyone else gets dropped.</p>
]]></description>
			<content:encoded><![CDATA[<p>One thing that has really started to bother me since the advent of Tweetdeck is the fact that I can&#8217;t tell who&#8217;s interested in actually having a conversation, and who&#8217;s stuffed me into a filter and only follows me out of some&#8230; misplaced belief that a mutual follow will ensure that I provide them with my undying adulation. Thus I pose to you a social experiment: If you actually clicked on the twitter link to this post, and are reading this paragraph, either send me a private line, @ me or comment on this post, and I&#8217;ll put you on the list of &#8220;people who are actually interested in having a conversation&#8221;.</p>
<p>Everyone on that list gets followed. Everyone else gets dropped.</p>
<p>Yes, there are caveats. If I&#8217;ve never met you before in my life there&#8217;s a good chance I&#8217;m not going to follow you anyway, for reasons you&#8217;ll see below. Also if we&#8217;ve had more than a cursory set of @changes, have emailed each other regularly or (even better) have hung out in person you&#8217;re automatically on the list.</p>
<p>The true power of human communication is interaction, discussion and argument. It is not doe eyed consumption of what the latest celebrity has said, nor is it short-burst updates in the hope of being profound. It&#8217;s not link propagation, marketing, spin, advertising, or a long list of messages that boil down to &#8220;OMG I&#8217;m # away from ### Followers, Pay Attention to MEE!&#8221;. Human communication and true discussion requires time, effort, and thought, and cannot be acquired via txt messages or 140 character snippets. Think paragraphs. Think books. Think libraries.</p>
<p>Yes, it requires effort. It requires we meet, or have an email exchange, or talk on the phone, or have some kind of meaningful exchange other than &#8220;@krotscheck omg that picture is so cute&#8221;. Once that social vibe and comfort is established then yes, casual methods of communication (like twitter) are great ways to maintain it over distance, but you can&#8217;t do that just because you listened to their presentation at some conference.<br /></p>
<p>If you want me to follow you, you have to convince me to care, and no small &#8220;follow&#8221; button or automated bot is going to do that. If you want me to treat you like a human being, to <em>really</em> listen to what you have to say, then you really should reciprocate.</p>
<p>Hypocrite? Not really. Listen, I give people day-to-day updates because I assume that they&#8217;re interested in what&#8217;s going on in my life. I use twitter for banter, not for a meaningful conversation or professional exchanges. Banter, by its very nature, assumes a level of familiarity you can&#8217;t just get from a website, and if I don&#8217;t feel comfortable bantering with you then yes, you&#8217;re not going to get followed.</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F22%2Fdo-you-follow-me-on-twitter.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F22%2Fdo-you-follow-me-on-twitter.html&amp;title=Do%20You%20Follow%20Me%20On%20Twitter%3F&amp;notes=One%20thing%20that%20has%20really%20started%20to%20bother%20me%20since%20the%20advent%20of%20Tweetdeck%20is%20the%20fact%20that%20I%20can%27t%20tell%20who%27s%20interested%20in%20actually%20having%20a%20conversation%2C%20and%20who%27s%20stuffed%20me%20into%20a%20filter%20and%20only%20follows%20me%20out%20of%20some...%20misplaced%20belief%20that%20a%20mutual%20follow%20will%20ensure%20that%20I%20provide%20them%20with%20my%20undying%20adulation.%20Thus%20I%20pose%20to%20you%20a%20social%20experiment%3A%20If%20you%20actually%20clicked%20on%20the%20twitter%20link%20to%20this%20post%2C%20and%20are%20reading%20this%20paragraph%2C%20either%20send%20me%20a%20private%20line%2C%20%40%20me%20or%20comment%20on%20this%20post%2C%20and%20I%27ll%20put%20you%20on%20the%20list%20of%20%22people%20who%20are%20actually%20interested%20in%20having%20a%20conversation%22.%0D%0AEveryone%20on%20that%20list%20gets%20followed.%20Everyone%20else%20gets%20dropped.%0D%0A" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F22%2Fdo-you-follow-me-on-twitter.html&amp;title=Do%20You%20Follow%20Me%20On%20Twitter%3F&amp;bodytext=One%20thing%20that%20has%20really%20started%20to%20bother%20me%20since%20the%20advent%20of%20Tweetdeck%20is%20the%20fact%20that%20I%20can%27t%20tell%20who%27s%20interested%20in%20actually%20having%20a%20conversation%2C%20and%20who%27s%20stuffed%20me%20into%20a%20filter%20and%20only%20follows%20me%20out%20of%20some...%20misplaced%20belief%20that%20a%20mutual%20follow%20will%20ensure%20that%20I%20provide%20them%20with%20my%20undying%20adulation.%20Thus%20I%20pose%20to%20you%20a%20social%20experiment%3A%20If%20you%20actually%20clicked%20on%20the%20twitter%20link%20to%20this%20post%2C%20and%20are%20reading%20this%20paragraph%2C%20either%20send%20me%20a%20private%20line%2C%20%40%20me%20or%20comment%20on%20this%20post%2C%20and%20I%27ll%20put%20you%20on%20the%20list%20of%20%22people%20who%20are%20actually%20interested%20in%20having%20a%20conversation%22.%0D%0AEveryone%20on%20that%20list%20gets%20followed.%20Everyone%20else%20gets%20dropped.%0D%0A" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F22%2Fdo-you-follow-me-on-twitter.html&amp;t=Do%20You%20Follow%20Me%20On%20Twitter%3F" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F22%2Fdo-you-follow-me-on-twitter.html&amp;title=Do%20You%20Follow%20Me%20On%20Twitter%3F&amp;annotation=One%20thing%20that%20has%20really%20started%20to%20bother%20me%20since%20the%20advent%20of%20Tweetdeck%20is%20the%20fact%20that%20I%20can%27t%20tell%20who%27s%20interested%20in%20actually%20having%20a%20conversation%2C%20and%20who%27s%20stuffed%20me%20into%20a%20filter%20and%20only%20follows%20me%20out%20of%20some...%20misplaced%20belief%20that%20a%20mutual%20follow%20will%20ensure%20that%20I%20provide%20them%20with%20my%20undying%20adulation.%20Thus%20I%20pose%20to%20you%20a%20social%20experiment%3A%20If%20you%20actually%20clicked%20on%20the%20twitter%20link%20to%20this%20post%2C%20and%20are%20reading%20this%20paragraph%2C%20either%20send%20me%20a%20private%20line%2C%20%40%20me%20or%20comment%20on%20this%20post%2C%20and%20I%27ll%20put%20you%20on%20the%20list%20of%20%22people%20who%20are%20actually%20interested%20in%20having%20a%20conversation%22.%0D%0AEveryone%20on%20that%20list%20gets%20followed.%20Everyone%20else%20gets%20dropped.%0D%0A" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F22%2Fdo-you-follow-me-on-twitter.html&amp;title=Do%20You%20Follow%20Me%20On%20Twitter%3F" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F22%2Fdo-you-follow-me-on-twitter.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2009/04/22/do-you-follow-me-on-twitter.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>The Bleeding Edge of Agency Tech</title>
		<link>http://www.krotscheck.net/2009/04/06/the-bleeding-edge-of-agency-tec.html</link>
		<comments>http://www.krotscheck.net/2009/04/06/the-bleeding-edge-of-agency-tec.html#comments</comments>
		<pubDate>Mon, 06 Apr 2009 17:56:55 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[agency]]></category>
		<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[bleeding]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/?p=2189</guid>
		<description><![CDATA[<p>There are many different levels of being at the forefront of technology: There's the leading edge, where you're using the news most broadly supported technologies. There's the cutting edge, where you're working on bringing a new idea to a larger audience. And then there's the bleeding edge, where you're wantonly investigating every last thing that sounds like it might have impact, but you really cannot tell whether it'll sink or swim (hence the term 'bleeding'). As such, trying to remain on the bleeding edge is a dangerous and ultimately frustrating endeavor, because by the time you've built up the skills to properly explore an idea either your goal is outdated, your skills are outdated, or both.</p>]]></description>
			<content:encoded><![CDATA[<p>I was recently added to the Emerging Media and Futuring team here at Resource. On one side, it&#8217;s incredibly shiny to have a company mandate to dig into all the newest and greatest stuff that&#8217;s coming out. On the flip side, I&#8217;m still responsible for my billable hours, which when all is said and done means an even greater work load&#8230; though much of it ends up being self motivated independent exploration.</p>
<p>Yet having said that, a few weeks of scraping the far corners of the web for information on what the next big thing might be has left me with one overarching impression: Wow, my skill set is <i>way</i> out of date.</p>
<p>Of course, that&#8217;s to be expected. There are many different levels of being at the forefront of technology: There&#8217;s the leading edge, where you&#8217;re using the news most broadly supported technologies. There&#8217;s the cutting edge, where you&#8217;re working on bringing a new idea to a larger audience. And then there&#8217;s the bleeding edge, where you&#8217;re wantonly investigating every last thing that sounds like it might have impact, but you really cannot tell whether it&#8217;ll sink or swim (hence the term &#8216;bleeding&#8217;). As such, trying to remain on the bleeding edge is a dangerous and ultimately frustrating endeavor, because by the time you&#8217;ve built up the skills to properly explore an idea either your goal is outdated, your skills are outdated, or both.</p>
<p>As such, it is very rare to see an Agency truly on the Bleeding Edge. Between often unrealistic delivery restrictions and the need to keep everyone billable, it&#8217;s rare to see pure technological exploration. In most cases it&#8217;s easier and faster to use established tools and technologies because they are known and thus allow us to estimate a project to within a reasonable margin of error. This, by virtue of my definitions above, places agencies as no farther ahead than the leading edge, because by that time the tool makers have come through and made things as easy to generate as possible.</p>
<p>Seems legitimate, yes? Certainly. And yet through my own recent exposure to the technological trends and implementations, I can&#8217;t help but conclude that the next iteration of &ldquo;Really Cool Marketing Apps&rdquo; are going to be <i>well beyond the technical skill set normal agencies have access to</i>. Let&#8217;s take a look at some examples, shall we?</p>
<ol>
<li>Amazon&#8217;s iPhone application uses sophisticated Image Recognition to detect what product you&#8217;re looking at. These methods and algorithms are by no means easy, and usually require someone who is extremely well versed in computer vision (A skill rarely found outside of academic environments). Who, at your agency, can do that?<br /></li>
<li>QR Codes are prevalent in asia and are starting to make a dent in the US market for cell-phone based scanning. The QR Code standard uses Reed-Solomon error correction, which involves incredibly sophisticated algorithms that can support polynomial Galois theory. Do you have any experts in Computational Algebra at your agency? I thought not.<br /></li>
<li>Augmented Reality involves the manipulation of 3D spacial geometries that requires more matrix algebra and vector calculus than most developers are ever exposed to. While authoring tools are certainly making headway in simplifying that (Adobe&#8217;s &#8220;Postcards In Space&#8221; support in Flash Player is one of them), there will always be a disconnect between what&#8217;s embedded into tools and what isn&#8217;t. </li>
</ol>
<p>While we&rsquo;ll definitely see smaller specialty shops rise up to address
complex demand like this, it will still mean a sharp rise in demand for talent that&#8217;s traditionally only found in academic environments. In short, if you&#8217;re the Technical Director in an agency, and your talent pool is full of Software Developers rather than Software Engineers, you should probably start partnering with your local University to make sure you can source them at a moment&#8217;s notice.</p>
<p>More practically speaking, it also means agency costs are going to rise, and that many smaller agencies will be left in the wake because they can neither convince their clients that they have the talent nor can they retain it if they do hire it. This really isn&#8217;t news- there are plenty of Brochureware agencies out there that got into the web market and have been floundering since. The big players can afford to take a dive on a project just for the portfolio piece, and will thus gain poaching and award rights.</p>
<p>And yet, there is a ridiculous business opportunity here: If you&#8217;re the first agency who can pull off an AR or mobile piece convincingly, and are willing to monetize the expertise (via consulting or whatever), suddenly you&#8217;ve got the industry cred of being on the cutting edge. In essence you <i>become</i> the tool creator, with all the benefits and recognition that comes with it.</p>


Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F06%2Fthe-bleeding-edge-of-agency-tec.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F06%2Fthe-bleeding-edge-of-agency-tec.html&amp;title=The%20Bleeding%20Edge%20of%20Agency%20Tech&amp;notes=There%20are%20many%20different%20levels%20of%20being%20at%20the%20forefront%20of%20technology%3A%20There%27s%20the%20leading%20edge%2C%20where%20you%27re%20using%20the%20news%20most%20broadly%20supported%20technologies.%20There%27s%20the%20cutting%20edge%2C%20where%20you%27re%20working%20on%20bringing%20a%20new%20idea%20to%20a%20larger%20audience.%20And%20then%20there%27s%20the%20bleeding%20edge%2C%20where%20you%27re%20wantonly%20investigating%20every%20last%20thing%20that%20sounds%20like%20it%20might%20have%20impact%2C%20but%20you%20really%20cannot%20tell%20whether%20it%27ll%20sink%20or%20swim%20%28hence%20the%20term%20%27bleeding%27%29.%20As%20such%2C%20trying%20to%20remain%20on%20the%20bleeding%20edge%20is%20a%20dangerous%20and%20ultimately%20frustrating%20endeavor%2C%20because%20by%20the%20time%20you%27ve%20built%20up%20the%20skills%20to%20properly%20explore%20an%20idea%20either%20your%20goal%20is%20outdated%2C%20your%20skills%20are%20outdated%2C%20or%20both." title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F06%2Fthe-bleeding-edge-of-agency-tec.html&amp;title=The%20Bleeding%20Edge%20of%20Agency%20Tech&amp;bodytext=There%20are%20many%20different%20levels%20of%20being%20at%20the%20forefront%20of%20technology%3A%20There%27s%20the%20leading%20edge%2C%20where%20you%27re%20using%20the%20news%20most%20broadly%20supported%20technologies.%20There%27s%20the%20cutting%20edge%2C%20where%20you%27re%20working%20on%20bringing%20a%20new%20idea%20to%20a%20larger%20audience.%20And%20then%20there%27s%20the%20bleeding%20edge%2C%20where%20you%27re%20wantonly%20investigating%20every%20last%20thing%20that%20sounds%20like%20it%20might%20have%20impact%2C%20but%20you%20really%20cannot%20tell%20whether%20it%27ll%20sink%20or%20swim%20%28hence%20the%20term%20%27bleeding%27%29.%20As%20such%2C%20trying%20to%20remain%20on%20the%20bleeding%20edge%20is%20a%20dangerous%20and%20ultimately%20frustrating%20endeavor%2C%20because%20by%20the%20time%20you%27ve%20built%20up%20the%20skills%20to%20properly%20explore%20an%20idea%20either%20your%20goal%20is%20outdated%2C%20your%20skills%20are%20outdated%2C%20or%20both." title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F06%2Fthe-bleeding-edge-of-agency-tec.html&amp;t=The%20Bleeding%20Edge%20of%20Agency%20Tech" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F06%2Fthe-bleeding-edge-of-agency-tec.html&amp;title=The%20Bleeding%20Edge%20of%20Agency%20Tech&amp;annotation=There%20are%20many%20different%20levels%20of%20being%20at%20the%20forefront%20of%20technology%3A%20There%27s%20the%20leading%20edge%2C%20where%20you%27re%20using%20the%20news%20most%20broadly%20supported%20technologies.%20There%27s%20the%20cutting%20edge%2C%20where%20you%27re%20working%20on%20bringing%20a%20new%20idea%20to%20a%20larger%20audience.%20And%20then%20there%27s%20the%20bleeding%20edge%2C%20where%20you%27re%20wantonly%20investigating%20every%20last%20thing%20that%20sounds%20like%20it%20might%20have%20impact%2C%20but%20you%20really%20cannot%20tell%20whether%20it%27ll%20sink%20or%20swim%20%28hence%20the%20term%20%27bleeding%27%29.%20As%20such%2C%20trying%20to%20remain%20on%20the%20bleeding%20edge%20is%20a%20dangerous%20and%20ultimately%20frustrating%20endeavor%2C%20because%20by%20the%20time%20you%27ve%20built%20up%20the%20skills%20to%20properly%20explore%20an%20idea%20either%20your%20goal%20is%20outdated%2C%20your%20skills%20are%20outdated%2C%20or%20both." title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F06%2Fthe-bleeding-edge-of-agency-tec.html&amp;title=The%20Bleeding%20Edge%20of%20Agency%20Tech" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F04%2F06%2Fthe-bleeding-edge-of-agency-tec.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2009/04/06/the-bleeding-edge-of-agency-tec.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Measuring &#8220;The Conversation&#8221;</title>
		<link>http://www.krotscheck.net/2009/01/27/measuring-the-conversation.html</link>
		<comments>http://www.krotscheck.net/2009/01/27/measuring-the-conversation.html#comments</comments>
		<pubDate>Tue, 27 Jan 2009 15:11:46 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[conversation]]></category>
		<category><![CDATA[measure]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/?p=2185</guid>
		<description><![CDATA[One of my favorite phrases these days is "Join the Conversation". It's used by marketers, social media enthusiasts, and many others to point out that you can gain prominence or importance simply by engaging in conversation (usually about a particular topic). And who doesn't like to feel important? "Join the Conversation, be part of something greater", right? Most who use this concept rarely go so far as to explain it, but what they really mean is that you can easily participate in a large, webbed network of day to day personal interactions that establish and drive the current zeitgeist, and that such participation will support you as an individual. This concept of "The Conversation" also has a bit of a technological spin to it given the plethora of communication sites and services out there, but ultimately it is inclusive of all forms of conversation.]]></description>
			<content:encoded><![CDATA[<p>One of my favorite phrases these days is &#8220;Join the Conversation&#8221;. It&#8217;s used by marketers, social media enthusiasts, and many others to point out that you can gain prominence or importance simply by engaging in conversation (usually about a particular topic). And who doesn&#8217;t like to feel important? &#8220;Join the Conversation, be part of something greater&#8221;, right? Most who use this concept rarely go so far as to explain it, but what they really mean is that you can easily participate in a large, webbed network of day to day personal interactions that establish and drive the current zeitgeist, and that such participation will support you as an individual. This concept of &#8220;The Conversation&#8221; also has a bit of a technological spin to it given the plethora of communication sites and services out there, but ultimately it is inclusive of all forms of conversation.</p>
<p>Yet&#8230; how big is it really? Let&#8217;s really narrow down our numbers and show you the ridiculous amount of talking that&#8217;s going on here. According to the <a href="http://www.bls.gov/">bureau of labor statistics</a>, there were 857000 <a href="http://www.bls.gov/oco/ocos267.htm#projections_data">software developers</a> employed in the US in 2006. While that&#8217;s a measly 0.28% of the <a href="http://www.google.com/search?hl=en&#038;client=firefox-a&#038;rls=org.mozilla%3Aen-US%3Aofficial&#038;hs=sno&#038;q=population+of+the+US+2006&#038;btnG=Search">total american population</a>, it makes a little more sense in context of an area where a conversation can legitimately take place. For argument&#8217;s sake, <a href="http://en.wikipedia.org/wiki/Columbus,_Ohio">Columbus Ohio&#8217;s</a> metropolitan area has a population of 747,755, which means that there are likely around 2147 software developers in the area.</p>
<p>Now let us assume that software developers only talk with one another, and that the Conversation is limited to them. Using myself as an example I talk with at least three other developers every day, about various topics which amounts to an average of 10 conversations or so. Assuming that other developers are like myself it means there are 21,470 conversations happening every day, in Columbus, Ohio, in one small segment of the workforce. Extend that to the entire population and increasing the conversation number to about 20 (We don&#8217;t just talk to our direct colleagues, do we?), we&#8217;re looking at ~8.5 million conversations amongst software developers, ~14 million conversations in Columbus Ohio, ~17 million conversations that software developers have with their peers, and a grand total of 3 trillion conversations happening in the entire American population, every day, for a grand total of <em>one quadrillion every year</em>. And that&#8217;s only an eyeball estimate of actual in-person conversation communication. Who knows what that number is once you include journalism, microblogs, instant messaging&#8230;</p>
<p>My, we&#8217;re a chatty bunch, ain&#8217;t we.</p>
<p>The downside of this, of course, is that being part of &#8220;The Conversation&#8221; means precisely squat. No matter what that sales guy or social media enthusiast over there tells you, you remain one tiny voice among trillions. Even if you slice and dice the population down to a specialized group that might let you have an impact, that group does not exist in a vacuum and remains influenced by anyone and everyone else that&#8217;s out there.</p>
<p>Humbling thought, isn&#8217;t it? That&#8217;s right, we&#8217;re really not as important as we think we are.</p>


Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F01%2F27%2Fmeasuring-the-conversation.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F01%2F27%2Fmeasuring-the-conversation.html&amp;title=Measuring%20%22The%20Conversation%22&amp;notes=One%20of%20my%20favorite%20phrases%20these%20days%20is%20%22Join%20the%20Conversation%22.%20It%27s%20used%20by%20marketers%2C%20social%20media%20enthusiasts%2C%20and%20many%20others%20to%20point%20out%20that%20you%20can%20gain%20prominence%20or%20importance%20simply%20by%20engaging%20in%20conversation%20%28usually%20about%20a%20particular%20topic%29.%20And%20who%20doesn%27t%20like%20to%20feel%20important%3F%20%22Join%20the%20Conversation%2C%20be%20part%20of%20something%20greater%22%2C%20right%3F%20Most%20who%20use%20this%20concept%20rarely%20go%20so%20far%20as%20to%20explain%20it%2C%20but%20what%20they%20really%20mean%20is%20that%20you%20can%20easily%20participate%20in%20a%20large%2C%20webbed%20network%20of%20day%20to%20day%20personal%20interactions%20that%20establish%20and%20drive%20the%20current%20zeitgeist%2C%20and%20that%20such%20participation%20will%20support%20you%20as%20an%20individual.%20This%20concept%20of%20%22The%20Conversation%22%20also%20has%20a%20bit%20of%20a%20technological%20spin%20to%20it%20given%20the%20plethora%20of%20communication%20sites%20and%20services%20out%20there%2C%20but%20ultimately%20it%20is%20inclusive%20of%20all%20forms%20of%20conversation." title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F01%2F27%2Fmeasuring-the-conversation.html&amp;title=Measuring%20%22The%20Conversation%22&amp;bodytext=One%20of%20my%20favorite%20phrases%20these%20days%20is%20%22Join%20the%20Conversation%22.%20It%27s%20used%20by%20marketers%2C%20social%20media%20enthusiasts%2C%20and%20many%20others%20to%20point%20out%20that%20you%20can%20gain%20prominence%20or%20importance%20simply%20by%20engaging%20in%20conversation%20%28usually%20about%20a%20particular%20topic%29.%20And%20who%20doesn%27t%20like%20to%20feel%20important%3F%20%22Join%20the%20Conversation%2C%20be%20part%20of%20something%20greater%22%2C%20right%3F%20Most%20who%20use%20this%20concept%20rarely%20go%20so%20far%20as%20to%20explain%20it%2C%20but%20what%20they%20really%20mean%20is%20that%20you%20can%20easily%20participate%20in%20a%20large%2C%20webbed%20network%20of%20day%20to%20day%20personal%20interactions%20that%20establish%20and%20drive%20the%20current%20zeitgeist%2C%20and%20that%20such%20participation%20will%20support%20you%20as%20an%20individual.%20This%20concept%20of%20%22The%20Conversation%22%20also%20has%20a%20bit%20of%20a%20technological%20spin%20to%20it%20given%20the%20plethora%20of%20communication%20sites%20and%20services%20out%20there%2C%20but%20ultimately%20it%20is%20inclusive%20of%20all%20forms%20of%20conversation." title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F01%2F27%2Fmeasuring-the-conversation.html&amp;t=Measuring%20%22The%20Conversation%22" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F01%2F27%2Fmeasuring-the-conversation.html&amp;title=Measuring%20%22The%20Conversation%22&amp;annotation=One%20of%20my%20favorite%20phrases%20these%20days%20is%20%22Join%20the%20Conversation%22.%20It%27s%20used%20by%20marketers%2C%20social%20media%20enthusiasts%2C%20and%20many%20others%20to%20point%20out%20that%20you%20can%20gain%20prominence%20or%20importance%20simply%20by%20engaging%20in%20conversation%20%28usually%20about%20a%20particular%20topic%29.%20And%20who%20doesn%27t%20like%20to%20feel%20important%3F%20%22Join%20the%20Conversation%2C%20be%20part%20of%20something%20greater%22%2C%20right%3F%20Most%20who%20use%20this%20concept%20rarely%20go%20so%20far%20as%20to%20explain%20it%2C%20but%20what%20they%20really%20mean%20is%20that%20you%20can%20easily%20participate%20in%20a%20large%2C%20webbed%20network%20of%20day%20to%20day%20personal%20interactions%20that%20establish%20and%20drive%20the%20current%20zeitgeist%2C%20and%20that%20such%20participation%20will%20support%20you%20as%20an%20individual.%20This%20concept%20of%20%22The%20Conversation%22%20also%20has%20a%20bit%20of%20a%20technological%20spin%20to%20it%20given%20the%20plethora%20of%20communication%20sites%20and%20services%20out%20there%2C%20but%20ultimately%20it%20is%20inclusive%20of%20all%20forms%20of%20conversation." title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F01%2F27%2Fmeasuring-the-conversation.html&amp;title=Measuring%20%22The%20Conversation%22" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2009%2F01%2F27%2Fmeasuring-the-conversation.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2009/01/27/measuring-the-conversation.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Main Street vs. Wall Street</title>
		<link>http://www.krotscheck.net/2008/12/18/main-street-vs-wall-street.html</link>
		<comments>http://www.krotscheck.net/2008/12/18/main-street-vs-wall-street.html#comments</comments>
		<pubDate>Fri, 19 Dec 2008 03:06:35 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[bottom up]]></category>
		<category><![CDATA[democrat]]></category>
		<category><![CDATA[economics]]></category>
		<category><![CDATA[intelligence]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[republican]]></category>
		<category><![CDATA[taxes]]></category>
		<category><![CDATA[top down]]></category>
		<category><![CDATA[unemployment]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/2008/12/18/main-street-vs-wall-street.html</guid>
		<description><![CDATA[<p>Main Street and Wall Street have become polarizing catchphrases to describe the ongoing argument between top down and bottom up economics. The politicization of these terms has become so rampant that we each take sides, completely disregarding the fact that it is the environment that defines the strategy, not the other way around. In both boom times and lean times it behooves us to carefully consider all the present influencing factors, and choose the appropriate strategy based on that <em>regardless</em> of political leanings. Top down and bottom up approaches have their place, but you have to be smart about choosing which to use.<br /></p>
]]></description>
			<content:encoded><![CDATA[<p>Main Street and Wall Street have become polarizing catchphrases to describe the ongoing argument between top down and bottom up economics. The politicization of these terms has become so rampant that we each take sides, completely disregarding the fact that it is the environment that defines the strategy, not the other way around. In both boom times and lean times it behooves us to carefully consider all the present influencing factors, and choose the appropriate strategy based on that <em>regardless</em> of political leanings. Top down and bottom up approaches have their place, but you have to be smart about choosing which to use.</p>
<p>It&#8217;s fairly common for politicians to convert extremely complex topics into sound bytes. We&#8217;ve seen it happen- so and so will take their opponent&#8217;s economic policy, pull it apart looking for the slightest thing that might motivate the opposition, and then use it like a hammer to completely discredit their opponent. So has it been with the claims of the 45-day old election propaganda (does anyone still remember how much they cared back then?), so it will be with any and all upcoming elections as long as this firebrand strategy pays off.</p>
<p>One personal pet peeve of mine has been the Main Street vs. Wall Street debate, a catchphrase so overused that it&#8217;s rivaling Britney Spears for airtime. These five words attempt to turn two fundamentally different economic management systems into a bullet point, and allow anyone to repeat them in an argument while fully absolving themselves of actually understanding what&#8217;s going on. It&#8217;s easy, we&#8217;ve all been guilty of it: What&#8217;s more important? Main Street or Wall Street? The former of course. Why? Because it&#8217;s more relevant to more people.</p>
<p>Wrong.</p>
<p>The actual discussion is far more subtle and complex than that, and is rooted in the core difference between two economic management systems: Top Down vs. Bottom Up Capitalism. Fundamentally, these theories attempt to place a framework of understanding around economic activity, so as to simplify an incredibly complex system enough that it may be managed, encouraged, and in limited cases predicted. In other words, we understand that a country&#8217;s economy is so complicated that we don&#8217;t have a clue what&#8217;s happening, but we&#8217;ve got a sortof vague idea and theory and based on that are going to see if we can prevent it from getting out of control.</p>
<p>Amusing, isn&#8217;t it, that &#8220;Wall Street&#8221; is a simplification of Top Down Economics (Main Street likewise)&#8230;. which is a simplification of something we don&#8217;t really understand to begin with, but I digress&#8230;</p>
<p>To really set the stage for this discussion however we have to set some common ground.</p>
<h4>The heart of a capitalist society is the Individual</h4>
<p>While some call this person the &#8220;Consumer&#8221; while others call this person the &#8220;Worker&#8221;, fact of the matter is that it&#8217;s the same person. The Individual is an economic entity unto itself, and through his or her labor produces value which nets them currency from the market, which is then subsequently reintroduced into the market to support the activities of said Individual. In short the Individual is a unit designed to generate and spend wealth, which allows us to define &#8220;corporations&#8221; as Individuals within a market. In fact, Corporations and Businesses are usually seen as individuals for legal reasons, so at least there we have some backup.</p>
<h4>The economy is measured by the <em>movement</em> of money, not the <em>amount</em> of money.</h4>
<p>Let&#8217;s get one thing straight: If you have a lot of money in your mattress, it&#8217;s paper. It is not being used, it is not increasing or decreasing in value (Well, barring in/deflation), it is not helping you acquire goods and services, and it&#8217;s not getting registered on any beancounter&#8217;s analysis spreadsheet. The economy is defined by the transfer of money through purchase or other means. If the money doesn&#8217;t move, it&#8217;s worthless.</p>
<h4>A single dollar is valuable</h4>
<p>While to you or I a single dollar bill might be fairly trivial in economic terms a single dollar has an incredible impact because it is multiplied across millions of Individuals. Provide a $0.25 tax break to everyone in an economy and you suddenly have millions in surplus capital. Similarly, if you provide a $50 Million tax break to one individual (easier done with companies) you have a similar effect. The scale of either action does not matter, because from the side of the entity offering the tax break it all looks the same. In other words, economic actions may be performed regardless of scale, because a single dollar has value no matter how you slice it.</p>
<h4>Competition makes the world go round</h4>
<p>The true free market advocate (of which I am one) believes firmly in the rules of fair and equal competition. If the playing field is equal (that&#8217;s a completely different argument), then the best company should succeed. Notice how I didn&#8217;t say &#8220;win&#8221;- as with any real life simulation, the idea of winning and losing becomes largely meaningless, because we are not playing on a terminated field: The dice keep rolling, the clock keeps ticking no matter what you do. It is in this environment that those companies capable of making the best decisions succeed, while those that make the worst fail, and through that competition we see the ebbs and flows of today&#8217;s market.</p>
<h3>Top Down Economics (Wall Street)</h3>
<p>The basic theory behind top down economics is that management begins at the top, because as soon as you give an Individual (corporation) with far reaching arms the means to expand its operations it will do so (and vice versa), and the cascade effect of new infrastructure will give the appropriate economic kick in the pants.</p>
<p>There are two problems with this theory: First of all, you cannot easily distinguish between companies whose operations have a global reach vs. a local reach (i.e. you can&#8217;t say whether your money is leaving the country), and secondly that you cannot account for pork in the pyramid of corporate power (Like, say, CEO salaries).</p>
<h3>Bottom Up Economics (Main Street)</h3>
<p>Bottom Up Economics believes that if you provide the small individual with means, they will use it to support themselves and thus encourage the movement of capital through the economy. Furthermore, in search for each individuals capital, corporations become more competitive and thus, theoretically, provide better products and services.</p>
<p>Speaking personally, my own budget has always expanded to consume my income, so I can certainly speak to its effectiveness, but this theory has significant problems of its own. First of all, competition between corporations is as much quality and process (real quantitative moneymakers) as much as it is marketing and message (very qualitative moneymakers). Fact is, you can make crap, have a great sales guy, and shame people into shelling out money. Furthermore, you&#8217;re hoping that your individual consumer is spend happy and doesn&#8217;t save their surplus.</p>
<h3>So which is better?</h3>
<p>Both, of course, or neither, depending on the environment. Fact is they both have serious logical holes, and situations exist where, if anything, they&#8217;re the worst idea ever. It&#8217;s all well and good for you to give money to either the top or the bottom, <em>if</em> they end up behaving the way you expect them to. This almost never happens, but let me give you a couple of drastic situations:<br /></p>
<h4>Deflation</h4>
<p>If currency is currently in a deflationary cycle, then your average day to day individual will take any money you give them and hold on to it, because they know full well that the special shiny thing they wanted to buy will be cheaper tomorrow&#8230; and tomorrow&#8230; and tomorrow. In other words, a bottom up economic system will completely and utterly fail in a deflationary cycle, <em>assuming</em> that&#8217;s the only factor affecting purchase decisions.</p>
<h4>Low Unemployment</h4>
<p>If your country currently has the (enviable) problem of low unemployment, then any corporation you give money to is in a bit of a bind. They now have the capital to expand operations, but the local labor market is extremely competitive (and therefore expensive). If they want to expand operations they can choose to stay within your country (at a much reduced effective rate of capital) or they can spend that money overseas for much greater effect. In short, a top-down economic approach will fail in a country with low unemployment, because the money is far more likely to flow overseas.</p>
<p>In both of these cases, the economic theory given completely breaks down, largely because you failed to take into account the conditions in which you&#8217;re operating. Other factors could include the level of regulation (more means fairer business practices, less means lower cost of business) as well as corporate/individual taxes (social security/Medicare/regulatory oversight vs. economic capital), and each have some very complex effects on the system.</p>
<p>Expanding this to the real world, let&#8217;s take a look at the mid 2000&#8242;s: We&#8217;re in an economic boom time, and the consumer is flush with credit (if not cash). Business is going great! So why question something that works- We&#8217;re going to continue giving tax breaks at the top, keep reducing regulations and continue to deregulate our industries. Business, after all, has proven that they can look after themselves.</p>
<p>And look where that got us. Would a more stringent regulatory strategy have gotten us somewhere better? Perhaps. Would increasing taxes at the top and reducing them at the bottom have kept the field more competitive rather than strangely lopsided? Perhaps. What we do know is that the correct approach to handling the US&#8217;s financial and economic matters was <em>not</em> what ended up happening.</p>
<h3>Full Circle</h3>
<p>And yet we always <em>must</em> have someone who&#8217;s right, and someone who&#8217;s wrong. Face it, we&#8217;re a binary species, and love to be on the winning side. I have many republican friends right now who feel like they&#8217;re on the losing side right now, simply because the present administration&#8217;s economic policy seems to be to blame for the meltdown that the opposing theory is trying to get us out of. One way or another, we each try to pick one side and go with it, and based on that we win or lose (or rather, we lose the election but we&#8217;re still <em>right</em>).</p>
<p>This isn&#8217;t a question of us vs. them. This is a question of us actually thinking about the issue, and coming up with the right solution. Intelligence and an open minded approach is the right strategy, and by actually turning off the television and sitting down with a problem by ourselves or as a community, we can easily overcome this problem and solve the issue not just right now, but for future crises as well.</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F12%2F18%2Fmain-street-vs-wall-street.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F12%2F18%2Fmain-street-vs-wall-street.html&amp;title=Main%20Street%20vs.%20Wall%20Street&amp;notes=Main%20Street%20and%20Wall%20Street%20have%20become%20polarizing%20catchphrases%20to%20describe%20the%20ongoing%20argument%20between%20top%20down%20and%20bottom%20up%20economics.%20The%20politicization%20of%20these%20terms%20has%20become%20so%20rampant%20that%20we%20each%20take%20sides%2C%20completely%20disregarding%20the%20fact%20that%20it%20is%20the%20environment%20that%20defines%20the%20strategy%2C%20not%20the%20other%20way%20around.%20In%20both%20boom%20times%20and%20lean%20times%20it%20behooves%20us%20to%20carefully%20consider%20all%20the%20present%20influencing%20factors%2C%20and%20choose%20the%20appropriate%20strategy%20based%20on%20that%20regardless%20of%20political%20leanings.%20Top%20down%20and%20bottom%20up%20approaches%20have%20their%20place%2C%20but%20you%20have%20to%20be%20smart%20about%20choosing%20which%20to%20use.%0A" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F12%2F18%2Fmain-street-vs-wall-street.html&amp;title=Main%20Street%20vs.%20Wall%20Street&amp;bodytext=Main%20Street%20and%20Wall%20Street%20have%20become%20polarizing%20catchphrases%20to%20describe%20the%20ongoing%20argument%20between%20top%20down%20and%20bottom%20up%20economics.%20The%20politicization%20of%20these%20terms%20has%20become%20so%20rampant%20that%20we%20each%20take%20sides%2C%20completely%20disregarding%20the%20fact%20that%20it%20is%20the%20environment%20that%20defines%20the%20strategy%2C%20not%20the%20other%20way%20around.%20In%20both%20boom%20times%20and%20lean%20times%20it%20behooves%20us%20to%20carefully%20consider%20all%20the%20present%20influencing%20factors%2C%20and%20choose%20the%20appropriate%20strategy%20based%20on%20that%20regardless%20of%20political%20leanings.%20Top%20down%20and%20bottom%20up%20approaches%20have%20their%20place%2C%20but%20you%20have%20to%20be%20smart%20about%20choosing%20which%20to%20use.%0A" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F12%2F18%2Fmain-street-vs-wall-street.html&amp;t=Main%20Street%20vs.%20Wall%20Street" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F12%2F18%2Fmain-street-vs-wall-street.html&amp;title=Main%20Street%20vs.%20Wall%20Street&amp;annotation=Main%20Street%20and%20Wall%20Street%20have%20become%20polarizing%20catchphrases%20to%20describe%20the%20ongoing%20argument%20between%20top%20down%20and%20bottom%20up%20economics.%20The%20politicization%20of%20these%20terms%20has%20become%20so%20rampant%20that%20we%20each%20take%20sides%2C%20completely%20disregarding%20the%20fact%20that%20it%20is%20the%20environment%20that%20defines%20the%20strategy%2C%20not%20the%20other%20way%20around.%20In%20both%20boom%20times%20and%20lean%20times%20it%20behooves%20us%20to%20carefully%20consider%20all%20the%20present%20influencing%20factors%2C%20and%20choose%20the%20appropriate%20strategy%20based%20on%20that%20regardless%20of%20political%20leanings.%20Top%20down%20and%20bottom%20up%20approaches%20have%20their%20place%2C%20but%20you%20have%20to%20be%20smart%20about%20choosing%20which%20to%20use.%0A" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F12%2F18%2Fmain-street-vs-wall-street.html&amp;title=Main%20Street%20vs.%20Wall%20Street" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F12%2F18%2Fmain-street-vs-wall-street.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2008/12/18/main-street-vs-wall-street.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why we&#8217;re stuck with IE6 for the forseeable future</title>
		<link>http://www.krotscheck.net/2008/11/23/why-were-stuck-with-ie6-for-the-forseeable-future.html</link>
		<comments>http://www.krotscheck.net/2008/11/23/why-were-stuck-with-ie6-for-the-forseeable-future.html#comments</comments>
		<pubDate>Mon, 24 Nov 2008 04:07:18 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[erp]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/2008/11/23/why-were-stuck-with-ie6-for-the-forseeable-future.html</guid>
		<description><![CDATA[If you&#8217;ve ever done any form of web development, you&#8217;ve probably learned to hate Internet Explorer 6. It&#8217;s not that it&#8217;s not used- IE6 once enjoyed the status of being the foremost browser on the web, and as a result used to set many of the standards by which the web was developed. Unfortunately, it [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve ever done any form of web development, you&#8217;ve probably learned to hate Internet Explorer 6. It&#8217;s not that it&#8217;s not used- IE6 once enjoyed the status of being the foremost browser on the web, and as a result used to set many of the standards by which the web was developed. Unfortunately, it never managed to consistently implement those standards, and as a result is the origin of many lost hours of sleep and endless frustration.</p>
<p>Internet Explorer 6 is old, very old. It was released on August 21, 2001, which in technology terms is archaic. To put things in perspective, the original, first generation iPod was released two months after IE6, shortly followed by the original XBox, subsequently followed by the first monochrome BlackBerry in March of the following year. Processors at the time had barely broken the 1GHz mark, and the Dot-Com bust had come and gone, leaving its mark on Redmond and Silicon Valley.<br /></p>
<p>Since then, many newer and better browsers have been released, all of which do a better job of implementing those standards (Though few do so completely). As a result developing for these browsers has become even more painful, because web developers have to support both the newer, more standards compliant browsers as well as trying to accommodate for IE6&#8242;s eccentricities. And yet IE6 continues to appear on spec sheets and software requirements, and is a continued presence in web analytics reports. We&#8217;re still stuck with it, so what gives? If it is really so painful to develop for, and really so limiting to the user experience, why has IE6 not been unceremoniously ejected from the web?</p>
<h3>Who&#8217;s Not At Fault</h3>
<p>Blame is tossed around like candy when it comes to figuring out who&#8217;s at fault. One of the common ones is the outdated hardware, yet even in the notoriously underfunded and out-of-date nonprofit sector (<a href="http://nptechsurvey.wordpress.com/">this study</a> claims 44% of nonprofits operate on 3+ year old hardware), the software is reasonably recent (89% on Windows XP). If anything, the nonprofit sector is ahead of the curve, perhaps because they have to rely on smaller software providers.</p>
<p>The larger part of the guilt is usually laid at the feet of large corporate IT departments. I&#8217;m not talking about mid-sized businesses, I&#8217;m talking about behemoths that, along with their size, have a reputation of moving incredibly slowly and always being several versions behind on everything. Some people erroneously say that corporations like this don&#8217;t want to shake things up by going with something &#8220;untested&#8221; and &#8220;potentially insecure&#8221;, but in reality the largest part of the blame for all the frustration they&#8217;ve caused isn&#8217;t even their fault.</p>
<p>One of the primary systems that large, corporate IT departments maintain are Enterprise Resource Planning (ERP) systems such as SAP, Oracle, Peoplesoft and so forth. These systems are massive- a full implementation will touch every part of an organization from accounting to inventory and requires several years to implement. Their benefits are many- they greatly improve reporting, planning, and in many cases automate core business operations.<br /></p>
<p>Additionally, these systems are ridiculously expensive, not only because of their original licensing fees, but also because these systems have to be highly customized, and at $180/hour plus expenses for a competent ERP consultant that bill starts to add up. With a pricetag of many millions of dollars, installing an ERP may still be easily justified (given the operational benefits it would provide), however providing a positive ROI for the incremental benefits from an upgrade are a lot more difficult generate.</p>
<p>To illustrate, take a look at these two excerpts from a product compatibility matrix for SAP Netweaver &#8217;04 and&#8217;07, valid as of April 2008 (the date on the presentation. You can find the version for &#8217;04 <a href="https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e05e0417-da0e-2b10-91bf-ec680bb64f15">here</a> and for 7.0<a href="https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e05e0417-da0e-2b10-91bf-ec680bb64f15">here</a> , and as you can see they don&#8217;t exactly support anything but Internet Explorer. Add to that the extremely high cost and only incremental benefit of upgrading and it&#8217;s really no surprise that IE6 is still standard at major corporations. The ERP solution is the decision driver, not the browser, and that&#8217;s the real reason IE6 is not about to go away.</p>
<div class="image">
  <a href="http://www.krotscheck.net/wp-content/uploads/2008/11/sap-support.png"><img src="http://www.krotscheck.net/wp-content/uploads/2008/11/sap-support-tm.jpg" width="450" height="299" alt="SAP-Support.png" /></a>

  <p>Product Compatibility Matrix for SAP Netweaver &#8217;04</p>
</div>
<div class="image">
  <a href="http://www.krotscheck.net/wp-content/uploads/2008/11/sap-support-07.png"><img src="http://www.krotscheck.net/wp-content/uploads/2008/11/sap-support-07-tm.jpg" width="480" height="327" alt="SAP-Support-07.png" /></a>

  <p>Product Compatibility Matrix for SAP Netweaver 7</p>
</div>
<h3>So what happened?</h3>
<p>Remember all that hooplah several years ago about how Microsoft was being uncompetitive and monopolistic in its actions within the browser wars? This is the aftermath. By continually encouraging corporations and their software developers to make use of the full capabilities of Internet Explorer 6 and the admittedly feature rich ActiveX controls, they have succeeded at carving themselves the largest part of the browser market. Unfortunately, by doing so they have also forced a large portion of the web into obsolescence.</p>
<p>So who&#8217;s really at fault here? Microsoft for pushing its development platform, or the ERP system providers who developed for it. Personally, I think the blame is where you prefer to put it based on your own technological preferences. If you&#8217;re a huge OSS fan, Microsoft&#8217;s a convenient target. If you&#8217;ve ever been frustrated by ERP&#8217;s, then the provider is the target-du-jour. Personally, I&#8217;m more likely to consider the product managers, directors and developers who made the platform decision without considering the long term implications.</p>
<h3>So are we stuck?</h3>
<p>Sortof. With the impending release of IE8 web developers will be able to tell the browser to &#8220;pretend&#8221; to be a previous version, neatly circumventing any future compatibility issues. Unfortunately this only works for Internet Explorer, meaning that ERP developers have no reason to change past behaviors. Until they disengage from using proprietary extensions and ActiveX controls and start relying more on open standards based development, we&#8217;ll never truly escape this cycle, though Microsoft has made backwards-compatibility a lot easier.</p>
<p>And that&#8217;s exactly what Microsoft wants: Allow their development partners to improve functionality and give their clients reasons to upgrade, while not forcing their other partners (IT departments dependent on ERP&#8217;s) into technological obsolescence&#8230; sortof. This process will take a while, because IE6 isn&#8217;t one of the browsers IE8 can be reset to, but eventually we will see IE6 go the way of Netscape, only to be replaced with&#8230; Internet Explorer.</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F23%2Fwhy-were-stuck-with-ie6-for-the-forseeable-future.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F23%2Fwhy-were-stuck-with-ie6-for-the-forseeable-future.html&amp;title=Why%20we%27re%20stuck%20with%20IE6%20for%20the%20forseeable%20future&amp;notes=If%20you%27ve%20ever%20done%20any%20form%20of%20web%20development%2C%20you%27ve%20probably%20learned%20to%20hate%20Internet%20Explorer%206.%20It%27s%20not%20that%20it%27s%20not%20used-%20IE6%20once%20enjoyed%20the%20status%20of%20being%20the%20foremost%20browser%20on%20the%20web%2C%20and%20as%20a%20result%20used%20to%20set%20many%20of%20the%20standards" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F23%2Fwhy-were-stuck-with-ie6-for-the-forseeable-future.html&amp;title=Why%20we%27re%20stuck%20with%20IE6%20for%20the%20forseeable%20future&amp;bodytext=If%20you%27ve%20ever%20done%20any%20form%20of%20web%20development%2C%20you%27ve%20probably%20learned%20to%20hate%20Internet%20Explorer%206.%20It%27s%20not%20that%20it%27s%20not%20used-%20IE6%20once%20enjoyed%20the%20status%20of%20being%20the%20foremost%20browser%20on%20the%20web%2C%20and%20as%20a%20result%20used%20to%20set%20many%20of%20the%20standards" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F23%2Fwhy-were-stuck-with-ie6-for-the-forseeable-future.html&amp;t=Why%20we%27re%20stuck%20with%20IE6%20for%20the%20forseeable%20future" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F23%2Fwhy-were-stuck-with-ie6-for-the-forseeable-future.html&amp;title=Why%20we%27re%20stuck%20with%20IE6%20for%20the%20forseeable%20future&amp;annotation=If%20you%27ve%20ever%20done%20any%20form%20of%20web%20development%2C%20you%27ve%20probably%20learned%20to%20hate%20Internet%20Explorer%206.%20It%27s%20not%20that%20it%27s%20not%20used-%20IE6%20once%20enjoyed%20the%20status%20of%20being%20the%20foremost%20browser%20on%20the%20web%2C%20and%20as%20a%20result%20used%20to%20set%20many%20of%20the%20standards" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F23%2Fwhy-were-stuck-with-ie6-for-the-forseeable-future.html&amp;title=Why%20we%27re%20stuck%20with%20IE6%20for%20the%20forseeable%20future" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F23%2Fwhy-were-stuck-with-ie6-for-the-forseeable-future.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2008/11/23/why-were-stuck-with-ie6-for-the-forseeable-future.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dev Humor: .Net Can Do My Laundry</title>
		<link>http://www.krotscheck.net/2008/11/06/dev-humor-net-can-do-my-laundry.html</link>
		<comments>http://www.krotscheck.net/2008/11/06/dev-humor-net-can-do-my-laundry.html#comments</comments>
		<pubDate>Thu, 06 Nov 2008 20:45:15 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[laundry]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/?p=2174</guid>
		<description><![CDATA[Techies often slip into a zone of strange banter where a familiar and often humdrum topic is cast into the vocabulary and context of our working day lives. This banter inevitably takes place while our brains are focused on something incredibly dull- a pressure valve, if you will, that allows us to enjoy what we&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>Techies often slip into a zone of strange banter where a familiar and often humdrum topic is cast into the vocabulary and context of our working day lives. This banter inevitably takes place while our brains are focused on something incredibly dull- a pressure valve, if you will, that allows us to enjoy what we&#8217;re doing even though it might be the most boring task in the world. Take, for instance, this chat log between my coworker Aaron and I, which kept me particularly entertained while babysitting an automated script.</p>
<p><em>Aaron</em>: did I make .NET changes for the last release?</p>
<p><em>Michael</em>: Yeah, remember you rewrote the backend to do my laundry?</p>
<p><em>Aaron</em>: oh yeah</p>
<p><em>Aaron</em>: how&#8217;s that working out for you?</p>
<p><em>Michael</em>: Well, it works&#8230; but the licensing fees on the detergent are killing me.</p>
<p><em>Aaron</em>: Yeah, I didn&#8217;t work out that integration well</p>
<p><em>Michael</em>: I&#8217;m afraid I&#8217;m going to have to go with an open source solution.</p>
<p><em>Aaron</em>: Many of our customers are feeling that way.</p>
<p><em>Michael</em>: I hear a new one just got released. Have you heard of &quot;Clothesline&quot;?</p>
<p><em>Aaron</em>: yeah, but I heard that the results aren&#8217;t as good if your server room has polluted air</p>
<p><em>Michael</em>: Apparently it&#8217;s super configurable though. Some kind of API called &quot;pins&quot;</p>
<p><em>Aaron</em>: Nice</p>
<p><em>Aaron</em>: I&#8217;ve seen various distributions</p>
<p><em>Aaron</em>: Pretty flexible</p>
<p><em>Aaron</em>: You can install it on a wide variety of platforms</p>
<p><em>Michael</em>: Still, I&#8217;ve read blogs that it only does half the job, and you&#8217;d really need a good Washboard operator to make it work.</p>
<p><em>Aaron</em>: Also, the process is efficient, but slow.</p>
<p><em>Michael</em>: I thought it multithreads?</p>
<p><em>Aaron</em>: It can sometimes handle a larger load than the commercial product.</p>
<p><em>Aaron</em>: It&#8217;s a trade off though.</p>
<p><em>Aaron</em>: Speed or larger processing loads.</p>
<p><em>Michael</em>: Well, you know me. Always overclocking the machine just to get those stains out.</p>


Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F06%2Fdev-humor-net-can-do-my-laundry.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F06%2Fdev-humor-net-can-do-my-laundry.html&amp;title=Dev%20Humor%3A%20.Net%20Can%20Do%20My%20Laundry&amp;notes=Techies%20often%20slip%20into%20a%20zone%20of%20strange%20banter%20where%20a%20familiar%20and%20often%20humdrum%20topic%20is%20cast%20into%20the%20vocabulary%20and%20context%20of%20our%20working%20day%20lives.%20This%20banter%20inevitably%20takes%20place%20while%20our%20brains%20are%20focused%20on%20something%20incredibly%20dull-%20" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F06%2Fdev-humor-net-can-do-my-laundry.html&amp;title=Dev%20Humor%3A%20.Net%20Can%20Do%20My%20Laundry&amp;bodytext=Techies%20often%20slip%20into%20a%20zone%20of%20strange%20banter%20where%20a%20familiar%20and%20often%20humdrum%20topic%20is%20cast%20into%20the%20vocabulary%20and%20context%20of%20our%20working%20day%20lives.%20This%20banter%20inevitably%20takes%20place%20while%20our%20brains%20are%20focused%20on%20something%20incredibly%20dull-%20" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F06%2Fdev-humor-net-can-do-my-laundry.html&amp;t=Dev%20Humor%3A%20.Net%20Can%20Do%20My%20Laundry" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F06%2Fdev-humor-net-can-do-my-laundry.html&amp;title=Dev%20Humor%3A%20.Net%20Can%20Do%20My%20Laundry&amp;annotation=Techies%20often%20slip%20into%20a%20zone%20of%20strange%20banter%20where%20a%20familiar%20and%20often%20humdrum%20topic%20is%20cast%20into%20the%20vocabulary%20and%20context%20of%20our%20working%20day%20lives.%20This%20banter%20inevitably%20takes%20place%20while%20our%20brains%20are%20focused%20on%20something%20incredibly%20dull-%20" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F06%2Fdev-humor-net-can-do-my-laundry.html&amp;title=Dev%20Humor%3A%20.Net%20Can%20Do%20My%20Laundry" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F11%2F06%2Fdev-humor-net-can-do-my-laundry.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2008/11/06/dev-humor-net-can-do-my-laundry.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>An Agency Is Not A Sweatshop</title>
		<link>http://www.krotscheck.net/2008/10/25/an-agency-is-not-a-sweatshop.html</link>
		<comments>http://www.krotscheck.net/2008/10/25/an-agency-is-not-a-sweatshop.html#comments</comments>
		<pubDate>Sat, 25 Oct 2008 19:08:30 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[agency]]></category>
		<category><![CDATA[burnout]]></category>
		<category><![CDATA[overworked]]></category>
		<category><![CDATA[reputation]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[underpaid]]></category>

		<guid isPermaLink="false">http://www.krotscheck.net/2008/10/25/an-agency-is-not-a-sweatshop.html</guid>
		<description><![CDATA[<p>As economic realities trickle down through the manufacturing and service supply chains, I'm starting to hear distressing news from my colleagues at other agencies. Work is beginning to dry up, either because clients realize that it's more cost effective to bring the larger projects in-house, or because their budgets are getting cut as a result of reduced consumer spending. Everyone seems to be fairly certain that things are going to get worse before they get better, and as a result everyone is battening down their hatches to weather the expected storm.</p>
<p>Bad news like that is almost inevitably followed up by commiseration about how many hours they've had to work recently, how they're constantly under pressure to put in more, or how their coworkers have had enough and have left for greener... or at least less stressful pastures. This in and of itself isn't necessarily bad- we all understand the pressures of marketing and agency work, and a certain amount of dedication to the project deliverables are par for the course. Yet when weekly hours exceed 50 on a regular basis, you're buying short term productivity by draining both current and future creativity of your talent. Speaking from experience, gradual burnout is still burnout, leaving long-term scars, and the tightening of client budgets and inevitable cannibalization of the RFP bid has resulted in even more frightening stories: Talented designers and developers are going on antidepressants because of their work load (True story, source withheld).</p>
]]></description>
			<content:encoded><![CDATA[<p>As economic realities trickle down through the manufacturing and service supply chains, I&#8217;m starting to hear distressing news from my colleagues at other agencies. Work is beginning to dry up, either because clients realize that it&#8217;s more cost effective to <a href="http://h71028.www7.hp.com/ERC/cache/484434-0-0-0-121.html" target="_blank">bring the larger projects in-house</a>, or because their budgets are getting cut as a result of <a href="http://blog.nielsen.com/nielsenwire/consumer/us-consumers-curtail-2008-holiday-spending/" target="_blank">reduced consumer spending</a>. Everyone seems to be fairly certain that things are going to get worse before they get better, and as a result everyone is battening down their hatches to weather the expected storm.</p>
<p>Bad news like that is almost inevitably followed up by commiseration about how many hours they&#8217;ve had to work recently, how they&#8217;re constantly under pressure to put in more, or how their coworkers have had enough and have left for greener&#8230; or at the very least less stressful pastures. This in and of itself isn&#8217;t necessarily bad- we all understand the pressures of marketing and agency work, and a certain amount of dedication to the project deliverables are par for the course. Yet when weekly hours exceed 50 on a regular basis, you&#8217;re buying short term productivity by draining both current and future creativity of your talent. Speaking from experience, gradual burnout is still burnout, leaving long-term scars, and the tightening of client budgets and inevitable cannibalization of the RFP bid has resulted in even more frightening stories: Talented designers and developers are going on antidepressants because of their work load (source withheld).</p>
<p>When I heard that, my first response was outrage. My second was to cast the management of those agencies in the worst light possible, as either willfully ignorant or maliciously exploitative. My third was to do a quick mental inventory of all the openings at Resource just in case there was a way I can get them out of that hellhole. Regardless of those, I&#8217;m confident in stating this: Those agencies are going to fail.</p>
<h3>Ur Doin it Rong</h3>
<p>Your talent is your greatest asset. Designers, developers, strategists, information architects, analytics experts, effectively all the people who actually produce whatever deliverable you&#8217;ve agreed to are the guts of your operation, and without them you&#8217;re simply a self-style executive or sales guy more useful as a hot air balloon.</p>
<p>So lets assume that you&#8217;re said executive with a production team, and hard economic times and active competition from other agencies has forced you to cut timelines and reduce your RFP estimates. A few of your employees are forced to work a few extra hours while you&#8217;re busy trying to find more clients, but the pressure doesn&#8217;t let up, becomes systemic and suddenly you&#8217;ve built a culture that expects 100% lifestyle dedication. If this was intentional, shame on you. If it wasn&#8217;t, you&#8217;re going to need to take drastic measures to fix it.</p>
<h3>Your Reputation Is At Stake</h3>
<p>As talented SME&#8217;s in the digital space we are of course extremely active online, and have a vibrant community of our own. We keep in touch over twitter, email lists, websites, blog, professional networking groups and what have you, and news like &#8220;I had to work a 100 hour week last week&#8221; gets around quickly. So while your marketing personnel and senior leadership are busy worrying about how your company&#8217;s brand is projected to current and potential customers, that same brand is being systematically undermined and destroyed in the professional communities that represent your talent pool. One single negative report is enough to mark you as an agency to stay away from, and in tough economic times it&#8217;s going to be much easier to accidentally cause these. In short, you might look good to potential clients, but when you try to hire the talent for that project which will grow your agency to the next level, the community will laugh in your face.</p>
<p>Let me emphasize this: If you put more pressure on your talent, the stress will reduce their creativity and productivity in the short and long run, you&#8217;ll have to hire more, which will refuse your offers because you&#8217;re known in the community as someone who works your employees to the breaking point. End result: You&#8217;ll be unable to produce high quality work anymore, and instead will leave your client with a bad taste in their mouth as you under-deliver on your promises, ensuring little to no repeat business.</p>
<p>And that&#8217;s the crux, isn&#8217;t it? If the web has taught us anything, it&#8217;s that <a href="http://www.vspink.com/nominate_your_school.jsp" target="_blank">high</a> <a href="http://www.colorofinspiration.com/" target="_blank">quality</a> <a href="http://polarbears.thecoca-colacompany.com/polarbearsupportfund/index.jsp" target="_blank">work</a> (shameless plug) is a better sales person than anyone you can hire, and if your HR policies, culture and project management are systematically draining and destroying the talent which produces such work, your agency is either on life support or is one payroll cycle away from being roadkill. All the sexy, high margin projects will go to those that have the talent to consistently produce it, and you&#8217;re left with those clients unable or unwilling to pay for it.</p>
<p>It&#8217;s simple economics. If your production talent is interested and engaged, you&#8217;ll see the product quality increase while efficiency increases as well. We&#8217;ve seen this with Toyota and American Airlines, and there&#8217;s plenty of evidence that fundamental truths like this easily translate to the agency world.</p>
<p>And while that&#8217;s all going on, community leaders like myself as well as your competition will be waiting in the wings, ready to poach your best and brightest at a moment&#8217;s notice. So wake up, face the music, and realize that your agency&#8217;s bottom line is only as happy as your employees.</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F25%2Fan-agency-is-not-a-sweatshop.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F25%2Fan-agency-is-not-a-sweatshop.html&amp;title=An%20Agency%20Is%20Not%20A%20Sweatshop&amp;notes=As%20economic%20realities%20trickle%20down%20through%20the%20manufacturing%20and%20service%20supply%20chains%2C%20I%27m%20starting%20to%20hear%20distressing%20news%20from%20my%20colleagues%20at%20other%20agencies.%20Work%20is%20beginning%20to%20dry%20up%2C%20either%20because%20clients%20realize%20that%20it%27s%20more%20cost%20effective%20to%20bring%20the%20larger%20projects%20in-house%2C%20or%20because%20their%20budgets%20are%20getting%20cut%20as%20a%20result%20of%20reduced%20consumer%20spending.%20Everyone%20seems%20to%20be%20fairly%20certain%20that%20things%20are%20going%20to%20get%20worse%20before%20they%20get%20better%2C%20and%20as%20a%20result%20everyone%20is%20battening%20down%20their%20hatches%20to%20weather%20the%20expected%20storm.%0ABad%20news%20like%20that%20is%20almost%20inevitably%20followed%20up%20by%20commiseration%20about%20how%20many%20hours%20they%27ve%20had%20to%20work%20recently%2C%20how%20they%27re%20constantly%20under%20pressure%20to%20put%20in%20more%2C%20or%20how%20their%20coworkers%20have%20had%20enough%20and%20have%20left%20for%20greener...%20or%20at%20least%20less%20stressful%20pastures.%20This%20in%20and%20of%20itself%20isn%27t%20necessarily%20bad-%20we%20all%20understand%20the%20pressures%20of%20marketing%20and%20agency%20work%2C%20and%20a%20certain%20amount%20of%20dedication%20to%20the%20project%20deliverables%20are%20par%20for%20the%20course.%20Yet%20when%20weekly%20hours%20exceed%2050%20on%20a%20regular%20basis%2C%20you%27re%20buying%20short%20term%20productivity%20by%20draining%20both%20current%20and%20future%20creativity%20of%20your%20talent.%20Speaking%20from%20experience%2C%20gradual%20burnout%20is%20still%20burnout%2C%20leaving%20long-term%20scars%2C%20and%20the%20tightening%20of%20client%20budgets%20and%20inevitable%20cannibalization%20of%20the%20RFP%20bid%20has%20resulted%20in%20even%20more%20frightening%20stories%3A%20Talented%20designers%20and%20developers%20are%20going%20on%20antidepressants%20because%20of%20their%20work%20load%20%28True%20story%2C%20source%20withheld%29.%0A" title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F25%2Fan-agency-is-not-a-sweatshop.html&amp;title=An%20Agency%20Is%20Not%20A%20Sweatshop&amp;bodytext=As%20economic%20realities%20trickle%20down%20through%20the%20manufacturing%20and%20service%20supply%20chains%2C%20I%27m%20starting%20to%20hear%20distressing%20news%20from%20my%20colleagues%20at%20other%20agencies.%20Work%20is%20beginning%20to%20dry%20up%2C%20either%20because%20clients%20realize%20that%20it%27s%20more%20cost%20effective%20to%20bring%20the%20larger%20projects%20in-house%2C%20or%20because%20their%20budgets%20are%20getting%20cut%20as%20a%20result%20of%20reduced%20consumer%20spending.%20Everyone%20seems%20to%20be%20fairly%20certain%20that%20things%20are%20going%20to%20get%20worse%20before%20they%20get%20better%2C%20and%20as%20a%20result%20everyone%20is%20battening%20down%20their%20hatches%20to%20weather%20the%20expected%20storm.%0ABad%20news%20like%20that%20is%20almost%20inevitably%20followed%20up%20by%20commiseration%20about%20how%20many%20hours%20they%27ve%20had%20to%20work%20recently%2C%20how%20they%27re%20constantly%20under%20pressure%20to%20put%20in%20more%2C%20or%20how%20their%20coworkers%20have%20had%20enough%20and%20have%20left%20for%20greener...%20or%20at%20least%20less%20stressful%20pastures.%20This%20in%20and%20of%20itself%20isn%27t%20necessarily%20bad-%20we%20all%20understand%20the%20pressures%20of%20marketing%20and%20agency%20work%2C%20and%20a%20certain%20amount%20of%20dedication%20to%20the%20project%20deliverables%20are%20par%20for%20the%20course.%20Yet%20when%20weekly%20hours%20exceed%2050%20on%20a%20regular%20basis%2C%20you%27re%20buying%20short%20term%20productivity%20by%20draining%20both%20current%20and%20future%20creativity%20of%20your%20talent.%20Speaking%20from%20experience%2C%20gradual%20burnout%20is%20still%20burnout%2C%20leaving%20long-term%20scars%2C%20and%20the%20tightening%20of%20client%20budgets%20and%20inevitable%20cannibalization%20of%20the%20RFP%20bid%20has%20resulted%20in%20even%20more%20frightening%20stories%3A%20Talented%20designers%20and%20developers%20are%20going%20on%20antidepressants%20because%20of%20their%20work%20load%20%28True%20story%2C%20source%20withheld%29.%0A" title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F25%2Fan-agency-is-not-a-sweatshop.html&amp;t=An%20Agency%20Is%20Not%20A%20Sweatshop" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F25%2Fan-agency-is-not-a-sweatshop.html&amp;title=An%20Agency%20Is%20Not%20A%20Sweatshop&amp;annotation=As%20economic%20realities%20trickle%20down%20through%20the%20manufacturing%20and%20service%20supply%20chains%2C%20I%27m%20starting%20to%20hear%20distressing%20news%20from%20my%20colleagues%20at%20other%20agencies.%20Work%20is%20beginning%20to%20dry%20up%2C%20either%20because%20clients%20realize%20that%20it%27s%20more%20cost%20effective%20to%20bring%20the%20larger%20projects%20in-house%2C%20or%20because%20their%20budgets%20are%20getting%20cut%20as%20a%20result%20of%20reduced%20consumer%20spending.%20Everyone%20seems%20to%20be%20fairly%20certain%20that%20things%20are%20going%20to%20get%20worse%20before%20they%20get%20better%2C%20and%20as%20a%20result%20everyone%20is%20battening%20down%20their%20hatches%20to%20weather%20the%20expected%20storm.%0ABad%20news%20like%20that%20is%20almost%20inevitably%20followed%20up%20by%20commiseration%20about%20how%20many%20hours%20they%27ve%20had%20to%20work%20recently%2C%20how%20they%27re%20constantly%20under%20pressure%20to%20put%20in%20more%2C%20or%20how%20their%20coworkers%20have%20had%20enough%20and%20have%20left%20for%20greener...%20or%20at%20least%20less%20stressful%20pastures.%20This%20in%20and%20of%20itself%20isn%27t%20necessarily%20bad-%20we%20all%20understand%20the%20pressures%20of%20marketing%20and%20agency%20work%2C%20and%20a%20certain%20amount%20of%20dedication%20to%20the%20project%20deliverables%20are%20par%20for%20the%20course.%20Yet%20when%20weekly%20hours%20exceed%2050%20on%20a%20regular%20basis%2C%20you%27re%20buying%20short%20term%20productivity%20by%20draining%20both%20current%20and%20future%20creativity%20of%20your%20talent.%20Speaking%20from%20experience%2C%20gradual%20burnout%20is%20still%20burnout%2C%20leaving%20long-term%20scars%2C%20and%20the%20tightening%20of%20client%20budgets%20and%20inevitable%20cannibalization%20of%20the%20RFP%20bid%20has%20resulted%20in%20even%20more%20frightening%20stories%3A%20Talented%20designers%20and%20developers%20are%20going%20on%20antidepressants%20because%20of%20their%20work%20load%20%28True%20story%2C%20source%20withheld%29.%0A" title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F25%2Fan-agency-is-not-a-sweatshop.html&amp;title=An%20Agency%20Is%20Not%20A%20Sweatshop" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F25%2Fan-agency-is-not-a-sweatshop.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2008/10/25/an-agency-is-not-a-sweatshop.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Control: AnimatedTileList</title>
		<link>http://www.krotscheck.net/2008/10/11/control-animatedtilelist.html</link>
		<comments>http://www.krotscheck.net/2008/10/11/control-animatedtilelist.html#comments</comments>
		<pubDate>Sun, 12 Oct 2008 04:53:55 +0000</pubDate>
		<dc:creator>Michael Krotscheck</dc:creator>
				<category><![CDATA[Libraries]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[Animated Tile List]]></category>
		<category><![CDATA[AnimateTileList]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://www.practicalflash.com/libraries/control-animatedtilelist/</guid>
		<description><![CDATA[<table class="package">
  <tbody>
    <tr>
      <th>Control</th>

      <td>com.practicalflash.controls.AnimatedTileList</td>
    </tr>

    <tr>
      <th>Source</th>

      <td><a href="http://code.google.com/p/practicalflash/">Google Code Repository</a></td>
    </tr>
  </tbody>
</table>
<p>The Animated Tile List attempts to fill the Visual Component gap left by Adobe in their current TileListRenderer structure. While not as sophisticated (it doesn't support drag &#038; drop, mouse commands, or data change transitions for instance), it nevertheless provides an invalidating, caching tile list with smooth selection transitions.</p>
<p>Notable differences: The AnimatedTileList does not poll its children for desired row height or widths, but calculates those directly off of the numRows and numColumns properties, setting them explicitly.</p>]]></description>
			<content:encoded><![CDATA[<table class="package">
  <tbody>
    <tr>
      <th>Control</th>

      <td>com.practicalflash.controls.AnimatedTileList</td>
    </tr>

    <tr>
      <th>Source</th>

      <td><a href="http://code.google.com/p/practicalflash/">Google Code Repository</a></td>
    </tr>
  </tbody>
</table>
<p>The Animated Tile List attempts to fill the Visual Component gap left by Adobe in their current TileListRenderer structure. While not as sophisticated (it doesn&#8217;t support drag &#038; drop, mouse commands, or data change transitions for instance), it nevertheless provides an invalidating, caching tile list with smooth selection transitions.</p>
<p>Notable differences: The AnimatedTileList does not poll its children for desired row height or widths, but calculates those directly off of the numRows and numColumns properties, setting them explicitly.</p>
<div class="image">

  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="424" height="392" title="Animated Tile List Demo">

    <param name="movie" value="http://www.krotscheck.net/wp-content/uploads/2008/10/animatedtilelist1.swf" />

    <param name="quality" value="high" />

    <embed src="http://www.krotscheck.net/wp-content/uploads/2008/10/animatedtilelist1.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash"  width="424" height="392" />
  </object>
  <p>Animated Tile List: Demo</p>
</div>


Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F11%2Fcontrol-animatedtilelist.html&amp;partner=sociable" title="Print"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F11%2Fcontrol-animatedtilelist.html&amp;title=Control%3A%20AnimatedTileList&amp;notes=%0A%20%20%0A%20%20%20%20%0A%20%20%20%20%20%20Control%0A%0A%20%20%20%20%20%20com.practicalflash.controls.AnimatedTileList%0A%20%20%20%20%0A%0A%20%20%20%20%0A%20%20%20%20%20%20Source%0A%0A%20%20%20%20%20%20Google%20Code%20Repository%0A%20%20%20%20%0A%20%20%0A%0AThe%20Animated%20Tile%20List%20attempts%20to%20fill%20the%20Visual%20Component%20gap%20left%20by%20Adobe%20in%20their%20current%20TileListRenderer%20structure.%20While%20not%20as%20sophisticated%20%28it%20doesn%27t%20support%20drag%20%26%20drop%2C%20mouse%20commands%2C%20or%20data%20change%20transitions%20for%20instance%29%2C%20it%20nevertheless%20provides%20an%20invalidating%2C%20caching%20tile%20list%20with%20smooth%20selection%20transitions.%0ANotable%20differences%3A%20The%20AnimatedTileList%20does%20not%20poll%20its%20children%20for%20desired%20row%20height%20or%20widths%2C%20but%20calculates%20those%20directly%20off%20of%20the%20numRows%20and%20numColumns%20properties%2C%20setting%20them%20explicitly." title="del.icio.us"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F11%2Fcontrol-animatedtilelist.html&amp;title=Control%3A%20AnimatedTileList&amp;bodytext=%0A%20%20%0A%20%20%20%20%0A%20%20%20%20%20%20Control%0A%0A%20%20%20%20%20%20com.practicalflash.controls.AnimatedTileList%0A%20%20%20%20%0A%0A%20%20%20%20%0A%20%20%20%20%20%20Source%0A%0A%20%20%20%20%20%20Google%20Code%20Repository%0A%20%20%20%20%0A%20%20%0A%0AThe%20Animated%20Tile%20List%20attempts%20to%20fill%20the%20Visual%20Component%20gap%20left%20by%20Adobe%20in%20their%20current%20TileListRenderer%20structure.%20While%20not%20as%20sophisticated%20%28it%20doesn%27t%20support%20drag%20%26%20drop%2C%20mouse%20commands%2C%20or%20data%20change%20transitions%20for%20instance%29%2C%20it%20nevertheless%20provides%20an%20invalidating%2C%20caching%20tile%20list%20with%20smooth%20selection%20transitions.%0ANotable%20differences%3A%20The%20AnimatedTileList%20does%20not%20poll%20its%20children%20for%20desired%20row%20height%20or%20widths%2C%20but%20calculates%20those%20directly%20off%20of%20the%20numRows%20and%20numColumns%20properties%2C%20setting%20them%20explicitly." title="Digg"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F11%2Fcontrol-animatedtilelist.html&amp;t=Control%3A%20AnimatedTileList" title="Facebook"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F11%2Fcontrol-animatedtilelist.html&amp;title=Control%3A%20AnimatedTileList&amp;annotation=%0A%20%20%0A%20%20%20%20%0A%20%20%20%20%20%20Control%0A%0A%20%20%20%20%20%20com.practicalflash.controls.AnimatedTileList%0A%20%20%20%20%0A%0A%20%20%20%20%0A%20%20%20%20%20%20Source%0A%0A%20%20%20%20%20%20Google%20Code%20Repository%0A%20%20%20%20%0A%20%20%0A%0AThe%20Animated%20Tile%20List%20attempts%20to%20fill%20the%20Visual%20Component%20gap%20left%20by%20Adobe%20in%20their%20current%20TileListRenderer%20structure.%20While%20not%20as%20sophisticated%20%28it%20doesn%27t%20support%20drag%20%26%20drop%2C%20mouse%20commands%2C%20or%20data%20change%20transitions%20for%20instance%29%2C%20it%20nevertheless%20provides%20an%20invalidating%2C%20caching%20tile%20list%20with%20smooth%20selection%20transitions.%0ANotable%20differences%3A%20The%20AnimatedTileList%20does%20not%20poll%20its%20children%20for%20desired%20row%20height%20or%20widths%2C%20but%20calculates%20those%20directly%20off%20of%20the%20numRows%20and%20numColumns%20properties%2C%20setting%20them%20explicitly." title="Google Bookmarks"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F11%2Fcontrol-animatedtilelist.html&amp;title=Control%3A%20AnimatedTileList" title="StumbleUpon"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.krotscheck.net%2F2008%2F10%2F11%2Fcontrol-animatedtilelist.html" title="Technorati"><img src="http://www.krotscheck.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.krotscheck.net/2008/10/11/control-animatedtilelist.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
