dogbull

book : 누구 먼저 살려야 할까?

생명·의료 윤리적 딜레마에 관한 79 가지 질문을 제시합니다. 질문 당 약 3 페이지이며, 각 질문 간 연관성이 거의 없어 쉽게 읽힙니다. 정의란 무엇인가, 완변에 대한 반론의 의학 버전으로 느껴졌습니다. 책 표지에 있는 서평 대로 저녁식사 대화에 활기를 불어넣을 기술과 선택의 문제입니다. 마이클 센델의 책은 화두에 대한 저자의 견해는 최대한 유...

book : 법정에 선 수학

법정에서 채택된 근거가 수학에 기반 했음에도, 오류가 발생한 이유를 10 가지 사례로 설명합니다. 사례 당 약 30 페이지이며, 각 사례 간 연관성이 거의 없어 쉽게 읽힙니다. 30 페이지 책이 10 권으로 구성된 느낌입니다. 범죄, 법정, 통계 등에 관심 있을 경우 재미있게 읽을 수 있습니다. 통계에 대해 주로 다룹니다. 예를 들어 유전자...

proxmox 설치

본 포스트는 PVE(Proxmox Virtual Environment)를 설치해 봅니다. 현재의 최신 버전은 2020년11월26일에 릴리즈된 6.3-1입니다. 1. 서론 Virtual Machine(가상 머신)을 위한 다양한 도구들이 있습니다. 적절한 구분 없이 단순히 나열해 보면 VMware ESXi, VMware Workstation, Cit...

Color Ramp Generator

1. 분할 수 2. 수식 r = x * 0.7 + 0.3; g = x * x * 0.9 + 0.1; b = 0; 3. 결과

클라우드에 pfsense 설치(가비아 클라우드)

가비아 클라우드를 테스트 해 보고 있다. 지원되는 OS 이미지는 CentOS, Ubuntu, Windows Server 2016 외에는 없다. 지원되지 않는 OS를 설치하기 위해서는 아래와 비슷한 절차를 거치면 어떤 종류라도 설치 가능할 것으로 보인다. 우선 기본적으로 할당되는 부팅 디스크(Disk A)외에, 추가적으로 디스크(Disk B)를 하나 ...

proxmox NFS 오류

PVE(Proxmox Virtual Environment 5.3-8)에서 NFS 스토리지 추가 시 아래와 같은 오류가 발생하였다. create storage failed: error with cfs lock ‘file-storage_cfg’: storage ‘nfs’ is not online (500) 터미널에서 직접 mount 명령을 ...

Python의 multiprocessing의 process 개수 증가에 따른 rasterio 래스터 처리 속도 비교

본 포스트는 multiprocessing을 이용한 다중프로세스 기법을 이용하여 block-by-block 방식으로 래스터를 처리할 때, 프로세스 개수의 증가가에 따른 수행 시간 변화를 측정한 결과를 제시합니다. 복수 개의 대용량 래스터를 읽고 계산하고 저장하는 일련의 과정은 많은 컴퓨팅 자원을 필요로합니다. CPU 연산 능력, Memory 용량 ...

마스크 포함과 마스크 미포함에 대한 래스터 읽기 속도 비교

본 포스트는 GDAL 유틸리티를 이용하여 래스터 자료를 읽을 때 마스크를 포함한 경우와 마스크를 포함하지 않는 경우의 읽기 속도를 비교 결과를 제시합니다. GeoTIFF 파일에는 마스크가 라는 것이 있습니다. 마스킹된 부분은 NO DATA 로서 GIS 자료 처리 프로그램에서 특별하게 다루어집니다. 래스터의 격자 값은 Byte, Int32, Float...

asyncio를 이용한 래스터 읽기 속도 비교

본 포스트는 한 개 이상의 GeoTIFF 파일을 동기 방식과 비동기 방식(asyncio를 이용)으로 읽을 때 소요되는 시간을 비교해 봅니다. 우선 읽어들일 GeoTIFF 파일은 256x256으로 타일링된 deflate 알고리즘이 사용되었습니다. 전국 30m 해상도(래스터 격자수는 21396x20324)의 자료를 이용하여 테스트하였으며 각 격자는 f...

GeoTIFF, VRT, WarpedVRT 읽기 속도 비교

본 포스트는 GeoTIFF, GDAL Virtual Format, WarpedVRT 등 3가지의 래스터 파일 포멧에 대한 읽기 속도 측정 결과를 제시합니다. GDAL 라이브러리/유틸리티를 이용하여 GIS 래스터를 다룰 때 다양한 자료 형식 중 필자는 주로 GeoTIFF 를 사용합니다. 다양한 압축 형식, 타일링, 내부 오버뷰(오버뷰를 tif 파일...

윈도우 시작 시 WSL bash 스크립트 자동 실행

윈도우가 시작되었을 때 WSL bash 스크립트의 자동 실행이 필요한 경우가 있다. 이 스크립트에 sshd, crond, apache, mysql or postgresql 등과 같은 데몬을 시작 시키는 일련의 명령들이 기술될 수 있다. 이를 위한 몇 가지 방법들을 찾아볼 수 있었다(1, 2). 하지만 wsl bash의 기본 사용자가 root가 아닐 경...

Python Weighted Linear Regression

[선형회귀)(https://en.wikipedia.org/wiki/Linear_regression){:target=’_blank’}식을 도출해 주는 다양한 라이브러리들이 있다(numpy.polyfit, pygsl.fit, 온라인 등). 이 패키지들은 가중치선형회귀식 기능도 포함하고 있다. 얼마전 GPU(OpenCL)에서 가중치선형회귀 값을 계산할 필요...

numba를 이용한 Single-CPU, Multi-CPU, GPU-CUDA의 box blur 속도 비교

얼마전 성능 및 코드 간결성 비교 numba.vectorize vs numba.jit에서 O(n) 복잡도의 연산에 대한 Single-CPU 와 Multi-CPU 의 수행 속도를 비교하여 보았다. 수행에 소요되는 시간은 예상대로 입력 데이터의 개수 대해 선형적으로 증가하였다. 이번에는 O(n*r^2)의 복잡도를 갖는 간단한 동일 가중치 box blur ...

성능 및 코드 간결성 비교 numba.vectorize vs numba.jit

간편하면서도 강력한 Python JIT 도구 numba의 맨 마지막에 언급한 바와 같이 numba.vectorize를 이용하여 생성한 ufunc는 element-by-element fashion 때문에 몇 가지 제약이 존재한다. 그 중 여기서 언급할 것 중 하나는 출력의 dimension이 입력의 dimension과 동일하다는 제약이다. 흑백 이미지 ...

간편하면서도 강력한 Python JIT 도구 numba

Python 에서 N차원 실수 형식의 배열(대체적으로 2차원 이미지 데이터, 2차원 GIS 수치 데이터, 1차원 벡터 데이터 등)을 고속으로 데이터를 처리하기 위해 몇 가지 방법을 알아보았었다. 가장 먼저 생각난 것은 Java 에서 경험해 보았던 JNI(Java Native Interface)와 같이 C/C++ 로 제작된 바이너리와 이를 감싸는 인터페...

tistory api 사용을 위한 access token 얻는 방법(no browser only command line)

예전에 아주 잠깐 WLW(Windows Live Writer)라는 것을 사용했던 적이 있다. 이 도구가 편리해서 사용했다기 보다는 티스토리 웹에서 글을 작성하는 것이 너무 힘들어서였다. 다른 블로그를 보면 글 내용 뿐만 아니라 편집(구성?? 이라고 해야하나.. 디자인??은 좀 좁은 의미 같고..)이 잘되어 있어 읽기도 편한데.. 웹에서 글을 작성해서 ...

bash_completion 을 이용한 ssh 호스트 자동 완성

현재 30개 이상의 SSH 원격 호스트가 ~/.ssh/config 파일에 등록되어 있다(거의 모두가 포트 포워딩. -_-;). 몇 개를 더 추가해야할 상황이 발생했는데 더 이상은 하나의 파일로 관리하기 힘들것 것 같아서 ~/.ssh/config 파일을 분리하기로 했다. ~/.ssh/config 파일의 내용은 아래와 같이 변경하였다. Identity...

New PhoneGap Build NodeJS CLI module: pgb-cli

PhoneGap(이하 PG) 애플리케이션을 클라우드상에서 빌드 해 주는 서비스인 Adobe PhoneGap Build(이하 PGB) 라는 서비스가 있다. 이제 PGB 를 CLI 로 사용할 수 있게 되었다. 기존에는 웹 브라우저로 서비스 주소 https://build.phonegap.com/apps에 접속하여 서비스를 이용할 수 있었다. 이제는 pgb-...

리눅스 NAT 구성

네트워크 구성 네트워크 구성 NAT Gateway echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o eth_ext -j MASQUERADE firewall-cmd --dir...

sshfs 를 docker container 안에서 사용하기

centos 에서 sshfs 를 설치하는 방법은 이곳에 잘 나와있다. yum install -y epel-release yum install -y fuse-sshfs 설치는 위와 같이 단 두 줄 이면 충분하다. 마운트는 아래와 같이 더 간단하다. sshfs root@0.0.0.0:/root /mnt 위 명령은 원격 0.0.0.0에서 구동되고...