@glyph@mastodon.social avatar

glyph

@glyph@mastodon.social

he/him

You probably heard about me because I am the founder of the Twisted python networking engine open source project. But I’m also the author and maintainer of several other smaller projects, a writer and public speaker about software and the things software affects (i.e.: everything), and a productivity nerd due to my ADHD. I also post a lot about politics; I’d personally prefer to be apolitical but unfortunately the global rising tide of revanchist fascism is kind of dangerous to ignore.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

rmondello, to random
@rmondello@hachyderm.io avatar

Would it be a little too extra to bring a tiny roll of electrical tape in my standard luggage to block annoying LEDs in a hotel room? Has anyone done this?

glyph,
@glyph@mastodon.social avatar

@rmondello I believe @hotdogsladies is the first one who I heard suggest this (although the suggestion was for gaffer’s tape, which is easier to work with for a bunch of uses) and it’s a great idea.

glyph,
@glyph@mastodon.social avatar

@jwildeboer @rmondello mostly good suggestions but the rolled up towel I would be a bit careful with. It can restrict airflow and make things a bit stale or too humid (especially given the intensity of hotel bathroom water pressure and heat in a lot of places). So make sure the hvac is up to it before that one

nedbat, to random
@nedbat@hachyderm.io avatar

Small fix to watchgha: don't truncate lists at 30 items (oops!)
WatchGHA reports on GitHub Action progress in a terminal UI.

https://pypi.org/project/watchgha/

glyph,
@glyph@mastodon.social avatar

@jezdez @nedbat same here, i need to start using this asap

glyph, to random
@glyph@mastodon.social avatar

Whenever I post a bunch of stuff on here I get superstitious. Has the site actually managed to process my toots yet? Sometimes I get bursts of notifications that cluster together in odd ways. Sometimes things are so close to real time this feels like a chat app, sometimes it feels like a fidonet email system with even initial reactions delayed for hours. I cannot help but wonder if this is the architecture of Mastodon or some property of my audience or just Internet weather.

glyph,
@glyph@mastodon.social avatar
glyph, to random
@glyph@mastodon.social avatar

It’s friday, so it’s time for a Glyph update! This one, predicably, is mostly about PyCon. https://www.patreon.com/posts/patreon-update-104876830

glyph,
@glyph@mastodon.social avatar

OK, enough with the mac stuff for a minute. Does this glamorous life of making tens, or even HUNDREDS of dollars for working on open source seem compelling to you? I open sourced the little tool I use to thank my patrons in custom, gamified, auto-generated commit messages, via the git prepare-commit-msg hook, here; if you're not interested in it for other reasons, it is probably the one production app using DBXS right now, so it has examples of that: https://github.com/glyph/SponCom

glyph,
@glyph@mastodon.social avatar

Do you use Python's built-in datetime module, but its lack of type safety is annoying? Don't like the fact that datetime.datetime subclasses datetime.date while violating LSP? Bothered by the fact that aware and naive datetimes are the "same" type, with no way to keep them separate? Check out DateType, which solves these problems with custom annotations without even being a separate library; it's all datetime objects at runtime: https://github.com/glyph/DateType

glyph,
@glyph@mastodon.social avatar

Note that this one is endorsed by the official standard library documentation, right at the top: https://docs.python.org/3.12/library/datetime.html#module-datetime

glyph,
@glyph@mastodon.social avatar

Of course if you're the sort of person who follows me, you might have privileges on quite a few PyPI projects yourself. Maybe not all of them have automatic uploads from github, and you'd like to keep your PyPI tokens more secure. Or, I dunno, maybe you use a cloud or something. If you have a YubiKey, check out TokenRing, a Python Keyring module secret-storage backend that can use your hard token as an encryption key, and require user presence verification for unlocking: https://github.com/glyph/tokenring

glyph,
@glyph@mastodon.social avatar

And if you're keeping all those secrets secure, you probably already have a password manager. When was the last time you changed the root password on that password manager? It's been a while, I bet. But it's such a hasssle to memorize a new secure password. Not any more, with PINPal, a little helper that sits in your command-line prompt and provides spaced-repetition memorization help for secure, randomized core passwords like password managers and mobile device PINs. https://github.com/glyph/pinpal

glyph,
@glyph@mastodon.social avatar

Back to more core-infrastructure type libraries, perhaps you would like to model your stateful objects with deterministic, finite-state automata, using my Automat library: https://github.com/glyph/automat

glyph,
@glyph@mastodon.social avatar

This one in particular could do with a few patron sponsors to motivate me to finish the second-generation interface I've been puttering with for literal years at this point, which would add a whole new layer of type safety and legibility: https://github.com/glyph/automat/pull/137

glyph,
@glyph@mastodon.social avatar

Not all my projects are so big, of course. Sometimes I just make a part of a webpage use a monospaced font. https://github.com/tweedge/unique-local-ipv6/pull/3

glyph,
@glyph@mastodon.social avatar

I do, of course, still work on the project that I founded, as it supports these projects and as my patrons suggest. (Although I hasten to add, that if you want to support Twisted you should probably donate via the PSF, rather than subscribing to my personal Patreon. The project might even hire me to do stuff! But that's somewhat separate from my own work, as you can see, I have conflicting priorities) https://twisted.org

glyph,
@glyph@mastodon.social avatar

"Twisted" is a big umbrella though, and it incorporates things like Treq, which lets you use Twisted's native HTTP client with a high-level, Requests-like interface: https://github.com/twisted/treq

glyph,
@glyph@mastodon.social avatar

and Klein, which presents a flask-like interface to twisted.web's server infrastructure, and looks flask-like because it actually uses the same library provided by flask (Werkzeug) to set up its routes: https://github.com/twisted/klein

glyph,
@glyph@mastodon.social avatar

Twisted was originally a video game, did you know that? And you know what video games need? Random numbers! Perhaps you would like to use a random-number generator that is suitable for games because it is both properly unpredictable if you don't know the seed (it uses AES, not Mersenne Twister) and also seedable and deterministic. I haven't touched this one in a while, but I believe it still works fine on modern Pythons:

https://github.com/glyph/streamrandom/blob/dc42c6acbce7b756d08e9c1f84e8bda740cfb9f3/streamrandom.py#L2-L37

glyph,
@glyph@mastodon.social avatar

And, speaking of video games and maintenance, I do occasionally also find tools that need a proper code-signing certificate and release Mac downloads for them, like this sound-effects generator for games: https://github.com/glyph/cfxr/releases/tag/0.3.4

glyph,
@glyph@mastodon.social avatar

Do you write Python, use Emacs, and sometimes write docstrings, in either epytext or reStructuredText format? I also have an Emacs package that will provide both syntax highlighting and style-appropriate paragraph wrapping for you. (Maybe don't look at this code without appropriate PPE though, you are definitely going to need goggles for the "parsing" it does.) https://github.com/glyph/python-docstring-mode

glyph,
@glyph@mastodon.social avatar

I really appreciate any boosts, if you think theres' something in here your followers would like!

If you'd like to subscribe (only $1 a month!) you can support the development of software and writing like those mentioned above, as well as receive regular updates about my development & writing process, and get random but periodic thanks in my commit messages as well as Internet Points via SponCom. That URL is: https://www.patreon.com/creatorglyph

Whew. That is definitely enough self-promotion for one day.

glyph,
@glyph@mastodon.social avatar

@villares if you have a budget, I am also available for consulting (consulting@glyph.im), my patrons cannot nearly afford my full-time efforts at this point :-). If you're looking for a volunteer, I will definitely add this to my bookmarks, it looks interesting! But as you can see I do have a few other interests that are consuming my time :)

glyph,
@glyph@mastodon.social avatar

cc @shauna as I mentioned they don't fit in a toot but it does turn out that they fit in a thread https://social.coop/@shauna/112474914189365948

glyph,
@glyph@mastodon.social avatar

@acb yep, we were involved in the initial discussions that lead to asyncio, and we support it, both interoperating with the main loop via asyncioreactor and interoperating with coroutines via Deferred().asFuture and Deferred.fromCoroutine.

glyph,
@glyph@mastodon.social avatar

@acb hey @lukasa just thought you might find it amusing that swift's equivalent looks "semantically similar"

glyph,
@glyph@mastodon.social avatar

@carlton yep, this software was released for that talk :)

PyVideo has more recent talks but PyCon US 2023 isn't indexed yet https://github.com/pyvideo/data/issues/1127

I occasionally submit a PR like this to fix up the metadata https://github.com/pyvideo/data/pull/1155

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • GTA5RPClips
  • DreamBathrooms
  • cubers
  • mdbf
  • everett
  • magazineikmin
  • Durango
  • Youngstown
  • rosin
  • slotface
  • modclub
  • kavyap
  • ethstaker
  • megavids
  • ngwrru68w68
  • thenastyranch
  • cisconetworking
  • khanakhh
  • osvaldo12
  • InstantRegret
  • Leos
  • tester
  • tacticalgear
  • normalnudes
  • provamag3
  • anitta
  • lostlight
  • All magazines