2020년 10월 26일 월요일

라틴 1-1

( 외우기 위해 발음을 한글로 적어본다.) 

Scintilla in casa- labo-rat; fessa est. 신틸라 인 카사 라보라트. 페싸 에스트

Hora-tia in casam intrat; ie-iu-na est. 호라티아 인 카삼 인트라트 예유나 에스트.  

sed ce-na no-n para-ta est. 세드 케나 논 파라타 에스트. 

Scintilla festi-nat et mox ce-na est para-ta. 신틸라 페스티나트 에트 목스 케나 에스트 파라타.

'ecce!' inquit, 'ce-na est para-ta.' 엨케 잉퀴트 케나 에스트 파라타

puella laesta est; ad me-nsam festi-nat et avide- ce-nat.  

푸엘라 라에스타 에스트; 에드 멘삼 페스티나트 데트 아비데 케나트.

postri-die- Scintilla ad taberna-s ambulat. 포스트리디에 신틸라 에드 타베르나스 암불라트.

Hora-tia in casa- labo-rat. 호라티아 인 카사 라보라트. 

mox Scintilla redit et in casam intrat. 목스 신틸라 레디트 에트 인 카삼 인트라트.

ecce, para-ta est ce-na. 엨케, 파라타 에스트 케나 

Scintilla laeta est.  신틸라 라에타 에스트. 

2020년 9월 8일 화요일

PyQt5 : Access parent from child widget

To access parent widget from child widget,

one have to explicitly set parent when define child. 

Then, one can access parent widget by using widget.parent()

Following is a short example.  

class test_parent_child(QWidget,):
    def __init__(self):
        super().__init__()
        self.a = 1
        self.b = 2
        self.child = QLabel('1',parent=self)        
parent_widg = test_parent_child()
print(parent_widg.child.parent().a)

>> 1 


2019년 8월 26일 월요일

Python (numpy, scipy) Tips

(1) combine two arrays into a 2-column array  :
       Usually in matplotlib and numpy data is stored as two-column array such as
         x-axis is dat[:,0] and y-axis is dat[:,1].
       To combine existing x-array and y-array into this form, use

       dat =  np.column_stack([x,y])
 

2019년 4월 8일 월요일

Restart vmwave(open-vm-tools) in linux

When the VMware client does not change its window size automatically,
it could be the vmware tools has not started.
In that case, use

systemctl restart open-vm-tools.service

2019년 2월 6일 수요일

Two versions of rename in linux

  • The “Perl” version, with syntax rename 's/^fgh/jkl/' fgh*
  • The util-linux version, with syntax rename fgh jkl fgh*

2018년 7월 8일 일요일

엘러리퀸의 국명시리즈

요즘 엘러리퀸의 국명 시리즈를 다시 읽고 있다. 일부는 이미 읽었던 것이지만,
워낙 옛날에 읽었던 것이라 기억도 안나고 새로 읽는 기분이다.
간단히 책의 내용과 사건 해결에 중요했던 질문을 적어본다.


1. 로마 모자의 비밀:
연극이 한창인 '로마' 극장에서 독살이 벌어진다.
죽은 악덕 변호사의 모자가 사라진 것을 알게 되는데 모자에는
협박과 관련된 중요 증거가 숨겨져 있었다.
극장과 관객을 철저히 수색했지만, 없어진 모자는 발견되지 않았고,
모자를 안쓰고 왔던 사람이 모자를 쓰고 나간 경우도 없었고,
연극에 사용된 모자도 전부 극장 소유로 수상한 모자는 없었다.
범인은 어떻게 변호사의 모자를 가지고 나갈수 있었고,
바꿔치기를 했다면 범인의 모자는 어디로 간 것일까?
이 질문에 대한 답을 하는 순간 가능한 범인의 조건이 밝혀진다.

2. 프랑스 파우더의 비밀:
프랑스(프렌치) 백화점의 전시 윈도우에 장치된 벽장 침대에서
시체가 굴러나온다.  범행이 벌어진 날 범인은 백화점에서 빠져 나갈 수
없었고, 실제 범행이 벌어진 장소는 백화점 최상층의 아파트였다는 것이
밝혀진다.  범인은 어째서 번거롭게 시체를 1층 전시실로 옮긴 것일까?
범행 장소에서는 책상에 있던 북엔드에서 지문 채취용 가루(파우더)를 이용해서
지문이 철저하게 지워졌음이 밝혀진다.
범인은 어떤 사람이길래 지문 채취용 가루를 사용했을까?

3. 네덜란드 구두의 비밀:
'네덜란드 기념병원'에서 수술 받기위해 대기중이던 환자가 살해 당한다.
키가 작고 절뚝거리는 담당 의사를 흉내낸 누군가가 목격되고,
범행에 사용되었을 것으로 생각되는 구두와 흰색 바지가  발견된다.
구두는 범행당시 구두끈이 끊어진 것으로 보이는데, 반창고로 임시 수리되어 있었고,
바지는 길이가 줄여지도록 가봉이 되어 있었다.
그리고, 그 담당 의사도 살해되는 사건이 벌어진다. 엘러리는 범행에 사용된
구두의 상태, 바지가 버려진 이유, 그리고 두번째 범행시의 캐비넷의 위치등으로 부터
예상밖의 범인을 유추해낸다.


2권의 국명 시리즈를 읽고 난 느낌은,  특별한 플롯도 없이 너무 
너무 늘어지는 것 같다는 것이다.
엘러리 퀸의 추리는 타당해 보이지만, 장편으로 쓸 만한 내용이었는지는
의문이다.
기괴한 사건이 발생하고 그것을 논리적으로 설명하는 한가지 해답을 찾는다는
엘러리 퀸 형식의 장점을 가장 잘 살리는 데는
단편집이 가장 어울렸을 것이라는 생각이 든다.

2018년 6월 20일 수요일

Sorting of an array in FORTAN (using MINLOC)

There is no intrinsic sorting function in FORTAN.
Though it is easy to write a sorting program by using various sorting algorithm
or import the exising codes from internet,
one of the simple method is to use MINLOC intrinsic function in FORTRAN.
(Though it may be not an efficient one, it is short.)

Suppose there is an array size N, narray(1:N). Then, one can sort the array by

Do i=1,N
  l = MINLOC(narray(i:N),1)
  temp = narray(i)
  narray(i)=narray(i+l-1)
  narray(i+l-1)= temp
End do

Now, narray(1:N) is sorted by its values.

If one want to keep track of original index, prepare another array, index(1:N).

Do i=1,N
 index(i)=i
End Do
Do i=1,N
  l = MINLOC(narray(i:N),1)
  temp = narray(i)
  narray(i)=narray(i+l-1)
  narray(i+l-1)= temp
  temp=index(i) 
  index(i)=index(i+l-1)
  index(i+l-1)=temp
End do

Now, index(1:N) is the index in original array.