Archive

All published posts

2556 posts latest post 2026-08-19 simple view
Publishing rhythm
Aug 2026 | 28 posts

Textual has devtools in the upcoming css branch, and its pretty awesome!

It’s still early #

Textual is still very early and not really ready for prime time, but it’s quite amazing how easy some things such as creating keybindings is. The docs are coming, but missing right now so if you want to use textual be ready for reading source code and examples.

On to the devtools #

As @willmcgugan shows in this tweet it’s pretty easy to setup, it requires having two terminals open, or using tmux, and currently you have to use the css branch.

https://twitter.com/willmcgugan/status/1531294412696956930

Why does textual need its own devtools #

Textual is a tui application framework. Unlike when you are building cli applications, when the tui takes over the terminal in full screen there is no where to print statement debug, and breakpoints don’t work.

getting the css branch #

In the future it will likely be in main and not need this, but for now you need to get the css branch to get devtools.

git clone https://github.com/Textualize/textual
git fetch --alll
git checkout css

install in a virtual environment #

Now you can create a virtual environment, feel free to use whatever virtual environment tool you want, venv is built in to most python distributions though, and should just be there.

python3 -m venv .venv --prompt textual
source .venv/bin/activate
pip install .

Now that we have textual installed #

Once textual is installed you can open up the devtools by running textual console.

textual console
textual-console.webp
I’m really excited about minesweeper, an amazing project by NotUnlikeTheWaves. It’s worth exploring! A minesweeper in the terminal written in Golang with Bubbletea

Using Different versions of python with pipx | pyenv

I love using pipx for automatic virtual environment management of my globally installed python cli applications, but sometimes the application is not compatible with your globally installed Which version of python is using?? # This one took me a minute to figure out at first, please let me know if there is a better way. I am pretty certain that this is not the ideal way, but it works. My first technique was to make a package that printed out. Let’s setup some other versions of python with pyenv # If you don’t already have pyenv installed, you can follow their install instructions to get it. I usually require a virtual environment # I set the environment variable to to ensure that the virtual environment is activated when pip installing, this makes it so that I can’t accidentally use the global env, which is typically not what I want to do. This goes right into my shell startup script or. Exceptions happen # This is my one exception. I’ve had better luck putting pipx right in the global…
2 min read
curl has done a fantastic job with curl. Highly recommend taking a look. A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features

LIVE-REPLAY - Python dev | Markata todoui | 4/6/2022

https://youtu.be/-42A5210HYo Super fun steam Broadcasted live on Twitch – Watch live at https://www.twitch.tv/waylonwalker We worked on markata todoui, a command tui trello board written in python using only markdown files to store the data. I love markdown and I want to make this my workflow. During this stream we get RAIDED by TEEJ_DV! and chat about tmux a bit before calling the changes to markata-tui good and signing off. dotfiles: https://github.com/WaylonWalker/devtainer today’s project: https://github.com/WaylonWalker/markata-todoui website: https://waylonwalker.com/
I’m really excited about typeshed, an amazing project by python. It’s worth exploring! Collection of library stubs for Python, with static types
If you’re into interesting projects, don’t miss out on mypy, created by python. Optional static typing for Python
The work on pyscript by pyscript. 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
If you’re into interesting projects, don’t miss out on skedulord, created by koaning. captures logs and makes cron more fun

How I Quickly Capture Screenshots directly into My Blog

When I am creating blog posts it’s often helpful to add screenshots to them to illustrate what I see on my screen. Sometimes I lack good screenshots in my posts because it just takes more effort than I have in the moment, and I prioritize making content over making perfect content. Making Screenshots # When I have something to take a screenshot of, I need to take the shot, optimize the image, often convert it to a better format, publish it, and create a the img tag in my blog. take screenshot optimize conversion publish create img tag Created in 🐍Python # I created this tool for myself in python because that is what I am most familiar with, but realistically most of what I am calling are shell scripts that I could do in just about any language. Install my screenshot tool # My screenshot tool is quite hacky and not configurable, but works wonderfully for me. If you like it and want to use it, make it configurable or fork it. For now it lives on GitHub and since it has a setup.py with en…
3 min read

Copier < 6.0.0b0 considered dangerous

Copier is a fantastic templating library written in python, but older versions have a dangerous bug if you are using it inside of existing directories.!!UPDATE # As of May 15, 2022, the stable release of copier now includes these changes, if you have not already make sure you update. This is a PSA # I Use copier several times per day and get fantastic benefit from this project, this post is not intended to crap all over copier in any way, but is rather a PSA for other users who do use copier like I do so that they know the dangers of using copier inside an existing directory. The issue # The fix # https://github.com/copier-org/copier/pull/273 As of the time of writing this version is still in beta, if you still want to use copier with existing directtories, I’d strongly encourage you to install the release. confirm # My update commit # https://github.com/WaylonWalker/devtainer/commit/a06e47462e2c6d26ad69fbdc2e7990a1a73ab4b7
nvim-notify by rcarriga is a game-changer in its space. Excited to see how it evolves. A fancy, configurable, notification manager for NeoVim
Current /carry April 2022
EDC from April 2022
I came across cli from httpie, 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.

PyOhio CFP’s

Here are some CFP’s that I used for PyOhio 2022. https://pretalx.com/pyohio-2022/cfp Idea to blog post in minutes - Shorter # Markata is a plugins all the way down static site generator, that covers all the things you need to go from markdown to a blog site out of the box. Since it’s plugins all the way down you can also rip out all the default plugins, and do something completely different with the lifecycle. Lets build a whole blog site in 5 minutes. Add Kedro to your Pandas Workflow - Short # Sometimes python scripts/notebooks take a long time to run, let kedro automatically save your datasets so that you can maintain your production code with ease. Lets take a pipeline with an issue 30 minutes in and solve the issue in 5 mintues.
Check out nbdd0121 and their project wsld. WSL Daemon - Stable X11 connection and time synchronisation for WSL2
Just starred dunk by darrenburns. It’s an exciting project with a lot to offer. Prettier git diffs in the terminal 🎨
If you’re into interesting projects, don’t miss out on dagger, created by dagger. An engine to run your pipelines in containers
Gramformer by PrithivirajDamodaran is a game-changer in its space. Excited to see how it evolves. A framework for detecting, highlighting and correcting grammatical errors on natural language text. Created by Prithiviraj Damodaran. Open to pull requests and other forms of collaboration.
I like WaylonWalker’s project markata. A plugins all the way down static site generator written in python. Plugins all the way down means that you can completely change the behavior of how it works by swapping plugins, installing new ones, or creating your own all in python.
I came across awesome-tuis from rothgar, and it’s packed with great features and ideas. List of projects that provide terminal user interfaces
I’m really excited about dirty-equals, an amazing project by samuelcolvin. It’s worth exploring! Doing dirty (but extremely useful) things with equals.
If you’re into interesting projects, don’t miss out on pjs, created by bashbunni. A basic CLI for regularly updating your project’s status
Just starred nvim-terminal.lua by norcalli. It’s an exciting project with a lot to offer. A high performance filetype mode for Neovim which leverages conceal and highlights your buffer with the correct color codes.
I’m really excited about kondo, an amazing project by tbillington. It’s worth exploring! Cleans dependencies and build artifacts from your projects.
Check out snapdrop by SnapDrop. It’s a well-crafted project with great potential. A Progressive Web App for local file sharing
I like mizlan’s project iswap.nvim. Interactively select and swap function arguments, list elements, and much more. Powered by tree-sitter.