sooop

sooop

embed a jupyter notebook in wordpress post

워드프레스에 jupyter notebook 삽입

워드프레스 포스트에 Jupyter notebook을 삽입하는 방법을 알아보겠습니다. 가장 손쉬운 방법은 Github Gist 에 정적 HTML로 변환한 파일을 업로드하고 해당 Gist를 포스트에 삽입하면 되는 것입니다. 로컬에서 작성한 ipynb 파일을 업로드해도 되지만, Google Colab을 사용하면 Gist로 저장하는 일을 좀 더 간편하게 할 수 있습니다. 1. Google Colab에서 노트북을 작성하거나, 로컬에서 작성한 파일을

By sooop

disable wp-cron

WP-cron을 시스템 cron으로 대체하기

워드프레스는 포스팅의 예약 발행과 같은 스케줄링을 지원하는데, 이는 WP-cron이라는 스케줄러를 통해 처리된다. wp-cron은 매 페이지가 호출될 때마다 로드되어 예약된 작업이 있으면 이를 처리해주는 방식으로 작동한다. 다만 이렇게하면 포스트 발행을 예약한 시점에 접속이 없다면 스케줄러가 실행되지 않거나, 그외 플러그인과의 충돌이나 워드프레스 자체의 버그로 인해서 작업이 누락되는 경우도 발생한다고 한다. 리눅스 서버를

By sooop

monitor

ZMQ 소켓을 모니터링하기

zmq 소켓을 사용한 확장 패턴에서 zmq 프록시를 사용하는 경우, 일반적으로 두 개의 소켓을 사용하여 프론트엔드와 백엔드로 사용하는데, 세번째 소켓인 캡쳐를 추가할 수 있다. 캡쳐는 주로 publisher를 사용하는데, 이 소켓으로는 프록시 내부에서 흘러가는 모든 데이터가 캡쳐되어 발송된다. 이런 방식으로 우리는 zmq 프록시의 내용을 모니터링할 수 있다. 이와는 별도로 각각의 zmq 소켓은

By sooop

ffmpeg

ffmpeg로 영상 일부 구간 빠르게 자르기

큰 영상 파일의 일부 구간만 필요한 경우에 ffmpeg를 사용하면 빠르게 일부분을 추출할 수 있다. 이 때 사용되는 파라미터는 -ss 와 -to 로 각각 결과물의 시작과 끝 시점을 정의한다. 이때 시점을 정의하는 문법은 h:mm:ss 로 사용한다. (그래서 특정 시간부터 t 초라고 한다면 시간을 계산해야 한다…) $ ffmpeg -i 원본파일 -ss

By sooop

수식을 조합해서 1~40을 만들 수 있는 수 찾기

이 문제는 작년에 조카의 수행평가 관련해서 질문 받은 것인데, 네 개의 서로 다른 숫자와 기본연산자를 조합하여 1~40의 모든 정수를 만들 수 있는 숫자를 찾는 문제였다. 사실 이 문제가 코딩 문제가 아닌 수학 수행 평가라는 점에서 눈을 의심하지 않을 수 없는데, 4개의 숫자로 구성되는 순열(24개)에 대해서, 각 숫자

By sooop

SQLite

SQLite - STRICT 테이블

얼마전 SQLite의 새 버전인 3.37.0이 릴리즈되었습니다. 주로 안정성이나 성능 개선 위주의 업데이트만 있다가, 이번 버전에서는 STRICT 테이블이라는 새로운 기능이 추가되었습니다. 이 기능은 다른 DBMS 처럼 테이블 칼럼의 형식에 맞는 값만 저장하도록 제한하는 기능으로, 새로 생성하는 테이블의 옵션 형태로 설정하게 됩니다. SQLite3는 다른 DBMS와 달리 자료의 형(type)에

By sooop

chat

파이썬으로 구현하는 채팅앱

파이썬으로 터미널 상에서 돌아가는 간단한 채팅앱을 구현해보고자 한다. 채팅 앱은 서버와 클라이언트로 구성되며, 각각의 클라이언트가 보내는 메시지를 모든 클라이언트에게 되돌려주면 된다. 이 때 일반적인 에코서버 구현과 다른 점은, 대화 메시지가 오고 가는 방식은 비동기적이기 때문에 실제로는 서버와 클라이언트 모두 각각 수신용과 발신용의 2개의 소켓을 준비해야 한다는 점이다. 어쨌든 이것은 ZMQ를

By sooop

python

Subprocess 모듈 사용법 (2021 업데이트)

subprocess 모듈을 사용하는 방법에 대해 정리한 이전 글이 있는데, 이 글도 2021년 기준으로 벌써 6년전 글이고, 실제로 글이 발행됐을 때쯤에 파이썬 3.5가 나오면서 subprocess 모듈이 다시 업데이트 됐었다. 지금은 그 글에서 설명하고 있는 여러 API들은 레거시로 분류되어 있다. 그래서 좀 늦은 감은 있지만 subprocess 모듈의 사용법을 새롭게 정리해 보고자

By sooop

dealer

ZMQ 소켓 - Dealer, Router 이해하기

이전 글에서 프록시를 소개하면서 단순한 REQ – REP 패턴의 네트워크 중간에 중간 매개로 프록시를 넣어 REQ – ROUTER – DEALER – REP 형태로 패턴을 확장하는 예를 살펴보았다. 이 때, ROUTER – DEALER 사이에서 오가는 데이터를 보면 REQ-REP 사이에서 오가는 데이터와 다르게 추가된 프레임이 보인다는 것을 볼 수 있었다. 이번 글에서는 이런 현상은 왜 일어나며, ROUTER가

By sooop

마이크로소프트 무선마우스 4000 사용후기

코로나로 인해서 학교에서 원격 수업을 하기 시작하면서 딸아이도 본격적으로 컴퓨터를 사용하게 됐다. 집에서 사용하는 노트북을 구매할 때 받은 미니 무선 마우스가 있었는데, 몇 번 떨어뜨려서 건전지 수납부 뚜껑이 떨어져서 잃어버렸다. 그 이후로 쓰는 중에 건전지가 빠져서 마우스가 꺼지는 일이 자주 있어서 새 마우스를 알아보았다. 아무래도 손이 작은 아이가 주로 쓸

By sooop