제임스딘딘의
Tech & Life

고양이의 둥지 255

자료조사(5) - 구글 토크 개발자 문서 (음성채팅 App)

Google 토크 개발자 문서 We've provided the following documentation specifically for developers: 우리는 특별히 개발자를위한 다음과 같은 문서를 제공합니다 : Google Talk and Open Communications : answers some basic questions about the protocol and codecs used by Google Talk, as well as future goals and federation. Google 토크 및 개방형 통신이 : 답변 프로토콜과 Google 토크뿐만 아니라, 미래의 목표와 연맹에서 사용되는 코덱에 대한 몇 가지 기본적인 질문. libjingle : an open-source C++..

자료조사(4) - VOIP 두번째

개요전화 산업은 가장 널리 퍼져 있는 기술입니다. 일반적인 전화기만큼이나 사람들에게 편안하고 친숙한 기술은 없습니다. 많은 기업체들이 사용자들에게서 그런 편안함과 친숙함을 빼앗지 않으면서도 음성(voice) 관련 비용을 줄일 수 있는 새로운 방법을 찾고 있습니다. 그러한 비용 절감은 데이터 네트워크와 음성(voice) 네트워크의 통합을 촉진시키고 있습니다. 데이터 네트워크와 음성(voice) 네트워크가 점점 더 많이 통합됨에 따라, 음성(voice) 네트워크의 품질과 신뢰도가 영향을 받지 않게 하려면 주의 깊게 설계하고 기획해야 합니다. 본 설명서에서는 패킷 텔레포니, 좀더 구체적으로 말하면 voice over IP를 가능하게 하는 여러 가지 기술에 대해 설명합니다. 설계와 관련된 문제들을 설명하고, v..

자료조사(3) - VOIP

VOIP(Voice Over IP)라는 것은 용어 해석그대로 IP를 통하여 사람의 보이스를 전달하는 것 환경 구성 - 리눅스 머신 (HUINS PXA255보드에서 작동하는 커널2.4x버젼) - HP의 PDA 역할 - HUINS PXA255보드는 PDA끼리의 연결을 위한 중앙서버역할 - PDA는 VOIP를 위한 클라이언트 즉 단말기의 역할 설명 PDA자체의 CPU가 성능이 그리 좋지는 않다. 초창기에 OGG인코딩을 스트리밍하여 전송양을 줄여보려 했으나, 이는 오히려 인코딩/디코딩시에 시간이 더욱 소모되어 저사양의 PDA에서는 오히려 해가 될거라 판단했다. 그래서 RAW정보 자체를 그대로 전송하기로 결정하였다. 제한조건은 다음과 같다. VOIP상에서 홀펀칭(STUN이라고도 불리운다.) 을 구현하려 했으나 실..

자료조사(2) - 안드로이드의 오디오를 녹음하는 세 가지 방법

1. Mediarecorder API문서: http://developer.android.com/reference/android/media/MediaRecorder.html 사용법: http://developer.android.com/guide/topics/media/index.html Mediarecorder는 그 이름을 보면 알 수 있듯이, media를 record한다. audio는 마이크를 통해 녹음하여 sdcard에 그 파일을 저장한다. 녹음된 audio의 포맷은 MPEG4, RAW AMR, 3GP가 있다. 1) 사용이 쉽다 2) 오디오를 압축된 포맷으로 녹음한다. 3) 전화 소리를 녹음할 수 있다 (수신, 송신 측 모두) 4) 음성 인식을 녹음을 할 수 있다. 1) 오디오 버퍼에 접근할 수 없다...

이번 과제 컨셉을 구현하기 위한 자료조사 (1)

1. 안드로이드에서 PC로 음성을 실시간 전송? - 폰의 마이크로부터 음성 데이터를 얻음 - 음성 데이터를 오디오코덱으로 인코딩 - 서버와 소켓통신.(UDP) 방화벽이 있을 경우 어떻게 통신하는지 예외 처리 - 압축한 데이터를 패킷(RTP)으로 나누어 보낸다 - 받은 패킷을 디코딩/재생 - 소실 될 수 있는 데이터에 대해 Jitter 보정을 2. 안드로이드 SDK의 AudioRecord를 사용하여 일정 시간마다 PCM데이터를 획득하는 방법 :: 단서 :: - "AudioRecordInstance.read()라는 함수로 PCM데이터를 획득 할 수 있다. " - * 그런데, while문 돌려서 계속해서 read를 호출하니 일정한 FrameSize 만큼 계속 획득이 되긴 하나, 획득하는 시간이 일정하지 않다...

[컨셉] PDF 문서를 활용한 소셜 스터디

Main Idea - 태블릿에서 PDF 문서에 자유롭게 메모를 한다. 종이에 펜과 포스트잇으로 메모를 하듯. - 메모한 내용을 다른사람과 공유한다. - 메모를 하나의 PDF 문서에 여러사람과 동시에 한다. - 원격지의 여러 사람들과 하나의 PDF 문서에서 현재 보는 화면을 공유하면서 스터디를 진행한다! - 스터디 진행자 1명, 나머지는 참여자 => 진행자는 번갈아가면서 - 현재 스터디를 진행하는 진행자는 원격지의 참여자들에게 음성으로 의견을 전달할 수 있다.

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..

[제품 후기] 훠링 스마트 무선카팩 - 기아 아벨라에 음악을 더하다

스마트 무선카팩? 그동안 유선카팩으로 음악을 들얼었지만, 음악 재생장치가 따로 필요하다는 단점이 있었다. 하지만 요번에 구입한 이 훠링이라는 회사의 스마트 무선카팩은 기존의 유선카팩처럼 음악 재생장치로부터 재생도 가능하며, 별도의 음악 재생장치가 없는경우에도 SD카드나 USB메모리에 mp3파일을 담아 카팩에 꽂기만 하면 재생까지 해주는 플레이어 역할도 한다. 음악 재생장치로부터는 AUX케이블로 전달받게 되고, FM 주파수를 통해 차량의 라디오 수신기를 거쳐 오디오로 출력해준다. 약간의 주파수잡음이 섞이긴 하는데, 내가 막귀이기도 하고. 어짜피 오래된 차를 끄는지라, 스피커도 좋지 않아 무시하고 음악을 듣는다. (주파수 잡음이 거슬리긴 꽤 거슬린다) 가격비교 네이버 참조 : http://shopping.n..

[결과물] 맛따라 길따라

2010년 11월 ~ 2011년 1월 수행 스마트닥터를 제작했을 때 습득한 기술을 바탕으로 프로젝트 수행. ‘1인 창조기업 앱 경진대회’ 에서 우수상을 받음. 본 안드로이드 어플리케이션의 이름은 맛따라 길따라. 「맛따라 길따라」의 주요 목적은 충남지역 여행코스를 제공하고, 자신만의 여행코스에 대한 추억을 남길 수 있도록 하는 것이다. 호윤형의 안드로이드에 대한 전반적인 지식 + 증강현실 기술 원진형과 나의 데이터베이스 기술 열하와 인희 레이아웃 + 앱 이미지 디자인 기술 이런 기술이 녹아있는 팀 프로젝트 결과물이다. 수행인원 5명 (디자인 2명, 기능구현 3명) 맡았던 부분 - 앱 환경설정 부분(증강현실 거리 제한 환경변수) - 추천여행코스 위치정보 및 상세정보 제공을 위한 데이터베이스 설계 및 구현 -..

[결과물] 스마트닥터

2010년 7월 ~ 10월 수행. 안드로이드, 자바를 배우면서 수행한 프로젝트. 수행인원 5명 (디자인 1.5명, 기능구현 3.5명) 맡았던 부분 - 질병정보 데이터베이스 설계 및 App에서의 구현 - 건강뉴스 XML 파싱 및 뉴스 스크랩 기능 구현 - 병원 정보 XML 파싱 결과에 구글 지도 연동 (병원 별 마커 표시 등) - 메인메뉴 - 자가진단 본 프로젝트에 내가 맡은 파트중 가장 첫번째로 구현한 부분이다. 안드로이드도 처음, 자바도 처음, 데이터베이스도 실제 구현해본 경험이 없는 상태였기에 구현에 많은 고생을했다. 우선 자가진단 DB는 4개의 테이블로 되어있다. 위 4개의 테이블이 기능 flow에 따라 아래와 같이 보여지며 진행된다. 자신의 몸에 이상증상이 나타날 경우, 의심되는 질병을 진단하도록..

[사전조사] EPUB 은 무엇인가?

출처 : http://ko.wikipedia.org/wiki/EPUB#cite_note-ops2.0_spec-0 Electronic Publication (EPUB) 확장자 .epub MIME 종류 application/epub+zip 개발 국제 디지털 출판 포럼(IDPF, International Digital Publishing Forum) 파일 포맷 종류 전자 출판 문서 EPUB(electronic publication)은 국제 디지털 출판 포럼(IDPF, International Digital Publishing Forum)에서 제정한 개방형 자유 전자서적 표준이다. EPUB은 자동공간조정(reflowable)이 가능하게 끔 디자인 되었다. 이는 EPUB으로 만들어진 내용을 볼 때 디스플레이하는 ..

ePub 포맷의 전자책 생성을 위한 프로그램 및 서비스들.

출처 : http://blog.naver.com/louischan/91583848 How can I create ePub files from my books? 2009년 8월 4일 현재, (오래된 포스팅을 참조함) 스탄자 사이트에 따르면, ePub을 만들 수 있는 몇가지 저작툴이 소개되고 있습니다. 아직은 많은 제품이나 솔루션이 나와 있지 않지만, 계속적으로 관련한 제품 및 솔루션이 소개될 것으로 보여집니다. 1. Adobe Indesign솔루션 (http://www.adobe.com/products/indesign/) 편집/인쇄 전용 솔루션인 Indesign에서 Export 메뉴를 이용하여 ePUB파일을 생성할 수 있습니다. InDesign is a high-end publishing tool for ..

(유선USB 보안카메라)MCAM100A HOME & STORE PAN/TILT SECURITY CAMERA

출처 : http://codien.kr.ecplaza.net/2.asp 제품일반설명 사랑하는 가족과 소중한 재산, mCam이 함께 합니다. mCam100Advance는 원격지 또는 현지에서 키보드, 마우스로 상하좌우 컨트롤 할 수 있는 PC기반의 웹 카메라입니다. 별도의 전원 필요 없이 USB케이블만 PC에 연결하면 되고 벽, 천정 등에 설치 가능합니다. 원격지에서 인터넷 및 핸드폰을 통해 카메라를 상하좌우 컨트롤 하며 모니터링 할 수 있고, 시간 설정을 통한 압축 녹화가 가능합니다. 저렴한 가격으로 직접 설치하여 집, 소형 상점, 가게, 창고, 병원, 유치원을 실시간으로 모니터링 할 수 있습니다. 제품특징 고화질 비디오 녹화 및 정지영상 촬영 움직임 감지기능 움직임 감지 저장 및 통보(이메일, SMS(..

[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)운동하는 모든 물체는 각도를 갖고 있다. 예를..

[칼럼] S급 천재를 걷어찬 삼성

S급 천재를 걷어찬 삼성이병철 삼성 회장은 사람 욕심이 많았다. 70대의 노(老) 경영자는 20대 초반인 소프트뱅크 손정의 사장을 보곤 한눈에 ‘물건’임을 알아차렸다. 재일교포 2세인 손씨가 미국 버클리대 유학 시절 이야기다. 이 회장은 미국에 나가있던 자신의 사위인 정재은 삼성전자 대표(현 신세계 명예회장)에게 “손군이 삼성에 어떤 도움이 될지 살펴보라”는 특명을 내렸다. 정 대표는 직접 손씨를 만났으나 특별한 느낌을 받지 못했다고 한다. 나중에 손 사장이 새롭게 떠오른 인터넷 분야에서 승승장구한 뒤에야 “장인 어른의 사람 보는 안목이 남다르다”며 무릎을 쳤다. 이때 맺어진 삼성과 손 사장의 아름다운 인연은 지금까지 이어지고 있다. 요즘 손 사장은 이따금 이 회장 손자인 이재용 삼성전자 사장과 골프를 ..

NULL ptr/ NULL ptr 2011.08.11

[안드로이드] 이미 생성해둔(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..

[안드로이드] 안드로이드에서 SQLite를 다뤄보자 (2)

2011/08/09 - [Software Dev Note/Android] - [안드로이드] 안드로이드에서 SQLite를 다뤄보자 (1)2011/08/11 - [Software Dev Note/Android] - [안드로이드] 이미 생성해둔(Sqlite) DB를 앱에서 Load하여 사용하기 안드로이드에서 SQLite를 다뤄보자 (2)안드로이드 앱 개발을 할 때, 없어서는 안될 존재. SQLite의 사용법에 대해 알아보겠다. 오늘은 아주 데이터베이스를 뿌리뽑아보도록 하자.안드로이드는 모바일 환경에 알맞은 SQLite 데이터베이스를 채택하고 있다. 기본적으로 다른 데이터베이스와의 큰 차이는 없다. 물론, 완전히 같지는 않다.다른 점 이라면, 일반적은 데이터베이스는 테이블 생성 시 각 속성에 대한 타입을 지정한..

[안드로이드] 안드로이드에서 SQLite를 다뤄보자 (1)

안드로이드에서 SQLite를 다뤄보자 (1) 안드로이드 플랫폼은 Database를 위해서 플랫폼 자체적으로 SQLite를 기본 탑재하고 있다.우선 SQLite의 특징을 살펴보자. SQLite는 다른 프로그램에 임베딩하기 좋으면서도 깔끔한 SQL 인터페이스를 제공한다.메모리도 적게 사용하면서 속도도 빠르다.실행파일과 소스 코드가 무료이고 공개되어 있기 때문에 많이 사용된다.위와 같은 이유로, 안드로이드는 SQLite를 기본탑재하여 내장하고 있으며, 그결과 모든 안드로이드 애플리케이션은 간단하게 SQLite 데이터베이스를 생성해 활용할수 있게 됐다.SQLite는 표준 SQL 인터페이스를 사용한다. -> SQLite는 SQL 문법에 맞는 명령을 통해 데이터를 가져오거나(SELECT) 데이터를 변경하고(INSE..

[안드로이드]Error generating final archive: Debug certificate expired on

Error generating final archive: Debug certificate expired on 종종 Android SDK를 사용하다 보면, 소스코드에는 전혀 Error가 없는데, Build하려고 하면 아래와 같은 Error로 인해 device나 emulator에서 실행시킬 수 없는 경우가 있다. 문제 상황"Error generating final archive: Debug certificate expired on" 라는 에러 메세지가 Console에 보임. 해결책해결방법은 간단하다. 우선, debug.keystore 라는 파일을 삭제하면 된다.보통 "사용자" 디렉토리에 '.android' 라는 폴더 아래에 있다.나의 경우는 아래와 같다. C:\Documents and Settings\Use..

10진수를 2진수로 변환하는 알고리즘 (또다른 방법)

10진수를 2진수로 변환하는 알고리즘 (또다른 방법) 우선 몇자리의 2진수를 만들것인지를 알아내거나 제시한다.그리고, 기본적인 아래의 규칙 하나만 기억한다.rule : 작으면 0 / 크거나 같으면 1 예를 들어보겠다. 10진수 600을 10자리의 2진수로 만들 경우를 생각해보자.10자리의 2진수로 만들 것이므로, 2의 10승 = 1024 부터 시작한다.그 후, 2의 9승, 2의 8승... 2의 1승까지 차례로 rule대로 비교해 내려간다.아래의 과정으로 간단하게 만들 수 있다. 600 이 1024보다 작으므로 0600이 512보다 크거나 같으므로 1, 그리고 600 - 512 = 8888이 256보다 작으므로 088이 128보다 작으므로 088이 64보다 크거나 같으므로 1, 그리고 88-64 = 242..

XNA Framework의 논리적 흐름

XNA는 Frameworkd 이기 때문에 일련의 논리적 순환 순서가 있다. 공부를 시작하면 우선 이를 인지해야 한다. 1. 메인 응용 프로그램이 게임 생성자를 호출한다. 2. 게임 생성자는 게임 컴포넌트들을 생성하고 게임 컴포넌트의 생성자를 호출한다. 3. XNA Framework에서 게임의 Initialize 메서드를 호출한다. 4. XNA Framework에서 각각의 게임 컴포넌트에 해당하는 Initialize 메서드를 호출한다. 5. XNA Framework에서 각각의 Drawable 게임 컴포넌트에 해당하는 LoadContent 메서드를 호출한다. 6. XNA Framework에서 게임의 LoadContent 메서드를 호출한다. 7. XNA Framework에서 게임의 Update 메서드를 호출한..

[C#] 메소드 동기화

동기화를 원하는 몇개의 메소드가 클래스 안에 있다고 가정하자. (물론 그것들은 여러개의 스레드에 의해 동시에 사용될 수 없게 하려는 상황이라고 가정한다.) 자바 프로그래머라면 스레드 사용시 메소드 동기화를 위해 단지 다음과 같은 방법을사용 하면 된다는걸 알고 있을것이다. public synchronized void methodName() {...} C#에서는 이와같은 효과를 주기 위해 어떻게 해야 할까. 자바를 먼저 공부했던 나는 C#을 공부하면서 이와같은 의문을 가졌고, 찾은 해결방법은 다음과같다. 방법1. Just wrap the entire content of your method in a lock statement. (메소드의 전체내용을 lock 문장으로 둘러 싸면 된다) public class ..

[C#] 구조체

구조체는 클래스와 동일한 구문으로 대부분 형식을 공유하지만 클래스보다 제한적이며 다음과 같은 특징을 갖는다. ▷ 구조체는 값 형식이고 클래스는 참조 형식이다. ▷ 클래스와 달리 구조체는 new 연산자를 사용하지 않고 인스턴스화 할 수 있다. ▷ 구조체는 생성자를 선언할 수 있으나 반드시 매개 변수를 사용해야 한다. ▷ 구조체는 다른 구조체 또는 클래스에서 상속될 수 없으며, 클래스의 기본 클래스가 될 수 없으며 모든 구조체는 System.Object 를 상속하는 System.ValueType에서 직접 상속한다. ▷ 구조체는 인터페스이를 구현할 수 있다. ▷ 구조체를 nullable 형식으로 사용할 수 있고 여기에 null값을 할당할 수 있다. ▷ 구조체 선언 내에서 필드는 const 또는 static으로..

1 ··· 4 5 6 7 8 9