python3 4

MessagePack (json like + binary)

http://msgpack.org/ JSON 은 나에게 신세계였다. Parser를 짜지 않고 대충 파이썬 같아보이는 것으로 input을 쉽게 임의로 손으로 만들 수도 있고, 로딩, 저장도 쉽고... 그러나 저장할 데이터 용량이 커지기 시작하면 조금 더 압축적인 것이 좋지 않을까. 아예 binary로 저장하는 것이 좋을 듯. bson 이란게 있는데 (binary json) 이것도 비슷한 컨셉이다. http://stackoverflow.com/questions/6355497/performant-entity-serialization-bson-vs-messagepack-vs-json 이 글에 의하면 bson 보다 빠르고 안정적이라는 듯. C++, C, Python 등 여러가지 언어에서 지원되는 것도 장점이다.

Unix 2016.11.23

Boost python 3 예제

boost 1.55에다 python 3.3 환경에서 해봤다. test.cpp: #include char const* greet() { return "hello, world"; } BOOST_PYTHON_MODULE(hello_ext) { using namespace boost::python; def("greet", greet); } 컴파일:$ g++ -shared -fPIC `python3-config --includes` `python3-config --libs` -lboost_python3 test.cpp -o hello_ext.sohello_ext.so 파일이 생길 것이다. hello_ext.so 가 있는 곳에서 아래와 같이 해보자: 사용:forcecore@forcecore:/dev/shm$ pyt..

Unix 2014.03.10

파이선의 좋은 점 +_+ : 입력파일 로드 / 설정파일 로드

프로그래밍에서 어떤의미로, 알고리즘 자체보다도 in/out이 시간도 많이 먹고 매번 새로 짜야 하고 정말 귀찮다... 특히나 입력 파일을 직접 짜야하는 경우, 그것을 파싱하는 모듈도 자꾸 만들어야지 되고. 하지만 파이선에선 그런 문제를 좀 덜 느껴도 된다... 다른 스크립팅 언어도 마찬가지겠지만. 아래처럼 설정파일/입력파일을 짠다. 파이선으로 (!!!!!!!) #!/usr/bin/python3# Unlike other inputs, mode inputs are hand generated by me!# If you decide to do it with ICC, many people have to design a circuit# for months! As long as you don't do your exp..

Unix 2012.04.14

SWIG와 Python3... C++ 클래스를 Python 3에서 사용하기

일단 swig를 설치한다. Python에서도 쓰고싶은 C++ 클래스를 준비한다. 이미 만들어져 있다고 치자. 필자의 경우는 mo_solver.h 란 직접 만든 헤더파일이다. 이 안엔 클래스가 여러개 들어있다. 우선은 swig를 위해 Interface 파일을 작성해야 한다.mo_solver.h 니까 mo_solver.i 라고 하지 뭐. // mo solver wrapper for Python 3%module MoSolver%{#include "mo_solver.h"%} /** * MO solver class * * r denotes the dimension of edge weight vector. */class MoSolver{public: void printGraph( std::ostream& o ) c..

Unix 2012.04.10