Odroid HC1(XU4)에 Jenkins 설치

Posted at 2019/02/03 23:42 // in Tips // by Daniel

Jenkins는 여러가지 일을 할 수 있습니다.
원격으로, 주기적으로, 룰에 따라 관리할 수 있는 집사입니다.

https://pkg.jenkins.io/debian-stable/

Odroid XU4 (HC1)에 Jenkins를 깔아봤습니다.
arm 기반이라 어려울 줄 알았는데 아니네요.

1. 키 받기

wget -q -O – https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add –

명령으로 키를 받습니다.

2. 패키지 저장소 등록

sudo vi /etc/apt/sources.list

명령으로 소스 추가합니다.

deb https://pkg.jenkins.io/debian-stable binary/

3, apt-get update 및 설치

sudo apt-get update sudo apt-get install jenkins
사용자 삽입 이미지
사용자 삽입 이미지

그 다음부턴 일반적인 젠킨스 설정입니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

멀어지지 않게, 멀리하자

Posted at 2019/01/09 12:12 // in Essay/DailyComment // by Daniel

디모데후서 2:16 쓸모없는 세상적인 것들을 이야기하는 사람들을 피하십시오. 그런 이야기들은 하나님으로부터 점점 더 멀어지게 할 뿐입니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

상황이 어려울 때 소망을 주시는 역설

Posted at 2018/11/02 06:53 // in Essay/DailyComment // by Daniel

2절 일을 행하시는 여호와, 그것을 만들며 성취하시는 여호와, 그의 이름을 여호와라 하는 이가 이와 같이 이르시도다 3절 너는 내게 부르짖으라 내가 네게 응답하겠고 네가 알지 못하는 크고 은밀한 일을 네게 보이리라

이 말씀은 예레미야가 갇혀있을 때, 가장 힘들 때 주신 말씀이다.

상황이 어려울 때 소망을 주시는 역설

크리에이티브 커먼즈 라이센스
Creative Commons License

어리석은 예언자

Posted at 2018/10/23 07:00 // in Essay/DailyComment // by Daniel

렘29:21절 만군의 여호와 이스라엘의 하나님께서 골라야의 아들 아합과 마아세야의 아들 시드기야에 대하여 이와 같이 말씀하시니라 그들은 내 이름으로 너희에게 거짓을 예언한 자라 보라 내가 그들을 바벨론의 왕 느부갓네살의 손에 넘기리니 그가 너희 눈 앞에서 그들을 죽일 것이라 22절 바벨론에 있는 유다의 모든 포로가 그들을 저줏거리로 삼아서 이르기를 여호와께서 너를 바벨론 왕이 불살라 죽인 시드기야와 아합 같게 하시기를 원하노라 하리니 23절 이는 그들이 이스라엘 중에서 어리석게 행하여이웃의 아내와 간음하며 내가 그들에게 명령하지 아니한 거짓을 내 이름으로 말함이라 나는 알고 있는 자로서 증인이니라 여호와의 말씀이니라 하시니라

어리석게 행하여..
예언자라는 사람이
이웃의 아내와 간음했고
하나님이 말씀하지 않은 말씀을 전했다.
그걸, 다른 사함은 몰랐을지라도 하나님은 아신다. “증인이니라.”
어리석은 예언자.

크리에이티브 커먼즈 라이센스
Creative Commons License

그립다

Posted at 2018/04/18 01:11 // in Essay // by Daniel

머리이신 예수님을 따른다는 것은 무엇일까? 소중한 사실의 두가지 예로 말하자면,

주기철 목사님이 마지막으로 석방되어 나오셨을 때 신사참배에 반대하여 신앙의 순결을 지켰던 사람들이 신사참배한 교단과 교회를 비판하며 새로운 교단을 세우자고 찾아왔단다. 그때 주기철목사님은 아직 그럴 만한 때가 아니며 그것은 우리의 소관이 아니라는 맥빠진 답을 주셨다고 한다.

손양원목사님께서 신사참배를 반대하여 감옥살이를 하시고 해방 후에 석방되셨을 때 신사참배에 반대했던 성도들이 모여 신사참배를 타협했던 교회들을 비판했을 때 손양원목사님은 이런 답을 주셨다고 한다. “우리는 몸은 수고스러웠으나 마음은 얼마나 평안했습니까? 하지만 그분들은 몸은 편했을 지언정 마음이 쉼없이 괴로웠을 테니 우리는 이를 살펴야 합니다.”

http://nomad2012.egloos.com/m/1169992

크리에이티브 커먼즈 라이센스
Creative Commons License

주님밖에

Posted at 2018/03/27 01:49 // in Essay // by Daniel

내가 이같이 우매무지하니 주 앞에 짐승이오나
내가 항상 주와 함께하므로 주께서 나의 오른손을 붙드셨나이다.
주의 교훈으로 나를 인도하시고
후에는 영광으로 나를 영접하시리니
하늘에서는 주 외에 누가 내게 있으리요
땅에서는 주 밖에 나의 사모할 자 없나이다
내 육신과 심장은 쇠잔하나
하나님은 나의 반석이시요
나의 영원한 분깃이시라
대저 주를 떠난 자는 망하리니
음녀같이 주를 떠난 자를 주께서 다 멸하셨나이다.
하나님을 가까이함이 내게 복이라
주 여호와를 나의 피난처로 삼아
주의 행사를 항상 전파하리이다

하나님을 가까이 함이 내게 복이라
하나님을 가까이 함이 내게 복이라

갈급한 요즘, 자주 생각나는 말씀입니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

Apache POI의 엑셀 Formula에BIN2HEX HEX2BIN 지원 추가하기

Posted at 2018/01/10 15:04 // in Programming // by Daniel

POI의 엑셀 Formula 중에, BIN2HEX HEX2BIN 이 지원되지 않았습니다.
이를 커스텀으로 추가하려고 코드를 짜봤습니다.


package com.autron.odin.excel.core.ethercc.imports;

import org.apache.poi.ss.formula.OperationEvaluationContext;
import org.apache.poi.ss.formula.eval.ErrorEval;
import org.apache.poi.ss.formula.eval.EvaluationException;
import org.apache.poi.ss.formula.eval.OperandResolver;
import org.apache.poi.ss.formula.eval.StringEval;
import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.formula.functions.FreeRefFunction;

/** *

 * com.autron.odin.excel.core.ethercc.imports
 *   |_ Hex2Bin.java
 * 
 * Description:    to support formula HEX2BIN
 * Howto Use : AnalysisToolPak.registerFunction("HEX2BIN", Hex2Bin.instance);
 * 
* Company: Hyundai Autron * Author: JSSONG * Date: 2018. 1. 10. * * version *
 * Revision History:  
 * Version No:  Date of update:    Updated by:  Changes
 * 1.0.0   		2018. 1. 10.        JSSONG       refs #10669 #11020 to support formula HEX2BIN
 * 
*/
class Hex2Bin implements FreeRefFunction { public static final FreeRefFunction instance = new Hex2Bin(); /* (non-Javadoc) * see org.apache.poi.ss.formula.functions.FreeRefFunction#evaluate(org.apache.poi.ss.formula.eval.ValueEval[], org.apache.poi.ss.formula.OperationEvaluationContext) */ Override public ValueEval evaluate(ValueEval[] paramArrayOfValueEval, OperationEvaluationContext paramOperationEvaluationContext) { return evaluateHex2Bin(paramArrayOfValueEval); }

/** * Desc : evaluate HEX2BIN * HEX2BIN * 16진수를 2진수로 변환합니다. * – number 필수 요소입니다. 변환할 16진수입니다. * number는 최대 10자까지 사용할 수 있습니다. * number의 최상위 비트는 부호 비트(오른쪽에서 40번째 비트)이고, 나머지 9비트는 값을 나타내는 비트입니다. * 음수는 2의 보수 표기법으로 표시됩니다. * – places 선택 요소입니다. * 사용할 자릿수입니다. * places를 생략하면 HEX2BIN에서는 필요한 최소 자릿수가 사용됩니다. * places를 지정하면 반환 값의 앞부분을 0으로 채울 수 있습니다. * * Method Name : evaluateHex2Bin * param paramArrayOfValueEval * @return evaluated StringEval(BIN value) or ErrorEval.VALUE_INVALID */ private ValueEval evaluateHex2Bin(ValueEval[] paramArrayOfValueEval) { String strHex = “”; int places = -1; if (paramArrayOfValueEval.length==1) { strHex = OperandResolver.coerceValueToString(paramArrayOfValueEval0); } if (paramArrayOfValueEval.length==2) { strHex = OperandResolver.coerceValueToString(paramArrayOfValueEval0); try { places = OperandResolver.coerceValueToInt(paramArrayOfValueEval1); } catch (EvaluationException e) { e.printStackTrace(); } } try { String binStr = Integer.toString(Integer.parseInt(strHex, 16),2); if (places>0) { if (places > binStr.length()) { int num0 = places – binStr.length(); String str0 = “”; for (;num0>0;num0—) { str0 += “0”; } binStr = str0 + binStr; } } // System.out.println(strHex + “ “ + places + “ -> “ + binStr); return new StringEval(binStr); } catch (Exception e) { return ErrorEval.VALUE_INVALID; } }
}


package com.autron.odin.excel.core.ethercc.imports;

import org.apache.poi.ss.formula.OperationEvaluationContext;
import org.apache.poi.ss.formula.eval.ErrorEval;
import org.apache.poi.ss.formula.eval.EvaluationException;
import org.apache.poi.ss.formula.eval.OperandResolver;
import org.apache.poi.ss.formula.eval.StringEval;
import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.formula.functions.FreeRefFunction;

/** *

 * com.autron.odin.excel.core.ethercc.imports
 *   |_ Bin2Hex.java
 * 
 * Description:    to support formula BIN2HEX.
 * Howto Use : AnalysisToolPak.registerFunction("BIN2HEX", Bin2Hex.instance);
 * 
* Company: Hyundai Autron * Author: JSSONG * Date: 2018. 1. 10. * * version *
 * Revision History:  
 * Version No:  Date of update:    Updated by:  Changes
 * 1.0.0   		2018. 1. 10.        JSSONG       refs #10669 #11020 to support formula BIN2HEX
 * 
*/
class Bin2Hex implements FreeRefFunction { public static final FreeRefFunction instance = new Bin2Hex(); /** * Desc : Private Constructor of Bin2Hex.java class */ private Bin2Hex() { // make it private } /** * Desc : * Method Name : evaluate * param paramArrayOfValueEval * param paramOperationEvaluationContext * return */ @Override public ValueEval evaluate(ValueEval[] paramArrayOfValueEval, OperationEvaluationContext paramOperationEvaluationContext) {
// System.out.println(“BIN2HEX “ + paramArrayOfValueEval + paramOperationEvaluationContext); return evaluateBin2Hex(paramArrayOfValueEval); }

/** * Desc : evaluate BIN2HEX * Method Name : evaluateBin2Hex * BIN2HEX(number, [places]) * - number 필수 요소입니다. 변환할 2진수입니다. * number는 최대 10자(10비트)까지 사용할 수 있습니다. 최상위 비트는 부호 비트이고 나머지 9비트는 값을 * 나타내는 비트입니다. 음수는 2의 보수 표기법으로 표시됩니다. * - places 선택 요소입니다. 사용할 자릿수입니다. * places를 생략하면 필요한 최소 자릿수가 사용됩니다. places를 지정하면 반환 값의 앞부분을 0으로 채울 수 * 있습니다. * param paramArrayOfValueEval * @return evaluated StringEval(HEX value) or ErrorEval.VALUE_INVALID */ private ValueEval evaluateBin2Hex(ValueEval[] paramArrayOfValueEval) { String strBin = “”; int places = -1; if (paramArrayOfValueEval.length==1) { strBin = OperandResolver.coerceValueToString(paramArrayOfValueEval0); } if (paramArrayOfValueEval.length==2) { strBin = OperandResolver.coerceValueToString(paramArrayOfValueEval0); try { places = OperandResolver.coerceValueToInt(paramArrayOfValueEval1); } catch (EvaluationException e) { e.printStackTrace(); } } try { String hexStr = Integer.toString(Integer.parseInt(strBin, 2),16); if (places>0) { if (places > hexStr.length()) { int num0 = places – hexStr.length(); String str0 = “”; for (;num0>0;num0—) { str0 += “0”; } hexStr = str0 + hexStr; } } // System.out.println(strBin + “ “ + places + “ -> “ + hexStr); return new StringEval(hexStr); } catch (Exception e) { return ErrorEval.VALUE_INVALID; } } }

사용법은 위 클래스를 추가하고 런타임에

AnalysisToolPak.registerFunction("BIN2HEX", Bin2Hex.instance);
AnalysisToolPak.registerFunction("HEX2BIN", Hex2Bin.instance);

코드를 호출하면 됩니다.
이외에도 지원안되는 함수가 많이 있습니다.

제 사용 예는 아래와 같습니다.


// Register BIN2HEX Formula
AnalysisToolPak.registerFunction(“BIN2HEX”, Bin2Hex.instance);

// Register HEX2BIN formula
AnalysisToolPak.registerFunction(“HEX2BIN”, Hex2Bin.instance);

evaluator = wb.getCreationHelper().createFormulaEvaluator();
evaluator.evaluateAll();

wb는 org.apache.poi.ss.usermodel.Workbook 타입입니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

믿음 소망 사랑. 소망

Posted at 2017/07/14 12:58 // in Essay // by Daniel

소망.

(잠 23:18) 정녕히 네 장래가 있겠고 네 소망이 끊어지지 아니하리라
(잠 24:14) 지혜가 네 영혼에게 이와 같은 줄을 알라 이것을 얻으면 정녕히 네 장래가 있겠고 네 소망이 끊어지지 아니하리라

(롬 15:12~13) 또 이사야가 이르되 이새의 뿌리 곧 열방을 다스리기 위하여 일어나시는 이가 있으리니 열방이 그에게 소망을 두리라 하였느니라
소망의 하나님이 모든 기쁨과 평강을 믿음 안에서 너희에게 충만하게 하사 성령의 능력으로 소망이 넘치게 하시기를 원하노라

(엡 1:18) 너희 마음의 눈을 밝히사 그의 부르심의 소망이 무엇이며 성도 안에서 그 기업의 영광의 풍성함이 무엇이며

(살전 2:19) 우리의 소망이나 기쁨이나 자랑의 면류관이 무엇이냐 그가 강림하실 때 우리 주 예수 앞에 너희가 아니냐

(살전 5:8) 우리는 낮에 속하였으니 정신을 차리고 믿음과 사랑의 호심경을 붙이고 구원의 소망의 투구를 쓰자

(딤전 4:10) 이를 위하여 우리가 수고하고 힘쓰는 것은 우리 소망을 살아 계신 하나님께 둠이니 곧 모든 사람 특히 믿는 자들의 구주시라

(롬 5:4) 인내는 연단을, 연단은 소망을 이루는 줄 앎이로다

(롬 8:24) 우리가 소망으로 구원을 얻었으매 보이는 소망이 소망이 아니니 보는 것을 누가 바라리요

(롬 12:12) 소망 중에 즐거워하며 환난 중에 참으며 기도에 항상 힘쓰며

(롬 15:4) 무엇이든지 전에 기록된 바는 우리의 교훈을 위하여 기록된 것이니 우리로 하여금 인내로 또는 성경의 위로로 소망을 가지게 함이니라

소망을 가지려면...
성경의 위로가 필요하다.

그 소망은 결국 우리의 구원에 대한 소망인가보다.
연단이 소망을 이루게 한다.. 고로 많은 참음과 고난이 있겠구나...
그리고 그 소망은 하나님이 주신다. 성령의 능력으로 기쁨과 평안 -> 소망

크리에이티브 커먼즈 라이센스
Creative Commons License

opal - SWT 위에서 아기자기한 위젯들

Posted at 2017/02/14 16:59 // in Programming // by Daniel

https://github.com/lcaron/opal

여기 가면 있다.
원래 nebula 말고 다른 위젯이 있나 찾아보고있었는데
이런 것도 있더군.

https://github.com/lcaron/opal/blob/releases/V1.0.4/opal-1.0.4-src.zip?raw=true
를 다운 받는다면 test 폴더에 각 위젯들을 테스트한 코드가 들어있다.
로그인창 부터 프로퍼티 테이블, blur 패널, notification 등등 자그만 위젯들이 많다.

사용자 삽입 이미지

사용자 삽입 이미지
사용자 삽입 이미지

하나씩 실행해보면 알 수 있다.

크리에이티브 커먼즈 라이센스
Creative Commons License

cmd(배치) 스크립트, 파일명을 변수로 쓰기

Posted at 2017/02/14 16:20 // in Tips // by Daniel

SetLocal EnableDelayedExpansion
echo off
for /r %%f in (myfiles.*) do (
REM echo %%~nxf
set filename=%%~nxf
@echo !filename!
)
echo on

위와 같이 하면 된다.
참고)
http://stackoverflow.com/questions/1556 ··· variable

크리에이티브 커먼즈 라이센스
Creative Commons License
1 2 3 4 5 6 ... 77