<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Visual Core &#187; Uncategorized</title>
	<atom:link href="http://visualcore.com/index.php/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://visualcore.com</link>
	<description>An amazing repository of useless junk</description>
	<lastBuildDate>Sun, 13 Jun 2010 23:58:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Compilers Review</title>
		<link>http://visualcore.com/index.php/2010/05/compilers-review/</link>
		<comments>http://visualcore.com/index.php/2010/05/compilers-review/#comments</comments>
		<pubDate>Sat, 15 May 2010 02:31:35 +0000</pubDate>
		<dc:creator>Jeremy Cowles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[compilers]]></category>
		<category><![CDATA[UCB]]></category>

		<guid isPermaLink="false">http://visualcore.com/?p=202</guid>
		<description><![CDATA[While studying for my compilers final, I made a map of the information covered (using kdissert): 


]]></description>
			<content:encoded><![CDATA[<p>While studying for my compilers final, I made a map of the information covered (using kdissert): <br/><a href="/cs164.png" target="_BLANK">
<p style="text-align: center;">
<img class="aligncenter" title="Compilers Material" src="http://visualcore.com/cs164.png" alt="" width="400" height="133" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://visualcore.com/index.php/2010/05/compilers-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mandelbrot Zoom</title>
		<link>http://visualcore.com/index.php/2010/03/mandelbrot-zoom/</link>
		<comments>http://visualcore.com/index.php/2010/03/mandelbrot-zoom/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 18:46:48 +0000</pubDate>
		<dc:creator>Jeremy Cowles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Fractals]]></category>
		<category><![CDATA[Matlab]]></category>

		<guid isPermaLink="false">http://visualcore.com/?p=193</guid>
		<description><![CDATA[
I created this last semester for a class on simulations (which also had a heavy emphasis on fractals). A Mandelbrot fractal is generated and then analyzed for the most &#8220;interesting&#8221; area to zoom in on. 
The following animated gif shows the algorithm in action. The left side is the generated Mandelbrot fractal and the right [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://visualcore.com/mandelbot-final.gif"><img src="/images/articles/mandelbrot-preview.png"/ border="0"></a><br/><br />
I created this last semester for a class on simulations (which also had a heavy emphasis on fractals). A Mandelbrot fractal is generated and then analyzed for the most &#8220;interesting&#8221; area to zoom in on. </p>
<p>The following <a href="http://visualcore.com/mandelbot-final.gif">animated gif</a> shows the algorithm in action. The left side is the generated Mandelbrot fractal and the right side is a visualization of the activity detection algorithm. The algorithm is choosing how to zoom into the fractal in real-time (when the image was recorded).</p>
<p>I&#8217;ve also posted the <a href="http://visualcore.com/downloads/mandelbrot.zip">Matlab code</a> if you are interested in seeing how it works.</p>
]]></content:encoded>
			<wfw:commentRss>http://visualcore.com/index.php/2010/03/mandelbrot-zoom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>reCAPTCHA</title>
		<link>http://visualcore.com/index.php/2010/03/recaptcha/</link>
		<comments>http://visualcore.com/index.php/2010/03/recaptcha/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 18:34:04 +0000</pubDate>
		<dc:creator>Jeremy Cowles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Spam]]></category>
		<category><![CDATA[Stupid]]></category>

		<guid isPermaLink="false">http://visualcore.com/?p=185</guid>
		<description><![CDATA[Apparently using WordPress makes you a huge target for spam, so unfortunately I&#8217;ve had to resort to using a CAPTCHA again.
I&#8217;ve tried some alternative non-CAPTCHA filters, but none of them seem very reliable (some very simple tests were giving false positives). 
On a (non-false) positive note, since this is my spring break, I&#8217;m trying to [...]]]></description>
			<content:encoded><![CDATA[<p>Apparently using WordPress makes you a huge target for spam, so unfortunately I&#8217;ve had to resort to using a CAPTCHA again.</p>
<p>I&#8217;ve tried some alternative non-CAPTCHA filters, but none of them seem very reliable (some very simple tests were giving false positives). </p>
<p>On a (non-false) positive note, since this is my spring break, I&#8217;m trying to get some of my recent projects together and post them this week <img src='http://visualcore.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://visualcore.com/index.php/2010/03/recaptcha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyMW: Summer-y of Code</title>
		<link>http://visualcore.com/index.php/2009/08/pymw-summer-y-of-code/</link>
		<comments>http://visualcore.com/index.php/2009/08/pymw-summer-y-of-code/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 19:45:54 +0000</pubDate>
		<dc:creator>Jeremy Cowles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BOINC]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://visualcore.com/?p=166</guid>
		<description><![CDATA[Today is the &#8220;suggested pencils down&#8221; date for Summer of Code and I&#8217;m very happy to say that my proposal is complete and I feel the summer was a great success!
For those of you who don&#8217;t know, PyMW is a Master-Worker computing framework in Python. It wraps several other Master-Worker frameworks such as MPI, Condor, [...]]]></description>
			<content:encoded><![CDATA[<p>Today is the &#8220;suggested pencils down&#8221; date for Summer of Code and I&#8217;m very happy to say that my proposal is complete and I feel the summer was a great success!</p>
<p>For those of you who don&#8217;t know, <a href="http://pymw.sourceforge.net/" target="_BLANK" title="PyMW">PyMW</a> is a Master-Worker computing framework in Python. It wraps several other Master-Worker frameworks such as MPI, Condor, <a href="http://boinc.berkeley.edu/" target="_BLANK" title="BOINC">BOINC</a> or even just using multi-core processors, and exposes them as a simple and elegant API. </p>
<p>The way it works is, you create tasks and submit them to a Master and the master uses an interface/wrapper (BOINC, Condor, MPI, etc) to process those tasks. The master distributes the tasks out to compute nodes (or processor cores), called Workers, and the results get sent back to the Master. This allows you to debug using the multi-core interface (a single machine) and then, by changing one switch on the command line, you can run the same code on thousands of machines using BOINC or any other supported interface.</p>
<p>My proposal was to improve BOINC integration with PyMW by 1) eliminating the startup script and the need to compile C code; 2) adding pure-Python support for BOINC Assimilators and Validators; and 3) by adding a new checkpointing mechanism for long running jobs (optional).</p>
<p>I completed (2) very quickly by virtue of some old Python code I found in BOINC, but (1) took a lot of sweat and tears &#8212; the existing BOINC interface was functional, but in need of some serious work. It was running under Mac and Linux, however the Windows client was crashing on every task. To get it working under Windows I ended up creating a C++ launcher application to avoid using batch scripts. </p>
<p>In addition to my proposal, I also added a few other tasks. When working with BOINC, the existing interface assumed that Python was already installed and on the system PATH environment variable. This is not a very safe assumption and so I also crated a <a href="http://bitbucket.org/jeremycowles/pyboinc" target="_BLANK" title="PyBOINC">portable Python</a> interpreter integrated with the BOINC API. PyMW will now install this interpreter as your BOINC application so that clients no longer need to have Python installed to run PyMW-BOINC compute jobs. Along the way I also created a new logo and graphic design for the PyMW web site and setup WordPress, <a href="http://pymw.sourceforge.net/" target="_BLANK" title="PyMW">check it out</a>.</p>
<p>Sadly goal (3) was not completed, however, it was originally proposed as an optional part of the project. I actively chose to pursue the BOINC-Python interpreter over (3) because I felt it was more important to the BOINC interface. In the end, checkpointing can always be done manually, but sending the Python interpreter is a considerably harder task.</p>
<p>I am still wrapping up a few odds and ends, but for the most part, I feel very happy with the state of the BOINC interface. If you are looking for a distributed or parallel processing framework for a future project, please consider PyMW. </p>
<p>If you have any questions or comments, I would love to hear them!</p>
]]></content:encoded>
			<wfw:commentRss>http://visualcore.com/index.php/2009/08/pymw-summer-y-of-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyBOINC Work Continues</title>
		<link>http://visualcore.com/index.php/2009/07/pyboinc-work-continues/</link>
		<comments>http://visualcore.com/index.php/2009/07/pyboinc-work-continues/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 23:11:40 +0000</pubDate>
		<dc:creator>Jeremy Cowles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BOINC]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[PyMW]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://visualcore.com/?p=160</guid>
		<description><![CDATA[I am still working on PyBOINC (the embedded Python interpreter with support for BOINC). The actual integration (exposing the BOINC API to Python) was easy, it&#8217;s the cross-platform build that&#8217;s most difficult.
The problem is that when running an application on BOINC, you have no guarantee of what libraries will be available, so you must either [...]]]></description>
			<content:encoded><![CDATA[<p>I am still working on PyBOINC (the embedded Python interpreter with support for BOINC). The actual integration (exposing the BOINC API to Python) was easy, it&#8217;s the cross-platform build that&#8217;s most difficult.</p>
<p>The problem is that when running an application on BOINC, you have no guarantee of what libraries will be available, so you must either distribute the libraries you need or compile them statically. I chose the later, which also caused lots of issues with the Python standard library. It&#8217;s mostly working now, with the exception of the <em>sqlite</em> module.</p>
<p>I moved the repo over to my bit bucket account since Nicolas is busy with other projects. The latest code can be <a href="http://bit.ly/pyboinc" target="BLANK" title="PyBOINC source">found here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://visualcore.com/index.php/2009/07/pyboinc-work-continues/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Integrating Python &amp; BOINC</title>
		<link>http://visualcore.com/index.php/2009/07/integrating-python-boinc/</link>
		<comments>http://visualcore.com/index.php/2009/07/integrating-python-boinc/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 05:29:38 +0000</pubDate>
		<dc:creator>Jeremy Cowles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BOINC]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[PyMW]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://visualcore.com/?p=157</guid>
		<description><![CDATA[I started working on an embedded Python interpreter for BOINC with Nicolás Alvarez. The interpreter will be the main executable for Python based workunits and provides interop with the BOINC client API. It allows, for example, reporting percentage complete per workunit, which isn&#8217;t possible currently with PyMW alone.
The project will likely be incorporated into the [...]]]></description>
			<content:encoded><![CDATA[<p>I started working on an embedded Python interpreter for BOINC with Nicolás Alvarez. The interpreter will be the main executable for Python based workunits and provides interop with the BOINC client API. It allows, for example, reporting percentage complete per workunit, which isn&#8217;t possible currently with PyMW alone.</p>
<p>The project will likely be incorporated into the BOINC trunk, but the current code is available on bitbucket as <a href="http://bitbucket.org/nicolas17/pyboinc/" target="_BLANK" title="PyBOINC">PyBOINC</a> if you are interested in seeing how it works.</p>
<p>The Python developers made embedding the interpreter incredibly easy from C/C++ and the BOINC API is readily available from C/C++ as well, so there really isn&#8217;t much code. However, packaging the Python standard library and compiling it so it runs on multiple platforms are still going to be challenging.</p>
]]></content:encoded>
			<wfw:commentRss>http://visualcore.com/index.php/2009/07/integrating-python-boinc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pacman Server Running!</title>
		<link>http://visualcore.com/index.php/2009/07/pacman-server-running/</link>
		<comments>http://visualcore.com/index.php/2009/07/pacman-server-running/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 05:14:11 +0000</pubDate>
		<dc:creator>Jeremy Cowles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BOINC]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[Pacman]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://visualcore.com/?p=148</guid>
		<description><![CDATA[I got the Pacman server running today! It&#8217;s processing matches in a round-robin style, not the double elimination tournament yet, but it&#8217;s running  
This has again exposed the BOINC file immutability issue and I can see now that there is no hacking my way around it &#8212; I am going to have to change [...]]]></description>
			<content:encoded><![CDATA[<p>I got the Pacman server running today! It&#8217;s processing matches in a round-robin style, not the double elimination tournament yet, but it&#8217;s running <img src='http://visualcore.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>This has again exposed the BOINC file immutability issue and I can see now that there is no hacking my way around it &#8212; I am going to have to change the interface so that all executables and WorkUnits are uniquely named.</p>
]]></content:encoded>
			<wfw:commentRss>http://visualcore.com/index.php/2009/07/pacman-server-running/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BOINC: Bundling Files</title>
		<link>http://visualcore.com/index.php/2009/07/boinc-bundling-files/</link>
		<comments>http://visualcore.com/index.php/2009/07/boinc-bundling-files/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 17:19:21 +0000</pubDate>
		<dc:creator>Jeremy Cowles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BOINC]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[PyMW]]></category>

		<guid isPermaLink="false">http://visualcore.com/?p=145</guid>
		<description><![CDATA[I’ve added support into the BOINC interface for bundled data files, however adding this new featue has exposed a new issue in the BOINC interface. I’ve known previously that BOINC holds an odd assumption of immutable files — any file ever seen by BOINC is expected to *never* change it’s contents for all time — [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve added support into the BOINC interface for bundled data files, however adding this new featue has exposed a new issue in the BOINC interface. I’ve known previously that BOINC holds an odd assumption of immutable files — any file ever seen by BOINC is expected to *never* change it’s contents for all time — however when running a PyMW application, the executable (for example, “monte_pi”) is reused over and over desipite any changes that may have occurred in the code.</p>
<p>This hasn’t been an issue up until now, mainly because I was running the PyMW example applications and not modifying them between executions. However, with the introduction of PyMW data bundles, this problem has become painfully obvious. Since data bundles are given a temporary file name and this file name is dynamically embedded into the body of the executable, the executable is now changing its contents on every run.</p>
<p>The fact that the file is changing and the file name remains the same means that BOINC keeps only one copy of the file (because of file name immutability/versioning). The end result is that when a work unit executes on a worker machine, it tries to open the first data bundle file name that was ever created because that first file was cached and never updated.</p>
<p>To fix this, I’ve added some code into the BOINC interface that deletes all work unit related files from the BOINC “download” directory on every execution. This has fixed the problem for now, but the interface should rename all files to a unique name before execution. This is one of my goals for the next iteration of the BOINC interface.</p>
]]></content:encoded>
			<wfw:commentRss>http://visualcore.com/index.php/2009/07/boinc-bundling-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BOINC: Failed WorkUnits</title>
		<link>http://visualcore.com/index.php/2009/07/boinc-failed-workunits/</link>
		<comments>http://visualcore.com/index.php/2009/07/boinc-failed-workunits/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 17:34:49 +0000</pubDate>
		<dc:creator>Jeremy Cowles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BOINC]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[PyMW]]></category>

		<guid isPermaLink="false">http://visualcore.com/?p=141</guid>
		<description><![CDATA[When work units fail in BOINC, it poses a question of how to handle the remaining work units still being processed. I&#8217;ve added code to minimally handle failures so that manual user intervention isn&#8217;t required, however there is still a burden on the developer to understand this situation and decide how to recover from it.
This [...]]]></description>
			<content:encoded><![CDATA[<p>When work units fail in BOINC, it poses a question of how to handle the remaining work units still being processed. I&#8217;ve added code to minimally handle failures so that manual user intervention isn&#8217;t required, however there is still a burden on the developer to understand this situation and decide how to recover from it.</p>
<p>This is really no different from handling exceptions in non-distributed code, but I know all to well how exceptions are normally handled (hint: they aren&#8217;t). If you are interested, you can read <a href="http://pymw.sourceforge.net/?p=11" target="_BLANK">my full post</a> on the PyMW blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://visualcore.com/index.php/2009/07/boinc-failed-workunits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyMW Site Finished, for Now</title>
		<link>http://visualcore.com/index.php/2009/06/pymw-site-finished-for-now/</link>
		<comments>http://visualcore.com/index.php/2009/06/pymw-site-finished-for-now/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 23:21:13 +0000</pubDate>
		<dc:creator>Jeremy Cowles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[PyMW]]></category>

		<guid isPermaLink="false">http://visualcore.com/?p=136</guid>
		<description><![CDATA[I&#8217;ve finished converting the PyMW website over to WordPress and implemented the new design and logo. It still needs more work, but I&#8217;m going to switch back into core BOINC interface mode again for a while.
The interface is working well now, but BOINC work unit failures still require manual user intervention. I would like to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finished converting the <a href="http://pymw.sourceforge.net/" target="_BLANK" title="PyMW website">PyMW website</a> over to WordPress and implemented the new design and logo. It still needs more work, but I&#8217;m going to switch back into core BOINC interface mode again for a while.</p>
<p>The interface is working well now, but BOINC work unit failures still require manual user intervention. I would like to automate as much failure recovery as possible, so I will be focusing on this for the next few days.</p>
]]></content:encoded>
			<wfw:commentRss>http://visualcore.com/index.php/2009/06/pymw-site-finished-for-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
