-
💭 Billy Basso on code architecture of Animal Well!...
Here's my thought on 💭 Billy Basso on code architecture of Animal Well! - YouTube Great conversation with Billy Basso the creator of Animal Well on the code…
-
💭 Just fucking code.
Here's my thought on 💭 Just fucking code. This is great, beautifully captures a modern backend view of https://motherfuckingwebsite.com/. I honestly…
-
💭 k8s-monitoring-helm/charts/k8s-monitoring/docs/e...
Here's my thought on 💭 k8s-monitoring-helm/charts/k8s-monitoring/docs/examples/privat... k8s-monitoring requires setting imageregistry and pullsecrets twice…
-
💭 No docs, no bugs
Here's my thought on 💭 No docs, no bugs Bugs exist when your test-enforced implementation fails to match the behavior described in your documentation.…
-
💭 The Subtle Details That Make Hollow Knight Great...
Here's my thought on 💭 The Subtle Details That Make Hollow Knight Great - YouTube So many small details go into making hollow knight such a great game, but…
-
web wakelock
I'm trying to replace my usage of google inline search apps with real apps, today I used a stopwatch to time some things out at work by opening stopwatch. This was something I just wanted running in a tab on another screen, it was not timing running code or anything, I was using it as a reminder to check browser caches every 5 minutes or so for some testing. So tonight I whipped up a stopwatch , clock and timer , all of which are using the wakelock API to keep the screen on while the app is r
-
💭 Python: The Documentary [OFFICIAL TRAILER] - You...
Here's my thought on 💭 Python: The Documentary [OFFICIAL TRAILER] - YouTube Excited to hear this story, they have so many key players in the trailer this…
-
💭 Chris Biscardi's Digital Garden
Here's my thought on 💭 Chris Biscardi's Digital Garden Interesting take on kubernetes from a front end perspective. All valid arguments to me, and really…
-
m9a devlog 1
It's sad to see textualize.io close the doors, but textual is still alive and maintained as a n open source project. I tried to use it very early, and struggled, this was before docs and tutorials really existed, before a lot of the widgets and components existed. Then as we all do I got busy and moved on to other things in life and did not have the capacity to build TUIs. I like tuis I like tuis, I like staying in the terminal. I use lf daily to move files around when I want something more
-
💭 What's next? – Will McGugan – Will McGugan's ess...
Here's my thought on 💭 What's next? – Will McGugan – Will McGugan's essays So it’s back to plan A: taking a year off. I plan on using this time to focus on…
-
💭 Too much magic – Will McGugan – Will McGugan's e...
Here's my thought on 💭 Too much magic – Will McGugan – Will McGugan's essays Now “too much magic” is not the same thing as “bad magic”, although they are…
-
💭 Markdown's biggest hater | Knut Melvær - YouTube
Here's my thought on 💭 Markdown's biggest hater | Knut Melvær - YouTube Dang Strong takes against markdown here with a strong push for bespoke content…
-
💭 The Rule - YouTube
Here's my thought on 💭 The Rule - YouTube Under 2000 everything is happy, green field. Any decision you have made is relatively easy to back out of (barring…
-
💭 THE STANDUP - Coding DIRTY Episode 7
Here's my thought on 💭 THE STANDUP - Coding DIRTY Episode 7 "Gradually roll out your releases to a small group of people" ~ roughly what prime said (I'm…
-
grafana dashboards as k8s configmap
I'm trying to learn proper logs, monitoring, otel, and grafana. Today I imported a bunch of pre-made k8s dashboards and made a few of my own for specific apps, and it made me want to know how I can turn my own custom dashboards into infrastructure as code. Turns out grafana makes it pretty easy to do this, if you have the grafana dashboard sidecar running. It will pick up any ConfigMap with the grafana_dashboard label and import it. Go to Dashboards -> Pick a Dashboard -> Export -> JSON. imag
-
fix feed descriptions
Today I fixed a bug in markata that has been occurring for a few months where the description for posts come out as None if coming from cache, the issue was a pretty simple check and pull properly from cache. This fixes all the descriptions in feeds and metadata on the post. Better description While in there we went ahead and improved our get_description to more accurately return plain text without escaped characters, remove cutoff words, and add an elipsis if the description cuts off the text.
-
ruff single line import
I've been using ruff to lint my python code for quite awhile now, I was pretty early to jump on it after release. Some of my projects have had a nice force-single-line setting and some have not. I dug into the docs and it was not clear what I needed to make it work. Turns out I was missing I sort in the select list.
-
💭 Recovering from Disaster with Seth Eliot
Here's my thought on 💭 Recovering from Disaster with Seth Eliot This episode really got me thinking about the difference between HA and DR and my approach to…
-
💭 Red-Knot: Ruff's new Type Checker - Talk Python ...
Here's my thought on 💭 Red-Knot: Ruff's new Type Checker - Talk Python Live Stream - ... Astral is doing great things in the python industry. They are…
-
💭 Playground | Red Knot
Here's my thought on 💭 Playground | Red Knot ty, has a playground running at types.ruff.rs. You can edit code in there and see what the type checker results…
-
Markata list posts by year
I was looking back at my [[analytics]] page today and wondered what were my posts about back at the beginning. My blog is managed by [[markata]] so I looked at a few ways you could pull those posts up. Turns out it's pretty simple to do, use the markata map with a filter. !!! Note the filter is python eval that should evaluate to a boolean, all of the attributes of the post are available to filter on. Result You could use the command as well right within your shell and the same map and filte
-
💭 pypi package ty
Here's my thought on 💭 pypi package ty Astral is working on some great things around python, they have created a high standard for python tooling built on…
-
💭 Chris Coyier
Here's my thought on 💭 Chris Coyier The web is everywhere, its the one true write once and run anywhere platform. Millions sunk into browser performance and…
-
portal-platformer-devlog-1
Here is the current state of my platformer yet to really be named, I want to make something in between hollow knight and portal. Starting I made one once in make code arcace on a pybadge. It was quick and dirty, but fun to work on. It had the basic of blocks that I could move, blocks i could put a portal onto, and a goal for each level. Some levels you can just walk through and some levels required you to really think about where to place the portal. History So this version of the game is a l
-
💭 Louis Rossmann's Keynote Speech on Right to Repa...
Here's my thought on 💭 Louis Rossmann's Keynote Speech on Right to Repair - YouTube Great talk from Lous Rossman! TLDR you don't own it, and stop pointing…
-
💭 Marp: Markdown Presentation Ecosystem
Here's my thought on 💭 Marp: Markdown Presentation Ecosystem Intersting markdown presentation tool, Looks very simple. I really like split on much better…
-
💭 Build UIs that don't suck - YouTube
Here's my thought on 💭 Build UIs that don't suck - YouTube How to make an entire clickable without presenting the entire content of the card as the link…
-
💭 Let's Talk Open Source - Prime Reacts - YouTube
Here's my thought on 💭 Let's Talk Open Source - Prime Reacts - YouTube This is an absolute banger of a review by prime and Dylan Beetle. I love the similar…
-
backup distrobox image
Today I'm upgrading my distrobox, but don't want to end up in a situation where I can't get anything done becauase I work out of my distrobox.
-
💭 Diun
Here's my thought on 💭 Diun Diun, looks like a very interesting tool to monitor for image updates, it does not make any change, it only makes notifications.…
-
💭 Keel
Here's my thought on 💭 Keel Keel looks interesting, I might give it a try as a simple image updater. I'm unsure if it fits my gitops patterns though. I like…
-
Changing k8s Storage Class - Migration Job
I'm setting up longhorn in my homelab, and I ran into an issue where I initially setup some pvcs under longhorn, and later realized that to get longhorn to snapshot and backup I needed to hand edit volumes after the fact or change storage class. I'm all in on gitops so option 1 was not an option. So changing storageclass it is. Now the issue is that you CANNOT mutate storageclass on a provisioned pvc, it is an immutable attribute. Migration Job This migration job will create a new pvc with the
-
💭 World's easiest Live dashboard with htmx - YouTu...
Here's my thought on 💭 World's easiest Live dashboard with htmx - YouTube Damn he makes this easy. I did not know about . yes there is waste in requesting…
-
💭 Redis configuration | Docs
Here's my thought on 💭 Redis configuration | Docs redis has all of their default self documented configs hosted here. You can pull the default redis.conf…
-
💭 hotel_bookings.csv
Here's my thought on 💭 hotel_bookings.csv nice dataset to use for example / test projects. I'm using it to play with duckdb currently. !!! note This post is…
-
💭 The State of Secrets Sprawl 2025
Here's my thought on 💭 The State of Secrets Sprawl 2025 Good report, make notes later !!! note This post is a thought . It's a short note that I make about…
-
💭 PyApp
Here's my thought on 💭 PyApp I think I'm getting really close to having a good workflow setup for using pyapp. Such an amazing project to allow developers…
-
💭 CSS Battle - Re-create an Image with CSS in the ...
Here's my thought on 💭 CSS Battle - Re-create an Image with CSS in the Fewest Charact... Watching Wes fiddle through this with what a sane person would write…
-
pre-commit exclude
I run tailwind for my personal blog, whenever I update it, pre-commit goes in and fixes end of file. I'm sick of these things fighting each other, since it is a generated app it is going to et ignored from pre-commit from now on.
-
💭 python-build-standalone/.github/workflows/releas...
Here's my thought on 💭 python-build-standalone/.github/workflows/release.yml at main ... Astral uses just in CI, kinda cool to stumble into this setup in the…
-
💭 valkey-io/valkey: A flexible distributed key-val...
Here's my thought on 💭 valkey-io/valkey: A flexible distributed key-value datastore t... valkey appears to be the largest open source fork of redis that was…
-
💭 valkey · PyPI
Here's my thought on 💭 valkey · PyPI python bindings for valkey, forked from redis. one notable difference I see from redis is that you can install with…
-
newlines in css before
I'm building in a [[ fragmentions ]] implementation into my blog, I wanted to add some text before the fragment to indidate that it was the highlighted fragment that someone may have intended to share with you. To get a newline in a I need to use and . Here is what it looks like on my not yet live implementation of fragmentions. screenshot-2025-02-15T15-43-06-372Z.png
-
fragmention
This post is still WIP. https://indieweb.org/fragmention##Challenges I've been digging through David Bushell's blog over the past day, he has some really good ideas about blogging and webdev. One really interesting post I came accross is url-fragment-text-directives . I've long had id's linked on my headings, though sometimes broken, or now showing the link, I've done my best to include them. Fragmentions extend this to allow any text to be linkable like this. fragmentioner ui: https://github
-
💭 Fragmentions - linking to any text
Here's my thought on 💭 Fragmentions - linking to any text I can't believe I've never see this Tim Berners-Lee quote, but I can't unsee it and will be…
-
💭 hype cp | Hypermedia Copy & Paste
Here's my thought on 💭 hype cp | Hypermedia Copy & Paste This is a super cool reference for htmx snippets. I really like how he has a couple of errors on…
-
💭 AI workloads on Talos Linux - Sidero Labs
Here's my thought on 💭 AI workloads on Talos Linux - Sidero Labs cool article for setting up talos linux with an nvidia gpu. What a wild world it we are…
-
💭 Proompted Kiddies Learning The Hard Way - YouTub...
Here's my thought on 💭 Proompted Kiddies Learning The Hard Way - YouTube Damn prime makes an interesting point near then end of this video. He's seen a…
-
testing nvim installs
Testing fresh nvim installs can be a pain, and hard to di without borking your known good install. I've been using to run a test nvim in a sandbox that wont bork my main install. This usually runs for me in under a minute, can be down under 15s if I remove some of the TreeSitter installs at the end. This beats a full docker build of my full devtainer to test out nvim packaging woes. I've started to use this as a recipe to run before deploying a new version of my dotfiles. So far its pairi
-
💭 Colors - Core concepts - Tailwind CSS
Here's my thought on 💭 Colors - Core concepts - Tailwind CSS Tailwind has the best color system, very well done. Even if you don't use it, it serves as a…
-
💭 Developer Productivity, v2 with ThePrimeagen | P...
Here's my thought on 💭 Developer Productivity, v2 with ThePrimeagen | Preview - YouTube Big fan of Primes setup. I was not far off of his setup before he…
-
💭 Jhey ʕ·ᴥ· ʔ: "breakin' down classics CSS backgro...
Here's my thought on 💭 Jhey ʕ·ᴥ· ʔ: "breakin' down classics CSS background-image + ba... Jhey has the coolest webdev demos! !!! note This post is a thought…
-
markdown split panel
Today I was playing with markdown split panels. I want to be able to compare and constrast occasionually, today the inspiration hit to do this using admonitions. screenshot-2025-02-04T02-28-46-750Z.png {.more-cinematic} {.rounded-xl } !!! Note Mobile Users 🔄 The Markdown This is what I am going for, one admonition that is easy to remember, that nests inside of itself , and I can put as much markdown on the inside that I want. Here is the result of that markdown. !!! vsplit I Have two opinions {
-
tailwind aspect
I've been back to putting some images on my blog lately and thinking about making them a bit thinner through the use of aspect ratio for simplicity. I'm leaning pretty heavy on tailwindcss these days due to some weird quirks of markdown-it-attrs I cannot have slashes in classes from markdown so I made a class to achieve this. Example screenshot-2025-01-31T14-50-00-094Z.png {.cinematic}
-
markdown it attrs with slashes dont work
Attrs does not like '/' characters in its classes, so to use some tailwind classes with custom values we must make new classes in our tailwind input css. Given the following markdown with attrs added to the image and to the paragraph block. We get the following output with only the middle one working correctly. screenshot-2025-01-31T14-50-00-094Z.png {.aspect-[2.39/1]} screenshot-2025-01-31T14-50-00-094Z.png {.cinematic} {.cinematic} screenshot-2025-01-31T14-50-00-094Z.png !!! Note The inline ve
-
markata search
A side effect of [[ markata-didyoumean ]] is that we are able to implement some rudimentary search based on slug, title, tags, and description. screenshot-2025-01-31T14-50-00-094Z.png {.more-cinematic} I made a video of the early work on using this side effect to search for content on markata.dev. Replay markata-search-1.mp4 This was first implemented to solve 404 pages giving users a way to try to find the page that they tried to access. But it turned out to be a decent way to search through t
-
Markata DidYouMean
Coming in Markata 0.9.1 is far better documentation. i.e. Documentation that actually exists for everything. As part of poking around I realized that I often go to look up the docs for a plugin and forget that the path is , sometimes I might try or or or I might even forget the plugin name exactly and try something like and get a 404. So I added a plugin to markata that takes care of this. screenshot-2025-01-31T14-53-31-264Z.png {.more-cinematic} I made a quick recording of this earl
-
💭 Why is Kubernetes everywhere? | Kelsey Hightower...
Here's my thought on 💭 Why is Kubernetes everywhere? | Kelsey Hightower - YouTube Kelsey says several times in this interview, you don't need kubernetes. If…
-
💭 Models - Pydantic
Here's my thought on 💭 Models - Pydantic I came accross from_attributes today it allows creation of pydantic models from objects such as a sqlalchemy…
-
pesos
Pesos is the act of Publish Elsewhere Syncicate to Own Site. It is an indieweb concept that I recently started applying to my own site. here does it skip again !!! note See https://indieweb.org/PESOS for more information, they have a ton of information about the indieweb In short it is the concept of pulling data from other sites that you use and republishing it to your own site. This gives a single source of information for you, and protection against sites and apis changing or rug pulling.
-
💭 Top Python libraries of 2024 | Tryolabs
Here's my thought on 💭 Top Python libraries of 2024 | Tryolabs Really good listicle of new modern top python libraries from 2024. Very well done article…
-
💭 Choosing color palettes — seaborn 0.13.2 documen...
Here's my thought on 💭 Choosing color palettes — seaborn 0.13.2 documentation Good overview of seaborn color palettes. They have all sorts of different…
-
I fixed lists in my blog
A small improvement to my blog today. I was checking out my [[ now ]] post and noticed that lists have left padding but no discs or numbers. I popped open my added these lines and rebuilt. And rebuild, which I actually do with [[ casey-just ]], but showing the command here for clarity. WHY the applies {.bg-blue-900 .border-r-8 .border-black .rounded-xl .max-w-xl .p-6 .font-bold} Dude, you know that @apply is an anti-pattern in tailwind right? {.bg-green-900 .border-l-8 .border-black .rounded-x
-
💭 poolers.postgresql.cnpg.io CRD metadata.annotati...
Here's my thought on 💭 poolers.postgresql.cnpg.io CRD metadata.annotations Too long ·... I've never seen or needed to use a serversideapply in kubernetes…
-
emoji in headless chrome in docker
I recently noticed that my og images were missing emoji. They were taken using headless chrome in a container. I fixed it by adding an emoji font in the containerfile / dockerfile. Before Here's what they were looking like with broken emoji fonts. image After And now with the fixed emoji font. image I put thought bubbles on my thoughts posts and stars on my github stars posts
-
💭 Keycloak
Here's my thought on 💭 Keycloak Keycloak looks like an interesting way to setup sso. It's part of the cncf so it's got a good backing. I want something…
-
💭 The Worst Thing You Can Do For Your Career - You...
Here's my thought on 💭 The Worst Thing You Can Do For Your Career - YouTube Don't stop learning! Stop trying because you have a doomer outlook on ai, llms,…
-
💭 The Future of HTMX - YouTube
Here's my thought on 💭 The Future of HTMX - YouTube I like the charts that Theo brings to to these videos. Shout out for a positive k8s reference and not…
-
💭 Availability
Here's my thought on 💭 Availability nice overview of availability measurements and what they really mean. The crazy world we live in today depends on so…
-
one-shot-s3-cleanup
So I made a mistake in an app I am working on and ended up creating thumbnails of thumbnails, and thumbnails of thumbnails of thumbnails... etc. I was able to delete them all, but I wanted to make a one-shot script to do it. screenshot-2025-01-31T21-20-56-934Z.png One Shot App I got the idea of the one shot app from Simon Willison and replicated his setup in a chatgpt project screenshot-2025-01-12T18-16-57-443Z.png Initial Prompt s3_cleanup Here is the result of the s3_cleanup script. It ende
-
nvim-manager
I recently built a cli application as a nearly-one-shot-app called nvim-manager . It manages your nvim dotfiles install. screenshot-2025-01-31T21-21-40-707Z.png {.more-cinematic} Why {.chat-left} Don't we have stow? {.chat-right} Ya, thats not enough. {.chat-left} Why not?? {.chat-right} Inevitably shit goes sideways and I break my vim install. How is nvim manager any better nvim-manager allows you to install pinned versions of your dotfiles, your friends dotfiles, and distros in ~/.config. Thi
-
postiz-file-upload
Today I learned that the docs in postiz are a bit behind, (fantastic docs btw, they are to the point, and cover almost all of what you need). The docs state that you need to include an R2 bucket to handle uploads. This issue shows that more work has been done, one of which is local storage. The compose file they use in the quick start has the required env variables to set this up. looking into my running instance I can see my images there.
-
💭 V2 suddenly getting client-not-enrolled today - ...
Here's my thought on 💭 V2 suddenly getting client-not-enrolled today - X API - X Deve... Just tried using my twitter api key for the first time in quite…
-
💭 bic | Static blog generator, in bash
Here's my thought on 💭 bic | Static blog generator, in bash Intereresting someone built a blog generator in bash. it comes with normal markdown to html,…
-
💭 Animate to height: auto; (and other intrinsic si...
Here's my thought on 💭 Animate to height: auto; (and other intrinsic sizing keywords)... Css is getting so good, new things like interpolate-size are making…
-
💭 cyclotruc/gitingest: Replace 'hub' with 'ingest'...
Here's my thought on 💭 cyclotruc/gitingest: Replace 'hub' with 'ingest' in any github... Gitingest has a python package on pypi that you can run with uvx,…
-
💭 Cracking the Code | Open Sauce 2024 - YouTube
Here's my thought on 💭 Cracking the Code | Open Sauce 2024 - YouTube Great panel of software folks at open sauce. It was interesting hearing from all these…
-
💭 GitHub - ngalaiko/tree-sitter-go-template: Golan...
Here's my thought on 💭 GitHub - ngalaiko/tree-sitter-go-template: Golang template gra... This setup fixed my nvim syntax highlighting in helm templates. !!!…
-
💭 Owning It · Matthias Ott
Here's my thought on 💭 Owning It · Matthias Ott I can say I had the same kind of feelings when I first saw something called "Own Your Web" being run in…
-
💭 Realign – Chris Coyier
Here's my thought on 💭 Realign – Chris Coyier Chris Coyier had a small re-align on his site, some good nuggets in here. I like the idea of having a photo of…
-
💭 About Me – Harry Roberts – Web Performance Consu...
Here's my thought on 💭 About Me – Harry Roberts – Web Performance Consultant I've only recently learned what colophon means, and I really like to read…
-
💭 Own Your Web • Buttondown
Here's my thought on 💭 Own Your Web • Buttondown I'm a sucker for good own your own shit on the web blogs, and Matthias Ott has a top notch one here. The…
-
/colophon
Colophon a page that describes how the site is made, with what tools, supporting what technologies Author Waylon Walker's Profile Picture All posts on this site are written by Waylon Walker , the typical content has changed and evolved over time. I go back and make a few corrections, but for the most part things stay pretty much as they were published originally. see more in [[ about ]] tech This site is a static site build with my own static site generator [[ markata ]], [[ thoughts ]] or as
-
slow nfs performance
I'm running a two node k3s cluster at home, I thought I could simply mount an nfs share on each worker node, and essentially have the same storage accross all nodes. I'm already learning why this is not reccommended. screenshot-2025-01-31T21-18-43-543Z.png Slow I've been running some cronjobs and argo workflows on the second node for awhile, these are things that run in the background and I don't care if they take a bit longer to keep my master node freed up for more critical work. I just sta
-
💭 slash pages
Here's my thought on 💭 slash pages A nice list of slashpages you might want to consider including / aliasing / 301ing. These feel like nice things to setup…
-
💭 We need to have a talk... - YouTube
Here's my thought on 💭 We need to have a talk... - YouTube Theo does a fantastic history of serverless here. Kubernetes shit Theo can't have an infra video…
-
💭 Why Your Backend Shouldn't Serve Files - YouTube
Here's my thought on 💭 Why Your Backend Shouldn't Serve Files - YouTube Lane from boot.dev madde this fantastic video about serving files on the internet.…
-
💭 The beautiful sentence that is the web
Here's my thought on 💭 The beautiful sentence that is the web Nicely worded Cassidy! Javascript can be too much, it can bog down low powered devices, we can…
-
💭 How to configure base url for all requests using...
Here's my thought on 💭 How to configure base url for all requests using HTMX? - Stack... Today I learned how to configure the baseurl for htmx using the…
-
💭 Addy Osmani: "Tip: Chrome DevTools can override ...
Here's my thought on 💭 Addy Osmani: "Tip: Chrome DevTools can override the content of... WTF, you can just change a server response from devtools and update…
-
💭 kitze 🚀 on X: "holy fk I thought package.json wa...
Here's my thought on 💭 kitze 🚀 on X: "holy fk I thought package.json was bad but TIL ... kitze hating on python packaging in new ways. Python packaging has…
-
💭 4 Tips for Building a Production-Ready FastAPI B...
Here's my thought on 💭 4 Tips for Building a Production-Ready FastAPI Backend - YouTube Great list of 4 tips for running fastapi applications. Keep routes…
-
💭 Building Python tools with a one-shot prompt usi...
Here's my thought on 💭 Building Python tools with a one-shot prompt using uv run and ... This is really interesting, the lazy uv scripts are really becoming…
-
💭 Status | Depot
Here's my thought on 💭 Status | Depot Depot's uptime seems to be great. I definitely hit some issues with it this afternoon 12/24/24 that were not…
-
💭 Deploy to Fly using a Depot builder
Here's my thought on 💭 Deploy to Fly using a Depot builder Here the integration to depot appears to be opt in using the flag on . This must have changed…
-
💭 Depot
Here's my thought on 💭 Depot Just learned about depot today ironically because it seems to be down and fly is using them under the hood to do the container…
-
💭 Cursor + Windsurf Settings to 5x AI's Output Qua...
Here's my thought on 💭 Cursor + Windsurf Settings to 5x AI's Output Quality (Works wi... This was an eye opening video into agentic editing workflows.…
-
💭 Talking with Typecraft - YouTube
Here's my thought on 💭 Talking with Typecraft - YouTube This is a pretty great episode talking shop with typecraft. They talk setups, cameras, content…
-
💭 PEP 723 – Inline script metadata | peps.python.o...
Here's my thought on 💭 PEP 723 – Inline script metadata | peps.python.org PEP 723 is what is inspiring all of these lazy self installing python scripts,…
-
💭 Switching from virtualenvwrapper to direnv, Star...
Here's my thought on 💭 Switching from virtualenvwrapper to direnv, Starship, and uv I've kinda fallen out of using direnv now that a lot of my projects use…
-
💭 Lazy self-installing Python scripts with uv
Here's my thought on 💭 Lazy self-installing Python scripts with uv I really like Trey's steps to making an executable python script with uv his old process…
-
💭 docker context (and an issue to question your sa...
Here's my thought on 💭 docker context (and an issue to question your sanity) | Pype.dev Dang context can really cause you to pull your hair out. Context…
-
thoughts 0.0.4
This is such an improvement to the backend of my website it warrants a blog post of celebration. For far too long I've been dealing with a tiny ass edit form on thoughts. I tend to not edit them, and try to get them right in one go. This is kinda the point of a thought, its a quick post meant to be the size of a tweet, but sometimes I'm leaving thoughts on a video or long post and want to make sure I have a good save point, but I just keep the thing in draft and hope I don't loose if for far
-
💭 Styling better custom inputs with Dave Rupert - ...
Here's my thought on 💭 Styling better custom inputs with Dave Rupert - YouTube Reminder to tune in later, can't watch now, but saw a link on Dave's blog.…
-
Links rely on color to be distiniquishable
Today i got hit by this accessibility issue on my site. Low contrast links are not distiniquishable. I had not seen this error title before it was new to me, maybe I have bad memory or maybe it's new to me. screenshot-2024-12-18T02-25-53-014Z.png I ended up dropping the background color of the site down a notch as I didn't really care for the semi-dark brown anyways. I'm liking the near black much better now. screenshot-2024-12-18T02-45-53-807Z.png Now I got that 100 A11y score in lighthouse
-
💭 Add a healthcheck to your FastAPI app | Pype.dev
Here's my thought on 💭 Add a healthcheck to your FastAPI app | Pype.dev Nice example of adding a healthcheck to fastapi, and integrating it with docker.…
-
💭 casey/just: 🤖 Just a command runner
Here's my thought on 💭 casey/just: 🤖 Just a command runner new versions of just now come with color variables already set. !!! note This post is a thought…
-
💭 pipedream/justfile at main · thechangelog/pipedr...
Here's my thought on 💭 pipedream/justfile at main · thechangelog/pipedream I found this nugget in thechangelogs justfile, it lets you add color to your…
-
💭 Hurl - Run and Test HTTP Requests
Here's my thought on 💭 Hurl - Run and Test HTTP Requests Hurl was mentioned by @gerhard on the latest changelog and Friends . Looks like a feature rich…
-
💭 watchfiles
Here's my thought on 💭 watchfiles Simple, modern and high performance file watching and code reload in python. !!! note This post is a thought . It's a…
-
💭 Changelog on X: "🗣️@dhh on Kubernetes' migration...
Here's my thought on 💭 Changelog on X: "🗣️@dhh on Kubernetes' migration pitch: “Oh, w... switching cloud providers, theres no easy way. K8s was supposed to…
-
💭 Inside Argo: Automating the Future - YouTube
Here's my thought on 💭 Inside Argo: Automating the Future - YouTube This is a really amazing documentary of argocd. I got into k8s pretty late in the game.…
-
💭 Introduction - bootc
Here's my thought on 💭 Introduction - bootc bootc is the underlying technology that enables OS's like bazzite, and Aurora from the uBlue ecosystem. !!! note…
-
💭 Wes Bos on X: "CSS Anchors: flip a tooltip to th...
Here's my thought on 💭 Wes Bos on X: "CSS Anchors: flip a tooltip to the bottom when ... These css anchors are crazy that you can do this with html and not a…
-
price an stl print on slant3d
I've been playing with 3d printing some items through the slant3d api. I've been pricing out different prints by running a slice request through their api. make a project I've been using uv for project management. It's been working well for quick projects like this while making it reproducible, I'm still all in on hatch for libraries. Get an api key You will need an api key from the slant api, which currently requires a google account and a credit card to create. slicing an stl with teh slant a
-
💭 Production-ready Python Docker Containers with u...
Here's my thought on 💭 Production-ready Python Docker Containers with uv Hynek has a sick dockerfile setup for using uv in python projects. !!! note This…
-
💭 Proper handling of None in WHERE condition · Iss...
Here's my thought on 💭 Proper handling of None in WHERE condition · Issue #109 · fast... SQLModel models ship with an , and that you can use to compare to…
-
💭 Cluster API book
Here's my thought on 💭 Cluster API book Cluster API book !!! note This post is a thought . It's a short note that I make about someone else's content…
-
💭 Document how to provide a negative number as an ...
Here's my thought on 💭 Document how to provide a negative number as an argument · fas... Today I learned that you cannot pass negative integers as values to…
-
💭 Aaron Francis on X: "📣 We're excited to announce...
Here's my thought on 💭 Aaron Francis on X: "📣 We're excited to announce Mastering Pos... Aaron Francis is a database master, pumped for thsi dude and all…
-
💭 Will McGugan on X: "New Version of #Textual rele...
Here's my thought on 💭 Will McGugan on X: "New Version of #Textual released! 😎🤓🦾 The ... This new demo of textual is wildly awesome, so many widgets and…
-
💭 Pin versions of dependencies · Issue #2200 · Koz...
Here's my thought on 💭 Pin versions of dependencies · Issue #2200 · Kozea/WeasyPrint weazyprint was throwing me some errors, turns out that it's currently…
-
💭 Support regex substitution command · Issue #2232...
Here's my thought on 💭 Support regex substitution command · Issue #2232 · helix-edito... Here is a really good vim substitute with regex capture groups,…
-
💭 Support regex substitution command · Issue #2232...
Here's my thought on 💭 Support regex substitution command · Issue #2232 · helix-edito... Interesting take on refactoring the whole codebase from your…
-
💭 Database Remote-Copy Tool For SQLite (draft)
Here's my thought on 💭 Database Remote-Copy Tool For SQLite (draft) Simon shared a really cool new utility tool for sqlite ispired by rsync. It checks…
-
💭 distrobox/docs/usage/distrobox-assemble.md at ma...
Here's my thought on 💭 distrobox/docs/usage/distrobox-assemble.md at main · 89luca89/... This page is gold. It lays out all of the distrobox assemble api…
-
💭 add init hooks and exported bins · WaylonWalker/...
Here's my thought on 💭 add init hooks and exported bins · WaylonWalker/devtainer@2e4c6da Today I learned that you can use init_hooks to access host machine…
-
k3s config after first install
-
💭 Alternatives to Using Pure Black (#000000) for T...
Here's my thought on 💭 Alternatives to Using Pure Black (#000000) for Text and Backgr... A nice set of blacks to use in web design. Subtle variants off of…
-
💭 Wes Bos on X: "Are you using position: absolute;...
Here's my thought on 💭 Wes Bos on X: "Are you using position: absolute; to overlap el... This is a pretty incredible use of css grid to overlay items overtop…
-
💭 Buttery icons
Here's my thought on 💭 Buttery icons Some sick looking icons no attribution needed. !!! note This post is a thought . It's a short note that I make about…
-
💭 Installing Python - uv
Here's my thought on 💭 Installing Python - uv now can install python for you. is inspired by rust's cargo, an all in one fast package and installation…
-
Obsidian-new-file
Wikilinks are a core concept within obsidian to link to documents by [[slug]] wrapped in double square brackets. These are commonly used within wiki site generators. Obsidian gives you a keybinding to go to that file, but if it does not exist it will create the file for you in the root of the project. It's a nice way to quickly make new documents.
-
Slug
A slug is the part of the url that comes after the domain. Commonly matches the file name of a markdown file many blogging systems. These are typically human readable, unique identifiers for pages within the site.
-
💭 Hotkey to open link under at the text cursor pos...
Here's my thought on 💭 Hotkey to open link under at the text cursor position while ty... Obsidian has a go to definition like feature, the keybind is…
-
Obsidian-go-to-definition
It was not obvious to me, but if you have a wikilink such as [[trying-obsidian]], you can jump to the file in obsidian, just like you can with lsp go to definition, the keybinding is alt + enter.
-
Obsidian Using Templater Like Copier
I've long used copier to create all of my posts for my blog, and it works really well for my workflow. I think of a title, call a template, and give it a title. out of the box obsidian did not seem to work this way. It seems like it wants me to right click a file tree and make a new file using the tree, this is not my jam. Here is what I came up with to replace my til template. is a return value, and it gets placed directly into the place it is in the file creates a tab-index point so I can
-
Obsidian Image Converter
I'm giving obsidian a go as an editor for my blog and one of the main things I want to fix in my workflow is the ability to quickly drop in images. on first look through the community plugins I found Image Converter. I set it up to convert to webp and drop them in a git submodule. I may make it something other than a git repo in the future, but I've learned that adding images to my blog repo quickly makes it heavy and hard to clone on other machines. obsidian-image-converter-20240731211310793
-
💭 How Fly.io uses Docker (without Docker) - YouTub...
Here's my thought on 💭 How Fly.io uses Docker (without Docker) - YouTube Docker no Docker, what!!! So fly.io uses Dockerfiles to deploy your app, but no…
-
💭 Sqlite-jiff
Here's my thought on 💭 Sqlite-jiff Sqlite is getting rust extensions now, and datetimes make it totally worth if if they work well and and fast, two things…
-
💭 Text cursor bug in my Chrome browser that causes...
Here's my thought on 💭 Text cursor bug in my Chrome browser that causes the blinking ... today I learned that there is an accessibility feature in chrome…
-
💭 python is simultaneously at the top and the bott...
Here's my thought on 💭 python is simultaneously at the top and the bottom of the tier... Hard to argue this take, happy to see that its at the top. With it…
-
💭 Command Line Interface Guidelines
Here's my thought on 💭 Command Line Interface Guidelines This is a pretty sick set of guidelines to help you write better cli programs, I'm definitely coming…
-
💭 Render-blocking on purpose
Here's my thought on 💭 Render-blocking on purpose You can explicitly make a script render blocking, nothing will be rendered until this js is ready. !!! note…
-
💭 FastHX
Here's my thought on 💭 FastHX Very interesting approach to htmx and fast api. It uses separate decorators for returning template partials and json that can…
-
💭 FastHX
Here's my thought on 💭 FastHX Very interesting approach to htmx and fast api. It uses separate decorators for returning template partials and json that can…
-
k8s kustomize diff
I've started leaning in on kubernetes kustomize to customize my manifests per deployment per environment. Today I learned that it comes with a diff command. You can enable color diffs by using an external diff provider like colordiff. You might need to install colordiff if you don't already have it. Now I can try out kustomize changes and see the change with kustomize diff.
-
💭 svenstaro/miniserve: 🌟 For when you really just ...
Here's my thought on 💭 svenstaro/miniserve: 🌟 For when you really just want to serve ... miniserve is a sweet http server, replacement for . It's fast,…
-
kubectl dash k
Kubernetes ships with a feature called kustomize that allows you to customize your manifests in a declarative way. It's a bit like helm, but easier to use. I…
-
diskcache as debounce
I've been using fastapi more and more lately and one feature I just started using is background tasks [[ thoughts-333 ]]. !!! seealso basic diskcache example [[ python-diskcache ]] One Background Task per db entry I am using it for longer running tasks and I don't want to give users the ability to spam these long running tasks with many duplicates running at the same time. And each fastapi worker will be running in a different process so I cannot keep track of work in memory, I have to do it in
-
💭 Background Tasks - FastAPI
Here's my thought on 💭 Background Tasks - FastAPI fastapi comes with a concept of background tasks which are functions that can be ran in the background…
-
💭 markdown-it-pyrs · PyPI
Here's my thought on 💭 markdown-it-pyrs · PyPI markdown it py running in rust claims to be 20x faster. I'll definitely look into this if markdown it py is…
-
💭 DiskCache API Reference — DiskCache 5.6.1 docume...
Here's my thought on 💭 DiskCache API Reference — DiskCache 5.6.1 documentation diskcache has a peekitem method that allows you to lookup the expire_time of a…
-
💭 Kustomize: The Best Way to Manage Your Kubernete...
Here's my thought on 💭 Kustomize: The Best Way to Manage Your Kubernetes Configs - Yo... Great intro into kustomize. This helped me get started with…
-
Install sealed-secreats via manifest
Yesterday I realized that I have overlooked the default installation method of the sealed secrets controller for [[ kubernetes-kubeseal ]] this whole time an jumped straight to the helm section. I spun up a quick [[ kind-cluster ]] and had it up quickly. I can't say this is any better or worse than helm as I have never needed to customize the install. According to the docs you can customize it with [[ kustomize ]] or helm.
-
kind cluster
kind {.hoverlink} is a very useful tool to quickly standup and teardown kubernetes clusters. I use it to run clusters locally. Generally they are short lived clusters for trying, testing, and learning about kubernetes. Kind is Kubernetes in Docker, its very fast to get a new cluster up and running. Other than checking a box in docker desktop it is the easiest way currently to get a cluster up and running. I've used docker desktop for k8s before I really developed on k8s and it was buggy at t
-
💭 Find And Replace one eyed kirby
Here's my thought on 💭 Find And Replace one eyed kirby another great use and demo of the one eyed fighting kirby !!! note This post is a thought . It's a…
-
💭 PolyFill Vulnerability is WILD - YouTube
Here's my thought on 💭 PolyFill Vulnerability is WILD - YouTube Damn, supply chain vector attacks are wild. Random guy in Primes stream was getting $40k…
-
💭 Queueing – An interactive study of queueing stra...
Here's my thought on 💭 Queueing – An interactive study of queueing strategies – Encor... Absolutely sick post. This is top tier animated blog posts. This…
-
💭 One Script Tag Just Pwn'd Over 100,000 Websites ...
Here's my thought on 💭 One Script Tag Just Pwn'd Over 100,000 Websites - YouTube Supply chain attacks are so big these days engineers definitely need to take…
-
💭 PyAnnotate: Auto-generate PEP-484 annotations
Here's my thought on 💭 PyAnnotate: Auto-generate PEP-484 annotations pyannotate is a tool that uses runtime types to suggest type annotations to use. Test…
-
💭 tusharsadhwani/yen: Create virtual environments ...
Here's my thought on 💭 tusharsadhwani/yen: Create virtual environments for any Python... Create virtual environments for any Python version, without needing…
-
💭 Where DOESN’T curl run with curl BDFL Daniel Ste...
Here's my thought on 💭 Where DOESN’T curl run with curl BDFL Daniel Stenberg (Changel... Love how Daniel just brushed off the number of netflix tv installs…
-
💭 Releases · stackrox/kube-linter
Here's my thought on 💭 Releases · stackrox/kube-linter A linter for linting kubernetes manifests and help charts. !!! note This post is a thought . It's a…
-
💭 Adam Wathan, Creator of TailwindCSS - YouTube
Here's my thought on 💭 Adam Wathan, Creator of TailwindCSS - YouTube Two inspirational people in one podcast, its cool to see how adam thinks about code,…
-
💭 Episode #323 Best practices for Docker in produc...
Here's my thought on 💭 Episode #323 Best practices for Docker in production - [Talk P... Great listen for anyone interested in productionizing python code…
-
💭 podman requries qemu-system on ubuntu
Here's my thought on 💭 podman requries qemu-system on ubuntu podman requires qemu-system on The fix to this for me was to install qemu-system before podman…
-
💭 Customize and apply backgrounds fast | SVG Backg...
Here's my thought on 💭 Customize and apply backgrounds fast | SVG Backgrounds svgbackgrounds is a really awesome resource for svg things recently featured…
-
💭 argoproj/argo-events: Event-driven Automation Fr...
Here's my thought on 💭 argoproj/argo-events: Event-driven Automation Framework for Ku... Argo events is an event driven automation framework for kubernetes…
-
tailwind post template
Today I am playing around with tailwind, flexing the css muscle and learning how to build new and different layouts with it. I created a new post template that mimics a terminal look in css where I could inject the post title, description, and other frontmatter elements. I think this is a pretty cool layout, I could make a carbon.now.sh {.hoverlink} clone or more realistically I could make it into a template for blog pages and this could become og images. {.mx-auto .block .w-fit .mb-0} Check out
-
💭 Darren Burns 🌱 on X: "Here's an early clip of my...
Here's my thought on 💭 Darren Burns 🌱 on X: "Here's an early clip of my new (work in ... This looks like a sweet tui postman clone. Darren is really rolling…
-
💭 xxHash - Extremely fast non-cryptographic hash a...
Here's my thought on 💭 xxHash - Extremely fast non-cryptographic hash algorithm xxHash is an extremely fast non-cryptographic hash algorithm, working at RAM…
-
💭 xxhash · PyPI
Here's my thought on 💭 xxhash · PyPI I hit an issue with markata where even though a bunch of articles were cached, the site build was still slow because I…
-
Latest Page in Markata
I just implemented a latest blog post link in Markata by asking for the first post slug from the blog feed. The implementation uses the jinja_md plugin to render jinja against the markdown and a tag to redirect. Setting up the feed Feeds are setup in configuration. They provide a handy way to create an html feed, rss feed, and quickly reference a filtered set of posts like this. For more information on markata check out the full [[ markata ]] post.
-
💭 How to Deliver Code Every Day | Jake Worth
Here's my thought on 💭 How to Deliver Code Every Day | Jake Worth Great set of tips here! No waiting. No “waiting until tomorrow” or “It’s Friday, let’s wait…
-
markata
This post is a work in progress. Markata is the static site generator that I created to build my website [[ about-this-site ]]. I built it for me and I enjoy using it. I know everying it can do and I can extend it to do more easily. I have set it up for some friends to also use it and am proud that it helps them publish their content. It's a meme to create your own static site generator to make your website. Yes its funny, I don't recommend it if your not ready for the level of work that com
-
sick wikilink hover
Today I set up some sick wikilink hover effects using tailwind see [[ a-case-for-tailwindcss ]]. When you hover over them they show an image preview of the link that you are going to. I cant find where I have seen this but it comes from some docs sites. I'll finish this article later, just excited to see it up.
-
💭 Text Decoration - Tailwind CSS
Here's my thought on 💭 Text Decoration - Tailwind CSS Tailwind calls strikethrough line-through. This caught me off guard and took me a minute to find.…
-
💭 eraser-dev/eraser: 🧹 Cleaning up images from Kub...
Here's my thought on 💭 eraser-dev/eraser: 🧹 Cleaning up images from Kubernetes nodes This is kinda sick, its a tool to clean up container images in a k8s…
-
💭 Distrobox
Here's my thought on 💭 Distrobox distrobox gives you to run commands on the host. This is handy to get access to host level clis that you probably wouldn't…
-
💭 How Ahrefs Gets a Billion Dollar-Worth Infrastru...
Here's my thought on 💭 How Ahrefs Gets a Billion Dollar-Worth Infrastructure With a 9... 2024 has been a wild year for infra with going "back" to on prem…
-
💭 Safer Bash Shebang Recipes - Just Programmer's M...
Here's my thought on 💭 Safer Bash Shebang Recipes - Just Programmer's Manual When using justfiles each line is ran separately from the last, unless you…
-
💭 Justfile Cheat Sheet by linux_china - Download f...
Here's my thought on 💭 Justfile Cheat Sheet by linux_china - Download free from Cheat... This is a dope ass cheat sheet for justfiles. It's filled with good…
-
💭 Dax Raad - SST, Build modern full-stack applicat...
Here's my thought on 💭 Dax Raad - SST, Build modern full-stack applications on AWS wi... such a sick episode with dax. SST's free tier will be free as long…
-
💭 Fields - Pydantic
Here's my thought on 💭 Fields - Pydantic and is a good pydantic combination for secret attributes such as user passwords, or hashed passwords. exclude…
-
💭 Hatch v1.10.0 - Hatch
Here's my thought on 💭 Hatch v1.10.0 - Hatch Hatch be flyin. This new release of hatch includes support for the new package installer which is just mind…
-
💭 I Interviewed Uncle Bob - YouTube
Here's my thought on 💭 I Interviewed Uncle Bob - YouTube Fantastic interview with Uncle Bob, really it was more of a 2 way conversation. So many of Uncle…
-
💭 How an empty S3 bucket can make your AWS bill ex...
Here's my thought on 💭 How an empty S3 bucket can make your AWS bill explode | by Mac... Imagine waking up to a $1,300 for running an example project! That…
-
💭 Media Types
Here's my thought on 💭 Media Types A full list of standard types. This is a handy reference. !!! note This post is a thought . It's a short note that I…
-
💭 rich.panel — Rich 13.6.0 documentation
Here's my thought on 💭 rich.panel — Rich 13.6.0 documentation This is my go to rich response container for clis written in python. It creates a nice box…
-
💭 Handling Errors - FastAPI
Here's my thought on 💭 Handling Errors - FastAPI This page shows how to customize your fastapi errors. I found this very useful to setup common templates so…
-
💭 Creating SSH Apps with Charm Wish and Laravel Pr...
Here's my thought on 💭 Creating SSH Apps with Charm Wish and Laravel Prompts | Joe Ta... Joe has a sick cli.labs site for deploying tui applications. !!!…
-
💭 white-space - CSS: Cascading Style Sheets | MDN
Here's my thought on 💭 white-space - CSS: Cascading Style Sheets | MDN html can preserve newline characters by styling an element with pre-wrap Sequences…
-
💭 > htmx ~ The response-targets Extension
Here's my thought on 💭 htmx ~ The response-targets Extension The htmx response-targets extension allows me to respond to errors from the backend and do…
-
💭 How to Restart All Pods in a Kubernetes Namespac...
Here's my thought on 💭 How to Restart All Pods in a Kubernetes Namespace | Boot.dev As of kubernetes 1.15 there is an easy way to restart all pods in a…
-
control minio token access
To allow access only to the , you can pass add the Resource field to the User Policy when you create a new token.
-
How to List Sqlite tables
You can inspect sqlite tables with the sqlite shell. note that you get into the shell with I also learned that , and are helper functions that query the table on the database. Here is an output from my redka database. The sqlite_master table contains all the sqlite objects type, name, tbl_name, rootpage, and sql to create them.
-
Redka Runs on SQLite
With the liscense changes to redis there are several new forks out there. One that I am particularly interested in is redka . We now have redis running on port 6379 that we can connect to with a redis client. And we have a sqlite database that we can inspect. We can look at the values in the vstring table.
-
💭 MarkdownDown
Here's my thought on 💭 MarkdownDown Small web app to convert html into markdown. Pretty cool idea. I actually want to look into this for reader and see how…
-
copier trust
I recently had to update my copier-gallery command to trust my own templates because some of them have shell scripts that run afterwards. Be warned that this could be a dangerous feature to run on random templates you get off the internet, but these are all mine, so if I wreck it its my own fault. All the the copier copy api can be found with help.
-
💭 argocd automated sync
Here's my thought on 💭 argocd automated sync !!! note This post is a thought . It's a short note that I make about someone else's content online. Learn…
-
💭 Manual Upgrades | K3s
Here's my thought on 💭 Manual Upgrades | K3s You can give k3s an install channel to install , , or specific versions like . This is handy to make sure…
-
ipython f2
Today I accidentally ran f2 in ipython to discover that it opens your $EDITOR! I use this feature quite often in zsh, it is bound to for me, and since I have my environment variable set to it opens nvim when I hit . Today I discovered that Ipython has this bound to . If you know how to set it to let me know I've tried, a lot. better yet add to your .zshrc
-
💭 sql - How can I list the tables in a SQLite data...
Here's my thought on 💭 sql - How can I list the tables in a SQLite database file that... I learned about the sqlite_master table from this stack overflow…
-
python inline snapshot
is a new tool that I am trying out for python testing. It takes snapshots of your outputs and places them inline with the test. Here is the most basic starter. Now when I run my tests will fail because my assert has no value, but if I run it will fill out my snapshot values and the file will then look like this. It also works with pydantic models.
-
sqlmodel indexes
I've really been enjoying using sqlmodel for my projects that need a database. One thing that I definitely lacked on for too long was indexing my database. I hit a point with one database where it was taking 7s for pretty simple paginated queries to return 10 records. For every field that you will be querying on, you can create an index, by setting it equal to example courtesy of the docs !!! Note primary keys are indexed by default. The docs cover this pretty well, and in quite depth - Optim
-
💭 inline-snapshot
Here's my thought on 💭 inline-snapshot This is a cool snapshot testing tool that automatically creates, and updates test values for you. Starting with some…
-
💭 nalgeon/redka: Redis re-implemented with SQLite
Here's my thought on 💭 nalgeon/redka: Redis re-implemented with SQLite Redka a sick new redis compatable api, that uses sqlite as its backend datastore. It…
-
sqlite vacuum
Today I learned how to VACUUM a sqlite database and cut its size in about half. It's a database that I have had running for quite awhile and has some decent traffic on it. Why is it important to do a VACUUM? In short its becuase the file system gets fragmented with as data is updated. On delete the files are removed from the database and marked as available for reuse in the filesystem, but the space is not reclaimed. To VACUUM a database, run the following sql command. You can do it right form
-
Tailwind Animations
I learned that tailwind animations are pretty easy to add only needing a few classes. For some reason though my brain broke, thinking that I could dynamically change the number and you can't cause there are only so many pre compiled classes without using an arbitrary value with brackets. Here are the classes that I used to transition my colors very slowly. And the entire square element.
-
Composing Typer clis
Typer makes it easy to compose your cli applications, like you might with a web router if you are more familiar with that. This allows you to build smaller applications that compose into a larger application. You will see similar patterns in the wild, namely the cli which always has the pattern. Lets setup the cli app itself first. You can put it in . Creating an app that will become a command is the same as creating a regular app in Typer. We need to create a callback that will become o
-
tailwind arbitrary values
I learned not to fear the arbitrary size feature of tailwind. While building out reader.waylonwalker.com I kept getting content flowing off the screen, and struggling to keep it on the screen. I really felt that I should be able to do this with vanilla tailwind, but after some encouragement from Twitter I decided to lean on arbitrary values and it worked. Don't fear the arbitrary values. Learn more about using-arbitrary-values from their docs docs
-
fix npm global install needs sudo
Each time I go to set up npm I am frustrated by the errors saying that I don't have permission to , and it's frustrating. And I forget what I need to do to tell npm to install packages in a directory I own, and my shell to look there so that I can use the executables. For the fix to remain persistent you need to put these two lines in your shell profile like or .
-
darkmode scrollbars
If you are designing a website in dark mode the scrollbars can be finicky to match the theme. Here is a pretty sane default that looks nice without being obnoxiously contrast to the rest of the site. Want a rounded scrollbar thumb? add these styles. This makes a very nice looking default darkmode scrollbar.
-
One Day Build - Play Outside
Inspired by Adam Savage and his One Day builds on youtube. I often build things, and want to make them generally useful for others and over configure out of the gate. This project is purely for me inspired by a need I have. play-outside !How-To This post will not directly show how to make a weather app, but document the process that I went through to make mine. It will show the tools that I used to make it, and the final result. The Situation It often goes in our house ask dad while he is bus
-
Udating Cloudflare Pages using the Wrangler cli
Before deploying to cloudflare pages with wrangler you need a cloudflare api token. You can get one at dash.cloudflare.com/profile/api-tokens . cloudflare-pages-api-token Install Wrangler Next install wrangler using npm. Create a Project Before you deploy to cloudflare pages you need to create a project. You might already have one, or you might want to create one in the webui, but you have the option to create it at the command line with wrangler. Deploy Now you can deploy your static applicat
-
💭 node.js - How to fix npm throwing error without ...
Here's my thought on 💭 node.js - How to fix npm throwing error without sudo - Stack O... Its sad that this is not the accepted answer. !!! note This post is…
-
💭 google chrome - Webkit scrollbar CSS, always a w...
Here's my thought on 💭 google chrome - Webkit scrollbar CSS, always a white box in co... This is how you fix the stupid corner section of a double scroll bar…
-
scheduling cron jobs in kubernetes
For my reader app I am using cronjobs to schedule my a new build and upload to cloudflare pages every hour. In this example I have built a docker image and pushed it to dockerhub. It uses a secret to access cloudflare, and the entrypoint itself does the build and upload.
-
💭 Cache Ruins Everything Around Me - YouTube
Here's my thought on 💭 Cache Ruins Everything Around Me - YouTube This is an interesting problem. I want to make a solution for this on htmx-patterns. I…
-
💭 building a youtube tool in 24 hours to prove a p...
Here's my thought on 💭 building a youtube tool in 24 hours to prove a point - YouTube So cool to see ROX build this over the course of a day. !!! note This…
-
jinja macros
I am working on a page for htmx-patterns and I ran into a situation with lots of duplication. Especially when i am using tailwind I run into situations where the duplication can get tedious to maintiain. The solution I found is macros. Now I can use the same code for all of my links, and call the macro to use it.
-
jinja loop variable and htmx
jinja has a loop variable that is very handy to use with htmx. Whether you want to implement a click to load more or an infinite scroll this loop variable is very handy. Now for every chunk of contacts that we load we will trigger the infinite scroll by loading more once the last one has intersected the screen.
-
fastapi jinja url_for with query params
Out of the box Starlette does not support url_for with query params. When trying to use url_for with query params it throws the following error. In my searching for this I found starlette issue #560 quite helpful, but not complete, as it did not work for me. !!! Note "https" If you want url_for to work in production you need some way to convert http to https. Here is how I make it work, for local development I then for each environment that I am running on a server I include it in the list
-
setting up a kind cluster with argocd installed
Kind (Kubernetes in Docker) is a tool that makes it easy to create and tear down local clusters quickly. I like to use it to test out new workflows. Argocd is a continuous delivery tool that makes it easy to setup gitops workflows in kubernetes. Here is how you can setup a new kind cluster and install argocd into it using helm, the kubernetes package manager. If you want to add repos and apps to your cluster you can use the argo cli to do that, but first you will need forward the argocd port an
-
💭 sql - SQLite: COUNT slow on big tables - Stack O...
Here's my thought on 💭 sql - SQLite: COUNT slow on big tables - Stack Overflow Another interesting option for slow count queries in sqlite. If you haven't…
-
💭 Optimizing SQLite for servers
Here's my thought on 💭 Optimizing SQLite for servers Very interesting article by Sylvain, suggested by Simon Willison. Definitely some things that I want to…
-
💭 Sealed Secrets
Here's my thought on 💭 Sealed Secrets kubeseal is a pretty simple to get started with way to manage secrets such that they can be stored in a git repo and be…
-
kubernetes kubeseal
In my homelab kubernetes cluster I am using kubeseal to encrypt secrets. I have been using it successfully for a few months now wtih great success. It allows me to commit all of my secrets manifests to git with out risk of leaking secrets. You see kubeseal encrypts your secrets with a private key only stored in your cluster, so only the cluster itself can decrypt them using the kubeseal controller. cover KubeSeal https://sealed-secrets.netlify.app/ {.hoverlink} installation Installation happens
-
kubernetes 6 months in
I stumbled into kubernetes December 2023 when I was looking for a better way to self host applications. I was looking for something that didn't require logging into a server and building and deploying like a cave man. I wanted a smoother experience than docker compose was giving me. https://waylonwalker.com/looking-for-a-heroku-replacement/ {.hoverlink} This post turned into a list of tools that I have adopted into my k8s workflow, and plan to keep. enjoy. Kompose Kompose is a great tool for g
-
💭 Middleware Explained - YouTube
Here's my thought on 💭 Middleware Explained - YouTube Great episode covering a seemingly simple topic. What I really benefitted from was hearing all the…
-
💭 fastapi decorators
Here's my thought on 💭 fastapi decorators I've been using these decorators to modify the behavior of specific routes. It will do things like 404 admin only…
-
💭 Simon Willison on X: "TIL Google Chrome has a --...
Here's my thought on 💭 Simon Willison on X: "TIL Google Chrome has a --headless optio... Huh, so this is just built right into the chrome cli. !!! note This…
-
💭 fastapi https url_for
Here's my thought on 💭 fastapi https url_for jinja's in fastapi does not account for https by default, there is probably a better way, but this is a way…
-
💭 learning strawberry
Here's my thought on 💭 learning strawberry !!! note This post is a thought . It's a short note that I make about someone else's content online. Learn more…
-
💭 Configure Liveness, Readiness and Startup Probes...
Here's my thought on 💭 Configure Liveness, Readiness and Startup Probes | Kubernetes What is the difference between health, liveness, readiness, and…
-
💭 docker - Where does the convention of using /hea...
Here's my thought on 💭 docker - Where does the convention of using /healthz for appli... The convention of "z-pages" comes from google and reduces the…
-
💭 Placehold | A simple, fast and free image placeh...
Here's my thought on 💭 Placehold | A simple, fast and free image placeholder service This is a handy placeholder generator for generating placeholder items…
-
💭 My New Python Lsp Setup
Here's my thought on 💭 My New Python Lsp Setup I figured out the killer combination for python lsp servers, ruff and jedi! ruff does all of the diagnostics…
-
💭 flake8-to-ruff · PyPI
Here's my thought on 💭 flake8-to-ruff · PyPI Underrated python library to on board ruff, or just use it on a project where its not the norm. ruff claims…
-
💭 searching my thoughts locally
Here's my thought on 💭 searching my thoughts locally First I need to fetch my thoughts from the api, and put it in a local sqlite database using . Now that…
-
💭 jesseduffield/lazydocker: The lazier way to mana...
Here's my thought on 💭 jesseduffield/lazydocker: The lazier way to manage everything ... I've been using this for a few weeks now and it's fantastic. It's…
-
💭 Creating One-To-Many Relationships in Flask-SQLA...
Here's my thought on 💭 Creating One-To-Many Relationships in Flask-SQLAlchemy - YouTube Great example from Anthony showing how easy it is to practice…
-
💭 python - Concepts of backref and back_populate i...
Here's my thought on 💭 python - Concepts of backref and back_populate in SQLalchemy? ... Today I came across some sqlalchemy models that created some…
-
💭 Dawn Gate - The Game that Solved Toxicity - 2 - ...
Here's my thought on 💭 Dawn Gate - The Game that Solved Toxicity - 2 - YouTube Thor is just straight up a great Human being! Getting a gaming company to tie…
-
💭 I'm Skeptical Of Low Code - YouTube
Here's my thought on 💭 I'm Skeptical Of Low Code - YouTube Great take on low code. I have definitely felt the pressure of being presented low code options,…
-
💭 The One Eyed Fighting Kirby
Here's my thought on 💭 The One Eyed Fighting Kirby I've heard prime say just give it the one eyed fighting kirby so many times, and execute it few times, and…
-
💭 Java - ArchWiki
Here's my thought on 💭 Java - ArchWiki Today I learned that arch has a helper script to set the version of java. !!! note This post is a thought . It's a…
-
💭 Read a Range of Data - LIMIT and OFFSET - SQLMod...
Here's my thought on 💭 Read a Range of Data - LIMIT and OFFSET - SQLModel Today I was running some sqlmodel queries through the sqlalchemy orm. Admittedly…
-
💭 Template Designer Documentation — Jinja Document...
Here's my thought on 💭 Template Designer Documentation — Jinja Documentation html code generated by my jinja templates generally look half garbage because of…
-
thoughts on unit tests
thoughts on unit tests cover image Theo's response puts a lot of my feelings about unit testing into words. Many of us have grown up in this world preaching unit testing. We often hear these statements "Everything must be unit tested, tests make code more maintainable." In reality when we are not writing complex low level code unit tests are probably the wrong approach. thought 192, a thought about theo's reaction to prime's unit testing Most of us are assemblers So much of software engineerin
-
💭 We Finally Agree On Unit Tests - YouTube
Here's my thought on 💭 We Finally Agree On Unit Tests - YouTube Theo's response puts a lot of my feelings about unit testing into words. It's crazy how cargo…
-
💭 Mastodon.py — Mastodon.py 1.8.1 documentation
Here's my thought on 💭 Mastodon.py — Mastodon.py 1.8.1 documentation Mastadon.py is a python api client for mastadon that makes it easy to cross post to…
-
💭 bunny.net - The Content Delivery platform that t...
Here's my thought on 💭 bunny.net - The Content Delivery platform that truly Hops! bunny.net looks like an interesting cloudflare alternative. !!! note This…
-
💭 IndieWebify.Me - a guide to getting you on the I...
Here's my thought on 💭 IndieWebify.Me - a guide to getting you on the IndieWeb This is a sick guided site to validate indieweb tags on your site. It makes…
-
💭 FastAPI - dependency inside Middleware? - Stack ...
Here's my thought on 💭 FastAPI - dependency inside Middleware? - Stack Overflow After struggling to get dependencies inside of middleware I learned that you…
-
💭 Handling Errors - FastAPI
Here's my thought on 💭 Handling Errors - FastAPI This page shows how to customize your fastapi errors. I found this very useful to setup common templates so…
-
💭 logs with FastAPI and Uvicorn · Issue #1508 · ti...
Here's my thought on 💭 logs with FastAPI and Uvicorn · Issue #1508 · tiangolo/fastapi Setting an additional log handler to the uvicorn logger for access logs…
-
💭 How to group FastAPI endpoints in Swagger UI?
Here's my thought on 💭 How to group FastAPI endpoints in Swagger UI? Here is a full example from the post. !!! note This post is a thought . It's a short…
-
Hiding Form input During htmx Request
I am working on fokais.com's signup page, and I want to hide the form input during an htmx request. I was seeing some issues where I was able to prevent spamming the submit button, but was still able to get one extra hit on it. It also felt like nothing was happening while sending the email to the user for verification. Now I get the form to disappear and a spinner to show during the request. HTML Let's start off with the form. It uses htmx to submit a post request to the route. Note that there
-
💭 Show some equivalent list comprehensions in filt...
Here's my thought on 💭 Show some equivalent list comprehensions in filter examples · ... I often want to reach for non existing list comprehensions in jinja…
-
💭 DataDog/ddqa: Datadog's QA manager for releases ...
Here's my thought on 💭 DataDog/ddqa: Datadog's QA manager for releases of GitHub repo... DataDog ddqa is building out a textual app and deploying it with…
-
💭 Adam Wathan on X: "Hear me out. https://t.co/QHk...
Here's my thought on 💭 Adam Wathan on X: "Hear me out. https://t.co/QHkEI6SJYZ" / X I'm going to give this trick a shot on my sites, and see how I like it.…
-
💭 Path Operation Advanced Configuration - FastAPI
Here's my thought on 💭 Path Operation Advanced Configuration - FastAPI From the Docs trailing slash I've had better luck just routing both naked and trailing…
-
💭 Protect API docs behind authentication? · Issue ...
Here's my thought on 💭 Protect API docs behind authentication? · Issue #364 · tiangol... You can protect your fastapi docs behind auth so that not only can…
-
💭 Cancel subscriptions | Stripe Documentation
Here's my thought on 💭 Cancel subscriptions | Stripe Documentation This is a handy guide to cancelling stripe subscriptions. You can even inverse it by…
-
Stripe Cancellations in FastAPI and SQLModel
Today I am working on fokais.com, trying to get to a point where I can launch by workig through stripe integrations. This is my first time using stripe, so there has been quite a bit to learn, and I am probably building in more than I need to before launching, but I am learning, and not in a rush to launch. I am building the fokais backent in python primarilyt with fastapi and sqlmodel on sqlite. My billing integration is going to be all Stripe. Stripe Subscription Cancellations Docs Here is a l
-
💭 Retrieve an upcoming invoice | Stripe API Refere...
Here's my thought on 💭 Retrieve an upcoming invoice | Stripe API Reference You can find your customers next billing date through the stripe api by using .…
-
💭 Search | Stripe Documentation
Here's my thought on 💭 Search | Stripe Documentation Stripe has it's own query language for querying data. I'm just getting into using it and it seems…
-
💭 Stripe keys and IDs
Here's my thought on 💭 Stripe keys and IDs Stripe has so many keys and ids this is a very helpful list to decode what exactly an id is for. !!! note This…
-
Looking for a Heroku replacement, What I found was...
I've long hosted my personal blog as a static site on waylonwalker.com. It's all markdown, converted to html, and shipped as is. It's been great, I've moved it from GitHub Pages, to Netlify, tried Vercel for a minute, and have landed on Cloudflare Pages. Each migration has not really been that hard, it's just pointing ci to a different host after the site has built. What about server side Now the part that I have struggled with is how to cheaply host a server rendered application that can just l
-
Still Loving Tailwind
I've been using tailwind for a few months now and I can still say I'm loving it. I've been using it to create some rapid prototypes that may or may not ever become something, a document that is likely to go to print (a resume), and some quick dashboards. I started using Tailwind a few month back A few months back in september of 2023 I made a case for tailwindcss . And have been using it on quite a few projects since. values are well thought out it's really easy to use classes that make sense t
-
💭 CSS @media print issues with background-color; -...
Here's my thought on 💭 CSS @media print issues with background-color; - Stack Overflow Get those print colors exact !!! note This post is a thought . It's…
-
💭 page-break-after - CSS: Cascading Style Sheets |...
Here's my thought on 💭 page-break-after - CSS: Cascading Style Sheets | MDN I'm working on something that might go to print, so I want the page breaks to…
-
💭 How to Build a Website or App
Here's my thought on 💭 How to Build a Website or App Use good data or good fake data make it have some variation like long and short text Don't use a…
-
💭 Will McGugan on X: "Just a wee thing that came u...
Here's my thought on 💭 Will McGugan on X: "Just a wee thing that came up today. I thi... Textual is so sick, Will just made a live markdown editor in the…
-
💭 Sebastián Ramírez on X: "Now @FastAPI has 65k+ G...
Here's my thought on 💭 Sebastián Ramírez on X: "Now @FastAPI has 65k+ GitHub stars! ✨... Fastapi passes flask in GitHub stars! screenshot of…
-
💭 Separations of Concerns is a Lie - YouTube
Here's my thought on 💭 Separations of Concerns is a Lie - YouTube Nice take by @t3dotgg . Some of the old patterns that go deep into webdev, MVC,…
-
💭 Heroicons
Here's my thought on 💭 Heroicons heroicons is a really nice set of many of the basic icons that you will need for building nice ui's. They have a really…
-
💭 Uptime Kuma
Here's my thought on 💭 Uptime Kuma Uptime kuma is a fantastic self hosted monitoring tool. One docker run command and you are up and running. Once you are…
-
💭 Kubernetes Secrets in 5 Minutes! - YouTube
Here's my thought on 💭 Kubernetes Secrets in 5 Minutes! - YouTube I am converting my docker compose env secrets over to k8s secrets. This guide was clear…
-
💭 Waylon Walker 🐍 on X: "Which is more complicated...
Here's my thought on 💭 Waylon Walker 🐍 on X: "Which is more complicated" / X Wow, shocked at these results. All this time I've been told and believed that…
-
💭 Wes Bos on X: "🔥 The stale-while-revalidate head...
Here's my thought on 💭 Wes Bos on X: "🔥 The stale-while-revalidate header is suuuuuup... Wes has some of the coolest OG images i've ever seen. Here he talks…
-
💭 > htmx ~ Locality of Behaviour (LoB)
Here's my thought on 💭 htmx ~ Locality of Behaviour (LoB) Interesting principle here. What a great example, If I'm looking at the second jQuery example, I…
-
💭 Creating k8s jobs with python
Here's my thought on 💭 Creating k8s jobs with python I was looking to add running kubernetes jobs to a python cli I am creating, and I found this solution,…
-
💭 mkimuram/k8sviz: Generate Kubernetes architectur...
Here's my thought on 💭 mkimuram/k8sviz: Generate Kubernetes architecture diagrams fro... This is a sick kubernetes architecture diagran generation tool. Here…
-
💭 casey/just: 🤖 Just a command runner
Here's my thought on 💭 casey/just: 🤖 Just a command runner I think just, might just be the thing I have been looking for. I've been looking for some ci/cd…
-
💭 Translate a Docker Compose File to Kubernetes Re...
Here's my thought on 💭 Translate a Docker Compose File to Kubernetes Resources | Kube... is a sick cli to convert docker-compose.yml to kubernetes manifest.…
-
💭 Daniel Nashed's Blog
Here's my thought on 💭 Daniel Nashed's Blog Running your own docker registry in one line !!! note This post is a thought . It's a short note that I make…
-
💭 Kubernetes Persistent Volumes with Deployment an...
Here's my thought on 💭 Kubernetes Persistent Volumes with Deployment and StatefulSet Example of how to add a pvc to a deployment. !!! note This post is a…
-
💭 Inspect a Kubernetes PersistentVolumeClaim | Fra...
Here's my thought on 💭 Inspect a Kubernetes PersistentVolumeClaim | Frank Sauerburger I was curious to see what was going on inside of my minio object…
-
💭 Can't create Secret in Kubernetes: illegal base6...
Here's my thought on 💭 Can't create Secret in Kubernetes: illegal base64 data at inpu... In order to use k8s secrets manifest you first need to encode the…
-
💭 Can I access k3s using just kubectl (no sudo and...
Here's my thought on 💭 Can I access k3s using just kubectl (no sudo and no k3s comman... Right after installing k3s you are going to need to use to use…
-
💭 Quick-Start Guide | K3s
Here's my thought on 💭 Quick-Start Guide | K3s I recently spun up k3s in my homelab. I'm trying to offload some work off of my free tier fly.io app in order…
-
💭 Tailwind Connect 2023 — Keynote - YouTube
Here's my thought on 💭 Tailwind Connect 2023 — Keynote - YouTube Tailwind comes with that I have never heard of that is made to give margin and padding…
-
💭 Episode #433 Litestar: Effortlessly Build Perfor...
Here's my thought on 💭 Episode #433 Litestar: Effortlessly Build Performant APIs - [T... Litestar is an interesting api framework similar to fastpi, that I…
-
💭 Delete a Postgres Cluster · Fly Docs
Here's my thought on 💭 Delete a Postgres Cluster · Fly Docs Deleting a fly postgres db cluster was not straightforward to me as the app name is not inferred…
-
💭 Twitter Requires full image_urls
Here's my thought on 💭 Twitter Requires full image_urls Yet again twitter cards were causing me pain. This time it was me not realizing that they require…
-
💭 Has Web Development Regressed? A Conversation wi...
Here's my thought on 💭 Has Web Development Regressed? A Conversation with Wes Bos | B... Boot.dev is crushing it with these interviews. This one has Wes Bos,…
-
💭 sysid/sse-starlette
Here's my thought on 💭 sysid/sse-starlette sse-starlette provides server sent events for startlette and FastApi. I'm evaluating for use with htmx.…
-
💭 Overflow - Tailwind CSS
Here's my thought on 💭 Overflow - Tailwind CSS Controlling overflow with tailwindcss Examples !!! note This post is a thought . It's a short note that I…
-
💭 How To Create a Custom Scrollbar
Here's my thought on 💭 How To Create a Custom Scrollbar Default scrollbars on a dark theme website are just the ugliest thing. This page covers all the…
-
💭 Change Autocomplete Styles in WebKit Browsers | ...
Here's my thought on 💭 Change Autocomplete Styles in WebKit Browsers | CSS-Tricks - C... All the hover, select, autofil, focus combinations have left me…
-
💭 florimondmanca/arel: Lightweight browser hot rel...
Here's my thought on 💭 florimondmanca/arel: Lightweight browser hot reload for Python... arel is a "Lightweight browser hot reload for Python ASGI web apps"…
-
💭 Automatic browser reloading in FastAPI
Here's my thought on 💭 Automatic browser reloading in FastAPI I just discovered arel for hot reloading python applications when content changes from this…
-
💭 Bob Belderbos on X: "Forget Python for a sec, he...
Here's my thought on 💭 Bob Belderbos on X: "Forget Python for a sec, here's how Vim h... I need to learn regex capture groups better. This is so dang…
-
💭 teej dv 🔭 on X: "Hypermedia fixes this HATEOAS g...
Here's my thought on 💭 teej dv 🔭 on X: "Hypermedia fixes this HATEOAS gonna hate" / X HATEOAS gonna hate. More and more htmx seems like the js library for…
-
💭 Open source, not open contribution with Ben John...
Here's my thought on 💭 Open source, not open contribution with Ben Johnson (Changelog... Ben Johnson was on the Changelog a few years back covering his work…
-
how to host static content with fastapi
I wanted to host some static files through fastapi. Typical use cases for this might be some static web content like html/css/js. It could also be images or some data that doesn't need dynamically rendered. From the Docs The docs cover how to host static files, and give this solution that is built into fastapi. https://fastapi.tiangolo.com/tutorial/static-files/ {.hoverlink} Authenticated Static Files Thanks to #858 . OscartGiles posted this solution to add authentication to static files. I tr
-
💭 DjangoCon Europe 2023 | Use SQLite in production...
Here's my thought on 💭 DjangoCon Europe 2023 | Use SQLite in production - YouTube Very inspiring talk, TLDR, you probably don't need a database server.…
-
Set up minio bucket entrypoint
I recently se tup minio object storage in my homelab for litestream sqlite backups. The litestream quickstart made it easy to get everything up and running on localhost, but I hit a wall when dns was involved to pull it from a different machine. Here is what I got to work First I had to configure the Key ID and Secret Access Key generated in the minio ui. Then set the the s3 signature_version to s3v4. Now when I have minio running on https://my-minio-endpoint.com I can use the aws cli to acces
-
💭 benbjohnson/litestream: Streaming replication fo...
Here's my thought on 💭 benbjohnson/litestream: Streaming replication for SQLite. install Install is fast using installer, no compilation, just copy the…
-
why-is-postgres-default
Serious question. No one ever got fired for choosing PostgreSQL But, why. It's the most loved db, right? Right? Maybe it's time to rethink it. Don't get me wrong, if I need a relational db as a service, PostgreSQL is going to be my first choice, but why do I need to run a separate application for it? Tutorials use sqlite Why is that? Because there is nothing else to stand up. Nothing else to maintain. And you probably already have it installed on just about anything that has a battery. SQLite ru
-
💭 Why I Built Litestream - Litestream
Here's my thought on 💭 Why I Built Litestream - Litestream As applications scale to the edge, to put compute as close to the user as possible, database…
-
💭 I'm All-In on Server-Side SQLite · The Fly Blog
Here's my thought on 💭 I'm All-In on Server-Side SQLite · The Fly Blog SQLite is the next big database trend. with more horizontal scaling, close to user…
-
💭 LiteFS Cloud: Distributed SQLite with Managed Ba...
Here's my thought on 💭 LiteFS Cloud: Distributed SQLite with Managed Backups · The Fl... Fly.io's solution to sqlite managed backups.I definitely want to…
-
💭 How to run pods as systemd services with Podman ...
Here's my thought on 💭 How to run pods as systemd services with Podman | Enable Sysadmin podman comes with a nice command for generating systemd service…
-
💭 Pagefind | Pagefind — Static low-bandwidth searc...
Here's my thought on 💭 Pagefind | Pagefind — Static low-bandwidth search at scale Pagefind is absolutely insane. I've tried a number of static site…
-
Setup Tailwind for Jinja
I've recently given tailwindcss a second chance and am really liking it. Here is how I set it up for my python based projects. https://waylonwalker.com/a-case-for-tailwindcss {.hoverlink} Installation is used to install the cli that you will need to configure and compile tailwindcss. Setup You will need to create a tailwind.config.js file, to get this you can use the cli. Using tailwind with jinja templates To set up tailwind to work with jinja templates you will need to point the tailwind conf
-
A Case For Tailwindcss
I was watching @theprimeagen recently and I think he sold me on using tailwindcss. The thing about tailwind is that it is not a big component library, it's a set of css classes mapped to a few (usually one) style. All css classes are shitty, so you might as well use someone else's shitty css classes on all your projects rather than thinking you're being smart with a new set of classes that you will hate in 6 months when you come back to the project. roughly quoted from memory of @theprimeagen I
-
💭 aca/emmet-ls: Emmet support based on LSP.
Here's my thought on 💭 aca/emmet-ls: Emmet support based on LSP. This is the greatest nvim emmet plugin I have tried. In the past I had tried the vim plugin…
-
💭 Formatter
Here's my thought on 💭 Formatter Tried out biome today and it worked better than prettier on jinja templates, I might adopt this over prettier. !!! note This…
-
💭 > htmx ~ The disable-element Extension
Here's my thought on 💭 htmx ~ The disable-element Extension An extension to disable elements during flight of an htmx request, Looks super useful for things…
-
💭 > htmx ~ hx-indicator Attribute
Here's my thought on 💭 htmx ~ hx-indicator Attribute The class is added to elements. You can target this css selector to create loading state…
-
💭 The Truth About HTMX | Prime Reacts - YouTube
Here's my thought on 💭 The Truth About HTMX | Prime Reacts - YouTube Prime concisely made sense of why htmx is so awesome compared to what has become modern…
-
💭 > htmx ~ Examples ~ Updating Other Content
Here's my thought on 💭 htmx ~ Examples ~ Updating Other Content Three ways to support updating other content. Fantastic article walking through the…
-
💭 Bigger Applications - Multiple Files - FastAPI
Here's my thought on 💭 Bigger Applications - Multiple Files - FastAPI Fastapi lets you tag your 's so that the swagger docs are grouped according to the…
-
💭 Preline UI - Tailwind CSS component library | Pr...
Here's my thought on 💭 Preline UI - Tailwind CSS component library | Preline UI, craf... Tailwind css component library. There are many examples with copy…
-
💭 Tailwind CSS Cheat Sheet
Here's my thought on 💭 Tailwind CSS Cheat Sheet A nice searchable cheatsheet for tailwindcss classes. !!! note This post is a thought . It's a short note…
-
💭 SQLite FTS5 Extension
Here's my thought on 💭 SQLite FTS5 Extension sqlite has 3 different tokenizers, . These can be used with sqlite-utils. And with the python api. !!! note…
-
💭 sqlite_utils Python library - sqlite-utils
Here's my thought on 💭 sqlite_utils Python library - sqlite-utils sqlite-utils is primarily a cli tool for sqlite operations such as enabling full text…
-
💭 simonw/datasette-render-markdown: Datasette plug...
Here's my thought on 💭 simonw/datasette-render-markdown: Datasette plugin for renderi... datasette really does everything doesn't it! !!! note This post is…
-
💭 simonw/shot-scraper: A command-line utility for ...
Here's my thought on 💭 simonw/shot-scraper: A command-line utility for taking automat... Daaaang, this is such an elegantly simple way to get web screenshots…
-
💭 shot-scraper: automated screenshots for document...
Here's my thought on 💭 shot-scraper: automated screenshots for documentation, built o... An interesting way to build automatically annotaatd docs with arrows…
-
💭 HTML Over The Wire | Hotwire
Here's my thought on 💭 HTML Over The Wire | Hotwire An alternative approach to building modern web withhout heavy js and json, but instead html over the…
-
💭 Lifecycle Hooks | Vue.js
Here's my thought on 💭 Lifecycle Hooks | Vue.js A super handy reference to the vuejs lifecycle. !!! note This post is a thought . It's a short note that I…
-
💭 How to Use HTML to Open a Link in a New Tab
Here's my thought on 💭 How to Use HTML to Open a Link in a New Tab Most of the time when creating links in html you want to maintain the default behavior, as…
-
💭 Create Models with a Many-to-Many Link - SQLMode...
Here's my thought on 💭 Create Models with a Many-to-Many Link - SQLModel Creating many to many relationships with sqlmodel requires a LinkTable Model. The…
-
💭 python - How to use a Pydantic model with Form d...
Here's my thought on 💭 python - How to use a Pydantic model with Form data in FastAPI... I went down the route of leveraging the extention in htmx, but…
-
💭 Debugging | pywebview
Here's my thought on 💭 Debugging | pywebview How to enable debug mode in pywebview. !!! note This post is a thought . It's a short note that I make about…
-
💭 `ValueError: Constraint must have a name` in ale...
Here's my thought on 💭 in alembic 1.10.0 · ... After a nasty time with alembic upgrades, thoughts is about to get a new users table. This may have came…
-
💭 Use Alembic Check to check for possible upgrades
Here's my thought on 💭 Use Alembic Check to check for possible upgrades Since using alembic I have been just running out a new revision checking its content…
-
💭 API — Jinja Documentation
Here's my thought on 💭 API — Jinja Documentation 🤯 jinja comes with a loader to templates! Defihnitely need to look at this for , as is till one of the…
-
💭 API — Jinja Documentation
Here's my thought on 💭 API — Jinja Documentation I've definitely been missing out on setting up a proper jinja loader on a few projects, I need to lean on…
-
💭 Tailwind CSS Crash Course - YouTube
Here's my thought on 💭 Tailwind CSS Crash Course - YouTube Nice intro into tailwind, I definitely started grasping some of the concepts after watching Brad.…
-
💭 GitHub - wagoodman/dive: A tool for exploring ea...
Here's my thought on 💭 GitHub - wagoodman/dive: A tool for exploring each layer in a ... Really cool tui to inspect docker imaages that runs with docker. !!!…
-
💭 GZIP Compression Test | GiftOfSpeed
Here's my thought on 💭 GZIP Compression Test | GiftOfSpeed A nice tool to check compression on a public url. !!! note This post is a thought . It's a short…
-
💭 Read a Range of Data - LIMIT and OFFSET - SQLMod...
Here's my thought on 💭 Read a Range of Data - LIMIT and OFFSET - SQLModel Implement paging in sqlmodel with where, limit, and offset. !!! note This post is…
-
💭 DuckDB vs. MotherDuck — should you switch to the...
Here's my thought on 💭 DuckDB vs. MotherDuck — should you switch to the cloud version... duckdb is a new in process database that has been making its rounds…
-
💭 Center things - Textual
Here's my thought on 💭 Center things - Textual How to center things in textual. Textual has a very unique way of styling text user interfaces for the…
-
💭 s3-tree · PyPI
Here's my thought on 💭 s3-tree · PyPI Super useful way to show a tree view of an s3 bucket's structure! !!! note This post is a thought . It's a short…
-
💭 python - SQLAlchemy ORDER BY DESCENDING? - Stack...
Here's my thought on 💭 python - SQLAlchemy ORDER BY DESCENDING? - Stack Overflow How to sort results from a sqlalchemy based orm. I needed this to enable…
-
💭 kndndrj/nvim-dbee: Interactive database client f...
Here's my thought on 💭 kndndrj/nvim-dbee: Interactive database client for neovim A neovim database client that I need to check out. !!! note This post is a…
-
💭 Relocating the Docker root directory - IBM Docum...
Here's my thought on 💭 Relocating the Docker root directory - IBM Documentation A very straightforward guide to moving your docker data, such as container…
-
💭 Podman - ArchWiki
Here's my thought on 💭 Podman - ArchWiki I kept running into limits in the number of subuid and subgid's I had on my system by default. As always thank the…
-
💭 Using Rich Inspect to interrogate Python objects...
Here's my thought on 💭 Using Rich Inspect to interrogate Python objects - Textual I love rich inspect. It's one of my most often used features of rich. It…
-
💭 Wesley Aptekar-Cassels | Reasons to avoid Javasc...
Here's my thought on 💭 Wesley Aptekar-Cassels | Reasons to avoid Javascript CDNs And this is why we don't run cdn in prod, respect your users who can't…
-
💭 > htmx ~ The json-enc Extension
Here's my thought on 💭 htmx ~ The json-enc Extension json-enc extension converts url encoded form values into json encoded data, this is very useful for…
-
💭 Header Parameters - FastAPI
Here's my thought on 💭 Header Parameters - FastAPI Getting request headers in fastapi has a pretty nice stetup, it allows you to get headers values as…
-
💭 1j01/textual-paint: :art: MS Paint... in your te...
Here's my thought on 💭 1j01/textual-paint: :art: MS Paint... in your terminal. 1j01 created a complete working clone of ms paint in the terminal using the…
-
💭 sqlite-utils now supports plugins
Here's my thought on 💭 sqlite-utils now supports plugins As the title states sqlite-utils now supports plugins. I dug in just a bit and Simon implemented…
-
💭 Session vs Token Authentication in 100 Seconds -...
Here's my thought on 💭 Session vs Token Authentication in 100 Seconds - YouTube Great short explaination of session vs token authentication. !!! note This…
-
💭 Form Data - FastAPI
Here's my thought on 💭 Form Data - FastAPI Getting form data inside of fastapi was not intuitive to me at first. Everything I had used in fastapi leaned on…
-
💭 pywebview
Here's my thought on 💭 pywebview I am creating this post from a desktop app that I created in 3 lines. !!! note This post is a thought . It's a short…
-
💭 Column INSERT/UPDATE Defaults — SQLAlchemy 1.4 D...
Here's my thought on 💭 Column INSERT/UPDATE Defaults — SQLAlchemy 1.4 Documentation sqlalchemy server_defaults end up as defaults in the database when new…
-
💭 Template Designer Documentation — Jinja Document...
Here's my thought on 💭 Template Designer Documentation — Jinja Documentation A feature of jinja that I just discovered is including sub templates. Here is an…
-
💭 Templates - FastAPI
Here's my thought on 💭 Templates - FastAPI A guide to add Jinja2Templates to fastapi. !!! note This post is a thought . It's a short note that I make about…
-
💭 > htmx ~ Documentation
Here's my thought on 💭 htmx ~ Documentation A complete reference of all of the htmx swapping methods. !!! note This post is a thought . It's a short note…
-
💭 python 3.x - FastAPI redirection for trailing sl...
Here's my thought on 💭 python 3.x - FastAPI redirection for trailing slash returns no... I am trying to use htmx on a new fastapi site for my thoughts, and…
-
💭 > htmx ~ The client-side-templates Extension
Here's my thought on 💭 htmx ~ The client-side-templates Extension Using templates with htmx requires the client-side-templates extension, and the template…
-
💭 Static Files - FastAPI
Here's my thought on 💭 Static Files - FastAPI Mounting static files in fastapi. !!! note This post is a thought . It's a short note that I make about…
-
💭 HTMX looks pretty neat #coding #javascript - You...
Here's my thought on 💭 HTMX looks pretty neat #coding #javascript - YouTube Love the poling example with hx-trigger='every 1s'. !!! note This post is a…
-
💭 First-class session support in FastAPI · Issue #...
Here's my thought on 💭 First-class session support in FastAPI · Issue #754 · tiangolo... Here is a snippet provided by @tiangolo to store the users jwt…
-
💭 Harlequin SQL IDE - DuckDB
Here's my thought on 💭 Harlequin SQL IDE - DuckDB Harlequin is a pretty sweet example of what textual can be used to create. Its a terminal based sql ide…
-
💭 Python API - DuckDB
Here's my thought on 💭 Python API - DuckDB To persist data in duckdb you need to first make a connection to a duck db database. Then work off of the…
-
💭 SQL on Pandas - DuckDB
Here's my thought on 💭 SQL on Pandas - DuckDB duckdb can just query any pandas dataframe that is in memory. I tried running it against a list of objects and…
-
💭 pytest-subtests · PyPI
Here's my thought on 💭 pytest-subtests · PyPI pytest-subtests is a package to register multiple subtests within a similar test function. !!! note This post…
-
💭 Dark Form
Here's my thought on 💭 Dark Form A nice codepen reference for dark forms. I am using it for my thoughts chrome extension. !!! note This post is a thought…
-
💭 doyensec/wsrepl: WebSocket REPL for pentesters
Here's my thought on 💭 doyensec/wsrepl: WebSocket REPL for pentesters Very inspiring textual project to check out how they set up the ui. Their intro video…
-
💭 Doyensec on Twitter: "Announcing wsrepl, the Web...
Here's my thought on 💭 Doyensec on Twitter: "Announcing wsrepl, the WebSocket testing... wsrepl is an epic websocket repl built in python on the textual…
-
💭 Filter Data - WHERE - SQLModel
Here's my thought on 💭 Filter Data - WHERE - SQLModel When fetching pydantic models from the database with sqlmodel, and you cannot select your item by id,…
-
💭 URL Decoding query strings or form parameters in...
Here's my thought on 💭 URL Decoding query strings or form parameters in Python | URLD... In order to turn url encoded links back into links that I would find…
-
💭 encodeURIComponent() - JavaScript | MDN
Here's my thought on 💭 encodeURIComponent() - JavaScript | MDN In order to send data that includes special characters such as in a url you need to url…
-
💭 Python Sucks And I LOVE It | Prime Reacts - YouT...
Here's my thought on 💭 Python Sucks And I LOVE It | Prime Reacts - YouTube Prime reviews an article with some hot takes about python being slow and quirky,…
-
💭 Chris Coyier on Twitter: "I was unaware of `text...
Here's my thought on 💭 Chris Coyier on Twitter: "I was unaware of `text-wrap: pretty;... Next time I'm working with large headers on small screens I need to…
-
💭 Full-text search - Datasette documentation
Here's my thought on 💭 Full-text search - Datasette documentation Enable full-text search in sqlite using sqlite-utils. !!! note This post is a thought .…
-
💭 sqlite-utils command-line tool - sqlite-utils
Here's my thought on 💭 sqlite-utils command-line tool - sqlite-utils I want to like jq, but I think Simon is selling me on sqlite, maybe its just me but this…
-
💭 sqlite-utils command-line tool - sqlite-utils
Here's my thought on 💭 sqlite-utils command-line tool - sqlite-utils insert a json array directly into into sqlite with sqlite-utils. !!! note This post is…
-
💭 jq Cheat Sheet
Here's my thought on 💭 jq Cheat Sheet A nice cheat sheet for jq. jq looks so nice, but it so quickly gets overwhelming on how to select what you want. I was…
-
💭 Flask Trailing Slashes 404
Here's my thought on 💭 Flask Trailing Slashes 404 In flask apps I often get a 404 for routes with a trailing slash. This Stack Overflow post shows how to…
-
💭 How to pull from images from docker.io with podm...
Here's my thought on 💭 How to pull from images from docker.io with podman By default podman will not pull images from docker.io and will need setup. This…
-
💭 python script is not found
Here's my thought on 💭 python script is not found When setting up a new machine, vm, docker image you might be installing command line tools from places like…
-
Python scandir ignores hidden directories
The next version of markata will be around a full second faster at building it's docs, that's a 30% bump in performance at the current state. This performance will come when virtual environments are stored in the same directory as the source code. "One lone jedi stands in Glowing chains of interconnected network of technological cubes, in the middle of a futuristic cyberpunk dubai city, in the art style of dan mumford and marc simonetti, atmospheric lighting, intricate, volumetric lighting, beau
-
Playing Star Wars Text Adventure with a 10 yr old
The following is a playthrough of Star Wars Text Adventure with a 10 yr old.The following is a playthrough of StarThe following is a playthrough of Star
-
Pydantic and singledispatch
I was reading about pydantic-singledispatch from Giddeon's blog and found it very intersting. I'm getting ready to implement pydantic on my static site generator markata , and I think there are so uses for this idea, so I want to try it out. The Idea Let's set up some pydantic settings. We will need separate Models for each environment that we want to support for this to work. The whole idea is to use and type hints to provide unique execution for each environment. We might want something like
-
pipx textual devtools
I really like having global cli command installed with pipx. Since textual (the css release) is out I want to be able to pop into textual devtools easily from anywhere. "rusting tape machine robot, cinematic lighting, detailed, cell shaded, 4 k, warm colours, concept art, by wlop, ilya kuvshinov, artgerm, krenz cushart, greg rutkowski, pixiv. cinematic dramatic atmosphere, sharp focus, volumetric lighting, cinematic lighting, studio quality" -s50 -W832 -H416 -C12.0 -Ak_lms -S2404332231 Pipx In
-
textual app devtools
I am working through the textual tutorial, and I want to put it in a proper cli that I can pip install and run the command without . This is a fine pattern, but I also want this to work when I don't have a file to run. "An astronaut working in a lab, hacking on a computer terminal, htop is running, shallow depth of field beakers, test tubes, volumetric lighting, pink lighting, by victo ngai, killian eng vibrant colours, dynamic lighting, digital art" -s50 -W768 -H448 -C7.5 -Ak_lms -S3617210203
-
localstack status permission
I ran into an issue where I was unable to ask localstack for its status. I would run the command and it would tell me that it didn't have permission to read files from my own home directory. Let's fix it The issue I would run this to ask for the status. And get this error What happened It dawned on me that the first time I ran localstack was straight docker, not the python cli. When docker runs it typically runs as root unless the Dockerfile sets up a user and group for it. "cell shaded, long,
-
Markata Supports Jinja Plugins 0.5.0.dev2
Markata now allows you to create jinja extensions that will be loaded right in with nothing more than a . From the Changelog The entry for 0.5.0.dev2 from markata's changelog Created entrypoint hook allowing for users to extend marka with jinja exensions #60 0.5.0.dev2 "cybernetic soldier working on a rusting tape machine robot, cinematic lighting, detailed, cell shaded, 4 k, warm colours, concept art, by wlop, ilya kuvshinov, artgerm, krenz cushart, greg rutkowski, pixiv. cinematic dramatic a
-
Getting Started with Django REST framework
In my adventure to learn django, I want to be able to setup REST api's to feed into dynamic front end sites. Potentially sites running react under the hood. cell shaded full body shot of a cybernetic blue soldier with glowing eyes working ina lab, llustration, post grunge, pink glowing volumetric lighting, engulfed in smoke and fog, concept art by josan gonzales and wlop, by james jean, Victo ngai, David Rubín, Mike Mignola, Laurie Greasley, highly detailed, sharp focus,alien,Trending on Artstat
-
Markata now uses hatch
Markata now uses hatch as its build backend, and version bumping tool. , and are completely gone. "An astronaut working in a lab, there is a series of eggs ready to hatch baby snakes on the table, experiments running, beakers, test tubes, cyberpunk trending on artstation, neon lighting, volumetric lighting, pink lighting" -s50 -W800 -H450 -C7.5 -Ak_lms -S4048189038 {.more-cinematic} 0.5.0 is big Markata 0.5.0 is now out, and it's huge. Even though it's the backend of this blog I don't actuall
-
django create superuser
My next step into django made me realize that I do not have access to the admin panel, turns out that I need to create a cuper user first. "cybernetic soldier working on a rusting tape machine robot, cinematic lighting, detailed, cell shaded, 4 k, warm colours, concept art, by wlop, ilya kuvshinov, artgerm, krenz cushart, greg rutkowski, pixiv. cinematic dramatic atmosphere, sharp focus, volumetric lighting, cinematic lighting, studio quality" -s50 -W832 -H416 -C12.0 -Ak_lms -S3309980874 Run Mig
-
django disallowed host
I am continuing my journey into django, but today I am not at my workstation. I am ssh'd in remotely from a chromebook. I am fully outside of my network, so I can't access it by localhost, or it's ip. I do have cloudflared tunnel installed and dns setup to a . Settings I found this in and yolo, it worked first try. I am in from my remote location, and even have auth taken care of thanks to cloudflare. I am really hoping to learn how to setup my own auth with django as this is one of the t
-
Trying out django
I have no experience in django, and in my exploration to become a better python developer I am dipping my toe into one of the most polished and widely used web frameworks Django to so that I can better understand it and become a better python developer. If you found this at all helpful make sure you check out the django tutorial "An atronaut working in a lab, there is a long snake working along side, shallow depth of field beakers, test tubes, volumetric lighting, pink lighting, by victo ngai,
-
how to escape variables in jinja templates
While updating my site to use Markata's new configurable head I ran into some escaping issues. Things like single quotes would cause jinja to fail as it was closing quotes that it shouldnt have. Nuclear core being help up by glowing neon wires, cyberpunk synthwave, intricate abstract. delicate artwork. by tooth wu, wlop, beeple, dan mumford. pink volumetric lighting, octane render, trending on artstation, greg rutkowski very coherent symmetrical artwork. cinematic, hyper realism, high detail, o
-
I've made my ipython config too complicated, let's...
When I am developing python code I often have a repl open alongside of it running snippets ofcode as I go. Ipython is my repl of choice, and I hace tricked it out the best I can and I really like it. The problem I recently discovered is that I have way overcomplicated it. What Have I done?? So in the past the way I have setup a few extensions for myself is to add something like this to my directory. It sets up some things like rich highlighting or in this example automatic imports. I even
-
markata extend in configuration
Astronauts stunting some stylish color explosion {.more-cinematic} A long needed feature of markata has been the ability to really configure out templates with configuration rather. It's been long that you needed that if you really want to change the style, meta tags, or anything in the head you needed to write a plugin or eject out of the template and use your own. Adding some Head Now you can add some extra style to your site with the existing built-in template. You can have more than one Hea
-
Create a new Python Project with the Hatch Cli
I'm really getting into using hatch as my go to build system, and I am really liking it so far. I am slowly finding new things that just work really well. is one of those things that I didn't realize I needed until I had it. Hatch new cover image creating new versions created by myself with stable diffusion hatch-new-cli Note! I am running all of these commands with pipx. I like to use pipx for all of my system level cli applications. To emphasis this point in the article I am going to use
-
Versioning Python Projects with Hatch
Hatch has an amazing versioning cli for python packages that just works. It takes very little config to get going and you can start bumping versions without worry. Hatch version cover image {.more-cinematic} creating new versions created by myself with stable diffusion project layout For trying out the cli let's make a simple project with the terrible name . pyproject.toml The main hero of this post is the . This is what defines all of our PEP 517 style project setup. statically versioni
-
From Markdown to Blog with Markata | lightning tal...
Markata is a great python framework that allows you to go from markdown to a full website very quickly. You can get up and running with nothing more than Markdown. It is also built on a full plugin architecture, so if there is extra functionality that you want to add, you can create a plugin to make it behave like you want. Full transparancy... I built markata. The talk The talk is live on YouTube. Make sure you check out the other videos from the conference. There were quite a few quality t
-
I spoke at Python Web Conf 2022
I spoke at python webconf in March 2022 about how I deploy this blog on a continuous basis. Building this blog has brought me a lot of benefits. I have a set of custom curated notes to help describe a problem and how to solve it to me. At theis point it's not uncommon to google an Issue I am having and finding my own blog with exactly the solution I need at the top. I also bump into people from time to time that recognize me from the blog, its a nice conversation starter, and street cred. The
-
Packages I Maintain
Markata I open sourced the static site framework that I use to build my-blog among other side projects. It's a plugins all the way down static site generator, that makes me happy to use. {% gh_repo_list_topic "waylonwalker", "markata" %} Repos used to build this blog my-blog is built on a number of small repos. I set it up this way so that creating content is fast and easy to do. I don't have to worry about carrying around large images with my lightweight text files just to make some posts. {%
-
I turned on 2FA for all of my pypi packages
I got all the pypi packages that I own behind 2 factor authentication. 💪 Recently this really made it's rounds in the python news since pypi was requiring critical package maintainers to have 2FA on and even offering them hardware tokens to help them turn this on. I feel like this caused a bit of confusion as turning on 2FA does not mean that you need to do anything different to deploy a package, and it DOES NOT require a hardware token. You can continue using your favorite 2FA app. You might
-
I was on Talk Python
After years of listening to talkpython.fm I had the honor to be part of episode-337 to talk about Kedro for maintainable data science. I was quite nervous to talk on a show that I helped shape my career in such a profound way. I started my journey towards software engineering near Michaels first few episodes. His discussions with such great developers over the years has made an huge impact on my skill. It has always given me great advice and topics to go deeper on. During the episode I tried m
-
use vim to remove duplicates
I just love how some features of vim are so discoverable and memorable once you really start to grasp it. Sorting and uniqing your files or ranges is one of those examples for me. I recently used this to dedupe my autogenerated links section for rich-syntax-range-style . More often I am using it to sort and uniqify objects like arrays and lists. Here is what the markdown looks like. Then typing yields a uniqly sorted list of links.
-
Highlighting text ranges with Rich | python
Today I've been playing with py-tree-sitter a bit and I wanted to highlight match ranges, but was unable to figure out how to do it with rich , so I reached out to @textualizeio for help. https://twitter.com/_WaylonWalker/status/1562469770766589952 While waiting for that reply let's show how we got this far. imports Lets import all the classes that we need from rich and setup a console to print to. some code Now we need some code to highlight. I am going to rip my from another post . prin
-
markata 0.3.0 is 15-20% faster
image from Dall-e {.more-cinematic} a sprinter edging out his opponent by Dall-e It's about time to release Markata 0.3.0. I've had 8 pre-releases since the last release, but more importantly it has about 3 months of updates. Many of which are just cleaning up bad practices that were showing up as hot spots on my reports Markata started off partly as a python developer frustrated with using nodejs for everything, and a desire to learn how to make frameworks in pluggy. Little did I know how f
-
get the version of any python package | python api
A common meta thing that I need in python is to find the version of a package. Most of the time I reach for , but that does not always work. but not all projects have a In searching the internet for an answer nearly every one of them pointed me to . This works for most projects, but is simply a convention, its not required. Not all projects implement a , but most do. I've never seen it lie to me, but there is nothing stopping someone from shipping mismatched versions. If you maintain a pro
-
IPython q to exit
So many terminal applications bind to exit, even the python debugger, its muscle memory for me. But to exit ipython I have to type out . This is fine, but since q is muscle memory for me I get this error a few times per day. After digging way too deep into how IPython implements its I realized there was a very simple solution here. automatically imports all the scripts you put in your profile directory, all I needed was to create with the following. It was that simple. This is not a gam
-
Copier Slugify | python templating | using cookiec...
It's no secret that I love automation, and lately my templating framework of choice has been copier. One hiccup I recently ran into was having spaces in my templated directory names. This makes it harder to run commands against as you need to escape them, and if they end up in a url you end up with ugly all over. Cookiecutter has the solution Yes the solution comes from a competing templating framework. I install copier with pipx, so I need to inject cookiecutter in to my copier environment
-
Textual has devtools
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 curren
-
Using Different versions of python with pipx | pye...
"cell shaded, long, full body, shot of a cybernetic blue soldier with glowing pink eyes, llustration, post grunge, cinebatic dramatic atmosphere, sharp focus, pink glowing volumetric lighting, concept art by josan gonzales and wlop, by james jean, Victo ngai, David Rubín, Mike Mignola, Laurie Greasley, highly detailed, sharp focus,alien,Trending on Artstation, HQ, deviantart, art by artgem" -s50 -W832 -H416 -C7.5 -Ak_lms -S70567464 I love using pipx for automatic virtual environment management o
-
LIVE-REPLAY - Python dev | Markata todoui | 4/6/20...
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:
-
How I Quickly Capture Screenshots directly into My...
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 opti
-
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
-
PyOhio CFP's
Here are some CFP's that I used for PyOhio 2022. https://pretalx.com/pyohio-2022/cfp {.hoverlink} 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 Workfl
-
python functools total ordering
functools.total_ordering makes adding all of six of the rich comparison operators to your custom classes much easier, and more likely that you remember all of them. From the Docs: The class must define one of __lt__(), __le__(), __gt__(), or __ge__ In addition, the class should supply an __eq__() method. one of these lt () le () gt () ge () and required to have this one eq () Total Ordering Docs Here is an example using the Enum I was working on the other day.
-
Smoother Python with automatic imports | pyflyby
This is not a flaky works half the time kind of plugin, it's a seriously smooth editing experience. I've just started using pyflyby, and it is solid so far. I have automatic imports on every save of a python file in neovim, and automatic imports on every command in ipython. I can't tell you how pumped I am for this, and how good its felt to use over the past few weeks. It's glorious. YouTube video Listen to me rant on how great pyflyby is https://youtu.be/2QW5DJiEJH4 {.youtube-embed} Give the
-
kedro catalog create
I use to boost my productivity by automatically generating yaml catalog entries for me. It will create new yaml files for each pipeline, fill in missiing catalog entries, and respect already existing catalog entries. It will reformat the file, and sort it based on catalog key. https://youtu.be/_22ELT4kja4 {.youtube-embed} [[ what-is-kedro ]] 👆 Unsure what kedro is? Check out this post. Running Kedro Catalog Create The command to ensure there are catalog entries for every dataset in the pass
-
Just Ask Ipython for help
It happens to the best of us We can't all remember every single function signature out there, it's just not possible. If you want to stay productive while coding without the temptation to hit YouTube or Twitter. Use the built in help. Here are 5 ways to get help without leaving your terminal. https://youtu.be/TZrRAP-9UMk Docstrings In any python repl you can access the docstring of a function by calling for . In Ipython we can even get some syntax highlighting with the . Source Code Sometim
-
Setting Parameters in kedro
Parameters are a place for you to store variables for your pipeline that can be accessed by any node that needs it, and can be easily changed by changing your environment. Parameters are stored in the repository in yaml files. https://youtu.be/Jj5cQ5bqcjg {.youtube-embed} [[ what-is-kedro ]] 👆 Unsure what kedro is? Check out this post. parameters files You can have multiple parameters files and choose which ones to load by setting your environment. By default kedro will give you a and para
-
Writing your first kedro Nodes
https://youtu.be/-gEwU-MrPuA Before we jump in with anything crazy, let's make some nodes with some vanilla data structures. import node You will need to import node from kedro.pipeline to start creating nodes. func The is a callable that will take the and create the . inputs / outputs Inputs and outputs can be None, a single catalog entry as a string, mutiple catalog entries as a List of strings, or a dictionary of strings where the key is the keyword argument of the func and the value is
-
Running your Kedro Pipeline from the command line
Running your kedro pipeline from the command line could not be any easier to get started. This is a concept that you may or may not do often depending on your workflow, but its good to have under your belt. I personally do this half the time and run from ipython half the time. In production, I mostly use docker and that is all done with this cli. https://youtu.be/ZmccpLy-OEI {.youtube-embed} [[ what-is-kedro ]] 👆 Unsure what kedro is? Check out this post. Kedro run To run the whole darn proj
-
kedro Virtual Environment
Avoid serious version conflict issues, and use a virtual environment anytime you are running python, here are three ways you can setup a kedro virtual environment. https://youtu.be/ZSxc5VVCBhM {.youtube-embed} conda venv pipenv conda I prefer to use conda as my virtual environment manager of choice as it give me both the interpreter and the packages I install. I don't have to rely on the system version of python or another tool to maintain python versions at all, I get everything in one tool. st
-
Kedro Install
Kedro comes with an command to install and manage all of your projects dependencies. https://youtu.be/IWimEs-hHQg cd into your project directory and activate env You must start by having your kedro project either cloned down from an existing project or created from kedro new. Then activate your environment. [[ kedro-new ]] this post covers kedro new [[ kedro-environment ]] This post covers creating your virtual environment for kedro install kedro Make sure you have kedro installed in your cur
-
Kedro Git Init
Immediately after , before you start running or your first line of code the first thing you should always do after getting a new kedro template created is to . https://youtu.be/IGba3ytf_6U git init Its as simple as these three commands to get started. I don't care if this project is for learning, if it will never have a remote or not, use git.
-
Kedro New
https://youtu.be/uqiv5LAiJe0 {.youtube-embed} Kedro new is simply a wrapper around the cookiecutter templating library. The kedro team maintains a ready made template that has everything you need for a kedro project. They also maintain a few kedro starters, which are very similar to the base template. [[ what-is-kedro ]] Unsure what kedro is, Check out yesterdays post on What is Kedro. pipx I reccomend using when running kedro new. is designed for system level cli tools so that you do not
-
What is Kedro
Kedro is an unopinionated Data Engineering framework that comes with a somewhat opinionated template. It gives the user a way to build pipelines that automatically take care of io through the use of abstract that the user specifies through entries. These entries are loaded, ran through a function, and saved by . The order that these are executed are determined by the , which is a DAG . It's the 's job to manage the execution of the . https://youtu.be/Wf4rnFsaFFU {.youtube-embed}
-
Incremental Versioned Datasets in Kedro
Kedro versioned datasets can be mixed with incremental and partitioned datasets to do some timeseries analysis on how our dataset changes over time. Kedro is a very extensible and composible framework, that allows us to build solutions from the individual components that it provides. This article is a great example of how you can combine these components in unique ways to achieve some powerful results with very little work. [[ what-is-kedro ]] 👆 Unsure what kedro is? Check out this post. How
-
I Started Streaming on Twitch
I recently started streaming on twitch.tv/waylonwalker and it's been a blast so far. python kedro Data Science Data Engineering webdev digital gardening Kedro Spaceflights It all started with kedro/issues/606 , Yetu called out for users of kedro to record themselves doing a walk through of their tutorials. I wanted to do this, but was really stuck at the fact that recording or editing somewhat polished vide is quite time consuming for me. kedro-issue-606 Inspiration My introduction to twitch c
-
Kedro Spaceflights - part 2 | Stream replay June 7...
This was my seconf time ever streaming on twitch.tv/waylonwalker , and I completely botched my mic 2x. https://youtu.be/_7MwgKu-844 Links Spaceflights Tutorial my spaceflights repo Notes to get started
-
🌱 Digital Gardening | gif to Mp4 | Stream replay J...
https://youtu.be/I4VenHqIEng Doing some Digital Gardening on stream Ahrefs Errors ahrefs large images Automatic gif to mp4 gif to mp4 After this stream all gifs on my site are converted to mp4/webm if they exist. tmux-navigation-2021
-
Kedro Spaceflights - part 1 | Stream replay June 4...
This was my first time ever streaming on twitch.tv/waylonwalker . I am excited to get going. I have been streaming early in the morning while I am still waking up, so still a bit groggy as I go. https://youtu.be/Y07UBr9Ccjs Kedro Spaceflights It all started with kedro/issues/606 , Yetu called out for users of kedro to record themselves doing a walk through of their tutorials. I wanted to do this, but was really stuck at the fact that recording or editing somewhat polished vide is quite time co
-
Using Kedro In Scripts
With the latest releases of kedro , it is now possible to run kedro pipelines from within scripts. While I would not start a project with this technique, it will be a good tool to keep in my back pocket when I want to sprinkle in a bit of kedro goodness in existing projects. New to Kedro [[ what-is-kedro ]] If your just learning about kedro check out this post walking through it No More Rabbit Hole of Errors as of 0.17.2 I've tried to do this in kedro and it turned into a rabbit hole of erro
-
Silence Kedro Logs
Kedro can have a chatty logger. While this is super nice in production so see everything that happened during a pipeline run. This can be troublesome while trying to implement a cli extension with clean output. Silence a Python log First, how does one silence a python log? Python loggers can be retrieved by the module's function. Then their log level can be changed. Much of kedro's chattiness comes from INFO level logs. I don't want to hear about anything for my current use case unless i
-
Python Diskcahe is locked
Running multiple processes using the same diskcache object can cause issues with locks. As I was trying to setup a rich Live display for markata I ran into issues where each part could not nun simultaneusly. As I had followed the instructions from discache it was not directly aparant to me, so I had to make a simple example to experiment and play with at a small scale. Minimum reproducible error Minimum reporducible error is one of my superpowers in development. I do this very often to sus ou
-
What is if __name__ == "__main___", and how do I u...
When a python module is called it is assigned the of otherwise if it's imported it will be assigned the of the module. Concrete example Let's create a module to play with a bit. We will call this module . It is a module that we may want to run by it'self or import and use in other modules. I have set this module up to execute one of two if statements based on whether the module it'self is being ran or if the module is being imported. Note it is not common to have a block, this is just
-
How to Install micromamba on linux (from the comam...
I really like using conda ( ) as my python virtual environment manager of choice. It's simple and it includes its own python interpreter using the version that I specify at creation. Mamba from their readme Mamba is a reimplementation of the conda package manager in C++. parallel downloading of repository data and package files using multi-threading libsolv for much faster dependency solving, a state of the art library used in the RPM package manager of Red Hat, Fedora and OpenSUSE core parts
-
kedro replit
I am trying to see what an embeded replit
-
Pytest capsys
Testing print/log statements in pytest can be a bit tricky, capsys makes it super easy, but I often struggle to find it. capsys capsys is a builtin pytest fixture that can be passed into any test to capture stdin/stdout. For a more comprehensive description check out the docs on capsys using capsys Simply create a test function that accepts capsys as an argument and pytest will give you a capsys opject.
-
Building Rich a Dev Server
Draft Post I've really been digging @willmcgugan's rich library for creating TUI like interfaces in python. I've only recently started to take full advantage of it. Dev Server I am working on a project in which I want to have a dev server running continuously in the background. I really like dev servers theat automatically chooose an unused port and list out the running pid so that I can kill it if I need to. automatic port number auto-restart display ( port, pid, uptime ) finding the port I
-
Site Down During Build
Recently I noticed a new netlify site of mine was down while I was checking to see if new content was live. Later found out this was consistent after each and every push the site would go gown as soon as I hit push, and would not come back until the build finished. Is this normal? Do other Netlify sites go down during build??? Short Answer NO. All of my google fu lead me to believe I was alone and none of my other sites do this. Digging into my build My deploy script ends with the following. Aft
-
Kedro pipeline_registry.py
With the realease of came a new module in the project template . Here are some notes that I learned while playing with this new module. migrating to create a file create a function in that mirrors the register_pipelines method from your module do not bring the decorator remove register_pipelines method on your class You should now have something that looks like this in your . pipeline_registry only works in Conflict Resolution What happens If I register pipelines in both places I w
-
Minimal Kedro Pipeline
How small can a minimum kedro pipeline ready to package be? I made one within 4 files that you can pip install. It's only a total of 35 lines of python, 8 in and 27 in . 📝 Note this is only a composable pipeline, not a full project, it does not contain a catalog or runner. Minimal Kedro Pipeline I have everything for this post hosted in this gihub repo , you can fork it, clone it, or just follow along. Installation Caveats This repo represents the minimal amount of structure to build a ked
-
Markdown Cli
This is a post that may be a work in progress for awhile, Its a collections of thoughts on managing my blog, but could be translated into anythiung that is just a collection of markdown. Listing things posts tags draft posts data frontmatter filepath content template html render content Markdown.Markdown support extentsions frontmatter cleaning. provide ways to hook in or clean up the frontmatter Markata.Markata methods load render save Markata.Post methods load render save Markata plugins befor
-
Kedro - My Data Is Not A Table
In python data science/engineering most of our data is in the form of some sort of table, typically a DataFrame from a library like pandas, spark, or dask. DataFrames are the heart of most pipelines These containers for data contain many convenient methods to manipulate table like data structures. Sometimes we leverage other data types, namely vanilla types like lists and dicts, or even numpy data types. [[ what-is-kedro ]] unfamiliar with kedro, check out this post Sometimes datasets are not t
-
Quickly Change Conda Env With Fzf
Changing conda environments is a bit verbose, I use a function with fzf that both lists environments and selects the one I want in one go. Conda I have used conda as a virtual environment tool for years now. I started using conda for its simplicity to install packages on windows, but now that has gotten so much better and it's been years since I have run a command. I'm sure that I could use a different environment manager, but it works for me and makes sense. What environment manager do you u
-
Minimal Python Package
What does it take to create an installable python package that can be hosted on pypi? What is the minimal python package setup.py my_module.py This post is somewhat inspired by the bottle framework, which is famously created as a single python module. Yes, a whole web framework is written in one file. Directory structure setup.py name The name of the package can contain any letters, numbers, "_", or "-". Even if it's for internal/personal consumption only I usually check for discrepancy with p
-
Ipython-Config
I use my ipython terminal daily. It's my go to way of running python most of the time. After you use it for a little bit you will probably want to setup a bit of your own configuration. install ipython Activate your virtual environment of choice and pip install it. Any time you are running your project in a virtual environment, you will need to install ipython inside it to access those packages from ipython. You are using a virtual environment right? Virtual environments like venv or conda ca
-
Custom Ipython Prompt
I've grown tired of the standard ipython prompt as it doesn't do much to give me any useful information. The default one gives out a line number that only seems to add anxiety as I am working on a simple problem and see that number grow to several hundred. I start to question my ability 🤦♂️. Configuration If you already have an ipython config you can move on otherwise check out this post on creating an ipython config. [[ ipython-config ]] The Dream Prompt I want something similar to the stars
-
Automating my Post Starter
One thing we all dread is mundane work of getting started, and all the hoops it takes to get going. This year I want to post more often and I am taking some steps towards making it easier for myself to just get started. When I start a new post I need to cd into my blog directory, start neovim in a markdown file with a clever name, copy some frontmatter boilerplate, update the post date, add tags, a description, and a cover. Todo List for starting a post frontmatter template Title slug tags date
-
Windowing Python Lists
In python data science we often will reach for pandas a bit more than necessary. While pandas can save us so much there are times where there are alternatives that are much simpler. The itertools more-itertools` are full of cases of this. This post is a walkthrough of me solving a problem with rather than reaching for a for loop, or pandas. I am working on a one-line-link expander for my blog. I ended up doing it, just by modifying the markdown with python. I first split the post into line
-
Adding Audio to my blog posts
This is episode 1 of the Waylon Walker Audio experience, posts from waylonwalker.com {.hoverlink} in audio form. So I have had this idea for awhile to add audio to my blog posts. The idea partly comes from the aws blog, if you have ever been on their blog you will have noticed that they have a voiced by amazon polly section. What to Expect Honestly I don't know this is all new to me and I dont have much to go off of. For now its a test that may or may not work out. I will say that the time th
-
gatsby-remark-embedder
Inspired by discourse's link expansion I am rolling out expansions for one line links on the blog waylonwalker . I was able to find a gatsby plugin gatsby-remark-embedder that expands one line links for social cards for popular platforms like twitter and YouTube through a repose from Kyle Mathews to my tweet. https://twitter.com/kylemathews/status/1329817928666005504 Use Cases This covers a couple of use cases I have with very little effort. Twitter YouTube install This was super quick and sim
-
Expand One Line Links
I wanted a super simple way to cross-link blog posts that require as little effort as possible, yet still looks good in vanilla markdown in GitHub. I have been using a snippet that puts HTML into the markdown. While this works, it's more manual/difficult for me does not look the best, and does not read well as Goals for new card The new card should be fully automated to expand with title, description, and cover image. Bonus if I am able to attach a comment behind it. fully automated card expa
-
reasons-to-kedro
There are many reasons that you should be using kedro. If you are on a team of Data Scientists/Data Engineers processing DataFrames from many data sources should be considering a pipeline framework. Kedro is a great option that provides many benefits for teams to collaborate, develop, and deploy data pipelines [[ what-is-kedro ]] Starter Template Kedro makes it super easy to get started with their cli that utilizes cookiecutter under the hood. [[ create-new-kedro-project ]] read more about how
-
What's New in Kedro 0.16.6
Kedro 0.16.6 is out! Let's take a look through the release notes Deployment Docs This is really exciting to see more deployment options coming from the kedro team. It really shows the power of the framework. The power of some of these orchestrations options is incredible. Argo Prefect Kubeflow Batch SageMaker Most of them hinge on a sweet combination of the kedro cli, docker image, and the pipeline knowing your nodes dependencies. Argo, Prefect, and Kubeflow have an interesting technique where
-
Designing a "Router" for kedro
nodes_global I released a router-like plugin for kedro back in April 2020. This was not the first design, the idea actually came from one of the QB folks who taught me kedro nearly a year before. We were assembling our pipelines with something called . It worked fairly well but did have some issues around being set as a global variable. But... One thing in particular that it did not lend itself well to was being able to create a packagable pipeline that I could pip install and append into an
-
Reclaim memory usage in Jupyter
Today I ran into an issue where we had a one-off script that just needed to work, but it was just chewing threw memory like nothing. It started with a colleague asking me How do I clear the memory in a Jupyter notebook, these are the steps we took to debug the issue and free up some memory in their notebook. How do I clear the memory in a Jupyter notebook? Pre check the status of memory There are a number of ways that you can check the amount of memory on your system. The easiest is not necessa
-
Strip Trailing Whitespace from Git projects
A common linting error thrown by various linters is for trailing whitespace. I most often use flake8. I generally have [pre-commit]( https://waylonwalker.com/pre-commit-is-awesome hooks setup to strip this, but sometimes I run into situations where I jump into a project without it, and my editor lights up with errors. A simple fix is to run this one-liner. One-Liner to strip whitespace bash read more about how [[pre-commit-is-awesome]]
-
Three things to Automate with Python using Pandas
Here are three things that I see my non programming counterparts doing every single day. These really sum up so much of what folks do within an office. So many of us dabble in or become power users of spreadsheets without knowing there is an alternative out there that can save us time, automate boring things, and allow us to open up our minds for the part that we add value, Thinking about the data. Focus on Value Add Operations Lets face it, stitching together spreadsheets is zero value add by
-
How to Install miniconda on linux (from the comman...
miniconda is a python distribution from continuum. It's a slimmed-down version of their very popular anaconda distribution. It comes with its own environment manager and has eased the install process for many that do not have a way to compile c-extensions. It made it much easier to install the data science stack on windows a few years ago. These days windows are much better than it was back then at compiling c-extensions. I still like its environment manager, which installs to a global directory
-
What's New in Kedro 0.16.4
If we take a look at the release notes I see one major feature improvement on the list, auto-discovery of hooks. This one comes a bit surprising as it was just casually mentioned in #435 auto enabled plugins mentioned in issue 435 Think pytest As mentioned in #435 this is the model that pytest uses. Not all plugins automatically start doing things right out of the box but require a CLI argument. simplicity It feels a bit crazy that simply installing a package will change the way that your
-
Integration testing with Python, TestProject.io, a...
!!! Caution None of the testproject.io urls resolve anymore in JAN 2025, I removed all of the broken links. As I continue to build out waylonwalker.com I sometimes run into some errors that are not caught because I do not have good testing implemented. I want to explore some integration testing options using GitHub's actions. Running integration tests will not prevent bugs from happening completely, but it will allow me to quickly spot them and rollback. 🤔 What to test first? The very first t
-
🐍 Practice Python Online
When learning a new skill it's important to practice along the way. In order for me to show up to practice I need to make it easy to show up. An easy way to show up to practice with python is to use an online repl. With these you can try out something quick. Sometimes I see snippets from blogs or tweets and I need to try the out for myself to really understand. When learning a new skill it's important to practice along the way. In order for me to show up to practice I need to make it easy to sh
-
Kedro Catalog
I am exploring a kedro catalog meta data hook, these are some notes about what I am thinking. Process metadata will be attached to the dataset object under a attribute metadata will be updated metadata will be empty until a pipeline is ran with the hook on optionally a function to add metadata will be added metadata will be stored in a file next to the meta Problems This Hook Should solve what datasets have a columns with in the name what datasets were updated after last tuesday which pipe
-
How python tools configure
mypy Mypy's config parser seems to be one of the most complex. This is likely in part to it having the largest backwards compatability of all projects that I looked at. mypy/config_parser flake8 options/config.py black black portray only uses pyproject.toml portray/config.py interrogate only uses pyproject.toml
-
Why use a cms
When first learning to code its very common to hard code everything right into the code. This happens with most folks in just about any language. Whether its HTML or markdown for front end content, or even hardcoding parameters in our backend languages like python, or node.js. 🤷♀️ What's wrong with hard coding everything? Hard coding everything right into your code makes it really hard for non-technical collaborators to join. It makes it nearly impossible to hand websites off to clients without
-
🐍 Parsing RSS feeds with Python
I am looking into a way to replace my google reader experience that I had back in 2013 before google took it from us. I am starting by learning how to parse feeds with python, and without much previous knowledge, it proved to be much easier than anticipated thanks to the library. This is how I used python to parse rss and setup my own custom feed. Install Install the feedparser library. Get the content The feed object The feed is a feedparser.FeedParserDict. For all intents and purposes this
-
How I Built My GitHub Profile
I ran a discussion on dev that collected quite a list of examples in the comment section. So many great calls to action, animations, memes, and weird tricks. dev.to whats-on-your-github-profile My current profile Waylon Walkers GitHub profile social icons Upload all of your icons to the repo in a directory such as or , then link them with a attribute like below. I used html for mine, not sure if you can set the in markdown. note I did add a bit of (non-breaking-whitespace) between m
-
SLIDES - understanding python \*args and \*\*kwarg...
Python and are super useful tools, that when used properly can make you code much simpler and easier to maintain. Large manual conversions from a dataset to function arguments can be packed and unpacked into lists or dictionaries. Beware though, this power can lead to some really unreadable/unusable code if done wrong. I generally post these as a carousel on LinkedIn based on a full article. Let mw know what you think of it shown inside of a blog @_waylonwalker . python args and kwargs
-
Gracefully adopt kedro, the catalog
Why use kedro catalog? While using the catalog alone will not reap all of the benefits of the framework, it does get you and your project ready for the full framework eventually. For me the full benefit of the catalog comes when you combine it with the pipeline and dont even touch read/write steps at all. Taking a step into kedro by adopting the catalog first will give you a way to organize all of your data loads in one place, and stop manually writing read/write code, which can be different fo
-
How to find things in your kedro catalog
kedro 0.16.2 just dropped last week with a long-awaited feature... catalog search ! I went as far as monkey patching this into each of my projects. I work jump between a few really big projects that have tons of datasets. Being able to quickly search for what I need is so useful. The Catalog The kedro data catalog is a key component to the kedro framework. It handles all data loading and saving for you. It is configurable and hackable. Having all your data connections listed in one place
-
How Kedro handles your inputs
Passing inputs into kedro is a key concept. Understanding how it accepts a single catalog key as input is quite trivial that easily makes sense, but passing a list or dictionary of catalog entries can be a bit confusing. *args/**args review Check out this post for a review of how work in python. [[ python-args-kwargs ]] python args and kwargs article by @_waylonwalker All Kedro inputs are catalog Entries When kedro runs your pipeline it uses the catalog to imperatively load your data, mea
-
Refactoring your blog urls
I just did a quick refactoring of my JAMStack blog urls. Some didn't fit with my style, some had that I wanted to switch to , and others were ridiculously long. I've been using forestry as my CMS, I write many of my posts there, and sometimes it picks some crazy file names (based on my titles). It was time to refactor. [[ refactor-in-cli ]] When refactorings similar to this get really big I often need to do some project wide find an replace, I usually do this right from the command line. 🖊
-
understanding python \*args and \*\*kwargs
Python and are super useful tools, that when used properly can make you code much simpler and easier to maintain. Large manual conversions from a dataset to function arguments can be packed and unpacked into lists or dictionaries. Beware though, this power can lead to some really unreadable/unusable code if done wrong. Python and are super useful tools, that when used properly can make you code much simpler and easier to maintain. Large manual conversions from a dataset to function a
-
pre-commit is awesome
I recently discovered the ✨ awesomeness that is pre-commit. I steered away from it for so long because it seemed like a big daunting thing to set up, but really it's easy. It will automatically run checks for you. In some cases, it will even automatically fix them for you. Out of the box, it will do things like automatically trim extra whitespace, fix file endings, and ensure file sizes are not too large for git. I recently discovered the ✨ awesomeness that is pre-commit. I steered away from it
-
Kedro Static Viz 0.3.0 is out with Hooks Support
kedro-static-viz is out with support for the newly released hooks feature. This means that you can have automatically deploy a full gatsby site keeping your visualization always up to date. Even though it is a static site there is no functionality lost. The only thing that's missing is the flask server. With kedro-static-viz you can deploy your visualization to a number of static hosting providers such as GitHub pages free of charge with wicked fast performance ⚡ It's Fast Even though
-
How to get Dev Comments from an article Url
I want to incorporate some of the wonderful comments, \U0001F495, \U0001F984, and \U0001F516's that I have been getting on dev.to on my website. I have dabbled once or twice with no avail this time I am taking notes on my journey, so follow along and let's get there together. By the end of this post, I will have a way to get comments from posts on the client-side thanks to the wonderfully open dev.to API. I want to incorporate some of the wonderful comments, 💕, 🦄, and 🔖's that I have been gett
-
Adding google fonts to a gatsbyjs site
stack overflow link
-
Create Custom Kedro Dataset
Kedro provides an efficient way to build out data catalogs with their yaml api. It allows you to be very declaritive about loading and saving your data. For the most part you just need to tell Kedro what connector to use and its filepath. When running Kedro takes care of all of the read/write, you just reference the catalog key. But what is happening behind the scenes Under the hood there is an that each connector inherits from. It sets up a lot of the behind the scenes structure for us so
-
Interrogate is a pretty awesome, brand new, cli fo...
As usual while listening to python bytes 181 I heard of a tool that I had to try out right away! This thing is 🔥 hot off the press folks, we're talking the first release only 3 weeks ago. Its something that the python community needed years ago, and it belongs in your CI today . I had tried several tools that tried to do docstring coverage in the past but they were a bit cumbersome and were quickly forgotten about. Not interrogate, its dead simple! Nothing I have tried has come close to being
-
creating the kedro-preflight hook
Kedro Hooks Intro - kedro hooks are an exciting upcoming feature of kedro . They allow you to hook into , , and (nouns). With a , or (adjective). This really reminds me of reacts lifecycle hooks, that let you hook into various state of react web components. This is going to make kedro so extendable by the community. I am super pumped to see what the community is able to do with this ability. kedro hooks are an exciting upcoming feature of kedro . They allow you to hook into , , and
-
📝 Kedro Preflight Notes
This is a very rough idea for a kedro package to prevent time lost to get partway through a pipeline run only to realize that you dont have access to data or resources. Must Haves check that inputs exist or are of a type to skip (sql) Good to haves check that all input and output databases are accessible with good credentials check for s3 bucket access check for spark install Implementation run params
-
Explicit vs Implicit Returns in Javascript
Often when reading through javascript examples you will find some arrow functions use parentheses while others use braces . This key difference is that parentheses will implicitly return the last statement while braces require an explicit return statement. It is important to understand the difference between them because it is likely that you will find code examples of both and trying to edit code written differently than you're used to may have unintended consequences. Arrow functions Arro
-
python-deepwatch
Is it possible to deep watch a single python function for changes? Shallow Watch keeping track of a python functions hash is quite simple. There is a method attached to every python function. Calling it will return a hash of the function. If the function changes the hash will change. Using hashlib provides a consistent hash. Now we have a consistent way to hash function code. Deep hashing Find dependencies setup a function in a module with a dependency Create Generic module importer by filepath
-
TIL: Bind arguments to dynamically generated lambd...
This past week I had a really weird bug in my kedro pipeline. For some reason data running through my pipeline was coming out completely made no sense, but if I manually request raw data outside of the pipeline it matched expectations. NOTE While this story is about a kedro pipeline, it can be applied anywhere closures are put into an iterable. Debugger to the rescue After a few days of looking at it off and on, I pinpointed that it was all the way down in the raw layer. Right as data is com
-
Four Github Actions for Python
If you are developing python packages and using GitHub here are four actions that you can use today to automate your release workflow. Since python tools generally have such a simple cli I have opted to use the cli for most of these, that way I know exactly what is happening and have more control over it if I need. If you are developing python packages and using GitHub here are four actions that you can use today to automate your release workflow. Since python tools generally have such a simpl
-
Variables names don't need their type
So often I see a variables inside of its name and it hurts me a little inside. Tell me I'm right or prove me wrong below. Examples Pandas are probably the worst offender that I see Sometimes vanilla structures too! Edge Cases? It's so common when you need to get inside a data structure in a special way that itsn't provided by the library.... I am not exactly sure of a good way around it. Containers are plural Always name your containers plural, so that naming while iterating is simple. Befo
-
Create New Kedro Project
This is a quickstart to getting a new kedro pipeline up and running. After this article you should be able to understand how to get started with kedro . You can learn more about this Hello World Example in the docs 🧹 Install Kedro 🛢 Create the Example Pipeline 💨 Run the example 📉 Show the pipeline visualization Create a Virtual Environment I use conda to control my virtual environments and will create a new environment called with the following command. note the latest compatible vers
-
What is YOUR Advice for New Data Scientists
Learn the business Learn Git Your code does not need to be amazing Keep Learning Learn Git You dont have to start out as a git wizard with the cleanest possible commit history. At first dont let yourself get too wrapped up in it, the most important part is that you make commits. You will find needs for more advanced stuff later. Get comfortable with this, then learn how to , , , etc... Your code does not need to be amazing Get the job done. Keep it in small bite size pieces. Make readable
-
Do You Hoist
I am working through Wes Bos's beginnerjavascript.com/ I just hit module 18 on hoisting. It's something that I always knew was there, Its not something I typically see used or use myself. Do you Hoist? Do you have any use cases that you use hoising? Why? It seems like a really cool feature in any language that uses it, but I dont really notice it in use. What is Hoising There are many articles that cover this in far more depth, but its the idea that variable declarations and functions are de
-
What is Kedro
[[ what-is-kedro ]] This is my original what-is-kedro article. There is a brand new one Kedro is an open source data pipeline framework. It provides guardrails to set your project up right from the start without needing to know deeply how to setup your own python library for data pipelining. It includes really great ways to manipulate and . This article will cover the 10K view of kedro, future articles will dive deper into each one. kedro is an open-source data pipeline framework. It pr
-
Custom Scrollbar Design
Getting a custom scrollbar on your site makes it stand out a bit compared to the very plain stock one that are on most sites. This is how I set mine up on my gatsby site. Inspired by Wes Bos's new uses.tech I wanted a custom scrollbar on my personal site. I had tried to do it in the past, but gave up after it was not working. Looking at the Source Since uses.tech is open source I jumped on github, searched for scroll and found this layout.js . Copy it to my own component My first step was
-
2020 waylonwalker.com rebrand
Moving into 2020 I have been really leaning on using purple as my theme color everywhere more and more. Its time for an update to my personal site, not just because it feels plain, not just because the cover art I am using for dev.to doesn't fit my current card layout, but because I feel inspired and I want to. Starting point  This is what we are working with. It has been my card design for
-
I just added react-headroom to my site
It was so easy to get a professional looking navbar with just 3 lines of code. This package seriously is so usable on mobile it is ridiculous. I found this package from day-4 of the 100 days of gatsby challenge. It is by the wonderful man who brought us gatsbyjs Kyle Mathews, so you know its gotta be good. install react-headroom installation is easy Import Headroom There was no instructions for es6 style imports that are common with gatsbyjs sites like mine, but it was intuitive to figure out.
-
Serverless things to investigate
Social Automation Zappier Free only one step is free can take rss to social Automate.io Form submission https://getform.io Free to get started https://formkeep.com/?#pricing Free 7 day trial $4.99 cheapest after
-
I finally fixed my Styled-Components in gatsby.js
I finally fixed my Styled-Components in gatsby.js. I am starting a redesign of my website. I have started cross posting to dev.to more regularly. With that I have been making more detailed cover images at the recommended . These images get cut off on my own site, which is a bit ridiculous to have my own content not look right on my own site. But before we start a heavy redesign I have a small issue that has plagued the site for at least a year! I have a small issue that has plagued the si
-
Should I switch to Zeit Now
Netlify I have happily had my personal site waylonwalker.com hosted on netlify for nearly 2 years now. In fact I have hosted about a dozen different toy projects to play with on there, 4 of which have gone far enough to get a custom domain name. They are fast to deploy and consistently do so on every to main. Zeit I have recently started playing with zeit again. I really like their cli tool, its dead simple and makes sense. I tried the netlify one early on and dont think I really gave it
-
Personal URL shortener with Netlify Redirects
I love using URL shorteners to easily share links without hitting character limits, but they loose their meaning. Services like bit.ly will save my links for me so that I can find them, but I would rather them to be easy to remember. https://bit.ly/2ruLwQz does not roll of the tongue so well. 301 🤸♀️ I recently discovered a really cool feature of netlify that I have always looked past, . It is so simple cool and powerful, every netlify site should do this! But how 🤷♀️ simply add a file to
-
simple click
cli tools are super handy and easy to add to your python libraries to supercharge them. Even if your library is not a cli tool there are a number of things that a cli can do to your library. Example Ideas Things a cli can do to enhance your library. 🆚 print version 🕶 print readme 📝 print changelog 📃 print config ✏ change config 👩🎓 run a tutorial 🏗 scaffold a project with cookiecutter 🖱 Click Click is the most popular python cli tool framework for python. There are others, some old, some new c
-
SqlAlchemy Models
Make a connection Make a session Make a Base Class Make your First Model Make your own Base Class to inherit From Use the Custom Base Class
-
Building Cli apps in Python
Packages Click Inputs Click primarily takes two forms of inputs Options and arguments. I think of options as keyword argument and arguments as regular positional arguments. Option typically aliased with a shorthand ('-v', '--verbose') **From the Docs To get the Python argument name, the chosen name is converted to lower case, up to two dashes are removed as the prefix, and other dashes are converted to underscores. Argument positional required no help text supplied by click Yaspin Yaspin Gif Cl
-
Kedro
See all of my kedro related posts in [[ kedro-feed ]]. #kedrotips I am tweeting out most of these snippets as I add them, you can find them all here #kedrotips . 🗣 Heads up Below are some quick snippets/notes for when using kedro to build data pipelines. So far I am just compiling snippets. Eventually I will create several posts on kedro. These are mostly things that I use In my everyday with kedro. Some are a bit more essoteric. Some are helpful when writing production code, some are useful mo
-
📝 Packages to Investigate Notes
jmespath Tabnine Bulwark |-|-| |github: | https://github.com/zaxr/bulwark | I definitely want to try this out with kedro. Bulwark is a package for convenient property-based testing of pandas dataframes, supported for Python 3.5+. Example
-
Debugging Python
Using pdb
-
Just Use Pathlib
Pathlib is an amazing cross-platform path tool. Import Create path object Current Directory Users Home Directory module directory Others Let's create a path relative to our current module. Check if files exist Make Directories rename files List files Glob Files recursively Write
-
Filtering Pandas
query Good for method chaining, i.e. adding more methods or filters without assigning a new variable. masking general purpose, this is probably the most common method you see in training/examples isin capable of including multiple strings to include contains Good For partial matches MASKS anything that we put inside of square brackets can be set as a variable then passed in. Operators & - and ~ - not | - or AVAILABLE and NAME AVAILABLE or NAME AVAILABLE and not NAME
-
Quick Progress Bars in python using TQDM
tqdm is one of my favorite general purpose utility libraries in python. It allows me to see progress of multipart processes as they happen. I really like this for when I am developing something that takes some amount of time and I am unsure of performance. It allows me to be patient when the process is going well and will finish in sufficient time, and allows me to 💥 kill it and find a way to make it perform better if it will not finish in sufficient time. for more gifs like these follow me
-
Clean up Your Data Science with Named Tuples
If you are a regular listener of TalkPython or PythonBytes you have hear Michael Kennedy talk about Named Tuples many times, but what are they and how do they fit into my data science workflow. Example As you graduate your scripts into modules and libraries you might start to notice that you need to pass a lot of data around to all of the functions that you have created. For example if you are running some analysis utilizing , , and data. You may need to calculate total revenue, inventory
-
Background Tasks in Python for Data Science
This post is intended as an extension/update from background tasks in python . I started using the week that Kenneth Reitz released it. It takes away so much boilerplate from running background tasks that I use it in more places than I probably should. After taking a look at that post today, I wanted to put a better data science example in here to help folks get started. This post is intended as an extension/update from background tasks in python . I started using the week that Kenneth R
-
📝 Bash Notes
Bash is super powerful. File System Full Show Remaining Space on Drives show largest files in current directory Move files then symlink them Fuzzy One Liners edit in vim cat a file bash execute git add git reset Kill a process Finding things Files fd-find is amazing for finding files, it even respects your file 😲. Install with . ++Vanilla Bonus Content ** show matching text ** ++Vanilla Bonus ** show file names only ** ++Vanilla Bonus Recursively Replace text ++Vanilla Bon
-
Autoreload in Ipython
I have used for several years now with great success and 🔥 rapid reloads. It allows me to move super fast when developing libraries and modules. They have made some great updates this year that allows class modules to be automatically be updated. What I like about autoreload 🔥 Blazing Fast 💥 Keeps me in the comfort of my text editor 👏 Allows me to use Jupyter when I need 👟 Extremely Reliable One of the biggest benefits that I find is that it shortens the distance between my module/library co
-
Forestry.io
Testing out forestry.io Sorry Netlify CMS I still ♥️ your product dont be forestry is simple I have been playing with the netlify cms for a while now, and it has been a decent experience, but I really struggle configuring it. Forestry is so simple to setup. My favorite part is that I can code up my gatsby.js site, storing all editable text in markdown, and come back later and add the CMS based on existing documents. Configuration is Simple Forestry.io has this amazing feature to create cre
-
D3 Day 5
select rowid, key, raw, store_time, expire_time, access_time, access_count, tag, size, mode, filename from Cache where key='e3cd37c97980ab2c'; 'e3cd37c97980ab2c' 'e3cd37c97980ab2c' select rowid, key, raw, store_time, expire_time, access_time, access_count, tag, size, mode, filename from Cache where key='c14050404a107d5e'; Learn D3 in 5 days For what we are creating in these posts d3 is way overkill and very verbose, but I need to start somewhere! These are just stepping stones into real custom
-
D3 Day 4
Learn D3 in 5 days For what we are creating in these posts d3 is way overkill and very verbose, but I need to start somewhere! These are just stepping stones into real custom visualizations that cannot be done in any other tool today. I still cannot explain how excited I am to say "I created that in d3!!!" Todays Result Today I will be learning about d3 scales, and adding them to the bar chart that we created yesterday. Follow along as I try to create something interesting. today's_result R
-
D3 Day 3
Learn D3 in 5 days I recently subscribed to Ben Clinkinbeard's learn D3.js in 5 days, and am currently on day 3. I read through the first 2 days, and felt fairly comfortable with selecting elements, so I did not follow along on the first two days. I probably should have, but there are only so many hours in the day. Why Learn D3 D3 is the ubiquitous dynamic visualization library for building custom interactive visualizations on the web. It is a bit low level, and more verbose than many other libr
-
FlexBox
Flexbox-zombies I recently finished up the flexbox-zombies course to learn more about flexbox, and to become proficient with it. I can truly say that this course has changed the way that I create layouts. Flexbox is very intuitive now. What this course does really well at is explaining the concepts and hitting you with a ton of examples that you can work through really quickly. flexbox-zombies A clip from the final round against Dave Basic Setup Flexbox requires a wrapper container to work I