Shing Lyu

Disclaimer: This content reflects my personal opinions, not those of any organizations I am or have been affiliated with. Code samples are provided for illustration purposes only, use with caution and test thoroughly before deployment.

Make AI Draw Architecture Diagrams with AWS Icons

Last year, I wrote about turning hand-drawn architecture diagrams into digital diagrams using generative AI. While that approach worked well for creating editable digital diagrams, the result was quite basic—mostly rectangles and text. But if you’ve ever seen presentations by AWS solution architects, you’ll know that colorful AWS service icons can make architecture diagrams much more visually appealing and easier to understand at a glance.

I’ve since figured out how to leverage AI to not only create the basic diagram structure but also incorporate those recognizable AWS service icons. In this post, I’ll walk you through the process step by step.

(continue reading...)


Engineering Better Online Meetings: Hardware, Software, and Environment

Since COVID, online meetings have become an indispensable tool for collaboration, communication, and productivity. Whether you’re a seasoned professional or just starting your career, mastering the art of online meetings is crucial for success. Having spent four years in a customer-facing role, I’ve participated in countless online meetings across various time zones, gaining valuable insights into what works and what doesn’t. This blog post shares my experiences and provides practical tips to help you engineer better online meetings by focusing on two key areas: hardware configuration and software optimization. By addressing these elements, you can create a more professional, engaging, and productive online meeting experience for yourself and your participants. Here are some tips for better online meetings.

(continue reading...)


Building a Fast and Accurate Transcription Tool on Linux

As a developer, I often find myself needing a tool that can let me type with voice. While macOS boasts a variety of excellent GUI-based transcription tools, the Linux landscape leans more towards command-line utilities. This presented a challenge, but also an opportunity to build a custom solution tailored to my workflow. I kept delaying it, but now I finally got time to build a fast and accurate transcription tool on Linux, leveraging the power of command-line tools and the flexibility of the terminal. I used VSCode, Cline, Gemini 2.0 Flash (in Plan Mode), and Gemini 2.0 Pro (in Act Mode) to help me build this.

Why Whisper and Faster Whisper?

When it comes to transcription accuracy, Whisper models from OpenAI consistently outperform many other options. Initially, I experimented with whisper.cpp, a C++ implementation of the Whisper architecture. It’s a fantastic project, offering great performance and flexibility, especially on my work Macbook with Apple silicon.

However, I recently discovered Faster Whisper, a reimplementation of the Whisper model using CTranslate2. The key advantage? It’s incredibly fast, even on older hardware without dedicated GPUs. On my trusty old laptop with an Intel Core i5-7200U CPU, the small.en model loads in about 2 seconds and can transcribe 1-3 sentences in roughly 4 seconds. This makes it perfectly suited for my needs.

ALT TEXT

(continue reading...)


My Productivity System for 2025

graph TD
    subgraph "Input"
      NEWS["News from Social media,<br>Podcast,Feedly"] -- Save for later --> POCKET["Pocket<br>(Read later)"]
      Perplexity --> READ
      POCKET
      TWBOOK[Taiwan Library Books]
      YouTube --> DeepSRT
      Ideas
      Meetings
    end
    subgraph "Logseq"
      JOURNAL[Daily Journal]
      KANBAN_LEARNING[Kanban - Learning]
      JOURNAL--> KANBAN_WRITING["Kanban - Writing ideas"]
    end
      Meetings --> JOURNAL
      Ideas -- (optional) AI formatter --> JOURNAL

    READ[Read & Digest]
    READ -- learnings --> JOURNAL
    READ -- Topic that needs further research --> KANBAN_LEARNING
    POCKET --> READ
    TWBOOK[Taiwan Library Books] --> READ
    DeepSRT -->READ

    KANBAN_LEARNING --> Research
    KANBAN_WRITING --> Research
    Research --> JOURNAL
    Research --> WRITER[AI writing assistant]

    subgraph "Output"
      WRITER[AI writing assistant] --> Blog
      WRITER --> Buffer --> SOCIAL[Social media post]
      WRITER --> Book
      WRITER --> Talk
      WRITER --> Email
    end

    Meetings -- action item --> BULLET[Bullet journal]
    Ideas --> BULLET
    BULLET --> CALENDAR[Google Calendar<br>Outlook Calendar]
    BULLET --> Research
    CALENDAR --> Research

This is an updated version of my pre-ChatGPT productivity post. The landscape of productivity tools has changed dramatically since the AI boom, and my system has evolved accordingly. The system is shown in the diagram above. Let me explain it in detail.

(continue reading...)


Building a temporary camera app with Windsurf

Note: This post is written with the help from Gemini 2.0 Flash. Let me know if you like the style and tone.

Keeping a pristine photo gallery can be a challenge. I wanted a way to separate my permanent family photos from the everyday snapshots I take—parking spots, receipts, quick notes—things I only need temporarily. I wanted those transient images kept separate, ready for easy cleanup later. I remembered an Android app that did just this, but unfortunately, it’s no longer available on the Play Store, leaving me searching for a new solution.

TL;DR: Windsurf is cool! And you can try the app I wrote here: https://shinglyu.com/TempPhoto/.

(continue reading...)