Author Archives: Yin Wang

U.S. Election Observations

The melodramatic U.S. election finally came to a “surprising” end. As a non-US citizen and an outsider of the election, I hope to share some of my observations about the candidates, the voters, and the U.S. government. I didn’t have any interest in politics before the election day, but I did some research after they got the result, and it was quite fun finding out some things about American politics.

Election as a football game

You would think that the U.S. people are rational thinking and socially responsible, and they will be careful about their choice of top government officials? The truth is that a lot of them are irrational and careless. They treat the election almost exactly like a football game. They just pick one side and stick to it, fight for it. They go all out for their candidate, ignoring the truth behind that person. They wear rosy glasses and refuse to look at the opposite, dark and hard evidence.

Working at a high-tech company, I have been shocked how those highly educated programmers look at politics. As top experts, their thinking is supposed to be logical and rational, but the fact is that many of them don’t have slightest idea what is right and what is wrong, what is a good society, what are the most important issues… Often they don’t even follow evidence and logic, or willfully ignoring them. This make them especially gullible and vulnerable to politician’s mental manipulations. You have to be especially careful when talking about the election, as careful as you talk about religions.

Most of the voters that I know don’t even look directly at their candidates. They don’t listen directly to what they say. They get information about the person from a “third-party”: the media, their friends and coworkers. When they hear other people say “This guy is a racist, sexist, bigot.” They take it for granted and start to hate that person. They don’t ask for evidence that can backup those claims. When their candidate lose, they go to violent protests, just because their friends told them to do so.

To make things even worse, when many people look at those wrongdoings and violent behavior of one side, they blame the other side, the victims of violence.

Brainwashing power of the media

Some of the voters do look at their candidates, but they don’t seek a complete picture. They only look at the scrambled pieces from the media (CNN, NBC, New York Times, Washington Post…). They don’t even look at the unabridged version of their speeches or debates, not to mention historical videos and evidence.

It is evident that most of the U.S. media distort information. They take half of the person’s sentence or 1/4 of it, and they tell you that this person is saying something really bad about a group of people (Muslims etc), and then you start to hate him. It’s just that easy to demonize a person.

But when you put those words into context, into a full speech, you found out that he didn’t really mean that. Those were perfectly valid arguments. It was the media’s intention to make you hate that person. Only when you directly look at the person’s speech or historical records, you found out what he is really like.

Suppression of criticism

In this election, I noticed this kind of logic in a lot of American people:

  1. If you dislike a particular woman, they say you hate all women, so you are a sexist.
  2. If you have valid concerns of high crime/terror rate in certain group of people, they say you despise that group of people, then you are a racist.
  3. If you don’t agree with them, then you are a bigot.
  4. If you criticize something, then you are having hateful speech.

This method was universally used in China’s Cultural Revolution (in the 1960s) in order to suppress free speech and criticism of the government. They call this “hatting” – they put tall hats on those who don’t agree with them, and they wrote words on the hats, for example “anti communist party”, “anti revolution”, “right wing” etc.

This is exactly what’s happening in the U.S. now, except that the words are “racist”, “sexist”, “bigot”, “hateful speech”, “anti-immigration” etc. You will be attacked immediately with those words if you express criticism, or if you support the candidate who expresses criticism.



Who are the real haters?

Interesting enough, I found that the people who accuse others of having “hateful speech” actually have more hatred inside their heart. There is a fundamental difference between criticism and hate.

If you call people with valid criticism “haters”, if you threaten to fire those who disagree with you, then you are the real hater yourself. By suppressing criticism, you are on the path of becoming a dictator.

Just try to find out who are actually intimidated of telling people which candidate they support? Those who are afraid of telling you their choice (or if they need a lot of courage to do so) are the ones that are discriminated and oppressed. Calling them “haters” and you are just hurting them even further.


Demonize a person

The U.S. people believe so much in the media, because they were taught at young age that this country has freedom of speech, and the media will always tell the truth. The fact is that the media often tell you only one side of the truth. Other times they distort or destroy the truth. After this election, I realized that most of the U.S. media are just propaganda machines. They are controlled by certain people. There is no real freedom of speech in the U.S.

Even worse, sometimes politicians hire people to make their opponents look ugly. After viewing these hidden cam evidence, you may have to rethink about the image of the person in your head. Are they real representation of the person, or are they just the image that his enemy wants you to see…

Voter fraud

I didn’t know there can be fraud in U.S. election because they are so advanced in technology and laws, but these hidden cam videos show that it is not only possible, but rampant. Some vote sites don’t even ask for IDs. You can easily pretend to be anybody and use their ballots, for example Eminem’s ;)

So it’s actually really easy to hire people to commit voter fraud. You just move them from poll site to poll site…

How to spot a liar

Many people like a person because his positive image and positive words. But those can be faked. If a person always talk about positive words like “love”, “kindness” or “faith” but without substance, you must be alarmed, because those are important signals of hypocrisy. I have a lot of experience with hypocrites in my life, so I have an acute sense of this.


The best way to understand a person is to look at their unprepared response. You may find that some of them are having a hard time calculating what they need to say. This is a strong signal that they are pretending or lying. But some other people have very fast and fluent response. This is a signal that they are saying what they believe. They are honest.

The election law should require that all candidates be put onto polygraphs when they answer questions. It’s so easy, why don’t any country do that?

Historical evidence

History is very important. Forgetting the history is equivalent to destroying the future. When you look at the history what those people have actually done, and how other people talked about them, you may be shocked.

A documentary about Hillary Clinton, so many things you don’t know about her.

Bill Clinton’s sexual assault victims talk about how Hillary treated them.

CIA 9-11 whistleblower Susan Lindauer: “A vote for Hillary Clinton is a vote for world war 3. It’s that serious!”

Systematic corruption of the U.S. Government

There is just too much evidence that the U.S. government has been very corrupted, at the highest level, and into each department. This is the case ever since the presidency of Bill Clinton, and that’s when the U.S. society started to go rapidly downhill. By doing some simple research, you may find out what kind of people are doing the dirty tricks.

It is already an open secret what’s going on. The once considered ideal system of balanced power to prevent corruption, hugely failed. It may be interesting to find out why this can happen.

Some investigation into the Clinton Foundation:

Lawyer and criminal experts discuss about Hillary email scandal and suspicious behavior of FBI director James Comey:

Bill Clinton’s National Security Advisor Sandy Burger caught stealing and destroying evidence about 9/11 attack:

U.S. government’s censorship and threat of the ABC mini-series The Path to 9/11:

This independent research tells you about how all those people, companies and banks are related: Bill Clinton, Hillary Clinton, James Comey, Loretta Lynch, Sandy Berger, Lockheed Martin, HSBC:

Root of all evil

This documentary of Bill Clinton tells you where all this evil begins…

This one looks like a complimentary of The Clinton Chronicles.


I have completely lost respect to the current U.S. government. It is controlled by criminals and liars. Obviously some people are above the law and are doing very evil things. You can see a pattern emerging since The Clinton Chronicles. Whatever happened to Arkansas, exactly the same things happen to the United States: crimes, drugs, bribery, liaisons, murders, lies, obstruction of justice, destroy of evidence, control of the media.

You can’t ignore this information when making such a big decision (election) about a country. Unfortunately I found very few people have looked into these videos before they vote.

Comments Off on U.S. Election Observations

Posted by on November 27, 2016 in politics


Why self-driving cars are not going to happen


Google has been developing and testing their self-driving cars for quite a while, making headlines frequently, but from some simple observations, you may see that those cute robotic cars will never going to work in the real world.

Problem 1: Difficulty in computer cognition

Driving a car takes a lot of intelligence. Interesting enough, such a daily activity requires a lot more intelligence than playing chess or go. To be safe, not only must a self-driving car obey traffic rules, it must also actively predict and avoid potential dangers on the road. It shouldn’t just rely on last-second reactions.


Here is a simple example of such an upcoming danger–a falling mattress from a front car. This can be immediately recognized by a human. He wouldn’t wait for the mattress to hit the ground, because that would be too late. He would avoid that car, quickly accelerate and pass it, and possibly honk and warn the other driver. How can a self-driving car do that?

How can a computer know that there is a mattress strapped on the top of the other car, and it’s likely to fall off? This calls for not only intelligence, but also experience and common sense. Will machine learning, deep learning or neural networks make this work? Very unlikely. A computer cannot know what is a “falling mattress” even if it crashes with a falling mattress a thousand times. But it is amazing how humans (and animals) know the danger almost immediately without previous exposure to such a situation. This kind of animal intelligence is very general. It doesn’t require much “learning”. It is in their instinct.

True human cognition is needed for the self-driving car to recognize objects and predict potential dangers. This is the biggest obstacle of making the self-driving car marginally work as well as a human. Yes, we have seen Google’s cars on the roads, but they are not yet handling the real, complex world. Far from it. They only come out on nice sunny days, driving around the few simple and uncrowded roads in the Mountain View area. I have never seen self-driving cars on a free way or a populated city. Even in such ideal conditions, Google’s self-driving cars had 272 “disengagement events” in the past year, which required human intervention. Just recently, a self-driving car hit a bus because of the computer’s misjudgement.

From the recent victory of AlphaGo over the human Go champion, you may think that the powerful AI technologies behind AlphaGo, such as neural networks and deep learning, can also be used to enhance self-driving cars. Unfortunately, they will not help much in this case. If you take a deep look into them, the current machine learning or deep learning technologies hasn’t really much to do with human learning, intelligence or cognition. You don’t need true intelligence to play go? Unfortunately you are right. AlphaGo just proved to us that it is the case ;) Chess and go are just board games. No matter how hard those games seemingly are, they are all played in very simple and controlled environments, thus are easy for computers to apply their brutal power. Self-driving car has to deal with the real world, and the real world is very complex, full of surprises. This is where only true human intelligence can survive.

So for a self-driving car to handle the variety of road situations and emergencies, it needs true human cognition. Unfortunately nobody has any idea how to implement human cognition in a machine, because we still haven’t much idea how our own cognition system works.

Problem 2: Liability issues


You may think that for practical uses, self-driving cars don’t need to be 100% perfect in their judgements and actions. Unfortunately, those do need to be perfect before they can be allowed on the roads. They can’t just be better than the average human drivers. They must be better than the best human drivers. That is, they must be the best of the best.

Thus they must satisfy two requirements:

  1. Self-driving cars must not cause any accident.
  2. Self-driving cars must not fail to avoid potential dangers that a human would avoid.

Why should they satisfy such strict requirements? 1) For every accident, somebody must be held liable for the property losses and injuries. If humans are drivers, one of them will be liable. If it was a self-driving car causing the accident, Google will be liable. Google’s software will be considered the driver at fault. 2) A human can predict and avoid potential dangers on the road, for example a falling mattress from a front car. Thus a self-driving car must be able to do the same. If it fails to predict danger and an accident happens, the self-driving car will also be liable to losses that resulted from such inability.

So Google is going to be liable for every accident that is either 1) caused by the incorrect actions of the self-driving car or 2) caused by its inability of avoiding danger. The second point is especially difficult to achieve, and it requires very high level human cognition. How much money has Google to pay all the damages, medical expenses and lives of people? Can any amount money be able to pay for people’s lives? Nope.

This is why self-driving cars should never cause an accident, and it should never fail to avoid an accident that would have been avoided by a human. They need to be 100% correct in their cognition, prediction and handling of dangerous situations. 99.9999% correctness is not enough. But as I already told you, we have no idea when or whether such a high level human cognition can be implemented in a machine. Thus, I don’t see how (fully) self-driving cars can ever be put into daily use without a fundamental breakthrough.

Choose easier problems

Although fully self-driving cars are very hard to achieve, and I can’t see how Google (Tesla, Mercedes, or anybody) could possibly make it happen in the near future, there is indeed something else we can do with the current technologies. Lucky enough, Automatic braking, distance keeping, and many things other than taking over the car’s steering wheel, can possibly be achieved.

Why can’t a computer control the car’s steering? Because of exactly the same issues I have noted above. Steering the direction of the car requires true human cognition and common sense, and this also implies serious liability issues. Once the computer take control of the steering and direction, technically speaking the human is no longer the driver of the car. Thus the software must be liable for any resulting accidents. The same principles also apply to Tesla’s Autopilot. It is wrong of Tesla Autopilot to take full control of steering.

If you restrict the problem to automatic braking, thing are much easier. Automatic braking can be implemented in a dumb way. The computer just need to actuate the brake when the radar detects obstacles ahead. It doesn’t need to understand what the obstacle really is. It just need to be large enough to cause a collision. Since the automatic braking is only assisting the driver to prevent possible collisions that he failed to act, and the human is still the driver of the car, he is still responsible for the consequences. So Problems 1 and 2 no longer applies to automatic braking.


Comments Off on Why self-driving cars are not going to happen

Posted by on March 22, 2016 in artificial intelligence, car, wisdom


Why “Falcon Wing Doors” is a bad idea

Tesla’s new SUV, the Model X, has a very special back door design. They open like “falcon wings”, thus are called “Falcon Wing Doors”.


Although looking futuristic and may help with tight parking spaces, this design has several potential problems.

Delayed escape during accident

If an accident happens and there is a fire, how quickly can you escape? You will get quite trapped in a Model X. When the car loses power, according to Model X’s Emergency Response Guidethere is a very complicated procedure to follow before you can open the Falcon Wing Doors.falcon-wing-door-powerless

First of all, notice that without power, there is no way that the door can be opened from the outside. This means that the firefighters can’t help you much! If you are lucky enough–you are not injured, you are not scared, you successfully get out of the trap of the airbags, you have to do the following three complicated movements:

  1. Remove the speaker grill from the door.
  2. Pull the mechanical release cable.
  3. Manually lift up the doors.


How do you remove the speaker grill? Doh.. Honestly, having hammer and screw driver ready in a Model X may be a good idea ;-)

Reduced utility

  1. You can’t install a roof rack and carry a kayak. This makes this SUV (Sport Utility Vehicle) less useful than other brands.
  2. There can’t be bottle/utility holders on the back doors, because they will fall off when the doors open. As a consequence, back passengers can’t put their water, snacks or cell phones on the doors.

Vulnerability in weather


  1. When the doors open, the back of the car is almost complete exposed, on the sides and top. A good chance for rain and snow to get into the car in large amounts.
  2. When the doors open, dirt and snow that gathered on the roof can fall into the car.
  3. If the car is covered in heavy snow or ice, the doors won’t open. You have to clear the roof very carefully before the back doors can be opened.
  4. The long seams of these doors are more prone to leak problems. As the seals weather out, water could drip down from the roof.
  5. If dirt, snow, tree leaves or twigs gets trapped into the top seals, you may have trouble sealing the doors, and water will drip in.
  6. It will be tricky open/close the doors in strong wind. Wind may cause the doors to malfunction.
  7. Because the doors increased the car’s center of gravity, the car may shake quite a bit when the doors are open against strong wind.
  8. You can’t get in/out easily with half-open doors, but fully open doors will cause a big heat loss in a cold windy day.


Although the doors may help with parking in horizontally tight spaces, they are troublesome in vertically tight spaces. They may hit the roof in some garages, like this one. Even if the sensors prevented the doors to hit the roof, the back passengers may have trouble getting out through the half-open doors.

Indeed they are easier to open in horizontally tight parking spaces. But, how often do you park in such tight spaces? If that happens, can’t you just drop off the back passengers before pulling in? Can’t sliding doors provide the same benefits?

Mazda5, 2011

Manufacturing and maintenance

falcon-wing-door-machineryThe machinery of these doors is overly complicated. They are difficult and expensive to manufacture, prone to mechanical problems, and difficult to repair. Take a look at the news, and see how a legitimate supplier of hydraulic lifters to other famous brands (such as Cadillac) failed to meet the Falcon Doors’ ridiculous requirements.



Because the Falcon Wing Doors’ complexity, it increases the center of gravity of the car. This decreases the stability of the car and cornering abilities. Also when parking on uneven ground, the high profile of the doors make the car unstable.

Not beautiful or fancy

With this novel door design, the Model X doesn’t really look beautiful, friendly, or fancy. It looks like a Prius. It’s nowhere close to Ferrari, Lamborghini or McLaren. Notice that the “scissor doors” of the hyper cars don’t really have some of the problems of Model X’s Falcon Wing Doors.


The Model X (with the doors open) looks like a falcon, ready for an aggressive move. Not feeling friendly.

With these in mind, and the fact that Space X’s rockets are named “Falcon”, the Falcon Wing Doors feels more like an gimmick and over-engineering than a useful/beautiful design. There really is no need to make car doors looking like falcon wings.

Comments Off on Why “Falcon Wing Doors” is a bad idea

Posted by on January 20, 2016 in car, design


Some observations about Tesla’s Autopilot


After analyzing Tesla Model S’s various design problems, I was shocked again, this time by a popular video, showing Tesla’s autopilot nearly causing a frontal crash.

Some observations:

  1. Autopilot sees tree shadows on the ground, and mistaken them as obstacles. This may not be a right kind of road to use the autopilot, but in principle this could happen even if you are on a high way with trees or some other shadow-casting objects, such as clouds. The failure of distinguishing shadows from objects suggests that Tesla hasn’t done basic computer vision research, specifically, a subject called “image shadow removing”. I’m also doubting whether the autopilot uses stereo vision or colors at all.

  2. When seeing the tree shadow, autopilot tried to avoid it as if it were an obstacle. It didn’t brake (the speed remained at ~38mph). It steered the car to the left, trying to cross the double yellow line, nearly causing a frontal crash with an upcoming vehicle. This shows that the autopilot hasn’t ideas about basic road rules and correct emergency strategy. An experienced driver would brake instead of averting the obstacle without slowing down.

There should be no public “beta testing” on such mission critical software. It needs to be perfectly safe before it can be released. Nobody wants to test such software with their lives. Putting complicated “warnings” or “conditions” on the software license, calling it “beta” and asking users to keep a hand on the steering wheel, can’t really get Tesla out of liability if someone is actually hurt.

Comments Off on Some observations about Tesla’s Autopilot

Posted by on January 16, 2016 in car, design


Design Flaws of the Tesla Model S


Many people admire Tesla cars. They think it is the car of the future. Although electric cars are environment-friendly, quiet and performant, I found the design of Tesla’s Model S particularly awkward and user-unfriendly, with potential safety problems.

Lacking physical controls

A major design problem of the Model S is that the designers put too much faith in the touch screen. There are so few physical controls. Almost everything is controlled by the touch screen. Take a look at the interior, it is almost bare. This hurts both the esthetics and functionality.

There is no switch on the dome for operating the sunroof (see picture). When people see a door or window, they expect a switch right next to it. Not the case with the Model S. You look up from the seat, and there is nothing you can press…


This “simplicity” comes with a cost. How do you open the sunroof? Answer: from the touch screen. You just tap the Control tab on the top, then tap the Sunroof tab to the left, and then you tap and hold a slide bar on the right, drag it down…


But this is not really simple. It just makes simple things complicated. It violates a very important design principle: Controls should be close to the objects that they control, and should be natural for people to discover and intuitive to use. The touch screen controls too many objects. It is overly multiplexed in functionality. It is nowhere close to the object it controls, and there is a deep path for finding the menu items. All of this makes the car confusing and cumbersome.

Compare with other cars, they usually have a dedicated switch for the sunroof, right there above your head. You pull it back and it opens the sunroof. You push it forward and it closes the sunroof. You push it upwards and it tilts the sunroof. The control is easy to discover, direct to access, and intuitive to use. Designers call this kind of design “natural mapping”, because the motion of the controller naturally corresponds to the motion of the sunroof.

Similarly in the Model S, there is no physical dial for the vent air, no physical switches for the head lights, fog lights, ambient lights, … You have to use the touch screen for all of those.

Central point of failure

From a system designer’s perspective, the Model S has a central point of failure. Because the touch screen controls almost everything, if it fails, you lose control of pretty much everything: sunroof, vent, door handles, windows, …

This indeed happened to some Tesla users. Take a look at this article. To quote the most important part of it:

“Just before the car went in for its annual service, at a little over 12,000 miles, the center screen went blank, eliminating access to just about every function of the car…”

Ergonomics not well thought out

I also noticed that when I sit back in the driver’s seat, the touch screen is not quite within my arm’s reach. I have to sit up a little and reach my right arm out. Because the screen lacks tactical feedback, you must look at it in order to trigger the correct button. This is not efficient or comfortable, and may not be safe when driving.

There is also a space-utilization issue. Underneath the touch screen, there is a flat surface.


This is the usual place where other cars put the shifter, coffee holder and utility compartments. For the Model S, it’s just a flat, wide-open space. If you put small objects in it, they will fly around, collide with each other, making noise as you drive. The platform’s position is so low, that you have to bend over to get things. This is a waste of the most ergonomically convenient space in the car–the space right under the occupant’s arms at a comfortable sit position.

Some users also reported that the coffee holder of the Model S are placed at a diabolical location, making it easily for the elbows to knock over the coffee cups. Thus some expert user DIY’ed his own coffee holder using a 3D printer…


Troublesome door handle

The Model S has a very special door handle design. At its rest position, the door handle retracts, flushing with the door surface.


As the driver walk close, the door handle extrudes, like a friend extending his hand, for a handshake.


Emotionally this is a nice design, but practically there are problems.

  • The shape of the door handle is a flat metal plate. This is not ergonomic or comfortable.
  • In cold weather, the door handle will be frozen in ice and not be able to extend. In this situation, you will not be able to open the door!

There have been discussions how to take care of the door handle in cold weather. Solutions includes:

  • Remotely start the car. Melt the ice with internal heat.
  • Pour hot water on the door handle.
  • Put hot water bag on the door handle.
  • Use a hair dryer.
  • Put a packing tape on the door handle. Peel the tape off to remove ice.

Now, maybe you have understood, why no other cars, from the cheapest to the most expensive, use this door handle design?

Reliability issues

Despite of its high price, the Model S has more than its share of reliability problems. Reports are saying, because of power system failures, two thirds of the early Model S cars can’t outlive 60,000 miles. Consumer Reports rated Tesla Model S “the most unreliable EV”.

Safety problems


On Jan 1 2016, a Model S caught fire for no obvious reason at a supercharge station in Norway. Firefighters were not able to put off the fire with water. They covered the car with a special foam and waited the car to melt down.

This is not the first Model S fire incident. There were already three such incidents. As compared to gasoline cars on fire, this is indeed a small number, but the reason why they caught fire is more mysterious. There doesn’t need to be accidents. The Model S can just start to burn mysteriously in your garage!

Unlike Elon Musk’s claims that Model S is very safe, the fire incidents should be taken seriously. Lithium batteries are known to be a fire hazard. Take a look at the fire incidents of the Boeing 787 Dream Liners and see why Model S fires shouldn’t be taken lightly.

Safety issue of the autopilot

Please refer to my new post on this issue.


Comments Off on Design Flaws of the Tesla Model S

Posted by on December 11, 2015 in car, design


Three famous quotes

These three quotes are logically related to each other. Have you figured out their logical connections? ;-)

UNIX is simple, it just takes a genius to understand its simplicity. —Dennis Ritchie

This suit of clothes is invisible to those unfit for their positions, stupid, or incompetent. —the emperor’s weavers

If you can’t explain it to a six year old, you don’t understand it yourself. —Albert Einstein

Comments Off on Three famous quotes

Posted by on February 18, 2014 in culture, philosophy, programming, religion, wisdom


RubySonar: a type inferencer and indexer for Ruby

I have built a similar static analysis tool for Ruby. The result is a new open-source project RubySonar. RubySonar can now process the full Ruby standard library, Ruby on Rails, and Ruby apps such as Homebrew.

RubySonar’s analysis is inter-procedural and is sensitive to both data-flow and control-flow, which makes it highly accurate. RubSonar uses the same type inference technique of PySonar, and thus can resolve some of the difficult cases that can challenge a good Ruby IDE.

Comments Off on RubySonar: a type inferencer and indexer for Ruby

Posted by on February 3, 2014 in programming languages, static analysis