Skip to content

Latest πŸ—žοΈ

Wednesday, March 4

Git Commits

scratch commits 6 ohnsh/scratch
  • 1:21 pm β€” John Sherrell <dev@ohn.sh>

    New videos.

  • 11:58 am β€” John Sherrell <dev@ohn.sh>

    Add READMEs to vendor code directories.

  • 11:36 am β€” John Sherrell <dev@ohn.sh>

    Start of object detection demo. Library code copied from emergentai/yolov12-onnxruntime-web.

  • 2:23 am β€” John Sherrell <dev@ohn.sh>

    New beaker favicon/logo.

  • 12:19 am β€” John Sherrell <dev@ohn.sh>

    New videos.

  • 12:06 am β€” John Sherrell <dev@ohn.sh>

    Some notes about OG images. Add January.

YouTube

Tuesday, March 3

Notes

Sample code for generating OG images with Satori and Resvg:

src/pages/og/[slug].png.ts
import satori from 'satori';
import { Resvg } from '@resvg/resvg-js';
import { getCollection } from 'astro:content';
export async function getStaticPaths() {
const posts = await getCollection('blog');
return posts.map((post) => ({
params: { slug: post.slug },
props: { title: post.data.title },
}));
}
export const GET = async ({ props }) => {
// Satori requires a font as an ArrayBuffer
const fontData = await fetch('https://example.com').then(res => res.arrayBuffer());
const svg = await satori(
{ type: 'div', props: { children: props.title, style: { fontSize: 60 } } },
{ width: 1200, height: 630, fonts: [{ name: 'Inter', data: fontData }] }
);
const resvg = new Resvg(svg);
const pngData = resvg.render().asPng();
return new Response(pngData, { headers: { 'Content-Type': 'image/png' } });
};

See also astro-og-canvas and astro-opengraph-images. See also the frontmatter of this post for a method of setting the <meta> tags manually.

View full post…

Git Commits

scratch commits 7 ohnsh/scratch
  • 5:58 pm β€” John Sherrell <dev@ohn.sh>

    Overhaul starlight sidebar and structure.

  • 3:41 pm β€” John Sherrell <dev@ohn.sh>

    Add running vids.

  • 2:51 pm β€” John Sherrell <dev@ohn.sh>

    YOLO12 models for demo. From emergentai/yolov12-onnxruntime-web.

  • 2:51 pm β€” John Sherrell <dev@ohn.sh>

    Daily log starter.

  • 11:49 am β€” John Sherrell <dev@ohn.sh>

    Keep only one active WebSocket connection at a time in PTZ demo.

  • 11:18 am β€” John Sherrell <dev@ohn.sh>

    Testing Cloudinary and Mux.

  • 1:52 am β€” John Sherrell <dev@ohn.sh>

    Add KaTeX support.

ptz-websocket commits 1 ohnsh/ptz-websocket
  • 11:50 am β€” John Sherrell <dev@ohn.sh>

    New orientation (/ptz/abs) connectors automatically become the active user. And if no active user when a message is received, the sender automatically becomes active.

Monday, March 2

Git Commits

ptz-websocket commits 4 ohnsh/ptz-websocket
  • 5:32 pm β€” John Sherrell <dev@ohn.sh>

    Feeding the typescript monster.

  • 5:15 pm β€” John Sherrell <dev@ohn.sh>

    Add cf-connecting-ip to server logs. New helper command to kill tmux sessions.

  • 4:59 pm β€” John Sherrell <dev@ohn.sh>

    Added my new favorite command to helpers.sh (the command to start the server and share the tmux session).

  • 4:14 pm β€” John Sherrell <dev@ohn.sh>

    Working websocket server for thingino PTZ control.

scratch commits 4 ohnsh/scratch
  • 6:12 pm β€” John Sherrell <dev@ohn.sh>

    Move RemoteTerm out of PtzDemo component.

  • 1:06 pm β€” John Sherrell <dev@ohn.sh>

    Disable ttyd token requests for now. (CORS errors.)

  • 3:10 am β€” John Sherrell <dev@ohn.sh>

    Formatting.

  • 2:57 am β€” John Sherrell <dev@ohn.sh>

    PTZ demo works pretty well.

Sunday, March 1

Git Commits

scratch commits 1 ohnsh/scratch
  • 2:34 am β€” John Sherrell <dev@ohn.sh>

    Got ttyd working, lots of debugging broken builds. Biggest lesson: `client:only` doesn't work in mdx; you have to wrap it in an .astro component.

YouTube