공공데이터 포털에 가면 OPEN API 를 다양하게 제공하는데 날씨에 대한 정보도 쉽게 찾아볼 수 있다. 잘만 활용하면 윤택한 생활이 보장되는데 이번에는 기상청에서 제공하는 날씨 API 를 슬랙과 연동해보았다.이전에 미세먼지 API 에 대해서 살펴보았는데 방법은 크게 다르지 않다. REST API 를 연동해서 필요한 정보를 우선 얻어야 하는데 당장은 기온(T1H) 와 하늘상태(SKY) 만 가져왔다.{u'category': u'LGT', u'baseTime': 1400, u'nx': 61, u'ny': 125, u'obsrValue': 0, u'baseDate': 20170614}{u'category': u'PTY', u'baseTime': 1400, u'nx': 61, u'ny': 125, u'obsrV..
Google Cloud Platform 저장소(Storage)에 대해서 살펴볼텐데, 여기 메뉴에는 딱히 어려운게 없다. "난 저장소를 사용할 일이 없는데?" 라고 생각할지 모르지만 여기 저장소는 Cloud 에 다른 compute engine 이나 특히 CloudML 에서 매우 유용하게 사용되므로 익혀두는 것이 좋겠다. 저장소를 사용하기 위해서는 화면 좌측 메뉴에서 Storage 에 접근하도록 한다.그럼 세 개의 메뉴가 보일텐데 설정은 Storage 에 access 할 수 있는 ID 를 제공하고 API 를 설정할 수 있는 메뉴를 제공한다. 전송은 Amazon S3(Simple Storage Service) 나 기타 서버와의 자료 전송을 위해 사용되는 메뉴다. 가장 중요한 브라우저는 기본 페이지로서 버킷을 ..
앞서 Cloud Shell 에 대해서 주섬주섬 살펴봤는데, 잠깐 요점을 remind 하면 Cloud Shell 은 Google Cloud Platform 을 터미널에서 사용할 수 있도록 도와주는 web Shell 이다. 대략 0.6G 의 디스크에 낮은 스펙의 f1-micro 인스턴스로 제공되기 때문에 그 안에서 기본 제공되는 gcloud 명령 이외에 무언가를 개발하거나 테스트하기에는 다소 무리가 있겠다.그런데 최근 datalab 이라고하는 막강한 interactive tool 을 알게되어 잘 사용하고 있었는데, 더 편하게 사용하고 싶어서 datalab 을 백그라운드로 돌리는 과정에서 의문이 시작되었다. 일단 Cloud Shell 에서 datalab 을 백그라운드로 돌리기 위해서 아래와 같은 명령어를 사용..
google cloud platform 은 GitHub 같은 형태의 소스코드 저장소를 로컬에서 지원하기 때문에 소스 관리가 용이하다. 또한 막상 GitHub 을 무료계정으로 사용하고 있어서 private 한 내용을 별도로 보관하고 이력관리할 필요가 있다면 GCP 의 저장소는 무척 유용하다. 사실 사용하기 위해서 대단한 스킬이 필요한 것은 아니지만 누군가의 진입장벽을 조금이라도 더 낮추기 위해서 포스팅해둔다. datalab 을 생성하면 기본적으로 저장소가 생성되는 듯 하고, 별도로 "저장소 만들기" 메뉴를 통해 생성할 수도 있다. 우선 여기 예시에서는 아래처럼 생성되어 있는 datalab-notebooks 라고 하는 이름의 저장소를 이용하는 방법에 대해서 알아보겠다.일단 별거 없다. "복제 URL"을 복사..
GCP (Google Cloud Platform) 은 웹 상으로 설정할 수 있는 모든 내용을 터미널에서 동일하게 컨트롤 할 수 있도록 Google Cloud Shell 을 제공한다. 계정만 있다면 무려 무료로 이용이 가능하다. 이 쉘은 Debian 계열의 64비트 머신인데 아래 보이는 것처럼 우측 상단에 터미널 아이콘을 눌러 접속할 수 있다.페이지 하단에 터미널이 열리는 것을 볼 수 있고, 새로운 윈도우로 열어 보면 편하다. 우선 이 Shell 환경은 f1-micro 라고 하는 Compute Engine VM 인스턴스인데 Shell 에서 사양을 조금 더 살펴볼 수 있겠다. 우선 디스크 정보를 살펴보자.약 25G 디스크를 사용하고 있으며 여분의 공간은 9.3G 정도 된다. 다음으로 CPU 를 살펴보자.In..
GCP (google cloud platform) 는 jupyter notebook 과 같은 솔루션인 datalab 을 제공한다. datalab 은 웹상에서 다양한 소스 구현이 가능하며 심지어 결과물의 시각화 까지 가능하게 한다. 이번에는 datalab 을 사용해보도록 한다. 우선 GCP 콘솔에 접속해서 우측 상단에 ( >_ ) 모양의 아이콘인 Google Cloud Shell 을 열도록 한다. GCS 는 GCP 에서 사용하는 대부분의 행위를 터미널에서 제어할 수 있도록 도와준다. 아이콘을 누르면 아래처럼 터미널이 열린다. Cloud Shell 은 f1-micro GCE 인스턴스를 사용하는데, 메모리가 무려 0.6 기가다. 여기 Shell 에서 뭔가를 해볼 생각은 접어두는게 좋다. 가급적 gcloud 관..
원문 링크 : https://kldp.org/node/75861이 글은 darehanl님이 작성하신 글인데 너무 주옥같은 내용이라 퍼왔습니다. 가급적이면 KLDP에 원문으로 읽어주시고, 필요하면 댓글은 그쪽에 달아주세요. 원문에 대한 예의입니다. :-) 그럴거면 왜 퍼왔냐는 질문은 댓츠노노! kldp에 혹여라도 천재지변이 생길까봐요? 글쓴이: darehanl / 작성시간: 금, 2006/12/01 - 2:19오후"How Samba was written"을 번역해보았습니다. 프로토콜을 역공학하는 기법들을 소개하는 글이며, 라이선스는 Creative Commons Attribution-Share Alike 2.0이고, 다행히 Tridgell님의 허락을 얻을 수 있었습니다.번역 이유는... 1 기말고사 공부하..
어느순간 아침마다 일어나서 미세먼지 농도를 인터넷에 검색하는 것이 일상이 되어버렸다. 일단 미세먼지 관련해서는 우리나라에도 문제가 있지만 중국의 영향이 크다. 앞으로 살아갈 우리 아이들의 미래가 걱정인데, 일부 주변 지인들은 앱을 통해 아침마다 미세먼지 수치를 조회 하기도 한다. 여튼 난 이런 모든 것들이 귀찮아졌고 그냥 알림을 받고 싶었기에 이번 일(?)을 시작하게 됐다.우선 미세먼지 농도를 알 수 있는 방법은 여러가지가 있겠지만 공공데이터포털에서 제공하는 정보를 사용하기로 했다. 오늘 날짜(2017.05.23) 기준으로 2,330 개의 OpenAPI 를 제공하는데 미세먼지 농도도 여기에 포함되어 있다.우선 이 데이터를 사용하려면 간단한 회원가입 절차가 필요하다. 아마도 인증 때문이겠지. 어렵지 않으니..
iconv 개론C/C++ 기준으로 개발을 하다보면 문자열을 특정 케릭터셋으로 컨버팅 해야하는 경우가 발생하는데 이때 주로 사용되는 library에는 libiconv라는 것이 있다. 사용법은 무척 간단한데 우선 오픈소스인 libiconv를 다운받고 컴파일 하고나서 링킹을 걸어 사용하면 되는데 여기서 이런 소소한 것들은 우선 스킵하도록 한다. 어렴풋한 기억으로는 소스는 단순히 configure와 make만 돌려도 사용할 수 있다. dynamic library는 기본으로 생성되고, static library는 configure에 옵션을 줘야 한다는 점을 기억하자. 마침 이러한 내용은 대부분 아래 링크에서 확인할 수 있다. http://www.gnu.org/software/libiconv/이렇게 컴파일해서 생성..
Gmail에는 재미있는 숨은 기능이 몇 가지 있다. 여기서 그 중에 두 가지를 알아보도록 하자. 메일 주소에 Plus(+) 기호 사용 Gmail은 자신의 메일 주소에 플러스 기호를 사용할 수 있다. 플러스 기호를 기준으로 @까지의 문자열은 무시되어 결국 내 메일함으로 들어오게 되는데 활용 방법이 다양하다. 가장 많이 사용되는 방법 중 하나가 플러스 이후 문자열을 기준으로 편지함을 구분 짓는 것. 그렇게 하면 편지를 자연스럽게 모아볼 수 있다.예를 들면 아래처럼 사용할 수 있다. test@gmail.com // 실제 사용자 계정test+mentor@gmail.com // 멘토 역할을 할 때 사용test+study@gmail.com // 스터디할 때 사용하는 주소test+info@gmail.com // 사이..
아마도 나와 유사한 업무를 하는 시스템 프로그래머는 대부분 회사 업무에 치여 다른 무언가를 한다는 것은 상상하기 힘들 것이다. 간혹 그렇지 않은 곳도 많지만 …여하튼 시간이 종종 생겨도 다른 무언가를 뚝딱뚝딱 만들거나 미뤘던 공부를 하면서 시간을 보냈는데 우연찮게 GitHub 프로젝트에 발을 담그게 됐다. 나의 첫번째 컨트리뷰트는 TensorFlow-kr 문서 번역. 영어가 능통해서 문장을 술술 풀어 쓰지는 못하고. 또한 TensorFlow의 구조에 대한 이해가 부족하여 일단 다른 사람이 번역한 내용의 소소한 오타 수정이나 마크다운 문법에 대한 오류를 정정해서 컨트리뷰트 하고 있다.컨트리뷰트에 대한 벙법은 홍콩과기대의 김성훈 교수님이 어떤 절차를 수행하면 되는지 너무나 상세히 동영상(Github Flow..
211 시스템 상태나 시스템 도움말 응답214 도움말 메시지 [수신자 사용법이나 특별한 비표준 명령어에 대한 정보; 이 응답은 사람에게만 유용하다] 220 서비스 준비 완료 221 서비스 종료된 전송 채널 250 요청된 메일 동작 확인, 완료 251 로컬 사용자가 아님; 로 전달 될 것이다.354 메일 입력 시작; 종료는 .421 서비스를 이용할 수 없음, 닫힌 전송 채널 [서비스가 종료되어야 한다는 것을 알고 있다면 이것은 모든 명령에 대한 응답일 수 있다] 450 요청된 메일 동작이 수행되지 않음: 메일박스를 이용할 수 없다 [예를들어, 메일서버가 바쁜 상태] 451 요청된 동작이 중단 됨: 처리 중 내부 오류 452 요청된 동작이 수행되지 않음: 시스템 저장소가 충분하지 않음500 구문 오류, 인식..
이러저러한 이유로 Linux에 message queue를 사용하고 있는데, 메시지의 길이가 일정 수치를 넘어가면 문제가 발생했다. sysctl로 확인하고 값을 변경해도 동일. $ sysctl kernel.msg{max,mni,mnb} kernel.msgmax = 65535 kernel.msgmni = 16 kernel.msgmnb = 65535 $ 각 고유한 값을 변경하는 방법은 아래와 같다. $ sysctl -w kernel.msgmax=655350 kernel.msgmax = 655350 보이기에는 잘 변경 된 것처럼 보이지만 실제로 긴 문자열은 처리가 안되더라. 하아. 오랜만에 커널 코드를 열어보자. 서버에서 사용하는 커널 버전은 아래 링크를 통해 구했다. https://www.kernel.org/..
※ 본문에 티스토리 기술 문제로 이미지를 로드 할 수 없게 되었는데 읽는데 큰 지장은 없을 겁니다 이미지에서 문자를 추출하는 기술은 광학 문자 인식(Optical character recognition; OCR)이라는 이름으로 불린다. 이미 많은 OCR 기술이 오픈소스로 등록되어 있는데 여기서는 tesseract-ocr을 사용해서 이미지에 있는 문자를 추출해 보도록 하자. tesseract는 구글에서 지원하는 프로젝트이고 인식률이 OCR 기술 중 굉장히 높은 편에 속한다고 한다. 우선 tesseract-ocr을 다운로드 받고 설치해야 하는데 과정은 아래와 같다. (wiki를 참고하면 더욱 자세하게 확인할 수 있다) 필요한 패키지를 설치한다. $ sudo apt-get install autoconf aut..
tesseract-ocr을 configure 하다보면 아래와 같은 오류가 출력되는 경우가 있다. configure: error: Leptonica 1.74 or higher is required. Try to install libleptonica-dev package. 무려 Ubuntu 16.04 인데 말이다!! 우선 이미지 프로세싱에서 사용되는 leptonica 버전을 1.74 혹은 그 이상으로 올려야 한다는 의미인데, tesseract-ocr wiki 에서 아래와 같이 관련된 내용을 찾아 볼 수 있다. but if you are using an oldish version of Linux, the Leptonica version may be too old, so you will need to build..
리눅스 시스템은 부팅시에 자동으로 스크립트 실행을 통해 특정 데몬의 시작 여부를 결정할 수 있는데, 이를 간편하게 제어할 수 있도록 제공되는 명령어라 chkconfig 되시겠다. 명령어의 도움말을 보면 아래와 같이 무척 간단해 보인다.chkconfig --help 우선 이 명령어를 이해하기에 앞서 CentOS의 부팅모드를 이해하고 있어야 한다. /etc/inittab 에서 현재 시스템의 모드를 확인할 수 있는데, 샵(#)은 주석이니 신경 쓸 필요 없고 마지막에 id 값을 보면 3 (Full multiuser mode)으로 설정 된 것을 기억한다. 가장 보편화되어 사용하는 sshd의 상태를 예제로 살펴보기로 한다. 현재 sshd의 상태는 아래와 같고, 0~6까지 나타내는 숫자는 바로 위에 inittab에서..
Linux에서 Application을 개발하다 보면 가장 힘든 것이 데몬이 "어쩌다가" 죽는 경우이다. 죽는 빈도가 잦거나 특정 상황이 유추되면 그나마 괜찮은데, 짧게는 일주일, 길게는 한달에 한번 죽는다면 디버깅 하기도 힘들고 관련 정보를 얻는 것도 녹록치 않다. 이때 유용하게 사용할 수 있는 것이 CentOS 6 이상에서 기본 제공되는 abrt를 이용하는 것이겠다. (CentOS 5 이하는 아래 내용이 포함되어 있지 않다.) 우선 이 기능은 프로그램 상에 올라가는 데몬이 죽게되면 coredump를 파일로 남기는 것이고, 후에 이 coredump를 gdb에서 활용해서 bracktrace 등 다양하게 디버깅이 가능하겠다. 기능을 활성화하는 방법은 아래와 같다. 1. /etc/abrt/abrt-action..
프로그램을 협업으로 개발하다보면 어느정도 규칙이 필요하다. 그렇지 않고 본인 스타일대로 개발을 시작하면 나중에 merge된 소스는 엉망이 될 수 있기 때문이다. 이런 사태를 방지하기 위해 프로그래밍 규칙은 변수명, 함수 스타일, 들여쓰기 등등이 있지만 여기서는 주석에 대해 다뤄본다. (이러한 규칙은 프로젝트 별로 다르고, 언어마다 천차만별이다.)이 포스팅은 주석을 일관된 형식에 맞춰 달 수 있도록 도와주는 툴킷인 Doxygen에 대한 설명이다. 우선 Doxygen은 Vim의 툴킷으로 아래 링크에서 다운로드할 수 있다. http://www.vim.org/scripts/script.php?script_id=987본인이 사용하는 Vim의 버전에 맞는 툴킷을 받아 설치하도록 하자. 설치는 다운로드 받은 Doxy..
앞서 Cloud Shell을 이용해서 인스턴스에 접속하는 방법을 살펴봤는데, 이번에는 내가 사용하는 머신에서 직접 SSH를 접속하는 방법에 대해서 설명한다. 환경은 리눅스(우분투)지만 다른 OS라도 크게 다르지 않을 것이다.전체 시나리오를 요약하면 다음과 같다.1. 로컬에서 ssh 접속을 위한 rsa key 생성 2. 생성한 key 를 Google Cloud Platform 콘솔에 등록천천히 살펴볼텐데 우선 GCP에 등록할 rsa key 를 생성해야 한다. rsa key 의 default는 id_rsa 라는 이름으로 지정 되는데 혹시 이미 사용중일 수도 있으니 적당한 이름으로 변경해서 사용하도록 하자. $ ssh-keygen -t rsa -f ~/.ssh/[KEY_FILE_NAME] -C [USERNAM..
GCP 는 기본적으로 Google Cloud Shell 을 제공한다. Cloud Shell 에서는 프로젝트를 관리하거나 인스턴스를 제어 하는 등 웹에서 할 수 있는 대부분의 것들을 Shell 에서 사용할 수 있도록 해준다. 사용하려면 우측 상단에 터미널 아이콘을 클릭하도록 한다.잠시 기다리면 브라우저 하단에서 Shell 을 확인할 수 있는데, 새로운 브라우저로 빼서 확인해보도록 하자. 사용 가능한 대부분의 명령어는 gcloud 라는 커맨드로 제공되며 각 인자는 tab 으로 단어 자동완성을 지원한다. 공백에서 tab을 누를 경우 사용 가능한 인자 목록이 출력되니 참고하도록 하자.아래는 간단하게 인스턴스 목록을 출력해보는 과정이다. 과정에서 각 인자마다 tab 을 눌러 사용 가능한 명령어를 확인해보았다.oo..
- Total
- Today
- Yesterday