오픈소스에 기여 - python mysql driver

박제권
한줄짜리 코드이지만, 장고에서도 추천하는 파이썬 mysql 드라이버에 기여했다. 파이썬 3.5에서 제대로 동작하는 mysql 드라이버가 없어서 한참동안이나 문제였는데, 2.7에서도 많이 쓰이던 pymysql 이 언젠가부터 3.5를 지원하기 시작했다. 프로덕션에도 도입하기로 하고 잘 사용하고 있었는데, stored procedure 에서 문자열을 인자로 주는 경우, 이 문자열에 한글을 넣으면 surrogates not allowed 라는 익셉션이 발생했다. 처음에는 def literal(self, o): s = self.escape(o, self.encoders) if not PY2 and isinstance(s, bytes): return s.decode('ascii', 'surrogateescape') return s 를

근무시간을 늘리는 것은 답이 아니다

박제권
성공하고 싶다면 근무시간을 늘리라는 아웃스탠딩의 글을 읽었다. 초보자가 숙련공이 되려면 많은 시간을 수련에 쏟아야 한다. 밥먹는 시간에도 계속 생각날 정도로 나를 끌어당기는 일을 찾아야하고, 그리고, 많은 시간을 들여야한다. 하지만, 그것은 초보가 숙련공이 되기위해 많은 시간이 필요하다는 것이지, “노동자의 주당 90시간 근무”를 주장의 근거로 쓰여서는 안된다. 개발자의 의견과는 상관없이 결정된 일정, 그로 인한 밤샘, 그리고, 프로젝트 드롭. 우리주변에는 이미 개발환경을 건강하게 만들고 싶어하는 분들이 많이 있고, 성과도 있다. 회고도 하고, 전략도 제대로 만들어야한다.

파이썬으로 풀어보는 수학 2 그래프

박제권
책은 뉴욕 기후 변화를 예제 데이터로 사용하네요. 우리는 서울에 사니까, 조금 바꿔보았습니다. 다음 그래프는 2000년 부터 2016년까지 매년 7월1일의 기온을 표시한 것입니다. 데이터는 기상자료개방포털에서 받았습니다. 나머지는 책을 참고해서 이리저리 바꿔보면 되는데, 그래프에 한글 표시를 위해서는 다음 코드가 필요했습니다. from matplotlib.pyplot import rc, plot, show, imshow, title, xlabel, ylabel, legend # 이걸해야 그래프에 한글이 잘나옵니다. rc('font',family='AppleGothic')</pre> 이어지는 코드는 다음과 같습니다. # 책에는 뉴욕의 평균온도가 예제로 나온다. 나는 서울로 해보았다. # # 소스 : https://data.

파이썬으로 풀어보는 수학

박제권
재미있어 보여서 샀는데, 64쪽의 예제가 동작을 안합니다. 문제가 된 환경은 맥OS X. x_numbers = [1,2,3] y_numbers = [2,4,6] from pylab import plot, show plot(x_numbers, y_numbers) show() 를 실행하면 화면에 그래프가 보일꺼라고 쓰여있지만, ImportError: No module named 'pylab' 라는 오류가 보입니다. pip install pylab 을 한 다음 실행해보면 ImportError: cannot import name 'plot' 이라고 합니다. 뒤져보니 from matplotlib.pyplot import plot, show, imshow 가 올바른 임포트 방법이라고 하네요. 그랬더니 이번에는 RuntimeError: Python is not installed as a framework.

스탠포드 스위프트 강의 2편 중

박제권
꽤 오래전부터 네이티브를 회피하며 폰갭따위를 뒤지고 있었다. 하지만 그쪽도 만족스럽지는 않아서, 결국은 앱 개발 기술에 대해서는 거의 공부를 하지 않게 되어버렸다. 그럴싸한 무언가가 나오기를 기다렸지만 cocoa touch나 android sdk 를 배우는게 훨씬 빠를 듯 하다. 얼마전에 안드로이드 개발관련 블로그를 보고 조금 따라해보면서 그쪽 감각을 살짝이나마 맛봤었고, 오늘은 스탠포드의 스위프트 동영상을 보고있다. 수염이 하얀 아저씨가 간단한 계산기 만드는 과정을 가지고 강의를 진행하신다. 동영상을 보던 중, 까먹을까봐 캡쳐해서 올려둔다. (동영상 링크 : https://youtu.

코노하

박제권
ConoHa 라는 서비스가 있다는 이야기를 들었다. 전에도 몇번 들은 듯… 테스트해보기로 했다. 어차피 돈이 덤비는 상황에서는 아마존이나 유클라우드를 쓰면 되지만, 간단하게 테스트 해보고 싶은 것이 있을 때는 DigitalOcean을 써왔다. Linode 도 썼었는데 DigitalOcean의 UI가 너무 편했다. PING ucloud 가 5~9ms 정도 나온다. conoha tokyo 는 77~90ms digitalociean sgp 는 100~110ms conoha 가 약간 빠른데, 큰 차이는 아니다. 가격 conoha tokyo: 메모리 1G, core 2 : 9501원 메모리 2G, core 3 : 18474원 메모리 4G, core 4 : 36104 원 digitalocean sgp:

드루팔, nginx, fastcgi

박제권
드루팔을 운영하시는 분의 요청으로 서버를 들여다보았다. 트래픽이 조금만 들어오면 다운되는 상황이라고 하셨슴. 나쁜 모듈 찾기 우선 플러그인 모듈중에 유명하지 않거나 검증되지 않은 녀석들이 있는지 확인했다. 복잡한 모듈들 때문에 사이트가 다운되는 것이 아닐까 예상했는데, 의외로 로그인 박스에 문제가 있었다. 메인페이지에 로그인 박스가 있었고, 거기에 captcha기능을 달아두셨는데, 이 녀석 내부에 문제가 있는지 CPU를 엄청나게 쓰고 있었다. 로그인 페이지를 따로 만들고 그쪽에 넣도록 했다. 메인페이지가 5초가량 걸리던 것을 1초이내 응답하도록 하는데 성공했다.

ubuntu rbenv

박제권
우분투에 ruby를 설치할 때는 소스 컴파일을 하곤 했는데, rbenv 를 쓸 수 있다. /etc/profile 에 export RBENV_ROOT=/usr/local/rbenv export PATH="${RBENV_ROOT}/bin:$PATH" eval "$(rbenv init -)" export PATH="${RBENV_ROOT}/plugins/ruby-build/bin:$PATH" 라고 써주고 chown -R your_user_id /usr/local/rbenv 라고 해주면 rbenv install -v 2.2.3 rbenv global 2.2.3 rbenv rehash 따위가 잘 동작한다.

스파크 공부중 노트

박제권
소소하게 스파크 설치 체험중 (MacOS, JDK1.8) 작업 목표 스파크로 문서 내의 단어 세기 포스트그레스큐엘 접속하기 환경 변수 export SPARK_MASTER_IP=127.0.0.1 export SPARK_LOCAL_IP=127.0.0.1 export SCALA_HOME=/usr/local/scala export $PATH=$PATH:$SCALA_HOME/bin 스칼라 설치 http://www.scala-lang.org/download/2.10.5.html 에서 2.10.5 다운로드. 2.11은 안됨, brew는 기본이 2.11임 압축을 풀어서 /usr/local/scala 에 넣어두자. http://www.scala-sbt.org/release/tutorial/Manual-Installation.html 에서 jar 파일 다운로드후 /usr/local/scala/bin 에 넣음. 스파크 설치 http://spark.apache.org/ 에서 spark 1.5 다운로드하고 압축 풀기 cd spark-1.5.0 ./sbin/start-master.sh ./bin/spark-class org.apache.spark.deploy.worker.Worker spark://localhost:7077 -c 1 -m 512M 프로젝트 생성 (프로젝트이름은 hanal)

메이븐에서 이클립스 컴파일러 사용하기

박제권
이클립스가 자체 컴파일러를 가지고 있다는 것을 몰랐다. 자바 컴파일러를 불러쓴다고 생각하고 있었는데, 이클립스 컴파일러(ecj)는 오라클의 자바 컴파일러(javac)와 결과물이 꽤 달랐다. 나는 javac를 써주고 싶지만, 사정상… 찾아보았다. 의외로 찾는데 오래걸렸다. maven에서 이클립스 컴파일러를 쓸 수 있게 해주는 플러그인이 있고, 버전 지정도 할 수 있다. (원래 포스트에서는 plexus-compiler-eclipse를 사용했으나, tycho 라는 새버전이 있었다. plexus로 해결안되던 문제가 있었는데, tycho가 해결해주었다. 어쨌든 tycho까지 찾는 건 더 많은 시간이 걸렸다.) <build> ... <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.