Friday, February 19th, 2016, Music

http://gunnariauvinen.com/getting-es6-syntax-highlighting-in-sublime-text/

Sublime Text에서 Syntax Highlighting이 깨지는 경우,

1. cmd + shift + p로 Command Palete… 를 연다.
2. install을 입력해 Package Control: Install Package를 선택한다.
3. Babel을 선택해서 install한다.
4. Syntax Highlighting이 깨지는 파일을 열어 View > Syntax > Open all with current extension as… > Babel > JavaScript (Babel) 을 선택한다.

 

Friday, February 19th, 2016, Tips

1. 특정 repository에서 유저이름, 이메일 등을 설정할 때 해당 repository의 root에서 입력
2. global로 사용하고 싶은 경우

git config user.name "name"
git config --global user.name "name"
Tuesday, August 11th, 2015, Tips

지난해 10월 트위터에서 Fabric (모듈형 모바일 플랫폼)을 론칭하며 이 내용을 홍보하고자 올해 1월~6월까지 월드 투어를 하는 중이었어요!
이에관한 내용은 아래 블로그에 있구요
https://blog.twitter.com/ko/2014/introducing-fabric-kr

이 플랫폼들은 본인들이 개발하면서 필요한것을 만들면서 점차 공개하기 시작해서 자신들도 실제로쓰고 있다고 하더라구요.
좋은 모바일 앱을 개발할 수있도록 필요한 항목들을 잘 사용하기 위해서 아래와같이 툴들을 만들었답니다.
그리고 이 툴들은 모두 Free라고 강조하더라구요 (twitter를 사용해서 자신의 앱을 광고하고자할때 일부의 경우빼고요)

Stability – Crashlytics
Testing – Beta
Analytics – Answers
Identity – Digits
Growth – Twitterkit
Revenew – Mopub

Crashlytics
크래시와 그 외에도 퍼포먼스에 영향을 주는 이슈들도 보여줍니다. (웹 대시보드와 메일로)
오리엔테이션은 뭐였는지 등등 알수있고 유저의 ID email등을 같이 전송해서 누구에게 크래시가 생겼는지도 알수있습니다.
Hipchat, Gitlap Trello등으로도 자동 보고가 되도록 할 수 있고 크리티컬한 정도를 조절해서 보고할수있도록할 수 있습니다.

Beta
Test할수있는 그룹들에게 빌드를 바로 바로 테스트할수있게 넘겨주는기능입니다.
어떤사람이 설치를 했는지 실제 실행해봤는지 테스트를 얼마동안진행했는지 등등을 알 수있습니다.

Answers
실시간으로 모니터할 수 있고, 빌드버전별로 크래시율을 비교할 수도있습니다. 이슈를 놓치지 않기위해 메일로 매일 리포트해줍니다.
평소보다 좀 더 차이가나기 시작하면 주황색글씨 또는 그래프에 주황색동그라미로 눈에띄도록 보여줍니다.

Digits
SNS인증이 유행을하다가 SNS종류도 너무많아지고 정보가 넘어가는 문제때문에 결국 모든 모바일폰 유저가 가지고있는 전화번호로 인증을 생각했다고합니다.
컬러나 버튼등을 약간 커스텀할수있는 UI와 SMS메세지를 전송하는 인프라를 직접 구축하여 제공합니다, 온세계 모두 된다고 보면된답니다.(메세지 현지화도 제공된대요, 제 폰으로 테스트해봤을때는 실패했어요ㅠ_ㅠ. 미국번호로 시연해주었어요)
전화번호를 통해서 양방향으로 친구찾기등의 기능도 있대요
2주쯤전엔가는 사용자가 더 보안을 강화하길원할경우에 2단계인증도 선택할수있도록 하는걸 개발했다고 하고요

Twitterkit
트위터로 로그인하기
트위터로 글 작성하기
트윗을 임베디드하기
rest api 등을 지원한다고 합니당,,
원래 rest api로 되던것들을 더 편하게 개발할수있도록 킷을 제공하는거같아요

*트위터로 마케팅하기 (글공유하게해서 팔로워들로 전파되도록 하는것도 설명해줫어요)
유료로 하는것도 있는데 트위터카드에 바로 앱을 인스톨하게하는기능같은 것이 일부있었어요. 그게아니어도 버튼눌러 링크보내기등은 무료로되니 이렇게 홍보해라 이런내용이었습니다.
또 트위터링크를 통해 설치한 횟수 / 영향력을 미친 트위터유저 등등을 fabric에서 파악할수있어요

Mopub
배너 / 풀스크린 / 비디오 / native에 껴넣는 방식 등등으로 광고를 보낼수있대요~
광고내용은 직접광고, ad network, Mopub marketplace의 광고 모두 가능하다고합니다
어느지점에 광고를 넣는게 좋은지 등을 fabric에서 확인할수있고 광고 빈도같은것도 설정할수있대요
자세한 내용은 위의 블로그나 아래 공식사이트를 참고해주세요

https://get.fabric.io/

fabric 사용예제
https://github.com/twitterdev/cannonball-ios
https://github.com/twitterdev/cannonball-android

Friday, May 8th, 2015, Tips

nib파일 작성시 iOS6에서는 navigation bar가 끝나는 영역부터, iOS7에서는 navigation bar를 포함하는 영역부터 뷰가 작성된다.
이 때 autolayout을 사용하는 경우 최상단의 subview의 상단 constraint를 IBOutlet으로 설정하고, ios6의 경우 이를 64px 줄여주면 호환을 쉽게 해결할 수 있다.

Sunday, February 8th, 2015, iOS

input 태그내의 검색어를 입력하면, 그 하단에 자동으로 뜨는 선택지 리스트를 보고 선택하고 싶은 경우 typeahead를 사용하면 된다

선택지 리스트를 로컬의 데이터가 아닌 서버에서 가져와야 하는 경우

<input type="text" ng-model="" typeahead="item for item in searchItem($viewValue)">

와 같이 함수를 사용하면 $scope내의 search()함수에 input값을 넘겨줄 수 있다

해당함수에서 결과값을 return해주면 되는데, get방식을 사용할 경우에는 jsonp를 사용할 수있다

또한 보여지는 수를 제한하기위해서는 limitToFilter(데이터, 수) 와 같은 형태로 리턴한다
요청시에 아래와같이 callback=JSON_CALLBACK를 인자로 넘겨줘야한다

$scope.searchItem = function(item) {
  return $http.jsonp('REQUEST_URL?callback=JSON_CALLBACK&filter='+item).then(function(response){
    return limitToFilter(response.data, 15);
  });
};

하지만 이것은 동기방식이므로 비동기방식을 사용하고 싶다면, input 값이 변할때마다 메서드를 콜하게 하는 방법이있다.

<input type="text" ng-model="ng-model명" data-typeahead-wait-ms="200" data-typeahead="item in selectList">
$scope.$watch('ng-model명', function(val) {
  // selectList를 리턴받을 메서드를 호출
});

* 주의 : angularjs v1.2.0 위의 버전에서는 한글입력이 버퍼에 들어가는동안 input값의 변경을 인지하지 못한다
textInputType 메서드안의 listener의 if (composing) return; 부분을 임시적으로 주석처리하면 입력을 받는다

Thursday, October 16th, 2014, Web

ng-repeat 내에서는 $index변수로 아이템의 index를 참조할 수있다

체크박스 중 체크된아이템을 얻어와야 할경우, 체크된아이템을 담을 배열을 선언한 후 모델을 아래와같이 선언해준다
ng-model = “checkedItem[$index]”

그리고 forEach문으로 체크된 아이템을 아래와 같이 얻어올 수 있다

angular.forEach($scope.checkedItem, function(checked, idx) {
  if(checked) {
    $scope.checkedItem[idx];
    ...
  }
});

여기서 두번째 인자는 iterator로 iterator(value, key, obj) 형식을 가질수있다

*value는 object property의 value이거나 array element
key는 obejct property key이거나 array element index
obj는 obj

*break문을 사용하고싶을때는 angular.forEach문은 지원하지 않으므로 for문을 사용한다

Tuesday, October 7th, 2014, Web

Failed to load resource: the server responded with a status of 403 (Forbidden)

위와 같은 에러가 나타났을때는 해당 resource의 권한설정을 살펴봐야한다.

chmod -R 777 디렉토리명

이렇게 하면 하위폴더까지 권한설정을 부여할 수있다.

Tuesday, September 23rd, 2014, Programming, Web

OS X Mavericks & Mountain Lion 에서는 web sharing preference panel이 사라졌다.
계정별로 web sharing을 설정하기 위해서는 다음과 같이 conf파일을 작성한다.

/etc/apache2/users/USERNAME.conf

<Directory "/Users/USERNAME/Sites/">
    Options Indexes Multiviews
    AllowOverride AuthConfig Limit
    Order allow,deny
    Allow from all
</Directory>

그리고

sudo apachectl start

명령으로 실행한다.

~/Sites/하위에 프로젝트 폴더를 위치하고, http://localhost/~USERNAME/프로젝트명 으로 주소창에 입력하면 된다.

http://osxdaily.com/2012/09/02/start-apache-web-server-mac-os-x/

Friday, September 5th, 2014, Web

OS, IDE, 언어를 입력하면 한번에 출력해줌
http://www.gitignore.io/

Monday, August 18th, 2014, Tips