이 블로그 검색

2018년 3월 29일 목요일

Vim plugin series 01 : Quick Scope (https://github.com/unblevable/quick-scope)


일단 제 점수는요 

개발자가 만든 설명서는 https://github.com/unblevable/quick-scope/blob/master/README.md 다음을 참조하면 된다. 


vim을 사용할 때, normal mode로 글자사이를 이동하는 방법은 다양하다. 그 중에 w키를 이용하여 'Word' or 'word' 를 이동할 수 있고, '(', '{'를 이용하여 문장과 문단 사이를 자유롭게 이동가능하다. 

문장과 문단사이는 글자가 많기 때문에 큰 이동이라 상관 없지만 w키는 한 줄 사이에서 움직이기 때문에 정확한 이동에 실패하는 경우가 잦다. w키를 몇번을 눌러야 원하는 곳으로 이동할지는 어렵기 때문에 결국에는 hjkl(화살표키)를 꾹 눌러서 vim의 장점을 퇴색 시키거나 또는 

f, F, t, T를 사용해서 처음만나는 글자로 이동 명령어를 주로 사용하게 된다. w를 사용할 때보다, 훨씬 정확한 이동이 가능하다. 


이 플러그인은 바로 이곳에서 시작한다. 

'word' 사이를 f키들을 이용하여 이동할 때, 각 word에 글자를 highlight하여 눈에 명확하게 던저주자는 것이다. 

다음 이미지는 개발자의 github에서 가져왔다. 

위와 같이 커서의 좌우에 있는 각 워드의 첫번째 글자 또는 두번째 글자를 highlight한다.  같은 글자가 머리에 동일하게 있다면 highlight 되지 않는 경우가 있고, 처음 만날 때와, 두번째에 다른 서식을 적용하여 이동에 도움을 준다. 

vim을 사용하지만 아직도 화살표나 hjkl만 가지고 이동한다. 당신은 아직 quick scope를 모르기 때문이라고 단언할 수 있다. 

vim과 emacs 입력기는 그 자체로도 강력하지만 plugin은 그 것을 더 강력하게 만들어 준다. 

당장 cscope를 깔아라. 그리고 vim plugin manager가 다양하지만 통합 설치 팩으로 설치하면 대부분 이 것이 깔리니 이 친구와 영원히 함께하라.  bug fix말고는 더 바뀔 것도 없다. 

당신의 normal mode key map을 바꾸지도 않고, 당신이 만들어놓은 syntax도 크게 건드리지 않는다. 단지 word에 글자 몇군대를 강조하여 단번에 이동을 도울 뿐이다. 

이제 당신은 mouse 없이 text입력하는 편리함을 알게  될 것이다. 

2018년 3월 9일 금요일

결국은 나의 LG G4가 사망했다. (무한 재부팅 현상)



뭐 9월에 충격으로 사망할 줄, 알았던 친구가 6개월이나 더 간 것을 보면
다행인 것일 수도 있겠지만,


강력한 충격도 겪고  물에 빠지고(5초도 안되서 살았음) 말리는 과정도 겪은 백전노장으로 살던 친구가 결국은 "제조사 결함"인 무한 재부팅으로 사망할 줄이야...
( 배터리 교환이나 악세사리 교환이 간편해서 어머니랑 같은 폰을 샀고, 벌써 그 폰은 두번의 무한재부팅을 겪어 무상 수리 받았음)


그렇게 사망을 하고나서는 그 전에 이겨낸 상황들 때문에,
(담당 직원들 말로는 보드를 보여 주면서 기판에 하얀색 점들을 부식이라고 부르던데... 물들어간 것의 결과는 맞지만 아무리 봐도 침점물이지만 그냥 부식이라고 부르자, 아니 전자체품인데 금속이 부속된 것을 보여줘야 하는것 아닌가?)

기판에 그러한 흔적이 있기 때문에, 무한 재부팅은 맞지만 자기들 본사로 이것을 보내도 바꿔주는 물건이 아니라 무상교환은 못해준다고 함.

그리고 말하는 것은 정품 보드로는 22만원, 리퍼 보드로드 13만원의 부품교체비용을 불렀음.

뭐 1년5개월 전에 2년 약정만 걸고 월25000대 요금으로 (월3천원 기계값 남은 물건) 구매한 물건을 이 시점에 저 정도 돈을 들여 바꿀 가치가 있나라고 누가 물어본다면 안 바꾼다고 할건데, 나도 마찬가지로 안빠군다고 하고 빠이빠이했다.


뭐 기판이라도 헝겊으로 닦아주지라는 마음이 있기는 한데, 직원이 배터리를 뺀 상태에서 아래에 usb를 꼽고나서 바로 확인 가능한거보면 정말로 부품쪽에 문제인 것이 확실하니 닦아준다고 달라지는 것은 없겠다.

뭐 실제로 무한 재부팅이 일어나는지 켜보는 과정도 없었던 것 보면, usb 꼽아보고 보드만 멀쩡하면 교환해주는 프로세스인 것 같기는 한데,


보드를 보고나서 하는 말이 결국은 사용자 과실이 있어서 교환 불가라는 건데, 고장난 원인은 내 과실과 아무런 상관이 없지만 내 과실이라서 안된다니 참으로 섭섭하고 우습다.

보드가 오래됐으면 제조사 결함이 있지만 물건 상태가 서로 다르니까 교환비용의 일부를 무는 식도 아니고, 제조사 결함이지만 물건상태를 보니 니 과실이(고장과 상관없는) 있으니 니가 '전부'를 물어내라 라고 하면?? 뭐 어쩌라는건지.

삼성은 배터리가 폭발하니까 결국 리콜하던데, 안전과만 상관 없으면 제조사 결함이 과도하고 발생해도 리콜안하니까 참 좋네... 
  아 물론 삼성은 초반에 인정안하려고 하던 모습 때문에 논란이 있었지만 '미국'에서 사건 터지니까 방법이 없긴하더라...
   모 회사는 급발진이 있어도, 리콜 안하는거 보면 그나마 LG가 양반이긴 한데...  아 다음 핸드폰은 어느 회사로 가야하는가...


LG가 좋긴한데, 섭섭하니까 딴데로 가고 싶은 마음이 조금씩 자란다.
  노크온 때문에 어차피 다른 회사로는 못갈 것 같기는 한데... 일단 옛날

Vu3로 유심을 옮기고 쓰다가 생각해보자.

2018년 3월 8일 목요일

이번에 docker라는 것을 처음 깔아보았다. 이제 길을 찾아볼까..




이런 것을 제공하지 않더라도, linux에서는 chroot로 비슷한 흉내는 낼 수 있었던 것 같은데,

2010년인가 cgroup이라는 기술(?현재 위키로 배우는 중)이 커널에 포함되고 
간편하게 자원을 분리할 수 있게 되었나보다. 


그러다 보니 어제 보던 Xdmx 관련한 문서를 또 보게 된다.
그 와 관계해서 xhost라는 툴을 열심히 삽질 했는데 관련한 부분이 또 나온다. 

docker는 그걸 간편하게 해주고, github과 같은 저장소로 특정 어플리케이션들을 안정적으로 구동할 수 있는 환경들을 모아 놓고, 사용하게 해주는 툴인듯 하다. 

그러고 나서는 docker에 올라간 프로세스는 xhost를 통해, 자원을 낭비하지 않고, 직접 local X . server display에 접근해서 gui 정보를 통신하는 듯 하다. 

먼가 굉장히 독특하다. 


내가 계속 삽질한 sun grid engine도 ubuntu에서 깨진 의존성(특정 라이브러리 하나가 어떻게 되서 실행이 불가능한 상황)도 쉽게 해결될 것 같다. 

하지만 내가 이것에 관해 수없이 구글링 했지만 docker나 비슷한 놈들을 추천해준 놈이 없는 걸 봐서, 기대는 어렵지만 그렇다면야 다른 배포판 redhat 계열등으로 테스트하면 되는 친구가 하나는 있을테니 내가 이쪽에 선두주자가 될 수도 있을 것이다. 

연구실에 남는 컴퓨터들이 정말 오래들 되었고, 하나하나씩 죽어간다. 수명이 10년이 넘은 친구도 있고,  gtx480달고 있던 컴퓨터도 파워가 죽을려고하고, 메인보드도 오늘내일 하고, gtx480은 탄내가 나는 상황이다 . 이놈은 상대적으로 젊은 놈인데도 이러는 것 보면,

연구실 컴퓨터들은 계속 죽어갈 텐데, 그래도 살아있는 동안에는 계산용으로 가치가 있다. 

많은 시간을 필요로 하는 작업들, 여러 ensemble data가 필요해서 반복적으로 돌리고 내가 까먹었을 때, 찾을 수 있는 data를 만들친구로 변환을 할 필요가 있다. 

결국은 sge를 깔아서 중앙에서 이들을 통제하는 환경을 만들 필요가 있다. 
분명히 소규모 환경에는 sge를 대체할 만한 방법이 많다. 

하지만 제대로 리소스 관리해주고 job queue를 만들어 미리 할 일을 넣어주고해서 최고의 효율을 계속 발휘해주기까지는 어렵기에 이 시스템을 구축하려고 여러번 시도했다. 

이번에는 성공하려나, 일단 이렇게 하기로 결심하고 나중에 블로그 글을보고 시도를 해야겠다. 


일단 docker를 통해 한글 2008체험판을 까는 것을 성공했다. 
이전에 깔고 실행할 때마다, 없다고 요동치는 라이브러리들을 직접 떠먹여가며 실행한 적이 있지만, 다시 시도했을 때는 그렇지 않았다. 

내가 시도를 하는 상황들이 다 다르기에 그럴 것이다. 다양한 상황에서 원하는 결과를 매번 같이 낼 수 있다는 것은 상당한 축복이다. 
이 것을 가지고 할 수 있는 일이 많을 것 같다. 

wine과 같은 툴도 playonlinux로 통제해서 실행하는 방법으로 수많은 윈도우 프로그램을 쉽게 실행시킨다. 그래도 부족한 부분이 있다. 이 부분은 docker나 cgroup기술을 사용하는 친구들을 어떻게 조합하면 누군가 한번만 성공해도 모두에게 동일한 방법을 제공할 수 있을 것 같으데, 상당히 흥미롭다. 

가장 많이 본 글