2020년 1월 23일 목요일

커맨드 라인 환경 세팅

리눅스나 맥에서 커맨드 라인 환경에서 작업을 위해 세팅하는 것들:
  • zsh을 설치하고 oh-my-zsh을 설치한다.
  • pyenv를 설치한다.
  • export PYTHON_CONFIGURE_OPTS="--enable-shared"
  • python 최신 버전을 설치한다.
  • pip install pynvim
  • nvim 최신 버전을 설치한다.
  • EverVim을 설치한다.
  • YouCompleteMe를 빌드한다.
    • cd ~/.vim/bundle/YouCompleteMe
      ./install.py --all
  • vim을 실행해서 plugin들 설치

 

2022.4.9 

pyenv를 사용하는 경우

rm -rf ~/.pyenv/versions
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.9
# now run YCM install script 
EverVim config에 ycm이 사용할 python version path를 지정한다. 
let g:ycm_path_to_python_interpreter = '/Users/ysh/.pyenv/versions/bdweb/bin/python'
EverVim config는 vim 실행 후 [c].
nvim을 사용하는 경우 pynvim 설치해야 한다.
 
 

2020년 1월 22일 수요일

Vim에서 Key mapping 확인하기

default key map 목록

:help index

Nomal, visual, select와 operator pending mode의 key map 목록

:map

Insert와 command mode의 key map 목록

:map!

특정 모드의 map을 보기 위한 명령들

:nmap - Display normal mode maps
:imap - Display insert mode maps
:vmap - Display visual and select mode maps
:smap - Display select mode maps
:xmap - Display visual mode maps
:cmap - Display command-line mode maps
:omap - Display operator pending mode maps

참고 페이지

2020년 1월 20일 월요일

36시간 단식

지난 주 월요일의 24시간 단식에 이어 이번 주는 36시간을 목표로 단식을 하고 있다.

일요일 저녁 8시에 끝난 저녁식사 이후 화요일 오전 8시까지 36시간.

--

단식은 무리없이 끝났다. 어제부터는 약간 미열이 느껴졌다. 찾아보니 두통이 오는 경우 염분 부족 때문일 거라고 한다.

2020년 1월 18일 토요일

해피해킹 키보드 러버돔 교체

얼마 전 데려온 해키해킹 프로2의 키압이 무겁게 느껴진다. 검색을 좀 해보니, 한성에서 판매하는 실리콘 러버돔으로 교체하는 방법이 있다. 한성 홈페이지에서 35g짜리로 구입.

해피해킹 프로2의 분해는 쉽다. 그동안 아이맥 분해 조립을 많이 해서 그런가..

교체할 실리콘 러버돔 35g을 자르는 작업이 더 오래 걸리고 귀찮다. 뚫려있는 나사 구멍을 막지 않도록 러버돔의 위치를 잡는 데서 약간 시행착오는 있었지만 성공적으로 이식을 마쳤다.

손가락에 느껴지는 무게는 정말 많이 줄었다. 기존에 비해 너무 많이 줄은 것 같기도 한데, 손가락에 힘을 많이 주지 않아도 되니 편하다.

기존에는 100원짜리 동전 12개를 올려야 눌릴까 말까 하던 것이 이제는 8개만 올려도 키가 눌린다. 100원짜리 동전의 공식 무게는 5.42g라고 하니 12개는 64.04g이고 8개면 43.36g이다. 해패해킹 키보드 프로2의 키압이 원래 45g이라고는 하는데 8개면 비슷한 키압이 된 것 같다.


교체하기 전 원래 러버돔

현재 고무링 작업이 되어 있는데, 도각도각 소리가 좀더 나도록 나중에 생각나면 고무링을 빼보려고 한다.

2020년 1월 11일 토요일

2020년 1월 7일 화요일

One Program Written in Python, Go, and Rust

https://www.nicolas-hahn.com/python/go/rust/programming/2019/07/01/program-in-python-go-rust/

Python, Go, Rust를 재밌는 글. Go와 Rust에 대한 특징을 잘 정리했다.

Static vs dynamic type system.
Somewhat like giving instructions to someone who always stops you to ask you to clarify what you mean, versus someone who always nods along and seems to understand you, though you’re not always sure they’re absorbing everything.

Rust

I also started with the book instead of just attempting to dive in headfirst. This was massively helpful, and probably the best introduction to any programming language I’ve ever experienced.

Haskell과 Rust에 대한 글

Haskell and Rust

https://www.fpcomplete.com/blog/2018/11/haskell-and-rust

몇부분 발췌.

Haskell works exceptionally well as an application language, especially for web applications and networked servers. Haskell has seen productive use in everything from financial technology to non-profit web platforms. We believe Haskell excels when you want to be able to maintain quality and maintainability without compromising developer productivity.

Rust is stronger for systems programming, embedded, game development, and high-performance computing. Rust is more reliably performant than Haskell, relying less on compiler magic and more on zero-cost abstractions. This emphasis means that the designers try to introduce as much programming convenience as possible where it won’t involuntarily reduce performance. Rust’s Iterators is an excellent example of this. Haskell tries to obtain some of these benefits with the use of developer-written rewrite rules which are notoriously brittle and hard to debug.

Haskell is going to be stronger when you need maximum productivity when going from a prototype to a production-ready system that can nimbly handle functional and infrastructural changes. Rust can be a better choice when you can plan a bit more and are willing to sacrifice some productivity for better performance or because your project requires a fully capable systems language.

더 읽을거리


Go와 Rust를 간략하게 설명하는 글.

어떤 글을 번역한 블로그를 봤다. Rust와 Go에 대한 짤막한 정리. 명쾌하다.

Go는 더 좋은 Java/C#이며, Rust는 그렇지 않습니다. 엔터프라이즈 소프트웨어 개발에 Go가 가져올 수 있는 장점이 가비지컬렉터을 없애며 생산성을 떨어뜨리는 것보다 큼은 자명합니다.
Rust는 더 좋은 C++입니다. 만약 당신도 Go가 더 좋은 C라고 들었다면 그것은 옳지 않습니다. 내장된 가비지컬렉터와 런타임이 있는 언어는 절대 C와 비교될 수 없습니다. 그리고, Rust도 C가 아닌 C++와 비교되어야 합니다.