Thinking back to 1919, a 100 years ago today

I was recently reading about an event that shaped the future in which I live in and was born in. A hundred years ago, what is currently India was occupied by the British crown and producing the highest amounts of tea and other resources for the crown. I am not a historian but I wanted to highlight an event today, the Jallianwala Bagh massacre. Here’s the wikipedia page on it:

Jallianwala Bagh massacre on Wikipedia

The massacre was a horrific act of mistreatment that’s concentrated in one day but was not uncommon in the British Raj. The native people were treated like servants, slaves, or less-than-human just because they were natives. The events of the massacre are not for the weak of heart, because the British officers took no mercy and later were not given any consequences.

Revolutionaries like Bhagat Singh and Lala Lajpat Rai are not highlighted as often in the Western world but their actions did have strong effects on removing the British from India as they showed that even with a massacre like this one, they would continue pushing toward a free and independent India.

This is an example of the inhumanity that took place just 100 years ago and we forget to think about how peaceful of a world we live in today and I am thankful for each day that brings everyone closer to living peacefully.

Bookends update – April 2019

It’s a beautiful day in San Francisco, I got up and made some coffee today. I wrote a short tutorial on how to serve Vue.js apps through Github Pages and then I stepped away from the computer for a bit. But now, I’ve been sitting at my computer for about 2 hours and I have barely anything to show for it except a list Stack Overflow answers that were the correct answers for the questions but my problem was not solved by them.

So a few days ago, I finally got book search and user accounts working on Bookends. You can check it out here: So after this, I wanted to try something else. I want to be able to track a book when I’m reading it and update the progress as I go on and mark it finished at the end. There are a few new things for me to consider, one is making a composite table of users and their books, this proved to be a simple enough exercise thanks for Sequelize.

Next, I wanted to start tracking through the UI. And this is where I’m just flabbergasted! Okay so this is my route:


Simple enough, so I tried it in Postman, works as expected. I try accessing the page and it works as expected. Then I tried to put it on the Bookpage so when a user clicks “Start reading” the book gets tracked…

Well, I thought this would work but it didn’t. And well, fair enough, our good ole pal CORS was what I thought was causing the issue because usually that’s what messes up local dev if you’re serving Vue.js on one post and the server on another port. Well, after spending about an hour trying differen things, cleaning up my routes and looking at each character in my URL to make sure I’m not making a dumb human mistake, it turned out that it wasn’t the issue.

The issue was that for some reason, express routing doesn’t work past the 2nd nesting…I’m not even sure if that’s a legit problem. But at some point, I decided to try this URL instead:


And bam! No cors issues, no network errors, and everything worked. 😐

I’m frustrated with some basic things about Express.js and Node.js together and I’m wondering how long my patience will last. The small jolts of energy I get from getting something work are cool but I don’t know when the negatives will outweigh those.

Serving Vue.js apps on Github Pages

I wanted to share a pretty simple setup on how to serve a Vue.js app using Github Pages. I’m writing this because I had to search around online for awhile before I stumbled upon the Vue.js docs and then had to play with some settings in Github.

For this exercise, I’ll use a sample project you can find here:

So let’s start from the beginning. Let’s use Vue CLI to create an app.

  • Install Vue CLI:
  • Create an app using the above (instructions on the above page): vue create sample-vue-app
  • When you’re prompted with the options for the app, you can choose whatever you want, I went with the default (eslint, babel) setup.
  • After the app is created, cd into the directory and then run npm run serve. If you see the following page, you’re good to go:
  • At this point, let’s configure the vue.config.js file. For reference, I’m using this documentation to set this up:
  • Your config should look like the following
module.exports = {
  publicPath: "/serve-vue-app",
  outputDir: "docs"
  • Save the file and run npm run serve. You should see the localhost URL change to include the publicPath as part of it. This is one way to confirm it’s working.
  • Next, we’ll set up github to serve this. Commit the files and push up to github.
  • After you’ve pushed up the files, go to the repo’s settings
  • Look for the “Github Pages” section and you’ll see something like the following
  • You’ll see the option to serve from the master branch but not from the “master branch /docs folder”. This is because we haven’t built anything for the app.
  • To fix this, just run npm run build in the app folder on your computer.
  • After the build runs, you’ll see a new folder created (it should be called docs).
  • Add this to git, commit and push up. Then you’ll see the docs option available:

After you select this, give github 2-3 minutes to finish building the page and then it will have the URL in the header or just go to whatever URL you configured and keep refreshing 😛.

That’s it, you’re done! Please leave comments if you run into any issues or caught an error with my steps. Thanks!

With love from Novigrad

Novigrad docks

This is not a game review but more of a collection of thoughts about a game in a very subjective and personal way. This contains spoilers about the game!

For this past Christmas, Kristen surprised me with an Xbox One X and I also got The Witcher 3: Wild Hunt gifted to me.

At first, I was really excited to play Battlefield V on the Xbox, since the specs are better than PS4 and videos of the gameplay looked very nice on Xbox compared to PS4. But this excitement quickly died down as I realized that BFV isn’t what I expected it to be. For the month or so I toiled through BFV, I didn’t even touch The Witcher 3.

I had gotten the recommendation to play the Witcher series from my brother and a couple of friends. I even listened to the soundtrack before I played the game because I didn’t buy into the hype.

Well, the hype had died down a long time ago, since I started playing at the beginning of 2019 and the game had come out in 2015. If you read any game reviews between 2015 and 2017, you would’ve seen The Witcher 3 mentioned and still I didn’t care for what it was. This is mostly because the last major game like this that was hyped for me was The Last of Us which is a great game but I didn’t like it.

Well, on to the actual game and what this post is about. I am now about 3+ months into playing the game and there have been a couple of weekends where I spent most of the weekend in front of my TV playing Witcher and if I wasn’t playing it, I was thinking about it.

The game has such a rich gameplay and story that I couldn’t get my mind off of it. There are tons of characters that are developed so well, you start to miss them if they’re not in the game for some time.

Geralt is the best developed game hero I’ve ever played with (Master Chief is second). His personality is dynamic yet deep and interesting. The concept of a witcher in general is great, I didn’t know before the game about the word witcher but essentially it means a male witch (even though that’s a wizard). A witcher is like a superhuman because early on in their life, they go through training to “transformed” or changed into a witcher. Witchers are also longer living than regular humans so Geralt is estimated at somewhere between 90-95 in the game.

The game is based off of books and the whole of the witcher world is set in the 12th century. It feels very medieval and in a very accurate way, in my opinion. The world isn’t the brightest or happiest places, there is war, disease, witchcraft, many different kinds of monsters, haunted places, dark swamps, evil spirits, madmen, power hungry kings, and many other things that go very well with a medieval world.

There are times when you’re so entrenched in something you forget all that’s around you and for the witcher, there are many elements that play with this. Perfect game engine, game play, and obstacles are one thing. The graphics are great for being an almost 4 year old game but the very uniquely amazing thing that this game has is the coupled music. The soundtrack is a work of art on its own but within the game, at the perfect moment, the music just adds to the overall game play so much more. There are some songs that come on when you’re in the swamps and dark forests, the long lonely caves, and the elven ruins that will haunt me for awhile. I won’t share those as there are a lot of those from the official soundtrack.

Before I go on, the game is focused on finding a girl named Ciri who is like Geralt’s goddaughter and also a very important person to the world of witcher. With her, the end of the world is coming. She is being hunted by group of evil “people” (idk what they really are) called the Wild Hunt (where the name of the game comes from).


There is one thing to say that the Witcher universe is rich in jokes, jibes, natural dialogue, deep cultural expressions, and many other things that aren’t required of a typical game but it goes a step farther by introducing a card game within the overall game. This card is called Gwent and you can read more about its rules here:

At first, I was aversive to playing Gwent as I wanted to get through the main story quests as quickly as possible but this all changed with the Kaer Morhen quest. More on the quest later. Gwent is a simple card game where there are unit cards and special cards, unit cards have strength that helps you fight against your opponent’s unit cards, special cards change the weather or strength of your unit cards. At first, I was really bad at the game but I quickly started realizing the basic strategies until I got to a point where I was winning almost every game if I tried to be strategic about it.

Kaer Morhen, Novigrad, Velen, et al.

Geralt and Vesemir in Velen (image credit)

You start the game in Velen aka “no man’s land” which is a large rural area filled with various kinds of monsters, most pretty weak (since its where you’re starting out). Velen is my least favorite since it’s so depressing, scary, and dark all around. When I started out, I didn’t know about Novigrad or any other places so I went along with it and as most games go, you kind of have to get through the first few levels and quests to make sense of the world you’re in. After I found other places, I didn’t like going back to Velen. There were a few days when I played primarily in Velen, doing the contracts and going through the swamps, dark forests, and empty villages. It’s so well done that I still get goosebumps thinking about some of the weird wraiths that would pop up when I would be going through an abandoned village.

Kaer Morhen is the place where witchers used to train, it’s a fortified castle with not much going on in it. Think of Winterfell from Game of Thrones with a lot less people. You’re taken to Kaer Morhen once when you start the game (basically a tutorial) and again when you find Ciri. Without getting too much into the actual story of the game, Kaer Morhen to me is like an old home of Geralt that is now long abandoned by most people. The world of the Witcher is an empty and lonely place but Kaer Morhen has an atmosphere of long forgotten mightiness. Vesemir is probably the person who trained Geralt and he’s also the caretaker of Kaer Morhen. Spoiler ahead, skip to next paragraph if you don’t want to see the spoiler. When the battle of Kaer Morhen happens after finding Ciri, this is about 3/4th of the way into the main quests of the story, you are fighting the Wild Hunt and amidst the fighting, you’re surrounded by most of Geralt’s companions from the rest of the game like Yennefer, Triss, Zalton, etc. Amongst these is Vesemir who isn’t a major part of the fight until the end when Ciri is almost caught by the Wild Hunt. At this point, some guy from the Wild Hunt proceeds to kill Vesemir and Ciri is outraged, and so was I. I was very saddened by this. It was so unexpected since Vesemir is an all around good guy!

My favorite place of them all is Novigrad, a medieval city full of many different characters. Merchants, thugs, beggars, and drunks all around! The city has a perfect Kings Landing feel to it and especially since it’s the city part you get to experience more than the palaces and grand buildings of any kind. Novigrad is a big city (according to medieval standards), it has tons of peoples and a lot of things happening in it. About half the story missions are here. You meet up with previously met friends like Zalton and Dandelion. Dandelion is a flamboyant and funny guy who runs an inn, I loved going in here just for the music. In Novigrad, you also can find the best weapons blacksmith. There’s the Hierarch Square in which you can find the people of the Eternal Fire preaching to city dwellers.
Whenever I did a mission that required me to be in the swamps of Velen or the caves of Skillege, after finishing the mission, I would fast travel to Novigrad’s Hierarch Square to just feel “safe” even though it’s all a game, the music, people walking around, and some times the sunny sights would be so much better than wherever I had just left.
Geralt can get a haircut, drink some beer, buy food to eat, play gwent, and so many more things in Novigrad, I never wanted to leave it.

The last place you visit is Skillege. A group of islands that reminds me of the roughness of Viking era settlements and superstition to match the time period. It’s a desolate place with a lot of cloudy, rainy, and snowy days. Geralt travels to Skillege in search for Ciri and ends up meeting a lot of interesting characters along the way, like the future queen of the isles who ends up befriending Geralt and eventually helps me out here and there. There are different traditions on Skillege, there are clans that only abide by rules set on the islands and not on the mainland. I liked playing here for a bit but then I would resign back to the mainland as traveling from one small island to another was a depressing experience since most islands were nearly abandoned with tales of ghosts, wraiths, and other creatures haunting each new place.


After you find Ciri, there is a little of the game left in regards to the main quests and as I wound down the game, I felt a bit nostalgic and a connection I’ve never really felt with another game before. It’s an insanely well develop game that contains intuitive controls, beautiful environments, amazing storyline, and so many small details I couldn’t get over it. This game was release almost 4 years ago (May 2015) and I’m raving about it in 2019! That’s an amazing feat for a game released in the current gaming world. Most games will have a long lifecycle but will require constant updates and DLCs while The Witcher 3 only had some initial expansions, not much to keep people coming back and still there’s a strong follower base.

I would recommend playing this game if you’re looking for a casual yet fun game that requires some time, because you can’t finish it in one day. I played over 60 hours in total by the time I had finished the game. That’s a lot for me. The only other game I’ve played more hours on is Battlefield 1 with about 200 hours.

There’s a new Netflix series coming out so be sure to check that out too!

Timeline by Michael Crichton


I just finished listening to the audiobook version of Timeline by Michael Crichton, narrated by Stephen Lang. It’s another novel I had no idea about going in and the last one I did that with was Dragon Teeth also by Michael Crichton. I was blown away by Dragon Teeth since it was so engaging and it felt like an odd prequel to Jurassic Park even though it had nothing to do with it.

Overall, this has to be one of my less liked book by Michael Crichton as the world building in the beginning was pretty great, especially the first few chapters but eventually it became a bit too sparse for my liking. I like to listen to fiction as audiobooks because if the book contains a lot of world building, it feels very immersive to me. This did feel like that at first but as the novel progressed, especially when the characters were in a new environment, the world building had subsided too much for my liking.

If I was to recommend books by Michael Crichton, this wouldn’t make the list. ☹️

Setting up Fathom for all my sites

So yesterday, I was learning about how nginx works and how to serve multiple sites (web apps even) from the same machine at different URLs. I wanted to do this because I don’t know much about nginx so I thought of it as an experiment to try.

So after I got it working, I remembered that back in February, I had tried using Fathom for basic analytics as it’s not as deeply detailed as Google Analytics. So I went ahead and did the 1-click install then I realized that the install won’t work as it’s not available for multiple sites. How did I come to this conclusion? I had missed a step during the initial setup that asks you if you’d like your analytics to be public or password protected, and because I didn’t care about the analytics being public, I selected that. This shortcut me to the end of the setup and I was able to check out the analytics. Then I realized, I could only have one site, and that wasn’t what I wanted.

Well later, 2-3 hours of messing around, learning a bit about nginx and other things, I come to a point where I had multiple instances of Fathom running on a single DigitalOcean box and I came across some issue which I thought was worth googling, this then led me to a Github issue which revealed to me that I was logged out the whole time on my original 1-click install.

So, I turned around and did the 1-click install again. And this all to say that I’m moving away from Google Analytics and trying to use Fathom analytics now. 😊

Bookends update, March 2019 #2


I’m standing here at my mac mini, with my head in my hands, frustrated yet laughing at myself. It’s been more than 3 months or whatever since I started working on this project and each time I finish working on a small feature, a bigger issue arises.

A couple of days ago, I rewrote the BookModel which was initially tightly coupled with the Amazon response but I realized I should make it less reliant on Amazon and more on the local cache I had already set up. Well, today, I was working on it and I realized it was so stupid of me to rely on Amazon at all. They’ve throttled my request for book search even though I was making something between 10-20 requests an hour if that, and all while doing development so maybe 200-300 request every week.

Well, I don’t want to just rant about Amazon. I have decided to start using OpenLibrary as it’s available to use and I will just need to update the BookModel slightly instead of rewriting it this time.


If you’d like to checkout Bookends right now, you can go to It’s not ready to be used by you’ll see updates from me here and there.

Bookends update, March 2019


So over the past few months, I’ve been trudging along slowly to add basic features to Bookends. If you haven’t read of my other posts, Bookends is a project I’m working on by myself to create a book tracking and discovery website. There are many reasons as to why I’ve been making slow progress but the main ones that I’ve noticed, I wanted to talk about in this post.

Node and Expess.js are great for small projects as I’ve built a couple of small applications of some sort with them, an example being the URL shortening service: Go. It was a quick and fun to build but there was something else that I didn’t realize until I continued adding common features in Bookends. When I started adding models and talking to the database, I had to rely Sequelize. But this isn’t a complaint against the tools, it’s mostly the ecosystem, I am often able to find a package for something in node but there isn’t a framework that dictates some sort of standard. Building an app comes one step at a time and one layer at a time with Node.js, unlike in other ecosystems where the conventions come with the framework.

Well, enough ranting about that. I’ve been adding some features to Bookends and I’m hoping to finish the book profile soon to launch the beta for people to try.

A Short History of Nearly Everything by Bill Bryson

I just finished listening to Bill Bryson’s A Short History of Nearly Everything. I started listening to this after finishing his book about Australia called In a Sunburned Country which I wrote about recently as well.

I really enjoy Bill Bryson’s style of writing, it feels approachable to me. Without spoiling much of the book, the book is a high level overview of how “everything” came to be. Whether it’s the book you’re looking at or the audiobook, the length of the book in either case is not long enough to justify he would be able to describe nearly everything. But that’s the caveat, it’s a short history of nearly everything.

I finished the book with a sense of knowing more about some aspects of where the universe came from, how life came to be, and how humans came to be. It’s satisfying to be able to get that information in one place.

I think compared to In a Sunburned Country, I didn’t enjoy this book as much because it didn’t have the Bryson travelogue writing style which I really enjoyed, especially in audiobook form. But still, if you’re looking for a fun to read/listen book, this is a good one!

In a Sunburned Country by Bill Bryson

I recently finished listening to Bill Bryon’s In a Sunburned Country. Narrated by Bill Bryson himself. It’s a fun listen, I haven’t listened to or read books that are formatted like a travel log before so this was my first time doing that. It’s very calming and pleasant to listen to someone just talk about a place they visited and throw in some facts about it. The combination Bryson’s writing and narrating it
himself made the book that much more enjoyable.

I started out looking for a book to listen to while riding on Muni for my short commute. Quickly, I realized that the book is a great summation of facts about Australia’s history and current (or current in 2000) affairs.

The book covers Bryson traveling from the Gold Coast all the around Australia ultimately ending near Perth on the south western coast. He covers a lot of topics I had not thought about, like what’s in the middle of the huge continent or how the people are.

He meets with some friends on his journey who take him to different parts of Australia, some great and some avoidable places. A fact that Bryson mentioned repeatedly, the country is huge. There have been many who have gotten lost in the middle of Australia’s Outback and never returned. A lot of Australia is still unexplored, this is kind of a nice thing, as it seems there are no parts in this world that are unexplored in the 21st century.

One thing I really liked that he covered was the history and status of
aborigines in Australia. Historically and currently, Aboriginal Australians are disadvantaged and often ignored by the Australian government. This has been evident by the misunderstood initiatives that led to things like the Stolen Generations. An inhumane act of authority in which the government started forcibly separating Aborigine parents from their children in an effort to “civilize” them but it led to a lot of orphan children not having a connection with the non-indigenous Australians as well as not really know where they came from. This was happening from 1905 all the way into the 1970s.

An Aboriginal encampment, near the Adelaide foothills, 1854 (By Alexander Schramm)

The situation for Aboriginal Australians has not improved much since the publication of Bill Bryson’s book. You can read more about recent programs that were aimed to change this: Northern Territory National Emergency Response and Stronger Futures policy.

My next book that I’m going to listen to Bill Bryson is A Short History of Nearly Everything. I’m thinking Bill Bryson might be a new favorite to listen to while walking and commuting because his voice and writing go so well together and the books are not too serious and missing a few seconds of something won’t affect what the book has to offer overall.