Facebook React Native

작년(2014)이었나 페이스북에서 React를 만든게...

근데 올해 1월말에 ReactConf 2015에서 React Native가 발표되었다.

React는 라이브러리였다.

근데 React Native는 Framework이다.

정확하게 공식 페이지의 설명을 인용해보면

React는 

A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES

React Native는 

A FRAMEWORK FOR BUILDING NATIVE APPS USING REACT

벌써부터 내년에는

페이스북에서 무엇을 발표할지 기대가 된다.





git commit 취소 방법

바로 직전에 한 commit을 취소하는 방법이다.

- Working directory 수정 내역은 유지
$ git reset --soft HEAD^

- Working directory 수정 내역도 삭제
$ git reset --hard HEAD^







초보자를 위한 EFL 기초 2

이번에는 지난번에 이어 Elementary에 대해서 알아보겠습니다.

(갑자기 존대말로 바뀌었네요...^^;;)


Elementary는 EFL에서 제공하는 위젯 라이브러리중 하나입니다.

아...위젯이 뭔지 모르시는 분들도 있겠네요.

위젯이라는 거 말로 설명하기 참 힘듭니다.

일단 버튼, 아이콘, 체크박스, 리스트 같은 것들을 위젯이라고 생각하시면 됩니다.

Elementary를 이용하면 위에 열거한 위젯들을 쉽게(?) 만들 수 있습니다.

예를 들면 Elementary에는 다음과 같은 API가 있습니다.

Evas_Object* elm_button_add(Evas_Object* parent)


눈치가 빠르신 분들은 벌써 아셨겠지만

Elementary Widget API들은 보통 이름이 elm_로 시작을 합니다

Elementary에서 제공하는 이런 API들을 통해서

버튼을 비롯한 위젯들을 화면에 만들 수 있습니다.

참고로 위의 API는 버튼을 parent의 canvas에 add하는 기능을 수행합니다.

사실 위의 제가 말한 API 설명을 보고 바로 이해가 되시는 분은

여기서 하산하셔도 됩니다...^^


근데 여기서 한가지 궁금한게 생기셨을 겁니다.

저도 너무 궁금했던 건데요.

분명 Elementary API인데 return 값은 Evas_Object* 네요.

Elementary와 Evas는 도대체 무슨 관계일까?

이런 질문이 들면서 헷갈리시는 분들 많을것 같습니다. (아닌가요? ^^;;)


그냥 간단하고 쉽게 설명하겠습니다. (제가 이해한 방식입니다.)

Canvas에 표현되는 녀석들은 Evas를 사용합니다.

elm_button_add  API는 Elementary Layer이지만

버튼은 Canvas에 표현되기 때문에  Evas_Object를 사용합니다.

일단 이렇게만 알고 넘어가면 됩니다.

구현을 하다보면 자연스럽게 감이 오실겁니다.







[Mac] 맥북 액정 보호 Radtech Screensavrz




작년말 맥북프로레티다 13인치를 구입했습니다.

아무래도 고가의 제품이다 보니

모니터를 보호하고 싶은 생각이 들었습니다.

오래 사용하다 보면 모니터에 키보드 자국이 생길지도 모른다는 불안함도 있었습니다.

그래서 여기저기 알아보고 구매한것이

사진의 천쪼가리(?) 입니다.

RADTECH 라는 회사의 Screensavrz 라는 제품입니다.

홈페이지에 가면 자세한 정보가 있구요.

http://www.radtech.us/products/notebookscreensavrz

우리나라에서는 구하기가 힘들어 해외직구를 하였습니다.

천이 매우 부드럽고 얇아서 모니터에 어떠한 상처도 생기지 않을 것 같습니다.

강추합니다.

from my photo blog : http://classichrome.tistory.com/13










초보자를 위한 EFL 기초

EFL이 뭘까?

인터넷 돌아다니면 EFL 만든 사람들 글들이 좀 있을텐데

나는 지극히 사용자 입장에서 글을 써보려고 한다.

초보자를 위해 극단적인 추상화와 상세화를 병행할 예정이니

글의 잘잘못은 따지지 않아도 된다...^^;;



EFL은 Enlightenment Foundation Libraries의 약자이다.

홈페이지는 http://www.enlightenment.org 이다.

들어가 보지 않아도 된다.

그냥 쉽게 말해서 EFL은 UI를 만들수 있는 라이브러리들의 모음이다.

근데 라이브러리들의 모음이다 보니 생소한 용어들이 많다.

elementary, evas, ecore, 등등......

그래서 초보분들이 EFL에 접근하기가 어렵다.

하지만 일단 딱 2개만 알면 된다.

elementary와 evas, 이렇게 2개만 알면 초보 딱지는 떼는 거다.


그럼 먼저 elementary 부터 알아보자.



ssh 파일 복사 scp 이용





  • remote server에 있는 파일을 local로 복사하기

    예를 들어 서버(192.168.1.100)의 /home/youngj/helloworld.cpp를
    로컬의 /home/gloryj로 복사한다고 하면

    로컬에서 아래와 같이 명령을 실행하면 된다.
    $scp youngj@192.168.1.100:/home/youngj/helloworld.cpp /home/gloryj



  • local에 있는 파일을 remote server로 복사하기

    예를 들어 현재 로컬 경로의 helloworld.cpp를
    서버(192.168.1.100)의 /home/youngj로 복사한다고 하면

    로컬에서 아래와 같이 명령을 실행하면 된다.
    $scp helloworld.cpp youngj@192.168.1.100:/home/youngj











  • [Mac] 맥북 Screen Capture 화면 캡쳐

    맥북에서 화면 캡쳐하는 방법입니다.

    - 원하는 영역만 캡쳐      :  shift + command + 4
    - 원하는 창 영역만 캡쳐  :  shift + command + 4 + space
    - 모니터 전체 영역 캡쳐  :  shift + command + 3


























    [Mac] 맥북 Xcode로 C/C++ Console Application 개발하기

    얼마전 맥북을 구입하고 윈도우나 리눅스에서처럼 의례 이클립스를 설치했다.

    그러던 와중에 아이폰 앱 개발용으로만 생각했던 Xcode로 C/C++ 개발을 할 수 있다는 것을 알게 되었다.

    방법은 다음과 같다.

    1. Xcode 실행 -> File -> New -> Project로 들어가서 Command Line Tool을 선택한다.



    2, 그리고 아래 화면에서 Language를 C 또는 C++로 선택한다.


    위와 같이 프로젝트를 생성하면 C/C++로 Console Application을 만들 수 있다.

    [Mac] Set Terminal Color 맥북 터미널 색상 설정

    Add the below lines to the ~/.bash_profile
    
    
    export TERM="xterm-color"
    export CLICOLOR=1
    export LSCOLORS=ExFxCxDxBxegedabagacad
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    이클립스 에디터 색상 바꾸기 (Eclipse Theme 설정)

    요즘엔 모니터를 오래보면 눈이 아프네요ㅜㅜ

    그래서 이클립스도 검은 바탕으로 이용을 하고 있습니다.

    이클립스에서 에디터 설정하는 것을 테마 설정이라고 합니다.

    방법은 다음과 같습니다.

    1. 이클립스 테마 설치
    Help->Install New Software 클릭
    Add 버튼 클릭
    http://eclipse-color-theme.github.com/update 입력
    Select All 버튼 클릭
    Next->Finish

    2. 테마 선택
    Window->Preferences 클릭
    General->Appearance->Color Theme 클릭
    테마 선택후 OK


    git 로컬 내용 덮어쓰기

    git 로컬 내용 덮어쓰기

    개발을 하다보면 내가 작성한 코드들을
    git repository에 있는 최신 내용으로 엎어쓰고 싶을 때가 있다.
    (아마 아주 많은 경우에;;)

    이럴땐 다음과 같이 하면 된다.

    만약 branch 이름이 classic이라면

    $ git fetch --all
    $ git reset --hard origin/classic



    이렇게 하면 git repository의 최신 내용으로 엎어쓰기가 된다.

    Ubuntu 우분투 파일내 문자 검색

    $ grep -r "classic" *

    이렇게 하면 현재 경로의 하위 경로까지 포함해서

    "classic"이 들어간 파일을 모두 찾아준다.





    우분투 패스 설정 Ubuntu PATH 등록

    수십번을 해도 헷갈린다...;;;

    .bashrc 파일을 열고
    $ gedit ~/.bashrc 

    아래 처럼 적어주면 된다.
    export PATH="경로:$PATH"

    리부팅을 해야 적용이된다.

    물론 리부팅을 하지 않고 적용하는 방법도 있다.
    $ source .bashrc

    이렇게 하면 리부팅을 하지 않아도 수정된 내용이 적용이 된다.

    My new blog

    I'm making my new blog for software and so on.