기본 콘텐츠로 건너뛰기

3D가속을 지원하는 Ubuntu 12.04LTS 를 Multiboot RK3188 설치 후 설정

https://plus.google.com/+IanMORRISON 님에게 감사의 말씀을 일단 1. SD 준비하기 먼저 용량 넉넉한 MicroSD를 FAT32로 포멧한 후 MiniTool Partition Wizard 같은 걸로 Ext4 파티션을 만들어준다. 2. 듀얼부팅용 Flash하기 RKAndroidTool.exe 를 일단 받자 순서대로 올려보는데 일단 기본적으로 USB Driver 등은 설치+적용해놓고 리커버리모드로 부트. update.img는 https://drive.google.com/file/d/0B99O3A0dDe67NjVLSHlhQXVnX0k 받아서 v1.7에서 올려서 upgrade했다. 파일이름이 아마 rikomagic-linuxium-bootloader 인데 내용 물은 update.img임. 이걸로 듀얼부팅은 끝. (최신 kitkat 적용 radxa 롬이 있긴 하지만 안정화도 그렇고 멀티부팅도 아직이라 보류http://radxa.com/2014/03/25/android-4-4-2-preview-firmware-released/ ) 하지만 몇가지 패치는 해주자 v1.37에서 boot(5번째)에 https://drive.google.com/file/d/0B99O3A0dDe67NjVLSHlhQXVnX0k minix-linuxium-updated-boot.img 요거 한번 올리고 run v1.37에서 Kernel(4번째)에 https://drive.google.com/file/d/0B99O3A0dDe67LXIzLU5nUk9mZW8 rikomagic-linuxium-updated-kernel.img 요거 한번 올리고 run 3. 이미지를 올릴 차례다. https://docs.google.com/file/d/0B99O3A0dDe67S1hQQ2VybldVYU0/edit  를 sd카드에 올리고 부트한 뒤 c 를 선택 커맨드라인 모드로 돌입. 쭉쭉 입력해주자. mke2fs /...

Meteor/handlebars에서 radio/select 다루기

자주쓰지만 은근 귀찮은 것이 radio와 select다. 특히 최초에 렌더링 할때 선택하게 하는게 번거롭다. #each로 option이나 input에 들어갈 별도의 키를 find의 transform에서 만들거나 아예 fetch를 하거나 array를 조작하거나 하는 건 어렵지 않지만 매번 같은 상황일때마다 코딩을 해야되니까 안 이쁘쟈나. (그렇쟈나 손구락 뿌러지쟈나 카피엔 페이스트 귀찮쟈나 짜증나쟈나!) 물론 checkbox도 귀찮지만 비슷하게 응용하면 될 것이니 handlebars의 block helpers를 사용하여 이 귀찮음을 해결해볼 수 없을까 해서 코드를 만들어보았다. 먼저 select를 해보면 다음과 같은 그림인데 <select>   {{#each array}}   <option value="{{code}}">{{name}}</option>   {{/each}} </select> array중 code가 특정값과 일치하면 selected="selected"가 되도록하려면 간단하게는 option이라는 Helper를 만들어 {{option name code value}}식으로 할 수도 있겠지만 <option> 이라는 객체가 없어지니까 별로 좋지 않다. 그렇다면 특정 블록을 감싸안아서 인자로 받은 값과 같은 option이 있는지 찾아서 수정한 후 대치하면 될 것이다라고 생각. Handlebars . registerHelper "select" , (value, options) -> select = document . createElement ( "div" ) $ ( select ). html options () $ ( "option" , select ). filter ( "[value=' #{ value } ']" )....

IE 10에서 JSON object 사용 시 주의점

js에서 JSON에 ,를 잘못 쓰면 IE 10에서 오류 나는 경우 발견. var obj = {   a:1,   b:1 }; 이 맞지만 var obj = {   a:1,   b:1 ,  }; 복사하기 귀찮아서 이렇게 쓰는 라이브러리들이 간혹 있음. 문제는 ,를 쓴 곳에서 오류가 발생하는 것이 아니라 그 이후 라인에서 잘못한 것처럼 보여서 잡아내기 쉽지 않다. webstorm 같은 구문검사 기능이 있는 에디터를 꼭 쓰자. 아니면 coffeescript를 쓰던가 ;p

안드로이드 TV 스틱(armv7l)용 meteor branch를 만들었습니다.

https://github.com/acidsound/meteor/commit/d65a2a3530d89fd97c1b582b00ed28af9c5c608a 수정사항은 위와 같습니다. 필요한 의존성이 있으므로 sudo apt-get update sudo apt-get install build-essential openssl libssl-dev pkg-config git-core scons libpcre++-dev libboost-dev libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev curl 먼저 받아놓습니다. 설치 방법은 git clone https://github.com/acidsound/meteor.git cd meteor git checkout devel_armv7l ./scripts/generate-dev-bundle.sh 이걸로 빌드한 후 ./meteor 로 확인해보면 됩니다. meteor 디렉토리를 path로 잡던가 meteor를 /usr/local/bin 에 넣던(확인 안해봄)하면 됩니다. meteorite(mrt) 설치는 그냥 npm install 을 사용해서 하면 별 이상 없이 잘 붙습니다. mongo는 포함하고 있지 않으므로 실행시엔 반드시 외부(ex.mongohq) mongo 서비스를 사용하시길 바랍니다. MONGO_URL=mongodb://id:pw@alex.mongohq.com:10058/yourdb mrt 식으로 실행하면 됩니다.

Cordova(구 phonegap)로 android 앱을 만들 때 GPS 정보를 잘 못 받아온다면.

어떤 폰에선 되고 어떤 폰에선 안되고 되다가도 안되고 하도 현상이 여러가지라서 거의 2주동안 붙잡고 씨름했는데 허무한 결말. navigator.geolocation.getCurrentPosition(success, failure, option); 에서 option에 {   timeout: 10000 } 만 줘서 하니 잘 된다. iOS는 뭐 아무렇게나 해도 잘되는데 Android에선 enableHighAccuracy : true 옵션을 주면 안된다. 나머지는 config.xml에     <feature name="Geolocation">         <param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" />     </feature> 이런게 있는지 platforms/android/AndroidManifest.xml에 가 있는지 ....     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />     <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 권한이 잘 들어갔는지 정도만 신경 써주면 된다.

Meteor를 client만 사용하기 - Offline Meteor

'뭔소리야 서버부터 클라이언트까지 하나의 언어 하나의 자료형을 쓰는게 Meteor의 장점인데 왜 서버를 분리해?' 라며 당연하고 올바른 생각을 가지고 계신 분이라면 '뒤로 가기' 추천합니다. ^^;;; Meteor는 좋은데 서버가 자바야, PHP야. 혹은 Cordova(구 phonegap)이나 Chrome Apps같은 분야에 적용하고 싶은데 Meteor로 하고 싶어라고 생각하신다면 추천. Meteor 프로젝트를 meteor create <...> 로 생성하셨다면 Meteor는 run을 한 시점부터 .meteor/local/build/programs/client 에 클라이언트 쪽 파일들을 생성합니다. 이걸 고대로 떠서 약간의 작업을 하면 서버와 상관없이 사용할 수 있는데. app.html 의 ##HASH## 들을 삭제한다. __meteor_runtime_config__ 을 추가하여 ROOT_URL을 지정한다. (보통은 localhost) package등에서 사용하는 정적 자원에 대한 경로를 수정한다. 8000포트에 할 경우 .html 파일에 아래와 같은 부분을 ##RUNTIME_CONFIG## 있는 곳에 바꿔 넣어줍니다.   __meteor_runtime_config__={   ROOT_URL = "http://localhost:8000"   } 정도가 되겠습니다. 의외로 어렵지 않죠? 근데 실제로 해보면 신경쓸 것들이 좀 있습니다. 제 경우는 디렉토리 구조를 이렇게 잡았습니다. 생성한 과정은 이렇습니다. $ mkdir pack $ cd pack $ meteor create memo $ mkdir www $ cd memo 여기까지 하고 client 쪽 코드를 약간 수정합니다. Meteor는 기본적으로 클라이언트 vs 서버간 websocket통신을 하고 있기 때문에 관련 그 부분을 hack해서 못쓰게 ...

android(armv7)에 node.js 올리기. (Rockchip RK3188/MK809C)

http://masashi-k.blogspot.kr/2013/08/nodejs-on-android.html 이쪽 글을 참조했다. 환경은 일단 RK3188 계열인 MK809C로 시도해보았다. 먼저 루팅이 되어있고 Linux Installer나 Debian Tool kit등으로 리눅스를 설치했고 터미널 클라이언트나 SSH를 통해 접근 가능한 상태라고 가정한다. 현재 node.js의 안정(stable) 버전은 v0.10.23이므로 해당 소스를 다운받자. http://nodejs.org/download/ 에 들어가서 http://nodejs.org/dist/v0.10.23/node-v0.10.23.tar.gz 직접 소스를 받으면 된다. $ wget  http://nodejs.org/dist/v0.10.23/node-v0.10.23.tar.gz 으로 받자. $ tar xzf node-v0.10.23.tar.gz $ cd node-v0.10.23 해서 빌드 준비를 하자. $ ./configure --without-snapshot --dest-cpu=arm --dest-os=linux 로 먼저 빌드 환경을 잡고 바로 make 하기전에 thumb inter-working 관련 오류를 피하기 위해 macro-assembler-arm.cc 파일의 일부를 수정한다. 압축푼 경로를 기준으로 vi ./deps/v8/src/arm/macro-assembler-arm.cc 파일을 열어 60라인 근처를 수정하자. #if defined(USE_THUMB_INTERWORK) && !defined(CAN_USE_THUMB_INSTRUCTIONS) # error "For thumb inter-working we require an architecture which supports blx" #endif 아마 이런 부분이 있을 것이다. # error 부분 줄을 삭제하거나 // 처리 하자. ( http://...