2014年2月26日 星期三

#define in C is expands textually

#include<stdio.h>
#define square(x) x*x
main() 
{
    int x = 2;
    printf("%d\n", square(x + 1));
    return 0;
}

The answer is 5 not 9, because the preprocessor expands it textually like below.

x * x = 2+1 * 2+1 = 2+(1*2)+1=2+2+1=5
That is not function. We can fix it as

#define square (x) (x)*(x) 
or
#define square (x) ((x)*(x)) 


Using Sparse ARFF files as the input of weka association rule

the format is as below test.arff

 @relation test
 @attribute a {y}
 @attribute b {y}
 @attribute c {y}
 @attribute d {y}
 @attribute e {y}
 @attribute f {y}
 @attribute g {y}
 @attribute h {y}

@data
{1 y,3 y,5 y}
{2 y,3 y,5 y}
{2 y,6 y}
{1 y,3 y,5 y}
{3 y,5 y,7 y}
{1 y,2 y,3 y}
{2 y,4 y,5 y}
{2 y,3 y,5 y}
{3 y,5 y,7 y}
{1 y,2 y}
{1 y,5 y,7 y}

2013年11月27日 星期三

python search path

current directory(sys.path)-->PYTHONPATH-->installation-dependent default path; on Unix, this is usually "/usr/local/lib/python".

How Human and Robot are different?

We humans draw effeortlessly on many different cognitive capabilities for any given task, and we pursue a seemingly infinite variety of tasks. When we have difficulties, we don't freeze up; we muddle through.
                                                                               --from JOHN E. LAIRD
                                                                                          THE SOAR COGNITIVE ARCHITECTURE

2013年11月26日 星期二

Install Qt creator in UBUNTU (Manual)

Because using apt-get to install QT is not the last version, I try to install it manually.

step 1: Download file
Download the last version of QT from http://qt-project.org/downloads
For example, i download Qt Online Installer for Linux 64-bit, and then go to the download folder,
find the file "qt-linux-opensource-1.4.0-2-x86_64-online.run".

step 2: Rename file
It's with a little long name. So i rename it as "qt.run" using the command
~$ mv qt-linux-opensource-1.4.0-2-x86_64-online.run qt.run

step 3: Change the access permissions
~$ chmod -x qt.run

step 4: Run the file
~$ sudo ./qt.run

you will see the install screen like below


the you can install it step by step.

2013年11月24日 星期日

compiling opencv with g++

There are two methods in compiling opencv with g++ without IDE

First is typing following command in command line directly

~$  g++ testcv.cpp -o testcv `pkg-config opencv --cflags --libs `

ps: ` place in the left of 1 on the keyboard, not ' in the left of Enter

 Second is to set a makefile as below:

testcv: testcv.cpp
g++  -o ${@} $<  `pkg-config opencv --cflags --libs `

and then type make in command line

~$ make

note:

keep the sequence of the command. put the `pkg-config opencv --cflags --libs ` after others.

If you make a command like

~$  g++  `pkg-config opencv --cflags --libs ` testcv.cpp -o testcv

there will be error

I don't know why...><
###########################################################################
opencv on qt creater ubuntu

set .pro

INCLUDEPATH += /usr/local/include

LIBS += `pkg-config opencv --libs`

If an error occur like this

"Cannot connect creator comm socket /tmp/qt_temp.S27961/stub-socket: No such file or directory"

go to "Run Settings" and then cancel "Run in terminal"
 

2013年10月24日 星期四

IJulia

source from: https://github.com/JuliaLang/IJulia.jl

Using Julia language in IPython notebook.

Needs:
IPython >= 1.0
Julia >= 0.2

Installation:

open Julia and in command line input Pkg.add("IJulia") as showed in below.
julia> Pkg.add("IJulia")

Running:

in your command line input
ipython notebook --profile julia

Password:
first, open IPython and type the following code in IPython

In [1]: from IPython.lib import passwd
In [2]: passwd()
Enter password: abc (password is not showed)
Verify password: abc
Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

you can get the hashed password 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

and then open the file ~/.ipython/profile_julia/ipython_notebook_config.py
in window it was put in your USER folder/.ipython/profile_julia/ipython_notebook_config.py

open ipython_notebook_config.py and search c.NotebookApp.password = u''
put the hashed password between ' and ' . the example is 
c.NotebookApp.password = u'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

then you can use your password login IJulia on web