New Year’s Goals 2017 Edition

It’s 2017, and it’s a time for new beginnings. In fact, it’s a time for new beginnings to new beginnings because this year, I have graduated my “New Year’s Hopes” to “New Year’s Goals”. For years, I have written up a mishmash of aspirations. This year, I will write up a mishmash of aspirations that I have a loose plan to complete.

Actually, I ended up taking my annual goals quite seriously this year. After reflecting upon this past year, I saw the wonderful things happen that I didn’t plan for. I also saw the missing things that I wish I would have done. And in the end, life happened. That’s a situation I am familiar with. It’s the same situation as going to the grocery store without a shopping list. It’s the same situation as having an only growing list of movies to watch. It’s the same situation as Dota 2 mid-game where your team wanders around until you randomly run into the enemy and just end up fighting.

This is what happens when you haven’t established any priorities and therefore have no plan on making anything happen. Sometimes it turns out well because serendipity is wonderful and should never be lost. But it’s also really nice to have a vision and work towards it.

Because I enjoy systematizing thinking, I ended up doing Alex Vermeer’s 8,760 Hours. It’s a process for breaking down your entire life into different aspects to analyze how things are going (a “snapshot”), where you would like to be (your “ideal you”), and what short-term goals will get you there.

Altogether, it probably took me about 8 hours to do in total, though the time flew by while doing it. I ended up using mind mapping software for the first time, and I loved it. It worked so well for me. I love taking notes. Specifically, I love taking notes in outline form. The biggest problem with outlines, however, is that they’re strictly linear, and sometimes that just doesn’t work for disparate ideas. Mind maps fixed that.

Anyways, out of that exercise, I naturally came to 4 different goals that nicely addressed many aspects of my life. Before I get to those, however, let’s see how last year’s hopes went.

Old 2016 Hopes

1. Watch More TV.

I mostly got there. The subtext of the goal was to watch less Twitch, and I am watching a lot less Twitch these days. In fact, these days, my video game viewing is down to Purge for learning in preparation of our corporate Dota 2 league and PiG for an unannounced Spawning Tool project. Besides that, I have pretty much gotten that out of my system.

I finished Reboot. I then watched 1 1/2 seasons of Star Trek: The Next Generation at the beginning of the year before I dropped that for no specific reason. I think podcasts have filled in those gaps as I have started listening to a few more podcasts and also stopped listening to podcasts when I clearly am not paying attention.

2. Sunset some of my commitments and projects.

This was a big success. Various lingering commitments wrapped up and all for different reasons. For one, I officially announced an end. For another, someone else found someone to take over my role without any prodding from me. For another, I just let it fade away guiltlessly and closed out my notes on it.

In fact, I ended up looking for things to do again part-way through the year as I had more time than I expected and wanted to contribute more. In retrospect, that was likely my first realization about my lack of high level priorities. I made this hope because my commitments didn’t fit my abstract goals. I didn’t know how to use my time afterwards because I didn’t have concrete goals. So now I’m making goals.

3. Express gratitude on a daily basis.

Partial success. I made a daily TODO and ended up completing it 2 of every 3 days. It was an easy way to spend a minute a day reflecting on what had happened and appreciating the good parts. I have an idea for how to make a habit of it going forward.

New 2017 Goals

1. Establish a morning and evening routine.

Looking broadly at my life, there are a lot of things I want to do. I want to read more. I want to exercise regularly. I want to get enough sleep. All of these were past hopes and remain ongoing goals.

To address those, I had daily TODO tasks to complete each one of these, but realistically, I was only completing them half of the time. Noticing that I needed to do them only sometimes triggered the behavior. What I really need more than a reminder is structure, and that is something that better routines can address.

Every day is different, and when I get into it, it can be hard to even consistently spend 10 minutes a day doing something. However, putting regular tasks at the beginning and end of my day seems much more feasible.

This is no secret. People have done it forever. I needed to try and fail to accomplish the same daily tasks without a routine to understand why it is so helpful.

2. Be more present.

I have 2 bad habits that I wish I could fix: bad eye contact and looking at the ground when I’m walking. Both are related to looking in the wrong places, but both speak to a general concern I have that I tend not to very present.

I spend time reflecting on the past and planning for the future that I should spend in the moment. I multi-task when I should mono-task. I want to focus more on now to dig into the current situation. I want to be a better listener and enjoy walking through nature or on a busy downtown block.

3. Learn web design.

Specifically, I want to be able to design a website from scratch that I’m not embarrassed of.

I have built various websites and put together cool functionality, but without someone else’s hand involved, they all look terrible and do not have well-thought experiences and flows. Since I make my living as a web developer, it seems like a naturally complementary skill. Most of my professional growth has been strictly technical, and it would be nice to step outside of my role and grow laterally.

I don’t intend on putting my designer colleagues out of a job, but hopefully I will get far enough to appreciate more of their brilliance. And also not embarrass myself.

4. Publish a one-shot RPG adventure.

I love games, and recently, I have been really getting into traditional pen-and-paper role-playing games (RPGs) like Dungeons & Dragons. The combination of storytelling and social interaction is so much fun, and I want to dive deeper than just running my game and polishing an entire adventure.

I think this will be a hard project, which itself is good. Specifically, I see 2 really good parts to it. First, it means that I will have to learn and develop a lot of different skills that I can hide in my own games. I will have to learn to draw to come up with better maps. I will have to become a better writer and storyteller. I will have to read more books, play more video games, play in other DM’s games, and just expose myself to more good stories.

Second, I will just have to play a lot. I intend on playtesting the adventure heavily, and I am very excited about the idea of sitting down with every willing group of friends and strangers to play more RPGs. It gives me one more reason to randomly reach out to old friends* and do something creative. That just sounds like fun.

Happy New Year, and best luck of with your new year’s goals as well!

*Let me know if you would like to play! The offer is open to players of any past experience

 

Rewatching Star Wars as Movies

(Author’s note: there are really minor spoilers of the original and prequel trilogy, but there are no spoilers for Rogue One in the blog post ahead)

I was a huge Star Wars as a kid. I first encountered it in 1st or 2nd grade when I checked out a Star Wars juvenile paperback from the library and subsequently mispronounced “Jedi” when raving about it to my mom. Ultimately, my mom was the gateway to my soon-to-be obsession when she borrowed the VHS tapes for the original trilogy from the library, and we watched them as a family. Other than being very scared of Darth Vader in The Empire Strikes Back and needing my parents to cover my eyes, I was fully engrossed in every moment.

Many years and extended universe (now known as “Legends”) novels later, my Star Wars fandom has waned. However, it was given that I would see Rogue One. We ended up seeing it with Julie’s parents, and overall, I enjoyed it. I thought it was better than The Force Awakens, though seeing the gritty side of the Rebellion made me somewhat uneasy. I also was weirdly confused with the Michael Giacchino soundtrack sounding just like Star Trek, but that’s a minor issue. Continue reading Rewatching Star Wars as Movies

Looking Back on my 2016 Milestones and Achievements

This past October, I went to my 5 year college reunion. I enjoyed catching up with many of my classmates, but I was surprised that I have been an adult for 5 years. The time truly went by too quickly, and without the regular progression from quarter to quarter, class year to class year, it’s easy to forget how much has happened.

Reflecting on 2016, it’s hard to remember how my life was different on December 31st, 2015, but were I to say that not very much happened, I know at least one person would be very disappointed with me. To appreciate the big accomplishments and wonderful things that happened, I thought hard and went through my calendar to journal out what happened over this past year. Here is a sampling of what I picked out:

  1. Julie and I got married! That was a fantastic party and a wonderful weekend to spend with the people most important to us.
  2. I joined the Foothill Symphonic Winds to play tuba. Most of what I forgot came back quickly, but really, what I appreciate is the feeling of being in a community with a shared purpose.
  3. At Zanbato, we changed a significant part of our technology while building a new product and flipping much of our engineering team. And it all went great.
  4. I replaced a flat tire and a broken light switch.
  5. I invited my neighbors over for a holiday cookie exchange. It was terrifying to meet people I hadn’t talked to for years, but it went great, and my neighbors are awesome.

There were 2 big themes that I noticed from the longer list.

First, most of the memorable moments involved other people. Spending time with friends, family, or even strangers seems valuable in itself regardless of what we were doing. I thought I would recognize more new skills, personal development, and completing goals. I’m glad for those things, but they didn’t quite make my list.

Second, there wasn’t much overlap with my Asana TODO list. Maybe it’s self-evident, but it seems odd that lists I review constantly to figure out how to spend my time didn’t pop out. Things like “reading the news everyday” or “watched 20 movies” just didn’t beat the singular events, planned or unplanned. The regularity, of course, makes each specific instance less significant, but I had hoped that those efforts had accumulated into a major achievement.

Over the past month, I came across two articles on Hacker News that made me think about where my TODO list fits into my life. The first was “Five Things You Notice When You Quit the News“: it criticized the value of “staying informed” and “being concerned”, which ran contrary to my post-election effort to diversify my new sources. The second was “Why time management is ruining our lives“: it pointed out the issues with the productivity industry, which made me rethink the diligence by which I maintain and use my personal TODO list.

Looking at my TODO list, I have roughly 3 different types of tasks and lists:

  1. Things that I need to do but would forget if I didn’t write it down e.g. “Call to reschedule my dentist appointment”
  2. Long-term goals broken up into consistent progress e.g. “Read a The Angry DM article every week”
  3. Tasks to live the life I want and be the person I want to be e.g. “Exercise everyday”

The first two types seem useful for organization. The last category is more troubling because I have effectively systematized my character and lifestyle into a TODO list. Not only does it seem like an odd way to live, it also requires constant review and introspection on whether those tasks are really what I want them to be.

For regular blog readers, you may be anticipating my New Year’s Hopes post. Usually, I think about my hopes as I’m writing them, but they have gotten wrapped up in reflecting on 2016. As I look back on this past year, I have also projected what I want this next year to be like. All of that should be aligned with my annual hopes as well as the TODO list that I use day-by-day.

I won’t spoil too much about my hopes in this blog post since that post is a ritual in itself. However, I hope it will be a more accurate representation of what I actually value in life rather than a smattering of goals. It would be too strong to call it my purpose, but maybe in a year, the big moments of 2017 will be less surprising to me.

The Skating Rink

Before splitting up for the holidays, I wanted to meet up with my Bay Area transplant cousins Maddy and Adam. Maddy suggested that we might go ice skating, and since Julie had coincidentally mentioned skating as well, I knew we had quorum.

Wanting to avoid downtown Oakland, we drove out to Walnut Creek on Ice, which was the next closest rink to Berkeley. It was small and crowded. There were a lot of flailing skaters to avoid. It wasn’t safe to go very quickly. All of that was very similar to my past 2 experiences skating at the Winter Lodge.

What was new, however, were the “walkers”. Instead of carefully skating with their children and occasionally getting pulled down, parents could rent big, plastic, sliding podiums (see an example here) for their children to hang onto and scoot along. I can appreciate the concept: they work like training wheels, and they provide a physical barrier around the child. However, I found them somewhat scary because they can move so much faster and unpredictably than a child sitting on their butt because they had fallen down.

Having to deal with inexperienced skaters is fairly unusual amongst leisure activities. Most activities are structured and separated: 10 people play a game of pickup basketball, and 2 play a game of chess. Some players are good and some are bad, but you generally don’t have to worry about someone else knocking over your pieces. Even in other forms of exercise, there’s enough structure to avoid chaos. Swimming pools for doing laps get divided into lanes, and when it’s just open hours at a pool, there isn’t much of a shared goal. Ski slopes are rated for difficulty, and bicyclers pass on the left.

The skating rink, however, can have an arbitrary number of people sharing the same space, and successfully skating requires a lot of awareness to avoid others interfering with you. I have heard that some rinks have inner and outer loops for different experience levels, but that isn’t a lot of granularity for the chaos that can still ensue when one person can’t stop in time.

The fact that we haven’t imposed more structure, however, is maybe a testament to its effectiveness. When people fall in a skating rink, they usually laugh despite landing on ice. I can’t remember witnessing any serious injuries while skating. Generally, the crowd successfully skates around at the same rate. Despite complaining about how choppy the ice gets and how I almost got decked trying to avoid some hapless child, I have a good time skating, and since the rinks haven’t put in rules, I guess other people do, too.

After skating, we went to Smoke’s Poutinerie for dinner to incidentally complete a very Canadian experience here in California. Despite having skated frequently as a child in Canada, I can’t remember eating poutine while there. My best hypothesis for why is similar to why I missed other food in my childhood: my mom didn’t like it. But she probably knows best. Despite how wild the skating rink looks, a pile of fries drenched in gravy and covered with bacon is probably more dangerous anyways.

Lessons from Hosting Thanksgiving: 2016 Edition

According to tradition, I hosted my company for an early Thanksgiving last week. Although I enjoy hosting and cooking for friends regularly, this event is by far the most ambitious as I cook a full meal for about 20 people. Each year has been an opportunity for me to learn more about hosting, and I have a few more lessons to share from this year.

In the past, I have done various ethnic and regional cuisines, but I have run short on ideas. Of course, there are plenty more unexplored cuisines in this world, but I have only picked cuisines that I think I have an edge on and wouldn’t be offending co-workers who know that culture better than I do. This year, I ended up doing a Canadian Thanksgiving, which was some combination of stereotypical Canadian food (butter tarts) and using maple syrup in everything. Continue reading Lessons from Hosting Thanksgiving: 2016 Edition

A Path Forward After the Election

Last night, we saw one of the most shocking results in American democracy with the election of Donald Trump as the next President of the United States. We’re shocked about how wrong the polling was. We’re shocked that the people of this country would elect Trump. But really, we’re shocked to learn that this country is not what we thought it was, and more specifically, that we as a people aren’t who we thought we were.

As the progressive movement has made tremendous advances over the past few years on gay marriage, universal health care, and more, we have distanced ourselves from the opinions of many people across this country. We have allowed righteousness and confidence in our worldview to scorn or ignore many people who feel left out of this movement. These changes have eroded trust in our government’s ability and willingness to reflect our beliefs and have a beneficial impact in the lives of regular Americans.

In defeat, our pride is hurt. We could dispute the mandate or election process. We could call others racists or sexists. We could reject Trump as being “our president” and spend the next 4 years trying to undo this election. We could retreat into our own separate spheres and ignore the wide differences in our political views.

Or we can use this moment to unite us. We can re-affirm our belief that this country is stronger together. We can harness the our shared identity and turn our empathy towards the half of the country that very clearly stated their problems and desire for change.

I am optimistic and believe this election can be a positive force in the progressive movement. Faced with the reality of how this country really feels across a swath of issues, this election can be a call for us to re-engage in civic life and create the change we want to see. I believe that our government and our institutions can and should create good, but they are only as strong as the trust and energy we put into them.

As I saw the election results develop over the course of the night, I simultaneously experienced 5 stages of grief. In the end, however, I realized that this country will endure. Through our faith in democracy, we have gone through 56 peaceful transitions and 1 very notable unpeaceful exception, and although it might be a statistical error, I’ll take those odds.

Maybe this country isn’t what I thought it was, and honestly, what democracy has revealed about who we are has me worried. However, that feeling and perception doesn’t have to define any individual or us collectively. Across every facet, this election has been about change. Let’s all be part of that change and remember that our identity isn’t defined by any individual, community, or state. No single person is American: together, we are Americans.

My Magazine Reading Paradox

Under my desk right now, I have a stack of about 52 unread magazines, and when I say “about”, I mean I just crawled under my desk, did a shoddy job of counting, and am not confident enough to give an exact number. But there are 52 of them.

I finished the September 2014 edition of “Discover” magazine and thoroughly enjoyed it. The “upcoming science events” section in the back felt dated, but the rest was interesting, including a story about reconstructing soldiers’ faces and a story about a medical tech lab using everyday items. As my backlog would indicate, I’m not very diligent about reading magazines, but I really enjoy them. My stack is a mix of “Discover”, “Wired”, “Popular Science”, “Stanford Magazine”, and a few “Makes” as well.

I have a hard time reconciling that fact with related feelings about magazines. For one, I generally dislike owning physical books and find them a burden to carry around or even own as they take space on my bookshelf. I only really like having physical copies of books that I really enjoy.

Also, I like completing things and checking them off my list. Books are big, discrete volumes that I look back at a sense of accomplishment having read this or that. Periodicals are, well, periodic, and one can never really be done reading them until they go out of business.

And most apparently, there’s a lot of stuff in magazines that I’m not really that interested in. On the internet, I will browse my reddit front page and click on a few links. On the rare occasion I have physical newspapers, I skim a lot of headlines. Magazines are also an amalgamation of topics that I would seem to skip as well, but I actually read them cover-to-cover and enjoy them thoroughly for it.

I’m not sure what the difference is with a magazine, but somehow, they are the cheese with my broccoli. I enjoy magazines because I’m willing to read all of the stories I would never select myself but often open my mind to new ideas and learn about totally different topics. They are my touch point with basic sciences, inventions in consumer electronics, and innovations in every discipline of engineering I never encountered. When I started college, I was excited about taking only computer science and psychology courses. Now, I find batteries and social dynamics just as interesting and wish I had gotten more breadth in my education.

Today, there’s a lot of concern about internet “filter bubbles” created by algorithms that feed you only information that reinforces your existing ideology. We also talk about the “echo chamber” of cable news where media outlets reinforce and amplify the same message through exclusive exposure. Selectivity in our media is very comfortable: I myself am a very picky redditor.

It feels like our media and communities have fragmented so much, but I wonder how big the gap really is. I think most people are curious. Although it takes some small amount of willpower to get there, we also enjoy the mental exercise of engaging with those ideas. Political polarization isn’t new, but types of media are, and I wonder whether we all just need to find our “magazines.”

These days, most magazines have an online presence as well with all of their print content replicated. I don’t think of myself as a nostalgic person. I honestly really can’t relate to people who enjoy the physicality of flipping through the pages of a book. Even so, there’s something really “right” about magazines that I uncomfortably can’t explain.

But I’ll still enjoy the heck out of them.

Also, if anyone in the bay area wants back issues of magazines, let me know. I have a stack of read magazines under my desk that I want to get rid of but just value too much to throw away.

The Best and Worst of Football

This past weekend, I watched 2 entire football games and saw 1 touchdown. For reference, a typical football game will have maybe 6 touchdowns. Between 2 games over 7 hours, I saw 1 guy with the football in his hands in the endzone. Rough.

I watched the first game in-person at my 5-year college reunion, where Stanford lost to Colorado. I will not attempt to summarize the game any better than ESPN: “Sloppy Colorado holds off equally bad Stanford 10-5“. I watched the second game over pizza at my friend Tom’s place, where the Seahawks and Cardinals managed to both fail to win the game and ended in a 6-6 tie. Neither game had much of a highlight reel, and yet, I had very different feelings about both games. Continue reading The Best and Worst of Football

A Beginner’s Guide to vim

(This was originally posted on GitHub. For the unfamiliar, vim is a text editor often used for programming. It’s similar to Notepad or TextEdit but much more customizable and powerful. It is also one of two sides in the great Editor war.)

Through your coding career, you have likely had brief encounters with vi while looking over your coworker’s shoulder or tweaking a server setup script. It looks arcane, and it’s hard to tell if it’s just an old habit of some coders or if it will actually make you more productive.

This guide is light on actual content and is intended to provide structure for how to learn vim. In truth, the only way to learn vim is to use it. The learning curve is steep but well worth it.

My perspective

vim is versatile, and this guide is written from the perspective an engineer who (mostly):

  • uses a Mac
  • ssh into Ubuntu virtual private servers (e.g. AWS EC2 instances)
  • writes Python/Django and JavaScript/React
  • builds a web application

Hopefully this guide is applicable to others as well.

1. Movement and editing

The basics of any text editor is being able to edit text, and vim is trickier than typing and deleting. There are plenty of cheatsheets and laundry lists of commands, so we won’t add another here. The best way to learn it is to usevimtutor, a tutorial built into vim that you can launch from your console. Go through it first to learn the basics, then do it again in a week after using vim for real.

2. Split Screen

We maintain a 100 character line length in our codebase, which is less than half of the width of a 1920px screen. Typically, I keep 2 different windows open side-by-side. You can split your screen with :vsplit and switch back and forth with ctrl-w ctrl-w.

Search online for more split commands (there are a lot).

3. Autocomplete

ctrl-p is your friend. When you’re typing, you can autocomplete the current word, where the options are drawn from words found in all open buffers.

4. Search and Search/Replace

vimtutor should have gotten the basics of find/replace, but here are some particular helpful techniques I have found

# and * search for the word currently under your cursor.

5. Editing your vim configuration

vim is extremely deep because it is extremely customizable. This includes simple settings such as tab widths or case sensitivity in search, but it also includes syntax highlighting by file type and rich plugins.

My dotfiles are available on github to see my settings in my .vimrc. There are 2 semi-standard settings that have been tremendous for me personally:

  • imap jj <Esc> – Type ‘jj’ to exit insert mode. This saves the stretch for the escape key or for ctrl-{
  • nnoremap ; :, nnoremap ; : – You type colon far more often than semi-colon, so this swaps those

Currently, I would recommend Vundle as your plugin manager.

7. GNU screen

Technically this is outside of vim, but I find screen to be indispensible in my environment. screen provides virtual shells so you can rapidly switch between vim and the shell. My typical setup has 3 screens:

  1. vim – I only have 1 instance of vim running at any time to avoid conflicts. I use multiple buffers and vim-session to maintain that
  2. shell – everything else I use outside of vim, including ack, git, scripts, file system management, etc.
  3. server – for web dev, you usually have to run a Django/Rails/Node development server, so I just keep that running in a separate shell

Note that you can also create a .screenrc to customize your screens as well.

8. Macros

Macros allow you to record a series of commands and repeat them again. Very useful for repetitive tasks

9. Marks

Marks record your cursor position, which you can use as a “bookmark” or in combination with other commands. I usually use uppercase marks because I’m bouncing between so many files

10. Registers

Registers are basically a multi-clipboard. I like using registers when I am replacing repetitive code since the unnamed register keeps getting overwritten when I delete lines of code.

11. References

  • Jim Dennis on grokking vi – a long but also deep StackOverflow answer on how vim works
  • Vim Tips wiki – it’s not very well-organized, but you will stumble across this site often while googling for vim tips
  • Vim Awesome – index of vim plugins
  • List of Django dev tools – for life outside of vim, here’s a full stack of tools you can use for Django development

12. So much more!

Although this guide is a quick read, learning to use vim can take a long time. While you are coding, be aware of the tasks at hand and keep that meta-awareness about what vim tricks you might use to be more efficient. Over time, more of it will become automatic, and everything will feel quick and intuitive.

Beyond this guide is a world of customizations and additional shortcuts to continue to learn.

Traveling Local

This past weekend, I went up to Sausalito with Julie and my cousin Adam, a fresh Bay Area transplant. After a typically slow drive through San Francisco, I drove northbound across the Golden Gate Bridge for the first time in my 3 year old car into this cute, throwback town across the bay from San Francisco.

We started with a late lunch at Lighthouse Cafe, a small throwback diner where we sat at the bar and saw our lunch come together. I learned that the trick to perfect eggs is to use a lot of oil to make sure they don’t stick. Also, if they don’t turn out perfect, throw them out and try again.

We walked over to Bay Model, a massive 2 football field sized model of the Bay with water accurately flowing to emulate tides and such. It’s a former US Army Corps of Engineers research facility turned museum because computer models made physical models outdated. Sadly, my home was not in the model because we’re too far away from water, but we did trace through various towns and roads we had traversed.

img_3695
Photo credits go to Julie who can actually appreciate visual things

Continue reading Traveling Local