Roy Tang

roytang.net

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

Blog Notes Photos Links Archives About

2016 December

  • 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. src="http://i.imgur.com/KnpoEd3.png" width="1280" height="720" /> There's a whole lot of stuff to do in-game. It plays mostly like a single-player MMO, with party members that act on their own and most skills on

    read more (230 words)

    Posted by under blog at #review #gaming

    Also on: tumblr twitter / 230 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. That kind of thing. It's one of those things that you'll never

    read more (290 words)

    Posted by under blog at #software-development

    Also on: tumblr twitter / 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. I'm sure there are people a lot

    read more (358 words)

    Posted by under blog at #opinions

    Also on: tumblr twitter / 358 words

  • Learning a New Programming Language

    Related: Learning new skills While many people working as programmers/software developers are happy enough specializing in a single programming language or platform, I generally consider it a better idea to have a wider toolset and the ability to easily pick up new programming languages as needed. The benefits should be obvious: when you have a wide variety of tools under your belt and are able to quickly learn to use a new tool, the number of work options you have increases greatly. Happily, programming languages share a lot of similar constructs. Only your first programming language (when you first learn

    read more (581 words)

    Posted by under blog at #software-development

    Also on: tumblr twitter / 581 words

  • Learning New Skills

    When Hanamichi Sakuragi from the manga Slam Dunk tries to get into the basketball club, he insists he's a genius who doesn't need to practice the basics and instead wants to go immediately to doing spectacular things like Slam Dunks. Sadly, the vast majority of us cannot claim to be geniuses at anything, and we are forced to undergo a bit of hard work if we want to learn a new skill. Malcolm Gladwell says one needs 10,000 hours of work at something to become proficient, but that probably only holds true if you're using those hours "smartly" and not

    read more (837 words)

    Posted by under blog at #self-improvement

    Also on: tumblr twitter / 837 words

  • Generalists and Specialists in Dev Teams

    In any reasonably large software project, the system will be so large that no one developer will have a good grasp of the details of every function in the codebase. The tendency is for developers to specialize -- that is, developers tend to focus only on certain parts of the codebase and become more familiar with that part, while not having much knowledge about the other parts. This tendency is self-reinforcing -- once it becomes known that the developer is an "expert" in the given module, there is a tendency that he will be assigned the most difficult and urgent

    read more (321 words)

    Posted by under blog at #software-development

    Also on: tumblr twitter / 321 words

  • Nine Ways to Work Around Mental Blocks

    Posted by under blog at #writing

    Also on: tumblr twitter / 749 words

  • Power Distance in Software Development

    I was in a meeting once with my boss (literally the CEO, a Malaysian) and some representatives of another company (Americans) where we were discussing the technical details of a possible future partnership. At one point, one of the Americans said to my boss that he was pleasantly surprised that I was openly speaking up independently of my boss and willing to correct him on some points when he didn't quite get the technical details right. It seems they were used to working with some Indian outsourcing firms, where due to cultural differences, the tendency was for the Indian guys

    read more (354 words)

    Posted by under blog at #software-development

    Also on: tumblr twitter / 354 words

  • Nanowrimo 2016 Post-Mortem

    Posted by under blog at #writing

    Also on: tumblr twitter / 1718 words

  • In JavaScript, referencing variables that are declared outside of a function's scope can be tricky. If you have code like this: var btn = document.getElementById("BTN"); var test = 1; btn.onclick = function() { alert(test); } test = 2; The click handler above retains a reference to the test variable even though it falls out of scope as soon as the script block finishes execution. When you actually click the button, the alert will show the last value of the variable when the block finished execution (2) instead of the value at the time the function was initialized (1). I thought

    read more (361 words)