[이 글은 이전에 쓰던 블로그에서 작성된 이후 새 블로그로 이전된 글입니다.]

pypy

PyPy을 한 마디로 표현하자면 Python으로 Python을 만드는 프로젝트이다.

이 부분만 들었을 때는 뭘 하는 프로젝트인지 잘 느껴지지 않겠지만, 기존의 CPython에 비해 전혀 느리지 않을 뿐더러, 심지어 몇 배나 빠르다(!)

게다가 점점 빨라지고 있다.

PyPy의 동작 원리는 다음과 같다.

  1. Python에서 문법을 엄격하게 만들어 컴파일이 가능하도록 만든 파이썬 해석기 RPython(translater.py)를 파이썬 코드로 작성한다.
  2. 파이썬 구현(런타임)을 RPython 문법으로 작성한다.
  3. 2에서 만든 Python 문법을 1로 컴파일한다.
  4. 결과로 나온 Python 구현으로 1부터 다시 반복한다.

또 여기서 하나가 더 들어가게 되는데,

PyPy는 JIT 컴파일러인데, 그냥 JIT 컴파일러가 아니라 meta tracing JIT라고 해서 JIT이 필요한 부분에 약간의 코드 힌트를 넣으면 RPytho 컴파일러가 알아서 JIT 컴파일이 되는 언어 구현을 만들어준다.

PyPy 개발팀의 호환성 기준은 굉장히(!) 간단한데, CPython에서 되던게 PyPy에 안 되면 버그다.

굉장히 재밌는 프로젝트인 것 같다.

[이 글은 이전에 쓰던 블로그에서 작성된 이후 새 블로그로 이전된 글입니다.]

1

학교에서 R&E로 제스처에 관한 걸 하고 있습니다.

커스텀 제스처를 쉽게 만들 수 있게 해 주는 클래스로 프로토타입이 생각보단 괜찮게 나왔습니다.

인식률은 제스처에 따라 다르고, 간단한 건 95% 정도지만 조금만 제스처가 복잡해지면 70~80% 정도 나옵니다. 인식률을 조금씩 높여갈 예정.

2

학교 온라인 저지 서버(http://koistudy.net/)에서 놀고 있습니다.
홍보를 좀 하자면 C, C++로 알고리즘 공부하면서 문제를 풀 수 있는 사이트입니다.

문제도 풀고 취약점 리포팅도 하고 해킹도 하고있는데, 학교 정보 선생님이 학교 학생들을 위해 서버를 하나 장만하고 각자 홈페이지 같은 걸 만들어서 작업할 수 있게 해 주신다고 합니다.

서버가 구해지면 간단한 플래시 온라인 게임 제작을 시도해보려 합니다.

3

방금 전 동방프로젝트 노말 노컨티뉴 클리어했습니다 헤헤

리듬게임은 실력 느는게 안 느껴졌는데 슈팅 게임은 실력 오르는게 느껴져서 재밌네요.

[이 글은 이전에 쓰던 블로그에서 작성된 이후 새 블로그로 이전된 글입니다.]

그레이 코드란 이진수로 표현했을 때, 이전 수와 현재 수의 비트 차이가 1인 부호를 말한다.

구하는데 여러 가지 방법이 있지만,
최근 알게된 독특한 방법이 있어 소개해보고자 한다.

i번째 수는
i^(i>>1)

1 0001
2 0011
3 0010
4 0110
5 0111
6 0101
7 0100
8 01100
9 1101
10 1111
11 1110
12 1010
13 1011
14 1001