Skip to content

Latest πŸ—žοΈ

Saturday, March 21

Git Commits

xpro-nextjs-dashboard commits 2 ohnsh/xpro-nextjs-dashboard
  • 10:48 pm β€” John Sherrell <dev@ohn.sh>

    Module 25 complete. Mostly worked on rendering /ui/dashboard, /ui/customers, and /ui/invoices within a layout. (For some reason, per the instructions, the layout is copied to each route instead of being shared.)

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

    Starting Next.js dashboard project for MIT xPRO course. Upgraded everything--next, react, tailwind, etc. Only keeping around .mjs versions of config files. Made a few config changes for Tailwind 4 to work, plus replaced `@tailwind` directives in global.css with `@import "tailwindcss"`.

days commits 5 ohnsh/days
  • 8:03 pm β€” John Sherrell <dev@ohn.sh>

    Added rudimentary latest posts feed to index. Currently, it links to the post's day because there's no route for individual posts. I'm not sure if it's worth making one.

  • 6:35 pm β€” John Sherrell <dev@ohn.sh>

    Extracting tags from YouTube descriptions now. Still not using them. (If I add YouTube tags to the main tag map, things get messy. Need to create emoji-slug mappings and think through what I'm actually trying to accomplish.)

  • 6:08 pm β€” John Sherrell <dev@ohn.sh>

    March 21 metadata.

  • 6:05 pm β€” John Sherrell <dev@ohn.sh>

    Working on metadata overlay to merge into collections (especially youtube). Probably pausing for now, but probably also should at least parse descriptions for tags inside the youtube loader.

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

    Fix off-by-one bug after refactoring lib/dates.ts. Need to always be explicit about whether a date is a timestamp (okay to implicitly convert to local time) or a "plain date" (which is important to represent the way it's typed out). To help with this, I made a new wrapper, `slugFromDay`, which is only for plain date strings like '2026-03-21'.

YouTube

Friday, March 20

Firebase Quotas and Cloudflare Workers

I’m currently enrolled in the MIT xPRO Professional Certificate in Coding program. In a recent assignment, we β€œdelved” (as the course materials would put it) into GitHub Actions by setting up an automated testing and deployment workflow for a simple Express.js app. See the README on GitHub for my full report.

The deployment component was supposed to happen on Firebase, but I had already reached my project quota due to an earlier batch of assignments. After digging, I found information suggesting that my quota would reset 30 days after deleting the old projects, but the actual error message just said to contact support to request an increase. I received a prompt response (but to my Gmail account, of course, so I didn’t see it for a few days):

View full post…

Git Commits

days commits 9 ohnsh/days
  • 5:09 pm β€” John Sherrell <dev@ohn.sh>

    Clean up loaders/github.ts

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

    Reverse-chronological sort for days listed under /tags/[tag].

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

    Merge branch 'pure-loaders'

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

    Now sorting commits, but the technique is a little ugly. I'm considering guaranteeing a sort order for various arrays when Day object is initialized.

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

    Daily commits now rendering again. Refactor seemingly complete. Need to get commits sorted on page.

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

    3/19 metadata.

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

    loaders/github.ts now exports two loaders: repoLoader() and commitLoader(). There will be a collection for each. Getting to the meat of this refactor in the <GithubDay> and <RepoDay> components.

  • 12:43 pm β€” John Sherrell <dev@ohn.sh>

    Improve schemas/typing in youtube loader. No longer manually creating API schema. Presently, types are inferred when importing the intermediate .json file. When fetching directly, I need to use a schema provided by the API to generate a zod schema and/or typescript type.

  • 12:24 pm β€” John Sherrell <dev@ohn.sh>

    YouTube collection rendering again. Simplified loader creates a 'pure' collection of videos keyed by videoid. It also computes the day (using video title and pubDate) and stores it in each entry. Actual sorting of entries into days happens elsewhere, as it should.

xpro-nextjs-dashboard commits 1 ohnsh/xpro-nextjs-dashboard
  • 8:40 pm β€” John Sherrell <dev@ohn.sh>

    Initial commit from Create Next App

Thursday, March 19

tags:

Git Commits

days commits 3 ohnsh/days
  • 5:48 pm β€” John Sherrell <dev@ohn.sh>

    Building again. Still lots to do.

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

    lib/dates.ts finally doesn't make me wince. Thoroughly renamed and refactored. Instead of expecting only plain dates, `dayFromDate()` and `slugFromDate()` work with either full timestamps (which are fine to implicitly convert to local time) or plain dates (which are important to represent the way they were originally typed out). You explicitly specify whether it's a `plainDate` using a second parameter (default false). If so, it's normalized to midnight UTC so that later string extraction knows to always use UTC getters.

  • 4:55 am β€” John Sherrell <dev@ohn.sh>

    New branch for reworking loaders. Everything is broken right now.

ra24-3-cloudflare commits 1 ohnsh/ra24-3-cloudflare
  • 12:28 am β€” John Sherrell <dev@ohn.sh>

    README.md CE.

YouTube

Wednesday, March 18

Git Commits

ra24-3-cloudflare commits 11 ohnsh/ra24-3-cloudflare
  • 10:38 pm β€” John Sherrell <107401967+ohnsh@users.noreply.github.com>

    Formatting

  • 10:36 pm β€” John Sherrell <107401967+ohnsh@users.noreply.github.com>

    Add screenshots for report. Assignment calls for PDF with screenshots. (Yes, really.)

  • 10:18 pm β€” John Sherrell <dev@ohn.sh>

    Report CE.

  • 10:01 pm β€” John Sherrell <dev@ohn.sh>

    Report finished.

  • 8:17 pm β€” John Sherrell <dev@ohn.sh>

    Report checkpoint.

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

    Starting report.

  • 7:17 pm β€” John Sherrell <dev@ohn.sh>

    Bump wrangler used in workflow. I think the older version isn't picking up wrangler.jsonc.

  • 7:10 pm β€” John Sherrell <dev@ohn.sh>

    Install bun before running deploy step.

  • 7:08 pm β€” John Sherrell <dev@ohn.sh>

    Added cloudflare deploy-on-push configuration to github workflow.

  • 6:57 pm β€” John Sherrell <dev@ohn.sh>

    Trying RA 24.3 using Cloudflare Workers due to reaching project quota on Firebase.

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

    Initial commit (by create-cloudflare CLI) Details: C3 = create-cloudflare@2.64.9 project name = ra24-3-cloudflare package manager = bun@1.3.9 wrangler = wrangler@4.75.0 git = 2.53.0

days commits 3 ohnsh/days
  • 4:55 pm β€” John Sherrell <dev@ohn.sh>

    Added tags to sidebar, rudimentary tag-index page. It's a little ugly right now but I expect to refactor everything thoroughly over time.

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

    I kind of hate what I've done here, but it's an intermediate step toward a full-featured tag implementation. Tags are now mapped to dayKeys, and dayEntries have their own aggregate tagMaps (map of Tag -> CollectionEntry[] where each entry could be a video, commit, day metadata, etc.) First, I need to rework collections to make them consistent. In particular, Youtube and Github collections should be keyed by videoid and commit id/SHA, respectively, instead of being already collated into lists keyed by date.

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

    Remove test tags, empty day metadata. Update README.

Tuesday, March 17

tags:

Git Commits

mit-xpro-ra24-3 commits 2 ohnsh/mit-xpro-ra24-3
  • 11:38 pm β€” John Sherrell <dev@ohn.sh>

    Added Github workflow that runs `bun test` on push.

  • 11:27 pm β€” John Sherrell <dev@ohn.sh>

    Testing a hello whirled express app with Jest-compatible `bun test`. This is part of an assignment in which testing and deployment will be automated with GitHub Actions and Firebase.

days commits 3 ohnsh/days
  • 1:24 am β€” John Sherrell <dev@ohn.sh>

    Static screenshot og:image option. Looking into ways to automate this.

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

    Edits.

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

    Make hero more screenshot-friendly at small viewport sizes. I didn't want to override the `clamp()` expression completely, so instead I hijacked --sl-text-base and --sl-text-3xl (scope limited to the hero) which are used in those expressions.

ra24-2_github-actions commits 1 ohnsh/ra24-2_github-actions
  • 4:21 pm β€” John Sherrell <dev@ohn.sh>

    Demo workflow from Github docs.