이클립스 3.x(indigo) 와 4.x(juno)는 상이한 면이 많은것 같다.

개발 시 어떤것을 택할지도 고려해야 한다. 일단 자료수집 수집 수집


juno tutorial

http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.ocl.doc%2Fhelp%2FTutorials.html


indigo toturial

http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.ocl.doc%2Fhelp%2FTutorials.html

-------------------------------------------------------------------------------------------------------------------


eclipse e4 top 10 특징

http://eclipsesource.com/blogs/2012/06/27/top-10-eclipse-juno-features/


이클립스 e4 tutorial -

http://www.vogella.com/articles/EclipseRCP/article.html


이클립스4(4.2 or juno, or e4) application model 튜토리얼 pdf 다운(영어) -

http://eclipsesource.com/en/info/eclipse-4-tutorial/


이클립스 트레이닝 ??

http://eclipsesource.com/en/services/eclipse-training/


이클립스 e4 tutorial 몇개 정리되 있는 블로그

http://eclipsesource.com/blogs/2012/05/10/eclipse-4-final-sprint-part-1-the-e4-application-model/

 

e4 Technical Overview(아키텍쳐와 프로그래밍 모델 요약문) -

http://www.eclipse.org/e4/resources/e4-whitepaper.php


 

GEF(Graphical Editing Framework) Draw2d, GEF(MVC), Zest

http://www.eclipse.org/gef/

posted by cozyboy
:
학습자료/리눅스 2013. 2. 1. 17:53

만약 LVM 을 통해 기존에 있던 Logical volume 을 lvresize 나 lvextend 혹은 lvreduce 를 통해 크기를 변경했을 때

lvdisplay 로 확인했을 때는 크기가 확장되거나 줄었는데 실제 mount (df) 를 통해 보면 이전하고 크기가 바뀌지 않았을 경우가 있다.

루트(/) 쪽을 물리 볼륨확장 하였으나,

lvdisplay 에는 확장되었다고 나오고

df로는 적용이 되지 않은 량이 표시되었다.

 

그때

resize2fs extends the filesystem to the partition's size로 해결

 

 

http://en.positon.org/post/Resize-an-ext3-ext4-partition

 

posted by cozyboy
:
학습자료/리눅스 2013. 2. 1. 14:01

명령어 : rpm


1) 패키지가 설치 되어 있는지 확인

rpm -qa | grep <package name>

-qa 명령어만 사용하면 전체 설치 리스트를 가지고 오는데 여기에서 특정 이름만 추출하기 위해서 사용합니다.

rpm -qa | grep tftp-server // tftp-server 라는 패키지가 설치되어 있는지 확인


2) 패키지 제거하기

rpm -e tftp-server // tftp-server 패키지 제거

의존성 무시하고 강제 삭제를 원하는 경우

--nodeps 옵션을 추가하면 됩니다.


3) 패키지 설치 및 업그레이드

-i : 설치

-U : 업그레이드

-v : 설치 진행 상황 보여주기

--------------------------------------------------

질의 옵션 (-q 또는 --query 옵션과 함께 사용):
-c, --configfiles 모든 설정 파일을 나열합니다
-d, --docfiles 모든 문서 파일을 나열합니다
--dump 기본 파일 정보를 보여줍니다
-l, --list 패키지 안의 파일을 나열합니다
--queryformat=QUERYFORMAT 다음의 질의 형식을 사용하십시요
-s, --state 나열된 파일의 상태(state)를 보여줍니다
-a, --all 모든 패키지에 대해 질의/검증합니다
-f, --file 파일이 들어있는 패키지에 대해 질의/검증 합니다
-g, --group 그룹 안의 패키지를 질의/검증 합니다
-p, --package query/verify a package file
--specfile spec 파일에 대해 질의합니다
--whatrequires 의존성을 필요로 하는 패키지에 대해 질의/검증 합니다
--whatprovides 의존성을 제공하는 패키지에 대해 질의/검증 합니다


검증 옵션 (-V 또는 --verify 옵션과 함께 사용):
--nomd5 파일의 MD5 축약(digest)을 검사하지 않습니다
--nofiles 패키지 안의 파일을 검사하지 않습니다
--nodeps 패키지의 의존성을 검사하지 않습니다
--noscript don't execute verify script(s)
-a, --all 모든 패키지에 대해 질의/검증합니다
-f, --file 파일이 들어있는 패키지에 대해 질의/검증 합니다
-g, --group 그룹 안의 패키지를 질의/검증 합니다
-p, --package query/verify a package file
--specfile spec 파일에 대해 질의합니다
--whatrequires 의존성을 필요로 하는 패키지에 대해 질의/검증 합니다
--whatprovides 의존성을 제공하는 패키지에 대해 질의/검증 합니다


서명 옵션:
--addsign sign package(s) (identical to --resign)
-K, --checksig verify package signature(s)
--import import an armored public key
--resign sign package(s) (identical to --addsign)
--nodigest don't verify package digest(s)
--nosignature don't verify package signature(s)


데이터베이스 옵션:
--initdb 데이터베이스를 초기화 합니다
--rebuilddb 설치된 패키지 헤더에서 상반된 목록(inverted lists)의 데이터베이스를 재구축 합니다


설치/업그레이드/삭제 옵션:
--aid add suggested packages to transaction
--allfiles 특정 파일을 생략하기 위한 설정이 적용된
경우에도, 패키지 안의 모든 파일을 설치합니다
--allmatches <패키지> 이름과 일치하는 패키지는 모두
제거합니다 (<패키지>에 여러개의 패키지를 동시에

지정할 경우에는 오류가 발생합니다)
--badreloc relocate files in non-relocatable package
-e, --erase=<패키지>+ 패키지를 (제거) 삭제합니다
--excludedocs 패키지에 포함된 문서 파일을 설치하지 않습니다
--excludepath=<경로> <경로>로 시작되는 파일은 설치하지 않습니다
--fileconflicts detect file conflicts between packages
--force --replacepkgs 와 --replacefiles 옵션을 동시에 사용합니다
-F, --freshen=<패키지파일>+ 기존에 설치된 패키지를 업그레이드 합니다
-h, --hash 패키지 설치를 해시마크(#)로 표시합니다 (-v 옵션과 함께 사용하는 것이 좋습니다)
--ignorearch 패키지의 아키텍쳐를 검사하지 않습니다
--ignoreos 패키지의 운영체제를 검사하지 않습니다
--ignoresize 패키지를 설치하기 전에 디스크 공간을 검사하지 않습니다
-i, --install install package(s)
--justdb 파일시스템을 변경하지 않고, 데이터베이스를 갱신합니다
--nodeps 패키지의 의존성을 검사하지 않습니다
--nomd5 파일의 MD5 축약(digest)을 검사하지 않습니다
--noorder 의존성이 있는 패키지를 설치하도록 재요구하지 않습니다
--nosuggest do not suggest missing dependency resolution(s)
--noscripts 패키지 스크립틀릿(scriptlet)을 실행하지 않습니다
--notriggers 이 패키지에 의해 생성되는(triggered) 어떠한 스크립틀릿(scriptlet)도 실행하지 않습니다
--oldpackage 이전 버전의 패키지로 다운그레이드 합니다
(--force 옵션을 사용시에는 이 옵션이 자동으로 적용됩니다)
--percent 패키지 설치를 퍼센트(%)로 표시합니다
--prefix=<디렉토리> 재배치 기능이 있는 패키지의 경우, 지정한<디렉토리>로 재배치하여 설치합니다
--relocate=<이전경로>=<새로운경로> <이전경로>에서 <새로운경로>로 파일을 재배치 합니다
--repackage 재패키징(repackaging)으로 인해 삭제되는 패키지 파일을 저장합니다
--replacefiles ignore file conflicts between packages
--replacepkgs 패키지가 이미 설치되어 있는 경우에도 설치합니다
--test 패키지를 설치하지 않고, 제대로 설치되는지만 확인합니다
-U, --upgrade=<패키지파일>+ 패키지를 업그레이드 합니다


모든 rpm 모드에서의 일반적인 옵션:
-D, --define='MACRO EXPR' define MACRO with value EXPR
-E, --eval='EXPR' print macro expansion of EXPR
--macros=<FILE:...> read <FILE:...> instead of default file(s)
--nodigest don't verify package digest(s)
--nosignature don't verify package signature(s)
--rcfile=<FILE:...> read <FILE:...> instead of default file(s)
-r, --root=ROOT use ROOT as top level directory (default: "/")
--querytags 질의 태그를 보여줍니다
--showrc 현재 설정되어 있는 rpmrc의 내용과 매크로를 보여줍니다
--quiet 자세한 출력을 제공합니다
-v, --verbose 아주 상세한 출력을 제공합니다
--version 현재 사용되고 있는 rpm 버전을 표시합니다


Options implemented via popt alias/exec:
--scripts list install/erase scriptlets from package(s)
--setperms set permissions of files in a package
--setugids set user/group ownership of files in a package
--conflicts list capabilities this package conflicts with
--obsoletes list other packages removed by installing this package
--provides list capabilities that this package provides
--requires list capabilities required by package(s)
--info list descriptive information from package(s)
--changelog list change logs for this package
--triggers list trigger scriptlets from package(s)
--last list package(s) by install time, most recent first
--filesbypkg list all files from each package
--fileclass list file names with classes
--filecolor list file names with colors
--fileprovide list file names with provides
--filerequire list file names with requires
--redhatprovides find package name that contains a provided
capability (needs rpmdb-redhat package installed)
--redhatrequires find package name that contains a required
capability (needs rpmdb-redhat package installed)
--buildpolicy=<policy> set buildroot <policy> (e.g. compress man pages)
--with=<option> enable configure <option> for build
--without=<option> disable configure <option> for build


Help options:
-?, --help Show this help message
--usage Display brief usage message

[출처] rpm 사용 옵션|작성자 해안선

--------------------------------------------------

 

posted by cozyboy
:

1. 편집기는 같은 위도우 내의 퍼스펙티브 간에 공유한다. 예를 들어, 한 퍼스펙티브에서 편집기를 닫으면 모든 퍼스펙티브에서 편집기가 닫힌다.

2. 편집기와 뷰는 같은 스택 위에 배치할 수 없다. 예를 들어 퍼스펙티브의 동일한 위치에 뷰와 편집기를 드래그앤드롭할 수 없다.

3. 뷰는 워크벤치 위도우에서 떼어진다.

4. 뷰는 제목 없이 보일 수 있다.

5. 편집기는 메인 툴바와 메뉴에 기여할 수 있지만 뷰는 뷰 자신의 툴바와 메뉴에만 기여할 수 있다. 하지만 뷰가 활성화될 때 액션 집합의 지정이 가능하다.

6. 편집기가 포커스를 갖지 않더라도, 마지막으로 포커스를 가졌던 편집기는 활성화된 편집기로나아 있어서 다른 요소에게 정보를 제공한다. 그러므로 좀 더 쉽게 편집기와 뷰는 동기화된다. 예를 들면 아웃라인 형태의 뷰와 편집기를 연결하는 일은 쉽다.

 

위와 같은 내용은 이클립스를 실행하여 이것저것 만져보면 감을 잡기 쉽다.

posted by cozyboy
:

RCP, RAP 해본지 5일하고, 4일째

배포방법 찾느라 이틀을 검색, 검색, 검색...

삽질 하지 말자.. 그 누구도 이런일 때문에.. 제발!!

 

 

환경 : 리눅스, eclipse indigo, rap 1.5

 

복잡하게 ant 작성하고 이러저러하기엔 시간이 모자르다.

이클립스에서 rap 배포툴을 만들어 두었습니다.

여러 시행착오 끝에 이클립스의 말을 듣고 RCP & RAP 전용 이클립스를 다운받았음에도 불구하고 제대로 안되었던 RAP 배포.  하지만 여태껏 링크걸어둔 싸이트와 검색에 검색을 더해 성공.

 

 

정리된 내용 :

1. rap Demo소스 사용법

2. WAR products Tooling을 이용하여 간단하게 war파일 생성

3. 톰캣 설치

4. war 톰캣에 배치후 실행

5. rap는 어떻게 작동하는 것일까..

 

웹하는 사람이 아니라 모르는 용어들이나 도움될만한 것들을 적다보니 서두 없이 지저분합니다. 

하여 목차를 생각해보면 위와 같습니다.                       

 


 

  •  rap Demo소스 사용법

rap에서 제공 하는 Demo소스를 이용하였습니다.  아래그림은 Rap 환경을 제대로 구축하였을 시 볼수 있는 장면입니다.

 

  • Select the org.eclipse.rap.demo plug-in and use the command Import As > Source Project from the context menu to import org.eclipse.rap.demo as project in your workspace.
  • Import RAP demo project

     

     

     

    프로젝트 war 변형(WAR products Tooling을 사용합니다.) - 그림대로 따라하면 됨

     

     * 하지만 아래 그림의 tool이 없다?

    indigo Update Site, In "Web, XML, Java EE and OSGi Enterprise Development" category, named as "WAR Products (Incubation)"

     

    indigo update 사이트에서 ->

    카테고리 : Web, XML, Java EE and OSGi Enterprise Development

    이름 : WAR Products (Incubation)

    가 깔려 있지 않을 것임.

     

    RCP & RAP 전용 이클립스를 다운받았음에도 이 항목이 존재하지 않았다.

     

    다시 아래 그림대로.

     

     

    • WAR products Tooling을 이용하여 간단하게 war파일 생성

     

    Open the New WAR Product Configuration wizard.
    WAR product wizard

  • Enter a name for the war configuration file and select the RAP Workbench Demo from the available launch configurations.
    WAR pruct configuration
  • The rapdemo.warproduct configuration

    WAR Products tooling provides a form-based multi-page editor to manage a .warproduct configuration. The editor has the following pages:

    • Overview: on this page you can enter additional information like ID, Name, Version but they are not needed to export a war archive. Also the WAR Product export wizard can be started from the Overview page.
      WAR Product editor

    Id, version, Name 적고 아래 Exporting 탭의 Validate 검사후, export wizard 실행 하면 war 파일이 바로 생성됨. 그 전에 아래그림에서 Add Required Plug-ins를 눌러준다.

    • Configuration: Here you can manage which plug-ins and libraries to be included into the war archive.
      WAR Product editor configuration
    • Web.xml: On this page the web.xml of the war archive can be edited.
      WAR Product editor web.xml

     


     

    • 톰캣 설치

    톰캣 설치는 알아서..

    흠. 이클립스를 이용하여 다운 받는 법을 글로만 쓰자면

     

    import project에서

    Web-> WAR file 후 타겟을 선택하는 곳이 있다.

    옆에 New버튼이 있는데 그곳에서 설치하고싶은 버전의 톰캣을 선택후, finish를 누르면 tomcat이 설치된다.

    당황스럽게도 다운받는지 아닌지를 모르겠지만, 하단에 보면 다운중인 표시가 떴던기억이 난다.

     

    암튼 이렇게 대충 설치 후,

     

     흠.. 톰캣 실행 법은 bin폴더에 실행파일이 있다.

    그곳의 .sh로 끝나는 파일을 모두 실행가능 권한을 준다.

     

    startup.sh 과 shutdown.sh 을 통해서 톰캣을 실행/중지 할수 있다.


     

    • war 톰캣에 배치후 실행

     

    Tomcat에 배치

    현재는 Tomcat이 포트 1234에서 실행되도록 구성되어 있지만, Tomcat은 포트 8080에서 실행되는 것이 일반적이다. 내장된 Tomcat 관리자를 사용하여 만들어진 .war 파일을 배치할 수 있다. http:localhost:8080/manager/html로 이동한다.

     

     

    localhost:8080/ 으로 들어가면 tomcat gui에 접속하여 위의 방식으로 war를 배치 할수 있다.

    하지만 아래와 같은 계정설정을 해야 할 것이다.

    conf 폴더 안에 tomcat-users.xml 파일에 아래와 같이 삽입

    <tomcat-users> <user name="admin" password="admin" roles="admin-gui,manager-gui" /> </tomcat-users>

     


    그림 45. Tomcat 관리자를 사용하여 WAR 배치
    Tomcat 관리자를 사용하여 WAR 배치

    "WAR file to deploy" 섹션에 방금 작성한 .war의 파일 이름과 경로를 입력하고 Deploy를 클릭한다. Tomcat에서 WAR을 배치하는 작업을 완료하면localhost:8080/로 이동하여 개인용 태스크 관리 애플리케이션을 실행할 수 있다.

     

     

    http://localhost:8080/rapdemo/rap 로 접속할수 있다.

     

     

     


     

    •  rap는 어떻게 작동하는 것일까.

     

    더 생각해 보자. 이놈의 RAP는 어떻게 작동하는것일까.

     

     

    qooxdoo는 자바스크립트 프레임워크로 UI 스타일이라고 보면 될듯하다.

    http://www.xenomity.com/69

    서버 : tomcat과 war

    클라이언트 : 브라우저(qooxdoo)

     

    1. 서블렛 컨테이너(like tomcat)에 들어오는 HTTP request를 핸들하고 tomcat과 같은 server에게 전달해주는 Servlet Bridge(이 역시 jar며 class 파일의 집합이다)가 존재한다.

     

    2. request를 RWT와 같은 라이브러리 혹은 자신이 연동한(작성한) 프로그램으로 처리한다.

     

    3. 그 결과를 Http Servlet으로 exposing한다.

     

    Servlet Bridge (org.eclipse.equinox.servletbridge) status:green
    Low level hook servlet installed in an existing traditional application server. This servlet launches an embedded Equinox and enables it to handle incoming HTTP requests originally sent to the underlying server.
    HTTP Servlet (org.eclipse.equinox.http.servlet) status:green
    Generic support for exposing another servlet facility (e.g., an underlying application server) as an OSGi HTTP service.

     

    내부적으로는 여튼, 이렇게 통신을 하는것 같다.

     

    조금더 외부적인 동작은 이름따라 RAP는 ajax paltform이다.

    Asynchronous JavaScript + XML의 약어로 음..

     

    http://blog.naver.com/jhoh86?Redirect=Log&logNo=10133727118

     

    이와 같이 돌아가겠지요.

     

     

     

    이것은 이클립스의 equinox에 대한 사이트이다. equinox에 사용된 플러그인(번들)에 대한 설명이 간략하게나마 리스팅 되어있다.

     

    http://eclipse.org/equinox/server/

     

     

    ----------------------------------------------------------------

    [ibm에 정리되어 있는 내용]

    org.eclipse.equinox.servletbridge
    프레임워크를 실행하고 프레임워크를 서블릿 컨테이너로 다시 끌어들일 위치를 제공한다.
    org.eclipse.equinox.servletbridge.http
    서블릿 브릿지로 다시 끌어들이고, OSGi HttpService를 제공할 서블릿 컨테이너로 요청을 프록시한다.
    org.eclipse.equinox.http.servlet
    초기화될 때 OSGi HttpService를 등록하는 http.servletbridge에 의해 사용되는 HttpServiceServlet을 제공한다.
    org.eclipse.equinox.http.registry
    OSGi HttpService를 기반으로 하는 HTTP 컨텍스트 확장점과 서블릿 및 자원을 제공한다.

    http://www.ibm.com/developerworks/kr/opensource/tutorials/os-eclipse-ganymede-pt2/section5.html

     


    링크 -

     

    Rap dev 가이드(deploy 부분) :

    http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.rap.help%2Fhelp%2Fhtml%2Fadvanced%2Fdeployment.html

     

    Rap product Configuration 이 항목에 없을때 :

    http://www.eclipse.org/forums/index.php/m/704357/#msg_704357:

    WAR Product tooling is available from indigo Update Site, In "Web, XML, Java EE and OSGi Enterprise Development" category, named as "WAR Products (Incubation)"

     

    tomcat에 올리기 :

    http://www.ibm.com/developerworks/kr/opensource/tutorials/os-eclipse-ganymede-pt2/section5.html

     

    tomcat 주소에 쓸 주소 :

    http://blog.naver.com/waitzero?Redirect=Log&logNo=70025111691

     

    tomcat gui manager 사용방법

    http://blog.naver.com/artofdata?Redirect=Log&logNo=110149615328

     

     

    qooxdoo 간단 설명 :

    http://www.xenomity.com/69

     

    ajax 간단 설명:

    http://blog.naver.com/jhoh86?Redirect=Log&logNo=10133727118

     

    이클립스 equinox 사이트(서버단에 사용된 플러그인 리스트와 설명) :

    http://eclipse.org/equinox/server/

     

    posted by cozyboy
    :
    • 이클립스 tutorial에 나오는 에디터 (어떻게 사용하는지 모르겠음.)

    Eclipse 4 Tools: Application Model Editor 주소 -

    http://marketplace.eclipse.org/content/eclipse-4-tools-application-model-editor

    update 주소 - http://download.eclipse.org/e4/updates/0.12

     

    • SWT Designer(Window Builder Pro ) - 이게 좋을듯

     - 퀵스타트 주소 : https://developers.google.com/java-dev-tools/wbpro/quick_start?hl=ko-KR

     - 유저 가이드 : http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.wb.doc.user%2Fhtml%2Findex.html

     

     

    설치 법 - 편하게 마켓으로 깔자

    1 . Market place :

    window 검색 -> WindowBuilder Pro GUI Designer 설치

     

    2. WindowBuilder Pro Update Site -  http://dl.google.com/eclipse/inst/d2wbpro/latest/3.6

     

     

    swt, 즉 뷰가 사용된 클래스에서 open with로 windowBuilder를 사용 하면 GUI가 나온다.(action 이런데다가 써놓고 안된다 하지 말기, RCP 디자이너가 아니라 SWT 디자이너임.)

     

    posted by cozyboy
    :

    실행화일 형태로 내보내는 방법에 대해 설명합니다.

    install형태로 만드는 것은 아닙니다.

    단지, exe(windows 플랫폼) 형태로 만들어서 사용자가 sw를 설치 및 실행을 가능하게 만들어 내는 것입니다.

    책 내용을 그대로 따라하기 보단 실제 간단한 application을 실행화일로 만들어 보겠습니다.

    우선 누구나(?) 만들어 낼 수 있는 sample plug-in example인 "RCP mail telplate"를 가지고 해보겠습니다.

    이런 완성된(?) application 이 있습니다.

    과정은 이렇습니다.

    1. plugin.xml에서 build 탭의 Binary Build를 손봐준다. 필요한 리소스들을 체크하여야 내보내서 별탈없이 동작합니다.

    2. product 생성 ( 8장에서 이미 되어 있다면 통과~ )

    3. package로 export 시켜 마무리.

    위의 순서대로 sample을 패키지화 시켜보면,

    plugin.xml 에서 binary build할 때 필요한 체크리스트가 나오는데 현재는 그대로 놔둡니다. 필요한 리소스들이 다 체크 된 상태입니다.

    2번째로 product configuration 생성. sample에는 안되어 있으니 해봅니다.

    위의 과정으로 생성을 시키면,

     

    New Product configuration dialog이 나오면서 product화일명을 요구합니다. 저는 sample이라고 쳤습니다.

    그리고 밑의 use an existing product 나 use a launch configuration에서 자신에게 알맞는(?) 것을 선택하시면

    됩니다.

    저는 사실 미리 생성이 되어 있었고 이미지 캡쳐 때문에 existing product 에 라디오버튼을 놨습니다만,

    처음 하실 때는 밑의 실행설정에서 찾으시면 될 겁니다.

    그것도 없을 때는 미리 sample application을 실행 시키시면 하나 나오게 되어있습니다.

    Finish를 선택하시면,

     

    이렇게 sample.product가 생성될 것입니다.

    다음은 마지막으로 package를 export 시켜서 패키지로 만들겠습니다.

    우선 product 시킨(제품화?) 결과물이 이상없이 잘 되는지 실행 시켜보겠습니다.

    Overview에서 launch 시켜 보는 겁니다. 물론, 여기서는 잘 됩니다.

    하지만, 세상은 호락호락 하지 않은 법! ~ 안될 경우도 있을 겁니다.

    그럴 때 가장 먼저 해볼 수 있는 것은 configuration 에서 plugin들이 제대로 add 되어 있는지 보셔야 합니다.

    package 시킨다 해도 모든 기능을 exe에는 담을 수 없을 것입니다.

    따라서 필요한 plug-in들이 따라서 담겨야 하는데 가끔 이것이 제대로 안될 때가 있는 모양입니다.   --- 이부분은 조금 달랐던 기억, 눌러보면 나온다.

    그럴 때는 이렇게 필요한 애들만 add 시켜 줍니다.

    별 이상없이 launch가 잘 된다면 거기서 오른 편에 Exporting 시켜 주는 부분이 있습니다.

    exporting을 시킵니다.

    위에 처럼 2군데 정도만 적절히 입력해주세요.

    그런 다음 destination에서 입력한 directory로 찾아가서 보시면 exe 형태로 있습니다.

     

     

    링크 : http://cafe.naver.com/eclipseplugin/

    posted by cozyboy
    :

     

    http://obscuredclarity.blogspot.kr/2010/06/import-and-export-eclipse-rcp.html

     

     

     

    posted by cozyboy
    :

    ■ OSGi(Open Services Gateway Initiative - Dynamic Module for Java)

    - 한개의 번들 또는 여러 개의 번들로 이루어진 애플리케이션 자체를 언제든지 동적으로 프레임워크상에 설치, 실행, 업데이트, 중단, 제거하는 것을 가능하게 하는 매우 유연한 라이프 사이클모델을 지원하는 프레임워크

    - JSR-291 : Dynamic Component Support for Java

    - JSR-277 : Java Module System

    ■ OSGi History

    - OSGi Alliance(http://www.osgi.org) 1999년 3월 IBM, Sun, NOKIA, Samsung

    - 홈네트워크를 지원하기 위한 플랫폼으로 개발

    ■ OSGi 특징

    - 각 애플리케이션이 번들이라고 불리는 작고 재사용 가능한 컴포넌트로부터 조립될수 있도록 도와준다

    - 여러개의 번들로부터 조합된 애플리케이션들은 OSGi 프레임워크가 설치된 곳은 어디든지 배포될 수 있다.

    - 조합된 어플리케이션들은 시스템의 재시작없이 컴포넌트의 연결 구조를 동적으로 변경할 수 있다.

    ■ OSGi의 사용처

    - 이클립스 : 포함된 equinox가 OSGi의 구현체로 번들로 구성된다.

    - 프린터 및 복합기 : Canon MEAP, Ricoh OSA

    - WAS

    IBM Websphere, Oracle WebLogic, Redhat JBoss, SpringSource Application Platform, Sun GlassFish Enterprise Server

    ■ OSGi의 구현체

    - OSGi는 Specification만이 존재하므로 여러 구현체가 있게 된다. 이 구현체의 목록은 아래와 같다.

    구현 Spec

    License

    URL

    Eclipse Equinox R4

    EPL

    http://www.eclipse.org/equinox

    Apache Felix

    R4 APACHE

    http://www.felix.apache.org

    Knopflerfish R4&R3 BSD http://www.knopflerfish.org

    Concierge

    R3 BSD

    http://concierge.sourceforge.net

    ProSyst mBedded Server R4

    EPL&Professional Edition

    http://www.prosyst.com

    ■ OSGi 의 특징 2

    - 여러개의 번들로부터 조합된 애플리케이션들은 OSGi 프레임워크가 설치괸 곳은 어디든지 배포 가능

    - 애플리케이션들은 시스템의 재시작 없이 컴포넌트의 연결구조를 동적으로 변경할 수 있다.

    - 동적으로 변경하기 위해 OSGi는 서비스 지향 아키텍처(SOA)를 사용

    - OSGi에서 제공하는 Service Registry에 자신의 서비스를 등록하여 OSGi를 통해 서비스를 import/export 가능

    ※ SOA - 소프트웨어를 구축할 때, 각각의 컴포넌트에 의해 처리되는 작업들을 잘 정의된 인터페이스를 가지는 서비스들로 도출한 후, 이를 연동/조합하여 시스템을 구축하는 형식

    즉 '서비스'와 '이를 조합하여 하나의 어플리케이션을 구축하는 것'이 중심

    ■ OSGi API - 구현체인 관계로 API는 동일하며 OSGi Alliance(http://www.osgi.org/Release5/Javadoc) 에서 서비스 한다. 현재 버전 5

     

    [펌] : http://pirrip.tistory.com/122

    http://mobicon.tistory.com/34

    http://cafe.naver.com/eclipseplugin/2278
    posted by cozyboy
    :
    기타 2013. 1. 4. 17:30

    An error has occurred. See the log file.

    메시지가 뜨며 이클립스가 켜지지 않는다.

    (workspace만 바꿨을 뿐인데, 갑자기 이랬음.)

     

     

    log 파일(workspace\.metadata\에 존재)을 확인하니

    org.eclipse.swt.SWTException: Invalid thread access ~

    쏼라쏴라 써있다.

     

    다양한 방법이 존재 하지만 전혀 해결되지 않았다.

     

    그중 cmd 에서 다음을 실행하여 해결

    eclipse -clean

                                                                                                          [해결]

     

    구글링에서 이 글이 많았는데 eclipse clean이라고만 써있었다.

    잘은 기억나지 않지만 리눅스 모드인가?

     

    암튼 "-" 추가 후 실행하여 이클립스가 재실행 되었다.

     

    posted by cozyboy
    :

    Juno 보단 Indigo이던가, 하위버전이 좋을 듯 하다.

    eclipsercp.org에서 샘플코드를 해보려고 하였으나, 안됨. 그냥 안됨.

    indigo로 바꾼 후, 바로 됨. 제길슨..


    rap 2.0은 Eclipse 3.8 and 4.2 (즉 Juno) 버전이다. indigo로 할시 아래 방법이 아니라 마켓에서 RAP로 검색 -> rap tools 1.4가 나온다. 이 후는 아래 과정과 같음.


    알아서 선택. 현재 공부하려는 rcp가 플러그인 형태로 나왔는데 Juno에선 안되서 Indigo로 바꿨더니. 이젠 rap가 버전이 낮음.


    공부만 indigo로 하고 개발은 Juno로 GO.

    =========================================================================

     

     

     


    • RCP 설치

    (Help -> Install New software 방식)

    각자 맞는 업데이트 사이트(http://download.eclipse.org/releases/juno)에서

    "General Purpose Tools" -> "Eclipse RCP" 와 "Eclipse RCP Plug-in Developer Resources", RCP SDK 를 설치

     

    아 기억이 안난... RCP 치면 대략 이거다 싶은거..

    (현재 이클립스에 Eclipse Platform, Eclipse Platform SDK, Eclipse RCp, Eclipse RCP Plug-in Developer Resources, Eclipse SDK 가 깔려 있다.)

     

    http://sarojaba.tistory.com/147   (영문 tutorial 싸이트를 보고 정리 해놓은 듯. 원문 존재)

    이곳에 방법과 간단한 튜토리얼이 잘 정리 되어있다.

     

     


     

    http://www.vogella.com/articles/EclipseRAP/article.html

    -> rap tutorial


    • RAP 설치(v2.0) - 마지막 릴리즈(v1.5)는 그냥 마켓에서 RAP 검색 후, 받으면 된다.

     

     

    rap 배포 사이트 : http://www.eclipse.org/rap/downloads/2.0/

     

    현재 마지막 릴리즈는 1.5지만 2.0릴리즈가 곧 이랜다.

    디밸로퍼 가이드가 존재하지만 2.0 설명은 컨+c 컨+v 만 해둔듯 하다. 봐도 되는데 보지 말자(지금은 정확하지 않다)

     

     

    순서는 다음과 같다. (Help -> Install New software 방식)

     

    • rcp와 workspace를 같이 쓰지 말자. target이 workspace에  깔리게 되어서 따로 사용하는 것이 편하다. 

     

    1. rap tools 설치 : http://download.eclipse.org/rt/rap/tools/2.0

    -> 이클립스 welcome 에 RAP 란이 생성된다. 클릭

     

    2. Install Target Platform 클릭

     :  window -> preferences -> plug-in Development -> target Platform 을 확인 해 보면 RAP 2.0 M4(Active)로 2.0 버전 설치되었다는 것을 확인할 수 있다.

     

    -> Latest stable build : 2.0 설치,

         Latest release : 1.5

    중 하나 를 선택해야 하는데  디폴트인 stable build로 설치

     


    rap tools : rap설치 하는데 필요한 target을 간편하게 다운받고 설정,

                    quick tutorial

                     rap를 run 할수 있도록 폼을 제공한다.  그러므로 순서대로 설치 하자

     

     

     

     

    관련 사이트들이 여러개 있지만 이곳이 일단 좋아 보입니다.

    스터디그룹에서 만든 피피티이며, 전체적인 맥락을 대략 알수 있을 듯합니다.

     

    http://hangumkj.blogspot.kr/search/label/Eclipse%20RCP%20study

     

    이곳저곳을 돌아다니며, 이 피피티 좋네 하던게 다 여기서 나온.

    아주 상세히 전부가 다 나온것은 아니라. 맥락 파악하기 좋은 것 같네요.

    posted by cozyboy
    :
    언어&플랫폼/Eclipse RCP&RAP 2012. 12. 27. 09:47

    이클립스 튜토리얼 동영상?:

    http://eclipsetutorial.sourceforge.net/

     

    워크벤치 비디오 강좌 ?(위와 일치하는.. 한글 번역) :

    http://translate.googleusercontent.com/translate_c?depth=1&ei=q-ncUJC4JIWuiQL8p4G4BA&hl=ko&langpair=en%7Cko&rurl=translate.google.co.kr&u=http://sourceforge.net/projects/eclipsetutorial/files/Eclipse%2520Workbench/Version%25201.0/&usg=ALkJrhg7f4RpXsQ2Z-ZZFEShNvypamtTRA

     

     

    rcp 정보:

    http://wiki.eclipse.org/RCP#Tutorials

     

    rcp open src 및 정보:

    http://eclipse.org/community/rcp.php

     

     

    jface api :

    http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjface%2Fviewers%2Fpackage-summary.html

     

    rcp 예제 Hyperbola(이클립스 RCP 책) - 메신저 클라이언트 애플리케이션 :

    http://eclipsercp.org/  (install software 로 이클립스에 설치도 가능)

     

     

    rcp turorial 한글 정리 : http://sarojaba.tistory.com/141

     

    RAP를 사용하여 RCP 애플리케이션을 웹 애플리케이션으로 변환하기 : http://www.ibm.com/developerworks/kr/wa-rcprap/index.html

     

    Download the RCP / RAP Single Sourcing guidelines :
    http://eclipsesource.com/en/info/rcp-rap-single-sourcing-guideline/?user=fjcsla%40naver.com&pass=123456ab&pid=197&logintype=login

     

    rcp와 rap 설명 ppt :

    http://www.slideshare.net/caniszczyk/single-sourcing-rcp-and-rap

     

     

    ================================================================================

    RCP 모든 tutorial(이게 정석인듯) :

    http://www.vogella.com/articles/EclipseRCP/article.html

     

    RCP 책 site :

    http://eclipsercp.org/

     

    이클립스 카페 (현재는 wiki 페이지를 만들어 운영중. 하지만 카페에도 좋은 정보들이 많다. 스터디 방법역시 같이 알수 있어서 좋음) :

    http://cafe.naver.com/eclipseplugin/



    http://eclipse.or.kr/wiki/%EC%A1%B0%EB%A6%AC%EB%B2%95:RCP_FAQ

    RCP 위키 - RCP 설명 (한글)


     

    posted by cozyboy
    :
    학습자료/보안 2012. 12. 7. 09:49

    방법1.

    익스 플로러 주소창에 다음과 같이 쓰면 된다.

    javascript:set=prompt("변경할 쿠키값을 입력하세요.","변경할 값 디폴트"); document.cookie="user_lv="+set+"; "; alert(document.cookie); allCookies=document.cookie.split(';'); alert("변경된 쿠키값\n\n:"+ allCookies[allCookies.length-1]);

    set=prompt("변경할 쿠키값을 입력하세요.","변경할 값 디폴트"); 

    --> 변경할 값을 텍스트 박스로 입력 받음

     

    document.cookie="user_lv="+set+"; ";

    --> 쿠키값에 "user_lv="+set+"; " 대입    (set은 위에서 입력한 값)

     

    alert(document.cookie);

    --> 알림창에 쿠키값을 보인다.

     

    alert("변경된 쿠키값\n\n:"+ allCookies[allCookies.length-1]);

    --> 정확히 따지면 변경된 쿠키값은 아니다.

     

    -------------------------------------------------------------------

    방법2.

    익스 플로러일시, F12키(개발자 도구)를 누른다.

    좌상단에 스크립트를 클릭

    우상단 콘솔이 존재한다. -> 우하단에 document.cookie 를 입력한다.

     

    위의 방법은 javascript를 해석할수 있는 브라우저라면 모두 된다. 왠만하면 다 될것이지만 익스플로어 라면 개발자 도구를 쓰는게 훨씬 더 편할 수 있다.

    -------------------------------------------------------------------

     

    예전엔 쿠키에 아이디 비번이 적혀있어서 악용 될때가 있었다고도 한다.

    현재는 장바구니에 많이 쓰임. 쿠키를 지우면 장바구니가 사라져 있을 것이다.

     

     

     

     

    http://www.tutorialspoint.com/

    에서 자바스크립트 간단히 배울 수 있음.

    '학습자료 > 보안' 카테고리의 다른 글

    Base 64 [펌]  (0) 2012.12.06
    posted by cozyboy
    :
    학습자료/보안 2012. 12. 6. 10:16

     

    요약 정리

    2의 6승(64), 6bit 씩이라는 의미 인듯하다.

    3개의 문자(8bit x 3 = 24bit)를 6bit로 잘라 4개의 문자로 만든다.  뒷부분의 0은 '='로 치환된다.

    그래서 가끔 해킹 배우는 사이트에서 뜬금없는 문자 끝에 '='이 붙어있고 이것을 디코드 하라고 하면 base64를 의심 해보자.

     

    ===========================================================================

     

    Base64

    : 바이너리나 압축파일과 같은 8비트 이진 데이터를 문자코드에 영향을 받지않는 공통 ASCII문자들로만 이루어진 문자열로 바꾸는 인코딩 방식을 말한다.

    64가지의 문자를 이용하여 바이너리 데이터를 ASCII텍스트 데이터로 표현하게 된다.


    즉, 64진법으로 인코딩하는 방식인데, 이는 64진법이 ASCII문자를 나타내기에 가장 적합한 숫자이기 때문이다.


    기본적으로는 A~Z (26개) + a~z (26개) + 0~9 (10개) = 총 62개의 문자로 구성되며, 나머지 2개에 어떤 기호를 사용하는지에 따라 base64의 종류가 결정된다. 대부분의 경우 +와 /가 쓰인다.


    8bit의 바이너리 데이터를 6bit의 크기를 단위로 표현하게 된다!

    즉, input은 1개의 문자크기인 8bit를 단위로 3개의 문자를 기본으로 하며 이것을 6bit단위로 표현하게 되므로 그에따른 output은 4개의 문자를 얻게된다는 것이다.

    따라서 24bit를 단위로 3개의 문자를 인코딩하면 4개의 문자를 얻게된다!


    그렇다면 만약 8bit의 데이터(문자 하나)를 input으로 base64암호화를 시킨다면 output은 어떻게될까?

    64진수수가 하나(6bit)가 출력되고 나머지 2bit는 padding문자로 채워지게된다.

    padding문자는 base64 table에 존재하지 않는 기호인 '='이다.


    위에서 언급했다시피, '='는 bit수를 맞춰주기위해 0으로 채워주는 padding이다.

    문자의 갯수가 3n+1개 일 때에는 '='이 2개로 채워질 것이고, 3n+2개 일 때에는 '='이 1개로 채워질것을 알 수 있다.


    간단하게 인코딩 방식을 그림으로 설명해보겠다.


    위에서 계속적으로 언급한대로 8비트의 문자세개를 6비트단위로 쪼갠 문자네개로 변환하는 것이다!

    기본 포맷이 24비트이므로 a를 input하면 첫글자 부분에 8bit인 01100001가 들어가고

    나머지 두글자 부분에는 0으로 채워지게 되며 이것을 6비트씩 잘라서 아스키부호로 표시하게 된다.

    뒷부분의 0들은 인코딩시 padding부호 '='로 나타나게된다.



    실제로 문자 a를 base64로 인코딩 해보았다.






    툴은 SND Reverser Tool을 사용하였다.

    위와 같이 1개(3n)의 문자열을 인코딩하면 padding문자가 2개 들어가는 것을 알 수 있다.


    다음은 ab를 인코딩해보았다.





    위와 같이 2개(3n+2)의 문자열을 인코딩하면 padding문자가 1개 들어가는 것을 알 수 있다.


    다음은 abc를 인코딩해보았다.




    3개(3n)이므로 padding문자 없이 모두 ASCII문자로 변환되는것을 알 수 있다.


    [Base64 문자표]

    문자

    문자

    문자

    문자

    0

    A

    16

    Q

    32

    g

    48

    w

    1

    B

    17

    R

    33

    h

    49

    x

    2

    C

    18

    S

    34

    i

    50

    y

    3

    D

    19

    T

    35

    j

    51

    z

    4

    E

    20

    U

    36

    k

    52

    0

    5

    F

    21

    V

    37

    l

    53

    1

    6

    G

    22

    W

    38

    m

    54

    2

    7

    H

    23

    X

    39

    n

    55

    3

    8

    I

    24

    Y

    40

    o

    56

    4

    9

    J

    25

    Z

    41

    p

    57

    5

    10

    K

    26

    a

    42

    q

    58

    6

    11

    L

    27

    b

    43

    r

    59

    7

    12

    M

    28

    c

    44

    s

    60

    8

    13

    N

    29

    d

    45

    t

    61

    9

    14

    O

    30

    e

    46

    u

    62

    +

    15

    P

    31

    f

    47

    v

    63

    /




    참고 사이트 : http://bbolmin.tistory.com/46

    http://blog.nextcube.pe.kr/204

     

    펌 : http://syung1104.blog.me/161866114

     

    '학습자료 > 보안' 카테고리의 다른 글

    쿠키 변경(익스플로러 사용)  (0) 2012.12.07
    posted by cozyboy
    :
    언어&플랫폼/Eclipse RCP&RAP 2012. 11. 22. 09:34

    [정리]

     

    • RCP

     - 클라이언트 어플리케이션(알송, 계산기, 메모장 등과 같은)을 만들 수 있는 플랫폼

     - 손쉽게 UI 프로그램을 할 수 있다는 말.

     

    • RAP(Rich ajax platform)

     - 아작스 기반 웹을 만들 수 있는 플랫폼

     - RCP와 소스가 대부분 같다. 클라이언트 어플리케이션을 거이 그대로 웹으로 사용 할 수 있다(한마디로 RCP로 짜고, 조금만 수정하면 웹으로도 돌릴수 있다는 말)

     

     

    • SWT(Standard widget toolket)

     - 자바 swing과 같이 UI 라이브러리

     - swing과 차이점 : swing은 jvm을 타서 픽셀을 만든다면, SWT는 JNI를 이용하여 운영체제와 연동하여 사용하여 더 빠르다

     - 최하위 UI 라이브러리

     

    • JFace

     - SWT를 조금더 사용하기 쉽게 wrapping한 라이브러리

     - SWT에서 버튼 4개에 exit 이벤트가 먹히면 보두 각기 다른 이벤트로 할당된다면, JFace에선 하나의 이벤트로 할당되는 식 

     

    • Workbench

     - UI 상위 계층으로 이클립스의 에디터들이 마음대로 띄어졌다 붙었다 하는것, 혹은 같은 종류의 화면을 옆에 두면 탭으로 보이게 되는 등의 frame을 제공

     - layout이라고 보면 될듯, 애매모호하면 그냥 이클립스 UI가 어떻게 동작하는지를 보면 될듯.

     

    • OSGI(Open Service Gateway Initiative)

     - 설치된 플러그인이 서로 협력하고 상호작용하게 엮어주는 역할을 한다

     - 이클립스 같은 경우 jar의 집합이라고 보면 될것같다. jar에는 class파일들이 있고, 그림 파일들도 존재한다. 그것도 매우 많이 존재하는데 그것들을 연결하여 사용할 수 있는 환경을 갖추어야 한다. 그 환경을 OSGi라는 것이 갖추어 준다.

     - 이클립스의 install update를 하면 이클립스의 모습이 변한다. 그런것들은 모두 플러그인 형태로 설치되는 것이며, 그것들을 관리한다.

     

    • Equnux

     - OSGi를 이클립스에 맞게 만든 프로젝트라고 생각하면 될듯.

     - 이클립스에 플러그인을 설치할때 보면, 다시 시작/나중에 시작 등의 옵션이 있었는데 요즘엔 바로 적용이 생긴것 같다. 예전엔 무조건 재시작했어야 했었는데(맞나? 기억이 잘..) 지금은 새로운 플러그인이 종료없이 바로 적용이 가능하다. 그런것들이 equnux 프로젝트에 속해 있다가 OSGI단으로 내려왔다.

     

     

     - 이클립스에서 OSGI나 Equnux도 모조리 플러그인(번들 이라고도하고 컴포넌트라고도 한다)이며 jar 파일로 존재한다. 이클립스는 플러그인의 조합인 것이다.

     

     

    ==========================================================

     

    Rich client platform

    RAP 프로젝트는 Eclipse 개발 모델을 사용함으로써 Rich Internet Application을 구현하는 것이다. 그렇다면 "Eclipse 개발 모델"이란 것은 정확히 무엇인가? RAP는 자바™ 라이브러리와 Eclipse API를 사용하여 브라우저 기반의 Ajax 애플리케이션을 구현할 수 있도록 한다. SWT, JFace, Eclipse 워크벤치의 웹 실행 구현을 제공함으로써 이를 수행한다.

     

     

    [RCP 구조]

     

    [eclipse 구조]

     

     

     

    Ajax(Asynchronous JavaScript and XML) : http://blog.naver.com/jhoh86?Redirect=Log&logNo=10133727118

     

    eclipse 설명 : http://www.ibm.com/developerworks/kr/library/os-eclipse-platform/

     

    rcp 설명 : http://eclipse.or.kr/wiki/RCP

    rcp turorial  : http://sarojaba.tistory.com/141

     

    RAP를 사용하여 RCP 애플리케이션을 웹 애플리케이션으로 변환하기 : http://www.ibm.com/developerworks/kr/wa-rcprap/index.html

     

    워크벤치

    http://eclipse.or.kr/wiki/%EC%9B%8C%ED%81%AC%EB%B2%A4%EC%B9%98

    http://eclipseplugin.springnote.com/pages/502172

    http://www.ibm.com/developerworks/kr/library/os-eclipse-master1/

    구조 : http://blog.naver.com/PostView.nhn?blogId=civan&logNo=150008237119&categoryNo=9&viewDate=&currentPage=1&listtype=0

     

    swing과 swt/jface 비교 설명 : http://zerolism.tistory.com/35

     

     

     

    +++++++ 이런것도 생겼구나.

    rsp(rich server platform) : http://www.eclipse.org/proposals/rsp/ 

     

    posted by cozyboy
    :
    학습자료/리눅스 2012. 11. 13. 17:31

    요약 - 리눅스의 proc 파일시스템은 프로세스의 정보뿐만 아니라 커널이 실행되면서 작성된 각종 정보들을 역시 파일로 관리하고 있다.

     

    간단한 내용이 아니니, 잘 정리하신 분들 글(joinic, ibm 글)을 봅자. 

     


    글의 일부

    기본적으로 proc 파일 시스템은 커널이 가지고 있는 여러가지 데이타 구조체를 시스템 사용자(프로그래머 혹은 시스템 관리자)에게 쉽게 전달하기 위해서 사용하는 목적으로 만들어져 있다. 이 /proc 파일시스템 을 이용하게 됨으로써 좀더 쉽게 각종 시스템 정보를 얻어올수 있으며, 여러가지 커널옵션을 특별한 프로그래밍 과정없이 단지 파일의 정보변경 만을 통해서 쉽게 변경할수 있도록 도와준다.

     

    파일 내용
    apm Advanced power management 정보
    bus bus 관련정보
    cmdline 커널 실행옵션
    cpuinfo 사용cpu 정보
    device 사용가능한 디바이스(블럭/문자 장치)
    dma 사용하고 있는 DMS 채널
    filesystems 지원되는 파일시스템
    driver/rtc 드라이버 정보
    execdomains execdomains, 보안과 관련
    fb 프레임버퍼 디바이스
    ide IDE 장치에 대한 정보 디렉토리
    interrupts 인터럽트 사용율
    iomem 메모리지도
    ioports 사용중인 입출력포트
    isapnp pnp 정보
    kcore 커널 core 이미지
    kmsg 커널메시지
    ksyms 커널 심볼 테이블
    loadavg 최근 1,5,15 분의 평균 load
    locks kernel locks 정보
    meminfo 메모리 정보
    misc 기타등등
    modules 실행중인(load) 모듈 목록, lsmod로 나오는 정보다
    mounts 마운트된 파일시스템 정보
    net 네트워킹 정보
    partitions 파티션 정보
    pci PCI 버스 정보
    scsi SCSI 정보
    slabinfo Slab pool 정보
    swaps swap 파일시스템 사용정보
    sysvipc SysVIPC 자원정보(메시지큐, 세마포어, 공유메모리등)
    tty tty 드라이버 정보
    uptime 시스템 가도시간
    version 커널버젼

     

     

     

    사이트

    http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/proc/GetSMSInfo

    http://www.ibm.com/developerworks/kr/library/l-proc.html#downloads

     

    '학습자료 > 리눅스' 카테고리의 다른 글

    extend a partition  (0) 2013.02.01
    rpm 명령어  (0) 2013.02.01
    [리눅스] 날짜 시간 변경, 동기화  (0) 2012.10.29
    개발자 vim 기초 + tip + plugin(tag list, ctags, 자동완성 기능)  (0) 2012.10.19
    [링크] systemctl  (0) 2012.09.21
    posted by cozyboy
    :
    학습자료/tools 2012. 10. 31. 11:05

    Function

    create : 새로운 Round Robin Database(RRD)를 만든다

    update : RRD에 새로운 값으로 갱신/저장한다.

    graph : Rrd에 저장된 데이터를 이용하여 그래프를 생성한다. 이 데이터는 stdout으로 추출할 수 있다.

    dump : rrd데이터를 다른 architecture의 컴퓨터에서도 사용 할 수 있도록 xml 포멧으로 변형하여 저장

    restore : xml 포멧으로 저장된 RRD를 binary RRD로 재저장 한다.

    fetch : rrd로부터 특정시간의 데이터를 얻을 수 있다. graph 기능이 rrd에서 데이터를 얻기 위해 fetch를 사용한다.

    tune : rrd를 고친다.

    last : RRD의 가장 마지막 update 시간을 찾는다.

    info : rrd에 대한 정보를 얻는다

    rrdresize : RRAs를 변경한다. 이것은 매우 위험하다

    flushcached : memory로부터 특정 RRD를 위한 값을 flush 한다.

    rrdcgi :

    xport :

    updatev :

     

     

    RRD 데이터 확인(명령어+결과)

    : rrdtool graph를 사용하지 않고 직접 그래프를 그려야 할때, 필요 하겠지

     

    rrdtool fetch cluster.rrd AVERAGE -r 900 -s -1h

    1351653000: 5.0396000000e+10 1.4584000000e+10 3.5812000000e+10 1.3936553333e+04 1.1113766667e+04 2.8227866667e+03 4.7611493333e+04 6.2746666667e+01 4.7548746667e+04
    1351653300: 5.0396000000e+10 1.4584000000e+10 3.5812000000e+10 5.3596386667e+04 4.3166866667e+04 1.0429520000e+04 5.0934720000e+04 2.7266666667e+01 5.0907453333e+04
    1351653600: 5.0396000000e+10 1.4584000000e+10 3.5812000000e+10 5.3679180000e+04 4.3181840000e+04 1.0497340000e+04 5.0096360000e+04 1.9086666667e+01 5.0077273333e+04

     

    rrdtool dump cluster.rrd > cluster.xml 

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE rrd SYSTEM "http://oss.oetiker.ch/rrdtool/rrdtool.dtd">
    <!-- Round Robin Database Dump --><rrd> <version> 0003 </version>
            <step> 10 </step> <!-- Seconds -->
            <lastupdate> 1351656486 </lastupdate> <!-- 2012-10-31 13:08:06 KST -->

            <ds>
                    <name> storage_total </name>
                    <type> GAUGE </type>
                    <minimal_heartbeat> 30 </minimal_heartbeat>
                    <min> NaN </min>
                    <max> NaN </max>

                    <!-- PDP Status -->
                    <last_ds> 50396000000 </last_ds>
                    <value> 3.0237600000e+11 </value>
                    <unknown_sec> 0 </unknown_sec>
            </ds>
                                            ...................

     

     

    참고 사이트 :

    http://oss.oetiker.ch/rrdtool/doc/rrdfetch.en.html

     

    링크 :

    전체적 정리 - http://blog.syszone.co.kr/590

    rrd4j(rrd Java Library document) - http://rrd4j.googlecode.com/svn/trunk/javadoc/reference/org/rrd4j/core/package-summary.html

     

    rrdturorial 번역? :

    http://blog.naver.com/PostView.nhn?blogId=monovision&logNo=140054589924&parentCategoryNo=2&viewDate=&currentPage=1&listtype=0

    posted by cozyboy
    :
    정리 2012. 10. 30. 16:57

    데이터 베이스 관련 정보 (빅데이터 등.)

    http://www.dbguide.net/index.db


    시스템 엔지니어 공동 관리 구역 -

    http://blog.syszone.co.kr/590

     

    c언처 강좌, str관련 함수 설명 -

    http://itguru.tistory.com/86

     

    각종 언어 및 플래폼.. 등등 배우기 좋은 사이트 -

    http://www.tutorialspoint.com/

     

    안랩, 리버스코어 사이트 -

    http://reversecore.com/category/study

     

    삼성소프트웨어멤버십 (IT 놀이터) -

    http://blog.secmem.org/category/IT%20놀이터?page=1


    스프링강좌 : 

    http://blog.daum.net/openeidos/8879784


    자바 스터디 카페 - 

    http://cafe.naver.com/javachobostudy.cafe

     

    리눅스 POSIX acl -

    http://users.suse.com/~agruen/acl/linux-acls/online/


    c++ 강좌 : 

    http://kks227.blog.me/60204917341

    '정리' 카테고리의 다른 글

    push server  (0) 2012.10.22
    뮤텍스와 세마포어  (0) 2012.03.12
    좋은 프로그래밍 습관(경쟁력을 갖춘 전문가의 작은 차이)  (0) 2012.01.13
    posted by cozyboy
    :
    학습자료/리눅스 2012. 10. 29. 14:09

    http://blog.naver.com/shw20319?Redirect=Log&logNo=20136369737

     

     

    시간확인  :

     date

     

    날짜/시간 변경 :
    > date 122213002000
    # 12월 22일 13시 00분 2000년


     

    시간 동기화 :

    rdate -s time.bora.net (시스템 시간 동기화) 

    clock -w (CMOS 시간에 적용)

     

    그냥 date, rdate, clock 명령어만 기억하고

    --help 옵이나 man page 보자.

     

    posted by cozyboy
    :
    언어&플랫폼/ruby 2012. 10. 26. 14:29

    주석 : #

     

    정수

    : 루비에서 정수는 Fixnum 또는 Bignum 클래스의 객체. Fixnum이 범위를 초과할 때마다, 그 객체는 자동으로 Bignum 객체로 변환된다. Bignum 객체의 범위는 사실상 사용할 수 있는 메모리에 달려있다.

     

     부동소수점

    : 1.e3라고 쓰면 Fixnum 클래스의 e3 메서드를 호출하는 것으로 인식하기 때문
    이다. 루비 1.8부터는 소수점 앞에도 반드시 숫자를 하나는 둬야 한다.           

    12.34 → 12.34
    -0.1234e2 → -12.34
    1234e-2 → 12.34

     

    문자열

    a = 123
    “\123mile“ → Smile
    “Say \“Hello\““ → Say “Hello“
    %Q!“I said ‘nuts‘,“ I said! → “I said ‘nuts‘,“ I said
    %Q{Try #{a + 1}, not #{a - 1}} → Try 124, not 122
    %<Try #{a + 1}, not #{a - 1}> → Try 124, not 122
    “Try #{a + 1}, not #{a - 1}“ → Try 124, not 122
    %{ #{ a = 1; b = 2; a + b } } → 3
     

    변수/메서드 이름의 모호성 (ruby 구조가 마냥 좋아 보이지만은 않다)

    클레멘스 한제(Clemens Hintze)가 올린 아래의 코드 조각은 모호성에 대한 다
    소 병적인 예제다.


    def a
        print “Function ‘a‘ called\n“
        99
    end
    for i in 1..2
        if i == 2
            print “a=“, a, “\n“
        else
            a = 1
            print “a=“, a, “\n“
        end
    end

     

    실행 결과:
    a=1
    Function ‘a‘ called
    a=99

    분석 중에 루비가 첫 번째 print 문에서 a를 만났을 때는, 아직 a에 대한 대입이
    일어난 적이 없기 때문에, 이는 메서드 호출이라고 가정한다. 잠시 후, 두 번째
    print 문에 다다랐을 때, 이때는 대입문을 이미 보았으므로, 이는 변수로 여긴다.

     

     

    class Methods:

    함수가 class difinition 밖에 정의되어 있다면 그것은 디폴트로 private이다.

    하지만 class Methods는 디폴트로 public이다.

     

     

    modules :

    장점 2가지

    1. namespace를 제공, 이름충돌을 막는다

    2. mixin 을 구현 할 수 있다.

     

    mixin - ruby는 다중 상속을 지원하지 않는다. 하지만 module을 사용하면 가능하다.

     

    모듈은 인스턴스를 가질 수 없다. 왜냐하면 모듈은 클래스가 아니기
    때문이다. 하지만, 클래스 선언에 모듈을 포함(include)할 수 있다. 모듈을 포함하면 이 모듈의 모든 인스턴스 메서드는 갑자기 클래스의 인스턴스 메서드처럼 동작하기 시작한다. 즉, 이 메서드가 클래스에 녹아서 섞여버린(mixed in) 것이다.
    믹스인 된 모듈은 실제로는 일종의 상위 클래스처럼 동작한다.

     

     

    집고 넘어 가자

    require : c나 c++의 include와 비슷하다. java의 import와 비슷하다. 3rd program에서 이미 정의된 module을 사용하고 싶을때 module file을 부르기위한 구문이다.

    require 'trig.rb'
    require 'moral' #moral.rb 파일(.rb를 쓰지 않아도 된다)


    include : class 안에서 module을 사용하고 싶을때 사용한다.

     

    1. c개발자의 include와는 다르다. c는 전처리기를 이용하여 코드내용을 추가 시키는 것이지만, ruby의 include는 단지 해당 모듈에 대한 참조를 만들 뿐이다.

     

    모듈이 작업중인 파일에 존재한다? : include 만 쓰면 된다.

    아니다?                                        : require 해야 한다.

    2.  include는 단순히 클래스에 모듈의 인스턴스 메서드를 복사하는 것이 아니
    다. 그 대신, include는 클래스에 포함될 모듈에 대한 참조를 만든다. 만일 여러 클래스가 하나의 모듈을 포함할 경우, 이 클래스들은 모두 같은 모듈을 참조하게 된다. 그리고 프로그램 실행할 때 그 모듈의 메서드 정의를 수정하면, 그 모듈을 include하는 모든 클래스는 새로운 동작을 수행할 것이다

    (메서드만 그렇다. 인스턴스 변수는 객체마다 고유)

     

     

     

    load도 있네.

    다른 파일을 포함하기 위해선

    load 'aaa.rb'

    require 'aaa.rb'

    require 'aaa' 로 할 수 있다.

     

    어디 어디 가면 두개의 차이점이 rb를 안써도 되냐 안되냐로 쓰여있었다.

     

    음.. 차이점이라고 하기 매우 무색하다.

    조금더 차이점이라 할 수 있는 것은 아래와 같다.

     

    load require 차이점

    load 메서드 -> 실행 될 때마다 해당 이름을 가진 루비 소스코드를 포함

    require -> 해당 파일을 한번만 로드한다.

     

     

    module - 조금 뒤에 나왔지만..

    module A
       def a1
       end
       def a2
       end
    end
    module B
       def b1
       end
       def b2
       end
    end
    
    class Sample
    include A
    include B
       def s1
       end
    end
    
    samp=Sample.new
    samp.a1
    samp.a2
    samp.b1
    samp.b2
    samp.s1
    

     

     

     

     

    상속

     

    [코드]

     

    class Test1
      a       = 3   #지역변수
      @aa   = 4   #인스턴스 변수. 초기화 되지 않는다(nil이됨 ). initialize로만 가능
      @@aaa = 7   #클래스 변수(같은 클래스 안에서만 전역변수)
     
      def initialize(a)   #자바 생성자와 같다.
        @aa = a
      end
     
      def say_hello(name, talk)
        puts "hi, #{name}. #{talk} "
      end
     
      def print_value
        a     = 4
        puts a, @aa, @@aaa  #함수안의 a만 부를 수 있다.
      end
     
    end

     

    class Test2 < Test1  #상속
      def initialize(a)
        super(a)          #자바를 아는가? 그것이다. 그러니까 Test1의 initialize

                              #를 호출한다.
      end 
     
    end

     

    t1 = Test1.new(7)

    t1.say_hello('cozy', 'i hate U')
    t1.print_value
    puts '--------------------------------'
    t2 = Test2.new(5)
    t2.print_value                              
    t2.say_hello('ya', 'ne moendea')

     

    [결과]

     

    hi, cozy. i hate U
    4
    7
    7
    --------------------------------
    4
    5
    7
    hi, ya. ne moendea

     

     

     

    계속..

     

     

     

    java Vs Ruby 다른점 간단히 써둔 ppt : http://www.slideshare.net/Belighted/ruby-vs-java

     

    posted by cozyboy
    :