Articles
October 30, 2020
Assuming that we have a multitenanted app where each user has its own table, there could be a need to switch table dynamically during query for different users.It's actually very easy.Normally to quer...
October 30, 2020
Laravel Eloquent has made accessing JSON data super easy via -> operator. And if you are not familiar with MySQL JSON, you might think that we can do sorting as easy as that too.Bad news.You can re...
October 30, 2020
If you are doing any type of ordering with MySQL JSON especially with numbers, you might be surprised to see that it doesn't exactly work as expected.Say we have a JSON structure that looks like this...
October 26, 2020
If you are trying to restore a MySQL backup which was downloaded from a managed service like DigitalOcean, you probably came across this error.ERROR 1227 (42000) at line 18: Access denied;you need (at...
October 17, 2020
If you encountered this error, there are 2 things you can try. Personally solution #1 worked for me but I have seen suggestions of solution #2 so maybe it is the right solution for you.Solution #1: Up...
October 17, 2020
With the latest 2.0.0-RC2 release candidate version launched, the official release is just around the corner.I have tested V2 personally and it seems much faster on my computer which is great because...
August 14, 2020
I like Sublime Text. I really do. I like how fast it is, how versatile it is, and overall I have a very good experience with it.Despite how popular VS Code has become recently, I find it just a little...
July 26, 2020
It's very easy to change a user's password with Ansible. Here I included 2 ways for your perusal: one with Ansible Playbook, and another one directly via command line.Before we proceed, since Ansible...
June 09, 2020
If you are upgrading from Laravel 6 to Laravel 7, and you are using Laravel Passport, you might encounter some authentication errors related to 400 HTTP status code and invalid_grant.This may come as...
December 04, 2019
ReactPHP is an interesting project. Recently when I got a project interfacing with UHF RFID reader through a Soyal Controller, I thought I would give it a try. The documentation was mostly self-suffic...
November 17, 2019
If you came from a MySQL background, you might be puzzle to find out that SQLite and many others like PostgreSQL actually do not have a unsigned integer data type.The reason is because that unsigned i...
October 29, 2019
Animate.css has made animation superbly simple for all web developers. One problem however is that, it will always animate the objects on pageload. If our elements are below the fold / viewport, then...
October 28, 2019
Setting up HTTPS for your Laravel apps can be counter-intuitive sometimes as it involves multiple layers playing nicely together. Luckily AWS has made this very easy for us especially if you are using...
October 25, 2019
Google has been pushing for HTTPS / SSL adoption in the recent years. First by marking sites without HTTPS unsecured on Chrome, then by making HTTPS availability as a search engine ranking factor, it...
September 06, 2019
With Machine Learning being all the rage right now, there are a lot of managed services that you could use to deploy your deep learning models.However if you already have a DigitalOcean VPS running, w...
August 14, 2019
If you have multiple accounts within Github (or Bitbucket or GitLab) and private repos, it is sometimes necessary to switch between the accounts to do whatever git things that you need to do.Here's ho...
August 14, 2019
Sometimes we need to add a user to a pretty locked down server just for them to login to MySQL / PostgreSQL via their GUI client without giving them any other access. It's actually pretty easy to do s...
August 04, 2019
If you are going through the Fast.ai course, one of the things you might be looking for would be an easy yet reliable option to deploy your models into production.Google Cloud Functions together with...
July 30, 2019
Here's my setup: I use MySQL for dev + production and SQLite for testing.If you use a similar setup and your codes depend on MySQL's unsigned property to store only positive numbers, then you would no...
September 16, 2018
Object Storage like DigitalOcean Spaces are very powerful. However, being an external service also comes with its share of inconvenience.What if I told you that we can interact with it like a local di...
July 23, 2018
Previously, you have read and followed the tutorial on a simple Ethereum Smart Contract. But, that was all in your local machine.This time, we’ll deploy to a public Ethereum Testnet called Ropsten whe...
July 10, 2018
You have read about Ethereum, you know the gist of how blockchains work, now you want to start playing with the development. Where do you start?Without further ado, here comes the step-by-step guide.W...
April 10, 2016
If you have added permission checking on items such as Camera or Photo Library, you may have noticed this issue when testing your app. That is, your app would crash with a SIGKILL upon return from Set...
April 02, 2016
There are various reasons why one would want a countdown timer. In my case, I wanted a countdown timer to display the time left before an auction closes. Naturally, I searched for available packages t...
April 01, 2016
Here’s the issue I had. I have a UITextView of variable length that is populated via JSON. It is part of a XIB file that is inserted as a TableViewCell in a UITableView.EDIT: In the end I figure that...
January 20, 2016
If you have been developing Laravel apps, then you should be quite familiar with the Nginx + PHP-FPM stack as they are part of the default Homestead/Valet stack as provided by Laravel. One of the cool...
January 08, 2016
While trying to upgrade my production app from Laravel 5.1 to 5.2 via composer, I encountered this error message:Generating autoload files> php artisan clear-compiled [Symfony\Component\Console\Ex...
December 17, 2015
Backing up and restoring your PostgreSQL database is easy. Follow this guide and do it in 60 seconds.To back upTo back up a PostgreSQL database, we use pg_dump to save the database into a text file.$...
December 10, 2015
The ☰ character is often seen everywhere especially with a mobile device as the de-facto representation of a hidden menu. Commonly called the trigram for heaven, the hamburger icon, or simply the thre...
December 08, 2015
If you are having a problem specifically with Android 4.2.2 stock browser not triggering click on your file upload input field, then you are not alone. This is an odd bug... Thank goodness the fix is...
December 04, 2015
Too lazy to download a specialized FTP app? No worries. You can download or upload files to your server directly via your terminal / SSH with these few simple commands.To download from the server$ scp...
December 01, 2015
This is an updated version of this previous article. I will keep it short and concise here. If you find it hard to follow, you can refer to the previous article as it comes with more in-depth elaborat...
September 20, 2014
This article has been updated for the latest version of Cordova and Ionic V1 Please refer to How to Set Up Apache Cordova Facebook Plugin and Parse in Ionic FrameworkPreviously when I wrote the articl...
August 15, 2014
UPDATE: I have written another article for Facebook Login with Ionic and Angular UI Router, and integrates with Parse.com as the backend. I believe it is more complete and more useful than this articl...