분류 전체보기
-
Bash에서 사용자 자동 완성 기능 개선하기Programmer/Computer Skills 2019. 4. 4. 18:35
Ubuntu Linux의 bash의 자동 완성은 /etc/bash_completion.d/ 아래 위치한다. rustup의 공식 저장소에서는 자동 완성 기능을 활성화 하는 방법을 아래와 같이 안내하고 있다. rustup completions bash > /etc/bash_completion.d/rustup.bash-completion 위 방법은 일반적인 Rust 설치 권한 이상을 요구하는 문제가 있다. Rust를 대개 개인의 홈디렉토리에 설치한다. 즉, 관리자 권한이 없어도 설치하고 사용할 수 있다. 반면, /etc/bash_completion.d/ 디렉토리는 관리자 권한을 요구한다. 간단한 해결 방법으로는, ~/.bash_completion 파일에 추가하는 방법이 있다. 개인 명령어의 모든 자동 완성을 ..
-
사이비 환경 과학자Life/Society 2019. 3. 25. 11:41
이 과학자란 분이 미세먼지가 중국의 영향이라고 말할 수 없다고 한다.중국의 영향이 정확히 몇%인지 말할 수 없다. 정확한 유입 경로가 파악이 되지 않았다. 미세먼지는 측정하는 확실한 방법이 개발되지 않았다. 따라서, 미세먼지가 중국의 영향이라고 말 할 수 없다. 나는 그렇게 생각하지 않는다. 상관관계나 연관성을 말할 수 있다. 정확하지 않더라도 범위나 확률을 말할 수도 있다. 이를 토대로 가설을 세울 수 있다. 편서풍과 미세먼지가 일치하는 것을 보면 상관관계가 있다. 아이가 있는 아빠라서 환경에 관심이 많다. 미세먼지가 있는 날과 없는 날 자주 기상정보를 찾아봤다. 편서풍이 부는 날 미세먼지 농도가 높았고, 다른 방향의-예를 들면, 시베리아에서 불어 오는- 바람에는 미세먼지 농도가 낮았다. 물론 내가 정..
-
Magit으로 원격저장소의 브랜치 가져오기Programmer/Emacs 2019. 3. 20. 14:51
이 글은 emacs의 git 모듈인 magit을 대상으로 한다. 커맨드라인 git으로 원격 저장소의 branch를 가져오는 설명은 이 링크를 참조한다. M-x magit-status를 입력하여, magit으로 들어간다. Head: master Make perfect Merge: origin/master Make perfect Recent commits -UUU:%%--F1 magit: tiny-tool Top L4 (Magit) --------------------- 'b'를 누르면 magit popup이 뜬다. onfigure master d branch.master.description unset u branch.master.merge refs/heads/master branch.master.remo..
-
날아갈 듯 가벼운 mg 편집기Programmer/Emacs 2019. 2. 28. 11:02
시스템 운영을 하는데 있어서 이맥스는 좀 무겁다. 간단한 설정 파일 편집에는 적합하지 않다. 대안으로, `nano', `vi(m)'이 있다. 그런데, `nano'는 익숙하지 않은데다 배우기도 싫다. `vi(m)'은 이단으로 교리에 위배된다. 여기에 `mg'라는 가벼운 유사 이맥스가 있다. 명령이 떨어지기 무섭게 커서가 떨어진다. 주요 키바인딩(단축키)이 이맥스와 같다. 이맥스 사용자가 익숙하게 사용할 수 있다. 마이너한 오픈 소스의 문제 중에 유지 보수가 잘 이루어지지 않는 것이 있다. `mg'는 그런 점에서는 안심해도 된다. OpenBSD의 요소로 간주되어 유지보수를 잘 해주고 있다. 단순 편집기 기능 이외에 다중 윈도우, dired, ctags, cscope와 같은 유용한 기능도 지원한다. 우분투에서..
-
오픈 소스는 공짜가 아니다.Life/Software Engineer 2019. 2. 22. 12:57
부제 : 오픈 소스의 숨은 비용. 누구에게나 공짜는 매력적인 단어다. 손해 볼 것 없다는 느낌을 준다. 비용이 '0'이기 때문에 이익이 개미 눈꼽 이상만 있으면 무한의 가성비로 생각한다. 그러나, 표면적으로 드러난 금전적인 비용만을 계산한 오류이다. 숨은 비용까지 따저봐야 정확한 가성비를 알 수 있다. 학습과 유지 보수, 사용 비용은 직접적으로 드러나지 않는 숨은 비용이다. 배움의 비용은 빈약한 문서와 교육에서 기인한다. 많은 상용 제품은 문서와 교육을 포함한다. 반면, 오픈 소스에는 교육과 문서의 의무가 없다. 코드를 보고 파악하거나 블로그의 조각 글을 통해서 배워야 한다. 상대적으로 많은 시간과 노력이라는 학습 비용이 들어간다. 오픈소스에는 유지 보수의 책임이 없다. 누군가 해결할 때까지 문제를 안고..
-
Github에서 분기(fork)한 저장소를 Magit으로 원본과 동기화하기Programmer/Emacs 2019. 2. 19. 10:07
이 문서는 원본 저장소에 푸시 권한이 없는 개발자가 분기(fork)이후 원본과 동기화하는 방법을 설명한다. 도구는 이맥스의 git 확장 모듈인 magit을 사용한다. 커맨드라인 git을 활용한 문서는 많다. 이런 저런 문서를 참고하라. 이 글은 magit을 활용하여 이를 해보려고 한다. Head: master Make perfect Merge: origin/master Make perfect Recent commits -UUU:%%--F1 magit: tiny-tool Top L4 (Magit) --------------------- 'y'을 누러 원격 저장소를 확인해보자. Branches (2) develop origin/develop Do something master origin/master Mak..
-
러스트(Rust)를 위한 SyntaxHighlighter 3.0 플러그인 개선Programmer/Programming 2019. 2. 14. 18:27
2019년 Rust로 개발을 시작했다. 새롭게 알게 된 내용을 블로그에 기록하고 있다. 러스트 코드를 예쁘게 보여줄 기능이 필요했다. 아쉽게도, 내가 사용하는 SyntaxHighlighter의 기본 패키지는 러스트를 지원하지 않는다. 지난번 리스프 패키지 작성과 마찬가지로 서드파티 패키지를 추가해야했다. 운이 좋게도 누군가 만들어서 공개했다. https://silight.hatenablog.jp/entry/2015/06/18/211724 써보니 그리 나쁘지 않았지만, 부족한 부분이 엿보였다. 이전 글을 작성하면서 발견한 멀티라인을 추가했다. 2019년 2월 14일에 raw string, byte string을 추가했다. 코드는 https://github.com/unipro/shBrushes에 있다. le..
-
러스트와 다른 언어의 멀티라인 처리 비교Programmer/Programming 2019. 2. 12. 14:38
새줄문자가 들어간 스트링 리터럴 출력 Rust fn main() { println!("In the rooom the women come and go, Singing of Mount Abora"); } 결과 : 스트링 리터럴의 새줄문자와 공백문자를 그대로 출력 In the rooom the women come and go, Singing of Mount Abora C #include int main() { printf("In the rooom the women come and go, Singing of Mount Abora"); putchar('\n'); } 결과 : 빌드 실패 cc -Wall -O2 -o prt_nl_str prt_nl_str.c prt_nl_str.c:5:12: warning: miss..