Category archives: Snaking

Discussions of programming, particularly of programming Python

RSS feed of Snaking

Documentation Generation

I've just coded up a documentation generator that can take the OpenGL man pages in DocBook format and turn them into (X)HTML.  We were previously using the DocbookXSL stuff, but unfortunately that takes hours and hours to process the OpenGL manual set.  With lxml.etree and fairly straightforward coding I can produce the base documentation in ...

Continue reading

Profiling, Debugging, Testing; Tools, Tips and Techniques

Reminder that PyGTA is meeting tonight to share experiences with tools for dealing with complex and large code-bases. How do you find bugs when they show up?  How do you determine where to spend your optimization energies?  How do you make sure they don't show up again?  What interesting tools do you have for peering ...

Continue reading

Finally clearing the py3d backlog

Afraid I've been putting off entering the various Py3D projects that people have been sending me (kept thinking I'd get my act together and rewrite the script to use a DB).  Anyway, since that doesn't seem to be happening, I've entered everything that was sitting in my email inbox into the script.  If I've missed ...

Continue reading

Wow that's a lot of deprecations...

Beginning to read up on OpenGL 3.0... the deprecated functionality covers the majority of the PyOpenGL code that I've seen over the years.  You drop that stuff and it's a completely a different language, the OpenGL Bible's whole old-testament (the fixed pipeline) is basically gone.

I can't think of really *anything* in OpenGLContext that would ...

Continue reading

Nagging Need for PyOpenGL 3.x

Really need to get PyOpenGL 3.x to be py2exe/pyinstaller/py2app
compatible.  The thing that needs to happen is that I need to figure
out what machinery (I think it's installed in site.py) does the
registration of eggs and how to make that registration happen inside
the various packaging systems.  If we can solve that, then the ...

Continue reading

Two pings forward...

Spent the day on qnet yesterday.  Biggest change was using a structured library for the package/message format encoding/decoding.  That same structure stuff should be usable by people writing games to write their own protocols.  It's pretty straight-forward stuff.  Could use some optimisation work though. Speed dropped considerably with the structured approach instead of making single ...

Continue reading

Lazy wrappers around functions


As (extension) functions in OpenGL often are not available until a valid context is created (and functions can be available/unavailable for different contexts), it's necessary to do some lazy-loading inside PyOpenGL sometimes.  Discovered today that the glHistogram wrappers were doing load-time checks for function availability and only wrapping the functions if the checks succeeded.  So, ...

Continue reading

Channels and keys and loops, oh my

Worked on qnet yesterday.  Got the stateless (ordered, not guaranteed) channel working.  Basically this channel allows you to send messages with "keys" (think of them as sub-channels) where each key is considered to be a stateless update.  That is, each message with a given key is a complete update as to the current state of ...

Continue reading

Bit of qnet hacking

Got the multiple-channel dispatching roughed in.  Also roughed in the event-sending interface.  Sped up the handling considerably for long pending queues (was doing a linear scan of the whole queue for each ack'd message, oops).  Also roughed in code for ordered-but-not-guaranteed channels (i.e. channels that keep the latest received values, dropping any missing messages).  Statistics ...

Continue reading

Whether to tie qnet or not?

I've been working a bit on pyqnet over the weekend.

  • refactored into multiple modules in a package with a setup script
  • I've got a UDP-level implementation (i.e. real network level operations)
  • statistics gathering is started
  • the beginnings of adaptive retry/backoff code are there (i.e. resend frequency based on normal connection latency)
  • fixed handling of lossy ...

Continue reading