Roy Tang

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

Posts Comments Links Archives Resume About

:: 368 words

software-development

This is a story of something I consider to be one of my worst mistakes in software product development. Some¬†years ago I was asked whether it was feasible to write software that would be integrated with Software¬†X that allowed us to export that software’s output into a format that was compatible with Standard Y. I took a look and after a while came back with “Well sure. We could use Programming Language M that has an API that lets us integrate into Software X so we can export the output data.

read more

:: 326 words

opinions

The series was a bit formulaic, and towards the end really preachy toward’s the authors personal philosophies, but Terry Goodkind’s Sword of Truth series always comes back to me because it codified one of life’s most important truths: Wizard’s First Rule:¬†”People are stupid. They will believe a lie because they want to believe it’s true, or because they are afraid it might be true.” That doesn’t mean you’re stupid or I’m stupid, just that collectively, we’re kind of dumb.

read more

:: 579 words

software-development

“Button for non-service floor does not light up.” For more than a decade I regularly went to an office building where the elevators verbally spouted this nonsense message whenever you tried to go to a floor that the current elevator car did not service. For context, the elevators in the building were zoned programmatically – this means that they only service a particular subset of the floors that are provided on the elevator panel itself.

read more

:: 288 words

opinions

Recent events both in my country and abroad, both of wide importance and personal importance, have made the past week or so difficult. Bad news and bad events have no master or timing, they do not consider giving us a break, they come and go as they please no matter how bad the situation already is. I fully understand why many people choose to withdraw from daily news or shut it out altogether or even just avoid social media completely.

read more

:: 279 words

software-development

  There was this project we had where there was a strange bug. The developer working on it found that the problem only appears when the record ID was 12. When it was 11 or less, everything was fine. When it was 13 or more, everything was also fine. After some investigation, it was found that there was some code that executed with a condition of “if record id == 12”, which was already a WTF.

read more

:: 151 words

opinions

There’s a very rare, privileged group of people for whom¬†everything in life goes well and they experience great success all the time. You and I are not part of that group (most likely). Like the vast majority of other people, sometimes our lives are¬†good and sometimes our lives are bad. Sometimes life can feel cruel or¬†unfair or exhausting. In those times it’s easy to forget the times when life was good and to wallow in your misery.

read more

:: 592 words

software-development

The software development process is already difficult mainly because a lot of it so imprecise. Requirements are often only vague wishes that the client has, with no regard to the sheer number of instructions needed to implement those requirements. Throughout the entire process it’s important to use feedback loops to determine whether development is on the right path. And like all feedback loops, their effectiveness often hinges on how quickly we are able to turn around and give and incorporate feedback into future iterations

read more

:: 756 words

self-improvement

A feedback loop happens in a system when you are able to use an output of that system to influence the inputs, which in turn influences the outputs and repeats the cycle In engineering, feedback loops are useful to generate steady-state outputs. We had an entire subject dedicated to feedback loop controllers back in college. I enjoyed the topic so much I took the subject twice! An example of the use of feedback loops would be a thermostat that has a sensor to detect the current temperature.

read more

:: 356 words

software-development

In Tagalog:¬†“Madali lang naman diba?” Probably one of the most annoying things a programmer can hear, especially from a client or a manager who has no appreciation of how complex software development is. It’s presumptuous at best and actively damaging to schedule and morale at worst. We already know estimation is hard, there is no need to make it more complicated by automatically assuming the best-case scenario (or in many cases, an impossible scenario)

read more

:: 485 words

self-improvement

I’ve picked up quite a few daily habits since the start of the year. To name a few: I’ve been doing daily sketches, I’ve been going on a daily walking routine, learning Spanish on Duolingo, I have a quick stretching/exercise routine I do in the mornings, etc. (I’m also supposed to be writing daily, but this has proven more difficult to keep doing consistently… ) I like those daily habits that can be easily tracked with technology.

read more

:: 645 words

software-development

“Composition over inheritance” is an object-oriented programming principle that I’m sad to say many devs I’ve encountered aren’t too familiar with. Composition provides greater flexibility, modularity, and extensibility in large software systems as compared to inheritance, especially for statically typed languages like Java that don’t support multiple inheritance The most common examples of the problems caused by too much inheritance involved generic object such as the game objects example in the wikipedia page linked above.

read more

:: 234 words

opinions

Sometimes I write something and at the end I find that it upsets me. Or I think about something I haven’t thought about in a long time just before I sleep, then I have a nightmare about it and it saddens me to think that my subconscious still hasn’t let go of it after all this time That’s a good thing though, right? One of the purpose of writing and introspection is to become more attuned to your inner thoughts and emotions, to better understand and work with your own self.

read more

:: 844 words

software-development

For the better part of my software development career so far, I’ve had the doubtful pleasure of being one of the devs using and maintaining our¬†in-house web development framework. Framework coding is a bit different from the actual application development. At the core it’s a simple idea: you have a whole bunch of code that¬†helps do¬†programming tasks¬†that you expect will often be necessary in a certain set of projects, so you write that code with the intent of reusing it across multiple projects.

read more

:: 777 words

opinions

I’m kind of a serial project starter. I’m sure it’s a very common thing. I’ll often have random ideas for projects I could do, big or small. I’d have a dozen of them percolating in my head at any one time. And somewhere between four to¬†five dozen scattered down in various documents, notepads and what not, waiting to be explored. (I literally have two such small post-it notes with 5 such items in front of me right now)

read more

:: 403 words

software-development

“We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and¬†hubris.” — Larry Wall, Programming Perl (1st edition) Hubris is a fancier word for an excessive sense of pride. Why is this to be considered a¬†great virtue for a programmer?¬†Programming is at least partly an act of creation, which means there is an element of craftsmanship involved. A craftsman imbued with hubris is able to take pride in his work – he is driven to create work that is the best quality he can provide.

read more

:: 431 words

opinions philippines

(A bit of Philippine politics in this post, if that sort of thing bothers you) Recently as the whole world watched one of our political leaders display his expected lack of diplomatic finesse on the global stage, I couldn’t help but think about how in my younger days there’s a good chance I might have approved of his¬†frank, straight-talking, shoot-from-the-hip brand of diplomacy. I have a bit of a reputation myself for preferring to speak frankly and directly instead of dancing around the issues, although these days I understand the wisdom of adapting to the situation as needed

read more

:: 162 words

software-development

… especially for strongly-typed languages. In one of¬†the bigger Java projects that I¬†took over, I was often annoyed to find some devs had written method signatures like public void doTheThing(HashMapparams) Which is silly – not because of the naming, that’s obviously not a real-world function name. The silly part is requiring a particular implementation (HashMap) instead of the generic interface (Map). It unnecessarily restricts your API and makes it less flexible.

read more

:: 426 words

opinions

A recent post on Wait But Why had me thinking about lying. Some people will scoff if I say I don’t lie. They’re not wrong. I once spun a tall tale¬†about a¬†childhood rival I had visited in the province who challenged me to a swimming contest to explain¬†why I had lost my glasses to the sea. The lie was so good, I got a follow-up question about it a year later and was so surprised I just blurted out that my rival died in accident before finally admitting to the fib

read more

:: 1348 words

philippines

It’s no secret that many are unhappy with the way the congressional investigations into the so-called “drug war” and related killings here in the Philippines. If I were in charge of these investigations, these are the some of the questions I’d want answered: (Disclaimers: I’m not a lawyer or any kind of expert. Understandably, the resource persons may be reluctant to answer some of these in open session, in which case an executive session could be done.

read more

:: 314 words

software-development

Overhead scale up rapidly as project team size increases. Every time you add a new person to the team, he comes with a lot of overhead such as the need to learn the project details, responsibilities of other team members,¬†who to consult when there’s trouble, custom project procedures, and so on It’s a reinforcing cycle too. As overhead increases,¬†the team imposes more processes and restrictions to make sure everyone is doing the right thing and there are no screw-ups.

read more

Roy Tang is a:

roytang.net is a personal site; I post about a random assortment of topics that interest me including software development, Magic the Gathering, pop culture, gaming, and tech life. This site is perpetually under renovation.