Author: byun1114

  • 성취 습관, 버나드 로스

    Stanford University 에 The Hasso Plattner Institute of Design이 있는데, 이 학부(?)를 일컬어 d.school 이라고 한다. 책의 말미에 Wall Street Journal에 관련 기사가 나왔다는 정보를 바탕으로 검색한 결과 다음의 링크를 찾을 수 있었다.

    https://www.wsj.com/articles/SB10001424052702303506404577446832178537716

    비범한 내부 계단을 한 번 살펴 보자.

    https://s.wsj.net/public/resources/images/MK-BU799_DSCHOO_G_20120606181530.jpg

    기존 Business School과의 차이점을 WSJ에서는 다음과 같이 설명하고 있다.

    https://s.wsj.net/public/resources/images/MK-BU811_DSCHOO_G_20120606175403.jpg

    이 책은 주요 가르침 10개에 대하여 다루고 있으며, 내용은 다음과 같다.

    • 생각 그대로인 것은 없다
    • 이유는 헛소리다
    • 정체에서 벗어나는 법
    • 도움을 구하라
    • 행동이 전부다
    • 말을 조심하라
    • 함께하는 습관의 힘
    • 자아상을 디자인하라
    • 큰 그림 그리기
    • 성취를 습관화하라

    기존의 자기 계발 서적과 유사한 내용을 다룬다고 생각할 수 있다. 그렇게 생각한다면 그런 공통점이 지속적으로 왜 제시하는지를 생각해 보면 될 것이다. 중요한 부분은 중요한 것이다.

    이 책의 구절 중에서 가장 마음에 와 닿았던 구절들은 다음과 같다.

    당신이 무언가를 정말로 하고 싶어 하지 않는다면 세상은 친절하게도 당신이 그 일을 실행하지 못 할 퍽이나 좋은 이유를 선사한다. 반대로, 그 일을 하고 싶은 마음이 진심이라면 세상이 제시한 이유들이 당신을 막지 못할 것이다.

    170p

    당신이 성취하려고 노력하는 것이 무엇이든 간에 자신이 ‘그러나’라는 말로 대화를 차단함으로써 스스로 저지하고 있는 부분이 어딘지 살펴보라.

    200p

    그 다음으로 가능한 한 적게 사용해야 할 표현은 ‘해야 한다 have to’이다. 일반적으로 실제 상황을 가장 잘 묘사하는 표현은 ‘하고 싶다 want to’이다.

    202p

    나는 누구인가? 나는 무엇을 하고 싶은가? 나의 목적은 무엇인가?

    나는 ‘정말로’ 무엇을 원하는가?

    341p
  • 키보드 입력을 Python에서 이용하기

    Linux의 Python에서 키보드나 마우스, 기타 장치의 입력을 받아서 이용하고 싶을 때가 있다.

    이러한 입력은 /dev/input 하위의 여러 장치로 들어온다. 이 폴더들은 기본적으로 root 소유이며 755 속성을 가지고 있다. chmod로 속성을 변경하여도 재부팅하면 다시 돌아온다. 따라서 주로 이용하는 계정에 권한을 부여하는 방법을 이용한다. 다음과 같이 계정에 input 권한을 준다.

    $ sudo adduser 계정 input

    다음으로 PIP로 evdev를 설치한다.

    $ pip3 install evdev

    장치에 배정된 event 번호를 알기 위해서 Python에서 다음의 코드를 실행한다. 주의할 점은 부팅 이후에 장치를 연결한 경우와 부팅 과정에서부터 연결된 경우는 순서가 바뀔 수 있다는 것이다. 구글 검색을 하면 나오는 명령어와 거의 유사한데, 버전이 업그레이드 되면서 device.path로 변경하도록 하는 메세지가 나오니 해당 내용에 맞추어 존다.

    >>> devices = [evdev.InputDevice(path) for path in evdev.list_devices()]
    >>> for device in devices:
    
            print(device.path, device.name, device.phys)

    원하는 장치를 다음과 같이 지정해 준다.

    >>> dev = evdev.InputDevice('/dev/input/event0')

    키보드 입력에 대한 예제가 많이 있고, 보통 다음과 같이 loop를 돌려서 입력 결과를 받는다. list 형식으로 받아서 이용하는 것이 일반적인 것 같다. key_down과 key_up 등이 나오는데 구글 검색으로는 보통 key_down를 이용하는 것 같다. 아마도, 키보드를 누르면서 입력하는 것이니 그렇게 처리되는게 아닌가 싶었다.

    입력 값들을 모으기 위해서는 보통 .keystate == 1를 이용하는 것 같다.

    >>> for event in device.read_loop():
            if event.type == evdev.ecodes.EV_KEY:
                inputs = evdev.categorize(event)
                print(inputs)
                if inputs.keystate == 1:
                    text += inputs.keycode
  • 싯다르타, 헤르만 헤세, 민음사

    어떻게 서양 사람이 이렇게 불교 색채가 아주 물씬 풍겨나는 글을 쓸 수 있을지 이해가 가지 않을 정도이다.

    우리가 아는 석가모니(고타마 싯다르타)는 작중에서 ‘고타마’로 나온다.

    작 중 중요한 역할을 담당하는 바주데바는 인도 신화의 신의 이름으로 보인다. 작중에서의 역할을 보면 싯다르타에게 가르침을 주기 위하여 온 신과 같은 존재라고 해도 괜찮을 정도이다.

    싯다르타의 친구의 ‘고빈다’는 어떤 존재에 대비하였는지는 잘 모르겠다.

    이 책은 꼭 읽어봐야 한다. 말로는 전달할 수 없는 감동을 느낄 수 있다.

  • R에서 PostgreSQL로 INSERT 하기

    사실 이 내용은 별도의 포스트를 개설할 필요는 없을 것 같기도 하지만, 명령어가 직관적이지 않기 때문에 작성하는 것이다. 나중에 깜빡할 수도 있을 것 같다.

    보통 R에서는 DB에 SQL로 질의한 결과를 받아와서 분석을 하는 것이 일반적이다. 그렇기 때문에 이럴 경우에는 dbGetQuery()를 이용한다.

    그렇다면, INSERT 와 같이 DB를 수정하는 쿼리를 실행하여야 하는 경우라면 어떻게 해야할까?

    dbSendQuery() 명령어가 있지 않을까 싶은 생각이 들것이다. 물론 해당 명령어는 있지만, 이건 정말로 Query를 보낸다라는 의미이다. Commit 하기 전과 같은 형태인 것 같다.

    원하는 목적을 위해서는 dbGetQuery() 실행할 때에 INSERT 쿼리를 실행하도록 구문을 작성하면 된다.

    > sql=paste0("INSERT INTO TABLE (columns) VALUES (values)
    > dbGetQuery(con, sql)