Watership Down, a fantastic novel

Hazel, Fiver, Bigwig, Nipkin, Dandelion, and so many others have filled my imagination for the past two weeks or so. I was listening to the audiobook version of Watership Down by Richard Adams, read by Ralph Cosham. It’s a fantasy book about a group of young rabbits leaving their warren all based on a feeling. They meet many friends and foes and along the way you learn about the habits of rabbits.

The novel is different than some novels I’ve read or listened to about animals being anthropomorphized. The most striking comparison I have are the Redwall books.  In the world of Redwall, the mice and other woodland creatures have many characteristics that are human or make them sound and act like “civilized” creatures. Not to say that living in a warren or burrow can mean you’re not a colony of civilized animals. In Redwall, there’s the concept of the main Abbey which is built by mice and all around the story of Redwall, countless creatures battle over control of Redwall using human tools like swords, bow and arrows, and even siege equipment.

In Watership Down, the rabbits and behave like rabbits. They use a language called Lapine, a language invented by Richard Adams himself to convey some words or phrases that the rabbits would use and humans just never thought about. Some of my favorites are silflay which means grass and the act of grazing, hrududu meaning a motorized vehicle, and Hazelrah which is a name and a title for the main character. “Rah” is a suffix meaning a prince or leader. It just rolls off the tongue so well! A lot of the language is based on the sound or changed into Lapine to sound more “rabbit-like” and for this I think Richard Adams did a great job. If you’d like to learn more about Lapine, this glossary page is a good one: http://watershipdown.wikia.com/wiki/Lapine_Glossary

I can’t summarize all the characters but the spiritual and out-of-this-world emotions that I felt from things Fiver said and experienced made me really love this book. The way he acted in the beginning to how his character developed into a savant from an obscure little brother made this book just so much better. Hazel’s character developed a lot but his character was predictably changing, I did not anticipate the changes and experiences that Fiver went through. Other characters were so good in their own ways like how Dandelion was such a good storyteller, Bigwig a brave and strong rabbit, and Pipkin who was a shy and honest rabbit. 

I am aware that the book didn’t do a great job of putting female characters in stronger roles but the book’s a retelling of bedtime stories, I don’t think it was meant to address inequality or to comment on the actual lives of rabbits past the aspects that are mentioned in the book.

The past few days, I’ve done some googling into the movie versus the book and how different they are and I’ve decided to not watch the movie because of how many changes will be in the movie and I would rather keep my imagination filled with Richard Adams’ narrative instead of a reinterpretation of it. 

Overall, I loved this book, I would highly recommend it!

Ready Player One, book vs movie

Ready Player one movie poster (left) and book cover (left)

Last week, right before the movie came out, I finished listening to the audiobook version of Ready Player One, narrated by Wil Wheaton. The narration is great, fun, and I felt like Wil Wheaton is Wade Watts! I would highly recommend listening to it if you're up for a sci-fi book, especially if you're a pop culture junkie. So many references, I couldn't keep track!

The movie is a good effort towards taking Ernest Cline's vision from the book and turning it into a movie. I was wondering how the movie was going to be made because of all the licensing and copyright issues with every single thing mentioned in the book. I'm sure it must've taken a lot of back and forth between many many different people but in the end, there was a good deal of pop culture references that it didn't feel like the movie missed out on much.

What the movie did miss, the plot, it was so different that it felt like the book was used as a environmental setting, introduction of characters, but…it completely missed some of the important pieces. Tye Sheridan plays Wade Watts in the movie and I have nothing against him but I think the casting should've gone with a more appropriate actor to play Wade. A husky, nerdy, and maybe awkward kid would've done a better representation of Wade from the book.

What follows might be spoilers if you haven't read the book or seen the movie but I feel like they're important to compare. The movie completely ignored the clues from the book and I think that's a great approach, I felt like it was new clues to solve. I did like the reinterpretation of the Grail diary from the book in which it was just some sort of a written database into an actual building the characters walk into and on top of that, it was also very well digitized and a couple of scenes that were shot in it were truly futuristic. 

Some of the scenes were very well shot and produced, action scenes were new and exciting as the production team had a lot of freedom to work with since the OASIS is a digital world in which they can do whatever seems appropriate. 

Overall, I think it's a fun movie to watch and the book is different enough that they should both be given attention. The movie's interpretation is different enough that I believe it's almost a separate enough endeavor to just share names but not much else. Go read (or listen to) the book and then watch the movie! 

Thoughts on the Spotify IPO

When Spotify announced their IPO awhile ago, I was surprised they were even going for an IPO because of their financials. I'm not going to make this post a deep dive into the financials of Spotify but more on a layperson's thoughts on something like this IPO.

I've used Spotify since the very first day they launched in the US, I'm a huge fan. The product has incrementally gotten better over time, so much that I'm amazed at how well the team has been able to iterate and slowly but surely move the product forward. The music discovery and radio have improved, enough to the point that I cancelled my subscription to Pandora about 6 months ago because I felt like Spotify was close enough in the suggestions that I was wasting my money on Pandora at that point.

Spotify's a good product but I'm not too keen on the business model. Software usually wins when it scales well, the initial effort is huge but over time the number of users start to match the effort and surpass it. Economies of scale work very well for software companies but I think that's not the case for Spotify.

Spotify's biggest issue right now is paying record labels. You can't have popular artists on your platform without paying big record labels. I'm thinking early on it was a side business for record labels but as CD and digital sales have gone down and streaming has become a popular option for consumers, they've started paying more attention to it, money has started rolling in. This means Spotify is at the mercy of record labels, they're going to need to renegotiate better contracts and if they can't they're going to have to pay whatever the record labels are asking. Of course, this is pretty baseless and opinionated but I'm sure it's not far off from the truth. 

As the user base grows, the amount of songs being heard grows as well, this means more money will need to be paid out to the record labels. Ignoring bandwidth and user acquisition costs, the cost of paying record labels increases as users increase and that means it's going against the phenomenon of economies of scale. It sounds to me like Spotify is getting paid by users, taking that money and paying record labels, paying operating costs, and probably not having much money left after, this might not be the best investment to make right now. 

I'm personally waiting to see how they do during their first quarter being public and then I'll decide if I should buy their stock or not. Currently, I own no Spotify stock and I am not affiliated with Spotify. These are all just opinions so please don't take it as facts or investment advice. 

Goodbye Bilo – December 2nd, 2017

Earlier today, we had to put Bilo to sleep.

Bilo Star (pronounced Be-lo) was born in the first week of February in 2015. He was just a few months short of his 3rd birthday. When he was just a few weeks old, my sister had adopted him and in July of 2015, I brought him to live with us in San Francisco.

Here's a video of Bilo and his sister playing when they were just a couple of months old:

Bilo and Heisenberg became friends and they started to spend time together.

Heisenberg and Bilo on the cat perch, July 2015

From an early age, Bilo was always a little unhealthy but once he came to San Francisco, we fed him on time every day and we started to notice his health and playfulness increase. Spending time with Heisenberg allowed him to get stronger.

Bilo in December of 2015

But slowly, he was starting to get less active and eat less. It started getting bad again where you can see he was sleeping way too much and never eating on time.

About four months ago, Bilo started getting food allergies so we took him to the doctor and they recommended a better food and gave him some allergy medicine. Over the next few months, his eating improved a bit but he was starting to get weak again. We had some other tests done when we took him for that checkup, and nothing conclusive was in the lab results so the doctor recommended we keep feeding him properly and paying attention to him.

This past Tuesday, Kristen pointed out to me that he was starting to sneeze a lot and wasn't touching his food at all. On Wednesday, we took him to the doctor and did some more tests, nothing came out of those. The hospital did give him some fluids and some medicine to decrease his pain.

This morning, we took him to the doctor and they told us he did not look well and his health is not going to improve so the humane thing to do is to put him to sleep. I didn't wake up today thinking I was going to have to do this and I didn't know he would be gone so soon.

Bilo was a mysterious and very loving cat, he loved sitting on people's laps and he loved watching birds on TV. I'm going to miss him a lot.

Here are a few songs for Bilo that remind me of him a lot.

The Boxer by Simon & Garfunkel

Our House by CSNY


This was posted on my previous blog but I wanted to keep this post on this blog because it means a lot to me.

A new topic to explore

On my previous blogs and on this blog so far, I have not talked about finances. I think it's a tough topic, to write about and to talk about. I believe most people around me (Silicon Valley) like making money and talking about companies' finances but are afraid or hesitant to talk about personal money/finances in general. This is anecdotal but over the past 5+ years, I've noticed this being the case with 9/10 people whenever we've gotten slightly close to the topic of money.

This is understandable, people in the US have always been a bit closed up about personal finances in my experience. This article sums up some thoughts about the Money Taboo, the idea that people shouldn't talk about money publicly with most people. 

The problem

But, having a taboo about something that's not wrong to do is incorrect, in my opinion. It leads to misinformation, ignorance of better options, and most of all, it's not good to stay quiet about finances. 

Money is a weird thing, it runs the world, for most people it runs their lives. We can't be lying to ourselves that we don't get up to go to work because money is involved. Even if you love your job, you'll take the bad and ugly days because there's money involved. And for this reason, I think there's some weight to the opinion that you should talk about money.

Another problem with this is debt, Americans don't know how to deal with debt and I believe it's also due to the lack of talking about finances. Debt is complicated and expensive, the latter being the primary reason for the former.

Exploring

Money is complicated, money is powerful, and money runs this world. But to get an understanding of your personal finances, getting comfortable talking about this isn't going to require you to go through college. Everyone's situation is different but there are some basics to get right.

Of course, there's this notion passed around "don't live beyond your means". This is good but it's halfway there. Of course, don't live beyond your means, but  where is that line where you can decide it's time to not spend this money? This is also tough from person to person but I think the first thing to do is get to your monthly spending below your monthly income. This would be more clear to me and everyone else if someone said "don't spend more than 80% of your paychecks, save the rest for various different things". But…it doesn't roll off the tongue as nicely.

When there's silence about finances, it leads to higher prices, it leads to desperate situations, it can also lead to confusion and fear of talking about money. And one of my nightmares is when a new-grad moves to Silicon Valley and gets a nice salary and then turns around and pays a crapload of their paycheck towards rent. If that's not living paycheck to paycheck, I don't know what it is.

I hope to use this blog to share some techniques, approaches, and concepts related to finances, in case they might help you too. This will help me talk more about money, publicly and hopefully will lead you to do the same.


Please let me know what you would like to talk about and learn more about related to finances.

Building a Chrome extension using Vue.js

I have been using Vue.js for awhile now, and when I started working on the Coins extension I wanted to be able to quickly prototype and find a build process that makes it really easy for development and deployment. It was fun creating the Coins extension using the power of Vue.js and I wanted to share what worked for me.

Here's the template I created to get started: vue-chrome-template

Overview

This template includes a webpack config that will build to local and production. In this case, production means that it will be ready for the Chrome web store. Vue.js extensions are easy if you have the build process figured out (see webpack.config.js in template). 

There's a manifest.json file that you'll want to edit to set up your extensions details for Chrome. Currently, it contains only a few required fields.

Getting started

Follow these steps to get your local development environment up and running:

  • Download or fork the template
  • Run npm install
  • Once npm installs everything properly, run npm run dev
  • If you'd like to test the extension, run npm run build, this will build into a folder called extension/. Load this folder in Chrome's extensions page.
  • (Optional) Use nvm to manage your node version

Tips for development

When working on your Chrome extension, I suggest using the pre-configured npm run dev command and just testing it inside a regular tab. You can access it at http://localhost:8081 and it'll refresh as you make changes too. 

When doing local development, you'll want to make sure to put everything inside the src directory in which the existing Vue app lives.

Use a fixed width in the app when doing local development, I usually put a 1px border around my app so it's easier to tell what the size will be. 

Make sure to set your app's details properly in manifest.json and you'll notice the template is set up for a browser action (Chrome dev docs).

Building for Production

When you're ready to deploy your app to the Chrome web store, you'll want to run npm run build and then zip up the extension/ directory (Chrome requires that all extensions are uploaded as a .zip). Whenever you're ready to upload, Chrome will require that the extension have a different version than what's been uploaded before


Please leave feedback and questions as comments below. This is one of my posts that's a tutorial and I would love to get constructive feedback. 

Starting work on a custom theme

I really like the way Medium posts look. I think the Medium team has done a great job spending time on making sure a post looks its best no matter what the content it contains.

When I was setting up this blog, I looked around for any theme that was just barebones, the current theme I'm using is called Integer by ThemePatio. It was one of the few that I found that doesn't only look Perfect™ when looking at the preview. Most themes will look very good when you're looking at a preview of them and they're not designed for regular blogging, they're designed for cookie-cutter blog posts. I think this is unfair to the people looking at the themes since it means people will be oversold on a theme and when they install it, it'll look like it's missing something.

I am starting to work on a custom theme that I'm going to be making available. It's called Free Press, you can see it on github here: usmanity/free-press. 🗞

The goal is to keep the theme very minimal, maybe take a few design hints from Medium but overall stay the course of simplicity. 

My goal for Yelp in 2018

In the past, I’ve never written about Yelp, restaurants, and even food on my blog. But some time in 2017, I had this thought that I should write reviews for places I’ve visited.

But last year, I hardly wrote any reviews. This year, I have been on a slow but consistent flow to write reviews on Yelp.

My goal is 127 reviews by the end of the year. Why 127? I started the year with 27 reviews, I think setting a goal of 100 reviews this year should be achievable.

As of this writing, I’m at 42 reviews.

There are some basic stats given to Yelp users on their reviews and photos, views in the last 90 days. You can see this by going to your profile on Yelp. Once a month, Yelp sends an email with the last month’s stats. I’m sitting at around 10k views of my reviews in the last 90 days and about 15k views of my photos. These are pretty good compared to anywhere else I post anything.

I will be cross-posting some reviews but I will try to keep most of the reviews on Yelp.

Introducing Treefingers

When I was writing the code for the laravel version of my blog, I had created a repo, usmanity/treefingers, and I used it to keep track of my changes. 

I was really excited when I had started working on it so I decided to create a brand for it but it never was public and so now I'm going to make that brand part of this blog.

Treefingers comes from a song by Radiohead. You can hear it here: Treefingers by Radiohead (Spotify) .

I wanted to base the brand off something related to trees and fingers, there's no real meaning for the word and the song so I'm interpreting it myself.

From the sun to the trees

Before I came up with the final design, I went through a couple of iterations. My initial representation for my blog was going to be the sol character in Unicode: ☉ 

And based off this concept I created the following:

Some were more for the mix of colors and some just because they represented the unicode character in a bit more detail. Then I wanted to keep going and trying to experiment and below are some concepts that now look ridiculous but I was just playing around at this point:

These represented something but not what my blog was, I think "simple solar"  would be a great one for a blog about space or something. The "unicode characters only" version looks weird now but at the time I thought it looked like a spaceship.

Below are some more but after these come the final ones.

After trying all these, I decided to step away from my computer and I wanted to rethink about what the name "Treefingers" meant and how I can properly represent it.

Without being too assuming, unaware, or insensitive, I did some research on a character that I had seen before, it's a CJK character for half a tree trunk in CJK languages (Chinese, Japanese, and Korean). It looks like this: . As far as I can tell, this character doesn't directly translate to anything except.

Treefingers

So below are the final ones that I had to pick from:

As you'll notice, it's the ⺦character on it's side, this is to make sure I'm not directly using the character and modifying it enough to be its own thing.

From here on, you'll see this as the branding for this blog.

Hello from Treefingers

Today, I'm moving away from my personal blog that was built by me using Laravel. I'm using WordPress going forward, there are a couple of reasons for this but before I get to those, I'd like to do a review of how I got here.

Before this

It's been more than 10 years now since I set up my first blog. When I was high school, I wanted to just find a place to vent or write about anything going on at school, it was more like a personal journal that nobody read. When I turned 18 and started paying for stuff, I bought usmanity.com and started pointing things to it. Since I was rarely writing and I had a crappy homepage, I just decided to point my blog directly to www.usmanity.com. This changed when I realized I wanted to write more and my blog posts weren't going to be the most relevant thing for someone if they're looking for my homepage.

First, I tried blogger, then I moved to tumblr. On tumblr, I went through a lot of internal debate about what sort of blog posts I should be posting. I still think tumblr is a middle ground between twitter and a full blog. It made sense when twitter was limited to 140 characters and mobile apps weren't that great. But I realized that tumblr is a great place if you like reblogging and sharing interesting things but not if you just want a personal blog that's filled of random information. Then I moved to Posterous, mainly because it was new, cool, and super simple. This didn't last long. I abandoned Posterous as it was also a great platform where I couldn't write much on. For all these, I was to blame.

By 2014, I had been doing this so much that I was basically addicted to switching my blogging platform every 6-12 months. In 2014, Ghost came out and they announced they were going to be on DigitalOcean, and because of this, I decided it was time I moved to my own blog so I would have control over it. This was fun, you can see an archived version of this blog here: Wayback Machine. Ghost had promised a lot of features by v1 didn't deliver all those but still, I wrote pretty actively on this one. I posted some photos, I tried to write some things going on but mostly just intermittent updates about me.

Personal blog built by me

In 2017, I was learning more about PHP and I had been looking to practice Laravel so I decided, why not build my own blog using Laravel so I can learn + add whatever features I wanted. The initial setup and work to get the blog off the ground took me a weekend to write (Laravel helped a lot). This was probably the first time I was really interested in my blogging since I had started.

I was writing more often. I wanted to add pagination, it took me about 2 hours from when I decided I wanted to add that to getting it on the live blog.

But building your own blog means you're going to have to start testing everything by hand (if you don't have tests written) and then you'll be responsible for updates, bug fixes, security patches, and anything else that comes up. This led me to a big problem, I still haven't figured out a good deployment flow. This meant that I had a tough time updating the blog whenever I made code changes to the blog code. As this problem loomed over my head, I got less and less motivated to write.

My favorite post I wrote on the laravel blog was about my late cat Bilo, I'm going to be republishing that after this post to make sure it's always available to read. It took a lot of courage for me to write that post. 

So, why WordPress now?

Hopefully, the review gives you a good idea of different issues I've had with many blogging platforms (including my own). And now, I want to explain why I chose WordPress. Throughout the whole 10 years that I had some version of a blog, I resisted using WordPress. It always sounded too much for my purposes. I had been believing that and I was didn't want to be convinced that it could fit my needs. And because I never installed it and tried it, I didn't want to think I was wrong.

In January, I made a post on Medium and it was way more popular than anything I had posted on my own blog but it was an informational post. My blog is about thoughts, opinions, short snippets, quotes, songs, photos, and anything else I want to post. In the last few years, my social profiles have taken up a sort of specific categorization that's cultural and limiting. For instance, Medium is probably the best platform for sharing knowledge, company updates, or posting opinions. But, it's not the best to post a short update (think a twitter), it's not the best for posting one photo of an event (like Instagram), and it's definitely not the best to have discussions on (like Reddit, or personal discussions like Facebook). But it is a great platform for posting general information that can become part of a large set of information. I rarely see people post on Medium about things going on in their lives.

I want to use my blog as a platform for writing about anything and I hope if you're following my posts, you don't mind the occasional photo with no caption or a snippet instead of a well-organized and articulated post.