<?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>Roman @ TAO</title>
	<atom:link href="http://roman.tao.at/feed/" rel="self" type="application/rss+xml" />
	<link>http://roman.tao.at</link>
	<description>it works!</description>
	<lastBuildDate>Fri, 27 Apr 2012 13:50:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zerg Rush</title>
		<link>http://roman.tao.at/uncategorized/zerg-rush/</link>
		<comments>http://roman.tao.at/uncategorized/zerg-rush/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 13:50:18 +0000</pubDate>
		<dc:creator>TAO</dc:creator>
				<category><![CDATA[Article]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=522</guid>
		<description><![CDATA[Google revives old Starcraft memories HERE
]]></description>
			<content:encoded><![CDATA[<p>Google revives old Starcraft memories <a href="https://www.google.at/search?hl=en&amp;client=firefox-a&amp;hs=gdl&amp;rls=org.mozilla:de%3Aofficial&amp;sclient=psy-ab&amp;q=zerg+rush&amp;oq=zerg+rush&amp;aq=f&amp;aqi=g-z1g-s2g1&amp;aql=&amp;gs_nf=1&amp;gs_l=serp.3..0i3j0i10l2j0.4511.4511.0.5630.1.1.0.0.0.0.161.161.0j1.1.0.Ilc_p5HYNlw&amp;pbx=1&amp;bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&amp;biw=1920&amp;bih=936">HERE</a></p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/uncategorized/zerg-rush/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQueryUI nested Sortable still bugs out on Internet Explorer &#8211; easy to fix</title>
		<link>http://roman.tao.at/dev/jqueryui-nested-sortable-still-bugs-out-on-internet-explorer-easy-to-fix/</link>
		<comments>http://roman.tao.at/dev/jqueryui-nested-sortable-still-bugs-out-on-internet-explorer-easy-to-fix/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 12:27:08 +0000</pubDate>
		<dc:creator>TAO</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=520</guid>
		<description><![CDATA[Using jQueryUI&#8217;s nested Sortables again I was surprised to see, that a rather stupid ie bug still exists for ie8+.  In essence, dragging some nested Elements also starts dragging the parent Elements. In most cases this can be fixed quite easily unsing this piece of code from Stackoverflow.
http://stackoverflow.com/questions/1789169/jquery-unexpected-sortable-behaviour/1789775#1789775
Still i would suggest wrapping the code [...]]]></description>
			<content:encoded><![CDATA[<p>Using jQueryUI&#8217;s nested Sortables again I was surprised to see, that a rather stupid ie bug still exists for ie8+.  In essence, dragging some nested Elements also starts dragging the parent Elements. In most cases this can be fixed quite easily unsing this piece of code from Stackoverflow.</p>
<p>http://stackoverflow.com/questions/1789169/jquery-unexpected-sortable-behaviour/1789775#1789775</p>
<p>Still i would suggest wrapping the code with <code>if( $.browser.msie ) { }</code> because the fix is not needed on other browsers. Mind you that <code>$.browser</code> is deprecated.</p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/dev/jqueryui-nested-sortable-still-bugs-out-on-internet-explorer-easy-to-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress: qTranslate and Shopp Plugin II</title>
		<link>http://roman.tao.at/dev/wordpress/wordpress-qtranslate-and-shopp-plugin-ii/</link>
		<comments>http://roman.tao.at/dev/wordpress/wordpress-qtranslate-and-shopp-plugin-ii/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 16:06:13 +0000</pubDate>
		<dc:creator>TAO</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=517</guid>
		<description><![CDATA[Just a quick reminder: Shopp Plugin and qTranslate don&#8217;t play nice when it comes to Pretty Links / Permalinks. In this case the root of all evil seems to be Wordpress  because with a typical setup bloginfo('url') displays http://mydomain.com/en i.e. the correct qTranslate URL, but get_bloginfo('url') returns http://mydomain.com.
One possible fix includes hacking shoppurl in [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick reminder: Shopp Plugin and qTranslate don&#8217;t play nice when it comes to Pretty Links / Permalinks. In this case the root of all evil seems to be Wordpress  because with a typical setup <code>bloginfo('url')</code> displays http://mydomain.com/en i.e. the correct qTranslate URL, but <code>get_bloginfo('url')</code> returns http://mydomain.com.</p>
<p>One possible fix includes hacking shoppurl in the functions.php file of the Shopp plugin &#8211; simply replace <code>get_bloginfo('url')</code> with <code>get_bloginfo('url', 'display')</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/dev/wordpress/wordpress-qtranslate-and-shopp-plugin-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress: qTranslate and Shopp Plugin</title>
		<link>http://roman.tao.at/dev/wordpress/wordpress-qtranslate-and-shopp-plugin/</link>
		<comments>http://roman.tao.at/dev/wordpress/wordpress-qtranslate-and-shopp-plugin/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 13:26:54 +0000</pubDate>
		<dc:creator>TAO</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=513</guid>
		<description><![CDATA[qTranslate is a lets say sufficient free plugin that enables multilingual wordpress setups. For a free plugin it is really feature rich, but when it comes to interact with the really nice shopp plugin, there are a few shortcommings. Especially, there is no way (besides writing qtranslate&#8217;s comments by hand) to translate the product summaries. [...]]]></description>
			<content:encoded><![CDATA[<p>qTranslate is a lets say sufficient free plugin that enables multilingual wordpress setups. For a free plugin it is really feature rich, but when it comes to interact with the really nice shopp plugin, there are a few shortcommings. Especially, there is no way (besides writing qtranslate&#8217;s comments by hand) to translate the product summaries. This however can be resolved rather easy, because the product-summary field is more or less identical to wordpress own postexcerpt field. The later can be translated by qTranslate with qTranslates internal qtrans_modifyExcerpt() function.</p>
<p>So if we want to add translation für shopp product summaries, we simply have to take that function, adjust it to our needs and call it at the right spot. Without further ado &#8211; add the code below to your functions.php and you are done.</p>
<p><code>
<pre>
function tao_qtrans_modifyProductSummary() {
	global $q_config;
	echo "&lt;script type="text/javascript"&gt;\n";
	echo "if(jQuery('#summary').size()&gt;0) {";
	echo $q_config['js']['qtrans_is_array'];
	echo $q_config['js']['qtrans_xsplit'];
	echo $q_config['js']['qtrans_split'];
	echo $q_config['js']['qtrans_integrate'];
	echo $q_config['js']['qtrans_switch_postbox'];
	echo $q_config['js']['qtrans_use'];
	$el = qtrans_getSortedLanguages();
	foreach($el as $language) {
		echo qtrans_createTitlebarButton('product-summary', $language, 'summary', 'qtrans_switcher_product-summary_'.$language);
		echo qtrans_createTextArea('product-summary', $language, 'summary', 'qtrans_switcher_product-summary_'.$language);
	}
	echo "qtrans_switch_postbox('product-summary','summary','".$q_config['default_language']."');";
	echo "jQuery('#summary').hide();";
	echo "}";
	echo "\n&lt;/script&gt;\n";
}

if( function_exists('qtrans_createTitlebarButton') &amp;&amp;
	function_exists('qtrans_createTextArea') ) {
	add_filter('admin_footer', 'tao_qtrans_modifyProductSummary');
}
</pre>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/dev/wordpress/wordpress-qtranslate-and-shopp-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mailchimp API listSubscribe / listBatchSubscribe and Groups</title>
		<link>http://roman.tao.at/uncategorized/mailchimp-api-listsubscribe-listbatchsubscribe-and-groups/</link>
		<comments>http://roman.tao.at/uncategorized/mailchimp-api-listsubscribe-listbatchsubscribe-and-groups/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 09:49:25 +0000</pubDate>
		<dc:creator>TAO</dc:creator>
				<category><![CDATA[Article]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=470</guid>
		<description><![CDATA[Commonly, larger mailchimp lists are segmented by interest groups to allow specific targeting without handling subscriber data on different lists.
Now if you want to import large amounts of already subscribed users, using the mailchimp api is the best solution. Scanning the mailchimp api docs of the listBatchSubscribe action I was not able to find any [...]]]></description>
			<content:encoded><![CDATA[<p>Commonly, larger <a href="http://www.mailchimp.com">mailchimp</a> lists are segmented by interest groups to allow specific targeting without handling subscriber data on different lists.</p>
<p>Now if you want to import large amounts of already subscribed users, using the mailchimp api is the best solution. Scanning the <a href="http://apidocs.mailchimp.com/">mailchimp api docs</a> of the <a href="http://apidocs.mailchimp.com/api/1.3/listbatchsubscribe.func.php">listBatchSubscribe</a> action I was not able to find any documentation on how to import subscribers to specific interest groups &#8211; should have read the listSubscribe docs too <img src='http://roman.tao.at/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . It turned out it is really simple. Just add an array of group information to your data rows using the key &#8216;GROUPINGS&#8217; and you are good to go. Group information must contain the key &#8216;groups&#8217; &#8211; a comma separated list of interests and either the group id or the name of the group you want to add your data to. ID, name and values of groups can also be listed using the <a href="http://apidocs.mailchimp.com/api/1.3/listinterestgroupings.func.php">listInterestGroupings</a> method.</p>
<p>A simple example:</p>
<p><code>
<pre>
$batch = array(
   array(
      'EMAIL' =&gt; 'test@yourdomain.com',
      'FNAME' =&gt; 'Test',
      'LNAME' =&gt; 'Test',
      'GROUPINGS' =&gt; array(
          array('name' =&gt; 'MyGroup', 'groups' =&gt; 'Value1, Value3'),
          array('id' =&gt; 15, 'groups' =&gt; 'Value2'),
      )
);
$chimp-&gt;listBatchSubscribe($list_id, $batch, true, true, true);
</pre>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/uncategorized/mailchimp-api-listsubscribe-listbatchsubscribe-and-groups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimpleNote Linux Desktop Client</title>
		<link>http://roman.tao.at/linux/simplenote-linux-desktop-client/</link>
		<comments>http://roman.tao.at/linux/simplenote-linux-desktop-client/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 09:46:41 +0000</pubDate>
		<dc:creator>Roman Weinberger</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=481</guid>
		<description><![CDATA[Being an avid Notational Velocity user on OSX, i was really happy when Notational Velocity started to support SimpleNote. This made it really easy to sync notes on multiple devices including my iPhone.
Now i recently became a part-time linux user (again). Sadly there was no useful native client for SimpleNote available. Of course there is [...]]]></description>
			<content:encoded><![CDATA[<p>Being an avid <a href="http://notational.net/">Notational Velocity</a> user on OSX, i was really happy when Notational Velocity started to support <a href="http://simplenoteapp.com/">SimpleNote</a>. This made it really easy to sync notes on multiple devices including my iPhone.</p>
<p>Now i recently became a part-time linux user (again). Sadly there was no useful native client for SimpleNote available. Of course there is the standard web-interface and there is even a google chrome extension that allows working with SimpleNote.</p>
<p>Once again, i totally forgot emacs. Sometimes called an operating system on its own <img src='http://roman.tao.at/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  and this operating system really has support for  SimpleNote through <a href="https://github.com/cefstat/simplenote.el">simplenote.el</a>. </p>
<p>Installation is really simple: </p>
<pre><code>(require 'simplenote)
(setq simplenote-email "")
(setq simplenote-password "")
(simplenote-setup)</code></pre>
<p>Happy note-taking.</p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/linux/simplenote-linux-desktop-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery GooglePlus Widget</title>
		<link>http://roman.tao.at/dev/jquery/jquery-googleplus-widget/</link>
		<comments>http://roman.tao.at/dev/jquery/jquery-googleplus-widget/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 15:07:04 +0000</pubDate>
		<dc:creator>Roman Weinberger</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=478</guid>
		<description><![CDATA[I have just been toying around a few minutes with the google+ api.
The result is a small jQuery plugin that can display and update a users activity stream.
Setting up the plugin is really simple &#8211; just include it using
&#60;script src="https://raw.github.com/wbg/jQuery-GooglePlus-Widget/master/js/jquery.googleplus.widget.min.js"&#62;&#60;/script&#62;
And start it using
$(function() {
  	       $('#target').googleplusWidget({api_key:'API KEY',user_id:'USER ID'}).trigger('start_gplus');
});
You [...]]]></description>
			<content:encoded><![CDATA[<p>I have just been toying around a few minutes with the <a href="http://developers.google.com/+/">google+ api</a>.</p>
<p>The result is a small jQuery plugin that can display and update a users activity stream.</p>
<p>Setting up the plugin is really simple &#8211; just include it using</p>
<pre><code>&lt;script src="https://raw.github.com/wbg/jQuery-GooglePlus-Widget/master/js/jquery.googleplus.widget.min.js"&gt;&lt;/script&gt;</code></pre>
<p>And start it using</p>
<pre><code>$(function() {
  	       $('#target').googleplusWidget({api_key:'API KEY',user_id:'USER ID'}).trigger('start_gplus');
});</code></pre>
<p>You can register an API key using the google api console: <a href="https://code.google.com/apis/console/">https://code.google.com/apis/console/</a></p>
<p><a href="https://github.com/wbg/jQuery-GooglePlus-Widget">Get it on github</a></p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/dev/jquery/jquery-googleplus-widget/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OS X Lion Flash Permission buttons not working</title>
		<link>http://roman.tao.at/osx/os-x-lion-flash-permission-buttons-not-working/</link>
		<comments>http://roman.tao.at/osx/os-x-lion-flash-permission-buttons-not-working/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 17:34:05 +0000</pubDate>
		<dc:creator>Roman Weinberger</dc:creator>
				<category><![CDATA[OSX]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[lion]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=447</guid>
		<description><![CDATA[There is a severe drawback in Adobe Flash on OS X Lion (10.7). Flash Apps that need access to Camera or Microphone i.e. every Flash Video Chat show the &#8220;Allow to Access&#8221; Screen, but there is no way to click &#8220;Allow&#8221;. Currently this can either be worked around using keyboard navigation (tab to the &#8216;Allow&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>There is a severe drawback in Adobe Flash on OS X Lion (10.7). Flash Apps that need access to Camera or Microphone i.e. every Flash Video Chat show the &#8220;Allow to Access&#8221; Screen, but there is no way to click &#8220;Allow&#8221;. Currently this can either be worked around using keyboard navigation (tab to the &#8216;Allow&#8217; button and hit space to confirm) or by manually adding the Sites in the &#8220;Camera and Microphone&#8221; tab of the Flash Player Preference Pane.</p>
<p>Details about this bug on the<a href="https://discussions.apple.com/thread/3190623?start=0&amp;tstart=0"> apple discussion board</a>. And the <a href="https://bugbase.adobe.com/index.cfm?event=bug&amp;id=2918693">corresponding entry on adobes bug tracker</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/osx/os-x-lion-flash-permission-buttons-not-working/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comprehensive Lion Review</title>
		<link>http://roman.tao.at/osx/comprehensive-lion-review/</link>
		<comments>http://roman.tao.at/osx/comprehensive-lion-review/#comments</comments>
		<pubDate>Sun, 24 Jul 2011 11:06:37 +0000</pubDate>
		<dc:creator>Roman Weinberger</dc:creator>
				<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=444</guid>
		<description><![CDATA[This week Apple released its newest Operating System Mac OS X 10.7 aka Lion solely through the Mac App Store. It is no revolutionary update, but there are lots of new GUI as well as OS features. 
Ars Technica did a great review covering all the new stuff in lion. Read it at arstechnica.com.
]]></description>
			<content:encoded><![CDATA[<p>This week Apple released its newest Operating System Mac OS X 10.7 aka Lion solely through the Mac App Store. It is no revolutionary update, but there are lots of new GUI as well as OS features. </p>
<p>Ars Technica did a great review covering all the new stuff in lion. <a href="http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars/">Read it at arstechnica.com.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/osx/comprehensive-lion-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Add custom post types to your wordpress feed</title>
		<link>http://roman.tao.at/dev/add-custom-post-types-to-the-wordpress-feed/</link>
		<comments>http://roman.tao.at/dev/add-custom-post-types-to-the-wordpress-feed/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 08:05:16 +0000</pubDate>
		<dc:creator>Roman Weinberger</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=435</guid>
		<description><![CDATA[Most well-structured wordpress projects these days make heavy use of custom post types to cleanly separate different kinds of information.
Sadly by default, these post types are not available in your main wordpress RSS / ATOM feed, but luckily this can easily be fixed.
Just paste the following Code in your functions.php and all entries of all [...]]]></description>
			<content:encoded><![CDATA[<p>Most well-structured wordpress projects these days make heavy use of <a href="http://codex.wordpress.org/Post_Types">custom post types</a> to cleanly separate different kinds of information.</p>
<p>Sadly by default, these post types are not available in your main wordpress RSS / ATOM feed, but luckily this can easily be fixed.</p>
<p>Just paste the following Code in your functions.php and all entries of all your custom post types are added to your RSS / ATOM feed.</p>
<pre>
add_filter('pre_get_posts',
	create_function('$query',
		'if ($query-&gt;is_feed) $query-&gt;set("post_type","any");
		return $query;'
	)
);
</pre>
<p>If you want to be more specific about what to add to your feed, simply change &#8220;any&#8221; to an array of post_types. For example:</p>
<pre>
add_filter('pre_get_posts',
	create_function('$query',
		'if ($query-&gt;is_feed)
			$query-&gt;set("post_type",array("post", "my_custom"));
		return $query;'
	)
);
</pre>
<p>As you are accessing the wordpress query object, the same technique can also be used to change the post order in your feed, or add custom category filters etc&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/dev/add-custom-post-types-to-the-wordpress-feed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enable iframes for wordpress posts</title>
		<link>http://roman.tao.at/dev/enable-iframes-for-wordpress-posts/</link>
		<comments>http://roman.tao.at/dev/enable-iframes-for-wordpress-posts/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 06:59:18 +0000</pubDate>
		<dc:creator>Roman Weinberger</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=428</guid>
		<description><![CDATA[By default wordpress removes iframe tags from posts. This is not always the desired behavior as youtube, vimeo and other widgets are added via iframes.
The filtering of iframe tags is performed on the clientside by the javascript editor tinymce as well as on the serverside by the wordpress whitelist filter. Therefor, to disable iframe filtering, [...]]]></description>
			<content:encoded><![CDATA[<p>By default wordpress removes iframe tags from posts. This is not always the desired behavior as youtube, vimeo and other widgets are added via iframes.</p>
<p>The filtering of iframe tags is performed on the clientside by the javascript editor tinymce as well as on the serverside by the wordpress whitelist filter. Therefor, to disable iframe filtering, it is neccessary to add two hooks to either a plugin or the functions.php of your theme:</p>
<h2>Disable iframe filtering in tinymce</h2>
<p>Simply add the following code to your functions.php &#8211; this adds iframes as valid elements for tinymce:</p>
<p><code>add_filter('tiny_mce_before_init', create_function('$a', '$a["extended_valid_elements"] = "iframe[id|class|align|frameborder|height|name|scrolling|src|width|title|style]";return $a;'));</code></p>
<h2>Disable server-side iframe filtering</h2>
<p>Add this code to your functions.php &#8211; it adds iframes to the whitelist of wordpress:</p>
<p><code>global $allowedposttags;<br />
$allowedposttags["iframe"] = array("id" =&gt; array(),"class" =&gt; array(), "align" =&gt; array(),"frameborder" =&gt; array(),"title" =&gt; array(),"style" =&gt; array(),"name" =&gt; array(),"scrolling" =&gt; array(),"src" =&gt; array(),"height" =&gt; array(),"width" =&gt; array());</code></p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/dev/enable-iframes-for-wordpress-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kleiner CMS Vergleich</title>
		<link>http://roman.tao.at/dev/php/kleiner-cms-vergleich/</link>
		<comments>http://roman.tao.at/dev/php/kleiner-cms-vergleich/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 13:48:45 +0000</pubDate>
		<dc:creator>Roman Weinberger</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=405</guid>
		<description><![CDATA[Auch wenn wir alle sehr gerne auf wordpress zurückgreifen lohnt sich doch zwischendurch ein Blick auf die zahlreichen Open-Source-Alternativen.
Also hab ich mir heute ein wenig Zeit genommen um mir zwei bekannte &#8211; Drupal &#38; Typo3 &#8211; und ein paar mir weniger bekannte &#8211; Concrete5, CMS Made Simple, SilverStripe &#8211; anzusehen.
Concrete5
Erster Versuch Concrete5, das explizit seine [...]]]></description>
			<content:encoded><![CDATA[<p>Auch wenn <a href="http://softare.tao.at">wir alle</a> sehr gerne auf <a href="http://wordpress.org">wordpress</a> zurückgreifen lohnt sich doch zwischendurch ein Blick auf die zahlreichen Open-Source-Alternativen.</p>
<p>Also hab ich mir heute ein wenig Zeit genommen um mir zwei bekannte &#8211; <a href="http://drupal.org/">Drupal</a> &amp; <a href="http://www.typo3.org/">Typo3</a> &#8211; und ein paar mir weniger bekannte &#8211; <a href="http://www.concrete5.org/">Concrete5</a>, <a href="http://www.cmsmadesimple.org/">CMS Made Simple</a>, <a href="http://www.silverstripe.org/">SilverStripe</a> &#8211; anzusehen.</p>
<h2>Concrete5</h2>
<p>Erster Versuch <strong>Concrete5</strong>, das explizit seine Features für Entwickler in den Vordergrund stellt. Am Setup  gibt es nichts zu bemängeln, sehr übersichtlich und nach ein paar Klicks abgeschlossen. Um Dinge wie SEO URLs oder eine sitemap.xml muss man sich nicht kümmern &#8211; es funktioniert einfach. Das Admin interface muss man wohl mögen, mein Fall ist es nicht, aber die Möglichkeit Inhalte im Frontend mit Versionierung und instant Preview zu bearbeiten ist super. Die Erweiterbarkeit hab ich mir nur kurz angesehen, finde es aber auf den ersten Blick etwas verwunderlich, dass die Entwickler zwar jede Menge <a href="http://framework.zend.com/">Zend</a> Klassen verwenden, aber gerade fürs MVC auf eine handgestrickte Framework zurückgreifen.</p>
<h2>Silverstripe</h2>
<p><strong>SilverStripe</strong> war enttäuschend: Obwohl der Install-Check problemlos durchlief brach die eigentliche Installation mit einem anglichen Fehler im php <code>date.timezone</code> Setting ab. Das wäre nicht weiter schlimm und leicht zu beheben, aber: wenn die Installation abbricht wird kein  Rollback durchgeführt &#8211; um die Installation zu wiederholen muss zuerst von Hand die _config gelöscht und die erstellten Tables entfernt werden.<a href="http://ulrich.tao.at"> Manche Taoisten</a> würden in dem Fall von einem &#8220;absoluten no-go&#8221; sprechen.</p>
<h2>CMS made Simple</h2>
<p>Die Installation von <strong>CMS made Simple</strong> ist ähnlich wie bei Concrete5 sehr schnell und problemlos abgeschlossen, wenn der <code>install</code> Folder nach erfolgreicher Installation noch automatisch gelöscht würde wäre  alles perfekt. SEO URLs funktionieren leider auch nicht automatisch, dafür wirkt das Backend sehr aufgeräumt. Leider gibt es aber ein paar Kleinigkeiten die die Eingabe von Inhalten etwas umständlich machen. Es ist zum Beispiel nicht möglich Bilder direkt über den Content Editor hochzuladen &#8211; man muss diese erst über die getrennte Image Manager Seite hochladen (kein Multiupload), bevor Sie eingefügt werden können.<br />
Das Template System von CMS made Simple basieren auf <a href="http://www.smarty.net/">Smarty</a>. Templates können damit sehr angenehm bearbeitet werden und das System dürften vielen Frontend-Entwicklern ein Begriff sein.</p>
<h2>Drupal &amp; Typo3</h2>
<p>Bleiben noch die zwei altbekannten <strong>Drupal</strong> und <strong>Typo3</strong>. Und bei beiden war ich überrascht, wie viel Feinschliff die Systeme erfahren haben. Typo3 hat mittlerweile eine wirklich einfache Installationsroutin. Auch werden zB SEO URLs nun automatisch und ohne zusätzliche Extensions aktiviert. Das Admin Interface hat ebenfalls viel von seiner Unübersichtlichkeit verloren. Als Nutzer der alten Varianten muss man sich zwar etwas umgewöhnen (wo legt man jetzt Domain Records an?), der Schulungsaufwand für neue Nutzer dürfte aber um einiges geringer sein. Selbiges gilt für Drupal &#8211; einfache Installation, sehr brauchbares Admin Interface, aber hier noch ein wenig mehr getan werden um die grandiose Featurevielfalt besser vor Einsteigern und Redakteuren zu verbergen.<br />
Ebenso wie für Wordpress sind für Drupal und Typo3 eine große Mengen an freien Erweiterungen und Themes verfügbar &#8211; damit können viele Problemstellungen bequem ohne Eigenentwicklungen gelöst werden.</p>
<h2>Mein Fazit</h2>
<p>Drupal und Typo3 kommen für mich wieder für sehr viele <a href="http://software.tao.at/#projekte">Projekte</a> in Frage. Der Entwicklungsfokus in Richtung Social Media empfiehlt Drupal dabei eher für Community-Lastige Projekte. Typo3 wirkt durch die tollen Möglichkeiten für strukturierte Workflows und das genial einfache Caching System perfekt für Seiten mit einem großen Anteil an statischen Inhalten. Von den drei neuen Systemen finde ich concrete5 durch das brauchbare Frontend-Editing und die einfache Erweiterbarkeit am interessantesten.</p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/dev/php/kleiner-cms-vergleich/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSX Bluetooth Problems</title>
		<link>http://roman.tao.at/osx/osx-bluetooth-problems/</link>
		<comments>http://roman.tao.at/osx/osx-bluetooth-problems/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 09:07:49 +0000</pubDate>
		<dc:creator>Roman Weinberger</dc:creator>
				<category><![CDATA[OSX]]></category>
		<category><![CDATA[bluetooth]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=403</guid>
		<description><![CDATA[Just a short note, because it happens to me once in a while.
If your bluetooth devices like mouse or keyboard stop working in OS X and reconnecting etc. do not solve the problem:
Open your Terminal and execute the following:
sudo killall blued
This restarts your bluetooth daemon and your devices should be working again.
]]></description>
			<content:encoded><![CDATA[<p>Just a short note, because it happens to me once in a while.</p>
<p>If your bluetooth devices like mouse or keyboard stop working in OS X and reconnecting etc. do not solve the problem:</p>
<p>Open your Terminal and execute the following:</p>
<p><code>sudo killall blued</code></p>
<p>This restarts your bluetooth daemon and your devices should be working again.</p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/osx/osx-bluetooth-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript Video Pixel Manipulation</title>
		<link>http://roman.tao.at/dev/javascript/javascript-pixel-manipulation/</link>
		<comments>http://roman.tao.at/dev/javascript/javascript-pixel-manipulation/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 18:14:39 +0000</pubDate>
		<dc:creator>TAO</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=382</guid>
		<description><![CDATA[A simple implementation of the good old water demoscene effect with a little twist. It works on the pixel data of a video playing in realtime. Check out the demo here. More infos soon. Be sure to use a recent version of Google Chrome or Apple Safari.
]]></description>
			<content:encoded><![CDATA[<p>A simple implementation of the good old water demoscene effect with a little twist. It works on the pixel data of a video playing in realtime. <a href="http://roman.tao.at/files/2011/04/dropit.html">Check out the demo here</a>. More infos soon. <strong>Be sure to use a recent version of Google Chrome or Apple Safari</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/dev/javascript/javascript-pixel-manipulation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with video and CSS3</title>
		<link>http://roman.tao.at/dev/javascript/fun-with-and-css3/</link>
		<comments>http://roman.tao.at/dev/javascript/fun-with-and-css3/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 17:44:10 +0000</pubDate>
		<dc:creator>Roman Weinberger</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://roman.tao.at/?p=372</guid>
		<description><![CDATA[To get rid of the nasty sparetime i created a little fun experiment that uses HTML5 &#60;video&#62; + &#60;canvas&#62; and some CSS3 transforms to perform some interesting transition / slicing effects on video elements. It only works in webkit based Browsers i.e. Apple Safari and Google Chrome. Below is a link to the demo and a [...]]]></description>
			<content:encoded><![CDATA[<p>To get rid of the nasty sparetime i created a little fun experiment that uses HTML5 &lt;video&gt; + &lt;canvas&gt; and some CSS3 transforms to perform some interesting transition / slicing effects on video elements. <strong>It only works in webkit based Browsers</strong> i.e. Apple Safari and Google Chrome. Below is a link to the demo and a really short howto explaining the technique behind it.</p>
<p><a href="http://roman.tao.at/files/2011/03/sliceit.html">Watch the demo first.</a></p>
<h2>Howto</h2>
<p>The code is pretty simple and straightforward. In essence you need a video tag to play the video, some canvas elements that act as your video slices and finally some css transforms to animate the canvas elements.</p>
<h3>Video</h3>
<p>HTML5 &lt;video&gt; makes playing videos (nearly) as simple as displaying an image on your website. The only thing slightly problematic is the codec support in different browsers. To satisfy all class A browsers, you would need at least three videos with different encodings (ogg, webm, h.264), but as these demo only covers webkit, at least ogg is not needed.</p>
<p>To embed the video you can use something like this:</p>
<pre>&lt;video id="video" loop autoplay controls style="display:none"&gt;
&lt;source src="trailer_480p.m4v" type="video/mp4"&gt;
&lt;source src="trailer_480p.webm" type="video/webm"&gt;
&lt;/video&gt;</pre>
<p>This defines a video element with some additional parameters: The source tags define the video files in different encodings, the loop, autoplay and controls attributes should be self explanatory.</p>
<p>To encode videos in h.264 i simply use <a href="http://handbrake.fr/">handbrake</a>, <a href="http://www.mirovideoconverter.com/">Miro Video Converter</a> does a good job at creating WebM videos. Both tools are available for free.</p>
<h3>Javascript</h3>
<p>The javascript code is not that complicated either. In essence you just need to update some canvas elements with the video content periodically. This is simply done by rendering the video to the canvas element. The code is really straightforward:</p>
<pre>
<pre>var canvas1 = document.getElementById('canvas1')[0];
var ctx1 = canvas1.getContext('2d');
// ... repeat for remaining canvas elements
var video = document.getElementsByTagName('video')[0];
video.addEventListener('play', function() {
	setInterval(function() {
		ctx1.drawImage(video, 0,0, 854, 480);</pre>
<pre>
<pre>		// ... repeat for remaining canvas elements</pre>
<p>}, 33); }, false);</pre>
</pre>
<p>A possible speedup could be achived by rendering the video to a single large hidden canvas element an render this to the visible elements. Still I did not bother to test the speed improvements for this small example.</p>
<h3>CSS3</h3>
<p>As slices of the video are rendered to different canvas by now, you can use standard css3 transformation effect on them. To get at least minimal speed on mobile browsers, you should always use 3d transforms instead for their 2d counterparts as those are hardware accelerated e.g. translate3d(10px,10px,0px) instead of translate(10px, 10px). <a href="http://roman.tao.at/dev/jquery/html5-flickr-visualization-ipad-test/">More details on CSS3 transforms can be found here</a>.</p>
<h2>The Movie</h2>
<p>Last but not least: the excelent open source movie used for this demo is of course <a href="http://www.bigbuckbunny.org">Big Buck Bunny</a> (c) copyright 2008, Blender Foundation. A truly amazing achievement of the open source community.</p>
]]></content:encoded>
			<wfw:commentRss>http://roman.tao.at/dev/javascript/fun-with-and-css3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

