June 2016

Today's the last day of June and I would like to share what I've learned during the month.

An overview:

  • Ruby
  • Ruby on Rails
  • dotfiles
  • Automation using launchd
  • HDB Cool Ideas Hack
  • Automator.app

Ruby and Ruby on Rails

I decided to pick up Ruby and Ruby on Rails this month. At the start of the month, I spent about three days learning Ruby and then finally to building a Telegram bot. Coming from a foundation in Java, I felt like I wanted to build some web apps, thus I decided to choose Ruby on Rails instead of any of the popular Node.js web frameworks there are out there. I have been coding Ruby for almost every day till the hackathon.

Overall, it has been a great learning experience. Ruby on Rails is a really good framework if you're looking to build a web app prototype fast.

dotfiles

Being a programmer browsing GitHub, I noticed a lot of programmers having this repository called dotfiles. So one day, I decided to check it out and finally got to setting up my own dotfiles with the aliases that I can enter into Terminal.app for easy access to commands.

dotfiles are good if you want to setup a new system or add unix configuration files to your current system. I browsed several tutorials to learn how it works, including this. Now I can be prepared to pull down my dotfiles and set up a new Mac quickly should the need arise.

launchd

launchd is a utility provided by Apple on OS X (now called macOS after WWDC16) that helps you automate tasks. I set up two scripts: clear my Chrome cache every Sunday night and a daily brew update script runner.

These two launchd files allow me to automate the process of clearing my Chrome's cache and running the brew update command that updates my Homebrew formulae. Then at any time I can just brew outdated to check for outdated formulae and then brew upgrade to upgrade them to new versions.

If you're not using Homebrew on your macOS already for development, please take a look.

HDB Cool Ideas Hack

HDB Cool Ideas Hack is a hackathon organized by UP Singapore a couple of days back 24 to 26 June 2016. My friends and I formed a group of three. We built an Android app that helps connect citizens in the same neighborhood to engage in activities of all sorts: football, chess, barbecue, etc. This helps those who are new to the neighborhood to know what facilities there are available, and also to increase the engagement citizens have with their neighbors.

I volunteered to do the backend of the app using Ruby on Rails. From this hackathon, I learned how to setup a new Microsoft Azure server and nginx + Passenger web server for the Rails app.

Also, we won third place for the hackathon!

HDB Cool Ideas Hack 2016

Automator

Automator is an app provided in macOS for, well, automating stuff. I just found out about it today when looking for backup solutions away from Time Machine backup. I have tried Time Machine before but I didn't liked how it backs up every single copy into my external hard drive, which copies multiple times and increasing the size usage on the hard drive. As a student, I do not have much money to purchase multiple hard drive and I used to take photos in RAW format on my Canon 550D.

I am looking at Backblaze for offsite backup, but right now, I can only rely on backing up my documents to my Western Digital 2TB My Book. So enter Automator.app.

I made an app file that copies my development folder to my external hard drive, then created a Calendar.app event that will run this app every last Sunday of the month at 2230 hours. So far so good, for I use rsync as a bash command to execute the syncing of the folders.

I also made a secondary app file which I'll click manually to backup my iPhone's photos from Dropbox to my external hard drive.


Overall, it has been a great month learning these stuff and I can't wait to see what I will learn in July and August!

P.S.: I should really dress up for occasions. I was the only few who wore shorts on the final day of the hackathon. Everyone else were all nicely dressed because we all knew there was prize presentation.