Monthly Archives: May 2019

Managing Virtual Machines

I use multiple two virtual machines that were built with Vagrant. It is a pain most of the time to shutdown both of them when I am done for the day.

I wrote the scripts to shutdown all the running virtual machines with one command.

PHP Package Development

I really enjoy this course. It not only covered the PHP package development but also covered topics beyond that.

For example, it explains the versioning, CI, style CI, importance and guide of creating a README, license file, and change log.

It helps me to get started building a package for PHP and at the same time, I can use the lessons I learn as a checklist to make sure the package is complete.

Some of the links from the lessons, I put them below for my future reference.

https://packagist.org/

https://phpunit.de/

https://semver.org/

https://travis-ci.org/

https://styleci.io/

https://www.makeareadme.com/

https://choosealicense.com/

https://keepachangelog.com/en/1.0.0/

How to Win at College

How to Win at College – Cal Newport

Obviously, I am not at college.

I still want to see what I missed by not totally “won” when I was in college.

  1. Didn’t get close to a professor.
  2. Didn’t build a study system.
  3. Didn’t start writing paper 3 days ahead due.
  4. Didn’t ignore classmates’ grade.
  5. Didn’t start fast, end slow.

Anyway, I am still fine from my college experience because I took “Don’t have no regret” approach. Maybe it’s the most important point.

Jet Lag

I recently traveled to Asia for vacation. It was located at a 16 hours different time zone from home base.

It was not my first time travelling to Asia and I always had a hard time adjusting to the new time zone when I was there and when I returned home.

This time, I did something different and it helped me a lot.

On the first two days upon arriving and returning, I slept whenever I felt tired. I sleet at 3pm local time and woke up at 1am local time, but it’s OK. I was not forcing myself to adjust to the local time, but let my body dictate the sleeping pattern.

On the third day, things will go by easily and much easier to adjust to the local time.

It sounds like a waste of time on the first two days, but I did enjoy the rest of the trips.

Homestead + dnsmasq

Homestead and dnsmasq

In Laravel, there are two out of the box setups. One is using Homestead and the other one is using Valet.

I personally prefer using Homestead because it is entirely on a virtual machine and it does not affect the host OS. If anything goes wrong, I can simply just destroy the Homestead virtual machine and start a fresh box.

One of the annoyance to me using Homestead is whenever I create a new project and giving it a unique URL, e.g. project-1.example.test, I have to edit the /etc/hosts file and add the domain to the list in order for the new URL to work.

Instead of editing the hosts file each time, I started using dnsmasq to proxy all the example.test to the IP address of the Homestead machine.

The setup is straight forward, here is my steps.

  1. brew install dnsmasq
  2. mkdir /etc/resolver
  3. touch /etc/resolver/example.test
  4. Edit /etc/resolver/example.test and add nameserver 127.0.0.1 at the top of the line.
  5. Edit /usr/local/etc/dnsmasq.conf and add address=/.example.com/<your homestead box ip> in somewhere beneath #address=/double-click.net/127.0.0.1.
  6. Start dnsmasq with sudo brew services start dnsmasq