Category Archives: Ideas

Democracy's flaw

The problem with democracy is that it assumes that pleasing the people and governing well are the same thing. They are not. Take Bush’s tax cuts, for example: people love getting tax rebates. But that doesn’t change the fact that they have helped contribute to a huge budget deficit. Maybe they do stimulate the economy – but if they have, the change hasn’t been apparent, particularly as we head into what appears to be a rather deep recession.

I don’t know of any existing system that would perform better, however. I suppose it’s just the best we have until the next generation of political thinkers comes along. They won’t be in the US, though – these sorts of things are always the result – or cause – of a geographic shift in political power.

Anomalies

Watch the people who never fit in, for they are the ones who are going to stand out.

People think being an anomaly is a precursor to things like school shootings and other violent behavior. It probably is, but that’s a very small minority of anomalous individuals (and sometimes you get normal people doing that too). More common are the ones who emerge as society’s next generation of leaders.

I think the reason is simple: if you never fit in, the only person you can depend on is yourself. No group is going to come to your aid, no one is going to catch you if you fall, and thus you feel keenly the full brunt of either success or failure. You might give aid freely, but you’ll never learn to expect it in return.

Furthermore, when one is fully exposed to the laws of action and consequence, reality is an excellent teacher; one either learns quickly or perishes.

Finally, standing apart cultivates individualism. With no allies, there is no choice: you have to stand on your own. You must see where you want yourself to be, and you must figure out a way to get there. This also requires a self-derived hierarchical value system that praises greatness. This runs into a distinct clash against the indifference of the masses, and after a while, you begin to see this indifference as a disease: it stands for everything opposite of what a self-starter believes in, and thus dichotomizes the population into apathetics and movers.

Now, what happens when two movers meet is rather interesting, because it’s likely to first happen rather late – the apathetics greatly outnumber the movers. There is an almost immediate sense of respect, something that screams “this person is different; this person is competent.” These are the moments that erase the built-up cynicism that anyone observing society from the outside would necessarily acquire; the existence of such individuals – and the principles they stand for – justifies all of humanity.

These are the people I am trying to find to start my university. They are the root cause of every meaningful social construct that exists.

Self-made

Self-made people take something that isn’t valuable and, through their own efforts, make it so.

It’s a poignant differentiator: it takes no effort to make much out of much, but a great deal to make much out of little.

Some mathematical thoughts…

For some reason, fixed points in multiplicative functions fascinate me. I was thinking about one of my favorite functions, the divisor function (sigma), and figured out an interesting minor mathematical tidbit, which I’m recording now so I don’t forget it.

If x is an (even) perfect number, x = 2m-1 * (2m – 1), where m is a Mersenne prime.
σ(x) = 2x by definition, but σ(σ(x)), that is, σ(2x) = 2m * (2m+1 – 1).

Masks

Like most other INTJ types I know, I’ve adopted a “mask” to deal with strangers, since the merest expression of my true personality is apparently a threat to people’s well being. At least I don’t get beaten up for being different anymore, like I did in high school. Perhaps I misunderstood the aggression as being a social phenomenon, when in actuality, it was motivated by a subconscious sort of fear. Either way, I’ve always tried to avoid scaring people, because all I really wanted from anyone was to be either understood or left alone.

This causes some very powerful people to adopt a ruthless drive for mastery to compensate, and that’s a pity, because not only does their agony continue, but they become a special breed of tyrant, devoted to reciprocating the misery that was meted out on them – and more often than not, they are terribly effective at doing so.

The rest of us take it in silence and accept that it is merely transient. It doesn’t kindle vengeance in the same way, but it profoundly shapes one’s worldview. These are the “tortured geniuses” – unable to find any communal niche in society to which they can belong, they have no choice but to forge ahead alone.

I find it ironic that the very traits that have made me as successful as I have been thus far are the same ones that I need to hide, however. Not just from strangers, either – my father still thinks that anyone not currently in the workforce is worthless, despite the fact that the research I’ve published should have a much more profound impact on society because it’s an application of a unique talent. Any attempt to convey the fact that a stratification exists between the activities one can devote one’s time to – that some are indeed “higher” or “more worthy” than others – is met with outright refusal to believe, usually accompanied by some sort of personal attack. After all, he’s making money, right? To him, this is the primary justification and the imperative for what he makes of his life. The very thought that I am able to obtain a well-paying job but consider the ensuing truncation of my own ability to implement my visions an important reason to proceed with caution is completely foreign to him – and almost certainly to an overwhelming majority of the public, if the groups I’ve been forced to associate with throughout my life have been any sort of representative sample. To use a somewhat inaccurate analogy, he doesn’t yet realize that I’m not scoring the game in the same way that he is.

In the end, it’s yet another constraint that is added to the web that already slows us down – and by now, the web I’m caught in is getting very thick. I don’t wish harm on anyone – why can’t they simply accept who I am? They’ll gladly exploit the fruits of my labor and the labor of those like me, but they will never acknowledge the worth of the labor itself.

Finding good programmers

I just read an interesting article on Slashdot (made moreso by the fact that I have an interview with a company looking for the very best developers later today) about how a company can go about finding superstar programmers. As I expected, the discussion veered quickly into what I now call “the scientist bias”. That is, people began talking about how to set up tougher interviews, screening more rigorously, not checking past work, etc. etc. It’s the same sort of closed-mindedness that I lamented about when discussing peer review (and I still lament, even though 4/4 of my recently submitted papers were accepted). Just as you cannot hope to discover great ideas by being closed-minded, you can’t hope to discover great people by being closed minded.

The easiest way to find good programmers, I would think, would be to first admit that, like peer reviewers, you don’t know precisely what you’re looking for. Just as one scientist unfamiliar with the work of another can’t objectively judge the full ramifications of the other’s science, one programmer cannot objectively judge the programming ability of another. Pretending that you can introduces all sorts of ascertainment biases into the loop, not the least of which being that some people just don’t interview well. I know – I’m among them.

Once you admit that, look at the candidate’s past work. Run it. Try to break it. If you’re feeling adventurous, sic QA on it and see what they find. See (or ask) how long it took to make, how much maintenance had to go into it, and how efficient it is. Don’t neglect the circumstances under which it was written, either – I personally wrote some very professional code when I was 12 with no formal CS education, which I think is quite an achievement. I couldn’t have used knowledge I did not possess, but I made up for it with sheer ability. Not many people independently rediscover alpha-beta pruning at 14, for instance 🙂

Next, if you want to see how the person can actually code, give him a short assignment and ask him to hand it in the next day, for example. This models a real workplace condition – the skills demonstrated in the assignment are the same that will be demonstrated on the job.

By the time you bring someone in for an interview, you should basically have made a decision to hire already, and the final interview would then consist of making sure the company and candidates were fits for each other. If you ask any sort of technical question, ask it in full and let the candidate work. If you jump in every 5 seconds to change the requirements, it’s guaranteed to screw up the candidate. This happened to me during my final interview at Google and really cast doubt on my view of the whole process. For example:

“Write an algorithm to reverse a string”
*Writes about 80% of it, when suddenly…*
“Do it with just one byte of storage”
*Erases and starts over, getting about 50% of the way*
“Making just one pass over the array”
*Erases and goes again*

etc.

I think that interview actually went well, as I was able to perform everything the interviewer asked without hesitation, but it was a very frustrating process, and prevented me from forming any lasting “big picture” image of the problem.

Anyway, those are just my thoughts on the process. Right now I have to put up with whatever techniques people decide to use, but when I hire people, I’m going to do it my own way.

(Update: And I am completely amazed, but the average programmer apparently only codes 76.7 lines of code per hour. This isn’t a measure of quality, just speed, but now I understand what the mythical man month means about the best developers being orders of magnitude better than the worst.)

"Putty" classifiers

I’ve had this idea for a while, but was constantly debating in my mind whether it was the same thing as an SVM with a kernel. I finally came to the conclusion that it wasn’t:

Start with a hyperplane boundary and then split it into warp/deformation points. Optimize the warping by minimizing MSE using gradient descent (or something) and it should begin to take on the form of the points. Impose some sort of regularization to prevent overfitting. Since warping can modify the plane in three dimensions, it’s no longer a hyperplane, but neither is it equivalent to passing a hyperplane through a kernel.

It should be a very powerful means of performing regression (and thus classification). I might research it later; I have too much on my plate now.