pigz: Batch decompressing .gz files

Nanopore 시퀀싱을 하여 EPI2ME로 분석을 돌리려면 FASTQ 파일을 업로드해야 한다. 원래 그런 것인지 버그인지는 모르겠지만 EPI2ME agent는 .gz 상태로는 읽지를 못하므로 업로드 전 .fastq로 압축 해제를 해주어야 한다. 기본 gunzip으로 사용해도 되지만, 멀티코어 활용이 안되어 속도가 매우 느리다. 이는 pigz (https://zlib.net/pigz/) 사용으로 간단히 해결할 수 있다. 먼저 pigz를 설치 후 (언제나처럼, apt-get or Homebrew) 터미널에서 실행한다. 아래는 macOS 홈 폴더에 fastq_pass 폴더를 넣어놓았을 때의 예시이다. 복잡한 커맨드 넣을 필요 없이 wildcard를 사용하면 간단히 처리된다.

macOS: Quick Action: Convert to WebP (and how to batch convert images)

블로그에 있던 기존 PNG 파일들을 변환하고자 ImageMagick 내 포함된 mogrify 커맨드로 일괄 변환 수행했다. 변환할 파일들이 있는 경로에 가서 다음 커맨드를 사용한다. magick mogrify -format webp *.png 다만 앞으로는 개별 파일들을 매번 변환해서 올려야 할텐데, 터미널을 매번 열기는 귀찮다는 생각에 Quick Action으로 만들어 보기로 했다. 이번 포스트에서는 ImageMagick을 활용하여 macOS에서 어떤 이미지라도 WebP로 변환하여 동일 폴더에 넣어주는 Quick Action을 만들어 본다. ImageMagick이 설치되어 있지 않다면 Homebrew를 통해 설치한다. brew install imagemagick Automator를 통해 다음의 “Run Shell Script” 커맨드를 입력한다.

[번역] 100가지의 단순한 진리

Source (EN): 100 Simple Truths (https://tr.af/100) 사지 않으면 100% 할인이다. 소유욕이 없는 것은 소유욕의 충족만큼 좋다. 다른 사람의 성공은 나의 실패가 아니다. 질문은 마음의 문을 열고, 선언은 마음의 문을 닫는다. 통제할 수 없는 일에 시간을 쓰는 것은 통제할 수 있는 것에 쓸 시간을 빼앗는다. 창의성은 흥미와 결단을 결합한 것일 뿐이다. 행복과 마찬가지로 성공은 추구될 수 없으며, 인과적으로 일어나야 한다. 가치라는 것은 칭찬과 모욕을 동시에 담고 있다. 정보를 소비하는 것이 아니라, 활용하는 것이 사람을 똑똑하게 만든다.

Windows: WebDAV 서버에서 50MB 이상의 파일 접근이 되지 않을 때 해결법 (오류 0x800700DF)

연구실 공유 폴더를 WebDAV 프로토콜을 활용하여 운영 중인데, 특정 용량 이상 파일의 경우 윈도우 컴퓨터에서는 접근이 되지 않는 문제가 있었다. 파일을 그냥 열면 프로그램 내에서 오류가 뜨고, 파일만 복사를 하려고 해도 0x800700DF 오류가 뜨며 접근이 불가능하다. 대체로 다루는 작은 파일들에서는 문제가 없었고 맥에서는 발생하지 않았기 때문에 매번 참고 넘어갔으나, 최근 공유폴더 내 고용량 파일을 윈도우 사용자들과 함께 다루게 되니 불편이 생겨 잠깐 찾아보았으며… 버그가 아니라 기능이었다. Folder copy error message when downloading a file that is larger than 50000000 bytes from a Web folder 윈도우 XP부터 해당되며 윈도우 10은 목록에도 없는 유서 깊은 지원문서이지만 윈도우 10에서도 동일한 것으로 보인다.

macOS: CONVMV와 Automator 사용을 통한 유니코드 정규화 호환성 해결

2015년부터 macOS(당시엔 OS X)를 주력으로 사용해 왔는데, 당시에는 가상머신이 있어도 윈도우 컴퓨터가 별도로 없으면 사무를 보기가 거의 불가능할 정도였다. 2020년인 지금은 가상머신 없이도 윈도우를 켤 일이 거의 없다시피 할 정도로 많이 발전했지만 여전히 문제가 되는 것 하나는 윈도우나 리눅스로 보낸 파일명의 자소분리 현상이다. 자소분리 현상 (출처: https://skjo929.blog.me/222036684719) 맥에서 파일명이 한글인 파일을 윈도우나 리눅스로 보내게 되면 윈도우와 리눅스는 유니코드 정규화 NFC 방식을 쓰고 맥은 NFD 방식을 사용하여 생기는 문제인데, 둘 다 인정되는 표준이므로 어느 한쪽의 잘못이라고 하긴 어렵지만 실질적으로 맥에서 보낸 한글명 파일들만 자소분리가 되므로 자연스레 맥의 문제라고 간주하게 되기 마련이다.

차세대 이미지 포맷: WebP

(Source: https://developers.google.com/speed/webp) 추후 사이트 최적화 내용을 정리하여 자세히 다룰 예정인데, 웹사이트 트래픽의 큰 부분을 차지하는 것이 이미지 파일이다. 특히 사이트 규모가 커질수록 최적화가 더 중요할 것이므로 미리 고려를 해두어야겠다는 생각으로 간간히 동향을 파악해 왔는데, 근래 몇 년 동안 기존의 JPG/GIF/PNG를 대체할 차세대 이미지 포맷들이 각축을 벌여 왔다. WebP, PNG, JPG 2000 용량 비교 WebP, JPEG XR, JPEG 2000 등, 그 어떤 차세대 포맷이라도 발전된 기술로 만들었기에 기존 포맷에 비해 압축률은 물론 (위 예시를 보라) 거의 모든 면에서 우월하나, 호환성 문제 때문에 어느 하나만 선택하기는 어려운 상황이었다.

Shell: iCloud Drive Path

macOS에서 iCloud Drive 의 path는 다음과 같다. ~/Library/Mobile\ Documents/com~apple~CloudDocs/ Backslash로 파일명 혹은 경로명의 빈칸을 표시해 줄 수 있다는 것도 알았는데, 임의로 정할 수 있는 경우라면 가독성 차원에서 underbar 처리하는 것이 더 나을 듯 하다.

블로그 작성: 1. JAMstack 선택 이유 및 기본 구조 구축

(이미지 출처: https://cloudinary.com/blog/developer_experience_for_a_modern_web_jamstack_delivers) 첫 글은 블로그 구축 목적에 맞추어 JAMstack을 사용한 이유와 기본 구축 과정을 적어 본다.   왜 JAMstack을 썼나? 🧐 현재 연구실 웹사이트의 백엔드는 다음의 LAMP stack 으로 돌리고 있다. L: Synology DiskStation A: NGINX M: MariaDB P: PHP 장기적 운영을 고려하여 Synology NAS를 서버로써 사용하였는데, LAMP 백엔드의 구성 요소를 모두 Synology에서 제공하는 패키지로 자동 설치 및 유지보수 할 수 있다. 프론트엔드의 경우 Wordpress를 탑재했고, 이 또한 시놀로지 패키지로 제공되기는 하나 상세 설정 상의 제약으로 AMP 버전 컨트롤에 애로사항이 핀 끝에 그냥 web 폴더에 수동으로 올렸다.

Hello_World

Hello World! 테스트 겸 블로그 운영의 Manifesto. 언제인가부터 블로깅을 통해 나눌 수 있고 나누면 좋은 기록들을 공유하겠다는 생각을 오랫동안 해 오고 있었지만 우선순위에서 항상 밀려 오곤 했다. 최근 나의 연구에 있어 Bioinformatics를 본격적으로 활용해야 한다는 판단을 내린 만큼, ICT로 분류할 수 있는 분야에서 블로그 운영의 중요성과 그 긍정적 효과는 익히 알려져 있는 바, 드디어 블로그 운영을 개시한다. 나의 지적 탐험과 기억을 체계적으로 정리해 둘 기록 체계이자 그 동안 도움을 받아 왔던 다른 이들의 수많은 공공 기록에 대한 보답으로써, High Hopes & Pipe Dreams는 나의 개인적 블로그임과 동시에 직업적 기록의 목적을 지닌 Public Repository의 성격을 가지고 운영된다.