준호씨의 블로그
지난번 문이 잘 닫혔는지 확인하는 습관을 기르기 위해 캠페인 문구를 만들어서 출력해서 현관문에 붙여놓았었습니다. 우리집 캠페인 문구 - 문이 잘 닫혔는지 확인하기 Google SlideShow 공유 #ppt #A4 계절이 바뀔 때마다 현관문이 잘 안 닫히거나 문이 닫힐 때 "꽝" 소리가 점점 커져서 도어클로저의 속도를 조절하곤 합니다. 문제는 문이 잘 안 닫히기 시작하면 아이들이 문이 제대로 잠겼는지 junho85.pe.kr 다음 문구를 언제 만들까 했는데요. 마침 첫째 아이가 자꾸 집에 오면 할 일(주로 숙제)하는 것을 까먹는다고 해서 어떻게 할까 고민하고 있었습니다. 그래서 캠페인 문구를 만들어서 붙여 보자고 해서 두 번째 캠페인 문구를 만들게 되었습니다. 이번에도 구글 슬라이드쇼에서 작성하였습니다...
아이들과 깐 달걀입니다. 계란 껍데기가 잘 까져서 기분이 좋네요. 요즘 삶은 달걀에 맛을 들인 첫째 덕분에 달걀을 자주 삶아 먹고 있습니다. 예전에 달걀을 삶는 여러 가지 방법을 사용해 보다가 껍데기가 잘 안 까져서 스트레스를 받곤 했었는데요. 이제는 간단히 삶으면서 껍데기도 잘 깔 수 있게 되었습니다. 방법은 바로 물이 끓으면 계란을 넣고 9분 정도 삶고 찬물에 씻으면서 까는 것입니다. 소금, 식초, 베이킹소다를 넣고 삶으라는 팁들이 인터넷에서 많이 볼 수 있는데요. 아주 미미한 효과가 있지 큰 도움은 되지 않습니다. 찬물부터 시작해서 달걀을 삶는 방법은 껍질 깔 때 달걀이 부서질 확률이 높아집니다. 이러한 원리에 대해 알게 해 준 영상입니다. 끓는 물에 삶아야 계란막과 단백질이 들러붙지 않기 때문에..
계절이 바뀔 때마다 현관문이 잘 안 닫히거나 문이 닫힐 때 "꽝" 소리가 점점 커져서 도어클로저의 속도를 조절하곤 합니다. 문제는 문이 잘 안 닫히기 시작하면 아이들이 문이 제대로 잠겼는지 확인을 못하는 경우가 종종 생깁니다. 그래서 우리 집 캠페인을 시작하게 되었습니다. 구글 슬라이드쇼에서 작성하였습니다. 아래 링크에서 확인할 수 있습니다. https://docs.google.com/presentation/d/1mx0LxkD65l2KZ2NoXbIfN5U2ndrJubodNJO3hxOcqys/edit?usp=sharing 우리집 캠페인 우리집 캠페인 공유용 docs.google.com 문그림과 탐정그림을 이모지로 넣었더니 출력할 때는 다르게 나옵니다. 구글 슬라이드쇼 내부에서 사용하는 이모지 모양으로 바뀐..
사람들과 Kubernetes설정 관련 이야기를 하다 보면 발음이 헷갈리는 설정이 두 가지가 있습니다. 바로 Liveness와 Readiness입니다. 관련설정에 대해서는 Configure Liveness, Readiness and Startup Probes 문서를 보면 알 수 있습니다. 설정에 대해서 간단히 요약해 보면 Liveness는 일종의 deadlock 같은 상태로 application이 떠있긴 하지만 더 이상 진행을 할 수 없는 상태입니다. 컨테이너를 재시작해서 살아나도록 해 주는 것과 관련된 설정입니다. Readiness는 살아 있긴 한데 요청을 받을 수 없는 상태를 판단하는 것이라고 보면 됩니다. 예를 들어 하나의 Pod이 한 번에 하나의 요청만 처리해야 되는 상황이라면 하나의 요청을 처리하..
MySQL에서 timestamp(epoch time)을 datetime형식으로 변환하려면 from_unixtime 함수를 이용하면 됩니다. select from_unixtime(0); # 1970-01-01 09:00:00 반대로 datetime 문자열을 timestamp(epoch time)으로 변환하려면 unix_timestamp 함수를 이용하면 됩니다. select unix_timestamp('1970-01-01 09:00:00'); # 0 datetime 문자열만 되는 것이 아니고 datetime 도 timestamp(epoch time)으로 변환할 수 있습니다. select unix_timestamp(STR_TO_DATE('1970-01-01 09:00:00', '%Y-%m-%d %H:%i:%s..
MSG가 한 때 유해하다는 분위기였다가 요즘은 "무해하다"의견이 대세이긴 한데요. 그에 대해서는 아래 글이 잘 요약되어 있습니다. [과학 읽어주는 언니] MSG는 위험할까? 단백질은 물 다음으로 우리 몸에 많이 필요합니다. 따라서 우리 혀는 단백질의 감칠맛을 느끼도록 진화했죠. 문제는 단백질 자체는 분자가 너무 커서 혀의 맛 수용체가 느끼지 못한다는 겁니다. m.dongascience.com 글의 내용을 요약하는 1분 51초짜리 짧은 영상도 있습니다. 아래는 다른 영상인데 이것도 참고 삼아 볼 만합니다. 이처럼 현재 대세는 "MSG는 안전하다"입니다. 그런데 이에 대해서 반박하는 영상을 지인이 보내주어서 보게 되었습니다. 조금 음모론 적인 느낌도 있긴 하지만 관련내용에 대해 자세하게 이야기를 하기 때문에..
timestamp(epoch time)을 datetime으로 변환하려면 datetime 모듈에 있는 fromtimestamp 함수를 사용하면 됩니다. import datetime print(datetime.datetime.fromtimestamp(0)) # 1970-01-01 09:00:00 반대로 datetime을 timestamp(epoch time)으로 변환하려면 timestamp 함수를 사용하면 됩니다. print(datetime.datetime(1970, 1, 1, 9, 0, 0).timestamp()) # 0.0 Unix timestamp (Unix epoch = Unix time = POSIX time)는 1970년 1월 1일 0시 0분 0초부터 몇 초가 지났는지를 나타내는 숫자입니다. 한국..
가상서버호스팅을 좀 옮겨 볼까? VULTR? 개인적으로 스쿨 호스팅에서 가상 서버호스팅을 받고 있습니다. 스쿨호스팅 최저가,최대트래픽 국내최대개발자커뮤니티 phpschool.com 과 함께하는 월400원, 웹호스팅,가상서버호스팅,이미지호스 junho85.pe.kr 2021년 3월에 스쿨호스팅에서 VULTR로 이사할까 고민을 했었습니다. 하지만 차일피일 미루다가 2년이란 시간이 흘러버렸네요. 가장 큰 이유는 스쿨호스팅의 절약형 서버의 메모리가 512M라서 Docker를 이용해서 이런저런 서버를 띄우면 메모리가 부족해서 서버를 안정적으로 운영할 수 없었기 때문입니다. 그 외에도 OS 버전업이나 재설치 등에서 몇 가지 불편함을 겪었습니다. 최근 정원사들 시즌8 출석부를 시험적으로 VULTR에서 운영해 보았는데..
platform, os, subprocess, socket 모듈을 이용해서 다양한 방법으로 hostname을 구할 수 있습니다. 여러 가지 방법이 있지만 socket.gethostname()으로 구하는 방법이 가장 무난해 보입니다. def get_hostname_platform1(): import platform return platform.node() def get_hostname_platform2(): import platform return platform.uname()[1] def get_hostname_os1(): import os return os.uname().nodename def get_hostname_os2(): import os return os.uname()[1] def get_ho..
Linux 서버에서 기본 설치 된 Python 버전이 낮은 경우 높은 버전의 Python을 설치해서 사용하는 경우가 있습니다. apt나 yum 같은 패키지 관리자로 업그레이드가 가능한 경우도 있겠지만 그렇지 않은 경우 소스코드를 다운로드하여서 빌드해서 설치해야 합니다. Python 소스 코드로 빌드해서 설치하기 기본 다음은 Python 3.8.14를 /program/python/Python-3.8.14 경로에 설치하는 방법입니다. wget https://www.python.org/ftp/python/3.8.14/Python-3.8.14.tgz tar xvfz Python-3.8.14.tgz cd Python-3.8.14 ./configure --prefix=/program/python/Python-3.8..