2014년 11월 21일 금요일

Raspberry Pi + MQTT 설치와 실행 테스트


$ cd /home/pi 
$ sudo mkdir Mosquitto 

//의존성 라이브러리 설치
$ sudo apt-get -y install libwrap0-dev libssl-dev

//mosquitto 다운로드
$ sudo wget http://mosquitto.org/files/source/mosquitto-1.0.2.tar.gz
$ sudo tar zxf mosquitto-1.0.2.tar.gz
$ cd mosquitto-1.0.2
$ make
$ sudo make install
$ sudo ldconfig
$ sudo make clean

// iptables의 1883 포트 허용
$ sudo iptables -A INPUT -p tcp -m tcp --dport 1883 -j ACCEPT
$ mosquitto

//환경파일
/etc/mosquitto/mosquitto.conf

//신규 터미널 생성 후 raspberry pi의 ssh 접속과 mosquitto subcribe
$ mosquitto_sub -d -t hello/world
Client mosqsub/6977-raspberryp sending CONNECT
Client mosqsub/6977-raspberryp received CONNACK
Client mosqsub/6977-raspberryp sending SUBSCRIBE (Mid: 1, Topic: hello/world, QoS: 0)
Client mosqsub/6977-raspberryp received SUBACK
Subscribed (mid: 1): 0
Client mosqsub/6977-raspberryp sending PINGREQ
Client mosqsub/6977-raspberryp received PINGRESP

//신규 터미널 생성 후 raspberry pi의 ssh 접속과 mosquitto publish
$mosquitto_pub -d -t hello/world -m "안녕 안녕" 
Client mosqpub/7002-raspberryp sending CONNECT
Client mosqpub/7002-raspberryp received CONNACK
Client mosqpub/7002-raspberryp sending PUBLISH (d0, q0, r0, m1, 'hello/world', ... (12 bytes))

Client mosqpub/7002-raspberryp sending DISCONNECT

//subscribe했던 클라이언트에서 패킷 수신 확인 
Client mosqsub/6977-raspberryp received PUBLISH (d0, q0, r0, m0, 'hello/world', ... (12 bytes))

안녕안녕

2014년 9월 27일 토요일

안드로이드 ListView의 가장 하단 아이템으로 자동 이동시키는 방법

안드로이드에서 댓글 혹은 채팅 뷰 구현시 리스트뷰의 가장 하단 아이템으로 자동 이동시킬 필요가 있다.


방법1
자바 소스상에서 적용
mListView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);

방법2:
XML에서 attribute 추가
android:transcriptMode="alwaysScroll"

방법3:
listview의 selection을 이용하여 마지막 아이템으로 이동

private void scrollMyListViewToBottom() {
    myListView.post(new Runnable() {
        @Override
        public void run() {
            // Select the last row so it will scroll into view...
            myListView.setSelection(myListAdapter.getCount() - 1);
        }
    });

}

2014년 9월 11일 목요일

android 색상 alpha값 적용


android:background="#80000000"

80 : 알파값
000000 : 0-255 색상값 

알파 적용

100% — FF
90% — E6
80% — CC
70% — B3
60% — 99
50% — 80
40% — 66
30% — 4D
20% — 33
10% — 1A
0% — 00

2014년 1월 19일 일요일

Mac에 설치된 mysql 한글 깨짐 현상

mac os x 10.8에 mysql community server를 설치(.dmg) 후 한글 깨짐 현상이 발생.

mysql 접속후 status 명령어 실행 후 캐릭터셋을 확인하면 latin1으로 설정되어 있음.
/etc/my.cnf에 캐릭터셋을 utf8로 재설정하면 아래와 같이 utf8로 변경됨



mysql community server를 .dmg로 설치시 my.cnf가 존재하지 않으므로
아래와 같이 샘플 파일을 /etc 폴더에 복사

$ cp  /usr/local/mysql/support-files/my-default.cnf  /etc/my.cnf

캐릭터셋 추가
$ vi /etc/my.cnf

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

init_connect=SET collation_connection=utf8_general_ci
init_connect=SET NAMES utf8

[client]
default-character-set=utf8

[mysql]

default-character-set=utf8


수정이 완료되면 터미널을 종료하고 재시작.
mysql> status 로 재확인하면 캐릭터셋이 설정 완료되어 있음.

2013년 8월 22일 목요일

Homebrew 설치 및 mysql 설치

1. xcode의 command line tool이 필요



2.homebrew 설치

$ ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"

$ mkdir homebrew && curl -L https://github.com/Homebrew/homebrew/tarball/master | tar xz --strip 1 -C homebrew

3.테스트

$ brew install mysql
brew의 패키지가 모여있는 Cellar 디렉토리 밑에 설치


==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/mysql-5.6.13.mountain_lion.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.6.13.mountain_lion.bottle.tar.gz
==> /usr/local/Cellar/mysql/5.6.13/bin/mysql_install_db --verbose --user=yisang --basedir=/usr/local/Cellar/mysql/5.6.13 --d
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

To connect:
    mysql -uroot

To have launchd start mysql at login:
    ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents  <--- OS 실행시 자동시작을 원할시 적용

Then to load mysql now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist  
    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 
Or, if you don't want/need launchctl, you can just run:
    mysql.server start

==> Summary
🍺  /usr/local/Cellar/mysql/5.6.13: 9382 files, 354M




$ launchctl load /usr/local/Cellar/mysql/5.6.13/homebrew.mxcl.mysql.plist <---- 수동 실행
$ launchctl unload /usr/local/Cellar/mysql/5.6.13/homebrew.mxcl.mysql.plist <--- 수동 정지


4. MySQL-python 설치
$ sudo pip install MySQL-python

"pip's wheel support requires setuptools >= 0.8 for dist-info support. " 에러 발생시 setuptool 업그레이드
$ sudo pip install setuptools --no-use-wheel --upgrade

EnvironmentError: mysql_config not found 에러 발생시 mysql bin 경로를 환경변수에 추가
export PATH=$PATH:/usr/local/mysql/bin/

$ python
>>> import MySQLdb


Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: dlopen(/Library/Python/2.7/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Library/Python/2.7/site-packages/_mysql.so
  Reason: image not found

위 에러 발생시 lib 파일을 /usr/lib에 심볼릭 링크 설정
$ ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib


$ python
>>> import MySQLdb
>>>

2012년 12월 10일 월요일

mac 비밀번호 분실시 세팅법


자신이 사용하는 계정이 sudoer 인 경우에만 해당된다. 
sudo를 할수 있으면 root 의 권한을 위임받는것이고 루트권한이 있으면 root의 비밀번호를 바꿀수 있다.

User_id>> sudo passwd root
>> ******** // 현재 사용중인 id의 패스워드 입력
>> new passwd : ******* 
>> retype passwd : *******

User_id>> su -
>> *******
root>> 

2012년 7월 31일 화요일

리눅스 용량 확인


- 파티션별 용량


$ df -h




- 특정 용량 이상인 파일 찾기


$> find /home -size +100000 -print 


/home디렉토리에 100 메가 넘는 파일들을 찾아 준다.






- 해당 디렉토리에서만 찾기


가장 크기가 큰 파일
ls -lR | sort +4n


가장 용량이 큰 디렉토리
du -S | sort -n