Category archives: Snaking
Discussions of programming, particularly of programming Python
Documentation Generation
Written by
on
in
Snaking.
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 ...
Profiling, Debugging, Testing; Tools, Tips and Techniques
Written by
on
in
Snaking.
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 ...
Finally clearing the py3d backlog
Written by
on
in
Snaking.
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 ...
Wow that's a lot of deprecations...
Written by
on
in
Snaking.
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 ...
Nagging Need for PyOpenGL 3.x
Written by
on
in
Snaking.
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 ...
Two pings forward...
Written by
on
in
Snaking.
Lazy wrappers around functions
Written by
on
in
Snaking.
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, ...
Channels and keys and loops, oh my
Written by
on
in
Snaking.
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 ...
Bit of qnet hacking
Written by
on
in
Snaking.
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 ...
Whether to tie qnet or not?
Written by
on
in
Snaking.
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 ...