<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>GenericFX/BrainFX/CamBAfx</title>
	<atom:link href="http://genericfx.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://genericfx.wordpress.com</link>
	<description>Development Blog</description>
	<lastBuildDate>Thu, 26 Nov 2009 19:40:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='genericfx.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>GenericFX/BrainFX/CamBAfx</title>
		<link>http://genericfx.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://genericfx.wordpress.com/osd.xml" title="GenericFX/BrainFX/CamBAfx" />
	<atom:link rel='hub' href='http://genericfx.wordpress.com/?pushpress=hub'/>
		<item>
		<title>CGLM Wizard redesign&#8230;</title>
		<link>http://genericfx.wordpress.com/2009/11/26/cglm-wizard-redesign/</link>
		<comments>http://genericfx.wordpress.com/2009/11/26/cglm-wizard-redesign/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 19:40:50 +0000</pubDate>
		<dc:creator>co224</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://genericfx.wordpress.com/?p=35</guid>
		<description><![CDATA[CamBA&#8217;s CGLM is my archilles&#8217; heel. I find it incrediblely difficult to set the parameters correct. It happened when I was settiing them on the command line, and continues to plague me after I created CamBAfx. Long time users of CamBA will certainly noticed that it underwent quite a few revisions. To their chagrin, I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=35&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>CamBA&#8217;s CGLM is my archilles&#8217; heel. I find it incrediblely difficult to set the parameters correct.</p>
<p>It happened when I was settiing them on the command line, and continues to plague me after I created CamBAfx.</p>
<p>Long time users of CamBA will certainly noticed that it underwent quite a few revisions. To their chagrin, I am imposing yet another redesign.</p>
<p>The way I see it is the parameter design was deceptively simple for the control of a very complex program. Like all academicly written programs (including my own) it does not perform rigorious check on the parameters and therefore can hide a multitude of sins if you are not careful. It is further complicated by the fact that one parameter&#8217;s behaviour is dependent on another. [For example, '-c' is dependent on '-l' and in the case of the pipeline cglm, -c is also dependent on the 'Main' and "Interaction" parameters.] This is not uncommon, but nonetheless a trap.</p>
<p>It is also very difficult for users to explain to me what is wrong. Take for example the case of a user which took 6 months to convince me that I have omitted a possible  &#8216;-c&#8217; value when extra regressors are available, and no less then three emails to nail down the problem, followed by 8 plus emails to fully clarify the issue.</p>
<p>Translating this into the wizard was not an easy task either. Take for instance this latest incarnation. Three times I thought I completed it, three times the QA testing reveals that I have mistakes in the implementation.</p>
<p>Why? first of all, unlike other pipelines where the parameters are either independent of each other or have minimum dependencies and as you progressively down the option list, your remaining choices are narrowed down really quickly. With CGLM, there are a lot of interdependent parameters and at any steps, depending on what you had chosen, your remaining choices can explode instead of being narrowed down. That is never a good sign for a wizard designer.</p>
<p>One of the major CamBAfx&#8217;s wizard design aim is to guide you through the pipeline creation and ensure that you will always create a valid pipeline. Guiding you through the pipeline creation means I have to keep the promise that I do not unnecessarily restrict your choice and will communicate to you all your available option. Ensuring the pipeline is valid means I have to constantly check what you had selected/entered is valid. This  complicates the wizard&#8217;s design enormously.</p>
<p>Furthermore, I am one of those who wants to make sure that the wizard design reflects the parameter given to the pipeline. For example, for a pull down box, I could had shown you an option called &#8220;Main effect of variable 1&#8243;, but I choose to show you &#8220;1: Main effect of variable 1&#8243; because the parameter in question, say &#8216;-c&#8217;, is expecting the value &#8217;1&#8242; to represent &#8220;Main effect of variable 1&#8243;. I think small little thing like option number in this case is important as it helps you (and me) to read the shell script generated by the pipelines later.</p>
<p>Unfortunately, all these nice things we have on the wizard translated to more work. More work means more potential trouble point. Remember that in the last reincarnation, the wizards display changes according to your response? That is part of the strategy to present you with the most appropriate UI items (dropdown box, text box etc) for the options you had chosen.</p>
<p>Unfortunately for me, the previous CGLM design has these major problems:</p>
<ol>
<li>For 2&#215;2, I had presented the &#8220;Interaction between factor 1 and factor 2&#8243; as an option for the variate. Unfortunately, unless you click the &#8220;interaction&#8221; button, the &#8220;Model&#8221; file is not generated correctly. Guess what is worse? You probably do not realize that I have a check box for &#8220;interaction&#8221;. The wizard sometimes hide it.</li>
<li>You choose to add extra regressors, but you cannot use them as output variate. Apparently this is a very common operation which I missed.</li>
<li>In this design I had implemented the concept of restricting the parameter choice to those that are valid for you particular design. It appears that I was not agressive enough and did not completely eliminated the possibility of you changing the parameters to invalid one post pipeline creation. As I think this give you a false sense of security which is even worse than telling you there is no security at all, i.e., giving you all possible choices regardless of whether the pipeline created will be invalid, it has to change.</li>
<li>It was a conscious decision to exclude user-defined &#8220;interactions&#8221;, such as the interactions between factors and regressors. I did not think this will impact day-to-day work. Unfortunately, recent advancement with  users wanting to regress with more than one regressors shows that I am wrong.</li>
</ol>
<p>So, what did I changed in the new wizard? For one, no more display change as you fill in the wizard. All sections are listed immediately. You are expected to start by specifying the pipeline name (as usual), then your analysis design (as usual). Next you decides whether you want any extra regressors and input the interactions that you want. Finally, you choose the variate to output. Note that the analysis design, extra regressors, interactions and variate to output are heavily dependent on each other. Changing one can invalidate the other. So you might have to revisit the others after changing one of them. No worry, as usual, refers to the notification area at the top of the wizard to tell you what to do; And the &#8220;Finish&#8221; button will only be enabled if you have a valid pipeline configuration. Also as usual,  the interactions terms you define will be carefully scrutinized for mistake.</p>
<p>As for trimming the output, you will note that you can no longer change the &#8220;Interactions&#8221; parameter after pipeline creation. Therefore, this means that the wizard is the only chance you can define the &#8220;Main&#8221; and &#8220;Interactions&#8221; parameter. If you want to know which interactions is available, have a look under the &#8220;variate&#8221; parameters. As with previous wizard, your choice of analysis is restricted to those that share the same parameter settings.</p>
<p>Hopefully, this wizard will be the last ever redesign.</p>
<p>I think the cglm pipeline is difficult to setup correctly and always advise users to NOT modify the parameters unless John Suckling or I am consulted on it. If you need to modify the analysis, create a new pipeline and let the wizard guide you. Then import the data from the old pipeline.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/genericfx.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/genericfx.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/genericfx.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/genericfx.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/genericfx.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/genericfx.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/genericfx.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/genericfx.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/genericfx.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/genericfx.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/genericfx.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/genericfx.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/genericfx.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/genericfx.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=35&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://genericfx.wordpress.com/2009/11/26/cglm-wizard-redesign/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f785bf893e6c0e950c5cd6937ac89c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">co224</media:title>
		</media:content>
	</item>
		<item>
		<title>A flurry of activity. Why?</title>
		<link>http://genericfx.wordpress.com/2009/08/29/a-flurry-of-activity-why/</link>
		<comments>http://genericfx.wordpress.com/2009/08/29/a-flurry-of-activity-why/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 17:31:48 +0000</pubDate>
		<dc:creator>co224</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://genericfx.wordpress.com/2009/08/29/a-flurry-of-activity-why/</guid>
		<description><![CDATA[Within the last month there was a flurry of activity with GenericFX, BrainFX and CamBAfx. They are all delivered as zip file updates to CamBA 2.3.0. Why? We just completed a big analysis project using CamBA. As with large projects, one start to find out the shortcoming of existing tools. Post project, one set out [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=34&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Within the last month there was a flurry of activity with GenericFX, BrainFX and CamBAfx. They are all delivered as zip file updates to CamBA 2.3.0. Why?</p>
<p>We just completed a big analysis project using CamBA. As with large projects, one start to find out the shortcoming of existing tools. Post project, one set out to create those tools for the next project. So, the update flurry is the results.</p>
<p>What do we have now? </p>
<p>First, Two new processing engines (PPSS and SGE) for GenericFX. One uses PPSS from http://code.google.com/p/ppss, and the other for Sun Grid Engine. As with all GenericFX processing engines, the aim was to simplify them to be easily useable by everyone. I think I more or less achieve this aim.</p>
<p>Then, FSL (http://www.fmrib.ox.ac.uk/fsl) processes for analyzing 3D structural brain images into its three separate components (White Matter, Gray Matter and CSF), used in the big project is coded up as a pipeline. It is now part of FSLfx which is part of BrainFX.</p>
<p>With CamBAfx the changes are very small. What I did was to remove the restriction on CGLM where the regressors must take the value of -1 or 1.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/genericfx.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/genericfx.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/genericfx.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/genericfx.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/genericfx.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/genericfx.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/genericfx.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/genericfx.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/genericfx.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/genericfx.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/genericfx.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/genericfx.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/genericfx.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/genericfx.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=34&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://genericfx.wordpress.com/2009/08/29/a-flurry-of-activity-why/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f785bf893e6c0e950c5cd6937ac89c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">co224</media:title>
		</media:content>
	</item>
		<item>
		<title>BrainFX&#8217;s NifTI Implementation</title>
		<link>http://genericfx.wordpress.com/2008/01/22/brainfxs-nifti-implementation/</link>
		<comments>http://genericfx.wordpress.com/2008/01/22/brainfxs-nifti-implementation/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 16:51:03 +0000</pubDate>
		<dc:creator>co224</dc:creator>
				<category><![CDATA[BrainFX]]></category>
		<category><![CDATA[CamBAfx]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://genericfx.wordpress.com/2008/01/22/brainfxs-nifti-implementation/</guid>
		<description><![CDATA[To support CamBAfx (CamBA&#8217;s UI) I developed a set of library functions for NifTI. They are available for download at BrainFX&#8217;s website. They are made available under the General Public License version 3 or later, with the standard Classpath exception. If you are new to NifTI and want to use NifTI with Java really quickly, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=31&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>To support CamBAfx (CamBA&#8217;s UI) I developed a set of library functions for <a href="http://nifti.nimh.nih.gov">NifTI</a>. They are available for download at <a href="http://www.sourceforge.net/projects/brainfx">BrainFX&#8217;s website</a>. They are made available under the <a href="http://www.gnu.org/copyleft/gpl.html">General Public License version 3 </a>or later, with the standard Classpath exception.</p>
<p>If you are new to NifTI and want to use NifTI with Java really quickly, then I recommend NifTI reference library, <a href="http://www.sourceforge.net/projects/niftilib">niftijlib</a>. niftijlib&#8217;s initial learning curve is very low, and it does most of the things you want to do. If you want a nice Java Swing library that is able to display nice brain images and perhaps convert your images to jpeg/png and other format, use <a href="http://www.loni.ucla.edu/Software/Software_Detail.jsp?software_id=17">LONI&#8217;s ImageIO Plugins</a>. I&#8217;m sure there are more fine NifTI libraries around and apologize for not listing an exhaustive list here.</p>
<p>You should consider CamBA&#8217;s NifTI library if you are interested in concentrates on manipulation of NifTI headers and not UI.<br />
I develop CamBA&#8217;s NifTI library for the following reasons:<br />
<u>I want functions that reminds me about things I may have to consider to get my NifTI file to behave properly</u></p>
<p>So, I se several pieces of data together. For example, I use</p>
<pre>nim.setBasicMetaData(dim[8], pixdim[8], NIFTI.NIFTI_TYPE_INT16, NIFTI.NIFTI_UNIT_MM, NIFTI.NIFTI_UNIT_SEC)</pre>
<p>to individual setX() function because it reminds me that dim[], pixdim[], datatype and xyzt_units are not mutually exclusive and you should consider setting all of them if you modify one. Other examples include</p>
<pre>nim.setCalRange(cal_min, cal_max) nim.setScaling(scl_slope, scl_inter)</pre>
<p>I<u> want a library that reflects my normal programming practice</u></p>
<ol>
<li>Separation of concern: NifTI1Infoset does not know how to read/write itself. Instead, it relies on Nifti1FileStream to read/write it.</li>
<li>Rather than packing/unpacking data directly, e.g. the time and space measurement unit into xyzt_unit, I let the program API handles it. i.e.,  nim.setBasicMetaData(&#8230;, space_unit, time_unit), nim.getSpaceUnit() and nim.getTimeUnit()</li>
</ol>
<p><u>I want a framework that reflects programming need, not file structure</u></p>
<p>Hence, Nifti1Infoset (equivalent to NifTI1Dataset in niftijlib) does not carry the fields sizeof_hdr, bitpix, voffset and magic[] as it is the job of Nifti1FileStream to insert them correctly when reading/writing to file. I let machine worry about them.</p>
<p><u>More flexible Nifti1 Container</u></p>
<p>Using storePut(key, object) and storeGet(key), Nifti1Infoset has a storage area for you to store anything if you can associate it with a key. In fact, we use NIFTI.COMPLETE_DATA_KEY is used to store the actual image data, and any key with the prefix EXTENSION_ECODE_PREFIX stores your extension value.</p>
<p><u>I need a software framework that encapsulate task I do daily</u>:</p>
<p>For example:</p>
<ul>
<li>INifti1InfosetValidator interface allows me to call validate() to check  incoming NifTI file conforms to ceratin requirement. For example, in CamBA, fMRI raw data must be single 4D NifTI file, of int16 datatype, have slice_code and sform is filled properly, not gzipped and in machine endian,  standard brain template must be a  3D NifTI file etc&#8230;</li>
<li>INifTIComparator interface. It allow me to compare two nifti files intelligently. For example, when comparing two files, if one detects differences in the Time component of  xyzt_unit for the two files, it is not imporatnt if you are looking at 3D template file, but is definitely an error if you are looking at a 4D fMRI file. The comparator should be able to figure this out.</li>
</ul>
<p><u>I need a SWT/JFace/Eclipse kit to manipulate NifTI header data</u></p>
<p>Eclipse uses SWT. I cannot find any SWT toolkit to manipulate NifTI data out there.</p>
<p>It also must be smart enough to adapt to different type of NifTI file, e.g., fMRI4D, template data etc.</p>
<p>Note:</p>
<p>To use this NifTI library, you have to:</p>
<p>Download the BrainFX-&gt;2.1.1-&gt;brainfx-2.1.1.zip package. While it is actually a collection of Eclipse plugins, it is simply a collection of directories.</p>
<p>The core NifTI access routine, which is pure Java code, is in directory org.brainfx.nifti/src. Please note that org.brainfx.nifti.testers and org.brainfx.nifti.helpers are older packages which are deprecated and have dependencies on genericFX package and the package net.sourceforge.nifti package. [net.sourceforge.nifti is niftijlib-0.1 packaged as an eclipse plugin]</p>
<p>org.brainfx.nifti.ui contains the SWT UI Package. The only dependency is the Standard Widget Toolkit (SWT) package from www.eclipse.org. You need to remove org.brainfx.nifti.ui.UiPlugin which is only useful if you are using it as an eclipse package.</p>
<p>The JUnit tests, in org.brainfx.nifti*tests, can only be if you use the Eclipse IDE. The reason is I used Eclipse to determine where to find the test datasets used in some of the unit tests.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/genericfx.wordpress.com/31/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/genericfx.wordpress.com/31/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/genericfx.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/genericfx.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/genericfx.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/genericfx.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/genericfx.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/genericfx.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/genericfx.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/genericfx.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/genericfx.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/genericfx.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/genericfx.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/genericfx.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/genericfx.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/genericfx.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=31&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://genericfx.wordpress.com/2008/01/22/brainfxs-nifti-implementation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f785bf893e6c0e950c5cd6937ac89c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">co224</media:title>
		</media:content>
	</item>
		<item>
		<title>TBSSfx</title>
		<link>http://genericfx.wordpress.com/2007/12/31/tbssfx/</link>
		<comments>http://genericfx.wordpress.com/2007/12/31/tbssfx/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 18:05:55 +0000</pubDate>
		<dc:creator>co224</dc:creator>
				<category><![CDATA[BrainFX]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[GenericFX]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[tbssfx]]></category>

		<guid isPermaLink="false">http://genericfx.wordpress.com/2007/12/31/tbssfx/</guid>
		<description><![CDATA[This is effectively a follow up to &#8220;Using FSL In BrainFX? Its Possible&#8220;. In late 2006 we had been working on automating TBSS pipeline from FSL. The primary reason is that one of our researcher, Dr Shigang Yue (who had since move on to Lincoln University) was working on a project that requires TBSS. This [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=24&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is effectively a follow up to &#8220;<a href="http://genericfx.wordpress.com/2006/11/17/using-fsl-in-brainfx-it-is-possible/">Using FSL In BrainFX? Its Possible</a>&#8220;. In late 2006 we had been working on automating <a href="http://www.fmrib.ox.ac.uk/fsl/tbss/index.html">TBSS</a> pipeline from <a href="http://fmrib.ox.ac.uk/fsl">FSL</a>. The primary reason is that one of our researcher, Dr Shigang Yue (who had since move on to Lincoln University) was working on a project that requires TBSS. This tool had been released as TBSSfx in late November 2007.</p>
<p>What this tool do is to simply automate the tasks stated in <a href="http://www.fmrib.ox.ac.uk/fsl/tbss/index.html">TBSS</a> step 1 to 5</p>
<h2>Quick Start</h2>
<p>From the File-&gt;New&#8230; menu item, select &#8220;Cambridge TBSS Pipeline&#8221;.<a href="http://genericfx.files.wordpress.com/2007/12/newwizard-tbss.png" title="newwizard-tbss.png"><br />
</a></p>
<p><a href="http://genericfx.files.wordpress.com/2007/12/newwizard-tbss.png" title="newwizard-tbss.png"><img src="http://genericfx.files.wordpress.com/2007/12/newwizard-tbss.png?w=450" alt="newwizard-tbss.png" /></a></p>
<p>Then fill in the information on the wizard:</p>
<p><a href="http://genericfx.files.wordpress.com/2007/12/tbss-newwizardpage.png" title="TBSS New Wizard"><img src="http://genericfx.files.wordpress.com/2007/12/tbss-newwizardpage.png?w=450" alt="TBSS New Wizard" /></a></p>
<p>&#8220;FAi Target&#8221; refers to the target you used in step 2 (FMRIB58_FA in TBSS page).  The &#8220;Number of EVs&#8221;  and &#8220;Contrast&#8221; is used to emulate the input to GLM Wizard as described in step 5.  &#8220;Number of EVs&#8221; determines the number of columns available in the Input Table, and is used in conjunction with the Input Table to generate the &#8220;design.mat&#8221;. &#8220;Contrast&#8221; is used to define the &#8220;design.con&#8221; file</p>
<p>On clicking &#8220;Finish&#8221;, you will get the input table:</p>
<p><a href="http://genericfx.files.wordpress.com/2007/12/tbss-inputtable.png" title="TBSS Input Table"><img src="http://genericfx.files.wordpress.com/2007/12/tbss-inputtable.png?w=450" alt="TBSS Input Table" /></a></p>
<p>To run this pipeline, use the standard Run-&gt;Run&#8230; dialog box and give it a output directory name.</p>
<p>That is all you need to do. TBSSfx will automate the whole TBSS process from step 1 to step 5.</p>
<h2>What happens when you run it?</h2>
<p>After you click &#8220;Run&#8221; in the standard Run-&gt;Run&#8230; dialog box,  the usual scripts controlling the processing will be generated as usual.</p>
<h3>TBSS Step 1</h3>
<p>You will find that a suitable threshold value for &#8220;Step 1&#8243; of TBSS will be automatically determined and all your &#8220;Input Map&#8221; in the Input Table copied to the output directory.</p>
<p>In the output directory, you will find that the &#8220;Input Map&#8221; are actually named &#8220;NNNN-&lt;inputmap&gt;&#8221; where NNNN is a number starting from 1. The number is consecutive and will list the file according to the order it is on the Input Table. In the example above we will have &#8220;01-tbss1.nii&#8221; and &#8220;02-tbss2.nii&#8221;. The precise reason will be articulated later.</p>
<p>Whenever possible, to save diskspace, a hard link is used instead of copying.</p>
<h3>TBSS Step 2</h3>
<p>Your FAi target copied and renamed to &lt;output directory&gt;/FAI/target.hdr just before TBSS step 2 is performed as required by the TBSS analysis process. Hard link will be preferred over copying to save disk space.</p>
<h3>TBSS Step 3 and 4</h3>
<p>Just as TBSS step 3 and 4. The threshold value in TBSS 4 can be set via Parameter-&gt;Threshold.</p>
<h3>TBSS Step 5</h3>
<p>Your &#8220;Number of EVs&#8221;, EVs column in the Input Table and &#8220;Contrasts&#8221; value will be turned into&lt;output directory&gt;/design.mat and &lt;output directory&gt;/design.con.</p>
<p>In the example above, design.mat looks like this:</p>
<pre>
/NumWaves 2
/NumPoints 2
/PPheights 2.0
/Matrix
1.0 2.0
-1.0 -2.0</pre>
<p>As you can see, the /Matrix array is the array in constructed by using the EV columns</p>
<p>The design.con looks like this:</p>
<pre>
/ContrastName1 ev1
/ContrastName2 ev2
/ContrastName3 ev1-ev2
/NumWaves 2
/NumPoints 3
/PPheights 1.0 2.0
/Matrix
1 0
0 1
1 -1</pre>
<p>/ContrastNameX is the name of row X in /Matrix; And both the /Matrix and /ContrastNameX is defined in the New Wizard.</p>
<h2>Notable Fact</h2>
<p>&#8220;design.mat&#8221;  which lists the EV values, does not contain the name of the &#8220;Input Map&#8221; it refers to. Instead, it arrange all *.nii (&#8220;Input Map&#8221;) in FAI in alphabetical order and apply the first row to the first &#8220;Input Map&#8221; and so on and so for.</p>
<p>The Input Table, however, do not constrain you to put the &#8220;Input Map&#8221; in alphabetical order. We find this too constraining and instead let TBSSfx handle this automatically for you. There is two choices: Rearrange &#8220;design.mat&#8221; /Matrix row to fit the alphabetical order of the &#8220;Input Map&#8221; or to rename the &#8220;Input Map&#8221; name so that it is in alphabetical order in the way it it is presented on the &#8220;Input Table&#8221;. We chosen the latter and do it by prefixing the &#8220;Input Map&#8221; with four digit numbers representing its row. The reason is for easier debugging: The /Matrix row order in &#8220;design.mat&#8221; will be the same as that in &#8220;EV columns&#8221; and the order of &#8220;Input Map&#8221;, as seen by TBSS is immediately clear compare to the first approach.</p>
<h2>FINALLY and unfortunately: An important exception</h2>
<p>Two actually. The first is that the numbering of  &#8220;Input Map&#8221;s using four digit number means TBSSfx cannot handle more than 999 &#8220;Input Maps&#8221;. Unless you use a Grid Engine, this is more than what your computer can handle. In any case, realistically speaking, one rarely have a thousand or more &#8220;Input Maps&#8221;.</p>
<p>The second exception is more important: Just after we released TBSSfx 1.3.2, FSL version 4.0 came out. We had used FSL3.3 in the development of TBSSfx. Therefore we do not know whether it works with FSL 4.0. The development of TBSSfx is temporary frozen as we do not expect to revisit the dataset acquired until at least 2 years later.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/genericfx.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/genericfx.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/genericfx.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/genericfx.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/genericfx.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/genericfx.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/genericfx.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/genericfx.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/genericfx.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/genericfx.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/genericfx.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/genericfx.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/genericfx.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/genericfx.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/genericfx.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/genericfx.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=24&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://genericfx.wordpress.com/2007/12/31/tbssfx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f785bf893e6c0e950c5cd6937ac89c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">co224</media:title>
		</media:content>

		<media:content url="http://genericfx.files.wordpress.com/2007/12/newwizard-tbss.png" medium="image">
			<media:title type="html">newwizard-tbss.png</media:title>
		</media:content>

		<media:content url="http://genericfx.files.wordpress.com/2007/12/tbss-newwizardpage.png" medium="image">
			<media:title type="html">TBSS New Wizard</media:title>
		</media:content>

		<media:content url="http://genericfx.files.wordpress.com/2007/12/tbss-inputtable.png" medium="image">
			<media:title type="html">TBSS Input Table</media:title>
		</media:content>
	</item>
		<item>
		<title>Using FSL in BrainFX? It is possible</title>
		<link>http://genericfx.wordpress.com/2006/11/17/using-fsl-in-brainfx-it-is-possible/</link>
		<comments>http://genericfx.wordpress.com/2006/11/17/using-fsl-in-brainfx-it-is-possible/#comments</comments>
		<pubDate>Fri, 17 Nov 2006 19:18:44 +0000</pubDate>
		<dc:creator>co224</dc:creator>
				<category><![CDATA[BrainFX]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Users]]></category>

		<guid isPermaLink="false">http://genericfx.wordpress.com/2006/11/17/using-fsl-in-brainfx-it-is-possible/</guid>
		<description><![CDATA[I always know that it is possible to call to FSL programs in BrainFX. After all, FSL has a command line interface, and how do we call CamBA program in CamBAfx? Command line. Yes, there are differences beween the environment setup for FSL and CamBA, but solving them is not rocket science. Once you know [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=18&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I always know that it is possible to call to <a href="http://www.fmrib.ox.ac.uk/fsl/">FSL</a> programs in BrainFX. After all, FSL has a command line interface, and how do we call CamBA program in CamBAfx? Command line. Yes, there are differences beween the environment setup for FSL and CamBA, but solving them is not rocket science. Once you know how to create a specialized, isolated environment to run CamBA on every machine, the same technique can be used to run FSL.</p>
<p>We created BrainFX in support of our Neuroscience research work. Increasingly, we find that we are using FSL to run the preliminary stages for structural analysis of the brain. Thus, we wants to explore whether we can run FSL inside BrainFX with the view of creating hybrid FSL and CamBA pipelines. Unfortunately, the powers-that-be is not willing to take my word for it, so a little demonstrator is in order.</p>
<p>After playing with FSL and BrainFX for a few hours, I managed to cook up such a demonstrator. It is a basic one, i.e., proving that BrainFX can reach out to BET. Let&#8217;s face it, BET is one of the easiest program in FSL to co-opt with BrainFX, and the demonstrator did nothing but read in a NifTI image, process it with BET then write the output, bypassing all the options you can set with BET. Nonetheless, it shows that it is possible to run BET with BrainFX.</p>
<p>I must stress that these work are very preliminary. It simply demonstrates that there are no-unsurmountable hurdle in getting BrainFX to work with FSL. The next plan is to get FSL programs that we need running in BrainFX, before branching into mixing FSL with CamBA. There will be a lot of decision to be made before both FSL and CamBA can coexists under BrainFX&#8217;s umbrella.</p>
<p>Maintaining the tradition of calling something integrated into genericFX as fx, we named the FSL integration into BrainFX FSLfx.</p>
<p>Please note that we are not integrating FSL and CamBA. They are integrated separately into BrainFX. In fact, it is possible to create a CamBA-like GUI for FSL in such a way that it live and breath FSL, without losing any funtionalities that makes the GUI unique. What we do plan to do is to marry FSL and CamBA to produce offsprings (pipelines) that are more powerful than their parents separately.</p>
<p>We will keep you informed on our progress. Right now the most important  task is to get blessing from FSL team.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/genericfx.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/genericfx.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/genericfx.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/genericfx.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/genericfx.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/genericfx.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/genericfx.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/genericfx.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/genericfx.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/genericfx.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/genericfx.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/genericfx.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/genericfx.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/genericfx.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/genericfx.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/genericfx.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=18&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://genericfx.wordpress.com/2006/11/17/using-fsl-in-brainfx-it-is-possible/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f785bf893e6c0e950c5cd6937ac89c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">co224</media:title>
		</media:content>
	</item>
		<item>
		<title>Good News: Our free software stack is virtually complete</title>
		<link>http://genericfx.wordpress.com/2006/11/13/good-news-our-free-software-stack-is-virtually-complete/</link>
		<comments>http://genericfx.wordpress.com/2006/11/13/good-news-our-free-software-stack-is-virtually-complete/#comments</comments>
		<pubDate>Mon, 13 Nov 2006 13:57:52 +0000</pubDate>
		<dc:creator>co224</dc:creator>
				<category><![CDATA[BrainFX]]></category>
		<category><![CDATA[CamBAfx]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[General Programming]]></category>
		<category><![CDATA[GenericFX]]></category>
		<category><![CDATA[Users]]></category>

		<guid isPermaLink="false">http://genericfx.wordpress.com/2006/11/13/good-news-our-free-software-stack-is-virtually-complete/</guid>
		<description><![CDATA[Sun announced today that it is releasiing Java under the General Public License (GPL). This is good news for GenericFX/BrainFX/CamBAfx (&#8220;GenericFX&#8221;) as it means it is we can almost cook up a copy of it using only free software. The only component that is not free software is the Eclipse Platform and it is not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=17&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sun <a href="http://www.vnunet.com/vnunet/news/2168433/sun-settles-gpl-open-source">announced</a> today that it is releasiing Java under the General Public License (GPL).</p>
<p>This is good news for GenericFX/BrainFX/CamBAfx (&#8220;GenericFX&#8221;) as it means it is we can almost cook up a copy of it using only free software. The only component that is not free software is the Eclipse Platform and it is not compatible with GPL version 2 by only a wiskle, i.e., its patent licensing requirement. When GPL version 3 arrive and if we accept and upgrade the license to GPL version 3, this incompatibility will be removed and we will finally complies with GPL technical requirements.</p>
<p>Well, this is as best as we can go with Free Software compliance. Using nothing but GPL or its cousin, the Lesser General Public License for GenericFX is already ruled out when we decided to use the Eclipse Platform.</p>
<p>End users will find this discussion rather academic. Indeed, if you are interested in using the software only and do not care about its evolution and survivability, it is an academic discussion. Having GenericFX completely on a Free Software compatible stack means that provided you have all the necessary expertises, there is nothing that can stop you from using the software.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/genericfx.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/genericfx.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/genericfx.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/genericfx.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/genericfx.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/genericfx.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/genericfx.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/genericfx.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/genericfx.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/genericfx.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/genericfx.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/genericfx.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/genericfx.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/genericfx.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/genericfx.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/genericfx.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=17&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://genericfx.wordpress.com/2006/11/13/good-news-our-free-software-stack-is-virtually-complete/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f785bf893e6c0e950c5cd6937ac89c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">co224</media:title>
		</media:content>
	</item>
		<item>
		<title>CamBA 1.1.0 Released</title>
		<link>http://genericfx.wordpress.com/2006/10/30/camba-110-released/</link>
		<comments>http://genericfx.wordpress.com/2006/10/30/camba-110-released/#comments</comments>
		<pubDate>Mon, 30 Oct 2006 12:48:43 +0000</pubDate>
		<dc:creator>co224</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://genericfx.wordpress.com/2006/10/30/camba-110-released/</guid>
		<description><![CDATA[On Friday 27th October, CamBA 1.1.0 was released. This release reverted Movement Correction to its old, tried-and-tested version. The principle reason is that on CamBA 1.0.0, we noticed that one of the movement component was not moving the way we expected over time. Thus, we decided to revert it back to the old version pending [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=16&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>On Friday 27th October, CamBA 1.1.0 was released.</p>
<p>This release reverted Movement Correction to its old, tried-and-tested version. The principle reason is that on CamBA 1.0.0, we noticed that one of the movement component was not moving the way we expected over time. Thus, we decided to revert it back to the old version pending further investigation.</p>
<p>On the user interface front, we reworked &#8220;Pipeline Schemes&#8221;. A description of how this works will be posted later. This rework aims to remove confusion on the existing Pipeline Scheme for Time Series Analysis Pipeline.</p>
<p>With the new &#8220;Pipeline Schemes&#8221; for Time Sereis Analysis Pipeline, we followed the suggestion by John Suckling: Input Table Spread Sheet&#8217;s &#8220;Pipeline Scheme&#8221; column will deal exclusively with individual subject processing, and Run Dialog will deal with whether a Group map is needed or not.<br />
For the General Linear Model pipelines, those with u<em>N</em>x1 and p<em>N</em>x1 designation where <em>N</em> = [1,3] has &#8220;Variates&#8221; and &#8220;Interaction&#8221; parameters removed. This is because we release that the two parameters will always be stuck at &#8220;1&#8243; and &#8220;No interaction&#8221; respectively. Thus, there is no need for them.</p>
<p>With u2x2 and p2x2 General Linear Model Pipeline, rather than requiring users to specify how the &#8220;Interaction&#8221; parameter looks like, i.e., &#8220;1 2&#8243;, we change it to a YES/NO toggle. Yet again we realized that the &#8220;Interaction&#8221; parameter can take on only two values, i.e., with/without interaction. We have yet to make a decision on &#8220;Variates&#8221;. We can see that the main logical choice for it is &#8220;1,2&#8243;. Initially, we thought that it is possible to convert any Nx2 pipelines to Nx1 pipelines. However, only after CamBA 1.1.0 is released where we realized the Nx2 pipelines does not offer this possibility and thus &#8220;Variates&#8221; should be removed. Hence, in the next release, if the General Linear Model pipelines remains in its current form, &#8220;Variates&#8221; parameter will be removed.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/genericfx.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/genericfx.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/genericfx.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/genericfx.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/genericfx.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/genericfx.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/genericfx.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/genericfx.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/genericfx.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/genericfx.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/genericfx.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/genericfx.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/genericfx.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/genericfx.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/genericfx.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/genericfx.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=16&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://genericfx.wordpress.com/2006/10/30/camba-110-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f785bf893e6c0e950c5cd6937ac89c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">co224</media:title>
		</media:content>
	</item>
		<item>
		<title>Cooking a version of CamBA for Solaris</title>
		<link>http://genericfx.wordpress.com/2006/09/18/cooking-a-version-of-camba-for-solaris/</link>
		<comments>http://genericfx.wordpress.com/2006/09/18/cooking-a-version-of-camba-for-solaris/#comments</comments>
		<pubDate>Mon, 18 Sep 2006 15:29:48 +0000</pubDate>
		<dc:creator>co224</dc:creator>
				<category><![CDATA[CamBAfx]]></category>

		<guid isPermaLink="false">http://genericfx.wordpress.com/2006/09/18/cooking-a-version-of-camba-for-solaris/</guid>
		<description><![CDATA[We are cooking a version of CamBA for Solaris 9 to support colleagues at Institute of Psychiatry, London. It is likely to be released for sparc-gtk although converting it to sparc-motif should be a simple swapping of a few gtk specific file for motif. The reason for using GTK instead of Motif is the usability [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=13&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We are cooking a version of CamBA for Solaris 9 to support colleagues at Institute of Psychiatry, London. It is likely to be released for sparc-gtk although converting it to sparc-motif should be a simple swapping of a few gtk specific file for motif.</p>
<p>The reason for using GTK instead of Motif is the usability of the &#8220;File Open&#8221;/&#8221;Directory Open&#8221; dialog. I seems to have problems to set the directory/file path on Motif. This means that all users have to start navigating from home directory to their data. This is a disaster in the making.</p>
<p>So far, I have the CamBAfx UI displayed on Solaris under both Motif and GTK. Haven&#8217;t done the CamBA regression tests yet but I do not think we are going to have major porblem there. For CamBA C programs it will be a baptism by fire. Something we really love to put CamBA through.</p>
<p>Thanks to IoP for giving me access to their system to develop this  version. Our own Solaris machines (circa 98) is simply too old.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/genericfx.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/genericfx.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/genericfx.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/genericfx.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/genericfx.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/genericfx.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/genericfx.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/genericfx.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/genericfx.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/genericfx.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/genericfx.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/genericfx.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/genericfx.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/genericfx.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/genericfx.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/genericfx.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=13&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://genericfx.wordpress.com/2006/09/18/cooking-a-version-of-camba-for-solaris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f785bf893e6c0e950c5cd6937ac89c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">co224</media:title>
		</media:content>
	</item>
		<item>
		<title>CamBA 1.0.0 Released</title>
		<link>http://genericfx.wordpress.com/2006/09/01/camba-100-released/</link>
		<comments>http://genericfx.wordpress.com/2006/09/01/camba-100-released/#comments</comments>
		<pubDate>Fri, 01 Sep 2006 18:11:27 +0000</pubDate>
		<dc:creator>co224</dc:creator>
				<category><![CDATA[CamBAfx]]></category>
		<category><![CDATA[Users]]></category>

		<guid isPermaLink="false">http://genericfx.wordpress.com/2006/09/01/camba-100-released/</guid>
		<description><![CDATA[CamBA 1.0.0 is released. You can get it via the download from CamBA&#8217;s Homepage. This is the first official release since we relaunch BAMM as CamBA. For this rework, we did a lot of background work on improving quality assurance on BAMM. CamBA&#8217;s User Interface is of course CamBAfx. The coast was clear for CamBAfx [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=12&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>CamBA 1.0.0 is released. You can get it via the download from <a href="http://www-bmu.psychiatry.cam.ac.uk/software/">CamBA&#8217;s Homepage</a>. This is the first official release since we relaunch BAMM as CamBA. For this rework, we did a lot of background work on improving quality assurance on BAMM.</p>
<p>CamBA&#8217;s User Interface is of course CamBAfx. The coast was clear for CamBAfx until the last few days where a frenzy of activities to beautify and clean up the User Interface, and tests that CamBA successfully integrate Eclipse Update Mechanism to permit over-the-web update.</p>
<p>As a developer, I am constantly being reminded of the benefit of using Eclipse as the development. Take the &#8220;Welcome&#8221; page for example, I decided to put it in the Friday before Release Candidate 2 is due. This is to stop users from seeing an &#8220;empty&#8221; screen. I used Eclipse to generate an example wizard page with RCP application, then modify this for CamBAfx. Total development time is 4 hours, with only the first hour spent understanding the &#8220;Intro&#8221; page mechanism (Eclipse jargon for the mechanics of the &#8220;Welcome&#8221; page) by looking at the example generated by Eclipse Platform, Eclipse Help pages and the trusty Google Search. The rest is spent agonizing over what to include/exclude from the &#8220;Welcome&#8221; page. In the end, simplicity rules so I have a &#8220;Read Me First&#8221; section for important information, an advert to inform users that we will be using Eclipse&#8217;s Update Mechanism to update CamBA in the future, a link to close &#8220;Welcome&#8221; page and another pointint to CamBA&#8217;s homepage. Without Eclipse&#8217;s Intro Page mechanism, the question on whether to &#8220;decorate&#8221; the start screen will not even exists.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/genericfx.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/genericfx.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/genericfx.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/genericfx.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/genericfx.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/genericfx.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/genericfx.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/genericfx.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/genericfx.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/genericfx.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/genericfx.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/genericfx.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/genericfx.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/genericfx.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/genericfx.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/genericfx.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=12&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://genericfx.wordpress.com/2006/09/01/camba-100-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f785bf893e6c0e950c5cd6937ac89c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">co224</media:title>
		</media:content>
	</item>
		<item>
		<title>Developing &#8220;Pipeline Schemes&#8221;</title>
		<link>http://genericfx.wordpress.com/2006/07/21/developing-pipeline-schemes/</link>
		<comments>http://genericfx.wordpress.com/2006/07/21/developing-pipeline-schemes/#comments</comments>
		<pubDate>Fri, 21 Jul 2006 18:21:27 +0000</pubDate>
		<dc:creator>co224</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://genericfx.wordpress.com/2006/07/21/developing-pipeline-schemes/</guid>
		<description><![CDATA[In &#8220;Using Pipeline Schemes&#8220;, I explained how Pipeline Schemes is seen by the end users. With &#8220;Behind The Scenes Look at Pipeline Schemes&#8221; I explained how and why Pipelines Schemes are implemented the way it was, how pipeline developers can use Pipeline Schemes and how the pipeline schemes are communicated from the User Interface to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=11&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In &#8220;<a href="http://genericfx.wordpress.com/2006/07/17/using-pipeline-schemes/">Using Pipeline Schemes</a>&#8220;, I explained how Pipeline Schemes is seen by the end users. With &#8220;<a href="http://genericfx.wordpress.com/2006/07/18/behind-the-scene-look-at-pipeline-schemes/">Behind The Scenes Look at  Pipeline Schemes</a>&#8221; I explained how and why Pipelines Schemes are implemented the way it was, how pipeline developers can use Pipeline Schemes and how the pipeline schemes are communicated from the User Interface to the Pipeline Processing Engine. In this blog post, I am going to show you how I implemented &#8220;Pipeline Schemes&#8221;.</p>
<p>This post is likely to be of no interest to anyone except GenericFX maintainers and people interested to see how AspectJ has been used in a project.</p>
<h2>AspectJ</h2>
<p>As I had said, Pipeline Schemes is something desirable, but is not an critical component of any Batch Processing/Pipelining Framework. In fact, there is the argument that Pipeline Schemes complicates the pipeline design and confuse the users as it introduce multiple ways for the data can flow through the pipeline.</p>
<p>Hence, won&#8217;t it be great if, at several click of the mouse, the whole Pipeline Schemes System can be disabled, and the rest of the program behave as if it was never there, ever?</p>
<p>Moreover, modifying source code, especially stable source code, has the potential of introduce additional bugs. Hence, if possible, I do not want to touch the source code for the generic pipeline engine that I use to pump the data through the pipeline. They are simple, but quite flimsy and sensitive to modification. Moreover, they are stable code as the code has not gone through much changes for almost 2 years now. They are also well understood and well tested, considering the fact that it survives two major tests, the first being to add an interface to Matlab transparently, and to extend the original code to embrase script output.</p>
<p>Pipeline Scheme related code, because of its very extensive reach from UI to pipeline control, is also expected to be peppered all over source code. Peppering code around several files to acheive one aim is bad, as it destablize these files.</p>
<p>Is there an alternative? <a href="http://www.eclipse.org/aspectj">AspectJ</a> seems to offer one. It allows selective AspectJ code to be disabled by excluding the relevent aspectj files from compilation; There is no need to modify the original Java files because aspectj works by injecting codes from an aspectj file at defined location and when some predefined conditions are met; Finally, Peppering of code for Pipeline Schemes can be avoided because the we can put a significant amount of aspectj code inside a file and get aspectj to inject codes from this files into the Java files it is suppose to &#8220;infect&#8221;.</p>
<p>The downside? Possible overhead with AspectJ. Roughly speaking, this translated to slower compiling and/or running. Slower code generation affects developing the software. Slower application run affects everyone. Since creating more source code always leads to slowing down of application, I need to stress that when I mean slowing down, I meant the additional delay imposed by using AspectJ to develope the functionailty required, compared to pure Java implementation of the function.</p>
<p>When it comes to compiling, as aspectj is addon to java compiler, we would and must expects some overhead in compiling. Compiling is something the development team do very frequently. However, this is a price worth paying for clearer source code organization. Since aspectj uses an incremental compiler (a compiler that just compile the &#8220;difference&#8221; between the previous source code and your current modification), the delay is barely noticeable, at least for this project.</p>
<p>Slower application on the other hand, annoys everyone. If compile-time weaving, i.e., injection of aspectj code into java files at the time of compiling, then the slowing down effect is very much negligible, at least for this project. However, as GenericFX is a collection of plugins, this project requires runtime-weaving/post-compilation-weaving, meaning aspectj code must be injected after the plugins are created, or when the plugins are loaded when the program is running. This has the potential to significant slowdown of the application.</p>
<h2>Development Strategy</h2>
<p>With GenericFX, we are not sure whether AspectJ is the correct way to develop Pipeline Scheme functionality. Hence, we try to hedge our bet: We writes pure Java code as much as possible, using AspectJ only as the glue code. Hence, if necessary, we can rewrite AspectJ out of the system.</p>
<p>Before embarking on developing Pipeline Schemes, I used AspectJ to develop the &#8220;Job Number&#8221; and &#8220;Notes&#8221; column. This give me a feel of AspectJ. Furthermore adding the two columns is taken as a trial run for Pipeline Schemes as they are smaller, significantly easier but is representative of the expected contribution of AspectJ to this project.</p>
<h2>Results</h2>
<p>When compared with the original application, there is a noted delay when the application launches. After clicking &#8220;Finish&#8221; to create pipeline files in any New Wizard, there is a notable delay before the Input Table SpreadSheet is shown. I think it is safe to attribute both to the overhead of AspectJ. In particular, the use of runtime-weaving where every class is examined when its class loader runs to determine whether aspectj code is to be injected.</p>
<p>Another notable issue is memory usage, <a href="http://sourceforge.net/projects/ajeer">AJEER</a>, the aspectj runtime weaving plugin I used, needs a lot of memory. Hence I normally allocate 512MB to the JVM. I believe it will be OK with lower memory, but 40MB, the usual memory allocation for JVM, is definitely not enough.</p>
<h3>Developer&#8217;s viewpoint</h3>
<p>The plugin structure for GenericFX got into the way of using AspectJ. One basic requirement for Pipeline Scheme is to track track the dataset through the pipeliine, as Pipeline Schemes can be different for different dataset. It is found that this requires modification to two classes separate across the plugin boundary. The results, post-compile weaving or runtime weaving is needed. That is why AJEER come into the picture.</p>
<p>For most aspectj classes created, I find that they often affect one Java file only, although a significant number of them requires injection of code at different points in the Java file. This means I could have abandon AspectJ and just code the function inside the Java file itself. The advantages of using AspectJ seems to be limitted to quick disabling of &#8220;Pipeline Scheme&#8221;, offering a different &#8220;view&#8221; on the Java file as all Pipeline Scheme related functionalities are in a separate file, and that if I used the pure Java approach I might increase the already long file by a third. This create doubt in my mind on whether aspectj is really suitable for this project since may be a reorganization of the Java File will achieve the same result.</p>
<h4><b>A IDE that understands AspectJ is a requirement, not an option</b></h4>
<p>For beginners, it is a MUST. Beginners need the little visual cue (is the apsectj injecting code? if so, to whom? Did it inject into too many files?) the IDE comfirm their AspectJ construct is correct. To require them to compile and run a test case simply to get feedback is too cumbersome.</p>
<p>One of the downside of AspectJ is the Java file that it has to inject code into can be easily altered in such a way that AspectJ is no longer capable of injecting code into it. Hence, developers have to look for the (dis)appearance of little visual cue offered by AspectJ-enabled IDE. I do not think seasoned developers can escape this problem. Like dynamic-typing in Scripts (where the variable can be integer in one instance, string in another), it can be argued that this is not a problem because the Unit Test or Regression Tests should catch this problem and rigorously testing is definitely better way to ensure software function as programmed.</p>
<h4>AspectJ reinforce the need of &#8220;Design-by-contract&#8221;</h4>
<p>Design-by-contract basically means a programmer promise his downstream programmers that if they call so-and-so function, so-and-so job will be performed (the contract). This contractual is crucial to the smooth functioning of AspectJ, especially if aspectj&#8217;s feature where a sequence of events (cflow() statements for example) is needed to cause activation of of aspectj code is used.</p>
<h2>Conclusion</h2>
<p>As it is currently implemented, the advantage of using AspectJ in GenericFX is rather uncertain. It do allows &#8220;Pipeline Schemes&#8221; to be activated/deactivated almost at will. However, the expectation that without it, Pipeline Schemes code will be peppered throughout the source code does not materialize since most aspectj code affect one file only. Moreover, the  significant increase in memory requirement and the &#8220;very slight but noticeable&#8221; delay at some points in the application introduced  simply because I have to use runtime-weaving to allow one aspect to cross the plugin boundary might just not be worth it.</p>
<p>I will keep monitoring AspectJ use in GenericFX and form an opinion later whether is it worthwhile to keep AspectJ, or to work it out from GenericFX. The jury is still out.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/genericfx.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/genericfx.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/genericfx.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/genericfx.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/genericfx.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/genericfx.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/genericfx.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/genericfx.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/genericfx.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/genericfx.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/genericfx.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/genericfx.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/genericfx.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/genericfx.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/genericfx.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/genericfx.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=genericfx.wordpress.com&amp;blog=309078&amp;post=11&amp;subd=genericfx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://genericfx.wordpress.com/2006/07/21/developing-pipeline-schemes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f785bf893e6c0e950c5cd6937ac89c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">co224</media:title>
		</media:content>
	</item>
	</channel>
</rss>
