<?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>Idealien Studios &#187; Blog</title>
	<atom:link href="http://idealienstudios.com/category/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://idealienstudios.com</link>
	<description>We will turn your dreams into reality together!</description>
	<lastBuildDate>Mon, 19 Jul 2010 05:59:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>WordPress Themes and the GPL – again?</title>
		<link>http://idealienstudios.com/blog/gpl-again/</link>
		<comments>http://idealienstudios.com/blog/gpl-again/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 05:58:30 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=756</guid>
		<description><![CDATA[This issue of theme theft, re-selling  (or conflicting business models and the GPL) comes up every couple months. This obviously sucks, but based on the current WordPress code structure and theme distribution model, there isn't a lot which can be done - it is the nature of the beneficial beast that is working with open source licensing models. It caused me to think outside the box and ponder a different approach to resolve the problem at hand.

In the 2 years since I originally wrote that article, the premium theme industry developed around a number of thriving businesses. Today, most of the theme developers who sell their wares do so entirely under the GPL. The symptoms causing the questions to be raised may have changed, but the important ones still remain:

   1. Can (or will) developers distribute their work under multiple licenses which would respect the source code base license?
   2. What do you do if someone does not respect the license that your product is distributed under?
   3. How will this on-going conversation affect the open-source community surrounding WordPress?
]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-757" title="Secure WordPress Theme" src="http://idealienstudios.com/wp-content/uploads/my002_080222_securetheme-300x224.jpg" alt="" width="300" height="224" /><strong>NOTE:</strong> <em>I originally wrote the bulk of this post circa February 2008 (In fact, I had to go re-load a 2.1 version of WordPress to find it &#8211; how very LiveJournal the admin console was back then) &#8221; The discussion then was whether premium themes exist within the community / ecosystem of WordPress and what to do about theme theft / re-distribution.  Similar question(s) have come up again with the recent <a title="WordPress Themes and the GPL" href="http://markjaquith.wordpress.com/2010/07/17/why-wordpress-themes-are-derivative-of-wordpress/">Thesis / GPL</a> debate and the alternatives I suggest are no less timely now.</em></p>
<p>The <a href="http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins">GPL website FAQ</a> does mostly addresses this concept, &#8220;If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins.&#8221;</p>
<p>Bryan at <a href="http://onemansgoal.com/310/premium-themes-and-digital-copyright-leeching/">One Man’s Goal</a> pondered the issues surrounding digital copyright leeching and the following quotes summarize the (then) prevaling opinions on this situation:</p>
<blockquote>
<div>By designing on a GPL platform…when you release it to the public you are releasing it licensed to everyone not just those who pay for it. Companies like Redhat linux make their money not by charging for the linux o/s which is open source, but by charing for support and tweaking packages that are added to it. That’s why CentOS can directly clone what Redhat Enterprise is and not be touched.</div>
</blockquote>
<blockquote>
<div>The part of themes or plugins which makes them subject to the terms of the GPL is that they use WordPress code hooks to extract data from the WordPress database. While theme designers can SAY that their theme is licensed under some non-GPL model, they have no legal basis to do so. Someone profiting from reselling the work of another is ethically rotten, but in the current legal landscape is technically fair.</div>
</blockquote>
<p>This issue of <a href="http://bloggingexperiment.com/archives/is-blogging-experiment-breaking-the-law.php">theme theft</a>, <a href="http://www.adii.co.za/2008/02/17/pirated-wordpress-themes-get-a-100-theme-for-only-6/">re-selling</a> (or conflicting business models and the GPL) comes up every couple months. This obviously sucks, but based on the current WordPress code structure and theme distribution model, there isn&#8217;t a lot which can be done &#8211; it is the nature of the beneficial beast that is working with open source licensing models. It caused me to think outside the box and ponder a different approach to resolve the problem at hand.</p>
<h2>Distribute separate theme packages with split license</h2>
<ol>
<li><strong>GPL-licensed files which include all references to WordPress logic</strong><br />
This .zip archive would only contain the .php files which make up the theme &#8211; sidebar, header, index, comments, etc. These files would only have integration to css through the id / class names applied to div containers. A blog owner that deploys this package alone will have their content displayed in a reasonable approximation of the theme structure without any styles applied.</li>
<li><strong>Images, javascript and css files licensed under whatever terms the designer wishes</strong><br />
This second .zip file would contain all the elements required to convert that basic structure into the beautiful presentation shown in the theme screenshot / demo. After purchasing this set of files, the user would have to upload these into the theme directory – a process which has been proven simple enough for most blog owners to execute without issue.</li>
</ol>
<h2>What are the benefits?</h2>
<ul>
<li><strong>Separate downloads equals separate licenses</strong><br />
This concept would be viable because of the difference the GPL affords non-dynamically linked plugins. As the visual elements could be used with any system they would not be subject to the terms of the GPL.</li>
<li><strong>Separating form from function</strong><br />
Decoupling the business logic and presentation layer is a best practice which simplifies future development efforts. Developers already recognize the benefit of separating substance and style &#8211; html and css anyone? Automattic made a sound decision to separate blog operations (wp-admin) from custom functionality (plugins) and presentation (themes).</li>
<li><strong>Consistent with standard design processes</strong><br />
Designers usually cut a photoshop file up into images and use a static .html template file to perfect the css with them. The non-gpl .zip file would represent this stage of design. The PHP code which uses WordPress hooks to dynamicize this template would become the GPL-licensed .zip file in effect.</li>
<li><strong>Developing architecture agnostic solutions</strong><br />
With the graphics and css separated from WordPress specific code, your theme is now portable to other open source architectures: Joomla, Drupal or Expression Engine. Whether the premium designer does the work themselves or partners with someone else, they have diversified their potential markets. Including the static .html file(s) you built during the design phase and it could be sold as a generic css template as well.</li>
<li><strong>Multiple premium themes from one template</strong><br />
If the css elements are well-designed it would be easy to create multiple themes from the same template. A fishing blog and could buy incremental series of graphics for ice fishing, fly fishing or bass fishing, or a seasonal treatment to a single outdoor painted scene.</li>
</ul>
<p>I would suggest that the designers be nice, and implement a basic styles.css with the GPL code. Give the user a rough guideline based on sizes of the placeholders for where the graphics would go. Include a link in the comments at the top – which show up in the WordPress theme page – where they can / should download the graphics if they want the full effect of the premium design.</p>
<h2>What are the problems?</h2>
<ul>
<li><strong>A challenge for premium theme galleries?</strong><br />
The dozens of free WordPress theme galleries would not require any change, but any <a href="http://hackwordpress.com/best-premium-wordpress-themes-gallery/">premium theme galleries</a> would. One might argue that since they already have a different download process with credit card collection &#8211; it&#8217;s not like there is a high degree of learned behaviour to overcome so this isn&#8217;t that much of a problem.</li>
<li><strong>Asking users to do more in order to implement a design</strong><br />
The majority of blog owners seem comfortable with the process of downloading to PC, unzipping into the wp-content/themes/ directory, uploading to server and activating, so adding a second download/unzip/upload is another non-issue of sorts I suspect. If this idea takes hold and all premium theme developers begin to adopt this process, eventually users learn that is the expected set of actions required to install a premium theme.</li>
<li><strong>A thief is a thief is a thief!</strong><br />
Not much you can do about someone who has no moral issue with theft. Yet this con becomes a pro by the fact that you now have a legal recourse to sue Mr. Thiefy McStealerton as your original artistic works are not subject to the GPL but to the license you chose to make them available for purchase under.</li>
</ul>
<p>I could only come up with one other option, which was to suggest that designers host the css / graphic files on their own servers and restrict who has access to them. Obviously this puts an external dependancy on blog performance which many would not like, but would give a more significant level of control as the styles.css file and images would be on your server. Perhaps this concept would work for WordPress.com users and the marketplace concept which Automattic has been hinted is coming in the near future.</p>
<p>In the 2 years since I originally wrote that article, the premium theme <em>industry</em> developed around a number of thriving businesses. Today, most of the theme developers who sell their wares do so entirely under the GPL. The symptoms causing the questions to be raised may have changed, but the important ones still remain:</p>
<ol>
<li>Can (or will) developers distribute their work under multiple licenses which would respect the source code base license?</li>
<li>What do you do if someone does not respect the license that your product  is distributed under?</li>
<li>How will this on-going conversation affect the open-source community surrounding WordPress?</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/gpl-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Refactor or Retire? ICE and WordPress 3.0</title>
		<link>http://idealienstudios.com/blog/refactor-or-retire-ice/</link>
		<comments>http://idealienstudios.com/blog/refactor-or-retire-ice/#comments</comments>
		<pubDate>Wed, 05 May 2010 03:04:48 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[ICE]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=735</guid>
		<description><![CDATA[There are many exciting things afoot in the world of WordPress these days. If you&#8217;ve been living under a rock then  custom post types (A really bad name choice BTW &#8211; it&#8217;s a data type of which post, page, attachment are default setup at launch), menu management, Multi-Site all in core of the next release [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/blog_wp30test_customPostType.jpg"><img class="alignleft" title="Custom Post Types in 3.0" src="/wp-content/uploads/blog_wp30test_customPostType-300x211.jpg" alt="" width="300" height="211" /></a>There are many exciting things afoot in the world of WordPress these days. If you&#8217;ve been living under a rock then  <a href="http://codex.wordpress.org/Function_Reference/register_post_type">custom post types</a> (A <strong>really</strong> bad name choice BTW &#8211; it&#8217;s a data type of which post,  page, attachment are default setup at launch), <a href="http://codex.wordpress.org/Function_Reference/wp_nav_menu">menu management</a>, <a href="http://wpengineer.com/wordpress-3-multisite-settings/">Multi-Site</a> all in core of the next release will be news to you. If not, you&#8217;ve already got a beta installation running and loving the new UI elements and functionality.</p>
<p>Here are some of the links that I have found most useful in the last few days of my first cut at custom post type implementation and re-factoring with new features supported in 3.0:</p>
<ul>
<li><a href="# http://wpengineer.com/example-how-to-add-meta-boxes-to-edit-area/">http://wpengineer.com/example-how-to-add-meta-boxes-to-edit-area/</a></li>
<li><a href="http://www.deluxeblogtips.com/2010/04/how-to-create-meta-box-wordpress-post.html">http://www.deluxeblogtips.com/2010/04/how-to-create-meta-box-wordpress-post.html</a></li>
<li><a href="http://www.catswhocode.com/blog/8-useful-code-snippets-to-get-started-with-wordpress-3-0">http://www.catswhocode.com/blog/8-useful-code-snippets-to-get-started-with-wordpress-3-0</a></li>
<li><a href="http://www.catswhocode.com/blog/8-useful-code-snippets-to-get-started-with-wordpress-3-0">http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress</a></li>
<li><a href="http://justintadlock.com/archives/2009/05/06/custom-taxonomies-in-wordpress-28">http://justintadlock.com/archives/2009/05/06/custom-taxonomies-in-wordpress-28</a></li>
<li><a href="http://www.webmaster-source.com/2010/01/08/using-the-wordpress-uploader-in-your-plugin-or-theme/">http://www.webmaster-source.com/2010/01/08/using-the-wordpress-uploader-in-your-plugin-or-theme/</a></li>
<li><a href="http://wpengineer.com/use-more-flexibility-in-wordpress-templates/">http://wpengineer.com/use-more-flexibility-in-wordpress-templates/</a></li>
<li><a href="http://wpstorm.net/2010/04/editor-styles-custom-post-types-wordpress-3-0/">http://wpstorm.net/2010/04/editor-styles-custom-post-types-wordpress-3-0/</a></li>
</ul>
<p>While the big features coming with 3.0 are getting a lot of the words / press, there are quite a few little things that have been improved that are worth mentioning.</p>
<h3>New Installation Screen Updates</h3>
<p><a href="/wp-content/uploads/blog_wp30test_installation1.jpg"><img class="alignright" title="WordPress 3.0 Installation" src="/wp-content/uploads/blog_wp30test_installation1-300x204.jpg" alt="" width="300" height="204" /></a>Without fail the first thing I would do on installation of any WordPress 2.9 or earlier setup would be:</p>
<ul>
<li>Create a new admin account (not named &#8216;admin&#8217;) with a secure password</li>
<li>Re-login as that user and delete the existing &#8216;admin&#8217; user</li>
</ul>
<p>Having the option to provide this as a part of the initial installation is great. It could also reduce the amount of potential site hacks others encounter who never did this in the first place by giving them the username option at install time.</p>
<h3>Header Image Management</h3>
<p><a href="http://idealienstudios.com/wp-content/uploads/blog_wp30test_headerImage1.jpg"><img class="alignright size-medium wp-image-742" title="WordPress Header Image" src="http://idealienstudios.com/wp-content/uploads/blog_wp30test_headerImage1-300x169.jpg" alt="" width="300" height="169" /></a>The new default theme, 2010, looks quite a bit better than Kubrik which was showing its age. While <a title="Wordcast" href="http://wordcast.bitwiremedia.com/2010/05/04/wordcast-conversations-13-wordpress-3-0/">some question the value</a> of theme configuration pages in the admin console, users who want an easy way to tweak the look of their site without touching code will love the header and background image upload capability. I have explored a little of how it has been done (hint: function add_custom_image_header and /wp-admin/custom-background.php) that I can see being useful:</p>
<ul>
<li>Uploading of .pdfs or other attachments into a custom post type where you don&#8217;t want to have the URL defined in the content editor field.</li>
<li>Bringing the featured image into a meta box along with other content type data (instead of a stand-alone meta box)</li>
</ul>
<h3>Idealien Category Enhancements: Refactor or Retire?</h3>
<p><a href="http://wordpress.org/extend/plugins/idealien-category-enhancements/">Idealien  Category Enhancements</a> (ICE) was the first plugin I wrote for WordPress, circa WP 2.5. When I was trying to find a workable solution before committing to writing it, I felt like the ability to connect template files through the admin console should be something that was part of the core of WordPress. The significant updates to 3.0 have raised some interesting questions in my mind:</p>
<ul>
<li>The inclusion of custom post types  has all but eliminated the use cases  where I do make use of ICE in 2.9-. A category-driven approach feels so &#8220;duct tape / McGyver&#8221; when compared to the full-scope solution of custom post types.</li>
<li>The ability to define single-{posttype}.php in a theme based on category was the feature most people who left feedback about the plugin indicated was why they were using it. Replace category with custom post type and you don&#8217;t need a plugin to achieve the same purpose.</li>
<li>Pages with short-codes or Page Templates that use the query_var parameter tied to register_post_type can give an easy way to integrate post types into menus and navigation. You can even control the slug so that a page which acts as container for a post type &#8220;category&#8221; is identical to what the individual post types will use. This was always a challenge with ICE, although some writings on the permalink performance associated with /%postname%/ does make one wonder can vs should questions.</li>
</ul>
<p>There will be a not insignificant amount of re-factoring work to enable any site to take advantage of the new features coming with WordPress 3.0. As I said at the outset, template management should be something that is part of the core of WordPress so I&#8217;m not entirely unsatisfied that this has come to pass. I&#8217;d like to think that my plugin helped influence that decision in the positive direction it has gone. I&#8217;m leaning towards retiring Idealien Category Enhancements as a result,  but would appreciate any comments from those who currently use it and  are looking at their options for 3.0 upgrade process.</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/refactor-or-retire-ice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress is not YET an enterprise-level CMS</title>
		<link>http://idealienstudios.com/blog/wordpress-not-yet-enterprise-level-cms/</link>
		<comments>http://idealienstudios.com/blog/wordpress-not-yet-enterprise-level-cms/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 19:55:26 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=700</guid>
		<description><![CDATA[The question whether "WordPress is a content management system?" has been answered affirmatively in my mind for quite some time. It is a testament to the versatility of WordPress that it could just as easily convert into an eCommerce site, a forum or social network. I explore whether it being an enterprise-level CMS is really that much more of a stretch?]]></description>
			<content:encoded><![CDATA[<p>The question whether &#8220;WordPress is a content management system?&#8221; has been answered affirmatively in my mind for quite some time. If you still have doubts, or want a recent sample of the chatter on the concept, check out <a title="Is WordPress a CMS?" href="http://www.mbjwork.com/2010/04/is-wordpress-a-cms-or-a-blogging-platform-yes/">Is WordPress a CMS or blogging platform on mbjwork.com</a>. One comment from <a href="http://www.scratch99.com/">Stephen Cronin</a> on it inspired me to write a response  to further the conversation down a positive path. He suggests the distinction that, &#8220;WordPress is NOT an enterprise level CMS&#8221;,</p>
<blockquote><p>I would use WordPress to run one of my personal sites. I would not use it to run the websites at work (I lead a government web  team). I generally find that people saying it IS a CMS are people who deal  mainly with small to medium websites, which WordPress is perfect for,  and those saying it’s NOT are dealing with much larger and complex  sites.</p></blockquote>
<p>While this position is debate-able, it is mostly dependant on your definition of the term enterprise and what specific client requirements are involved in a given site. I will cede the point by saying that WordPress is not YET an  enterprise-level CMS that can compete on a feature-by-feature comparison with such high cost platforms as Red Dot, Vignette, Interwoven LiveCycle, etc. These systems often require just as much configuration / customization to implement client-specific elements as a small business site built on WordPress &#8211; only the consultants for these platforms generally charge a higher premium for their specialized &#8220;niche&#8221; knowledge.</p>
<h3>Don&#8217;t look a crazy horse in the mouth</h3>
<p><a href="http://idealienstudios.com/wp-content/uploads/blog_wpcms_mathProof.jpg"><img class="alignright size-medium wp-image-721" title="Mathematical Proof that WP = CMS" src="http://idealienstudios.com/wp-content/uploads/blog_wpcms_mathProof-300x190.jpg" alt="" width="300" height="190" /></a>It wasn&#8217;t that long ago that the answer of whether WordPress was a CMS was a harder position to defend. I gave a presentation in 2008 at Wordcamp Toronto &#8211; <a href="http://wordpress.tv/2009/01/14/wordcamp-toronto-2008-jamie-oastler-on-pushing-wordpress-beyond-blogging/">WordPress: Beyond a Blog</a> &#8211; and mathematically proved that WordPress = CMS. The definitive deliniation came after the <a href="http://wordpress.org/development/2008/10/usability-testing-report-25-and-crazyhorse/">crazyhorse  fiasco</a> and, in my mind, co-incided with  the <a href="http://wordpress.org/about/roadmap/">2.7 release</a> (Dec 10, 2008) for a few reasons:</p>
<ol>
<li>The major UI improvements to the admin  console gave it a more professional (read generic) colour  palette.</li>
<li>Usability improvements enabled access any content area /  type or configuration element via a single click.</li>
<li>Steady improvements on the well-defined plugin / theme / filters / hooks architecture and the 1-click update.</li>
</ol>
<p>Overall these improvements have made the process to create, customize or update  a WP-powered site into a task-scale work effort compared to a project-level one. This is an important distinction given the frequency of releases for WordPress (both a pro and con).  I am quite  excited about the upcoming <a href="http://www.scottberkun.com/blog/2010/the-end-of-the-killer-feature/">killer features</a> of WordPress 3.0 (menu management, custom <span style="text-decoration: line-through;">post</span> data types) that will further make  any questions of its CMS capabilities that much harder, ney  impossible, to refute.</p>
<p><em>To summarize:</em> In a less than 18 months, WordPress has gone from being debateable as  a  CMS in general to being debateable as an enterprise-level CMS. Not bad  for a open source project that has blogging as its core focus <img src='http://idealienstudios.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Especially when compared with  other open  source projects that often struggle to make in-roads into  non-core areas (see Linux desktops in corporate environment). WordPress has grown into a viable COTS (customized off the shelf)  product &#8211; it just happens to sit on a shelf with a price of $0 which is a big  selling point when most other enterprise-level CMS platforms have quite a few  more 0&#8242;s in their sticker price!</p>
<h3>How could WordPress be considered an enterprise-level CMS?</h3>
<p>This is the real question I wanted to address with this post. There are a number of features  / areas of concern I see with the current state of WordPress that prevent it from being seriously pitched or deployed as a corporate business platform. In some cases there are plugins which fill the gaps reasonably well. In others there may be limitations that the blog-centric principles it was founded upon prevent it from solving. In all cases, I want to encourage discussion of these areas to see which are areas worth researching by those who have a passion for the platform or have plugin programming powers in need of a  niche. If you think of functionality I have missed, or plugins which provide the gaps I have identified, please add a comment.</p>
<ul>
<li><strong>Custom Data Types</strong><br />
<span style="text-decoration: line-through;">Plugin of Choice: <a title="More Fields" href="http://wordpress.org/extend/plugins/more-fields/">More Fields</a>, <a title="PODS" href="http://wordpress.org/extend/plugins/pods/">PODS</a></span>, <a title="Custom Data Types" href="http://wpengineer.com/impressions-of-custom-post-type/">WordPress 3.0!<br />
</a>Yes it is possible to train users  to select a strangely titled custom field and populate it, but it is not an elegant solution compared to data entry directly into named fields. Soon,easily configurable custom data capture / presentation will be possible <em>out-of-box</em> with WordPress. This is probably the feature concept I have been most wishing WordPress would add since I started working with it as a CMS.</li>
<li><strong>Backup</strong><br />
<em>Plugin of Choice: <a title="wp-db-backup" href="http://wordpress.org/extend/plugins/wp-db-backup/">WP-DB-Backup</a></em><br />
It is critical to have a reliable, regularly scheduled backup process that is easily re-deployable. The newest line of business added to Automattic, <a title="VaultPress" href="http://vaultpress.com/">VaultPress</a>, offers such a service for those who aren&#8217;t comfortable with web server / database backups. It covers &#8220;your plugins, dashboard, themes, comments, and even your post revisions  are all safeguarded and ready to be restored.&#8221; Perhaps someone could re-use the plugin code  to create a version that enterprises could deploy within their own architecture to leverage their existing hardware spend.</li>
<li><strong>Bilingualisation</strong><br />
<em>Plugin of Choice: </em><a title="qTranslate" href="wordpress.org/extend/plugins/qtranslate/"><cite>qTranslate</cite></a><br />
While the default language of the Internet is english, there are <a href="http://www.internetworldstats.com/stats7.htm">far more people</a> who prefer non-english languages. The support for multiple languages of <a title="WordPress in your language" href="http://codex.wordpress.org/WordPress_in_Your_Language">the admin console</a> is excellent, but content capture and display of multi-language support is still suspect. qTranslate handles the core fields (title, content, excerpt) well, but not custom fields, meta boxes, etc. Hopefully with a robust 3.0 focused upgrade of qTranslate, we might come close to &#8220;fully multi-lingual support&#8221; across all data types.</li>
<li><strong>User / Role Management and Content Control</strong><br />
<em>Plugin of Choice: </em>Justin Tadlock&#8217;s <a title="Members" href="wordpress.org/extend/plugins/members">Members Plugin</a><br />
The default approval concept from contributor / author through editor / administrator fits reasonably well when you have &#8216;anyone can write anything&#8217; environments and editors who have latitude across the entire site. But a corporate environment might have people who only handle specific types of content. 3.0 will greatly simplify the process of isolating such content areas and improve the associated &#8220;data entry screens&#8221;. Further capabilities to define roles, which users have access to them, what they can access becomes more important as the variety of workers who interact with the CMS scales up.</li>
<li><strong>Workflow Management<br />
</strong>Closely related to the roles which users have is how the content approval process happens. Some content only requires single-level approval, others must be blessed by people very far up the corporate ladder before publishing. The addition of this feature should be configurable though off by default to avoid confusifying the &#8220;I write my own blog&#8221; default use case for WordPress. I haven&#8217;t tried or heard of any plugins that have tackled this concept yet, have you?</li>
<li><strong>Content Release Environments</strong><br />
<em>Closest Conceptual Plugin: <a title="WP Hive" href="http://wordpress.org/extend/plugins/wp-hive">WP Hive</a></em><br />
Workflows work when you are dealing with individual content updates, but how do you handle an entire new section, or re-writing a sizeable portion of an existing site? Incremental draft / publish just won&#8217;t cut it. Creating a new instance of a site on an internal server is easy enough (see backups), but merging the changes that occured between the time the copy of  production environment was taken and the new section going live is not.</p>
<p>It would be interesting to see WordPress converted to a <em>repository-driven approach</em> where content gets &#8220;checked-in&#8221; to a central instance and staff can &#8220;cut releases&#8221; to different environments for testing. The low overhead of WP (php / mysql) deployment would make creating new environments a breeze compared to some of the large-scale CMS that have hefty hardware requirements to host.</li>
<li><strong>Lead Generation / Forms</strong><em><br />
Plugin of Choice: <a title="Gravity Forms" href="http://www.gravityforms.com/">Gravity Forms</a></em><br />
The simplicity with which you can use Gravity Forms UI interface to create forms is amazing. They are steadily adding features which, in the hands of great developers, convert WordPress into a complete swiss-army-knife of lead generation or crowd-sourcing content creation. As far as WordPress plugins go, their $199 price tag is steep, but it is well worth it compared to the value it provides. Multi-Step forms with configurable step-logic would be high on my feature request checklist to round out its already impressive functionality.</li>
<li><strong>3rd Party Platform Integration</strong><br />
<em>Closest Conceptual Plugin: <a title="Xavisys" href="http://xavisys.com/xavisys-wordpress-plugin-framework/">Xavisys WordPress Plugin Framework</a></em> or <a title="BackPress" href="http://backpress.org/">BackPress</a><br />
How do you access and display pricing data from a legacy product database? Or information from a 3rd party supplier API? Can you syncronize customer info from an existing LDAP or Salesforce with WordPress? Each enterprise would have a unique set of requirements to consider the complexity of integrating during the concept initiation phase. Having shared knowledge resources that demonstrate best practices would be invaluable to know what is / is not possible. Or if you have something larger in scope to work with, you might consider BackPress which is starting to sound like a robust way to develop with the principles of WordPress as a framework to start from.</li>
</ul>
<h3>Where to draw the line?</h3>
<p>I thought about including functionality most enterprise sites would leverage &#8211; event calendars, payment engines, product shopping carts, etc &#8211; but stopped as that was starting to blur the line  between CMS and web application. It is a testament to the versatility of WordPress that it could just as easily convert into or add-on functionality of an <a title="ShopPlugin" href="http://shopplugin.net/">eCommerce system</a>, a <a title="bbPress" href="http://bbpress.org/">forum</a> or <a title="BuddyPress" href="http://buddypress.org/">social  network</a>. With that in mind I ask you, Is enterprise-level CMS really that much more of an  ambitious stretch?</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress-not-yet-enterprise-level-cms/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Solving a custom field query quandry</title>
		<link>http://idealienstudios.com/blog/wordpress/custom-field-query-quandry/</link>
		<comments>http://idealienstudios.com/blog/wordpress/custom-field-query-quandry/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 01:30:14 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=678</guid>
		<description><![CDATA[Storing the details of a rideshare offer / request lends itself well to custom fields, especially when <a href="http://wordpress.org/extend/plugins/more-fields/">More Fields</a> is used for data capture. I found a solution to a complex display challenge: How to display a set of posts based on multiple custom field values? This post demonstrates get_post_meta_multiple, a function you could include in your theme to allow you to filter based on an infinite number of custom field key / value pairs.]]></description>
			<content:encoded><![CDATA[<h3>How to filter for multiple custom field key / values</h3>
<p><div id="attachment_665" class="wp-caption alignright" style="width: 194px"><img class="size-medium wp-image-665" title="Custom Fields w/ More Fields" src="http://idealienstudios.com/wp-content/uploads/blog_09july_rideshare-184x300.jpg" alt="Rideshare Custom Fields captured via More Fields" width="184" height="300" /><p class="wp-caption-text">Rideshare Custom Fields captured via More Fields</p></div>
<p>As I mentioned at the end of my last post on the Power of Custom Fields, I recently started working on a prototype site that required rideshare board functionality. Storing the details lends itself well to custom fields, especially when <a href="http://wordpress.org/extend/plugins/more-fields/">More Fields</a> is used for data capture as you can see from the inset image. However, I struggled to find a solution within WordPress to solve a display challenge: How to display a set of posts based on multiple custom field values? In my case, how to loop through rideshares base on event and ride-givers or ride-wanters.</p>
<p>I explored looping through each post in my rideshare category to match the rideshare event to an array value and then using get_post_meta within to see if results belonged to the ride-giver or ride-wanter. While this might have worked, it certainly wouldn&#8217;t be an elegant &#8211; or Idealien solution. Dan Butcher did provide a functional solution in the <a href="http://wordpress.org/support/topic/161154">WordPress Support Forums</a> for a similar challenge, but it is not a solution a novice / intermediate WordPress developer would be comfortable customizing, nor would it scale well. Barry @ <a href="http://clearskys.net/">clearskys.net</a> informed me that,</p>
<blockquote><p>Whilst the JOINS work, and will work quite well with a few meta-data criteria passed in, I&#8217;ve had problems (particularly on shared hosting) in the past when creating an SQL query to search based on a series of tags which used a similar method.</p></blockquote>
<h3>Introducing get_post_meta_multiple</h3>
<p>This function I created, with sql optomization support from Barry @ <a href="http://clearskys.net/">clearskys.net</a>:</p>
<ul>
<li>accepts a variable length array of custom field key/value pairs</li>
<li>returns a list of post IDs which you can loop through</li>
<li>Could be implemented into your site in one of 3 ways: Added to a functions.php file as a part of your theme, included in a plugin related to enhanced custom field functionality or <a href="http://codex.wordpress.org/Submitting_Bugs">report a (feature request) bug</a> for a more evolved version of it be included in a future release of the core of WordPress.</li>
</ul>
<p>The demonstration code below has been prepared for the most common scenario as part of a functions.php file in a theme.</p>
<h3>The Demonstration</h3>
<p><img src="http://idealienstudios.com/wp-content/uploads/blog_09july_rideshare2.jpg" alt="Custom Field Table" title="Custom Field Table" width="500" height="138" class="alignnone size-full wp-image-687" /><br />
A series of tables with columns for number of seats available, departure / return dates plus contact / additional info. I have kept the code below intentionally short so the example doesn&#8217;t overwhelm. I have posted a <a href="http://pastebin.com/m4fafcb59">more complete version</a> on pastebin that has the markup to match the image above.</p>
<h3>The function</h3>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> get_post_meta_multiple<span style="color: #009900;">&#40;</span><span style="color: #000088;">$metaDataList</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$querystr</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT p.* FROM <span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span> AS p WHERE p.ID IN ( &quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$querystr</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;SELECT post_id FROM <span style="color: #006699; font-weight: bold;">$wpdb-&gt;postmeta</span> WHERE &quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$innerqry</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$metaDataList</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$innerqry</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prepare</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;(meta_key = <span style="color: #009933; font-weight: bold;">%s</span> AND meta_value = <span style="color: #009933; font-weight: bold;">%s</span>)&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #000088;">$value</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000088;">$querystr</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; OR &quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$innerqry</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$querystr</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot; GROUP BY post_id &quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$querystr</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;HAVING count(*) = &quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$metaDataList</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$querystr</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;) AND p.post_status = 'publish' &quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$metaResults</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_results</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$querystr</span><span style="color: #339933;">,</span> OBJECT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>					
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$metaResults</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h3>Example Usage</h3>
<p>Place this inside your category.php or whatever template file you are using to display the results from.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #666666; font-style: italic;">//Create your array of custom field key / values to filter to</span>
	<span style="color: #000088;">$metaDataList</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #0000ff;">'rideshare_event'</span>	<span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Ottawa Blues Fest'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'rideshare_type'</span>	<span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Driver'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
	<span style="color: #000088;">$resultList</span> <span style="color: #339933;">=</span> get_post_meta_multiple<span style="color: #009900;">&#40;</span><span style="color: #000088;">$metaDataList</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$resultList</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span>
	<span style="color: #666666; font-style: italic;">//Loop through each result post to display appropriate contents</span>
	<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$resultList</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$post</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span>
		setup_postdata<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Define your custom field key</span>
		<span style="color: #000088;">$key</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;rideshare_spaces&quot;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Display value of custom field		</span>
		<span style="color: #b1b100;">echo</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   	<span style="color: #b1b100;">endforeach</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">else</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;p&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> _e<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'No rides are currently available for this event.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/p&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<h3>The future of the function?</h3>
<p>Once I have finished the prototype site that started this concept, I will attempt to package up the pieces in a more manageable method to share for wider use. In the interim, feel free to use and share in whatever ways are most convenience for you. Much like WordPress as a whole, I think this idea can continue to evolve in some great ways that will make it easier for designers, developers and clients to build / use sites based on it. Please link back to this post as you do so that I can keep tabs on how this idea evolves.</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/custom-field-query-quandry/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Power of Custom Fields</title>
		<link>http://idealienstudios.com/blog/wordpress/power-of-custom-fields/</link>
		<comments>http://idealienstudios.com/blog/wordpress/power-of-custom-fields/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 01:29:34 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=652</guid>
		<description><![CDATA[Custom Fields are the way of enabling authors to store meta-data against an individual post / page in Wordpress. If you are doing more than just basic data storage / display with custom fields in Wordpress, the list of links in this post will be of great interest to you.]]></description>
			<content:encoded><![CDATA[<p>Custom Fields are the way of enabling authors to store meta-data against an individual post / page in WordPress. The Codex describes some <a href="http://codex.wordpress.org/Using_Custom_Fields">basic uses for this meta data</a> such as displaying your current mood, weather, or listening habits, etc. Compared to other parts of the posting process, custom fields have received very little active development. I&#8217;ve been using them since WP 2.3 and can&#8217;t recall much aside from UI improvements that kept it consistent with the rest of the updates in 2.5 / 2.7. However, many people have begun to explore significant ways to enhance the CMS capabilities of WordPress through the functionality that custom fields do offer.</p>
<h3>Learn to love get_post_meta</h3>
<p>The <a href="http://codex.wordpress.org/Function_Reference/get_post_meta">get_post_meta</a> function is a function you will come to know and love when working with custom fields in WordPress. It is used within the loop to present the value based on the name of the custom field.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$key</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;rideshare_name&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<h3>Beyond the basics</h3>
<p>If you are doing more than just basic data storage / display with custom fields, the following links / examples will be of interest to you:</p>
<ul>
<li><a href="http://webdesignernotebook.com/wordpress/wordpress-how-to-display-multiple-values-of-a-custom-field-key/">Web Designer Notebook</a> covers how to display multiple values for the same custom field name. This might be useful to display a list of ingredients for a recipe site or the parts needed for a set of DIY instructions.</li>
<li><a href="http://www.tutorial9.net/web-tutorials/add-thumbnails-to-wordpress-with-custom-fields/">Tutorial9</a> has a great tutorial on the many different ways to use custom fields for storing images to represent a post. After uploading the photo, you store the filename of a full-size or thumbnail photo in a custom field and use get_post_meta to extract / display in the appropriate theme file locations.</li>
<li><a href="http://www.cagintranet.com/archive/wordpress-tip-3-awesome-custom-field-tricks/">Cagintranet</a> has 3 custom field tricks that operate per post: custom read more tags, thumbnails of related posts and post-specific css overrides.</li>
<li><a href="http://www.livexp.net/wordpress/get-wordpress-custom-fields-outside-the-loop.html">LiveXP</a> shows how to get custom fields outside the loop. If creating a theme options page is beyond your skill, you can create a private page and store / retrieve the meta values from custom fields attached to that page wherever you need to.</li>
<li>Two Words: <a href="http://wordpress.org/extend/plugins/more-fields/">More Fields</a>. This plugin enables you to create custom write panels with custom field data types (radio buttons, drop-down, textbox, wysiwyg, etc). My most recent screencast gives a good overview of using More Fields to design a <a href="http://idealienstudios.com/blog/wordpress/template-retail-locations/">store location list</a> using the plugin.</li>
<li><em>Sidetrack Suggestion</em>: I can easily see (and hope that) the type of functionality More Fields has explored gets built into the core as a part of the post-types being considered for 3.0. With the drag-drop interface of the widgets management area applied to the design of write panels, this would be a fantastic feature of a future version of WordPress.</li>
<li><a href="http://justintadlock.com/tags/custom-fields">Justin Tadlock</a> has written immensely on the power of custom fields. If you want a crash course in custom fields, his site is a great place to start.</li>
<li><a href="http://www.smashingmagazine.com/2009/06/10/10-useful-wordpress-loop-hacks/">Smashing Magazine</a> shows how to get posts with a specific custom field and specific value as one of their 10 useful WordPress Loop hacks. This is invaluable when capturing data that you want to filter for in query loops.</li>
</ul>
<p>What actually inspired me to write this post was my recent efforts to build an elegant solution to a query quandry I was having related to custom fields &#8211; <a href="/blog/wordpress/custom-field-query-quandry/">How to filter / query for multiple custom field key / values</a>? The solution is one that could be of interest to theme / framework designers, plugin developers or possibly even the base concept for implementation into the core of advanced custom field functions WordPress.</p>
<p>If you have any other great custom field tutorials, please share them in the comments of this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/power-of-custom-fields/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Template &#8211; Retail Locations</title>
		<link>http://idealienstudios.com/blog/wordpress/template-retail-locations/</link>
		<comments>http://idealienstudios.com/blog/wordpress/template-retail-locations/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 13:36:06 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[ICE]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=647</guid>
		<description><![CDATA[Learn how to capture and display custom fields in a template using <a title="More Fields" href="http://wordpress.org/extend/plugins/more-fields/">More Fields</a>, a plugin that "enables you to define post types, which are custom Write/Edit pages that contains a pre-defined set of boxes"]]></description>
			<content:encoded><![CDATA[<div id="attachment_648" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-648" title="Retail Locations" src="http://idealienstudios.com/wp-content/uploads/projects_ice_09july9_retail-300x200.jpg" alt="Capture and display custom data types" width="300" height="200" /><p class="wp-caption-text">Capture and display custom data types using ICE and More Fields</p></div>
<p>Building on the concept of category templates which I started with the <a title="FAQ template tutorial" href="http://idealienstudios.com/projects/ice/template-demo-faq/">FAQ template tutorial</a> last week, this tutorial will cover how to capture and display custom fields in a template. What&#8217;s more, I&#8217;ll go through the step-by-step process of how to implement this using <a title="More Fields" href="http://wordpress.org/extend/plugins/more-fields/">More Fields</a> which is a plugin that &#8220;enables you to define post types, which are custom Write/Edit pages that contains a pre-defined set of boxes&#8221; that store their data behind the scenes in custom fields. The concepts from this tutorial will be of interest for anyone who:</p>
<ul>
<li>Has multiple categories of blog content with unique data to capture / present. Thumbnail per post, photo of the day or other customized items.</li>
<li>Uses WordPress as a CMS for unique page data types (event calendar, classified ads, business partners, etc)</li>
<li>Finds the selection of custom fields from a drop-down to not be the best user interface experience for capturing structured data.</li>
</ul>
<p><object width="590" height="346"><param name="movie" value="http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/flvplayer.swf"></param><param name="quality" value="high"></param><param name="bgcolor" value="#FFFFFF"></param><param name="flashVars" value="thumb=http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/FirstFrame.jpg&#038;containerwidth=590&#038;containerheight=346&#038;content=http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/ICEMoreFields.mp4"></param><param name="allowFullScreen" value="true"></param><param name="scale" value="showall"></param><param name="allowScriptAccess" value="always"></param><param name="base" value="http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/"></param>  <embed src="http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/flvplayer.swf" quality="high" bgcolor="#FFFFFF" width="590" height="346" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/FirstFrame.jpg&#038;containerwidth=590&#038;containerheight=346&#038;content=http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/ICEMoreFields.mp4" allowFullScreen="true" base="http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/" scale="showall"></embed></object></p>
<p>Direct Video Link:<a href="http://www.screencast.com/t/2dcpYsSlk">http://www.screencast.com/t/2dcpYsSlk</a></p>
<h2>Example Code</h2>
<p>The only real code in this template that is unique is the retrieval of data from a <a href="http://codex.wordpress.org/Using_Custom_Fields">custom field</a> using the <a href="http://codex.wordpress.org/Function_Reference/get_post_meta">get_post_meta</a> function.</p>
<p><strong>A single custom field retrieval</strong><br />
Place this example within the loop of an existing category / post template.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$locationPhone</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'locationPhone'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationPhone</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;div class=&quot;locationInfo&quot;&gt;
		&lt;h4&gt;Phone Number&lt;/h4&gt;
		<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span>  <span style="color: #000088;">$locationPhone</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;/div&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p><strong>Full retail location fields</strong><br />
This example is the full loop for use within a category.php file to display the contents of custom fields named: location</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span>have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
	&lt;h2&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/h2&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_content<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
&nbsp;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$locationAddress</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'locationAddress'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationAddress</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;div class=&quot;locationInfo&quot;&gt;
			&lt;h4&gt;Address&lt;/h4&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$locationMapURL</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'locationMapURL'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationMapURL</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">echo</span>  <span style="color: #0000ff;">&quot;&lt;a href='&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$locationMapURL</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;'&gt;&quot;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span>  <span style="color: #000088;">$locationAddress</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationMapURL</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;/a&gt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;/div&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
&nbsp;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$locationPhone</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'locationPhone'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationPhone</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;div class=&quot;locationInfo&quot;&gt;
			&lt;h4&gt;Phone Number&lt;/h4&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span>  <span style="color: #000088;">$locationPhone</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;/div&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
	&lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
&nbsp;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$locationHours</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'locationHours'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationHours</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;div class=&quot;locationInfo&quot;&gt;
			&lt;h4&gt;Business Hours&lt;/h4&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span>  <span style="color: #000088;">$locationHours</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;/div&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$locationWebsite</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'locationWebsite'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationWebsite</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;div class=&quot;locationInfo&quot;&gt;
			&lt;h4&gt;Website&lt;/h4&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span>  <span style="color: #0000ff;">&quot;&lt;a href='&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$locationWebsite</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;'&gt;&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$locationWebsite</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;/a&gt;&quot;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;/div&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
	&lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
&nbsp;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">else</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
	&lt;p&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> _e<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Sorry, no posts matched your criteria.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/p&gt;
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/template-retail-locations/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress Developer Pub Night</title>
		<link>http://idealienstudios.com/blog/wordpress/1st-wp-developer-pub-night/</link>
		<comments>http://idealienstudios.com/blog/wordpress/1st-wp-developer-pub-night/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 14:53:43 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=642</guid>
		<description><![CDATA[Tuesday July 7th, 2009 will be the first <a href="http://ottawadevelopers.wordpress.com/2009/07/03/pub-night-july-7th-2009/">Ottawa WordPress Developers Pub Night</a>. Location and time are subject to interest from the community. Current theory is a start time of 8pm at Shoeless Joe’s at 3049 Carling Ave which has cheap wing night on Tues and very nice booths.

The two best ways to let them know you're interested in attending are either post a comment on their blog or follow and tweet to them on Twitter - <a href="http://www.twitter.com/wdgo">@wdgo</a>. I know there are more than a few people in Ottawa who use Wordpress for great things including myself. I look forward to meeting them for a few pints to talk about what we would all like to give / get from a community developer group for our platform of choice.]]></description>
			<content:encoded><![CDATA[<p>Courtesy of the <a href="http://ottawadevelopers.wordpress.com">Ottawa WordPress Developers Group</a>:</p>
<blockquote><p>Tuesday July 7th, 2009 will be the first <a href="http://ottawadevelopers.wordpress.com/2009/07/03/pub-night-july-7th-2009/">Ottawa WordPress Developers Pub Night</a>. Location and time are subject to interest from the community. Current theory is a start time of 8pm at Shoeless Joe’s at 3049 Carling Ave which has cheap wing night on Tues and very nice booths.</p></blockquote>
<p>The two best ways to let them know you&#8217;re interested in attending are either post a comment on their blog or follow and tweet to them on Twitter &#8211; <a href="http://www.twitter.com/wdgo">@wdgo</a>. I know there are more than a few people in Ottawa who use WordPress for great things including myself. I look forward to meeting them for a few pints to talk about what we would all like to give / get from a community developer group for our platform of choice.</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/1st-wp-developer-pub-night/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Getting social with Virtual Eyesee – Part 3</title>
		<link>http://idealienstudios.com/blog/social-media/getting-social-part-3/</link>
		<comments>http://idealienstudios.com/blog/social-media/getting-social-part-3/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 21:21:16 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Social Media]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=571</guid>
		<description><![CDATA[In the third and final part of an interview with Natasha, we discuss ways the Canadian government has / can / should invest in the concepts and technologies of Social Media over the next 12 - 18 months.
]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-509" title="Getting Social With Virtual Eyesee" src="http://idealienstudios.com/wp-content/uploads/blog_virtualeyesee_lead-300x133.jpg" alt="Getting Social With Virtual Eyesee" width="300" height="133" />This is part 3 of a 3-part interview with Natasha D&#8217;Souza, founder of Virtual EyeSee one of the up-and-coming social media strategy companies in Ottawa. If you haven&#8217;t already, check out parts 1 (<a title="Social Media &amp; The Economy" href="http://idealienstudios.com/blog/social-media/getting-social-part-1/">Social media and the economy</a>) and 2 (<a title="Understanding social media relationships" href="/blog/social-media/getting-social-part-2/">Understanding social media relationships</a>).</p>
<p><strong>Jamie:</strong><br />
<em>There are a number of projects (<a title="GovLoop&gt;govloop.com&lt;/a&gt;, &lt;a href=" href=" mce_href=">changecamp.ca</a>, <a title="digitalgov" href="http://digitalgov.ca/">digitalgov.ca</a>) in the nascent stages of development which seek to have a more transparent and accessible government with a particular focus on open source and social media technologies. How would you like to see the Canadian government invest in these concepts and technologies over the next 12 &#8211; 18 months?</em></p>
<p><strong>Natasha:</strong><br />
Recent market research indicated that the place where people spend a lot of their time online are Microsoft, Google and Facebook. In order for any organization, government or otherwise, to get their message across to their audience, they have to participate in the discussions in these places.</p>
<p>In the next 12-18 months the Canadian government needs to think about what they want to do and then figure out the various social media tools that they could use to achieve these goals. They will have to make the shift form pushing the message out to participating in the discussion. So bottom line is not to block these sites at work but make them accessible to all employees.</p>
<p><strong>Jamie:</strong><br />
I agree there is a positive value in having all levels of government (or an organization) having access to these tools. However, there is also a potential for lost productivity or negative exposure if individuals aren&#8217;t mindful of the impact their actions have on the larger community. Regardless of whether they ban access to these tools or not, they should recognize that they can no longer expect to control the flow of information as they have done in the past with traditional media.</p>
<p>It used to be a reasonable expectation for the bulk of communications to be delivered from a public relations / marketing department (read: in a consistent &#8220;on-message&#8221; manner). Today, with cell phone cameras <em>everywhere</em> and the potential for videos to go viral, everyone must remember that anything can be captured and distributed to everyone / everywhere almost instantaneously. What once might have been a candid remark by a politician to score points with a particular demographic, can now be captured and repurposed as an attack ad against every other demographic. Everyone should always remember that the second you hit send or publish, that content has been released onto the internet &#8211; forever.</p>
<p>A big thanks to Natasha for taking the time to contribute. If your organization is interested in learning more about how to tap the positive powers of social media, you should get in touch with her through <a title="Virtual Eye See" href="http://www.virtualeyesee.com/services/training.html">Virtual Eye See</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/social-media/getting-social-part-3/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>I will never try to build a perfect website again!</title>
		<link>http://idealienstudios.com/blog/theprocess/build-a-perfect-website/</link>
		<comments>http://idealienstudios.com/blog/theprocess/build-a-perfect-website/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 12:17:45 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Process]]></category>
		<category><![CDATA[thematic]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=525</guid>
		<description><![CDATA[In exploring the approach to development I had for my own website, I recognized that I was serially redesigning it and proverbially spinning my wheels. The unfortunate part of this vicious cycle is that it was all manufactured by me - the site, the content and perception that the obstacles were insurmountable. So last weekend I decided to leverage what I could from my existing efforts (css, images, javascript) and start fresh building on top of a strong theme framework base - Thematic. I did so with a new approach to the design, development and writing for the site. In this post, I explain why for my own personal sites / projects I have come to the conclusion that <strong>I will never try to build a perfect website again.</strong>

]]></description>
			<content:encoded><![CDATA[<div id="attachment_526" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-526" title="Newly refreshed Idealien Studios landing page" src="http://idealienstudios.com/wp-content/uploads/blog_09june_themeupdate-300x160.jpg" alt="blog_09june_themeupdate" width="300" height="160" /><p class="wp-caption-text">A newly refreshed Idealien Studios landing page full of featured content goodness.</p></div>
<p>In one of my most recent updates, I noted that &#8220;&#8230;it has been almost 4 months since I made an update to this blog.&#8221; A large part of that was being overwhelmed with work and significant amounts of wonderful chaotic change happening in my life during that time period. During the limited free time I did have available, it was a struggle to want to do <em>more of the same</em> in designing / developing my own website.</p>
<p>This lead to the formation of a very bad logic loop that I let myself get trapped into. As best I can describe it, I felt that:</p>
<ul>
<li>I did not have large blocks of time to work on the design of my website.</li>
<li>I was not satisfied with how the website looked.</li>
<li>I did not want to write content for a site that did not look fantastic.</li>
<li>I had other things that I could be doing instead of writing / coding.</li>
<li>The freelance career isn&#8217;t going where I wanted it, so why bother?</li>
</ul>
<p>The unfortunate part of this vicious cycle is that it was all manufactured by me &#8211; the site, the content and the perception that the obstacles were insurmountable. I had been what I can only call <em>serially redeveloping</em> the theme for this site for the better part of 4 months and it was beginning to take it&#8217;s toll on my psyche.</p>
<blockquote><p>I *could* limp to the finish line with my current theme design &#8211; but as a learning experience I think I&#8217;ll start from scratch on a framework.<a class="alignright clear" href="http://twitter.com/Idealien/status/1965502901">Idealien Twitter from May 29th</a></p></blockquote>
<p>So last weekend I decided to leverage what I could from my existing efforts (css, images, javascript) and start fresh building on top of a strong theme framework base &#8211; <a href="http://wordpress.org/extend/themes/thematic">Thematic</a>. I also did so with a new approach to the design, development and writing for the site:</p>
<ul>
<li>It is unrealistic to expect to produce a perfect site in one shot.</li>
<li>Understand that none of the challenges I face are insurmountable.</li>
<li><a title="Just keep swimming" href="http://www.youtube.com/watch?v=CmyUkm2qlhA">Just keep swimming</a>!</li>
<li>How can I make positive improvements to the site in 15 &#8211; 30 minute blocks?</li>
<li>Use draft status for posts until they&#8217;re ready- it&#8217;s why it exists.</li>
<li>Incremental development is far better than no development at all.</li>
</ul>
<p>While there are some things about Thematic  that I don&#8217;t care for, particularily it&#8217;s approach to sidebars, it does a lot of things very well. The results have been positive progress on my site almost each day this past week and increased confidence that I can make things happen bit by bit. I&#8217;m planning some smaller posts that cover the plugins / process I used to achieve the different functional elements of the site. Those posts will actually be driving me to add more functionality (code highlighting, lightbox galleries, recommended readings via google reader and more). After all, if my freelance career isn&#8217;t going where I want it to, I only have myself to blame. I&#8217;ll save the description of my new direction for Idealien Studios for another post.</p>
<p>Much like teaching your children, I am falling back on the &#8220;Do as I say, not as I do&#8221; concept. I would obviously not recommend / use this approach to development for a client-site where the occasional breaking of things in order to fix them or display of debug comments in a production environment would be an aggregious error. But for my own process / projects, I have come to the conclusion that I will never try to build a perfect website again.</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/theprocess/build-a-perfect-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting social with Virtual Eyesee &#8211; Part 2</title>
		<link>http://idealienstudios.com/blog/social-media/getting-social-part-2/</link>
		<comments>http://idealienstudios.com/blog/social-media/getting-social-part-2/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 11:50:18 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Social Media]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[job hunting]]></category>
		<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[organizations]]></category>
		<category><![CDATA[Virtual EyeSee]]></category>
		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=515</guid>
		<description><![CDATA[In the second part of an interview with Natasha, we discuss examples of companies using social media effectively and how individuals can do the same to boost their own career.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-509" title="Getting Social With Virtual Eyesee" src="http://idealienstudios.com/wp-content/uploads/blog_virtualeyesee_lead-300x133.jpg" alt="Getting Social With Virtual Eyesee" width="300" height="133" />This is part 2 of a 3-part interview with Natasha D&#8217;Souza, founder of Virtual EyeSee one of the up-and-coming social media strategy companies in Ottawa. If you haven&#8217;t already, check out part 1 &#8211; <a title="Social Media &amp; The Economy" href="http://idealienstudios.com/blog/social-media/getting-social-part-1/">Social media and the economy</a>.</p>
<p><strong>Jamie:</strong><br />
<em>What are some examples where companies have used social media effectively to promote a particular product or strengthen their relationship with customers?</em></p>
<p><strong>Natasha:</strong><br />
Facebook is an excellent example.  They recently changed their terms of service and a lot of their customers were very upset about it.  They listened and reverted to their old policy and are now taking the feedback into account.</p>
<p><strong>Jamie:</strong><br />
<em>One of the first ways that corporations typically get exposed to the benefits of social media is to Google or scan a Facebook profile as part of diligence of evaluating potential employees. Unfortunately, that focuses on the negative aspects of peoples&#8217; willingness to put &#8220;everything&#8221; online. How can someone looking to get hired by certain employers use social media to position themselves ahead of the pack?</em></p>
<p><strong>Natasha:</strong><br />
The employee first has to figure out their target market so to speak. Then find the appropriate social media places that these target markets participate in.  For example having a presence on <a href="http://www.linkedin.com/profile?viewProfile=&amp;key=13000583&amp;locale=en_US&amp;trk=tab_pro">LinkedIn</a> with the relevant experience highlighted on their profile. Not just the past job they had but every career experience they have had that is relevant to the job they are pursuing.  Participate in the conversations happening on LinkedIn regarding their industry.</p>
<p>Next would be to be up to date on industry Blogs and participate in the conversations happening there. If they have extra time they could also start their own Blog to establish themselves as a thought leader in the field. On Facebook for example, join various groups both professional, hobbies, charities etc. Again participate in these discussions or initiate some. Set up a You Tube Channel and broadcast a regular program on their industry, thoughts on the trends in that space, new developments etc..</p>
<p>The possibilities are endless.</p>
<p><strong>Jamie:</strong><br />
They truly are. From a design / developer stand-point there are a lot of other activities that one can do to get themselves noticed or help build their personal brand recognition:</p>
<ul>
<li>Contribute to an open source project &#8211; either directly to the core or with most platforms offering extensible widget, plugin or theme concepts by distributing your own item.</li>
<li>Building a stand alone tool / product that fulfills an area of need for yourself. Chances are there are others who would benefit from it and it helps you keep your skills sharp if you are unemployed.</li>
<li><a href="http://buildinternet.com/2009/06/the-value-of-practical-personal-projects/">Build Internet</a> recently highlighted the value of practical personal projects, &#8220;represent a way to try new things, but focused on something practical&#8230;Besides job hunting, you could also turn some of these into side profits if it fits the nature of the piece.&#8221;</li>
</ul>
<p>There will be one more post in this series on Friday which looks towards how government can / should / needs to get on the social media bandwagon.</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/social-media/getting-social-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
