[DB] MongoDB Java Driver 버그 아닌 버그

C 표현식
(
(a < 0 || a > 100) &&
(b < 0 || b > 100) &&
(c == 0)
)

MongoDB 표현식
{
{ $or: [ { a: { $lt: 0 } }, { a: { $gt: 100 } } ] },
{ $or: [ { b: { $lt: 0 } }, { b: { $gt: 100 } } ] },
{ c: 0 },
}

BasicDBObject query = new BasicDBObject();
query.append("$or", mongo_array(new BasicDBObject("a", new BasicDBObject("$lt", 0)), new BasicDBObject("a", new BasicDBObject("$gt", 100))));
query.append("$or", mongo_array(new BasicDBObject("b", new BasicDBObject("$lt", 0)), new BasicDBObject("b", new BasicDBObject("$gt", 100))));
query.append("c", 0);
Java Driver로 구현시 위 코드와 같이
앞쪽에 있는 것을 key로하는 해시맵에 조건식을 넣게 되는데 (순서대로 "$or", "$or", "c")
문제는 같은 "$or" key가 발생하여 뒤쪽 "$or"식이 앞쪽 "$or"식을 덮어쓰게 된다- LOL
이런 경우 문제가 발생해도 실제로 쿼리식을 뽑아보지않고는 원인을 찾기가 까다롭게 된다
모든 식들을 $and로 묶어서 넣거나 값의 범위가 적다면 $in 문법 등으로 피해가자

by 플라밍고 | 2011/10/17 22:08 | 트랙백 | 덧글(0)

[3D] 소프트웨어 래스터라이저 3ds 모델 렌더링 실험


- 성능 테스트겸 모델 렌더링 실험 -

모델 찾기가 정말 힘듬.
그리고 알파 재질 렌더링때 프래그먼트 겹침현상 어떡할겨..


(프래그먼트 겹침 해결 - 자동차 창문의 반투명 삼각형들의 겹침선이 나타나지 않음!)

by 플라밍고 | 2011/01/21 18:15 | 트랙백 | 덧글(0)

[gcc] declaration does not declare anything

아이폰으로 포팅하려고 C/C++ 프로젝트를 무심코 임포트해서 빌드하면 이런 경고와 함께 많은 오류가 나는 경우가 있다.
declaration does not declare anything 정의부가 아무것도 정의하지 않았다
..는 경고로 시작해 수백수천개의 오류가 나는 이 현상은
대부분 anonymous struct 구조를 사용할 경우 생긴다고 보는 것이 맞을 것이다.
(즉 구조체만 있고 변수 혹은 멤버명이 없는 경우)


struct foo
{
int a;
struct
{
int b;
int c;
};
int d;
} bar;

해결 방법은 gcc에게 C/C++ 컴파일 표준 정책을 gnu99로 바꿔주거나 기본값으로 컴파일하면 된다.
Xcode의 경우 빌드 옵션 | GCC 4.2 - Language | C Language Dialect 부분을 -std=gnu99로 바꿔주면 된다.

by 플라밍고 | 2010/09/15 14:56 | 트랙백 | 덧글(2)

소프트웨어 부동소수점 연산기 (software floating-point unit) 간략 구현


간단한 32비트 정수 연산만 사용하고 코드가 매우 작음
속도는 FPU보다야 훨씬 느리지만 (본인 PC의 경우 7~10배정도) FPU가 없는 경우 기대할 수 있음
다만 정밀도는 많이 떨어지므로 공학연산에는 적절하지 않음 (곱셈: 16bit * 16bit, 나눗셈: 32bit / 16bit)
지원 연산: +, -, *, /, int <-> float, fixed <-> float, sqrt(), isqrt()

http://sourceforge.net/projects/ssreal/

sourceforge 처음 쓰는데 어려워서 걍 파일만 올렸음..

by 플라밍고 | 2010/06/29 18:23 | 트랙백 | 덧글(0)

(잡설) 안드로이드 포팅 중..

에뮬에서 대충 개발해놓고 폰에 올렸는데
오오.. 사운드며 터치며 별 이상없이 잘 돌아간다!?
게다가 에뮬에선 파일 쓰기도 안되던데 폰에서는 오히려 잘됨?
암튼 개발 환경과 하드웨어가 거의 동일하게 동작하다니..
이게 안드로이드 플랫폼의 위력이란 말인가..ㄷㄷ

근데..

에뮬이 폰보다 느리다니!!!

by 플라밍고 | 2010/06/06 19:50 | 트랙백 | 덧글(2)

<< 이전 페이지     다음 페이지 >>