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 +… Read More
Summary of “Nine Business Models and the Metrics Investors Want”
Photo by Adeolu Eletu on Unsplash This is my personal summary/notes from a talk by Anu Hariharan, Y Combinator These are 9 common business models for startup along with their common growth metrics: Enterprise: selling software/service for big companies. Eg. Docker, Cloudera Number of bookings Number of unique users Revenue SaaS: software as a service. Eg. Google Suite,… Read More
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… Read More
SIS 771/671 VGA driver on Xubuntu 18.04 LTS
Dedicated for fellow fighters who relentlessly search for an answer on reviving old notebooks with cursed SIS Mirage 3+ 771/671 on-board VGA driver by installing shiny Xubuntu 18.04 LTS (the latest LTS when this article was written). Simply download this tar.gz file, extract 3 files (sisimedia_drv.so, sisimedia_drv.la, xorg.conf), then copy them to respected locations: /usr/lib/xorg/modules/drivers/sisimedia_drv.la… Read More
Summary of “How to Sell”
Featured image is a photo by Mimi Thian on Unsplash This is my personal summary/notes from a talk by Tyler Bosmeny, CEO of Clever, Y Combinator alumni There are some popular myths about sales job where it is considered a high-class job that only gifted people could deliver. In reality, that’s not always true. Some facts that Tyler… Read More