<?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>TylerBurton.ca &#187; Tech</title>
	<atom:link href="http://www.tylerburton.ca/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tylerburton.ca</link>
	<description></description>
	<lastBuildDate>Wed, 25 Aug 2010 21:19:15 +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>Trying out the Chakra Project</title>
		<link>http://www.tylerburton.ca/2010/08/trying-out-the-charka-project/</link>
		<comments>http://www.tylerburton.ca/2010/08/trying-out-the-charka-project/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 01:44:17 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Chakra]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[rekonq]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=361</guid>
		<description><![CDATA[After a little bit of pressure from the people responding to my previous post (My search for the best KDE Linux distribution), I have finally given in and tried out Chakra. The Chakra Project starts with Arch Linux as a base but, instead of forcing you to build your own distro piece of piece, Chakra [...]]]></description>
			<content:encoded><![CDATA[<p>After a little bit of pressure from the people responding to my previous post (<a href="http://www.tylerburton.ca/2010/03/my-search-for-the-best-kde-linux-distribution/" target="_blank">My search for the best KDE Linux distribution</a>), I have finally given in and tried out Chakra. <a href="http://chakra-project.org/" target="_blank">The Chakra Project</a> starts with <a href="http://www.archlinux.org/" target="_blank">Arch Linux</a> as a base but, instead of forcing you to <em>build</em> your own distro piece of piece, Chakra comes more or less pre-packaged.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/08/livecd.jpg"><img class="aligncenter size-medium wp-image-364" src="http://www.tylerburton.ca/files/wordpress/2010/08/livecd-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><strong>Installation</strong></p>
<p>The installation was one of the best I&#8217;ve ever seen. For alpha software this distribution&#8217;s first point of interaction is already very polished &#8211; even warning me that it is not stable software and might therefore <em>eat my hamster</em>.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/08/install1.jpg"><img class="aligncenter size-medium wp-image-363" src="http://www.tylerburton.ca/files/wordpress/2010/08/install1-300x222.jpg" alt="" width="300" height="222" /></a></p>
<p>The install process even let me decide to install some very useful packages, like Microsoft Core TTF Fonts and Adobe Flash, right away. Even the Language &amp; Time step was incredible, offering a rotating globe that I could drag around and manipulate.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/08/install2.jpg"><img class="aligncenter size-medium wp-image-365" src="http://www.tylerburton.ca/files/wordpress/2010/08/install2-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>The only issue I had was trying to create a disk partition to install the OS to. This was because I was trying this out inside of <a href="http://www.virtualbox.org/" target="_blank">VirtualBox</a>, and the virtual hard disk did not have any partitions on it whatsoever. There is a bug and (thankfully) work-around for this <a href="http://chakra-project.org/wiki/index.php/Frequently_Encountered_Problems#Tribe_can.27t_create_partition_tables" target="_blank">known issue</a> with their Tribe installer, and after reading a quick walk-through I was once again ready to install.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/08/install3.jpg"><img class="size-medium wp-image-365" src="http://www.tylerburton.ca/files/wordpress/2010/08/install3-300x223.jpg" alt="" width="300" height="225" align="center" /></a><a href="http://www.tylerburton.ca/files/wordpress/2010/08/install4.jpg"><img class="size-medium wp-image-365" src="http://www.tylerburton.ca/files/wordpress/2010/08/install4-300x224.jpg" alt="" width="300" height="225" align="center" /></a></p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/08/install5.jpg"><img class="size-medium wp-image-365" src="http://www.tylerburton.ca/files/wordpress/2010/08/install5-300x221.jpg" alt="" width="300" height="225" align="center" /></a><a href="http://www.tylerburton.ca/files/wordpress/2010/08/install6.jpg"><img class="size-medium wp-image-365" src="http://www.tylerburton.ca/files/wordpress/2010/08/install6-300x223.jpg" alt="" width="300" height="225" align="center" /></a></p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/08/install7.jpg"><img class="size-medium wp-image-365" src="http://www.tylerburton.ca/files/wordpress/2010/08/install7-300x225.jpg" alt="" width="300" height="225" align="center" /></a><a href="http://www.tylerburton.ca/files/wordpress/2010/08/install8.jpg"><img class="size-medium wp-image-365" src="http://www.tylerburton.ca/files/wordpress/2010/08/install8-300x222.jpg" alt="" width="300" height="225" align="center" /></a></p>
<p><strong>The Desktop</strong></p>
<p>The desktop is standard KDE version 4.4.2 after install. Opening up Pacman (or is it Shaman?) showed me a list of brand new software that I could install, including the newest KDE 4.5. One of Project Chakra&#8217;s great strengths will be in this rolling release of new software updates. The concept of installing once and <em>always</em> having the most up-to-date applications is very intriguing.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/08/shaman.jpg"><img class="aligncenter size-medium wp-image-377" src="http://www.tylerburton.ca/files/wordpress/2010/08/shaman-300x205.jpg" alt="" width="300" height="205" /></a></p>
<p>Unfortunately, as with most alpha software, Shaman is still pretty buggy and often crashed whenever I tried to apply the updates. Also unfortunate is that Shaman started a trend of applications simply crashing for no reason. I don&#8217;t want to give this distribution a bad reputation, because it is still pre-release software, but I think it goes without saying that the developers have some bug squashing to do before a stable release will be ready. Something I found rather strange is that the current default software selection that Chakra ships with includes two different browsers, Konqueror and rekonq, but no office software whatsoever.</p>
<div id="attachment_379" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.tylerburton.ca/files/wordpress/2010/08/rekonq.jpg"><img class="size-medium wp-image-379" src="http://www.tylerburton.ca/files/wordpress/2010/08/rekonq-300x213.jpg" alt="" width="300" height="213" /></a><p class="wp-caption-text">Google Chrome much?</p></div>
<p><strong>Final Thoughts (for now!)<br />
</strong></p>
<p>The Chakra Project looks very promising, albeit very unpolished at the moment. If they can manage to fix up the rest of the distribution, getting it just as polished feeling as the installer, this will definitely be one to look out for. I look forward to trying it out again once it hits a stable release.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.tylerburton.ca/2010/08/trying-out-the-charka-project/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.tylerburton.ca/2010/08/trying-out-the-charka-project/&amp;title=Trying+out+the+Chakra+Project" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.tylerburton.ca/2010/08/trying-out-the-charka-project/&amp;title=Trying+out+the+Chakra+Project" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.tylerburton.ca/2010/08/trying-out-the-charka-project/&amp;t=Trying+out+the+Chakra+Project" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.tylerburton.ca/2010/08/trying-out-the-charka-project/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.tylerburton.ca/2010/08/trying-out-the-charka-project/&amp;title=Trying+out+the+Chakra+Project" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://www.tylerburton.ca/2010/08/trying-out-the-charka-project/&amp;title=Trying+out+the+Chakra+Project" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.tylerburton.ca/2010/08/trying-out-the-charka-project/&amp;title=Trying+out+the+Chakra+Project" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Trying+out+the+Chakra+Project+-+http://b2l.me/aks9qf&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/08/trying-out-the-charka-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make Java GUIs less ugly (&#8230;or how I learned to love SWT)</title>
		<link>http://www.tylerburton.ca/2010/08/make-java-guis-less-ugly-or-how-i-learned-to-love-swt/</link>
		<comments>http://www.tylerburton.ca/2010/08/make-java-guis-less-ugly-or-how-i-learned-to-love-swt/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 02:47:06 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OSX]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[AWT]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Swing]]></category>
		<category><![CDATA[SWT]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=340</guid>
		<description><![CDATA[It&#8217;s no secret that while Java possess probably the most widely distributed, cross-platform, and common user interface libraries, graphical Java applications on the whole simply stand out for the wrong reasons. Whether the GUI comes in the form of the Abstract Window Toolkit (AWT) or Swing, each can be far from pretty and often do not [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s no secret that while Java possess probably the most widely distributed, cross-platform, and common user interface libraries, graphical Java applications on the whole simply stand out for the wrong reasons. Whether the GUI comes in the form of the <a href="http://en.wikipedia.org/wiki/Abstract_Window_Toolkit" target="_blank">Abstract Window Toolkit (AWT)</a> or <a href="http://en.wikipedia.org/wiki/Swing_%28Java%29" target="_blank">Swing</a>, each can be far from pretty and often do not mesh well with the platform they are being run on. For instance, running an AWT or Swing application can be an almost alien experience, no matter what operating system you are using, because neither uses the native control widgets. Even AWT, being a &#8216;thin&#8217; layer above the native controls, often looks completely bizarre. On Windows Vista AWT looks more like Windows 3.1 than anything else. Thankfully there is a nice alternative in the IBM created (and now Eclipse maintained) <a href="http://www.eclipse.org/swt/" target="_blank">SWT</a>.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/08/vis-example.png"><img class="aligncenter size-full wp-image-346" title="Windows Vista" src="http://www.tylerburton.ca/files/wordpress/2010/08/vis-example.png" alt="" width="225" height="225" /></a></p>
<p>The <a href="http://en.wikipedia.org/wiki/Standard_Widget_Toolkit" target="_blank">Standard Widget Toolkit</a>, or SWT, passes all GUI rendering responsibilities onto the host operating system. This allows for some interesting advantages like hardware rendered drawing for free (as an example). It also provides for a native look and feel because its <em>actually</em> using the real native widgets. So when run on Windows it looks like a regular Windows application and when run on Linux it looks like a Linux (GTK+) application. It also works on the Mac as well as a few other obscure platforms.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/08/lin-example.png"><img class="aligncenter size-full wp-image-345" title="Linux GTK+" src="http://www.tylerburton.ca/files/wordpress/2010/08/lin-example.png" alt="" width="212" height="224" /></a></p>
<p>Unfortunately because the application is now creating widgets outside of the JVM you are suddenly responsible for freeing the memory. There is <strong>no</strong> automatic garbage collection in the world of SWT. It&#8217;s not all bad however as freeing a parent object, like a window (referred to as a <em>shell</em> in SWT lingo), automatically frees all of its related child objects as well. Simply call the <em>.dispose()</em> method and 9 times out of 10 you are done.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/08/mac-example.png"><img class="aligncenter size-full wp-image-347" title="Mac OSX" src="http://www.tylerburton.ca/files/wordpress/2010/08/mac-example.png" alt="" width="232" height="237" /></a></p>
<p>Another other caveat is that you will still need to package the correct swt.jar file for your target platform. For instance Windows has its own version of swt.jar, as does Linux, and Mac, and so on and so forth. While this is rather annoying it does offer some interesting trade-offs. For instance you do not need to recompile your code just because you want to run it on a different platform; simply swap out the swt.jar file and watch as the <em>exact same code</em> generates completely different native GUIs. I even wrote a simple program that first checks what platform it is being run on and then downloads the correct swt.jar file before launching the GUI. This makes releasing the exact same package very simple.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/08/win-example.png"><img class="aligncenter size-full wp-image-351" title="Windows XP" src="http://www.tylerburton.ca/files/wordpress/2010/08/win-example.png" alt="" width="216" height="204" /></a></p>
<p>So how do you start using SWT? Head over to <a href="http://www.eclipse.org/swt/" target="_blank">http://www.eclipse.org/swt/</a> and download the newest stable version for your platform of choice. Depending on how you will be programing, all you have to then do is add the enclosed swt.jar to your class path. If you&#8217;re using <a href="http://en.wikipedia.org/wiki/Eclipse_(software)" target="_blank">Eclipse</a>, or a similar <a href="http://en.wikipedia.org/wiki/Swing_(Java)" target="_blank">IDE</a>, you can simply add the source as either part of you project, or as a separate referenced one, and take full advantage of the auto-complete as well. Perhaps I&#8217;ll get around to posting a more thorough how-to guide at some point in the future.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/08/example_with_source.jpg"><img class="aligncenter size-medium wp-image-353" title="Example Window" src="http://www.tylerburton.ca/files/wordpress/2010/08/example_with_source-300x146.jpg" alt="" width="300" height="146" /></a></p>
<p>Like most things in software SWT is not perfect. There are still other challenges to overcome, such as creating each individual platforms&#8217; unique user experience to compliment their native GUI toolkits. That said if you&#8217;re looking for a way to leverage the widespread nature of Java, while still creating an application that <em>looks</em> like it belongs, SWT might just be what you&#8217;re looking for.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.tylerburton.ca/2010/08/make-java-guis-less-ugly-or-how-i-learned-to-love-swt/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.tylerburton.ca/2010/08/make-java-guis-less-ugly-or-how-i-learned-to-love-swt/&amp;title=Make+Java+GUIs+less+ugly+%28...or+how+I+learned+to+love+SWT%29" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.tylerburton.ca/2010/08/make-java-guis-less-ugly-or-how-i-learned-to-love-swt/&amp;title=Make+Java+GUIs+less+ugly+%28...or+how+I+learned+to+love+SWT%29" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.tylerburton.ca/2010/08/make-java-guis-less-ugly-or-how-i-learned-to-love-swt/&amp;t=Make+Java+GUIs+less+ugly+%28...or+how+I+learned+to+love+SWT%29" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.tylerburton.ca/2010/08/make-java-guis-less-ugly-or-how-i-learned-to-love-swt/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.tylerburton.ca/2010/08/make-java-guis-less-ugly-or-how-i-learned-to-love-swt/&amp;title=Make+Java+GUIs+less+ugly+%28...or+how+I+learned+to+love+SWT%29" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://www.tylerburton.ca/2010/08/make-java-guis-less-ugly-or-how-i-learned-to-love-swt/&amp;title=Make+Java+GUIs+less+ugly+%28...or+how+I+learned+to+love+SWT%29" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.tylerburton.ca/2010/08/make-java-guis-less-ugly-or-how-i-learned-to-love-swt/&amp;title=Make+Java+GUIs+less+ugly+%28...or+how+I+learned+to+love+SWT%29" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Make+Java+GUIs+less+ugly+%28...or+how+I+learned+to+love+SWT%29+-+http://b2l.me/akassu&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/08/make-java-guis-less-ugly-or-how-i-learned-to-love-swt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some quick tips to speed up Java and lower it&#8217;s memory usage</title>
		<link>http://www.tylerburton.ca/2010/08/some-quick-tips-to-speed-up-java-and-lower-its-memory-usage/</link>
		<comments>http://www.tylerburton.ca/2010/08/some-quick-tips-to-speed-up-java-and-lower-its-memory-usage/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 02:32:19 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=335</guid>
		<description><![CDATA[Java is an excellent programming language but too often the JVM seems to slow it down. Yes I know that there have been tremendous speed improvements in recent versions but the fact remains that it can still feel slow. It also tends to use an insane amount of memory to do just about anything (the [...]]]></description>
			<content:encoded><![CDATA[<p>Java is an excellent programming language but too often the JVM seems to slow it down. Yes I know that there have been tremendous speed improvements in recent versions but the fact remains that it can still <em>feel</em> slow. It also tends to use an insane amount of memory to do just about anything (the heap is cheap is the name of the game!). Well thankfully there are ways you can tighten the JVM&#8217;s belt and even fine tune its garbage collection process.</p>
<p><strong>Tune for Performance</strong></p>
<p>Tuning the JVM for performance can be as easy as launching your Java application with a few simple command line options tacked on. For instance you can simply specify that you want to use the server JVM (included in the JDK) instead of the client one. The server JVM is tuned to take slightly longer to start but to run faster in the long run. You can enable the server JVM by passing the <em>-server </em>option. You can also tell the JVM to be more aggressive with its optimizations by adding the option <em>-XX:+AggressiveOpts</em>. Or tell the JVM to cache commonly used strings by passing <em>-XX:+StringCache</em> as an option.</p>
<p><strong>Tune for Memory</strong></p>
<p>Tuning for memory can be just as easy. Here are some useful commands that you can throw at the JVM to lower memory usage. You can set the starting heap size by using the command line option <em>-Xms<strong>n</strong> </em>where <strong>n</strong> is the size. For instance -Xms2048k or -Xms2m (each 2MiB in size) are both valid. Alternatively to set the maximum heap size you can use <em>-Xmx<strong>n</strong> </em>where <strong>n</strong> is specified as above. This will force the JVM to attempt to keep the program within that heap size (by being far more aggressive with garbage collection). However this can be dangerous because your program will crash if it simply cannot fit within the maximum set size. Additionally you can also set the thread stack size by using <em>-Xss<strong>n</strong><span style="font-style: normal;">,</span> </em>again similar to above, but this might be even <em>more</em> dangerous than setting the overall program heap size. Finally you can enable a parallel garbage collector by using the command <em>-XX:+UseParallelGC</em>. This should <em>hopefully</em> speed up reference check searchings and the overall garbage collection rate.</p>
<p>Using the above methods you can really customize Java to run exactly as you wish on your machine. It might not be perfect, but with a little bit of work it can be a lot better than the defaults.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.tylerburton.ca/2010/08/some-quick-tips-to-speed-up-java-and-lower-its-memory-usage/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.tylerburton.ca/2010/08/some-quick-tips-to-speed-up-java-and-lower-its-memory-usage/&amp;title=Some+quick+tips+to+speed+up+Java+and+lower+it%27s+memory+usage" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.tylerburton.ca/2010/08/some-quick-tips-to-speed-up-java-and-lower-its-memory-usage/&amp;title=Some+quick+tips+to+speed+up+Java+and+lower+it%27s+memory+usage" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.tylerburton.ca/2010/08/some-quick-tips-to-speed-up-java-and-lower-its-memory-usage/&amp;t=Some+quick+tips+to+speed+up+Java+and+lower+it%27s+memory+usage" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.tylerburton.ca/2010/08/some-quick-tips-to-speed-up-java-and-lower-its-memory-usage/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.tylerburton.ca/2010/08/some-quick-tips-to-speed-up-java-and-lower-its-memory-usage/&amp;title=Some+quick+tips+to+speed+up+Java+and+lower+it%27s+memory+usage" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://www.tylerburton.ca/2010/08/some-quick-tips-to-speed-up-java-and-lower-its-memory-usage/&amp;title=Some+quick+tips+to+speed+up+Java+and+lower+it%27s+memory+usage" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.tylerburton.ca/2010/08/some-quick-tips-to-speed-up-java-and-lower-its-memory-usage/&amp;title=Some+quick+tips+to+speed+up+Java+and+lower+it%27s+memory+usage" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Some+quick+tips+to+speed+up+Java+and+lower+it%27s+memory+usage+-+http://b2l.me/ajbzmc&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/08/some-quick-tips-to-speed-up-java-and-lower-its-memory-usage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GUI creation: XML versus programmatic</title>
		<link>http://www.tylerburton.ca/2010/07/gui-creation-xml-versus-programmatic/</link>
		<comments>http://www.tylerburton.ca/2010/07/gui-creation-xml-versus-programmatic/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 02:56:01 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Glade]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=321</guid>
		<description><![CDATA[Is the new push toward XML based GUI really a good thing?]]></description>
			<content:encoded><![CDATA[<p>Recently I have been messing around with the <a href="http://glade.gnome.org/" target="_blank">Glade interface designer</a>, a rapid application development tool that allows you to create full <a href="http://www.gtk.org/" target="_blank">GTK+</a> user interfaces very easily. The neat thing about this tool is that it saves the GUI as an XML document, which is then hooked into your code through various language specific &#8216;sketchers&#8217;. These sketchers read in the XML and generate the corresponding &#8216;native&#8217; code interfaces &#8211; often at runtime. There seems to be a big push toward these types of XML-based user interface solutions, Microsoft is pushing <a href="http://en.wikipedia.org/wiki/XAML" target="_blank">XMAL</a> through its <a href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation" target="_blank">Windows Presentation Foundation</a> technology as just one example, and it got me thinking: is this really the best way to go?</p>
<p><strong>Pros</strong></p>
<p>XML offers a number of unique and interesting benefits when compared to the classic programmatic style of user interface creation. For one it represents a true separation of the &#8220;view&#8221; from the logic of the application. This is incredibly important to a long-term modular design. In addition, by storing the user interface in a file external to the application itself, it allows for complete GUI changes just by updating the single XML file &#8211; you don&#8217;t even need to recompile the code! This is a huge benefit when testing how users interact with various interface designs or changes and makes A-B testing a snap. Similarly if you want to have various custom front-ends to the same application, say a basic user interface as well as an administrator interface, you can simply distribute your application with two different GUI files. Finally, and most importantly, XML is completely language independent. Thinking about changing your application code base from C to Python? No need to re-write your GUI. This in turn leads to better GUI-specific development tools (like Glade) that aren&#8217;t constrained by any language&#8217;s particular quirks. The flexibility of XML is where this approach really shines.</p>
<p><strong>Cons</strong></p>
<p>Depending on how it is used XML can have not only a performance impact but also a security one as well. Both of these are especially prevalent when using external GUI files. For instance, a program that loads the GUI from an external file must first read and parse said file every single time the application starts. This is an operation that would otherwise have been avoided by using a pre-compiled programmatic GUI. Next while the ability to completely swap out the GUI without re-compiling the code is pretty cool it can also lead to some&#8230; unintended consequences. Take this bit of Glade XML as an example:</p>
<blockquote>
<div id="_mcePaste">&lt;widget id=&#8221;myWindow&#8221;&gt;</div>
<div id="_mcePaste">&#8230;</div>
<div>&lt;signal name=&#8221;destroy&#8221; handler=&#8221;on_myWindow_destroy&#8221;/&gt;</div>
<div>&#8230;</div>
<div>&lt;widget id=&#8221;myWindow&#8221;&gt;</div>
</blockquote>
<div>This snippet of GUI XML tells the sketcher to create a a widget called &#8220;myWindow&#8221; which emits a &#8220;destroy&#8221; signal that should be handled by a function called &#8220;on_myWindow_destroy&#8221;. All seems fine&#8230; until some mischievous individual goes and changes either the signal or the handler (or both!). Now your debugged and polished program is doing things you absolutely did not expect. I will however take this moment to point out that at least in the case of GtkBuilder (a sketcher that you can use with Glade) you do not always have to load the XML from an external file. Instead you <em>could</em> embed the XML string inside your program if you don&#8217;t want people messing around with it.</div>
<p><strong>Conclusion</strong></p>
<div>While there are some definite trade-offs to using XML I kind of like the direction it&#8217;s taking overall application design. So long as you adhere to safe programming techniques I see no real disadvantage with using XML as a definition language for your application&#8217;s intricate GUI. Just be sure to validate the XML, at the very least, before allowing your application to run with it. There&#8217;s a reason why god invented <a href="http://en.wikipedia.org/wiki/Digital_signatures" target="_blank">digital signatures</a> <img src='http://www.tylerburton.ca/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.tylerburton.ca/2010/07/gui-creation-xml-versus-programmatic/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.tylerburton.ca/2010/07/gui-creation-xml-versus-programmatic/&amp;title=GUI+creation%3A+XML+versus+programmatic" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.tylerburton.ca/2010/07/gui-creation-xml-versus-programmatic/&amp;title=GUI+creation%3A+XML+versus+programmatic" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.tylerburton.ca/2010/07/gui-creation-xml-versus-programmatic/&amp;t=GUI+creation%3A+XML+versus+programmatic" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.tylerburton.ca/2010/07/gui-creation-xml-versus-programmatic/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.tylerburton.ca/2010/07/gui-creation-xml-versus-programmatic/&amp;title=GUI+creation%3A+XML+versus+programmatic" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://www.tylerburton.ca/2010/07/gui-creation-xml-versus-programmatic/&amp;title=GUI+creation%3A+XML+versus+programmatic" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.tylerburton.ca/2010/07/gui-creation-xml-versus-programmatic/&amp;title=GUI+creation%3A+XML+versus+programmatic" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=GUI+creation%3A+XML+versus+programmatic+-+File: /data/app/webapp/functions.php<br />Line: 43<br />Message: Table 'b2l_shrinker.phurl_urls' doesn't exist&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/07/gui-creation-xml-versus-programmatic/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My 5 minute iOS 4 review</title>
		<link>http://www.tylerburton.ca/2010/06/my-5-minute-ios-4-review/</link>
		<comments>http://www.tylerburton.ca/2010/06/my-5-minute-ios-4-review/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 19:26:25 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iOS 4]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=300</guid>
		<description><![CDATA[There has been far too much iPhone related news lately but I feel as though I should at least weigh in with my thoughts on the new iPhone OS. I have been running iOS 4 on my iPhone 3GS since it was officially released about a week ago. Rather than write a lengthy review I [...]]]></description>
			<content:encoded><![CDATA[<p>There has been <em>far</em> too much iPhone related news lately but I feel as though I should at least weigh in with my thoughts on the new iPhone OS. I have been running <a href="http://www.apple.com/ipodtouch/ios4-software-update.html" target="_blank">iOS 4</a> on my <a href="http://en.wikipedia.org/wiki/IPhone_3GS" target="_blank">iPhone 3GS</a> since it was officially released about a week ago. Rather than write a lengthy review I figured I would simply add my short comments about the major new features. This should, hopefully, result in a very quick and informative review.</p>
<p><strong>Multitasking</strong></p>
<p><strong><a href="http://www.tylerburton.ca/files/wordpress/2010/06/img_0378.png"><img class="aligncenter size-medium wp-image-302" title="img_0378" src="http://www.tylerburton.ca/files/wordpress/2010/06/img_0378-200x300.png" alt="" width="200" height="300" /></a><br />
</strong></p>
<p>This is the big new feature and honestly the one that you&#8217;ll forget about the quickest. What do I mean by this? The multitasking implementation in iOS 4 is so seamless that the new double-tap on the home button paradigm works far better as a quick app switcher than as a task manager. Don&#8217;t read this as a negative however; all user interfaces should strive to do as good of a job at &#8216;hiding&#8217; such a fundamental change to the OS by building it into a user-centric design. Do all the apps on my phone multitask? Heck no, but I couldn&#8217;t even tell you which do and which don&#8217;t and that right there is the real genius behind this design.</p>
<p><strong>Folders</strong></p>
<p><strong><a href="http://www.tylerburton.ca/files/wordpress/2010/06/img_0379.png"><img class="aligncenter size-medium wp-image-304" title="img_0379" src="http://www.tylerburton.ca/files/wordpress/2010/06/img_0379-200x300.png" alt="" width="200" height="300" /></a><br />
</strong></p>
<p>Far from perfect, folders are a welcome change to the iPhone experience. I was able to cut down the number of app screens on my device from about 10 to only 2. My only real complaint about folders is the fixed limit to the number of apps you can put in each, a maximum of 12 per folder. I would almost prefer to have the option to put all of my games in a single folder and then scroll through them as a list instead.</p>
<p><strong>Wallpaper</strong></p>
<p><strong><a href="http://www.tylerburton.ca/files/wordpress/2010/06/img_0380.png"><img class="aligncenter size-medium wp-image-305" title="img_0380" src="http://www.tylerburton.ca/files/wordpress/2010/06/img_0380-200x300.png" alt="" width="200" height="300" /></a><br />
</strong></p>
<p>The background wallpaper is a nice addition. It&#8217;s obviously nothing groundbreaking but it does add a nice personalized feel to the phone. This &#8216;feature&#8217; will not work on the older 3G model because of the slower hardware. If that statement sounds ridiculous to you then you obviously haven&#8217;t played with the update enough to notice the new animations. iOS 4 literally vomits animation at you every chance it gets.</p>
<p><strong>Mail</strong></p>
<p><strong><a href="http://www.tylerburton.ca/files/wordpress/2010/06/img_0381.png"><img class="aligncenter size-medium wp-image-306" title="img_0381" src="http://www.tylerburton.ca/files/wordpress/2010/06/img_0381-200x300.png" alt="" width="200" height="300" /></a><br />
</strong></p>
<p>By far the best part of the upgrade, mail saw the addition of a unified inbox (where all of your accounts can filter into one place) and e-mail threading. I have four e-mail accounts on my device and switching between their individual inboxes was always a pain. But now with the unified inbox I can quickly get all of my updates and respond to all of the messages very quickly. Threaded e-mail is also awesome and is something sorely missing from many other phones and even desktop clients. Once you start using a threaded e-mail client, like Gmail or Thunderbird, it is very hard to go back to the old way of doing things. Now I don&#8217;t have to! I only encountered one issue with the new mail app. The first time I ran the app it seemed liked it was indexing all my stored mail which really slowed the app down. Since then however it works like a charm.</p>
<p><strong>Photo and Camera</strong></p>
<p><strong> </strong></p>
<div id="attachment_307" class="wp-caption aligncenter" style="width: 210px"><strong><strong><a href="http://www.tylerburton.ca/files/wordpress/2010/06/IMG_0391.png"><img class="size-medium wp-image-307" title="IMG_0391" src="http://www.tylerburton.ca/files/wordpress/2010/06/IMG_0391-200x300.png" alt="" width="200" height="300" /></a></strong></strong><p class="wp-caption-text">On an unrelated note I REALLY need to clean my phone&#39;s camera lens</p></div>
<p><strong> </strong></p>
<p>There is now a 5x digital zoom for the camera which is so easy to operate a child could use it. Simply tap on the screen and the control appears as a slider at the bottom. Sliding it to the right zooms in, to the left zooms out. Simple, easy, elegant. It&#8217;s just a shame that digital zoom sucks too much to be really useful.</p>
<p>Adding focus to the video camera is also nice but this feature might be put to better use on the new iPhone 4G hardware where the video camera is actually worth using.</p>
<p>A new tab for a geo-tagged map overlay has also been added to the photo app which will show you where you took each picture. It&#8217;s neat but not really something I think I&#8217;ll be using often.</p>
<p><strong>iPod</strong></p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/06/img_0387.png"><img class="aligncenter size-medium wp-image-308" title="img_0387" src="http://www.tylerburton.ca/files/wordpress/2010/06/img_0387-200x300.png" alt="" width="200" height="300" /></a></p>
<p>The iPod app user interface got a bit of an overhaul and it now shows more information in a much more streamlined and effective way. It also lets you manage playlists (beyond the simple &#8216;on-the-go&#8217; ones) right on the device itself. Music playback has always been one of the great strengths of this platform and its nice to see Apple hasn&#8217;t forgotten where their success has come from.</p>
<p><strong>Others<br />
</strong></p>
<p>E-mail attachments can now be set up to be opened by any application, third-party or otherwise. This should make the e-mail experience far more flexible and help enterprise deployments open home-grown data sources. I&#8217;m also hoping to see a PGP application take advantage of this soon.</p>
<p>Calendar has had a couple of improvements but the biggest change is the addition of full support for .ics calendar entries. This has been a missing feature from day one and it is nice to see that the ability is finally here.</p>
<p>iBooks has been added the the iPhone which should help people who want to read a page or two on the bus to school or work. Other than that I just don&#8217;t see this as such a big deal. Afterall who would want to read a whole book on a device as small as a phone?</p>
<p>In both Spotlight (the device wide search) and Safari Wikipedia and your selected search engine will offer suggestions for what you are trying to find. While this feature is nice it does slow down the search results slightly as it tries to retrieve suggestions from the web in real time. If it becomes too annoying you can turn it off.</p>
<p>iOS 4 also brought some much needed security improvements including the option for a full text password (no longer just a 4-digit one) and full device encryption. Again this is a feature that was missing since the launch of the iPhone for no really good reason.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/06/IMG_0393.png"><img class="aligncenter size-medium wp-image-310" title="IMG_0393" src="http://www.tylerburton.ca/files/wordpress/2010/06/IMG_0393-200x300.png" alt="" width="200" height="300" /></a></p>
<p>Spellcheck has also been added which offers some nice suggestions when the auto-complete isn&#8217;t quite sure what you meant to type. It works in a similar way to copy &amp; paste which makes it instantly accessible to anyone used to the phone.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/06/IMG_0394.png"><img class="aligncenter size-medium wp-image-311" title="IMG_0394" src="http://www.tylerburton.ca/files/wordpress/2010/06/IMG_0394-200x300.png" alt="" width="200" height="300" /></a></p>
<p>A slew of enterprise features were added as well but seeing as I&#8217;m not in charge of any enterprise deployments most of these additions were lost on me.</p>
<p><strong>Overall</strong></p>
<p>Overall the iOS 4 feels faster in general but not without some slowdown in specific cases, such as mail above. Even with these oddities the update allows you to be much more productive than ever before and so on the whole it is still faster in almost every <em>practical</em> use case. As a computer science graduate I am far more interested in the addition of APIs and tweaks under the hood and from everything I have read or experienced it all looks very good.</p>
<p><strong>Conclusion</strong></p>
<p>The iOS 4, while not completely revolutionary in any way, is a strong evolutionary upgrade and well worth your time. Just be warned that if you are upgrading your 3G it may take a while.</p>
<p>Update size: 378MiB<br />
Time to install: about 10 minutes to update + phone restart + 10KiB carrier update + phone backup ~= 15 minutes total</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.tylerburton.ca/2010/06/my-5-minute-ios-4-review/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.tylerburton.ca/2010/06/my-5-minute-ios-4-review/&amp;title=My+5+minute+iOS+4+review" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.tylerburton.ca/2010/06/my-5-minute-ios-4-review/&amp;title=My+5+minute+iOS+4+review" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.tylerburton.ca/2010/06/my-5-minute-ios-4-review/&amp;t=My+5+minute+iOS+4+review" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.tylerburton.ca/2010/06/my-5-minute-ios-4-review/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.tylerburton.ca/2010/06/my-5-minute-ios-4-review/&amp;title=My+5+minute+iOS+4+review" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://www.tylerburton.ca/2010/06/my-5-minute-ios-4-review/&amp;title=My+5+minute+iOS+4+review" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.tylerburton.ca/2010/06/my-5-minute-ios-4-review/&amp;title=My+5+minute+iOS+4+review" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=My+5+minute+iOS+4+review+-+http://b2l.me/6wv6f&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/06/my-5-minute-ios-4-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing gnustep-devel in Ubuntu 10.04</title>
		<link>http://www.tylerburton.ca/2010/05/fixing-gnustep-devel-in-ubuntu-10-04/</link>
		<comments>http://www.tylerburton.ca/2010/05/fixing-gnustep-devel-in-ubuntu-10-04/#comments</comments>
		<pubDate>Mon, 17 May 2010 22:00:44 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[GNUstep]]></category>
		<category><![CDATA[gnustep-devel]]></category>
		<category><![CDATA[gorm.app]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ubuntu 10.04]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=288</guid>
		<description><![CDATA[When Ubuntu 10.04 was released it represented the most modern incarnation of Canonical&#8217;s premier Linux desktop distribution. However not all things were better in this release. For myself I immediately noticed a problem while trying to install the gnustep-devel development libraries for GNUstep and Objective-C. I was greeted with this oh so lovely error message: [...]]]></description>
			<content:encoded><![CDATA[<p>When <a href="http://www.ubuntu.com" target="_blank">Ubuntu 10.04</a> was released it represented the most modern incarnation of Canonical&#8217;s premier Linux desktop distribution. However not all things were better in this release. For myself I immediately noticed a problem while trying to install the <a href="http://packages.ubuntu.com/lucid/gnustep-devel" target="_blank">gnustep-devel</a> development libraries for <a href="http://gnustep.org/" target="_blank">GNUstep</a> and <a href="http://en.wikipedia.org/wiki/Objective-C" target="_blank">Objective-C</a>. I was greeted with this oh so lovely error message:</p>
<blockquote><p>Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming.<br />
The following information may help resolve the situation:</p>
<p>The following packages have unmet dependencies:<br />
gnustep-devel: Depends: gorm.app but it is not installable<br />
E: Broken packages</p></blockquote>
<p>So essentially I was left with the following choice: install the missing <a href="http://wiki.gnustep.org/index.php/Gorm" target="_blank">Gorm.app</a> package from the repository (which wasn&#8217;t there) or don&#8217;t install gnustep-devel. Thankfully it was pointed out to me that I could perhaps see if the package still existed in the Debian repository instead. So off to <a href="http://www.debian.org/distrib/packages" target="_blank">http://www.debian.org/distrib/packages</a> I went and after a quick search I found what I was <a href="http://packages.debian.org/search?keywords=gorm.app&amp;searchon=names&amp;suite=all&amp;section=all" target="_blank">looking for</a>! I recalled reading somewhere that Ubuntu synchronizes with <a href="http://www.debian.org" target="_blank">Debian</a> testing (A.K.A. squeeze) at the start of every round of development, so I figured that would be the best package to grab. A short download and install later Gorm.app was finally on my system. With the dependencies now met it was a breeze to install the rest of the development files using a simple</p>
<blockquote><p>sudo apt-get install gnustep-devel</p></blockquote>
<p>And there you have it. By installing a single package from the Debian repository you too can get around the problem. For reference I have also filed a bug report with Ubuntu at Launchpad <a href="https://bugs.launchpad.net/ubuntu/+source/meta-gnustep/+bug/579735" target="_blank">here</a>.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.tylerburton.ca/2010/05/fixing-gnustep-devel-in-ubuntu-10-04/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.tylerburton.ca/2010/05/fixing-gnustep-devel-in-ubuntu-10-04/&amp;title=Fixing+gnustep-devel+in+Ubuntu+10.04" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.tylerburton.ca/2010/05/fixing-gnustep-devel-in-ubuntu-10-04/&amp;title=Fixing+gnustep-devel+in+Ubuntu+10.04" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.tylerburton.ca/2010/05/fixing-gnustep-devel-in-ubuntu-10-04/&amp;t=Fixing+gnustep-devel+in+Ubuntu+10.04" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.tylerburton.ca/2010/05/fixing-gnustep-devel-in-ubuntu-10-04/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.tylerburton.ca/2010/05/fixing-gnustep-devel-in-ubuntu-10-04/&amp;title=Fixing+gnustep-devel+in+Ubuntu+10.04" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://www.tylerburton.ca/2010/05/fixing-gnustep-devel-in-ubuntu-10-04/&amp;title=Fixing+gnustep-devel+in+Ubuntu+10.04" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.tylerburton.ca/2010/05/fixing-gnustep-devel-in-ubuntu-10-04/&amp;title=Fixing+gnustep-devel+in+Ubuntu+10.04" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Fixing+gnustep-devel+in+Ubuntu+10.04+-+http://b2l.me/u5p42&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/05/fixing-gnustep-devel-in-ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>The Case for Objective-C</title>
		<link>http://www.tylerburton.ca/2010/03/the-case-for-objective-c/</link>
		<comments>http://www.tylerburton.ca/2010/03/the-case-for-objective-c/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 01:41:13 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[assembly]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[native]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=274</guid>
		<description><![CDATA[For my iPhone Application Programming course I have become quite accustomed to using Objective-C; mostly because Apple strongly recommends requires that you write all of your code in it. Let me just begin by saying that Objective-C can be one of the most confusing and, at least at first glance, poorly designed programming languages that [...]]]></description>
			<content:encoded><![CDATA[<p>For my iPhone Application Programming course I have become quite accustomed to using <a href="http://en.wikipedia.org/wiki/Objective-C" target="_blank">Objective-C</a>; mostly because <a href="http://www.apple.com" target="_blank">Apple</a> <span style="text-decoration: line-through;">strongly recommends</span> requires that you write all of your code in it. Let me just begin by saying that Objective-C can be one of the most confusing and, at least at first glance, poorly designed programming languages that I have come across. Rather than using the standard <a href="http://en.wikipedia.org/wiki/C_%28programming_language%29" target="_blank">C-like</a> syntax of <strong>instance</strong>.<em>method</em> Objective-C uses a message passing syntax which looks a little something like [<strong>instance</strong> <em>method</em>]. Or&#8230; at least it used to. With the <a href="http://en.wikipedia.org/wiki/Objective-C#Objective-C_2.0" target="_blank">introduction of a new feature set</a> Objective-C has also gained a &#8216;dot&#8217; syntax similar to more classical languages. See what I mean about confusing?</p>
<p>So why on earth would anyone program in this language? Well in my opinion there are a number of good points that make Objective-C an ideal language to use for certain scenarios.</p>
<ul>
<li>It is one of the few high-level languages that still compiles to native machine code.</li>
<li>It was built from the ground up as an object oriented programming language. This stands in contrast to C++ which effectively tries to tack OOP onto classic C.</li>
<li>Because it wasn&#8217;t trying to preserve any backwards compatibility, as was the case with C++, Objective-C did not inherit problems of an earlier language.</li>
<li>Objective-C can interface with standard C libraries and can even include C code inline for ease of use.</li>
<li>While Objective-C does make use of pointers, it does not suffer from the &#8216;pointer hell&#8217; that C/++ does. What I mean by this is that it is more intelligent about its use of notation. For example, you don&#8217;t need to remember that you need to grab the memory address of an object (&amp;) and then pass that as a pointer (*) to a function or, god forbid, make use of a pointer to a pointer (to a pointer to a pointer&#8230;).</li>
<li>Like C/++, Objective-C gives you complete control over memory management. However if you choose to you can enable automatic garbage collection for your code as well.</li>
<li>Unlike C&#8217;s <em>#include</em> pre-compile directive,which always forces a full copy of the source at be added at that point, Objective-C&#8217;s <em>#import</em> directive only adds the source once resulting in a smaller footprint.</li>
<li>When you finally do <em>get</em> Objective-C&#8217;s syntax it becomes a very straightforward and easy to read language.</li>
</ul>
<p><strong>Setup</strong></p>
<p>On the <a href="http://en.wikipedia.org/wiki/Mac_OS_X" target="_blank">Mac</a> setup is basically as easy as installing <a href="http://en.wikipedia.org/wiki/Xcode" target="_blank">Xcode</a>. If you happen to use that platform I would highly recommend that you use Xcode as it is the absolute best Objective-C IDE. However for the rest of us we get to dig into the command-line!</p>
<p>Following <a href="http://blog.lyxite.com/2008/01/compile-objective-c-programs-using-gcc.html" target="_blank">this excellent guide</a> I was able to install the required libraries and tools for both Windows and Linux. Essentially just follow the instructions on <a href="www.genustep.org " target="_blank">www.genustep.org</a>, the open source implementation of NeXT&#8217;s Objective-C libraries, and you should be off to the races. Just remember that for Windows you only actually need to install GNUstep System and GNUstep Core (in that order!). Once everything is installed just open up your terminal (Linux) or start GNUstep Shell (Windows). This is where we will be compiling the programs from.</p>
<p><strong>First program</strong></p>
<p>Everyone needs a classic &#8216;hello, world!&#8217; example program! Here is a very simple way to do this in Objective-C. Create a file called main.m (.m is like .c or .cpp) and place the following code in it:</p>
<pre><span style="color: #008000;"><em>//Link into the Foundation library which contains a lot of useful functions</em></span>
<span style="color: #800000;">#import &lt;Foundation/Foundation.h&gt;</span>

<span style="color: #008000;"><em>//the main program function that will be run</em></span>
<span style="color: #ff00ff;">int</span> main(<span style="color: #ff00ff;">void</span>)
{
     <em><span style="color: #008000;">//log our string out to the console</span></em>
     <span style="color: #ff00ff;">NSLog</span>(<span style="color: #ff0000;">@"hello, world!"</span>);

     <span style="color: #008000;"><em>//return success exit code</em></span>
     <span style="color: #ff00ff;">return</span> 0;
}
</pre>
<p>Then to compile it follow the instructions back on <a href="http://blog.lyxite.com/2008/01/compile-objective-c-programs-using-gcc.html" target="_blank">this post</a>. I have found that for me the best Windows command line arguments are as follows:</p>
<blockquote><p>gcc `gnusetup-config &#8211;objc-flags` -o [output name i.e. "test" produces "test.exe"] [input .m files i.e. "main.m"] -I /GNUstep/System/Library/Headers -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base -enable-auto-import</p></blockquote>
<p>Your results may be different though. For the above example I used &#8220;hello&#8221; as the output name and &#8220;main.m&#8221; as the input .m files. On my machine this resulted in a file called <em>hello.exe</em> that was 478KB in size. If we change the first line of the program to <span style="color: #800000;">#import &lt;Foundation/NSString.h&gt;</span> instead and then recompile it we can shrink this down to 417KB. This is because we only really use the string library in our program, so importing the rest of Foundation is simply unnecessary.</p>
<p><strong>Using objects</strong></p>
<p>Rather than write a whole tutorial here I have created a little demonstration about the different ways you can use objects. While I don&#8217;t claim that this is the best way to do things, in fact if you read main.m I claim quite the opposite, it does give you an idea of the flexible nature of Objective-C&#8217;s OOP and memory management systems.</p>
<p><a href="http://www.tylerburton.ca/files/wordpress/2010/03/ObjectiveCExample.zip">Download Here</a></p>
<p><strong>Wrapping it up</strong></p>
<p>Essentially what I am trying to get across here is that Objective-C is far from perfect, but it <em>is</em> quite a mature language and as such should probably have more wide-spread support. As a Computer Scientist who grew up in the post-C++ world, see: <a href="http://en.wikipedia.org/wiki/Java_%28programming_language%29" target="_blank">Java</a>, I completely understand why many people are opting to use sandboxed or &#8216;virtualized&#8217; programming languages, like .NET, Java and even things like PHP, over native languages like C/++, Objective-C or assembly. On the other hand there is something to be said for still writing code <em>on the metal</em> if for nothing else than the performance improvements you get by default. A lot of people are afraid of C&#8217;s pointers but if you can program in Java then I think you can easily program in Objective-C.</p>
<p>Give it a shot, you just might like it <img src='http://www.tylerburton.ca/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.tylerburton.ca/2010/03/the-case-for-objective-c/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.tylerburton.ca/2010/03/the-case-for-objective-c/&amp;title=The+Case+for+Objective-C" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.tylerburton.ca/2010/03/the-case-for-objective-c/&amp;title=The+Case+for+Objective-C" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.tylerburton.ca/2010/03/the-case-for-objective-c/&amp;t=The+Case+for+Objective-C" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.tylerburton.ca/2010/03/the-case-for-objective-c/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.tylerburton.ca/2010/03/the-case-for-objective-c/&amp;title=The+Case+for+Objective-C" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://www.tylerburton.ca/2010/03/the-case-for-objective-c/&amp;title=The+Case+for+Objective-C" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.tylerburton.ca/2010/03/the-case-for-objective-c/&amp;title=The+Case+for+Objective-C" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=The+Case+for+Objective-C+-+http://b2l.me/kqdtx&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/03/the-case-for-objective-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canada&#8217;s encryption debate</title>
		<link>http://www.tylerburton.ca/2010/03/canadas-encryption-debate/</link>
		<comments>http://www.tylerburton.ca/2010/03/canadas-encryption-debate/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 04:49:57 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[Canadian politics]]></category>
		<category><![CDATA[Computer security]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[law]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=268</guid>
		<description><![CDATA[Canada still imposes restrictions on encryption. Who knew? Today I happen to read something that Michael Geist had written about Canada&#8217;s state of encryption laws and I was floored. In it he referenced this article which discussed the Government of Canada&#8217;s new public consultation on encryption laws. From the article: Encryption controls have been a [...]]]></description>
			<content:encoded><![CDATA[<p>Canada still imposes restrictions on encryption. Who knew?</p>
<p>Today I happen to read something that <a href="http://www.michaelgeist.ca/" target="_blank">Michael Geist</a> had written about Canada&#8217;s state of encryption laws and I was floored. In it he referenced <a href="http://news.mccarthy.ca/en/news_template_full.asp?pub_code=4896&amp;news_code=1261" target="_blank">this article</a> which discussed the Government of Canada&#8217;s new public consultation on encryption laws. From the article:</p>
<blockquote><p>Encryption controls have been a challenge for many Canadian software and hardware vendors. Category 5 — Part 2 of Canada’s Export Control List identifies information security items that require a permit in order to be exported from Canada to destinations other than the United States. Because the threshold for control is very low — key lengths in excess of 64 bits (in the case of symmetric algorithms) — many vendors have been surprised to learn that the export or transfer of their encryption goods and technology requires a permit before shipment to their foreign customers. Often, they first discover this when the Canada Border Services Agency detains these goods just prior to export. Failure to obtain a permit prior to exporting or transferring controlled goods or technology can attract significant penalties.</p></blockquote>
<p>The reason I am so surprised by this is that today, in 2010, 64-bits is <em>nothing</em>. For a recent <a href="http://www.tylerburton.ca/portfolio/#keyfinder" target="_blank">school project</a> a few <a href="http://www.jonathanfritz.ca/" target="_blank">colleagues</a> of <a href="http://audiophonik.net/" target="_blank">mine</a> and myself designed a distributed brute-force approach to cracking an <a href="http://en.wikipedia.org/wiki/RC4" target="_blank">RC4</a> key. Doing some internal algorithm speed tests we determined that a single machine could brute force approximately 402,000 different keys per second. At that rate it would take one machine <strong>1,455,081 years</strong> to check all 2^64 keys. Seems pretty good so far huh? Well the problem with this number is that we are <em>not </em>professional cryptographers. RC4 has known weaknesses that allow you to break it faster than a brute force attack would otherwise allow. But assuming you still attempted to complete the brute force method, I highly doubt it would take <em>that </em>long. <a href="http://en.wikipedia.org/wiki/Data_Encryption_Standard" target="_blank">DES</a>, the older, widely used, encryption standard, also had a key size of 64-bits but, thanks to specially designed hardware, is now able to be broken in less than a week. While it is true that not all algorithms are built equally (i.e. AES with a 128-bit key is more secure than RC4 with the same sized key) it is generally true that having a larger key size and a secure algorithm are good things. According to current Canadian encryption laws 64-bits is deemed to be the strongest security you can legally export without a permit. Clearly this current limitation is simply unacceptable.</p>
<p>When you visit a secure website, for example your bank&#8217;s, your browser usually uses a 128-bit or 256-bit secret key to ensure that absolutely no one can listen in. And yet this security, the very security that gives people piece of mind when they shop online, is essentially illegal to export or sell overseas with our current laws. I completely agree with the author of the article when he says that requiring Canadian businesses to secure a permit before they can ship their software puts them at a distinct disadvantage.</p>
<p>Additionally, the Canadian government has allowed themselves to fall behind the security curve in other ways. Recently a good friend of mine was hired for a research job at the Government. In order to move him through the hiring process they requested that he send sensitive materials like his SIN and birth certificate through <a href="http://www.tylerburton.ca/2009/10/security-tip-3-public-key-cryptography-pgp/" target="_blank">unencrypted e-mail</a> to them. And you wonder why identity theft is so bad&#8230;</p>
<p>We as citizens and workers have some real things to gain or lose depending on the outcome of this consultation. If the current law is allowed to stand we will be stuck at a competitive disadvantage and have to choose between either less security in exported software products or more paperwork.</p>
<p>So do your part and make sure Canada doesn&#8217;t get stuck behind the technology curve. Join the debate.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.tylerburton.ca/2010/03/canadas-encryption-debate/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.tylerburton.ca/2010/03/canadas-encryption-debate/&amp;title=Canada%27s+encryption+debate" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.tylerburton.ca/2010/03/canadas-encryption-debate/&amp;title=Canada%27s+encryption+debate" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.tylerburton.ca/2010/03/canadas-encryption-debate/&amp;t=Canada%27s+encryption+debate" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.tylerburton.ca/2010/03/canadas-encryption-debate/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.tylerburton.ca/2010/03/canadas-encryption-debate/&amp;title=Canada%27s+encryption+debate" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://www.tylerburton.ca/2010/03/canadas-encryption-debate/&amp;title=Canada%27s+encryption+debate" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.tylerburton.ca/2010/03/canadas-encryption-debate/&amp;title=Canada%27s+encryption+debate" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Canada%27s+encryption+debate+-+http://b2l.me/jtakp&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/03/canadas-encryption-debate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My search for the best KDE Linux distribution</title>
		<link>http://www.tylerburton.ca/2010/03/my-search-for-the-best-kde-linux-distribution/</link>
		<comments>http://www.tylerburton.ca/2010/03/my-search-for-the-best-kde-linux-distribution/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 22:19:24 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[Linux Mint]]></category>
		<category><![CDATA[openSUSE]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=265</guid>
		<description><![CDATA[As some of you already know, I am a big fan of the KDE desktop environment (or KDE Workspaces or whatever they&#8217;re calling it these days). In my search to reach Linux KDE perfection I have tested out a number of different distributions. First there was Fedora, which I happily ran throughout the length of [...]]]></description>
			<content:encoded><![CDATA[<p>As some of you already know, I am a big fan of the KDE desktop environment (or <a href="http://en.wikipedia.org/wiki/KDE#Brand_repositioning" target="_blank"><em>KDE Workspaces</em></a> or whatever they&#8217;re calling it these days). In my search to reach Linux KDE perfection I have tested out a number of different distributions. First there was <a href="http://fedoraproject.org/" target="_blank">Fedora</a>, which I happily ran throughout the length of the experiment. Once that was finished I attempted to install and try both <a href="http://www.kubuntu.org/" target="_blank">Kubuntu</a> and <a href="http://www.opensuse.org" target="_blank">openSUSE</a>. Unfortunately I was <a href="http://thelinuxexperiment.com/guinea-pigs/tyler-b/kubuntu-9-10-part-i/" target="_blank">unable to do so</a> after openSUSE decided not to play nice. However my search did not stop there, and once the community edition was ready I jumped over to <a href="http://www.linuxmint.com/" target="_blank">Linux Mint KDE CE</a>. Finally I decided to once again try openSUSE, this time installing from a USB drive. This somehow resolved all of my installation issues.</p>
<p>Now that I have tried out quite a few of the most popular distributions I figured I would write a little bit to tell you fine people my thoughts on each, and why I will be sticking with openSUSE for the near future.</p>
<p><strong>Fedora 11</strong></p>
<ul>
<li><strong><em>KDE Version:</em></strong> 4.2 &#8211; 4.3</li>
<li><strong><em>Pros:</em></strong> very secure, not too many modifications of the KDE source, cutting edge</li>
<li><strong><em>Cons:</em></strong> could have really used some more modifications of the base KDE packages in order to better integrate GTK+, Bluetooth problems, not always stable</li>
<li><strong><em>Thoughts:</em></strong>
<p>I have written at length about my experiences with Fedora during this experiment. Without re-writing everything again here let me simply say this: Fedora is primarily a GNOME distribution and I could never shake the feeling that KDE got the left-over treatment.</p>
</li>
</ul>
<p><strong>Kubuntu</strong></p>
<ul>
<li><strong><em>KDE Version:</em></strong> 4.3</li>
<li><strong><em>Pros:</em></strong> very easy to use, nice integration of GTK+ and GNOME notifications, access to Ubuntu support</li>
<li><strong><em>Cons:</em></strong> the hardware drivers application (jockey) simply did not work, very bad sound issues, Firefox could not handle opening file types</li>
<li><strong><em>Thoughts:</em></strong>
<p>When I first installed Kubuntu I was thrilled. Ah, this must be what it&#8217;s like to use a <em>real</em> KDE distribution, I thought. Everything seemed smoother and far more integrated then it did in Fedora. For example: OpenOffice.org had a KDE theme and it&#8217;s file browser actually used the native KDE one. Furthermore the notification system was awesome. Now instead of a GNOME application, like Pidgin, generating GNOME notifications, it instead integrated right into the standard KDE equivalent.
</p>
<p>
Then the problems started to show up. Oh I&#8217;ll just download this torrent file and&#8230; hmm Firefox doesn&#8217;t seem to know what to do with it. Why can&#8217;t I set the file type options inside of Firefox for torrents? Why doesn&#8217;t it use the system defaults? Then the sound issues came. YouTube stopped putting out audio all together and all of my attempts to fix it were futile. Maybe it&#8217;s just my hardware but Kubuntu just could not handle multimedia at all.
</p>
<p>
While Kubuntu is definitely one of the better KDE experiences it is by no means problem free.</p>
</li>
</ul>
<p><strong>Linux Mint KDE CE</strong></p>
<ul>
<li><strong><em>KDE Version:</em></strong> 4.3</li>
<li><strong><em>Pros:</em></strong> excellent package manager, easy to use</li>
<li><strong><em>Cons:</em></strong> sound issues, WiFi issues, is this actually a KDE desktop? there are so many GTK+ applications in it&#8230;</li>
<li><strong><em>Thoughts:</em></strong>
<p>After hearing much praise for Linux Mint I decided to give the newly released KDE community edition a go. I must say at first I was very impressed. The package manager was far superior to KPackageKit and even included things like user ratings and comments. It also came bundled with many tools and applications designed specifically for Linux Mint. Sadly very few of these were re-written in Qt and so I was forced to deal with GTK+ skinning almost everywhere.
</p>
<p>Sound issues similar to those in Kubuntu (maybe it&#8217;s something in the shared source?) started to crop up almost immediately. Again YouTube just did not work no matter how much I tried to fix it. Finally the WiFi connection was very poor, often disconnected on what seemed like a  specific interval.
</p>
<p>
While I think this distribution has a lot going for it I can only suggest the GNOME desktop for those who want to give it a try. The KDE version just does not seem polished enough to be recommended for someone looking for the ultimate KDE distribution.</p>
</li>
</ul>
<p><strong>openSUSE</strong></p>
<ul>
<li><strong><em>KDE Version:</em></strong> 4.3</li>
<li><strong><em>Pros:</em></strong> very responsive, a lot of streamlined tweaks, rock solid WiFi, excellent audio</li>
<li><strong><em>Cons:</em></strong> slower to boot, uses quite a bit of RAM, too much green <img src='http://www.tylerburton.ca/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </li>
<li><strong><em>Thoughts:</em></strong>
<p>Installing openSUSE seemed like an awful idea. After reading all of the complaints that both <a href="http://thelinuxexperiment.com/category/guinea-pigs/phil-d/" target="_blank">Phil</a> and <a href="http://thelinuxexperiment.com/category/guinea-pigs/dave-l/" target="_blank">Dave</a> had written over the course of the experiment I have to admit I was a little hesitant. However, I am very happy I decided to try it anyway; openSUSE is an excellent KDE distribution.
</p>
<p>
Everything about it, from the desktop to the little helpful wizards, all seem to be designed with one purpose in mind: make openSUSE the easiest, or at the very least most straightforward, distribution possible. <a href="http://en.wikipedia.org/wiki/Yet_another_Setup_Tool" target="_blank">YaST</a>, often a major source of hate from my fellow Guinea Pigs, does indeed have some quirks. However I honestly think that it is a very good tool, and something that streamlines many administrative tasks. Want <a href="http://en.wikipedia.org/wiki/Samba_%28software%29" target="_blank">SAMBA</a> network sharing? Just open up YaST and click on the wizard. Want restricted codecs? Just hop on over to <a href="http://opensuse-community.org/Restricted_Formats/11.2" target="_blank">openSUSE-Community</a> and download the ymp file (think of it like a Windows exe).
</p>
<p>
My time with openSUSE so far has been wonderful. My network card seems to actually get better range then ever before, if that&#8217;s even possible. My battery life is good and my sound just plain works without any additional effort. If I had one complaint it would be with the amount of RAM the distribution uses. After a quick reboot it takes up a very small amount, around ~350MB or so. However after a couple of hours of general use the RAM often grows to about 1-1.5GB, which is far more than I have seen with the other distributions. Thankfully I have 4GB of RAM so I&#8217;m not too worried. I wonder if it has something to do with the fact that I am running the x64 version and not the x86 version. Perhaps it assumes I have at least 4GB of RAM for choosing the newer architecture.
</p>
<p>
Whatever the case may be I think I have finally found what I consider to be the very best KDE Linux distribution. Obviously your results may vary but I look forward to hearing what you think.</p>
</li>
</ul>
<p>This piece was cross-posted over at <a href="http://thelinuxexperiment.com/guinea-pigs/tyler-b/my-search-for-the-best-kde-linux-distribution/">The Linux Experiment.</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.tylerburton.ca/2010/03/my-search-for-the-best-kde-linux-distribution/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.tylerburton.ca/2010/03/my-search-for-the-best-kde-linux-distribution/&amp;title=My+search+for+the+best+KDE+Linux+distribution" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.tylerburton.ca/2010/03/my-search-for-the-best-kde-linux-distribution/&amp;title=My+search+for+the+best+KDE+Linux+distribution" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.tylerburton.ca/2010/03/my-search-for-the-best-kde-linux-distribution/&amp;t=My+search+for+the+best+KDE+Linux+distribution" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.tylerburton.ca/2010/03/my-search-for-the-best-kde-linux-distribution/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.tylerburton.ca/2010/03/my-search-for-the-best-kde-linux-distribution/&amp;title=My+search+for+the+best+KDE+Linux+distribution" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://www.tylerburton.ca/2010/03/my-search-for-the-best-kde-linux-distribution/&amp;title=My+search+for+the+best+KDE+Linux+distribution" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.tylerburton.ca/2010/03/my-search-for-the-best-kde-linux-distribution/&amp;title=My+search+for+the+best+KDE+Linux+distribution" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=My+search+for+the+best+KDE+Linux+distribution+-+http://b2l.me/hymxy&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/03/my-search-for-the-best-kde-linux-distribution/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>RSA-768: Nothing to worry about</title>
		<link>http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/</link>
		<comments>http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 01:19:35 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[Computer security]]></category>
		<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Asymmetric Encryption]]></category>
		<category><![CDATA[Cryptography]]></category>
		<category><![CDATA[ElGamal]]></category>
		<category><![CDATA[GPG]]></category>
		<category><![CDATA[PGP]]></category>
		<category><![CDATA[Public Key]]></category>
		<category><![CDATA[RSA]]></category>
		<category><![CDATA[RSA-768]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=256</guid>
		<description><![CDATA[I have been meaning to write up a short post about this for a while, but thanks to the start of a new school term I have been a bit busy. If you have seen the security news in the last month or so you will know that RSA-768, a 768bit or 232 decimal digit [...]]]></description>
			<content:encoded><![CDATA[<p>I have been meaning to write up a short post about this for a while, but thanks to the start of a new school term I have been a bit busy.</p>
<p>If you have seen the <a href="http://science.slashdot.org/story/10/01/07/1623249/Factorization-of-a-768-Bit-RSA-Modulus?from=rss&amp;utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29" target="_blank">security news</a> in the last month or so you will know that RSA-768, a 768bit or 232 decimal digit asymmetric key, has been broken (factored). This has <a href="http://www.schneier.com/blog/archives/2010/01/768-bit_number.html" target="_blank">important security repercussions</a> for all of us because it is these public key algorithms like <a href="http://en.wikipedia.org/wiki/RSA" target="_blank">RSA</a>, or <a href="http://en.wikipedia.org/wiki/ElGamal_encryption" target="_blank">ElGamal</a>, that guard our <a href="http://en.wikipedia.org/wiki/Transport_Layer_Security" target="_blank">online transactions</a>, and <a href="http://www.tylerburton.ca/2009/10/security-tip-3-public-key-cryptography-pgp/" target="_blank">e-mail conversations</a>.</p>
<h2>So just how much should we be worrying about this newest &#8216;break&#8217;?</h2>
<p>When it comes to public key cryptography it is important to remember that their security is essentially in our inability to factor them quickly. The only real way that public key cryptography could be considered broken is if we find a way to <a href="http://en.wikipedia.org/wiki/Shor%27s_algorithm" target="_blank">drastically increase</a> our ability to factor massive prime numbers. Thankfully that time is still far away. In fact after digging into the news articles a little more it quickly became obvious that the feat of factoring a 768bit key, <a href="http://arstechnica.com/security/news/2010/01/768-bit-rsa-cracked-1024-bit-safe-for-now.ars" target="_blank">while incredibly difficult</a>, was inevitable.</p>
<h2>So what now?</h2>
<p>Nothing. Currently the most popular asymmetric key size in use is 1024bit, which represents a work load increase of over 1000 times when compared to RSA-768. Still afraid? Check out <a href="http://en.wikipedia.org/wiki/RSA_numbers" target="_blank">the list of RSA challenges</a> that have been issued over the years and just how few have actually be &#8216;broken&#8217;.</p>
<p>In choosing my current <a href="http://en.wikipedia.org/wiki/Pretty_Good_Privacy" target="_blank">PGP</a>/<a href="http://en.wikipedia.org/wiki/GNU_Privacy_Guard" target="_blank">GPG</a> public key I decided to go with a 2048bit one, which, according to all accounts, will be safe for years to come. As always, <a href="http://www.tylerburton.ca/2009/09/security-tip-2-key-lengths/" target="_blank">I recommend</a> checking out <a href="http://www.keylength.com/" target="_blank">this site</a> for the most up to date key length recommendations from the world&#8217;s foremost cryptography experts.</p>
<h2>There you have it</h2>
<p>With the knowledge that you&#8217;re online transactions are still perfectly safe you have nothing to worry about.</p>
<p>For reference, the currently recommended key lengths for asymmetric encryption algorithms, like RSA, are 1976bit (BSI recommendation for use after 2016), 2048bit (NSA recommendation for current and future use), and 2432 (ECRYPT II recommendation for protection until at least 2030).</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/&amp;title=RSA-768%3A+Nothing+to+worry+about" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/&amp;title=RSA-768%3A+Nothing+to+worry+about" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/&amp;t=RSA-768%3A+Nothing+to+worry+about" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/&amp;title=RSA-768%3A+Nothing+to+worry+about" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/&amp;title=RSA-768%3A+Nothing+to+worry+about" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/&amp;title=RSA-768%3A+Nothing+to+worry+about" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=RSA-768%3A+Nothing+to+worry+about+-+http://b2l.me/dkmqg&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
