Roy Tang

roytang.net

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

Blog Notes Photos Links Archives About

2017 January

  • 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

    read more (297 words)

    Posted by under blog at #opinions

    Also on: tumblr twitter / 297 words

  • Problems in Large Software Dev Teams

    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. Some problems scale up faster as team/project size grows: Lower productivity due to increased overhead as mentioned above. Meetings will tend to involve more people and take longer

    read more (617 words)

    Posted by under blog at #software-development

    Also on: tumblr twitter / 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. We get to the elevators but we're still not sure where to eat. So we take the elevators down and we'll figure it out

    read more (695 words)

    Posted by under blog at #opinions

    Also on: tumblr twitter / 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

    read more (365 words)

    Posted by under blog at #software-development

    Also on: tumblr twitter / 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. The poster was using a particular character (his "main") and asking how he could learn to counter the attack strings of other characters. The answers from more experienced players were pretty

    read more (483 words)

    Posted by under blog at #opinions

    Also on: tumblr twitter / 💬 2 483 words

  • The Simplest Code That Can Do The Job

    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. Now since my software development career has largely been as

    read more (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. After all, China's ascension as a world power shows that even authoritarian states are able to achieve great gains. The allure of authoritarianism is understandable for anyone who's been exposed

    read more (609 words)

    Posted by under blog at #opinions

    Also on: tumblr twitter / 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. But in shops where most of the

    read more (420 words)

    Posted by under blog at #software-development

    Also on: tumblr twitter / 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. You can generate your own report

    read more (248 words)

    Posted by under blog at #yearnotes

    Also on: tumblr twitter / 248 words

  • The Hobbit or There and Back Again by J.R.R. Tolkien My rating: 5 of 5 stars Starting the year off right with some Tolkien. The book is unapologetic about how it drags both unsuspecting Bilbo and the reader down a long adventure that includes a lot of singing and being captured and being almost eaten. I'm not sure how they managed to stretch it into three movies though, the book isn't particularly long. View all my reviews
    Posted by under blog at #books

    Also on: goodreads / 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!") Set a target of how many books you'll read

    read more (261 words)