무료 크레딧 기간동안 부지런히 테스트를 해야 한다. 이번에는 Compute Engine 에 VM 인스턴스를 생성해보도록 하겠다. VM 인스턴스는 가상의 서버가 존재하는 것처럼 사용하는 것이 가능하도록 해준다. 서버의 용도는 개인에 따라 구분되겠다. 웹서버가 될 수도 있고, 기타 앱 테스트를 위한 공간이 될 수도 있다.우선 아래 그림처럼 메인 대시보드에서 Compute Engine 항목에서 VM 인스턴스를 클릭하도록 한다.최초 진입시 화면은 아래와 같다. 샘플 앱을 제작하려면 "빠른 시작 사용"을 클릭하면 되고 직접 모든것을 설정하려면 "만들기" 버튼을 선택하면 되겠다. ("가져오기" 버튼은 cloudendur 라는 곳에 있는 데이터를 마이그레이션 하는 듯?)기본적인 화면 구성은 아래와 같다. 크게 정리해..
우선 GCP에서 무엇인가를 하려면 프로젝트를 등록해야 한다. 서버 용도나, 기계학습 용도나 프로젝트 단위로 관리되는 것으로 보인다. 여기서는 기계학습을 사용하기 위한 준비과정을 다룰텐데, 기계학습 API를 사용하려면 우선 "사용자 인증 정보"가 필요하다. 그것보다 더 먼저 필요한 것은 프로젝트를 등록하는 것이겠다. (사실 모든 것의 기본은 사용자 인증 정보이다.) 아래처럼 새 프로젝트를 등록하도록 한다. 프로젝트 이름은 일부 특수문자는 사용할 수 없으며 소문자로 자동 변환 된다.프로젝트에 적당한 이름을 붙이고 "만들기" 버튼을 누르면 프로젝트가 생성이 된다. 진행되는 과정을 잠시 기다리도록 한다.이제 프로젝트가 완성되었고, 앞서 언급한 사용자 인증 정보를 만들어야 한다.우선 API 키를 만들도록 한다. ..
GCP(Google Cloud Platform) 를 사용하는 과정을 기록하도록 한다. 본편에서는 가입하는 과정에 대해 기술하고, 이후부터 API 사용법 등에 대해 다뤄보도록 하겠다.우선 사용을 위해 cloud.google.com 으로 접속을 한다. 필요하다면 구글 계정으로 로그인을 하고 아래 TRY IT FREE 버튼을 클릭하도록 하자.다음 화면에서 국가를 입력하고 여러가지에 대해 동의하도록 한다. (동의하지 않으면 계속 진행할 수가 없다.)이어 주소정보를 기입하도록 하자. 옆에 도움말처럼 무료 크레딧은 $300 이 주어지며, 12개월 동안 사용 가능하다.결제 옵션으로 신용카드 정보를 입력한다. 자동 가입 방지를 위한 절차이며, 무료 평가판이 종료되어도 자동으로 청구되지 않으므로 안심할 수 있겠다. (사..
삼성역 코엑스 그랜드볼룸에서 진행 된 GCO(Google Cloud Onboard)에 다녀왔다. 섹션의 내용에 GCP(Google Cloud Platform)와 머신러닝에 대한 부분에 큰 관심이 있었고 근래에 다녀온 AWS의 Cloud와 비교해보고 싶기도 했다. 07시 45분쯤. 너무 이른시간에 도착해서 한산한 모습이다. 그랜드볼룸에는 ISEC 등의 컨퍼런스가 진행 될 때만 와서 그런지 부스 없는 이런 한산함은 적응이 안되더라. 조금 지나니 하나둘 사람들이 모이기 시작했고 파노라마 욕심에 찍어봤는데 역시 엉성하다. 이런것도 해본 놈이 한다고(...) 9시 30분 조금 지나자 세미나장으로 입장할 수 있었다. 화면 슬라이드에는 금일 진행되는 교육에 대한 진행 과정 및 경품 안내가 나오고 있었다. 잠..
VIM에 낱말 자동완성 기능은 bash, php, python 등 스크립트 언어를 개발할 때 무척 편리하다. C/C++ 같은 경우 선언되지 않은 변수를 사용하면 바로 compiler가 에러를 내뱉지만, 스크립트 언어는 변수명에 오타가 있어도 선언과 동시에 사용이 되어버리기 때문이다. 우선 낱말 자동완성 기능을 사용하려면 VIM 공식 홈페이지에서 autocomplpop 관련 플러그인을 다운받고 설치해야 한다.링크를 통해 접속하면 아래와 같이 버전별로 다운받을 수 있으니 적당한 버전을 다운 받도록 하자. (간혹 VIM과 버전 호환이 맞지 않는 경우가 있으니 참고하도록 한다.) 다운받고 압축 파일 내부를 보면 세 개의 폴더가 있다. 각 폴더 별로 설정파일 한 개 씩이 존재하는데 모두 그대로 VIM 설정 폴더 ..
stackoverflow에 질문을 작성하고 Post Your Question 버튼을 눌렀는데 아래와 같은 메시지가 나오면서 글 작성이 완료되지 않는 경우가 있다. You can only post once every 90 minutes. stackoverflow는 동일한 IP에서 글이 작성되는 것을 어느정도 막고 있는 듯 하다. 개인적인 생각으로는 도배하는 행위를 차단하기 위해서 그렇지 않을까? 명성(reputation)이 더 쌓이면 이런 문제가 없을 것 같기도 하다. 여하튼 이런 경우는 보통 회사에서 주로 발생하는데 개인 PC에서 사용되는 IP는 사설 네트워크로 할당되어 있고, 회사 방화벽쪽에서 NAT(network address translation)를 통해 사설 IP가 공인 IP로 변경되어 인터넷이 ..
AWSomeDay가 세종대학교에서 열려 참석했다. 평소 AWS에 무척 깊은 관심이 있었지만 선뜻 계정을 만들지 못하고 있었는데, 이유인즉 무료티어가 1년이라 최대한 시간을 올인해서 공부할 수 있는 시기에 계정을 생성하고 싶었기 때문이다. 한편 AWS 관련 정보는 유저 그룹 등에서 얻고 있었지만 많이 부족해서 이번 AWSomeDay는 내게 꿀 같은 교육의 시간이었다. 기대가 커서 아침 일찍부터 세종대학교를 찾았다. 입장이 9시 30분까지인데 7시 30분쯤 도착했다는 후문... 이미 세종대학교 길거리에는 AWSomeDay를 알리는 깃발이 잔뜩 꼽혀있었다. 사전등록을 했지만 전산 오류로 정상적인 인증이 이루어지지 않았다. 스탭 이야기로는 간혹 그런 경우가 있다며 현장 등록을 권하였고, 아마도 내가 1등 참석자..
문자열을 특정 구분자로 잘라서 파싱할 때 유용하게 사용되는 함수가 바로 strtok 되시겠다. 하지만 많은 웹사이트 글처럼 이 함수는 thread 에서 안전하지 못하다. 즉, 의도치 않게 동작할 수 있다는 의미인데 어디에도 명쾌하게 이유를 설명한 글이 없어서 직접 작성해본다. 우선 strtok 의 함수 원형을 glibc 에서 찾아보면 아래와 같다. /* Parse S into tokens separated by characters in DELIM. If S is NULL, the last string strtok() was called with is used. For example: char s[] = "-abc-=-def"; x = strtok(s, "-"); // x = "abc" x = strtok..
https://www.openssh.com/releasenotes.html OpenSSH 6.9/6.9p1 (2015-07-01) The default for the sshd_config(5) PermitRootLogin option will change from "yes" to "no". 7.1p2로 패치하고 ssh 접속이 안되서 엄청 삽질 했는데 답은 릴리즈 노트에 있었다. 당장은 sshd_config도 패치할 때 신경을 쓰던지 소스를 수정해서 배포해야겠다. 패치 링크
윈도우로 치면 "바로가기" 같은 개념으로, 리눅스에도 링크 기능이 있다. 특정 파일이나 디렉터리를 링크 걸어 사용할 수 있는데, 링크에는 두 종료가 있다. 첫 번째 : 하드 링크 (hard link)두 번째 : 심볼릭 링크 (symbolic link) 두 개 모두 처리하는 역할은 같지만 개념이 약간 다르다. 그 개념을 바로 잡고 적절하게 사용할 수 있어야겠다. 하드 링크 (hard link)원본 파일과 동일한 inode를 가진다. 그렇기 때문에 원본 파일이 삭제 되더라도 원본 파일의 inode를 갖고 있는 링크 파일은 여전히 사용 가능하다. 사실 링크라는 표현도 애매하다. 같은 inode를 가르키는 서로 다른 이름이라고나 할까? 원본이라는 개념이 없다. 아래 잠깐 예제를 살펴보자. 우선 테스트를 위해 t..
pip로 설치된 package 목록을 보기 위해서는 pip에 freeze 옵션을 사용합니다. freeze에 대한 옵션 설명은 아래와 같습니다.freeze Output installed packages in requirements format. 실제로 사용해보면 아래와 같이 설치된 package 리스트를 볼 수 있습니다. 친절하게 버전까지 출력이 되네요. 특정 package에 대한 보다 자세한 정보를 얻기 위해서는 pip에 show 옵션을 사용합니다.show에 대한 옵션 설명은 아래와 같습니다.Show information about installed packages. 사용해보면 버전정보 뿐만아니라 기타 유용한 정보도 함께 출력됩니다. 특히 Requires가 인상적이네요.
virtualenv로 프로젝트 환경(tensorflow)을 구축했는데 pycharm에서 동작시키는 방법을 몰랐다. 처음에는 그냥 터미널 vim에서 코딩하려했으나.. 역시 프로젝트 규모가 커지면서 한계가 있더라. 일단 python 언어 자체가 vim에 최적화된 언어는 아니니까. 그래서 결국 pycharm-community를 설치하고 virtualenv로 구축한 환경을 연동 시켜봤다. 핵심은 프로젝트의 인터프리터(Interpreter)를 virtualenv에 있는 python으로 지정하는 것이다. 우선 Settings을 열면 아래와 같은 화면이 보인다. 메뉴 중 Project Interpreter를 선택하고 우측에 보이는 톱니바퀴를 클릭한다. 다시 우측에 플러스(+) 버튼을 누르면 인터프리터를 추가할 수 있..
협업툴로 굉장히 명성높은 슬랙에 보면 봇이 존재한다. 기본적으로 협업 공간을 생성하면 SlackBot 이라는 놈이 있는데, 이 SlackBot은 슬랙을 사용하는데 미비한 도움을 주는 .. 그다지 스마트 하지 못한 헬퍼 봇이다. (하물며 영어로 말한다. 당연한건가?) 하지만 슬랙이 명성 높은데는 다 이유가 있다. 다른 APP들과 연동이 쉽고 많은 API를 제공하기 때문인데 그 중에 Bot을 생성할 수 있도록 도와주는 BOT API도 있다. 그렇다면 우리 기호에 맞도록 헬포봇을 만들어보자. 우선 아래 링크를 통해 봇을 생성할 수 있는 페이지로 이동한다.https://api.slack.com/bot-users 그리고 아래 화면에서 "creating a new bot user" 를 선택하도록 한다. 브라우저에 ..
한국과학기술회관에서 진행된 머신러닝 세미나에 다녀왔다. 일주일을 시작하는 월요일에다가 평일 오후 시간이라 회사에서 점심을 챙겨먹고 강남역으로 이동. 이번 세미나에 대한 정보는 텐서플로우 코리아에서 얻을 수 있었다. 일단 참석하게 된 계기는 요즘 머신러닝이라고 하는 분야에 개인적으로 무척이나 흥미를 갖고 있었고, 해당 분야 지식에 대한 갈증이 있었기 때문이겠다. 세미나장 건물에 도착해서 마침 1층에 커피숍이 있길래 진한 아메리카노 한잔과 함께 세미나가 열리는 대회의실로 이동. 웬걸.. 세미나장 앞에서 무료로 커피를 나눠주고 있다... 커피를 나눠주는 것 보니 규모가 작은가? 싶었지만 이내 대회의장으로 들어가보니 엄청나게 넓은 홀은 이미 앉을틈이 없을 정도였다. 역시 이쪽 분야에 대한 사람들의 관심은 핫하구..
요즘 주식에 관심이 생겨서 소소하게 참여하고 있는데, 소액임에도 불구하고 은근히 신경쓰여서 계속 모니터링 하게 된다. 잠깐잠깐 보는 것 조차 시간이 아깝게 느껴지는 시기가 올 때 쯤... 평소 개발을 터미널 환경에서 하고 있었기 때문에 모니터링 할 수 있는 커맨드를 만들게 됐다. 뭐 사실 겸사겸사 python 공부도 하고 말이다. #!/usr/bin/env python #-*- coding: utf-8 -*- import sys try: import requests from bs4 import BeautifulSoup except ImportError: print("Please install requests, BeautifulSoup.") def usage(): print "Usage: %s code" ..
DocuWiki를 사용중이었는데 그 동안은 시간 좌표를 찍을 일이 없어서 시간 동기화 개념이 없었다. 그러던 중 포스팅에 "서명"을 이용할 일이 있었는데 현재 시각이 아닌 GMT가 찍히고 있었다. 서버는 분명 KST로 설정되어 있었지만 DocuWiki에서만 그렇게 인식이 된것이다. 아니 더 정확히 말하면 php 설정이 그러했다. 해결방안으로 php.ini에 date.timezone 이라고 써있는 부분에 Asia/Seoul 값을 넣어준다.date.timezone = Asia/Seoul 그리고 httpd 서비스를 재시작해준다.service httpd stopservice httpd start 정상적으로 시간 좌표가 출력되는 것을 확인해주면 되겠다. 아래 링크를 참고하면 더 도움이 될 수 있겠다. https:..
기본적으로 virtualbox를 설치하면 USB 모듈이 "USB 1.1(OHCI) 컨트롤러(1)"로 설정되어 있다. windows에서 정상적으로 인식 시키기 위해서는 USB 2.0이나 3.0을 선택해야 하는데, 이때 선택으로 하게 되면 아래와 같이 "잘못된 설정 감지됨" 이라는 경고 문구가 출력된다. Virtualbox 공식 홈페이지에서 관련된 확장팩을 배포하고 있다. 이곳을 클릭해서 설치된 virtualbox의 버전과 호환되는 Extension Pack을 설치 받도록 하자. 내 경우는 위 방법을 통해도 USB가 즉시 보이지는 않더라.. 게스트 확장 CD를 넣고 추가적인 설치도 했으나 여전히 동작하지 않았었는데 Host(Ubuntu)를 재부팅하니 정상적으로 인식이 되더라. 아마도 virtualbox 확장..
image import$ docker load -i image export$ docker save -o container import$ docker import ./backup.tarcontainer export$ docker export container_name > ./backup.tar image를 export 할 때 동일한 REPOSITORY가 여러개 존재하는 경우 마지막 TAG가 save 되는데, 특정 TAG는 콜론(:)으로 지정할 수 있다. 예를 들면 아래와 같다.$ docker save image_name:16.04 > ./backup.tar 참고https://docs.docker.com/engine/reference/commandline/import/https://docs.docker.co..
한글이 깨지는 문제 때문에 파일을 iconv로 변환하거나 vim에서 fileencoding을 변경하는 일이 종종 있다. 하지만 이러한 명령어가 언제나 말을 잘 듣는 것은 아니고 일단... 긴 명령어를 기억해야 하는 것이 녹록치 않다. 그래서 그냥.. vimrc에 등록해놓고 사용하련다.utf-8과 euc-kr을 왔다 갔다 하면서 사용할 수 있겠다.map :e ++enc=utf-8 map :e ++enc=euc-kr이건 단순히 소스코드를 다운받고 한글 주석을 디버깅 하는 용도로 사용하면 요긴하겠다.
python에서 curl을 사용하고자 pycurl을 pip로 인스톨 시키는데 아래와 같은 에러가 발생했다. Downloading/unpacking pycurl Running setup.py egg_info for package pycurl Traceback (most recent call last): File "", line 16, in File "/tmp/pip-build-root/pycurl/setup.py", line 563, in ext = get_extension() File "/tmp/pip-build-root/pycurl/setup.py", line 368, in get_extension ext_config = ExtensionConfiguration() File "/tmp/pip-build..
- Total
- Today
- Yesterday