그립다

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

SVN 미러링 배치파일 스크립트

Posted at 2016/12/08 11:36 // in Tips/Utility programs // by Daniel
pushd .
set MIRROR_DRIVE=D:
set MIRROR_PATH=d:\work\mirror\
set MIRROR_PATH_UNIX=file:///D:/work/mirror/
set MIRRORED_REP_NAME=mirrored_svn1
set ORIG_SVN_PATH=https://svnserver.com/C00017_rep/abc/
set SVN_USER=myname
set LOG_PATH=d:\temp\svn_mirrored_svn1.log

REM 1. create
%MIRROR_DRIVE%
cd %MIRROR_PATH%
svnadmin create %MIRRORED_REP_NAME%
echo exit > MIRRORED_REP_NAME%\hooks\pre-revprop-change.bat
REM 2. init mirror repository
svnsync init --username %SVN_USER% %MIRROR_PATH_UNIX%%MIRRORED_REP_NAME% %ORIG_SVN_PATH%

REM 3. sync
svnsync sync --username %SVN_USER% %MIRROR_PATH_UNIX%%MIRRORED_REP_NAME% %ORIG_SVN_PATH% >> %LOG_PATH%

popd
한번 1, 2, 3 실행하면 미러가 만들어지고
이후부터는 3만 실행하면 됨.
자기 상황에 따라 set... 부분들을 적절히 수정하면 된다. lock 관련 에러가 뜰 경우 --steal-lock 옵션을 추가한다.
크리에이티브 커먼즈 라이센스
Creative Commons License

ubuntu에서 전원 사용 보기 및 사운드 끄기

Posted at 2016/03/14 14:14 // in Tips // by Daniel

powertop 이란 프로그램으로 파워 체크 가능.
내 넷북에선 사운드 관련 파트가 돌고 있어서 전원을 더 소모하는 것 같다.
sudo apt-get install powertop

http://xenostudy.tistory.com/380
상기 링크 참조.
http://askubuntu.com/questions/91359/100-0-usage-by-audio-codec-hwc0d0-realtek

끄는 방법은

저희는 홈서버로 사용할것이기때문에 오디오가 필요없습니다.
해당 모듈을 삭제합니다.

/etc/modprobe.d/blacklist.conf
위의 파일에서.. – snd_hda_codec – snd_hda_intel
두개의 모듈을 추가하고 재부팅하면, powertop 에서 audio 관련 내용이 사라져있는것을 확인할수있습니다.


일단 이를 넣긴 했는데 제대로 돌 지모르겠다.
proc 을 건드리면 어떨까 하는데...

edit :
일단 rmmod로 하니까 없어지더라.

  1. rmmod snd_hda_intel
  2. rmmod snd_hda_codec_realtek

하고 나니 사라졌음.

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

ubuntu 에서 back light 끄기

Posted at 2016/03/14 14:11 // in Tips // by Daniel

옛 노트북에 이렇게 해보았다.
(되는지 확인은 못함)
콘솔로 원격에서.
https://wiki.archlinux.org/index.php/backlight

/sys/class/backlight/intel_backlight/brightness
를 바꾸기 위해

root@gnas:/sys/class/backlight/intel_backlight# echo 0 | tee brightness
0

로 껐다.

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

악하다

Posted at 2016/02/13 22:10 // in Essay // by Daniel

몰랐는데

나는 예전엔 여자가 착한 줄 알았다.
남자가 악하고 여자는 그에 비해 착하다고 생각했다.
그러나 그렇지 않았다.

여자도 똑같이 남자처럼 죄인이었다.
악한 종류가 다를 뿐이지, 그 속에 시기, 질투, 원망, 거짓말.. 다 있었다.

착하다고 믿은 내가 naive

여자는, 말을 잘한다.
자기가 틀려도 말로 자기를 옳게 만들 줄 안다. 자기를 피해자로 만들고 상대방을 나쁜 사람으로 만들 줄 안다.
그러니 나같은 순진한 사람은 그걸 믿고 착하다고 본거겠지.
같은 여자도 그걸 아니까 여자끼리 만나면 싸움이 있는거겠지.

여자 무섭다. 정말 몸서리치게 무섭다.
진절머리나게 무섭다.
아니 모든 사람이 죄인이다. 악한이다.

옛 친구가 그랬었지, 정상인인척 코스프레한다고. 딱 그거였다.
그 사람과 나 뿐 아니라 모두 다 정상인 척, 착한 척 연기하고 있었다.

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