Website Update

Screen Shot 2016-07-03 at 6.21.37 PMLast night, I finally updated to be responsive. That means that it will look and behave appropriately on various sized devices, such as a tablet or phone, in addition to on desktop browsers. There’s still a bit more to do, but at least it’s better than it was.

As a part of this, I also updated the site to take advantage of Sass for CSS generation and Gulp for task-running. Right now, I’m only using it to compile the scss and use the nifty autoprefixer library.

If you’d like to check out the code, you can see it at my Github wunc/ repo (I switched the public git repository from my wunchiou account to my wunc account).


My HTLA 2014 Graduation Speech

I’ve been meaning to post a copy of this at some point, because I think it turned out well. Since High Tech LA just had their 2016 Graduation, and the class of 2016 was the last one that I taught directly there, this is as good a time as any. I left California for Texas about a month after giving this speech. I’m not currently teaching here, but enjoying the intricacies of professional web development. In any case, I hope that my advice here is still valid for the present (the X-Men movie and Street Fighter references actually still are), and congrats to the class of 2016. It was nice to come back and see you all reach a proud milestone.

Today is a good day.

The Stanley Cup finals are happening. The NBA finals are starting. The World Cup is next week. Raise your hand if you’re a sports lover. (Come on, don’t be shy. It’s not every day I get to stand in front of a captive audience that will listen to my every word. [looks at the Seniors])

There are also some really good movies out right now: Godzilla, X-men, another Tom-Cruise-gets-attacked-by-aliens movie. How many of you are movie lovers?

There are new Mario Kart and Street Fighter games. Oh, and I hear Flappy Bird is coming back to the iPhone! I’m totally stoked! How many of you love video games?

Also, I got some cool intro music. Guns ‘n Roses. Welcome to the Jungle. I tried to do the Imperial March, but that got shot down. Music lovers?

Yes, today is a good day. [dramatic sigh and pause] Oh right, and you’re graduating from high school. I guess that’s cool, too. So, I decided to make this speech a continuation of an answer to a question posed to me by some of my Senior advisees, who are sitting on the stage today. They asked me: “How did you know you wanted to become a teacher?”

Twenty years ago exactly, I sat on a stage like this one, received my high school diploma, and pondered a similar question. Now I know that was a long time ago (in teenager years that’s what, like a bajillion years ago?), but I still remember three things:
1. Hugging a lot of people. I even hugged people that previously thought they were too cool for me because they had a Hypercolor t-shirt on top of their Guess jeans, and I didn’t.
2. Going to non-stop sequential graduation parties, and giving out completely random gifts from the 99¢ store because (a) I had no money and (b) I thought it would be funny. It totally was. I mean: nothing says “congratulations” like a jar of generically-branded turkey gravy, right?
3. Most of all, after it was all over, and I was standing halfway down the jetway to board the plane to come to college in California, I remember looking back at the lighted opening and seeing my grandmother standing there . . . crying.

Thinking about that image as the plane took off, I realized: this is a time of transition. [addressing the students] Your parents’ job is just about done; your teachers’ jobs are just about done. Your job is just beginning.

Speaking of jobs, I’ll assume that you’ll eventually want one, but remember that the job is not really the goal. It’s just a means to an end. The goal is happiness. (to all the parents out there that don’t want their kids to become starving artists, just wait . . . I’m not done yet). Well, you should know a few things about this goal.

Every event can have two kinds of happiness. One is happiness of the moment. Doing your Senior POLs probably did not make you very happy at the time. The other is the happiness of memory. Passing your Senior POLs probably made you very happy. Know this: it is that happiness of memory that is more important.

When you look back at your life, will you remember it as a happy one? To some, this means money and having bought everything you ever wanted. To others, this means you gave everything you possible could. You have to decide for yourself, but research actually shows that most of us are happier when we give than when we spend.

But to be able to give, you have to first earn, and you are not going to earn money doing something that makes you happy without being able to offer something rare and valuable in return. Or, in the immortal words of Axl Rose: “You can taste the bright lights, but you won’t get them for free. In the jungle, welcome to the jungle.” At this point, you may be thinking: “Great, I’m awesome at the ukulele. Happiness, here I come!” or perhaps you are thinking: “Who the heck is Axl Rose?” Regardless, let me say something you may not agree with: “Follow your passion” is kind of bad advice.

It’s not that we don’t know what our passions are; it’s just that they do not easily translate into a career for the majority of people. Let’s consider the things that we are passionate about, as evidenced by the show of hands earlier: sports, music, movies, video games. To make a healthy living from these passions is rare.

So, what are we to do, then, Mr. Chiou? You can build a collection of skills that are valued, skills that, in their entirety, do translate into a career. High Tech LA has gotten you started down that path, and I urge you to continue with every Joule of energy in your body.

So, how did I know I wanted to become a teacher? (Sorry, I got sidetracked talking about you guys. Back to me.) The truth is: I didn’t.
• 20 years ago, I sat on a stage like this one.
• 16 years ago, I made myself valuable by graduating from college with knowledge and skills that were useful.
• 10 years ago, that value and my experiences as a TA led me to education and to a job at High Tech LA.
• 4 years ago, I began advising and teaching a group of tiny Freshmen.
• 1 year ago, those tiny Freshmen became not-so-tiny Seniors.

and finally today: the memory of giving to the growth of those on stage has made me happy. Because when you earn your value, you will earn your happiness, and your passion will have found you.

I would like to wish the class of 2014 the best of luck in their continuing struggle to find their own value. We have grown together, and I hope you remember: today is a good day. Thank you.

Upgrade the Netgear AC1450 Router to AC1750 using a Mac

Eventually, I want to wire certain rooms of my new home with ethernet to get more consistent connections without having to use wi-fi (and as a fun project to learn how to do it). Until then, however, I’m going to bridge that gap wirelessly with a media bridge. I recently purchased a refurbished Netgear AC1450, after learning that it can easily be firmware upgraded to an AC1750 (R6300v2). My intention was to use it as an 802.11ac media bridge, and the latter theoretically gets better 5GHz speeds (1300 Mb/s vs. 975 Mb/s). Actually, that’s just me rationalizing; I really just wanted to do it because I could. For a very well-explained background on the why and how of upgrading this router, as well as instructions on how to do this in Windows, see Upgrade a Netgear AC1450 Router to AC1750 over at Advanced Home Server.

Since those detailed instruction are for Windows, and I didn’t feel like rebooting into Windows via Bootcamp, I did it from my Mac. By the way, most of the instructions here are going to be done in Terminal (which you can find in the Applications/Utilities folder). If you’re not comfortable with that, then find a Windows box and follow those instructions. Actually, I recommend you read them anyway because the process is mostly the same, and he has excellent screenshots of what the feedback looks like. I’m not going into all of the explicit details for everything here, just the general procedure to help those who might want to do this on a Mac. The process goes something like this: Continue reading

Add Tab-Switch Gestures to Mac OSX

Here’s how to add the tab-switch gesture across the OS and in whatever app you want:

  1. Download and install Better Touch Tool.
  2. In it’s configuration window, choose the Trackpads tab.
  3. In the sidebar, click the + and find the app to which you want to add the gesture (, for example).
  4. At the bottom, click on Add New Gesture.
  5. Under Trackpad Gesture, select Two Finger Gestures > rotate right.*
  6. Click in Custom Keyboard Shortcut, hold control and tap tab.**
  7. Repeat steps 4-6 for rotate left and ctrl-shift-tab.

*or whatever gesture you prefer. ** the tab-switch keyboard shortcut might vary from app to app. ctrl-tab is the default for most.

When I first switched to a Mac, I was still very used to the Windows way of doing things. One of those things was to use a mouse instead of the trackpad, because every trackpad I had ever used on a Windows laptop basically sucked. Then came the MacBook trackpad, which is just plain awesome-sauce. It’s large, smooth, responsive, and most of all: the available gestures are both plentiful and plenty useful. So, after some consideration, I decided to switch to primarily using the trackpad instead of the mouse. The clincher was the gestures; they were just too good to give up.

However plentiful they may be, there isn’t a gesture for everything. In particular, there’s one very common task that doesn’t have an associated gesture: switching tabs. Pretty much every app worth its salt has tabs: web browsers, text editors, and now even the Finder (in Mavericks). The default keyboard shortcut for tab-switching (ctrl-tab) is slow to perform. You have to move your whole left hand out of its normal position. So, there’s either that or you have move the cursor to click on the desired tab, which is even slower.

My inspiration for a solution to this problem came from one app that actually does have a tab-switch gesture (although it’s disabled by default): Firefox. Even though Google Chrome is faster, I still prefer Firefox for its excellent customizability. I’ve set a two-fingered clockwise twist to switch to the next tab, and a two-fingered counterclockwise twist to switch to the previous tab. I’ve gotten so used to these gestures that I get annoyed when I can’t use them in other apps (which is essentially every other tabbed app).

But now I can!

Google Chromecast shines in a hotel room

chromecast boxChromecast in a hotelGoogle’s Chromecast is sold out everywhere, but I was lucky enough to snag one at my local Best Buy a couple days after it was announced. Best Buy must have just gotten them in, because I couldn’t find them anywhere on the floor, and the blue-shirt had to look in the back. Once home, I unplugged the AppleTV and replaced it with the Chromecast. While cool, I was immediately unimpressed with it’s functionality compared to the AppleTV.

But a couple weeks later I gave it a try in a hotel room, and it was perfect. I couldn’t take the AppleTV with me because my family uses it at home, but the Chromecast was suitably unused and portable. So I threw it in my bag as a substitute. In my hotel room, I connected a travel router to the room’s ethernet jack. I’ve found in the past that this gives me better speed and a more consistent connection than a hotel’s wi-fi, but this time it also had the added benefit of putting my Chromecast and iPhone (which is used to control the Chromcast) on the same network. While it wasn’t necessary on this particular hotel’s network, a travel router also gets around the login page hoop that some hotel networks require*. This setup worked out really well, and I was successfully able to cast Netflix and YouTube videos wirelessly from my phone to the room’s TV.

* These networks often remember your device by it’s MAC address. First connect your laptop to the network, log in with that, then spoof your laptop’s MAC address with the router, making sure it’s in router mode and not AP mode.

Fixing Phantom App Store Updates

The OS X Mac App Store sometimes doesn’t correctly recognize that an app update has succeeded. The update does get correctly applied, but the notification remains in the App Store “Updates” tab (with a greyed-out button saying “Installed”) and the update count badge does not disappear from the App Store icon. Restarting the App Store or even the computer does not cause these phantom updates to go away. In the last week, I have had this happen to me a couple times. So, I went about finding a solution. Here’s what worked for me:

The Non-Geek Way

  1. Open up a Finder window and navigate to the Applications folder.
  2. Find the app with the phantom update and drag it to the Trash.
  3. Open up the App Store, find the app, and reinstall it.

The Semi-Geek Way

  1. Install OnyX.
  2. Open OnyX. Under Maintenance > Rebuild, check LaunchServices.
  3. Click Execute.
  4. Open up the App Store, click on Updates. The phantom updates are still there, but you can now (re)install them. After you do, they should disappear correctly.

The Alpha-Geek Way

  1. Open the Terminal.
  2. Enter the following command (on one line) to rebuild the Launcher library:
    /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user
  3. Open up the App Store, click on Updates. The phantom updates are still there, but you can now (re)install them. After you do, they should disappear correctly.

Redesigned my website

See the new design here:

As one of my summer projects, I wanted to redesign my personal website. I really had three motivations for doing so:

First, I wanted to make it less of a blog and more of a landing page, like a business card on the web. There are several web services like this:,, and etc. The blog component is still there, as well as photos, but they’re not the first thing you see anymore.

Second, I wanted to leverage the advantages of 3rd-party services. I use Flickr, Facebook, Twitter, and so on, anyway. So why not just link or embed those in my main website instead of having to maintain something separate for myself. The website used to run on self-hosted WordPress, and I got tired to having to check and update that software (since it’s the most popular blogging software, it’s constantly the target of security attacks). Now, it’s basically a single HTML file. As such, it doesn’t require a database or much storage space. This helps save me a little on the cost of web-hosting.

Third, I wanted to use it as a project to update my knowledge to current web design and programming technologies, namely: HTML5, CSS3, and jQuery. As a result, the website has a lot of cool (but hopefully not overdone) design effects and animations. On the programming side, it now also dynamically pulls blog posts from my (non-self-hosted) account and photos from my Flickr account. None of this requires any special web server technologies like PHP; it’s all done with client-side JavaScript/jQuery (see the code). However, it does require the visitor to have a relatively modern web browser. I probably could have worked on making more compatible with older browsers (if you’re still using Internet Explorer 8 or lower, you have my condolences), but I didn’t think it was worth the effort.

Anyway, hope you like it!