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