Windows 에서 명령 프롬프트를 통한 작업을 할때 윈도우즈 버튼을 누르고 실행에 cmd 를 실행하여 명령프롬프트를 실행하고 직접 원하는 디렉토리로 이동하여 작업하는 경우가 있다.

 이보다 편리한 방법이 있는데 윈도우즈 탐색기나 해당 파일에 대해서 Shift 키를 누르고 마우스 우측 버튼을 누르면 여기서 명령 창 열기 라는 메뉴가 나오는데 이버튼으로 실행하면 특정 폴더에서 명령프롬프트를 실행 할 수 있다.


- shift 를 누르지 않았을 경우와 눌렀을 경우 Context 메뉴 차이


- 원하는 폴더에서 여기서 명령 창 열기 버튼을 실행했을 경우

   - 윈도우 탐색기에서 leechwin 이란 폴더에 대해 여기서 명령 창 열기 버튼을 실행하면 명령프롬프트의 기본 경로가 해당 폴더로 부터 시작된다.



Posted by leechwin
,

 Eclipse Fragment 프로젝트는 기존에 존재하는 plugin 에 대한 패치나 번들처리등에 이용이 된다.


 하지만 기존에 존재하는 eclipse core framework 의 일부 jar 나 plugin 에 대해서 fragment 가 제대로 동작 하지 않는 경우가 있다.

 이에 대한 해결방법에 대해 알아보자.

 아래부터는 원본 jar 나 plugin 을 Host Plugin 이라 지칭하고, fragment plugin 을 Patch plugin 이라 지칭


  • Host Plugin Setting
    • plugin.xml 설정
      • Overview
        • version 이 중복되지 않도록 "_patch" 등의 이름으로 수정
      • Runtime > Classpath
        • patch.jar 라는 이름을 추가하고, patch.jar 가 "." 위로 오도록 순서수정
      • Build > Runtime Information
        • patch.jar 가 있다면 삭제하고 "." 만 나오게 수정
        • Folder 는 src/ 가 나오게 수정
      • MANIFEST.MF
        • Eclipse-ExtensibleAPI: true 를 기술
        • MANIFEST.MF 파일 예제
          • Bundle-Version: 1.3.1.v201401291437_patch
            ...skip...
            Eclipse-ExtensibleAPI: true
            Bundle-ClassPath: patch.jar, 

             . 

    • build.properties 파일 예제
      •  jars.compile.order = .

        bin.includes = .,\
                       META-INF/,\
                       plugin.properties,\
                       plugin.xml,\
                       default.properties,\
                       .options
        javacSource=1.5
        javacTarget=1.5
        source.. = src/
        output.. = bin/


  • Patch Plugin Setting
    • MANIFEST.MF 
      • Overview
        • Host Plug-in 선택 
      • Runtime > Classpath
        • patch.jar 라는 이름을 추가하고, patch.jar 가 "." 위로 오도록 순서수정
      • Build > Runtime Information
        • patch.jar 가 있다면 삭제하고 "." 만 나오게 수정
        • Folder 는 src/ 가 나오게 수정
      • MANIFEST.MF
        • Eclipse-PatchFragment: true 를 기술
        • MANIFEST.MF 파일 예제
          • Eclipse-PatchFragment: true

            Bundle-ClassPath: patch.jar,
             .

      • build.properties 파일 예제
        • bin.includes = META-INF/,\

          patch.jar

          jars.compile.order = patch.jar

          source.patch.jar = src/

  • Feature 프로젝트에 Patch Plugin 이 포함된 Feature Dependency 기술
    • a.plugin 을 패치한다면 해당 plugin 에 버전이 xxx_patch 등으로 바뀌었을것이다.
    • 이후 a.plugin 을 포함하고있는 abc.feature plugin 에 해당 내용을 수정해야되는데 수정하는 방법은 2가지가 있다.
      • abc.feature plugin 을 통째로 include 하는법
      • abc.feature pulgin 에 기술된 plugin 들을 전부 include 하는법
    • 위의 내용을 feature 프로젝트를 하나 생성하여 plugin.xml 에 Feature 혹은 Plugin 탭에서 기술한다.  
    • Eclipse Framework 환경에서 Dependecy 확인하는법 
      • ../eclipse/feature 폴더로 이동
      • 다음 명령어 수행
        • $ grep -r pluginName .



Posted by leechwin
,

 Ubuntu 에서 많이 쓰는 Terminal 관련 유용한 단축키 정리


  • Ctrl + Alt + T : 바탕화면에서 터미널을 실행
  • Ctrl + Shift + T : 터미널내에서 새탭으로 터미널을 실행
  • Ctrl + Shift + N : 터미널내에서 새로운 터미널을 실행
  • Ctrl + Shift + W : 탭으로 실행된 터미널을 종료
  • Ctrl + Shift + Q : 현재 터미널을 종료(탭포함)
  • Ctrl + Shift + F : 터미널내에 문자열검색
  • Alt + 숫자 : 탭간에 이동
  • Ctrl + PageUp/PageDown : 다음/이전 탭으로 이동


Posted by leechwin
,

 Node.js 로 프로젝트로 개발을 하다 보면은, javascript 파일을 하나 고치고 터미널에서 수행중인 node 를 ctrl+c 로 강제 종료한뒤에 다시 node 를 실행하는 번거로운 작업을 되풀이 하게 된다.

 이런 불편함을 줄이기 위해 supervisor 라는 npm 모듈을 사용하면 개발중 위와 같은 수고를 덜 수 가 있다.


설치는 npm 모듈이므로 npm install 로 설치한다

 $ sudo npm install -g supervisor


설치후 모듈의 실행은 다음과 같다.

 $ supervisor app.js


위와 같이 수행하면 app.js 파일 변경되면 자동으로 supervisor 모듈이 서버를 재시작 한다.



위와 같은 비슷한 기능의 nodemon 이라는 npm 모듈도 있다.

 $ sudo npm install -g nodemon

 $ nodemon app.js


Posted by leechwin
,

 Eclipse 에서 File Decorator 로 org.eclipse.ui.decorators extension point 를 확장하고 ILightweightLabelDecorator 을 implements 한 경우 파일에 Warning 이나 Error 가 발생하여도 Package Explorer 에서 Marker 가 보이지 않는 경우가 있다.


 이 경우 ILightweightLabelDecorator 인터페이스 구현 부분을 ILabelDecorator 인터페이스로 바꾸어 재구현하면 위의 현상이 나타나지 않는데, ILabelDecorator 는 ILightweightLabelDecorator 보다 퍼포먼스가 많이 좋지 않기 때문에 완전한 해결책이라고 볼수가 없다.


 이런 현상은 ILightweightLabelDecorator 버그로 bugzilla 에 보고 되어있기도 하다.


 이 경우 Preference 의  File Icon Based On Content Analysis 옵션을 체크 해제하면 문제가 해결되는 경우가 있는데 옵션해제는 다음과 같은 경로로 하면 마커가 제대로 나오는 경우가 있다.

  • Eclipse > Window > Preferences > Genaral > Appearance > Label Decorations > "File Icon Based On Content Analysis" 부분을 해제

File Icon Based On Content Analysis 의 구현은 다음과 같은데 ILightweightLabelDecorator 인터페이스를 구현하고 있는데 이부분에 버그가 있는것 같다.

  • File Icon Based On Content Analysis
    • org.eclipse.ui.ContentTypeDecorator 의 확장점으로 구현
    • public class ContentTypeDecorator implements ILightweightLabelDecorator  
      • ILightweightLabelDecorator 을 implement 하고
    • 파일의 Decoration 으로 파일기본 ContentDescription 이 있다면 이정보를 바탕으로 Decorate


프로그래밍적으로 eclipse 의 Preference 에서 이부분을 uncheck 된 상태로 시작 하려면 다음과 같이 코드를 수정한다.

  • org.eclipse.ui.startup extension point 를 확장하여 워크벤치가 로딩될때 무조건 호출되도록 StartUp class 를 생성
  • 위에서 생성한 StartUp class 에서 다음과 같이 File Icon Based On Content Analysis 부분이 uncheck 되도록 수정한다.
public void earlyStartup() {
    DecoratorDefinition[] definitions = WorkbenchPlugin.getDefault().getDecoratorManager().getAllDecoratorDefinitions();
    for (DecoratorDefinition decoratorDef : definitions) {
        if (decoratorDef.getId().equalsIgnoreCase("org.eclipse.ui.ContentTypeDecorator")) {
            decoratorDef.setEnabled(false);
            break;
        }
    }
}




Posted by leechwin
,

 Eclipse 에서 File 을 Open 할때 기본으로 Open 되는 Editor 가 존재한다.

 Eclipse 에서는 File Content 의 특정 내용을 감지하여, 특정 Editor 로 Open 하도록 설정 할 수 있는 확장점이 제공된다.

 


예제로 다음과 같이 test.xml 이란 파일이 열릴때에 TestEditor 가 열리도록 설정해보도록하자.

- test.xml


  
    leechwin
    test xml
  


- plugin.xml

   - org.eclipse.core.contenttype.contentTypes 을 확장하여 org.leechwin.contenttype.testProfile 이란 id 로 확장점을 생성하고 Root Element 가 test Element 인지 확인한다

   - Editor 에서는 contenttypebinding 를 추가하여 위에서 확장한 org.leechwin.contenttype.testProfile 로 해당 Content 일경우 연결되게 한다.

   
      
         
            
            
            
         
      
   

   
      
          
         
         
      
   


위와 같은 예제로 File Content 의 일부 내용이나 특정 옵션으로 Editor 를 연결 시킬수 있다.

Posted by leechwin
,

Browser Object Model

Web 2014. 2. 3. 22:40

 Browser Object Model (BOM) 에 관한 slide


'Web' 카테고리의 다른 글

[Chrome] Your profile could not be opened correctly  (0) 2014.10.24
[Browser] Bookmarklet  (0) 2014.08.23
[Browserling] Cross Browser Testing Service  (0) 2013.12.10
[Brackets] Open source code editor for the web  (2) 2013.12.10
Web Dev Tools Review  (0) 2013.12.10
Posted by leechwin
,

 윈도우즈에서 GitHub Client 나 Git Bash 와 같은 Git client 사용중 갑자기 curl_multi_timeout 에러메시지와 함께 libcurl.dll 이 어쩌고 저쩌고 하는 에러가 발생하는 경우가 있다.


 이때에는 일단 사용중인 브라우져들을 전부 닫고, 다음경로의 libcurl.dll 을 삭제한 후 다시 Git client 를 사용하면 잘 동작한다.

  • win 32bit: C:\Windows\System32\libcurl.dll
  • win 64bit: C:\Windows\SysWOW64\libcurl.dll

 만약 그래도 동작하지 않는다면, Git Bash 나 GitHub Client 를 재설치 해보도록 한다.

 

 위의 내용으로 해결이 안되면 다음과 같이 수정해본다.

  • Git 이 설치된 경로에서 libcurl.dll 을 Copy ( C:\Program Files\Git\bin\libcurl.dll )
  • Copy한 libcurl.dll 을 다음경로에 Past ( C:\Program Files\Git\bin\libexec\git-core )

 

Posted by leechwin
,

 Tizen SDK 에서 Web IDE 개발을 위한 환경 설정에 대해 알아보도록 하자.

 Tizen Web IDE 는 Eclipse 기반의 WebToolsPlatform(WTP)에 애뮬레이터 매니져, 애뮬레이터 이미지등이 합쳐진 IDE 이다.


 그럼 Tizen Web IDE 를 개발하기 위한 개발 환경 설정부터 소스 import 까지 알아보도록 하자.


1. [Prerequisites] 개발 환경을 설정하기 전 Tizen SDK 는 미리 설치가 되어있어야 한다. 다음링크의 가이드를 따라 Tizen SDK 를 미리 설치해 놓도록 한다.

 

2. Eclipse 다운받기

  • Tizen IDE 의 개발 환경인 Eclipse 를 다운받아 설치해보도록 하자.
  • Eclipse 는 공식사이트에서 받아도 되지만, Tizen IDE 에서 개발에 필요한 플러그인들등을 따로 설치해야하는 번거로움이 있다.
  • Tizen IDE 개발에 플러그인이 설치되어있는 Eclipse 를 Tizen Develop 패키지서버에서 다운받아 쓰면 이런 번거러움이 사라진다.
    • http://download.tizen.org/sdk/latest/tizen/binary/ 에 접속한 후 Last modified 컬럼을 클릭하여 패키지를 시간순으로 정렬한다.
    • 이후 base-ide-product_XXX.zip 으로 되어 있는 패키지중 자신의 운영체제에 맞는 최신 버전의 인스톨러를 다운로드 한다. 그 후 zip 파일을 풀면 다음과 같은 구조로 되어 있는데, ide 라고 되어 있는 폴더가 기존 eclipse 를 다운받고 압축을 풀면 생기는 eclipse 폴더와 동일하다.
    • ide 폴더를 자신이 원하는 곳으로 복사하여 이용하면 된다.


3. sdk.info 파일 복사하기

  • 설치된 SDK 폴더로 가보면 sdk.info 파일이 있다.
  •  SDK 폴더에 있는 sdk.info 파일을 2번에서 다운받은 eclipse.exe 실행파일이 있는 폴더의 상위폴더에 복사해놓는다.


4. Tizen 계정 생성

  • Tizen Open Source 로 개발을 하려면 https://www.tizen.org/ 에서 계정 등록을 하여야 한다.
  • 우측 상단의 Register 버튼을 클릭하여 계정등록을 하도록 한다.
  • 등록을 완료면 이메일로 인증메일이 가는데 메일안의 URL 로 접속하여 Password 를 설정하여야 한다.


5. Gerrit 계정 등록

  • Tizen Open Source 는 저장소관리를 Git 으로 하고있고, review 는 gerrit 으로 하고 있으므로 https://review.tizen.org/gerrit/ 에서 생성한 Tizen 계정에 대한 정보를 채워야 한다.
  • Contact information 과 SSH Public Keys 정보를 입력한다.
    • ssh key 가 없다면 shell 에서 다음 명령어로 생성한다.
      • ssh-keygen
    • ssh key 가 생성되었다면 ~/.ssh 폴더에 id_rsa 파일과 id_rsa.pub 파일이 생성 되어 있을것이다.
    • id_rsa.pub 파일의 내용을 복사하여 Gerrit 의 SSH Public Keys 정보에 넣어준다.
    • 이후 전송된 이메일을 확인하여 파일내의 URL 을 클릭하여 인증을 마친다.


6. SSH 설정파일 생성

  • 소스를 ssh 를 이용하여 clone 받기때문에 ~/.ssh/config 파일을 생성하거나 존재한다면 추가 설정을 해주어야 한다.
  • User 에는 Tizen 계정을 넣어준다
  •  Host tizen

        User <USERID>

        Port 29418

        Hostname review.tizen.org

        IdentityFile ~/.ssh/id_rsa


7. Git Source Clone

  • 위의 SSH 설정까지 마쳤다면 다음과 같은 형식으로 원하는 프로젝트 소스를 가져올 수 있다. 참고로 각 git 프로젝트의 최신 프로젝트 브랜치는 tizen 브랜치이다.
    • git clone ssh://<USERID>@review.tizen.org:29418/<ProjectGitName> -b tizen
    • 예제) git clone ssh://<USERID>@review.tizen.org:29418/common-eplugin -b tizen
  • Web IDE 에서 필요한 소스는 다음과 같다.
    • sdk/ide/common-eplugin.git
      • Web IDE 와 Native IDE 의 공통 모듈
    • sdk/ide/webapp-eplugin.git
      • Web IDE 모듈
    • profile/mobile/sdk/webapp-ext-eplugin.git
      • Web IDE 의 모바일에 특화된 모듈


8. Eclipse 에서 Source Import

  • 위의 Git Clone 받은 소스들을 Eclipse 의 import 기능으로 Eclipse 로 Import 해보도록 하자.
  • 2번째 과정에서 받은 Eclipse 를 실행한다.
  • Eclipse 메뉴의 File > Import 메뉴를 눌러 Import Wizard 를 실행한다.

  • Existing Projects into Workspace 를 클릭하여 clone 받은 프로젝트의 디렉토리를 지정하여 Import 를 시킨다.


9. Target Platform 설정
  • Eclipse 의 메뉴의 Window > Preferences 를 열고 Plug-in Development > Target Platform 정보를 확인한다.
  • Target Platform 정보가 현재 실행하고 있는 Eclipse 를 Target 으로 지정하고 있는지 확인하고 다른 Eclipse 를 지정하고 있다면 Add 버튼으로 현재 Eclipse 를 Target 으로 지정하도록 한다.

10.  Run/Debug Configuration 설정
  • Eclipse 의 메뉴에서 Run > Run Configurations... 메뉴를 클릭하여 Configuration 을 설정하도록 한다.
  • Eclipse Application 을 하나 더 추가하도록한다.

  • 이후 우측하단의 Run 버튼을 누르면 Tizen Web IDE 가 수행된다.

11. 이제 Tizen Web IDE 소스를 수정하여 바로 반영된 모습을 Run/Debug 로 확인이 가능 하다.


Posted by leechwin
,

개발중인 Tizen SDK Develop 버전을 설치하는 법을 알아보자.


단, Develop 버전의 SDK는 최신이기는 하지만 Unstable 한 버전이기 때문에 Stable 한 버전을 설치하기 위해서는 Tizen 공식 사이트의 가이드를 따르도록 한다. 


그럼 Tizen SDK Develop 버전 설치하는 법을 알아보자.


1. [Prerequisites] SDK 를 설치전 미리 설치해두어야 하는 프로그램들이 있다.
  • Oracle JRE 1.6 이상
  • Google Chrome Browser
    • Google Chrome Browser Download
    • HTML5, CSS3 등의 Tizen Web Application 을 개발하기위한 Preview, Debugging, Simulator 등을 위해서 Chrome 이 필요하다.
  • 자신의 그래픽 드라이버를 최신으로 업데이트
    • NVIDIA/ATI 드라이버등 자신의 그래픽 드라이버를 최신으로 Update 해야 Tizen Emulator 에서 고성능의 성능을 얻어낼 수 있다.

2. SDK Installer Manager 를 다운받아 보자.
  • Installer Manager
    • Tizen 패키지서버에서 인스톨러를 직접받아보자.
  • http://download.tizen.org/sdk/latest/tizen/binary/ 에 접속한 후 Last modified 컬럼을 클릭하여 패키지를 시간순으로 정렬한다.
    • 이후 install-manager-standalone_XXX.zip 으로 되어있는 패키지중 자신의 운영체제에 맞는 최신버전의 인스톨러를 다운로드 한다. 그후 zip 파일을 풀어 인스톨 매니져를 실행한다. 


3. 다운받은 Install Manager 파일을 클릭하여 실행하자.


4. 좌측 하단에 Settings 메뉴를 눌러보면 다음과 같이 Proxy 설정을 할 수 있다.

  • Proxy 를 설정하여 쓰고 있다면 이곳에서 자신에게 맞는 Proxy 설정을 한다.
  • Proxy 를 쓰고있지 않다면 Direct connection 을 체크하고 OK 버튼을 누른다.


5. Advanced 버튼을 한번 눌러보면 다음과 같은 메뉴가 나온다.

  • Package Server : SDK Image 를 Download 받을 수 있는 Package Server
    • 해당 패키지서버를 Browser 로 탐색해보면 Binary 가 Zip 형식으로 패키징 되어있는것을 볼 수 있다.
  • Distribution : SDK 의 Version 을 다르게 하여 설치 할 수 있다.
  • SDK Image : 위의 3번에서 설명한 Download 받은 SDK Image 를 지정하여 SDK 를 설치할 수 있는 메뉴


6. 다시 OK 를 눌러 돌아와서 라이센스 체크를 하고 Next 를 Click


7. 다음과 같이 인스톨 Type 을 설정 할 수 있다. 


8. 설치도중 Intel Hardware Accelerated Execution Manager 를 설치화면이 나온다.

  • 자신의 PC 가 하드웨어가상화(VT-x)를 지원한다면, Intel Hardware Accelerated Execution Manager 를 설치한다.



9. 설치가 완료되면 다음과 같이 Installation Completed 라는 창이 뜬다. 

  • 이제 Develop 버전의 Tizen SDK 를 써볼 수 있다!


10. 설치완료 후 재부팅을 한다.


11. Windows 의 시작 메뉴에 있는 Tizen IDE 를 Click 하면 Tizen IDE 가 실행이 되는 모습을 볼 수 있다.

Posted by leechwin
,