rbenv 설치

멀쩡하게 잘 돌아가던 루비 프로그램이 갑자기 오류를 발생하며 작동하지 않습니다. 혹시 rvm 때문이 아닐까 하는 생각에 rbenv로 바꾸어 보았습니다. rvm emplode brew update brew install rbenv brew install ruby-build brew install openssl  brew install readline CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl` --with-readline-dir=`brew --prefix readline`" CFLAGS=-O2 rbenv install 2.0.0-preview2 rbenv global 2.0.0-preview2 sublime2의 ruby package에서 Ruby.sublime-build 파일의 "cmd"를 홈 디렉토리이하 .rbenv/shims/ruby로 변경 openssl을 설치하지 않으면 gem 설치시 에러가 발생하고 readline은 irb에서 한글을 사용하려면 필요합니다.

LaunchAgent 초간단 정리

OSX에서 반복적으로 이루어지는 작업을 지정하기 위해서는 launchd로 데몬이나 에이전트를 사용합니다. 자세한 내용은 애플의 다큐먼트 나 참조 사이트 를 참고 하시고 다음은 제가 필요한 내용만 간단히 적은 것입니다. plist 파일은 ~/Library/LaunchAgent에 위치하며 Program Argument는 풀 패스로 지정해 준다 루비 스크립트도 지정가능하며 실행가능하도록 파일권한을 수정해 주어야 실행된다 launchctl의 load/unload 명령으로 launchd가 파일을 읽어들이고 job을 준비한 다음 필요한 경우 실행된다. start/stop 명령은 잡을 실행시키거나 중단할 때 사용 반복적으로 실행되어야 하는 잡은 StartInterval, StartCalendarInterval로 지정 파일이 변경될때 잡이 실행되어야 하는 경우 WatchPaths로 지정

루비, 유니코드, 한글

위키피디아 에 의하면 한글 글자(Hangul Syllabus)의 유니코드는 AC00에서 D7AF까지 11184글자가 배당되어 있습니다. 이를 한글로 나타내면 '가'(AC00)가 첫번째 글자이고, '힣'(D7A3)이 표현할 수 있는 마지막 글자가 되는군요. 그외 'ㄱ'(1100)부터 11FF까지 256개의 한글 자모(Hangul Jamo)외 3130부터 318F까지의 호환용 한글 자모가 있네요. OSX의 한글 입력기 바람을 사용하는 경우 'ㄱ'이 3131을 사용합니다. (0xAC00..0xD7A3).to_a.pack('U*') # 한글글자 모두 포함한 문자열 ('가'..'힣').to_a.join.unpack('U*') # 한글 글자를 다시 unicode(숫자)로

루비에서 한글 함수 / 변수 이름 사용

Ruby 1.9 부터는 함수와 변수 이름에 유니코드 문자열을 사용할 수 있습니다. 다음과 같은 프로그램을 작성할 수 있군요. # encoding: utf-8 def 사각형넓이(넓이, 높이) 넓이 * 높이 end 답 = 사각형넓이(2, 3) puts 답

curses 라이브러리 간단한 정리

이미지
Ruby에서의 curses 라이브러리가 windows XP의 command 창에서도 동작하길래 몇가지 명령어만 간단히 정리해 봅니다. 기본 형식 init_screen으로 실행하고 ensure 문을 사용해서 반드시 close_screen이 호출되도록 한다 require 'curses' include Curses init_screen begin # 실행코드 ensure close_screen end 커서 관련 setpos 함수로 커서 위치 지정하고 curs_set 함수로 커서를 보이게 하거나 감춘다 화면 입출력 출력은 addstr 함수, 한글자 입력은 getch, 문자열 입력은 getstr 함수 사용자 입력을 보이지 않게 하려면 noecho 함수 호출 사용자가 enter 입력할 때까지 line buffer 방식으로 입력받으면 nocbreak 함수, 인터액티브하게 사용자가 한글자 입력할 때마다 바로 받으려면 cbreak 함수 호출 컬러 init_screen 호출 이후 start_color 함수 호출 color 사용 가능한지는 has_colors? 함수로 알 수 있고 사용가능한 색의수는 colors 함수로 알 수 있다. 색을 표시하려면 init_pair 함수로 pair에 글자색과 배경색을 지정한 다음 attron 함수로 색을 지정하고 출력한다. 색 자체를 RGB 조합으로 지정하려면 init_color 함수를 호출하면 될듯 (시험해보지 않음) init_pair(COLOR_RED,COLOR_RED,COLOR_BLACK) init_pair(COLOR_YELLOW, COLOR_YELLOW, COLOR_BLACK) setpos((lines - 5) / 2, 20) attron(color_pair(COLOR_RED) | A_NORMAL) { addstr("한글 시험") } attron(color_pair(COLOR_YELLOW) | A_BOLD) { addstr("...

교보 e 리더기 앱 깔기

지난번 포스팅에 올렸던 교보 e 리더기에 오늘 킨들 프로그램으로 아마존에서 구입한 책을 받으려니 싱크(sync)가 제대로 이루어지지 않았습니다. 리더기에는 킨들 프로그램 2.6.X 버전이 깔려있지만 최신 버전은 2.7.X. 아마도 버전 문제 때문인가보다 싶어 adb와 퀄컴 드라이버를 다시 설치하고 프로그램도 지우고 다시 설치하니 아마존에서 구매한 책들을 받을 수 있었습니다. 은근 귀찮아서 검색해 보니 DropBox 프로그램에서 프로그램을 설치하는 방법이 있네요. 간단히 정리해 봅니다. 옮기고 싶은 어플을 구글 플레이에서 받고 아스트로 관리자를 이용해 apk 파일로 만든 다음 핸드폰에서 dropbox 계정으로 옮깁니다. WIFI 접속된 상태의 eBook 리더기에서 dropbox 프로그램을 실행시키고 apk 파일을 다운 받으면 프로그램을 설치할지 물어보고 예를 누르면 바로 설치됩니다. 이제부터는 USB 케이블이나 adb 없이 필요한 프로그램을 설치할 수 있겠네요. 참 쉽죠잉~ eBook 리더기에 dropbox 프로그램을 설치하기 위해서는 일단 adb install을 사용한 이전의 방법을 사용해야 합니다. 구글 드라이브나 구글 플레이를 설치해 보려고 했지만 설정에 구글 계정이 없으므로 프로그램이 제대로 실행되지 않습니다.

ScalaFx 설치와 데모 베껴보기

이미지
ScalaFX를 설치했습니다. ScalaFX는 JavaFX를 scala에서 불러쓸 수 있도록 해 놓은 것입니다. 아직 문서가 자세하게 만들어져 있지 않아 여기저기 맨땅에 헤딩하면서 설치하고 간단한 데모 띄우기까지 성공했습니다. 먼저 JavaFX를 설치해야 합니다. 저는 Oracle Java 설치 프로그램을 받아서 그대로 실행했습니다. ScalaFX는 구글 코드에서 소스를 받아와 다음과 같이 설치했습니다. $ brew install mercurial $ hg clone https://code.google.com/p/scalafx/ $ cd scalafx $ sbt clean compile package publish-local 간단히 데모를 실행시켜보니 제대로 동작하지 않습니다. build.sbt 파일을 다루어야 한다는 것을 알게 되었습니다. 다음과 같이 ScalaFx와 JavaFx를 찾을 수 있도록 해 주었습니다. libraryDependencies += "org.scalafx" % "scalafx" % "1.0-SNAPSHOT" javaHome := Some(file("/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home")) unmanagedJars in Compile += Attributed.blank(file(System.getenv("JAVA_HOME") + "/jre/lib/jfxrt.jar")) 이제 데모를 띄워봅니다. 인터넷에서 찾은 데모 에 한국어만 바꾸어 보았습니다. 한글이 마음에 들지 않아 JavaFx 문서를 보니 CSS 방식으로 스타일을 바꿀수 있다고 합니다. 최종 수정한 소스와 스타일시트입니다. 폰트는 애플 명조로만 변경가능했는데 시스템의 다른 한글 폰트를 사용하는 방법을 찾아봐야 되겠습니다. 스타일 시트는 src/main/resources에 있지 않으면 전...