Blog

  • anonymize-slide

    이 파이썬 코드를 기록한 줄 알았는데, 아닌 것 같아서 기록해 둔다.

    병리 슬라이드를 스캔하면 대부분의 프로그램에서는 라벨 이미지를 생성한다. 보통 손으로 잡는 부위의 슬라이드 부분을 사진으로 찍는 것이다. 라벨 이미지에는 병리 번호, 병원 이름, 그리고 경우에 따라서는 환자이름까지 찍혀 있는 경우가 많다. 병원 내에서 진단이나 컨퍼런스 용도로만 사용한다면 문제가 되지 않지만, 연구용으로 이용하겠다고 한다면 문제가 생긴다. 바로 라벨 이미지는 그 자체로 충분한 식별력이 있는 개인정보를 포함하고 있기 때문이다.

    한국 라이카에 문의하면 Export 방법을 안내해주지만.. 이 방법은 시간도 많이 걸리고 수작업이다. 한 참을 검색한 끝에 다음의 코드를 발견했다. Python2 기반이다.

    https://github.com/bgilbert/anonymize-slide

  • 인생이 왜 짧은가, 세네카, 천병희 옮김

    인생의 짧음에 관하여, 마음의 평정에 관하여, 섭리에 관하여, 행복한 삶에 관하여에 대한 모음집이다.

    지난번 ‘화에 대하여’는 누구가 가지고 있는 화(anger)에 대한 이야기이기 때문에 공감가는 부분이 많았던 것 같다. 그에 비하여 이번 책은 좀 뜬구름 잡는 이야기 같다.

    나중에 마음의 여유가 있을 때 한 번 더 봐야지 이 책의 가치를 올바르게 이해할 수 있을 것 같다.

  • 엑셀 소수점 자리 고정

    엑셀에서도 소수점 자리를 고정해서 출력해야 할 경우가 있다. 이럴 경우 FIXED를 이용한다.

    =FIXED(0, 3)
    0.000
  • 모두를 위한 PostgreSQL

    CDM이 담겨 있는 PostgreSQL을 제대로 알아보기 위하여 도서관에서 책을 빌렸다. 전반적으로 훑어보았는데, 이 책은 표지에 쓰여 있듯이 누구나 이해할 수 있는에 맞추어 내용이 구성되어 있었다.

    내가 이용해 볼 수 있을 것 같은 부분만 골라서 기록해 둔다.

    BETWEEN

    a >= 1 and a <= 10 은 BETWEEN 1 and 10 으로 이용할 수 있다.

    CASE WHEN THEN ELSE END. 쉽게 말해 ifelse를 사용할 경우에 이용한다.

    CASE
     WHEN 조건1 THEN 결과1
     WHEN 조건2 THEN 결과2
     ELSE 결과3
    END

    SIMILAR TO는 표준 SQL을 따르며, POSIX 메타 문자(|, *, +, ?)를 이용할 수 있다.
    LIKE는 %(문자열), _(문자 한 글자) 형식으로 이용할 수 있으며, ILIKE는 대소문자 구별이 없다.
    LIKE는 ~~, NOT LIKE는 !~~, ILIKE는 ~~*, NOT ILIKE는 !~~*로 이용할 수 있다.

    WHERE은 조건 집계 전에 적용하고, HAVING은 조건 집계 후에 이용한다.

    우선 순위가 있으며, 높은 우선 순위 순서대로 다음과 같다.
    FROM, WHERE, GROUP BY, HAVING, SELECT, DISTINCT, ORDER BY, LIMIT

    UNION, INTERSECT, EXCEPT도 괜찮지만, 중복을 제거하지 않고, 일단 모아도 된다면 UNION ALL, INTERSECT ALL, EXCEPT ALL를 이용하는 것이 속도가 빠르다.

    함수와 트리거를 이용해보자.