2016년 1월 24일 일요일

Fuse 설치/사용기

Fuse라는 툴을 twitter 에서 계속 광고를 하고 있고
나는 twitter가 안 망했으면 하는 1人이므로 눌러줬다.

Sketch 하고 연동되고 Transition Animation 및 속도에 민감하다고 한다.
html 같은 독자적 xml 구조를 사용하고 로직은 js로 돌아가는 구조. titanium 보고 있나?

매력적인 요소는 많다.
실 기기 동시 AutoReload 라던가 Layout, Transition 등에 목숨 건다던가 Sketch랑 Artboard 1:1 연동 등등.
다리가 후달거린다.
일단 설치하고 App을 만들어보자.

커맨드 라인으로 쓰는 법을 알기 위해 fuse 라고 쳤더니 어랍쇼?
이런게 바로 뜨네.
커맨드 라인은 지원하지만 Dashboard 도 됩니다라는 거냐.

New 눌러보자.

이름을 정하고 만들었더니 Sublime 열기가 있다.
Sublime 3 설치하고 다시 실행.
호오. 친절하네. 엔터엔터 설정하니 플러긴도 막 깔아줌. 친절친절.

프리뷰 띄워보자.

시뮬레이터랑 iOS/Android 실기기를 지원하나보다.
일단 Local먼저.

연결연결
로딩로딩.
간지간지!
아이폰 연결도 해보자.
이건 시간 좀 걸리네.
Xcode를 띄워준다.
헤더 파일이 좀 많네.
프레임웍들은 거의 대부분 다 쓰는 듯. 


바람직한 뜨리 샷
내친김에 안드로이드도 가자.
실기기 연결하고.

fuse install android

하면
호로홀호롷로로~~

5.0.1 설치한다 오오.
엔진이 C++로 되있으니 NDK도 깔아야겠지.
끝.
안드로이드는 프리뷰를 처음 할때 좀 느리다.
지겨워도 끊지 말고 기다리면 뜬다.

기본 예제의 MainView.ux (확장자가 무려 ux - 0-!!!) 를 보니
Panel 안에 Page들이 세 개 있고 그 안에 있는 Text들을 좀 수정해보았다.

안드로이드도 잘 된다.

꽤 신박하고 요즘 유행을 잘 반영하는 도구라는 느낌이다.
이런 것들을 볼 때 눈여겨 보는 포인트는 과연 기존 Native 연동을 얼마나 잘 지원하는가인데

올해 1월중에 Foreign Code를 공개한다고 하고
현재는 Uno(C# dialect임) Native API Bindings 와 Uno Extension Layer (UXL)를 제공한다고 한다.
약간 Unity(...)같은 느낌인데 실제로 가볍게 빠르게 만드는 건 js로 한다고 해놓고 정작 중요한 Native Library 사용은 c#으로 한다는 점이 좀 실망스럽다.


내부 라이브러리의 경우는 그렇다고 치자.
외부 라이브러리는 QRCode 같은 사례만 봐도 아직 그쪽은 갈길이 멀어보인다.
UXL로 하면 어떻게 import를 할 수 있어 보이긴 한데 역시 만만치 않아보인다.

빠른 시간안에 과연 외부 라이브러리 생태계를 어떻게 구축할지가 관전 포인트가 되겠다.

osx - tensorflow 설치

https://gist.github.com/haje01/202ac276bace4b25dd3f

글을 참조했으나 권한 문제로 OS X에선 몇가지 문제를 해결해야한다.
먼저

sudo easy_install pip
sudo pip install --upgrade virtualenv

virtualenv 를 설치하자.

virtualenv --system-site-packages ~/tensorflow
cd ~/tensorflow

tensorflow 를 위한 환경을 만들어주고

source bin/activate

활성화 하자.
그 다음부터 진행.

pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
아래와 같이 되면 성공이다.

(tensorflow) ➜  tensorflow  pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
Collecting tensorflow==0.5.0 from https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
  Using cached https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
Requirement already up-to-date: six>=1.10.0 in /Library/Python/2.7/site-packages (from tensorflow==0.5.0)
Collecting numpy>=1.9.2 (from tensorflow==0.5.0)
  Downloading numpy-1.10.4-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (3.7MB)
    100% |████████████████████████████████| 3.7MB 96kB/s 
Installing collected packages: numpy, tensorflow
  Found existing installation: numpy 1.10.1
    Not uninstalling numpy at /Library/Python/2.7/site-packages, outside environment /Users/spectrum/tensorflow
  Found existing installation: tensorflow 0.5.0
    Not uninstalling tensorflow at /Library/Python/2.7/site-packages, outside environment /Users/spectrum/tensorflow
Successfully installed numpy-1.10.4 tensorflow-0.5.0

생각해보니 openCV 할때도 이렇게 할껄 그랬네.

python 열고

>>> import tensorflow as tf

오류 없이 잘 된다.

예제대로 진행해보았다.
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
can't determine number of CPU cores: assuming 4
I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 4
can't determine number of CPU cores: assuming 4
I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 4
>>> print sess.run(hello)
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print sess.run(a+b)
42
>>> 

오호? CPU Core 갯수를 모르겠으나 4개로 짐작한다라는 경고가 뜬다.

>>> NUM_CORES = 4
>>> sess = tf.Session()

이렇게 코어 갯수를 지정할 수 있다.

아직 iOS지원이라던가 병렬처리쪽이 공개가 안되었는데 눈팅하고 있어야겠다.



2016년 1월 15일 금요일

작업로그 - Ubuntu

http://cloudatcost.com/ 신청

https://panel.cloudatcost.com/index.php

meteor 설치

mup 실행

mosquitto 설치 (1883)

cloudflare 에서 home subdomain 생성 연결


apt-get install libmagick++-dev

npm install imagemagick-native

https://github.com/psaylor/sox-audio 설치

https://github.com/fluent-ffmpeg/node-fluent-ffmpeg ffmpeg도


2016년 1월 1일 금요일

ESP8266 - esptool-ck 플래싱 추천.

WeMo의 ESP8266+USB 통합모듈(http://www.wemos.cc/wiki/doku.php?id=en:d1_mini) 사용 중인데 아주 맘에 든다.
드라이버 신경 안써도 되고 바로 사용할 수 있고 크기도 작고 가격도 적절.
커스텀 빌드 롬을 올리려고 보니 기존 esptool 말고 권장하는 것이 있어

https://github.com/igrr/esptool-ck 를 사용해보았다.
OS별 다운로드는 여기(https://github.com/igrr/esptool-ck/releases)

esptool -vv -cd nodemcu -cb 921600 -cp COM5 -ca 0x00000 -cf firmware.bin
실행해보니

esptool v0.4.6 - (c) 2014 Ch. Klippel <ck@atelier-klippel.de>
        setting board to nodemcu
        setting baudrate from 115200 to 921600
        setting port from COM1 to COM3
        setting address from 0x00000000 to 0x00000000
        espcomm_upload_file
        stat firmware\nodemcu-master-27-modules-2015-12-31-19-46-51-float.bin success
        setting serial port timeouts to 1000 ms
opening bootloader
resetting board
trying to connect
        flush start
        setting serial port timeouts to 1 ms
        setting serial port timeouts to 1000 ms
        flush complete
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        read 0, requested 1
trying to connect
        flush start
        setting serial port timeouts to 1 ms
        setting serial port timeouts to 1000 ms
        flush complete
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        read 0, requested 1
trying to connect
        flush start
        setting serial port timeouts to 1 ms
        setting serial port timeouts to 1000 ms
        flush complete
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        read 0, requested 1
resetting board
trying to connect
        flush start
        setting serial port timeouts to 1 ms
        setting serial port timeouts to 1000 ms
        flush complete
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        read 0, requested 1
trying to connect
        flush start
        setting serial port timeouts to 1 ms
        setting serial port timeouts to 1000 ms
        flush complete
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_open
Uploading 486419 bytes from firmware\nodemcu-master-27-modules-2015-12-31-19-46-51-float.bin to flash at 0x00000000
        erasing flash
        size: 076c13 address: 000000
        first_sector_index: 0
        total_sector_count: 119
        head_sector_count: 16
        adjusted_sector_count: 103
        adjusted_size: 067000
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        setting serial port timeouts to 10000 ms
        setting serial port timeouts to 1000 ms
        espcomm_send_command: receiving 2 bytes of data
        writing flash
............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
starting app without reboot
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        espcomm_send_command: receiving 2 bytes of data
closing bootloader
        flush start
        setting serial port timeouts to 1 ms
        setting serial port timeouts to 1000 ms
        flush complete

엄청좋네?
스스로 플래싱하고 리붓하고 알아서 잘 한다.
GPIO0 을 건드리지 않아도 되니 엄청 편하다.