2010년 4월 17일 토요일

MS, ‘윈도우 폰 7은 친 개발자 운영체제’

스마트폰 열풍이 불면서 다양한 전용 애플리케이션의 유무가 스마트폰 경쟁력의 하나가 되고 있다. 그런 가운데 차세대 스마트폰 운영체제 ‘윈도우 폰 7’을 준비 중인 마이크로소프트(이하 MS)의 한 관계자가 윈도우 폰 7이 ‘친 개발자형 운영체제’라고 소개해 눈길을 끌고 있다.
MS의 서드파티 개발 부문의 찰리 킨델(Charlie Kindel)은 씨넷(CNET)과의 인터뷰에서 “플래시조명, 레벨미터, 날씨 안내 등 (윈도우 폰 7용) 첫 별도 애플리케이션들을 ‘아주 쉽게(very easy)’ 만들 수 있었다”라며 “예를 들어 레벨미터의 경우 윈도우 모바일 6과 달리 스마트폰에 내장된 가속센서에 직접 접근할 수 있었다”라고 언급했다.
그는 또 올해 안으로 윈도우 폰 7 출시 때 MS가 아닌 서드파티가 개발한 애플리케이션을 바로 쓸 수 있는가라는 질문에 “이미 상당한 숫자의 애플리케이션들이 윈도우 폰 7의 출시와 맞춰 선보일 수 있도록 준비돼 있다”라며 곧 공개할 새 운영체제용 개발자 킷(SDK) 사용을 추천했다.
이와 관련해 한 업계 관계자는 “이전까지 스마트폰용 애플리케이션에 대해 다소 소홀했던 MS가 윈도우 모바일 6에서 애플리케이션의 중요성을 깨닫고, 윈도우 폰 7에 이르러 서드파티 개발자들의 진입 장벽을 더욱 낮추는 모습을 보이고 있다”라며 “경쟁사인 애플과 구글처럼 개발자들이 다양한 애플리케이션들을 더욱 쉽게 개발해 개발하고, 이를 더욱 쉽게 공급 및 판매할 수 있도록 유도하면 윈도우 폰 7과 MS의 ‘윈도우 마켓플레이스’도 충분히 성공할 수 있을 것”이라고 평했다.

──────────────────────────────

○ 관련기사

▶ MS, “윈도우 모바일 6폰 ‘윈도우 폰 7’ 업그레이드 안돼”
http://www.betanews.net/article/488968

▶ 기존 윈도우 모바일, '윈도우 폰 7' 업그레이드 될까?
http://www.betanews.net/article/488660

▶ MS 독자브랜드 ‘퓨어 폰’, FCC인증만 남았다?
http://www.betanews.net/article/488692

▶ 마이크로소프트, “윈도우 폰 7 시리즈” 공개
http://www.betanews.net/article/487620

▶ 차세대 윈도우 폰 7, 멀티태스킹 지원 안한다?
http://www.betanews.net/article/486825

──────────────────────────────
저작권자 : 베타뉴스
2010-03-09 11:07:43 / 최용석 기자
rpch@betanews.net)

애플, 아이폰·아이패드 OLED 안쓴 이유는 화질때문?

국내에서도 30만대 이상의 사용자를 확보하며 대표적인 스마트폰 중 하나로 등극한 애플의 아이폰. 특히 하드웨어적인 사양에서 경쟁사들의 제품보다 뛰어나지도 않으면서 사용 편의성 및 다양한 애플리케이션 등을 무기로 시장을 주도하고 있다.

그런데 최근 해외의 한 디스플레이 최적화 전문업체가 아이폰과 경쟁사 구글의 넥서스 원(Nexus One)의 화질 비교결과를 공개해 화제가 되고 있다.

애플관련 소식통 애플인사이더가 디스플레이 최적화 솔루션 전문업체 디스플레이메이트(DisplayMate)를 인용해 보도한 바에 따르면 LED백라이트 LCD디스플레이를 사용하는 아이폰이 AMOLED디스플레이를 사용하는 넥서스 원보다 전반적인 화질에서 우수한 결과를 보였다는 것.

디스플레이메이트 측은 넥서스 원의 AMOLED 디스플레이가 검정색 밝기(Black Level Brightness)와 명암비 표현에 있어서는 우수한 결과를 보였지만, 최대 밝기와 반사율, 밝은 공간에서의 명암비 등의 항목에서는 저조한 평가를 내렸다고 밝혔다.

반면 아이폰 3GS는 넥서스 원과 반대로 검정색 밝기 및 명암비 항목에서는 저조했지만, 최대밝기, 반사율, 밝은 공간에서의 명암비 등에서는 우수한 결과를 보여 실제 사용하는데 있어선 더욱 좋은 화면을 보여준다고.

또 디스플레이메이트는 컬러 표현력 및 이미지 표현 품질도 아이폰이 더욱 뛰어나다고 설명했다.

넥서스 원의 디스플레이는 16Bit 컬러만 표현 가능하고 색표현 단계가 32 및 64단계(녹색만)에 불과하며, 이로 인해 텍스트나 아이콘 및 메뉴 그래픽 표현력은 매우 우수했으나, 촬영한 사진 이미지를 보여줄 때 자연스럽지 못했다는 것.

하지만 아이폰은 18bit 컬러를 사용하고 모든 색의 표현 단계가 64단계를 가지고 있으며, 디더링(Dithering)을 통해 24bit컬러를 에뮬레이트해 마치 256단계의 색 표현 단계를 구현하고 있다고 디스플레이메이트 측은 밝혔다.

그 결과 24bit컬러값을 가진 비트맵 이미지도 스튜디오 모니터와 비슷한 품질로 보여주며, 색상의 단계별 차이가 거의 눈에 띄지 않는다고 덧붙였다.

디스플레이메이트의 대표 레이몬드 소네이라 박사(Dr. Raymond Soneira)는 애플인사이더와의 인터뷰에서 “넥서스 원은 다소 과장된 색상으로 처음 볼 때는 화려해보이지만, 사용하면서 사진 등을 볼 때의 화질은 결코 보기 좋은 편이 아니다”라며 “만약 애플이 OLED 디스플레이를 적용할 생각이 있다면 최소한 2년은 준비를 해야 할 것”이라고 밝혔다.

한편 디스플레이메이트 측에 따르면 구글도 추후 업데이트를 통해 넥서스 원의 24bit컬러 구현을 지원할 것으로 알려졌다.

────────────────────────────────

○ 관련기사

▶ 아이폰에서 82회 아카데미상 시상 결과 실시간 확인한다

http://www.betanews.net/article/488302
▶ 에이비엘코리아, USB파워 아이폰 충전문제 개선 나서

http://www.betanews.net/article/488338

▶인포뱅크, 모바일 메신저 ‘엠앤톡(m&Talk)’ 선 봬

http://www.betanews.net/article/488188

▶ 차세대 아이폰, 영상통화 기능 추가되나

http://www.betanews.net/article/488192

▶ 애플 아이패드, 아이폰 OS 4.0 담아 출시할까?

http://www.betanews.net/article/487968

────────────────────────────────

저작권자 : 베타뉴스
2010-02-24 13:48:21 / 최용석 기자
(rpch@betanews.net

난수 생성

#include

#include // rand(), srand() 함수를 사용하기 위해서 인클루드 함
#include // time() 함수를 사용하기 위해서 인클루드 함



int random(int);
void ran (int num[]);



void main(){



int tt[100]; //생성된 난수가 저장될 배열

srand(time(0)); //매번 실행 할때 마다 같은 순서의 난수값을 발생시키 않기 위해 현재 시간값을 준다.
ran(tt); //100개의 난수 발생

printf("\n*** 1부터100까지의 발생 된 난수 ***");

for(int r=0 ; r<100; r++){ //100개 난수
if(r%20 == 0) printf("\n");
printf("%3d ",tt[r]);
}



}




void ran(int num[]){

int i,j;
int sfound;

for (i=0; i<100; ++i){

while(1){

num[i] = random(100);
sfound = 0;// 이미있는값인지확인하기위해플래그설정

for (j=0; j if ( num[j] == num[i] ){ // 같은값이있으면 플래그값을 참으로
sfound = 1;
break;
}
}
if (!sfound)
break; // 같은값이없으면while문탈출
}
}
}


int random(int n) //난수 발생 함수
{
int res;
res = rand() % n; //0에서 n-1까지 난수 발생
return res+1; //그값에 1을 더해주어 반환하면 1에서 n까지 난수 발생
}

특수키의 아스키코드값, 스캔코드값 알아내기~

#include
#include

void main()
{
char c1, c2;

c1 = getch();

if(c1 == -32 || c1 ==0){

c2=getch();

printf("특수key Asciicode : %d Scancode : %d \n",c1,c2);
}
else{
printf("일반key Asciicode : %d \n",c1);
}
}

큐~

#include

#define MAX 3 //Maximum queue size

int Front = 0;
int Rear = 0;

int CQ[MAX];

void Enqueue(int item)
{
if((Rear+1)%MAX == Front)
printf("Queue is full \n");
else
{
Rear = (Rear+1)%MAX;
printf("Rear = %d, Front = %d \n",Rear,Front);

CQ[Rear]=item;
}
}

void Dequeue(void)
{
if(Front==Rear)
printf("Queue is Empty \n");
else
{
printf("Rear=%d, Front=%d \n", Rear,Front);
Front=(Front+1)%MAX;
printf("%d \n", CQ[Front]);
}
}

int main(void)
{
int Num;

printf("원형큐에 삽입할 데이터를 입력하시오.");
scanf("%d", &Num);
Enqueue(Num);

printf("원형큐에 삽입할 데이터를 입력하시오.");
scanf("%d", &Num);
Enqueue(Num);

printf("원형큐에서 데이터를 삭제합니다.");
Dequeue();

printf("원형큐에 삽입할 데이터를 입력하시오.");
scanf("%d", &Num);
Enqueue(Num);

printf("원형큐에서 데이터를 삭제합니다.");
Dequeue();

printf("원형큐에 삽입할 데이터를 입력하시오.");
scanf("%d", &Num);
Enqueue(Num);

printf("원형큐에 삽입할 데이터를 입력하시오.");
scanf("%d", &Num);
Enqueue(Num);
return 0;
}

스택~

#include

#define Max 100 //Maximum stack size

typedef char data;

data stack[Max]; //캐릭터형 스택 생성

int Top = -1; //공백스택 상태


void Push(data Item)
{
if (Top >= Max)
printf("stack is full \n");
else

Top++;
stack[Top] = Item;

}

data Pop()
{
if(Top==-1)
printf("Stack is Empty \n");

else
return(stack[Top]);
//Top--;

}

int main(void)
{
data w, Item1;

printf("'q'를 입력시 입력이 종료 됩니다. \n");

printf("문자를 입력하세요 : ");
scanf("%c", &w);
fflush(stdin);

while(w != 'q'){
Push(w);
printf("문자를 입력하세요 : ");
scanf("%c",&w);
fflush(stdin);
}


while(Top != -1){
Item1=Pop(); Top--;
printf("반환된 문자 : %c \n",Item1);
}

return 0;
}

연결자료구조~

#include
#include


struct node {
int Data;
struct node *next;
};
struct node *head=NULL, *del_node;

//struct node *tmp=head, *del_node;

void main()
{
head = (struct node*)malloc(sizeof(struct node));
head ->Data = 5;
head ->next = (struct node*)malloc(sizeof(struct node));
head ->next->Data=3;
head ->next->next=(struct node*)malloc(sizeof(struct node));
head ->next->next->Data=45;
head ->next->next->next= (struct node*)malloc(sizeof(struct node));
head ->next->next->next->Data=21;
head ->next->next->next->next= (struct node*)malloc(sizeof(struct node));
head ->next->next->next->next->Data=9;
head ->next->next->next->next->next=NULL;


del_node = head;
head = head->next;
free(del_node);

while(head != NULL)
{
printf("%d \n", head->Data);
head = head ->next;
}

getchar();
}