GitHub Stars

GitHub stars posts

1859 posts latest post 2026-05-24
Publishing rhythm
May 2026 | 23 posts
If you’re into interesting projects, don’t miss out on wish-lists [1], created by pypeaday [2]. amazon wish lists replacement References: [1]: https://github.com/pypeaday/wish-lists [2]: https://github.com/pypeaday
I’m really excited about typeshed [1], an amazing project by python [2]. It’s worth exploring! Collection of library stubs for Python, with static types References: [1]: https://github.com/python/typeshed [2]: https://github.com/python
If you’re into interesting projects, don’t miss out on mypy [1], created by python [2]. Optional static typing for Python References: [1]: https://github.com/python/mypy [2]: https://github.com/python
Sometimes you get a PR on a project, but cannot review it without wrecking your current working setup. This might be because it needs to be compiled, or a new set of requirements. Git [1] worktrees is a great way to chekout the remote branch in a completely separate directory to avoid changing any files in your current project. # pattern # git worktree add -b <branch-name> <PATH> <remote>/<branch-name> git worktree add -b fix-aws-service-cnsn /tmp/project origin/fix-aws-service-cnsn This will create a new directory /tmp/project that you can review the branch fix-aws-service-cnsn from the remote origin. If you have setup different remotes locally you can check for the name of it with git remote -v References: [1]: /glossary/git/
git
I’m impressed by devshell [1] from numtide [2]. Per project developer environments References: [1]: https://github.com/numtide/devshell [2]: https://github.com/numtide
The work on pyscript [1] by pyscript [2]. PyScript is an open source platform for Python in the browser. Try PyScript: https://pyscript.com Examples: https://tinyurl.com/pyscript-examples Community: https://discord.gg/HxvBtukrg2 References: [1]: https://github.com/pyscript/pyscript [2]: https://github.com/pyscript
Check out pypeaday [1] and their project tdarr [2]. tdarr setup References: [1]: https://github.com/pypeaday [2]: https://github.com/pypeaday/tdarr
If you’re into interesting projects, don’t miss out on skedulord [1], created by koaning [2]. captures logs and makes cron more fun References: [1]: https://github.com/koaning/skedulord [2]: https://github.com/koaning
GitPython is a python api for your git [1] repos, it can be quite handy when you need to work with git from python. Use Case # [2] I recently made myself a handy tool for making screenshots in python and it need to do a git commit and push from within the script. For this I reached for GitPython. How I Quickly Capture Screenshots directly into My Blog [3] Installation # [4] GitPython is a python library hosted on pypi that we will want to install into our virtual environments using pip. pip install GitPython Create a Repo Object # [5] Import Repo from the git library and create an instance of the Repo object by giving it a path to the directory containing your .git directory. from git import Repo repo = Repo('~/git/waylonwalker.com/') Two interfaces # [6] from the docs It provides abstractions of git objects for easy access of repository data, and additionally allows you to access the git repository more directly using either a pure python implementation, or the faster, but more resource intensive git command implementation. I only needed to use the more intensive but familar to me git command implementation to get me project off the ground. There is a good tutorial [...
nvim-notify [1] by rcarriga [2] is a game-changer in its space. Excited to see how it evolves. A fancy, configurable, notification manager for NeoVim References: [1]: https://github.com/rcarriga/nvim-notify [2]: https://github.com/rcarriga
I came across smart-sec-cam [1] from scottbarnesg [2], and it’s packed with great features and ideas. A privacy-focused, intelligent security camera system. References: [1]: https://github.com/scottbarnesg/smart-sec-cam [2]: https://github.com/scottbarnesg
Python, click install Edit the System Environment Variables Environment Variables button Add the following path to your users Path Variable C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\dotnet\;C:\Users\quadm\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts;
I came across cli [1] from httpie [2], and it’s packed with great features and ideas. 🥧 HTTPie CLI — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. References: [1]: https://github.com/httpie/cli [2]: https://github.com/httpie
Check out nbdd0121 [1] and their project wsld [2]. WSL Daemon - Stable X11 connection and time synchronisation for WSL2 References: [1]: https://github.com/nbdd0121 [2]: https://github.com/nbdd0121/wsld
Sometimes you just want python to do something else when you hit an exception, maybe that’s fire a text, slack message, email, or system notification like I wanted. I am working on a quick and dirty python script designed to take screenshots and land them on my website in a single hotkey. With it being designed to run with a hotkey, if it were to error I would not see it. I could have gone down a logging route, but honestly this is meant to be quick, dirty, and work on my system for me. I just want to get it in my system notification. sys.excepthook # [1] Python exposes sys.excepthook for just this case. Here is what I ended up doing to fire a system notification as well as printing the message. Yaya a log would be mroe appropriate, but this is designed to just get done quick and do the job I want it to do. def notify_exception(type, value, tb): traceback_details = "\n".join(traceback.extract_tb(tb).format()) msg = f"caller: {' '.join(sys.argv)}\n{type}: {value}\n{traceback_details}" print(msg) Popen( f'notify-send "screenshot.py hit an exception" "{msg}" -a screenshot.py', shell=True, ) sys.excepthook = notify_exception 0 / 0 References: [1]: #sysexcepthook
I recently was unable to boot into my home Linux Desktop, it got stuck at diskcheck fsck. I found that I was able to get in to a tty through a hotkey. https://twitter.com/_WaylonWalker/status/1512281106120384519 What’s a TTY? # [1] There’s probably more to it, but to me its a full screen terminal with zero gui, not even your gui fonts. It does log into your default shell so if you have a comfy command line setup it will be here for you even though it looks much different without fonts and full colorspace. Normal setup # [2] Normally you have 6 TTY’s running, the first is dedicated to your desktop manager, which is your login screen it might be something like gdm or lightdm. - ctrl+alt+F1: login screen - ctrl+alt+F2: Desktop - ctrl+alt+F3: TTY 3 - ctrl+alt+F4: TTY 4 - ctrl+alt+F5: TTY 5 - ctrl+alt+F6: TTY 6 In my case the desktop manager neverstarted, so ctrl+alt+F1 brought me into a tty. What happened?? # [3] Well after getting back in and having some time to reflect, I think my Desktop manager was installed or just broken, possibly during a update I ran a few days prior. I tried a bunch of things like switching to lightdm, and manually running startx. Getting ba...
pygame events are stored in a queue, by default the most suggested way shown in all tutorials “pumps” the queue, which removes all the messages. start up pygame # [1] You don’t necessarily need a full boilerplate [2] to start looking at events, you just just need to pygame.init() and to capture any keystrokes you need a window to capture them on, so you will need a display running. import pygame pygame.init() pygame.display.set_mode((854, 480)) get some events # [3] Let’s use pygames normal event.get method to get events. events = pygame.event.get() printing the events reveal this [ <Event(1541-JoyDeviceAdded {'device_index': 0, 'guid': '030000005e0400008e02000010010000'})>, <Event(4352-AudioDeviceAdded {'which': 0, 'iscapture': 0})>, <Event(4352-AudioDeviceAdded {'which': 1, 'iscapture': 0})>, <Event(4352-AudioDeviceAdded {'which': 2, 'iscapture': 0})>, <Event(4352-AudioDeviceAdded {'which': 0, 'iscapture': 1})>, <Event(4352-AudioDeviceAdded {'which': 1, 'iscapture': 1})>, <Event(32774-WindowShown {'window': None})>, <Event(32777-WindowMoved {'x': 535, 'y': 302, 'window': None})>, <Event(32770-VideoExpose {})>, <Event(32776-WindowExposed {'window': None})>, <Ev...
One of the most essential concepts of pygame to start making a game you will need to understand is loading images and blitting them to the screen. blit stands for block image transfer, to me it feels a lot like layering up layers/images in photoshop or Gimp. Loading an image # [1] I started by making a spotlight in Gimp, by opening a 64x64 pixel image and painting the center with a very soft brush. [2] This is what it looks like Now we can load this into pygame. import pygame img = pygame.image.load("assets/spotlight.png") Converting to the pygame colorspace # [3] To make pygame a bit more efficient we can convert the image to pygames colorspace once when we load it rather than every time we blit it onto another surface. import pygame # convert full opaque images img = pygame.image.load("assets/spotlight.png").convert() # convert pngs with transparancy img = pygame.image.load("assets/spotlight.png").convert_alpha() blitting # [4] To display the image onto the screen we need to use the blit method which needs at least two arguments, something to blit and a position to blit it at. screen = pygame.display.set_mode(self.screen_size) screen.blit( img, (0, 0),) note blit...
From the same Author that brought us command line essentials like fd and bat written in rust comes pastel [1] an incredible command-line tool to generate, analyze, convert and manipulate colors. Install # [2] You can install from one of the releases [3], follow the instructions [4] for your system from the repo. I chose to go the nix route. I have enjoyed the simplicity of the nix package manager being cross platform and have very up to date packages in it. nix-env --install pastel Mixing colors # [5] Something I often do to blend colors together is add a little alpha to something over top of a background. I can simulate this by mixing colors. pastel color cornflowerblue | pastel mix goldenrod -f .1 Here is one from the docs that show how you can generate a color palette from random colors, mix in some red, lighten and format all in one pipe. pastel random | pastel mix red | pastel lighten 0.2 | pastel format hex color picker # [6] I am on Ubuntu 20.10 as I write this and it works flawlessly. When I call the command, a color picker gui pops up along with an rgb panel. I can pick from the panel or from anywhere on my screen. pastel color-picker Sorry, your browser doesn...
cli
Dunk [1] is a beautiful git [2] diff tool built on top of rich [3]. Browsing through twitter the other day I discovered it through this tweet by _darrenburns [4]. https://twitter.com/_darrenburns/status/1510350016623394817 Dunk is beta # [5] Before I dive in deep, I do want to mention that Dunk is super new and beta at this point. I am making it my default pager, because I know what I am doing and can quickly shift back if I need to, no sweat. If you are a little less comfortable with the command line, terminal, or reading any issues that might come up, it might be best if you just pipe into Dunk when you want to use it. The author really cautions the use of it as your default pager this early, I’m just showing that it’s possible, and I’m trying it. He notes that it might have some issues especially with partially staged files. try it # [6] You can try it with pipx. git diff | pipx run dunk install it # [7] If you like it, you can install it with pip or pipx, I prefer pipx for cli applications like this. pipx install dunk set it as your default pager # [8] You can configure dunk as your default pager with the command line, or by editing your .gitconfig file. git con...