Roy Tang

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

Posts Photos Comments Links Archives Resume About

Archive for January 2017

Posts (10) :: Photos (29)

Posts

:: 297 words

opinions

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

:: 617 words

software-development

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

:: 696 words

opinions

  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

:: 366 words

software-development

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

:: 483 words

opinions

“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

:: 322 words

python software-development

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

:: 610 words

opinions

“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

:: 420 words

software-development

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

:: 248 words

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

:: 261 words

opinions self-improvement

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

Photos