DuckDB vs. MotherDuck: When to Move to the Cloud | Kestra
DuckDB is fast and free. MotherDuck adds cloud storage, collaboration, and scale. Here
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.
References:
[1]: https://kestra.io/blogs/2023-07-28-duckdb-vs-motherduck
Posts tagged: thought
All posts with the tag "thought"
872 posts
latest post 2026-06-14
Publishing rhythm
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()
References:
[1]: https://textual.textualize.io/how-to/center-things/
Client Challenge
pypi.org [1]
Super useful way to show a tree view of an s3 bucket’s structure!
pip install s3-tree
s3-tree bucketname
References:
[1]: https://pypi.org/project/s3-tree/
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.
References:
[1]: https://github.com/kndndrj/nvim-dbee
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.
References:
[1]: https://www.ibm.com/docs/en/z-logdata-analytics/5.1.0?topic=compose-relocating-docker-root-directory
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
References:
[1]: https://github.com/containers/aardvark-dns
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
References:
[1]: https://wiki.archlinux.org/title/Podman
TestDisk Step By Step
CGSecurity · cgsecurity.org [1]
testdisk is an amazing command line utility (interactive tui) that just saved me a hard drive that was filled with data, but every machine that I plugged it into told me that it was completely unpartitioned.
References:
[1]: https://www.cgsecurity.org/wiki/TestDisk_Step_By_Step
Textual - Using Rich Inspect to interrogate Python objects
Textual is a TUI framework for Python, inspired by modern web development.
Textual Documentation · textual.textualize.io [1]
I love rich inspect. It’s one of my most often used features of rich. It gives you a great human readable insight into python object instances.
>>> from rich import inspect
>>> text_file = open("foo.txt", "w")
>>> inspect(text_file)
I have a pyflyby entry for it so that I can just run it ang get automatic imports. To not clash with the standard library inspect, which is quite useful on it’s own, I have aliased it to rinspect.
from rich import inspect as rinspect
References:
[1]: https://textual.textualize.io/blog/2023/07/27/using-rich-inspect-to-interrogate-python-objects/
Reasons to avoid Javascript CDNs
Wesley Aptekar-Cassels · blog.wesleyac.com [1]
And this is why we don’t run cdn in prod, respect your users who can’t control where the assets are stored. There are so many fast static hosting providers out there, if you are worried about performance reasons use one of those to self host [2].
References:
[1]: https://blog.wesleyac.com/posts/why-not-javascript-cdn
[2]: /self-host/
How to Manage 'Systemd' Services and Units Using 'Systemctl' in Linux
Systemctl is a systemd utility which is responsible for Controlling the systemd system and service manager. Systemd is a collection of system management daemons, utilities and libraries which serve...
How to Manage ‘Systemd’ Services and Units Using ‘Systemctl’ in Linux · tecmint.com [1]
A fantastic overview of the systemd cli.
References:
[1]: https://www.tecmint.com/manage-services-using-systemd-and-systemctl-in-linux/
How to fix ZFS pool not importing at boot
You have probably tried Stack Exchange and reddit at this point, so what do you have to lose?
./techtipsy · ounapuu.ee [1]
Hacky solution to get zpool import tank to work on boot right away. This has been an issue that has plagued my system for months and no matter what dependencies I add in it never works, but adding a sleep as ExecStartPre did the trick.
References:
[1]: https://ounapuu.ee/posts/2021/02/01/how-to-fix-zfs-pool-not-importing-at-boot/
External Link
stackoverflow.com [1]
In flask apps I often get a 404 for routes with a trailing slash. This Stack Overflow post shows how to configure flask to allow trailing slashes on some or all routes.
References:
[1]: https://stackoverflow.com/questions/33241050/trailing-slash-triggers-404-in-flask-path-rule
Deleting Specific Lines in a File with sed or yq — Nick Janetakis
We
Nick Janetakis · nickjanetakis.com [1]
sed can be a tricky beast, I often stumble when trying to pipe into it. Next time I need to use sed, I should reference this article by Nick Janetakis. He makes it looks much easier than my experience has been, and it appears to behave like a vim :%s/ substitution does, or a g/ g command.
References:
[1]: https://nickjanetakis.com/blog/deleting-specific-lines-in-a-file-with-sed-or-yq
External Link
htmx.org [1]
json-enc extension converts url encoded form values into json encoded data, this is very useful for fastapi [2] to have the same interface for htmx [3] and curl type of interfaces.
References:
[1]: https://htmx.org/extensions/json-enc/
[2]: /fastapi/
[3]: /htmx/
Header Parameters - FastAPI
FastAPI framework, high performance, easy to learn, fast to code, ready for production
fastapi.tiangolo.com [1]
Getting request headers in fastapi [2] has a pretty nice stetup, it allows you to get headers values as function arguments,
I was able to use headers to detect if a request was made from htmx [3] or not.
If the request was made from htmx, then we want a html [4] format, otherwise I’m probably hitting the api programatically from something like curl or python
@post_router.post("/post/")
async def post_post(
request: Request,
post: PostCreate,
current_user: Annotated[User, Depends(try_get_current_active_user)],
session: Session = Depends(get_session),
is_hx_request: Annotated[str | None, Header()] = None,
) -> PostRead:
"create a post"
print('hx_request', hx_request)
db_post = Post.from_orm(post)
session.add(db_post)
session.commit()
session.refresh(db_post)
if is_hx_request:
return templates.TemplateResponse("post_item.html", {"request": request, "config": config, "post": db_post})
return db_post
References:
[1]: https://fastapi.tiangolo.com/tutorial/header-params/#declare-header-parameters
[2]: /fastapi/
[3]: /htmx/
[4]:...
GitHub - 1j01/textual-paint: :art: MS Paint in your terminal.
:art: MS Paint in your terminal. Contribute to 1j01/textual-paint development by creating an account on GitHub.
GitHub · github.com [1]
1j01 [2] created a complete working clone of ms paint in the terminal using the textual framework. It’s incredible.
References:
[1]: https://github.com/1j01/textual-paint
[2]: https://github.com/1j01
Dear Red Hat… featuring Jeff Geerling (Changelog & Friends #7)
Red Hat's decision to lock down RHEL sources behind a subscription paywall was met with much ire and opened opportunity for Oracle to get a smack in and SUSE to announce a fork with $10 million beh…
Changelog · changelog.com [1]
Loved this explanation about all the recent lock down with RHEL from Jeff Geerling.
References:
[1]: https://changelog.com/friends/7
sqlite-utils now supports plugins
sqlite-utils 3.34 is out with a major new feature: support for plugins. sqlite-utils is my combination Python library and command-line tool for manipulating SQLite databases. It recently celebrated...
Simon Willison’s Weblog · simonwillison.net [1]
As the title states sqlite-utils now supports plugins. I dug in just a bit and Simon implemented this completely with entrypoints, no framework or library at all.
References:
[1]: https://simonwillison.net/2023/Jul/24/sqlite-utils-plugins/