Ubuntu(Linux) cmake 최신 버전 설치하기

1. cmake 다운로드 홈페이지로 이동합니다. https://cmake.org/download/ Download | CMake Current development distribution Each night binaries are created as part of the testing process. Other than passing all of the tests in CMake, this version of CMake should not be expected to work in a production environment. It is being produced so that us cmake.org 2. 최신버전 다운로드 파일의 링크를 복사합니다. 3. wget을 통해 로컬 공간으로 다운로드합니다. wg..

Git branch 확인하고 생성하기

현재 내가 작업하고 있는 git branch를 확인합니다. >>> git branch * master 단독 branch를 새로 만들려면 새로운 이름을 지정해줍니다. git branch newbranch 다른 branch에서 분기를 생성하려면 뒤에 해당 branch를 붙여줍니다. >>> git branch devel master 이렇게하면 branch가 새로 생성됩니다. >>> git branch * master newbranch

Linux/Ubuntu(리눅스/우분투) 하위 "폴더만" 삭제하기

우분투에서 뭔가 깡그리 삭제할 때에는 보통 rm -rf * 를 사용합니다. 그러나 가끔은 현재 디렉토리의 파일 말고 폴더만 삭제하고 싶을 때가 있습니다. 그럴땐 아래 명령어를 사용합시다. 현재 폴더에서 하위 폴더 모두 삭제 ll | grep ^d | awk '{print $NF}' | xargs rm -rf 특정 폴더에서 하위 폴더 모두 삭제 ll /폴더/경로/ | grep ^d | awk '{print $NF}' | xargs rm -rf

Ubuntu rm: descend into write-protected directory 'X', 파일 권한 코드를 알아보자

우분투(리눅스)에서 rm 명령어를 통해 뭔가 삭제할 때, 다음 메시지가 뜰 때가 있습니다. 개인 컴퓨터보다는 주로 서버에서 공동작업을 할때 자주 마주 하실 겁니다. rm: descend into write-protected file/directory '파일명 or 폴더명'? 돌려 말하자면 "쓰기 금지된 파일(or 폴더)인데 괜찮냐?"라는 의미입니다. 이는 누군가가 해당 파일에 쓰기(write) 권한을 주지 않았기 때문입니다. 디렉터리의 권한을 확인해봅시다. 리눅스의 권한 코드는 drwxrwxrwx 총 10자리입니다. 이는 다음과 같이 끊어서 읽어야 합니다. d / rwx / rwx / rwx d: 해당 object가 디렉터리(폴더)인지 나타내 줍니다. 첫 번째 rwx: 해당 파일의 소유자의 권한 (위 그..

vscode에서 black으로 code format 자동화하기 (python)

이번 게시물에선 python의 강력한 code formatter인 black을 vscode에서 사용해보도록 하겠습니다. 기업의 개발팀에서는 큰 규모의 코드를 다루다 보니, 코드 통일 및 재사용을 위해 code convention을 진행하고 code style이나 format를 설정합니다. black은 파이썬 코드 스타일인 pep8에 따라 코드를 자동으로 포맷해줍니다. 따라서 일일이 손으로 형식을 맞춰줄 필요가 없고, 생각보다 직관적으로 코드를 변환해줍니다. 0. vscode에 python Extension 설치하기 이 단계는 vs code를 사용하는 python 개발자라면 필수이기 때문에 생략하겠습니다. 1. 현재 작업 환경에 black 패키지 설치하기 우선 pip를 통해 black을 설치합니다. 호스트..

Ubuntu 20.04에서 swap 메모리 설정하기

Swap 메모리는 하드디스크의 일부를 RAM처럼 사용하도록 만들어진 메모리입니다. 지금 사용중인 컴퓨터의 메모리를 초과하는 프로그램을 돌리거나 딥러닝 네트워크를 학습시킬 경우에, 일부 용량을 Swap 메모리로 설정해놓음으로써 메모리가 run out 되는 것을 막을 수 있습니다. RAM 4GB에 Swap 메모리 2GB를 설정한다면, 총 6GB의 메모리를 사용할 수 있는 것입니다. 그러나 RAM 장치가 아닌, HDD 장치를 사용하는 것이기 때문에 읽고 쓰는 속도가 급격히 느려집니다. Best option은 그냥 가용할 수있는 RAM 용량을 넘지 않게 프로세스를 조정하는 것이 좋습니다. Ubuntu에서는 이 Swap 메모리를 쉽게 설정할 수 있습니다. 적어도 학습 도중에 터지지는 않게 설정할 수 있는 것이지요..

docker container에서 디스플레이를 못찾는다?

개발 혹은 머신러닝 환경을 분리하기 위해 docker container를 쓰는 분들이 있으실 겁니다. 라이브러리뿐만 아니라 운영체제까지 별도로 관리할 수 있어 편리한 기능이죠. 그러나 기본적으로 docker는 터미널 기반으로 동작하기 때문에 UI를 가지고 있지 않습니다. 그 때문에 프로그램에서 UI를 띄우거나, opencv를 이용한 이미지 파일을 띄울 때 (ex. cv2.imshow(img)) 출력할 디스플레이를 찾지 못해 에러가 발생하곤 합니다. 보통은 can't find display~ 나 fails to open display~ 등의 에러 메시지가 출력됩니다. 이를 해결하려면 container를 run 할 때 local 디스플레이 값을 넘겨주어야 합니다! (ubuntu 20.04 기준으로 작성했습니..

vscode n번째 글자에 세로선 추가하기 (easy)

보기좋은 코드를 작성하기위해 최대 코드 길이를 지정해놓은 분들이 계실겁니다. 보통 pep8이나 google python 가이드를 따르면서 최대 79자, 80자, 100자, 120자 등 개발자나 팀마다 다르게 다양한 코드 길이를 사용합니다. 오늘은 vscode에서 간단한 세팅으로 원하는 maximum line length에 표시를 해봅시다. (10초만에 설정 가능합니다.) 1. vscode를 켜고 F1을 눌러 settings.json 파일을 엽니다. Preferences: Open Settings (JSON)을 클릭. 환경에 따라 다른 파일도 가능합니다. 2. editor.ruler를 추가합니다. 아래 내용을 settings.json에 삽입합니다. { ... "editor.rulers": [ { "colu..

python joblib으로 병렬 프로그래밍을 해보자

효율적인 프로그래밍을 위해 병렬 프로그래밍을 하곤 합니다. 특히 대용량의 데이터을 처리할 때 필수적이죠. joblib은 파이썬 프로그래밍에서 병렬처리를 가능하게 만들어줍니다. 파이썬에는 병렬 연산을 위한 디폴트 패키지로 multiprocessing이 있습니다. multiprocessing은 pandas의 DataFrame을 다루는 데에 유용하며, joblib은 일반적인 python 코딩에 두루두루 쓰입니다. joblib의 dump, load 메소드는 python 객체를 저장하거나 불러오게끔 할 수 있기에, 머신러닝 프로젝트에서 모델을 저장하기에 유용하게 쓰이지만, 본 게시물에서는 병렬 처리를 도와주는 joblib의 Parallel, delayed에 대한 설명을 하겠습니다. 😁 설치 pip install ..

python *args **kwargs 차이

python 함수에 인자를 넣는 방법에는 단순한 방법도 있지만, *args와 **kwargs를 활용할 수도 있습니다. *args *args는 동시에 여러 입력값을 주고 싶을 때 사용합니다. 사실 * 다음에오는 args가 아니어도, elements, argument, ggggg, ksdfkjasdlfkja 등 원하는 변수를 사용하면 됩니다. **kwargs도 마찬가지입니다. *args를 사용하면 함수 내에서 tuple처럼 사용 가능합니다. 입력값을 굳이 list나 tuple로 주지 않아도 됩니다. **kwargs keyword arguments로 생각하시면 됩니다. *args에서 더 나아가 입력값의 키워드를 함께 줄 때 사용합니다. **kwargs를 이용하면 특정 조건에 따라 다른 동작을 하도록 코드를 짤..