Tags

콘솔 Windows Java unit test Commonjs Git Configuration 한국 VI plugin 플러그인 자바스크립트 커피스크립트 Coffeescript Eclipse Prototype OS X 윈도우즈 tag VIM RUBY 자바 dojo maven html gvim Node.js Widget JavaScript
AWS = require "aws-sdk"
s3 = new AWS.S3()
AWS.config.loadFromPath "./config.json"

s3.createBucket Bucket: "sangpire" , (err, data) ->
  if err is null
    console.log " bucket created"
    console.dir data
  else
    console.log err

위 코드를 실행하면 다음과 같은 오류가 발생합니다.

[~/play/aws_nodejs_practice (master)]$ coffee index.coffee 
{ [SigningError: Missing credentials in config]
  code: 'SigningError',
  errno: 'EHOSTUNREACH',
  syscall: 'connect',
  name: 'SigningError' }

지금 생각하면 너무 당연한 오류 인것 같은데, 이 문제는 바로 AWS.config.loadFromPath() 를 통한 아마존 웹 서비스 인증정보 업데이트 와, AWS.S3 인스턴스를 생성 순서 때문입니다.

AWS = require "aws-sdk"
AWS.config.loadFromPath "./config.json"
s3 = new AWS.S3()

s3.createBucket Bucket: "sangpire" , (err, data) ->
  if err is null
    console.log " bucket created"
    console.dir data
  else
    console.log err

이렇게 수정하면 결과가 잘 나오죠. 아래처럼.

[~/play/aws_nodejs_practice (master)]$ coffee index.coffee 
{ [BucketAlreadyOwnedByYou: Your previous request to create the named bucket succeeded and you already own it.]
  message: 'Your previous request to create the named bucket succeeded and you already own it.',
  code: 'BucketAlreadyOwnedByYou',
  name: 'BucketAlreadyOwnedByYou',
  statusCode: 409,
  retryable: false }
저작자 표시 변경 금지
Trackback 0: Comment 0

동일한 어플리케이션 사이는 Command + Tab 이 동작하지 않아요.

Mac OS X 에서 어플리케이션 간에 이동하는 단축키는 Command + Tab 입니다. 그런데 이 녀석, 동일한 어플리케이션이 여러 창으로 띄워져 있는 경우 그 창 사이에서는 단축키가 먹지 않습니다.

동일한 어플리케이션 사이를 이동하는 단축키는 따로 있더군요.

바로, Command + ` 입니다

저작자 표시 변경 금지
Trackback 0: Comment 0

nvm 을 이용한 node 설치

rubyrvm 이 있고, perlperlbrew 가 있는 것 처럼 node 에도 nvm 이 있더군요.

우선 홈페이지에 설명대로, 설치 스크립트를 실행하였습니다.

curl https://raw.github.com/creationix/nvm/master/install.sh | sh

설치하고 나면, .bash_profile 에 다음과 같은 명령이 추가된 것을 확인할 수 있습니다.

[[ -s /Users/sangpire/.nvm/nvm.sh ]] && . /Users/sangpire/.nvm/nvm.sh # This loads NVM

그리고, 설정 파일 적용을 위해, 터미널을 재시작

본격적인 nvm 실행.

우선 nvm 명령을 실행하면, 다음과 같은 도움말이 나타납니다.

rosebook:Vibration sangpire$ nvm

Node Version Manager

Usage:
    nvm help                    Show this message
    nvm install [-s] <version>  Download and install a <version>
    nvm uninstall <version>     Uninstall a version
    nvm use <version>           Modify PATH to use <version>
    nvm run <version> [<args>]  Run <version> with <args> as arguments
    nvm ls                      List installed versions
    nvm ls <version>            List versions matching a given description
    nvm ls-remote               List remote versions available for install
    nvm deactivate              Undo effects of NVM on current shell
    nvm alias [<pattern>]       Show all aliases beginning with <pattern>
    nvm alias <name> <version>  Set an alias named <name> pointing to <version>
    nvm unalias <name>          Deletes the alias named <name>
    nvm copy-packages <version> Install global NPM packages contained in <version> to current version

Example:
    nvm install v0.4.12         Install a specific version number
    nvm use 0.2                 Use the latest available 0.2.x release
    nvm run 0.4.12 myApp.js     Run myApp.js using node v0.4.12
    nvm alias default 0.4       Auto use the latest installed v0.4.x version

rosebook:Vibration sangpire$ 

이 명령중, ls-remote 로 설치 가능한 버전을 확인하고, install 로 설치하면 완료.

nvm install 0.10

현재 ls-remote 명령을 실행하면, v0.11.5 까지 나타나지만, 설치해서 npm 으로 모듈을 설치하려 하니 오류가 좀 있어서, v0.10 을 설치 했습니다. (홈페이지에도, 현재 버전이 v0.10.15 라고 나오더군요.)

설치 하고, v0.10.x 를 사용하겠다고 아래와 같이 입력하면 설정 완료.

nvm use 0.10

설명 마지막에 있는 것처럼 alias 도 설정해 보고,

nvm alias default 0.11

재미난 모듈들을 설치해보면 끝!.

저작자 표시 변경 금지
Trackbacks 2 : Comment 0

트위터 지인의 리트윗 중, 관심있던 내용을 정리해 놓은 글(Bash Configurations Demystified)을 봤습니다.

그 중 제 컴퓨터와 관련이 있는, OS X 에 관한 것만 살짝 살펴봤습니다.

블로그에서 살펴본 내용,

OS X 을 처음 설치하면, .bashrc 파일과, .bash_profile 파일이 존재합니다.

OS X 은 SSH로 PC에 접근하던, 터미널 프로그램을 실행하던, 기본적으로 로그인 쉘을 시작합니다.

OS X 은 기본적으로, .bash_profile을 먼저 실행합니다. 그리고, .bash_profile 에는 아래와 같은 내용이 포함되어 있습니다.

[[ -s ~/.bashrc ]] && source ~/.bashrc

즉, .bashrc.bash_profile에 의해 실행된다는 이야기.

os x bash diagram

하지만,

위 내용으로 블로그에 요약을 해 놓으려고 확인 겸 새로운 계정을 생성해 보았더니, .bash_profile 도, .bashrc 도 없더군요. 제 짧은 영어 탓일 지도 모릅니다.

그래서 좀더 살펴보았습니다.

그래서 Bash 매뉴얼 페이지(man)를 살펴 봤습니다. 그 안에는 아래와 같은 내용이 있더군요.

When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable.

해석해 보면,

Bash 가 대화형(=interactive) 로그인 쉘 이나 --login 옵션과 함께 비대화형(=interactive) 쉘로 로 생성되어질 때, 처음으로 /etc/profile 파일을 읽고 실행하게 됩니다. 파일을 실행 한 다음 ~/.bash_profile, ~/.bash_login 그리고 ~/.profile 파일 중 을 순서대로 파일을 찾아보고 그 중 처음으로 존재하고, 읽을 수 있는 파일만 읽고 실행하게 됩니다.

위에 있는 파일을 하나씩 만들고 지우면서 실행해 보니 정말 메뉴얼 페이지 대로 동작하더군요.

Last login: Sun Aug 11 00:24:35 on ttys000
Hi This is .bash_profile
rosebook:~ sangpire$

그렇더라구요. :)

저작자 표시 변경 금지
Trackback 0: Comment 0

Firefox OS, Keon 폰 펌웨어 업데이트 하기

Keon Phone

요즘 Firefox SIG 모임으로, Keon 폰을 만지작 거릴 수 있게 되었습니다. 오늘은 Keon 폰에 펌웨어를 업데이트 해본 내용을 남겨 봅니다.

우선 참고 페이지 How to flash your keon into latest image 를 대충 살펴보고,

  1. 최신 이미지 다운로드 링크 <= 요기에서 최신 이미지 링크를 다운받고,
  2. Android SDK platform-tools 폴더를 PATH에 추가. PATH=$PATH:/Users/sangpire/play/android-sdk-macosx/platform-tools
  3. 그리고 다운로드 받은 이미지에서 압축을 풀고 해당 폴더에서 flash_mac.sh 을 실행.
rosebook:~ sangpire$ cd images-keon-2013-07-12.Gecko-6565d51.Gaia-054cdc2/
rosebook:images-keon-2013-07-12.Gecko-6565d51.Gaia-054cdc2 sangpire$ ls
AdbWinApi.dll       fastboot        recovery.img
AdbWinUsbApi.dll    fastboot.exe        system.img
adb         flash.bat       userdata.img
adb.exe         flash.sh
boot.img        flash_mac.sh
rosebook:images-keon-2013-07-12.Gecko-6565d51.Gaia-054cdc2 sangpire$ ./flash_mac.sh 
< waiting for device >
sending 'boot' (3424 KB)...
OKAY [  0.331s]
writing 'boot'...
OKAY [  0.628s]
finished. total time: 0.959s
sending 'userdata' (26364 KB)...
OKAY [  2.568s]
writing 'userdata'...
OKAY [  4.913s]
finished. total time: 7.481s
sending 'system' (137568 KB)...
OKAY [ 13.310s]
writing 'system'...
OKAY [ 26.134s]
finished. total time: 39.444s
erasing 'cache'...
OKAY [  0.006s]
finished. total time: 0.006s
rebooting...

finished. total time: 0.001s
rosebook:images-keon-2013-07-12.Gecko-6565d51.Gaia-054cdc2 sangpire$ 

짜잔!

저작자 표시 변경 금지
Trackback 0: Comment 0

Homebrew 설치 기록. [ homebrew, Log ]

life 2013/08/07 19:12

Homebrew 설치 기록

my:local sangpire$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1

Press ENTER to continue or any other key to abort
==> Downloading and Installing Homebrew...
remote: Counting objects: 122767, done.
remote: Compressing objects: 100% (59921/59921), done.
remote: Total 122767 (delta 86197), reused 95806 (delta 61866)
Receiving objects: 100% (122767/122767), 19.44 MiB | 1.69 MiB/s, done.
Resolving deltas: 100% (86197/86197), done.
From https://github.com/mxcl/homebrew
 * [new branch]      master     -> origin/master
HEAD is now at d54d3f3 qt: don't use SSSE3 with superenv.
==> Installation successful!
You should run `brew doctor' *before* you install anything.
Now type: brew help

brew doctory 결과

my:local sangpire$ brew doctor
Your system is ready to brew.
저작자 표시 변경 금지
Trackbacks 2 : Comment 0