Archive for the ‘IT’ Category

link : Automating at a Higher Level with Atomist – Jessica Kerr

2017/06/05

Jessica Kerr

https://www.infoq.com/presentations/atomist

[TIP] 윈도우 방화벽에 연결 허용 프로그램(java) 추가하기

2017/05/26

윈도우는 자체 방화벽 설정이 가능해서
활성화 시켜놓으면
네트웍을 사용하는 특정 프로그램을 실행할 경우, 허용여부를 물어보는 경우가 있습니다.

그런데, 설정에 따라서는 방화벽이 프로그램을 차단하려고 할때 이러한 알림을 보여주지 않도록 설정이 가능합니다.
이방식의 안좋은 점은 “허용되는 프로그램 및 기능” 항목에 아예 표시가 안된다는 거죠.

또한, 윈도우 전용 프로그램의 경우에는 해당 프로그램 실행파일을 직접 지정하면 되지만,
자바 프로그램의 경우, jar 파일이나 클래스가 아닌, 프로그램이 사용하는 java.exe 파일을 지정해야 합니다.

윈도우 방화벽에 네트워크 통신이 필요한 자바 프로그램 설정 변경 절차입니다.

1. 제어판 > Windows 방화벽 선택
Windows 방화벽 상태 : “설정” 확인 ( 설정되어 있지 않으면 이하 절차는 필요없습니다. )
2. “윈도우스 방화벽을 통해 앱 또는 기능 허용” 선택
3. “허용되는 프로그램 및 기능” 목록에 java가 등록되어 있는지 확인 : 보이면 체크, 안보이면 다음 진행
// java.exe 추가 작업
4. “다른 프로그램 허용” 선택
5. “프로그램 추가” 팝업에서 “찾아보기” 선택
6. java.exe 선택 후 “추가” 버튼 클릭 ( 실제 실행하는 java 버전의 경로를 지정해야 합니다. )
현재 연결되어 있는 네트워크 ( 개인 또는 공용) 에 체크 후 확인 클릭

[LINK] cron online test site crontab

2017/03/24

https://crontab.guru/

[Tip] gradle wrapper distributionurl setting

2017/03/23

gradlew 로 wrapper를 사용할때 불편한 점은,
자동으로 생성되는 gradle wrapper의 distributionUrl 이 gradle site repository로 설정되어 있어,
인터넷 접근이 안되는 경우,  로컬 또는 특정 경로로 매번 변경해주어야 한다는 점입니다.

이를 해결하는 방법은 두가지가 있습니다.
1) 이미 사용중인 경우, wrapper의 gradle-wrapper.properties 파일을 변경하는 방법
2) 신규일 경우, wrapper를 생성할때, 사내 repository로 설정되도록 만드는 방법

먼저, 내부 gradle distribution repository 가 있다고 가정할 경우  입니다.
(로컬일 경우, 로컬 디렉토리내 파일 경로를 지정해주면 됩니다. )

1) 에 따라 직접 properties 파일을 수정할 경우에는
project-home/gradle/wrapper/gradle-wrapper.properties 파일의 다음 내용을 수정하면 됩니다.
( 버전은 실제 사용할 버전으로 변경하세요.. )

distributionUrl=http\://XXX.X.X.X/gradle-3.4.1-bin.zip

2) 의 경우, wrapper 를 만들때 해당 정보로 만들어지도록 설정하는 경우입니다.
build.gradle 에 wrapper task 정보를 추가합니다.

task wrapper(type: Wrapper) {
gradleVersion = ‘3.4.1’ // 실제 사용할 버전으로 변경
distributionUrl = “http://X.X.X.X/gradle-${gradleVersion}-bin.zip”
}

다음 명령으로 gradle wrapper 를 생성합니다.

gradle wrapper
or
gradlew wrapper

./gradle/wrapper/gradle-wrapper.properties 내용을 보시면 변경된 것을 확인할 수 있습니다.

[참고]
https://docs.gradle.org/current/userguide/gradle_wrapper.html
https://docs.gradle.org/current/dsl/org.gradle.api.tasks.wrapper.Wrapper.html

[LINK] condep – infra provsioning for winwod (winrm)

2016/11/18

Infrastructure as Code

http://www.condep.io/

Berkley DB 관리

2016/11/04
DB_HOME=$ODEN_HOME/core/meta
1) db list up
java -jar berkelydb-4.0.103.jar DbDump -h $DB_HOME -l
2) db backup
java -jar berkelydb-4.0.103.jar DbDump -h DB_HOME -p -s RecordInfoDB -f RecordInfoDB.txt
3) db load
java -jar berkelydb-4.0.103.jar DbLoad -h DB_HOME -f recordInfoDB.txt -s RecordInfoDB
3) DbTruncateLog
# show log 
java -jar berkelydb-4.0.103.jar DbPrintLog -h $ODEN_META
java -jar berkelydb-4.0.103.jar DbTruncateLog -h $ODEN_META -f 0x0 -o 0x0 
java -jar berkelydb-4.0.103.jar DbPrintLog -h $ODEN_META
4) DB Verify
java -jar berkelydb-4.0.103.jar DbVerify -h DB_HOME -s RecordInfoDB

[FAQ] Gradle JUnit “Test reports were found but none of them are new. Did tests run?” in Jenkins

2016/10/24

when you run junit test in gradle script at jenkins build server,
you may getting the error “Test reports were found but none of them are new. Did tests run?”
thers is 3 solution to solve it. I prefer 3th solution.

  1. touch every xml files
    touch *.xml
  2. force run
    gradlew test –rerun-tasks
  3. cleanup your test results
    gradlew cleanTest test

reference : http://stackoverflow.com/questions/13879667/how-to-fix-test-reports-were-found-but-none-of-them-are-new-did-tests-run-in

선형 (binary, lbound, ubound)

2016/07/31

= binary
* (s+e)/2, A[]
start=0,end=6, match=7
binary(start,end,match){
while(e-s>=0){
m = (e+s)/2
if(A[m]==match){ return m+1; }
if(A[m]<match){ s = m+1; }
else{ e = m-1; }
}
}

= lower bound

start=0,end=e+1
lbound(start,end,match){
while(e-s>=0){
m = (s+e)/2
if(A[m]<match){ s = m+1 }
else{ e= m }
}
return e+1
}

= upper bound
start=0, end=e+1,match=7
ubound(start,end,match){
while(e-s>=0){
m = (e+s)/2
if(A[m]>match){ e = m }
else{ s = m+1}
}
return e+1
}

dfs 두더쥐

2016/07/31

graph[N][N], K, N
visited [N]

dfs(k){
for(i=1;i<=N;i++){
n = graph[k][i]
if(!visited[n] && n!=0 ){
visited[n] = true
dfs(n)
}
}
return
}

두더쥐
dfs_rat(a,b,c){
A[a][b] =c
if(safe(a+1,b) && A[a=1][b]==1) dfs_rat(a+1,b,c)
if(safe(a-1,b) && A[a-1][b]==1) dfs_rat(a-1,b,c)
if(safe(a,b+1) && A[a][b+1]==1) dfs_rat(a,b+1,c)
if(safe(a,b-1) && A[a][b-1]==1) dfs_rat(a,b-1,c)
}
boolean safe(a,b){
return a>=0 && a<N && b>=0 && b<N
}
for(i=0;i<N;i++){
for(j=0;j<N;j++){
if(A[i][j]==1){
cnt++;
dfs(i,j,cnt+1)
}

 

https://www.digitalculture.or.kr/koi/StudyOnline.do#

순열 perm

2016/07/30

배열수 N
순열로 조합할개수 K
시작 위치 depth=0

순열
1. 단계가 조합수에 다다르면,
1.2 출력후 리턴
2. 단계부터 배열수까지 방문
2.1 단계,방문점 배열값 변경
2.2 재귀호출 : 단계 증가
2.3 단계, 방문점 배열값 원복

perm(data,depth,N,K){
if (depth>=K){
print (data,K)
return
}
for (i=depth;i <N;i++){
swap (data, depth,i)
perm (data,depth+1,N,K)
swap (data,depth,i)
}
}