Published

All published posts

2493 posts latest post 2026-05-11
Publishing rhythm
Apr 2026 | 47 posts
External Link stackoverflow.com [1] I went down the route of leveraging the json-enc extention in htmx [2], but later realized that this completely breaks browsers/users who do not wish to use javascript. While most of the web would feel quite broken with javascript disabled, I don’t want to contribute to that without good reason. Taking a second look into this issue, rather than using json-enc, and using as_form to get form data into a model keeps the nice DX fo everything being a pydantic model, but the site still works without js. with js htmx kicks in, you get a spa like experience by loading partials onto the page, and without, you just get a full page reload. the implementation # [3] copied from https://stackoverflow.com/questions/60127234/how-to-use-a-pydantic-model-with-form-data-in-fastapi import inspect from typing import Type from fastapi import Form from pydantic import BaseModel from pydantic.fields import ModelField def as_form(cls: Type[BaseModel]): new_parameters = [] for field_name, model_field in cls.__fields__.items(): model_field: ModelField # type: ignore new_parameters.append( inspect.Parameter( model_field.alias, inspect.Parameter.POSITION...
GitHub - chebykinn/sedmario: NES Super Mario Bros level 1 written in pure sed! NES Super Mario Bros level 1 written in pure sed! Contribute to chebykinn/sedmario development by creating an account on GitHub. GitHub · github.com [1] 🤯 NES Super Mario Bros level 1 written in pure sed, this is madmess. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/chebykinn/sedmario [2]: /thoughts/
Formatting on save Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua. - jose-elias-alvarez/null-ls.nvim GitHub · github.com [1] neovim stopped formatting on save for me awhile ago and I have just been dealing with it. looks like there may have been an api change, idk. I had to make this update.4 - vim.lsp.buf.format() + vim.lsp.buf.format({async=false}) Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/jose-elias-alvarez/null-ls.nvim/wiki/Formatting-on-save#code [2]: /thoughts/
[1] How to enable debug mode in pywebview. import webview webview.create_window('Woah dude!', 'https://pywebview.flowrl.com/hello') webview.start(debug=True) Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /static/https://pywebview.flowrl.com/guide/debugging.html [2]: /thoughts/
`ValueError: Constraint must have a name` in alembic 1.10.0 · Issue #1195 · sqlalchemy/alembic Describe the bug ValueError: Constraint must have a name in alembic 1.10.0. Expected behavior Migration succeeds. To Reproduce Please try to provide a Minimal, Complete, and Verifiable example, wit... GitHub · github.com [1] After a nasty time with alembic upgrades, thoughts is about to get a new users table. This may have came from incorrectly setting up alembic for sqlite from the start, but I was able to fix the issue with this GitHub issue. alembic sqlite ValueError: Constraint must have a name The change I needed to make to get my migration to run. + batch_op.create_foreign_key('fk_post_author_id_user', 'user', ['author_id'], ['id']) Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/sqlalchemy/alembic/issues/1195 [2]: /thoughts/
![[None]] Since using alembic I have been just running out a new revision checking its content and deleting it if its empty, today I learned there is an alembic check command to check for operations that need to be created. ❯ alembic check INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. No new upgrade operations detected. Note This post is a thought [1]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /thoughts/
API — Jinja Documentation (3.1.x) jinja.palletsprojects.com [1] 🤯 jinja comes with a loader to pre-compile templates! Defihnitely need to look at this for markata, as jinja is till one of the biggest hot spots. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://jinja.palletsprojects.com/en/3.0.x/api/#jinja2.Environment.compile_templates [2]: /thoughts/
[1] I’ve definitely been missing out on setting up a proper jinja loader on a few projects, I need to lean on this a bit more. class jinja2.FileSystemLoader(searchpath, encoding='utf-8', followlinks=False): ''' Load templates from a directory in the file system. ''' The path can be relative or absolute. Relative paths are relative to the current working directory. loader = FileSystemLoader("templates") # A list of paths can be given. The directories will be searched in order, stopping at the first matching template. loader = FileSystemLoader(["/override/templates", "/default/templates"]) Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /static/https://jinja.palletsprojects.com/en/3.0.x/api/#jinja2.FileSystemLoader [2]: /thoughts/
GitHub - wagoodman/dive: A tool for exploring each layer in a docker image A tool for exploring each layer in a docker image. Contribute to wagoodman/dive development by creating an account on GitHub. GitHub · github.com [1] Really cool tui to inspect docker imaages that runs with docker. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/wagoodman/dive [2]: /thoughts/
Gzip/Brotli Compression Test | GiftOfSpeed Check if Gzip or Brotli compression is working on your website. giftofspeed.com [1] A nice tool to check compression on a public url. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://www.giftofspeed.com/gzip-test/ [2]: /thoughts/
Read a Range of Data - LIMIT and OFFSET - SQLModel SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness. sqlmodel.tiangolo.com [1] Implement paging in sqlmodel with where, limit, and offset. def select_heroes(): with Session(engine) as session: statement = select(Hero).where(Hero.age > 32).limit(3) results = session.exec(statement) heroes = results.all() print(heroes) Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://sqlmodel.tiangolo.com/tutorial/limit-and-offset/?h=#combine-limit-and-offset-with-where [2]: /thoughts/
DuckDB vs. MotherDuck — should you switch to the cloud version? | Kestra Why and when to use MotherDuck over local DuckDB kestra.io [1] duckdb is a new in process database that has been making its rounds in analytics for its high performance in those applications. Mother duck is a centeralized server that brings manages storage, data sharing and an ide to duckdb. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://kestra.io/blogs/2023-07-28-duckdb-vs-motherduck [2]: /thoughts/
Textual - Center things Textual is a TUI framework for Python, inspired by modern web development. Textual Documentation · textual.textualize.io [1] How to center things in textual. Textual has a very unique way of styling text user interfaces for the terminal using css. If you know css it feels natural. @willmcgugan, has put together a great article on how to center things in textual here the final result from textual.app import App, ComposeResult from textual.widgets import Static QUOTE = "Could not find you in Seattle and no terminal is in operation at your classified address." class CenterApp(App): """How to center things.""" CSS = """ Screen { align: center middle; } #hello { background: blue 50%; border: wide white; width: 40; height: 9; text-align: center; content-align: center middle; } """ def compose(self) -> ComposeResult: yield Static(QUOTE, id="hello") if __name__ == "__main__": app = CenterApp() app.run() Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://textual.textualize.io/how-to/center-things/ [2]: /thoughts/
s3-tree list s3 objects in tree-like format. PyPI · pypi.org [1] Super useful way to show a tree view of an s3 bucket’s structure! pip install s3-tree s3-tree bucketname Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://pypi.org/project/s3-tree/ [2]: /thoughts/
External Link stackoverflow.com [1] How to sort results from a sqlalchemy based orm. .order_by(model.Entry.amount.desc()) I needed this to enable paging on my thoughts api. @post_router.get("/posts/") async def get_posts( *, request: Request, session: Session = Depends(get_session), hx_request: Annotated[str | None, Header()] = None, accept: Annotated[str | None, Header()] = None, current_user: Annotated[User, Depends(try_get_current_active_user)], page_size: int = 10, page: int = 1, ) -> Posts: "get all posts" statement = ( select(Post) .where(Post.published) .order_by(Post.id.desc()) .limit(page_size) .offset((page - 1) * page_size) ) posts = session.exec(statement).all() posts = Posts(__root__=posts) if isinstance(current_user, RedirectResponse): is_logged_in = False else: is_logged_in = True if hx_request and page == 1 and len(posts.__root__) == 0: return HTMLResponse('<ul id="posts"><li>No posts</li></ul>') if hx_request and len(posts.__root__) == 0: return HTMLResponse("") if not hx_request and len(posts.__root__) == 0: return ["no posts"] if hx_request: return templates.TemplateResponse( "posts.html", { "request": request, "config":...
GitHub - kndndrj/nvim-dbee: Interactive database client for neovim Interactive database client for neovim. Contribute to kndndrj/nvim-dbee development by creating an account on GitHub. GitHub · github.com [1] A neovim database client that I need to check out. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/kndndrj/nvim-dbee [2]: /thoughts/
Relocating the Docker root directory If the space in the file system where the Docker root directory is located is not adequate and cannot be increased, you must relocate the directory. ibm.com [1] A very straightforward guide to moving your docker data, such as container storage to a different location. In my case I wanted it off of my boot drive. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://www.ibm.com/docs/en/z-logdata-analytics/5.1.0?topic=compose-relocating-docker-root-directory [2]: /thoughts/
GitHub - containers/aardvark-dns: Authoritative dns server for A/AAAA container records. Forwards other request to host's /etc/resolv.conf Authoritative dns server for A/AAAA container records. Forwards other request to host's /etc/resolv.conf - containers/aardvark-dns GitHub · github.com [1] I ran into some dns issues while running podman on arch, aparantly I had missed an optional dependency of aardvark-dns for container to container dns resolution. paru -S aardvark-dns Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/containers/aardvark-dns [2]: /thoughts/
Podman - ArchWiki wiki.archlinux.org [1] I kept running into limits in the number of subuid and subgid’s I had on my system by default. As always thank the arch wiki guide for having the most comprehensive yet consice guide to setup podman. What I needed to do to fix the error. usermod --add-subuids 100000-165535 --add-subgids 100000-165535 username Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://wiki.archlinux.org/title/Podman [2]: /thoughts/