9월, 2021의 게시물 표시

Rust 글모음

라즈베리파이 라즈베리파이용 Rust 컴파일 Rust 어플리케이션 RustDesk Server/Client 설치 Rust Game Rust game engine 인 bevy 튜토리얼 쪽코드 rust debugging __FILE__ __LINE__ __func__

라즈베리파이용 Rust 컴파일

Situation Rust를 공부하면서 활용하는 방안을 생각하던 중, Rust가 C/C++을 대체하는 빠른 언어라는 점에서 라즈베리파이와 잘 어울린다는 글을 읽었습니다. 그래서 아무 생각없이 라즈베리파이에서 Actix를 컴파일 했더니...몇시간 걸리더군요 ㅡ.ㅡ 사실 너무 오래 걸려서 중간에 끊었습니다. 그리고 크로스컴파일을 하기로 했습니다. arm64에서 이미 한번 해봤기때문에 별로 어려울 건 없었습니다. Task Rust project 생성 컴파일 환경 세팅 크로스컴파일 실행파일 라즈베리파이로 전송 및 실행 뭔가 많은 부분이 생략된 것같지만, 진짜 기분탓입니다. 그냥 이렇게 하면 간단하게 끝납니다. Action Rust Project 생성 Hello Rust 프로젝트 하나 생성합니다. rust 설치는 여기서 다루지 않습니다. $ cargo new hellorust      Created binary (application) `hellorust` package $ cd hellorust/ 컴파일 환경 크로스컴파일러를 설치하고 러스트에 컴파일 타겟을 지정합니다. sudo apt install gcc-arm-linux-gnueabihf rustup target add armv7-unknown-linux-gnueabihf 크로스컴파일 설치한 크로스컴파일러의 링커를 설정해 줍니다. .cargo/config 파일을 생성하고 아래 내용을 붙여넣기합니다. [target.armv7-unknown-linux-gnueabihf] linker = "arm-linux-gnueabihf-gcc" 타겟을 지정해서 컴파일 합니다. $ cargo build --target=armv7-unknown-linux-gnueabihf    Compiling hellorust v0.1.0 (/mnt/d/work/hellorust)     Finished dev [unoptimized + debuginfo] target(s) in 4.59s $ file target/armv7-un

Git Plugin 관리자 vundle 및 vimawesome

이미지
Situation 오래되고 구닥다리같은 vim 편집기도 사실 많은 발전을 이뤄서 사용하기 좋아졌습니다. 그렇다고 vim 사용이 쉽다는건 아니지만, plugin 설치가 쉬워졌고 또 유용한 plugin을 많이 경험해 볼 수 있습니다. Task 사용하기 편리한 vim 플러그인 매니저 vundle 설치 vimawesome 에서 플러그인 검색 및 설치 Action vundle 설치 vundle 설정 다음의 명령으로 vundle을 설정합니다. git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim vimrc 설정 .vimrc 파일 최상단에 다음의 설정을 붙여넣기 합니다. set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " The following are examples of different formats supported. " Keep Plugin commands between vundle#begin/end. " plugin on GitHub repo Plugin 'tpope/vim-fugitive' " plugin from http:/

C/C++ 글모음

Code Bit field 예제 C++ 상속시 소멸자에 virtual? C++11 Thread, Mutex, Async condition_variable 테스트 c++11 thread, condition_variable and async 개념정리 TIP [cppcheck] The scope of the variable 'enable' can be reduced C++11 성능 측정을 위한 간단히 ms 단위 측정 코드

Python 글모음

Code [WSL] Python으로 테스트용 FTP server 운영 TIP vscode 만으로 github 연동하고 python anaconda 개발 환경 구축

Git 글 모음

TIP Git Plugin 관리자 vundle 및 vimawesome git에서 vimdiff 쓰기 vim에서 대소문자 구분없이 검색하는 방법 Trouble Shooting 이미 git commit 한 내용 제거 (commit 제거가 아닌 patch 제거) git pull 을 했더니 branch가 갈라지는 경우 git rebase 도중 submodule이 conflict 났을때

리눅스 멀티코어를 사용하는 tar 압축/해제

이미지
Situation 주로 사용하는 업무용 PC에 HDD 가 연결되어있는데 WSL 을 통해 엑세스 하다보면 매우 느립니다. 그러다 문득 반디집의 멀티코어 압축해제 가 생각나서 있지 않을까? 하고 찾아봤습니다. Task 검색해보면 몇가지 압축 해제 방법이 나오는데, tar -I 옵션으로 할 수 있는 압축 해제 방법이 간단하므로 이 옵션을 쓸 수 있는 방법을 골라냅니다. 또한 리눅스에서 주로 사용하는 압축은 .tar.gz 과 .tar.bz2 각각 다른 명령을 씁니다. 이것까지는 어쩔수 없는 모양입니다. 실제로 멀티코어를 쓰는지도 확인해보도록 합니다. 반디집 글에 많은 사람들이 환호했던 것은 멋진 영상때문이었습니다. 저도 환호할것 같네요. Action .tar.bz2 bz2에 사용할 프로그램은 lbzip2 입니다. 설치 우분투 설치 sudo apt install lbzip2 실행 tar의 man page를 보면 -I 옵션은 압축 프로그램을 사용한 압축이라고 합니다. -I, --use-compress-program=COMMAND Filter data through COMMAND. It must accept the -d option, for decompression. The argument can contain command line options. 압축은 다음과 같이 실행합니다. tar -I lbzip2 -cf <파일명> <대상파일> 압축해제 다음과 같이 실행합니다. tar -I lbzip2 -xf <파일명> <대상파일> 압축해제하는데 멀티코어는 15초 걸리는데 반해, 일반 tar 해제는 1분 2초가 걸립니다. 이 동영상 올리려고 포스트를 쓴거나 마찬가지입니다. lbzip2 압축해제 실행하자마자 모든 코어가 100% 올라가는 걸 보세요! ㅋㅋㅋㅋ (좌측 프로그램은 bottom 입니다.) .tar.gz gz에 사용할 프로그램은 pigz 입니다. 이름이 재밌는 말장난이네요.

서평 글모음

소프트 스킬  존 손메즈 지음, 길벗 출판사 사물인터넷을 품은 라즈베리파이 임베디드 엔지니어 교과서   CERT C 프로그래밍

VIM 글모음

TIP Insert 모드에서 paste하기 vim에서 대소문자 구분없이 검색하는 방법 vim 테마 소개 : neuromancer vim 파일 읽어들일때 이전파일 위치 가져오기 vim : block paste 계속 하기 vim 에서 grep 명령어에 ripgrep 활용 방법 vim 컴파일. makeprg, cope, vertical terminal Trouble Shooting VIM 에러 E173: 고칠 파일이 30 개 더 있습니다 VIM 에러 E21: 바꿀수 없음, 'modifiable'이 꺼져있습니다.

Linux, Shell Script 글모음

Tip ssh로 쉘스크립트 돌리기   Shell 에서 파일의 full path 출력하는 방법 Linux Bash 팁 : find로 찾은 파일들 복사하기 리눅스 멀티코어를 사용하는 tar 압축/해제 make 로그를 파일에 기록하면서 화면에 출력하기. Shell 명령어 tee Ubuntu 20.04 에 D2Coding 폰트 설치 우분투 기본 쉘 dash 에서 bash로 변경하기 우분투 20.04 tftp 서버 설정 우분투 스압 메모리

라즈베리파이(Raspberry Pi) 글 모음

TIP 라즈베리 파이 초기 비밀번호 Raspberry Pi 잃어버린 비밀번호 리셋하기 Rust 라즈베리파이용 Rust 컴파일

WSL(Windows Subsystem for Linux) 글 모음

  Tip WSL2 Ubuntu 20.04 및 네트워크 설정 WSL2 Ubuntu 20.04 에서 32bit Application Compile WSL에 X-Window로 Terminator 설치하고 Minicom까지 windows 10 릴리즈 2004 (WSL 2 지원 버전) 수동 업데이트 WSL에서 vsftpd 설정 및 구동 WSL2 메모리 과다 사용 문제 Teraterm 에서 wsl 바로 띄우기

구글 블로그에 code prettier 적용

이미지
2021년 9월 16일 현재 유일하게 적용할 수 있는 방법입니다.  그 외에는 모두 아래와 같은 에러가 발생합니다.  설정 방법은 아래 블로그를 참고하시기 바랍니다. 참고로 저는 Sons-Of-Obsidian 테마를 적용하였습니다. [Blog] Blogger에 GOOGLE CODE PRETTIFY JAVASCRIPT 적용하는 방법 <script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js?skin=Sons-Of-Obsidian"></script> <script src='https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js'/>  <!--Sons of Obsidian theme--><style type='text/css'>.str{color:#EC7600}.kwd{color:#93C763}.com{color:#66747B}.typ{color:#678CB1}.lit{color:#FACD22}.pln,.pun{color:#F1F2F3}.tag{color:#8AC763}.atn{color:#E0E2E4}.atv{color:#EC7600}.dec{color:purple}pre.prettyprint{border:0 solid #888}ol.linenums{margin-top:0;margin-bottom:0}.prettyprint{background:#000}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{color:#555;list-style-type:decimal}li.L1,li.L3,li.L5,li.L7,li.L9{background:#111}@media print{.kwd,.tag,.typ{font-weight:700

이 블로그의 인기 게시물

WSL2 Ubuntu 20.04 및 네트워크 설정

git pull 을 했더니 branch가 갈라지는 경우

리눅스 멀티코어를 사용하는 tar 압축/해제