<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Cleanish Code</title>
	
	<link>http://www.illotus.com/cleanishcode</link>
	<description>Programming, usability etc.</description>
	<lastBuildDate>Tue, 07 Feb 2012 06:46:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CleanishCode" /><feedburner:info uri="cleanishcode" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Learning Android: Shaving a Yak</title>
		<link>http://feedproxy.google.com/~r/CleanishCode/~3/hcf9P8DXFRk/</link>
		<comments>http://www.illotus.com/cleanishcode/2012/02/learning-android-shaving-a-yak/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 06:46:52 +0000</pubDate>
		<dc:creator>illotus</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[random observation]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.illotus.com/cleanishcode/?p=267</guid>
		<description><![CDATA[I built another Android app: a bmi calculator. I spent a lot more time with it than I would have thought in the beginning. Basically I learned how to build a custom component with custom attributes and how to use an alternative layout for landscape view. I also learned to use the very good compatibility [...]]]></description>
			<content:encoded><![CDATA[<p>I built another Android app: <a href="https://market.android.com/details?id=com.illotus.bmi" title="BMI Calculator at Android Market">a bmi calculator</a>. I spent a lot more time with it than I would have thought in the beginning. Basically I learned how to build a custom component with custom attributes and how to use an alternative layout for landscape view. I also learned to use the very good compatibility library <a href="http://actionbarsherlock.com" title="ActionBarSherlock, compatibility library for Android">ActionBarSherlock</a>. Then I didn&#8217;t use any of those. </p>
<p>The custom component didn&#8217;t end up making sense as mostly it was an EditText in RelativeLayout&#8217;s clothes with couple of labels tacked on. In the end there wasn&#8217;t the screen real estate for the labels. Landscape view proved to be somewhat too difficult to get working with different screen sizes while in confines of one Activity. I used ActionBarSherlock mainly for the ActionBar. In the end I had to ditch it because the final installation of the app would have been over three times as large with ActionBarSherlock. Also ActionBar itself is easy to implement as a glorified TitleBar when you choose a titlebar-hiding theme as basis and roll your own. </p>
<p>Anyways, a useful thing I learned and actually used was to implement a generic OnEditorActionListener to move from one EditText to another in custom order:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;color: blue;"><span style="color: #000000; font-weight: bold;color: #B83A24;">private</span> OnEditorActionListener getGotoNextListener<span style="color: #009900;color: #CCC;">&#40;</span><span style="color: #000000; font-weight: bold;color: #B83A24;">final</span> EditText next<span style="color: #009900;color: #CCC;">&#41;</span> <span style="color: #009900;color: #CCC;">&#123;</span>
        <span style="color: #000000; font-weight: bold;color: #B83A24;">return</span> <span style="color: #000000; font-weight: bold;color: #B83A24;">new</span> OnEditorActionListener<span style="color: #009900;color: #CCC;">&#40;</span><span style="color: #009900;color: #CCC;">&#41;</span> <span style="color: #009900;color: #CCC;">&#123;</span>
            @Override
            <span style="color: #000000; font-weight: bold;color: #B83A24;">public</span> <span style="color: #000066; font-weight: bold;color: #343832;">boolean</span> onEditorAction<span style="color: #009900;color: #CCC;">&#40;</span>TextView v, <span style="color: #000066; font-weight: bold;color: #343832;">int</span> actionId, <span style="color: #003399;color: #8FB394;">KeyEvent</span> event<span style="color: #009900;color: #CCC;">&#41;</span> <span style="color: #009900;color: #CCC;">&#123;</span>
                <span style="color: #000000; font-weight: bold;color: #B83A24;">if</span> <span style="color: #009900;color: #CCC;">&#40;</span>actionId <span style="color: #339933;color: #CCC;">==</span> EditorInfo.<span style="color: #006633;">IME_ACTION_NEXT</span><span style="color: #009900;color: #CCC;">&#41;</span> <span style="color: #009900;color: #CCC;">&#123;</span>
                    next.<span style="color: #006633;">requestFocus</span><span style="color: #009900;color: #CCC;">&#40;</span><span style="color: #009900;color: #CCC;">&#41;</span><span style="color: #339933;color: #CCC;">;</span>
                    <span style="color: #000000; font-weight: bold;color: #B83A24;">return</span> <span style="color: #000066; font-weight: bold;color: #577A61;">true</span><span style="color: #339933;color: #CCC;">;</span>
                <span style="color: #009900;color: #CCC;">&#125;</span>
                <span style="color: #000000; font-weight: bold;color: #B83A24;">return</span> <span style="color: #000066; font-weight: bold;color: #577A61;">false</span><span style="color: #339933;color: #CCC;">;</span>
            <span style="color: #009900;color: #CCC;">&#125;</span>
        <span style="color: #009900;color: #CCC;">&#125;</span><span style="color: #339933;color: #CCC;">;</span>
    <span style="color: #009900;color: #CCC;">&#125;</span></pre></div></div>

<p>The problem was that I changed my initial plans and used EditTexts that were side-by-side so the focus didn&#8217;t move properly from one to another.</p>
<img src="http://feeds.feedburner.com/~r/CleanishCode/~4/hcf9P8DXFRk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.illotus.com/cleanishcode/2012/02/learning-android-shaving-a-yak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.illotus.com/cleanishcode/2012/02/learning-android-shaving-a-yak/</feedburner:origLink></item>
		<item>
		<title>Reindeers and Joy of Developing Software</title>
		<link>http://feedproxy.google.com/~r/CleanishCode/~3/rxj8ng8zHtk/</link>
		<comments>http://www.illotus.com/cleanishcode/2012/01/reindeers-and-joy-of-developing-software/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 10:39:14 +0000</pubDate>
		<dc:creator>illotus</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[disc golf distance measure]]></category>
		<category><![CDATA[rambling]]></category>
		<category><![CDATA[random observation]]></category>

		<guid isPermaLink="false">http://www.illotus.com/cleanishcode/?p=224</guid>
		<description><![CDATA[I published my Disc Golf Drive Measure at Android Market. So far the app has been downloaded about 50 times. This is the whole point of software development: that someone uses the software you make. Even better if the software is public in some way. I&#8217;ve been testing the published version of the app a [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_228" class="wp-caption alignright" style="width: 310px"><a href="http://www.illotus.com/cleanishcode/wp-content/uploads/2012/01/poro.jpg"><img src="http://www.illotus.com/cleanishcode/wp-content/uploads/2012/01/poro-300x300.jpg" alt="Few reindeers" title="Reindeers" width="300" height="300" class="size-medium wp-image-228" /></a><p class="wp-caption-text">Aren&#039;t they cuddly</p></div> I published my <a href="http://www.illotus.com/cleanishcode/software/disc-golf-drive-measure/" title="Disc Golf Distance Measure for Android">Disc Golf Drive Measure</a> <a href="http://market.android.com/details?id=com.illotus.dgdm_added" title="Disc Golf Drive Measure at Android Market">at Android Market</a>. So far the app has been downloaded about 50 times. This is the whole point of software development: that someone uses the software you make. Even better if the software is public in some way.</p>
<p>I&#8217;ve been testing the published version of the app a bit. The current conditions don&#8217;t support that very much as I&#8217;m looking after reindeers for couple of days and the nearest field is covered by two feet of snow. Anyways I&#8217;m now well aware that the app requires tweaking. Essentially the last X throws need to be remembered and some improvements to GPS handling and the UI need to be made. That will have to wait a bit as I&#8217;m currently developing another dinky little app: a BMI calculator. </p>
<p>The BMI calculator is basically very trivial app to write. However I&#8217;ve been learning bit about graphic design and ProGuard, ActionBarSherlock, custom components and other things that are needed for more polished apps. Also this time I actually did some interaction design. With the Disc Golf Drive Measure the design was basically the classical programmer design: a byproduct of programming. This time I had a very good idea about how the interaction with the dinky app should be, before I started coding. All these things mean that I&#8217;ve used quite a bit more time with the app than I thought at first. After finishing the BMI calc I&#8217;ll tackle refactoring the UX and code of the disc golf app, not to mention all the functionality that needs to be added.</p>
<img src="http://feeds.feedburner.com/~r/CleanishCode/~4/rxj8ng8zHtk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.illotus.com/cleanishcode/2012/01/reindeers-and-joy-of-developing-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.illotus.com/cleanishcode/2012/01/reindeers-and-joy-of-developing-software/</feedburner:origLink></item>
		<item>
		<title>Why Should I Learn TDD</title>
		<link>http://feedproxy.google.com/~r/CleanishCode/~3/RlTghjBgyms/</link>
		<comments>http://www.illotus.com/cleanishcode/2012/01/why-should-i-learn-tdd/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 01:33:21 +0000</pubDate>
		<dc:creator>illotus</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[disc golf distance measure]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.illotus.com/cleanishcode/?p=212</guid>
		<description><![CDATA[I watched a good vid on TDD at InfoQ. Basically Keith Braithwaite explains in the beginning what I&#8217;ve been doing with this little Android project. Basically I&#8217;ve written some code, refactored the code, the written some more. Now that basic functionality and edge cases for it are pretty much handled, cleaning the code further becomes [...]]]></description>
			<content:encoded><![CDATA[<p>I watched a good <a href="http://www.infoq.com/presentations/TDD-as-if-You-Meant-It">vid on TDD at InfoQ</a>. Basically Keith Braithwaite explains in the beginning what I&#8217;ve been doing with <a href="http://www.illotus.com/cleanishcode/software/disc-golf-drive-measure/">this little Android project</a>. Basically I&#8217;ve written some code, refactored the code, the written some more. Now that basic functionality and edge cases for it are pretty much handled, cleaning the code further becomes kind of waste in this project. </p>
<p>There is very little functionality to add. I suppose the main concern for me is that the current version being <a href="https://bitbucket.org/Illotus/disc-golf-drive-measure/">available at Bitbucket</a> means that I could showcase that I can produce cleaner code. Unit tests will have to wait for the next project. </p>
<p>The way I see it, I&#8217;ll have to either do TDD or anyway start writing reasonable test suites. Larger projects than this could become more and more difficult to modify without the safety net of tests. </p>
<p>One thing I&#8217;ve struggled with a bit is that developing Android app is somewhat compared to say Java Swing app. For some reason separating concerns and limiting the responsibilities of different classes has been a lot of work. And it hasn&#8217;t succeeded as well as it could have. One thing I should do better is deciding how much functionality should Activity-based classes have. Currently the main activity is too long for my tastes. One solution would be to remove listeners from anonymous inner classes. However I&#8217;m not sure if any of the other options is much better. <strong>Update</strong>: I found out that you can define clickhandle in the layout files. That cleaned up my activities a bit.</p>
<img src="http://feeds.feedburner.com/~r/CleanishCode/~4/RlTghjBgyms" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.illotus.com/cleanishcode/2012/01/why-should-i-learn-tdd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.illotus.com/cleanishcode/2012/01/why-should-i-learn-tdd/</feedburner:origLink></item>
		<item>
		<title>Disc Golf Drive Measure First Beta</title>
		<link>http://feedproxy.google.com/~r/CleanishCode/~3/vsQRicbGm70/</link>
		<comments>http://www.illotus.com/cleanishcode/2012/01/disc-golf-drive-measure-first-beta/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 12:29:11 +0000</pubDate>
		<dc:creator>illotus</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[disc golf distance measure]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.illotus.com/cleanishcode/?p=189</guid>
		<description><![CDATA[For last couple of weeks I&#8217;ve been spending some time developing a small Android app for measuring disc golf drives during practice. At this point the software I would say that the software is in early beta and it has been tested only a bit in emulator and a bit with HTC Desire. This is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.illotus.com/cleanishcode/wp-content/uploads/2012/01/dgd1.jpg"><img src="http://www.illotus.com/cleanishcode/wp-content/uploads/2012/01/dgd1-150x150.jpg" alt="Disc Golf Distance Measure beta main screen" title="Disc Golf Distance Measure beta main screen" width="150" height="150" class="alignleft size-thumbnail wp-image-192" /></a>For last couple of weeks I&#8217;ve been spending some time developing a <a href="http://www.illotus.com/cleanishcode/software/disc-golf-drive-measure/">small Android app for measuring disc golf drives during practice</a>. At this point the software I would say that the software is in early beta and it has been tested only a bit in emulator and a bit with HTC Desire. </p>
<p>This is quite simple app as you can see from the <a href="https://bitbucket.org/Illotus/disc-golf-drive-measure" title="Bitbucket repository for Disc Golf Drive Measure beta">source(@Bitbucket)</a>. This is my first Android app so there have been a few hurdles cross. I fought long and hard with the layout, but I had to abandon my initial plans to wait for a time when I really dive into the documentation.</p>
<p>I actually made myself an Android Market account so after some testing the app is likely to find its way there. I&#8217;ve been toying with the idea of making the current version with some small modifications(like support for more units of measure) available with ads and then developing a further premium version with no ads and some more improvements. Obvious improvements would include saving the drives for future perusal, adding disc information to drives etc. The benefit with this approach would be getting experience in publishing apps and trying out the various ad systems. </p>
<p>The source at Bitbucket is licensed GPLv2. This basic version will be available from there. The code isn&#8217;t as pretty as it could be so refactoring and writing unit tests is one task on the list. Unit testing on Android is not very difficult, but it is a lot of work. Best way I&#8217;ve found so far is to use <a href="http://pivotal.github.com/robolectric/" title="roboelectric at github">RoboElectric</a>. </p>
<p>Hopefully this app will be the start of a diverse portfolio to showcase my software developing skills. Bit of Captain Obvious at the end: developing this little app has once again shown me that building something you actually have need of is motivating. I have a whole bunch of these little repositories of projects that never really went beyond the idea and first couple of lines of code, because the motivation to continue just wasn&#8217;t there. </p>
<img src="http://feeds.feedburner.com/~r/CleanishCode/~4/vsQRicbGm70" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.illotus.com/cleanishcode/2012/01/disc-golf-drive-measure-first-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.illotus.com/cleanishcode/2012/01/disc-golf-drive-measure-first-beta/</feedburner:origLink></item>
		<item>
		<title>Usability Research on the Rise: Small Piece of Original Research</title>
		<link>http://feedproxy.google.com/~r/CleanishCode/~3/4yhP4ar_lDg/</link>
		<comments>http://www.illotus.com/cleanishcode/2011/04/usability-research-on-the-rise-small-piece-of-original-research/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 13:24:27 +0000</pubDate>
		<dc:creator>illotus</dc:creator>
				<category><![CDATA[studies]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[original research]]></category>

		<guid isPermaLink="false">http://www.illotus.com/cleanishcode/?p=167</guid>
		<description><![CDATA[I did some searches with ACM Portal for journal and magazine articles that mention usability. The results in table below. Years Articles Mentioning Usability Total Articles % of Articles Mention Usability 1991-1995 62 2273 2.7% 1996-2000 377 5949 6.3% 2001-2005 861 8909 9,7% 2006-2010 970 10076 9,6% I also did a rudimentary check on how [...]]]></description>
			<content:encoded><![CDATA[<p>I did some searches with <a href="http://portal.acm.org/">ACM Portal</a> for journal and magazine articles that mention usability. The results in table below.</p>
<table>
<tr>
<th>Years</th>
<th>Articles Mentioning Usability</th>
<th>Total Articles</th>
<th>% of Articles Mention Usability</th>
</tr>
<tr>
<td>1991-1995</td>
<td>62</td>
<td>2273</td>
<td>2.7%</td>
</tr>
<tr>
<td>1996-2000</td>
<td>377</td>
<td>5949</td>
<td>6.3%</td>
</tr>
<tr>
<td>2001-2005</td>
<td>861</td>
<td>8909</td>
<td>9,7%</td>
</tr>
<tr>
<td>2006-2010</td>
<td>970</td>
<td>10076</td>
<td>9,6%</td>
</tr>
</table>
<p>I also did a rudimentary check on how many articles mention both usability and web. Results in the table below.</p>
<table>
<tr>
<th>Years</th>
<th>Articles Mentioning Usability and Web</th>
<th>% of Articles That Mention Usability That Also Mention Web</th>
</tr>
<tr>
<td>1991-1995</td>
<td>12</td>
<td>19%</td>
</tr>
<tr>
<td>1996-2000</td>
<td>221</td>
<td>58%</td>
</tr>
<tr>
<td>2001-2005</td>
<td>581</td>
<td>67%</td>
</tr>
<tr>
<td>2006-2010</td>
<td>630</td>
<td>65%</td>
</tr>
</table>
<p>One could theorize that web has made usability research lot more prominent. Or the other way around. Or perhaps there is hidden factor in play. Or perhaps ACM Portal&#8217;s search engine gives nonsensical results.</p>
<img src="http://feeds.feedburner.com/~r/CleanishCode/~4/4yhP4ar_lDg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.illotus.com/cleanishcode/2011/04/usability-research-on-the-rise-small-piece-of-original-research/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.illotus.com/cleanishcode/2011/04/usability-research-on-the-rise-small-piece-of-original-research/</feedburner:origLink></item>
		<item>
		<title>Estimating: Frustration and Amusement</title>
		<link>http://feedproxy.google.com/~r/CleanishCode/~3/sXdziUjxjJI/</link>
		<comments>http://www.illotus.com/cleanishcode/2011/04/estimatin/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 19:35:09 +0000</pubDate>
		<dc:creator>illotus</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[studies]]></category>
		<category><![CDATA[predicting]]></category>

		<guid isPermaLink="false">http://www.illotus.com/cleanishcode/?p=158</guid>
		<description><![CDATA[It goes like this: someone estimates how long it should take you to code a piece of software. You know the estimate is unrealistic and that no way you are going to make it. So you would imagine that you would just shrug your shoulders and code at whatever pace you are comfortable, not really [...]]]></description>
			<content:encoded><![CDATA[<p>It goes like this: someone estimates how long it should take you to code a piece of software. You know the estimate is unrealistic and that no way you are going to make it. So you would imagine that you would just shrug your shoulders and code at whatever pace you are comfortable, not really considering the deadline at all. <strong>The thing is, you will still feel the anguish anyway</strong>. </p>
<p>The same point was made in <a href="http://www.amazon.com/gp/search?ie=UTF8&#038;keywords=0321117425&#038;tag=beginnerspoke-20&#038;index=books&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325">Facts and Fallacies of Software Engineering by Robert L. Glass</a><img src="http://www.assoc-amazon.com/e/ir?t=beginnerspoke-20&#038;l=ur2&#038;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. </p>
<p>I&#8217;ve noticed similar phenomenon in playing poker and while doing other estimates, like trying to set up the timetable for writing my thesis. One approach, though not practical for software development, was presented in <a href="http://www.amazon.com/gp/search?ie=UTF8&#038;keywords=1419680897&#038;tag=beginnerspoke-20&#038;index=books&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325">Elements of Poker by Tommy Angelo</a><img src="http://www.assoc-amazon.com/e/ir?t=beginnerspoke-20&#038;l=ur2&#038;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. The idea is that you don&#8217;t want to have goals, but rather targets. In context of poker this essential means: aim to play every hand as well as possible, but don&#8217;t have for example monthly goals to earn set amount of money or play set amount of hours. Tommy proposes that having goals isn&#8217;t productive due to missing goal having much larger negative impact than vice versa. </p>
<p>All this is highly amusing, until it happens to you. As with all emotions, it is very difficult to ignore the anguish of missing unrealistic deadlines. Like making a new year vow that this year I&#8217;ll drop 30 pounds/quit smoking/etc. and missing year after year. You know the surrealism of it all when making the vow, but still you feel bummed when you fail.</p>
<img src="http://feeds.feedburner.com/~r/CleanishCode/~4/sXdziUjxjJI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.illotus.com/cleanishcode/2011/04/estimatin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.illotus.com/cleanishcode/2011/04/estimatin/</feedburner:origLink></item>
		<item>
		<title>Nearly a year with ZFS – thoughts.</title>
		<link>http://feedproxy.google.com/~r/CleanishCode/~3/m3ebWBdDfuk/</link>
		<comments>http://www.illotus.com/cleanishcode/2010/11/nearly-a-year-with-zfs-thoughts/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 11:31:50 +0000</pubDate>
		<dc:creator>illotus</dc:creator>
				<category><![CDATA[hardware]]></category>
		<category><![CDATA[opensolaris]]></category>
		<category><![CDATA[random observation]]></category>
		<category><![CDATA[fileserver]]></category>
		<category><![CDATA[zfs]]></category>

		<guid isPermaLink="false">http://www.illotus.com/cleanishcode/?p=141</guid>
		<description><![CDATA[I&#8217;m happy with my OpenSolaris fileserver even before upgrade.. It has been a marked improvement over the earlier Windows 2008 server in performance at least. Ease of maintaining has been pretty much the same. Basically the problems I&#8217;ve had are: WD15EARS 1,5TB drives are tad slow. There is noticeable delay when opening say video files [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy with my <a href="http://www.illotus.com/cleanishcode/2010/01/fileserver-part-1/">OpenSolaris fileserver</a> even before upgrade.. It has been a marked improvement over the earlier Windows 2008 server in performance at least. Ease of maintaining has been pretty much the same. Basically the problems I&#8217;ve had are:</p>
<ul>
<li>WD15EARS 1,5TB drives are tad slow. There is noticeable delay when opening say video files from the smb shares when scrub is running.
<li>When transfering files from my OpenSolaris home folder to the smb shares the ACL permissions aren&#8217;t inherited like they should. I have no idea whether this is due to user error or bug.
<li>I haven&#8217;t been able to install SqueezeServer on the OpenSolaris. Partly this is laziness as it <a href="http://wiki.slimdevices.com/index.php/Opensolaris">should be possible</a>.
<li>Laziness. I haven&#8217;t really scripted everything as far as I should.
</ul>
<img src="http://feeds.feedburner.com/~r/CleanishCode/~4/m3ebWBdDfuk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.illotus.com/cleanishcode/2010/11/nearly-a-year-with-zfs-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.illotus.com/cleanishcode/2010/11/nearly-a-year-with-zfs-thoughts/</feedburner:origLink></item>
		<item>
		<title>HDD goes boink, to upgrade fileserver</title>
		<link>http://feedproxy.google.com/~r/CleanishCode/~3/lJfkJzzf018/</link>
		<comments>http://www.illotus.com/cleanishcode/2010/11/hdd-goes-boink-to-upgrade-fileserver/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 11:31:18 +0000</pubDate>
		<dc:creator>illotus</dc:creator>
				<category><![CDATA[hardware]]></category>
		<category><![CDATA[opensolaris]]></category>
		<category><![CDATA[random observation]]></category>
		<category><![CDATA[fileserver]]></category>
		<category><![CDATA[zfs]]></category>

		<guid isPermaLink="false">http://www.illotus.com/cleanishcode/?p=135</guid>
		<description><![CDATA[I&#8217;ve kinda felt that maybe I went too far with raidz2 when building my fileserver. Now I noticed that one of the 1,5TB Western Digital Green Power WD15EARS -drives had broken down and there is still two to go before losing data. Maybe not so bad decision after all. Because of the broken drive and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve kinda felt that maybe I went too far with raidz2 when building <a href="http://www.illotus.com/cleanishcode/2010/01/fileserver-part-1/">my fileserver</a>. Now I noticed that one of the 1,5TB Western Digital Green Power WD15EARS -drives had broken down and there is still two to go before losing data. Maybe not so bad decision after all. </p>
<p>Because of the broken drive and some mild performance problems I&#8217;ll be upgrading the server within couple of weeks. I&#8217;ve chosen to make the server even more reliable: I have couple of Hitachi 1 TB drives and I&#8217;ll be adding a third for 3-way mirror for the important stuff. I&#8217;ll also dump the 6 disk raidz2 pool of the WD disks and replace it with pool of 3 mirrors of 2TB Samsung Ecogreen F4G drives. Those too are internally 4k sector size drives and show to os as 512byte. There is <a href="https://www.opensolaris.org/jive/thread.jspa?threadID=125702">performance penalty</a> for this, but pooling mirrors should compensate for that. I&#8217;ll also add a Intel SASUC8I raid card for more SATA ports and better performance over the Dell Perc 5/i. </p>
<p>I did toy with the idea of enabling dedup on the imporant documents along with hourly snapshots, but <a href="https://www.opensolaris.org/jive/thread.jspa?messageID=499023">apparently zfs dedup isn&#8217;t yet ready for home servers</a>. Would have been neat though. </p>
<img src="http://feeds.feedburner.com/~r/CleanishCode/~4/lJfkJzzf018" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.illotus.com/cleanishcode/2010/11/hdd-goes-boink-to-upgrade-fileserver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.illotus.com/cleanishcode/2010/11/hdd-goes-boink-to-upgrade-fileserver/</feedburner:origLink></item>
		<item>
		<title>On Android Piracy – Perhaps Pirates Are PC Users</title>
		<link>http://feedproxy.google.com/~r/CleanishCode/~3/v0oS0G2lpig/</link>
		<comments>http://www.illotus.com/cleanishcode/2010/09/on-android-piracy-perhaps-pirates-are-pc-users/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 08:53:18 +0000</pubDate>
		<dc:creator>illotus</dc:creator>
				<category><![CDATA[random observation]]></category>

		<guid isPermaLink="false">http://www.illotus.com/cleanishcode/?p=130</guid>
		<description><![CDATA[I read a recent discussion on Slashdot about Android Piracy. Some company claimed that: Over the course of 90 days, the [KeyesLabs] app was installed a total of 8,659 times. Of those installations only 2,831 were legitimate purchases, representing an overall piracy rate of over 67% Basically for the last ten years there has been [...]]]></description>
			<content:encoded><![CDATA[<p>I read a recent <a href="http://yro.slashdot.org/story/10/09/29/1531202/Android-Software-Piracy-Rampant?from=rss&#038;utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+slashdot%2FeqWf+%28Slashdot%3A+Slashdot%29">discussion on Slashdot</a> about Android Piracy. Some company claimed that:</p>
<blockquote><p>Over the course of 90 days, the [KeyesLabs] app was installed a total of 8,659 times. Of those installations only 2,831 were legitimate purchases, representing an overall piracy rate of over 67%</p></blockquote>
<p>Basically for the last ten years there has been huge explosion of free(open source, freeware etc.) software for Windows pcs. Contrast this to cell phones: nearly everything costs money. You have to pay to get many very basic utilities and tools, let alone more complex productivity software. So perhaps the people doing the pirating are coming from the PC culture, where there is abundance of pretty good quality free software for most purposes. </p>
<img src="http://feeds.feedburner.com/~r/CleanishCode/~4/v0oS0G2lpig" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.illotus.com/cleanishcode/2010/09/on-android-piracy-perhaps-pirates-are-pc-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.illotus.com/cleanishcode/2010/09/on-android-piracy-perhaps-pirates-are-pc-users/</feedburner:origLink></item>
		<item>
		<title>Learning Programming Languages</title>
		<link>http://feedproxy.google.com/~r/CleanishCode/~3/ds3NKZ_oA5s/</link>
		<comments>http://www.illotus.com/cleanishcode/2010/05/learning-programming-languages/#comments</comments>
		<pubDate>Thu, 06 May 2010 12:03:34 +0000</pubDate>
		<dc:creator>illotus</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[studies]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[learning]]></category>

		<guid isPermaLink="false">http://www.illotus.com/cleanishcode/?p=124</guid>
		<description><![CDATA[I think learning new programming languages is both easy and very difficult. Syntax is nearly always easy, but understanding when to use a language and what are its strong points. Failing at this leads to the familiar &#8220;when all you have is a hammer, every problem looks like a nail.&#8221; On the other hand I [...]]]></description>
			<content:encoded><![CDATA[<p>I think learning new programming languages is both easy and very difficult. Syntax is nearly always easy, but understanding when to use a language and what are its strong points. Failing at this leads to the familiar &#8220;when all you have is a hammer, every problem looks like a nail.&#8221; On the other hand I read a quote somewhere along the lines &#8220;a good programmer makes the solution look like the language was made for solving it.&#8221; </p>
<p>Then again there is the huge job of learning all the common libraries and services languages have. Consider this: I&#8217;ve used Java on and off for various little programs at the university over the years, but it has been so occasional that I still need to refer to documentation for a lot basic stuff like accessing files etc. It is kinda tough when you don&#8217;t have a very good memory for stuff like that. Similarly for the last year and a half I&#8217;ve needed Perl steadily, but occasionally on my job: I really need the documentation to check pretty basic functions. </p>
<p>The point I&#8217;m rambling to is that routine is in my opinion the biggest factor in mastering a language. If you don&#8217;t use it, you lose it. Basics may stay, but the finer stuff goes away. </p>
<p>My current part time employment is coming to an end and yet again I&#8217;ve been wondering about applying to programming jobs. The thing is, I&#8217;d really like to finish my thesis first. The problem is that while I finish my thesis I lose most of what little routine I have for programming. That makes it tad more difficult to ace interviews in the winter. Luckily I&#8217;ll propably have couple of odd jobs at the Library during the summer, but those are more likely to be configuring software rather than developing it. </p>
<img src="http://feeds.feedburner.com/~r/CleanishCode/~4/ds3NKZ_oA5s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.illotus.com/cleanishcode/2010/05/learning-programming-languages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.illotus.com/cleanishcode/2010/05/learning-programming-languages/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Object Caching 496/616 objects using disk: basic

Served from: www.illotus.com @ 2012-05-20 12:40:30 -->

