[작성자:] snowall

  • 파이썬의 for문과 배열 처리

    파이썬의 반복구문인 for는 배열을 처리하는데 매우 간단한 방법을 제공한다. 가령, ar이라는 배열이 이미 선언되어 있으면, ar의 원소들을 하나하나 끌어서 처리하는데 다음과 같이 쓰면 된다.

    for i in ar:

    myFunction(i)

    문제는 내가 i가 몇번째 원소인지 굳이 알아야만 하는 경우에 나타난다. 내가 지금 푸는 문제는 전체 길이가 N인 배열에서 k번째 원소와 k+m번째 원소 사이에 있는 원소에만 함수를 적용해야 하는 상황이기 ‹š문에 굳이 필요하다. 이 경우, 고전적인 방법으로

    for i in range(len(ar)):

    if i>k and i

    myFunction(ar[i])

    이렇게 쓰면 될 것이다. 또는

    j=0

    for i in ar:

    if j>k and j

    myFunction(ar)

    j+=1

    이렇게 쓸 수도 있다. 하지만 이렇게 작성하는 것은 전혀 파이썬스러운 코딩이 아니다. 파이썬처럼 코딩하는 것은 제일 처음에 쓴 바로 그것이다. 그래서 지금 어떻게 하고 있냐고?

    myFunction(ar[k:k+m])

    이렇게 해보고 있다. 뭔가 이상하지만 이제 파이썬 스러워졌다.

  • abort와 cancel

    abort와 cancel은 둘 다 뭔가를 취소한다는 뜻으로 사용된다. 특히 영어로 된 프로그램을 설치하다가 중단하고 싶을 때, 또는 파일 복사하다가 중복된 파일이 있을 때 컴퓨터가 물어보는 대화창에서 많이 발견하게 되는데 둘 사이에는 뜻에 차이가 있다.

    abort는 사전을 찾아보면 제일 처음에 나오는게 ‘낙태’의 뜻이다. 즉, 태아를 유산시킨다는 뜻이 제일 처음 나온다. 이것은 ‘중단하다’는 뜻이다. 즉, 잘 진행되고 있던 어떤 사건을 중간에 끊는다는 뜻이다. 하다가 만다는 뜻.

    cancel은 취소하다, 상쇄시키다는 뜻이 나온다. 이것은 하려고 하다가 말았다는 뜻이 있다. abort가 하다가 중간에 그만둔 경우라면, Cancel은 아예 시작도 하지 않고 그만뒀다는 뜻이다.

  • 아미가르 레스토랑

    나름(?) 명곡.

    아미가르 레스토랑 내일 슬퍼도 오늘은 잊어버리게

    아미가르 레스토랑 나를 떠나간 그 애를 기억하지마

    도니돈도니돈도니돈도니 화려한 음악 속에 쉐이크 쉐이크 핸드

    도나돈도니돈도니돈도니 외로운 밤을 모두 멀리 날려 줘

    지금 흐르는 음악은 아미가르 레스토랑의 멋진 칵테일의 밤을 위하여 흐르는 노래 춤을 춰요 바텐더

    너의 손에 그 향기를 돈도니 베이비 멈추지마 모두 화려한 유혹에 취하고 싶은 사람들의 소리질러 너를 불러

    음악이 멈추면 집으로 가겠지만 슬픈 사랑은잊게해줘 도니도니 베이비 지금 흐르는 음악은

    아미가르 레스토랑의 멋진 칵테일의 밤을 위하여 흐르는 노래 춤을 춰요 바텐더 너의 손에 그 향기를 돈도니 베이비

    멈추지마 모두 화려한 유혹에 취하고싶은 사람들의 소리질러 너를 불러 음악이 멈추면 집으로 가겠지만 슬픈 사랑은 잊게해 줘 도니도니 베이비 오는 날 위해 너희는 그런 곳에 가지 마라 아미가르 레스토랑 헤이헤이

    매일같이 나를 간섭하는 내 어머니 그런 옷은 안 된다

    안델센의 동화를 읽는 어린 내가 아냐 나도 이젠 지금 내 머리 속에

    상상하는 일들은 결코 어리지 않아요 어머니 나도 멋진 사랑을

    이젠 하고 싶어 내 나이의 친구처럼 don’t say it mama

    나를 놓아줘 아미가르 레스토랑 사랑하는 사람처럼

    칵테일 춤을 나와함께 아미가르 레스토랑 외로운 밤을

    모두다 멀리 날려 줘


    어디있는 레스토랑일까. 아미가르 레스토랑. 음악이 멈추면 집으로 가야하는 레스토랑. 바텐더가 춤추는 레스토랑.

  • 병신코드

    누가 봐도 오타를 낸 것 같아 보이겠지만 의도한 대로 작동하는 코드를 만들었다. 어쩌다보니 어떤 변수 i가 가장 처음엔 0에서 시작하는데 두번째부터 1로 고정되는 루틴을 만들어야 했는데, 조건문을 쓰고싶지 않았다. 그래서..

    i=0

    while True:

    myFunction(x, i)

    i=1

    파이썬 스타일 코딩이다.

    이런식으로 만들었다. 보통 저 자리에 i=1이 아니라 i+=1을 넣기 때문에 오타같아 보이지만, 사실은 의도한대로 잘 적은 것이다. 이 기록은 나중에 내가 까먹고 저걸 디버깅(!) 해 버릴까봐 작성해 둔다. 물론 저 코드에는 따로 주석도 달아두었다.

  • 배워본 언어들

    C언어 – 읽기 어렵다. 컴파일해야 실행시켜볼 수 있다. 잘 짜면 빠르긴 한데 초보한텐 그게 그거라는게 함정.

    파이썬 – C언어보다는 읽기 쉽다. 처음에 배우기 쉽다. 다른 사람한테 프로그램 전달할 때 패키징하는게 골때린다.

    랩뷰 – 입으로 코딩하고 싶은 1순위 언어.

    매스매티카 – 리습의 영향을 받아서 그런가, 괄호에 미친언어. C언어같은 절차형 프로그래밍 언어를 먼저 배우고서 매스매티카를 배우려면 뭔가 혼란이 올 수 있다.

    매트랩 – 이상한 문법을 쓰는 행렬용 계산기. 자의로 쓰고싶지는 않은 언어다.

    비주얼베이직 – ‘이게 왜 작동하지?’싶은 수준의 코드도 굴러간다. 윈도우 전용인게 단점. 그리고 프로그램 만드는 것 자체는 VS의 도움을 받아서 어렵지 않은데, 완성된 코드를 보면 복잡하다.

    메이플 – 느리다. 쓰지 마라.

  • 행복은 성적순이 아니다


    http://news.naver.com/main/ranking/read.nhn?mid=etc&sid1=111&rankingType=popular_day&oid=001&aid=0007759308&date=20150728&type=1&rankingSeq=1&rankingSectionId=104


    http://www.hani.co.kr/arti/society/society_general/702095.html

    왠지 비교되는 두 기사..


    http://news.naver.com/main/read.nhn?mode=LSD&mid=shm&sid1=104&oid=032&aid=0002619791

    그리고 하나 더.

    살다보면 어쩌다 보니 행복하지 않을 수는 있다. 하지만 행복해지는 방법은 알고 있어야 하고, 행복이 뭔지는 알고 있어야 할 것 같다. 이거야말로 조기교육을 해 줘야 하는데.

  • 그래프 따는 프로그램


    http://digitizer.sourceforge.net/

    This open source, digitizing software converts an image file showing a graph or map, into numbers. The image file can come from a scanner, digital camera or screenshot. The numbers can be read on the screen, and written or copied to a spreadsheet.

    The process starts with an image file containing a graph or map. You add three axis points to define the axes, then other points along your curve(s).The final result is digitized data that can be used by other tools such as Microsoft Excel and Gnumeric.

    Engauge (from en “make” and gauge “to measure”) verb meaning to convert an image file containing a graph or map, into numbers.

    The term “Engauge” in Engauge Digitizer was invented for this project, since there seems to be no similar term in common use.

    Why Would You Need This Tool?

    Here are some real-life examples:

    You are an engineer with some graphs in decades-old documents, but you really need the numbers represented in those graphs so you can do analyses that will determine if a space vehicle is safe to fly.

    You are a graduate student gathering historical data from charts for your thesis.

    You are a webmaster with visitor statistics charts and you want to do statistical analyses.

    You ride a bike or boat and want to know how much distance you covered in your last trip, but you do not have an odometer or GPS unit. However, you do have a map.

    Nice Features

    Automatic curve tracing of line plots

    Automatic point matching of point plots

    Automatic axes matching

    Automatic grid line removal for improved curve tracing

    Handles cartesian, polar, linear and logarithmic graphs

    Support for drag-and-drop and copy-and-paste makes data transfer fast and easy

    Image processing tools highlight data by removing grid lines and backgrounds

    Status bar suggestions guide beginners

    Context sensitive popup help windows reveal explain feature of the user interface

    Tutorials with pictures explain strategies for common operations

    Browser-based user manual is extensive yet easy to navigate

    Preview windows give immediate feedback while modifying settings

    Dates and times are imported with the Date/Time Converter

    Import support for common image file formats such as BMP, GIF, JPEG, PNG and XPM

    Export support for common software packages such as Microsoft Excel, OpenOffice CALC, gnuplot, gnumeric, MATLAB and Mathematica

    Engauge is available for a wide variety of platforms (Linux, Mac OSX, Windows)

    Engauge Digitizer is completely open source and free courtesy of Sourceforge, Github, Digia and FFTW

    좋아보인다. 언제고 쓸일이 있을듯.

  • 에필로그

    메르스 사태가 진정되었다고 생각하는지 이제 언론이 문제점을 분석하는 기사들을 내놓기 시작하고 있다. 하지만 아마 아무것도 변하지 않을 것이다. 그렇게 수십년을 아무것도 변하지 않은 채 살아왔으니, 앞으로도 아무것도 변하지 않을 것이라 예측할 수 있다.

    이런일이 반복될수록 사람들은 더더욱 자기 자신의 앞길만 신경쓰고 남들을 외면하게 된다. 그럼 세상은 보다 더 살기 힘든 곳이 되고, 높으신 분들 배만 불려주는 세상이 될 것이다. 그리고 그렇게 살다가 힘들면 다들 스스로 죽어가겠지.

    나라가 만들어진지 60년만에 뭔가 기가막힌, 살기 좋은 나라가 될 것이라 기대하는 것은 무리였을 것이다. 물론 내가 지금 먹고사는데는 아무 지장이 없다. 하지만 그렇다고 그냥 넘어갈 수 없는 일도 많다.

    내가 성수대교 붕괴 현장에 있었다고 생각해 보고, 내가 삼풍백화점 붕괴 현장에 있었다고 생각해 보자. 내가 세월호에 타고 있었다고 생각해 보고, 내가 메르스 환자와 같은 병실에 누워 있었다고 생각해 보자. (당장 떠오르는 사건만 해도 이만큼이다.) 문제는 바로 이 부분에 있다. 지금 우리나라는 이런 사고가 당장 나에게 일어나도 전혀 이상하지가 않다. 설마? 라고 생각하는 사람들은, 저 사건들의 피해자중에 높으신 분들이나 그 관계자가 있었나 한번 생각해 보자. 내 기억에는 없다. 그리고 우리는 높으신 분들의 관계자가 아니다.

    물론 어떤 사람들은 이것도 상상이 안 갈정도로 상상력이 빈곤해졌거나, 이것을 상상해 보는 것이 사치일 정도로 힘든 세상을 살고 있을 수도 있다. 그것이 그 사람의 잘못은 아니다. 그렇게 일부러 힘들게 살고 싶었을리가 없을테니까. 그렇게 힘든 사람이 그렇게 힘든 삶을 사는 것은, 그 사람 나름의 최선의 선택을 했음에도 불구하고 세상과 사회가 도와주지 못해서 그런 상황일 수도 있으니까. 아니면 높으신 분이거나.

    그러므로 아무것도 변하지 않을 것이다. 여전히 나는 설마 설마 하며 오늘을 살아갈 것이고. 그러다가 내가 앞으로 닥쳐올 또다른 대형 사건의 주인공이 되었을 때, 현실은 영화랑 다르다는 걸 느꼈을 때, 조금 후회할 수 있겠지만 이미 늦을 것이다. 아니, 그걸 후회하기에는 그 순간 이후로 남은 삶이 너무 짧을 수도 있을 것이다.



    사실 우리나라 정부의 문제점은 뭔 말만 하면 선동질이고 모이기만 하면 폭동이라고 몰아붙이는 데 있다. 국민이 정부 욕하면 좀 가만히 듣고 있어라. 그게 소통이다.

  • 세제:드럼용과 일반용

    마트에 갔더니 세제가 있다. 일반용과 드럼용으로 구분되어 있다.



    그래서 뭐가 다른가 살펴보니.



    색깔만 다르다.



    아니 또 다른 것은 사용량만 다르다.

    드럼용과 일반용의 차이는 많이 넣으면 일반용 적게 넣으면 드럼용이다. 드럼세탁기가 세제를 적게 사용하기 때문인 것 같은데, 똑같은걸 포장만 바꿔서 다르게 파는 건 왠지 이상하다. 그냥 일반/드럼 세탁기 겸용이라고 하고 포장을 하나로 통일하는 것이 생산비용 측면에서 더 싸게 먹히지 않을까?

    가격은 똑같고. 용량도 똑같고. 물질도 똑같고. 단지 포장 색깔과 사용량만 다르다.

    옆에 있던 다른 회사(라기엔 생산자는 같지만) 드럼용이 50원 더 쌌다.

    뭐지. 이상하다.

  • SEM 파일 처리

    Gatan 사의 전자현미경으로 뭘 찍고 저장하면 dm3 파일형식으로 저장하게 되는데, 이걸 읽어오려면 전자현미경 회사에서 준 정품(?) 프로그램을 쓰든지, 아니면 다른 오픈소스 프로그램을 이용할 수 있다.


    http://blake.bcm.edu/emanwiki/EMAN2/Install/BinaryInstall

    EMAN이라는 프로그램을 써야 하는 것 같다. 이게 근데 파이썬 프로그램이다보니 설치가 꼬여서 포기. 난 이래서 파이썬이 싫다. 내가 프로그램 만들기는 쉽지만 누굴 줘서 쓰게 하려면 나도 삽질 그쪽도 삽질…

    자바는 더 싫어하긴 하지만, 그래도 이쪽은 일단 자바 런타임을 설치해 두면 쉽긴 하니까.


    http://imagej.nih.gov/ij/

    여기서 설치한다.

    그냥 설치만 하면 dm3 파일을 읽어오지 못하는데 (그냥 까만 화면만 나옴)


    http://imagejdocu.tudor.lu/doku.php?id=faq:general:which_file_formats_are_supported_by_imagej

    여기서 보니 dm3 파일을 지원한다고 해서 찾아들어가 보니,


    http://rsb.info.nih.gov/ij/plugins/DM3_Reader.html

    어느 친절하신 분이 개발한 dm3 플러그인을 설치하면 된다. 이 플러그인은 Class 파일을 다운받아서 ImageJ 파일들이 있는 디렉토리의 plugin 디렉토리에 넣고 ImageJ를 다시 실행시키면 된다.

    이 모든 정보는


    http://cryoem.ucsd.edu/microscopes/DM3.shtm

    여기서 알 수 있었다.