<?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>Christopher Warner &#187; Advogato</title>
	<atom:link href="http://weblog.kernelcode.com/category/advogato/feed/" rel="self" type="application/rss+xml" />
	<link>http://weblog.kernelcode.com</link>
	<description>Studies and thoughts, usually in coherent fashion.</description>
	<lastBuildDate>Tue, 03 Jan 2012 17:12:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Cognitive Bias and The Mary Protocol</title>
		<link>http://weblog.kernelcode.com/2011/12/15/cognitive-bias/</link>
		<comments>http://weblog.kernelcode.com/2011/12/15/cognitive-bias/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 19:49:38 +0000</pubDate>
		<dc:creator>Christopher Warner</dc:creator>
				<category><![CDATA[Advogato]]></category>
		<category><![CDATA[Commentary]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[cognitive bias]]></category>
		<category><![CDATA[mary protocol]]></category>

		<guid isPermaLink="false">http://weblog.kernelcode.com/?p=821</guid>
		<description><![CDATA[I have lots of questions Every now and then I am reminded of cognitive bias as presented by Kruger-Dunning in the paper Unskilled and Unaware of It: How Difficulties in Recognizing One's Own Incompetence Lead to Inflated Self-Assessments. As I have been active in the opensource community for close to 18 years now in some [...]]]></description>
			<content:encoded><![CDATA[<h1>I have lots of questions</h1>
<div class="wp-caption alignright" style="width: 226px"><img class="  " title="Confirmation" src="http://dl.dropbox.com/u/5510475/confirmation.png" alt="" width="216" height="247" /><p class="wp-caption-text">Everything you look for and all that you perceive has a way of proving whatever you believe.</p></div>
<p>Every now and then I am reminded of cognitive bias as presented by Kruger-Dunning in the paper <em><a title="Unskilled and Unaware of It: How Difficulties in Recognizing One's Own Incompetence Lead to Inflated Self-Assessments" href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.64.2655&amp;rep=rep1&amp;type=pdf" target="_blank">Unskilled and Unaware of It: How Difficulties in Recognizing One's Own Incompetence Lead to Inflated Self-Assessments</a></em>. As I have been active in the opensource community for close to 18 years now in some form or fashion the first lesson I learned is that if you have never done it before. You don't know. It's just that simple, and this lesson tends to stick with you with in almost every facet of life. It affects ones approach to problems such that every problem starts with one question. Quickly and summarily followed by a series of questions that need to be answered. My standard trajectory usually begins to branch off in a series of questions leaving me with few answers and even more questions to which I simply don't have the answer. Early on this led to a slight madness as I would start down some rabbit hole and end up working on some esoteric issue that affected a handful of people. In retrospect, I was young and dumb, back then I thought that so long as you plugged away at it. No matter how long it took you, you would be able to answer anything. Now that I'm slightly older, and know how dumb I still am and how valuable it is in choosing the right question, I am able to avoid madness. Of course, sometimes it will sneak up on me and I find myself doing something that makes absolutely no sense at all. This is obviously why we call it madness, but I'm much better at avoiding it or tolerating it depending on my needs or condition. I'm of the mindset that madness can't be cured, only managed.</p>
<p>Usually if I receive an email or a critique of work furnished that needs a sign-off, peer review or some such. I'm wholly open to it because my first assumption is that if I'm treading new or unfamiliar water then I obviously don't know what I am doing. Secondly, the more eyes the better. While treading familiar waters I am much less open to critique or suggestion unless I feel it will beneficial, primarily to avoid rabbit holes but also due to a lack of time. New variables mean risk and if there is no gain by adding the element of risk to something that has been tried and true. I'm unlikely to entertain or even respond to it. This is not necessarily always the case but largely this behavior I feel has strengthened my ability to stay focused on the right question and to avoid rabbit holes.</p>
<p>I think proponents and participants in opensource operate within the same vein and mindset for the most part. It's more of a behavioral mindset or lifestyle, propelled by the some itch, urge, quest to solve a given problem and find the right answer. Whether it be for fortune, fame, enjoyment or some other facet. You work the problem until you are tired and move on to some other problem whether it be in the same domain or somewhere else. Hopefully you were able to answer a question or two and because it's opensource inevitably someone at some point will continue finding answers to questions old or new.</p>
<h1>I'd appreciate much more answers however</h1>
<p>Lately though with my own interactions I feel as if this isn't the case, partly because I suspect their is a racial and gender tinge to cognitive bias that is ripe for exploration. This brought up in a couple of discussions on gender recently. Specifically in regards to women in opensource and generalizations of women by men in general. Before these discussions a couple of weeks earlier I had recently finished reading a post by Daniel Stenberg titled "<em><a title="Three out of one hundred" href="http://daniel.haxx.se/blog/2011/10/31/three-out-of-one-hundred/" target="_blank">Three out of one hundred</a></em>" (which I recommend you read) so the conversation and ideas were fresh in my head. Also, I had a heated discussion about some work where I can only make the assumption that because of my skin color this person thought that somehow they knew better and would simply do the exact opposite of what I said. To be brutally honest, sometimes this works in my own favor, and to be blunt, I'm a capitalist and love money so cleaning up a mess may work out for me in monetary fashion. I mean, ignorance is costly, but let me be clear. Unlike agile salesmen, I try my best to offer clear and abrupt warning.</p>
<p>On the whole though the idea is that men on average will make the incorrect assumption that they are more capable at a technical subject than their female counterparts no matter how qualified they may be. Women having to deal with this their entire lives tend to see the bigger picture and avoid what they consider to be rabbit holes. As a woman I would ask why? Why even bother going down that route if every time I do someone is going to offer to second guess me? This coalesced quite nicely with another discussion I had on generalizing untrue statements as applied to women. So, let us take for example the statement, "all women are batshit insane" as clearly being a gross generalization. Amongst a group of men shooting the shit  it may be viewed as an off-cuff remark, in a mix of women, it will still be viewed as an off-cuff remark but it will be normally tolerated, at least to your face. However, this one statement in and of itself subtly reaffirms subconsciously that there must be some bit of truth to that statement. Thus, most women are indeed insane, maybe not batshit insane but a mild course of irrational behavior is expected. Of course this statement is simply ridiculous! I don't have the actual data to back any of this up and saying I believe it to be true isn't enough for an idiot, I realize. That aside, I am ashamed to admit that I am guilty of remarks like this myself. I've tried to rationalize the comments with "it's about context" but I can't qualify that as an "african-american" male. Is the statement "black people know jack shit about computers" any different? It's generalistic, and is again ridiculous but do we subconsciously hold onto these ridiculous generalist statements and again subconsciously use them to validate our own cognitive bias? Of course if that is actually the case there will be less women in opensource because all the men seem to think they are superior. Can you really blame someone that can't get a word in edgewise, everything they do is second guessed, or felt to be inferior? Doesn't sound fun to me at all, especially when you are paid less and have to doubly prove yourself answering harder questions. In short, fuck that noise. So of course, there will be less of any group that isn't already in the majority. Which means we have much less answers to our questions. This is unacceptable and we must try harder not just in our professional but personal lives as well.</p>
<h1>The Mary Protocol</h1>
<p>In response to my own behavior and to help me realize when I may be making a generalist statement that I may not consider hurtful, insulting or a turn-off to someone. I've implemented the Mary protocol. It's a simple procedure that will help me, help myself.</p>
<ol>
<li>The moment I may have said something and/or heard someone else say something that sounds ridiculous enough to either retract with an immediate apology or to pause the conversation with a "not cool". I will do so.</li>
<li>I will not argue about my position beyond stating that i'm invoking something known as the Mary protocol to help myself from reinforcing my subconscious with nonsense and to allow for open discussion if the offending party would like to hear more.</li>
<li>I will do my best to keep any proceeding conversation succinct and within reason.</li>
</ol>
<p>The protocol is to be like a bit of a tase to correct my behavior. Not because I want to become some righteous feminist with a penis but because should I have a daughter someday I'm quite sure i'd take high offense to anyone calling her batshit insane, or treating her in inferior manner in anyway shape or form. So much so that I pray to never see it occur in my presence for the safety of the offending party. Off-cuff or not, it's not acceptable behavior and I will not continue it. It is my hope, that you do the same.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://weblog.kernelcode.com/2008/03/13/yes-actually-its-not-easy/" rel="bookmark" class="crp_title">Yes, actually, it&#8217;s not easy.</a></li><li><a href="http://weblog.kernelcode.com/2010/04/17/hitrun-patching/" rel="bookmark" class="crp_title">Hit&#038;Run patching</a></li><li><a href="http://weblog.kernelcode.com/2010/05/20/writing-good-documentation-and-presenting-your-work/" rel="bookmark" class="crp_title">Writing good documentation and presenting your work.</a></li><li><a href="http://weblog.kernelcode.com/2009/05/04/alfresco-review-part-one/" rel="bookmark" class="crp_title">Alfresco review part one</a></li><li><a href="http://weblog.kernelcode.com/2008/08/12/neutron-protocol/" rel="bookmark" class="crp_title">Neutron Protocol</a></li></ul></div><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://weblog.kernelcode.com/2011/12/15/cognitive-bias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Issue Department Detector for Roundup</title>
		<link>http://weblog.kernelcode.com/2011/07/21/issue-department-detector-for-roundup/</link>
		<comments>http://weblog.kernelcode.com/2011/07/21/issue-department-detector-for-roundup/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 17:19:48 +0000</pubDate>
		<dc:creator>Christopher Warner</dc:creator>
				<category><![CDATA[Advogato]]></category>
		<category><![CDATA[Commentary]]></category>
		<category><![CDATA[roundup issue management]]></category>

		<guid isPermaLink="false">http://weblog.kernelcode.com/?p=698</guid>
		<description><![CDATA[Could find no samples for immediate team/department email on issue creation for Roundup. There used to be one that was shipped with it but that code is broken. Anyway, I needed it so I had to waste my morning writing it. The roundup api is a bit hairy but this example is simple. You'll need [...]]]></description>
			<content:encoded><![CDATA[<p>Could find no samples for immediate team/department email on issue creation for Roundup. There used to be one that was shipped with it but that code is broken. Anyway, I needed it so I had to waste my morning writing it. The roundup api is a bit hairy but this example is simple. You'll need to modify your tracker schema and it will send an email on creation of a ticket or issue to a specific department or team address. Obviously if you change the order or mapping you'll need to update that in the detector code. Cheers!</p>
<pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"><code># Copyright (c) 2011 Christopher Warner - cwarner@kernelcode.com (http://cwarner.kernelcode.com)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the &quot;Software&quot;), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
#   The above copyright notice and this permission notice shall be included in
#   all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
from roundup.anypy.sets_ import set
from roundup import roundupdb, hyperdb

def deptissue(db, cl, nodeid, oldvalues):

    # get all message info
    create = cl.generateCreateNote(nodeid)
    dept_id = cl.get(nodeid, 'department')
    print dept_id

    ''' BUILDING DEPARTMENT '''
    # You have to know the id mapping
    #  technically we could find this

    if dept_id == '1':
        for msgid in cl.get(nodeid, 'messages'):
            try:
                print &quot;Alerting Building Engineering Department&quot;
                cl.send_message(nodeid, msgid, create, ['christopher.warner@drms.dla.mil'])
            except roundupdb.MessageSendError, message:
                raise roundupdb.DetectorError, message

    elif dept_id == '2':
        for msgid in cl.get(nodeid, 'messages'):
            try:
                print &quot;Alerting Technology Department&quot;
                cl.send_message(nodeid, msgid, create, ['Technology EMAIL ADDRESS HERE'])
            except roundupdb.MessageSendError, message:
                raise roundupdb.DetectorError, message

    elif dept_id == '3':
        for msgid in cl.get(nodeid, 'messages'):
            try:
                print &quot;Alerting Research Department&quot;
                cl.send_message(nodeid, msgid, create, ['RESEARCH EMAIL ADDRESS HERE'])
            except roundupdb.MessageSendError, message:
                raise roundupdb.DetectorError, message
    else:
        print &quot;Department doesn't exist&quot;
        pass

def init(db):
    # check on create of ticket
    db.issue.react('create', deptissue)

</code></pre>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://weblog.kernelcode.com/2009/01/29/plone-where-is-it-useful-example-2/" rel="bookmark" class="crp_title">Plone where is it useful? Example #2</a></li><li><a href="http://weblog.kernelcode.com/2009/01/14/deliverance/" rel="bookmark" class="crp_title">Deliverance</a></li><li><a href="http://weblog.kernelcode.com/2009/05/07/alfresco-review-part-two/" rel="bookmark" class="crp_title">Alfresco review part two</a></li><li><a href="http://weblog.kernelcode.com/2009/01/07/message-brokers/" rel="bookmark" class="crp_title">Message Brokers</a></li><li><a href="http://weblog.kernelcode.com/2008/12/11/plone-so-where-is-it-useful-example-1/" rel="bookmark" class="crp_title">Plone, so where is it useful? &#8211; EXAMPLE #1</a></li></ul></div><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://weblog.kernelcode.com/2011/07/21/issue-department-detector-for-roundup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Specification Pepsi Openindiana Build 148 &#8211; FAQ</title>
		<link>http://weblog.kernelcode.com/2011/03/14/specification-pepsi-openindiana-build-148-faq/</link>
		<comments>http://weblog.kernelcode.com/2011/03/14/specification-pepsi-openindiana-build-148-faq/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 02:48:39 +0000</pubDate>
		<dc:creator>Christopher Warner</dc:creator>
				<category><![CDATA[Advogato]]></category>
		<category><![CDATA[Commentary]]></category>
		<category><![CDATA[openindiana]]></category>
		<category><![CDATA[faq]]></category>

		<guid isPermaLink="false">http://weblog.kernelcode.com/?p=642</guid>
		<description><![CDATA[I'm going to try in earnest to keep this post updated with relevant information about Specification Pepsi - Openindiana Build 148 as i'm now calling it. How much energy does the entire machine use? On initial boot with the Samsung Optical SH-223L/BEBS spinning up we hit 95 watts, the system then drops to about 50watts [...]]]></description>
			<content:encoded><![CDATA[<p>I'm going to try in earnest to keep this post updated with relevant information about <a title="Specification Pepsi - Openindiana Build 148" href="http://weblog.kernelcode.com/2011/03/06/openindiana-zfs-server/" target="_blank">Specification Pepsi - Openindiana Build 148</a> as i'm now calling it.</p>
<div class="wp-caption aligncenter" style="width: 568px"><img title="Specification Pepsi Openindiana Build 148" src="http://dl.dropbox.com/u/5510475/oipepsi.jpg" alt="" width="558" height="193" /><p class="wp-caption-text">Specification Pepsi Openindiana Build 148</p></div>
<ol>
<li>
<h2>How much energy does the entire machine use?</h2>
<div>On initial boot with the Samsung Optical SH-223L/BEBS spinning up we hit 95 watts, the system then drops to about 50watts and as it idles out drops to between 47 and 48 watts. While pushing the machine using all 4 drives as stated in the spec, we fluctuate between 50 and 57 watts.</div>
</li>
<li>
<h2>Why the 750w ATX Power supply?</h2>
<div>Based on the above data the 750w would seem to be overkill but in my specific case I have multiple units plugged into the motherboard. If one doesn't plan on adding more than 4-6 hard drives you could easily get away with a 200-250 watt power supply. I'm going to search around for one and update the original specification.</div>
</li>
<li>
<h2>Do you need to have the optical drive?</h2>
<div>Not necessarily, you could technically remove the optical drive after install of the specification if you wanted to save on initial start up power. However the unit spins up only on start-up and considering it will be rarely if ever used, it's pretty much a complete non-issue.</div>
</li>
<li>
<h2>No ECC memory, will that be an issue?</h2>
<div>In the original specification I noted the addition of ECC memory. Well, the Intel D5x doesn't support ECC memory most likely to save as much energy as possible. It also doesn't support Dual Channel memory, again for the same reason. Not the biggest deal in the world for this machine as it's primarily used for storage and technically speaking the likelyhood of getting severe degradation or errors are low. Still, it would of been a nice to have. To my knowledge I don't know of any mini-itx motherboard manufacturers that support ECC memory. At least not yet.</div>
</li>
<li>
<h2>Instead of the D510, why not the D525?</h2>
<div>Well, if we take a <a title="Comparision between the D510 and the D525 Intel mini-itx motherboard" href="http://ark.intel.com/Compare.aspx?ids=43098,49490" target="_blank">quick look at a comparison between the D510 and the D525</a> we see that we gain a minute speed bump in processing and DDR3 instead of DDR2 and wattage remains unchanged. None of this quite frankly mattered to me at the time as the D510 was roughly $20.00 USD less. None of the stated improvements would significantly speed up the function of archival and storage. This obviously changes if you plan to do compression or encryption with ZFS in which case it may then become useful. In reality though it would make much more sense to apply that extra $20.00 USD to a proper gzip or encryption off-board card.</div>
</li>
<li>
<h2>How much will it cost you to operate this unit?</h2>
<div>I pay roughly 9 cents per kwh off the top of my head. I'll have to update with exacts next time I check but based on that number we are looking at close to $3.05 USD per month with the machine running at an average of 0.47kw/h or roughly $37.00 USD a year. Not such a horrible price for the machine that backs up my lively hood. Not that bad at all.</div>
</li>
</ol>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://weblog.kernelcode.com/2011/03/06/openindiana-zfs-server/" rel="bookmark" class="crp_title">OpenIndiana ZFS Server</a></li><li><a href="http://weblog.kernelcode.com/2008/12/26/opensolaris-zfs-timemachine-backup-server/" rel="bookmark" class="crp_title">Openindiana ZFS + TimeMachine Backup Server</a></li><li><a href="http://weblog.kernelcode.com/2010/05/27/steve-is-right/" rel="bookmark" class="crp_title">Steve is right.</a></li><li><a href="http://weblog.kernelcode.com/2009/03/17/mini-displayport-to-vga-firmware-update-awesome/" rel="bookmark" class="crp_title">Mini DisplayPort to VGA firmware update &#8211; Awesome!</a></li><li><a href="http://weblog.kernelcode.com/2009/01/29/plone-where-is-it-useful-example-2/" rel="bookmark" class="crp_title">Plone where is it useful? Example #2</a></li></ul></div><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://weblog.kernelcode.com/2011/03/14/specification-pepsi-openindiana-build-148-faq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenIndiana ZFS Server</title>
		<link>http://weblog.kernelcode.com/2011/03/06/openindiana-zfs-server/</link>
		<comments>http://weblog.kernelcode.com/2011/03/06/openindiana-zfs-server/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 21:26:41 +0000</pubDate>
		<dc:creator>Christopher Warner</dc:creator>
				<category><![CDATA[Advogato]]></category>
		<category><![CDATA[Commentary]]></category>
		<category><![CDATA[openindiana]]></category>
		<category><![CDATA[zfs]]></category>

		<guid isPermaLink="false">http://weblog.kernelcode.com/?p=613</guid>
		<description><![CDATA[Recently I had to upgrade the hardware for my research server due to a massive hardware failure. The failure itself hasn't been diagnosed properly but turns out it was essentially a ram failure of my OCZ DDR2 PC2-6400 modules or a chip failure. The near loss of all of my research data and work had [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had to upgrade the hardware for my research server due to a massive hardware failure. The failure itself hasn't been diagnosed properly but turns out it was essentially a ram failure of my OCZ DDR2 PC2-6400 modules or a chip failure. The near loss of all of my research data and work had me in a slight panic. Luckily getting new hardware got me up and running and everything worked out fine.</p>
<div class="wp-caption aligncenter" style="width: 568px"><img title="Specification Pepsi Openindiana Build 148" src="http://dl.dropbox.com/u/5510475/oipepsi.jpg" alt="" width="558" height="193" /><p class="wp-caption-text">Specification Pepsi Openindiana Build 148</p></div>
<p>The machine is named 'pepsi' and consist of the following hardware (all prices are current as of 03/22/2011):</p>
<ul>
<li><a title="Lian LI PC-Q08B" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16811112265&amp;cm_re=lian_li_pc-q08-_-11-112-265-_-Product">Lian LI PC-Q08B Black Aluminum Mini-ITX Tower Computer Case</a> - $119.00 USD - Optional</li>
<li><a title="Intel BOXD525MW Intel Atom D525 @ 1.8GHz (Dual Core) BGA559" href="http://www.buy.com/prod/intel-d525mw-desktop-motherboard-intel-mini-itx-1-x-processor-support/q/loc/101/217168207.html" target="_blank">Intel BOXD525MW Intel Atom D525@ 1.8GHz (Dual Core) BGA559 Intel NM10 Mini ITX Motherboard/CPU Combo</a>- $79.99 USD</li>
<li>Custom SATA card built to my specifications - $PRICELESS</li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16815287006&amp;nm_mc=OTC-Froogle&amp;cm_mmc=OTC-Froogle-_-Add-On+Cards-_-Vantec-_-15287006">Vantec 6-Port SATA II 150 Pci Host Card Model UGT-ST310R</a> - $31.99 USD</li>
<li><a title="Corsair DDR2 Memory 2GB module" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820145239">Corsair 2GB 240-Pin DDR2 SDRAM DDR2 800 Model VS2GB800D2 G</a> - $29.99 USD</li>
<li><a title="Zalman 120mm Case Fan" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16835118069&amp;cm_re=120_mm_fan_zalman-_-35-118-069-_-Product">Zalman F3 FDB 120mm Fluid Dynamic Bearing Case Fan</a> - $12.99 USD - Optional</li>
<li><a title="CoolerMaster R4 Silent 140mm Case Fan" href="http://www.amazon.com/gp/product/B00314J422">Cooler master R4 Silent 140mm Case Fan R4-S4S-10AK-GP</a> -  $11.99 USD - Optional</li>
<li><a title="Cooler Master GX series 750W ATX Power Supply" href="http://www.amazon.com/Cooler-Master-Power-Supply-RS750-ACAAE3-US/dp/B0035WTD2Q">Cooler master GX series 750W ATX Power Supply RS570-ACAAE3-US</a> - $100.00 USD  *</li>
<li><a title="Samsung DVD+RW Optical drive SH-S223L/BEBS" href="http://www.amazon.com/gp/product/B002HFWBIA">Samsung DVD+RW Optical drive SH-S223L/BEBS</a> - $28.54 - Optional</li>
<li>2x Western Digital 1TB *</li>
<li>2x Western Digital 320GB *</li>
</ul>
<p>* This item is to be part of a refactor meaning that this was originally built for my needs but one doesn't actually need 750 Watts for power and can get by with a 200-250W power supply. Also not included is the price of the 4 hard drives as these are what I had in the original pool. In this case a sufficient comparable HD should do and not fall to far out of bounds in regards to power requirements.</p>
<p>Software wise we have:</p>
<ul>
<li><a title="OpenIndiana Build 148 x86 dvd iso" href="http://dlc.openindiana.org/isos/148/oi-dev-148-x86.iso">OpenIndiana Build 148 x86</a></li>
</ul>
<p>A couple of things to note here on the machine build. The BIOS for the D510 Intel NM10 needed to be upgraded to the latest version as the board I ordered and received was almost a year behind in updates. Newegg did get the delivery to me within 1 day of ordering however which was blazingly fast considering. The fans were ordered because the case comes with a 120 and 140mm fan. The 120mm fan isn't that loud but the 140mm fan has blue leds, which I simply have no tolerance for. The D510 mini-itx board itself is amazingly small and includes a mini pcie port that I can eventually stash a mini pcie wireless card in.</p>
<p>Also, the Vantec 6-Port has 4 internal sata ports and 2 external ESATA ports. It's powered by the SiS 3114 raid controller which is basically some hodge podge mess onboard. They provide a straight-through IDE BIOS upgrade for the chipset available from the <a title="Silicon Image Driver/BIOS download page" href="http://www.siliconimage.com/support/searchresults.aspx?pid=28&amp;cat=15">Silicon Image manufacturers website</a>. You will need this if you want to use this chipset under OpenIndiana primarily because it doesn't automatically detect this chipset otherwise. Moving from sata to ide may mean no hot-swap but I haven't necessarily tried this yet. I'll update after I hook up another 4TB store, i'm moving the data around now as we speak.</p>
<p>Luckily my custom board wasn't damaged and all of the data on disk were fine. I am currently not at liberty to discuss the custom add-on board but hopefully i'll remember to revisit this post when I am.</p>
<p>Normally I only buy ECC ram however to keep cost low and because I had verified my data wasn't severely damaged, I have foregone the option for this machine. After some burn-in time I will most likely upgrade to an ECC ram module.</p>
<p>Before the hardware failure the most critical and important pool was my research pool which was a RAIDZ 1TB zfs pool. After installing OpenIndiana and setting up netatalk which now supports Time Machine backup I simply did a zfs import -f poolname and was back in business.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://weblog.kernelcode.com/2011/03/14/specification-pepsi-openindiana-build-148-faq/" rel="bookmark" class="crp_title">Specification Pepsi Openindiana Build 148 &#8211; FAQ</a></li><li><a href="http://weblog.kernelcode.com/2008/12/26/opensolaris-zfs-timemachine-backup-server/" rel="bookmark" class="crp_title">Openindiana ZFS + TimeMachine Backup Server</a></li><li><a href="http://weblog.kernelcode.com/2010/05/27/steve-is-right/" rel="bookmark" class="crp_title">Steve is right.</a></li><li><a href="http://weblog.kernelcode.com/2009/03/17/mini-displayport-to-vga-firmware-update-awesome/" rel="bookmark" class="crp_title">Mini DisplayPort to VGA firmware update &#8211; Awesome!</a></li><li><a href="http://weblog.kernelcode.com/2009/03/04/external-screen-blanking-apple-driverhardware-issue/" rel="bookmark" class="crp_title">External Screen Blanking &#8211; Apple Driver/Hardware Issue</a></li></ul></div><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://weblog.kernelcode.com/2011/03/06/openindiana-zfs-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plone and div blocking</title>
		<link>http://weblog.kernelcode.com/2011/01/19/plone-and-div-blocking/</link>
		<comments>http://weblog.kernelcode.com/2011/01/19/plone-and-div-blocking/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 19:15:05 +0000</pubDate>
		<dc:creator>Christopher Warner</dc:creator>
				<category><![CDATA[Advogato]]></category>
		<category><![CDATA[Commentary]]></category>
		<category><![CDATA[content management system]]></category>
		<category><![CDATA[plone]]></category>
		<category><![CDATA[body]]></category>
		<category><![CDATA[browserview]]></category>
		<category><![CDATA[div]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[page templating]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[zpt]]></category>

		<guid isPermaLink="false">http://weblog.kernelcode.com/?p=597</guid>
		<description><![CDATA[Excuses I haven't written any functional tutorial or such for Plone in a while. I'm working on a paper involving openid and started some work on an introduction to object and dynamic publishing that I need more time to work on, have random other things moving and etc excuses here. Something quick and useful in [...]]]></description>
			<content:encoded><![CDATA[<h1>Excuses</h1>
<p>I haven't written any functional tutorial or such for Plone in a while. I'm working on a paper involving openid and started some work on an introduction to object and dynamic publishing that I need more time to work on, have random other things moving and etc excuses here. Something quick and useful in the meantime I suppose.</p>
<h1>What is div blocking?</h1>
<p>Div blocking is what I'm calling the process of returning a CoookedBody() back to your template into a specific html div. It's not specific to plone and it's a simple and straight-forward method many Plone developers call on. The idea is that you want to be able to return a section of html back into your overall template using a "Page" or "Document" content type. A simple use case for this is when you want to allow content-editors a chance to change something in the overall webpage using the standard Plone page content type. No sense in creating a new content-type just to return some formatted structured text. The end result is that you would like the final rendered html from that page to fit in-between &lt;div&gt;&lt;/div&gt; tags and for the overall look to leave your layout alone.<span id="more-597"></span>CookedBody() is a method that is apart of the overall Document object located in the Products.CMFDefault egg. It is an accessor method and it looks like this:</p>
<pre>    #
    #   IDocument methods
    #   

    security.declareProtected(View, 'CookedBody')
    def CookedBody(self, stx_level=None, setlevel=0, rest_level=None):
        """ Get the "cooked" (ready for presentation) form of the text.

        The prepared basic rendering of an object.  For Documents, this
        means pre-rendered structured text, or what was between the
         tags of HTML.

        If the format is html, and 'stx_level' or 'rest_level' are not
        passed in or is the same as the object's current settings, return
        the cached cooked text.  Otherwise, recook.  If we recook and
        'setlevel' is true, then set the recooked text and stx_level or
        rest_level on the object.
        """
        if (
            (self.text_format == 'html' or self.text_format == 'plain'
            or (stx_level is None)
            or (stx_level == self._stx_level))
            and
            ((rest_level is None)
            or (rest_level == self._rest_level))
            ):
            return self.cooked_text
        elif rest_level is not None:
            cooked = ReST(self.text, initial_header_level=rest_level)
            if setlevel:
                self._rest_level = rest_level
                self.cooked_text = cooked
            return cooked
        else:
            cooked = stx2html(self.text, level=stx_level, header=0)
            if setlevel:
                self._stx_level = stx_level
                self.cooked_text = cooked
            return cooked</pre>
<p>Reading the documentation of the object method we can see that it returns the cached cooked text which is stored in Plone's portal_catalog. One can go ahead and set stx_level or rest_level if you want which will use the reStructuredText parser to get you what you want.</p>
<p>I'm normally using a <a title="Creating a custom template for a Plone content type" href="http://weblog.kernelcode.com/2010/05/12/creating-a-custom-template-for-a-plone-content-type-2/" target="_blank">custom template in the form of a BrowserView</a> and very rarely am I utilizing Plone's default theme. So if you know nothing about BrowserViews then please read the previous link first.</p>
<h1>How to do?</h1>
<p>Pretty simple, you just get the page object that you are looking for and run CookedBody(). So create a page and let's call it "Example" and fill it with some content. From there in creating your BrowserView lets add the method getTextFromPage() which will take the content from the page Example and return the CookedBody.</p>
<pre>class MySpecialThemeView(BrowserView):

    implements(IMySpecialThemeView):

    def getTextFromPage(self):
    """Get the structured text from a page object with the id/name Example"""

        # We grab the root of our site here
        root = self.portal_eroor.getPortalObject()

        # We then grab the page object with the id Example
        example = getattr(root, "Example")

        # We then grab the body of the page as that is where the content lies
        # We could just as easily grab the title of the page or other attributes if needed
        body = example.CookedBody()

        # We then return body to our web browser
        return body</pre>
<p>That finished our template would resemble something like:</p>
<div class="wp-caption alignnone" style="width: 522px"><img class=" " title="Cooked Template" src="http://dl.dropbox.com/u/5510475/cookedtemplate.png" alt="Cooked Template HTML" width="512" height="368" /><p class="wp-caption-text">HTML Template for CookedBody</p></div>
<p>Where right at the top of the page we have the div named example. That's pretty much it!</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://weblog.kernelcode.com/2010/05/12/creating-a-custom-template-for-a-plone-content-type-2/" rel="bookmark" class="crp_title">Creating a custom template for a Plone content type</a></li><li><a href="http://weblog.kernelcode.com/2009/02/19/html-entities-and-encodings/" rel="bookmark" class="crp_title">HTML Entities and Encodings</a></li><li><a href="http://weblog.kernelcode.com/2009/09/29/creating-a-content-type-for-plone-3-x/" rel="bookmark" class="crp_title">Creating a Content Type for Plone 3.x</a></li><li><a href="http://weblog.kernelcode.com/2009/01/29/plone-where-is-it-useful-example-2/" rel="bookmark" class="crp_title">Plone where is it useful? Example #2</a></li><li><a href="http://weblog.kernelcode.com/2007/11/17/zopeplone-have-changed-my-life/" rel="bookmark" class="crp_title">Zope/Plone have changed my life</a></li></ul></div><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://weblog.kernelcode.com/2011/01/19/plone-and-div-blocking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

