Wednesday, September 17, 2014

The extended mind

The brain and body is limited

Human has a limited brain and body. Though there are different thoughts and ideas that come into mind but pursuing them all is impossible. And even it is very difficult to reach a limited list of goals. One of the cause is the limited capability to remember all the tasks needed to be performed.

The brain is just like a computer

To a computer scientist the brain is comparable to a computer. And it has memory just like the computers. The memory can fall into two catagories,
- Short term memory or working memory(WM) in psychology is something more aligned to the RAM of the computer.
- Long term memory in psychology is like the hard disk.

On execution, thoughts and work processes are loaded in working memory to let it shuffle and get things done. For example, suppose a person is opening a lock with his key. At first, he thinks about the key in his pocket and grabs that in one hand, while he saves the goal(to open the lock) in the WM(working memory). And then he inserts the key into the lock to open it. This is easy.

Multitasking and context-switching problem

But the brain is not as good as the computer when it has to perform two cognitive tasks together. Suppose a person is thinking to open the lock and he has grasped the key in his hand. He has the goal to open the lock in his WM. At that very moment, someone calls him on the cell phone. The WM is full of the urgency of incoming call. As WM is limited, the thoughts to open the lock may be erased by the new information. He may mistakenly grab the key and put that in the ear. This may happen. Doing more than one cognitive task at a time may mess things up.

It is possible to extend the mind

For human it is hard to multitask. So the right thing is to do things one by one. If he has different things to do then it is helpful to maintain a list. A to-do-list. It is a small paper that holds your memory for future execution. In this way human can extend his mind.

People have used this idea of extended mind for long time. One of such extension is the written books. The books are the concepts of mind that are put into papers for recalling or for transmitting to people. Or the extended mind can be any written paper. Suppose someone wants to sum two big numbers (eg, 23874283 + 238479283742 = ? ). It may not be possible to do that using the WM only. But it is possible to do that easily using pencil and paper(like in the young days).

So it is a very old idea. Humans are curious about the inner working of themselves. To know the limitations is one way to know that. And to know the work-around is the novelty.

Monday, August 25, 2014

Profile thyself!

This is an idea to profile yourself. The idea is derived from three core thoughts ,

  • Know thyself.
  • We are what we repeatedly do.
  • You can only trust the numbers.

The three thoughts are connected. You see, you first understand you need to know yourself . Now who are you ? you are what you repeatedly do . And the way to know what you do repeatedly and how well you do that you need to count them. Finally you are inclined to profile yourself.

And there is a saying(not proved though) that doing something more than 10,000 hours may make you expert. I just want to know how many hours I do one such thing. So I profiled myself. Here is a page full of report.

There are other people trying this too,

Friday, December 16, 2011

Portfolio


MiniIM is messaging client for jabber/xmpp protocol. (Java2mobile edition) Try it here at desktop.
Get source here,
svn co https://miniim.svn.sourceforge.net/svnroot/miniim/trunk miniim_trunk
It renders xml(some that is used to minimize gui coding like qml) to gui on fly .

MiniIM is messaging client for jabber/xmpp protocol(rewritten in C, Qt).(UNFINISHED)
Get source here,
git clone git@github.com:kamanashisroy/miniim.git
The development platform is now debian linux. It uses Qt to render GUI . It includes a small memory manager that I call object pool plus. This memory library includes a lock-free queue (tested in production) . And It uses the Object Oriented notion in C .

Wednesday, December 10, 2008

Discussion Group

There is a new discussion group open for MiniIM project. Thanks go to google-group-team for such wonderful support. Vision, action and community support mean success.

Serializable kdom rocks

The kxml project means a lot for j2me. I have done some modification to make a document serializable in Recordstore. Here is the code. You can follow the usage examples in the code to make it work for you.

To use this code you just need to get the code from trunk. The obfuscator will skip the classes you do not use.

Browser features explained

Earlier I talked about my vision. In that application there are pages like "More", "About" they are rendered from markup files(more.xml, about.xml, ..) found here. They are following markup.dtd rules. Surely you can create documents on fly and work on DOM.

Note that it is svn-branch, the trunk is always containing the updated features.

And there are application-switches making it possible to interact with user. Here are the responsible code doing the magic.

The markup is not rich in features. It was good to follow an existing markup rule. I am hoping to do that in future. And I am keeping eye on w3.org for that.

Tuesday, December 9, 2008

XMPP client with browser-like features

I am back to j2me again. In my earlier attempt I was trying to render a WML content. Now I am here with a little advanced browser like feature to show web content. Note that I have dropped the idea of writing WML renderer. I have added a markup renderer. To be specific it can render a list of markup items. Here we can show on line content. It is stylable on compile-time.


Motivation
When I want to add some feature to my sweet application, it just gets bigger in size. And bigger size prevent it to work in low end mobile phones. So the idea is to write little j2me code and add most of the features in the servers. And here I am sharing the implementation of the idea in a hope that it gets richer and useful to you.

Similar efforts
There is something similar available in ZK project. And there is also a browser feature in j2mepolish project. I prefer mine, because I believe that it has very small footprint, it is light-weight(reuses objects) and I am willing to process any feature request that will suite this. Mobile Ajax is another interesting project.

Input fields
It has textbox, selection(multiple) box, checkbox, radio input ideas implemented. I am hoping to add some multimedia feature as well. Like an input box for image, sound etc and also playback of the media content.

Benchmark
It is tested on WTk monitor output that shows low object instantiation.

Caveats
It is using document parser from kxml project. The document and elements there uses vectors and it makes the parsing little slower. I am looking for some alternative to this.

Thinking forward
I think this is a step forward to social features. The next thing to do is to write web application to represent information from social sites. I am now looking for any kind of reusable component for this. I mean I am not trying to reinvent. And it is hard to maintain too. If you think you have nice idea or have something to say please feel free post comment or email me directly.

Additionally it has a IM framework to develop end to end application too.

Please consider testing MiniIM in your mobile.