Downvoting Mischief

Sergey Brin gives $500,000 to help Wikipedia

I was reading comments to this piece of news on Hacker News, to see if I could spot an objection I was considering. I had to search for a % sign to sieve through all the comments.

Close to the end of the page, I found a comment by ajross, that was basically my objection. The only strange thing was it was almost transparent, nearly impossible to read. In fact, on Hacker News comments can be downvoted, causing them to fade out.

Downvoting is a feature created for fighting spam (and troll) contributions to user generated content sites. Sadly, it’s mostly used as a censorship means in all sites allowing it.

I think downvoting couldn’t be expected to work differently than that because it is quite easy (and often right) to interpret upvoting as agreement, and by contrast, downvoting is seen as disagreement.


Late Static Binding Example


class A
    static public $data = 'A';
    static public function set()
        //self::$data = '--'; //normal binding
        static::$data = '--'; //late binding

class B extends A
    static public $data = 'B';

class C extends A
    static public $data = 'C';

echo A::$data, B::$data, C::$data;
echo A::$data, B::$data, C::$data;

normal binding


late binding


Wondering about LEFT JOIN evaluation in MySQL

From LEFT JOIN and RIGHT JOIN Optimization

The join optimizer calculates the order in which tables should be joined.


MySQL implements an A LEFT JOIN B join_condition as follows:

  • Table B is set to depend on table A and all tables on which A depends.
  • Table A is set to depend on all tables (except B) that are used in the LEFT JOIN condition.
  • The LEFT JOIN condition is used to decide how to retrieve rows from table B. (In other words, any condition in the WHERE clause is not used.)
  • All standard join optimizations are performed, with the exception that a table is always read after all tables on which it depends. If there is a circular dependence, MySQL issues an error.
  • All standard WHERE optimizations are performed.
  • If there is a row in A that matches the WHERE clause, but there is no row in B that matches the ON condition, an extra B row is generated with all columns set to NULL.