<?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>Mostly undocumented stuff</title>
	<atom:link href="http://phaser.gfxile.net/wp/feed/" rel="self" type="application/rss+xml" />
	<link>http://phaser.gfxile.net/wp</link>
	<description>and some other stuff too</description>
	<lastBuildDate>Wed, 22 Feb 2012 11:10:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Orchestral tracks from the past</title>
		<link>http://phaser.gfxile.net/wp/2012/02/orchestral-tracks-from-the-past/</link>
		<comments>http://phaser.gfxile.net/wp/2012/02/orchestral-tracks-from-the-past/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 10:59:40 +0000</pubDate>
		<dc:creator>simo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://phaser.gfxile.net/wp/?p=1448</guid>
		<description><![CDATA[<div id="fb-root"></div>It&#8217;s already a long time since I removed the online jukebox from these pages, so here&#8217;s some of the old orchestral music from those times (along with some new): Cabo Blanco Cabo Blanco Running Running Train Roof RundownTrain roof rundown Africa &#8220;Flyover Cliché&#8221; track Africa Light Light Adventure Legend Legend Chest of Tales Chest of &#8230;]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s already a long time since I removed the online jukebox from these pages, so here&#8217;s some of the old orchestral music from those times (along with some new):</p>
<p>Cabo Blanco<a href="http://phaser.gfxile.net/music/caboblanco3.mp3"><br />
Cabo Blanco</a></p>
<p>Running<a href="http://phaser.gfxile.net/music/categories/orchestral/Running%20(suspense).mp3"><br />
Running</a></p>
<p>Train Roof Rundown<a href="http://phaser.gfxile.net/music/categories/orchestral/Train%20roof%20rundown%20(suspense).mp3">Train roof rundown</a></p>
<p>Africa &#8220;Flyover Cliché&#8221; track<a href="http://phaser.gfxile.net/music/categories/orchestral/Africa.mp3"><br />
Africa</a></p>
<p>Light<br />
<a href="http://phaser.gfxile.net/music/categories/orchestral/Light.mp3">Light</a></p>
<p>Adventure Legend<br />
<a href="http://phaser.gfxile.net/music/categories/orchestral/Legend%20(adventurous).mp3">Legend</a></p>
<p>Chest of Tales<br />
<a href="http://phaser.gfxile.net/music/categories/orchestral/Chest%20of%20Tales.mp3">Chest of Tales</a></p>
<p><strong>More &#8220;electronic&#8221; stuff:</strong></p>
<p><strong></strong>Access Denied<br />
<a href="http://phaser.gfxile.net/music/categories/orchestral/Access%20denied%20(action).mp3">Access Denied</a></p>
<p>Sneak<br />
<a href="http://phaser.gfxile.net/music/categories/suspense/Sneak.mp3">Sneak</a>
<div class="ptl_div"><script>
					//<![CDATA[
					document.write('<g:plusone size="standard" annotation="none" href="http://phaser.gfxile.net/wp/2012/02/orchestral-tracks-from-the-past/"></g:plusone>');
				        //]]&gt;
					</script><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://phaser.gfxile.net/wp/2012/02/orchestral-tracks-from-the-past/" data-text="Orchestral tracks from the past" data-count="vertical">Tweet</a>
<div class="ptl_fb"><script>
							//<![CDATA[
							document.write('<fb:like href="http://phaser.gfxile.net/wp/2012/02/orchestral-tracks-from-the-past/" show_faces="true" width="225"  action="like" font="" colorscheme="light"></fb:like>');
							//]]&gt;
							</script></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://phaser.gfxile.net/wp/2012/02/orchestral-tracks-from-the-past/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://phaser.gfxile.net/music/caboblanco3.mp3" length="3375437" type="audio/mpeg" />
<enclosure url="http://phaser.gfxile.net/music/categories/orchestral/Africa.mp3" length="2200554" type="audio/mpeg" />
<enclosure url="http://phaser.gfxile.net/music/categories/orchestral/Light.mp3" length="4294529" type="audio/mpeg" />
<enclosure url="http://phaser.gfxile.net/music/categories/orchestral/Chest%20of%20Tales.mp3" length="3123722" type="audio/mpeg" />
<enclosure url="http://phaser.gfxile.net/music/categories/suspense/Sneak.mp3" length="1604440" type="audio/mpeg" />
		</item>
		<item>
		<title>Dashcode, part II</title>
		<link>http://phaser.gfxile.net/wp/2012/02/dashcode-part-ii/</link>
		<comments>http://phaser.gfxile.net/wp/2012/02/dashcode-part-ii/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 10:15:20 +0000</pubDate>
		<dc:creator>simo</dc:creator>
				<category><![CDATA[Informative]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://phaser.gfxile.net/wp/?p=1328</guid>
		<description><![CDATA[After using Dashcode for almost a year now, this is the bottom line: &#8220;Don&#8217;t make any big projects with it.&#8221; – A random Dashcode user After a while, when the project gets bigger, you&#8217;ll have some 20+ Javascript files, thousands of lines of code, several data sources (which are great, btw), it gets really slow. &#8230;]]></description>
			<content:encoded><![CDATA[<p>After using Dashcode for almost a year now, this is the bottom line:</p>
<blockquote><p>&#8220;Don&#8217;t make any big projects with it.&#8221;<br />
– A random Dashcode user</p></blockquote>
<p>After a while, when the project gets bigger, you&#8217;ll have some 20+ Javascript files, thousands of lines of code, several data sources (which are great, btw), it gets really slow. First, basic things like moving controls to places starts to take time. Then saving the project becomes really painful, not even mentioning deploying the project. If you want to use <strong>undo</strong>, just forget about it &#8211; for some reason, each undo takes as much time as saving the project.</p>
<p>Then, debugger stops working. The Dashcode&#8217;s small embedded fake HTTP server can&#8217;t handle the simultaneous requests made by the main page to load all the scripts. You might circumvent this by making a script loader that somehow loads them gradually, one by one. I tried it but it didn&#8217;t work, instead started giving way more exotic error messages.</p>
<p>This is until the project grows even bigger and you reach the point where Dashcode crashes when autoloading your project.</p>
<div id="attachment_1442" class="wp-caption alignright" style="width: 310px"><a href="http://phaser.gfxile.net/wp/wp-content/uploads/2012/02/Screen-Shot-2012-02-22-at-12.04.26.png"><img class="size-medium wp-image-1442" title="Screenshot" src="http://phaser.gfxile.net/wp/wp-content/uploads/2012/02/Screen-Shot-2012-02-22-at-12.04.26-300x133.png" alt="" width="300" height="133" /></a><p class="wp-caption-text">Dashcode preferences</p></div>
<p>It didn&#8217;t happen on Snow Leopard, though, so I guess this is some random incompatibility problem with OSX Lion. Even choosing the setting &#8220;Do nothing when Dashcode starts&#8221; doesn&#8217;t disable the autoload completely. This is probably because closing the big project on Dashcode crashes it and it reloads the last project when starting again.</p>
<p>I found a workaround for that:</p>
<ol>
<li>Open Dashcode</li>
<li>Quickly press CMD-W when the project loads up</li>
<li>Quickly press CMD-Q when the project is closed</li>
<li>Open Dashcode again</li>
<li>Open the project from the Recent projects menu</li>
</ol>
<p>Handy and easy.</p>
<p>Another possible solution for this could be if someone figured out a way to include JavaScript files to the main page in a way that Dashcode wouldn&#8217;t understand them and wouldn&#8217;t load and parse the sources every time you open the project. I guess that is what crashes the editor.</p>
<p>Anyway, it&#8217;s a shame that it seems this program has been neglected by Apple for some time now. Hope they&#8217;ll get more active on it one day again.
<div class="ptl_div"><script>
					//<![CDATA[
					document.write('<g:plusone size="standard" annotation="none" href="http://phaser.gfxile.net/wp/2012/02/dashcode-part-ii/"></g:plusone>');
				        //]]&gt;
					</script><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://phaser.gfxile.net/wp/2012/02/dashcode-part-ii/" data-text="Dashcode, part II" data-count="vertical">Tweet</a>
<div class="ptl_fb"><script>
							//<![CDATA[
							document.write('<fb:like href="http://phaser.gfxile.net/wp/2012/02/dashcode-part-ii/" show_faces="true" width="225"  action="like" font="" colorscheme="light"></fb:like>');
							//]]&gt;
							</script></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://phaser.gfxile.net/wp/2012/02/dashcode-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wonderful null character</title>
		<link>http://phaser.gfxile.net/wp/2012/02/wonderful-null-character/</link>
		<comments>http://phaser.gfxile.net/wp/2012/02/wonderful-null-character/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 09:51:54 +0000</pubDate>
		<dc:creator>simo</dc:creator>
				<category><![CDATA[Informative]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://phaser.gfxile.net/wp/?p=1425</guid>
		<description><![CDATA[I recently programmed a lengthy piece of online software with PHP and JavaScript, utilizing server-side PHP/MySQL queries. But there was a problem that just popped out of nowhere &#8211; all but one data entry worked perfectly. This one row, when observed from the SQL server side (with a great tool called Sequel Pro), looked perfectly &#8230;]]></description>
			<content:encoded><![CDATA[<p>I recently programmed a lengthy piece of online software with PHP and JavaScript, utilizing server-side PHP/MySQL queries. But there was a problem that just popped out of nowhere &#8211; all but one data entry worked perfectly. This one row, when observed from the SQL server side (with a great tool called <a href="http://www.sequelpro.com/">Sequel Pro</a>), looked perfectly fine, it came up in queries, appeared normal, everything ok.</p>
<p>But there&#8217;s a PHP script on the server side that makes the appropriate query and returns the data as XML for the JavaScript side to parse. And every time a query contained this one particular entry, it broke. The XML was returned normally, but it didn&#8217;t work. Empty set.</p>
<p>So, I decided to make the query manually, giving it as Base64-encoded SQL query to check what&#8217;s wrong.</p>
<p>It returned a nice set of XML &#8211; with one exception: the browser said there&#8217;s a 0&#215;0 character on row 15. That would explain a lot, so I checked row 15. Just normal written text as UTF-8 string in the database. I copied the text and pasted it to Skype for the person who wrote it, with a note after the text.</p>
<div id="attachment_1427" class="wp-caption alignright" style="width: 310px"><a href="http://phaser.gfxile.net/wp/wp-content/uploads/2012/02/750px-BH_LMC.png"><img class="size-medium wp-image-1427" title="Black hole" src="http://phaser.gfxile.net/wp/wp-content/uploads/2012/02/750px-BH_LMC-300x240.png" alt="" width="300" height="240" /></a><p class="wp-caption-text">Black hole, galactic representation of a NULL character. Photo by Alain Riazuelo.</p></div>
<p>The note disappeared. Found the null character.</p>
<p>After a quick search I learned that it is <strong>actually possible</strong> to write a <a href="http://en.wikipedia.org/wiki/Null_character">NULL character</a> from the keyboard. Didn&#8217;t know that. This brings up a whole bunch of new problems that everyone should keep in mind when writing software. Especially when dealing with HTTP servers, as they, sometimes when it&#8217;s possible, also send the size of the page in the headers, and the client side then downloads everything but doesn&#8217;t expect a NULL character, and sometimes, when no size is sent, client may stop at a NULL. Both times you&#8217;ll probably end up mishandling the data.
<div class="ptl_div"><script>
					//<![CDATA[
					document.write('<g:plusone size="standard" annotation="none" href="http://phaser.gfxile.net/wp/2012/02/wonderful-null-character/"></g:plusone>');
				        //]]&gt;
					</script><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://phaser.gfxile.net/wp/2012/02/wonderful-null-character/" data-text="Wonderful null character" data-count="vertical">Tweet</a>
<div class="ptl_fb"><script>
							//<![CDATA[
							document.write('<fb:like href="http://phaser.gfxile.net/wp/2012/02/wonderful-null-character/" show_faces="true" width="225"  action="like" font="" colorscheme="light"></fb:like>');
							//]]&gt;
							</script></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://phaser.gfxile.net/wp/2012/02/wonderful-null-character/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MacRuby and (too) persistent objects</title>
		<link>http://phaser.gfxile.net/wp/2011/12/macruby-and-persistent-objects/</link>
		<comments>http://phaser.gfxile.net/wp/2011/12/macruby-and-persistent-objects/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 15:15:17 +0000</pubDate>
		<dc:creator>simo</dc:creator>
				<category><![CDATA[Informative]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://phaser.gfxile.net/wp/?p=1414</guid>
		<description><![CDATA[If you&#8217;re starting with MacRuby and Xcode, you might stumble upon the same problem I did: If you deploy the project even once, those precompiled ruby object files (.rbo) stick to the deployment directory and you have to clean it up each time before testing any new code. Here&#8217;s a simple script you can put &#8230;]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re starting with <a href="http://www.macruby.org/" target="_blank">MacRuby</a> and <a href="http://developer.apple.com/xcode" target="_blank">Xcode</a>, you might stumble upon the same problem I did: If you deploy the project even once, those precompiled ruby object files (.rbo) stick to the deployment directory and you have to clean it up each time before testing any new code.</p>
<p>Here&#8217;s a simple script you can put in your non-deployment target, just click Add Build Phase (+) / Add Run Script and copy/paste the following code:</p>
<pre>cd $CONFIGURATION_BUILD_DIR/$CONTENTS_FOLDER_PATH/Resources
for a in `find . -name "*.rbo"`; do rm -f $a; done</pre>
<p>This isn&#8217;t pretty, but does the trick.</p>
<p>Also, you will probably want to go ahead and disable <strong>gdb</strong> for the development target. There&#8217;s no use in observing the ruby binary in case of its errors. Disabling gdb speeds up the launch of ruby tenfold.
<div class="ptl_div"><script>
					//<![CDATA[
					document.write('<g:plusone size="standard" annotation="none" href="http://phaser.gfxile.net/wp/2011/12/macruby-and-persistent-objects/"></g:plusone>');
				        //]]&gt;
					</script><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://phaser.gfxile.net/wp/2011/12/macruby-and-persistent-objects/" data-text="MacRuby and (too) persistent objects" data-count="vertical">Tweet</a>
<div class="ptl_fb"><script>
							//<![CDATA[
							document.write('<fb:like href="http://phaser.gfxile.net/wp/2011/12/macruby-and-persistent-objects/" show_faces="true" width="225"  action="like" font="" colorscheme="light"></fb:like>');
							//]]&gt;
							</script></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://phaser.gfxile.net/wp/2011/12/macruby-and-persistent-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amplify multiple mp3s from command line</title>
		<link>http://phaser.gfxile.net/wp/2011/08/amplify-multiple-mp3s-from-command-line/</link>
		<comments>http://phaser.gfxile.net/wp/2011/08/amplify-multiple-mp3s-from-command-line/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 10:47:26 +0000</pubDate>
		<dc:creator>simo</dc:creator>
				<category><![CDATA[Informative]]></category>
		<category><![CDATA[amplify]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[mp3]]></category>

		<guid isPermaLink="false">http://phaser.gfxile.net/wp/?p=1390</guid>
		<description><![CDATA[This is quite easy to do, actually, just another case of bad (or missing) documentation. First, get an ffmpeg binary. This can be done by either compiling it by yourself or googling for a ready compiled binary. If you&#8217;re on a Mac, you probably have it already, as many of the video converters from Mac &#8230;]]></description>
			<content:encoded><![CDATA[<p>This is quite easy to do, actually, just another case of bad (or missing) documentation.</p>
<p>First, get an <a href="http://www.ffmpeg.org/">ffmpeg</a> binary. This can be done by either compiling it by yourself or googling for a ready compiled binary. If you&#8217;re on a Mac, you probably have it already, as many of the video converters from Mac App Store come with the ffmpeg binary hidden inside their directories. Just open a terminal, type:</p>
<pre>cd /Applications
find . -name "ffmpeg"</pre>
<p>&#8230;and you&#8217;re set. Copy the found binary to /usr/bin or wherever you want it.</p>
<p>If you&#8217;re on Windows, <a title="I want to find a google binary for Windows ME or whatever I might have!" href="http://www.google.com/search?client=windows_me&amp;rls=en&amp;q=ffmpeg.exe" target="_blank">google for ffmpeg.exe</a>, copy it anywhere and it&#8217;ll work, unless it doesn&#8217;t, which is pretty much a 50/50 possibility.</p>
<p>On Linux, using any repository system you use, install the package <em>ffmpeg</em>, only to realize it doesn&#8217;t support mp3, because mp3 is apparently not an industry standard.</p>
<p>Not depending on if it&#8217;s a good standard or not, you&#8217;ve got 1072 mp3 files you&#8217;ve recorded for some reason, and they&#8217;re all too silent. By a factor of 10.</p>
<p>Go to the directory with the files, and type (example):</p>
<pre>cd SilentMP3s
mkdir LouderFiles
for a in *.mp3; do ffmpeg -i $a -vol 2560 LouderFiles/$a; done</pre>
<p>Now you&#8217;ll see a lot of text flowing through your terminal for a while, and when it&#8217;s done, you&#8217;ll find all of the files, 10 times louder in a subfolder named LouderFiles.</p>
<p>The ffmpeg -vol parameter amplifies the sound. The default value is 256 (no amplification), and you can adjust the number accordingly. Here it&#8217;s 2560, as it&#8217;s 10 times louder. Note that these are not decibel values or anything that sophisticated, but just an integer value. 512 equals to twice the volume, 768 three times, 1024 four times, etc.</p>
<p>The best way to find the correct amplification might be to look at the actual waveform in an audio editor, e.g. Audacity, and then try the amplification on one file. You&#8217;ll quickly see what is the appropriate value for the -vol parameter.
<div class="ptl_div"><script>
					//<![CDATA[
					document.write('<g:plusone size="standard" annotation="none" href="http://phaser.gfxile.net/wp/2011/08/amplify-multiple-mp3s-from-command-line/"></g:plusone>');
				        //]]&gt;
					</script><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://phaser.gfxile.net/wp/2011/08/amplify-multiple-mp3s-from-command-line/" data-text="Amplify multiple mp3s from command line" data-count="vertical">Tweet</a>
<div class="ptl_fb"><script>
							//<![CDATA[
							document.write('<fb:like href="http://phaser.gfxile.net/wp/2011/08/amplify-multiple-mp3s-from-command-line/" show_faces="true" width="225"  action="like" font="" colorscheme="light"></fb:like>');
							//]]&gt;
							</script></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://phaser.gfxile.net/wp/2011/08/amplify-multiple-mp3s-from-command-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HALion Symphonic Orchestra on OSX Lion</title>
		<link>http://phaser.gfxile.net/wp/2011/07/halion-symphonic-orchestra-on-osx-lion/</link>
		<comments>http://phaser.gfxile.net/wp/2011/07/halion-symphonic-orchestra-on-osx-lion/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 20:41:36 +0000</pubDate>
		<dc:creator>simo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://phaser.gfxile.net/wp/?p=1386</guid>
		<description><![CDATA[This page at Steinberg&#8217;s website claims that Halion Symphonic Orchestra won&#8217;t work on OSX Lion. It says &#8220;Plug-in not detected by host. No update planned but runs as VST Sound Instrument Set based on HALion Sonic on Lion.&#8221; Not true. I just finished installing Cubase Studio 5 on Lion, with HSO working just fine, both as &#8230;]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.steinberg.net/en/support/knowledgebase_new/free_articles/kb_show/mac-os-x-107-lion-information-on-compatibility-with-steinberg-products.html">This page</a> at Steinberg&#8217;s website claims that Halion Symphonic Orchestra won&#8217;t work on OSX Lion. It says <em>&#8220;Plug-in not detected by host. No update planned but runs as VST Sound Instrument Set based on HALion Sonic on Lion.&#8221;</em></p>
<p>Not true.</p>
<p>I just finished installing Cubase Studio 5 on Lion, with HSO working just fine, both as a VST plugin and through ReWire.</p>
<p>As the script for copying the samples from the DVDs is made for PPC and needs Rosetta, it probably won&#8217;t run. But if you already have the samples loaded on a Mac, you can just copy the samples to their place from the other Mac after installing the plugin (<a href="http://www.steinberg.net/en/support/downloads/halion_symphonic_orchestra.html">latest from the Steinberg website</a> &#8211; not the one that comes on the discs).</p>
<p>The path to look for is <strong>/Library/Application Support/Steinberg/ReWire/HALion Symphonic Orchestra</strong>. For the 16-bit edition, there should be approx. 11 GB of data, for the 24-bit version probably some 50% more.</p>
<p>This is not recent news, as it also worked on Lion Developer Preview and Cubase Studio 5.5.0, which was also not supposed to work on Lion&#8230;
<div class="ptl_div"><script>
					//<![CDATA[
					document.write('<g:plusone size="standard" annotation="none" href="http://phaser.gfxile.net/wp/2011/07/halion-symphonic-orchestra-on-osx-lion/"></g:plusone>');
				        //]]&gt;
					</script><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://phaser.gfxile.net/wp/2011/07/halion-symphonic-orchestra-on-osx-lion/" data-text="HALion Symphonic Orchestra on OSX Lion" data-count="vertical">Tweet</a>
<div class="ptl_fb"><script>
							//<![CDATA[
							document.write('<fb:like href="http://phaser.gfxile.net/wp/2011/07/halion-symphonic-orchestra-on-osx-lion/" show_faces="true" width="225"  action="like" font="" colorscheme="light"></fb:like>');
							//]]&gt;
							</script></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://phaser.gfxile.net/wp/2011/07/halion-symphonic-orchestra-on-osx-lion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UBV Beach Volley 2011</title>
		<link>http://phaser.gfxile.net/wp/2011/07/ubv-2011/</link>
		<comments>http://phaser.gfxile.net/wp/2011/07/ubv-2011/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 17:22:52 +0000</pubDate>
		<dc:creator>simo</dc:creator>
				<category><![CDATA[Informative]]></category>
		<category><![CDATA[Nostalgy]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[beach volley]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[publish]]></category>
		<category><![CDATA[ubv 2011]]></category>

		<guid isPermaLink="false">http://phaser.gfxile.net/wp/?p=1379</guid>
		<description><![CDATA[I&#8217;m happy to announce the first version of UBV 2011 is now available for buying in the Mac App Store. Link to Mac App Store Here&#8217;s a short trailer: Tweet]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy to announce the first version of <strong>UBV 2011</strong> is now available for buying in the Mac App Store.</p>
<p><a href="http://itunes.apple.com/us/app/ubv-volley-2011/id452076500?ls=1&amp;mt=12">Link to Mac App Store</a></p>
<p>Here&#8217;s a short trailer:</p>
<p><p><a href="http://www.youtube.com/watch?v=ObTwQoaEiLo"><img src="http://img.youtube.com/vi/ObTwQoaEiLo/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=ObTwQoaEiLo">Click here</a> to view the video on YouTube.</p>

<div class="ptl_div"><script>
					//<![CDATA[
					document.write('<g:plusone size="standard" annotation="none" href="http://phaser.gfxile.net/wp/2011/07/ubv-2011/"></g:plusone>');
				        //]]&gt;
					</script><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://phaser.gfxile.net/wp/2011/07/ubv-2011/" data-text="UBV Beach Volley 2011" data-count="vertical">Tweet</a>
<div class="ptl_fb"><script>
							//<![CDATA[
							document.write('<fb:like href="http://phaser.gfxile.net/wp/2011/07/ubv-2011/" show_faces="true" width="225"  action="like" font="" colorscheme="light"></fb:like>');
							//]]&gt;
							</script></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://phaser.gfxile.net/wp/2011/07/ubv-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>4 new tracks</title>
		<link>http://phaser.gfxile.net/wp/2011/07/4-new-tracks/</link>
		<comments>http://phaser.gfxile.net/wp/2011/07/4-new-tracks/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 08:16:25 +0000</pubDate>
		<dc:creator>simo</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://phaser.gfxile.net/wp/?p=1351</guid>
		<description><![CDATA[Here&#8217;s some new music: Vector Strongly influenced by Tron: Legacy soundtrack. Vector HD1 Tried to capture the classic feeling of Vangelis&#8217; Chariots of Fire. HD1 Bronze Tries to be like the stuff they play in saunas at Impuls+. Bronze Puzzle Older track, found it lying around unfinished. Puzzle Tweet]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s some new music:</p>
<h4><strong>Vector</strong></h4>
<p><strong></strong>Strongly influenced by Tron: Legacy soundtrack.<br />
<a href="http://phaser.gfxile.net/wp/wp-content/uploads/2011/07/phaser-vector.mp3">Vector</a></p>
<h4><strong>HD1</strong></h4>
<p>Tried to capture the classic feeling of Vangelis&#8217; Chariots of Fire.<br />
<a href="http://phaser.gfxile.net/wp/wp-content/uploads/2011/07/phaser-hd1.mp3">HD1</a></p>
<h4><strong>Bronze</strong></h4>
<p><strong></strong>Tries to be like the stuff they play in saunas at <a href="http://impuls.lt/en/kareiviu">Impuls+</a>.<br />
<a href="http://phaser.gfxile.net/wp/wp-content/uploads/2011/07/phaser-bronze.mp3">Bronze</a></p>
<h4><strong>Puzzle</strong></h4>
<p><strong></strong>Older track, found it lying around unfinished.<br />
<a href="http://phaser.gfxile.net/wp/wp-content/uploads/2011/07/phaser-puzzle.mp3">Puzzle</a>
<div class="ptl_div"><script>
					//<![CDATA[
					document.write('<g:plusone size="standard" annotation="none" href="http://phaser.gfxile.net/wp/2011/07/4-new-tracks/"></g:plusone>');
				        //]]&gt;
					</script><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://phaser.gfxile.net/wp/2011/07/4-new-tracks/" data-text="4 new tracks" data-count="vertical">Tweet</a>
<div class="ptl_fb"><script>
							//<![CDATA[
							document.write('<fb:like href="http://phaser.gfxile.net/wp/2011/07/4-new-tracks/" show_faces="true" width="225"  action="like" font="" colorscheme="light"></fb:like>');
							//]]&gt;
							</script></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://phaser.gfxile.net/wp/2011/07/4-new-tracks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://phaser.gfxile.net/wp/wp-content/uploads/2011/07/phaser-vector.mp3" length="4322115" type="audio/mpeg" />
<enclosure url="http://phaser.gfxile.net/wp/wp-content/uploads/2011/07/phaser-hd1.mp3" length="2341615" type="audio/mpeg" />
<enclosure url="http://phaser.gfxile.net/wp/wp-content/uploads/2011/07/phaser-bronze.mp3" length="6145879" type="audio/mpeg" />
<enclosure url="http://phaser.gfxile.net/wp/wp-content/uploads/2011/07/phaser-puzzle.mp3" length="6641161" type="audio/mpeg" />
		</item>
		<item>
		<title>Javascript, Base64, PHP, UTF-8</title>
		<link>http://phaser.gfxile.net/wp/2011/07/javascript-base64-php-utf-8/</link>
		<comments>http://phaser.gfxile.net/wp/2011/07/javascript-base64-php-utf-8/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 10:09:16 +0000</pubDate>
		<dc:creator>simo</dc:creator>
				<category><![CDATA[Informative]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[base64]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[utf-8]]></category>

		<guid isPermaLink="false">http://phaser.gfxile.net/wp/?p=1339</guid>
		<description><![CDATA[I&#8217;m working on a small application that communicates through JavaScript to a PHP script, and usually the data contains text in UTF-8 format to make everything as compatible as possible. The text in UTF-8 format doesn&#8217;t go too well into an AJAX call GET URL. So it has to be further encoded with an encoding &#8230;]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on a small application that communicates through JavaScript to a PHP script, and usually the data contains text in UTF-8 format to make everything as compatible as possible.</p>
<p>The text in UTF-8 format doesn&#8217;t go too well into an AJAX call GET URL. So it has to be further encoded with an encoding that can be used as a parameter. BASE64 is one such.</p>
<p>There&#8217;s a handy JavaScript BASE64 encoder available at <a href="http://www.webtoolkit.info/javascript-base64.html">webtoolkit.info</a>. It handles the UTF-8 encoding / decoding properly. In the PHP script, you can use the built-in <em>base64_decode</em> to decode back to UTF-8. But there&#8217;s one caveat using this method: BASE64 encoding contains sometimes the plus (+) sign. This, usually, is transformed into a space in URLs. So when the server gets the AJAX call with a BASE64 encoded parameter containing a +, it can no longer decode it, <em>base64_decode </em>only returns an empty string. This can be worked around:</p>
<pre>$result = base64_decode(str_replace(" ","+",$_REQUEST['base64encodedparameter']));</pre>
<p>And you have your UTF-8 encoded string in $result.</p>
<p>Also, <em>base64_decode</em> doesn&#8217;t care if the trailing = characters get lost on the way, so this method should be safe to use.</p>
<p>There are probably a hundred better way to do this, but I found it working great.
<div class="ptl_div"><script>
					//<![CDATA[
					document.write('<g:plusone size="standard" annotation="none" href="http://phaser.gfxile.net/wp/2011/07/javascript-base64-php-utf-8/"></g:plusone>');
				        //]]&gt;
					</script><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://phaser.gfxile.net/wp/2011/07/javascript-base64-php-utf-8/" data-text="Javascript, Base64, PHP, UTF-8" data-count="vertical">Tweet</a>
<div class="ptl_fb"><script>
							//<![CDATA[
							document.write('<fb:like href="http://phaser.gfxile.net/wp/2011/07/javascript-base64-php-utf-8/" show_faces="true" width="225"  action="like" font="" colorscheme="light"></fb:like>');
							//]]&gt;
							</script></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://phaser.gfxile.net/wp/2011/07/javascript-base64-php-utf-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xcode 4.0.2 and 4.1 distributed building</title>
		<link>http://phaser.gfxile.net/wp/2011/07/xcode-4-0-2-and-4-1-distributed-building/</link>
		<comments>http://phaser.gfxile.net/wp/2011/07/xcode-4-0-2-and-4-1-distributed-building/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 15:23:08 +0000</pubDate>
		<dc:creator>simo</dc:creator>
				<category><![CDATA[Informative]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Xcode]]></category>
		<category><![CDATA[xcode distcc]]></category>

		<guid isPermaLink="false">http://phaser.gfxile.net/wp/?p=1330</guid>
		<description><![CDATA[For some reason, the distributed building system in Xcode 4.x seems to be broken. You can search for distcc servers in your network, define them, turn on distributed building, but still it does everything on localhost. If you take a closer look at the build log, it says: setenv DISTCC_HOSTS localhost ..so can&#8217;t expect much &#8230;]]></description>
			<content:encoded><![CDATA[<p>For some reason, the distributed building system in Xcode 4.x seems to be broken. You can search for distcc servers in your network, define them, turn on distributed building, but still it does everything on localhost.</p>
<p>If you take a closer look at the build log, it says:</p>
<pre>setenv DISTCC_HOSTS localhost</pre>
<p>..so can&#8217;t expect much network traffic after that calling distcc. This overrides everything starting from /Developer/usr/etc/distcc/hosts and ~/.distcc/hosts. I couldn&#8217;t find any way to change this, until googling revealed a trick: making a proxy script to call distcc. This is absolutely the wrongest way to do this, but it works. Everything you do will be on your own risk and be sure to have a backup Xcode installer image.</p>
<p>First, create a ~/.distcc/hosts file if you don&#8217;t already have one. This is what the distcc program should look up in the first place. Fill in as follows:</p>
<pre>myfirstserver/n,cpp,lzo
mysecondserver/n,cpp,lzo
localhost/n,cpp,lzo</pre>
<p>where server can be a hostname or IP address, and n is the number of distcc processes you want to use. Usually the number of cores on the computer or that +1. I tend to give less processes than the maximum for localhost, as this makes using the computer you develop on smoother during builds. Save the file.</p>
<p>Open up a console and:</p>
<pre>cd /Developer/usr/bin
mv distcc distcc.orig
nano distcc</pre>
<p>Fill in the new contents for distcc:</p>
<pre>#!/bin/sh
MY_DISTCC_HOSTS=`cat ~/.distcc/hosts`
export DISTCC_HOSTS="--randomize $MY_DISTCC_HOSTS"
/Developer/usr/bin/distcc.orig "$@"
exit $?</pre>
<p>Save the file and exit (ctrl-o, ctrl-x).</p>
<pre>chmod a+x distcc</pre>
<p>Now in theory it should work. Go to Xcode and test. The build system starts to distribute the build load to your network. But still it&#8217;s slow. You see that it doesn&#8217;t start more than a couple processes at a time and waits for them to finish, and none of the computers really use their CPU to the full.</p>
<p>In Xcode, there&#8217;s a built-in parameter that limits the build jobs. This used to be called <em>PBXNumberOfParallelBuildSubtasks </em>but that has changed in Xcode 4. So, for example, for 8 jobs you need to run:</p>
<pre>defaults write com.apple.dt.xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 8</pre>
<p>&#8230;where you can put the total number of wanted processes or build jobs in place of 8. Usually this should be the sum of the /n values you specified in the .distcc/hosts file.</p>
<p>Restart Xcode.
<div class="ptl_div"><script>
					//<![CDATA[
					document.write('<g:plusone size="standard" annotation="none" href="http://phaser.gfxile.net/wp/2011/07/xcode-4-0-2-and-4-1-distributed-building/"></g:plusone>');
				        //]]&gt;
					</script><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://phaser.gfxile.net/wp/2011/07/xcode-4-0-2-and-4-1-distributed-building/" data-text="Xcode 4.0.2 and 4.1 distributed building" data-count="vertical">Tweet</a>
<div class="ptl_fb"><script>
							//<![CDATA[
							document.write('<fb:like href="http://phaser.gfxile.net/wp/2011/07/xcode-4-0-2-and-4-1-distributed-building/" show_faces="true" width="225"  action="like" font="" colorscheme="light"></fb:like>');
							//]]&gt;
							</script></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://phaser.gfxile.net/wp/2011/07/xcode-4-0-2-and-4-1-distributed-building/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

