Fast geolocation query with PostGIS

If you need to to add a spatial information querying in your application, PostGIS is one of the most popular solution. Simply because it is well-proven, open source, and running on top of everyone’s favorite open source SQL database — PostgreSQL. PostGIS is a spatial database extender for PostgreSQL object-relational database. postgis.net In this post,…

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 +…