본문 바로가기

6. With IT

파일전송(ftp) 자바는 ftp관련 API정보가 없다. 그래서 인터넷에서 구글링하여 찾아야 한다. 프로젝트하는 도중, ftp 혹은 http를 이용하여 서버에 자료를 업로드하는 일이 생겼다. 그래서 따로 잊어버리지 않게 포스팅을 해둔다. 1. 해당 부분을 구현하기 위해서는 ftp관련 라이브러리를 외부에서 추가해주어야 한다.(첨부파일 참조)이 때, 해당 프로젝트의 Properties로 들어가 Java Build Path안에 Order and Export부분에서 추가한 라이브러리를 따로 체크해 주어야 한다. 2. 구현시, HoneyComb 버전 부터는 UI Thread내에 파일 전송, 혹은 네트워크 전송부분을 사용하게 되면StrictMode error가 뜰 것이다. 이는 파일과 네트워크 전송시 시간이 delay되는 현상때문에 .. 더보기
구글 지도 띄우기 출처 : http://www.androidpub.com/2398318 1. Google Map Android V2? 하나. SupportMapFragment : 일단 가장 중요한 것은 일반적인 View가 아닌 Fragment로 변경된 점인데요. 다양한 화면 구성을 위해 Fragment를 선보이면서 이에 맞춰 기존의 MapView(이하 V1)에서 SupportMapFragment(이하 V2)로 클래스가 변경이 되었습니다. 둘. APIKey 관리그동안 V1을 사용 할 때는 각 PC에서 디버그용 Apikey 를 가지고 있어야 해서. PC를 옮겨서 작업할 때는 V1에 들어갈 Apikey를 계속 바꿔줘야 하는 번거로움이 있었습니다. 하지만 V2에선 API Console을 통해 키를 발급받아 좀더 효율적인 APIk.. 더보기
Win32 wParam, lParam 일반적으로 사용을 할때는 WPARAM으로는 핸들 or 정수를 받아들일때 사용한다. 필자는 DWORD형을 받아들이는 것을 보고 이 글을 쓰게되었다.(저놈은 먼데 값을 마음대로 받아들이나 라는 허접한 생각에...) LPARAM은 포인터 값을 받아들일때 사용한다. 즉 실제 데이터를 받아들일때는 WPARAM을 포인터로 넘겨받을때는 LPARAM을 사용하면된다![출처] WPARAM, LPARAM이란?|작성자 SniperYaron 더보기
인크로스 면접질문 1.자기소개2. 컴퓨터에 흥미를 가지게 된 계기?3. 스마트 가삼기계 질문- 어떤 부분을 담당?- 구체적으로 어떤 API를 구현?- 구현시 어려웠던점?? 이를 어떻게 극복?4. 콘텐츠 변환기 질문- 어떤 부분을 담당?- 구체적으로 리소스 변환기가 무엇을 하는가?- 왜 그 모듈 이름이 리소스 변환기인가?5. 회사 입사5년후 자신의 모습?6. 마지막으로 하고 싶은 말? 1 자기소개2. 입사후 10년 뒤의 모습3. 휴학기간이 긴 이유4 여지껏 살아오면서 29살 나이까지 후회한적은 없는가5 수학 좋아하나6 이과에서 수학이 필요한 이유7 수학이 논리적으로 체계적인 이유8 이 회사에 꼭 입사해야하는 이유9 자기자신을 객관적으로 증명할 수 있는 사실? 더보기
가트너 선정 2012년 10대 전략기술 안녕하세요^^ 오랜만에 뵙겠습니다.다시 돌아온 디:플 4기의 정보통, 디:플 4기의 꽃 BEAST 인사드립니다. 오늘은 차세대 리더가 될 여러분들 위해,가트너 그룹이 2012년 주목해야할 기술로 선정한 전략 기술 10가지를 살펴보는 시간을 갖도록 하겠습니다. 벌써 2012년의 반이 지나갔는데요.차세대 리더로 성장하실 여러분들은 앞으로 말씀드릴 기술들에 대해 얼마나 알고 계셨는지, 자신을 체크해보는 시간을 가져보시길 바랍니다. 그럼 출발해 볼 까요? 2012년 전략 기술로 발표한 10가지 기술 (1위~10위)는 다음과 같습니다. ㅎㅎ D양은 여러분의 이해를 돕기 위해, 위의 10가지 기술을Mobile Computing/ Business Intelligence/ Green IT/ Ubiquitous Comp.. 더보기
extern사용 예(리눅스환경) 리눅스의 컴파일러에는 gcc와 g++ 이라는 바이너리가 있다.이들은 모두 /usr/bin 디렉토리에 위치하고 있다.이들의 차이점은 여러가지가 있지만, 먼저 확장자를 가지고 소스의 종류를 판단한다는 것이다.같은 소스라도 확장자를 *.c로 할때는 gcc를 *.cpp로 할 때는 g++를 사용해야 한다.아래와 같은 extern 함수를 테스트해보자.gcc로 모두 빌드하기 위해서 확장자를 모두 *.c로 만들었다.timeprint.c-----------------#include void log(int level, char *message) { time_t tmp_time = time(NULL); char *tmp_ctime = ctime(&tmp_time);tmp_ctime[strlen(tmp_ctime) - 1] .. 더보기
안드로이드 File Explorere에서 sdcard안에 디렉토리가 만들어지지 않을때... 증상mkdir SVMmkdir failed for SVM, Read-lnly file system 해결mount -o remount ,rw /mkdir SVM 더보기
android-ndk-profile NDK에서 코딩된 소스의 속도 측정을 위하여, profile하는 방법이 되겠다. 다른 삽질하는 사람들을 위하여......ㅋㅋㅋ(나를포함 ㅡ.ㅡ) 1. http://code.google.com/p/android-ndk-profiler/이 곳에서 android-ndk-profile.zip 을 받는다.(현재 버전 : android-ndk-propfiler-3.1.zip) 2. 해당 작업중인 프로젝트에 압출을푼다.(.../jni)cd $HOME/path/to/my-project unzip android-ndk-profiler.zip 3. 디렉토리안에 자신에 해당하는 타킷 디바이스용 static library(.a)를 복사하여 ndk-build될 디렉토리안에 넣는다.("그 파일만" 복사해서 가져옴!!!)ex) ... 더보기
NDK_컴파일과정과 링크 a.h, b.h, c.h a.cppb.cppc.cpp LOCAL_SRC_FILES := \ a.cpp \ b.cpp \ c.cpp \ # 각각 정적 라이브러리로 만들어줘야, 공유 라이브러리생성시, 가져다 쓸 수 있다.include $(BUILD_STATIC_LIBRARY)=> 이것들을 컴파일 하면 AlphabetLib.a (static library) 가 생긴다============================================================================ ============================================================================ one.h, two.h, three.h one.cpptwo.cppthree.. 더보기
(.data+0x0) multiple definition of 변수 에러 위와 같이 나왔다면, 1. 중복되서 선언된 부분이 있거나, 2. 헤더 파일에서 어떤 값을 초기화 해주어서 나타나는 결과가 될 수 있다. 해결책은 c파일에 변수를 선언하고, 초기화 해주고 헤더파일에 extern으로 그 변수를 선언하면 오류가 뜨지 않는다. 3. 헤더 파일에 초기화된 변수가 있는데 그 헤더 파일을 여러번 include할 때 이런 문제가 발생한다. 더보기
정적라이브러리 동적라이브러리 라이브러리란 프로그래밍에 사용할 수 있게 미리 만들어져 있는 함수나 변수들의 묶음이다. 라이브러리의 개요  리눅스에서 프로그램을 개발하다 보면 여러 사람들이 함께 개발하는 경우가 종종 있다. 그 때 같은 기능을 여러 사람이 공동으로 사용하게 되는 경우가 있는데, 그러한 기능을 각각의 소스 프로그램에 함수로 넣어 사용하는 방법보다는 라이브러리를 만들어 함께 사용하면 여러가지 이점이 있다. -기본적으로 제공되는 표준 라이브러리는 /usr/lib 에 존재한다.-C 컴파일러는 프로그램 컴파일 시 기본적으로 이 디렉터리에서 라이브러리 함수를 찾아 링크 수행.-gcc의 -L과 -l 옵션을 이용하면 다른 디렉토리에 있는 라이브러리도 이용할 수 있음.-라이브러리의 이름은 lib로 시작되며 라이브러리의 의미를 나타내는 .. 더보기
fread 파일 포인터 커서 작게 크게 파일 포인터란 특정 파일을 오픈했을때 현재의 커서 위치라고 생각하시면 됩니다. 메모장으로 텍스트 파일을 오픈할경우 커서가 텍스트 파일 제일좌측상단에 위치하게 되죠. 이때의 파일 포인터는 0입니다. 키보드 방향키를 사용하여 커서위치를 옮기면 파일포인터는 커서의 위치로 이동하게 되는것입니다. 프로그램에서 파일을 오픈했을 경우 파일포인터는 0 이지만 fread, fgets함수 등을 사용하여 파일을 읽을 경우 파일포인터는 읽은 글자수만큼 이동하게 되는것입니다. 한번 파일포인터가 이동 했을경우 뒤로 읽기는 불가능하기 때문에 fseek함수를 사용하여 파일포인터를 뒤로 돌리면됩니다. 즉 텍스트파일안에 "1"이라는 글자가 100개 입력되어 있을경우 fopen으로 파일을 오픈하면 파일포인터는 : 0 fread.. 더보기
스택의 연산구조 출처 : http://blog.naver.com/leojesus?Redirect=Log&logNo=80014803132 STACKWRITTEN BY WINDWISER STACK 참 무지막지하게 보고 듣고 썼던 거죠 -_-;; 머 사실 MEMORY의 한 부분이죠.사람들한테 STACK이 머져하고 물어보면 제 경우지만 대부분 LIFO요 이러더군요 -_-;;참 그러고보면 LIFO FIFO이말도 무지 유명하다못해 전장의 봇짐처럼 따라다니는듯 -_-;;근데 전장의 봇짐이 머지 -.-;;;; 요즘 힘들어서 노래방에서 졸라 -__-;; 레이져 본의 친구라는 노래를 불렀다 기분 좋다 ~역시 내 18번 이 노래의 최대 장점은 쉽고 막 부르면 된다 -_-;; 잡설은 이만하고 -_-;;(블러그 잡설쓰는 재미 솔솔하다 -.-;.. 더보기
Mnemonic pseudo 뜻 Mnemonic - 니모닉은 재사용이 필요할 때 사람의 기억을 돕기 위해 명확하게 선택된 상징이나 상징의 조합을 사용하는 것을 말한다. 니모닉은 통상 나타내고자 하는 항목과 어떤 관련이 있도록 선택되며, 기본적인 동작을 알 수 있도록 구성된다. 전산 분야에서는 기계어나 기계의 동작을 사람이 알아보기 쉬운 형태로 표시할 때에 사용한다. 예를 들면 도스(DOS)에서 첫번째 시리얼 포트에 COM1이라는 니모닉을 할당하는 것을 들 수 있다. 한편, 대부분의 프로그래밍언어도 니모닉이라고 할 수 있다. 예를 들어 어셈블리언어는 컴퓨터 기종마다 다르지만 덧셈은 주로 A 또는 ADD로, 곱셈은 M, MPY 또는 MUL 등으로 나타낸다. Pseudo - 의사코드(슈도코드, pseudocode)는 특정 프로그래밍 언어의 .. 더보기
C 포인터 - 헛갈리지말자 int _tmain(int argc, _TCHAR* argv[]){char *c = "Plase choose a channel";char* a="ppp";a = c;char b[10] = "qwer";printf("a is %d\n", (a));// 포인터a가 가리키는 주소값printf("a+1 is %d\n", (a+1));printf("%d\n", a[1]);printf("&(*a) is %x\n", &(*a)); // a라는 포인터 '자체'의 주소값printf("&*(a+1) is %x\n", &*(a+1)); printf("\n");printf("\n"); a++;printf("a is %d\n", (a));printf("a+1 is %d\n", (a+1));printf("%d\n", a[1]);.. 더보기
anti aliasing & raster 비트맵 방식의 그래픽에서 이미지를 표현할 때에는 픽셀이라는 작은 사각형을 최소단위로 사용하기 때문에 픽셀들이 모여 만들어진 이미지는 가장 자리가 톱니 모양으로 들쭉날쭉 하게 표현되는 계단 현상이 발생하게 되는데 이를 앨리어싱이라 한다.안티 앨리어싱은 이름 그대로 앨리어싱(계단 현상)을 없애기 위한 방법으로 이미지의 가장 자리에 배경색과 이미지 색상의 중간색상을 단계적으로 채워줌으로써, 이미지를 가장자리를 부드럽게 만들어주는 기능이다.흔히 그래픽용어나 그래픽카드 성능 용어로 많이 쓰이고 준말로 'AA'라 한다. >컴퓨터에서 화상 정보를 표현하는 한 가지 방법. 이미지를 2차원 배열 형태의 픽셀로 구성하고, 이 점들의 모습을 조합, 일정한 간격의 픽셀들로 하나의 화상 정보를 표현하는 것이다. 즉 한 줄에서 .. 더보기
리눅스 명령어 diff file1 file2 에 대한 결과물은 다음과 같습니다. 1a2 > Seoul ---->file1의 1행 뒤에 file2의 2행을 추가 3a5 > cago ---->file1의 3행 뒤에 file2의 5행을 추가 5,10c7,8 KimMinSU > Korea ---->file1의 5행에서 10행까지 추가변경후 file2의 7,8행 추가변경 14,15c12 05 ---->file1의 14행, 15행 추가변경후 file2의 12행 추가변경 16a14,16 > 20022069 > 603 > Aria ---->file1의 16행 뒤에 file2의 14행부터 16행까지 추가 기호설명: < :.. 더보기
c에서 java호출(Native to Java) 한번 더 포스팅한다. 이 빌어먹을 것 때문에 얼마나 많은 시간을 소비하였는가....ㅡㅡ;;; #include ... JavaVM *g_VM; JNIEnv *_env; jclass jNativesCls; ... JNIEXPORT void JNICALL Java_net_fhtagn_moob_MoobRenderer_nativeResize (JNIEnv *env, jobject thiz, jint w, jint h) { ... // 1. JNI사용을 위한, VM얻기 env->GetJavaVM(&g_VM); if( _env == NULL ) { _env = env; } if( g_VM == NULL ) { _env->GetJavaVM(&g_VM ); } // 2. Java에서 사용할 method가 선언되어있는 클.. 더보기
RDesktop 사용법 출처 : http://blog.naver.com/riksa0?Redirect=Log&logNo=30100175834 "RDesktop" 아이패드 추천 어플, PC 원격 조정 가능 :) 유용한 무료 어플 · RDesktop 소개 사실 아이패드를 사구나서 사용하려고 할때마다 '아 노트북살껄'이라는 생각을 많이 하곤 한다. 그 이유는 아이폰 어플이랑 겹치는 것이 많은 등 아이패드 어플이 활성화되있지 않기 때문이다. 그래서 아직까진 '아이패드가 모든 것을 지배하는 미래'를 생각하며 끙끙 앓고 참고 있는 중이다. 그러던 와중에 APP store를 돌아댕기던 중 RDesktop이라는 어플을 찾게 되었다. 요 어플은 아이패드로 무선으로 내 컴퓨터나 노트북 IP에 접속하여 원격 조정을 할 수 있는 어플이다. 아이패드로.. 더보기
Serv-U 설정 Serv-U 설치하고나서, 방화벽 체크해제 더보기
NDK-static library빌드 관련... 출처 : http://mobilism.tistory.com/56 NDK를 사용하는 예제들을 보면 대부분 dynamic library 를 빌드하는 예제인데요. 간혹, static library 가 필요할 때가 있죠. 그래서 이번에는 static library 빌드하는 방법과 몇 가지 주의할 점을 알아보겠습니다.static library 빌드하는 기본적인 방법은 $(NDK)/samples/two-libs 예제를 참고하시면 됩니다. two-libs의 메이크 파일은 아래와 같은 내용인데요.LOCAL_PATH:= $(call my-dir)# first lib, which will be built statically#include $(CLEAR_VARS)LOCAL_MODULE    := libtwolib-first.. 더보기
Native to Android Native단에서 Java쪽의 Method를 호출하는 방법이 되겠다.!!!(이 내용은 Android code) (NDK쪽에 공부하시는 분들중, 나같이 개고생하시는 분들이 없기를 바라며....,,ㅡㅡ'') public class Native { static { System.loadLibrary(함수명); // c파일명 } // java --> C public native void execute(); private static EventListener listener; public static interface EventListener { // java function 등록 int printConsole(String str); } /******************************************.. 더보기
android-ndk-r7오류 Z:\Coding\cygwin\home\Scott\android-ndk-r7\prebuilt\windows\bin\awk.exe: can't open file /home/Scott/android-ndk-r7/build/awk/check-awk.awk source line number 1 source file /home/Scott/android-ndk-r7/build/awk/check-awk.awk context is >>> 더보기
cygwin삭제 윈도우를 새로 설치하고 나니...기존에 d:\에 설치해 놓았던 cygwin 폴더가 남아 있어서..이를 삭제하려고 하니 그냥 삭제가 안되서 방법을 좀 찾아봤습니다.탐색기 -> 도구 -> 폴더옵션 -> 보기(탭)"고급설정" 에서 "모든 사용자에게 동일한 폴더 공유 권한을 지정" 이 선택되어 있으면 해제를 합니다.이제 cygwin이 설치되었던 경로에서 (d:\cygwin) 폴더를 마우스 오른쪽 클릭 "속성"을 선택합니다.기존에는 안보이던 "보안" 이라는 탭이 보입니다.여기에서 "고급"을 선택해서 필요한 계정(전 Everyone으로 했습니다.)을 선택하고 "편집"을 합니다.이제 "모든권한"을 주고 "이 컨테이너에 있는 개체 및 /또는 컨테이너에 사용 권한 적용" 까지 선택을 하고 확인을 합니다.그리고 "확인"을.. 더보기
이클립스_NDK자동 컴파일 (주의 : android-ndk-r7이 시스템 path에 등록되어있어야됨) 1. 해당 프로젝트의 Property => 'New'클릭 2. Main탭 설정 (@주의 : --login -c "ndk-build -C '${build_project}' -B" => Bold표시부분이 NDK옵션 주는 위치) 3. Refresh설정(말그대로 Refresh할 디렉토리 지정) 4. Environment 넘어가 5. Build Options ( 말그대로 빌드될 디렉토리 설정, ㄱㅣ타 옵션은 입맞대로...) 끝 더보기
Android.mk Android.mk file syntax specification Introduction: ------------- This document describes the syntax of Android.mk build file written to describe your C and C++ source files to the Android NDK. To understand what follows, it is assumed that you have read the docs/OVERVIEW.html file that explains their role and usage. Overview: --------- An Android.mk file is written to describe your sources to th.. 더보기
sdcard안의 파일 내용 얻기 package com.android.FileList; import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.app.ListActivity; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toas.. 더보기
포인터연산1 출처 : http://winapi.co.kr/clec/cpp1/10-1-2.htm 10-1-나.포인터의 타입포인터가 가리키는 번지에 들어있는 값, 즉 포인터가 가리키는 실체를 대상체(object)라고 한다. 예를 들어 정수형 포인터의 대상체는 정수형 변수이며 실수형 포인터의 대상체는 실수형 변수이다. *연산자로 포인터가 가리키는 곳을 읽으면 포인터의 대상체 값이 읽혀질 것이다. 포인터 변수를 선언할 때는 가리키고자 하는 대상체의 타입을 반드시 명시해야 한다. 대상체의 타입을 포인터의 타입이라고 한다. 그래서 포인터형 변수의 타입은 대상체의 타입을 따라 ~에 대한 포인터형(Pointer to ~)이라고 표현한다. 예를 들어 정수형 포인터 pi를 다음과 같이 선언했다고 하자. int *pi; pi 변수는 물.. 더보기
포인터연산2 출처 : http://winapi.co.kr/clec/cpp1/10-1-3.htm 10-1-다.포인터 연산포인터 연산이란 피연산자 중의 하나가 포인터인 연산이다. pi++과 같이 포인터형 변수에 대한 연산, pi1-pi2같이 포인터끼리의 연산이나 ar-pi, pi+3같이 포인터 변수나 포인터 상수가 피연산자 중에 하나라도 있으면 이런 연산을 포인터 연산이라고 한다. 포인터라는 타입이 정수나 실수같은 수치들과는 다른 독특한 타입이기 때문에 포인터 연산도 일반적인 산술 연산과는 다른 규칙이 적용된다. 이 규칙들을 잘 숙지하고 있어야 포인터를 자유 자재로 다룰 수 있다. 규칙이 좀 많기는 하지만 지극히 상식적인 내용들이기 때문에 이해하기 어렵지 않으며 한 번만 이해해 두면 실무에 적용하는데 큰 혼란은 없을 것.. 더보기
void* [C언어]void형 포인터란 by 꿈꾸는기수 이클립스/c언어 / Study 2012/01/09 15:02 http://blog.naver.com/87kks/40149090186 void형 포인터에서 void는 '~이 하나도 없는'이라는 의미다. 따라서 void형 포인터는 자료형이 없는 포인터 변수라는 의미이다. 즉 자료형에 제약을 받지 않고, 아무 자료형의 주소라도 저장할 수 있다는 이야기인데 .. 사용하기에 따라서는 이게 더 불편하게 느껴질 수 도 있다. 우선 아래의 예제를 보면 에러가 나는 것을 확인할 수 있다. int main(){ char c=a; double d=3.1; void* vx=NULL ;//void형 포인터 vx=&c; printf("vx의 주소 값: %x \n", vx); print.. 더보기