The quote is from the 1980s cult classic Bill and Ted’s Excellent Adventure. I didn’t include this movie in my top 10 movies post, but it and the sequel Bill and Ted’s Bogus Journey are still among my childhood faves. These wise words are give by the Wyld Stallyns band composed of the epnoymous Bill and Ted, and form the philosophical basis of the future utopian civilization inspired by their music.
Filipinos have this weird concept of nationalistic/Pinoy pride where we as a nation brag about anyone who has even remote traces of Filipino blood and gets some sort of global recognition. I’ve even seen a few meme images about it: (Image credit: Reddit) I imagine that this tendency is because we are so starved of things to be proud of as a nation that we latch on to anything that is even remotely Filipino.
Back in 2017 during a Steam Sale, I was trying to choose a Metroidvania to play. My choices came down to either Ori and the Blind Forest or Hollow Knight. My impression that was that Ori had the more challenging platforming, while Hollow Knight had the more challenging combat. I chose Ori at that time, and I enjoyed that game. Last October, Hollow Knight was in a Humble Monthly, and I decided to go for it.
According to Wikipedia, Speaking truth to power is a non-violent political tactic, employed by dissidents against the received wisdom or propaganda of governments they regard as oppressive, authoritarian or an ideocracy. I always had the general sense of it before, but not that it was specifically for use against oppressive or authoritarian governments. It is believed the phrase has origins in a Quaker pamphlet published in 1955. I was reminded of this phrase today and looked it up because it seems relevant again recently, at least in the Philippines.
Last October I participated in #Hacktoberfest, sponsored by DigitalOcean and Github. It’s a “celebration” to promote open source activity, and basically you just need to submit 5 pull requests to any github repository, and they give away swag to anyone who completes the activity. Microsoft held a [counterpart celebration] where they only require you to submit 1 pull request to any Microsoft repository. I’ve always wanted to start participating in Open Source, but it’s a bit difficult to find a good place to contribute (other than logging issues of course).
In late 2017, the US moved to ban Kaspersky antivirus from use by federal agencies, because of suspected influence from the Russian government. In late 2018, the US and other countries have either banned or are considering banning the Chinese tech giant Huawei and its telecoms products, for security reasons. Both companies are under scrutiny for their perceived ties to their governments, both of which happen to have authoritarian leanings. From a certain POV, the bannings may be unfair, as they are “preventive” in nature, i.
Interesting article on closed captioning, or as I like to call them, subtitles. My first exposure to subtitles was anime of course, but these days I vastly prefer having subtitles on any show, even if it’s dubbed in a language I do understand. From the article: “Why do you have captions on?” I asked. “It helps me with my ADHD: I can focus on the words, I catch things I missed, and I never have to go back,” she replied.
I love sleeping. And taking naps. But I’m not very good at doing it at night. Insomnia is a common problem for me. I often find it difficult to go to sleep at night, taking upwards of 1-2 hours in bed before I can manage to fall asleep. Of course all that time lying there feels unproductive, so I’ll often be tempted to to grab a nearby screen and read something online or such, which makes it even harder to get to sleep.
Just a fun little throwback: some years back me and some friends played an app called Draw Something for a while, where you draw stuff and send the drawings to your friends and they try to guess it. I had some screenshots stored in a Facebook post for a while and it showed up in the “Memories” thing, I thought I’d post them here on the blog too. We had a lot of fun with the app back then!
I thought I had a post scheduled yesterday, but I didn’t. That broke a continuous streak of 124 days of daily blogging. I thought about writing a post and publishing it retroactively, but that seems like the kind of BS Type A behavior I kind of want to avoid these days. At least I did a lot better than the last time I tried daily blogging in October 2006, when I only managed 23 posts for the month.
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.
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!
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.
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.
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 inherintly 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.
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.
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, 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.
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.