Sign in

Ann Catherine Jose

@annjose.com
224 followers 365 following 313 posts

Hands-On Tech Enthusiast. Software Builder. Full-Stack Developer. Lifelong Learner. Loves math and music.

PostsRepliesMedia
Ann Catherine Jose @annjose.com · 08/09/2026
I was just watching a talk that described this exact thing, which apparently has a fancy name - Epistemic Trespassing. One of the biggest culprits is overestimating how transferable your skills in one domain to another domain is, of course caused by intellectual pride. Any of us can fall for this.
Screenshot from youtube video that read as follows:

Causes of epistemic trespassing:
1. Intellectual pride
2. Overestimation of transferrable skills

https://www.youtube.com/watch?v=uwyLGiyDa2g
121
Ann Catherine Jose @annjose.com · 16/07/2026
000
Ann Catherine Jose @annjose.com · 13/07/2026
Awww, Sol is very polite today.
GPT 5.6 Sol asking for permission - "May I rebuild the git index so only the agreed browser-title infrastructure files are staged for the first commit?"
010
Ann Catherine Jose @annjose.com · 12/07/2026
When people debate whether human should review every single line of code, I get the essence of it. But then I see stuff like this IRL: Had I not looked at the code, how would I have caught this bad code? Btw, it's not about a specific harness or model. It's how things evolve in a context window.
Chat transcript 

Me:
before you do it, answer this question
code like this is bad. why did you do it?
index.astro
    title: post.data.slug.startsWith('agentic-systems-') ? Agentic Systems: ${post.data.title} : post.data.title,
[slug.astro]
const isAgenticSystemsSeries = entry.data.slug.startsWith('agentic-systems-')

3:28 PM
Model: 
You are right. That code is bad.
I added it as a shortcut to support the temporary eyebrow experiment without introducing series metadata. Then, when the short titles looked unclear on the blog list, I added a second slug check to reconstruct the full title. That compounded the original shortcut instead of stepping back and simplifying the model.
The problems are:
It treats the slug as structured metadata. A slug is a URL identifier, not a reliable source of presentation semantics.
It creates hidden coupling. Renaming a slug can silently change the page heading and list title.
The series rule is duplicated across two pages.
010
Ann Catherine Jose @annjose.com · 10/07/2026
I love that Codex (or now ChatGPT Codex 🙄) has this feature to annotate any text in the response and ask questions inline. I can keep adding a bunch of annotated questions and send them all in one prompt. It is easy, intuitive and efficient. Codex gets extra credits, and Claude Code gets none.
Codex chat showing two annotations and the prompt for it.
020
Ann Catherine Jose @annjose.com · 18/06/2026
The banner seems to be still up on the website. Love this service! Simple and it just works.
000
Ann Catherine Jose @annjose.com · 15/06/2026
A completely practical setup to run open-weights model locally on my M2 Max 64 GB: - Run llama.cpp UI using llama-server `./build/bin/llama-server` - use Unsloth's Gemma-4 26B-A4B model `unsloth/gemma-4-26B-A4B-it-GGUF:Q4_K_XL` Ofc this setup works great for knowledge synthesis, not exploration.
lllama-cpp server running un chatModel information of Gemma-4 model
010
Ann Catherine Jose @annjose.com · 04/06/2026
I am loving the side chat feature in Codex. You can... 1. Select any text in the main chat window and choose 'Ask to side chat'. 2. The side panel opens and shows the selected text. Ask your question here. 3. You can select a (smaller) different model other than main chat.
Codex chat window showing the 3 options
000
Ann Catherine Jose @annjose.com · 03/06/2026
Finally, Gemini equivalents - Gemini 3.5 Flash - same prompts. These were generated super fast! Flash it is!
create an image of an iceberg in a beautiful ocean with stunning photorealistic wayadd a bluewhale jumping from the water near the icebergshow the sun setting in the horizon
000
Ann Catherine Jose @annjose.com · 03/06/2026
OpenAI ChatGPT equivalents for the same prompts. Much more dramatic than MAI.
create an image of an iceberg in a beautiful ocean with stunning photorealistic wayadd a bluewhale jumping from the water near the icebergshow the sun setting in the horizon
000
Ann Catherine Jose @annjose.com · 03/06/2026
Images created by the new image model announced by Microsoft today - MAI-Image-2.5 Prompts: 1. “create an image of an iceberg in a beautiful ocean with stunning photorealistic way” 2. “add a bluewhale jumping from the water near the iceberg 3. "show the sun setting in the horizon"
create an image of an iceberg in a beautiful ocean with stunning photorealistic wayadd a bluewhale jumping from the water near the icebergshow the sun setting in the horizon
300
Ann Catherine Jose @annjose.com · 09/05/2026
Btw, for some reason all the agents (pi, claude) were giving only the summary or analysis of the page, and not the full markdown as is. So I had to tweak the SKILL.md : Updated Description and added a section Behavior to specify default behavior to return the markdown and summarize when asked.
Updated SKILL.md - with modified Description and new section Behavior

---
name: defuddle
description: Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provides a URL to extract as clean markdown, for online documentation, articles, blog posts, or any standard web page. By default, return full markdown; if the user explicitly requests a summary, summarize the extracted content. Do NOT use for URLs ending in .md — those are already markdown, use WebFetch directly.
---

# Defuddle

Use Defuddle CLI to extract clean readable content from web pages. Prefer over WebFetch for standard web pages — it removes navigation, ads, and clutter, reducing token usage.

If not installed: `npm install -g defuddle`

## Behavior

Default: return the extracted markdown **as-is** (no summary, no analysis).

If the user explicitly asks to summarize (e.g., “summarize”, “tl;dr”, “key points”),
then provide a summary instead of raw markdown.

If the user asks for both (e.g., “extract and summarize”), return:
1) a summary first, then
2) the full extracted markdown.
000
Ann Catherine Jose @annjose.com · 09/05/2026
Found something useful today. The pi agent couldn’t read this webpage, so I used the Obsidian Web Clipper to copy it as Markdown, and pasted it into the chat. Worked immediately. pi was happy! Small win, but a sweet one.🎉 Wonder if this can be built as a skill with Obsidian CLI - @stephango.com
Brave browser showing the Anthropic article Teaching Claude Why with Obsidian Web Clipper on the side with the 'Copy to Clipboard' button highlighted in yellow.The pi coding agent running in terminal with the response 
 Yes — this is a great way to share it, and it looks substantially complete.

 Minor notes:
 - It appears to include all core sections, figures, discussion, and footnotes.
 - One formatting quirk: the “four main lessons” list is split as 1,2,3 + bold paragraph instead of numbered 4 (content is there, numbering just inconsistent).
 - If you want maximum fidelity, also include the exact figure captions/alt text (you already included most).

 So yes, this is more than enough for me to critique your understanding accurately. Send your summary when ready.
130
Ann Catherine Jose @annjose.com · 06/05/2026
All the demos shown in the Code with Claude event is using Opus 4.1 with 1M context X-high effort.
screenshot of claude code showing the selected model as Opus 4.7 with 1 M context x-high effort
100
Ann Catherine Jose @annjose.com · 16/04/2026
Gemma-4 E4B running on my Google Pixel 8 phone. Impressive audio transcription, translation, image recognition. Knowledge retrieval not so much (understandably as small model).💯 The model is a lot more capable than gemma-3. It's time to update the post I wrote last year! annjose.com/post/mobile-...
Image recognition Edge gallery app Edge gallery app downloading the model on device Audio transcription and translation to Malayalam
010
Ann Catherine Jose @annjose.com · 14/04/2026
Nextdoor notification settings: - 8 topic groups - each group has 6-7 topics (one has 26!) - each topic has 3 toggles - in-app, email and push That is 167 buttons to click! 😮 You can't turn off a group as a whole. And the gift keeps on giving - every time I turn them off, new topics pop up 🤦‍♀️.
DigestsNewsPublic agenciesAll notification groups (8)
000
Ann Catherine Jose @annjose.com · 01/04/2026
TIL You can download your LinkedIn data as CSV from www.linkedin.com/mypreference... I want to write a script to parse the csv, filter the connections in my network who I don't know (may have connected long ago). Then write a browser ext or Playwright script to unfollow/disconnect them on LinkedIn.
LinkedIn download data page that shows the options to download your data. There are two options here:

1. Download larger data archive, including connections, verifications, contacts, account history, and information we infer about you based on your profile and activity. Learn more

2. Want something in particular? Select the data files youre most interested in.

Articles
Invitations
Profile
Recommendations
Registration

And a button 'Request archive'
000
Ann Catherine Jose @annjose.com · 27/03/2026
TIL you can nest markdown code blocks by using more backticks in the outer fence than inner one. I often want to document shell commands with their output - commands in ```sh, but output as plain text. I used to prefix each line with #. But now I use 4 backticks for outer block and 3 for the inner.
Terminal showing two nested syntax blocks - the outer one with 4 ticks and inner one with 3 ticks to show the output text
100
Ann Catherine Jose @annjose.com · 26/03/2026
Result from two harness/model side-by-side: Prompt: write a tetris game in typescript with beautiful UI Left: Claude Code + Sonnet 4.5 Right: Open Code + GLM-5 Harness matters. Model matters. What would it be with Claude Code + GLM-5?
Tetris game running in browser - significant difference in the UI
250
Ann Catherine Jose @annjose.com · 11/03/2026
TIL💎: VS Code has two super useful views in the left sidebar: 1) NPM SCRIPTS: shows all scripts across all sub-packages as one list. You can run / debug any script right there!🔥 2) TIMELINE: shows local history (undo, redo, saves) & git commits.💯 Right-click the EXPLORER header to turn them ON.
A screenshot of the VS Code "Timeline" view, which displays a chronological history of local file changes including Git commits, manual edits, undos, redos, and file saves.Screenshot of Visual Studio Code showing the "NPM SCRIPTS" sidebar view, which is highlighted in yellow to show how it organizes scripts from all sub-packages into a single, consolidated list. The view displays folders for different packages (like "email-worker" and "extension") with their respective scripts (such as "build", "dev", and "test") listed underneath. A blue box highlights the "Run" and "Debug" icons next to a specific script, illustrating how to execute them directly from the sidebar.Screenshot of Visual Studio Code showing how to enable hidden sidebar views. A blue arrow points to the top of the sidebar near "EXPLORER" with the instruction "right-click here." This action displays a context menu, labeled "you see this menu," where "Timeline" and "NPM Scripts" are listed. Checkmarks next to these options indicate they are currently enabled, illustrating how to toggle these views on or off.
000
Ann Catherine Jose @annjose.com · 17/02/2026
Output from Claude with Opus - it listed CLAUDE.md and showed the files along with the tools it used - 'Explore agent' vs Read vs Bash tools. Total: ~65 source files read across 3 parallel exploration agents + 4 direct reads. ✻ Cooked for 4m 40s
Here's my full analysis:

  ---
  1. Project Understanding

  1.1 Purpose, Architecture, Major Features

  Purpose: Canopy is a self-hosted read-it-later and knowledge management app (a personal Readwise Reader clone). It's a single-user
  app for ann.jose@gmail.com, deployed entirely on Cloudflare infrastructure at canopy.annjose.com.

  Architecture:
  - Monorepo — pnpm workspaces + Turborepo with two active packages:
    - @canopy/web (apps/web) — Next.js 15 App Router, the entire app
    - @canopy/shared (packages/shared) — shared types & constants
  - Runtime — Cloudflare Workers via opennextjs-cloudflare adapter
  - Database — Cloudflare D1 (SQLite), 3 migrations applied (documents, tags/notes/highlights, feeds)
  - Storage — Cloudflare R2 for article HTML, thumbnails, future EPUB/PDF originals
  - Auth — Cloudflare Access (Zero Trust JWT verification, bypassed on localhost)
  - State management — SWR for server data, React Context (AppShellContext) for UI state (theme, panel visibility, dialogs, selected
  document)
  - UI — Three-panel layout (sidebar 240px | main flex | right panel 320px), responsive down to mobile with Sheet overlays. shadcn/ui
  primitives (Dialog, Command, Toast), Lucide icons, Tailwind CSS v4.

  Major implemented features:
  - Save articles by URL with content extraction (Mozilla Readability + linkedom)
  - Three-panel layout: sidebar navigation, document list with status tabs (inbox/reading/later/archive), right panel (Info + Notebook
   tabs)
  - Clean reader view with font size controls, ToC, reading progress persistence, prev/next navigation
  - Vim-style keyboard shortcuts (single-key + chord bindings like g h) with help modal
  
  - RSS feeds: subscribe by URL (with auto-discovery), feed polling, OPML import, folder grouping, edit/delete feeds, mark-all-read,
  feed titles on document rows
  - Dark mode / light mode toggle
  - Mobile responsive layout with drawer panels2. Files Used

  Context-provided (from system/CLAUDE.md)

  - /Users/ann/dev/canopy-reader/CLAUDE.md

  Explicitly read

  ┌─────────────────────────────────────────────────────────────────────┬────────────────────────────────────────┐
  │                                File                                 │                  How                   │
  ├─────────────────────────────────────────────────────────────────────┼────────────────────────────────────────┤
  │ AGENTS.md                                                           │ Direct Read                            │
  ├─────────────────────────────────────────────────────────────────────┼────────────────────────────────────────┤
  │ docs/plans/phase-1-progress.md                                      │ Direct Read                            │
  ├─────────────────────────────────────────────────────────────────────┼────────────────────────────────────────┤
  │ docs/canopy-spec.md                                                 │ Direct Read                            │
  ├─────────────────────────────────────────────────────────────────────┼────────────────────────────────────────┤
  │ Root directory listing (ls -la)                                     │ Bash
030
Ann Catherine Jose @annjose.com · 17/02/2026
Output from pi with Opus - this was the best so far.
1. Project Understanding

 ### 1.1 Purpose, Architecture, Major Features

 Canopy is a self-hosted read-it-later and knowledge management app (a Readwise Reader
 alternative) for a single user (ann.jose@gmail.com), deployed at canopy.annjose.com.

 Architecture:
 - Monorepo (pnpm workspaces + Turborepo) with two active packages: @canopy/web (Next.js 15 App
 Router) and @canopy/shared (types/constants)
 - Backend: Next.js API routes running on Cloudflare Workers via opennextjs-cloudflare
 - Database: Cloudflare D1 (SQLite) with 3 migration files
 - Storage: Cloudflare R2 for article HTML, files, thumbnails
 - Auth: Cloudflare Access (Zero Trust, single user)
 - Client state: SWR for data fetching
 - UI: Tailwind CSS v4 + shadcn/ui primitives + Radix + Lucide icons

 Major features implemented:
 - Save articles by URL with content extraction (Mozilla Readability + linkedom)
 - Three-panel layout (sidebar / document list / right panel) à la Readwise Reader
 - Document lifecycle: Inbox → Reading → Later → Archive, plus favorites + soft-delete trash
 - Clean reader view with ToC, font size, progress tracking, prev/next navigation
 - Tags: create/rename/merge/delete, per-document tagging, filter by tag
 - Highlights: text selection in reader → colored highlights, inline rendering, notes on
 highlights
 - Document notes: one freeform note per document
 - Notebook panel: unified view of tags + note + highlights with markdown export
 - RSS feeds: subscribe, auto-discover, poll, OPML import, folder grouping, mark-all-read
 - Vim-style keyboard shortcuts throughout + help modal
 - Command palette search
 - Dark mode
 - Mobile responsive layout

 ### 1.2 Current Implementation Progress### 1.3 Interesting Findings, Risks, Inconsistencies & Notes

 1. Spec inconsistency: canopy-spec.md mentions the Cloudflare adapter as
 @cloudflare/next-on-pages or opennextjs-cloudflare, but the project rules and actual
 implementation use opennextjs-cloudflare exclusively. The spec hasn't been updated to remove the
 old reference.
 2. No tests: The repo has zero test files. The repo-structure doc says "testing will be added in
 a dedicated pass" but this hasn't happened after 3 phases. As features accumulate, retroactive
 test coverage becomes harder.
 3. No automated cron for RSS: Feed polling is API-route-based only (POST /api/feeds/poll). The
 cron trigger in wrangler.toml is commented out. Feeds must be polled manually or via an external
 trigger — there's no automatic background polling yet.
 4. Known bugs tracked in phase-last-defer.md: The Save button doesn't work in reader view, and
 there's a wishlist item for default images when no OG image exists.
 5. Local D1 data exists: The .wrangler/state/ directory has a SQLite database and ~24 R2 blobs,
 indicating active local development/testing with real content.
 6. Tag slug vs. name duality: Tags store both a display name (freeform) and a slug (kebab-case
 for URLs). This is a thoughtful decision but adds complexity — the spec originally said tags are
 just kebab-case name, so this evolved during implementation.
 

 ### 1.4 Assumptions I Made

 - I assumed the .next/ and .open-next/ directories are gitignored (they're build artifacts); I
 didn't verify by reading .gitignore.
 - I assumed pnpm build and pnpm typecheck currently pass, based on the progress docs saying Phase
 3 is complete with a production build verified.
 - I did not read individual source files (components, API routes, lib modules) — my assessment of
 feature completeness is based solely on the progress tracking docs, file listing, and spec. The
 actual implementation quality/correctness is unverified.
2. Files Read

 ### [context-provided]

 These were injected into my system prompt/context automatically:
 - AGENTS.md (project context / rules — provided as system instructions)

 ### [explicitly-read]

 Files I actively read using the read tool or bash:
 1. docs/canopy-spec.md — full product specification
 2. docs/repo-structure.md — monorepo layout and conventions
 3. docs/plans/phase-1-progress.md — Phase 1 implementation status
 4. docs/plans/phase-2-progress.md — Phase 2 implementation status
 5. docs/plans/phase-3-rss-feeds.md — Phase 3 plan + progress (combined)
 6. docs/plans/phase-last-defer.md — deferred items / known bugs
 7. docs/decisions.md — design decisions log
 8. packages/shared/src/types.ts — shared TypeScript types
 9. apps/web/wrangler.toml (first 30 lines) — Cloudflare bindings config
 10. apps/web/package.json (first 30 lines) — dependencies and scripts

 I also ran find commands to get the full file tree.

 ### [did NOT read]

 - All source code files in apps/web/src/ (~50+ files): components, hooks, lib modules, API
 routes, pages, CSS
 - docs/plans/phase-1-foundation.md and docs/plans/phase-2-tags-highlight.md (detailed plans — I
 read the progress files instead)
 - docs/schema.sql (full SQL reference schema)
 - migrations/*.sql (individual migration files)
 - scripts/migrate.sh
 - Config files: turbo.json, root package.json, root tsconfig.json, pnpm-workspace.yaml,
 apps/web/tsconfig.json, apps/web/next.config.ts, apps/web/tailwind.config.ts,
 apps/web/open-next.config.ts, apps/web/postcss.config.mjs, apps/web/env.d.ts,
 apps/web/components.json
 - packages/shared/src/constants.ts, packages/shared/src/index.ts
 - README.md
 - .claude/settings.local.json
 - All build output in .next/, .open-next/, .turbo/, .wrangler/
350
Ann Catherine Jose @annjose.com · 11/02/2026
We are still there in the Show HN main page - after 9 hrs of posting! 🔥 cc @georgeck.me ! news.ycombinator.com/show
image showing the main page of Show HN (Hacker News) where the HN Companion post is on #12 position
000
Ann Catherine Jose @annjose.com · 07/02/2026
You can do the same with OpenCode opencode.ai too. 1. Create ollama API key ollama.com/settings/keys 2. Launch OpenCode 3. Run `/connect`, choose Ollama Cloud provider 4. Choose any model, eg: qwen3-coder:480b 5. Code away! 🔥 It did well in basic coding. Want to try using this for smaller tasks.
Image showing OpenCode running an open weights model from Ollama Cloud.Image showing Claude Code running an open weights model from Ollama Cloud.
010
Ann Catherine Jose @annjose.com · 10/09/2025
Happy birthday California 🎂🎉!
Photos of Bear Creek Redwood forest and Vasona Lake Park in California
040
Ann Catherine Jose @annjose.com · 07/09/2025
The legends 🔥🔥 #UsOpen
Alcaraz and Sinner with the trophies
000
Ann Catherine Jose @annjose.com · 06/09/2025
Bracket City's UI used to be simple and subtle. I used to love that. But the new UI is different and bad. Homepage with deep orange background with black text Puzzle page with caps lock keyboard, lower case answers and fluorescent blue highlights.😡 It takes away the joy of doing these everyday.😔
Deep orange homepage of Bracket City Puzzle page
010
Ann Catherine Jose @annjose.com · 02/09/2025
Not sure why, but lately Claude in browser is generating several versions of an answer instead of just one per request. For eg: I asked it to adjust my CLAUDE.MD file, and got 5 drafts at once 🤷‍♀️. This increases output tokens unnecessarily and in no time, it says you reached the 5-hour max limit 🙄.
Claude in browser showing the 8 versions that it created in one go!
010
Ann Catherine Jose @annjose.com · 18/07/2025
Same thought when I saw these yesterday after the morning walk.
A cluster of purple and white petunia flowers growing in a bed of small, multicolored pebbles
010
Ann Catherine Jose @annjose.com · 16/07/2025
The first iteration is just the start. We need to test the results, review the code and ask to fix what it missed. This is my follow-up instruction. For some of these long tasks, Copilot asks for confirmation whether to continue iterating. Finally, it runs lint and build tasks. Ready to deploy!🚀
Follow up question to fix what it missed and code changes after the reviewCopilot asking for confirmation whether to continue iterating. And the final result.
000
Ann Catherine Jose @annjose.com · 16/07/2025
Final response after completing the task
Final response from the agent with a bullet list of details of the fixes organized in a easy-to-read format.
000
Ann Catherine Jose @annjose.com · 16/07/2025
Here is a typical chat with agentic coding for a big refactor (GitHub Copilot Claude Sonnet 4). I give multiple tasks in single shot 'coz each instruction eats up Copilot Premium request budget ($0.04/inst). And agents are capable of doing multiple complex tasks, creating a plan and executing it.🚀💯
Big instruction to the agent

Review the page.tsx file and assess how much of that code is obsolete now - eg: 
1. variables like isCustom, isBowflex etc (because now all workouts are custom user-defined, not pre-defined)
2. usage of the term "Day" in variable names, functions etc. This is leftover from the initial workout plan names like "Dumbbell Day 1 Routine', but workout plans can be anything. So there is no concept of 'day' in the logic. I guess it just means workout
3. Home page shows two titles 'Your Workouts' - see screenshot
4. 'Choose your workout for today' does not have a workout selected. It used to select one of the workouts from the list below. Fix that bug
5. There should be a distinction between the workouts you did and the workout plans available for use (i.e. workouts you can do in the future). right now the UI shows the former in 'Workout Stats' at the top and latter in 'Your Workouts'. Perhaps we should call them 'Your workouts' and 'Your workout routines'
6. Bug in the Homepage, Workout Routine Preview and Workout Sessions pages - when I made a custom workout, eg: 'TRX group class', it displays a GUID in the workout name in  'Your Workouts. See screenshot

8. In Create Workout page, it shows 'Rounds' - is this a common terminology for sets? Don't people 
9. Do an assessment for this specific issue (don't make code changes for only this one, just tell me what you think). We have the concept of Sets and Supersets. I thought of them as Superset is a set of sets. Is this a common point of view in fitness industry? The current implementation is such that a set can have only one exercise (at least the UI shows like that) - wouldn't people want to add multiple exercises to a set? And should there be a separate button for Superset - or can it be done with a different simpler UI affordance without cluttering the UI?Agent thinking and exploringAgent's first response with the analysis and planContinuation of the plan. Detailed.
210
Ann Catherine Jose @annjose.com · 08/07/2025
ATProto Meetup in the Bay Area - happening right now. Good vibes! @rose.bsky.team is here! @knowtheory.net giving an intro to all apps built with ATProto With @georgeck.me lu.ma/mf4n7jbi?pk=...
ATProto Meetup conference room
1311
Ann Catherine Jose @annjose.com · 07/07/2025
This is an example of GitHub Copilot explaining its reasoning in a way that gives me confidence of the work it is doing. It says where all it is searching, whether it found something, what it is going to do next.
GitHuv Copilot explaining the steps of what it is doing
010
Ann Catherine Jose @annjose.com · 06/07/2025
Trying out Wimbledon's new AI chatbot 'Match Chat' 🎾(powered by IBM watsonx) - very handy for match stats and insights, answered most questions well. But for this specific match that ended in Thompson retiring due to injury, it struggled and kept asking about 'Match Context'🤷‍♀️. #wimbledon #context
Talking to chatbot about the fourth round match - Fritz vs. Thompsonchatbot giving insights about the matchChatbot answering questions about the retired match and asking about match context
010
Ann Catherine Jose @annjose.com · 01/07/2025
Super happy to see this in my inbox today. >> Content Independence Day: no AI crawl without compensation! Thank you @cloudflare.social for doing the right thing! 👏 Credit where credit is due 💪.
Email from Cloudflare announcing Content Independence Day: no AI crawl without compensation.
120
Ann Catherine Jose @annjose.com · 31/05/2025
Walked 70 miles on the treadmill and 170 miles total (with outdoor walks) this May - an average of 5.5 miles a day! ❤️🎉 Long walks with country music outdoors and YouTube videos/TV shows on tread. Kept showing up. Small steps really do add up. 👟💪 Happy, grateful, proud. (Fitbit, Peloton stats📊👇)
Peloton stats of total miles as 70.2 milesFitbit stats showing that I walked 170 miles this month - 5.5 miles a day on average!Stats from peloton app as 70.2 miles
120
Ann Catherine Jose @annjose.com · 26/05/2025
Remembering and honoring the fallen - those who gave their lives for this country and our freedom. Grateful today and always ❤️. Ceremony at Los Gatos Memorial Park.
Memorial Day celebration at Los Gatos Memorial ParkThe wreaths in memory of the soldiers of Civil War, World War 1 and 2, Korean War, Vietnam War, all PoW and MIA.Los Gatos Memorial Park
020
Ann Catherine Jose @annjose.com · 24/05/2025
8. And the most exciting news: it works on mobile too - specifically on Firefox for Android! Just add the plugin to Firefox and it runs flawlessly. You’ll need to add the templates manually, but it’s easy!
Web Clipper plugin for Firefox
100
Ann Catherine Jose @annjose.com · 24/05/2025
7. The web clipper also has a side panel that opens on the right side of your browser. It gives you more vertical space to work with.
Web Clipper shown as a side panel.
100
Ann Catherine Jose @annjose.com · 24/05/2025
6. There are built-in templates for popular sites like Goodreads, Wikipedia, and YouTube. For example, the Goodreads template pulls in details of the book and creates a structured note, using this schema: schema.org/Book I even customized mine to include the book cover - github.com/annjose/obsi...
Obsidian note created by Web Clipper using the Good Reads template customized to show the book cover
100
Ann Catherine Jose @annjose.com · 24/05/2025
5. You can highlight any portion of a webpage by selecting the text, right-clicking, and choosing Obsidian Web Clipper → Highlight this page. The text stays highlighted in yellow and will remain that way every time you visit the page.
How to highlight a ciip in a pageThe text highlighted in the page
100
Ann Catherine Jose @annjose.com · 24/05/2025
3. You can generate a summary of the article using any LLM of your choice, using your own API key and your custom prompt, for eg: {{"Generate a summary of the page"}} You can even connect it to a local LLM running on Ollama😎 This is my version of the default template: github.com/annjose/obsi...
Settings for the LLM - provider and the modelCustomized prompt to generate summarySummary generated by Google Gemini 2.0 Flash
100
Ann Catherine Jose @annjose.com · 24/05/2025
2. Save any webpage as an Obsidian note - in any folder you want. The default template includes metadata like title, url as variables and are added to the front matter of the note, and is fully customizable. For example, I added this to show the title + URL in the note body: [{{title}}]({{url}})
Template customized to add a title and url in the main body of the note.Preview of the note generated according to the custom template
100
Ann Catherine Jose @annjose.com · 03/05/2025
I see the same behavior as @retr0.id. It has been like this ever since I turned off history a few years ago (btw, the best decision that helped tackle my doomscroll issue). I do subscribe to channels, but they show up only when I go to Subscriptions.
YouTube homepage when history is turned off
010
Ann Catherine Jose @annjose.com · 16/04/2025
Codex CLI: OpenAI released its agentic coding tool today. Easy to try: 1. npm install -g @openai/codex 2. codex <your question> I asked: "are there bugs in the code in ~/dev/hello-cloudflare-workers". See results👇 - first point ✅ github.com/openai/codex Fun history: github.com/openai/codex...
OpenAI codex command to start analysisThinking.... the analysis in progressAnalysis done - Results displayed as follows:

I gave the code a careful look and didn’t spot any outright bugs in your handlers—the three endpoints do exactly what you’d expect and your
    static‐assets folder will be picked up automatically by Wrangler. The TypeScript setup and Hono wiring all look correct, too.

    There are only two very minor things you might want to tidy up:

     • Documentation drift in README.md: your /hello route now returns a little “note…” after the greeting, but the README example only shows the bare
     Hello World!.
     • (Optional) Wrangler’s “official” config format is TOML (wrangler.toml); if you ever run into a “can’t find your config” error you may need to
    rename/convert your wrangler.jsonc to wrangler.toml.

    Otherwise, everything compiles, runs and deploys as advertised—no code‐level bugs to be found.
030
Ann Catherine Jose @annjose.com · 26/03/2025
Link to the convo with Claude claude.ai/share/f211e6... Plus some screenshots 👇
Convo with Claude - starting questionsConvo with Claude - detailed personalized answersConvo with Claude - clarifying questionsConvo with Claude - testing myself
000
Ann Catherine Jose @annjose.com · 25/03/2025
TIL ❇👉 Rclone has a WebUI where you can manage remote configs, view remote files, create shareable link and mount remotes. Run rclone rcd --rc-web-gui Go to localhost:5572#/dashboard UI is not fancy, but functional. Built using React/Redux/Node.💪. Code is open source🔥 github.com/rclone/rclon...
Rclone Web UI - Home pageRclone Web UI - Explorer page
000
Ann Catherine Jose @annjose.com · 17/03/2025
❇️ TIL two fun things: 1. Bash stands for "Bourne Again SHell", the descendant of the Bourne Shell that was released in 1977. 😎 2. Bash supports 'regex'-like characters 🔥, eg: - `?` matches single character - `[abd]` - matches a, b or d - `[a-d]` - matches a, b, c, or d This is called globbing! 😍
History of Bash
020
Ann Catherine Jose @annjose.com · 16/03/2025
Features of this app - Pomodoro Flow: 🕒 Customizable timers for focus sessions, short breaks, and long breaks 🎨 Multiple theme options (light and dark) 🔔 In-app notifications when timers complete 🎵 Sound alerts for timer completion and button clicks 📱 Responsive design
Multiple themes supported by the app (Synthwave, Cafe, Cosmic, Minimal, Lofi, Forest)Settings to customize the timer durations and number of sessions per cycle
120