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.

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...)


Beware of scammer who uses my identity

A scammer(s), with the name “Amrw Hoinc”, is trying to use my identity to sign up for multiple websites. Based on the IP and phone number, they is based in Algeria and speaks Arabic and French. They signed up for multiple website builder tool, AI customer service chatbot, form builder, content publisher, and all kinds of AI tool and games. I suspect they are trying to create fake websites with AI-generated content with chatbot and sign-up forms. I have reported this to Algerian police and international cybercrime prevention authorities. Amrw Hoinc, please stop.

If you came across anything that uses my name or email, please contact me immediately.

يحاول محتال باسم "عمرو هوينك" استخدام هويتي للتسجيل في مواقع ويب متعددة. استنادًا إلى عنوان IP ورقم الهاتف، فهم يقيمون في الجزائر ويتحدثون العربية والفرنسية. لقد اشتركوا في العديد من أدوات إنشاء مواقع الويب، وبرنامج دردشة لخدمة العملاء بالذكاء الاصطناعي، وبرنامج إنشاء النماذج، وناشر المحتوى، وجميع أنواع أدوات وألعاب الذكاء الاصطناعي. أشك في أنهم يحاولون إنشاء مواقع ويب مزيفة بمحتوى تم إنشاؤه بواسطة الذكاء الاصطناعي باستخدام برنامج دردشة ونماذج تسجيل. لقد أبلغت الشرطة الجزائرية والسلطات الدولية للوقاية من الجرائم الإلكترونية. عمرو هوينك، من فضلك توقف.

Un escroc du nom de « Amrw Hoinc » tente d’utiliser mon identité pour m’inscrire sur plusieurs sites Web. D’après l’adresse IP et le numéro de téléphone, il est basé en Algérie et parle arabe et français. Il s’est inscrit à plusieurs outils de création de sites Web, à un chatbot de service client IA, à un générateur de formulaires, à un éditeur de contenu et à toutes sortes d’outils et de jeux IA. Je soupçonne qu’ils essaient de créer de faux sites Web avec du contenu généré par l’IA avec un chatbot et des formulaires d’inscription. J’ai signalé cela à la police algérienne et aux autorités internationales de prévention de la cybercriminalité. Amrw Hoinc, arrêtez s’il vous plaît.

(continue reading...)


CDK to Terraform Migration with Gen AI

I recently worked on a project to migrate a CDK project to Terraform, because the client want to standarize on Terrafrom. This could have been a time-consuming job, and it requires expertise on both CDK and Terraform, but with the help from generative AI, especailly Amazon Q Developer and Amazon Bedrock, it becomes quite easy. This article will walk you through how I performed the migration and the lessons learned through the process.

(continue reading...)