Wearing dice on my head since 2008 Programmer, engineer, scientist, critic, gamer, dreamer, and kid-at-heart. Randomly amazed.

roytang.net

last update:

I’m not much for public performance. But sometimes I think about doing some stuff that involves some level of public performance. My examples for this post are: game streaming public speaking standup comedy Public speaking and standup comedy are basically the same, and might be interesting to do (standup seems more fun). Like many people, I used to have a mild fear of speaking in front of a bunch of people/strangers, but as I’ve gotten older and cared less about what other people think, this kind of faded away.

I used to be super easy to goad into a debate. It’s a clear weakness to my projected DGAF attitude actually. Well, the main thing is that I enjoy lively discussion, even though it can often lead into chaos. I soured a bit on online debate during the 2016 election season though. Too many people I knew getting butthurt or reacting poorly. Someone I knew since high school unfriended me over some imagined slight even.

Being Chinese

Today is Chinese New Year. It’s something my family celebrates. I am of course, ethnically Chinese, but I don’t talk about it much. When asked, I will often reply that I identify as a Filipino, not as Chinese (maybe slightly more relevant these days given our disagreement with our largely populated neighboring country). I don’t reject the heritage or anything - but I’m not particularly steeped in it either. I don’t speak the language (beyond a few token phrases).

I saw the following question on Twitter: People who write a lot of blogposts… How do you know a post is done? — Andreas Klinger ✌️ (@andreasklinger) February 2, 2019 “People who write a lot of blogposts… How do you know when a post is done?” Having written daily posts since October, I feel like I already qualify for “People who write a lot of blogposts”, but I realized I don’t have a straight answer aside from “When I run out of things to say”.

A while back I started a Twitter trivia bot as a weekend project. That bot is still up and running on Twitter, you can check it out there! But today, I thought I’d write about the answer-checking mechanism used by the bot. It was a bit interesting to me because it was the first nontrivial use I had for Django’s unit testing framework. I’m not too keen on unit testing web functionality (something I still have to learn), but this seemed an appropriate first use of a unit test framework for several reasons:

I picked up Slay the Spire during the last (Winter) Steam Sale, not really knowing what I was getting into. I had heard some good things, but I didn’t really know much other than it was a roguelite where I had to go through a dungeon. But it was cheap so I took the dive. I was pleasantly surprised to find that not only was it a roguelite, it was also a deckbuilding game!

Trust

Sometimes I stop and think and I’m amazed at how much trust we place in our fellow human beings, many of them strangers, enough so that society is able to function. Some examples of what I mean: My mom pays for thousands of pesos worth of groceries and doesn’t bother going through the receipt to make sure the cashier punched in the right items We order food in restaurants that is cooked and prepared outside of our view and trust that they are prepared appropriately and with proper regard for health standards I take naps in a taxi cab assuming the driver won’t take me to a secluded location and try to rob me We cross the street trusting that drivers are sensible people who won’t blow past traffic lights and suddenly careen towards us We go to work and trust that our coworkers will do their thing and our work will get done and the company is going to pay us We order stuff online and assume that the order will be fulfilled All of this, in spite of the fact that we know there are humans who exist who are incompetent, unreliable, or even downright malicious or sociopathic.

Some Youtube channels I’ve been enjoying recently: ComicTropes is a weekly show that does deep dives into various mainstream comics titles, and often includes the background history of characters and creators, so very interesting stuff for comic book nerds. GameMaker’s ToolKit talks about video game level design topics. His series “Boss Keys” does a deep dive into Zelda dungeons and analyzes them based on criteria like linearity. His level design analyses are strongly based on systems and gameplay and how they affect the player experience.

Between the ages of 10-12, my reading diet consisted almost exclusively of the teenage-targetted detective series The Hardy Boys. For me, the term invokes the names Frank and Joe before the Matt and Jeff of WWE fame. We had a fairly wide collection of the blue-hardcovered books of those days. And I believe I made the effort to read every single book in that particular series, through borrowing and such. I think I was successful, but I can’t be sure.

Dark Mode

tech-life

When a friend recently posted a screenshot from his discord to one of our group chats, most of us jokingly chastised him for having the default light-colored theme, asking if it didn’t blind him when opening up the app at night. I remember when I started working, I told a fellow software dev that it was a bit weird that he liked to use a dark theme for his IDE, telling him it looked like he accidentally did “Select All” on the text for some reason.

Some things I’ve been watching lately, aside from the usual TV shows I follow: Bumblebee only came out over here in January (thanks to the usual MMFF shenanigans), and I decided to watch it on a whim. Pretty decent soft reboot, read my spoiler-free review over on the Tumblr The first half of Young Justice Outsiders is out, and it’s pretty good. Focus is back on a smaller group after the larger team in YJ season 2.

I always wish I had kept screenshots of what my blog looked like back during each of the myriad theme changes I’ve done over the years, as a kind of timeline of how my website aesthetic has evolved (or gotten worse, whatever). I recently found the stylesheets and such for my old django-powered blog from circa 2008-2009, and recently there’s been this “10-year challenge” meme where people show how they’ve changed over the past 10 years.

Life Isn't Fair

Quote 1: “The world isn’t fair Calvin” “I know Dad, but why isn’t it ever unfair in my favor?” – Bill Watterson, “Calvin and Hobbes” Quote 2: “If you expect the world to be fair with you because you’re fair to them, its like asking a lion not to eat you because you don’t eat lions.” (Unknown source) We accept that the natural order of the world is inherently unfair.

Sometimes I see posts like this: and I can’t help but feel like it’s at least a little bit applicable to me. And I start to wonder whether maybe I’m suffering depression? Or maybe just a little depressed? The question only lasts in my head for a moment. Despite my sometimes bleak outlook for humanity, I still consider myself a largely optimistic person and I understand life is generally good for me at least (at the moment).

The first trailer for Spider-Man Far From Home dropped last week. I used to pretty hyped for superhero movie trailers, but I haven’t bother watching this one yet. MCU still has two more movies coming out before this one, and I’m already hyped enough for those, I don’t think I have hype to spare for a third one. My brother was complaining to me about the trailer, saying he was spoiled about some elements.

In a recent episode of The Orville, captain Ed Mercer of the Union is stuck debating with a member of the Krill, a fanatic and xenophobic race in conflict with Earth’s multi-species Planetary Union. He says: “Look, from what we’ve seen, when planets first achieve space travel and they venture out into the galaxy and discover that they’re just one single species among a vast diversity of lifeforms, they usually react in one of two ways: they embrace and adapt to the fact that they’re no longer the center of the universe, or they ratchet up their xenophobia.

One of my pet peeves is people coming up to me cold/unsolicited and trying to sell me things: People who try to grab your attention or hand you fliers in a mall are the popup ads of real life — Roy Tang (@roytang) January 16, 2019 Like my tweet above says, it’s like advertising spam in real life. I’m sure it bothers other people too, but it annoys me a bit disproportionately.

I pass by the Quezon City Hall every so often, and I’ve always been curious about the QC public library they have there. It got a bit of press a while back about how it was a nice place to hang out (for a government institution at least), so I had a todo list item about checking it out. Well, last week I did! I passed by on a weekday afternoon about 4pm after running some errands.

Last week I was able to tick an item off my bucket list: I played chess in the park with strangers! (Yes, my bucket list items are that level lol) Achievement unlocked: play chess in the park with strangers (and lose badly) — Roy Tang (@roytang) January 15, 2019 When watching TV/movies, I was always fascinated by those scenes where people are in the park playing chess and I wanted to play chess in the park with strangers too.

A friend was worried and jittery about an event he’d been preparing for a while now. He just wanted it to be over and things to not go wrong. I told him not to worry, that he’s already done the best preparation he could and that no matter what things will surely work out. It’s easy to fall into the trap of anxiety, overthinking things that might go wrong, or things that might not go according to plan, and so on.

I was at the mall last week and I decided to watch the new Bumblebee movie (it came out late over here because reasons). Here’s my spoiler-free review. As the link says, I’ve been a big fan of Transformers since I was a kid, so I thought I’d talk about that for a bit. The 1980s cartoon obviously, though I think only the first two seasons of that aired on local TV.

I’ve been working with Javascript for more than a decade. Last week while helping another developer debug a problem, I had to Google how to check if an element exists in a Javascript array, something superbasic, that one would expect most newbies to know. I’m sure I Google some superbasic thing at least once a week. It’s not embarassing or anything, it’s a common occurrence. I’m surely not alone. Just last night a tweet about this crossed my TL:

After yesterday’s post about Konmari, I thought about some stuff that brings me joy, some of them despite my better judgment: learning new things. This is a bit uncommon I guess, so it makes me a bit of a nerd. Luckily nerds are cool now, or something. Okay, this is super positive I guess. being argumentative. I love a good debate. However, since the 2016 election season, I’ve cut back on this significantly.

I don’t know much about this Konmari thing. I think it’s been around for a while, but got a boost recently due to a Netflix special. I think I agree with it in principle, or at least what I know of it from secondary social media commentary. Minimalism is a worthwhile goal, and so is getting rid of things that do nothing for you other than take up space. Some people aren’t reacting well to the idea of throwing away books though:

Someone responded to my post on things to learn in 2019 by asking how one finds the inspiration to learn all of the things. Well, my first answer was that those are just things I find interesting and may look into, but that’s not really an answer for the inspiration part. Software development is a very wide field, one where the amount of things you can learn increases daily, so it’s almost impossible to keep up with everything.

Papers Please

gaming

I had been eyeing Lucas Pope’s acclaimed indie hit Papers Please on Steam for a while, but finally bit the bullet on it during the last sale. The story of the game itself is interesting, as Pope was more or less a one-man team, doing the design, code, music and art for the game himself. If you’re not familiar, the game places you in the role of a border inspector in a fictional 1980s totalitarian state called Arstotzka, a thinly-veiled parallel to communist East Germany and similar nations.

A while back we were tasked with helping a client’s internal dev team to migrate their repositories from Subversion to Git. The distributed VCS seemed ideal for their situation - they had a very small in-house dev team managing contributions from external subcontractors. The main rationale was that their process of merging contributions from the external developers was extremely complicated and often resulted in conflicts that were challenging to merge. Before this, I hadn’t actually used Git too deeply myself (aside from cloning stuff from Github), and especially not in a team setting, so the training one of our other engineers gave them was a good opportunity for me to become familiar with Git as well.

Sipunin

Sipunin, from the root word “sipon”, referring to the common cold. It refers to someone who is susceptible to and often has the common cold. Certainly applicable to me. For as long as I can remember I’ve always had the cold all the time, especially during the earlier and later months of the year. (I’m sure selective memory lets me forget all those days that my nose was actually not clogged…)

I think that’s one of the reasons why it’s difficult to keep up a blog. Blogs feel a bit like they have to be long-form, highly profound, useful or informative pieces or prose that a wide audience can appreciate. We don’t have this same pressure when posting to other social media like Twitter or Facebook. I like to think of a blog (or this blog at least, at this moment) as a living, evolving thing, with each post capturing a single moment in a timeline, building upon previous thoughts, helping us see how the author’s thinking changes with time.

Here I am writing about Duolingo and keeping up streaks, then just a few days later, this happens: Ah crap I broke a 97 day Duolingo streak D: — Roy Tang (@roytang) January 6, 2019 There’s a problem with Duolingo’s streak notifications that I’m not sure how to solve. It send you a daily reminder at around the same time you did the work the previous day. If you’re unable to do it at that time, there are no further reminders later in the day.

One of the things about self-identifying as a “Full Stack Developer” or “Solution Architect” is that there’s no shortage of things to learn, and oftentimes it’s good for your career-wise to at least have some passing knowledge of a bunch of technologies. It helps that I really like the field as well. I try to make sure I study or learn at least one new programming language or framework every year (though I am willing to stretch that definition as needed).

Although I still primarily identify as a “Full Stack Developer”, during the past few years I’ve also found myself in a role called “Solution Architect”. The thing about being a solution architect is that there isn’t really a clear definition of the role, what it involves, or the scope of responsibility. I suppose it depends largely on the organization and the project. The role mostly involves making techical decisions on a larger scale, like project-wide or organization-wide, rather than on the micro day-to-day technical decisions involved in a typical software development involves.

IFTTT

tech-life

A free web-based service I’ve found very useful over the past few years is IFTTT. The initialism is a bit unwieldy; it stands for “If this, then that”. It basically provides a way to “glue” different services and APIs together so you can set up some kind of automation. You set up rules with conditions and specify what to do when those conditions are met. One of my main uses for it was for social media cross-posting.

This year I had the dubious privilege of having to work with a C++ project again. Although my college education was in C, that was a completely different animal. I did self-study C++ for a bit back even before I was working, mostly because I was interested in game development even back then. I remember trying some OpenGL and/or DirectX stuff back with good old Borland Turbo-C++ during the DOS days and using the Dev-C++ IDE when I shifted to Windows.

Happy new year! Last year I posted some year-end statistics. That seems like a good way to recap the year, so let’s do it again. Random statistics from 2018: Work, Learning and Self Improvement: Hours worked: 1,163 (up around 50% from last year) Programming languages/frameworks learned: I’ll say 4. I’m counting: C++ which I revisited this year after more than a decade of not using it Go, which I used for the templating in the Hugo blog Flask, which I had dabbled in before but only used in a full-scale project this year Laravel, which I also used in a couple of projects this year Books read: 4.

New year’s resolutions are hard to maintain, so much so that people will make jokes about opening a gym that only runs during January, since most gym NYRs run out of steam by then. One of the best pieces of advice I’ve found regarding acquiring new behaviors comes from the first motivational books I ever read - The Greatest Salesman in the World by Og Mandino, which for some reason we had a copy of in our house when I was young.

New year’s resolutions are hard to maintain, so much so that people will make jokes about opening a gym that only runs during January, since most gym NYRs run out of steam by then. One of the best pieces of advise I’ve read on this is “Don’t break the chain”, most often anecdotally attributed to Jerry Seinfeld. This advice means that for a recurring activity, once you get a streak or chain going, as much as possible you should avoid breaking the chain.

Most of these are carried over from the 2017 checklist. Maybe an annual thing, eh? In no particular order: Greet your loved ones and friends and anyone else you hold dear. Maybe even those you disagree with Ponder why people give so much significance to the transition between an arbitrarily-chosen pair of 24 hour periods Take stock and reflect on the past year Think about what you’d like to learn this year or how you want to improve Count your blessings for the past year and be grateful Change your passwords Buy a new toothbrush Make a New Year’s joke (“If you must use fireworks of any kind tonight, at least try to limit your injuries to the left leg only.

I’m not a big believer in New Year’s resolutions, but here’s some suggestions if you’re into that sort of thing: learn a new language talk to strangers more often visit 12 museums (one per month) step away from your devices once a week (increase the duration every time) read at least 12 non-fiction books read at least 12 physical books write a poem; maybe write 12 poems walk in the rain travel somewhere alone learn to draw stop a fight walk two thousand kilometers make more puns find something you can change in your local community and try to change it figure out what it means to be happy start twelve new side projects finish one side project once a week, throw out a few things you no longer need These aren’t things I’m committing to, but they are examples of the sort of NYRs I’d be likely to take on.

I mentioned before how I’m not a fan of LinkedIn: I’m not a fan of LinkedIn, as it seems to be mainly a way to get harassed by recruiters who didn’t even bother reading my profile. Some number of years back, I added the following clause to my LinkedIn profile: Recruiters: if you contact me, please specify the position you are recruiting for, what city it is in, and whether you can meet the above asking salary.

If you’re looking for a New Year’s Resolution, why not try learning a new language? Since late 2014, I’ve been using Duolingo to teach myself new languages. Learning a new language not only helps when you’re travelling, but it unlocks different ways of forming thoughts in your brain, helping cognitive development (I may have made up that last part with absolutely no basis except my own speculation.) The first language I tried to study using Duolingo was Spanish, mainly because back then we had an upcoming trip to Europe (including Barcelona) planned in 2015 so the Spanish would have helped.

Some things I’ve been watching lately, aside from the usual TV shows I follow: I very much enjoyed Elseworlds, the Arrowverse crossover this year. I mean sure, a lot of it didn’t make any sense, but it was like a love letter to DC fans. I actually consider myself more of a Marvel fan than DC, but I still loved it! I wrote a spoiler-free review over on the Tumblr.

Two things I’ve learned over the past couple of months of daily blog posting: I have a lot to write about I might have too much to write about Since I use this space to help myself think through some things, I found that I sometimes have a tendency to write about things that maybe I shouldn’t write about publicly, either for personal privacy reasons, or for professional courtesy reasons.

Gaming Backlogs

gaming

Back during the early days of gaming (both PC and console), there weren’t many game releases, and I had a lot of free time, so whenever I got a new game, I usually managed to play a fair amount of it. Ever since the advent of Steam and its constant sales, this has been a lot more challenging, especially since I have had much less time for gaming since I started working.

Some random notes I had jotted down about Christmas: Filipinos love Christmas. Filipinos are well-known for celebrating the longest Christmas season, with decorations and Christmas songs starting to become common around September. The most well-known meme around this time is about the song Christmas in our Hearts by Jose Mari Chan, which is one of the songs malls often play during the season. Many memes leading up to December or even earlier imply Jose Mari Chan preparing to strike on unsuspecting Filipinos.

Gift Giving

Gift giving is something I’m quite bad at. Okay wait, that’s not accurate. I’m fine with the gift giving. The real problem I have with is gift-buying. I’m not good at buying gifts for other people. The main problem I guess is that I’m not good at buying things in general, unless those are things that are of particular interest to me. And since my interests are a bit niche, there tends to be not much overlap with what gifts I think other people will appreciate.

A Nobel Prize-winning psychologist says most people don’t really want to be happy Interesting article, a quote: Kahneman argues that satisfaction is based mostly on comparisons. “Life satisfaction is connected to a large degree to social yardsticks–achieving goals, meeting expectations.” While I guess this is largely true for society as a whole, it’s something I try to avoid for myself, since comparison is the thief of joy. The article argues that satisfaction is different from happiness, which is fleeting.

Facebook is in hot water again, over controversial deals it made in the past that compromised user privacy. I have been considering for a long time to leave Facebook. These are the challenges: For many people, Facebook is the only way I have to contact them I don’t have a better place to share family pictures (again most of the family is on Facebook) certain follows/groups relevant to my interest are Facebook only Basically the network effect.

Donald Trump and Mark Zuckerberg are different people in vastly different positions, but I find it interesting the uncanny parallels their stories have taken them through. Like many non-Americans, I’m acutely aware of the shenanigans of Donald Trump, the current US president. It would be a fascinating story, if only it weren’t so bad for the world. His character arc is of someone who rose to the level of this own incompetence.

The other day I was passing through the QC memorial circle (as is my wont) and I decided to walk around the tiangge/flea market that’s often there. It seemd larger than usual that day, so I figured I should finally take a look. And in the process I remembered what I dislike about local flea markets: 90% of the stalls are selling some form of clothes (which I have no interest in browsing - maybe if these stalls sold something my size for once!