<?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>The Unctuous Rants of Leif Andersen &#187; Technology</title>
	<atom:link href="http://leifandersen.net/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://leifandersen.net</link>
	<description>Your Fiduciary Source for Science, Technology, Rants, and Occasional Journalism</description>
	<lastBuildDate>Mon, 06 Sep 2010 19:23:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Why I left Facebook</title>
		<link>http://leifandersen.net/2010/09/06/why-i-left-facebook/</link>
		<comments>http://leifandersen.net/2010/09/06/why-i-left-facebook/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 19:23:06 +0000</pubDate>
		<dc:creator>Leif Andersen</dc:creator>
				<category><![CDATA[Law]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[This Blog]]></category>

		<guid isPermaLink="false">http://leifandersen.net/?p=653</guid>
		<description><![CDATA[I&#8217;ve had several people ask me why I&#8217;ve left Facebook over the past few weeks, so I thought I might as well just summarize it right here¸that way if anyone in the future asks why I left, I can simply point them here and call it a day. The main reason I left Facebook is [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had several people ask me why I&#8217;ve left Facebook over the past few weeks, so I thought I might as well just summarize it right here¸that way if anyone in the future asks why I left, I can simply point them here and call it a day.</p>
<p>The main reason I left Facebook is because I didn&#8217;t feel safe.  Now many of you are thinking that this is related to privacy issues, it is not.  If I was worried about &#8216;privacy&#8217; in that sense of the word, I wouldn&#8217;t be running a blog, under a domain name which directly correlates to my own name, and use it as a pseudo journal.  I signed up for Facebook realizing everything I put into it would be completely public, and never changed my position.  In fact, I originally signed up with a pseudonym Kakistocracy Joe (my usual nick at the time, TBOL3((.)14), or Mr. Pi wouldn&#8217;t work), however, I rapidly switched to using my actual name after realizing that I couldn&#8217;t keep it a secret anyway, and it just made life harder, so I switched my Facebook name to my actual name, my twitter name to my actual name (well, actually, I just created a new account, oddly enough the old account still gets a bunch of followers), and created this blog, originally on wordpress.com with the domain of leifandersen.wordpress.com.  As such, everything I&#8217;ve ever put on Facebook I try to treat as if anyone in the world could see.</p>
<p>The reason I didn&#8217;t feel safe was due to their latest feature (at least as of mid August), which is called places.  Now don&#8217;t get me wrong, I don&#8217;t generally mind services that allow you to public your geographical coordinates, and if that&#8217;s all it was, I would have been fine.  However, they also had the feature which allows other people to tag your current location.  I am afraid that someone will be at a place they shouldn&#8217;t be, and they&#8217;ll tag me as being with them (when I&#8217;m not), than in a court of law, that will be used as evidence against me when it shouldn&#8217;t have been.  Also, to make matters worse, Facebook doesn&#8217;t let you have the ability to &#8216;untag&#8217; your location, although you can request to have it be removed.  Yes, it is still possible for someone to &#8216;tag&#8217; me, or for other forms of false evidence to come up incriminating me for something I didn&#8217;t do, but this is a start for a more secure environment.</p>
<p>For those of you who say I can just turn that feature off, I know I can.  To be honest, if that was the only issue, than I would have just turned off that feature and continued on with my life.  However, Facebook has a reputation for creating new &#8216;features&#8217; with very little security in mind.  True, as I said, I generally opt most things to be public, but that doesn&#8217;t mean I want a live webcast of everything I do following me 24/7, published on the internet.  Thus, I&#8217;m also worried that Facebook will release another feature in the near future that will compromise my security, and not bother to make much noise about it, or I&#8217;ll be to busy to notice.  As such, until I get the time to deal with it, I&#8217;ve deactivated my account.  Other things such as it being a time sink, as well as it being harmful to other relationships helped in this decision as well.</p>
<p>Also, it wasn&#8217;t just a large publicity stunt.  It seems like several large people on the internet such as Jason Calacanis left Facebook only as a publicity stunt, as he never really left Facebook.  Even Leo Laporte who seemed to have been somewhat honest in leaving Facebook <a href="http://www.facebook.com/theleolaporte">came back a few days ago</a>.  My Facebook profile isn&#8217;t deleted per say, it&#8217;s still in there, it&#8217;s only deactivated, and it will remain that way until such a time that I see fit to rejoin it.</p>
]]></content:encoded>
			<wfw:commentRss>http://leifandersen.net/2010/09/06/why-i-left-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remaining GSoC Blender Status Reports</title>
		<link>http://leifandersen.net/2010/09/05/remaining-gsoc-blender-status-reports/</link>
		<comments>http://leifandersen.net/2010/09/05/remaining-gsoc-blender-status-reports/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 23:20:55 +0000</pubDate>
		<dc:creator>Leif Andersen</dc:creator>
				<category><![CDATA[Linux/FLOSS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Blender]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GSoC]]></category>

		<guid isPermaLink="false">http://leifandersen.net/?p=645</guid>
		<description><![CDATA[In the past few weeks I never got around to reposting my weekly status reports here, although you could still find them on the mailing list.&#160; As such, here are the remaining status reports.&#160; Also, the webpage for the project is http://wiki.blender.org/index.php/User:LeifAndersen/GSoC2010.&#160; It is possible that the weeks got out&#160; of order, or that I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>In the past few weeks I never got around to reposting my weekly status reports here, although you could still find them on the mailing list.&nbsp; As such, here are the remaining status reports.&nbsp; Also, the webpage for the project is <a href="http://wiki.blender.org/index.php/User:LeifAndersen/GSoC2010">http://wiki.blender.org/index.php/User:LeifAndersen/GSoC2010</a>.&nbsp; It is possible that the weeks got out&nbsp; of order, or that I&#8217;m even missing one, (it appears that I sent out two week 8 reports, than a week 9, and a week 10.&nbsp; I will write up an overall review of how well I think the experience went in the weeks to come.&nbsp; However, I&#8217;m not entirely done with the project, as I still need to update it (to match the latest API in the trunk), and begin to get it merged into the trunk.&nbsp; Anyway, read the reports after the break.</p>
<p><span id="more-645"></span></p>
<p><strong>Week 8</strong></p>
<p>This week was a slightly less productive week. &nbsp;I made one or  two&nbsp;tweaks&nbsp;to the image diff tests, but otherwise, they&#8217;re done. &nbsp;They  can be downloaded here:&nbsp;<a href="http://sourceforge.net/projects/blenderrender/files/" target="_blank">http://sourceforge.net/projects/blenderrender/files/</a></p>
<div>There are three files:</div>
<p><div>The  regular version ~10 megabytes, contains the code, and all of the blend  files, as well as the images to run the blend files out of the box (the  animations can be run, but they must be built first).</div>
<p><div>The version with&nbsp;animations&nbsp;~200&nbsp;megabytes,&nbsp;contains&nbsp;everything the regular version does, except it comes pre-loaded with the animations built.</div>
<p><div>Just the animations: ~200&nbsp;megabytes, the animations, in case the user doesn&#8217;t want to build them first.</div>
<p><div>By default, the animations aren&#8217;t tested, and in  truth, they seem less useful than the image diffs, but still could be  run every once in a while. &nbsp;Again, these tests are plugged into cmake,  but cmake only does the image tests (the animation ones cause cmake to  time out).</div>
<p><div>Also this week I integrated the built in gui tools.  &nbsp;They now use the operators, and give some feedback outside of the  terminal. &nbsp;They can be found in the operators panel in the 3d view.  &nbsp;Ultimately&nbsp;I would also like to give them a section in the preferences  window, but I don&#8217;t see that&nbsp;happening&nbsp;in the near future (at least not  with some help).</div>
<p><div>I also started making more improvements to the blend  file hashcode operator. &nbsp;It now takes a lot more into account, leading  to a more accurate (or at least unique), hashcode.</div>
<p><div>Finally,  I actually started using the tests module again. &nbsp;Because the only way  (that I can see) to get data in and out of operators, is through the  context (bpy.context, or bContext), the problem is that I would need to  change the context from within the blender kernel itself (or wherever  the context is stored), and while I&#8217;m okay doing that, that&#8217;s a bit more  integrated than what I want these tests to be at the moment. &nbsp;So I  started using the tests module as a pseudo-testing context in which to  store data to be displayed.</div>
<p><div>Next week I plan on finishing up some of the gui,  cleaning up some more of the older tests I wrote at the&nbsp;beginning of the  project, and writing a few tests that take advantage of the tools.  &nbsp;Finally, *IF* I get time, I will take a look again at the wm module,  and try to get it up and running. &nbsp;Than I will proceed to make as many  regression tests as I can.</div>
<p><div><strong>Week 9</strong></div>
<p><div>This week went well. &nbsp;After&nbsp;realizing that the end is in about two  weeks, I began to worry that I may not finish in time. &nbsp;I do think that  it&#8217;s possible now, although it will require quite a lot of work, and a  few of the things that I hoped would get built probably won&#8217;t get built  in time.</div>
<div>
<p><div>This week I put the finishing touches on the framework,  and started to move the tests from the existing (manual) testing  framework to the newer automated one. &nbsp;Or at least non-render based  tests, render based ones have already been moved over. &nbsp;So far it&#8217;s been  going fairly well, especially as the python api now seems to work much  better than it did back when this project first got started.</div>
<p><div>Also this week I did a bit of a rewrite on the  render tests. &nbsp;Now instead of storing the pre-built good images in the  tests, it always renders the good images as the test runs, this does  require that the dev have a copy of the &#8216;good&#8217; version of blender, but  it&#8217;s probably also much more powerful. &nbsp;There&#8217;s still a few last  remaining bugs, but they will be squashed rapidly.</div>
<p><div>Next week I will do some more expected bug-squashing  of the framework, but more importantly, I will finish up moving all of  the tests over to the new framework, and try to reserve the last week or  two for bug fixes, more community feedback, and better documentation.</div>
</div>
<p><div><strong>Week 10</strong></div>
<p><div><strong><br />
</strong></div>
<div>Wow&#8230;.this is coming to an end really fast.</div>
<div>
<p><div>Anyway,  this week was almost exclusively spent on porting the existing tests  over to the new framework. &nbsp;I think it went really smoothly. &nbsp;Of course,  I realized soon on that my framework was very&nbsp;inadequate&nbsp;at certain  portions (ie the fact that my hash operator didn&#8217;t take nearly enough  factors of the scene into account, and my &#8216;hash table&#8217; was just an array  of tuples, both of which I fixed (the hash function now takes more  things into account, however, rather than analyzing everything, it only  analyzes them when in conjunction to the scene&#8230;I&#8217;m thinking I may need  to change this, but it&#8217;ll have to wait until next week, also, I&#8217;m now  using an actual hashtable, as provided by the dict interface in python).  &nbsp;Also, certain portions of the test are simply not autometable (to my  knowledge anyway), that is, the portions of the test that make sure the  UI works properly. &nbsp;The best I could think of is taking screenshots, but  than we have to make sure that things such as resolution screen size  etc. etc. match on all of the tests. &nbsp;So I put it in a folder called  /manual, these need to be done manually. &nbsp;(Of course, there aren&#8217;t very  many of these tests, and they can be done in under 2 minutes). &nbsp;I have a  few more changes to make today and tomorrow (pertaining to known bugs  mainly), but other than that, I&#8217;m done with the majority of actual  coding for this project. &nbsp;I wish I had gotten more done this summer, but  I am okay with what i did during the last 3/4 or 2/3 of it (even if a  lot of it until the last 1/2 or even 1/3 was eventually dropped for  better methods), and I hope to continue contributing to blender at the  conclusion of this project.</div>
<p><div>Next week I had bug fixing, code scrubbing,  documentation, and packaging planned. &nbsp;Most of the known bugs have been  found, but seeing my track record, there&#8217;s probably a lot more out  there. &nbsp;Also, the code is a steaming pile of uncommented un-formatted  text, and I need to clean it up, and document everything. &nbsp;Than, I need  to package it up, and try to get it to replace /lib/tests. &nbsp;Finally,  (and this may need to get done after the completion of the  project,&nbsp;especially&nbsp;as it&#8217;s not really &#8216;coding&#8217;, I need to try to get  something like <a href="http://cdash.blender.org/" target="_blank">cdash.blender.org</a> up, to aid in the viewing of the files (I currently have the testing  dashboard up, mentioned much earlier in the project, but that was only  intended as a demo).</div>
<p><div>Once again, thank you for all of your help, it has  been a great summer, and I hope to continue to be a part of the blender  developer community.</div>
</div>
<p><div><strong>Week 11</strong></div>
<p><div>This was an interesting week. &nbsp;I didn&#8217;t get as much documenting as I  would have liked to do to some major bugs found in the hashcode  operator. &nbsp;First I realized that hash() (which is mainly used for  building dictionaries), isn&#8217;t&nbsp;guaranteed&nbsp;to be system independent (in  particular, 32 and 64 bit OSs treat them very differently). &nbsp;Next, after  updating the hash operator to use hashlib, I discovered that the hashes  still came out differently on different systems. &nbsp;I soon found out that  this was probably caused by roundoff errors in the way blender treats  various floating point numbers. &nbsp;I finally fixed most of it, however I  lost a day and a half (almost two days) in the process. &nbsp;(Also, I&#8217;ve  reached a&nbsp;conundrum&nbsp;where occasionally a&nbsp;number will  be&nbsp;fundamentally&nbsp;different. For example, 0.3xxx vs. 0.4xxx. &nbsp;I tried to  minimize this causing an error, but according to the algorithm, it  should).</div>
<div>
<p><div>Once I finished that, I finally got to start documenting  everything. &nbsp;I still have the project page to finish, as well as a few  code comments, but I think once I finish with those, I will be  practically done with the project (barring no more major bugs happen,  sadly though, if there are, the project may get shipped to Google like  that, although they will get fixed asap).</div>
<div>Then, I need to see what has to be done to get this project merged into the trunk.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://leifandersen.net/2010/09/05/remaining-gsoc-blender-status-reports/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Trash we Create</title>
		<link>http://leifandersen.net/2010/08/24/the-trash-we-create/</link>
		<comments>http://leifandersen.net/2010/08/24/the-trash-we-create/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 00:52:39 +0000</pubDate>
		<dc:creator>Leif Andersen</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Microbloggin]]></category>
		<category><![CDATA[Social Networking]]></category>

		<guid isPermaLink="false">http://leifandersen.net/?p=615</guid>
		<description><![CDATA[Today was the first day back at the grind-mill, erm, University.  Originally with a 19 credit hour load, although I&#8217;ll be dropping it down to 16 so I can pursue other areas of my life (which is to say, programming, particularly Android Apps, but I&#8217;m open to any kind of programming).  At University today though, [...]]]></description>
			<content:encoded><![CDATA[<p>Today was the first day back at the grind-mill, erm, University.  Originally with a 19 credit hour load, although I&#8217;ll be dropping it down to 16 so I can pursue other areas of my life (which is to say, programming, particularly Android Apps, but I&#8217;m open to any kind of programming).  At University today though, I saw some interesting things.  On top of realizing that I haven&#8217;t studied enough math this summer, I saw James, a person who I tried to help with CS 1410 the year before, reading my blag.  Not only that, but he was reading my Twitter Weekly Update Posts, a post which, in all honesty, didn&#8217;t think anyone was interested in.  (I only kept it there for posterity sake, and was looking for a way to remove it from the main feed altogether).  Or rather, I think it was my blag, not to many have this exact layout, although I admit I couldn&#8217;t read the text from where I sat.</p>
<p>Then later today, Daniel (another person from school),  said 10.10.10.10.10, a post I shared on Google Reader, which he apparently reads in Buzz.  Along with my blag, my twitter feed, my google status updates, and who knows what else Google thinks is me (and as such, dumps it in there), as well as the few (non-existent) posts that I actually put in buzz itself.  He also said that the weekly twiiter posts seemed somewhat pointless to him.  (Which is to say, he saw my twitter posts, and then saw my weekly twitter updates which is just a reposting on my blag of what I posted, and thinks it&#8217;s somewhat dumb).</p>
<p>These situations made me think of two slightly conflicting things.  First, people actually read what I write.  I find this amazing because hardly anyone besides JT, and many spam bots.  I find this amazing as I have almost put this blag in the list of things no one really wants to read, but will serve simply as a personal ID for me, and I was going to start a new blag, specifically dedicated towards programming/business related things, and keep this blag as a personal archive of my content.  But other people besides me, albeit a small group of other people, also find it interesting.  The second thing that I found interesting is all of the waste we&#8217;re putting out on the internet.  I didn&#8217;t know my twitter feed was getting posted to buzz (I found out later that it was ping.fm that was posting to buzz, not &#8216;as&#8217; bad), but then I was also putting it on my blag, which was also going to buzz.  Even more, I never even touched buzz, I was just letting my content trickle into there because I didn&#8217;t really care.  So, I&#8217;m posting multiple things to multiple services, why?  Because I can?  What I really need, is a single point of entry.  Where I can post both short posts, and long, more thought out posts, like these.  I would use wordpress, but the issues is that if I use a lot of really short posts, it clutters up the whole thing, leaving the longer posts, the ones I really care about, harder to find.  I could use Ping.fm, I could even get it to post to wordpress, but I still have the issue about shorter posts becoming taking over the site.  Also, if Ping.fm goes down, I&#8217;m sunk.  Then, what about Reader?  I could share something in Google Reader, and it get&#8217;s pushed to Buzz, but nothing else, or I could set it up to post on here, but we&#8217;re back to square one about shared items covering up the content I really care about.  So, as I&#8217;m making this network, I also have to think about how long these services will last, as many of them have changing APIs, and I would like to have a life outside of keeping these tubes clean.  Also, what if I create a loop of death, say for example, I get Ping.fm to post to wordpress.com, and I get wordpress.com to post to ping.fm (via rss), the internet (or at least a little corner of it, until someone noticed and stopped it) would come to a firey ball of death.</p>
<p>In short, I need a better CMS.  Something that I own, but can ping to everyone else.  Something that can also accept pings of its own (from things like google reader or buzz), and re-ping them, but be smart enough not to post things twice.  Or, is all of this like a soap box, and only a few people are actually reading these narcissistic rants, and should we all get off of our soap boxes?  Although again, I did find out today that a few people do read this blag.</p>
<p>Either way, I&#8217;ll let you know what I figure out when I do.  And you can tell me what you think in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://leifandersen.net/2010/08/24/the-trash-we-create/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Future of Computing is not Cell Phones</title>
		<link>http://leifandersen.net/2010/08/04/the-future-of-computing-is-not-cell-phones/</link>
		<comments>http://leifandersen.net/2010/08/04/the-future-of-computing-is-not-cell-phones/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 02:47:31 +0000</pubDate>
		<dc:creator>Leif Andersen</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://leifandersen.net/?p=592</guid>
		<description><![CDATA[All over the web, Apple fanboys (aka, &#8216;tech bloggers&#8217;), have been saying that the future of computing is in mobile devices, and that desktop computers are just a utility.  While I admit that that laptops seem to have more functionality to desktops (although to be fair, it may just seem that way to me as [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://leifandersen.net/wp-content/uploads/2010/08/wpid-2010-07-20_12-52-28_628.jpg"><img class="alignright size-medium wp-image-593" title="wpid-2010-07-20_12-52-28_628.jpg" src="http://leifandersen.net/wp-content/uploads/2010/08/wpid-2010-07-20_12-52-28_628-300x225.jpg" alt="" width="300" height="225" /></a>All over the web, Apple fanboys (aka, &#8216;tech bloggers&#8217;), have been saying that the future of computing is in mobile devices, and that desktop computers are just a utility.  While I admit that that laptops seem to have more functionality to desktops (although to be fair, it may just seem that way to me as I&#8217;m a student, a need a mobile computer while I&#8217;m on campus), desktops are in no way going to fade out of use.  Not only is it much easier to upgrade desktop computers, and are more powerful than mobile computers, but desktop computers are also more convenient to use in situations where constant movement is not required, allowing for greater productivity.</p>
<p>For example, try typing up this blog post on a desktop or laptop, now try typing it up on your ipad&#8230;sure, lug around that bluetooth keyboard if you like, but at that point, you have another device to lug around, and it becomes easier to manage a laptop (with the obvious exception of battery life).  Not only will computer scientists, engineers, and hobbyists/gamers be using desktops in the near future, but other trades such as writing, accounting, film/cgi, and many others.</p>
<p>Some have said that computers have become stagnate with little to no innovation.  This is simply untrue.  While the amount of power in a single core has maxed out, and the number of cores in an architecture is slowing, the amount of heat being generated by these computers (and thus by correlation the amount of math they are doing), is still growing exponentially.  Remember people, there&#8217;s more to computing that GHz/Cores/Piping/RISC/etc.  Has it gotten less sexy?  Yes, I will admit that, but remember that &#8216;sexy&#8217; is not a measure of usage, but more a meter of novelty.  Most of the improvements in computers are not in the outside appearance, but in its internals.  Furthermore, &#8216;sexy&#8217; can also be directly correlated to the amount of marketing a company has put into it&#8217;s products, and as we know, Apple Inc. puts in a tremendous amount of marketing.  But to some people, desktop computers are still &#8216;sexy&#8217;.</p>
<p>This doesn&#8217;t mean that mobile computing doesn&#8217;t have its place.  I recently bought a droid x (on opening day actually), and I love it.  I love the size (although I wish it was a bit bigger), I love the speed, I love it&#8217;s power.  However, I don&#8217;t use it as a productivity device (yet, I&#8217;m working on getting it set up as a tablet in conjunction with my computer), I use it as a portable media player for places like on the bus and the train, which I spend a lot of time on.  I use it for games, but most of the games I play can run on very old hardware anyway, as well as video/audio, and web browsing/email.  I do admittedly use it for some content creation though, for example the picture in this post is a scaled down version of a picture I took with it.  I also enjoy hearing people talking about mobile computing too.</p>
<p>So, in conclusion, while mobile devices are growing, and can be rather interesting, there is still much innovation going on in the desktop/non-cloud-computing arena.  As such, it would be much more enjoyable to listen to podcast/read blogs that talk about that, rather than the annoying amount of &#8216;cloud&#8217; news that is produced now days.  As such, if anyone wants to show of their websites/products that are not cloud based in the comments, I would be very appreciative of that, and may even give my opinion of it in a future post.</p>
]]></content:encoded>
			<wfw:commentRss>http://leifandersen.net/2010/08/04/the-future-of-computing-is-not-cell-phones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blender GSoC Week 7 Status</title>
		<link>http://leifandersen.net/2010/07/11/blender-gsoc-week-7-status/</link>
		<comments>http://leifandersen.net/2010/07/11/blender-gsoc-week-7-status/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 04:02:39 +0000</pubDate>
		<dc:creator>Leif Andersen</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Linux/FLOSS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Blender]]></category>
		<category><![CDATA[FLOSS]]></category>
		<category><![CDATA[GSoC]]></category>

		<guid isPermaLink="false">http://leifandersen.net/?p=579</guid>
		<description><![CDATA[Overall, I think this has been a good week.  I worked almost exclusively on the image comparison diff tester this week.  I wrote it in python, and it can actually work independent of blender (although it does assume that blender is on your system, and in your path, although that can be changed with the [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">Overall, I think this has been a good week.  I worked almost exclusively on the image comparison diff tester this week.  I wrote it in python, and it can actually work independent of blender (although it does assume that blender is on your system, and in your path, although that can be changed with the &#8211;blender-bin flag).  This means that the tests folder can be put in a zip, and placed in the same location as where the current regression tests (for blender 2.4x) are located on the website.</div>
<div id="_mcePaste">As I said last time, the general way to run the tests is by using python run.py.  You can use the -v flag to see the output of blender as it&#8217;s rendering it.  Also, it might be possible to avoid even having to download the images at all, by using the recently built &#8211;built-tests flag, which, instead of rendering tests, will render the images and store them in the known good folder.  (It uses the version of blender in your path).</div>
<div></div>
<div id="_mcePaste">Through the use of the &#8211;image flag, you can compare any blender image on your harddrive (currently assuming it&#8217;s in the right file structure), this allowed me to make other image comparison tests, that compared blend files built by pyunit based tests.  This (along with the hashcode operator I started putting together last week), means that most of the tools for building good unit tests (and regression tests in general), are almost build (I think).  Meaning that now the only missing piece of the puzzle is the one I was working on several weeks ago (without luck), which is:</div>
<div id="_mcePaste">
<ul>
<li><span style="font-size: 13.3333px;">A.  Getting the python API to work in background mode (which blender currently isn&#8217;t designed to do).</span></li>
<li><span style="font-size: 13.3333px;">B.  Getting the python API to work properly in foreground mode (lots of stuff in bpy.wm crash.  (At least it did as of a week ago, do to low bandwidth caps here, I won&#8217;t&#8217; merge until tomorrow evening (when I get home), so they may have been fixed by now)).</span></li>
</ul>
</div>
<div id="_mcePaste">Although Andrea only looked at my code to determine good structure, etc.   I believe that most of the bugs have been removed.  (Although, this is python, and bad code doesn&#8217;t show up until someone tries to run it, and I haven&#8217;t made regression tests for my regression tests. <img src='http://leifandersen.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  (at least not yet anyway, and it&#8217;s not on my radar in the near future)).</div>
<div id="_mcePaste">The comparator is also capable of producing animation tests.  However, this code is slightly buggier.  Also, by default, I&#8217;m not running the animation tests in the current regression suite, because it takes the running time up from 2:30, to over an hour.  I have a &#8211;animation flag, but it doesn&#8217;t work at the moment.  (Although the underlying code works, so it&#8217;s basically just a matter of plugging the code into the flag).</div>
<div></div>
<div id="_mcePaste">Finally, because the animation images make the overall file size ~240 MB (as apposed to 30 MB), they are not in the default build.  But rather, the user has two choices, they can either A:  Render Good ones, or B.  Use a hash code (and download images (or generate them) if something goes wrong).  The hash code also work in images.  However, the code for this is only half built.  The test case classes support it, but the surrounding structures don&#8217;t use it yet, this shouldn&#8217;t be more than an hours worth of work to implement it fully.</div>
<div></div>
<div id="_mcePaste">Finally, I didn&#8217;t do as much work as I would have liked in the HTML output.  Now, rather than using static CSS scripts from sphynx, I now build the CSS in the script itself.  (With the exception of images, I&#8217;m not sure how to do that as a python script&#8230;well, there is PIL, but I&#8217;d sooner put bamboo up my fingernails than make the needed images that way).  Although the output is starting to look like it&#8217;s from blender&#8217;s website.  (Although the table doesn&#8217;t quite fit).  Also, it will only generate images for single images (well, that, and animations, but it only does the first frame).  Eventually, the animations will be clickable, and you can view a separate HTML page for the entire animation, but that&#8217;s not built yet.  It shouldn&#8217;t be too hard to make, but I keep having to do one or the other thing, so the current implementation is old, and would probably cause the script to crash if used.</div>
<p>Overall, I think this has been a good week.  I worked almost exclusively on the image comparison diff tester this week.  I wrote it in python, and it can actually work independent of blender (although it does assume that blender is on your system, and in your path, although that can be changed with the &#8211;blender-bin flag).  This means that the tests folder can be put in a zip, and placed in the same location as where the current regression tests (for blender 2.4x) are located on the website.<br />
As I said last time, the general way to run the tests is by using python run.py.  You can use the -v flag to see the output of blender as it&#8217;s rendering it.  Also, it might be possible to avoid even having to download the images at all, by using the recently built &#8211;built-tests flag, which, instead of rendering tests, will render the images and store them in the known good folder.  (It uses the version of blender in your path).<br />
Through the use of the &#8211;image flag, you can compare any blender image on your harddrive (currently assuming it&#8217;s in the right file structure), this allowed me to make other image comparison tests, that compared blend files built by pyunit based tests.  This (along with the hashcode operator I started putting together last week), means that most of the tools for building good unit tests (and regression tests in general), are almost build (I think).  Meaning that now the only missing piece of the puzzle is the one I was working on several weeks ago (without luck), which is:A.  Getting the python API to work in background mode (which blender currently isn&#8217;t designed to do).B.  Getting the python API to work properly in foreground mode (lots of stuff in bpy.wm crash.  (At least it did as of a week ago, do to low bandwidth caps here, I won&#8217;t&#8217; merge until tomorrow evening (when I get home), so they may have been fixed by now)).</p>
<p>Although Andrea only looked at my code to determine good structure, etc.   I believe that most of the bugs have been removed.  (Although, this is python, and bad code doesn&#8217;t show up until someone tries to run it, and I haven&#8217;t made regression tests for my regression tests. <img src='http://leifandersen.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  (at least not yet anyway, and it&#8217;s not on my radar in the near future)).<br />
The comparator is also capable of producing animation tests.  However, this code is slightly buggier.  Also, by default, I&#8217;m not running the animation tests in the current regression suite, because it takes the running time up from 2:30, to over an hour.  I have a &#8211;animation flag, but it doesn&#8217;t work at the moment.  (Although the underlying code works, so it&#8217;s basically just a matter of plugging the code into the flag).</p>
<p>Finally, because the animation images make the overall file size ~240 MB (as apposed to 30 MB), they are not in the default build.  But rather, the user has two choices, they can either A:  Render Good ones, or B.  Use a hash code (and download images (or generate them) if something goes wrong).  The hash code also work in images.  However, the code for this is only half built.  The test case classes support it, but the surrounding structures don&#8217;t use it yet, this shouldn&#8217;t be more than an hours worth of work to implement it fully.</p>
<p>Finally, I didn&#8217;t do as much work as I would have liked in the HTML output.  Now, rather than using static CSS scripts from sphynx, I now build the CSS in the script itself.  (With the exception of images, I&#8217;m not sure how to do that as a python script&#8230;well, there is PIL, but I&#8217;d sooner put bamboo up my fingernails than make the needed images that way).  Although the output is starting to look like it&#8217;s from blender&#8217;s website.  (Although the table doesn&#8217;t quite fit).  Also, it will only generate images for single images (well, that, and animations, but it only does the first frame).  Eventually, the animations will be clickable, and you can view a separate HTML page for the entire animation, but that&#8217;s not built yet.  It shouldn&#8217;t be too hard to make, but I keep having to do one or the other thing, so the current implementation is old, and would probably cause the script to crash if used.</p>
]]></content:encoded>
			<wfw:commentRss>http://leifandersen.net/2010/07/11/blender-gsoc-week-7-status/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blender GSoC Week 6 Status</title>
		<link>http://leifandersen.net/2010/07/11/blender-gsoc-week-6-status/</link>
		<comments>http://leifandersen.net/2010/07/11/blender-gsoc-week-6-status/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 03:59:58 +0000</pubDate>
		<dc:creator>Leif Andersen</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Linux/FLOSS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Blender]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://leifandersen.net/?p=576</guid>
		<description><![CDATA[I&#8217;ll try to make this short, as it&#8217;s late here. Even though I got sick this week (it turned out to be just a cold/flu), and went out of town (and still am), I believe that this week has been one of the most productive weeks so far. This week started off with me implementing [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">I&#8217;ll try to make this short, as it&#8217;s late here.</div>
<div id="_mcePaste">Even though I got sick this week (it turned out to be just a cold/flu), and went out of town (and still am), I believe that this week has been one of the most productive weeks so far.</div>
<div id="_mcePaste">This week started off with me implementing some of the GUI features I worked with last week, which is to say I started making the image diff tests into an operator.  (Previously they had been baked into the tests directly).  They could be run from a Tests dropdown menu, although there was non feedback outside of the console, leading the user to believe blender had frozen while the tests were running.  Andrea pointed out that this was pointless, and that it should just be a script.  As such, I started implementing it in all in python 2.x.  The tests can be found in tests/render, and I put together a slight howto on how to run them: http://wiki.blender.org/index.php/User:LeifAndersen/GSoC2010/Howto</div>
<blockquote>
<div id="_mcePaste">Render Tests</div>
<div id="_mcePaste">The current set of render tests requires PIL, and python 2.x. In order to run them, inside the blender source directory, look in: tests/render. There, you should find a collection of files. While the absolute path of those files doesn&#8217;t matter (aka, you could move the tests/render folder anywhere, and it would do just fine), those files must be kept in the same relationship to each other. If blender is already in your system path, just go into the folder, and run python run.py, and the script will take it&#8217;s course. If blender is not in your current path, open up run.py, and change the BLENDER_BIN variable to you blender binary, and than run python run.py. You can view the results in the console, otherwise you can see a list of all of the results, as well as diffs, by opening index.html in your web browser.</div>
<div id="_mcePaste">(my most recent commits have temporarily broken this as an operator, but I will soon fix that).  There is a webpage that is outputted which allows you to easily see the difference between the renders.  In addition, the algorithm for analyzing the images is much improved.</div>
<div id="_mcePaste">I also moved my tests.hashcode module into an operator (bpy.ops.tests.hashcode()), or Tests-&gt;Hashcode.  Although it still only gives feedback in the terminal, and only takes some things into account when making the hashcode.</div>
</blockquote>
<div id="_mcePaste">As far as next week goes, I am going to spend a bit of time with the webpage.  It&#8217;s not quite flush with blender&#8217;s webpage, but it&#8217;s getting closer.  But more importantly, I can see a few more options that would allow the user to get more of the raw data behind the images (which I would assume would make it debug).  Most of this I believe can be written in HTML, but some javascript may be useful.  I also plan to get animations working with these tests, and possibly bringing this back in to work with the blender operator.  I also am going to try to get a lot more feedback this week, and hope to have the tool used soon after.  I will also spend a bit of time getting the hashcode operator to take more into account, as well as giving more feedback to the user.  (As in feedback that&#8217;s not only just console output).  I would also work on aggregating the data in the blend file for the user to test, but blender is already capable of that.  Finally, I plan on improving the integration of Ctest and CDash, but that seems trivial to do.</div>
<p>I&#8217;ll try to make this short, as it&#8217;s late here.<br />
Even though I got sick this week (it turned out to be just a cold/flu), and went out of town (and still am), I believe that this week has been one of the most productive weeks so far.<br />
This week started off with me implementing some of the GUI features I worked with last week, which is to say I started making the image diff tests into an operator.  (Previously they had been baked into the tests directly).  They could be run from a Tests dropdown menu, although there was non feedback outside of the console, leading the user to believe blender had frozen while the tests were running.  Andrea pointed out that this was pointless, and that it should just be a script.  As such, I started implementing it in all in python 2.x.  The tests can be found in tests/render, and I put together a slight howto on how to run them: http://wiki.blender.org/index.php/User:LeifAndersen/GSoC2010/Howto<br />
Render TestsThe current set of render tests requires PIL, and python 2.x. In order to run them, inside the blender source directory, look in: tests/render. There, you should find a collection of files. While the absolute path of those files doesn&#8217;t matter (aka, you could move the tests/render folder anywhere, and it would do just fine), those files must be kept in the same relationship to each other. If blender is already in your system path, just go into the folder, and run python run.py, and the script will take it&#8217;s course. If blender is not in your current path, open up run.py, and change the BLENDER_BIN variable to you blender binary, and than run python run.py. You can view the results in the console, otherwise you can see a list of all of the results, as well as diffs, by opening index.html in your web browser.<br />
(my most recent commits have temporarily broken this as an operator, but I will soon fix that).  There is a webpage that is outputted which allows you to easily see the difference between the renders.  In addition, the algorithm for analyzing the images is much improved.<br />
I also moved my tests.hashcode module into an operator (bpy.ops.tests.hashcode()), or Tests-&gt;Hashcode.  Although it still only gives feedback in the terminal, and only takes some things into account when making the hashcode.<br />
As far as next week goes, I am going to spend a bit of time with the webpage.  It&#8217;s not quite flush with blender&#8217;s webpage, but it&#8217;s getting closer.  But more importantly, I can see a few more options that would allow the user to get more of the raw data behind the images (which I would assume would make it debug).  Most of this I believe can be written in HTML, but some javascript may be useful.  I also plan to get animations working with these tests, and possibly bringing this back in to work with the blender operator.  I also am going to try to get a lot more feedback this week, and hope to have the tool used soon after.  I will also spend a bit of time getting the hashcode operator to take more into account, as well as giving more feedback to the user.  (As in feedback that&#8217;s not only just console output).  I would also work on aggregating the data in the blend file for the user to test, but blender is already capable of that.  Finally, I plan on improving the integration of Ctest and CDash, but that seems trivial to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://leifandersen.net/2010/07/11/blender-gsoc-week-6-status/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blender GSoC Week 5 Status</title>
		<link>http://leifandersen.net/2010/07/11/blender-gsoc-week-5-status/</link>
		<comments>http://leifandersen.net/2010/07/11/blender-gsoc-week-5-status/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 03:58:50 +0000</pubDate>
		<dc:creator>Leif Andersen</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Linux/FLOSS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Blender]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://leifandersen.net/?p=574</guid>
		<description><![CDATA[This week has been one of my better weeks.  As usual, there were a few bumps this week, but not too many. This week dealt with two things: 1.  Image comparison 2.  UI, and thus wrapping unit tests in operators to insert into the UI. Per Matt Estela&#8217;s recommendation, I tried incorporating Perceptual Image Diff [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">This week has been one of my better weeks.  As usual, there were a few bumps this week, but not too many.</div>
<div id="_mcePaste">This week dealt with two things:</div>
<div id="_mcePaste">1.  Image comparison</div>
<div id="_mcePaste">2.  UI, and thus wrapping unit tests in operators to insert into the UI.</div>
<div id="_mcePaste">Per Matt Estela&#8217;s recommendation, I tried incorporating Perceptual Image Diff http://pdiff.sourceforge.net/ into the tests to compare images.  The pre-compiled binaries work fine, however, compiling from source presents a bit of a problem, even with all of the listed dependencies installed, it complains that several printf stamens are not declared.  I emailed the developer and am waiting for a response.  This isn&#8217;t my main priority.  However, I will keep using PIL until such time as a tool like this works.</div>
<div id="_mcePaste">Getting tests in blender&#8217;s UI represents some challenges that do not exist when using CTest as a testing platform.  First of all, I thought a lot about render tests.  If we use blender&#8217;s current set of regression tests that blender has, it shouldn&#8217;t be very difficult to create a tool that allows a developer to render a blend file, and than compare it to another image file, and than write another tool to run all of the tests.  The problem is that putting this into the GUI, which requires python 3.  And on top of that, developing a good UI for this sort of thing can also be a bit tricky.  Fortunately though, it still is trivial to wrap up unit tests inside an operator, so ultimately, running the tests won&#8217;t be too big of a deal, as apposed to setting them up.  I also toyed with writing the operators required in C, although this isn&#8217;t as good of an idea as writing it in python, where we could simply give developers a template file to use for their tests, but it may still prove useful.</div>
<div id="_mcePaste">Next week should be interesting.  Starting on Wed.  and going to the end of the week after that, I&#8217;ll be out of town.  With that being said, I won&#8217;t be out of communication, but rather, I&#8217;ll probably be spending less time on IRC.  (I&#8217;ll still try to attend the usual Sunday meeting, as well as spending an hour or so online though).  I will respond to emails as usual, albeit probably a bit slower.   I&#8217;ll post an email specifically about this to this list in case this portion of the review is missed.  I still have more UI stuff planned next week, but mainly merging the UI and rendering algorithms into one fluid tool, at which point I&#8217;ll start automating it.</div>
<p>This week has been one of my better weeks.  As usual, there were a few bumps this week, but not too many.<br />
This week dealt with two things:1.  Image comparison2.  UI, and thus wrapping unit tests in operators to insert into the UI.<br />
Per Matt Estela&#8217;s recommendation, I tried incorporating Perceptual Image Diff http://pdiff.sourceforge.net/ into the tests to compare images.  The pre-compiled binaries work fine, however, compiling from source presents a bit of a problem, even with all of the listed dependencies installed, it complains that several printf stamens are not declared.  I emailed the developer and am waiting for a response.  This isn&#8217;t my main priority.  However, I will keep using PIL until such time as a tool like this works.<br />
Getting tests in blender&#8217;s UI represents some challenges that do not exist when using CTest as a testing platform.  First of all, I thought a lot about render tests.  If we use blender&#8217;s current set of regression tests that blender has, it shouldn&#8217;t be very difficult to create a tool that allows a developer to render a blend file, and than compare it to another image file, and than write another tool to run all of the tests.  The problem is that putting this into the GUI, which requires python 3.  And on top of that, developing a good UI for this sort of thing can also be a bit tricky.  Fortunately though, it still is trivial to wrap up unit tests inside an operator, so ultimately, running the tests won&#8217;t be too big of a deal, as apposed to setting them up.  I also toyed with writing the operators required in C, although this isn&#8217;t as good of an idea as writing it in python, where we could simply give developers a template file to use for their tests, but it may still prove useful.<br />
Next week should be interesting.  Starting on Wed.  and going to the end of the week after that, I&#8217;ll be out of town.  With that being said, I won&#8217;t be out of communication, but rather, I&#8217;ll probably be spending less time on IRC.  (I&#8217;ll still try to attend the usual Sunday meeting, as well as spending an hour or so online though).  I will respond to emails as usual, albeit probably a bit slower.   I&#8217;ll post an email specifically about this to this list in case this portion of the review is missed.  I still have more UI stuff planned next week, but mainly merging the UI and rendering algorithms into one fluid tool, at which point I&#8217;ll start automating it.</p>
]]></content:encoded>
			<wfw:commentRss>http://leifandersen.net/2010/07/11/blender-gsoc-week-5-status/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blender and Google Summer of Code (GSoC), Month One Review</title>
		<link>http://leifandersen.net/2010/06/21/blender-and-google-summer-of-code-gsoc-month-one-review/</link>
		<comments>http://leifandersen.net/2010/06/21/blender-and-google-summer-of-code-gsoc-month-one-review/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 16:06:21 +0000</pubDate>
		<dc:creator>Leif Andersen</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Linux/FLOSS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Blender]]></category>
		<category><![CDATA[FLOSS]]></category>
		<category><![CDATA[GSoC]]></category>

		<guid isPermaLink="false">http://leifandersen.net/?p=564</guid>
		<description><![CDATA[It&#8217;s been almost a month since the official start date of Google Summer of Code, and, per Andrea&#8217;s recommendation, now is a good time for a month in review.  This won&#8217;t go into great detail, I will leave the weekly reviews for that. So, just a brief checklist of what has happened: Project Started Gtest set [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been almost a month since the official start date of Google Summer of Code, and, per Andrea&#8217;s recommendation, now is a good time for a month in review.  This won&#8217;t go into great detail, I will leave the weekly reviews for that.</p>
<p>So, just a brief checklist of what has happened:</p>
<ol>
<li>Project Started</li>
<li>Gtest set up</li>
<li>Pyunit setup</li>
<li>tests module created</li>
<li>Hashtests and image comparison tests built</li>
<li>Learned a lot about how the Blender codebase works</li>
<li>Made some hacks and bug reports with the Blender codebase</li>
<li>Initial work on GUI panel for tests (originally dropped, but recently brought back into the foreground)</li>
<li>CMake now using CTest and CDash to report the project</li>
</ol>
<p><span id="more-564"></span></p>
<p>There was probably some more, but those were the biggest.  When I look back on that, my initial impression is that I really could have gotten more done.  In particular, most of this stuff is samples, I have been working on the bones behind this framework, and the metaphoric meat has yet to come, although it did start to at the end of the month.  However, it than becomes important to look back at the schedule planned for this project.</p>
<p>At the time of writing this, the predicted portion of work is supposed to be:</p>
<blockquote><p><strong>June 8 – June 23</strong></p>
<p>This time should be dedicated to development of other end to end and regression tests. It is much longer than the first suite because much less time was spent on it during the community bonding period. An emphasis will be put on making various forms of render based tests. At this time, it will be important to determine a good strategy for how often the test suite should be run, and, if needed to be run in multiple increments, i.e. some tests running with every commit, while others run only nightly. This section can be further split into two sections. The first being setting up the testing platforms, and the second part being creating a sample test suite for the built platforms. Note that the task of scouting for viable platforms, based upon what Blender currently uses, and the toolset others, should be a ‘back burner’ project, while the other sections are taking place, and should be completed by the time that this section starts.</p></blockquote>
<p>So, as far as the project goes, it looks like I&#8217;m on schedule, with one exception, I have very few tests in hand, do to the amount of time I&#8217;ve spent trying out testing frameworks.  I don&#8217;t think this is a very bad thing per say, not only was that particular timeline fairly preliminary, but it also gave a lot of time for testing frameworks.  So, in order for me to stay up to date, this next month will be spending a lot more time developing tests, and a lot less mucking about with how they are presented, especially as most of the frameworks have already been set up, with two exceptions, registering it as GUI within blender, and allowing for easy automation of new tests (currently a developer has to manually plug their tests into the system, at which point they will be automated).  Also, it might be a good idea to make the pyunit tests operators in the near future, which should allow for them to be easily made into a gui.  With the addition of the current regression tests that Blender has, this could be vary useful.</p>
<p>As far as participating in the community, I believe that that is going well.  I&#8217;m idling in the channel, and have had several conversations about problems with the code.  At least, I think I&#8217;ve done a good job, this is one of the situations where unless someone is telling you that you need to do better, it&#8217;s hard to know that you can.  I&#8217;ve also participated via email and the bug tracker.  I don&#8217;t see a need to make many changes for next month.  With that being said, for about a week and a half, possibly two and a half weeks next month, I&#8217;ll be out of town.  I&#8217;ll still be working on my project, and responding to email, but do to poor internet access, I&#8217;ll likely not be doing too much idling on #blendercoders.  Although I&#8217;ll try to be on for an hour or two a day in the evening (CEST time, morning for me in MDT).</p>
<p>So, in short, I believe I&#8217;m still in the window that makes me on track.  I&#8217;m not at the front of the window per say, but it&#8217;s not anything I think I need to worry about, yet.  Also, I&#8217;ve been speeding up, so hopefully I&#8217;ll get ahead of my proposed schedule soon.  I will be spending more time developing tests, and than plugging in blender&#8217;s current regression tests (probably by using the same file structure those tests are currently in), and I&#8217;ll be keeping my current pace in the community.</p>
]]></content:encoded>
			<wfw:commentRss>http://leifandersen.net/2010/06/21/blender-and-google-summer-of-code-gsoc-month-one-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blender GSoC Week 4 Status</title>
		<link>http://leifandersen.net/2010/06/18/blender-gsoc-week-4-status/</link>
		<comments>http://leifandersen.net/2010/06/18/blender-gsoc-week-4-status/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 21:32:45 +0000</pubDate>
		<dc:creator>Leif Andersen</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Linux/FLOSS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Blender]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[soc]]></category>

		<guid isPermaLink="false">http://leifandersen.net/?p=557</guid>
		<description><![CDATA[Overall, I think this week I&#8217;ve started to pick up the pace, although not by too much, there&#8217;s still plenty of room for lot&#8217;s of improvement, but at this point everything is starting to feel like it goes into place, which makes me happy. I spent a lot of time this week trying to get [...]]]></description>
			<content:encoded><![CDATA[<p>Overall, I think this week I&#8217;ve started to pick up the pace, although not by too much, there&#8217;s still plenty of room for lot&#8217;s of improvement, but at this point everything is starting to feel like it goes into place, which makes me happy.</p>
<p>I spent a lot of time this week trying to get some of the tests to work in background mode.  Unfortunately, several of the needed api calls (saving/loading/rendering/saving images), only work when in regular mode.  I also had other problems with API calls not working properly even in the foreground mode, and I&#8217;ve done some more hacks on the codebase, and submitted some bug reports, although at this point, I&#8217;ve got most of the API calls I need working, albeit they&#8217;re still a bit buggy.  In the end, we&#8217;ve decided to run the tests in the forground (for now), and just run the exit blender api call at the end of the test.  The largest problem with this is that if the test segfaults, blender won&#8217;t quit, and the user must quit it himself.  Also, it&#8217;s quite annoying to have a window pop up and close over and over again while running the tests.  Thus, as soon as some of the bugs I&#8217;ve reported are fixed, I&#8217;ll be switching back to background mode.</p>
<p>I&#8217;ve also started doing some image comparison tests.  I don&#8217;t really have any good algorithms yet,  so I&#8217;m still very open to suggestions.  Currently though, I&#8217;ve tried several iterations of a histogram comparison.  Both comparing all the color bands at the same time, and comparing them separately, the first one is quite a bit faster, although I think that&#8217;s do to how I&#8217;m using the API calls.</p>
<p><span id="more-557"></span></p>
<p>By far, the largest problem I&#8217;ve run into image testing (besides there being no python API call to render an image and save it, even in foreground mode), is the fact that PIL currently only supports python 2.x.  So, to compensate for this, I&#8217;ve split the image tests into two parts, the rendering test (and everything else that can be done in blender), and the comparing tests, which use PIL.  If I need to, I suppose I could read in the files myself, and use the raw data the files bring in, but I believe that would waste time, and wouldn&#8217;t be as effective as using something like PIL.  The issue than becomes the lack of not being able to render anything and save it in python.  To get around this, I&#8217;m currently saving to a .blend file, using the command line to render the files, although I&#8217;ve run into the problem of getting CTest to run multiple commands in one test, which I&#8217;m looking into.  Another thing I&#8217;m thinking about doing, is getting an exec function for the image.save_as() operator to work.  Oddly enough, it only works when the image screen is up (which, in my opinion, goes against blender&#8217;s non-modal philosophy), or rather, when the image is in the buffer, (which only happens after the user hits f11 or f12 (+ ctrl, or whatever you set to render/show images/animations), and the problem comes because there is no python API call for it.  Oddly enough, in regular mode, the invoke function also works just fine as an exec function, but in background mode, it segfaults.  I&#8217;ve stopped it from segfaulting, but because the value is still null (do to being in the background), it&#8217;s still imposable to actually save the image.  (Although the &#8216;view&#8217; is the image view).  Also, the invoke function still is a bit quirky as an exec function.  So, I&#8217;m thinking it might be possible (because I&#8217;m currently running the tests in the foreground anyway), to just render the images and save them in the python file, which would not only be easier (api call wise anyway), than mucking about with CMake, but make more logical sense, and allow for easy unification of the tests when PIL is supported for python 3.x.</p>
<p>Most of this I&#8217;ve done to test what appears to be rendering problems with viewing hair as &#8216;object&#8217; or &#8216;group&#8217;.  (Which may have been solved, or proven to be a feature rather than a bug, I haven&#8217;t checked the bug tracker for that particular bug for several days).  But, as long as it&#8217;s not a feature, it still would be useful for a regression test.</p>
<p>I did get a chance to look at sphinx documentation, although not very much, and not enough to get anything done.  I doubt I&#8217;ll get to it next week, but I still am keeping this as a back burner project.   (Albeit a very back burner project, it&#8217;s currently more important to me to get the python api up to snuff in background mode).</p>
<p>Finally, today and/or tomorrow, I plan on writing a month in review.  Because I like wordpress&#8217;s editor, I&#8217;ll probably first put it up on my blog (http://leifandersen.net), and shortly post it on my project&#8217;s wiki page: (http://wiki.blender.org/index.php/User:LeifAndersen/GSoC2010)</p>
<p>Next week I do not plan on dealing to much with issue of background mode, except as a back burner project.  I have submitted bug reports, and will be participating with them though.  I may devote a few hours next week to this though.  I also plan on finishing up good image comparison algorithms, and I&#8217;ll put them in my tests module, however, I won&#8217;t be able to use that module until PIL works on python 3.1, but it should make it easier to move the tests.  Except for possible rendering problems, I still believe that hashcode based tests are more effective than render tests, so I&#8217;ll probably work on that a bit.  Finally, I plan on making the structure cleaner.  I may remove the gtest portion altogether, as it&#8217;s not needed, and just in the way, as well as possibly changing the structure of the python tests to a more logical order, rather than simply module level order.  As well as finding a good place to put the CTest commands.</p>
]]></content:encoded>
			<wfw:commentRss>http://leifandersen.net/2010/06/18/blender-gsoc-week-4-status/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nintendo 3DS:  I Wish I Could Play</title>
		<link>http://leifandersen.net/2010/06/18/nintendo-3ds-i-wish-i-could-play/</link>
		<comments>http://leifandersen.net/2010/06/18/nintendo-3ds-i-wish-i-could-play/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 04:30:59 +0000</pubDate>
		<dc:creator>Leif Andersen</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://leifandersen.net/?p=550</guid>
		<description><![CDATA[Just a few days ago, Nintendo released their latest hand held gaming device, the Nintendo 3DS. This pains me. Most people complain about all of the gimmicky things such 3d, I, at this point, don&#8217;t care that it&#8217;s a gimmick, I would just like to see it. Because I have optic nerve hypoplasia, I have [...]]]></description>
			<content:encoded><![CDATA[<p>Just a few days ago, Nintendo released their latest hand held gaming device, the Nintendo 3DS.  This pains me.  Most people complain about all of the gimmicky things such 3d, I, at this point, don&#8217;t care that it&#8217;s a gimmick, I would just like to see it.  Because I have optic nerve hypoplasia, I have very poor optic nerves, in fact, I can&#8217;t even see out of my left eye at all.  This means that any 3d media experience that depends on the viewer having two eyes, simply doesn&#8217;t work for me.  When films are color filtered, I cannot even put on the needed glasses, because I only see the tint on filter provides, meaning that everything has odd colors all over the place.  If the glasses use light polarization, I do have to where the glasses, to remove one image, but it&#8217;s still in 2d, but at least it&#8217;s viewable as a 2d film.  In fact, as far as I know, the only 3d system for me (besides holograms, and actual 3d objects), is head tracking, and displaying the image with proportion to the head of the observer.  The main drawback to this is that only one person can do it at a time.</p>
<p>Now, while the Nintendo 3DS doesn&#8217;t require glasses, it still <a href="http://www.gamepro.com/article/news/214520/how-the-nintendo-3ds-3d-works/">expects the user to have two eyes</a>.  Because I have but the one eye at my disposal, the Nintendo 3DS is not usable to me.</p>
<p>While I am not as outraged as the person in this video, it does encapsulate the spirit of how I feel.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="650" height="389" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="bgcolor" value="#000000" /><param name="flashvars" value="config=http://www.themis-media.com/videos/config/1808-3e4e8fb9403a98545be1e199a2c2adee.js%3Fembed%3D1" /><param name="src" value="http://cdn2.themis-media.com/media/global/movies/player/flowplayer.commercial-3.1.5.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed type="application/x-shockwave-flash" width="650" height="389" src="http://cdn2.themis-media.com/media/global/movies/player/flowplayer.commercial-3.1.5.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="config=http://www.themis-media.com/videos/config/1808-3e4e8fb9403a98545be1e199a2c2adee.js%3Fembed%3D1" bgcolor="#000000"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://leifandersen.net/2010/06/18/nintendo-3ds-i-wish-i-could-play/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
