목록Programming (46)
Dharma
R은 리습계열의 방언에서 출발했다는 이야기가 있습니다. 그래서 인지 정말 놀라울 정도로 이맥스(Emacs)와 잘붙습니다. 게다가 이맥스(Emacs) 와 잘 붙을 수 있게 해주는 모듈이 요즘 빅데이타 의 붐을 타고 계속해서 업데이트 되고 있습니다. ESS (Emacs Speaks Statistics) 는 참으로 멋진 줄임말이죠? 이 패키지 모듈을 쓰면 이맥스 상에서 완벽하게 R 과 함게 동작시킬 수가 있습니다. 다만 항상 이런것을 이용할 때의 문제점이 있습니다. 바로 인코딩 문제죠 한글을 입력하면 상태창에서 한글이 완벽하게 깨집니다. 방법은 간단합니다. .emacs 파일에 다음과 같은 부분을 추가해주면 됩니다. (add-hook 'ess-R-post-run-hook (lambda () (set-buffer..
너무 거창한 이야기라고 생각합니다. 하지만 16여년 가까이 CS (Computer Science) 쪽에 있었고 또 그런 환경하에서 보고 듣고 생각한 것을 기반으로 해서 조금이라도 후배들에게 도움이 되는 방향으로 설명하고자 합니다. 더구나 이제 어떤 걸 공부해 볼 지 방향을 못잡으실 때 도움이 되실꺼라고 생각합니다. '어떤 프로그래밍 언어를 공부해야 하는가?' 라는 질문은 '어떤 프로그래밍 언어가 좋은 것인가?' 라는 질문과 일맥상통하는 바가 있습니다. 그러나 '좋은' 이라는 중의적인 표현 때문에 참으로 결정하기 어렵습니다. 세상에 널리 퍼져서 취직하기 좋은 언어가 '좋은' 것인가? 아는 사람이 거의 없어서 특수한 목적에 꼭 필요한 언어가 '좋은' 것인가? 내가 익숙하게 쓰니까 '좋은' 것인가? 즉 자바나..
NDK (Native Development Kit Environment) 입니다. 구글은 Java 환경의 SDK 만 가지고 모든 것이 가능할 것이라고 주장했었으나, 몇 버젼 지나지 않아 자신들의 주장을 철회하고 Native C/C++ 프로그램이 가능한 NDK 를 공개했습니다. 왜 NDK 를 사용하는가에 관해서는 몇가지 이유가 있겠지만 - 빠른 연산을 위해서 (아무래도 C/C++ 이 자바 보다 속도가 빠른것은 주지의 사실입니다) - 수많은 Open Source 들이 아직도 C/C++ 로 되어 있기 때문에 일단 이 두개를 크게 들 수가 있겠습니다. 그렇다고 해서 윈도우 다루는 부분까지 전부 NDK 로 하는 것을 추천하지는 않습니다. 속도가 필요한 부분이나 위에서 언급된 오픈 소스로 만들어진 라이브러리를 응용..
저는 컴퓨터 관련 서적 자체를 잘 추천 안하는 편입니다. 요즘 같이 급박하게 기술이 바뀌는 세상에서는 사실상 공식 페이지가 최고의 레퍼런스가 되는 것이 현실이다 보니, 주변에서 기술 관련 서적을 산다고 하면 적극적으로 말리는 편입니다. 그러나 이 책은 정말 감히 추천할 만 합니다. 사실 저는 원서(Android NDK , Beginner's Guide)로 봤는데, 저자의 소스코드만 보더라도 상당한 내공이 느껴집니다. C++ 이나 Object Oriented Programming 에 상당한 조예가 느껴집니다. 팀원이 한글판으로 보고 있는데도 상당히 괜찮다고 하니 번역도 괜찮게 되어 있는 편인가 봅니다. 안드로이드에서 가장 어려운 축에 드는 NDK(Native Development Kit) 부분을 '따라하기..
요즘 Android NDK 를 이용해서 개발을 진행중인데, 화가 나는(?) 일이 발생해서 포스팅을 남기게 되었습니다. $(NDK_HOME)/docs/PREBUILTS.html 에 보면 A prebuilt module does not build anything. However, a copy of your prebuilt shared library will be copied into $PROJECT/obj/local, and another will be copied and stripped into $PROJECT/libs/. 이런 문구가 있습니다. 하지만 시키는 대로 하니 복사는 커녕 어떠한 동작도 발생하지 않는 것을 발견했습니다. 미치는 지 알았습니다. 한 두시간을 구글링 했어도 어디에서도 명확히 답을 주..
필요에 따라서 Eclipse 최신 버젼에 (Kepler) ADT 플러그인을 설치해서 사용중입니다. 이유는 간단합니다. 서버와 클라이언트를 동시에 개발할 일이 생겨서 그렇습니다. J2EE 와 ADT 를 따로 따로 설정해주는 방법도 있지만, 그 무겁고 귀찮은 Eclipse 를 두개나 깔아서 쓰라니요 절대 그럴 수는 없었습니다. 최근 Eclipse 와 ADT 가 업그레이드 되면서 누락 된 부분이 있어서 수동으로 설치를 해줘야 한다고 합니다. 원문참조 : http://stackoverflow.com/questions/16608524/eclipse-giving-error-missing-r-java-file-after-recent-update?lq=1 원문 참조 이구요. "Android SDK Manager" 버튼..
Emacs 와 JDEE 와 Maven 과의 결합의 마지막을 해결했습니다. 그 전의 세팅을 보시고 싶으시면 1. Emacs 와 JDEE 로 안드로이드 개발하기 2. pom-parser 를 이용해서 pom.xml 을 파싱해서 classpath 에 포함시켜주기 2 번까지 끝을 내고 나니 Emacs 내에서 maven 컴파일과 빌드를 하고 싶더군요. (당장은 mvn install 만 되게) 딱히 다른 사람들이 만든 것은 내 필요에 부합하지 않은 것 같기도 하고 지원도 더 이상 하지 않는 것 같기에 직접 만들게 됐습니다. jdee 프로젝트 안에 있는 jde-make 를 변경했습니다. 간단하게 되더군요. 적당한 곳 (~/.emacs.d 안에)에 jde-mvn.el 을 복사하시고 .emacs 안에서 (require '..
일단 링크부터 https://github.com/facebook/hiphop-php/wiki 입니다. php 로 시작한 페이스북이 대용량 접속을 처리하기 위해서 php 모듈을 c++ 로 변환해주는 방식을 쓴다고 알려져 있었습니다. 그런데 요즘 페이스북이 베타버젼중인 Node.js 로 갈아탔다고 합니다. 그러더니 자신들이 사용하고 있던 그 라이브러리를 오픈소스화 시켰습니다. (사실 이때쯤 유명해지기 시작했다는 것이 더 사실에 가까울 것입니다) 예전 Scribe 때와 똑같은 현상입니다. 카산드라도 그랬던가? 이건 확실하지 않네요. 구글은 자신들이 계속 사용할 기술들을 오픈소스화 시키는 반면에 페이스북은 자신들이 더이상 사용하지 않을 기술들을 오픈소스화 시킨다는 느낌이 강합니다. 만약 제가 PHP 사이트를 운..
저번 포스트 에서 Emacs 버젼을 24 로 업그레이드 한 후에 가장 큰 문제가 생겼습니다. Clojure 와 Common Lisp 개발환경이 동시에 안되는 문제가 발생했습니다. 몇번의 노력끝에 결국 Emacs 에서도 편하게 설치하는 쪽을 받아들이게 됐습니다. 기존에는 "이맥스 유저는 이래야 해!!" 라는 말도 안되는 자존심으로 수동으로 이거 저거 설치하는 쪽이였으나 이제 대세를 받아들이기로 했습니다. 클로져 (Clojure) 개발 환경 설정 예전 포스트 에서 쉽게 설치하는 방법을 소개한 적이 있었습니다. 그러나 swank-js 를 만들었던 당사자가 더 훌륭한 솔루션이 나왔다고 GG 를 쳐버렸습니다. -0- (당신을 믿고 포스팅을 했었다고!!! ㅜ.ㅜ ) nRepl 을 설치해줍니다. nrepl.el is..
최근 업무 관계로 바빴습니다. (뭔 웹 사이트를 한달안에 5개를 만들라고 하시는지..) 기존에 사용하고 있던 Emacs 버젼이 낮은 관계로 업그레이드를 하긴 해야지.. 하다가 지금 릴리즈 되어 있는 버젼이 Shift+SPC 가 안먹는다는 이야기를 접했습니다. 커미터가 서양분인 관계로 Shift+SPC 의 필요성을 모르셨나 봅니다. (이런!!!) 그러다 CJK 언어를 쓰는 동북아 삼국의 맹공 (주로 중국과 일본)을 받고 끝내, 왜 필요한지는 모르겠지만 이라는 사족을 단 채로 Shift+SPC 를 잡아채게 바꿨다고 합니다 ㅎㅎ 그래서 일단 Emacs 소스를 받아옵니다. 여러 레파지토리가 존재하지만 손에 익은 github.com 것을 가져오기로 합니다. https://github.com/emacsmirror/..