[카테고리:] 컴퓨터

  • 10000줄 마다 자르는 프로그램

    친구 요청으로 작성함. wx는 필요함.

    # -*- coding: utf-8 -*-

    import wx

    import os

    import sys

    reload(sys)

    #sys.setdefaultencoding(‘cp949’) # if you use windows, uncomment this line. if not, keep this line commented.

    def converting(f):

    src=open(f, “r”)

    header = src.readline()

    iteration = 0

    eof = “a”

    while not (eof==””):

    tar=open(f[:-4]+”_”+str(iteration)+”.csv”, “w”)

    tar.writelines(header)

    for i in range(10000):

    eof = src.readline()

    if eof == “”:

    break

    tar.writelines(eof)

    tar.flush()

    tar.close()

    iteration+=1

    src.flush()

    src.close()

    class mainframe(wx.Frame):

    def __init__(self, *args, **kwds):

    kwds[“style”] = wx.DEFAULT_FRAME_STYLE

    wx.Frame.__init__(self, *args, **kwds)

    dig = wx.FileDialog(None, message=”Choose data files”, style = wx.FD_MULTIPLE)

    if dig.ShowModal() == wx.ID_OK:

    for fn in dig.GetPaths():

    converting(fn)

    class conv(wx.App):

    def OnInit(self):

    wx.InitAllImageHandlers()

    main = mainframe(None, -1, “”)

    self.SetTopWindow(main)

    main.Show(True)

    main.Show(False)

    exit()

    return 1

    if __name__ == “__main__”:

    conv = conv(0)

    conv.MainLoop()

  • 리눅스에서 sigma tv 설정

    우분투에서는 /etc/modprobe.d/ 디렉토리 밑에 새로 설정파일을 만들어야 하더군요.

    즉, 제 티비카드가 vast pci tv card 이기에

    /etc/modprobe.d/vast_pci_tv 라는 새로운 텍스트파일을 만든 후에

    제가 가진 티비카드에 맞춰 나름대로 삽질해서 꾸민

    alias char-major-81 videodev

    alias char-major-81-0 bttv

    options msp3400 mixer=1

    options bttv bttv_gpio=1 gpiomask=0x0f audiomux=1,0x0f,0,0,0x0f tuner=11

    http://tracypak.namoweb.net/?doc=bbs/gnuboard.php&bo_table=10&sselect=&stext=&ssort=wr_name&sorder=asc&soperator=&page=2&wr_id=37

    http://tracypak.namoweb.net/?doc=bbs/gnuboard.php&bo_table=10&sselect=&stext=&ssort=wr_subject&sorder=asc&soperator=&page=2&wr_id=61

    https://kldp.org/node/75102

    http://likesam.tistory.com/16

  • Scipy / numpy 설치

    파이썬에서 모듈 설치하는 방법이 pip로 바뀌면서 이래저래 삽질을 하게 되었다.

    scipy: http://sourceforge.net/projects/scipy/files/scipy/ 에서 설치

    numpy: pip install numpy 명령어로 설치. pip는 python디렉토리의 scripts 에 있다.

  • Asus N550JV SSD문제

    아수스의 노트북 N550JV에 SSD를 설치했을 때, 만약 부팅이 잘 되다가 안된다면…

    바이오스 셋업에서 Boot의 Launch CSM을 Enabled로 바꾸고, 다시 PXE OpRAM을 Enabled로 바꾸면 된다.

    참고:

    http://bigwavek.tistory.com/entry/ASUS-K95VJ-%EB%85%B8%ED%8A%B8%EB%B6%81-SSD-%EC%9E%A5%EC%B0%A9%ED%95%98%EA%B8%B0

  • 서.C




    <서.C>






    데드라인까지 코드를 통틀어;






    한점 버그가 없기를;






    컴파일 후의 워닝에도;






    나는 괴로워했다;






    *을 불러오는 마음으로;






    모든 포인터를 해제해야지;






    그리고 나한테 주어진 함수를;






    코딩해야겠다;






    오늘밤에도 손끝이 키보드에 스치운다;





















































    페이스북 생활코딩 그룹에 ‘쉽게 씌여진 C’가 올라왔길래 나도 패러디해서 하나 써 보았다. 원작은 물론 윤동주 시인의 ‘서시’






    https://www.facebook.com/groups/codingeverybody/permalink/902633099777227/










  • 윈8/8.1에서 bing 이 자동으로 뜨는 경우 해결하기

    레지스트리에서

    “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet\EnableActiveProbing”

    이 값을 0으로 바꾼다. 그리고 부팅을 다시 하면 된다.


    http://cricrishi.blogspot.kr/2014/03/stop-opening-bing-url-in-startup-of.html

    참고.

  • 감청


    http://news.naver.com/main/read.nhn?mode=LSD&mid=shm&sid1=105&oid=020&aid=0002686683

    다음카카오에서 카카오톡에 대한 감청영장의 집행에 협조하지 않고 있다는 소식이다.

    잘하고 잘못하고를 떠나서, 만약 감청 설비를 법제화 하여 설치하도록 한다면 사람들은 외국계 메신저 프로그램으로 거의 다 빠져나갈 것이다.

    프리즘이나 에셜론 같은 감청 장비처럼 네트워크에 돌아다니는 모든 패킷을 감시하는 시스템을 구축한다면 모를까, 외국계 메신저 프로그램을 사용하고 여기에 암호화를 함께 사용하면 영장이 있고 없고를 떠나서 감청은 그냥 불가능한 일이다.

    물론 범죄 수사를 위해서 통신내용을 열람하고 거기에 협조해야 한다는 것은 매우 설득력 있는 주장이다. 나 자신은 그 의견에 동의하지 않더라도, 다른 사람들이 동의하는 것을 막을 생각도 없다.

    하지만 현재 법 체계와 사법 체계가 기술의 발달을 따라가지 못하고 있는 상황에서, 이런식으로 감시 장치를 만든다면 당연히 사람들은 다들 떠나갈 것이다. 물론 범죄를 저지르지 않은 대다수의 선량한 사람들은 당연히 떠나갈리가 없겠지만, 문제는 범죄자들이 떠나갈 것이라는 점이다. 어떤 범죄자들은 떠나가지 않겠지만, 그런 멍청한 범죄자들은 조만간 도태될 것이고 당연히 외국계 메신저 서비스를 사용할 줄 아는 지능적인 자들만 남게 된다. 이런 사태를 막기 위해서 기술적으로, 행정적으로, 사회적으로 어떤 조치를 취해야 할 것인가에 대해서 생각하지 않고 무조건 법제화를 통한 감청 설비의 설치를 강제하게 된다면 사법 행정에는 전혀 긍정적인 영향을 남기지 못한 채 아주 자연스럽게 감시사회로 진입할 것이다.

  • 928 counter control program

    Written in labview.





    앞에 껍데기는 버튼만 잔뜩 있는 그런 프로그램인데, 뒤에 코드는 골치아프다. 터널증후군 걸릴듯.

  • 랩뷰쓰다 화나는 점 정리

    NI에 건의해봐야 택도 없을 거고. 데스노트에 적어둘 것도 아니고. 그러니 블로그에 적어둔다. 계속 추가될 듯.

    1. 100% 마우스 사용.

    2. 자료형 변환.

    3. 화면이 커야 한다.

    4. 그 결과, 매우 복잡해졌다.



    if roifrom-roito < 0 then break 라는 조건문과





    SET_ROI “+str(


    roifrom/calibration)+”,”+str(


    (


    roifrom-roito)


    /calibration) 이라는 문장을 만들기 위해 이 아이콘들을 다 갖다 배열하고 선을 이어야 한다. 알아보기도 어렵고, 처음에 배치하는 것 부터 문제가 시작된다.




    5. 프로퍼티 노드를 복사해서 붙여넣기 하면 레퍼런스를 잊어먹는다. 망할.


    6. 그래서 질질 끌고 가야 하는 애로사항이 있다.


    7. 디버깅할 때 브레이크 포인트 주면 브레이크 포인트로 무조건 이동한다. 토글이 필요하다.


    랩뷰는 어렵지 않다. 하다보면 짜증날 뿐이다.

  • 랩뷰 지옥

    나는 완벽한 프로그래밍 언어란 존재하지 않고, 만들려고 하는 프로그램을 가장 쉽고 빠르게 만들어 낼 수 있는 언어가 최고의 프로그래밍 언어라고 생각한다. 어쩌다보니 C, C++, VB.net, ASP, 매스매티카, 메이플, 매트랩, 파이썬, 랩뷰 등의 프로그래밍 언어들을 써 왔었다. 랩뷰는 인생에 쓸일이 없을 것이라 생각하고 일부러 안쓰려고 했는데 결국 그날이 오고야 말았다. 실험을 전공한 내가 잘못이지. 파이썬이 최악인 이유는 강제 들여쓰기와 암시적 형 지정때문이라고 생각했다. 뭐 어쩌다보니 지금 가장 자주 쓰는건 파이썬이기는 하지만. 하지만 아무래도 랩뷰를 내인생 최악의 언어로 바꿔야 할 것 같다. 일단 NI에서 제공하는 강력한 하드웨어 제어 기능과 연동되기 때문에 수많은 실험실에서 사용하고 수많은 상업 제품에서 널리 사용하고 있다는 부분은 다른 단점을 압도할 정도의 장점이기는 하다. 하지만 그 장점을 빼면, 프로그래밍 언어로서는 그다지 좋은 언어가 아니다.

    찾아보니 나만 싫어하는 것이 아니었다.

    Why I detest LabVIEW




    http://stackoverflow.com/questions/372557/what-specific-features-of-labview-are-frustrating-to-you

    위의 글에 내가 느끼는 문제점을 정말 똑같이(!) 짚어주고 있는데, 간단히 요약하자면 다음과 같다. (내 생각과 함께)

    1. 스파게티 코드. 프로그램을 만들다 보면 스파게티 코드라는 말을 많이 하는데, 랩뷰 코드를 보면 진짜로 스파게티 코드가 뭔지 알 수 있다. 진짜 여기저기 선으로 도배되어 있는데, 차라리 텍스트 코드에서 페이지업-다운으로 찾아다니는 것이 더 낫지, 눈으로만 봐서는 도저히 따라갈 수가 없다. 만들때는 어떻게든 만들겠지만, 디버그 할 때 눈알이 뽑힐 것 같은 고통을 느낄 수 있다. 처음부터 버그가 없게 만들면 되겠지만, 그건 불가능한 일이다. 최소한 나한테는 불가능한 일이다.

    2. 그림을 그려야 한다. 진짜로 그림을 그려야 한다. 빈공간이 없으면 옆으로 다 치워놓고 그려야 하고, 아님 옆으로 가서 그려야 한다. 물론 텍스트 코드에서도 빈공간을 만들어야 하긴 한다. 엔터 몇번 치면 되는 일이다. 랩뷰에서는 아이콘과 선들을 옆으로 치워야 한다. 컨트롤 키를 누르고 마우스 커서를 잡아끌면 빈공간이 나타나기는 하는데, 그럼 기존에 잘 정리해 두었던 코드가 엉망이 된다. 텍스트 코드에서는 엔터 두세번 쳤다고 해서 코드가 엉망이 되지는 않는다.

    3. 조건문, 반복문 테스트. 한번만 실행시켜서 어떻게 되는지 보고 싶을때, 텍스트 코드 언어는 if문이나 for문이 있는 그 줄만 주석처리 해 버리고 돌리면 되는데 랩뷰에서는 밖으로 복사해놓고 전선 정리를 해 줘야 한다. 안하면 에러난다.

    4. 느리다. 말할필요도 없이 C나 다른 언어에 비해서 느리다. 개발 속도가 빠르다는 장점이 있지만, 코드가 꼬일수록 고치기도 힘들어 진다는 점에서 바람직하지 않은 특징이라 성능에서 느린건 어떻게 할 수가 없다.

    5. 의도하지 않은 병렬처리. 요즘 성능 향상을 위한 병렬처리가 각광을 받고 있지만, 기본적으로 컴퓨터는 순차처리가 기본이고 병렬화는 의도적으로 고민해야 하는 부분이다. 이게 왜 자동화되기 힘드냐 하면, 병렬처리할 때 서로 다른 루틴들이 처리되는 순서를 임의적으로 정해버리는 경우 프로그램 작동이 꼬일 수가 있기 때문이다. 특히, 랩뷰는 실험 장비들을 다루게 되는데 실험 장치들이 작동하는 순서가 달라지면 실험을 망칠 수도 있고 사고가 날 수도 있기 때문에 이런 부분을 방지하기 위해서 굉장히 노력을 많이 해야 한다.

    6. 마우스 클릭. 개발을 해보면 알겠지만, 게임은 마우스로 하는게 편하지만 코딩을 마우스로 하는건 어려운 일이다. 빡친다.

    7. 유료다. 물론 좋은 툴을 돈받고 파는건 당연한 일이고, 랩뷰도 나름의 장점이 있고 그만큼의 가치를 하니까 돈주고 사서 쓰는 것이다. 하지만 무료로 사용할 수 있는 프로그래밍 언어도 많은데 랩뷰는 사용하기 위해서 무조건 돈을 주고 사야 한다는 점에서 이건 명백한 단점이다.

    그 외에도 많은 단점들이 있다. 나도 교수님이 쓰라고 하니까 쓰는 것이지 아니면 거들떠보지도 않았을 언어다. 아니면 외주 맡기든가.