금요일, 8월 22, 2014

요즘 필요한 것들

올챙이 운영서버(www.tadpoledb.com) 을 오픈하고 사용자들의 쓰임을 보고 있으면 즐겁기고 우울하기도 합니다.  힘들게 몇주간 고민한 기능을 아무도 쓰지 않을때 우울한 것이지요.  쪽지 이런 기능을 막아야 하지않을까 고민입니다.

올챙이 서버의 사용자는 245명 등록된 디비는 177개입니다.

목표(?)라면 올해까지 1,770개 등록되는 것입니다.

글 제목이 요즘 필요한 것들인데요. 
그나마 잘하지도 못하는 개발하는 것도 부족하고 다 부족하지만요.
특별히 부족한 것은 사용자 분들의 피드백이지 않을까 싶습니다. 

구체적이고 꼼꼼한 피드백일수록 좋습니다.

어쩔때는 너무 어처구니 없는 피드백도 있어 기분 상하기도 합니다.  그런 피드백은 감정을 건드는 피드백인듯해요. 얼마전에 에디터의 피드백 처럼요.(링크가 생각이 안나네요)  대부분의 피드백은 피가 되고 살이 되지요. 

올초에 받은 올챙이 피드백인데 얼굴이화끈거렸지만, 좋았고 많이 개선할 수 있었어요. 
https://docs.google.com/spreadsheet/ccc?key=0AnYIS2ZszMgpdHN2b25QNmM3Q2dEUndnVzBHaEh5Y3c&usp=sharing

올해 초부터 프로젝트 서브프로젝트 이름을 edge로 정하고, 데이터베이스 추가하는 일을 자재하고, 꼼꼼하게 만들고 편하게 만드는 것을 목표로 개발하고 있지만 한계가 많은듯합니다. 

사용하시는 분들의 꼼꼼한 피드백 부탁드려요.
작은 것은 빠른 시일에 큰것은 일정을 잡아서 하나씩 개선해 가겠습니다. 

월요일, 8월 11, 2014

Eclipse RAP 에서 Google Analytics 적용하기.

이클립스에서는 프로그램 사용자 경험 데이터를 얻기 위해서는 일반적으로 Eclipse Usage Data Collector(http://www.eclipse.org/epp/usagedata/)를 사용합니다.

만들고 있는 올챙이(Tadpole DB Hub, https://chrome.google.com/webstore/detail/tadpole-db-hub/nhfaneohnnijkdpgmiddcgbcgpjgdjnc?utm_source=gmail)에서도 사용자가 어느 기능을 더 많이 사용하는지등의 정보를 알고 싶었습니다.  하지만, 서버를 따로 준비해야하는 등의 문제로 하지 못하고 있었습니다.

올챙이를 Chrome Web Store에 올리려다 보니 Google Analytics 입력 할 수가 있어서, 진작에 이것을 이용하지 못했나 싶었습니다.


그래서 Eclipse RAP에 Google Analytics 적용방법을 알아보겠습니다.
1. loading html 에 javascript 정보를 삽입합니다.
즉 org.eclipse.rap.ui.branding에서 정의한 body의 html/body.html에 Google analytics에서 추가하라고 하는 javascript 를 추가하는 것입니다.


<< body 정의하는 org.eclipse.rap.ui.branding extension >>










<< body.html(http://goo.gl/Qcv8dd)>>








상단에 보면 추적코드가 추가되어 있는 것을 볼수 있습니다.  이렇게만 하면 Google 
Analytics의 dashboard에서 호출되는 것을 확인할 수 있습니다.

2. 그렇다면 다른화면에서는 어떻게 호출할 수 있을까요?
RAP에서 javascript를 바로 호출해주려면 JavaScriptExecutor를 사용해야 합니다.
그리고 body.html에 정의했던 javascript의 ga 메소드를 호출해 주어야 하구요.
우선은 유틸 클래스를 아래와 같이 만드시구요.

(전체코드보기)

3. 실제 데이터를 수집하고 싶은 화면에서는 위의 코들 호출해 주면됩니다.
LoginDialog.java(http://goo.gl/pOhQcr의 217 라인을 살펴보시죠.  AnalyticCaller.track("login"); 메소드 입니다.

------------------------------------------------------------------------
이렇게 필요로 하는 곳에서 호출을 하면은 되는데요.
내부 적으로는 어떻게 이것이 가능할까요?  

body.html 생각 나시죠?
모든 화면은 body.html위에서 동작하니 가능한 것입니다.