Craft By Zen

👋🏽 Hi! This is Jeremy's Craft by Zen

    • 2024-07-23

      📍 Location: San Jose, CA

      It’s been a season since the last now post. Besides getting married, I’ve also went on a honeymoon, got COVID, and now re-settling back into my normal routine. This website got changed quite a bit again where the home page is now a feed. I’m still thinking through what I want it to ultimately look like, and you may see more changes soon.

      Walking away from the altar
      Walking away from the altar

      The week notes have been keeping me fresh with new ideas of what will be in store for the future.

      Much of my time has been dedicated to playing Baldur’s Gate 3 with my wife. We haven’t played a lot of D&D, so there’s been a learning curve to the possibilities with this game. The world building is very rich.

      Poster for Baldur's Gate 3
      Poster for Baldur's Gate 3

      I’ve been meaning to write in Camp NaNoWriMo, but it’s been hard with the little downtime that I appear to have. If I review my week notes, it looks like AI, obituaries, productivity tools, and tech have really taken my attention. I’ve been meaning to cut out the dopamine-filled addictions like social media doomscrolling and replacing it with reading. It always feels like an assault on my senses, especially with the current political upheavals the US has been facing.

      Filed: ⌚ Now
    • 2024 Week 29 - Weekly Notes

      Taking a break from the politics talk this week as there are too many things to be enraged about, we look instead around the technosphere. City walks, reading A System for Writing and coming up new ideas for my workflow, choosing boring technology, looking at new Claude dev and engineer, and how story points being pointless. Around the globe, we examine the 100 books of the 21st century, where the blogs are at, no more free weather reports, the Olympics costumes for summer 2024, and recreating Bell Labs today.

    • AI Summer or Winter?

      The post from Latent Space reporting for this quarter’s AI review, The Winds of AI Winter, tries to analyze the macro trends for AI. Long story short: there are high doubts about AI’s current capabilities and its distribution is uneven. “Time to build, or else AI Winter is coming”.

      • ChatGPT’s growth has been level (0%) over this past quarter. Related: The Unbundling of ChatGPT (Feb 2024 Recap)
      • I forgot that Google is in a downward spiral for “Google AI Overviews being badbadbadbad (after the Gemini mess)“. I’m really interested in how Google is trying to bounce back. Yesterday at the theaters, they were trying very hard to advertise the new AI features on the latest Pixel.
      • A bunch of AI product recalls like Rabbit, Microsoft “Recall”, Figma AI, McDonalds drive-thru AI, Discord cancelling Clyde
      • Non-Acquihiring means there isn’t an acquisition to hire the talent from one organization to another, but taking away talent to another company without acquiring the company. Adept lost their co-founders to Amazon. And Inflection Pi to Microsoft
      • And of course, over-hyping technology and having high churn, like Harvey in private

      The biggest takeaway is big spend and slow return. The the Goldman Sachs report and Sequoia’s report break it down. The one that telle me the most was the distribution of stock returns per phase of AI, where Phase 1 is the chips where Nvidia are doing the best. Phase 2 is the infrastructure running behind it, which is increasing. But Phase 3 and 4, of enabled revenues and productivity are flatlined.

      AI Phases and signs of AI optimism
      AI Phases and signs of AI optimism

      We’re hoping the future will hold better for AI in general, but I’ll leave this quote from Asimov.

      The future is here, but it is not evenly distributed.
      Isaac Asimov

      Filed: 🚰 Stream
      🔖 ai
    • Single Purpose Websites

      Simon Willison’s post - Give people something to link to so they can talk about your features and ideas

      I evangelize this tool a lot, but OpenAI really aren’t helping me do that. I end up linking people to my code-interpreter tag page because it’s more useful than anything on OpenAI’s own site.

      Related to: Learn In Public and Working in Public. It helps with the Open Source community in which you open source your knowledge and let people come and collaborate.

      One obvious goal here is SEO: if someone searches for your product feature you want them to land on your own site, not surrender valuable attention to someone else who’s squatting on the search term.

      You can drive traffic to this site because people could actually use it. Go back to the tiny web, and not where big corporations ruin the Internet by spamming search engines through SEO.

      I personally value the conversation side of it even more. Hyperlinks are the best thing about the web—if I want to talk about something I’d much rather drop in a link to the definitive explanation rather than waste a paragraph (as I did earlier with Code Interpreter) explaining what the thing is for the upmteenth time!

      More links are better. I think Willison’s blog is an excellent example of adding curation with links, but let the links stand up for themselves. Also, see - Andy Baio lives here.

      Give people something to link to!

      Filed: 🚰 Stream
    • Movies I should have seen - Reflections from 2010

      I review a list I made back in 2011 of movies I wanted to watch. Here it is again, more than a decade later.

      Filed: ✍🏼 Writing
    • 2024 Week 28 - Weekly Notes

      Negative vibes from the media's stream of political turmoi, the AI threshold, NYT React 18 migration, Ladybird, Chemical recycling, loneliness from a low-ranking tennis player, and Bark Air - the airlines for dogs.

      Filed: ✍🏼 Writing
    • Broadcom and Henry T. Nicholas III

      A curiosity sparked because my co-worker pointed out the Spring Framework is currently owned by Broadcom. That’s because VMware is now part of Broadcom, and Spring Framework was part of VMWare prior. I had an inkling there was a scandal Broadcom had awhile ago. Low and behold: SEC Charges Four Current and Former Broadcom Officers for Backdating Options (Press Release No. 2008-87, May 14, 2008). In 2010, the charges were dropped - Chipmaker Broadcom stock options backdating case ends. That’s not all though. Their first CEO, Henry Nicholas had criminal charges. The SEC dropped those charges in 2010, but that was enough to disgrace the people involved. Their former SEO left Broadcom before the SEC investigation back in 2003 to “work on his marriage”. He was sleeping with prostitutes.

      Read: Henry T. Nicholas III: A human tragedy. And the follow-up a decade later with Orange County tech billionaire Henry T. Nicholas III charged with drug trafficking following Las Vegas arrest.

      The court filings in the past case painted Nicholas as a ruthless entrepreneur who slipped drugs to competitors without their knowledge, who threatened the lives of employees he believed had turned against him, who had the means and motive to flee beyond the reach of justice in his private jet.

      His start was in researching ICs, and later that’s what Broadcom sold. He was given awards for his research. He’s like a walking contradiction, trying to save his name with his philanthropy while making wildly bad decisions. File under downfalls.

      Filed: 🚰 Stream
      🔖 TIL
    • 2024 Week 27 - Weekly Notes

      Camp NaNoWriMo, blog updates, consulting firms are winning at AI, embeddings using Pokemon as an example, programming advice and beliefs, RIP Bill Cobbs and Martin Mull, why modern refridgerators don't last, and excitement for The Second short film.

      Filed: ✍🏼 Writing
    • Intl Locale String with Timezone

      It’s always fun when the MDN documentation doesn’t tell us what the options are within the methods page, I you have to dig deeper into the constructor. The TypeScript bindings don’t always make sense.

      MDN - toLocaleString

      Anyways, I needed a datetime string with the date, time in hours and minutes, and the timezone. I’ve made the timezone explicit and came up with this snippet.

      date.toLocaleString("en-us", {
        year: "numeric",
        month: "short",
        day: "numeric",
        hour: "numeric",
        minute: "numeric",
        timeZone: "America/Los_Angeles",
        timeZoneName: "short",

      This would return something like “2024-07-03, 12:00 PM, PDT”.

      Filed: 🚰 Stream
    • Chicago Recommendations

      Travel recommendations to Chicago. For anyone who is looking on going for the first time.

      Filed: ✍🏼 Writing
    • Newsletter - June Bugs

      Newsletter - We talk about having COVID and some web shares around the web, including China's Internet being wiped, Inbox Ten, in praise of amateurism, and exploring Jhanas.

      Filed: ✍🏼 Writing
    • 2024 Week 26 - Weekly Notes

      jscodeshift notes, Dengue risk warning, SCOTUS latest rulings including overruling Chevron Doctrine, Dell's backlash for return-to-office, pop-up villages, Netflix's culture memo, and Claude 3.5 Sonnet.

      Filed: ✍🏼 Writing
    • jscodeshift Object Destructuring

      The shorthand option is must be used in object destructuring to remove redundant prop: value to be prop.

      What I wanted was this shorthand:

      const { asFragment } = render(container);

      But what codemod generated was the following:

      const { asFragment: asFragment } = render(container);

      While both are true, I would rather have the shorthand, as that’s what we have strictly for eslint rules. This Github Issue helped describe the solution on how to implement in your transform file.

      const code = j.objectProperty(j.identifier("h"), j.identifier("h"));
      code.shorthand = true;
      j.variableDeclaration("const", [
          j.callExpression(j.identifier("require"), [j.identifier('"packagename"')])
      Filed: 🚰 Stream
    • 2024 Week 25 - Weekly Notes

      Perplexity AI lying about their user agent, senior engineer fatigue, creating my first VSCode snippet, cutting an onion, and RIP Donald Sutherland and Willie Mays.

      Filed: ✍🏼 Writing
    • Embed TikTok videos in Obsidian

      How to embed TikTok videos in Obsidian’s editing/live preview and reading mode.


      where 7382225350710824222 is the video id you get from TikTok from this example link:

      The TikTok v1 player has a bunch of controls that you can use to modify from this documentation.

      There’s still some wonky height issues, and I suspect this is the default height Obsidian has on the container around the editor. I gave it a good enough viewable height of 50vh, which should be enough.

      Example Video

      Filed: 🚰 Stream
    • Running ESM on Node REPL

      d3 v7 is packaged as ESM only. That made it difficult to use in the Node.js REPL. From this StackOverflow thread, I found a solution.

      let d3;
      import("d3").then((module) => {
        d3 = module;
      // Then you can use d3 anywhere once the promise is resolved.
      Filed: 🚰 Stream
Page 1

I'm currently leading application development at Clear Labs.

I write essays on eclectic topics, from programming, cooking, and strange habit of collecting obituaries.

🔖 Top 10 Tags

Newsletter Series

I have put back together my newsletter after years of absense! These are primarily updates on my blog, "Craft By Zen", and maybe some highlights to the new articles I've written. There might be some life updates as well. I'm doing away with the old format of weekly longform essays, and trying some new things with my newsletter.

Powered by Buttondown.