서버 세팅에 Redhat Enterprise Linux를 사용하게 되었다. 클라우드 서버의 환경이 OpenStack에 최신 레드햇 계열이라 RHEL7.x 버전을 사용하게 되었다.

사실 항상 레드햇 계열과 페도라 계열에 대한 궁금증이 많았는데 이번 기회에 한 번 찾고 정리해 보았다.



레드햇  페도라의 유래 

레드햇 리눅스는 페도라를 Core로 사용하여 상업적으로 만들어 사용하게 된 것.

사실 페도라 코어를 사용했다기 보다는, fedora 만들고 이를 사용한 상업 버전을 레드햇 리눅스(2015년 기준으로 정확하게는 레드햇 엔터프라이즈 리눅스)란 이름으로 릴리즈한 다음, Subscription 방식으로 기술 지원을 해주고 있다.


이후 페도라를 오픈소스 프로젝트로 독립시키고 레드햇 리눅스를 레드햇 엔터프라이즈 리눅스 리네임 등등의 발전을 거쳤다. (그래서 RHEL) 


페도라 오픈소스 기여 현황을 보면, 아마 레드햇 출신들이 대부분 일듯한데 뭐 페도라는 다양한 리눅스 벤더들이 참여하고 있으니 아마 다른 대형 벤더들도 많을 것이다.


아래는 레드햇 리눅스와 페도라의 관계표이다.


Release 

Codename 

Release Date 

Based on 

Red Hat Linux 6.2E 

Zoot 

2000-03-27 

Red Hat Linux 6.2 

Red Hat Enterprise Linux 2.1 

Pensacola (AS)/ Panama (ES) 

2002-03-26 (AS) 

Red Hat Linux 7.2 

Red Hat Enterprise Linux 3 

Taroon 

2003-10-22 

Red Hat Linux 9 

Red Hat Enterprise Linux 4 

Nahant 

2005-02-15 

Fedora Core 3 

Red Hat Enterprise Linux 5 

Tikanga 

2007-03-14 

Fedora Core 6 

Red Hat Enterprise Linux 6 

Santiago 

2010-11-10 

Mix of Fedora 12 Fedora 13 and several modifications 

Red Hat Enterprise Linux 7 

Maipo 

2014-06-10 

Primarily Fedora 19 with several changes from 20 and later 

 



레드햇과 CentOS의 유래

오픈 소스 현황을 보면 RHEL7 Fedora19  기반으로 개발되었으며, RHEL 소스코드 또한 오픈소스 프로젝트로 운영중이다.

RHEL 오픈소스 그대로 재빌드  배포(openSource)한 것이 CentOS이다.

RHEL 이라는 이름은 모조리 CentOS로 리네이밍하고 배포한다.


재밌는 사실은 첫 배포판이 2008년에 나왔는데, 이후 CentOS는 레드햇의 지원을 받게되고 결국 레드햇 산하로 흡수되었다.

CentOS는 레드햇의 커뮤니티 버전이라고 생각하면 될듯하다.


RHEL과 CentOS의 버전 관계는 아주 쉽다.

RHEL5 이라면 CentOS 5.x버전, RHEL 6라면 CentOS 6.x버전이다.



최근 RHEL에 몇가지 패키지를 설치하려는데 문제에 부딫힌 적이 있다. EPEL과 관련된 것인데 다음에 포스팅해야겠다 :)



저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by Written. 깡s

댓글을 달아 주세요


최근 Android에서 Miracast의 User Input Back Channel을 구현하여 양방향 제어 솔루션 프로젝트를 진행하였습니다. 

그러면서 프레임워크를 수십번 받고 수천번(?)은 조금 과장일지라도...하여튼 많이 빌드하였습니다..ㅎㅎ 이 때 얻은 팁들을 공유하려고 합니다.

굉장히 바쁜데 진행하느라 힘들었던(?) 프로젝트였는데..  프로젝트 소개는 다음 번에 동영상과 같이 소개하도록 하겠습니다. :)


어쨌든 오늘 주제는 Android Framework 환경 구축과 빌드에 대해서 진행하겠습니다.

프로젝트를 진행하면서 AOSP에서 Android Framework를 내려받아 tweak 및 새로 구현하여 빌드하였던 적이 있습니다. 

이 때 필요한 빌드 환경 구축과 빌드시 유용하고 필요한 팁들을 정리해보려고 합니다.^^


그럼 빌드 환경 구축을 시작하겠습니다.


본 환경 구축은 https://source.android.com/source/initializing.html 을 참조하였습니다.

빌드 시스템은 다음과 같습니다.

CPU : Intel i7-3770@3.4Ghz

RAM : DDR3 8GB Memory 

Host OS : Linux Ubuntu 12.04 LTS 64bit (32bit환경에서는 Build가 되지 않습니다.)

Target Device : Nexus5(LG-D850) 에서 진행하였습니다.


아무래도 대규모 컴파일을 진행하다보니 빠른 CPU와 고용량 메모리가 필요합니다. 

그러나 가장 중요한 것은 넉넉한 시간과 마음가짐이면 되겠네요 ㅎㅎ


최신 Ubuntu LTS는 14.04버전입니다. 구글에 의하면 Ubuntu 14.04LTS에서도 테스트가 완료되었으며 간혹 예기치 않은 문제가 발생할 수도 있다고 합니다만, 테스트 해봤을 때 크게 문제가 있진 않았습니다. ^^ 그러나 전통적으로 12.04LTS에서 해왔기에 여기서는 12.04LTS를 기준으로 설명하겠습니다.

14.04LTS에서는 중간에 Install해야하는 package가 조금 다른데 그것만 말씀 드리겠습니다 :)


1. JDK설치

먼저 JDK 설치가 필요합니다. 현재 master branch인 (branch 개념은 뒤에서 설명하겠습니다.) 

Lolipop(5.x)에서는 Java7버전이 필요하며 그 이하 버전인 GingerBread(2.2.x) ~ Kitkat(4.4.x)이하에서는 Java6버전이 필요합니다. 

(Cupcake ~ Froyo에서는 Java5가 필요합니다만 아마 Cupcake를 빌드하실 분은 없으시라 생각됩니다 ㅎㅎ)


Java7설치는 터미널에서 다음과 같은 명령어를 입력하여 openjdk를 설치하여 줍니다.

$ sudo apt-get update

$ sudo apt-get install openjdk-7-jdk


이어서 환경 변수에 Java의 경로 설정을 위해 다음과 같이 입력하여 줍니다.


키캣이하의 버전을 빌드하기 위해서는 Java6버전을 설치하여야 합니다.

Java6버전은 Oracle Download site에서 다운로드 받으셔야 합니다. 다만 가입하시고 로그인해야 다운로드가 가능합니다.

구글링을 잘 해보시면, jdk-6u45-linux-x64.bin 이름을 가진 JDK6u45를 받으실 수 있습니다.^^

그 후 바이너리에 chmod a+x jdk-6u45-linux-x64.bin 를 입력하여 권한을 주고 ./jdk-6u45-linux-x64.bin 로 실행하시면 설치를 할 수 있습니다.


2. package설치

이제 빌드에 필요한 패키지들을 설치합니다.

여기서 Ubuntu 버전에 따라 설치하는 패키지가 조금 다르니 확인하시고 설치하시기 바랍니다.


Ubuntu 14.04를 사용하시면 아래와 같이 입력하셔서 패키지를 설치하시면 됩니다.

$ sudo apt-get install bison g++-multilib git gperf libxml2-utils make zlib1g-dev:i386 zip


Ubuntu 12.04를 사용하시면 좀 더 많은(?)패키지를 설치해야 합니다.

$ sudo apt-get install git gnupg flex bison gperf build-essential \

  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \

  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \

  libgl1-mesa-dev g++-multilib mingw32 tofrodos \

  python-markdown libxml2-utils xsltproc zlib1g-dev:i386

$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

명령어를 잘 보시면 처음에는 apt-get을 root권한으로 실행하여 zlib1g-dev:i386패키지 까지 설치합니다.

그 다음 심볼릭링크로 libGL.so파일을 링크 거는 것입니다 :)


Ubuntu 11.10이하 버전의 설치 방법도 따로 존재하지만 필요하시면 구글 개발자 사이트에서 확인하시면 됩니다 :)


3. ccache 설정 (옵션)

ccache설정 방법입니다. 말머리와 같이 꼭 설정하지 않아도 빌드하는데는 무방합니다. :) 따라서 바로 4번으로 가셔도 됩니다만 한번쯤 읽어보세요 ㅎㅎ

또한 프레임워크 소스를 다운로드 후에 설정하셔야 합니다. 그 전에는 캐시를 설정할 수 있는 바이너리가 존재하지 않습니다 ㅎㅎ


ccache는 안드로이드 프레임워크 빌드에서만 사용하는 것이 아니라 대규모 컴파일시에 자주 사용하는 기능입니다.

결론부터 말씀드리면 사용하실 경우 더 빨리 빌드가 가능합니다. 다만 말그대로 cache를 해놓기 때문에 용량을 많이 차지합니다 ㅎㅎ

방법은 빌드 오브젝트를 캐싱해놓고 변화된 파일을 체크하여 새롭게 빌드합니다. 따라서 make clean을 하여도 따로 캐싱해놓기 때문에 빠른 빌드가 가능합니다.

(이 기능은 안드로이드 프레임워크 빌드시스템에서 지원하는 부분 빌드와는 다릅니다 :))


설정을 위해서 bashrc를 오픈합니다.

vim ~/.bashrc


bashrc파일 맨 아래에 export USE_CCACHE=1 를 추가하여 CCACHE를 ON해줍니다.

또한 CCACHE_DIR에 캐시를 저장할 디렉터리를 설정합니다. 설정하지 않을 경우 기본적으로 ~/.ccache에 저장됩니다.

export USE_CCACHE=1

export CCACHE_DIR=<path-to-your-cache-directory>


다음으로 캐시 사이즈를 설정합니다.

prebuilts/misc/linux-x86/ccache/ccache -M 50G


(Android ICS 이전 버전이라면)

prebuilt/linux-x86/ccache/ccache -M 50G

구글에서는 50~100GB정도를 권장한다고 합니다.

이제 캐시 설정이 완료되었고 빌드를 하면 캐시되어 다음 번 빌드를 좀 더 빠르게 해줍니다.



4. 소스 Downloads

Android Framework는 https://android.googlesource.com 에서 Git으로 관리되고 있습니다. 

Git은 리눅스를 만든 리누즈 토발즈가 개발한 버전관리 시스템이죠 :) 역시 리눅스가 뿌리(?)인 만큼 Git을 사용하여 버전관리를 하고 있습니다.

저도 Git을 잘쓰고 싶네요 ㅎㅎㅎ


어쨌든 소스를 받으러 가봅시다.

Android Framework는 특이하게도 Git을 뿌리로 둔 조금은 다른 Repo라는 바이너리를 통해 관리됩니다. Repo는 Git에 구글이 필요로 하는 기능을 추가시킨 버전이라고 생각하시면 되겠습니다.

자세한 Build workflow를 알고 싶으시다면 https://source.android.com/source/developing.html 이 곳을 참조해주세요 :)


다음 명령어로 home디렉터리에 bin디렉터리를 생성하고 bash에 PATH를 추가합니다.

$ mkdir ~/bin

$ PATH=~/bin:$PATH


 그 곳에 curl를 이용하여 repo binary를 다운로드하고 실행 권한을 줍니다.

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

$ chmod a+x ~/bin/repo


이어서 프레임워크 소스를 받을 디렉터리를 생성하여 줍니다.

$ mkdir WORKING_DIRECTORY

$ cd WORKING_DIRECTORY


ex)

$ mkdir ~/android_framework

$ cd ~/android_framework

저는 mkdir ~/android_framework 로 home디렉터리에 android_framework 디렉터리를 생성하였습니다.


다운로드 준비가 거의다 되어갑니다. repo initialize를 한 다음 소스를 다운로드 받습니다.


다음과 같이 입력하면 master branch를 다운로드 준비합니다.

$ repo init -u https://android.googlesource.com/platform/manifest


그러나 개발자마다 필요한 branch가 있기 때문에 tag나 branch를 선택하여 다운로드할 수도 있습니다.

저희 팀은 kitkat 중 가장 최신 빌드인 4.4.4_r1.0.1을 택하여 진행하였습니다. 따라서 아래와 같이 입력하시면 가능합니다.

branch목록은 https://android.googlesource.com/platform/manifest/+refs 에서 확인하시면 됩니다. :)

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.4_r1.0.1


repo init을 하면 몇가지 다운로드가 되고 잠시후 sync준비가 완료됩니다.

자~ 이제 모든 설정이 끝나고 repo를 통해 소스를 다운로드 받습니다. repo in참고로 다운로드 용량은 약 11GB정도 되며 네트워크 상황에 따라 다운로드 시간이 다릅니다.

100Mbps회선을 기준으로 약 5시간정도 걸린것 같습니다 ㄷㄷ

$ repo sync


이제 git에서 android framework를 다운로드합니다. 이제 잠시 잊고 나가서 놀거나 한숨 자도록 합니다.

다만, 가끔 불안정한 이유로 다운로드가 멈추기도..합니다..ㅠㅠ

그럴 때는 다시 sync해주시면 이어 받습니다. (가끔 안이어 받기도 하더라구요..ㅋㅋㅋ)


자 이제 다운로드가 완료되었습니다!!!

오랜만에 장문의 글을 쓰다보니(?)매끄럽지 않은 부분도 있습니다. ㅠㅠ 보면서 계속 수정할터이니 참고 봐주세요 ^^

다음 편에서 빌드방법을 이어나가겠습니다~~

감사합니다 :)



저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by Written. 깡s

댓글을 달아 주세요

지난 글(Nexus Lollipop (롤리팝) 업데이트 및 다운로드) 에 Nexus Series에 롤리팝이 업데이트되어, OEM Unlock된 Nexus에 factory image를 올리는 방법을 알려드렸습니다.


오늘은, 순정 상태의 Kikat 4.4.4에서, OTA(On The Air)이미지를 수동으로 받아 업데이트 하는 방법을 알려드릴까 합니다 ^^



from. d.android.com



단, OTA이미지로 디바이스를 업데이트하기 위해서는 꼭 Kitkat 4.4.4 (KTU84P)버전이어야 합니다.

그렇지 않을경우 해당 버전으로 맞춰주시거나, factory image flashing을 하셔야 합니다.


먼저, 각 Nexus 기종별 Lollipop OTA이미지는 다음과 같습니다.

Nexus5 (LRX21O) _hammerhead

Nexus4 (LRX21T) _mako

Nexus7 (2013) WiFi (LRX21P) _razor

Nexus7 (2012) WiFi (LRX21P) _nakasi


파일을 다운로드 받으시면 굉장히(?)긴 파일 이름으로 다운로드 됩니다. hash값과 버전 등이 표기되어 있습니다.

이를 쓰기 편한 이름으로.. 간단하게 여기서는 update.zip으로 바꿔주겠습니다. (뒤에 나오는 adb sideload를 이용하기 위함입니다.)


예를 들어, Nexus5 같은 경우에는 

c1a33561be84a8a6a7d5a4c8e3463c4db9352ce6.signed-hammerhead-LRX21O-from-KTU84P.c1a33561.zip

-> update.zip

으로 해줍니다.


이제 adb와 fastboot가 필요한 시점입니다. 안드로이드 개발을 해본신 분들이라면 sdk내에 adb와 fastboot가 포함되어 있습니다.

경로는 sdk경로\platform-tools\ 에 위치하고 있습니다.


없으신 분들을 위해

AndroidSDKSlim.zip 

여기 업로드를 해놓았으니 받아서 압축을 풀어서 사용하시면 됩니다. (출처 : xda-developers)


이제, platform-tools 폴더 내에 아까 받아서 이름을 바꿨던 update.zip파일을 옮겨주도록 합니다.



그럼 다음과 같이 위치할 것입니다 ^^

이제 시작-실행-cmd를 입력해서 cmd창을 켜서 adb가 있는 platform-tools 폴더까지 이동하시거나, 다른 방법으로는 Shift키를 누르고 있으면서 platform-tools폴더에 대해 오른쪽 클릭하면 뜨는 context메뉴에서, 여기서 명령 창 열기를 클릭해줍니다.


이미 폰이 개발자 옵션-USB디버깅을 통해 드라이버도 설치하고 adb interface 연결이 되어 있다고 가정합니다.


그럼 adb가 있는 폴더경로에서 다음과 같이 입력합니다.

 > adb reboot recovery


그렇다면, 폰이 자동으로 재부팅되면서 다음과 같이 안드로보이가 누워있는 것을 볼 수 있습니다 ㅎㅎ


다른 방법으로는, 스마트폰/태블릿의 전원을 꺼놓고 볼륨작게버튼+전원키를 동시에 누르면서 전원을 켜면 bootloader모드로 부팅됩니다. 그 곳에서 볼륨키로 메뉴이동을 하여 상단에 Recovery mode라고 표시되면 확인버튼(전원키)를 눌러 Recovery mode로 진입할 수 있습니다.

기종별 자세한 방법은 다음 링크의 복구모드에서 기기 초기화 항목을 참조해 주세요! 

(다만 여기처럼 초기화 해버리시면 안됩니다. 꼭 Recovery mode 접근하는 방법만 참조하세요!)


그럼 이어서 계속 가보겠습니다.

여기서 전원키(홀드키) + 볼륨크게버튼을 동시에 누르면 아래와 같은 메뉴가 나오게 됩니다.

메뉴 이동을 볼륨크게, 작게버튼 이며, 확인버튼은 전원키입니다.



메뉴 이동 버튼을 통해서 아래로 이동해 apply update from ADB메뉴로 이동하고 확인버튼 (전원키)를 눌러줍니다.

저는 이미 업데이트를 해서 Recovery mode 버전에 LRX21O로 출력되네요 ㅎㅎ


위에서 apply update from ADB를 선택하면 화면 하단에 아래와 같은 문구가 뜨면서, adb sideload <filename>을 통해서 하라고 되어 있습니다.


이 상태에서 다시 PC의 cmd창으로 와서 다음과 같이 입력해줍니다.

 > adb sideload update.zip


입력하면, sideload 기능을 통해서 update.zip파일이 전송되고 이를 통해서 update가 적용됩니다.

파일을 폰으로 전송하고, flashing에 약간 시간이 소요되니 차분히 기다려주시면 됩니다.


어제, 오늘부터 차차 OTA메시지가 전송되고 있다하니 어렵다고 생각되시면 기다리면 이번주내로 업데이트가 될 것이라 생각됩니다.^^


이것으로 OTA파일을 통한 업데이트를 마치겠습니다 :)

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by Written. 깡s

댓글을 달아 주세요

  1. Favicon of http://simglorious.tistory.com BlogIcon 도플파란 2014.11.18 19:34 신고 Address Modify/Delete Reply

    전... 실수로.. 데이터를 날려 먹었어요..ㅠㅠㅠ 그래서.. 그냥.. 팩토리 이미지를 올렸어요..ㅠ

    • Favicon of http://kkangsworld.net BlogIcon Written. 깡s 2014.11.19 12:31 신고 Address Modify/Delete

      허걱..데이터가 많이 아깝네요 ㅠㅠ
      그래도 이번에 시행착오를 겪으셨으니.. 담엔 실수없이 하실 수 있을거에요!! :)

  2. 2014.11.24 20:59 Address Modify/Delete Reply

    비밀댓글입니다

    • Favicon of http://kkangsworld.net BlogIcon Written. 깡s 2014.11.27 11:19 신고 Address Modify/Delete

      안녕하세요!

      아마 디바이스마다 조금 다를 수 있습니다.
      https://support.google.com/nexus/answer/4596836?hl=ko
      여기 링크에서 복구모드에서 기기 초기화 항목 중에 nexus 4메뉴를 참고해보면 전원 버튼을 누른 상태에서 볼륨 크게 버튼을 누르면 된다고 합니다.

      제가 n4디바이스가 없어서 정확한 확인은 어렵네요 ㅠ.ㅠ
      한번 참고해보셔요 ^^..

  3. 체르샤 2014.11.25 23:46 신고 Address Modify/Delete Reply

    님 ㅠㅠ

    마지막 단계 adb sideload update.zip 명령하면
    error : device not found <-- 라고 뜨네요 ㅜㅜ

    드라이버 설치 되어있구요ㅜ 리커버리 모드로 가게 하는 명령까지 먹혔었어요 ㅠ

    어케해요? ㅜㅠ

    • Favicon of http://kkangsworld.net BlogIcon Written. 깡s 2014.11.27 11:21 신고 Address Modify/Delete

      adb sideload 명령어를 입력하실 때는 아마 리커버리 모드상태에서 새롭게 adb driver를 잡아야 할 수도 있습니다.

      디바이스를 recovery mode로 부팅하고, sideload 명령어가 먹히는 화면에서 장치관리자를 여셔서 잡혀있지 않는 디바이스가 혹시 있는지 확인해보세요!

      예전에 경험상 recovery mode로 부팅하면 새롭게 adb interface driver를 잡아야했던 적이 있습니다!



Nexus 시리즈의 Lollipop (롤리팝)이 드디어 업데이트 되었습니다! 

현재는 OTA(On The Air)가 진행중입니다.


현재 많은 개발자(?)들에 의해 OTA Direct Link가 추출되었고 android developer 사이트에도 factory image의 링크가 올라왔습니다.


기존에 저는 Nexus5에 Preview Image를 사용중이었습니다. Material Design이 가미된 Android는 이전의 버전들과는 스크롤링과 디자인 개념 자체가 달라지는 것을 보면서, 가끔 새로운 OS로 착각할 정도 였습니다 :)


정식으로 릴리즈된 롤리팝을 업데이트해서 Kikat, Android L Preview에 이어서 어떻게 완성되었는지 궁금증을 해결해야겠습니다.



다음의 다운로드 링크는 구글의 factory image입니다. 아래에 확인해주시길 ~^^

Nexus 5 

Nexus 7 (2013) WiFi

Nexus 7 (2012)

Nexus4 - lrx21t

Nexus 10


 Update #2 2014. 11. 18. 15:53

순정 상태의 kikat 4.4.4 (KTU84P)에서 OTA파일을 통해 업데이트하는 방법을 게재하였습니다.

OEM Unlock이 되어있지 않으신 분들은 Nexus 순정 상태에서 Lollipop (롤리팝)으로 수동 OTA 업데이트 글을 참조해서 업데이트 해주세요 ^^


Update #1 2014. 11. 18. 11:23

다음의 사용법은 OEM 언락이 된 상태를 가정하고 설명하였습니다. 이 경우엔 fastboot를 이용해서 하시면 됩니다.

fastboot는 android sdk\platform-tools에 포함되어 있으며, 해당 링크 *.tgz를 압축풀면 flash-all.bat을 이용하여 flashing을 할 수 있습니다.


부트로더로 쉽게 진입하는 방법은 개발자 옵션-USB 디버깅을 켜놓고, adb를 이용해 adb reboot-bootloader 명령어를 입력하면 바로 bootloader mode로 진입할 수 있습니다.


단, flash-all.bat을 사용할 경우 userdata영역도 flashing하기 때문에 사용자 데이터가 모두 삭제되니 주의하시기 바랍니다.

또한 -w 옵션을 사용하면 기존 데이터가 초기화됩니다. 


따라서, 다음 그림과 같이 -flash-all.bat 파일을 notepad 등의 editor로 열어서 -w 옵션을 삭제하시고 저장하여 실행하면 userdata 영역이 보관되어 기존 어플리케이션 및 데이터가 보관됩니다 ^^ 


이점 참고하시어 flashing 하시길~!


OEM Lock상태 (순정 official)에서도 sideload를 이용하시면 Unlock없이 OTA처럼 업데이트가 가능합니다.


저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by Written. 깡s

댓글을 달아 주세요

Gmail팀에서 개발한 Inbox가 공개되었습니다. 



저번주에 google에서 초대장을 발송해주어 사용해 볼 수 있었습니다.

inbox@google.com에 계속 request 메일을 보냈더니 어느순간 갑자기 초대장을 발송해줘서 쓸 수 있었네요 ㅎㅎㅎ


일단, 저는 기존에 gmail을 Labeling하여 사용하고 있었습니다.

금융정보, IT정보, 광고 및 쇼핑메일, 기타 중요 연락망등을 등록하여 사용하고 있었습니다.


Inbox로 넘어가니 Labeling대신 bundle화하여 google에서 쌓아놓은 bigdata를 기반으로 해당하는 box이름으로 tagging하여주었습니다.


처음온 메일이어도 내용을 분석하는 건지, 알맞은 카테고리에 들어갔습니다.

카테고리는 Travel, Purchases, Finance, Social, Updates, Forums, Promos가 존재합니다.

아래에 스크롤을 해보면 기존에 제가 Gmail에서 사용하던 Label도 존재하였습니다.





알아서 정말 tagging이 되었는지 확인해보려고 각각 Bundled된 Inbox에 들어가 확인해보았습니다.



여기는 Social 이었습니다. 트위터와 Youtube에서 온 메일들이 잘 들어가 있네요 :)



여기는 Promos입니다. Promotion 메일들이 분류되어 저장됩니다. 교보문고, Ebates, 키움증권, Any.do App 등에서 보내온 프로모션 메일들이 잘들어와 있습니다.


사실 위에 해당하는 업체들이 유명한 업체들이기 때문에 google에서 이미 카테고리화 해놓은 것이 아닌가도 의심해봤습니다. 그러나 그 외에 개인적인 메일이나 세미나 메일도 해당하는 곳에 정확히 잘 분류되는 것을 볼 수 있었습니다 ^.^


가끔 제대로 분류되지 않거나 unbundled된 것들은 제가 임의로 분류해주면 이것이 google에 전송되어 한가지의 data로 분류될 것이라는 생각이 듭니다.


아직 서비스 초기이고 초대장을 가진 사용자만 사용할 수 있기에, 추후 더 많은 데이터가 쌓인다면 정말 알아서 척척하는 Inbox by Gmail 이겠네요.


google에 점점 더 강력해짐을 알 수 있게 해주는 그런 서비스 였습니다 :)

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by Written. 깡s

댓글을 달아 주세요

Application 개발 중에 계속 움직여야하는 issue가 발생 하였는데, 
USB에 꽂았다가 뺐다가 하기가 생각보다 번거럽고, 또한 움직임의 Log를 보기가 쉽지 않아 찾던 중 ADB를 WIFI로 연결하여 사용할 수 있는 방법을 알게 되었다.

사용하니, 돌아댕기면서 Log를 남길 수도 있고 (따로 하드코딩 하지 않고), 기타 ADB를 이용하여 debug할 수 있어서 편하다 :)

How TO ::

1. 먼저, 평소처럼 USB케이블을 이용하여 스마트폰을 컴퓨터와 연결한다.

2. 스마트폰과 컴퓨터를 같은 네트워크 영역의 WIFI에 연결한다. (네트워크 상황에 따라 다르겠지만, 같은 공유기에 연결한다고 생각하면 쉬울 것 같다.)

3. 스마트폰이 WIFI에 연결되면 스마트폰에 할당된 IP address를 확인한다. (휴대폰 WIFI연결 설정 부분에서 연결된 WIFI를 누르면 네트워크 연결 상태가 나오는데, 그곳에 ip address, 암호화 방식, 연결속도 등을 확인할 수 있다.)

4. cmd를 이용하여 다음과 같은 명령어를 입력한다. 

adb tcpip 5555
adb connect 스마트폰 IP address:5555

(ex : ipaddress가 192.168.10.21이라면,
adb connect 192.168.10.21:5555를 입력하면 된다.
tcpip 5555에서 5555는 임의로 설정한 포트번호이고, 빈 포트 중 사용하려 하는 포트를 입력해주면 된다.)
 

이렇게 입력해서 연결되면,
connected to 스마트폰 IP address:5555 라는 메시지가 나오게 된다.

이제 연결이 완료 되었고 평소와 다름없이(?) eclipse나 adb를 사용하면 되겠다!! 좋...다 :)

신고
Posted by Written. 깡s

댓글을 달아 주세요

  1. Favicon of http://kmjg6357.tistory.com BlogIcon k_mjg 2013.10.23 10:14 신고 Address Modify/Delete Reply

    개발자옵션에서 네트워크 adb 안켜도 되는건가요?
    순정롬에서는 adb tcpip * 사용해도 않되고 커스텀롬의 개발자옵션에 네트워크adb 켜주기만 하면 adb연결이 되서요..

    • Favicon of http://kkangsworld.net BlogIcon Written. 깡s 2013.11.28 14:01 신고 Address Modify/Delete

      헉..답변을 길게 남겼는데 날라갔네요 ㅠㅠ
      안녕하세요 :) 답변이 늦었습니다.

      저도 CM롬이 올라간 Nexus S와 순정롬인 갤럭시노트2, 갤럭니s4미니를 사용중인데요.

      말씀하신대로 CM롬이 올라간 Nexus S는 별다른 adb설정 없이, 개발자옵션에서 네트워크adb옵션을 켜주기만 하면 별 무리없이 adb connect연결이 가능합니다.

      순정롬인 폰에서도 저의 경우에는 잘되는데, 간혹 연결이 되지 않아서, adb tcpip 설정을 하면 에러나 나거나 이미 설정되어 있다는 메시지가 나옵니다.

      그럴때는 폰을 재시작하고 다시 adb tcpip설정을 해주면 잘되었습니다. 폰을 재시작하면 tcpip설정 부분이 reset되는듯 합니다 :)

오늘 시간이 나서 단자함에 IP공유기를 설치했다 :)
그동안 하고 싶었는데 시간상 하지 못했었다.ㅋㅋ

처음에 단자함 딱 열고 이걸 어떻게하나 싶었는데,
막상 도구가 손에 쥐어지니 그다지 어렵지 않았다.ㅋㅋ

사진을 많이 첨부하고 싶지만, 사진을 중간 작업할 때 찍지않아서-_-ㅋ
케이블만 만드는 과정만 찍어서 추후에 올리면 될 것 같다.



그럼 단자함에 IP공유기 설치하는 방법!!

1)
 UTP케이블 양쪽에서 흰주/주/흰녹/녹 케이블만 살리고 나머지 흰파/파/흰갈/갈은 제거한다. 


2) 그다음 한 쪽은 RJ45를 1236번쪽에 흰주/주/흰녹/녹 순서로 밀어넣어 랜툴로 찍는다.
(참고로 금속부분이 보이는 쪽으로 놓고 왼쪽부터 작은 홈을 기준으로 12345678이다.)

그리고 반대쪽은 그냥 선만 길게 뽑아 놓도록 한다.또한 케이블을 필요한 만큼 만든다. :)
(공유기의 4port를 모두 이용하려면, 5개를 만들어야한다. WAN도 있기때문에~)

이 케이블을 #1케이블 이라고 하겠다^^


3) 그 다음 단자함을 열어보면~


위와 같이 보일 것이다!
(물론 각각 집마다 선 색깔이나 블럭구조는 다를 수 있다.
또한 이러한 단자함은 2000~2001년이후 초고속 정보통신인증(?) 아파트에만 있다고 하지만 요즘 지어지는 대부분의 아파트는 이러한 단자함이 존재하고 또한 이미 RJ45로 제작되어 있는 단자함도 많다고 한다.)


여기서 이제 형광색으로 화살표한 부분을 유심히 보면,
주황색을 사이에 두고 양 옆에 케이블이 꽂혀있고, 녹색을 사이에 두고 양 옆에 케이블이 꽂혀있다.
저 곳을 숫자로 부르자면 3/4/5/6자리 이다.

여기에서 D-MAIN이라 써있는 부분이 MDF실에서 인터넷 라인이 올라오는 것이고,
문간방은 나의 방이다.
즉, 우리집은 단자함에 공유기를 설치하기 전에 나의 방에만 인터넷을 연결했기에 저런식으로 구성되어 있던 것이다. 

이제, 아까 제작한 #1케이블흰주/주/흰녹/녹3/4/5/6자리에 순서대로 밀어넣어준다.
여기에서 랜선 탈피기가 있다면 앞쪽, ㄷ자로 생긴 칼날로 밀어넣으면 되고, 탈피기가 없다면 커터칼로 밀어넣어주면 된다.
(참고로 끝까지 밀어넣어야 한다. 중간에 걸치고 말면 제대로 작동하지 않는다^^
나도 제대로 밀어넣지 않아서 삽질했다는ㄷㄷㄷ)


4) 케이블을 필요한 만큼 만들어 3)과 같은 방법으로 작업했다면, 아래와 같이 만들어진다.


D-MAIN에 연결한 랜선은 공유기의 WAN에 꽂혀있고, 안방에 연결된 랜선은 1포트에, 문간방에 연결된 랜선은 2포트에 꽂아 놓았다.
그리고 인터넷을 켜서 테스트 해보면 된다~^^

사진을 두 장 밖에 찍지 않아서 조금 빈약해 보이지만, 차근차근 이 게시물을 인쇄해서 하다보면 쉽게 될 것 같다. :)
참고로 만약 위에서 UTP선을 8가닥모두 사용하여 RJ45를 찍는다면 전화가 불통될 수도 있다고 한다.
우리집은 전화와 인터넷이 블록에서 분리되어 있어서 그런지 그러한 전화 불통사태는 발생하지 않았다 :)

궁금하신 점이 있다면, 코멘트를~^^
신고
Posted by Written. 깡s

댓글을 달아 주세요

  1. Favicon of http://archvista.net/ BlogIcon 아크몬드 2008.11.23 23:42 신고 Address Modify/Delete Reply

    후아.. 이런걸 어떻게?ㅎㅎ

  2. Favicon of http://archvista.net/ BlogIcon 아크몬드 2008.11.25 01:13 신고 Address Modify/Delete Reply

    멋집니다...ㅋㅋ

LAMBORGHINI








동영상


LUX광고용 동영상이라고는 하는데

그냥 멋져서 ㅋㅋㅋ

순간에 쏘고가는 것이 장난이 아니구만 /ㅁ/





얼마면 되니?ㅋㅋ

역사?

LAMBORGHINI의 창업주 페루치오 람보르기니는 2차대전이 끝나고 낡은 군용트럭들을

사들여 LAMBORGHINI 트랙터를 만들어 판매하고 있었다.
전쟁을 치루고난 이탈리아에는 당연히 많은 농기계가 필요했기 때문에

이 트랙터는 많이 팔려나갔고, 1948년부터 본격적으로 트랙터를 제작했다.

그 당시나 지금이나 부호들은 페라리 등 고급자동차 몇 대씩 끌고 다녔다.

많은 돈을 번 페루치오도 역시 페라리를 가지고 있었는데, 결점이 많아보였고 그러던 중 클러치가 고장났다고 한다.

그래서 엔초 페라리(지금은 차이름으로 유명하지만 페라리의 창업주이다.)와의 면담을

요청했지만 '자동차를 운전할 줄 모르는군, 트랙터나 만들어서 몰고 다니셈'이라는 소리만 듣고 나올 수 밖에 없었다고 한다.

자존심에 상처를 입은 페루치오 람보르기니는 열받아 자동차를 본격적으로 만들기 시작했다.

그래서 나온 자동차가 미우라와 카운타크(쿤타치)이다.

60년대에 시속 250km/h를 넘나들었던 것을 보면 기술이 후덜덜ㅋㅋ

잘나가던 LAMBORGHINI가 이탈리아 농업이 퇴조를 걷고 석유파동 등으로 경영권을 넘겼다.

경영권이 돌고 돌아 크라이슬러가 운영할때, 역작 디아블로를 만들어냈다.

제로백 4.09초 후덜덜.

1994년 크라이슬러는 인도 메가테크사에 LAMBORGHINI를 팔았다.

그 후 흑자로 전환한 LAMBORGHINI사를 다시 아우디를 새 주인으로 맞았다.

2001년 절정의 람보르기니-무르시엘라고가 탄생했다.

제로백 3.8초를 달성하는 V12 6.2X 571마력의 엔진 후덜덜ㅋㅋ

그리고 2003년에는 창립 40주년기념으로 베이비 무르시엘라고라고 불리는 가야르도가 데뷔하게 되었다.

신고
Posted by Written. 깡s

댓글을 달아 주세요

사용자 삽입 이미지





베어벡감독 사진을 찾으면서 처음엔 sportalkorea사진을 게재

했다가 왠지 저작권법에 저촉 될까해서 이미지를 합법적으로

구할 수 없을까
하다가 찾은 곳 서비스가 있습니다.

뉴스뱅크이미지라는 곳인데 왠만한 언론사 신문에 게재된

사진들을
구할 수 있습니다.

그리고 CCL(Creative Commons License)를 따르며, 비영리인 개인 사이트

(블로그 싸이월드 등)에 법에 위배 없이 올릴 수 있습니다^^

그런데 제 블로그에 애드센스가 달려있어서 고객게시판에서 검색을 해봤더니

애드센스정도는 비영리로 판단되는 것 같습니다^^

저도 그래서 베어벡감독 사진을 뉴스뱅크이미지의 사진으로 교체했습니다^^

이제 맘편히 언론사의 사진을 게재해도 되겠네요^^
(단 뉴스뱅크이미지에서 퍼와야겠죠~^^?)

또한 이 곳에서 영리를 위한 사진은 별도로 판매도 하고 있네요~

좋은 서비스 인듯~^^
신고
Posted by Written. 깡s

댓글을 달아 주세요

서울 시내를 볼 수 있는 영상입니다.


제공은 서울지방경찰청 종합교통정보센터입니다


폴딩키를 눌러주세요


서울시내영상


신고
Posted by Written. 깡s
TAG 서울, 시내

댓글을 달아 주세요