http://www.yes24.com/Product/Goods/7744675

 

네 가지 약속

전 세계 수백만 명의 삶을 바꾼 영적 스승, 돈 미겔 루이스가 전하는 톨텍 인디언 비전秘傳지혜!집착과 질투, 나태에 길들여진 나를 깨우는 기적의 메시지수천 년 동안 ‘지혜로운 사람들’로 칭송 받아온 멕시코 톨텍 인디언의 비밀스런 삶의 가르침을 녹여낸 책. ‘나구알(영적 지도자)’ 가문의 계승자로, 전 세계 수백만 독자들을 깨달음의...

www.yes24.com

책의 내용은 주위의 교육이나 강요에 의해서 주입된 "지구의 꿈"을 극복하고, "나의 꿈"을 이루는 방법에 대한 것입니다.

 

4가지의 약속은 아래와 같다.

첫번째 약속, 말로 죄를 짓지 마라.

두번째 약속, 어떤 것도 자신의 문제로 받아들이지 마라.

세번째 약속, 추측하지 마라.

네번째 약속, 항상 최선을 다하라.

 

아래 site를 참고하면 영어 내용도 있습니다.

The Four Agreements are:

1. Be Impeccable with your Word: 

  a. Speak with integrity.

  b. Say only what you mean.

  c. Avoid using the Word to speak against yourself or to gossip about others.

  d. Use the power of your Word in the direction of truth and love.

2. Don’t Take Anything Personally
  a. Nothing others do is because of you.

  b. What others say and do is a projection of their own reality, their own dream.

  c. When you are immune to the opinions and actions of others, you won’t be the victim of needless suffering.

3. Don’t Make Assumptions
  a. Find the courage to ask questions and to express what you really want.

  b. Communicate with others as clearly as you can to avoid misunderstandings, sadness and drama.

  c. With just this one agreement, you can completely transform your life.

4. Always Do Your Best
  a. Your best is going to change from moment to moment; it will be different when you are healthy as opposed to sick.

  b. Under any circumstance, simply do your best, and you will avoid self-judgment, self-abuse, and regret.

 

얇지만 생각해볼만한 내용이 많아서, 그때 그때 아래의 본문 내용을 늘려나갈 생각입니다.

본문 내용

p.144

만일 우리에게 앞으로 살 날이 일주일밖에 안 남았다면 남아 있는 시간이나마 즐겁고 신나게 지내도록 하자.

"나는 이제 나 자신으로 살 거다. 더 이상 남의 비위나 맞추려고 애쓰면서 내 인생을 낭비하지 않을 거야. 남들이 나에 대해 뭐라고 생각하든 눈 하나 깜짝하지 않을 거야. 일주일 뒤면 죽을 텐데 남이 뭐라고 하든 말든 무슨 상관이야? 이제부터 나 자신으로 살 거라고."

 

p.147

죽음의 천사는 우리에게 다가와 이렇게 말한다. "이 모든 것이 다 내 것이라는 걸 당신도 알고 있겠지. 당신의 집, 배우자와 자식들, 차, 직장, 돈 등 모든 게 다 내 것이니, 원하기만 하면 난 언제든지 이것을 가져갈 수 있어. 하지만 지금은 당신이 사용해도 좋아."

참고링크

http://www.toltecspirit.com/

https://launchbox365.com/blog/the-four-agreements/

반응형

개요

리눅스를 개발환경으로 해서 프로그래밍을 하다보면 grep을 많이 사용하게 됩니다. 특히나 소스 코드를 직접 개발하기 보다는, 이미 개발되어 있는 소스 코드를 이용하는 경우에는 더욱 많이 사용합니다.
유용한 grep의 옵션들을 정리합니다.

 

[참고] 리눅스는 하나의 작업을 위한 매우 다양한 방법을 제공합니다. 당연히 본문의 예제들보다 효과적인 방법들이 있을 것입니다.

 

원하는 라인 전후 출력하기

프로그래밍에서는 grep으로 특정 keyword를 포함하는 파일들을 검색한후, 해당 파일들을  editor로 열어서 검토합니다. 그런데, 프로그래밍 이외에 매우 많은 양의 로그파일들에서 정형화된 포맷의 문제 부분들을 찾아서 검토하는 예의 경우, 일일이 파일들을 열어서 문제점을 검토하기는 번거롭습니다.

또 "git log"로 commit된 내용을 확인할 때, 특정 keyword로 내용을 확인한 후 해당 keyword 앞서에 위치하는 commit ID를 알아서 전체 내용을 검토하고자 할 때 유용합니다.

이때 grep의 -A 혹은 -B 옵션을 사용할 수 있습니다.

 

[기본]

grep -A 라인수1 -B 라인수2 키워드 파일명

 

[해석]

파일명의 이름을 갖는 파일에서 키워드를 찾아서, 키워드를 포함하는 라인 이후(-A 옵션) 라인수1 만큼의 라인, 키워드를 포함하는 라인 이전(-B 옵션) 라인수2 만큼의 라인을 출력한다.

 

[예제]

grep -A 10 -B 5 "Internal error" kernel_panic.txt

 

참조 sites

https://iknow.tistory.com/entry/grep-사용해서-원하는-라인-전후까지-출력하기

반응형

'프로그래밍 > Linux_commands' 카테고리의 다른 글

[Linux] sed  (0) 2021.07.10
[Linux] uniq  (0) 2019.12.15
[Linux] find  (0) 2019.12.15

1. 개요 & 알고리즘

정렬을 위해서는 다음과 같은 두 가지 동작이 필요합니다.


첫째 : 크고 작은지에 대한 '판단(decision)'

둘째 : 판단에 따라서 값을 바꾸는 '교환(exchange)'


정렬 알고리즘을 정의하자면 "판단과 교환을 어떻게 적절히 조합하는가에 대한 방법론"이라고 할 수 있습니다. ("C로 배우는 알고리즘")


정렬에서 사용하는 용어를 정리하면 다음과 같습니다.


* 파일(file) : 정렬을 하는 대상

* 레코드(record) : 파일에서 정보의 단위

* 필드(field) : 각 레코드의 정보 단위

* 키(key) : 정렬의 기준


Key를 정렬하는 방법에 따라서 아래와 같이 나눌 수 있습니다.


* 오름차순(ascending order) : 키값을 비교하여 작은 값을 앞에, 큰 값을 뒤에 두는 방법

* 내림차순(descending order) : 오름차순의 반대


정렬 알고리즘의 종류를 다음과 같이 분류할 수 있습니다.


* 간단한 알고리즘 : 선택 정렬, 삽입 정렬, 거품 정렬, 셀 정렬

* 복잡한 알고리즘 : 퀵 정렬, 기수 정렬, 힙 정렬, 병합 정렬


정렬 알고리즘의 "안정성"에 대해서 "C로 배우는 알고리즘"은 다음과 같이 정의하고 있습니다.


"안정성이란 같은 내용을 가지는 키값의 배열이 정렬 후에도 상대적 순서가 그대로 유지되면 그 알고리즘은 안정성이 있다고 하고 유지되지 않는 경우는 안정성이 없다고 한다"


예1 : 사번순으로 정렬한 후 다시 나이 순으로 정렬할 때, 사번의 순서가 유지되면 안정성이 있다고 한다.

예2 : 알파벳을 정렬할 때 같은 알파벳이 중복되어 존재하는 경우, 같은 알파벳의 순서가 정렬 과정에서 기존의 순서를 유지될 때 안정성이 있다고 한다.



"C로 배우는 알고리즘"에 설명된 선택 정렬 알고리즘은 다음과 같습니다.

1. i = 0

2. i가 n-2가 되면 끝낸다

3. 배열의 i항부터 n-1항까지 중 최소값을 찾아서 그 항을 min에 저장한다

4. 배열의 i항과 min항을 교환한다

5. i를 하나 증가시키고 2로 돌아간다


선택 정렬 알고리즘은 앞서 정의한 "안정성"이 없습니다.


정렬 알고리즘의 성능 평가를 위해서는 "이미 정렬된 배열", "난수의 배열", "반쯤 정렬된 배열", "역순의 배열"로 평가하고, 알고리즘간 성능을 비교할 수 있습니다.


2. 동작 코드

Python의 list는 링크 설명과 같이 sort method를 제공하며, 이것을 그대로 사용하면 됩니다. 다만, 알고리즘 이해를 위해서 직접 작성해 보았습니다.

# Select sort algorithm
def select_sort(elements):
size = len(elements)
for i in range(size - 1):
min_index = i
min_value = elements[i]
for j in range(i+1, size):
if min_value > elements[j]:
min_index = j
min_value = elements[j]
elements[min_index] = elements[i]
elements[i] = min_value


3. 실행 코드

List 'a'를 받아서 선택 정렬을 하는 실행 코드입니다.

if __name__ == '__main__':
a = ['T', 'O', 'L', 'E', 'A', 'R', 'N', 'S', 'O', 'R', 'T', 'A', 'L', 'G', 'O', 'R', 'I', 'T', 'H', 'M']
print("Original : ", a)
select_sort(a)
print("Sorted : ", a)


안정성 관련해서 원본 데이터를 동일한 'T'의 순서를 확인할 수 있도록 하고 index를 추가하고,

a = ['T1', 'O', 'L', 'E', 'A', 'R', 'N', 'S', 'O', 'R', 'T2', 'A', 'L', 'G', 'O', 'R', 'I', 'T3', 'H', 'M']

select_sort() 함수를 조금 고쳐서 첫번째 값만을 비교하도록 수정하면,

for j in range(i+1, size):
if min_value[0] > elements[j][0]:

다음과 같은 결과를 얻을 수 있습니다.

Sorted :  ['A', 'A', 'E', 'G', 'H', 'I', 'L', 'L', 'M', 'N', 'O', 'O', 'O', 'R', 'R', 'R', 'S', 'T3', 'T1', 'T2']

즉, 'T'의 순서가 [1, 2, 3]으로 유지되지 않고, [3, 1, 2]로 변경된 것을 알 수 있으며, 이를 통해서 '선택 정렬'은 '안정성'이 없다를 확인할 수 있습니다.


4. 코드


5. 기타

주로 "C로 배우는 알고리즘"에 적혀 있는 내용을 주고 사용하고, 필요시 인터넷 검색의 결과를 이용하였습니다. 이용한 출처는 밝히는 것을 원칙으로 합니다만, 혹시 실수가 있거나 문제되는 사항이 있다면 알려 주십시오. 수정하도록 하겠습니다.



반응형

+ Recent posts