2015년 6월 3일 수요일

mac 에서 bootdocker start 실행할때 docker@localhost's passwored: 이런 메세지 나오는 경우

이게 boot2docker 버전 문제인지 최신 버전을 설치했더니 이런 에러가 발생했다.
해결방법은

1. .ssh/id_boot2docker.pub 파일의 내용을 복사 해둔다.
2. boot2docker ssh 로 접속. 패스워드는 tcuser
3. ~/.ssh/authorized_keys 파일을 열고 아까 복사해놓은 텍스트를 추가.
4. 밖으로 빠져나가서 다시 boot2docker start 하니 잘 동작한다!

2015년 3월 12일 목요일

ruby로 ssh 접속해서 원격으로 커맨드 실행시키기

서버에 명령어를 날릴때 보통 ssh를 이용하는데
ruby 스크립트를 이용해서 자동화 할 수 있다.

https://github.com/sosedoff/net-ssh-session

위의 gem을 사용하면 편리하다.
ruby에서 기본적으로 제공하는 net-ssh 의 경우 커맨드를 날릴때마다
세션 유지가 안되서 좀 불편하다.
예를 들어서 cd 로 디렉토리를 변경하고 ls를 해도 home 디렉토리의 파일이 리스팅 된다.

사용법은 readme가 워낙 잘 되어 있어서 간단하게만 설명하면
gem install net-ssh-session
위의 명령어로 gem을 설치하고
require 'net/ssh/session'

# Initialize a new connection
session = Net::SSH::Session.new(host, user, password)

# Connect to server
session.open

# Execute a remote command
result = session.run("ls")
이런 식으로 사용하면 된다.


2015년 3월 11일 수요일

vim 에서 html 작성할때 굉장히 편리한 플러그인 emmet-vim

그동안 vi에서 html 작성할때마다 너무 귀찮다는 생각을 했었다.
레일즈 개발할때는 haml을 사용해서 괜찮았는데...
그래서 오늘 검색을 해보다 알게된 플러그인이 있는데
사용해보니 생각보다 훨씬 편리했다.

이름은 emmet 이고 주소는 https://github.com/mattn/emmet-vim
나는 vundle을 사용해서 .vimrc 파일에

Plugin 'mattn/emmet-vim'

위에 처럼 한줄만 추가하면 설치가 된다.

간단히 말하면 css selector 문법처럼 쓰고 단축키로 ctrl + y + , 를 누르면 html 태그가 생성된다.
예를 들어서

div#page>div.logo+ul#navigation>li*5>a

위와 같이 입력하고 단축키를 누르면 아래 코드가 생성된다.

2015년 3월 8일 일요일

이클립스 플러그인 설치할때 'unable to find valid certification path to requested target' 에러 나는 경우

이번에도 회사 프록시 서버 때문에 생기는 문제다.

1. 회사 인증서를 java keytool을 사용해서 import

자바가 C:\Program Files\Java\jdk1.7.0_75 여기에 설치되어 있다고 하면
keytool은 bin 디렉토리에 있다.

$ keytool -import -alias proxy
   -file Example.cer
   -keystore C:\Program Files\Java\jdk1.7.0_75\jre\lib\security\cacerts

비밀번호를 새로 설정해준다.

2. 이클립스 설정파일에 추가

이클립스가 설치된 위치에 보면 eclipse.ini 파일이 있는데 이 파일을 열고

-Djavax.net.ssl.trustStore=C:\Program Files\Java\jdk1.7.0_75\jre\lib\security\cacerts
-Djava.net.ssl.trustStorePassword=changeit

위의 코드를 추가한다.
패스워드 부분은 위에서 새로 설정한 패스워드를 넣어준다.

이제 이클립스를 새로 시작하면 플러그인 설치가 잘 될것이다.

2015년 3월 5일 목요일

Vim as an IDE

Vim as an IDE(https://github.com/jez/vim-as-an-ide)

이 프로젝트는 2015년 2월 25일 카네기 멜론대에서 있었던 테크 토크를 통해서 시작되었다고 합니다. 한 학생이 과제를 하기 위해 vim을 사용했는데 아무래도 사용하기 쉬운 툴은 아니니 익히는데 몇가지 어려움들이 있었나 봅니다.
  1. vim 의 단축키를 이용해서 텍스트 편집하기
  2. 다양한 플러그인 설치해서 사용하기

사용 방법

샘플 vimrc 파일이 들어있는데 단계별로 수정하면서 vim이 어떻게 달라지는지 보여준다고 합니다. 그래서 first commit 부터 시작해서 각 commit 정보를 확인해보라고 하네요. Table of Content를 보니 저도 vim을 사용하면서 하나 하나 익혔던 순서가 그대로 나오네요! 처음에 vimrc 파일을 만들고 일반적인 설정을 추가하고, 플러그인 매니저를 사용하고, 파일 탐색기를 추가하고...

정리

맨 처음 vim을 접하면 그대로는 사용하기 힘들고 이것저것 설정하는 게 좀 귀찮을 수도 있는데요. 이 프로젝트가 딱 그 부부을 가이드 해주는 것 같습니다. 일을 하다보면 터미널에 접속해서 vim을 사용해야 하는 경우가 있는데요. 이번 기회에 vim 사용법을 배워두는 것도 좋을것 같습니다.

2015년 2월 24일 화요일

websocket을 사용해서 콘솔의 STDIN/OUT을 브라우저로!

websocketd 소개

https://github.com/joewalnes/websocketd

이거 참 아이디어가 좋아보이는데요.
콘솔에서 사용하는 프로그램의 STDIN/STDOUT을 websocket을 통해서 웹브라우저에서 볼수 있도록 해주는 유틸입니다.

잘 생각해보면 활용방안이 많을 것 같습니다.
간단한 예제로는 1 부터 10까지 카운트하는 쉘스크립트를 짜서 웹브라우져에서 결과를 볼수 있는 예제가 있구요.
프로젝트 README 파일에 보면 vmstat 정보(시스템 사용량)를 웹브라우저를 통해서 이쁘게 볼수 있는 예제가 나와있습니다.
실행해보면 실시간으로 그래프가 변하는데
웹소켓을 통한 스트리밍이라 데이터를 저장할 필요도 없고 참 좋은것 같습니다.

2015년 2월 12일 목요일

JuiceSSH 와 Nitrous 사용해서 핸드폰으로 코딩하기

안드로이드용 앱인 JuiceSSH는 핸드폰으로 ssh 접속을 가능하게 해준다.
이걸 이용하면 자신의 nitrous box에 접속해서 자유롭게 개발이 가능하다.

1. ssh 키 생성

먼저 nitrous에 자신의 box가 있다고 가정을 하고
ssh로 접속하려면 ssh key를 생성하는 작업이 필요하다.
리눅스나 맥에서 ssh-keygen 을 사용하면 간단하게 생성이 가능하다.

2. nitrous 에 public key 등록

https://www.nitrous.io/app#/public_keys
위의 주소로 들어가서 자신이 생성한 public key를 등록해준다.

3. private key를 JuiceSSH에 등록

JuiceSSH를 실행하고 Connections로 들어가면
몇가지 메뉴가 나오는데 그중에 Identities로 들어가서 +를 누른다.
Nickname은 아무거나 지정하고 Username의 경우 Nitrous에서 확인한다.

https://www.nitrous.io/app#/boxes 에 접속하면
SSH URIssh://action@apne1.nitrousbox.com:23435
ssh:// 뒤에 action 이 아이디에 해당한다.

Private Key는 아까 생성한 private key를 이메일을 통해 전달해서 복사해 넣는다.

4. JuiceSSH에서 Connection 생성

마지막으로 Connection 메뉴로 가서 + 버튼을 누른다.
Address는 위의 예제에서 apne1.nitrousbox.com 이고
Identity는 아까 생성한 걸로 선택 port는 23435.

이제 핸드폰으로 접속을 해보면 된다.
키보드는 딩굴 키보드 앱을 추천하고 
JuiceSSH에서 tab이나 ctrl같은 기능키를 화면에 제공해주기 때문에
자동완성을 이용하면 은근 개발 할만한것 같다.