기본 콘텐츠로 건너뛰기

라벨이 meteorite인 게시물 표시

안드로이드 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 식으로 실행하면 됩니다.

meteor 에서 E-mail 인증하기

MAIL_URL은 gmail을 쓸 경우 다음과 같이 설정하면 된다. smtp:// 사용자계정 %40gmail.com: 계정암호 @smtp.gmail.com:465/ 혹은 google apps 계정은 경우 smtp:// 사용자계정 %40 구글Apps도메인 : 계정암호 @smtp.gmail.com:465/ ---- 가입자 확인 메일 발송엔 몇가지 문제가 있는데 1. Text로 메일을 보낸다. 2. Formatted 형식을 사용할 수 없다. 이건 내가 생각해봐도 좀 아니다 싶다. server 쪽에서 startup 할때 기존 Accounts.emailTemplate과 Accounts.sendVerificationEmail 등등이 제대로 작동하도록 바꿔치기 해주자. :: email.coffee Meteor.startup ->   # set Mail configuration   Email = Package.email.Email;   _.extend Accounts.emailTemplates,     from: "Gearlounge <no-reply@gearlounge.com>"     verifyEmail:       subject: (user)->         "#{"#{user.profile.displayName}님, "if (user.profile and user.profile.displayName)?}가입을 환영합니다."       html: (user, url)->         Handlebars.templates['verifyEmail'](           user: user.profile &...

Meteor에서 REST API를 사용하는 방법 #2

server쪽 API를 router package를 사용해 쓰다보면 header 같은 걸 다루거나 할땐 너무 단순하게 만들어서 곤란할 수 있다. 이전에도 다룬 적( http://spectrumdig.blogspot.kr/2012/08/meteor-rest.html )이 있지만 __meteor_bootstrap__ 객체를 통해 접근하면 node.js 식의 접근이 가능하다. Meteor update와 함께 Npm 객체가 생겼으니 이를 이용해 connect 객체를 사용해보자 http://www.slideshare.net/cjoudrey/building-your-first-node-app-with-connect-express 위 슬라이드를 한번 보면 이해에 도움이 될 것이다. WebApp.connectHandlers 가 connect.createServer()라는 걸 기억하면 된다. connect = Npm.require 'connect' server = WebApp.connectHandlers server.use connect.router (app)-> app.get '/info', (req,res)-> res.end "info" app.get '/user/:id', (req,res)-> res.end "user id: #{req.params.id}" 이와 같은 코드를 server 디렉토리에 안에 넣거나 Meteor.isServer일때 실행하도록 하자. 파일 업로드나 쿼리 문자열 처리(ex: ?a=1&b=c)하려면 각각 bodyParser( http://www.senchalabs.org/connect/bodyParser.html ) 와 query( http://www.senchalabs.org/connect/query.html )를 추가하는 것이 좋다. 위의 해당 링크에 보면 소스까지 공개 해놓아서 이해하기 쉬우니 ...

meteorite 기동시 spawn ENOENT 오류가 날때

OS X를 Lion 에서 Moutain Lion 으로 업그레이드 후 mrt를 가동시켰더니 $ mrt Stand back while Meteorite does its thing smart.json changed.. installing from smart.json Installing Meteor   branch: https://github.com/meteor/meteor.git#master Installing smart packages events.js:72         throw er; // Unhandled 'error' event               ^ Error: spawn ENOENT     at errnoException (child_process.js:948:11)     at Process.ChildProcess._handle.onexit (child_process.js:739:34) 이런 오류가 날때가 있다. spawn 을 하다가 오류가 났다는 건 외부 파일 실행을 하는 게 실패해서 인가 싶어서 보니 meteorite은 git을 사용하고 있었지. 그랬었지. which git 해보니 없었다. http://git-scm.com/ 여기 가서 다운받고 설치하자. 평화적으로 잘 해결이 되었다. 사실 해보고 나서 생각해보니 OS X에서 업글을 할때 git path를 잡아놓았던게 없어져서 그런 것인데 path 에 /usr/local/git/bin를 추가해주기만 해도 해결된다. git을 다시 설치하면 /etc/paths.d/git 아래에 path를 잡아준다. sudo sh -c 'which git > /etc/paths.d/git' 이런 식으로 잡아줘도 무방.

meteorite package에 d3.js를 올렸다.

http://meteor.com/authcast  를 보면서 벡터그래픽을 마치 DOM처럼 쓰는 게 너무 맘에 들어서  https://atmosphere.meteor.com/  에 올려야겠다는 생각이 들었음. https://gist.github.com/3327056  와  https://atmosphere.meteor.com/wtf/package 내용 참조해서  https://github.com/acidsound/d3js-package  이런걸 올리긴 했는데 submodule 을 처음 써봐서 삽질 좀 했다. js 라이브러리의 경로를 잘못써서 몇가지를 수정하고 올리려고 했더니 /usr/local/lib/node_modules/meteorite/lib/atmosphere.js:82           throw "This tag has already been committed to the repo.";           ^ This tag has already been committed to the repo. 이런 오류가 나서 소스를 열어보았다. 80      exec('git tag', function (err, stdout, stderr) { 81        if (stdout.indexOf(versionName) >= 0) 82          throw "This tag has already been committed to the repo."; versionName 이 뭔가 쫓아가보았더니 smart.json 에서 지정한 "version". 뭐 암튼 release 할때 "version" 키의 값에 "v"를 앞에 붙여서 tag를 만들기 때문에...

주목할만한 Meteorite package들

meteorite 는 meteor 에서 정식으로 지원하지 않는 사도의 길이지만 그런 거 언제 중요했던가. 달면 뱉고 쓰면 삼키는 것이지 :) meteor 자체가 여러가지로 부족하고 제약도 많은 프레임워크다. 하지만 워낙 매력있는 놈이다보니 자체 package manager 같은 게 만들어질 정도. 마치 Account package 처럼 meteor 1.0 찍기 전에 정식 기능으로 편입되지 않을까 하는 기대를 해본다. 지극히 개인적인 관점에서 흥미있는 것들이라 다른 것도 볼만하다. 혹은 없으면 직접 만들어서 커미터가 되어보자! aloha-editor Aloha Editor for Meteor wysihtml5 쓰는데 문제가 너무 많아서 고려중 accounts-instagram Login service for Instagram accounts. OAuth 연동하는 예제로 볼만함 headly meteor package to handle facebookexternalhit responses (for og:metatags use… Meteor 에선 head 부분이 template 으로 들어가지 않아. 프로그램에서 접근이 불가하다. 이를 해결해주는 앱. facebook open graph 연동을 위해 필요함 node-modules Node module hacks encapsulated node-modules 을 쓰기 위해서 public 에 넣는 꼼수(tests 에 넣어도 되지만 package 할때 문제)를 피할 수 있게 직접 절대경로를 지정할 수 있음. codemirror CodeMirror repackaged for Meteor jsbin등에서도 쓰는 code mirror 의 meteorite 패키지. 공동 문서작업 용도로 쓸만할 것으로 보임. moment Moment.js packaged for Meteor 시간 관련 함수를 깔끔하게 정리해놓은 moment. ...