Search This Blog

Wednesday, 11 May 2016

Thoughts on DNN and AGI

DNN/Deep learning has impressed us with its capability to recognize image and audio with unprecedented accuracies.

Systems like AlphaGo(which beat the best human player on Go), are trained on huge cluster of powerful machines over very very large dataset. Google spend millions if not billions on such projects.

But the knowledge consumed by AlphaGo cannot be understood("do we need to?" is an ethical question though). In otherwords, we cannot instruct the system to perform a task, procedurally. Humans still have to be trained for developing a certain skillset, That is how we learn to work as a team, Read, integration with other systems.

Training the intelligence systems involves either of the following methods.
  1. Provide the system with large dataset and learning algorithms, and let the system figure out the best possible representation for knowledge.
  2. Provide the system with large dataset and learning algorithms along with suitable knowledge representation model.

Thre are two kinds of knowledge embedded in the data. The image and audio streams are raw in nature, i.e they are concrete knowledge, whereas the text and content of speech and visuals are comprised of abstract knowledge. Infact, they contain knowledge with multiple levels of abstraction.

To put  it in different perspective, if we consider image/audio recognition to be mining of a pattern from clump of data, then we can think of the recognition of abstract entities or ideas among the content of image/audio to be mining patterns within patterns within patterns and so on.

DNN distributes it knowledge over the network in the form of weights. The weights is the knowledge. This works well for concrete data like image and audio. But for abtract ideas, it may not. Even it will, it will be with great diffculty. I will explain why I think so.

Lets take how we feed the inputs to DNN. It takes a vector as the input. Images/audio, naturally gives themselves into a vector. But for, abtract content we need to represent the abstract entities in the form of vector.

For instance, in case of word embeddings, the words of the langauge are assigned an interger. How do we assign an integer to a particular word varies from you to me to another person. We train the system and made it do something useful. Now the knowledge gathered by the system is not share-able. Since the knowledge is represented by the weight matrix, a subset of the matrix outside the whole matrix is probably meaningless. For each element in the matrix, every other element sets the context.

In constrast to DNN, other AI systems such as OpenCog for instance represent, knowledge in the form of atoms in an hypergraph. The entire knowledge base is contain in what is called Atomspace. This atomspace is used to store all kinds of knowledge, declarative and procedural. The atomspace can be instructed to perform something though rewritting the graph, i.e the knowledge.

Mining patterns within patters can be done relatively easily with such represention, by scientists and test different learning algorithms and understand how they behave. i.e we can be the psycologits of AGI machines.

Although it may be possible to build human like brain with just DNNs, it will not be accessible to everyone, due to the huge cost involved. The community at present cannot afford to spend the cost, be it money, time, education. So, I believe it is better to employ an hybrid approach. Use DNNs for recognizing concrete knowledge and OpenCog like systems for more abstract level idea, like metaphors.

How do make AGI possible as a community? Setup a BOINC like infrastructure for AGI training? Distribute the Hypergraph over a P2P network like the meshnet? How do we avoid the corporate lock-in?

Tuesday, 15 March 2016

MeshNet in Puducherry

It is been three years almost.  Welcome to new era of mesh-networks. This is the first post about our attempt to implement mesh-network in Puducherry. A series of posts will follow.

File:NetworkTopology-Mesh.svg


What is Microsoft, Google and Apple to computers and services are the Cisco, Juniper, Verizon, and in india Airtel, BSNL and Reliance to network infrastructure. They pour billions if not trillions of dollars into building and maintaining the infrastructure. And even more money into supressing the competition and alternatives.

What do they have?

1. Establishment - BSNL, Reliance and Tata are unquestionably the backbone of networking infrastructure in India.
2. Marketing - Airtel owes its strong presence in India to its marketing.
3. Power -  Some of these organizations can effect regulations of govt, if they wish.
4. Money - In terms of billions a year.

Money and power creates a positive loopback aiding these organizations to attain even more money and power. So our sane intial step will be to create a network which complements and works in harmony(whenever necessary) with the already existing network.

What do we have? A clutch of interested volunteers. If we are to rival these organizations(which is possible, I agree) we need the support of the people, not just few of us who want to deliver better alternatives to the people. Let's face it. In general people are reluctant to try and learn new things. The reason is they don't want a better system, when exisitng one gets the job done. we resist change, because we don't trust each other. So our ideal goal should be to make the people more liberal. Making people liberal can be a life long project on its own. So lets settle for the mesh-net.

Nothing works better than drama to gain people's attention. Attention is not enough. You know why male perfume advertisements throw a few hot girls in there. We need to attract people. We need to organize a grand event(what do we do in that event?) in a college(no other place comes to my mind, suggestions?)

As already mentioned, people won't trust us with their devices to install some great tool which will enhance public knwoledge(but they are ready to install crappy games and flash light apps, which will steal the shit out their phone[1])

As a branch of thoughts from our first MeshNet meetup at open-drop
* We need to install mesh nodes among few potential zones.
* We need devices to do so? How many devices do we have at hand(Should have a discussion on which cheap and feature-rich router to use for our campaign, if you will)
* We need funding
* We need a dedicated machine to compile openwrt to multiple targets(I guess that can be arranged)

Lets say we do organize a grand event. Who are all going to come to that event. What is going to be our influence over them and what is going to their influence over our activity from there on. How do we make sure that people stick to the plan. What activity will demostrate the power of mesh network. How do we illustrate the difference between centralized and decentralized networks to them, the laymen.

Talking and presenting are the only key ingredients, I agree. There is a little problem with that. It take too much time, and active participation from us. How many of us have the gumption and conviction to go through with this?

People and society have their own issues. And we do too?
* Our own goals
* Finanicial issues
* Peronal issues
* Gradual decline of (interest/attention?)taste/motivation in one thing

If talking and presenting are not our only devices, what else are we gonna employ?
Cookipedia and its kind, are good ideas.
Another messaging app?
Localizeed P2P file sharing? (We already have wikipedia dump)

If we are gonna host services, where do we host'em? (assuming ipfs is not our initial step) and what purpose the internet using individuals do mostly? browse web? share stuff? watch porn?

We must admit that this is unchartered territory for most of us. We need to sit and go through countless frustrating hours to get it working both technically(we are lucky here, since most of the things are in place) and politically(so damn unlucky).

I think and hope the responses to this post generates more questions than it answers.

Lets talk about some technical problems:
how do we identify other people, in mesh-network.
Someone mentioned about statistical algorithms for semi-human-readable(seeding names instead registering by hand) names in the comments section of this post[2]

And very importantly, we need to have bigger goals than just implementing mesh-net as an alternative internet. We by ourselves need a direction, a higher purpose to empower people and let them grow, and for which the mesh-net will act as a viable tool. The desire to implement mesh-net by itself will not drive motivation. It is not the desire to gain money that drives us to gain money, it is the thought of spending it after gaining it.
    உள்ளுவது எல்லாம் உயர்வுள்ளல் ‍மற்றது
    தள்ளினும் தள்ளாமை நீர்த்து.                     - வள்ளுவன்.
[1] http://truthinmedia.com/exclusive-top-10-flashlight-apps-are-stealing-your-data-even-pics-off-your-phone/
[2] https://nohats.ca/wordpress/blog/2012/04/09/you-cant-p2p-the-dns-and-have-it-too/

Sunday, 13 October 2013

The Pathway for Free Softwares

I have used, linux, gimp, blender, firefox, Oo, Octave etc. My major convern today is the digital content creation tools - Gimp & Blender. Why are they still not used in high budget movie making studios. why still maya, 3d max, photoshop, lightroom, vegas etc.

Why won't they use  software which provides the same features(more or less) even when they are free?

Well first reason is training the employees, and established work flow, and tested & proven methods. Another answer is, no one will use the free software, if it just does what its commercial alternative do. It shud give more, so that the users are compelled to make a switch from a software which is proven to be versatile and they are already comfortable with.

Second reason is the ease of usability. well we all know, when a new programming language shows up, and if it does not follow the syntax of C/C++ or Java family - we curse them without giving any consideration to it design philosophies. It applies to softwares too. Free softwares, design stunning user-interface methods, tailored to the work it does. Blender3D is a great example. But users cannot be more repelled for any other reason.

Another reason, is support. Autodesk supports the user of their software and Adobe too. And Nvidia supports both Autodesk and Adobe with its hardware engineers to run their apps in nvidia hardware faster and stable. Well almost no free softwares can afford this. I know how hard it is to edit 4000x4000 image in Gimp without losing quality. also Gimp tools still not mature enough to be usable for serious work.

Another major reason and very important one, whenever a free open source projects starts to form, it tries to fulfil everything, its alternative does. Thats  bad. This is why , it moves and improves very slowly, in overall measure. What they shud do, is that, they first try to one thing and be best in it in all the ways. Learning something new to do small things in new ways is easier than learning blender for serious work. Follow the unix philosophy - "do one thing and do it well"

Software does their job well...

Graphic tools
  • Animation     - Maya, Motion builder
  • C4D               - Hair and fur
  • Compositing - After Effects, Nuke, Fusion
  • FX                  - FumeFX, Houdini, Realflow 
  • Image editing - LightRoom, Photoshop
  • Modelling     - Modo
  • Rendering    -  Vray, Arnold, Octane, Renderman
  • Sculpting      - ZBrush,
  • Tracking       -  Syntheyes, Boujou, PF Track
  • UV                 - Ptex 
  • Video editing - Composer, Premiere, Vegas

Game Engines
  • FPS - Unreal, RAGE, Quake
  • RPS - BANG,  
Office tools
  • Text editing - Gedit, Wordpad
    • for programmers - Vim, Emacs, Geany, Sublime.
  • Email client - Outlook
Online tools
  • Commenting system - Disqus
  • Bookmarks - Digg, Reddit, Saved

Take a look at mobile apps nowdays. Successful apps do one job and does it good.

With all that said, I use Gimp and Blender and this post is through firefox 22.0 in Fedora 17. Call me a crack - I don't bother. I use free software for all my work. and I was once cannot make my presentation, because I had the presentation in ".odp" format and no one had Oo in my class. after that I use pictures for all my presentations.

My entire point is, if you are going to invent a software
  • keep it simple
  • make it good at doing it job
  • get the people to use ur software, by not frightening them will hell a lot of features
  • once you software have reached enough people, add features
  • but think of what you software is going to be in the design phase itself.


This started as a facebook update and turned out to be too long to be it. So, I made it into a blog post. Hope you don't mind. Please comment, the softwares I am missing to list and you want to add. I am more than happy to do.

Friday, 26 July 2013

There is no such thing called Code

There is no such thing called ubuntu, fedora software - Only linux softwares
There no such thing called linux or windows softwares - Only softwares
There is no such thing called softwares - Only source code
There is no such thing called source code - Only specifications and protocols
There is no such thing called programming language - Only syntax and semantics
There is no such thing called compilers - Only translators
There is no such called linux, minix, windows, mac - Only resource managers
There is no such thing called processor - Only instruction set

-----------------------------------------------------
     In the era of open source, there is no such thing at all. You want to develop a software for Operating system X, there is already similar -opens source- software is available for Operating system Y. You just have to compile it on operating system X. If it does not compile, you may need to tweak it a little bit. If it still does not compile, write it from scratch.

    You want port a device driver from linux to other OSes, read the code and write it according to how the concerned OS handles drivers.

    There is no real code, Only Knowledge and requirements. everything else imaginary.

Wednesday, 12 June 2013

My Study on Naming Conventions

     When I started reading programming books, I did not have computer to test my skills. For almost 5 years, I learned only the theory. No practice at all. They were mostly Windows related stuff, and most of followed CamelCase naming method. When I bought my own computer, I started testing my programming skills. Mostly in C.

    Then after few months I started using Ubuntu a linux distribution. I came to know the power of open source. I have heard about Open Source and Richard Stallman long before. Yet, I did not realize his work and the revolution brought by GNU foundation. The linux community mostly used Underscoring method to name variables.

    I always care about name of variables. Infact, the stuff I read how to program weighs a lot less, when compared to stuff like, designing software, naming conventions, debugging techniques, coding style. I still did not read books, Code Complete and Clean Code. But my experience, taught me something.

    Now I use the combination of them. 

      e.g:  Event_newEvent_with(...)
           Ticks_newTicks_fromDate(...)
           String_newString_fromCharArray(...)

    Before deciding to use this method. I was religious to use underscoring to name variable, inspired by GNU, and CamelCasing even before, inspired by Microsoft.

    Which method do you prefer?

Friday, 8 March 2013

Nothing new to make?

Very Old but meaningful one

"Nothing new to make? Nothing new to make?

The shareware archives are full of Ultima 3 knock-offs, Space Invaders
knock-offs, and -- for the really creative -- Civilization knock-offs.
What *hasn't* been done before? How about a role-playing game without
swords, where you construct spells out of working algorithmic parts and
try to sneak around the enemy's defenses instead of wearing them down? How
about an empire-building game where logistics is more important than
producing armies? How about a one-on-one fighting game where each player
has the ability to travel through time, and the sneakiest move is to sneak
up behind your opponent while he's busy punching you in the stomach?

Bonus points if you can name the computer game, board game, or book that
inspired each of those thoughts. So, why aren't you reading those books
and playing those games yourself? All things come to he who researches.
Played RoboRally? Is the principle of pre-programming a sequence of moves
applicable to multiplayer Tetris? Or that jumping-pegs thing? Or a
colonize-the-galaxy game?

On the bookshelf across from me is a spiky plastic ball in a cage; the
puzzle is getting it out. It's tricky. Can that be translated to a game on
a 2-D screen? What would the mouse interface be like?

Last week I sat down with a chess board and a bunch of wooden triangles,
and pointed them at each other until I had some rules. I tested it tonight
with some friends. It's fun. I may code it.

Last week I bought a set of those colored one-centimeter rods that they
use to teach first-grade math. I haven't decided what to do with them yet.
Maybe build a tower, or push them around the table like little trains. If
it's enough fun, it's worth designing a game. Did you play in the mud when
you were a kid? Ever turn the garden hose on a sandcastle and watch it
melt? If so, is there a computer game like that? If not, what's wrong with
you?

Bryce 4 is $200 retail price. (A clever person could find a rebate.) It
lets you build beautiful rendered landscape images, with objects in them.
Ever wanted to write a game like Myst? It'll be a year's work. If ten
shareware programmers write short graphical adventure games, I guarantee
three of them will be more interesting and original than the crap that the
big studios crank out. Are you one of those three, or would you rather
give up in advance?

RPG baking game? (The Princess isn't happy until the cookie dough comes
out just right. Flour is easy, but gooseberries only grow in the vales of
the Giant Goose... Later, you discover what *else* the skills of
measuring, mixing, and precise heating can be used for.)

Hyperspace navigation? There are dozens of books that describe in florid
prose how hard it is to map your way through jumpspace, and why it's
better than sex. Implement this. You can leave the sex out if you want. If
you're stuck for a mathematical underpinning, go look up that weird
chemical reaction that forms spirals. Someone implemented it about ten
years ago for a Siggraph paper -- reaction-diffusion textures. ("Space
cookies!") Prodding that with a stick could be interesting.

Figure out rules for creating an infinite number of Chinese puzzle-boxes.
Bonus points if they're physically realizable -- have an option to print
out blueprints.

A multiplayer game where people all over the world can push pixels around
a board, trying to create artistic and eye-catching patterns. Competitive
cooperation. License the resulting designs as logos and letterhead for
pretentious Internet startups. Get rich.

Core-War-style program fragments fighting in a memory space of random
data. Set up a web site and let people bet money on the results. See what
evolves.

Chris "Balance of Power" Crawford keeps trying to invent a system for
dynamic characters to interact with each other, and the player, generating
a storyline as they go. So far, he's produced nothing coherent. Figure out
what he's doing wrong; fix it. One seminal game, and people will be
writing knock-offs of *your* idea.

Or, you could write something with big explosions.

Everything has already been done -- once, and in the least interesting
way. Do it again, but get it right. If you combine two ideas you've seen
in *different* places, you're a genius. If you use commas and apostrophes
correctly in the documentation, you're a creative visionary. It's raining
soup, as the good Uncle said; don't sit there using your soup bowl to keep
your hair dry.

Have fun."


Source: comp.sys.mac.programmer.games/SXjW24vP-AQ

Wednesday, 6 March 2013

Built Blender3D

    Oh yeah!!! Successfully built Blender3D for the first time. I have tried to build blender from source, so as to debug to understand it, for so many times, and I'd end up frustrated and give up the idea. But this time, I did not want to post pone. There were several, bumps along the way, but I managed to complete the task.

    This is how I invoked cmake. Blender uses two kind of build systems. One is SCons(need python) another one is Cmake(based on the concept of makefiles). I used Cmake this time.

         $ cmake ../blender \
                 -G"Unix Makefiles"  \
                 -DCMAKE_INSTALL_PREFIX:PATH=$PROGB/test-builds \
                 -DPYTHON_VERSION=3.3 \
                 -DPYTHON_INCLUDE_DIR=$PROGB/include/python3.3m \
                 -DPYTHON_LIBRARY=$PROGB/lib/libpython3.3m.so \
                 -DWITH_CYCLES=OFF \
                 -DCMAKE_BUILD_TYPE=Debug \
                 -DCMAKE_INSTALL_PREFIX=$PROGB \
                 -DWITH_BUILDINFO=ON \
                 -DWITH_BUILTIN_GLEW=ON \
                 -DWITH_BULLET=OFF \
                 -DWITH_CARVE=OFF \
                 -DWITH_CODEC_FFMPEG=OFF \
                 -DWITH_CODEC_SNDFILE=OFF \
                 -DWITH_CYCLES=OFF \
                 -DWITH_CYCLES_CUDA_BINARIES=OFF \
                 -DWITH_CYCLES_OSL=OFF \
                 -DWITH_CYCLES_TEST=OFF \
                 -DWITH_FFTW3=OFF \
                 -DWITH_GAMEENGINE=OFF \
                 -DWITH_IK_ITASC=OFF \
                 -DWITH_IMAGE_CINE=OFF \
                 -DWITH_IMAGE_DDS=OFF \
                 -DWITH_IMAGE_FRAMESERVER=OFF \
                 -DWITH_IMAGE_HDR=OFF \
                 -DWITH_IMAGE_OPENEXR=OFF \
                 -DWITH_IMAGE_OPENJPEG=ON \
                 -DWITH_IMAGE_REDCODE=OFF \
                 -DWITH_IMAGE_TIFF=OFF \
                 -DWITH_INPUT_NDOF=OFF \
                 -DWITH_INSTALL_PORTABLE=ON \
                 -DWITH_INTERNATIONAL=OFF \
                 -DWITH_JACK=OFF \
                 -DWITH_LIBMV=OFF \
                 -DWITH_LZMA=OFF \
                 -DWITH_LZO=OFF \
                 -DWITH_MOD_BOOLEAN=OFF \
                 -DWITH_MOD_DECIMATE=OFF \
                 -DWITH_MOD_FLUID=OFF \
                 -DWITH_MOD_OCEANSIM=OFF \
                 -DWITH_MOD_REMESH=OFF \
                 -DWITH_MOD_SMOKE=OFF \
                 -DWITH_OPENAL=OFF \
                 -DWITH_OPENCOLLADA=OFF \
                 -DWITH_OPENMP=OFF \
                 -DWITH_PLAYER=OFF \
                 -DWITH_PYTHON_INSTALL=OFF \
                 -DWITH_PYTHON_INSTALL_NUMPY=OFF \
                 -DWITH_PYTHON_MODULE=OFF     \
                 -DOPENCOLORIO_INCLUDE_DIR=$PROGB/include/OpenColorIO     \
                 -DOPENCOLORIO_OPENCOLORIO_LIBRARY=$PROGB/lib/libOpenColorIO.so\
                 -DOPENCOLORIO_TINYXML_LIBRARY=$PROGB/lib/libtinyxml.a   \
                 -DOPENCOLORIO_YAML-CPP_LIBRARY=$PROGB/lib/libyaml-cpp.a


   Note: $PROGB is an environment variable specific to my system. 
     Yeah. You got that right. Everything is OFF except a few, without which Blender3D cannot be built. So we can call it a minimalistic blender build.
    
    Do you notice I gave separate path for python and opencolorio. because when I tried to build for the first time, they caused errors, which pleasantly helped my ubuntu box, not even to generate the makefiles.

Putting it as timeline:

[02Mar13 09:33]
     I needed to build python as a shared object or library. I did that as follows
      $ ../configure --prefix=$PROGB --enable-shared
      $ make -j3  # i have dual core cpu
      $ make install
      $ make clean

       under build directory inside the python source folder, and then I invoked cmake with

         $ cmake ../blender  \
                 -G"Unix Makefiles"  \ 
                 -DPYTHON_VERSION=3.3  \
                 -DPYTHON_INCLUDE_DIR=$PROGB/include/python3.3m  \
                 -DPYTHON_LIBRARY=$PROG/lib/libpython3.3m.so  \
                 -DWITH_CYCLES=OFF \
                 -DCMAKE_BUILD_TYPE=Debug  \
                 -DCMAKE_INSTALL_PREFIX=$PROGB  \
                 -DWITH_BUILDINFO=ON   \
                 -DWITH_BUILTIN_GLEW=ON   \
                 -DWITH_BULLET=OFF  \
                 -DWITH_CARVE=OFF   \
                 -DWITH_CODEC_FFMPEG=OFF   \
                 -DWITH_CODEC_SNDFILE=OFF  \
                 -DWITH_CYCLES=OFF  \
                 -DWITH_CYCLES_CUDA_BINARIES=OFF  \
                 -DWITH_CYCLES_OSL=OFF  \
                 -DWITH_CYCLES_TEST=OFF  \
                 -DWITH_FFTW3=OFF   \
                 -DWITH_GAMEENGINE=OFF   \
                 -DWITH_IK_ITASC=OFF   \
                 -DWITH_IMAGE_CINE=OFF   \
                 -DWITH_IMAGE_DDS=OFF   \
                 -DWITH_IMAGE_FRAMESERVER=OFF   \
                 -DWITH_IMAGE_HDR=OFF   \
                 -DWITH_IMAGE_OPENEXR=OFF   \
                 -DWITH_IMAGE_OPENJPEG=ON   \
                 -DWITH_IMAGE_REDCODE=OFF   \
                 -DWITH_IMAGE_TIFF=OFF   \
                 -DWITH_INPUT_NDOF=OFF   \
                 -DWITH_INSTALL_PORTABLE=ON   \
                 -DWITH_INTERNATIONAL=OFF   \
                 -DWITH_JACK=OFF   \
                 -DWITH_LIBMV=OFF   \
                 -DWITH_LZMA=OFF   \
                 -DWITH_LZO=OFF   \
                 -DWITH_MOD_BOOLEAN=OFF   \
                 -DWITH_MOD_DECIMATE=OFF    \
                 -DWITH_MOD_FLUID=OFF   \
                 -DWITH_MOD_OCEANSIM=OFF   \
                 -DWITH_MOD_REMESH=OFF   \
                 -DWITH_MOD_SMOKE=OFF   \
                 -DWITH_OPENAL=OFF   \
                 -DWITH_OPENCOLLADA=OFF   \
                 -DWITH_OPENMP=OFF   \
                 -DWITH_PLAYER=OFF   \
                 -DWITH_PYTHON_INSTALL=OFF   \
                 -DWITH_PYTHON_INSTALL_NUMPY=OFF   \
                 -DWITH_PYTHON_MODULE=OFF     \

   notice the error? I almost wasted half a day on this stupid mistake. I posted to blender forums.

Forum-Post
[Sat Mar 02, 2013 1:22]
[blender.org/forum/viewtopic.php?p=103125]
=======================FORUM-POST-BEGIN==========================
Everything goes fine(just a guess!)
but when the compilation finished, it says no rule to make libpython3.3m.so, which is already built shared object(I compiled it separately from the blender). what is actually going on??

-----------------------------------------------------------------
Scanning dependencies of target blender
[100%] Building C object source/creator/CMakeFiles/blender.dir/creator.c.o
[100%] Building C object source/creator/CMakeFiles/blender.dir/buildinfo.c.o
make[2]: *** No rule to make target `/mnt/prog/lib/libpython3.3m.so', needed by `bin/blender'. Stop.
make[1]: *** [source/creator/CMakeFiles/blender.dir/all] Error 2
make: *** [all] Error 2
-----------------------------------------------------------------

here is the full screenshot of the output
http://paste.ubuntu.com/5579080/

=======================FORUM-POST-END============================

People were busy at that time, I think. There were no replies for more than 5 hours. I know, I should wait. I hanged out in IRC channel #blendercoders for a while. and someone called @plasmasolutions pointed out this mistake and I solved this with his/her help. I corrected the mistake and re-configured the build. 

[02Mar13 17:24]
    tried 
            $ make -j3                  # i have dual core cpu

here came the problem with opencolor-io. OpenColorIO required TinyXML to be built. So I installed TinyXML development packages from synaptic package manager in my ubuntu box. and re-built the project. then it told me that, it requires YAML to be built. Then I installed YAML develpoment packages and tried to re-build the project. but it did not compiled as expected. again I posted in blender forum. 


Forum-Post
[Sat Mar 02, 2013 19:19]
[blender.org/forum/viewtopic.php?p=103125]
=======================FORUM-POST-BEGIN==========================
after reconfiguring and compiling, the dependencies of OpenColorIO, TinyXML (which I didn't installed at the time) was used as a problem to throw errors on my face.
and I installed TinyXML development package. and it got solved too. now another dependency YAML is being reported "not found" and I installed yaml development package but this problem is not solved. it again shows
---------------------------------------------------------------------------------
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libOpenColorIO.a(OCIOYaml.cpp.o): In function `void YAML::operator>><float>(YAML::Node const&, std::vector<float, std::allocator<float> >&)':
(.text._ZN4YAMLrsIfEEvRKNS_4NodeERSt6vectorIT_SaIS5_EE[void YAML::operator>><float>(YAML::Node const&, std::vector<float, std::allocator<float> >&)]+0x3a7): undefined reference to `YAML::Iterator::~Iterator()'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libOpenColorIO.a(OCIOYaml.cpp.o): In function `void YAML::operator>><float>(YAML::Node const&, std::vector<float, std::allocator<float> >&)':
(.text._ZN4YAMLrsIfEEvRKNS_4NodeERSt6vectorIT_SaIS5_EE[void YAML::operator>><float>(YAML::Node const&, std::vector<float, std::allocator<float> >&)]+0x410): undefined reference to `YAML::Iterator::~Iterator()'
collect2: ld returned 1 exit status
make[2]: *** [bin/blender] Error 1
make[1]: *** [source/creator/CMakeFiles/blender.dir/all] Error 2
make: *** [all] Error 2
---------------------------------------------------------------------------------
or Can I disable OpenColorIO for now. If so, how??

=======================FORUM-POST-END============================


@ldo[http://www.blender.org/forum/profile.php?mode=viewprofile&u=73777]  from Blender forum told to build the OpenColorIO from source. so I did that. here is the conversation between us

Forum-Post from @Ido
[Tue Mar 05, 2013 13:20]
[blender.org/forum/viewtopic.php?p=103125]
=======================FORUM-POST-BEGIN==========================

I built OpenColorIO from source. It wasn’t hard, as I recall. 

=======================FORUM-POST-END============================

Forum-Post from @vanangamudi
[Tue Mar 05, 2013 15:23]
[blender.org/forum/viewtopic.php?p=103125]
=======================FORUM-POST-BEGIN==========================

I do like to build softwares from source. I will try it with OCIO. but after building how to pass the path to blender, while building it. is there any variables like OPENCOLOR_IO_PATH simlar to PYTHON_LIBRARY ???

=======================FORUM-POST-END============================

Forum-Post from @Ido
[Tue Mar 05, 2013 17:40]
[blender.org/forum/viewtopic.php?p=103125]
=======================FORUM-POST-BEGIN==========================


Yes, you can pass all that kind of thing in CMake variables. I have a wrapper script I use to build Blender, here is the line in it that does the CMake setup (notice all the explicit OPENCOLORIO_xxx and OPENIMAGEIO_xxx definitions):


Code:
$ cmake \
    -D WITH_PLAYER=ON \
    -D WITH_PYTHON_INSTALL=OFF -D PYTHON_VERSION=3.3 \
    -D PYTHON_INCLUDE_DIR=/usr/include/python3.3m \
    -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.3m.so \
    -D WITH_FFTW3=ON -D WITH_MOD_OCEANSIM=ON \
    -D OPENCOLORIO_INCLUDE_DIR=/usr/local/OpenColorIO/include \
    -D OPENCOLORIO_OPENCOLORIO_LIBRARY=/usr/local/OpenColorIO/lib/libOpenColorIO.so \
    -D OPENCOLORIO_TINYXML_LIBRARY=/usr/local/OpenColorIO/lib/libtinyxml.a \
    -D OPENCOLORIO_YAML-CPP_LIBRARY=/usr/local/OpenColorIO/lib/libyaml-cpp.a \

    -D OPENIMAGEIO_INCLUDE_DIR=/usr/include \
    -D OPENIMAGEIO_LIBRARY=/usr/lib/libOpenImageIO.so \
    -D WITH_OPENCOLLADA=ON \
    -D WITH_CODEC_FFMPEG=ON -D FFMPEG=/usr/local -D WITH_JACK=ON \
    -D FFMPEG_LIBRARIES="avdevice;avfilter;avformat;avcodec;avutil;swscale;swresample;postproc;nut;bz2;faac;faad;gsm;jack;modplug;mp3lame;opencore-amrnb;opencore-amrwb;rtmp;schroedinger-1.0;speex;theoraenc;theoradec;vpx;x264;xvidcore" \
    -D WITH_CODEC_SNDFILE=ON \
    ../"$SRCDIR"
(../"$SRCDIR" is the Blender source directory,)

=======================FORUM-POST-END============================

[05Mar13 18:34]
I downloaded the OpenColorIO source and built it. 
with cmake invocation...
     $ cmake ../ -DCMAKE_INSTALL_PREFIX:PATH=$PROGB

    at first I just followed the same procedure as I did for python shared library. but the libraries TinyXML and YAML did not properly installed to $PROGB location. then I re-built the OpenColorIO and checked for the mentioned libraries. I found them under $OCIO_SRC/build/ext/dist. there were four directories namely 

  1.    bin/
  2.    include/
  3.    lib/
  4.    share/


    I copied them into the $PROGB directory. and then tried to rebuilt the Blender project and it just did. Blender3D compiled successfully. but when I launched blender, the buttons and menus were missing. because i did not installed the python scripts into proper location. note: blender executables and object files were under $BLENDER_SRC/build/bin

Briefly...
    Build python shared library
    Build OpenColorIO shared library along with
          TinyXML and
          YAML
    Build Blender3D

Things learned...
    this is not my first attempt to use cmake. I used it to build OpenCV. but there are things to ponder
        make                   cmake
       --prefix           CMAKE_INSTALL_PREFIX:PATH
    CFALGS=-g    CMAKE_BUILD_TYPE

    I should thank the people who helped me to do this.

  •         Ido [blender.org/forum/profile.php?mode=viewprofile&u=73777]
  •         plasmasolutions
  •         stiv [blender.org/forum/profile.php?mode=viewprofile&u=5874]

    Moral of the story: try, try and try, if it doesn't work, then try harder.