Latest Posts

Install Haskell and Emacs on macOS

Haskell is a purely functional programming language. I learned how to use it in my Programming Language Concepts class. Our professor asked us to use Emacs to edit all the Haskell and Agda code since there are plugins such as Haskell Mode that can let Emacs highlight Haskell code and compile them when needed.

In this blog post, I will talk about how to install Haskell and Emacs on Mac. There are some tricky things we need to notice in order to be able to use Haskell Mode on Mac. If you are using Windows, you can download the single installer for everything provided by my professor Aaron Stump from here.

We will also use Homebrew to install Haskell and Emacs here. If you have not installed Homebrew yet, please copy and past the following code to terminal to install Homebrew:

$ /usr/bin/ruby -e "$(curl -fsSL"
Continue Reading

How to Sign Commits and Tags with GPG

Why Should You Use GPG?

By default, Git will not verify your identity in each commit, which means someone can use your identity to push commits.

This may be difficult to understand. Take GitHub as an example, to push commits, you need to register your SSH keys to GitHub. And you need to be an owner or contributor of a repo to push commits (otherwise, you have to use pull request). So it seems that there is no problem related to identity.

It is not true. GitHub uses SSH Keys to identify you and let you push your commits. But Git itself does not use SSH Keys to identify you. Instead, it uses the name and email you set in Git to identity you. An example below is that my friend (Ricardo) registered his SSH Key but did not give his information to Git. As a result, he can push commits to our GitHub project. But the contributor is the name of his computer, and GitHub cannot find an account that matches the email address.

An Example

Continue Reading

How to Install Ruby (on Rails) on Mac

macOS already included Ruby. You can type ruby -v at a Terminal prompt to check Ruby version and see result like:

ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]

If you are satisfied with the Ruby version, you can type gem install rails --no-ri --no-rdoc to install Rails.

However, if you are not satisfied with the Ruby version or if you have multiple apps that run on different Ruby version, I would recommend you use RVM to manage Ruby.

Continue Reading

Silicon Valley: A Story That Is Unrelated To Technology

This is an essay that I wrote for my Rhetoric course.

Silicon Valley

Silicon Valley is a region in California where many technology companies gather together. When we think about Silicon Valley, we often think about genius people sitting together and programming in mysterious ways. Silicon Valley is also an American comedy series produced by Mike Judge. The TV series is a story about how five young men develop an algorithm that can compress Gigabyte amounts of data into Megabytes. The men then go on to found a startup company in Silicon Valley, and the series focuses on how they maintain and run the business.

Continue Reading

Sell Your Privacy

This is an essay that I wrote for my Rhetoric course.

When you are using free online services, such as Google, Facebook, and Amazon, do you believe it is okay for them to collect your data so that they can “provide information related to you” to you? You might think that it is fine because you like to see news and items that are relevant to you. Well, what if the free services are selling your data to earn money? You might have some concern about this, but in the end, you remember that the services are free, so they have to have some ways to earn money. So you agree again. Now, please think about this: is it okay for your broadband providers to sell your data for money? I don’t know how you feel, but I feel angry. Because I already paid them for the internet services, I do not want them to earn money again from my personal data.

Continue Reading

Project Review: Admissions Data Search System

The Main Page

What This Project Is And Why I Did It

This is my first complete project. Its purpose is providing admissions data to potential new students.

I did this project as a competency test when I joined Hongmantang Studio. At the time some third-party websites provided admissions data to help potential new students decide whether they should apply to a university. Those sites tried to collect admissions data from as many schools as possible. Thus, they did not have enough details for each college. Our studio wanted to create a system that could show enough details about the admissions data for our university.

Continue Reading

The Programming Languages that I have learned (Part I)

This article is a list of programming languages that I have learned. Please notice that I have learned them, which means I have not mastered them.

Quick Basic

QuickBasic Opening Screen

Quick Basic or QB is the first programming language that I learned.

Continue Reading