<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>PySoy Blog</title>
	<link rel="self" href="http://blog.pysoy.org/atom.xml"/>
	<link href="http://blog.pysoy.org/"/>
	<id>http://blog.pysoy.org/atom.xml</id>
	<updated>2012-02-05T20:58:03+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<entry>
		<title type="html">GCI Low Hanging Fruit</title>
		<link href="http://arcriley.blogspot.com/2011/12/gci-low-hanging-fruit.html"/>
		<id>tag:blogger.com,1999:blog-28358787.post-8241363508642992407</id>
		<updated>2011-12-16T12:06:28+00:00</updated>
		<content type="html">&lt;p&gt;I have to admit I'm pretty surprised that at halfway through Google Code-In 2011 only about a quarter of the tasks we posted for the first half have been completed or in-progress.  Further, most of the tasks thus far haven't been coding tasks.&lt;/p&gt;&lt;p&gt;I'm going to publish here a list of what we consider &quot;low hanging fruit&quot;; coding tasks which are fairly easy to get started with.  If you're a student age 13-17 these would be an easy way to earn a Google tshirt and some cash.  All of these tasks deal with OpenGL rendering, usually just arrays for points and lines/triangles which connect the points.  There's a lot of examples in the code already for this and numerous tutorials on the web (such as &lt;a href=&quot;http://nehe.gamedev.net/&quot;&gt;NeHe&lt;/a&gt;).&lt;/p&gt;&lt;dl&gt;&lt;dt&gt;Simple Rendering&lt;/dt&gt;&lt;dd&gt;We have 2 new tasks listed for rendering simple models; &lt;a href=&quot;http://www.google-melange.com/gci/task/view/google/gci2011/7237313&quot;&gt;Camera&lt;/a&gt; and &lt;a href=&quot;http://www.google-melange.com/gci/task/view/google/gci2011/7234264&quot;&gt;Light&lt;/a&gt;.  Camera is very simple, while Light can be as simple or complex as you want to make it.&lt;/dd&gt;&lt;dt&gt;Shapes Rendering&lt;/dt&gt;&lt;dd&gt;We have 3 tasks for rendering shapes, &lt;a href=&quot;http://www.google-melange.com/gci/task/view/google/gci2011/7127345&quot;&gt;Box&lt;/a&gt;, &lt;a href=&quot;http://www.google-melange.com/gci/task/view/google/gci2011/7229261&quot;&gt;Room&lt;/a&gt;, and &lt;a href=&quot;http://www.google-melange.com/gci/task/view/google/gci2011/7116340&quot;&gt;Sphere&lt;/a&gt;.  Any of these could be knocked out in a few hours even without prior OpenGL knowledge.&lt;/dd&gt;&lt;dt&gt;Joints Rendering&lt;/dt&gt;&lt;dd&gt;We have 6 new tasks up for rendering joints; &lt;a href=&quot;http://www.google-melange.com/gci/task/view/google/gci2011/7228305&quot;&gt;Ball&lt;/a&gt;, &lt;a href=&quot;http://www.google-melange.com/gci/task/view/google/gci2011/7245257&quot;&gt;Fixed&lt;/a&gt;, &lt;a href=&quot;http://www.google-melange.com/gci/task/view/google/gci2011/7228304&quot;&gt;Hinge&lt;/a&gt;, &lt;a href=&quot;http://www.google-melange.com/gci/task/view/google/gci2011/7238256&quot;&gt;Piston&lt;/a&gt;, &lt;a href=&quot;http://www.google-melange.com/gci/task/view/google/gci2011/7230270&quot;&gt;Slider&lt;/a&gt;, and &lt;a href=&quot;http://www.google-melange.com/gci/task/view/google/gci2011/7233301&quot;&gt;Universal&lt;/a&gt;.  Joints (soy.joints) connect two bodies such that they can only move in respect to each other in a certain way, such as a door hinge or piston.  These are all &lt;a href=&quot;http://opende.sourceforge.net/wiki/index.php/Manual_%28Joint_Types_and_Functions%29#Joint_parameter_setting_functions&quot;&gt;documented&lt;/a&gt; with graphic depictions.  This is slightly more complex than the simple rendering tasks (above) in that there's two pieces to each joint and they can be rendered as either wireframe or solid (with provided materials).&lt;/dd&gt;&lt;/dl&gt;As always, we're on IRC if a student wants to discuss these or other tasks.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28358787-8241363508642992407?l=arcriley.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Arc Riley</name>
			<email>noreply@blogger.com</email>
			<uri>http://arcriley.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Arc's Soy Machine</title>
			<link rel="self" href="http://arcriley.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-28358787</id>
			<updated>2012-02-05T15:49:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">PyTTY 0.3</title>
		<link href="http://arcriley.blogspot.com/2011/12/pytty-03.html"/>
		<id>tag:blogger.com,1999:blog-28358787.post-1209438369849206793</id>
		<updated>2011-12-14T00:27:30+00:00</updated>
		<content type="html">&lt;p&gt;Continuing my annual end-of-year coding sprint, I just released PyTTY 0.3.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.pytty.org/&quot;&gt;PyTTY&lt;/a&gt; is a Python serial communication package I started last year after a friend said he couldn't use &lt;a href=&quot;http://python.org/&quot;&gt;Python&lt;/a&gt; 3 yet because pyserial wasn't ported.  The point of writing this was to show him that he didn't need an ancient, bloated, poorly-maintained package to do something as simple as serial communication.&lt;/p&gt;&lt;p&gt;What I wrote over an afternoon turned out to be a little over 100 lines of fairly useful code which I've since used in quite a few microcontroller projects (eg, &lt;a href=&quot;http://www.arduino.cc/&quot;&gt;Arduino&lt;/a&gt;).  Its by no means complete, the only setting is baud rate and there's no Windows support, but its done everything I've needed it to over the last year.  The only problem that's been reported is poor documentation which this release aims to fix.  It includes a short code example (&quot;pydoc pytty.TTY&quot;) which runs on both legacy Python and Python 3.&lt;/p&gt;&lt;p&gt;PyTTY 0.3 is under 135 lines of pure Python and relies only on the Python standard library.  If there's a feature you need which this doesn't have either email me a patch or a feature request so I can add it.  The &lt;a href=&quot;http://mercurial.selenic.com/&quot;&gt;Mercurial&lt;/a&gt; repository is &lt;a href=&quot;http://hg.pytty.org/pytty&quot;&gt;http://hg.pytty.org/pytty&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28358787-1209438369849206793?l=arcriley.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Arc Riley</name>
			<email>noreply@blogger.com</email>
			<uri>http://arcriley.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Arc's Soy Machine</title>
			<link rel="self" href="http://arcriley.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-28358787</id>
			<updated>2012-02-05T15:49:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">NodeTree 0.2 Released</title>
		<link href="http://arcriley.blogspot.com/2011/12/nodetree-02-released.html"/>
		<id>tag:blogger.com,1999:blog-28358787.post-3369351492720751137</id>
		<updated>2011-12-08T12:05:03+00:00</updated>
		<content type="html">&lt;p&gt;I just shipped &lt;a href=&quot;http://nodetree.org/&quot;&gt;NodeTree&lt;/a&gt; 0.2.&lt;/p&gt;&lt;p&gt;This version will not parse an XML stream.  All it contains are some basic types representing XML nodes such as &lt;code&gt;Comment&lt;/code&gt;, &lt;code&gt;Document&lt;/code&gt;, and &lt;code&gt;Element&lt;/code&gt;.  As promised, text is also handled as a node but uses standard Python strings (UTF-8 strings/bytes and unicode).  These should all be fairly intuitive to use.&lt;/p&gt;&lt;p&gt;The magic is the XML data is being managed in C using a libxml2 DOM tree but accessed through a Pythonic object-oriented API.  For example, in DOM each node may have exactly one parent - in NodeTree a node may be added to any number of parents with a separate DOM node and context for each.&lt;/p&gt;&lt;p&gt;I started this project because the existing XML packages for &lt;a href=&quot;http://www.python.org/&quot;&gt;Python&lt;/a&gt; proved too difficult to use with &lt;a href=&quot;http://xmpp.org/&quot;&gt;XMPP&lt;/a&gt;.  Fritzy's &lt;a href=&quot;https://github.com/fritzy/SleekXMPP/wiki&quot;&gt;SleekXMPP&lt;/a&gt; uses lxml but had to jump through several hoops to get stream parsing to work, looking over his work I certainly didn't want to repeat it with &lt;a href=&quot;http://concordance-xmpp.org/&quot;&gt;Concordance-XMPP&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Beyond this the leading XML API for Python, ElementTree, includes several unfortunate design decisions that make it frustrating to use in the best cases and unusable in others.  A full list of why can be left for another time, but the difference to NodeTree can be described in their names - ElementTree is a tree of XML Element nodes with other kinds of nodes either silently dropped, mangled, or made available in bizarre ways (eg, .text and .tail).  In contrast, NodeTree provides XML data as a tree of nodes &lt;i&gt;starting with the Document node&lt;/i&gt; and includes comment and text nodes in its tree.  I plan to provide 100% XML 1.0 support in a future release while maintaining a clean, simple, and intuitive API.&lt;/p&gt;&lt;p&gt;Storing XML data in libxml2 DOM format gives us a few advantages over other XML libraries.  First, we'll have XPath, XInclude, and XSLT available without having to convert the data between formats.  Second, Python objects only need to be created for nodes Python wants a reference to so when we get to parsing data this will happen much faster and with less memory.&lt;/p&gt;&lt;p&gt;At version 0.2 NodeTree is still in its infancy but some of its API can be demonstrated.  Here's a short example:&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;Python 3.2.2 (default, Oct  3 2011, 00:20:58) &lt;br /&gt;[GCC 4.5.2] on linux2&lt;br /&gt;Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.&lt;br /&gt;&gt;&gt;&gt; import nodetree&lt;br /&gt;&gt;&gt;&gt; doc = nodetree.Document()&lt;br /&gt;&gt;&gt;&gt; doc.append(nodetree.Comment(' Start '))&lt;br /&gt;&gt;&gt;&gt; doc.append(nodetree.Element('data'))&lt;br /&gt;&gt;&gt;&gt; doc.append(nodetree.Comment(' Fini '))&lt;br /&gt;&gt;&gt;&gt; doc[1].attributes['thing'] = 'normal'&lt;br /&gt;&gt;&gt;&gt; doc[1].append(nodetree.Element('record'))&lt;br /&gt;&gt;&gt;&gt; doc[1][0].append('First') &lt;br /&gt;&gt;&gt;&gt; doc[1].append(nodetree.Element('record'))&lt;br /&gt;&gt;&gt;&gt; doc[1][1].append('Second')&lt;br /&gt;&gt;&gt;&gt; doc&lt;br /&gt;&amp;lt;?xml version=&quot;1.0&quot;?&amp;gt;&lt;br /&gt;&amp;lt;!-- Start --&amp;gt;&lt;br /&gt;&amp;lt;data thing=&quot;normal&quot;&amp;gt;&lt;br /&gt;  &amp;lt;record&amp;gt;First&amp;lt;/record&amp;gt;&lt;br /&gt;  &amp;lt;record&amp;gt;Second&amp;lt;/record&amp;gt;&lt;br /&gt;&amp;lt;/data&amp;gt;&lt;br /&gt;&amp;lt;!-- Fini --&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;NodeTree 0.2 is tested to work with Python 2.6, 2.7, 3.1, 3.2, and 3.3-pre.  The next release is intended to support basic file and stream parsing.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28358787-3369351492720751137?l=arcriley.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Arc Riley</name>
			<email>noreply@blogger.com</email>
			<uri>http://arcriley.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Arc's Soy Machine</title>
			<link rel="self" href="http://arcriley.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-28358787</id>
			<updated>2012-02-05T15:49:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">XMPP on the web</title>
		<link href="http://arcriley.blogspot.com/2011/12/xmpp-on-web.html"/>
		<id>tag:blogger.com,1999:blog-28358787.post-635684739293847958</id>
		<updated>2011-12-03T20:55:59+00:00</updated>
		<content type="html">&lt;p&gt;A &lt;a href=&quot;https://plus.google.com/109741359399131092509/posts/L9zcgcjzVsL&quot;&gt;short thread on G+&lt;/a&gt; has prompted this longer sharing of my vision for &lt;a href=&quot;http://xmpp.org/&quot;&gt;XMPP&lt;/a&gt; on the web.&lt;/p&gt;&lt;p&gt;For XMPP use on a website we currently have &lt;a href=&quot;http://xmpp.org/extensions/xep-0206.html&quot;&gt;BOSH&lt;/a&gt; and, in an extreme-alpha state, &lt;a href=&quot;http://tools.ietf.org/html/draft-moffitt-xmpp-over-websocket-00&quot;&gt;XMPP over websockets&lt;/a&gt;.  The advantage of websockets is obvious, BOSH is a high overhead protocol that we'd all rather not have to use, however both have the same problem: you either must share your login credentials (and thus access to your account) with every website you use a single account with, or must create a new account (JID) for every XMPP-based website you use.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://oauth.net/2/&quot;&gt;Oauth2&lt;/a&gt; for XMPP might be a partial solution to this by requiring your authorization through a central identity site and using the resulting token for logging in, however, you're still opening yourself up to the 3rd party website accessing your roster, sending spam messages on your behalf, and potentially worse.  All this really gives you is the ability to later disable access to websites who misuse your account.&lt;/p&gt;&lt;p&gt;This is the crux of the issue: when using an Javascript library provided by a website and using a proxy provided by that website, whether BOSH, websockets, or otherwise, you're giving that website unlimited access to your account.  I have not seen a workable proposal to solve this and until this is solved XMPP cannot see widespread use on the web.&lt;/p&gt;&lt;p&gt;I'm proposing that we solve this by putting XMPP in the browser, either directly or through a plugin.  Expose a standard javascript API for allowing websites to use an XMPP connection along with a security model which gives users control as to what a website is allowed to use their connection for.  Ie, if a script on a website wants access to their roster the user will be prompted for it, if they want to join a MUC room display a standard prompt for that.  Browsers can have multiple XMPP sessions at once and allow the user to select which account they'd like to use with an XMPP-enabled site.&lt;/p&gt;&lt;p&gt;This is just some early ideas, I'm nowhere near implementing this though I think the conversation would be useful to get started.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28358787-635684739293847958?l=arcriley.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Arc Riley</name>
			<email>noreply@blogger.com</email>
			<uri>http://arcriley.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Arc's Soy Machine</title>
			<link rel="self" href="http://arcriley.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-28358787</id>
			<updated>2012-02-05T15:49:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">OpenGL ES support complete</title>
		<link href="http://arcriley.blogspot.com/2011/11/opengl-es-support-complete.html"/>
		<id>tag:blogger.com,1999:blog-28358787.post-732662806970378169</id>
		<updated>2011-11-28T02:04:56+00:00</updated>
		<content type="html">&lt;p&gt;The experimental branch, where the OpenGL ES migration was being done, has just been closed and merged into the default branch of &lt;a href=&quot;http://www.pysoy.org/&quot;&gt;PySoy&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Thanks to Steve Anton, one of our &lt;a href=&quot;http://code.google.com/gci&quot;&gt;Google Code-In 2011&lt;/a&gt; students, for some of the last bits of work to complete the merge.  We are now one step closer to mobile support!  If you're a student ages 13-17 and would like to earn a Google tshirt and some cash by helping us with Android support, sign up for Google Code-In and claim &lt;a href=&quot;http://www.google-melange.com/gci/task/view/google/gci2011/7129341&quot;&gt;this task&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28358787-732662806970378169?l=arcriley.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Arc Riley</name>
			<email>noreply@blogger.com</email>
			<uri>http://arcriley.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Arc's Soy Machine</title>
			<link rel="self" href="http://arcriley.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-28358787</id>
			<updated>2012-02-05T15:49:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Google Code-In 2011 is Open</title>
		<link href="http://arcriley.blogspot.com/2011/11/google-code-in-2011-is-open.html"/>
		<id>tag:blogger.com,1999:blog-28358787.post-3103335143049011759</id>
		<updated>2011-11-21T04:49:33+00:00</updated>
		<content type="html">&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;http://media.pysoy.org/img/gci_logo_2011.jpg&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://media.pysoy.org/img/gci_logo_2011.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Google Code-In has officially begun!&lt;br /&gt;&lt;br /&gt;From today through January 16th students age 13-17 can earn up to &lt;b&gt;$500&lt;/b&gt; working on small tasks for software projects such as &lt;a href=&quot;http://www.moinmoin.org/&quot;&gt;MoinMoin&lt;/a&gt;, &lt;span class=&quot;proflinkWrapper&quot;&gt;&lt;span class=&quot;proflinkPrefix&quot;&gt;&lt;/span&gt;&lt;a class=&quot;proflink&quot; href=&quot;http://www.sympy.org/&quot;&gt;SymPy&lt;/a&gt;&lt;/span&gt;, and &lt;a href=&quot;http://www.pysoy.org/&quot;&gt;PySoy&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;Tasks include coding, documentation, graphic design, video production, testing, translation, research, public speaking, and many other kinds of challenges of varying difficulty.&lt;br /&gt;&lt;br /&gt;Completing just one task earns a student a Google tshirt.  Every 3 tasks they complete earns them $100, and the 10 top students worldwide will earn an all-expense paid trip to Mountain View, CA to receive an award at Google.&lt;br /&gt;&lt;br /&gt;PySoy has over 75 tasks offered for the first half of the program and another 75-100 will be made available December 16th.  Our mentors are on &lt;a href=&quot;http://www.freenode.net/&quot;&gt;Freenode&lt;/a&gt; channel &lt;a class=&quot;ot-hashtag&quot; href=&quot;http://www.pysoy.org/&quot;&gt;#PySoy&lt;/a&gt; ready to help students start earning their tshirt and cash today.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.google-melange.com/&quot;&gt;Sign up&lt;/a&gt; today and get started!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28358787-3103335143049011759?l=arcriley.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Arc Riley</name>
			<email>noreply@blogger.com</email>
			<uri>http://arcriley.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Arc's Soy Machine</title>
			<link rel="self" href="http://arcriley.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-28358787</id>
			<updated>2012-02-05T15:49:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Rugby season nearly over, getting back to work</title>
		<link href="http://arcriley.blogspot.com/2011/11/rugby-season-nearly-over-getting-back.html"/>
		<id>tag:blogger.com,1999:blog-28358787.post-750959451615879213</id>
		<updated>2011-11-10T01:15:57+00:00</updated>
		<content type="html">Wow its been a long time.&lt;p&gt;We wrapped up &lt;a href=&quot;http://socghop.appspot.com/gsoc/homepage/google/gsoc2011&quot;&gt;Google's Summer of Code 2011&lt;/a&gt; in August.  The &lt;a href=&quot;http://python.org/&quot;&gt;Python Software Foundation&lt;/a&gt; did wonderfully overall, for &lt;a href=&quot;http://www.pysoy.org/&quot;&gt;PySoy&lt;/a&gt; 6 of our 7 students passed.  A great year overall - thanks to all the mentors and students!&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://blog.pysoy.org/images/ArcGettingSchooled-small.jpg&quot; align=&quot;right&quot; width=&quot;200&quot; height=&quot;150&quot; alt=&quot;Five man scrum vs Warrington&quot; /&gt;Rugby has been a life changer for me.  My first game was in September, after floating in and out of practice for years and training pretty heavily since April.  No serious injuries, but no shortage of pain; I've frequently needed to sleep in a reclining chair to keep blood from pooling in my shoulders and nurse bruised ribs, dislocated fingers and toes, shin splints, and pulled muscles everywhere.  All so worth it.&lt;/p&gt;&lt;p&gt;These guys are like family to me.  I know it sounds sappy, but I've come to trust the men in my pack with my life - in a way we all do every time we bind onto each other a scrum.  Its not that big of an adjustment culturally though due to the large number of programmers, lawyers, and IT professionals on the team.  When you work behind a desk all day its nice to balance it out with a physically intensive training in the evening and games on Saturday.&lt;/p&gt;&lt;p&gt;&lt;br clear=&quot;both&quot; /&gt;&lt;img src=&quot;http://blog.pysoy.org/images/renegades-hellfest2011.jpg&quot; align=&quot;center&quot; width=&quot;400&quot; height=&quot;250&quot; alt=&quot;Renegades Reds at Hellfest 2011&quot; /&gt;&lt;/p&gt;&lt;p&gt;The climax of the season was Hellfest October 29th in Dallas, TX.  &lt;a href=&quot;http://dcrugby.com/&quot;&gt;Washington Renegades&lt;/a&gt; brought our B-side to compete and returned with the 1st place trophy.  My teammate &lt;a href=&quot;http://www.jimbo.info/weblog/?p=1996&quot;&gt;Jimbo&lt;/a&gt; has more pics on his blog of the tournament, I was wearing #23 as tighthead prop.&lt;/p&gt;&lt;p&gt;We have two more games this season before we settle in for the Winter and indoor off-season training at the gym.  A group of us plan to do a 8-week program run by &lt;a href=&quot;http://web.usarugby.org/cgi-bin/viadesto/natteams/mnt/15ProfileDetail.pl?playerId=368&quot;&gt;a professional rugby player&lt;/a&gt; this Winter to get ready for the Spring season and the &lt;a href=&quot;http://www.binghamcup.com/&quot;&gt;Bingham Cup 2012&lt;/a&gt; in Manchester UK next June.&lt;/p&gt;&lt;p&gt;Today the PySoy project was accepted to &lt;a href=&quot;http://code.google.com/gci&quot;&gt;Google Code-In&lt;/a&gt;.  We've got a number of &lt;a href=&quot;http://www.pysoy.org/wiki/CodeIn/2011&quot;&gt;student tasks&lt;/a&gt; lined up, with many more being worked on for the first batch set to release in less than two weeks.  Interested students should hop on &lt;a href=&quot;http://www.freenode.net/&quot;&gt;Freenode&lt;/a&gt; (#PySoy) and get oriented before the program starts so they're ready to jump right into their first task!&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28358787-750959451615879213?l=arcriley.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Arc Riley</name>
			<email>noreply@blogger.com</email>
			<uri>http://arcriley.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Arc's Soy Machine</title>
			<link rel="self" href="http://arcriley.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-28358787</id>
			<updated>2012-02-05T15:49:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Post Gsoc musings</title>
		<link href="http://aneeksview.blogspot.com/2011/08/post-gsoc-musings.html"/>
		<id>tag:blogger.com,1999:blog-7950945591602024170.post-8334393024163988524</id>
		<updated>2011-08-30T20:39:00+00:00</updated>
		<content type="html">&lt;!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } 	--&gt;&lt;p&gt;It's been a long time since I last blogged. And yes my gsoc got over officially and successfully on 26th. So, I thought of this to be a nice occasion to blog.&lt;/p&gt;  &lt;p&gt;I got a really nice oppportunity to work on a game engine still in its nascent stages and observe all the hurdles and problems related to creating such an engine when I got into the gsoc program under python software foundation this april. And yes I experienced all those showstoppers. But due to enormous help from my mentor Arc and google, I was able to surpass them.&lt;/p&gt; &lt;p&gt;To begin with the tale, I was supposed to create a controller for wiimotes to be used with &lt;a href=&quot;http://pysoy.org&quot;&gt;PySoy&lt;/a&gt;. But this first involved getting the wiimote communicate with the PC. A wiimote communicates via bluetooth. I googled a lot about this communication and found out that it was almost fully reverse engineered. The best place to visit regarding all this revengs would be wiibrew.org. However, I didn't want to delve into sockets and all considering there were ready-made libraries for wiimote communication. I did a study of all those libraries. I found two libraries that seemed to catch my eye and thus suit for this purpose. One of them was cwiid and the other wiiuse. Cwiid seemed to be the most popular considering its packages in all major linux distros. So, I went forward with cwiid (I would regret this later). Having decided upon the library, next step was to figure out how to use it in the game engine. Since, the backend of our engine(libsoy) was being written in vala and genie (abstractions over C and gobject based), I had to write the vala apis of each non-gobject C library I used. For me, there were two: cwiid and bluez. I spent the first fifteen days understanding the concept of vala apis, and writing vala apis(vapis) for cwiid and bluez. At the end of this period, I was able to write code in Genie(pythonic form of vala) and connect to a wiimote. In the next period that lasted upto the mid-term evaluations, I created various examples to leverage the functions of the library with our game engine. One example allowed to control a cube via the accelerometer though it wasn't calibrated properly. Another allowed to control the same cube via the buttons on the wiimote. However, the technique used to control the cube was to query the wiimote every time for state information and use it to move the cube. As is clear, this wasn't a nice method. Near the end of this period, I started to correct this and write callback functions to act as interrupts for events happening on the wiimote. However, Due to a possible race condition I got stuck on a segmentation fault. Arc suggested to create a separate thread for  non-window controller events. I embarked on that. However, in a discussion with Arc later, we discovered that the library cwiid was already using three threads inside it and had a lot of redundant code as well. That's when I had to take tough decision to dump cwiid and do something else.  &lt;/p&gt; &lt;p&gt;            At this point, Arc started taking great interest in my project and found out that another gsoc student David herrmann was working on writing a bluez driver for wiimote. He even got him on Google+. There we checked out his kernel driver and bluez plugin which were all working great (Kudos to him). The good part about it was that this made the wiimote directly accessible by the x11 xinput2 (something that allows multiple pointers and cursors on the same screen). Also in the meantime, Arc made the major decision to dump Gdk for windowing and is currently using vanilla x11 with egl on top (this is currently in experimental). At this very time, I did my first custom kernel compilations patched with the kernel driver after which numerous more followed due to some mistakes here and there. When I finally got wiimote pairing with my laptop natively, I started looking into the usage of his kernel driver. Turned out, he had switched off accelerometer and IR pointer information reporting due to large usage of bandwidth and you could switch it on by writing to sysfs files created for the wiimote on pairing. I tried googling on a library to edit sysfs files but turned out they did not need any special library but normal file handling to write to them. Also, Arc wasn't happy with sysfs file editing in the game engine so I resolved upon writing an x.org driver for wiimote to handle all this and also map buttons and handle accelerometer and IR data. Currently, the driver isn't yet complete and I am taking a bit of rest post-gsoc. You can check it out at &lt;a href=&quot;http://hg.pysoy.org/xf86-input-wiimote&quot;&gt;here&lt;/a&gt;. I plan to complete it after my college tests. Meanwhile, to test the IR pointer, I had made a makeshift circuit on a breadboard using some IR emitters from certain obstacle detectors I had from an earlier project.  &lt;/p&gt; &lt;p&gt;            All in all, my gsoc experience was a perfect example of a real-world coding environment filled with all its ups and lows.&lt;/p&gt; &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7950945591602024170-8334393024163988524?l=aneeksview.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Mayank Singh</name>
			<email>noreply@blogger.com</email>
			<uri>http://aneeksview.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Through a neek's eyes</title>
			<link rel="self" href="http://aneeksview.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-7950945591602024170</id>
			<updated>2012-02-05T18:17:06+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Less than a week</title>
		<link href="http://anthuswilliams.blogspot.com/2011/08/less-than-week.html"/>
		<id>tag:blogger.com,1999:blog-3417392517938330405.post-4815828678665356534</id>
		<updated>2011-08-16T16:47:57+00:00</updated>
		<content type="html">&lt;div class=&quot;posterous_autopost&quot;&gt;&lt;p&gt;With less than a week the firm &quot;pencils down&quot; date, I'm feeling a little disappointed in where my project is. I'm at the point where mesh morphs are operational (albeit buggy), with what I consider is a solid and simple API.&lt;/p&gt;&lt;div class=&quot;CodeRay&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre&gt; mesh = soy.models.Mesh()
&lt;br /&gt; mesh.size = 6
&lt;br /&gt; mesh[0] = face //a soy.atoms.Face object
&lt;br /&gt; // repeat for mesh[1] through mesh[5]
&lt;br /&gt; clone = mesh.clone()
&lt;br /&gt; //clone is a Mesh object that can be rendered in its own right, if it is bound to a body
&lt;br /&gt; //change the face and vertex data for clone[0] through clone[5]
&lt;br /&gt; target = soy.models.Target(mesh)
&lt;br /&gt; morph = mesh.morph(clone,0.5) //mesh.morph(variantMesh,delta) spins off a soy.atoms.Morph object
&lt;br /&gt; target.morphs.add(morph)
&lt;br /&gt; //now you bind target to a soy.bodies.Body, and when its render() method is called, it will apply all its morphs at their given deltas
&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Rendering has not been done yet for Mesh, and this process will be complicated on the back-end once we perform optimization. Basically we have to maintain the public vertex ordering while shifting vertices around on the backend so that OpenGL can render faces that have the same material consecutively (having to switch between materials needlessly is costly). This is already done for getters and setters for Mesh, but not honored by clone(), soy.atoms.Morph, or by the Target constructor.&lt;/p&gt;&lt;p&gt;Odds are this process won't even be &lt;em&gt;kind of&lt;/em&gt; complete by pencils down, but I would expect something more fully functional by PyCon.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3417392517938330405-4815828678665356534?l=anthuswilliams.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>anthuswilliams</name>
			<email>noreply@blogger.com</email>
			<uri>http://anthuswilliams.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Anthus Williams</title>
			<link rel="self" href="http://anthuswilliams.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-3417392517938330405</id>
			<updated>2012-02-05T12:41:04+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Final week</title>
		<link href="http://fzzbt.blogspot.com/2011/08/final-week.html"/>
		<id>tag:blogger.com,1999:blog-2554411293486727687.post-5505685380409723749</id>
		<updated>2011-08-15T08:15:40+00:00</updated>
		<content type="html">Today starts the final week of GSOC.&lt;br /&gt;Yesterday was supposed to be a &quot;pencils down&quot; day, so I won't be implementing any new features to 2DSide any more. I will spend the remaining week on porting all my changes in default branch to experimental and hopefully to write python bindings for everything I have done in pysoy side. If time permits, I will try to write a small example program in python for the 2Dside class.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/2554411293486727687-5505685380409723749?l=fzzbt.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>fzzbt</name>
			<email>noreply@blogger.com</email>
			<uri>http://fzzbt.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">fzzbt's PySoy 2011 GSOC blog</title>
			<link rel="self" href="http://fzzbt.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-2554411293486727687</id>
			<updated>2012-02-04T00:05:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">One week to &quot;pencils down&quot;</title>
		<link href="http://anthuswilliams.blogspot.com/2011/08/one-week-to-down.html"/>
		<id>tag:blogger.com,1999:blog-3417392517938330405.post-7344287913614036345</id>
		<updated>2011-08-09T13:23:40+00:00</updated>
		<content type="html">&lt;div class=&quot;posterous_autopost&quot;&gt;We have a little less than a week until the soft &quot;pencils down&quot;  deadline. In theory, we are supposed to spend the remaining time after  that point doing cleanup, documentation, etc. In practice, that will  hardly be the case. The firm &quot;pencils down&quot; deadline is two weeks away.  I'm on track to have the basic morph completed by Thursday. Then I will  spend the weekend figuring out a basic keyframe pattern using atomics.  Then the final week will be spent working on Mesh itself -- e.g. on  rendering and optimization, which still has not been done.&lt;br /&gt;At  first our thinking was that a morph target is a type of model. One would  render the target instead of rendering the original mesh. That idea is  incorrect because it makes it difficult to apply multiple morphs to the  same mesh.&lt;br /&gt;The direction I've been going is this: you create a  morph atom, which is calculated as the difference between two meshes.  Mesh has to honor a public array of vertices as it is (even though it  will be performing optimizations behind the scenes), so we assume the  public ordering is valid for both methods. This means for any given  vertex, mesh A contains that vertex's position, normal, etc. when the  morph is at 0.0, and mesh B contains that information when the morph is  at 1.0.&lt;br /&gt;Then you can specify a delta, between 0.0 and 1.0, and the  atom computes the vertex interpolation. Then you bind the morph atom  (which is basically a matrix of values to be added) to the original  mesh. This means that rendering is done on the original mesh, rather  than a target model, and multiple morph atoms can be added to a single  mesh.p&lt;br /&gt;Animation is a little more difficult problem, but expressing morph as an atomic makes it more tractable. I'm thinking the morph atom will have an optional property (some sort of soy.atoms.Keyframe), which basically expresses what the transformation matrix will look like at some point in the future. Then as we step through the thread, we compute the matrix by multiplying the delta by the ratio between the current time and the keyframe. This could get costly if we are generating new objects every time, but it should work, especially if we have an OpenGL VBO doing the actual work of applying the matrices for us.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3417392517938330405-7344287913614036345?l=anthuswilliams.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>anthuswilliams</name>
			<email>noreply@blogger.com</email>
			<uri>http://anthuswilliams.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Anthus Williams</title>
			<link rel="self" href="http://anthuswilliams.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-3417392517938330405</id>
			<updated>2012-02-05T12:41:04+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Finally, scroll is done.</title>
		<link href="http://amaurymedeiros.blogspot.com/2011/08/finally-scroll-is-done.html"/>
		<id>tag:blogger.com,1999:blog-517959919414105718.post-1740325937605942968</id>
		<updated>2011-08-06T18:19:03+00:00</updated>
		<content type="html">It's been a while since the last time I posted here. I spent this time to continue working on VScroll and HScroll. Good news: they're ready. I've read a &lt;a href=&quot;http://glprogramming.com/red/chapter03.html&quot;&gt;chapter of the Red Book of OpenGL&lt;/a&gt; that helped me a lot on the implementation of Scrollers. The most annoying part of that is OpenGL uses a different coordinates system from the usual.&lt;br /&gt;&lt;br /&gt;After some reading and testing, I solved the problem I was having in the last post using glOrtho. The results can be seen on the pictures below. The next step is beggining the implementation of collapsible branches.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-e7Fd5I0weLE/Tj3Zzgf0UMI/AAAAAAAAAJc/d56fRStz-Q8/s1600/working1.png&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; width=&quot;312&quot; src=&quot;http://2.bp.blogspot.com/-e7Fd5I0weLE/Tj3Zzgf0UMI/AAAAAAAAAJc/d56fRStz-Q8/s320/working1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-FJU6iYi-wNk/Tj3Z3XCxVPI/AAAAAAAAAJk/5OFv1cz81O0/s1600/working2.png&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; width=&quot;314&quot; src=&quot;http://2.bp.blogspot.com/-FJU6iYi-wNk/Tj3Z3XCxVPI/AAAAAAAAAJk/5OFv1cz81O0/s320/working2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/517959919414105718-1740325937605942968?l=amaurymedeiros.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Amaury</name>
			<email>noreply@blogger.com</email>
			<uri>http://amaurymedeiros.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Amaury Medeiros</title>
			<link rel="self" href="http://amaurymedeiros.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-517959919414105718</id>
			<updated>2012-02-05T19:45:04+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">fields update</title>
		<link href="http://fzzbt.blogspot.com/2011/08/fields-update.html"/>
		<id>tag:blogger.com,1999:blog-2554411293486727687.post-1394026447635157737</id>
		<updated>2011-08-02T12:39:45+00:00</updated>
		<content type="html">quick update about fields: I have now managed to port fields to libsoy almost completely, but not quite. This was quite much larger work than I originally thought as much of the stuff in soy.scenes.Scene required for fields (tags, mass, etc.) weren't ported to libsoy either, so porting those has taken quite much time. I have managed to port the fields stuff now mostly, but I still have some issues actually using them in soy.scenes.Scene as the original code in pysoy seemed to be partially broken as well (it was commented out completely). I'm trying to work up a demo program to test fields now and I hope to get it working soonish as soon as I figure out this little problem.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/2554411293486727687-1394026447635157737?l=fzzbt.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>fzzbt</name>
			<email>noreply@blogger.com</email>
			<uri>http://fzzbt.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">fzzbt's PySoy 2011 GSOC blog</title>
			<link rel="self" href="http://fzzbt.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-2554411293486727687</id>
			<updated>2012-02-04T00:05:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">eglib</title>
		<link href="http://anthuswilliams.blogspot.com/2011/07/eglib.html"/>
		<id>tag:blogger.com,1999:blog-3417392517938330405.post-4666844727030650738</id>
		<updated>2011-07-29T01:04:42+00:00</updated>
		<content type="html">&lt;div class=&quot;posterous_autopost&quot;&gt;&lt;p&gt;Not much interesting in the way of updates this week. PySoy is facing a bit of a transitional period. We're wanting to move away from GTK 2.x, because gtkglext does not support nVidia cards, among other reasons. But the question has been -- moving where? We toyed with GTK 3 but we need something with better bluetooth support, etc. Clutter was an option but seems to be no good because it does not support OpenGL features like cubemapping, which will become very important to us.&lt;/p&gt;  &lt;p&gt;So now it looks like we are going to be writing our own library to work with EGL. It's called eglib. It sounds like an interesting proposition, but I worry that it may be increasing the scope of our project beyond our ability to quickly roll out. We'll see what happens.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3417392517938330405-4666844727030650738?l=anthuswilliams.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>anthuswilliams</name>
			<email>noreply@blogger.com</email>
			<uri>http://anthuswilliams.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Anthus Williams</title>
			<link rel="self" href="http://anthuswilliams.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-3417392517938330405</id>
			<updated>2012-02-05T12:41:04+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Transcoding FLAC to Ogg Vorbis</title>
		<link href="http://arcriley.blogspot.com/2011/07/transcoding-flac-to-ogg-vorbis.html"/>
		<id>tag:blogger.com,1999:blog-28358787.post-8393596358534702662</id>
		<updated>2011-07-21T12:46:50+00:00</updated>
		<content type="html">Last night I hit a dilemma; a very old CD I ripped to FLAC and now can't find was playable only on certain players, not my Android phone (despite FLAC support) and behaving strange on many desktop players.&lt;br /&gt;&lt;br /&gt;Usually I just use something like &lt;code&gt;oggenc -q 4 *.flac&lt;/code&gt; since vorbis-tools supports FLAC as a source format (and preserves metadata like artist, title, etc).  Strangely, oggenc didn't recognize the files in this album.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://gstreamer.freedesktop.org/&quot;&gt;GStreamer&lt;/a&gt; to the rescue; &lt;code&gt;for file in *.flac; do gst-launch-0.10 filesrc location=&quot;$file&quot; ! decodebin ! audioconvert ! vorbisenc quality=0.4 ! oggmux ! filesink location=&quot;$file.ogg&quot;; done;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Even though its much slower and more complicated, this should have done the trick.  It didn't, and ogginfo showed that the Ogg muxer in GStreamer has some issues;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;WARNING: granulepos in stream 1 decreases from 218558 to 205632&lt;br /&gt;WARNING: granulepos in stream 1 decreases from 666174 to 655680&lt;br /&gt;WARNING: granulepos in stream 1 decreases from 3150206 to 3142208&lt;br /&gt;WARNING: granulepos in stream 1 decreases from 3605054 to 3597376&lt;br /&gt;WARNING: granulepos in stream 1 decreases from 3828670 to 3822400&lt;br /&gt;WARNING: granulepos in stream 1 decreases from 4741630 to 4733312&lt;br /&gt;WARNING: granulepos in stream 1 decreases from 5636158 to 5630784&lt;br /&gt;WARNING: granulepos in stream 1 decreases from 5858494 to 5854208&lt;br /&gt;WARNING: granulepos in stream 1 decreases from 6096126 to 6090560&lt;br /&gt;WARNING: granulepos in stream 1 decreases from 6317758 to 6314048&lt;br /&gt;WARNING: granulepos in stream 1 decreases from 7668798 to 7665088&lt;br /&gt;WARNING: granulepos in stream 1 decreases from 7902718 to 7898240&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So with GStreamer not an option, I looked at the original FLAC files and found that whatever encoder I used added ID3 tags (which are not part of the FLAC spec).  A quick ID3 removal command stripped these out so oggenc would recognize the files and work;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;find . -name &quot;*.flac&quot; -exec id3v2 --delete-all {} \;&lt;br /&gt;oggenc -q 4 *.flac&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Done.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28358787-8393596358534702662?l=arcriley.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Arc Riley</name>
			<email>noreply@blogger.com</email>
			<uri>http://arcriley.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Arc's Soy Machine</title>
			<link rel="self" href="http://arcriley.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-28358787</id>
			<updated>2012-02-05T15:49:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">The best way isn't always the sexiest</title>
		<link href="http://anthuswilliams.blogspot.com/2011/07/best-way-isn-always-sexiest.html"/>
		<id>tag:blogger.com,1999:blog-3417392517938330405.post-2794242660166529557</id>
		<updated>2011-07-18T13:55:43+00:00</updated>
		<content type="html">&lt;div class=&quot;posterous_autopost&quot;&gt;&lt;p&gt;This week I had to abandon my attempts to develop on Ubuntu. It seems NVidia's Ubuntu drivers lack support for some of the OpenGL calls libsoy's windowing system is making. So I am now developing solely on Mac OS X. My OS X install has X11 support, so after my initial struggle trying to compile libsoy at the beginning of the summer, I've been able to run libsoy almost without a hitch.&lt;/p&gt;  &lt;p&gt;One thing missing, though, is cwiid support. That's fine, since cwiid is an optional dependency for the Wiimote controller. It's easy to set a dependency as optional in wscript: you just add the &quot;Mandatory=false&quot; flag to your conf.check_cfg(). So the configuration doesn't error out. However, the one deceptively difficult issue was in telling waf to avoid compiling the Wiimote.gs controller if cwiid is not installed. So the build breaks.&lt;/p&gt;  &lt;p&gt;I'm the only one really affected by this issue, so I set out to learn a little about Waf (by reading the &lt;a href=&quot;http://www.freehackers.org/~tnagy/wafbook/index.html&quot;&gt;Waf Book&lt;/a&gt;). And I found myself trying all afternoon to make a change that on its surface seems quite simple. There are too many source files to add them to Waf's task generator one by one, and bld.add_subdirs() does not make it easy to add constraints. So I toiled around with extending Waf's TaskGenerator class for a while. Nothing doing. So, failing that, I just used ant_glob to generate a list, and wrote an if statement that removes the file Wiimote.gs from the result, if cwiid cannot be found in the configuration.&lt;/p&gt;  &lt;p&gt;I spent hours trying to build a sexy solution, only to settle for a kludge. It's a lesson I have a hard time learning -- I should have rolled out that little bit of hackery to begin with. Sometimes the best way makes you feel a little dirty, but it's still the best way. Problem solved; onto the next one.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3417392517938330405-2794242660166529557?l=anthuswilliams.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>anthuswilliams</name>
			<email>noreply@blogger.com</email>
			<uri>http://anthuswilliams.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Anthus Williams</title>
			<link rel="self" href="http://anthuswilliams.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-3417392517938330405</id>
			<updated>2012-02-05T12:41:04+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Learning OpenGL</title>
		<link href="http://equipollentinconsistency.blogspot.com/2011/07/learning-opengl.html"/>
		<id>tag:blogger.com,1999:blog-4569923331840098242.post-3438086194935206550</id>
		<updated>2011-07-17T10:43:48+00:00</updated>
		<content type="html">So today and yesterday to a lesser extent, I've been reading the &quot;Red Book&quot; on OpenGL. It's seems long overdue since I'm working on an OpenGL based game engine. I just didn't realize until now how&amp;nbsp;necessary&amp;nbsp;it would be. This way I'll be able to start making commits on the OpenGL side of things. To think that before this summer I thought OpenGL WAS a game engine...derp.&lt;br /&gt;&lt;br /&gt;I hope to get some code done today as well, although I haven't made much headway on implementing scenes as a dictionary. So it will be unrelated to that. It's a little bit over my head to be honest, so it's&amp;nbsp;definitely&amp;nbsp;taking some time to figure out what's what with Mapping Protocol and such, and how it actually would be used in the context necessary to actually get this all to work.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4569923331840098242-3438086194935206550?l=equipollentinconsistency.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sara Foster</name>
			<email>noreply@blogger.com</email>
			<uri>http://equipollentinconsistency.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Equipollent Inconsistency</title>
			<link rel="self" href="http://equipollentinconsistency.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-4569923331840098242</id>
			<updated>2012-02-05T17:13:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Quick update</title>
		<link href="http://fzzbt.blogspot.com/2011/07/quick-update.html"/>
		<id>tag:blogger.com,1999:blog-2554411293486727687.post-7816860814562536086</id>
		<updated>2011-07-14T05:34:33+00:00</updated>
		<content type="html">Managed to fix some bugs in models, atom abuse and ode vapi. Still have not been able implement gravity for 2d bodies. It looks like the solution is not so easy as I thought. Thankfully, Toba&amp;amp;Arc have now suggested me to use, Toba's work, soy.fields to gauge this. Unfortunately, soy.fields have not been ported to libsoy yet, so it looks like I am going to be porting his work to libsoy next.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/2554411293486727687-7816860814562536086?l=fzzbt.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>fzzbt</name>
			<email>noreply@blogger.com</email>
			<uri>http://fzzbt.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">fzzbt's PySoy 2011 GSOC blog</title>
			<link rel="self" href="http://fzzbt.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-2554411293486727687</id>
			<updated>2012-02-04T00:05:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">I have diabetes</title>
		<link href="http://anthuswilliams.blogspot.com/2011/07/i-have-diabetes.html"/>
		<id>tag:blogger.com,1999:blog-3417392517938330405.post-3494890765013137341</id>
		<updated>2011-07-11T23:40:54+00:00</updated>
		<content type="html">&lt;div class=&quot;posterous_autopost&quot;&gt;&lt;p&gt;I have been diagnosed with Type I diabetes. I am the first in my family to have it. It's been a rough ride but on the plus side I now know why I have been so tired and practically non-sentient over the past month. And suddenly having insulin in me makes me feel once again as though I can take on the world.&lt;/p&gt;  &lt;p&gt;The past few months of gradual emaciation has affected a lot more in my life than just GSOC. My odds of failure are tremendously high at this point, for GSOC and other areas of my life. But I'm not so far gone as to believe my actions cannot effect the outcome. There's still ~6 weeks to go, and I plan to do some damage with them.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3417392517938330405-3494890765013137341?l=anthuswilliams.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>anthuswilliams</name>
			<email>noreply@blogger.com</email>
			<uri>http://anthuswilliams.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Anthus Williams</title>
			<link rel="self" href="http://anthuswilliams.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-3417392517938330405</id>
			<updated>2012-02-05T12:41:04+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Week 7</title>
		<link href="http://aneeksview.blogspot.com/2011/07/week-7.html"/>
		<id>tag:blogger.com,1999:blog-7950945591602024170.post-1858113553612851793</id>
		<updated>2011-07-11T15:35:11+00:00</updated>
		<content type="html">So, I have started up on threads which is a completely new topic to me. First I'll have to understand how the threads work internally because I tried running sample thread programs in Gdk and couldn't figure out why a certain command was executing before the other. I have started up on the _ControllerThread.gs and will keep updating as and when I gather more knowledge. After this thread is ready and I figure out how to use this with my wii controller events, I'll be back on track to creating my wii controller api.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7950945591602024170-1858113553612851793?l=aneeksview.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Mayank Singh</name>
			<email>noreply@blogger.com</email>
			<uri>http://aneeksview.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Through a neek's eyes</title>
			<link rel="self" href="http://aneeksview.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-7950945591602024170</id>
			<updated>2012-02-05T18:17:06+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Scenes and Dictionary</title>
		<link href="http://equipollentinconsistency.blogspot.com/2011/07/scenes-and-dictionary.html"/>
		<id>tag:blogger.com,1999:blog-4569923331840098242.post-7968597330215379249</id>
		<updated>2011-07-11T13:02:50+00:00</updated>
		<content type="html">So today I'm working on changing a scene to work as sequences of bodies. As right now there is no way to know which bodies belong to which scene based upon only have the scene as information. Creating an external storage only makes the code using it really messy. I tried this originally before I realized how silly it was to do it that way, when it could be changed in the API to work better. So I asked Arc about it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Originally Arc said it was intended to implement this as a sequence of bodies, but after we talked he came to conclusion that it would be better implemented as a dictionary of bodies. This way bodies can be created outside of a scene, be removed from a scene and essentially exist outside of a scene. (In a void scene which contains all bodies not contained in a scene.) Also with the dictionary it helps reference the various different bodies of different names.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what I'll be doing is looking into Python3's Mapping Protocol, and figure out how to make this all work.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4569923331840098242-7968597330215379249?l=equipollentinconsistency.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sara Foster</name>
			<email>noreply@blogger.com</email>
			<uri>http://equipollentinconsistency.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Equipollent Inconsistency</title>
			<link rel="self" href="http://equipollentinconsistency.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-4569923331840098242</id>
			<updated>2012-02-05T17:13:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">It's scrolling :)</title>
		<link href="http://amaurymedeiros.blogspot.com/2011/07/its-scrolling.html"/>
		<id>tag:blogger.com,1999:blog-517959919414105718.post-7697978707953561235</id>
		<updated>2011-07-10T18:36:43+00:00</updated>
		<content type="html">From the last post to now, I could progress more. After the entire scrollbar appears on the screen, the next step was the scroll itself also appears. So the correct size to the scroll is now being calculated and it's being drawn on the screen (when it's necessary). The color of the scroll is different from the bar, so we can see it better. &lt;br /&gt;&lt;br /&gt;To drag, move and drop the scroll with pointer, I used some previous work from another PySoy student: &lt;a href=&quot;http://fzzbt.blogspot.com/&quot;&gt;Juhani Åhman&lt;/a&gt;. Thank him for it. The limits of the scroll are set, so you can't drag the bar beyond the limits it should be dragged. The pictures below show how HScroll looks right now.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-dygZwssbMXo/ThpCClVhkaI/AAAAAAAAAIs/zGTs36YJwe0/s1600/current1.png&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;247&quot; width=&quot;320&quot; src=&quot;http://4.bp.blogspot.com/-dygZwssbMXo/ThpCClVhkaI/AAAAAAAAAIs/zGTs36YJwe0/s320/current1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-w5PvAy1WIuI/ThpCG59dy3I/AAAAAAAAAI0/WJwX15tRCaQ/s1600/current2.png&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;252&quot; width=&quot;320&quot; src=&quot;http://1.bp.blogspot.com/-w5PvAy1WIuI/ThpCG59dy3I/AAAAAAAAAI0/WJwX15tRCaQ/s320/current2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As you can see, they're not ready. The total content is being displayed but the screen should show just the content that's inside the widget area and as the scroll rolls, the content should change. I'm trying to make those changes to make the widget work as expected. The expected behaviour of the widget can be visualized below.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-DWbIeENct0w/ThpDwL3ilHI/AAAAAAAAAI8/ENYCejuB2mE/s1600/expected1.png&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;247&quot; width=&quot;320&quot; src=&quot;http://3.bp.blogspot.com/-DWbIeENct0w/ThpDwL3ilHI/AAAAAAAAAI8/ENYCejuB2mE/s320/expected1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-YgOyecS9DHw/ThpEhnUBLbI/AAAAAAAAAJE/7DaX0ejSiXg/s1600/expected2.png&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;252&quot; width=&quot;320&quot; src=&quot;http://4.bp.blogspot.com/-YgOyecS9DHw/ThpEhnUBLbI/AAAAAAAAAJE/7DaX0ejSiXg/s320/expected2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Last night and today, Arc made some changes in PySoy properties. He told me to take a look at the widgets I'm writting to see how I'm using them. The result: I made a bit cleanup in the code, changed some attributes' visibility and remove some that were obsolete.&lt;br /&gt;&lt;br /&gt;I'd like to thank my mentor, David, again for the help he's giving me. Mid-term is coming and I think I'll have to change my timeline a bit.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/517959919414105718-7697978707953561235?l=amaurymedeiros.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Amaury</name>
			<email>noreply@blogger.com</email>
			<uri>http://amaurymedeiros.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Amaury Medeiros</title>
			<link rel="self" href="http://amaurymedeiros.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-517959919414105718</id>
			<updated>2012-02-05T19:45:04+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Atomic Cleanup</title>
		<link href="http://equipollentinconsistency.blogspot.com/2011/07/atomic-cleanup.html"/>
		<id>tag:blogger.com,1999:blog-4569923331840098242.post-1167266306489866919</id>
		<updated>2011-07-09T16:22:02+00:00</updated>
		<content type="html">Yesterday (and the day before that as well) I fixed some bugs with HBox and VBox. Today I'm helping Arc with the atomic cleanup of position/color in various files to fit the newly updated Atoms.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4569923331840098242-1167266306489866919?l=equipollentinconsistency.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sara Foster</name>
			<email>noreply@blogger.com</email>
			<uri>http://equipollentinconsistency.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Equipollent Inconsistency</title>
			<link rel="self" href="http://equipollentinconsistency.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-4569923331840098242</id>
			<updated>2012-02-05T17:13:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">OpenGL and Scrollbar</title>
		<link href="http://amaurymedeiros.blogspot.com/2011/07/opengl-and-scrollbar.html"/>
		<id>tag:blogger.com,1999:blog-517959919414105718.post-7090251007883270863</id>
		<updated>2011-07-07T11:33:31+00:00</updated>
		<content type="html">In the previous post, I said the only thing that was missing for V/HScroll widgets was the scrollbar. So I ran into Gtk/Gdk examples to start the bar implementation. After some tests outside PySoy, I decided to try to integrate the example with the PySoy code. I waste some time doing that and discovered I'm not able to do it. &lt;a href=&quot;http://arcriley.blogspot.com/&quot;&gt;Arc Riley&lt;/a&gt; told me I have to implement the bar using OpenGL. &lt;br /&gt;&lt;br /&gt;Then I started to read an OpenGL tutorial. My mentor, David, said me I had to use &lt;a href=&quot;http://en.wikipedia.org/wiki/Vertex_Buffer_Object&quot;&gt;Vertex Buffer Object (VBO)&lt;/a&gt; and told me to look at some examples in PySoy's code. After that, we shared the VScroll file, using &lt;a href=&quot;http://gobby.0x539.de/trac/&quot;&gt;Gobby&lt;/a&gt;, and he explained me a lot about OpenGL and VBO.&lt;br /&gt;&lt;br /&gt;Yesterday (actually today), before I get to sleep, the first version of the bar appeared! It's a blank rectangle, placed on the right side of the widgets. The next step is to configure the viewport correctly and make the scroll actually roll.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/517959919414105718-7090251007883270863?l=amaurymedeiros.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Amaury</name>
			<email>noreply@blogger.com</email>
			<uri>http://amaurymedeiros.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Amaury Medeiros</title>
			<link rel="self" href="http://amaurymedeiros.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-517959919414105718</id>
			<updated>2012-02-05T19:45:04+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Sphere, box, collisions</title>
		<link href="http://fzzbt.blogspot.com/2011/07/sphere-box-collisions.html"/>
		<id>tag:blogger.com,1999:blog-2554411293486727687.post-8937466106127673896</id>
		<updated>2011-07-05T22:08:49+00:00</updated>
		<content type="html">In the last posting I planned to work on new models (box and sphere) and immovable bodies and gravity settings for TDSide.&lt;br /&gt;&lt;br /&gt;I have now implemented new models box and sphere.&lt;br /&gt;These still need changed to use VBO and added to use textures later on, but anyhow they are usable now.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-GzJunv4_nnc/ThPesdZB4FI/AAAAAAAAABw/XrRjWXROZhA/s1600/Screenshot-TDSide+test.png&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;315&quot; src=&quot;http://1.bp.blogspot.com/-GzJunv4_nnc/ThPesdZB4FI/AAAAAAAAABw/XrRjWXROZhA/s400/Screenshot-TDSide+test.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;About immovable bodies, I have figured three ways to create them:&lt;br /&gt;setting new category bits for the body in question (eg.box.shape.geom.SetCategoryBits(&amp;lt;some_unique_integer&amp;gt;), to reverse: box.shape.geom.SetCategoryBits(0)), using a fixed joint to fix the body to the world and just setting the body as null for the geom of the shape of the body (eg. box.shape.geom.SetBody(null), to reverse: box.shape.geom.SetBody(box.body)). The first approach is actually meant for setting &quot;collision categories&quot; for different categories of bodies, so I'm not using that. Fixed joint approach seems to cause some weird slowdowns in my test program so I'm not using that either, but the null body setting approach that is also suggested in the ODE FAQ. Sadly, slowdowns still occur with that too in cases where 2d body with a motor on it to make it move constant velocity collides with an immovable body (eg. player is walking towards a wall). In this case, the body will continue to infinitely collide with the immovable body, thus jamming everything. This needs some kind of special handling that I have not figured out yet.&lt;br /&gt;&lt;br /&gt;About gravity, the Scene class has a method for setting gravity for ALL bodies, but I want to give the 2d object in TDSide their own gravity setting so that they do not interfere with whatever foreground/background (graphical) bodies there might exist. Not sure how to do this easily.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/2554411293486727687-8937466106127673896?l=fzzbt.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>fzzbt</name>
			<email>noreply@blogger.com</email>
			<uri>http://fzzbt.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">fzzbt's PySoy 2011 GSOC blog</title>
			<link rel="self" href="http://fzzbt.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-2554411293486727687</id>
			<updated>2012-02-04T00:05:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Week 6</title>
		<link href="http://aneeksview.blogspot.com/2011/07/week-6.html"/>
		<id>tag:blogger.com,1999:blog-7950945591602024170.post-6928817930541971293</id>
		<updated>2011-07-03T12:09:03+00:00</updated>
		<content type="html">So, this week I had almost completed my controller when I got stuck on an issue of multithreading. The problem came when I tried to trigger an event for button press on wiimote from the main thread (unaware that I was triggering on the main thread). And It must have collided with some other event and I was getting a nasty segmentation fault which wasn't even debuggable in gdb. Arc will help me with writing a new thread for controllers on tuesday.&lt;br /&gt;Before that I had implemented message callback function and used it in wiibuttonTest file. Thus, I was able to print the wiimote button codes as and when they were pressed.&lt;br /&gt;A brief note on how the codes are generated:&lt;br /&gt;1. When you press say button 1: 0001 is generated.&lt;br /&gt;2. If you next press button 2: 0001+0002 is generated.&lt;br /&gt;3. Now if you release button 1: 0002 is generated.&lt;br /&gt;4. And releasing button 2: 0000 is generated.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7950945591602024170-6928817930541971293?l=aneeksview.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Mayank Singh</name>
			<email>noreply@blogger.com</email>
			<uri>http://aneeksview.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Through a neek's eyes</title>
			<link rel="self" href="http://aneeksview.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-7950945591602024170</id>
			<updated>2012-02-05T18:17:06+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">After midsummer &amp;amp; demo</title>
		<link href="http://fzzbt.blogspot.com/2011/06/after-midsummer-demo.html"/>
		<id>tag:blogger.com,1999:blog-2554411293486727687.post-2702734024305702926</id>
		<updated>2011-06-28T20:38:17+00:00</updated>
		<content type="html">Last weekend was midsummer so I didn't get much done over the weekend, but before that worked on the ODE vapi to add param names for stops and motors for joints (namely Plane2D for now). I have now added methods for TDSide to make it easy to move 2D object at constant velocity. I will probably make changes to these, tough.&lt;br /&gt;&lt;br /&gt;There is a small demo program called tdside to test the custom scene.&lt;br /&gt;To run it, follow the normal installation of libsoy:&lt;br /&gt;./waf configure build &amp;amp;&amp;amp; sudo ./waf install&lt;br /&gt;&lt;br /&gt;then run program &quot;tdside&quot; from the command-line (should be on your PATH).&lt;br /&gt;At the moment, you can only collide some boxes to each other on a 2D plane.&lt;br /&gt;&lt;br /&gt;Next, I plan to work on following features:&lt;br /&gt;- Add way to set gravity on 2d bodies on TDSide&lt;br /&gt;- Add way to add immovable bodies on TDSide&lt;br /&gt;- Split TDSide to TDSide and TDOverhead classes (inheriting from TDBase or something)&lt;br /&gt;- Models: Implement soy.models.Sphere and soy.models.Box (like Cube but with customs measurements). (it would be nice to be able to use arbitrary models from, say, blender, but that is really not a priority now)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/2554411293486727687-2702734024305702926?l=fzzbt.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>fzzbt</name>
			<email>noreply@blogger.com</email>
			<uri>http://fzzbt.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">fzzbt's PySoy 2011 GSOC blog</title>
			<link rel="self" href="http://fzzbt.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-2554411293486727687</id>
			<updated>2012-02-04T00:05:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Interactive Console!</title>
		<link href="http://equipollentinconsistency.blogspot.com/2011/06/interactive-console.html"/>
		<id>tag:blogger.com,1999:blog-4569923331840098242.post-6246112424751895197</id>
		<updated>2011-06-28T08:19:12+00:00</updated>
		<content type="html">I found a &lt;a href=&quot;http://writeonly.wordpress.com/2008/09/08/embedding-a-python-shell-in-a-python-script/&quot;&gt;good way&lt;/a&gt; to implement the interactive embedded console for the scene designer! (After a bit of sifting through search results about&amp;nbsp;implementing&amp;nbsp;an embedded python console in C++.)&lt;br /&gt;&lt;br /&gt;Now onto to figuring out &lt;a href=&quot;http://docs.python.org/library/pickle.html&quot;&gt;Pickle&lt;/a&gt;. Which is basically serving in place of the future .soy format, as that hasn't been implemented yet in PySoy. As I'm sure most of people reading this know, you wouldn't want to use pickle in the long run due to &lt;a href=&quot;http://nadiana.com/python-pickle-insecure&quot;&gt;it being insecure&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4569923331840098242-6246112424751895197?l=equipollentinconsistency.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sara Foster</name>
			<email>noreply@blogger.com</email>
			<uri>http://equipollentinconsistency.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Equipollent Inconsistency</title>
			<link rel="self" href="http://equipollentinconsistency.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-4569923331840098242</id>
			<updated>2012-02-05T17:13:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Test Improvements</title>
		<link href="http://amaurymedeiros.blogspot.com/2011/06/test-improvements.html"/>
		<id>tag:blogger.com,1999:blog-517959919414105718.post-3324973233523839349</id>
		<updated>2011-06-26T13:41:32+00:00</updated>
		<content type="html">This week David told me to change the HScroll/VScroll tests to better visualize they working. He said I could use canvas to do so. At first I faced some problems, because canvas wasn't rendering as expected. After some debug, I found an inconsistency in the Container code. Containers were rendering their children with their own width/height instead of doing this resize using the children's width/height. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After fix Container render method, I had to overrode render method for VScroll and HScroll, to render their children in the correct position. After that, the test seemed more representative and I believe the only thing is missing for VScroll/HScroll is the scroll bar. VScroll render method is shown below.&lt;br /&gt;&lt;div&gt;&lt;pre&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;ol&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;def override render (x: int, y : int, width : int, height : int)      &lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    // Render each child widget in order              &lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    var _x = x              &lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    var _y = y            &lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    for widget in self.children  &lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;            widget.render(_x, _y, widget.width, widget.height)&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/517959919414105718-3324973233523839349?l=amaurymedeiros.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Amaury</name>
			<email>noreply@blogger.com</email>
			<uri>http://amaurymedeiros.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Amaury Medeiros</title>
			<link rel="self" href="http://amaurymedeiros.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-517959919414105718</id>
			<updated>2012-02-05T19:45:04+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Week 5</title>
		<link href="http://aneeksview.blogspot.com/2011/06/week-5.html"/>
		<id>tag:blogger.com,1999:blog-7950945591602024170.post-5479079313834676003</id>
		<updated>2011-06-26T03:48:01+00:00</updated>
		<content type="html">So, I achieved whatever I had set as targets last week.&lt;br /&gt;1. To detect any wiimote, I had to vapify the BDADDR_ANY and then use it in code in place of hardcoded address.&lt;br /&gt;2. For proper exit, I used the key_press_handler coded by fzzbt earlier.&lt;br /&gt;3. And handled wiimote key input in wiibuttonTest. The problem with that one is that it takes input every n number of seconds as given in the usleep function and so my function gets wii state every n number of seconds. I'll have to think of some other way to handle this. Removing usleep creates crazy reponses.&lt;br /&gt;4. And yeah I have started up on the controller. The challenge I have to face here is that I get all wiimote states via the variable wii state. So, I have to make the controller check wii state every some n number of seconds. Plus connecting the functions with each change.&lt;br /&gt;So, Targets for next week:&lt;br /&gt;1. Complete controller (atleast like the current keyboard or pointer controller)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7950945591602024170-5479079313834676003?l=aneeksview.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Mayank Singh</name>
			<email>noreply@blogger.com</email>
			<uri>http://aneeksview.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Through a neek's eyes</title>
			<link rel="self" href="http://aneeksview.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-7950945591602024170</id>
			<updated>2012-02-05T18:17:06+00:00</updated>
		</source>
	</entry>

</feed>

