<?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>LiraNuna's Development Blog &#187; Releases</title>
	<atom:link href="http://www.liranuna.com/category/releases/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.liranuna.com</link>
	<description>Just another coder</description>
	<lastBuildDate>Sun, 29 Aug 2010 08:09:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>PHP Path Resolution &#8211; Now PHP 5.3 compatible!</title>
		<link>http://www.liranuna.com/php-path-resolution-now-php-5-3-compatible/</link>
		<comments>http://www.liranuna.com/php-path-resolution-now-php-5-3-compatible/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 07:52:40 +0000</pubDate>
		<dc:creator>LiraNuna</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[path resolution]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.liranuna.com/?p=1125</guid>
		<description><![CDATA[Presenting the PHP 5.3 compatible version of my PHP path resolution class! Why there should be a difference? Because my original version used create_function, which&#8230; created a whole new function object every time you used one of the class&#8217;s methods. This was very memory expensive and even incurred a slight performance hit. The new version [...]]]></description>
			<content:encoded><![CDATA[<p>Presenting the PHP 5.3 compatible version of my PHP path resolution class!</p>
<p>Why there should be a difference? Because my <a href="http://www.liranuna.com/php-path-resolution-class-relative-paths-made-easy/">original version</a> used <a href="http://php.net/manual/en/function.create-function.php">create_function</a>, which&#8230; created a whole new function object every time you used one of the class&#8217;s methods. This was very memory expensive and even incurred a slight performance hit.</p>
<p><span id="more-1125"></span></p>
<p>The new version uses PHP 5.3&#8242;s <a href="http://www.php.net/manual/en/functions.anonymous.php">anonymous functions </a>to create more readable code in addition to reducing memory consumption and execution time.</p>
<p>As usual, the source code is under the <a href="http://sam.zoy.org/wtfpl/">WTFPL</a> for you to enjoy without any restrictions.</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>
&nbsp;
<span style="color: #009933; font-style: italic;">/**
 * @class Path
 *
 * @brief Utility class that handles file and directory pathes
 *
 * This class handles basic important operations done to file system paths.
 * It safely renders relative pathes and removes all ambiguity from a relative path.
 *
 * @author Liran Nuna
 */</span>
final <span style="color: #000000; font-weight: bold;">class</span> Path
<span style="color: #009900;">&#123;</span>
	<span style="color: #009933; font-style: italic;">/**
	 * Returns the parent path of this path.
	 * &quot;/path/to/directory&quot; will return &quot;/path/to&quot;
	 *
	 * @arg $path	The path to retrieve the parent path from
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">normalize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * Returns the last item on the path.
	 * &quot;/path/to/directory&quot; will return &quot;directory&quot;
	 *
	 * @arg $path	The path to retrieve the base from
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #990000;">basename</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #990000;">basename</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">normalize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * Normalizes the path for safe usage
	 * This function does several operations to the given path:
	 *   * Removes unnecessary slashes (///path//to/////directory////)
	 *   * Removes current directory references (/path/././to/./directory/./././)
	 *   * Renders relative pathes (/path/from/../to/somewhere/in/../../directory)
	 *
	 * @arg $path	The path to normalize
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> normalize<span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #990000;">array_reduce</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #339933;">,</span> <span style="color: #000088;">$b</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span> <span style="color: #339933;">===</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
				<span style="color: #000088;">$a</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$b</span> <span style="color: #339933;">===</span> <span style="color: #0000ff;">&quot;&quot;</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$b</span> <span style="color: #339933;">===</span> <span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span>
				<span style="color: #b1b100;">return</span> <span style="color: #000088;">$a</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$b</span> <span style="color: #339933;">===</span> <span style="color: #0000ff;">&quot;..&quot;</span><span style="color: #009900;">&#41;</span>
				<span style="color: #b1b100;">return</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #b1b100;">return</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\/+/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$a</span>/<span style="color: #006699; font-weight: bold;">$b</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * Combines a list of pathes to one safe path
	 *
	 * @arg $root	The path or array with values to combine into a single path
	 * @arg ...		Relative pathes to root or arrays
	 *
	 * @note		This function works with multi-dimentional arrays recursively.
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> combine<span style="color: #009900;">&#40;</span><span style="color: #000088;">$root</span><span style="color: #339933;">,</span> <span style="color: #000088;">$rel1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$arguments</span> <span style="color: #339933;">=</span> <span style="color: #990000;">func_get_args</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">normalize</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array_reduce</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arguments</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #339933;">,</span><span style="color: #000088;">$b</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
				<span style="color: #000088;">$a</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_reduce</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Path::combine'</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: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$b</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
				<span style="color: #000088;">$b</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_reduce</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$b</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Path::combine'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$a</span>/<span style="color: #006699; font-weight: bold;">$b</span>&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * Empty, private constructor, to prevent instantiation
	 */</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// Prevents instantiation</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.liranuna.com/php-path-resolution-now-php-5-3-compatible/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diff parser for CodeMirror</title>
		<link>http://www.liranuna.com/diff-parser-for-codemirror/</link>
		<comments>http://www.liranuna.com/diff-parser-for-codemirror/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 02:56:36 +0000</pubDate>
		<dc:creator>LiraNuna</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.liranuna.com/?p=1108</guid>
		<description><![CDATA[I wrote a quick diff parser for  CodeMirror. CodeMirror is a real-time code editor for your browser. I know that diff isn&#8217;t a format edited by humans, but I found myself needing the diff syntax highlight where other code is shown. More on that soon. Live Example, Download the parser.]]></description>
			<content:encoded><![CDATA[<p>I wrote a quick diff parser for  <a href="http://marijn.haverbeke.nl/codemirror/"> CodeMirror</a>.</p>
<p>CodeMirror is a real-time code editor for your browser. I know that diff isn&#8217;t a format edited by humans, but I found myself needing the diff syntax highlight where other code is shown.<br />
More on that soon.</p>
<p><a href="http://liranuna.com/codemirror-diff/">Live Example</a>, <a href="http://www.liranuna.com/wordpress/wp-content/uploads/2010/02/codemirror-diff.zip">Download the parser</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liranuna.com/diff-parser-for-codemirror/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>libellen on devkitARM r26</title>
		<link>http://www.liranuna.com/libellen-on-devkitarm-r26/</link>
		<comments>http://www.liranuna.com/libellen-on-devkitarm-r26/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 17:30:48 +0000</pubDate>
		<dc:creator>LiraNuna</dc:creator>
				<category><![CDATA[Releases]]></category>
		<category><![CDATA[libellen]]></category>

		<guid isPermaLink="false">http://www.liranuna.com/?p=1066</guid>
		<description><![CDATA[Thanks to a contributed patch from Iván Vodopiviz, libellen now works on the latest release of devkitARM. libellen also recieved an official svn repository, incorporating this patch. Get libellen latest sources from svn using: svn co http://svn.liranuna.com/libellen/trunk ellen Current revision is 4, so this release is named libellen r4.]]></description>
			<content:encoded><![CDATA[<p>Thanks to a contributed patch from Iván Vodopiviz, libellen now works on the latest release of <a href="http://www.devkitpro.org/">devkitARM</a>.</p>
<p>libellen also recieved an official svn repository, incorporating this patch. Get libellen latest sources from svn using:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #c20cb9; font-weight: bold;">co</span> http:<span style="color: #000000; font-weight: bold;">//</span>svn.liranuna.com<span style="color: #000000; font-weight: bold;">/</span>libellen<span style="color: #000000; font-weight: bold;">/</span>trunk ellen</pre></div></div>

<p>Current revision is 4, so this release is named libellen r4.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liranuna.com/libellen-on-devkitarm-r26/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NDS Blending Demo</title>
		<link>http://www.liranuna.com/nds-blending-demo/</link>
		<comments>http://www.liranuna.com/nds-blending-demo/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 02:16:09 +0000</pubDate>
		<dc:creator>LiraNuna</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.liranuna.com/?p=858</guid>
		<description><![CDATA[First I would like to start with the fact that this demo was lying around in my HDD since Halloween. This demo was written to demonstrate how easy it is to utilize the DS&#8217;s hardware blending and create impressive effects with no effort. In this demo, the witch is flying in the sky, and whenever [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-859 alignnone" title="blending-demo" src="http://www.liranuna.com/wordpress/wp-content/uploads/2009/04/blending-demo.png" alt="blending-demo" width="256" height="192" /></p>
<p style="text-align: left;">First I would like to start with the fact that this demo was lying around in my HDD since Halloween.</p>
<p style="text-align: left;">This demo was written to demonstrate how easy it is to utilize the DS&#8217;s hardware blending and create impressive effects with no effort. In this demo, the witch is flying in the sky, and whenever she&#8217;s hovering between the moon, she turns black, because the light from the moon illusions it as such.</p>
<p style="text-align: left;">The demo is composed of 2 backgrounds and a sprite. the sprite is set to blend with the first background (the moon) with 0 blending, resulting the black color.</p>
<p style="text-align: left;">Download: <a href="http://www.liranuna.com/wordpress/wp-content/uploads/2009/04/blending-demo.zip">blending-demo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liranuna.com/nds-blending-demo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rhythmbox &#8216;Now Playing&#8217; script for XChat</title>
		<link>http://www.liranuna.com/rhythmbox-now-playing-script-for-xchat/</link>
		<comments>http://www.liranuna.com/rhythmbox-now-playing-script-for-xchat/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 04:39:58 +0000</pubDate>
		<dc:creator>LiraNuna</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.liranuna.com/?p=846</guid>
		<description><![CDATA[This is a small script I wrote for myself when using XChat and Rhythmbox. Ever since the latest Rhythmbox release, there has been an undocumented feature in rhythmbox-client to print the string received from shoutcast streams, such as my favorite di.fm radio, which I normally have on. I found several xchat-rhythmbox announcers but they all [...]]]></description>
			<content:encoded><![CDATA[<p>This is a small script I wrote for myself when using <a href="http://www.xchat.org/">XChat</a> and <a href="http://projects.gnome.org/rhythmbox/">Rhythmbox</a>.</p>
<p>Ever since the latest Rhythmbox release, there has been an undocumented feature in rhythmbox-client to print the string received from shoutcast streams, such as my favorite di.fm radio, which I normally have on. I found several xchat-rhythmbox announcers but they all lacked the ability to determine if rhythmbox currently streams music or listens to a music file.</p>
<p>Now that I actually have free time, I could write a small script to do exactly what I wanted, and I&#8217;ve decided to share it. The source/script is released under the terms of the <a href="http://sam.zoy.org/wtfpl/">WTFPL</a>.</p>
<p>Download link: <a href="http://www.liranuna.com/wordpress/wp-content/uploads/2009/03/rhythmbox_nowplayingtar.gz">rhythmbox_nowplaying.tar.gz</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liranuna.com/rhythmbox-now-playing-script-for-xchat/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>New libellen release</title>
		<link>http://www.liranuna.com/new-libellen-release/</link>
		<comments>http://www.liranuna.com/new-libellen-release/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 19:47:53 +0000</pubDate>
		<dc:creator>LiraNuna</dc:creator>
				<category><![CDATA[libellen]]></category>

		<guid isPermaLink="false">http://www.liranuna.com/?p=779</guid>
		<description><![CDATA[The impossible happened! I actually took some time to clean up and resolve the libellen-libnds collision problems, while also transforming libellen to the traditional library.a file. I also added very primitive background handler &#8211; it works, but don&#8217;t count on it. Download it HERE. Please remember that the source code and library (and everything inside [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-747 aligncenter" style="border: 0pt none;" title="logo.gif" src="http://www.liranuna.com/wordpress/wp-content/uploads/2008/04/logo.gif" alt="" width="32" height="32" /></p>
<p>The impossible happened! I actually took some time to clean up and resolve the libellen-libnds collision problems, while also transforming libellen to the traditional library.a file. I also added very primitive background handler &#8211; it works, but don&#8217;t count on it.</p>
<p>Download it <a href="http://www.liranuna.com/wordpress/wp-content/uploads/2008/09/libellen-source.zip">HERE</a>.</p>
<p>Please remember that the source code and library (and everything inside the zip archive) is released under the terms of the <a href="http://sam.zoy.org/wtfpl/">WTFPL</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liranuna.com/new-libellen-release/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>libellen &#8211; first and final release</title>
		<link>http://www.liranuna.com/libellen-first-and-final-release/</link>
		<comments>http://www.liranuna.com/libellen-first-and-final-release/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 21:39:11 +0000</pubDate>
		<dc:creator>LiraNuna</dc:creator>
				<category><![CDATA[libellen]]></category>

		<guid isPermaLink="false">http://liranuna.drunkencoders.com/libellen-first-and-final-release/</guid>
		<description><![CDATA[Since I&#8217;m not going to do any further development on this (for various reasons), I have decided to release libellen &#8211; a sprite handling library for the Nintendo DS, based on libnds. The library is released under the terms of the WTFPL. The source and &#8220;example&#8221; are super documented, and evena  Doxyfile is attached if [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;"><img src="http://www.liranuna.com/wordpress/wp-content/uploads/2008/04/logo.gif" alt="libellen logo" /></div>
<p>Since I&#8217;m not going to do any further development on this (for various reasons), I have decided to release libellen &#8211; a sprite handling library for the Nintendo DS, based on libnds.</p>
<p>The library is released under the terms of the <a href="http://sam.zoy.org/wtfpl/">WTFPL</a>.</p>
<p>The source and &#8220;example&#8221; are super documented, and evena  Doxyfile is attached if you want to create documentations.<br />
The library was tested and compiled using devkitARM r21 with god-knows-what libnds version. If you find incompatibilities, I&#8217;ll be happy if YOU would fix them.</p>
<p>Have fun and happy coding!</p>
<p>For those who are intrigued by the name &#8211; lib-ell-en (L &#8211; N, my name&#8217;s initials) could also be read as libellen &#8211; dutch for &#8220;Dragonfly&#8221; which is what the logo is based on. For those who wonder, the logo is also released under the terms of the <a href="http://sam.zoy.org/wtfpl/">WTFPL</a>.</p>
<p>Some history:<br />
libellen was first made as the low-level library for ToD2, but was quickly got good enough to be expended. My second goal was also to get people to stop using PAlib, an old, slow and deprecated library which people insisted on using. The library was not complete, but the sprite handling was. after more then 6 months of inactivity, I have decided to release the library to just handle sprites.</p>
<p>Source could be downloaded from <a href="http://www.liranuna.com/wordpress/wp-content/uploads/2008/04/libellen-src.zip">HERE</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liranuna.com/libellen-first-and-final-release/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Lesson 4 is FINALLY out</title>
		<link>http://www.liranuna.com/lesson-4-is-finally-out/</link>
		<comments>http://www.liranuna.com/lesson-4-is-finally-out/#comments</comments>
		<pubDate>Thu, 29 Mar 2007 12:17:17 +0000</pubDate>
		<dc:creator>LiraNuna</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://liranuna.drunkencoders.com/lesson-4-is-finally-out/</guid>
		<description><![CDATA[Yes! After the long waiting time, it&#8217;s finally out. The lesson covers multiple BGs and scrolling.Lately I got more time to myself, so I&#8217;m able to continue on the lesson series. I hope lesson 4 would help people to see the hardware is not as frightening as they might think it is. Lesson 4 is [...]]]></description>
			<content:encoded><![CDATA[<p>Yes! After the long waiting time, it&#8217;s finally out. The lesson covers multiple BGs and scrolling.<br />Lately I got more time to myself, so I&#8217;m able to continue on the lesson series.</p>
<p>I hope lesson 4 would help people to see the hardware is not as frightening as they might think it is.</p>
<p>Lesson 4 is located <a href="http://liranuna.drunkencoders.com/nds-2d-tuts/lesson-4/">HERE</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liranuna.com/lesson-4-is-finally-out/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lessons 2 and 3 fixed</title>
		<link>http://www.liranuna.com/lessons-2-and-3-fixed/</link>
		<comments>http://www.liranuna.com/lessons-2-and-3-fixed/#comments</comments>
		<pubDate>Mon, 26 Mar 2007 13:23:36 +0000</pubDate>
		<dc:creator>LiraNuna</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://liranuna.drunkencoders.com/lessons-2-and-3-fixed/</guid>
		<description><![CDATA[Lessons 2 and 3 had been fixed to be compatible with latest devkitARM/libnds release.Lesson 4 should come some time this week. I am sorry it didn&#8217;t released earlier, I had a major of RealLife problems, including work and army.]]></description>
			<content:encoded><![CDATA[<p>Lessons 2 and 3 had been fixed to be compatible with latest devkitARM/libnds release.<br />Lesson 4 should come some time this week. I am sorry it didn&#8217;t released earlier, I had a major of RealLife problems, including work and army.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liranuna.com/lessons-2-and-3-fixed/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>tileoptimize Released</title>
		<link>http://www.liranuna.com/tileoptimize-released/</link>
		<comments>http://www.liranuna.com/tileoptimize-released/#comments</comments>
		<pubDate>Tue, 06 Mar 2007 12:37:04 +0000</pubDate>
		<dc:creator>LiraNuna</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://liranuna.drunkencoders.com/tileoptimize-released/</guid>
		<description><![CDATA[Tileoptimize is a tool that is aimed to size-optimize tiled images for machines with multiple palettes.Although the output is primarily made for GBA and NDS, it could be easily adjusted to output for other machines aswell.The application will quantisize the colors of the image to NxM sized palette of M colors spreaded over N palettes, [...]]]></description>
			<content:encoded><![CDATA[<p>Tileoptimize is a tool that is aimed to size-optimize tiled images for machines with multiple palettes.<br />Although the output is primarily made for GBA and NDS, it could be easily adjusted to output for other machines aswell.<br />The application will quantisize the colors of the image to NxM sized palette of M colors spreaded over N palettes, <br />resulting a more colorful image in smaller tile size with repeating tile and palette combinations to save size.</p>
<p>Download page is <a href="http://liranuna.drunkencoders.com/misc-projects/tileoptimize/">HERE</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liranuna.com/tileoptimize-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
