Roy Tang

roytang.net

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

Blog Notes Photos Links Archives About

2016 September

  • Type Interfaces Matter

    ... 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(HashMap params) 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. Unless your function specifically cares about the hashing part, there's no reason the parameter isn't a Map instead Since most Java libraries will perform proper encapsulation

    read more (163 words)

  • Lying and Salesmanship

    Posted by under blog at #opinions

    Also on: tumblr twitter / 537 words

  • Investigating the Drug Killings

    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. Some may have already been asked/answered during the hearings and I just missed them as I do not watch all the sessions live.

    read more (1348 words)

    Posted by under blog at #philippines

    Also on: tumblr twitter / 1348 words

  • 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. More processes means even greater overhead when new team members join. And the cycle repeats As team size increases,

    read more (314 words)

  • Speak Up

    Asians, and maybe Filipinos more specifically, have this cultural bias towards trying to avoid conflict. So often there will be people who don't like to speak up when they think something is wrong, either just tolerating it or hoping someone else will take it up. A software dev in another company once told me that he felt like he was complaining so much that he was looking like a bad guy This is of course, a bad attitude to have. If no one speaks up about the problems we see, how would we ever improve? Someone has to do it,

    read more (323 words)

    Posted by under blog at #opinions

    Also on: tumblr twitter / 323 words

  • Overtime

    Overtime in software development projects seems to be a given. Sure, there are projects and companies that don't need it, but those feel like the exception rather than the norm Overtime in software development is a natural consequence of schedule pressure and the fact that estimation is hard, which is why it's understandably common, but that doesn't mean we shouldn't try to avoid it More than once I've been in a situation where the team stays overnight to try to get a build or release ready for the next day only to run out of time and have to delay

    read more (368 words)

  • Pain

    Almost six years ago, I had to undergo minor surgery and had to endure the pain of being administered spinal anesthesia. I was reminded of this recently because a loved one with an even lower pain tolerance than I did recently had to undergo a similar procedure I have a pretty low tolerance for pain myself. I tried to spin it a bit positively in the blog post linked above, but there's no question many times during the procedure I felt miserable and in lots of pain. Even just the process of being put on a dextrose was pretty uncomfortable

    read more (418 words)

    Posted by under blog at #nostalgia

    Also on: tumblr twitter / 418 words

  • Will AI replace all our jobs?

    A while back, news came out that an AI was able to perform a diagnosis after the human doctors were stumped. Having just finished binge-watching the entire run of Star Trek Voyager, I immediately thought that was the sort of AI advancement that could lead to such things as Voyager's Emergency Medical Hologram, an AI which could replace a human doctor. Of course, it is still very unlikely for this to happen anytime soon, medicine is a very complex field and new things are still being discovered all the time. This sort of approach -- using a set of data

    read more (491 words)

    Posted by under blog at #software-development

    Also on: tumblr twitter / 491 words

  • Random Thoughts on Time

    I remember having a discussion with a friend a few years back where I made the following list to emphasize a point: 8-9 hours at work (possibly more) 7-8 hours of sleep 3-4 hours commuting in Metro Manila 2 hours for meals That leaves you between 1-4 hours for all forms of recreation including exercise, sports, TV, derping around on the internet, hanging out with friends, and so on. On any given day if you needed to work overtime or run errands, you're probably saying goodbye to any recreation time on that day. And if you have kids to take

    read more (635 words)

    Posted by under blog at #opinions

    Also on: tumblr twitter / 635 words

  • The No. 1 Problem in Software Projects

    Without a doubt, the number one problem in software development projects is schedule pressure, that is, the pressure to meet unreasonable deadlines and targets Almost all other problems can be overcome if there were no schedule pressure: weaker developers could be mentored to become better, more productive, and commit less faults less faults overall will be committed anyway if there were no schedule pressure poor requirements could be threshed out in more detail difficult clients can be argued, worn-down, and eventually reasoned with problematic team members can be counseled, or replaced with new blood and so on But of course,

    read more (396 words)

    Posted by under blog at #software-development

    Also on: tumblr twitter / 396 words