반응형

이클립스에서 SVN 사용시 업데이트 또는 커밋시 Checksum 관련 에러가 간혹 발생한다.

svn: Checksum mismatch for while updating 

또는

svn: Working copy 'xxxxxxxxxxx' locked; try performing 'cleanup'

위와 같은 에러 발생시 해결 방안

1. 프로젝트 Cleanup
   1) 해당하는 프로젝트 우클릭 > Team > Cleanup

위 방법으로 해결이 안될 시 아래 방법 시도

2. 탐색기로 해당 파일이 있는 폴더 삭제(주의요망!!)
   1) 탐색기로 해당하는 프로젝트 접근 > svn 에러가 발생한 상위 폴더 삭제
    (예로 testSrc/test.jsp 에서 에러가 발생했다면 testSrc 폴더를 삭제)
    !!주의  절대 이클립스로 삭제하면 안됨. 탐색기에서 삭제 해야 한다.

   2) 이클립스의 svn으로 다시 싱크를 맞추고 진행

 

 

반응형
반응형

커맨드 패턴 (Command Pattern)
커맨드 패턴은 객체의 행위(메서드)를 클래스로 만들어 캡슐화 하는 패턴
  
객체(A)에서 객채(B)의 메서드를 실행하려면 객체(B)를 참조함으로 의존성이 발생
이를 커맨드 패턴을 적용하여 제거할 수 있음.
  
의존성이 제거 되므로 기능에 대한 변경이 일어날시  기능에 대한 클래스만 정의하면 되므로 확장성이 유연해 짐.
  
커맨드 패턴에는 명령(command), 수신자(receiver), 발동자(invoker), 클라이언트(client) 네게의 요소로 이루어짐

Switch 클래스는 요청에 대한 구체적 기능을 구현하는 대신
외부에서 전달된 캡슐화된 명령을 호출하는 역활을 수행.
미리 약속된 Command 인터페이스의 execute 메서드를 호출하는 역활

Light 클래스로 요구 사항을 수행하기 위해 구체적 기능이 구현된 객체

Command 인터페이스를 구현하고, execute() 메서드를 구현함으로써
Receiver에 있는 메서드를 호출하여 요청된  작업을 수행하는 역활

 

클라이언트 객체는 어느 시점에서 어떤 명령을 수행할지를 결정한다.
수행할 명령을 발동자 객체로 커맨드 객체를 전달

 

 

 

반응형

재테크에 무관심하며 월급으로만 생활하던 내가 재테크에 관심을 갖으면서 구매하게 된 책.

재테크 시작은 어떻게 해야 하는가 어떠한 방법들이 있는지에 대해 막막하게 생각하고 있던차에 입문서로 선택한 책이다.

책 자체는 2015년 출간 된 책으로 재테크 입문서로 추천할 만 하다.

여러 방법들을 설명하면서 짧은 시간에 읽을 수 있는 책이기 때문이다.

한번 훑어보고 관심있는 분야는 좀더 상세한 책을 구해서 공부가 필요해 보인다.

반응형


"데일 카네기의 인간관계론" 누구나 한 번쯤은 들어봤을 법한 책이름이다.
책을 접하지 않은 상태에서 제목만으로는 살짝 철학서 비슷하고 어려운 책이라 느껴질 것이다.
하지만 책을 펼치고 읽어 보면 철학적 이론을 나열한 어려운 내용이 아니라서 안심이 되고
읽으면 읽을 수록 실제 사례를 통해 쉽고 재미있게 읽어 나갈 수 있다는 것에 흥미마저 느껴진다.
복잡한 인간관계에서 우리는 힘들어 하고 번뇌하며 상대방에 대한 비난만 일삼는 것이 일상다반사 일 것이다.
그 관계에서 변화되는 것은 없고 사람에 대한 불신만 쌓고 있는 것은 아닐까 하는 생각마저 든다.
이 책에서 제시하는 내용은 누구나 알고 있는 내용이며, 늘상 들어왔던 이야기 일 것이다.
이를 적용하지 못하고 이해조차 하지 못하고 내팽겨쳤던 내용이 이 책에서는 납득이 갈만하게끔
여러 사례를 통해 풀어나가며 무언가 변화의 가능성을 내게 던져 주는 듯 하다.
궁극적인 내용인 바는 대인 관계의 성공은 타인의 관점을 얼마나 공감하며 진심으로 이해하고 
다가가는지에 달려 있다고 내게 말하는 듯 하다.
내가 아닌 다른 사람이 나를 이해하고 공감하길 바라는 내 내면의 바람이 있다는 걸 깨닫게 해 준 책이기도 하다.

이 책은 많은 사람들에게 필독서로 추천되고 몇번씩 곁에 두고 읽을만한 책이라는 것에는 동감하는 바이다.
소설책 읽듯 읽히는 책이지만 곁에 두고 몇 번이고 다시 읽고 내용을 다시 되새겨보려고 한다.

반응형

 

"클린 코드"의 베스트셀러 저자이신 밥아저씨로 불리는 로버트 C.마틴은

IT업계에 종사자들이 안고 있는 문제에 대한 해결책을 제시한 애자일 방법론에 대한 책이다.

애자일 개발 방식을 통해 프로젝트를 진행하는 방법과

익스트림 프로그래밍에 대한 가이드를 실제 사례를 통해 서술 하고 있다.

애자일 개발 방식과 익스트림 프로그래밍에 대해 실용적인 튜토리얼에

대한 책을 찾고 있다면 추천하고 싶은 책이다.

 

반응형

JComboBox에서 선택된 값을 리턴하는 메소드를 찾아보니 없는거 같다.

별것 아닌거 같지만 이런게 없어 하는 의아한 생각이 든다.

다른메소드를 이용하여 가져오는게 가능하니 만들지 않았을 수도 있지만

이러한 경우는 많이 사용하기 때문에 있는것이 당연하지 않나 하는 의문이 든다.

므튼 메소드가 없기 때문에(내가 찾지 못했을 수도?) 방법을 정리해보자.

나중에 까먹고 그 메소드를 찾기위해 API를 또 찾기 때문에 (있을텐데 ?? 하면서 )

jcombo.getSelectedItem().toString()

jcombo.getItemAt(jcombo.getSelectedIndex()).toString()

반응형

스윙으로 GUI를 만들어 리스너에 코딩을 하고 했는데 코딩상에서 해당 컴포넌트에 걸린 이벤트를

실행하려고 별짓을 다 했다. ㅡㅡ; 그냥 이벤트 내에 들어가는 코딩을 메소드로 만들어 메소드를 호출하기도..

이건 아니다 싶어 이벤트 생성하여 해당 리스너를 참조하여 

 testListener.actionPerformed(new ActionEvent(jBtntest,ActionEvent.ACTION_PERFORMED, "openEvent"));

이렇게 해서 사용했다.. 대충 이렇게 하는게 낫나 싶어서 .. 므튼 이리저리 찾다보니 관련 자료를 찾았다.
 

원문: http://mindprod.com/jgloss/event11.html#SYNTHETICEVENTS

참조: http://www.codeguru.com/java/articles/162.shtml

JButton은 보통 doClick() 메소드를 이용하여 처리하면 되지만 다른 방법도 있으니 알아보자.

내가 주로 사용했던 방법은 2번 이었음..^^; 뭐 편법은 아닌듯.. ㅋㅋ

원문에서 필요한 부분만 발췌 하였음..

There are a number of ways to fake an event.

2) The simplest is just to call a Listener method directly with a dummy Event object, filled in with just enough data to keep the method happy.

3)Create an Event and introduce it to the Component that will handle it at the processEvent method. with:

 4)Create an Event 

 

 5)Generating MouseMoved Events has no effect on the screen mouse cursor. To make the underlying native GUI see your generated Events, use the Robot class to generate move clicks, moves etc. 

기본적으로 버튼에 따른 이벤트를 실행한다면 doClick()을 사용해야겠다.
그리고 일단 막히면 API 부터 제대로 뒤져봐야겠다 ㅡㅡ; 끙.. doClick 모르고 있었다는 ㅡㅡ;

2010.11.03  추가
오랫만에 기존에 작성했던 프로그램에 간단한 수정을 하면서 이벤트를 강제로 발생하는 부분을 검색

내가 기존에 포스팅 했던 글이 뜬다. ㅡㅡ;  예전에 몰라서 포스팅한걸 지금도 까먹다니 ㅠㅠ

그래서 조금 내용을 추가하여 갱신하기로 했다. 다시한번 잘 정리한다는 생각으로..^^

 

반응형

참고글 : https://www.cryptocrib.net/d/9-setup-chaincoin-masternode-on-raspberry-pi3

유투브 설치영상 : https://youtu.be/9JXZJu65rCY

준비물: 라즈베리파이3

8Gb Micro SD Card (preferably Class 10 or above with wear protection)



운영체제버전 확인: RASPBIAN STRETCH WITH DESKTOP 버전일시 추가수행

참고자료 : https://github.com/chaincoin/chaincoin/issues/82 

sudo apt-get remove libssl-dev

sudo nano /etc/apt/sources.list

strech 단어를 jessie로 변경

sudo apt-get update

sudo apt-get install libssl-dev


1. 방화벽 설정

sudo ufw allow 8333
sudo ufw allow 11994
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable

2. 의존성 관련 설치

sudo apt-get upgrade -y
sudo apt-get install build-essential automake autoconf libssl-dev g++ libminiupnpc-dev git libboost-dev libboost-chrono-dev libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-test-dev libboost-thread-dev libtool libevent-dev -y

3. 메모리부족하니 스왑설정 해준다.

sudo nano /etc/dphys-swapfile
CONF_SWAPSIZE=2048

sudo dphys-swapfile setup
sudo dphys-swapfile swapon

4. 디렉토리 생성 

mkdir ~/chaincoin
cd ~/chaincoin

Clone the Repo

wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz
tar -xzvf db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix/
../dist/configure --enable-cxx

Raspberry Pi 의 쿼드코어를 인스톨할때 다 사용하는 설정 -j4 를 넣어서 실행해준다

make -j4
sudo make install
cd chaincoingit clone cd ~/chaincoin/
./autogen.sh
./configure CPPFLAGS="-I/usr/local/BerkeleyDB.4.8/include -O2" LDFLAGS="-L/usr/local/BerkeleyDB.4.8/lib" --enable-upnp-default --without-gui
make -j2
sudo make install
cd ~/.chaincoin/
mkdir ~/.chaincoin/ ( Make it if it doesnt exsist.)

touch chaincoin.conf
nano chaincoin.conf and add the following:

rpcuser=username
rpcpassword=password
server=1

만약 PATH 에러가 난다면 아래 실행

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/BerkeleyDB.4.8/lib"


실행 명렁어

chaincoind --daemon
chaincoind getinfo
chaincoind getaccountaddress 0
chaincoind masternode genkey
chaincoind stop
nano ~/.chaincoin/chaincoin.conf
listen=1
masternode=1
masternodeprivkey=masternodekey
masternodeaddr=<your_server_ip>:11994

Remember earlier we increased the swap file size. Some people choose to disable Swapfile altogether by setting CONF_SWAPSIZE=0 .

sudo chmod -x /etc/init.d/dphys-swapfile
sudo swapoff -a
sudo rm /var/swap

Note to re-enable just reverse the process:

sudo dphys-swapfile setup
sudo dphys-swapfile swapon


반응형

공식 홈페이지에 소개되어 있는 설치영상(자막&자동번역 기능사용) 

https://www.youtube.com/watch?v=KSWfXdmb48c


1. 체인코인 지갑 설치 및 지갑설정 변경(chaincoin.conf)

2. 서버설치(서버 및 고정IP확보 방법)

3. 체인코인 구매(크립토피아) https://www.cryptopia.co.nz/

4. 지갑 설치 후 동기화 완료시 구매한 체인코인 전송 1000.0001(전송수수료 포함)

5. 지갑 설정 변경(masternode.conf)

6. 서버셋팅 및 지갑 재시작

7. 서버 블록체인과 지갑 블록체인 동기화 확인 및 마스터 노드 상태 확인


1. 체인코인 지갑 설치 및 설정 변경 

지갑 주소 : http://www.chaincoin.org/chaincoin-wallet

지갑 설정정보: C:\Users\윈도우사용자이름\AppData\Roaming\Chaincoin


설정파일 수정 : chaincoin.conf 파일수정


rpcuser=임의작성(서버데몬설정과 동일하게)

rpcpassword=임의작성(서버데몬설정과 동일하게)

rpcallowip=127.0.0.1

listen=0

server=1

daemon=1

logtimestamps=1

maxconnections=256

mnconflock=0


저장 후 지갑 프로그램 종료 후 재시작. 첫동기화시 기존 블록체인 동기화로 오랜시간 소요됨

<준비사항>

- 지갑 입금 주소 생성

-  masternode genkey  실행하기

지갑프로그램 메뉴 > Tools > debug console 실행 후 masternode genkey  수행 후 출력값 



2. 서버설치

2.1 가상서버 이용하기(VPS)

https://www.vultr.com/  <==VPS서비스업체

서버 선택은 영상과 동일하게 하는것이 설치가 쉽습니다.


서버타입: 우분트 64bit


<서버 프로그램설치 명령어>


sudo apt-get update

sudo apt-get upgrade

sudo apt-get installsoftware-properties-common python-software-properties

sudo add-apt-repository ppa:git-core/ppa

sudo apt-get update

sudo apt-get install git

sudo apt-get install –y pkg-config

sudo apt-get install build-essential

sudo apt-get install libtool autotools-devautoconf automake

sudo apt-get install libssl-dev

sudo add-apt-repository ppa:bitcoin/bitcoin

sudo apt-get update

sudo apt-get install libboost-all-dev

sudo apt-get install libdb4.8-dev

sudo apt-get install libdb4.8++-dev

sudo apt-get install libevent-dev

sudo dd if=/dev/zero of=/swapfile bs=64Mcount=16

sudo mkswap /swapfile

sudo swapon /swapfile

git clone https://github.com/chaincoin/chaincoin

cd chaincoin

./autogen.sh

./configure

make

###########################################
!! pkg-config not found 에러 발생시 아래 명령어 수행!!
sudo apt-get install –y pkg-config 
./configure --without-gui
make
###########################################
make install

cd
mkdir ~/.chaincoin/
cd ~/.chaincoin/
ls
touch chaincoin.conf
nano chaincoin.conf

rpcuser=임의작성(지갑설정과 동일하게)
rpcpassword=임의작성(지갑설정과 동일하게)
rpcallowip=127.0.0.1
listen=1
server=1
daemon=1
logtimestamps=1
maxconnections=256
rpcport=11995
externalip=[SERVER IP ADDRESS] <- VPS 아이피(공유기내부 서버구동시 공유기외부IP)
bind=[SERVER IP ADDRESS] <- VPS 아이피 (공유기내부 서버구동시 내부IP)
masternode=1

masternodeprivkey=[MASTERNODE GENKEY] <- 지갑에서 생성한 마스터노드 키값 입력
masternodeaddr=[SERVER IP ADDRESS]:11994 <- 서버 IP 에 내 VPS 아이피

저장후
chaincoind --daemon
chaincoind getinfo  <-- 확인하기

2.2 라즈베리파이에 서버 설정하기
참고영상
https://www.cryptocrib.net/d/9-setup-chaincoin-masternode-on-raspberry-pi3

3. 체인코인 구매 후 전송
마스터노드 구성용으로 전송시 정확히 1000개를 전송해야 함으로 송금수수료 0.0001chc 포함 구매 후 전송
1000.0001chc 구매(송금수수료 0.0001chc 포함)
반드시 지갑 동기화 완료후 전송
지갑에 코인이 전송 완료 되었으면 일단 백업 한번 진행

4. 지갑설정변경(masternode.conf)
지갑 설정정보: C:\Users\윈도우사용자이름\AppData\Roaming\Chaincoin

masternode.conf  파일생성

[라벨명] [SERVER IP ADDRESS:11994] [MASTERNODE GENKEY] [트랜잭션ID] [트랜잭션상태값]

[SERVER IP ADDRESS]  : VPS서비스의 고정IP
[MASTERNODE GENKEY]  : 지갑에서 생성한 마스터노드 키값
[트랜잭션ID] :  지갑에서 메뉴 > Tools > debug console 실행 후 masternode outputs 수행 후 출력값
[트랜잭션상태값] : 긴주소 뒤에 숫자값

작성시 마지막에 공백이 들어가지 않도록 주의


+ Recent posts