Yifeng Wang

My Email Workflow

We love email. We hate email. We deal with email everyday. Through out the years I've tried many ways to keep my mailbox sane. Many seek for help from a task management system. Often with this method, people track emails as todo items and treat emails themselves as merely reference material. Some email clients have taken that even further by making the client itself a hybrid task manager, popularized by Mailbox and its peers.

A rising amount of email clients started to automatically process and organize emails on user’s behalf, employing machine learning and alike. The processing may be based on an email’s type, priority, and other criteria. Such feature is sometimes called smart inbox. Spark and Inbox are two notable contenders. Even traditional email clients such as Outlook are exploring this option.

I personally do something much simpler. For that at the end of the day, email is just another communication channel. First of all, I separate my work and personal email entirely—different addresses and different clients. I don't even have personal account set up on work machine and vice versa. When I absolutely need to look something up in my personal email when using my work machine, I use the web interface. Having the physical separation helps me build a clear mental separation. The cleaner the context is defined, the better. The less context switching, the better.

I only subscribe to a tiny amount of newsletters. All the unsolicited ones are unsubscribed mercilessly. Marketing and promotion emails? Gone. Useless notification emails? Gone. For the ones I can never seem to find a unsubscribe button, I simply set up a rule to delete them upon arrival.

Notification, the single most distracting invention in history. To minimize the amount of notifications, I use rules to automatically mark the emails that I need but don't need to be notified about as read. For example I do so for the newsletters.

I triage my inbox in batch using a GTD inspired method. If an email can be responded within 2 minutes, I usually do that right away. Otherwise I leave it in the inbox to response at a later time, and again in batch. When a long response is needed, I most likely write the response in a writing app instead of directly inside the email client. Once I respond, I archive the mail. I flag the sent item that I’m waiting for a response for.

I use exactly one folder besides Archive and I don’t use tags at all. The folder is called Saved, where I store things needed for upcoming events, such as concert or flight tickets. Once they are used, they go to Archive.

I believe the best way for anyone to manage email is the way that makes them feel in control of their inbox rather than the other way around. Mine makes me feel so.

Have a Good Day

Who doesn’t love a good day? Everyone longs for days when everything just seems to go their way. However sometimes we focus too much on the wanting part and forget that a good day doesn’t just come by itself—it requires work and specifically, preparation work.

Go to sleep early. Prepare the clothes you need for tomorrow. Prepare breakfast as needed. When the morning finally comes, you wake up full of energy, jump out of bed and put on the clothes you’ve already decided on last night, and eat a hearty breakfast. From there, you are probably going to have a good day.

Tomorrow starts tonight. Want to get up early? Go to bed early.


Friends don't let friends keep redesigning their website. I apparently need better friends.

This site was previously powered by FarBox, and with a little help from CloudFlare, it has been reliable, fast, and securely served via SSL.

Farbox was one of the best contenders from the wave of Dropbox synced blog platform. Their marquee feature was that posts were synced through a Dropbox folder where files were stored in Markdown format plus some necessary meta data. This made publishing and content management extremely easy and accessible, especially when on the go. This was all great, but I wanted more. I wanted a site that I can (almost) fully control.

The idea of having my own corner, a place where I share my words with the world, on the sea of internet has started forming ever since I subscribed to a blog via RSS for the first time. Plus I really wanted to use those Markdown writing apps that I read so many reviews about.

After the journey of the initial a few months of Tumblr, Scriptogram, and FarBox, now allow me to introduce the whole new yeefom.com – a Hugo generated static site hosted with Netlify. I picked up a theme that had the style I had in mind, and tweaked from the layout to styling to make it look exactly the way I wanted. Feel free to grab my fork and play.

Netlify made the deploy process extremely simple. All I had to do was to connect my site's source code repo to Netlify and specify the build command. The continuous deployment requires zero configuration. Once the site was successfully built, Netlify automatically rebuilds every time the repo receives a new commit. Netlify also takes care of HTTPS and the rerouting between root domain and www subdomain if you'd like.

After the new design was done, the migration was a matter of reformatting meta data, as both FarBox and Hugo build pages from Markdown files. What took the longest was by far evaluating all the blog platform and hosting options. Nothing is absolutely future-proof, but I'm really glad to have found for now the perfect combo of Hugo and Netlify.

Working Copy: Git client for iOS

Working Copy screenshot on iPad

Look around, look around at how lucky we are to be alive right now. Pardon me for some Hamilton pun, but pause and think how crazy it would be if someone'd told you that Git operations could be done on your mobile devices just a few years back. What a time to be alive.

The star of today's post is Working Copy. It's not just a Git client on iOS; it's one of the best Git GUIs I've ever seen, on any platform.1 To get started, you can either clone a repo from a remote server or initiate one locally. Besides from popular services such as GitHub and BitBucket, you can clone repos from any server you have access to (via SSH). Once you have a repo inside Working Copy, you can freely navigate around the repo, make changes, and commit (or discard) those changes. Working Copy provides a basic text editor with syntax highlighting. Thanks to iOS share sheet, you can also edit the code in your favorite external editor. After committing the changes, you can push the code back to the remote server if you wish. You can browse commit history with ease. Tap on a commit and you are presented with a side-by-side diff view. You can check out, tag, or even cherrypick the commit if needed. Commit history can also be presented in a tree graph which can be accessed from a repo's summary view. Other operations that Working Copy supports include fetching remote changes, resolving merge conflicts (it has a great diff tool), and branch management (creation, merging and deletion). As a bonus, Working Copy provides a JavaScript console and HTML previewing, which really come in handy when it comes to web development.

Working Copy is an excellent tool for your Git needs on the go. In my opinion, it's especially helpful when you have the need to review code, resolve merge conflicts, or make small changes when you are out and about. The developer also smartly worked around App Store's trial restriction by making the app a free download with no function limitation except that pushing to remote servers requires an one time in app purchase. You should grab a copy.

  1. I highly recommend you check out GitUp on Mac.

The Silkworm: Not a Review

I wrote most of this short piece a year ago, and it only took me a year to post it. Ironically, it's about a book that took me a year to finish.

This is not a review. This is nothing more than a man writes out his nostalgia.

I first opened Robert Galbraith1’s The Silkworm last September, and it took me nearly a year to finish. During the time I had read many other books. The Silkworm, on the other hand, progressed but slowly. As a result, this thick book moved with me from one coast of the continent to the other. Almost like an old friend, it was always there for me. I remember when I was in elementary school, finding a good book to read was the happiest thing for me. Knowing there was a good book awaiting at home filled me with an excitement which I couldn't contain. I felt a big void every time I finished a book. Kind of like breaking up I guess. I haven't had a similar feeling for so long, and I miss it a ton. If this is the price of growing up then it's too much a price if I had a say.

The Silkworm didn't have a fast pace you would normally expect from a detective fiction. However I thoroughly enjoyed the characters' daily activities, even when they were mundane, in fact especially when they were mundane. There were many scenes that existed purely for character development, and I couldn’t get enough of them. When reading Harry Potter, I wished there were chapters that were just about their lives in Hogwarts and had nothing to do with the plot. What did they do on a weekend when they were not trying to save the world? Did they steal pumpkin pasties from the kitchen after a late night session even when they didn't need the help from Dobby? Tell me more, please. Maybe the Strike series is a belated fulfillment for those wishes.


I read the next installment in the series when the post was lying around in the drafts folder. From time to time, I almost felt I was reading text from a Harry Potter book, catching a glimpse of my younger self's mind. Thank you, Rowling. Please keep writing.

  1. Aka J. K. Rowling.