<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7092654807427315173</id><updated>2011-04-21T13:08:10.220-07:00</updated><category term='quadrature'/><category term='tkpyro'/><category term='slice'/><category term='plone'/><category term='gsoc'/><category term='drilling'/><category term='opensurfacesystem'/><category term='energy'/><category term='lxml'/><category term='opensource'/><category term='grok'/><category term='python'/><category term='openwitsml'/><category term='buildoutbuilder'/><category term='mac'/><category term='wildfire'/><category term='labview'/><category term='buildout'/><category term='virtualenv'/><category term='osx'/><category term='vps'/><title type='text'>xengineering</title><subtitle type='html'>Music. Technology. Python. Open Source. Energy. Drilling. Automation.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-2917636342598815047</id><published>2008-10-05T11:49:00.000-07:00</published><updated>2008-10-05T12:29:33.251-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='tkpyro'/><category scheme='http://www.blogger.com/atom/ns#' term='wildfire'/><title type='text'>TX Unconference 2008</title><content type='html'>I just got back from the Texas Python Unconference 2008. It was alot of fun, great people to meet. Enthought is a really interesting company.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.scipy.org/TXUncon2008"&gt;Texas Unconference 2008&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can find my presentation here:&lt;br /&gt;&lt;a href="http://sites.google.com/site/xkenneth/presentations"&gt;Slides&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-2917636342598815047?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/2917636342598815047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=2917636342598815047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/2917636342598815047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/2917636342598815047'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/10/tx-unconference-2008.html' title='TX Unconference 2008'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-5027375067353239877</id><published>2008-08-20T09:58:00.000-07:00</published><updated>2008-08-20T10:02:33.103-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='labview'/><category scheme='http://www.blogger.com/atom/ns#' term='quadrature'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>Open Source LabVIEW Functions and Controls</title><content type='html'>I've started putting up some basic VIs for LabVIEW into the open source domain. Currently there are some functions for multi-needle guages (based off an array) as well as a function for quadrature decoding. The quadrature decoder can be used to decode a quadrature signal from an analog measurement by first converting it into a digital waveform. If you have any further questions, need help, or wish to further develop these VIs, please email me.&lt;br /&gt;&lt;br /&gt;Here's the controls repository&lt;br /&gt;http://github.com/xkenneth/lvcontrols/tree/master&lt;br /&gt;&lt;br /&gt;Here's the VIs repository.&lt;br /&gt;http://github.com/xkenneth/xlv/tree/master&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-5027375067353239877?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/5027375067353239877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=5027375067353239877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/5027375067353239877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/5027375067353239877'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/08/open-source-labview-functions-and.html' title='Open Source LabVIEW Functions and Controls'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-3615119558513289428</id><published>2008-08-09T19:50:00.001-07:00</published><updated>2008-08-09T19:52:24.117-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lxml'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Building lxml on OS X</title><content type='html'>These instructions will get you up and running on either the system python, macpython (i'm fairly sure) or the macports python.&lt;br /&gt;&lt;br /&gt;Install libxml2 and libxlst through MacPorts&lt;br /&gt;&lt;br /&gt;In bash:&lt;br /&gt;export CFLAGS=-flat_namespace&lt;br /&gt;python setup.py bdist_egg --with-xslt-config=/opt/local/bin/xslt-config&lt;br /&gt;easy_install theegg.egg&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-3615119558513289428?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/3615119558513289428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=3615119558513289428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/3615119558513289428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/3615119558513289428'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/08/building-lxml-on-os-x.html' title='Building lxml on OS X'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-1847372263585931763</id><published>2008-07-31T15:19:00.000-07:00</published><updated>2008-07-31T15:21:52.328-07:00</updated><title type='text'>How do you know when a piece of software is doing it's job well?</title><content type='html'>When you completely forget what it's called.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.untangle.com/"&gt; http://www.untangle.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had our IT staff install this a few months ago, on a generic HP stuffed with gigabit cards. Hasn't gone down since, and does an excellent job.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-1847372263585931763?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/1847372263585931763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=1847372263585931763' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/1847372263585931763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/1847372263585931763'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/07/how-do-you-know-when-piece-of-software.html' title='How do you know when a piece of software is doing it&apos;s job well?'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-6593493557169885286</id><published>2008-06-20T21:54:00.000-07:00</published><updated>2008-06-20T22:06:18.836-07:00</updated><title type='text'>Disconnected - Cached Read/Write - Striped - Failsafe - Distributed File System</title><content type='html'>I'd like to push forward a distributed file system that follows all of the ideas below.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Striped - Fail-safe:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Striped for performance, and fail-safe up to N nodes, depending on the configuration. Something similar to RAID 6.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Disconnected - Cached Read/Write:&lt;/div&gt;&lt;div&gt;     Local processes would write locally to the disks and the DFS would cache the data, intelligently distributing it to the filesystem as need be. If the node becomes disconnected, the DFS will cache the data until the node becomes connected again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The applications of this are extremely wide. The striping would allow for applications in high performance clusters. The the cached read/write would allow for "traveling" nodes, similar to version control systems such as Git/Mercurial/Bizaar, that become disconnected for periods of time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My intended application would be to deploy the DFS nodes as cheap virtual private servers from a multitude of companies in order to attain reliability and not have to worry about an IT department and hardware costs. Even over the internet the striping from multiple nodes should allow for "torrential" throughput.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're interested in discussing this more thoroughly, drop me a line.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-6593493557169885286?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/6593493557169885286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=6593493557169885286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/6593493557169885286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/6593493557169885286'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/06/disconnected-cached-readwrite-striped.html' title='Disconnected - Cached Read/Write - Striped - Failsafe - Distributed File System'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-8825131420442661866</id><published>2008-06-17T18:58:00.000-07:00</published><updated>2008-06-17T18:59:24.443-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='slice'/><category scheme='http://www.blogger.com/atom/ns#' term='vps'/><title type='text'>Awesome (OS X Server Slices)</title><content type='html'>A company has finally started slicing OS X Server&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;http://www.mediatemple.net/labs/xv/&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-8825131420442661866?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/8825131420442661866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=8825131420442661866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/8825131420442661866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/8825131420442661866'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/06/awesome-os-x-server-slices.html' title='Awesome (OS X Server Slices)'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-5490446800971395769</id><published>2008-06-17T18:49:00.001-07:00</published><updated>2008-06-18T09:11:46.591-07:00</updated><title type='text'>Goodbye SVN Hello GIT</title><content type='html'>So I've given up subversion for git lately, and I'm not looking back. Git, gets out of my way, is easier to use, saves tons of disk space, is distributed, and generally not as big of a headache as svn is.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Migrating from SVN to GIT was easy (~10mins to migrate a grok and python project)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some good resources:&lt;/div&gt;&lt;div&gt;Tutorial: &lt;/div&gt;&lt;div&gt;&lt;a href="http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html"&gt;http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Another: &lt;/div&gt;&lt;div&gt;&lt;a href="http://www.vimeo.com/369095"&gt;http://www.vimeo.com/369095&lt;/a&gt;&lt;/div&gt;&lt;div&gt;GIT vs SVN Command Comparison: &lt;/div&gt;&lt;div&gt;&lt;a href="http://git.or.cz/course/svn.html"&gt;http://git.or.cz/course/svn.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;A great git repository (not that it's needed): &lt;/div&gt;&lt;div&gt;&lt;a href="http://www.github.com/"&gt;http://www.github.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Migration guide: &lt;/div&gt;&lt;div&gt;&lt;a href="http://www.daniellucraft.com/blog/2007/11/migrating-from-subversion-to-git/"&gt;http://www.daniellucraft.com/blog/2007/11/migrating-from-subversion-to-git/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Linus addressing googlers: &lt;/div&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=4XpnKHJAok8"&gt;http://www.youtube.com/watch?v=4XpnKHJAok8&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Syncing with subversion: &lt;/div&gt;&lt;div&gt;&lt;a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html"&gt;http://www.kernel.org/pub/software/scm/git/docs/git-svn.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Best Practices:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.jdl.com/papers/BestCollabGit.pdf"&gt;http://www.jdl.com/papers/BestCollabGit.pdf&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-5490446800971395769?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/5490446800971395769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=5490446800971395769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/5490446800971395769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/5490446800971395769'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/06/goodbye-svn-hello-git.html' title='Goodbye SVN Hello GIT'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-1040588925848910306</id><published>2008-06-16T18:13:00.000-07:00</published><updated>2008-06-16T18:20:40.445-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualenv'/><category scheme='http://www.blogger.com/atom/ns#' term='buildout'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='grok'/><title type='text'>Annoying Grok Problem</title><content type='html'>&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;When creating a grokproject for the first time or running it's buildout, have you ever encountered this?&lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;Develop: '/home/xkenneth/bb/work/buildoutbuilder/src/buildoutbuilder.grokapp/trunk/.' Develop: '/home/xkenneth/bb/work/buildoutbuilder/src/buildoutbuilder.grokapp/trunk/../../buildoutbuilder.managers/trunk/' &lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;While:   &lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;Installing.   Getting section app.   Initializing section app.   &lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;Loading zc.buildout recipe entry zc.zope3recipes&gt;=0.5.3:application.  &lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;An internal error occured due to a bug in either zc.buildout or in a recipe being used:  ImportError: &lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;No module named schemaless&lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;Well there's an easy solution.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;Create a new virtual environment with the --no-site-packages option, and rerun the buildout/grokproject script from there.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;Don't know what virtual environment is?&lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;http://pypi.python.org/pypi/virtualenv&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;Don't know what buildout is?&lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;http://pypi.python.org/pypi/zc.buildout&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;An excellent video introduction to buildout:&lt;/span&gt;&lt;/pre&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms';"&gt;http://rhodesmill.org/brandon/buildout/&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-1040588925848910306?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/1040588925848910306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=1040588925848910306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/1040588925848910306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/1040588925848910306'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/06/annoying-grok-problem.html' title='Annoying Grok Problem'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-1852862805627213776</id><published>2008-06-08T23:25:00.000-07:00</published><updated>2008-06-08T23:29:26.847-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drilling'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='energy'/><category scheme='http://www.blogger.com/atom/ns#' term='openwitsml'/><title type='text'>OpenWITSML</title><content type='html'>I've created yet another project on &lt;a href="http://www.openplans.org"&gt;openplans.org&lt;/a&gt;, &lt;a href="http://www.openplans.org/projects/openwitsml/summary"&gt;OpenWITSML&lt;/a&gt;. WITSML is an XML schema defined by &lt;a href="http://www.energistics.org"&gt;Energistics&lt;/a&gt; for transferring information in the drilling/energy industry. After attending the public seminar here in Houston, I've decided that an open source implementation of the client and server might be a worthwhile venture. If you're interested in the project, please sign up, the more people that get involved, the quicker this will become a reality.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-1852862805627213776?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/1852862805627213776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=1852862805627213776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/1852862805627213776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/1852862805627213776'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/06/openwitsml.html' title='OpenWITSML'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-4346318791666988083</id><published>2008-06-08T23:23:00.000-07:00</published><updated>2008-06-08T23:25:24.188-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drilling'/><category scheme='http://www.blogger.com/atom/ns#' term='opensurfacesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='energy'/><title type='text'>OpenSurfaceSystem</title><content type='html'>I've just created a new project on openplans.org called OpenSurfaceSystem. This is an idea I've had for a while now, and I'd like to see if anyone else has interest in it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-4346318791666988083?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/4346318791666988083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=4346318791666988083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/4346318791666988083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/4346318791666988083'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/06/opensurfacesystem.html' title='OpenSurfaceSystem'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-7633945617850265922</id><published>2008-06-08T23:22:00.001-07:00</published><updated>2008-06-08T23:23:53.819-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='buildoutbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='gsoc'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='plone'/><title type='text'>Google Summer of Code Project Accepted!</title><content type='html'>My proposal for the Google Summer of Code was accepted! This post is a bit late as I've already been coding for a few weeks now. If you're interested in the &lt;a href="http://www.openplans.org/projects/buildoutbuilder/summary"&gt;Buildout Builder&lt;/a&gt;, feel free to check it out. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-7633945617850265922?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/7633945617850265922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=7633945617850265922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/7633945617850265922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/7633945617850265922'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/06/google-summer-of-code-project-accepted.html' title='Google Summer of Code Project Accepted!'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-7093533692710126218</id><published>2008-04-07T13:44:00.001-07:00</published><updated>2008-04-07T13:52:08.219-07:00</updated><title type='text'>Google Summer of Code - Schedule of Deliverables</title><content type='html'>Schedule of &lt;span id="apzp" class="misspell" suggestions="Deliver ables,Deliver-ables,Deliverable"&gt;Deliverables&lt;/span&gt;&lt;br /&gt;&lt;div id="xnpp" style=""&gt;&lt;br /&gt;&lt;div id="i.cz" style="text-align: left;"&gt;May 26&lt;span id="f.sp" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;: Discuss and finalize options for hosting the &lt;span id="d718" class="misspell" suggestions="Build out,Build-out,Bailout,Buildup,Build"&gt;Buildout&lt;/span&gt; Builder. Begin initial code work. Phase one begins.&lt;br /&gt;&lt;br /&gt;Week One (May 26&lt;span id="lc0_" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt; to June 1st): Familiarization with &lt;span id="nlz_" class="misspell" suggestions="build out,build-out,bailout,buildup,build"&gt;buildout&lt;/span&gt; system. Hand pick selected stack configurations and test &lt;span id="gu2c" class="misspell" suggestions="build outs,build-outs,bailouts,buildups,builds"&gt;buildouts&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Week Two (June 2&lt;span id="mjl6" class="misspell" suggestions="ND,Nd,Ned,nod,MD"&gt;nd&lt;/span&gt; to June 8&lt;span class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;): Begin grok development, initiate website design.&lt;br /&gt;&lt;br /&gt;Week Three (June 9&lt;span id="zr8:" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt; to June 15&lt;span id="vml4" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;): Develop a &lt;span id="d7:f" class="misspell" suggestions="back end,back-end,backed,bookend,blackened"&gt;backend&lt;/span&gt; to the &lt;span id="qeg7" class="misspell" suggestions="build out,build-out,bailout,buildup,build"&gt;buildout&lt;/span&gt; system inside of grok, complete with unit tests. Populate the site with selected stack configurations in an automated, extensible manner.&lt;br /&gt;&lt;br /&gt;June 16&lt;span id="nlfa" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;: Phase Two Begins&lt;br /&gt;&lt;br /&gt;Week Four (June 16&lt;span id="i9wm" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt; to June 22&lt;span id="l1uu" class="misspell" suggestions="ND,Nd,Ned,nod,MD"&gt;nd&lt;/span&gt;): Allow the first phase of the &lt;span id="ba29" class="misspell" suggestions="Build out,Build-out,Bailout,Buildup,Build"&gt;Buildout&lt;/span&gt; Builder to be previewed by the community, receive feedback, remove bugs. Hand pick recipe and product configurations. Test initial build outs.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Week Five (June 23rd to June 29&lt;span id="gh5w" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;): Extend website to present users with forms for selected &lt;span id="df7l" class="misspell" suggestions="build out,build-out,bailout,buildup,build"&gt;buildout&lt;/span&gt; options.&lt;br /&gt;&lt;br /&gt;Week Six (June 30&lt;span id="dada" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt; to July 6&lt;span id="oq1j" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;): Further develop the back to allow users to custom recipes and products.&lt;br /&gt;&lt;br /&gt;Week Seven (July 7&lt;span id="pjpa" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt; to July 13&lt;span id="b40w" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;): Allow the second phase of the &lt;span id="wtp9" class="misspell" suggestions="Build out,Build-out,Bailout,Buildup,Build"&gt;Buildout&lt;/span&gt; Builder to be previewed by the community, receive feedback, remove bugs.&lt;br /&gt;&lt;br /&gt;July 14&lt;span id="r.nm" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;: Phase Three Begins&lt;br /&gt;    &lt;br /&gt;Week Eight (July 14&lt;span id="p3g-" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt; to July 20&lt;span id="hdyu" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;): Extend the &lt;span id="w4li" class="misspell" suggestions="build out,build-out,bailout,buildup,build"&gt;buildout&lt;/span&gt; system &lt;span id="c1mg" class="misspell" suggestions="back end,back-end,backed,bookend,blackened"&gt;backend&lt;/span&gt; to accept arbitrary eggs, recipes, and &lt;span id="f3vr" class="misspell" suggestions="Pl one,Pl-one,Plane,Pylon,Pliny"&gt;Plone&lt;/span&gt; products.&lt;br /&gt;   &lt;br /&gt;Week Nine (July 21st to July 27&lt;span id="v.2o" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;): Work expected to continue from previous week.&lt;br /&gt;&lt;br /&gt;Week Ten (July 28&lt;span id="sb3e" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt; to August 3rd): Allow the third phase of the &lt;span id="c6ii" class="misspell" suggestions="Build out,Build-out,Bailout,Buildup,Build"&gt;Buildout&lt;/span&gt; Builder to be previewed by the community, receive feedback, removes bugs. &lt;br /&gt;&lt;br /&gt;Week Eleven (August 3rd to August 10&lt;span id="c:3h" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;): Assess current project status and final &lt;span id="i:g7" class="misspell" suggestions="deliver ables,deliver-ables,deliverable"&gt;deliverables&lt;/span&gt;. Stop major development and move to testing, bug-fixes, and documentation.&lt;br /&gt;&lt;br /&gt;&lt;div id="ok1u" style="text-align: left;"&gt;August 11&lt;span id="w81s" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;: Suggested "Pencils Down" Date.&lt;br /&gt;&lt;br /&gt;Week Twelve (August 11&lt;span id="kvao" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt; to August 18&lt;span id="ksp3" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;) Continue minor development, testing, bug-fixes, community feedback, and documentation. Deliver project in final deliverable state.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;August 18&lt;span id="u634" class="misspell" suggestions="Th,Thu,the,tho,thy"&gt;th&lt;/span&gt;: Firm "Pencils Down" Date.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-7093533692710126218?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/7093533692710126218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=7093533692710126218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/7093533692710126218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/7093533692710126218'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/04/google-summer-of-code-schedule-of.html' title='Google Summer of Code - Schedule of Deliverables'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-6580496177112492323</id><published>2008-04-07T12:34:00.001-07:00</published><updated>2008-04-07T12:36:26.131-07:00</updated><title type='text'>Google Summer of Code Terminology</title><content type='html'>Here's a list of the various technologies I've discussed in my application.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Python code is generally distributed in packages. These packages generally contain classes and functions relevant to each other, and are generally used in conjunction. A standard way exists of distributing these packages in the form of &lt;span id="r:dz" class="misspell" suggestions="distills,distorts,distorter's,destabilise,diastole's"&gt;distutils&lt;/span&gt;. &lt;span id="le0l" class="misspell" suggestions="Distills,Distorts,Distorter's,Destabilise,Diastole's"&gt;&lt;br /&gt;&lt;br /&gt;Distutils&lt;/span&gt; handles automatic installation python modules, in a simple, organized fashion.&lt;br /&gt;&lt;br /&gt;Python eggs take the &lt;span id="ldxb" class="misspell" suggestions="distills,distorts,distorter's,destabilise,diastole's"&gt;distutils&lt;/span&gt; concept a step further by allowing python packages to include &lt;span id="ashx" class="misspell" suggestions="meta data,meta-data,mediated,metatarsi,meditate"&gt;metadata&lt;/span&gt; such as version indication and dependencies among many other options. &lt;span id="vcga" class="misspell" suggestions="Zoe,Ope,Hope,Pope,Cope"&gt;&lt;br /&gt;&lt;br /&gt;Zope&lt;/span&gt; is a state of the art web application framework written entirely in python, it servers as building blocks for building rich web based applications. &lt;span id="jesi" class="misspell" suggestions="Zoe,Ope,Hope,Pope,Cope"&gt;Zope&lt;/span&gt; is extensible by the creation or "products" based on it's framework. &lt;span id="afmb" class="misspell" suggestions="Zoe,Ope,Hope,Pope,Cope"&gt;Zope&lt;/span&gt; 3 is the most current version at the time of this writing.&lt;br /&gt;&lt;br /&gt;The &lt;span id="cppr" class="misspell" suggestions="Zoe,Ope,Hope,Pope,Cope"&gt;Zope&lt;/span&gt; Object &lt;span id="il2y" class="misspell" suggestions="Database,Data Base,Data-Base,Databased,Databases"&gt;DataBase&lt;/span&gt; is an object oriented database written in python that handles the pickling of objects and is the underlying core of &lt;span id="wkw." class="misspell" suggestions="Zoe,Ope,Hope,Pope,Cope"&gt;Zope&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span id="fn_:" class="misspell" suggestions="Pl one,Pl-one,Plane,Pylon,Pliny"&gt;Plone&lt;/span&gt; is a content management framework written on top of &lt;span id="t40g" class="misspell" suggestions="Zoe,Ope,Hope,Pope,Cope"&gt;Zope&lt;/span&gt; that allows even further extension through &lt;span id="f.w1" class="misspell" suggestions="Pl one,Pl-one,Plane,Pylon,Pliny"&gt;Plone&lt;/span&gt; products.&lt;br /&gt;&lt;br /&gt;Grok is a much simpler web-application framework built on top of &lt;span id="g:0o" class="misspell" suggestions="Zoe,Ope,Hope,Pope,Cope"&gt;Zope&lt;/span&gt;, with aims to be much simpler and more elegant, while preserving the power and robustness of &lt;span id="pm6q" class="misspell" suggestions="Zoe,Ope,Hope,Pope,Cope"&gt;Zope&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span id="rk5c" class="misspell" suggestions="Lab VIEW,Lab-VIEW,Labile,Lave,Lebbie"&gt;LabVIEW&lt;/span&gt; is a graphical programming language that excels in the lab environment. It is especially suited for test, measurement, design and validation of any type of &lt;span id="bad_word" class="misspell" suggestions="Electra,elector,electron,electric,electors"&gt;electro&lt;/span&gt;-mechanical devices and systems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-6580496177112492323?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/6580496177112492323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=6580496177112492323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/6580496177112492323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/6580496177112492323'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/04/google-summer-of-code-terminology.html' title='Google Summer of Code Terminology'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7092654807427315173.post-7685801158287928817</id><published>2008-04-07T05:19:00.001-07:00</published><updated>2008-04-11T01:08:34.026-07:00</updated><title type='text'>Google Summer of Code Application</title><content type='html'>Buildout Builder - An automated buildout configuration system.&lt;br /&gt;&lt;br /&gt;Kenneth Miller&lt;br /&gt;xkenneth@gmail.com&lt;br /&gt;713-562-4315&lt;br /&gt;&lt;br /&gt;Abstract&lt;br /&gt;&lt;br /&gt;   The buildout system has become an extremely useful tool for python developers and has become the de-facto method of deploying Plone configurations. For development buildout allows sand-boxing of python packages, enabling a developer to experiment with different configurations without modifying the underlying python installation and as a distribution mechanism it is useful to manage and deploy multiple configurations of Plone sites for either development or production.&lt;br /&gt;&lt;br /&gt;   A major drawback is that the underlying architecture relies on setup file based configuration, and can prove daunting to inexperienced users. In order to ease development, save time, and attract new developer's to the system I propose the development of the Buildout Builder. In it's most generic form the Buildout Builder will be a web-based graphical user interface to the buildout system and while in it's most refined form the Buildout Builder will provide pre-configured or user customizable buildout configurations of Plone.&lt;br /&gt;&lt;br /&gt;   With automatically generated buildout configurations, users can deploy software in a few commands or less. The application will target experienced developers and non-technical users alike, aiming for ease of use while maintaining the granularity of the buildout system.  The Buildout Builder will exist as a web-app written in Grok. With it's simplicity, power, and active development and user base, Grok should prove to be an excellent framework for quickly deploying a rugged, easy to maintain application. The Buildout Builder will facilitate Plone deployment and ease buildout development creating an influx of new users to both technologies.&lt;br /&gt;&lt;br /&gt;Phases of Development&lt;br /&gt;&lt;br /&gt;Phase 1&lt;br /&gt;&lt;br /&gt;   The Buildout Builder will in it's first form exist as a way to distribute pre-selected buildout configurations for Plone.  The pre-existing Plone configurations will have product software stacks tailored for different applications, such as E-Commerce, Wikis, Social Networking, Blogging and anything else that's possible with Plone. The system will draw upon the latest versions of popular recipes and products dynamically to generate configurations. All configurations will be critically selected, with user feedback generating the creation of new and fine tuning of current configurations.&lt;br /&gt;&lt;br /&gt;Phase 2&lt;br /&gt;&lt;br /&gt;   The second phase will improve functionality to allow users more granular control over what's included in a particular Plone buildout, allowing users to assemble configurations based from selected products and recipes.  The Buildout Builder will allow users to upload and use a previous configuration as a starting point.&lt;br /&gt;&lt;br /&gt;Phase 3&lt;br /&gt;&lt;br /&gt;   The third phase of development will move away from pre-selected configurations, products, and recipes. The user will be able to include any combination of publicly available recipes and python eggs, truly exposing the full functionality of the buildout system. The Buildout Builder will interface directly to the Python Package Index, allowing users to select hand-pick eggs and recipes. If time allows, the buildout system will be extended to auto-generate installers for Plone configurations. Documentation will also be developed during this phase. Documentation will provide information for maintenance and future development.&lt;br /&gt;&lt;br /&gt;Deliverables, Development Schedule, and Definition of Success&lt;br /&gt;&lt;br /&gt;   Success is measured by the completion of phases one and two, complete documentation, and the amount of work done towards the third phase. The time allotted should be ample to completely develop and implement all phases. The final deliverable will be a buildout configuration, accompanying recipes and eggs that compose the application. The final state of the code will be sufficient for installation in a hosting environment with little or no modification. A main goal of the project is to have an existing installation hosted, and available to the public.&lt;br /&gt;&lt;br /&gt;   A detailed schedule of deliverables is available. http://xkenneth.blogspot.com/2008/04/google-summer-of-code-schedule-of.html&lt;br /&gt;&lt;br /&gt;Biography&lt;br /&gt;&lt;br /&gt;Interest&lt;br /&gt;    Over the past year I have become more involved in developing software based on Zope and Plone related technologies and I hope to gain a very in depth understanding Zope, Plone and Grok.&lt;br /&gt;&lt;br /&gt;Education&lt;br /&gt;   I'm currently a student at the University of Houston working towards a Bachelors of Science in Computer Engineering Technology. My main area of interest is digital signal processing and embedded systems design. Although my discipline is not computer science, I have always had a strong interest in the field. I have a very strong background in very low level programming with C and assembly, as well as much higher level languages such as PHP, C++, and Python.  I've taken courses in subjects such as objected oriented design and data structures and hope to broaden my knowledge this summer with a course in automata theory.&lt;br /&gt;&lt;br /&gt;Industry Experience.&lt;br /&gt;&lt;br /&gt;Texas Instruments&lt;br /&gt;&lt;br /&gt;   I spent four years working at Texas Instruments as an applications engineer. I developed a web-based competitive analysis tool in PHP with a MySQL back-end. The tool encompassed user management, profiles, and user generated content, all written from the ground up. I developed a tool for quality and spectral analysis of analog to digital converters embedded in micro-controllers. The tool consisted of a hand written bare bones OS running on the ARM architecture that interfaced to a LabVIEW based control system and allowed users to analyze results and generate reports. I developed an application in LabVIEW for automatic detection of device validation requirements, selection, compilation and execution of pertaining test-cases, and automatic generation of results.&lt;br /&gt;&lt;br /&gt;Teledrill&lt;br /&gt;&lt;br /&gt;   I currently work as a system design engineer for an oilfield start-up. Teledrill's primary goal is to develop a state of the art measurement while drilling tool. My projects include a python driven surface system, a web-based user driven interface that serves a number of purposes. It is used to configure the device, to receive, decode, display, and catalog the data the device transmits to it, as well as to provide the data to both other machines and humans in a number of various formats.  The system relies completely on python technologies for analog data acquisition, web-based data display, protocol demodulation, data storage, and data relay. I've also taken on the task of managing our infrastructure including networking, software deployment, configuration and deployment of desktop and server systems.&lt;br /&gt;&lt;br /&gt;Open Source Development Experience&lt;br /&gt;&lt;br /&gt;   I'm currently spear-heading an open source project titled "Python XML Serial Architecture." This is an effort to create a standard XML and Python driven interface to micro controllers and devices that use a proprietary or non-standard serial based communications protocol.&lt;br /&gt;&lt;br /&gt;Conclusion&lt;br /&gt;&lt;br /&gt;   I've learned from my experience that I have a strong passion for automation and embedded design. The experience I have gained in the automation of complex processes allows me to have a clear view of what is required to complete this application. At its most basic level this project is the automation of time consuming repetitive tasks. An easy to use, web-based graphical user interface, will save users time, attract new developers, and spur the growth of the community surrounding these technologies.&lt;br /&gt;&lt;br /&gt;Terminology: http://xkenneth.blogspot.com/2008/04/google-summer-of-code-terminology.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7092654807427315173-7685801158287928817?l=xkenneth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xkenneth.blogspot.com/feeds/7685801158287928817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7092654807427315173&amp;postID=7685801158287928817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/7685801158287928817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7092654807427315173/posts/default/7685801158287928817'/><link rel='alternate' type='text/html' href='http://xkenneth.blogspot.com/2008/04/google-summer-of-code-application.html' title='Google Summer of Code Application'/><author><name>Kenneth Miller</name><uri>http://www.blogger.com/profile/10043810107913122512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
