<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>More of a programming nerd than is strictly healthy. See also {nevyn.nu, thirdcog.eu, twitter}</description><title>Overooped</title><generator>Tumblr (3.0; @nevyn)</generator><link>http://overooped.com/</link><item><title>Voxar is “between jobs”. That’s an eupherism...</title><description>&lt;object width="400" height="336"&gt;&lt;param name="movie" value="http://www.youtube.com/v/K9tKnU2Dq88&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/K9tKnU2Dq88&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1" type="application/x-shockwave-flash" width="400" height="336" allowFullScreen="true" wmode="transparent"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Voxar is “between jobs”. That’s an eupherism for “working all day on hobby projects”. Like Deathtroid networking. I added some sounds, too.&lt;/p&gt;

&lt;p&gt;We seem to be running into some sort of pyglet bug though, where the timer makes us crash. &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
Traceback (most recent call last):
  File "src/main.py", line 295, in &lt;module&gt;
    pyglet.app.EventLoop().run()
  File "/Library/Python/2.5/site-packages/pyglet/app/carbon.py", line 84, in run
    self._timer_proc(timer, None, False)
  File "/Library/Python/2.5/site-packages/pyglet/app/carbon.py", line 133, in _timer_proc
    sleep_time = self.idle()
  File "/Library/Python/2.5/site-packages/pyglet/app/__init__.py", line 187, in idle
    dt = clock.tick(True)
  File "/Library/Python/2.5/site-packages/pyglet/clock.py", line 698, in tick
    return _default.tick(poll)
  File "/Library/Python/2.5/site-packages/pyglet/clock.py", line 317, in tick
    item.next_ts = self._get_soft_next_ts(ts, item.interval)
  File "/Library/Python/2.5/site-packages/pyglet/clock.py", line 585, in _get_soft_next_ts
    if not taken(next_ts, interval / 4):
  File "/Library/Python/2.5/site-packages/pyglet/clock.py", line 563, in taken
    if abs(item.next_ts - ts) &lt;= e:
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
&lt;/module&gt;&lt;/code&gt;&lt;/pre&gt;

I ugly-patched it like this:
&lt;pre&gt;&lt;code&gt;
--- clock.py	2009-04-06 22:20:44.000000000 +0200
+++ clock-uglypatched.py	2009-04-06 20:55:46.000000000 +0200
@@ -560,6 +560,8 @@
             scheduled nearby.
             '''
             for item in self._schedule_interval_items:
+                if item.next_ts == None:
+                  continue
                 if abs(item.next_ts - ts)  ts + e:
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I’m guessing a schedule item shouldn’t be allowed to have a next_ts == None at this point.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update&lt;/em&gt;: This bug is known under &lt;a href="http://code.google.com/p/pyglet/issues/detail?id=407"&gt;issue 407&lt;/a&gt; on their bug tracker.&lt;/p&gt;</description><link>http://overooped.com/post/93720695</link><guid>http://overooped.com/post/93720695</guid><pubDate>Tue, 07 Apr 2009 07:28:00 +0200</pubDate><category>deathtroid</category></item><item><title>That was a good lunch break.</title><description>&lt;object width="400" height="336"&gt;&lt;param name="movie" value="http://www.youtube.com/v/yc692qQeg8g&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/yc692qQeg8g&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1" type="application/x-shockwave-flash" width="400" height="336" allowFullScreen="true" wmode="transparent"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;That was a good lunch break.&lt;/p&gt;</description><link>http://overooped.com/post/91532410</link><guid>http://overooped.com/post/91532410</guid><pubDate>Tue, 31 Mar 2009 13:50:48 +0200</pubDate><category>deathtroid</category></item><item><title>Deathtroid, r114, after Per’s productive train ride home.</title><description>&lt;img src="http://26.media.tumblr.com/MLhBbCcsblnsjzk2Dtzdo3jVo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Deathtroid, r114, after Per’s productive train ride home.&lt;/p&gt;</description><link>http://overooped.com/post/91010088</link><guid>http://overooped.com/post/91010088</guid><pubDate>Sun, 29 Mar 2009 23:31:52 +0200</pubDate><category>deathtroid</category></item><item><title>LAN party turned into coding party. We’re building a...</title><description>&lt;img src="http://26.media.tumblr.com/MLhBbCcsblmrg700jWM69pGNo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;LAN party turned into coding party. We’re building a multiplayer deathmatch Super Metroid Clone. It’s called… &lt;b style="font-size:2em"&gt;Deathtroid!&lt;/b&gt;&lt;/p&gt;</description><link>http://overooped.com/post/90823979</link><guid>http://overooped.com/post/90823979</guid><pubDate>Sun, 29 Mar 2009 06:13:00 +0200</pubDate><category>deathtroid</category></item></channel></rss>
