Latest posts

Set Up Subdomain Website Hosted on VPS with Git Deployment

The previous series Set Up VPS on Linode (Part 1, Part 2, Part 3) explains how to set up the server environment with necessary dependencies on a Linode VPS virtual machine. This article takes one step further to lay out the steps to launch a new website from this virtual machine with git-based deployment.

Swap VPS IP from Within China

Running a website from within the physical border of China can use either international VPS service provider like Digital Ocean/Linode or domestic ones. Using domestic VPS service provider requires registration of ICP, which is only possible through a legal entity in China. International VPS doesn't have such requirement. Any individual can point a domain name through his domain registrar provider, registered by individuals or legal entities, to an IP address from the VPS service provider.

Set Up Apache on Mac Sierra 10.12

Here's the how-to guide to set up Apache on Mac Sierra 10.12.6. It's more involving than just serving up a http server from a local directory, which can be done with python -m SimpleHTTPServer 8080 (for Python 2.7) or php -S <adddres>:<port> (for PHP 5.4).

从全名K歌网页下载mp3音乐文件

全民K歌为付费的VIP用户有提供把歌曲下载到本地手机的服务,不过要导出到电脑还是个麻烦。以下的方法可以从全民K歌的网页上直接把音乐文件扒下来,不需要借助任何额外的网站服务。

How to Find IP for Synology DSM on New Router

We move a lot and so does our Synology NAS DS215j. When we move to a new home, there will be a new router, and Synology DSM needs to be mapped on this new network. It's not always a straightforward transition process though, depending on the difference between the old and the new router. Sometimes it works like a charm without any additional work, and sometimes it feels like moving mountains to do something as basic as finding the IP for the Synology device.

Basic MySQL Commands

My own quick reference guide for MySQL database

Basic Shell/Unix Commands

I get rusty from time to time and need a quick tutorial to get myself back into the tech game. This reference doc is fairly basic but saves me the trouble of having to google (which doesn't work in China) other reference websites or Stackoverflow.

Convert Multiple Images Into One Single PDF

A lot of manga series found online are in image format, like JPG or PNG and it's one image for one page. Mac's Preview app can read them if needed, but that's not very convenient. It would be nice to convert them into one single PDF file so that it can be read in any device and easily shared with others. This can be accomplished with a command-line tool ImageMagick on Mac.

Basic PostgreSQL Commands

We use MySQL for Linkqlo app as that was part of the good old stack of PHP-MySQL chosen by the IT vendor we worked with. In 2015~2016 as we gradually refactored PHP endpoints into Haskell, we started running into various issues of MySQL since some of its libraries didn't work well with Haskell or our deployment script. Eventually they were all fixed, but it was a big hassle. For our new Mirror Mirror app, since it was built from scratch, we chose a stack that would fully leverage our technical capability - Haskell for endpoints, React-Native for front-end, PostgreSQL for database, and Nix for deployment.

How To Make App Store Submission

Making an app submission to Apple's App Store is like configuring Amazon's AWS service. From a technical standpoint it's not scientifically difficult, nor an engineering feat worth bragging about, but it's complicated and often confusing because we have to play by the rules set by Apple and Amazon and that introduce a whole world of pains on its own. It's a muddy water where if you have been there, done that, you know what to do, sort of, through a series of trials and errors. If you are new to this process or haven't done this in a few months, you just have to man up and read through some notes from the past in order to stay on the right path.