2012년 8월 2일 목요일

jenkins 설치 및 upgrade


====== Jenkins Installation ======
- 서버에 패키지 키값을 추가한다.
$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
- source list에 jenkins의 주소를 추가한다.
$ sudo echo "deb http://pkg.jenkins-ci.org/debian binary/" > /etc/apt/sources.list.d/jenkins.list

위 코드로 추가가 안될시 위 폴더위치에 vim으로 새로 파일을 만들어서 추가시켜준다.

- 다음 아래와 같은 설치 작업을 진행한다.
$ sudo aptitude update
$ sudo aptitude install -y jenkins

- 이제 아파치와 젠킨스를 새로 시작해준다.
$ sudo /etc/init.d/apache2 restart
$ sudo /etc/init.d/jenkins restart

위와 같이 설치하면 default로 젠킨스가 설치완료된다.

====== Jenkins update ======
- 최신의 Jenkins를 다운 받는다(http://mirrors.jenkins-ci.org/war/latest/jenkins.war)
- 해당 파일을 기존에 설치된 jenkins.war 파일과 교체한다. 위에 설치 과정대로 작업을 진행했으면 /usr/share/jenkins 위치에 파일이 존재한다.
- apache2의 demon을 stop 후 jenkins를 restart한다. 그후 apache2를 start 해주면 된다.
- jenkins에 접속하여 버전을 확인한다.

====== 추가 설정 작업 ======
* 기존에 설정된 기본셋팅값을 변경할경우
* /etc/default/jenkins 여기에 파일의 값을 변경하면된다.( 예 포트번호 or 새로운 prefix 등)
* 위의 값을 변경하고 jenkins를 restart해준다.

===== plug-in =====
* Jenkins Active Directory plugin : https://wiki.jenkins-ci.org/display/JENKINS/Active+Directory+plugin
* Jenkins Parameterized Trigger plugin : https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin
* Jenkins GIT plugin : https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
* Gerrit Trigger : https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger
* Jenkins REPO plugin : https://wiki.jenkins-ci.org/display/JENKINS/Repo+Plugin
* LDAP Email Plugin : https://wiki.jenkins-ci.org/display/JENKINS/LDAP+Email+Plugin
* Jenkins SSH plugin : https://wiki.jenkins-ci.org/display/JENKINS/SSH+plugin
* Jenkins SSH Slaves plugin : https://wiki.jenkins-ci.org/display/JENKINS/SSH+Slaves+plugin

터보란 ?


[출처] http://www.navi4u.com/bbs/view.php?id=lecture&no=93
copyleft navi4u.com

둥굴레차의 효능


녹차와 함께 가장 널리 애용되는 차의 하나이다.
구수한 맛으로 인해 물처럼 마시는 경우도 많다.
둥굴레는 신선들이 먹는 음식이라 했을 만큼 좋은 향과 효능을 가지고 있다.
둥글레는 한방에서는 옥죽이라 불리는 약초로 음을 보하는 보약의 한 종류이다.
효능은 습한 성질이 있어 기관지나 폐, 인후가 건조하여 생기는 마른 기침을 없애주고, 음기를 보충하여 노인성 해수를 방지해 준다.
그리고 진액(몸안의 정상적인 체액)을 생성하게 함으로써 입안이 건조하여 갈증이 나는 것을 방지하고 위에 작용하여 공복감, 즉 허기를 많이 느끼는 것을 없애준다..그래서 다이어트에도 좋은 식품으로 알려져있다. 인삼과 달리 체질에 크게 상관없이 섭취할 수 있다.
한방의서에서는 "둥글레는 맛이 달고 성질은 차다(혹은 독이 없고 성질이 평하다). 그리고 폐와 비(소화기계통)로 들어가서, 위음을 돕고, 폐를 윤택하게 하고, 몸의 진액을 생기게 하고 위장을 도와주는 작용을 한다"고 적혀 있다
남녀를 불문하고 허약증상을 호소하면서 팔, 다리가 쑤신다거나 원인 모르게 식은땀과 열이 나며, 입안이 마르면서 갈증이 있고 소변을 붉게 보면서 시원함을 느끼지 못하는 경우에 둥굴레차를 꾸준히 복용하면 탁월한 효과를 볼 수 있다고 한다.

요즘엔 남성 정력, 피부미용, 노화방지, 변비 등에 좋다고 해서 많이들 이용하고 있다.

약리학적으로 둥글레는 혈압과 심장, 혈당에 주로 작용한다.
혈당이 높을 때 지속적으로 복용을 하면 혈당을 낮추는 작용을 한다.
둥글레는 허약체질, 폐결핵, 마른기침 그리고 당뇨병, 갈증, 그리고 심장을 튼튼하게 하여 심장쇠약, 협심증 등 심장질환이 있는 사람에게 좋다.
또 위로 들어가 위, 십이지장궤양이 있는 사람도 꾸준히 먹으면 속이 편안해짐을 느낄 수 있다.
식은땀과 원인 모르게 얼굴로 열이 오르면서 가슴이 답답하거나 수족에 열감이 있어 갑갑하게 느껴지는 사람, 노화방지에도 좋은 식품으로 볼 수 있다.

또 둥굴레는 고유의 성질과 효능이 강하기 때문에 옥수수나 보리 등과 함께 끓이는 것보다 하나만 끓여먹는 것이 맛과 효능을 더욱 살리는 비결입니다.^^

이상 둥굴레차에 대해 살펴보았습니다. 참고로 재배산보다는 야생 토종이 좋겠지요. 이중 사람들이 지리산 야생 것이 좋다고 하오니 '지리산둥굴레' 나 아님 다른 야생둥글레라도 구해 차로 끓여마셔서 건강을 챙겼으면 합니다.

Pywinauto

===== Installation =====
* Pydwinauto의 압축을 푼 경로에서 Python을 실행한다.
* 아래의 코드를 실행한다.
$ setpu.py install
* 아래의 Test Code를 돌려본다.
>>> from pywinauto import application
>>> app = application.Application.start("notepad.exe")
>>> app.notepad.TypeKeys("%FX")

===== Getting Start =====
* Syntax에 관련된 내용은 Pywinauto Documentation에 잘 기술되어 있다.
(그러나 잘 찾아보기 힘들게 되어있다. Documantation과 Googling을 적절히 복합적으로 활용해야한다.

* 주의 사항
* 실행되는 Application의 Control ID와 class등을 알고 있으면 code의 작성이 좀 더 수월해 진다.
* Windows Eng version과 Windows Kor version에 따라 달라진다.
* 창의 제목이 한글일경우 ** #-*-coding: utf-8 -*- ** 를 코드 맨 앞에 적용해준다.

dlg = app.YourDialogTitle
dlg = app.ChildWindow(title = "your title", classname = "your class", ...)
dlg = app['Your Dialog Title']

ctrl = dlg.YourControlTitle
ctrl = dlg.ChildWindow(title = "Your control", classname = "Button", ...)
ctrl = dlg["Your control"]

===== Example =====
* 아래 코드는 윈도우즈에 기본적으로 내장되어 있는 메모장(Notepad)를 컨트롤 하는 코드이다.

#-*-coding: utf-8 -*-
import time

from pywinauto import *


app = application.Application()
app.start_("Notepad.exe")
app[u'Notepad'].Wait('ready')

app[u'Notepad'].MenuSelect((u'파일(&F)->열기(&O)'))
open = app.window_(title_re =u"열기")

open['Edit'].TypeKeys(u'D:\\test.txt')
open['Edit'].TypeKeys(u'{ENTER}')

* 더 많은 코드는 pywinauto의 압축 파일 내에 example 폴더 안에 있다.

=====Reference=====
* [[http://code.google.com/p/pywinauto/|Pywinauto Official Site]]
* [[http://pywinauto.googlecode.com/hg/pywinauto/docs/contents.html|Pywinauto Documentation]]

2012년 8월 1일 수요일

python의 기본 자료 및 변수타입

Python은 동적으로 변수의 타입을 설정한다 따라서 기존 언어들 처럼 타입을 선언 할 필요가 없다.
[x:y] => x ≤ a < y
* 문자열 타입(String Type)
* **a.upper()** : 문자열 a의 모든 문자를 대문자로 바꾸어 준다.
* **a.lower()** : 문자열 a를 모두 소문자로 바꾸어 준다.
* **a.count(x)** : 문자열 a에서 x와 동일한 문자의 수를 반환한다.
* **a.find(x)** : 문자열 a에서 x와 동일한 문자가 처음 등장하는 위치를 반환, ** 없으면 -1을 반환 **
* **a.index(x)** : 문자열 a에서 x와 동일한 문자가 처음 등장하는 위치를 반환, ** 없으면 에러 **
* **a.join(s)** : s라는 문자열의 각각의 요소 문자사이에 문자열 a를 삽입한다.
* **a.lstrip()** : 왼쪽 공백 모두 제거
* **a.rstrip()** : 오른쪽 공백 모두 제거
* **a.strip()** : 양쪽 모든 공백 제거
* **a.replace(s, r)** : 문자열 a의 s라는 문자열을 r이라는 문자열로 변경한다.
* **a.split([s])** : 문자열 a를 공백으로 나누어 리스트값을 돌려준다.
* **a.swapcase()** : 문자열 a의 대문자는 소문자로, 소문자는 대문자로 각각 바꾸어 준다.


참고 - 여기서 a[1] = ['a', 'b', 'c']라고 하는 것과는 전혀 다른 결과값을 갖게
되므로 주의 하도록 하자. a[1] = ['a', 'b', 'c']는 리스트 a의 두 번째 요소를
['a', 'b', 'c']로 바꾼다는 말이고 a[1:2]는 a[1]에서 a[2]사이의 리스트를 ['a',
'b', 'c']로 바꾼다는 말이다. 따라서 a[1] = ['a', 'b', 'c']처럼 하면 위와는 달리
리스트 a가 [1, ['a', 'b', 'c'], 4]라는 값으로 변하게 된다.


**딕셔너리 함수**
* a.keys() 딕셔너리 a의 Key들을 모아놓은 리스트를 돌려준다.
* a.values()딕셔너리 a의 Value들을 모아놓은 리스트를 돌려준다.
* a.items() 딕셔너리 a의 (Key, Value)쌍의 터플을 모아놓은리스트를 돌려준다.
* a.clear() 딕셔너리 a의 모든 Key:Value 쌍들을 삭제한다.
* a.get(x) 딕셔너리 a의 Key가 x인 것의 Value를 돌려준다.
* a.has_key(x) 딕셔너리 a에 x라는 Key가 있는지 조사하여 참,거짓을 돌려준다.

**문자열 함수**
* a.upper() 문자열 a를 모두 대문자로 바꾸어 준다.
* a.count(x) 문자열 a중 x와 일치하는 것의 갯수를 반환한다.
* a.find(x) 문자열 a중 문자 x가 처음으로 나온 위치를 반환한다. 없으면 -1을 반환한다.
* a.index(x) 문자열 a중 문자 x가 처음으로 나온 위치를 반환한다. 없으면 에러를 발생시킨다.
* a.join(s) s라는 문자열의 각각의 요소 문자사이에 문자열 a를 삽입한다.
* a.lower() 문자열 a를 모두 소문자로 바꾸어 준다.
* a.lstrip() 문자열 a의 왼쪽 공백을 모두 지운다.
* a.rstrip() 문자열 a의 오른쪽 공백을 모두 지운다.
* a.strip() 문자열 a의 양쪽 공백을 모두 지운다.
* a.replace(s, r) 문자열 a의 s라는 문자열을 r이라는 문자열로 치환한다.
* a.split([s]) 문자열 a를 공백으로 나누어 리스트값을 돌려준다.
* a.swapcase() 문자열 a의 대문자는 소문자로, 소문자는 대문자로 각각 바꾸어 준다.

**리스트 함수**
* a.append(x) 리스트 a의 마지막에 x추가
* a.sort() 리스트 a를 정렬
* a.reverse() 리스트 a의 순서를 거꾸로 만든다.
* a.index(x) 리스트 a에서 x를 찾아서 그 위치 반환
* a.insert(i, x) 리스트 a에서 i 위치에 x 삽입
* a.remove(x) 리스트 a에서 처음 나오는 x 삭제
* a.pop()리스트 a의 맨 마지막 요소 반환하고 마지막 요소 삭제
* a.count(x) 리스트 a 안에 x가 몇 개 있는지를 반환
* a.extend(x) 리스트 a에 리스트 x를 더함(확장)