Trello 일정을 구글 캘린더와 연동하기

DevOps|2015. 2. 26. 11:16

Trello 보드에 있는 카드에 누군가 Due date를 설정하면 이게 하나의 일정이 됩니다.

그런데 저는 일정 관리를 모두 구글 캘린더를 통해 하고 있기 때문에 이 관리 안되는 Trello 일정이 꽤나 거슬렸습니다. Sunrise라는 Trello를 지원하는 캘린더 앱을 사용하고 있지만 캘린더 앱 두 개를 사용하는건 쉽지 않습니다.

찾아 보니 Trello는 iCal 형식의 캘린더 주소를 제공하고 있었습니다. 그것도 모르고 이래저래 괜한 시간낭비를 한 저 자신을 원망하면서 연동 방법을 남깁니다.

Trello 보드에서 iCalendar Feed URL 얻기

Trello 보드 우상단에 있는 Menu의 하위 메뉴 Power-Ups를 클릭합니다.

Power-Ups에서 Calendar를 클릭하고 Enable을 클릭하여 Calendar를 활성화합니다. 이렇게 하면 위 이미지 좌상단에 보이는 Calendar 메뉴가 생기며, 이 메뉴를 통해 달력 형식으로 보드에 있는 일정을 볼 수 있습니다.

Enable iCalendar Feed? 항목에 있는 Enable을 클릭하면 바로 아래에 있는 Your Personal iCalendar Feed에 Feed URL이 생성됩니다. 이 URL을 복사합니다.

구글 캘린더에 추가하기

이제 구글 캘린더로 이동한 후 화면 좌측 중간쯤에 있는 다른 캘린더 > URL로 추가를 클릭합니다.

URL란에 아까 복사한 Feed URL을 붙여넣기 한 후 캘린더 추가를 클릭하면 연동이 완료됩니다.

아쉽지만 캘린더를 추가한 후에 바로 Trello 일정이 구글 캘린더에 나타나지는 않습니다. 하루 한 번 정도 구글 마음대로 동기화를 한다고 합니다.


댓글()

angular-translate를 이용해서 Angular 앱에 국제화(i18n) 적용하기

JavaScript|2015. 2. 25. 00:48

개요

여러 언어를 지원하는 Angular 앱을 만들려면 i18n을 지원하는 모듈이 필요합니다. 찾아 보면 여러 가지가 있겠지만 여기에서는 angular-translate라는 모듈을 소개합니다.

angular-translate는 최소한의 기능만 간편하게 사용하거나, 따로 제공되는 여러 확장점을 이용해서 강력하고 복잡한 기능을 구현할 수 있는 유연한 모듈입니다.

angular-translate 홈페이지로 이동

설치

Bower를 이용해서 설치할 수 있습니다. Bower를 설치한 후 아래의 명령을 실행하면 됩니다.

$ bower install angular-translate

간단 사용법

먼저 angular-translate.js의 경로를 명시한 script 태그를 angular.js 에 넣어줍니다.

<script src="angular.js"></script>
<script src="angular-translate.js"></script>

pascalprecht.translate 모듈에 대한 의존성을 설정해 줍니다.

var app = angular.module('myApp', ['pascalprecht.translate']);

번역어 목록(translation table)을 작성하고 이를 language key en과 함께 $translateProvider의 translations 메소드로 전달합니다. 아래 예제에서는 영어(en)에 대한 번역어 목록만 전달했지만 여러번 호출하여 다른 언어에 대한 번역어 목록도 추가로 전달할 수 있습니다.

$translateProvider의 preferredLanguage 메소드에 language key en을 전달하여 영어를 기본 언어로 설정합니다.

var app = angular.module('myApp', ['pascalprecht.translate']);

var translations = {
    HEADLINE: 'What an awesome module!',
    PARAGRAPH: 'Srsly!',
    NAMESPACE: {
        PARAGRAPH: 'And it comes with awesome features!'
    },
    PASSED_AS_TEXT: 'Hey there! I\'m passed as text value!',
    PASSED_AS_ATTRIBUTE: 'I\'m passed as attribute value, cool ha?',
    PASSED_AS_INTERPOLATION: 'Beginners! I\'m interpolated!'
};

app.config(['$translateProvider', function ($translateProvider) {
    $translateProvider
        .translations('en', translations)
        .preferredLanguage('en');
}]);

이제 filter, directive, interpolation을 아래와 같이 사용하면 번역어가 출력됩니다.

<p>{{ 'HEADLINE' | translate }}</p>
<p>{{ 'PARAGRAPH' | translate }}</p>

<p translate>PASSED_AS_TEXT</p>
<p translate="PASSED_AS_ATTRIBUTE"></p>
<p translate>{{ 'PASSED_AS_INTERPOLATION' }}</p>
<p translate="{{ 'PASSED_AS_INTERPOLATION' }}"></p>

angular-translate 사이트의 Using translate directive 페이지로 이동한 후 하단에 있는 Source 부분 우측에 있는 Edit를 클릭 후 다시 In JsFiddle을 클릭하면 동작하는 예제를 볼 수 있습니다.

여기까지 간단한 angular-translate 사용법이었습니다.


'JavaScript' 카테고리의 다른 글

Enyo 기반 webOS TV 앱 개발 팁  (0) 2014.08.04
webOS TV SDK 설치 방법  (0) 2014.07.29

댓글()

XnConvert를 이용한 이미지 일괄 변환

기타|2015. 2. 22. 17:33

브로셔 등의 문서 자료를 카메라로 찍은 후 스마트폰으로 볼 때 가독성이 문제가 되는 경우가 많습니다.
이럴 때 저는 이미지 편집툴을 사용해서 아래와 같이 몇 가지 전처리를 한 후에 사용합니다.

  • 흑백(Greyscale)으로 변환
  • 선명하게 처리(Sharpen)
  • 대비(Contrast) 조정

이렇게 전처리를 하면 글자가 선명해져서 눈이 좀 더 편합니다.
지금까지는 Comic4Portable을 사용해서 위와 같은 전처리를 해왔습니다.

그런데 이미지의 양쪽을 일정 부분 잘라내어야 하는 일이 생겨서 오늘은 다른 툴을 찾아봤습니다.
그래서 찾아낸 툴이 XnConvert! 저에게 필요한 전처리와 잘라내기(Crop)을 모두 지원합니다.
아래 링크에서 내려받아서 무료로 사용할 수 있습니다.

XnConvert 내려받기

간단 사용법

XnConvert를 실행하면 Input 탭에서 시작합니다. 먼저 처리가 필요한 이미지를 끌어다 놓기 하거나 좌측 하단에 있는 Add files, Add folder를 클릭해서 가져옵니다.

Input

가져온 이미지를 일괄 변환하기 위해서 Actions 탭을 클릭하여 이동한 후, 다시 Add action을 클릭하여 Image, Map, Filter, Misc 등의 여러가지 전처리기를 적용합니다. 저는 Filter > Sharpen, Map > Automatic contrast, Image > Change color depth, Image > Crop을 추가하고 각각의 세부 옵션을 조정했습니다(세부 옵션은 아래 이미지를 참조하세요).

Actions

이제 Output 탭을 클릭하여 이동한 후, 변환된 파일을 저장할 위치나 파일명을 조정할 수 있습니다. 저는 D:\ImageOutput로 저장 위치를 지정하고 파일명 형식으로는 원본 파일명 뒤에 _result 문자열을 덧붙이는 {Filename}_result을 선택했습니다.

Output

마지막으로 우하단에 있는 Convert를 클릭하여 이미지 일괄 변환을 시작합니다. 변환이 완료되면 자동으로 Status 탭으로 이동하면서 변환 내역을 보여주며, 지정한 Output folder에는 변환된 이미지가 생성됩니다.

Status


댓글()

AWS에 설치된 MySQL DB를 외부 접속이 가능 하도록 설정

DevOps|2015. 2. 22. 01:45

설치 환경

AWS에 Ubuntu 14.04를 기반으로 인스턴스를 생성하고 sudo apt-get install mysql-server 명령으로 MySQL을 설치

  • 버전 - MySQL 5.5(5.5.41-0ubuntu0.14.04.1)

AWS - Security Group 설정

Inbound 탭에서 3306 포트를 열고 SourceAnywhere(0.0.0.0)으로 설정

MySQL 설정 파일(/etc/mysql/my.cnf) 수정

bind-address 항목을 찾아서 0.0.0.0으로 변경(이전 값은 127.0.0.1)

MySQL 재시작

service mysql restart

ROOT 계정으로 외부에서 접속 가능하게 하려면

아래의 명령을 MySQL monitor에서 실행

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 49
Server version: 5.5.41-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;
Query OK, 0 rows affected (0.12 sec)


댓글()