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
As I try to mention once a week, I am attempting to start a little lifestyle business writing software, both libraries and apps, mostly open source, and writing about it. Sometimes the actual activity is buried inside these locked patrons-only posts so today I thought I’d try something a little different and do a mega-thread listing all the different projects I’m doing, so if you think *your* followers would appreciate one in particular, you can boost just that.
Here near the top of the thread I’ll just say that you can sponsor me via GitHub Sponsors at https://github.com/sponsors/glyph or Patreon at https://www.patreon.com/creatorglyph .
I write a lot of stuff about software and other things as well, https://blog.glyph.im . Most recently, a representative sample of this is my article about the AI hype cycle: https://blog.glyph.im/2024/05/grand-unified-ai-hype.html
Pomodouroboros is Pomodoro-method app, focused on folks with ADHD. The problem with productivity timer apps is: if you’re having a day where you already remembered you need a timer, you set it, and you actually start working, you probably didn’t *need* the timer so much that day. Pomodouroboros never stops running, and gamifies your focus to help you set the intentions YOU care about. It’s also all open source, and in Python. Mostly for macOS, but a Linux port on the way. https://github.com/glyph/pomodouroboros
Fritter is a Python library for timed events. It’s hard to describe, because it’s a way of *thinking* about timed & repeating events than a library handling a specific function. To give you a sense of its unique structure, one thing it can do is a “tree”, where you create a scheduler, then a sub-scheduler, and pause/resume it. Consider a game with a “freeze” weapon that pauses a single entity’s animations & movement AI. Or a subscription that can be paused & resumed. https://github.com/glyph/fritter
DBXS ("dee-bee-access") gives you the simplicity of raw SQL, with the security guarantees of an expression-construction library and the runtime type-safety of an ORM. For applications where you know exactly what SQL you want to execute, it removes most of the downsides. It won't give you all the bells and whistles of an ORM (and sometimes you do need those!) but it also will give you structures and types without needing to reinterpret all your queries into a new DSL.
If you just want to write a mac app in Python that does one quick thing for personal use, perhaps you would be interested in QuickMacApp, which can put a little status menu into your menu bar *very* quickly, with just a few lines of Python code. https://github.com/glyph/QuickMacApp
Of course, once that app is happily running along in the background, you might want a global hot key to interact with it, and you don't want to privilege-escalate the whole thing to do event-tap shenanigans to be a full-blown key logger. In that case, you can use QuickMacHotKey, which also lets you just quickly bind a global hot key on your mac with a few lines of code. https://github.com/glyph/QuickMacHotKey
*Distributing* a mac app written in Python is a whole other ball of wax, what with needing to ensure the availability of multiple architectures, code signing, notarization, and constructing an archive in a format that won't lose some critical bit of mac-specific metadata. Once you've bundled it up with py2app, for the rest of these annoying details you can use Encrust https://github.com/glyph/Encrust
Dear @glyph, would you know of someone with Mac developer skills (and a Mac) who would like to help us (re)package Thonny.org IDE adding some packages/stuff to it (py5coding.org)?
@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 very cool! maybe I could try to raise some money for this... let's explore all possibilities. Add the bookmark for now...thanks!