Category archives: Snaking

Discussions of programming, particularly of programming Python

RSS feed of Snaking

Python Version Support Ideas

As a general rule, I don't like to just stop supporting Python releases just for the sake of deprecation. I try to be relatively wide in the set of Python's I'll support for my libraries, with my current general rule being 2.7, 3.6+ .

Why those? Well, 2.7 is still on RHEL/Centos for another year ...

Continue reading

Cleaning up the PyOpenGL Demos

Spent a bit of my second-last-day-of-vacation cleaning up the PyOpenGL Demos so that they run with current Python 3.10, PyOpenGL, numpy and PIL and can be installed as a package rather than only being usable via a git checkout.

There were a few bits of bit-rot, mostly around ctypes no longer allowing you to raise ...

Continue reading

Go Lang Impressions after 2 Months

So for work I've needed to learn GoLang, which I'd always before picked up, kicked the tires and said "meh" on. A few months now of working with it pretty-much-daily have upped the "meh" quite a bit. To be clear, I'd choose Go over raw C, but I'd likely pick modern C++ over Go.

Channels ...

Continue reading

Django Field Rename Migrations and Test Cases

Is there some trick to running Django test cases when you've got a RenameField later in the migration-stack? I feel like this has to be some obvious thing I'm missing...

With a migration (say 0058_big_restructure.py) which does this:


migrations.RenameField(
model_name='rfsource',
old_name='source_name',
new_name='follow_source_name',
),

and a previous migration, (say 0006_long_ago_change_that_populates_some_other_field.py) which doesn't explicitly reference the source_name ...

Continue reading

PycraftServer Plugin

So the boys (and their cousin) are both into Minecraft again, so I've been refining the Pycraft code quite a bit. We no longer use the RaspberryJuice plugin, but instead have a custom Bukkit plugin that does Java reflection/introspection to auto-generate the API. That lets us do a lot more, manipulate inventories, read and write ...

Continue reading

Adding a Certificate Authority to Chrome Trust Store

So you have a corporate or project specific root of trust you need Chrome to recognise. How do you take your PEM certificate as you get from easy-rsa or the like and make it something that Chrome will accept? The answer is not particularly complex, but it really seems like this very-common process is not ...

Continue reading

PyOpenGL Build Enhancements

Spent the evening getting the Python 3.9 build for PyOpenGL-accelerate running on Appveyor. In the end it was just knowing to add a tag "APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019" to the build-matrix for that one Python version so that it is built on the Python 3.9-compatible build-image. Will have to boot into Windows to test that ...

Continue reading

RunSnakeRun 3.0.0 Beta 1

So I finally sat down and finished off the work I was doing a while ago to get RunSnakeRun updated to run on Python 3 and support pyspy/speedscope files. There was a bunch of stuff needed to make us compatible with the wxPython Pheonix releases, a huge and horrible hack to let us load Python2 ...

Continue reading

Listener GUI Started

So with the code-context, the dictation in Listener is getting okay-ish. It's still pretty frustrating and error prone, but I can use it maybe 1/4 of the time (mostly for doc-strings). Part of the frustration is just that the language models are not yet well tuned for some commonly needed phrases that the tokeniser didn't ...

Continue reading

Auto-link a Host-provided Package into a Virtualenv

There are Python packages that are basically a PITA to get compiled into your virtualenv. The one I constantly hit when doing GStreamer, DBus, IBus, etc is gobject-introspection (a.k.a. gi). So, there's now a trivial package available:

source path-to-venv/bin/activate
pip install venvhpl
venv-hpl gi