Roy Tang

Programmer, engineer, scientist, critic, gamer, dreamer, and kid-at-heart.

Blog Notes Photos Links Archives About

Blog: A blog is a website consisting of discrete, often informal diary-style text entries, typically displayed in reverse chronlogical order. A single entry is called a blog post. You can subscribe to an RSS feed of this list.

Aug 2017

  • Posted by under post at #books #mistborn
    Also on: goodreads / 0 / 194 words
  • Compartmentalization

    I had been looking into a software performance problem for a few hours now and had decided to call it quits for the day. I turned off the lights and climbed into bed, hoping to get to sleep early for a change. I hadn't been in bed five minutes when I thought about something I hadn't tried yet. I picked up the tablet that was beside my bed and did a few google searches and soon I was back on my desktop trying out some parameters I hadn't tried yet.

    read more (519 words)

    Posted by under post at #Self-Improvement
    Also on: tumblr twitter / 0 / 519 words
  • Thirty Nine

    I haven’t had much time to write recently. Been busy. (I’ll write about that some other time.) But I’ve kind of been posting regularly on this date for a while, so here we are. Ah, time. And the inexorable passage thereof. There’s some kind of big milestone for me in around three hundred and sixty-five more solar cycles. Well, I don’t personally consider it big, since that’s kind of arbitrary. But as people are wont to say, life begins… maybe I’ll save that for next year.

    read more (160 words)

    Posted by under post at #birthday
    Also on: tumblr twitter facebook / 32 / 160 words

Jul 2017

  • Hardware Review: Steam Link

    Last week the local gaming shop had the Steam Link on 70% discount so I figured I’d give it a try. We recently got a new TV at home, so I was eager to try out some Steam games on the big screen. If you’re too lazy to click the link above, the Steam Link is basically a set-top box that streams your gameplay to a TV via HDMI, allowing you to enjoy your steam games from the comfort of a couch.

    read more (672 words)

    Posted by under post at #Hardware #Gaming #Tech Life
    Also on: tumblr twitter / 6 / 672 words
  • Pisay (the movie)

    Last weekend I watched Aureus Solito’s movie Pisay at the UP film center with a couple of friends (both of whom were my Pisay batchmates of course). (Click to view full-size) 4 Jul 2017 1:30amClose For the uninitiated Pisay is the nickname for our beloved _Philippine Science High School. _It’s a system of government-run schools with a special focus on science and math subjects.

    read more (386 words)

    Posted by under post at #Movies #Pop Culture
    Also on: tumblr twitter / 8 / 386 words

Jun 2017

  • Random thoughts while walking at night: The structure of government can be a bit analogous to the structure of a software development project. The Constitution is like the requirements for a project. It’s kind of high-level and (I believe) shouldn’t be too detailed. Supposedly the requirements are written by the client. For a country like the Philippines the client is “we the sovereign Filipino people”. Slight tangent: I used to know this guy who was one of those rabid “we need to amend the constitution” types and he asked me to review a “mathematical model to track the budget as a function of tax collection and monetary policy” that he wanted to include in a proposed new constitution.

    read more (426 words)

  • Adulting

    Some time ago a friend from high school invited me to her daughter’s debut. And I had to proxy for her daughter’s ninong and maybe give a few words on what it means to become an adult. My first two reactions were (1) wow I’m so old one of my batchmates has an eighteen-year-old daughter; and (2) what the heck would I know about becoming an adult? (I guess (3) was “oh, it’s a debut, so it’s formal and I have to dress up?

    read more (484 words)

    Posted by under post at
    Also on: tumblr twitter / 8 / 484 words
  • A while back I wrote about my experience coding and maintaining an in-house web framework at a previous job. It was a full-stack web framework. We had libraries for front-end Javascript up to server-side database connections. And the entire stack was tightly coupled. But while the framework was serviceable, it was almost always behind modern trends in web development. I always felt like we were playing catch-up. And as a developer I wanted to widen my horizons and try out more things.

    read more (767 words)

    Posted by under post at #Software Development
    Also on: tumblr twitter / 0 / 767 words
  • A Bus Ride in Metro Manila

    "Grabe naman kasi ang ginagawa nyo sa pasahero" (This is too much for the passengers), she said. She was a short, old lady trying to get to the front of the bus so that she could disembark. But like most city buses in Metro Manila during rush hour, the bus was filledto the brim with people, many of them standing tightlypacked in the aisle, holding on to handrails on the bus ceiling or the nearby seats.

    read more (1242 words)

    Posted by under post at #Philippines
    Also on: tumblr twitter / 0 / 1242 words
  • Grand Prix Manila 2017

    I don’t really play Magic regularly anymore; Last year I only played Standard because I was Q’ed for the WMCQs. But when there’s a local Grand Prix, oldies like me crawl out of the woodwork and try to believe we can still do well in a tournament with minimal prep. Grand Prix Manila 2017 was to be Standard format, held on June 2-4, 2017, at the SMX convention center. At the start of the year I already knew I would be playing in this year’s GP Manila, but since I hadn’t played Standard for well over a year, I didn’t really know what I would be playing.

    read more (1359 words)

  • Tokyo, Redux

    So last April my friends and I took a second trip to Japan. This time we mostly stayed around Tokyo, while taking a few days off in-between to visit Fuji, Hakone and Nikko. I went to Fuji, but that’s not in Tokyo! (Click to view full-size) I went to Fuji, but that's not in Tokyo! 13 Jun 2017 1:30amView postClose I like Tokyo, so I’ll talk about Tokyo for now.

    read more (1113 words)

    Posted by under post at #Travels
    Also on: tumblr twitter / 4 / 1113 words
  • My first Persona game was Persona 4 Golden on the Vita – a fantastic game. After that I dived into Persona 3 Portable and eventually the spin-off games Persona 4 Arena (and Ultimax) and Persona Q on 3DS. So it was no surprise that one of the game releases I was most looking forward to this year would be the next numbered game in the series: Persona 5 on the Playstation 4.

    read more (623 words)

    Posted by under post at #Review #Gaming #games
    Also on: tumblr twitter / 0 / 623 words
  • Blogging and Social Media

    I haven’t been blogging too much recently. I got busy for a while and had to skip a few weeks, and then general laziness prevented me from resuming a regular posting schedule. (Hopefully that ends now.) Most of the time my ranting was on social media, which got me thinking: Is writing on your own blog still useful in this day and age of social media? I’ve been blogging for a long time – my archives say 2002 – waaay before Facebook or even Twitter came around.

    read more (1190 words)

    Posted by under post at #blogging #social media #Writing
    Also on: tumblr twitter / 1 / 1190 words

May 2017

  • First, the spoiler-free summary (spoilers after this part): overall a very entertaining movie to sit down and watch popcorn and to enjoy the jokes and the space battles and the different colored lights and the tiny adorable tree creature GOTG’s humor was one of its strong points and for the 2nd movie, they push the comedy up a notch, perhaps a little too much in some places. Lots of funny gags and one-liners I felt like some of the character/background development stuff was pushed a bit too hard as well the movie’s plot also felt a bit thin and straightforward.

    read more (439 words)

    Posted by under post at #Movies #Review #Pop Culture
    Also on: tumblr twitter facebook / 2 / 439 words

Apr 2017

  • MarkLogic NoSQL

    I recently attended a few training sessions for MarkLogicheld at an office in a nearby business center. Now, I'll forgive you for not knowing what MarkLogic is, as even I hadn't heard of it before six months ago. MarkLogic is (apparently) the leading Enterprise NoSQL provider. NoSQL is big and sexy right now because of the supposed advantages in handling big data, and large web companies like Google and Facebook use a lot of NoSQL in the backend.

    read more (926 words)

    Posted by under post at #Software Development
    Also on: tumblr twitter / 1 / 926 words

Mar 2017

  • Paella

    A couple of years ago, two friends and I were being tourists in Barcelona. With its wide, spacious streets and strangely uniform city blocks, we walked around a lot. During one of our tourist days, we decided to eat some paella on the way back to our AirBNB. Who comes to Barcelona and doesn’t eat paella right? We ended up walking for quite a while. Every time we came upon a new restaurant that served paella we would consider the price and the restaurant and would think, hey maybe we can find somewhere better or cheaper further along the way.

    read more (421 words)

    Posted by under post at #Travels
    Also on: tumblr twitter / 0 / 421 words
  • Review: Final Fantasy XV

    With The FFXIII trilogy not being particularly well-received and FFXIV being an MMO, Final Fantasy XV has been a long awaited as the next mainline single-player game in the much-acclaimed series. This review will have minor spoilers. (Click to view full-size) 18 Mar 2017 1:30amClose Story FFXV follows the story of Noctis, prince of Lucis and his band of brothers (okay they’re not really brothers, but they might as well be).

    read more (1580 words)

    Posted by under post at #Review #Gaming #games gaming
    Also on: tumblr twitter / 0 / 1580 words
  • Back in 2004, I signed up for the Google Code Jam for the first time. Unfortunately I didn’t make it past the qualifying round. I was a bit luckier in 2008 and 2010, making it to round 2 both times. In fact in 2008 as I recall I was one of only two participants from the Philippines who made it to round 2, which allowed me to jokingly brag about being the #2 programmer in the country.

    read more (547 words)

    Posted by under post at #Software Development
    Also on: tumblr twitter / 0 / 547 words
  • Posted by under post at #books
    Also on: goodreads / 0 / 49 words
  • Scary Movies and Games

    I’m not a fan of scary movies. I don’t appreciate the idea of paying money to get surprised by jump scares or whatever. Back when I was a kid I remember my dad watching a Betamax copy of The Gate back home and me and my younger brother were watching with him and the movie seriously creeped me out. There was this one scene where a demonic eye manifested on the lead kid’s palm and that scene stuck with me for a while.

    read more (326 words)

    Posted by under post at #Movies #Gaming #Pop Culture
    Also on: tumblr twitter / 0 / 326 words
  • Posted by under post at #books
    Also on: goodreads / 0 / 118 words
  • Recently, a developer needed to undergo a tech interview at US immigration: (Click to view full-size) 9 Mar 2017 1:30amClose This may surprise some people I’ve worked with, but I didn’t have formal computer science training in school. I’m not actually a computer science major. Yet I’ve worked as a software developer for more than a decade now. Literally zero times have I needed to write a sorting function or balance a BST.

    read more (567 words)

    Posted by under post at #Software Development
    Also on: tumblr twitter / 8 / 567 words
  • Sony 4K HDR Bravia X8000D

    4k XLocal tech blog YugaTech is doing a giveaway of a Sony X8000D Bravia 4K TV. To be honest I wasn’t sure about using this blog to participate in a promo, but I was already in the market for a new TV since our living room TV is already starting to have some problems. I checked out the product features of the Sony X8000D Bravia on their website. Some of the features stood out for me specifically:

    read more (455 words)

    Posted by under post at #Hardware #Review #Tech Life
    Also on: tumblr twitter / 0 / 455 words
  • Planning / Reacting / Relaxing

    At any point in time, what you are doing can be grouped into one of four buckets: Planning Executing a plan Reacting to something Relaxing (leisure time) Overthinkers tend to do too much of #1. The most efficient people probably spend most of their time in #2. People whose lives are chaotic do too much of #3. Almost all people don’t get enough #4. (I might be doing too much of #4~)
    Posted by under post at
    Also on: tumblr twitter / 0 / 72 words
  • I’ve been hesitant to try Python 3.x because it’s not backward compatible with Python 2.x which I’ve been using for scripting since forever. But recently I found out that since Python 3.3, they’ve included a launcher in the Windows version that supports having both versions installed. You can use the launcher to specify the Python version to use at the command line (it defaults to whichever version was installed first):

    read more (116 words)

    Posted by under post at #python #Software Development
    Also on: tumblr twitter / 0 / 116 words

Feb 2017

  • Boxes

    We put people into boxes because it is convenient. It’s easier for our mental model of the world to say to yourself things like “This guy works with computers, maybe he can tell me how to fix my printer.” or “This person is from [school] and they are very arrogant.” or “You’re from [country]? You guys do [that country’s thing] right?” or “This person is a supporter of [politician] so he must support all the things that politician does, even the things I hate.

    read more (323 words)

    Posted by under post at #Opinions
    Also on: tumblr twitter / 0 / 323 words
  • I had been meaning to try writing a Twitter bot for a while now. I figured a trivia bot would be pretty easy to implement, so I spent some time a couple of weekends to rig one together. It’s (mostly) working now, the bot is active as triviastorm on Twitter, with a supporting webapp deployed on https://triviastorm.net/. The bot tweets out a trivia question once every hour. It will then award points to the first five people who gave the correct answer.

    read more (264 words)

  • Write Smarter, Not Harder

    There’s this well-known idea that it takes ten thousand hours of practice to become an expert in something. But of course, it has to be ten thousand meaningful hours of practice. Meaningful here means that you are actually learning something from your practice. If you are repeating the same hour ten thousand times, that’s not worth very much. Instead, we should be actively learning while we practice. This means identifying our weak points and learning how we can improve.

    read more (398 words)

    Posted by under post at #Writing
    Also on: tumblr twitter / 0 / 398 words
  • Posted by under post at #books
    Also on: goodreads / 0 / 113 words
  • Review: Duelyst

    After Hearthstone, I tried out a couple of other digital CCGs: Spellweaver and Eternal, but neither one hooked me. The one I enjoyed the most and did pick up to play regularly was Duelyst. So this review is written from the perspective of someone who has played both Magic the Gathering (MTG) and Hearthstone (HS). Hearthstone, Spellweaver and Eternal played like digital MTG with some advantages, as I outlined in the HS post linked above.

    read more (1453 words)

    Posted by under post at #Review #ccgs #Gaming #games
    Also on: tumblr twitter / 0 / 1453 words
  • There are a few things that one should consider when using and integrating an open source library into your application: What are the licensing terms for the library? There are some liberal licenses that mostly let you do anything you want. The MIT license is an example of a very permissive license. Other licenses may provide a number of restrictions. Can you integrate with closed-source software? Can you distribute binaries without the source?

    read more (580 words)

    Posted by under post at #Software Development
    Also on: tumblr twitter / 0 / 580 words
  • War

    As of today, our country (The #Blessed Republic of the Philippines) is already at war with: Drugs Illegal gambling Communist rebels Some other things we might consider declaring war on (in no particular order): Poverty Ignorance Misinformation (sorry, “Alternative facts”) Abusive government officials Traffic Rights abuses Pollution High power rates Political dynasties Poor quality of local cinema offerings Politicians putting their names everywhere Internet trolls and bullies Lack of critical thinking Redundancy Overtime without overtime pay Government officials blatantly lying or pulling statistics out of thin air Slow and expensive internet The MRT breaking down Cruelty to animals Poor quality of local anti-piracy ads Jejespeak SMS spam Typhoons Taxis that don’t give exact change War Irony Spoilers Pineapples on pizza Poor grammar and/or spelling Hashtags Hypocrisy Multi-level marketing Working at “Edi sa puso mo” Redundancy Low effort blog posts that start out serious but end up trying a bit too hard to be funny People who don’t understand sarcasm People who stand in malls and shove fliers in your face Commenting on posts without reading the actual article Lists that end abruptly at weird numbers so you’re not sure if there’s more or what
    Posted by under post at #Opinions #Philippines
    Also on: tumblr twitter / 0 / 194 words
  • Back when I was starting out as a software developer, webapps weren’t really a thing. Not as much as they are now anyway. My company provided training to new hires, but I didn’t get any web development training at the time, even though they already had a few web development projects in play at the time. Instead my initial training involved mostly development of so-called client-server software. This was software that was installed and run on the client machine but they would connect to a remote database server.

    read more (1261 words)

    Posted by under post at #Software Development
    Also on: tumblr twitter / 0 / 1261 words
  • Gaming Walkthroughs

    Old gamer rants follow. Gaming has changed a lot over the years. For one thing, there’s the internet now. If you got stuck in a game, you just head on over to GameFAQs or some other site and someone on the message boards will tell you how to get unstuck. Or you can even watch Youtube videos on how to do it! (Side note: I dislike having to watch Youtube videos to figure stuff out.

    read more (1084 words)

    Posted by under post at #Gaming
    Also on: tumblr twitter / 2 / 1084 words
  • Posted by under post at #books
    Also on: goodreads / 0 / 59 words
  • So after so many months of development you deployed your webapp to production and it’s up and running and everything is fine and you celebrate and your work is done right? Not really. Two days later you get an urgent support call in the middle of the night. (Your clients are halfway across the world.) They’re asking why the website is inaccessible. You check via your browser and sure enough there’s an error 500.

    read more (843 words)

    Posted by under post at #Software Development
    Also on: tumblr twitter / 0 / 843 words

Jan 2017

  • Signs you think about leaving your current job: The company culture has changed in ways you don’t like or recognize You are no longer proud of the work you do You are always feeling tired, even when you just got to work You more easily notice your coworkers’ screwups and are more easily annoyed at them You feel unappreciated for the work you do You feel like the company doesn’t listen to your inputs Many of your close friends in the company are unhappy and want to leave or are already leaving or have already left You no longer trust your boss to make good decisions about the company’s future You are always looking for more free time to pursue other pursuits It’s Monday and you’re already looking forward to Friday You hate your commute You start reading articles about signs you should think about leaving your job A lot of people feel trapped in their current job.

    read more (297 words)

    Posted by under post at #Opinions
    Also on: tumblr twitter / 1 / 297 words
  • Hopefully by now most developers and project managers are well aware of the mythical man-month and Brooks’ Law: Adding manpower to a late software project makes it later The idea is that communications overhead scales up quickly as you add more people to a project. Oftentimes it is counter-intuitively not worthwhile to keep adding more people to try to catch up. Some implications of larger team/project size may not be immediately obvious.

    read more (617 words)

    Posted by under post at #Software Development
    Also on: tumblr twitter / 1 / 617 words
  • Notes on Decision Making

    At my old job I used to have this group of coworkers I had Friday lunch outs with. Inevitably, every Friday around noon someone would message the others asking “where are we eating?”. Now, there are a lot of good places to eat around the area and we’ve all been working there a while so most of the time we don’t care where we eat and we’d say we’ll decide when we get to the elevators.

    read more (695 words)

    Posted by under post at #Opinions
    Also on: tumblr twitter / 0 / 695 words
  • Just a list I’ve been maintaining for a while: (Disclaimer: This list in no way implies that developers who don’t exhibit all of these attributes are terrible human beings who don’t deserve to live. But working with developers who exhibit many of these traits will probably result in a better experience over the course of your developer career.) Laziness, Impatience and Hubris – from the well-known (notorious?) Larry Wall quote Communicates well; is able to explain and communicate his ideas clearly, especially to nontechnical people; able to write good documentation Understands the concerns with scheduling and project management and communicates clearly with the team to avoid problems.

    read more (365 words)

    Posted by under post at #Software Development
    Also on: tumblr twitter / 7 / 365 words
  • “If you know the enemy and know yourself, you need not fear the result of a hundred battles. If you know yourself but not the enemy, for every victory gained you will also suffer a defeat. If you know neither the enemy nor yourself, you will succumb in every battle.” ― Sun Tzu, The Art of War I was reading a forum thread recently about learning competitive Street Fighter.

    read more (483 words)

    Posted by under post at #Opinions
    Also on: tumblr twitter / 2 / 483 words
  • So the other day I was reworking a Python script that I had been using for years on my home PC to manage and categorize some downloaded files for me. This time I wanted to add some smarter behavior to make it more able to figure out when to group files into folders without constantly needing manual intervention from me. To do this, I needed to persist some data between runs – so that the script remembers how it categorized previous files and is able to group similar files together.

    read more (322 words)

    Posted by under post at #python #Software Development
    Also on: tumblr twitter / 0 / 322 words
  • “Democracy is the worst form of government, except for all the others.” ― Winston S. Churchill In the current world political climate, it seems that in many instances democracy and the related values (equality, human rights, and so on) are increasingly taking a back seat to populism and increasingly authoritarian leaderships. One sometimes has to consider whether authoritarian states would in fact be more effective in this day and age.

    read more (609 words)

    Posted by under post at #Opinions
    Also on: tumblr twitter / 0 / 609 words
  • Because of the nature of the web and the fact that you should never trust user input, all the validation in a web application should be done on the server side. You can additionally provide validation on the client side (via JavaScript), but this is only a concession towards a better user experience and should not be used as a substitute for server-side validation. One would think that anyone with a basic understanding of how HTTP works would understand the above easily and any failure to practice it should be considered amateur hour.

    read more (420 words)

    Posted by under post at #Software Development
    Also on: tumblr twitter / 2 / 420 words
  • My 2016 in numbers

    Random statistics from 2016: 74 blog posts (total of 769 currently on this site, some imported from as early as 2002. The record for a single year was 148 back in 2008, but that was back when I didn’t do social media much so even short posts made it to the blog, delicious bookmarks were auto-posted here, etc.) 50,135 words written for Nanowrimo 321 sketches submitted to r/sketchdaily Duolingo streak: 225 days Answers written on Quora: 427 Programming languages/frameworks learned: 4 Instagram posts: 390 Facebook activity: 218 statuses, 178 links, 164 photos, 31 videos.

    read more (248 words)

    Posted by under post at #yearnotes
    Also on: tumblr twitter / 0 / 248 words
  • Posted by under post at #books
    Also on: goodreads / 0 / 77 words
  • New Year's Checklist

    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 (“My New Year’s Resolution is 1440×900!

    read more (261 words)

Dec 2016

  • Review: Xenoblade Chronicles X

    Just in time for the end of the year, I finally finished Xenoblade Chronicles X, which I started playing around the first week of August (5 months!), with 120+ hours of game time. The game doesn’t have the best graphics (WiiU, etc), but I really like how it looks and how the world is built and all the different environments and the weird and sometimes absurdly large beasts. (Click to view full-size)

    read more (228 words)

    Posted by under post at #Review #Gaming #games
    Also on: tumblr twitter / 0 / 228 words
  • Cleaning up your Code

    In one of my most recent projects, a large system that had gone through a relatively long and unstable period of many, many changes due to sales demonstrations, different clients and whatnot, one of the “fun buffer tasks” I always kept around for devs was code cleanup. Because of the unstable nature of the project, there was always a lot of duplication, unused/unnecessary/obsolete classes/functions/files and so on. Unnecessarily large CSS files where most of the selectors were no longer really needed or JS libraries that weren’t actually used.

    read more (290 words)

    Posted by under post at #Software Development
    Also on: tumblr twitter / 2 / 290 words
  • Decluttering

    I traditionally try to save some time on the week between Christmas and New Year’s Day to do some cleaning up and decluttering of my stuff. One would assume that having more time meant I would be better able to organize my stuff and all that, but one would be wrong. My room still has stacks of books, toys, Magic cards and other stuff in random places. Or maybe I just have too much OCD that I want everything to be neat and organized, but I’m not industrious enough to make it happen.

    read more (358 words)

    Posted by under post at #Opinions
    Also on: tumblr twitter / 0 / 358 words