Garmin Watch Face 수정

Motivation

최근 Garmin Watch Face 로 Crystal을 사용하고 있는데, 한글이 출력되면 더 사용하기 좋을 것 같다는 생각에, 한글을 추가해 보았다.

한글이 지원되지 않는 Crystal Watch Face
한글이 지원되는 Crystal Watch Face

개발 환경 설정

Eclipse 설치 (생략)

Connect IQ SDK 설치

https://developer.garmin.com/connect-iq/sdk/

PATH 설정

export PATH=$PATH:path/to/connectiq-sdk/bin

Eclipse Plug-in 설치

  1. In Eclipse, click the Help menu
  2. Choose Install New Software…
  3. Click the Add… button
  4. Add https://developer.garmin.com/downloads/connect-iq/eclipse/ to the Location field and click Add
  5. Check the box next to Connect IQ in the Available Software window and click Next
  6. Review the license agreement and click Finish
  7. Once the installation completes, restart Eclipse

SDK 설치

  1. In Eclipse, click the Connect IQ menu
  2. Choose Open SDK Manager
  3. Browse to or specify a path to a directory where the SDK will be saved
  4. Click the Download button next to the latest SDK release
  5. Review the license agreement, and click Agree
  6. Once the download completes, click Yes when prompted to use the new SDK version as your active SDK
  7. Close the SDK Manager

Eclipse 에서 디버깅, 실행

Start Simulator

Connect IQ -> Start Simulator

Run

Run -> Run As -> Connect IQ App

개발 참고 사항

Font 관련

Bitmap font 생성

  • http://www.angelcode.com/products/bmfont/ 에서 설치
  • Font Setting 에서 Font 선택, 사이즈 선택
  • Export Options 에서 Texture 를 png 로 변경
  • 화면에서 추출할 모든 글자 선택
  • Visualize 로 확인
  • Save bitmap font as… 후 nanum-gothic-kor-24.fnt 형태로 저장
  • 각각의 사이즈(16, 20, 24, 26, 28, 39) 별로 모두 fnt, png 파일 생성

Bitmap font 복사

각각의 Resource directory 에 복사할 필요가 있음

Font Resource 반영

XML 파일 수정이 필요함 (https://github.com/warmsound/crystal-face/pull/154/files 를 참고할 것)

References

Synergy 의 대안 Barrier

2대의 PC 를 사용하고 있고, 1개의 키보드 마우스만 이용해서 2대를 조작하고 싶다면, 대부분 Synergy 를 사용하고 있을 것이다. 나도 6년 가량 Synergy 를 사용하고 있었는데, 최근 개발 환경을 Ubuntu 18.04 로 업그레이드 하면서 무료로 사용하던 Synergy(이전 버전의 Synergy 는 Open Source 이다.) 가 제대로 동작하지 않아서 대안을 찾아보게 되었다.

여러 글들과 사용 경험들을 참고해서 골랐는데, 내가 찾은 대안은 Barrier 이다. Barrier 는 Synergy Fork이고 기능이 대부분 동일하기 때문에 쉽게 갈아탈 수 있는 장점이 있다. 게다가 github 에서 잘 유지보수 되고 있다는 점도 엄청난 장점이다. Barrier 는 https://github.com/debauchee/barrier 에서 확인할 수 있다.

Building on Linux

sudo apt update && sudo apt upgrade
sudo apt install git cmake make xorg-dev g++ libcurl4-openssl-dev \
                 libavahi-compat-libdnssd-dev libssl-dev libx11-dev \
                 libqt4-dev qtbase5-dev
cd barrier
./clean_build.sh
cd build
sudo make install  # installs to /usr/local/

Window Binary

https://github.com/debauchee/barrier/wiki

Synergy vs Barrier

  • Pros
    • Synergy 는 Window 버전에서 한영키 문제가 있어서 새롭게 빌드를 해줘야하는 불편함도 있었는데(무료 버전에서.. 정식 버전은 사용해보지 않아서..), Barrier 는 해당 버그가 없다.
    • Synergy 에서는 SSL 이 안되었는데(무료버전에서), Barrier 는 SSL 이 된다.
  • Cons
    • 딱히 없는 것 같다.

서버 설정

Ubuntu 18.04 sever version 64bit 설치

Node.js 설치

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
sudo apt-get install -y nodejs

sudo apt-get install build-essential

Nginx php mysql 설치

sudo apt update
sudo apt install nginx

sudo apt install mysql-server
sudo mysql_secure_installation

sudo apt install php-fpm php-mysql

sudo vi /etc/nginx/sites-available/nanbean.net

sudo ln -s /etc/nginx/sites-available/nanbean.net /etc/nginx/sites-enabled/

sudo unlink /etc/nginx/sites-enabled/default

sudo nginx -t
sudo service nginx restart

FTP 설치

sudo apt-get install vsftpd
sudo vi /etc/vsftpd.conf

# enable write permission
write_enable=YES

Node.js app configuration with pm2

npm install pm2 -g

pm2 start myapp -n name

# start pm2 on boot
pm2 startup
# excute the last printed sentence

# save current process list
pm2 save

HTTPS 설정

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx

sudo certbot --nginx -d nanbean.net

# check auto renewal
sudo certbot renew --dry-run

crontab 설정

dynamic dns

기타

sudo apt install ffmpeg

XX 돌파 2018

1년만에 올리는 글이 또 XX 돌파이다. 2017년도에도 추세가 회복되어 만족스러웠는데, 2018년에도 추세가 꺽이지 않고 잘 흘러가고 있다. 무엇보다도 안정적인 흐름을 지속 가능하도록 만들었다는 것이 고무적이다.

이전의 그래프와 모양이 상당히 달라졌는데, 구시대의 산물(MS가 접은)인 Money의 불편함(주식 가격 자동 업데이트 안됨, 수동 거래내역 입력, Report 수동 생성 등)을 더이상 견딜 수 없어서, Money 에서 내가 쓰는 기능들만 골라서 기능을 새롭게 Web Application으로 구현하였다. 수동으로 입력하는 불필요한 노동을 많이 덜어낼 수 있다는 점에서 내가 코딩한 것 중에 가장 잘한 일이 아닌가 생각된다.