본문 바로가기

개발자의 기록 노트

(153)
[우분투] 우분투 JDK 7 tar 패키지로 수동 설치하기 우분투에 JDK 7 tar 패키지로 수동 설치하기 # JDK 설치하기 우분투에 JDK 설치 관련으로 인터넷을 뒤져보면 apt-get (sun-java...) 이나 시냅틱 패키지 관리자 ( openjdk-... )로 설치가 된다고들 하던데... 난 안되는 상황이다. "설치할 수 있는 후보가 없습니다." 라는 메세지만 받았다. 그리고 rpm, deb등 설치 패키지들도 의존성관련 에러가 발생한다. 이럴때 살짝 멘붕이 온다. 하지만 당황하지 말자.설치 패키지로 잘 설치가 안된다면 다른 방법이 있다. 바로, tar 패키지 받아서 직접 경로에 설치하는 것이다. 아래 주소에 가면 x86용 JDK-7 tar 패키지를 받을 수 있을 것이다. http://www.oracle.com/technetwork/java/javas..
Java Decomplier JAD 와 JadClipse 설치 및 활용 Java Decomplier JAD 와 JadClipse 설치 및 활용 Jad는 바이트코드인 Java class파일을 디컴파일해주는 프로그램이다. JadClipse는 자바디컴파일을 이클립스에서 편리하게 사용할 수 있도록 해주는 이클립스 플러그인이다. 아래 순서대로 따라하면 쉽게 활용해볼 수 있다. 1. Jad및 JadClipse 다운로드 * Jad : http://www.kpdus.com/jad.html 윈도우 사용자는 Jad 1.5.8g for Windows 9x/NT/2000 on Intel platform 를 다운로드 * JadClipse : http://sourceforge.net/projects/jadclipse 자신의 이클립스 버전에 맞는 jadclipse3.x 를 다운로드 2. Jad와 Ja..
[C] 저수준 파일 입출력 저수준 화일 입출력 함수들 저수준의 화일 입출력에서는 FILE이란 구조 대신 간단하게 각 화일마다 번호를 사용하는데, 이를 화일 식별자(file descriptor), 또는 핸들(handle)이라고 한다. 이 핸들은 0 이상의 값을 가지고 있는데 실제로 0과 1, 2 는 고정된 의미(핸들 0은 표준 입력을 위한 번호이며 1은 표준 출력, 그리고 2는 표준 에러로 사용)를 갖고 있어서 화일을 처음 열게 되면 그 화일의 핸들은 3이 된다. 윈도우즈 상에서는 저수준 입출력 함수에 모두 '_'를 붙인다. 예) _open, _write, _O_RDONLY, _close ... open 함수 저수준의 화일 입출력에서도 화일을 사용하기 위해서는 화일을 먼저 열어야 하며, 이때 다음과 같이 open 함수를 사용한다. ..
FBX improvements in XNA Game Studio 3.0 max에서 FBX파일을 export한뒤 xna에서 import하여 다룰때 필요한 심화된 정보 정도로 보면 되겠다. One of the less obvious changes in our 3.0 release is that we picked up an updated version of the FBX SDK from our partners at Autodesk, which enables some cool new functionality in our FBX importer: Multiple textures Multiple texture coordinate channels Effect materials Material name strings are now imported correctly To use this s..
XNA와 3D 기초 (1) [1] XNA에서 3D 프로그래밍의 시작. 3D 자료를 2차원인 모니터 화면에 렌더링 한다는 것의 의미는 무엇인가?? 3D 렌더링이라는 것은 기본적으로 3차원 공간의 기하구조를 2차원 평면에 투영하고, 투영된 기하구조에 적절한 색들을 채워 넣는 것이다. 초창기 3D게임들은 3D 렌더링을 위한 레이캐스팅(ray-casting)과 같은 기법들을 전적으로 CPU에서 처리! 하지만, 오늘날의 3D 그래픽 처리는 모두 GPU에서 일어난다. GPU는 다각형들을 화면에 그리고 픽셀들을 채우는 일뿐만 아니라 3D자료를 2D로 투영하고 변환하는 작업도 모두 처리한다. 게다가 투영, 변환과 픽셀 채우기 작업의 구체적인 방식을 개발자가 세세하게 지정하는것도 가능 ☞ 셰이더(Shader) 기술을 통해서 가능함 3D 점들을 화..
구조체 패딩 비트에 대해서. struct padding bit 아래와 같은 구조체를 선언했다고 하자. char가 1바이트이고 int가 4바이트인 시스템에서 위의 구조체를 선언하고 sizeof()로 구조체의 사이즈를 찍어보면 얼마가 나올까? 생각대로라면 5바이트가 나와야 한다. 1 + 4 = 5 이니까.. 그런데 대부분의 컴파일러에서 실제로는 8바이트가 나온다. 이유는 패딩 비트가 추가되어서 그렇다. 몇몇 컴파일러는 구조체의 필드를 메모리에 위치 시킬 때 중간에 빈 공간 없이 쭉 이어서 할당하는 경우도 있지만, 대부분의 컴파일러는 성능향상을 위해 CPU가 접근하기 쉬운 위치에 필드를 배치한다. 그러다 보니 중간에 빈 공간이 들어가게 되는 것이다. 이 빈 공간이 바로 패딩 비트이다. 이에 대해서 좀 더 자세히 알아보자. 32비트 CPU는 메모리에서 값을 읽어 올 때 한..
[안드로이드] 자이로스코프 이야기. 가속도센서 vs 자이로센서 비교 자이로스코프 이야기. 가속도센서 vs 자이로센서 비교 오늘은 자이로스코프(Gyroscope)에 대해서 얘기를 해볼까 한다. 자이로스코프는 보통 '자이로센서' 라고 부르는데, 이 센서의 유무에 따라 스마트폰 가격이 크게 달라지는 것 같다. 아이폰은 자이로센서가 기본 탑재인 반면 안드로이드폰은 의무사항이 아니다. 하드웨어 제조사에서는 단가를 낮춘 저가형 라인업도 가지고 있는 경우가 종종 있는데, 이런 안드로이드 스마트폰들은 자이로센서를 제외하고 출시하기도 한다. 아무튼, 이 자이로센서가 무엇이고 어떤 원리로 동작하는지를 알아보자. 그리고, 이 자이로센서가 가속도센서와는 어떻게 다른지, 그 둘간의 차이점에 대해서 그 후에 알아보겠다. 자이로스코프(Gyroscope)운동하는 모든 물체는 각도를 갖고 있다. 예를..
[안드로이드] 이미 생성해둔(Sqlite) DB를 앱에서 Load하여 사용하기 이미 생성해둔(Sqlite) DB파일을 앱에서 읽어들여 사용하기 약간 복잡한 기초 데이터를 위해 초기 실행시 Create Table 도 하고 insert도 할 수 있겠지만, 별도의 db 파일을 PC등에서 미리 만들고, 관리하며, 앱에서는 이 파일을 읽어들이기만 하여 (Load) 사용하고 싶다면 아래와 같은 방법을 쓰는 것도 한가지 해결책이 될 수 있다.db 파일을 assets에 넣는다.아래 함수를 적당한 위치에 넣는다. public static void initialize(Context ctx) { // check File folder = new File(ROOT_DIR + "databases"); folder.mkdirs(); File outfile = new File(ROOT_DIR + "databa..