Research & Analysis of Today’s Internet

What Makes a Good Logo?

Everyone has an opinion about certain things in life like music, food, politics, and parenting. I think logo design is one of them. It doesn’t matter if you are a plumber or a lawyer, you would have opinions about logos. This is what makes logo design one of the biggest challenges in graphic design. The larger the business is, the more difficult it would be to settle on a logo that can reasonably satisfy all the decision makers. Ultimately a logo should not be about pleasing everyone who works for the company, because what they like personally is a separate issue from how well it works in the…

Read More

Skills Gap—Why Teaching Kids How to Code Is Not the Solution

Recently there has been a lot of talk about “skills gap”. Although there are 4 million unfilled jobs, 11 million people remain unemployed in the US. The most common solution suggested by many, including President Obama, is to attract more people to “STEM” fields (science, technology, engineering, and math). I believe this is misguided, or too short-sighted. By the time our kids in high school graduate from college, STEM fields may already be crowded. The key to closing the skills gap isn’t to choose a field with higher demand, but to increase the speed at which we learn any skills. The main…

Read More

Now the Only Job Left in the World Is...

To commoditize everyone else’s job. Let me explain what I mean by that. 99designs.com is a good example. Let’s say, you need a logo designed for your business. You describe what you want, post it on 99designs.com, and a bunch of designers from around the world would design a logo and present it to you. You only pay the winner. It’s a great service. It takes advantage of the fact that somewhere in the world there are always some people who are willing to design a logo for free because it’s fun. But if you are a professional designer, this is bad news. Now your career has been commoditized by…

Read More

There Is No Such Thing As Communication Skill

Just as we cannot objectively measure greatness of love, we cannot objectively measure effectiveness of communication either. Nobody can be a great lover to everyone, and nobody can be a great communicator to everyone. On a résumé or a help wanted ad, it is useless to list “communication skills”. Everyone is a good communicator to the people they surround themselves with. Nobody thinks they lack “communication skills”. In fact, if someone claims he has “great communication skills”, it is a pretty good sign that he has a poor understanding of what communication is. If you need someone to…

Read More

AngularJS and Memory Leaks

AngularJS is a great front-end framework, and I love it, but it appears that a lot of people are complaining about memory leaks. I spent last 2 days trying to isolate the cause of my memory leak too, but it turns out that mine was rather Heisenbergian, that is, the act of observing caused the problem! Before you start looking into memory leaks in AngularJS, you should make sure that you do two things:

1. Comment out all of your console.log() functions in your source. The log function apparently retains a reference to the variable that it outputted. So, if you do something like…

Read More

Why We Should Not Be Tied to Any Medium

In the past 10 years, digital photography has disrupted the market of photographers so much that many of them are now struggling to survive. There are many reasons but one of the most significant factors is the accessibility of the medium. Digital cameras allow us to take as many photos as we want at no cost. In the days of film, the cost of film and processing was a significant barrier to entry; once photographers crossed the barrier, they were in good shape. The barrier protected them from a flood of wannabe photographers. Another barrier to entry was technical competence. Photography used…

Read More

Mystery Solved: Why Some People Love Twitter — and Why Others Don’t

If you Google “Twitter is stupid”, you will find many people asking what Twitter is good for and why some people love it so much. They have tried and found it utterly useless. I did too. Since Twitter was founded in 2006, I’ve tried at least three different times in the past, dedicating a significant amount of time learning about Twitter and using it, and every time, I failed to understand the point of it. Sure, we all have things we don’t enjoy that others passionately love. I have no interest in watching sports, but I can at least understand why many people love it. What bothers me about…

Read More

Hacking at DreamHost Using Self-destructing Script

For our clients, we don't use those inexpensive shared hosting services, but the site for my daughter's school that I maintain pro bono is hosted on a shared server at DreamHost, which has been experiencing a series of hacking incidents. They host non-profit websites for free, so I'm not complaining, and am thankful for them. I just want to share the things I discovered on our site so that others may be able to benefit from it.

A few days ago, I noticed a file named installer12.php in one of our tmp directories. This file is designed to self-destruct by the last line in code which is:

@unlin…

Read More

It’s Not China; It’s Efficiency That Is Killing Our Jobs

The majority of wealth is now concentrated at the top of the social ladder. This is particularly true in the US, and the gap is widening every year. This, I believe, is because of efficiency, not China. Today the best ideas can efficiently and quickly propagate worldwide, and everyone can efficiently find them and buy them. This makes the owners of these ideas filthy rich, and those ideas that are not the best, can hardly survive. It’s not just transfer of information that is fast; wealth too is transferred very fast and efficiently.

Imagine in the future where we have something like Star…

Read More

Philosophical Differences Between Objective-C and C++

Learning about Objective-C has been quite interesting, especially the histories of Objective-C and C++. They were two different schools of thought that extended C to accommodate object-oriented programming. As we can see today, C++ has been more popular and we have already seen several permutations of them. In a way, my own history of programming has followed that particular school, although I did not know that an alternative school existed. I learned C, then C++, then Java, and lastly ActionScript.

The main difference between the two schools is in typing: static vs. dynamic. It gets rather…

Read More