Category archives: Snaking
Discussions of programming, particularly of programming Python
PyOpenGL 3.1.7 Building Now
Written by
on
in
Snaking.
So I spent some of the Victoria Day weekend on PyOpenGL. Biggest changes are:
* got cibuildwheel running on github actions so that we can get a matrix of (manylinux) wheels built for accelerate
* automated upload from github actions to pypi
* investigate the egl regressions; so far all of them seem to be ...
Weird regressions in EGL setups
Written by
on
in
Snaking.
So trying to spend a bit of my vacation going through PyOpenGL issues. So far the biggest issues are all EGL related, with the one currently stumping me is that we do not seem to be able to do an eglMakeCurrent (getting an EGL_BAD_ACCESS) even though the context/view is only ever accessed from the pygame ...
Potions with Custom Effects
Written by
on
in
Snaking.
In Pycraft, I figured out the Potions-with-custom-effects, the problem being that Bukkit's PotionEffectType doesn't actually implement the keyed interface, but instead has its own .values() call, so needs a whole special handler. The code for creating potion with custom effects looks like:
await potion_of(
'night_vision',
"Gopher's Gruel",
{
'type': 'fast_digging',
'duration': 20 * 60 * ...
Finally Got Potions (ItemMeta) and Signs (BlockState) working
Written by
on
in
Snaking.
So one of the long-standing requests from the boys has been that we have the ability to create potions from Pycraft's in-game REPL. Today I finally got that working, mostly because I finally decided that there was room for a reference pattern to make the whole thing easier.
By way of background, Pycraft was previously ...
Creating some Pycraft Videos
Written by
on
in
Snaking.
Pycraft has remained relatively obscure. It lets you write (very close to) Python code in the minecraft chat window to perform magic that's written in Python code on the backend. I thought maybe a few demos showing what you can do with the code might serve to interest a few others in playing with it. ...
Python Version Support Ideas
Written by
on
in
Snaking.
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 ...
Cleaning up the PyOpenGL Demos
Written by
on
in
Snaking.
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 ...
Go Lang Impressions after 2 Months
Written by
on
in
Snaking.
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 ...
Django Field Rename Migrations and Test Cases
Written by
on
in
Snaking.
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 ...
PycraftServer Plugin
Written by
on
in
Snaking.
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 ...