Auto speech-to-text (Indonesian) with AWS Transcribe and Python

Amazon Web Service Transcribe provides API to automatically convert an audio speech file (mp3/wav) into a text (transcript). It supports not only English language but also Indonesian and several other languages. It even gives free 60 minutes/month for first 12 months transcription for first user. If you are using Python, then the good news is…

Splitting video with ffmpeg and Python

I had a project to build a simple website that split uploaded video into parts that have same duration (except the last one if the division has remainder). Almost everyone in the internet suggest ffmpeg which is so far considered the best open-source swiss-army knife for video manipulation. After hours of browsing and trial-and-errors, I…

Offline data sync design patterns

Featured image by krzysztof-m from Pixabay In order to provide seamless experience to client-server application’s users, sometimes we need to allow them to access some of the data on the client side, even when the connection to the server is unavailable. One of the most common use case is allowing users to read/update some data in an online…

Deployment automation with ShipIt

Automatic deployment is an essential part of continuous integration (CI). But sometimes full-fledged CI tools/services — like Jenkins, Gitlab-CI, or Travis-CI — are overkill for simple or personal projects. That’s where deployment automation tools like ShipIt shines. ShipIt is not the only automation tool. There are Capistrano (Ruby), Envoy (PHP), Fabric (Python), and, Gradle +…

Google Recaptcha v3 on Laravel

Google Recaptcha v3 offers seamless spam protection by not requiring any additional action from user by default (v2 still requires you to click a checkbox). In this post, I’m sharing a simple way to integrate it with Laravel 6.x built-in authentication flow. The idea is to add custom validation rule that requires a valid Recaptcha…