처음, 그의 순수한 웃음에 놀랐다. 적지않은 나이에도 그런 순수한 웃음을 지을 줄 아는 사람이라니..
둘, 계속 보다가 나온 그의 말.
"어떤 사람이 성공했다는 건 분명히 그 사람이 재능도 있고, 열심히 했고, 운이 좋아서 성공했겠죠.
근데 그 것 말고도 사회가 그사람에게 준 기회는 인정을 해야 되거든요. 그 기회 때문에 또 다른 사람들은 그 기회를 못 가졌을 수도 있으니까요. 100% 성공을 개인화하는 건 문제가 있다. 그런 생각을 개인적으로 하고 있습니다."
나는 저런 생각은 해보지도 못했다. 와.. 순간 소름이 돋으면서 온 몸에 전류가 흐르는 듯한 기분.. 그래. 맞다. 재능, 실력, 운 모두 갖춘 사람이 성공한다는 말까지는 이해했지만 그 사람에게 주어지는 기회, 그 것이 사회가 준 것이었음을 왜 나는 알지 못했을까. 다른 사람의 내가 알지 못하던 새로운 생각에 전율한 것은 이번이 처음이다. 짜릿하고, 감동적이다.
셋, 다시금 보다가 다시한번 감동하고 공감했던 그의 말.
"어떤 회사를 만들고 싶습니까?"
"...제가 해야 될 일은 영혼을 불어넣는 일이라고 생각했어요. 만약에 서로 다 다른 사람들이 모여서 있지만, 이 사람들이 공통적으로 믿는 가치관이 있으면, 그래서 만약에 조직의 영혼을 만들 수 있으면, 그건 제가 죽고 없어도, 또는 구성원들이 바뀌더라도 그건 변하지 않고 계속 갈 수 있거든요. 그런 회사를 만들고 싶었죠."
팀이라던가 회사라던가 그 공통된 가치관을 만드는 일. 가슴으로 우러나는 조직을 만드는 일. 나 역시 해보고 싶다. 그의 바람이 이루어졌는지 혹은 이루어질런지는 차치하고라도 이런 바람을 갖는다는 일에 정말 동경하고, 존경한다.
안철수, 그의 이름에 참된 경의를 표하고 싶다. 존경이란 말은 이럴 때 쓰는 것이 아닐까 한다.
RSS 리더로 나는 KLDP Geek forum 을 보곤 한다.
보다보면 재밌는 것들이 많단 말이지.. 글들에 글들을 따라가다보면 몰랐던 혹은 어렴풋이 알았던, 애매한 것들에 대해서 다시한번 생각해보게 되고 알게 된다. 언젠가 적었듯이 이게 KLDP의 묘미가 아닌가 한다.
그 중 하나로 오늘은 cinsk님의 "포인터 이해란 글에 대해."란 글을 보게 되었다. 글들에 링크되어 있는 글들의 덧글들을 보라.
세상은 넓고, 난 너무 미약하다.
보다보면 재밌는 것들이 많단 말이지.. 글들에 글들을 따라가다보면 몰랐던 혹은 어렴풋이 알았던, 애매한 것들에 대해서 다시한번 생각해보게 되고 알게 된다. 언젠가 적었듯이 이게 KLDP의 묘미가 아닌가 한다.
그 중 하나로 오늘은 cinsk님의 "포인터 이해란 글에 대해."란 글을 보게 되었다. 글들에 링크되어 있는 글들의 덧글들을 보라.
세상은 넓고, 난 너무 미약하다.
시작은
#!/usr/bin/perl -w
STDIN 입력은 간단히 <>
$input = <>;
입력에서 마지막 \n 없애기
chomp($input);
문자열을 나눠서 리스트로 만들기
@list = split(/구분자/, 문자열);
파일을 쓰기 모드로 열기
open(HANDLE, '>filename');
그냥은 filename, 추가 쓰기는 >>
파일에 뭘 쓰고 싶을 때는
print HANDLE '쓸 내용';
파일 닫기는
close(HANDLE);
sprintf
$string = sprintf '%s', 'string';
printf
printf '%d', 2
찾을 문자열의 시작 인덱스 구하기
$i = index(string, substring, startIndex = 0);
시간 구하기
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
시간 만들기
use POSIX;
$time_t = POSIX::mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = -1);
$time_t = POSIX::mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = -1);
문자열 연결은 '.' 으로..
'string1'.'string2'
환경변수 접근은
$ENV('env1')
더 많은 정보는 http://perldoc.perl.org
SET 에서 /P 옵션을 주면 환경변수에 입력값을 넣을 수 있다.
형식은 다음과 같다.
SET /P 변수=[promptString]
실행 예제
> SET /P DASOMOLI=DASOMOLI에 넣을 값을 입력하세요)
DASOMOLI에 넣을 값을 입력하세요) haha
> set dasomoli
DASOMOLI=haha
DASOMOLI에 넣을 값을 입력하세요) haha
> set dasomoli
DASOMOLI=haha
IF 문에서 수식을 사용하고 싶을 때, 예를 들면, 에러 체크를 위해 루프를 도는 개수등을 카운트하고 싶다면 SET 에서 /A 옵션을 사용하고 IF에서 비교 연산자를 사용하면 된다. IF 문의 비교 연산자는 다음과 같다
다음은 start 로 3가지 일을 동시에 처리한 후 goto와 label을 이용, cygwin의 delay로 일정 시간 체크한 후 그 후 에러로 처리하는 bat 파일의 예다.
EQU - 같음
NEQ - 같지 않음
LSS - 보다 작은
LEQ - 작거나 같음
GTR - 보다 큰
GEQ - 크거나 같음
NEQ - 같지 않음
LSS - 보다 작은
LEQ - 작거나 같음
GTR - 보다 큰
GEQ - 크거나 같음
다음은 start 로 3가지 일을 동시에 처리한 후 goto와 label을 이용, cygwin의 delay로 일정 시간 체크한 후 그 후 에러로 처리하는 bat 파일의 예다.
@echo off
SET /A LOOP_COUNT=1
SET /A LOOP_MAX_COUNT=5
SET CYGWIN_DELAY=[Cygwin 경로]\delay.exe
SET DELAY_TIME=5m
rem WORK1, 2, 3를 동시에 돌린다. 다음 작업에 dependency 가 있는 작업에
rem start의 /W 옵션을 주어 기다리도록 한다.
start WORK1.bat
start WORK2.bat
start /W WORK3.bat
goto CHECK
:DELAY
rem if LOOP_COUNT >= LOOP_MAX_COUNT
IF %LOOP_COUNT% GEQ %LOOP_MAX_COUNT% (
SET /A LOOP_COUNT=1
SET /A LOOP_MAX_COUNT=5
SET CYGWIN_DELAY=[Cygwin 경로]\delay.exe
SET DELAY_TIME=5m
rem WORK1, 2, 3를 동시에 돌린다. 다음 작업에 dependency 가 있는 작업에
rem start의 /W 옵션을 주어 기다리도록 한다.
start WORK1.bat
start WORK2.bat
start /W WORK3.bat
goto CHECK
:DELAY
rem if LOOP_COUNT >= LOOP_MAX_COUNT
IF %LOOP_COUNT% GEQ %LOOP_MAX_COUNT% (
echo ERROR!
exit 1
)
rem Delay 한다.
%CYGWIN_DELAY% %DELAY_TIME%
rem LOOP_COUNT += 1
SET /A LOOP_COUNT+=1
:CHECK
echo Checking...
IF [WORK1 실패조건] (
rem Delay 한다.
%CYGWIN_DELAY% %DELAY_TIME%
rem LOOP_COUNT += 1
SET /A LOOP_COUNT+=1
:CHECK
echo Checking...
IF [WORK1 실패조건] (
echo Work 1 is Failed!
goto DELAY
)
echo Work1 is success!
IF [WORK2 실패조건] (
echo Work1 is success!
IF [WORK2 실패조건] (
echo Work 2 is Failed!
goto DELAY
)
echo Work2 is success!
IF [WORK3 실패조건] (
echo Work2 is success!
IF [WORK3 실패조건] (
echo Work 3 is Failed!
goto DELAY
)
echo Work3 is success!
call WORK4.bat
echo Work3 is success!
call WORK4.bat




이올린에 북마크하기