본문 바로가기

IT/프로그래밍

openstack contributor 도전하기 오픈스택을 공부하면서 간단한 철자 오류를 수정하고 싶어서 github에 올렸더니 contributor가 되려면 그냥 PR 하는 방법이 아닌 여러가지 단계를 거치길래 직접 시도해 본 내용을 글로 남긴다. 처음에는 일반적인 github 방식대로 Fork 한 뒤에 수정해서 PR을 했더니 PR 글 밑에 아래와 같은 답변을 줬다. Thank you for contributing to openstack/cinder! openstack/cinder uses Gerrit for code review. If you have never contributed to OpenStack before make sure you have read the getting started documentation: http://docs.op.. 더보기
Docker에서 Django 사용하기 개인적으로 클라우드 서버를 사용하고 있는데 그안에서 여러가지 서비스를 돌리려고 생각중이다 보니 Docker를 사용하게 되었다. 계획은 Docker에서 Ubuntu 이미지를 이용해서 컨테이너 생성 실행 후 Django를 설치하는 것이다. 우선 docker를 설치해야한다. 'docker`는 Linux 운영체제를 제외하고는 별도의 툴을 또 설치해줘야 한다. 여기서는 ubuntu를 기반으로 작성하므로 docker의 설치방법은 링크를 따라가면 자세히 볼 수 있다. docker를 설치하였으면 contaier로 돌릴 운영체제를 선택해야 할텐데 container의 운영체제도 ubuntu를 사용할거다. docker에서는 image와 container라는 개념이 있는데, 간단하게 설명한다면 image는 OS 및 실.. 더보기
Ubuntu 14.04에 MariaDB 설치 및 python연결 Ubuntu 14.04에 Python과의 연동을 위해서 MariaDB를 설치 및 세팅을 하려는 과정에서 여러가지 오류들이 발생하는데 삽질을 한 부분들이 있어서 그부분들에 대해서 정리를 하고자 한다. 우선 MariaDB는 설치과정과 몇개의 모듈들을 제외하고는 MySQL과 비슷하다. 설치방법은 해당 링크 를 참조하자. 버전별로 설치 방법이 되어있다. 그럼 이제 설치를 완료 했다고 치고 삽질로 들어가 보자... 우선 우리는 MariaDB와 python을 연동 시킬 계획이니 MySQL-python을 설치해야 한다. pip install MySQL-python 설치가 잘되면 상관없는데 위에서 계속 말했든이 이 post는 삽질에 대한것이다. 그러니 삽질을 위한 오류가 발생을 해야한다. MySQL 인 경우에는 위의 .. 더보기
Python에서 Dropbox SDK를 빌드할때 발생하는 bug 해결책 Python에서 Dropbox sdk를 사용하는 app을 만들고 있는 와중에 py2app을 이용해서 빌드한 후 실행을 하면 테스트 과정중에서는 접하지 못했던 오류가 발생한다. NotImplementedError: resource_filename() only supported for .egg, not .zip 해결 방법을 찾아보다가 해당 링크에서 동일한 문제를 발견했다. 참조링크 (위 블로그의 작성자는 py2exe를 사용하였고 나같은 경우에는 py2app을 사용한 것이지만 어차피 distutils을 상속받아서 사용하기에 큰 차이점은 없다.) 참조링크의 방법을 이용해서 문제를 해결하였다. 프로그램의 오류가 발생하고 난 후에 osx에서 콘솔을 열면 프로그램 log 데이터들을 확인할 수 있는데 오류가 발생한 위.. 더보기
Python 에서 Dropbox SDK 이용하기 Python과 Dropbox 연동 했던 부분에 대한 기록을 남겨둔다. 우선 Dropbox의 개발자 사이트로 접속하면 dropbox api에 대한 문서 및 사용법에 대한 부분이 정리가 아주 잘 되어있다. OAuth 가이드의 설명 부분도 이미지를 이용한 방식이 보기도 좋고, (개인적 취향으로 다른 서비스들의 설명보다 보기 좋았음...) 우선 사용을 하려면 다른 서비스들과 마찬가지로 APP 등록을 해야한다. 앱 등록을 하려면 위의 화면과 같이 Drop-ins app, Dropbox SDK app 둘중에 선택을 해야하는데, python용 SDK 사용을 위해서는 Dropbox SDK를 사용해야 한다. 그리고 drop-ins는 웹, 모바일앱을 위한 용도로 사용하기에 좀더 최적화 된듯 하다. dropbox SDK를 .. 더보기
PyCrypto를 이용해서 AES방식으로 암호화 하기 Python에서 암호화를 위해서 사용한것을 잊어먹지 않기 위해서 작성합니다. Python 에서 AES 암호화를 위해서 Pypi 검색을 해보니 너무 많아서 어떤걸 사용해야 할지 모르겠다. 개인적으로 보기에 비교적 많이 사용된다고 느낀 PyCrypto, M2Crypto 두 가지 중에서 PyCrypto를 이용해서 개발했다. 어찌 보면 상관없지만 그냥 비교를 해놓은 글이 있어서 참조. Using PyCrypto instead of M2Crypto on Google App Engine 내가 참조하기 위해서 쓴 글이다 보니 코드 위주로만 작성한다. 우선 pip에서 PyCrypto를 설치해놨다고 생각하고 쓴다. 전체 코드 (링크를 참조해서 작성) # -*- coding: utf-8 -*- from Crypto.Cip.. 더보기
Python에서 I18N 적용하기 요즘 웹사이트나 프로그램들을 보면 다양한 언어를 지원하는 것을 많이 본다. 나도 개인적으로 진행중인 프로젝트에서 다국어를 지원해 보고자 시도했던 방법을 여기에 작성한다. 개발환경은 osx 10.9.5, python 2.7 이다. python에는 gettext라는 기본 모듈이 있다. 해당 모듈을 사용하면 비교적 간단하게 다국어의 지원이 가능하다. 우선 gettext를 test할 파일을 만들어 보자. 파일명은 gettext_test.py 로 정했다. # gettext_test.py import gettext t = gettext.translation('gettext_test', 'locale', languages=['ko'], fallback=True) _ = t... 더보기
Python 두가지 상속 방법의 차이점 python에서 상속의 경우 두가지 방법이 존재한다. 첫번째 방법 :super method를 이용한 방법 class ChildA(parent) : super(ChildA, self).__init__(args) 두번째 방법 : parent를 이용한 방법 class ChildB(parent) : parent.__init__(self, args) 이렇게 두가지의 방법이 있다. 인터넷을 찾아보니 이미 나와같은 궁금증을 올린 사람들이 있다. [링크] 더 찾아보니 한글로도 있다. [http://techbard.tistory.com/2930] 내용들을 다 참조해서 보았을때 ChildA의 상속방식의 경우 부모의 __init__ 메소드를 직접 참조하였기에 parent 클래스가 수정될 경우 해당클래스를 상속받는 모든 클래.. 더보기
Mac환경에서 python으로 clipboard 값 가져오기 개인적으로 진행하고 있는 프로젝트에서 Python을 이용하여 mac환경에서 wxPython으로 개발을 하고 있는데 wxPython이 mac 환경을 제대로 지원하지 않다보니 font의 인코딩 문제라던지 여러가지 자잘한 버그들이 많이 발생을 한다. 이번에도 클립보드에 있는 값을 가져오기 위해서 처음에는 wx에서 기본으로 지원하는 Clipboard함수를 사용하였는데 clipboard의 값을 제대로 가져오지 못하고 깨져서 나온다. 해당문제를 해결하는 방법을 찾아본 결과 mac에서는 방법이 두가지 있었다. subprocess 모듈을 이용하는 방법 2. PyObjC 모듈을 이용하는 방법 하나씩 보자~ 개발 환경 : mac os : 매버릭스, python : 2.7.9, wxPython : 3.0.2.0 1. sub.. 더보기
Qt Calculator(계산기) 예전 임베디드 수업 시간에 Qt를 이용해서 만들어 본 계산기... 임베디드 용으로 보드 상에 올리는 목적이다 보니 양손에 잡고 사용하기에 편하도록 만들다 보니.. 디자인이 이상할 수도... 되도록 이쁘게 만든다고 버튼들도 하나하나 이미지 씌우고 보기와 같이 투명화도 했지만... 그래도 왜이리 허접해 보이는지 -_-;; 우선 위의 그림은 윈도우에서 돌린 화면... 버튼 눌린 부분은 녹색으로 색이 바뀌고 덧셈 뺄셈 등등의 기능 사용시에는 위의 작은 화면에 표시 되도록 해놨다. 보드에서 돌린것은.. 아쉽게도 못찍어 놨다.. 하지만 Qt자체가 소스코드 상관없이 컴파일만 설정 잡아주고 하면 되니.. 돌아간다는... 더보기