'분류 전체보기'에 해당되는 글 104건

카테고리 없음

공통
1. 인스턴스 생성이 불가능
2. 프로토타입만 있는 메소드를 가진다. (Abstract는 둘다 가실 수 있지만 .. )
3. 사용하기 위해서는 하위 클래스(자식 클래스)에서 extends, implements해서 써야한다.

차이점
1. 상속 키워드 다르다. extends, implements
2. Abstract의 경우에 일반함수와 Abstract 함수를 혼용할 수 있지만 Interface의 경우 무조건 Abstract 메소드로 선언해야한다.
예) Abstract
public abstract void abMethod();
public void realMethod(){System.out.println("Real!");}
3. interface는 다중 상속이 가능한다.
extends는 1개만, implements는 콤마(,)를 이용해서 여러개 선언 가능


interface를 사용하는 이유
규칙을 만들고 클래스간 결합도를 낮춘다.
모두 구현되어야 하기 때문에 코드가 복잡해지면 빠져먹을 수 있는 항목을 컴파일레벨에서 확인할 수 있다.
코드간의 결합도를 낮추는 부분이 가능 큰 장점
참조되는 클래스의 변경에 참조하는 클래스들이 자유도를 높이는 코드 관리의 측면에서 잇점이 있다.

Interface를 사용하는 가장 큰 이유는 Java에서 지원하지 않는 다중상속을 지원하기 위해서 사용하며, 다중상속이 가지는 단점 즉
상속이 중첩되면서 발생되는 복잡성과, 중첩 상속되면서 발생되는 메모리의 낭비를 없애고, 장점만을 가져오기 위하여 사용하는 것이다.

즉 grandfather를 father1, father2가 상속받고, son이 father1과 father2를 다중 상속받게 되면 결과적으로 해당 객체는 grandfather를 두번 상속받게 되고, father1의 grandfather인지 father2의 grandfather인지 모호하게 된다.

public class son extends grandfather implements father1, father2{...

그렇기에 interface를 사용하게 되면 상속받은 객체 grandfather는 그냥 사용하면 되고, father1과 father2는 interface로서 son에서 구현하게 됨으로 모호함을 없애게 된다.


카테고리 없음

# yum install vnc-server

# vim /etc/sysconfig/vncservers

add

VNCSERVERS="1:root"
VNCSERVERARGS[2]="-geometry 1920x1080"

save and quit

# vncpasswd
password : *****
verify : *****

# service vncserver start
# service vncserver stop

# vim /root/.vnc/xstartup

edit
#twm & <- add annotation
gnome-session &

save and quit

# service vncserver start
# chkconfig vncserver on


vnc viewer

contact url
http://www.tightvnc.org/
download TightVNC

login ip -> ex) 10.10.10.10:1
1 is first session("1:root") not port

카테고리 없음
CentOS6
NVIDIA NVS 4200M

# yum install yum-priorities

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# yum install http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# yum check-update
# yum search nvidia
# yum install nvclock.x86_64
# yum remove xorg-x11-drv-nouveau.x86_64

# reboot

reboot complete and press enter key

카테고리 없음

QPID의 Dynamic Routing에 대해서 알아본다.

Dynamic Routing은 브로커의 연결에 대한 단순한 구조를 제시한다. 브로커를 Dynamic Routing으로 설정하게 되면, 관리자는 브로커들의 연결에 대한 네트워크 구조의 논리적인 토폴로지를 구성해야 한다.
Queue 설정과 Binding은 네트워크에 속한 브로커가 자동으로 처리해준다.

동적 라우팅(Dynamic Routing)은 Distributed Exchange concept를 활용한다. 클라이언트의 관점에서 보면 네트워크 내의 모든 브로커들의 논리적인 exchange는 동일한 하나의 브로커가 하나의 exchange를 운영하는 것처럼 보이게 된다.

각 클라이언트는 로컬 브로커에 연결하고 바인딩할 수 있다. 그렇기에 큐를 분산시킬 수 있으며, 메시지를 교환할 수 있다.

미완성
카테고리 없음
QPID의 route 설정에서 Durable 옵션에 대해서 알아본다.

Durable 옵션의 경우 qpid-route 툴로 link를 구성할 시에 옵션으로 줄 수 있는데, 이 것은 연결이 말그대로 Durable해야 한다는 것을 의미한다. 즉 브로커의 생명주기가 재시작을 하여도 계속 이어져야 한다는 것을 의미한다.
만약 브로커가 shutdown되고 재시작을 하게 되면 그 브로커는 링크에 다시 접속을 재시도하여 링크를 계속 이어갈려고 할 것이다.
non durable 링크는 durable링크를 만들 수 있지만, 그 반대는 불가능하다.
카테고리 없음
QPID에서 Link의 Life Cycle에 대해서 알아본다.

Link가 만들어질 때 브로커는 Peer브로커와 전송레벨에서 연결을 시도하게 된다.
만약 그 연결이 실패하게 되면 브로커는 설정된 인터벌만큼 재시도를 하게 되며 연결시 인증 실패로 인하여 연결이 실패되게 되었을 때는 재시도를 하지 않는다. 그렇게 되면 관리자가 인증을 해결하기 위해서 재 설정을 해야한다.

카테고리 없음

dependency

# yum install boost-devel e2fsprogs-devel pkgconfig gcc-c++ make autoconf automake ruby libtool help2man doxygen graphviz uuid-devel libuuid-devel openssl-devel python-devel rpmlint librdmacm librdmacm-devel

# yum install apr cppunit cppunit-devel perl perl-devel libacl libacl-devel

# yum install openais-devel cman-devel

# yum install corosync-devel cmanlib-devel

# yum install corosynclib-devel clusterlib-devel

# yum install cyrus-sasl-devel nss-devel nspr-devel nss-tools*

# yum install xqilla-devel xerces-c-devel

# yum install ruby ruby-devel swig


change account 

# su alloe

$ cd ~

$ mkdir src

$ cd src

download source 

$ svn co http://svn.apache.org/repos/asf/qpid/trunk/qpid qpid &

$ cd qpid

build and install qpid-tools

$ qpid-autotools-install --prefix=$HOME/qpid-tools --skip-check

setting environment

your environment file edit (ex. .bash_profile, .bashrc, /etc/profile)

export PATH=~/qpid-tools/bin:$PATH
export PKG_CONFIG_PATH=~/qpid-tools/lib/pkgconfig:/usr/local/pkgconfig
export CXXFLAGS=-I~/qpid-tools/include/boost-1_33_1

build and install qpid source

$ sudo ./bootstrap

$ sudo ./configure --enable-valgrind 

$ sudo make && make install

$ sudo make check

run corosync for cluster

$ cp -rf /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf

$ sudo /usr/sbin/corosync

python qpid tools

$ cd ..

$ pwd

/home/alloe/src/qpid

$ cd extra

$ cd qmf

$ sudo ./setup.py --help-commands

Standard commands:
  build            build everything needed to install
  build_py         "build" pure Python modules (copy to build directory)
  build_ext        build C/C++ extensions (compile/link to build directory)
  build_clib       build C/C++ libraries used by Python extensions
  build_scripts    "build" scripts (copy and fixup #! line)
  clean            clean up temporary files from 'build' command
  install          install everything from build directory
  install_lib      install all Python modules (extensions and pure Python)
  install_headers  install C/C++ header files
  install_scripts  install scripts (Python or otherwise)
  install_data     install data files
  sdist            create a source distribution (tarball, zip file, etc.)
  register         register the distribution with the Python package index
  bdist            create a built (binary) distribution
  bdist_dumb       create a "dumb" built distribution
  bdist_rpm        create an RPM distribution
  bdist_wininst    create an executable installer for MS Windows
  upload           upload binary package to PyPI

usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

$ sudo ./setup.py build

$ sudo ./setup.py install

result

$ ll /usr/lib/python2.6/site-packages/qmf/

-rw-r--r--. 1 root root    791 2011-11-22 22:25 __init__.py
-rw-r--r--. 1 root root    135 2011-11-23 14:36 __init__.pyc
-rw-r--r--. 1 root root 136778 2011-11-22 22:25 console.py
-rw-r--r--. 1 root root 127600 2011-11-23 14:36 console.pyc

$ cd ..

$ cd ..

$ pwd
/home/alloe/src/qpid

$ cd java

$ sudo yum install ant-trax

$ ant clean build

$ cd ..

$ cd python

$ sudo ./setup.py build

$ sudo ./setup.py install

$ sudo ./qpid-python-test > test.result.txt

$ vim test.result.txt

..............

qpid.tests.messaging.message.MessageEchoTests.testReplyToQueueSubject ... pass
qpid.tests.messaging.message.MessageEchoTests.testReplyToTopic .......... pass
qpid.tests.messaging.message.MessageEchoTests.testReplyToTopicSubject ... pass
qpid.tests.messaging.message.MessageEchoTests.testStringContent ......... pass
qpid.tests.messaging.message.MessageEchoTests.testTextPlain ............. pass
qpid.tests.messaging.message.MessageEchoTests.testTextPlainEmpty ........ pass
qpid.tests.messaging.message.MessageEchoTests.testUnicodeContent ........ pass
qpid.tests.messaging.message.MessageTests.testContentTypeOverride ....... pass
qpid.tests.messaging.message.MessageTests.testCreateList ................ pass
qpid.tests.messaging.message.MessageTests.testCreateMap ................. pass
qpid.tests.messaging.message.MessageTests.testCreateString .............. pass
qpid.tests.messaging.message.MessageTests.testCreateUnicode ............. pass
Totals: 308 tests, 308 passed, 0 skipped, 0 ignored, 0 failed

$ cd ..

$ cd tools

$ sudo ./setup.py build

$ sudo ./setup.py install



complete 
카테고리 없음
#> su
password :    <- input root password

#> vi /etc/pam.d/gdm

#auth required pam_succeed_if.so user != root quiet <- add '#'


save and quit

#> vi /etc/pam.d/gdm-password

#auth required pam_succeed_if.so user != root quiet <- add "#"

save and quit

the end

카테고리 없음


Building the main Guest Additions Modules         [Fail]

이 문제가 발생하는 이유는 제일 최소화 옵션으로 설치했을 가능성이 농후한데...
kernel 소스가 없어서 발생하는 문제이다.

간단히 해결할 수 있는데

# yum install gcc kernel-devel kernel-devel-$(uname -r)

위의 명령으로 kernel 소스를 받아서 설치하고 난뒤 다시
게스트 확장을 설치하면 제대로 잘 설치가 된다~

미션 써세스~

카테고리 없음
이걸 몰랐을 땐 수동으로 일일이 빌드해서 찾아서 설치했는데 정말 편리하구나
sudo perl -MCPAN -e "install String::CRC32"

String::CRC32 모듈이 필요하면 저렇게 하면 알아서 잘 설치해준다..
EV, AE, 등등 다 저렇게 설치했음 쉬웠을 것을.. ㅠ 일일이 Makefile 수정하면서 설치다 했더니 저걸 발견..

요즘 너무 많은 언어를 짬뽕으로 사용하다보니 문법이 헷갈릴때가 있다.
C, java, perl, ruby.... 게다가 스크립트까지.. 에혀

좀 쉬고 싶네..
1 2 3 4 5 6 7 8 ··· 11
블로그 이미지

개발자

우와신난다