I like Textualize’s [1] project transcendent-textual [2].
Textual apps and libraries
References:
[1]: https://github.com/Textualize
[2]: https://github.com/Textualize/transcendent-textual
Publishing rhythm
Update Kconfig.shield rec by bravekarma · WaylonWalker/zmk-config-ninepad@8b76b76
zmk configuration for ninpad keyboard. Contribute to WaylonWalker/zmk-config-ninepad development by creating an account on GitHub.
GitHub · github.com [1]
This one space killed my whole config and held me back from learning zmk.
References:
[1]: https://github.com/WaylonWalker/zmk-config-ninepad/commit/8b76b76e2f094453aaf7ffe51bb405ce3a25a611
[1]
The trackball spinner looks sick here. I can imagine using that spinner like a scroll wheel.
References:
[1]: /static/https://kbd.news/DragonFruit-2178.html
[1]
They had split ergo boards back in 1983??? WTF who the heck keeps these row stagger boards going. This board looks like endgame material, If this thing was more normal, it’d kill a whole section of the ergo mechanical keyboard industry for good reason.
References:
[1]: /static/https://kbd.news/NEC-M-System-1729.html
-
This keyboard layout looks weird af the mix of column staggar and row stagger is wild. Not sure if its genius or an abomination.
That solenoid though is absolutely wild though, I kinda want one TBH.
and the clear plate with the diodes laid out on it in a herringbone pattern is a very nice touch.
External Link
stackoverflow.com [1]
today I learned that there is an accessibility feature in chrome that allows you to place a text cursor anywhere on the page. I had accidentally done this and it drove me mad that it was there.
References:
[1]: https://stackoverflow.com/questions/75886276/text-cursor-bug-in-my-chrome-browser-that-causes-the-blinking-cursor-to-appear-e
animal well codes
fish room # [1]
fish bubbles
ul d dl l dl ur ul
jellyfish
d l d l d l u r
egg room # [2]
bar dir
given bar codes
top r
mid dr
bot dl
calculated bar codes
num dir
1 r
2 dr
3 d
4 dl
5 l
6 ul
7 u
8 ur
bar code direction
num bar
1 top
2 mid
3 top mid
4 bot
5 top bot
6 mid bot
7 top mid bot
8 empty
egg room decode
6 3 3 6 3 1 3 4
2 4 3 2 8 3 5 8 _
3 5 7 5_ __ 5 2 5 6 3 1 3
3 1 3 6 4 4 6 4 2 4 6 8
6 4 8 7 3 7 6 5 7 6 __
egg room decode dir
ul dd __ dd ul dd rr dd __ dl
dr dl dd __ dr ur__ dd ll ur __
dd ll uu ll __ ____ ll dr ll ul dd rr dd
__ dd rr dd ul dl __ dl ul dl dr dl ul ur
ul dl ur uu __ dd uu ul __ ll uu ul ____
References:
[1]: #fish-room
[2]: #egg-room
-
Hard to argue this take, happy to see that its at the top. With it being such an old language its amazing that it still holds this position, and not surprising that it has warts, and thing that have turn users off from wanting anything to do with it.
timestamped in the link
Command Line Interface Guidelines
An open-source guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day.
clig.dev [1]
This is a pretty sick set of guidelines to help you write better cli programs, I’m definitely coming back to reading this one more in depth later.
References:
[1]: https://clig.dev/
External Link
fullystacked.net [1]
You can explicitly make a script render blocking, nothing will be rendered until this js is ready.
<script blocking="render"
src="important.js"
defer></script>
References:
[1]: https://fullystacked.net/render-blocking-on-purpose/
Remove Background Web - a Hugging Face Space by Xenova
In-browser background removal
huggingface.co [1]
I’ve long been a user of remove.bg, and I just discovered that you can run this transformer right within your browser with no api limits.
References:
[1]: https://huggingface.co/spaces/Xenova/remove-background-web
Check out volfpeter [1] and their project fasthx [2].
FastAPI [3] server-side rendering with built-in HTMX [4] support.
References:
[1]: https://github.com/volfpeter
[2]: https://github.com/volfpeter/fasthx
[3]: /fastapi/
[4]: /htmx/
FastHX - FastHX
volfpeter.github.io [1]
Very interesting approach to htmx [2] and fast api. It uses separate decorators for returning template partials and json that can be stacked to include both options on a single route. The templates are explicitly set in the decorator. Separate decorators are used for full page and partial pages. I don’t see an example of full and partial pages being combined. I think the demo app must be behaving in a spa like fashion where it does not get all of the data when it calls index and index will ask for user-list.
Definitely going to keep my eye on this project and ponder on it.
from fastapi import FastAPI
from fastapi.templating import Jinja2Templates
from fasthx import Jinja
from pydantic import BaseModel
# Pydantic model of the data the example API is using.
class User(BaseModel):
first_name: str
last_name: str
# Create the app.
app = FastAPI()
# Create a FastAPI Jinja2Templates instance and use it to create a
# FastHX Jinja instance that will serve as your decorator.
jinja = Jinja(Jinja2Templates("templates"))
@app.get("/")
@jinja.page("index.html")
def index() -> None:
...
@app.get("/user-list")
@jinja.hx("user-list.html")
async...
FastHX - FastHX
volfpeter.github.io [1]
Very interesting approach to htmx [2] and fast api. It uses separate decorators for returning template partials and json that can be stacked to include both options on a single route. The templates are explicitly set in the decorator. Separate decorators are used for full page and partial pages. I don’t see an example of full and partial pages being combined. I think the demo app must be behaving in a spa like fashion where it does not get all of the data when it calls index and index will ask for user-list.
Definitely going to keep my eye on this project and ponder on it.
from fastapi import FastAPI
from fastapi.templating import Jinja2Templates
from fasthx import Jinja
from pydantic import BaseModel
# Pydantic model of the data the example API is using.
class User(BaseModel):
first_name: str
last_name: str
# Create the app.
app = FastAPI()
# Create a FastAPI Jinja2Templates instance and use it to create a
# FastHX Jinja instance that will serve as your decorator.
jinja = Jinja(Jinja2Templates("templates"))
@app.get("/")
@jinja.page("index.html")
def index() -> None:
...
@app.get("/user-list")
@jinja.hx("user-list.html")
async...
Pinout and Schematic - nice!nano
Pinout and schematic for the nice!nano
nicekeyboards.com [1]
Pinout for nice!nano boards. Note that P0.15 means gpio port 0 pin 15, they can be referenced in zmk when setting column and row pins.
#include <dt-bindings/zmk/matrix_transform.h>
/ {
chosen {
zmk,kscan = &default_kscan;
zmk,matrix_transform = &default_transform;
/delete-property/ zephyr,console;
/delete-property/ zephyr,shell-uart;
};
default_kscan: kscan {
compatible = "zmk,kscan-gpio-matrix";
label = "default_kscan";
diode-direction = "col2row";
col-gpios
= <&gpio0 31 GPIO_ACTIVE_HIGH>
, <&gpio0 29 GPIO_ACTIVE_HIGH>
, <&gpio0 2 GPIO_ACTIVE_HIGH>
;
row-gpios
= <&gpio1 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&gpio1 13 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&gpio1 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
;
};
default_transform: matrix_transform {
compatible = "zmk,matrix-transform";
columns = <3>;
rows = <3>;
map = <
RC(0,0) RC(0,1) RC(0,2)
RC(1,0) RC(1,1) RC(1,2)
RC(2,0) RC(2,1) RC(2,2)
>;
};
};
References:
[1]: https://nicekeyboards.com/docs/nice-nano/pinout-schematic/
I’m impressed by shmux [1] from typecraft-dev [2].
the shell-script tmux management you didn’t know you needed. baby
References:
[1]: https://github.com/typecraft-dev/shmux
[2]: https://github.com/typecraft-dev
I like iximiuz’s [1] project awesome-container-tinkering [2].
List of awesome tools to tinker with containers.
References:
[1]: https://github.com/iximiuz
[2]: https://github.com/iximiuz/awesome-container-tinkering
External Link
unix.stackexchange.com [1]
today I learned that /dev/pts is a pseudo-tty. It amazes me how much linux is still built around things like hardware terminals.
References:
[1]: https://unix.stackexchange.com/questions/93531/what-is-stored-in-dev-pts-files-and-can-we-open-them