<M <Y
Y> M>

Suppressing self-criticism

Whenever I think about writing what's going through my head, my inner critic wakes up. This starts an inner monologue about the quality of the thoughts I have or their quality in writing. I start to doubt they are worth sharing or even putting on writing at all. "Why do I write this in the first place? Is this worth anything? Is this interesting to anyone?" It's a strange thing to say when I express it like this, on writing. But that's what happens. I can't deny it.

If I then start to question this line of thought, this self-criticism, I begin another inner monologue that's on the next meta-level. I try to decide whether this self-criticism that I notice in myself is a useful quality or property. I realize that by critisizing my own thoughts I can filter the thoughts that are in fact irrelevant. I feel that I can improve the quality of my writing by letting this process of self-criticism run free.

On the other hand, I realize that if I do let self-criticism run free, the most probable outcome is that I shut out almost everything. The only thoughts and ideas that escape this process are harmless trivial thoughts that are not dangerous to expose. If I in turn take the side of self-criticism, it will likely conclude that this is the way it should be. That it's desirable that I filter out exactly those thoughts. That it's good to have this self-criticism run free and strong so that these thoughts do not get out.

This whole process will lead into a sort of happy conclusion that I just completed a cycle of logically sound reasoning. That the issue is solved.

But how do I know that the reasoning is correct?

The reasoning does feel correct. But this is not a good proof of anything. If my original desire was to write about my true inner thoughts, then this original desire was negated by the inner monologue that I went through. But this is not how I feel about my original desire! I still want to write about my thoughts. So there's some sort of conflict of desires here.

So what I've come to conclude is that this inner self-criticism is a process that inevitably blocks some of the desires that I have. If I really want to fulfill these desires, then I need to somehow silence my inner critic. In fact, I think that if I let just a little bit of self-criticism to run, it will swallow all these "dangerous" thoughts. That's its nature. It is there to do exactly this filtering.

So, as a pragmatic matter, I've concluded that I need to suppress this self-criticism completely if I really want to write about these issues that I feel afraid to expose. I'm not referring to some sort of "sick" thoughts that I have or anything like that. I'm referring to really simple thoughts and ideas that do not seem like dangerous at all on surface. The thought of saying something trivial or, heaven forbid, something wrong is frightening. Why this is so, I do not know.

However, I do know that I can temporarily suppress my inner critic. This might sound a bit strange, but it's just a matter of noticing this inner process and to take control of it. If I realize that there's this sort of inner process, I can become aware of it. And with some practice, I can shut it down. When I feel that this process of self-criticism starts strengthening, I focus my attention to deal with this meta-issue instead of the thing I was actually doing.

So, in a way, I need to take this pragmatic approach, to suspend self-criticism, to writing as an axiom of the whole system. Not because it's the right way to write, but because it's the only way to write.



The legend goes that Google has hired all the really smart people in the field. How is it possible, then, that some of their popular applications have user interfaces that constantly violate widely known principles of usability?

I know it's a stupid question, but I feel annoyed by the combination of the claim that Google has super-smart staff and the fact that they have these novice mistakes in their interfaces. I mean, come on, who the hell still thinks that dialog boxes are a good idea?

[1 comment]



Looking for direction

I've been longing for a more directed goal for the intellectual stuff I do in my own free time. I used to play a lot of poker, which didn't require much mental energy and didn't take me anywhere. It was fun (though all too often extremely frustrating) at times, sure, but kind of pointless. I'm interested in a lot of things and I enjoy learning about novel ideas, however unrelated to anything else they seem to be.

But one area of interest that has kept me fascinated is the ideas that Jeff Hawkins talked about in his book, On Intelligence. He basically claimed that he has come up with new a theory of intelligence. Somewhat preposterous claim, but the book is compelling. He isn't saying that he has thrown everything out. Almost all of the parts of his theory have been represented in some form or another. But his claim is that his theory puts them all together in a new way.

This stuff is what I want to concentrate on. I want to understand the theory better, I want to understand the neurological background, and I want to get my hands into the implementation of the theory.

How do I know that this is a fruitful approach to the problem? Especially given that I don't know much about the problem space beforehand. How do I know that Hawkins's approach makes sense? How do I know that this approach will have any practical relevance in the future? How do I know that it's worth investing time on this stuff?

I don't know.

His theory has a lot of intuitive appeal for me and once I understood the basics of his ideas, it just seems to make a lot of sense. I'm pretty sure that I first heard of his ideas from Aaron Swartz's weblog entry and Aaron's enthusiasm really caught on me. I went on to see some lectures by Hawkins on the net and to read the book. It all makes a lot of sense.

Now, none of this proves anything. To give you a concrete example, there's this demonstration that Hawkins brings to his lectures, which is basically their first prototype of the concept. It builds a model of 64x64 pictures shown to it. After it has learned these pictures, you can show it new slightly modified versions of the pictures and it can tell what they are.

If you describe the prototype to someone, they will probably not be that impressed. If you describe it to someone who has background in neuroscience or computer science, they will probably tell you that there's nothing new or particularly hard in what the prototype does. Or if it's someone who's working on the similar subjects, they'll tell you that they've already done more impressive stuff.

So it's really hard to get any real reassurance. The only thing that I can go by right now is the feeling I get from his book and his lectures. The really positive part of this is that they have a concrete non-vaporware implementation of the concept, which is downloadable from Numenta's website. The fun thing about it is that from the last I saw, it had a Python interface.

It will take some time until I can really say what impact it will have on me or whether I can make something useful about it. But that's what I will pursue for now. I don't have much free time, but it's all the more reason to direct my efforts. My target for now is to understand the mechanics of what they call the HTM (hierarchical temporal memory system) and understanding (neo-cortical) intelligence in general.



Use of the abbreviation HTM

To make it easier for me refer to the concepts Hawkins talked about in On Intelligence I'll henceforth use the abbreviation HTM (hierarchical temporal memory system) for the implementation of the new theory of intelligence that Hawkins proposed. These entries will also be categorized with the tag 'htm'. The weblog creates a RSS feed for entries with HTM category (so long as I remember to categorize them).

Also, while writing about HTM will mostly serve my own needs, I would be interested to hear whether anyone else is curious about this technology (or perhaps is convinced that it's not worth pursuing or whatever). Comment here directly or you can email me at jajvirta@gmail.com if you don't want to admit your fascination to this technology publicly.



The beauty of this information network we have is that much of the reference material in Numenta's education pages are actually directly accessible through internet, or at least available for ordering from the Amazon. Now I have no excuse for not trying to understand all that stuff.



One specific occurrence that threw me back to HTMs and the theories behind it was seeing the interview of Rodolfo Llinás. To sum it briefly, one of his points was that brain is basically a prediction machine. To me, what Llinás said in the interview resonated strongly with the ideas of Hawkins.

The interview itself is very fascinating. Whether or not you are interested in HTMs.



I'm reading Rodolfo Llinás's I of the Vortex. Fascinating, challenging book. But now that I have HTMs as my context, I can't help shouting in my head that "yeah, this is exactly what is explained by HTMs!"

To put it simply, Llinás says that brain is an organ that transforms information from the external world into goal-directed movements. (And therefore thinking is just internalized movement.) He talks how brain has to find "universals" from the nature and transform them into an internal (neuron-based) representation. Which is just what HTMs are all about. Whether HTMs are the right model is another discussion.

I'll dig for quotes from the book later.



My use of English language takes odd twists as I find myself using expressions that I'm not quite sure are correct. I no longer translate everything explicitly to Finnish in my head. Sometimes an English word comes to my mind when I'm trying to say something and I have to look up the word in dictionary only to find out that it really was the word I was looking for.

I have no idea how others perceive my writing in English. I know that I can get some ideas across, but I also know that more complicated ideas require more effort on my part to even get expressed in English. And I'm sure I make fundamental mistakes in my grammar that I fail to notice.



Ubiquity command for trying out functions in the Ubiquity Command Editor

One thing I find lacking in the Ubiquity Command Editor is that in order to try out a function I've coded I can't just execute it directly. Let's say I've programmed a function called adder, like this:

 function adder(x, y) {
   return x + y;
 }
 

As far as I know, there's no direct way to test whether the function works as intended. So I made this Ubiquity command that I named 'evaly' that eval()s the parameter to the 'evaly' command and prints its result to the output pane.

So now I can fire up Ubiquity and write:

 evaly adder(10, 20) do
 

which outputs:

 The output of your function is: '30'
 

(The 'do' in the end is there so that the command doesn't try to eval () when I'm typing the command.)

Now, it's pretty limited and certainly has bugs, but I found it pleasant that it was this easy to make this sort of command that I find useful in my own development. Pretty cool.

Here's the command (just a ten minute sketch, but there you go):

 CmdUtils.CreateCommand({
   name: "evaly",
   description: "evaly: evaluates arbitrary text",
   help: "eval()s first parameter if last parameter is 'do'",
   takes: {"input": noun_arb_text},
   preview: function( pblock, input ) {
     var args = input.text.split(" ");
     if (args[args.length-1] == 'do') {
       var input_str = "";
       for (i = 0; i < args.length-1; i++) {
         input_str += args[i];
       }
       var s = "var x = " + input_str + ";";
       eval(s);
       pblock.innerHTML = "Output of your command: '" + x + "'";
     }
   },
   execute: function(input) { } 
 });
 



An aside: 'HTM' has got to be worst term as far as googlability goes:

Results 1 - 10 of about 2,360,000,000 for HTM. (0.15 seconds)