'분류 전체보기'에 해당되는 글 74건

  1. 2011.09.27 xcode 버전 관리 기능.
  2. 2011.09.27 centos ssh 설치 및 설정 2
  3. 2011.09.27 centos 에 x-window 설치 1
  4. 2011.09.27 CentOS 6 네트워크 설치.
  5. 2011.09.25 fgets 에서 프로그램이 진행 안됄때.
  6. 2011.09.23 NSMutableArray 인스턴스에 접근시 EXC_BAD_ACCESS 발생.
  7. 2011.09.23 iOS Coverflow Control
  8. 2011.09.22 리눅스에 gcc를 설치해 보자.
  9. 2011.09.22 Linux web server 보안 설정에 관하여...
  10. 2011.09.22 SQLite3를 이용해 실제 Device에서 실행시 오류.

xcode 버전 관리 기능.

Dev/iOS 2011. 9. 27. 20:28


xcode4에 있는 버전 관리 기능을 사용해 본다.

프로젝트 생성시 폴더를 지정하는 화면에서 보면 다음과 같이 "Create local git repository for this project"라는 옵션이 보이는데 해당 체크 상자를 활성화(체크) 해준다.


그러면 해당 프로젝트에 version control 기능이 활성화 된다.
프로젝트의 아무 파일이나 수정 후 저장한다. 내 경우 NSLog를 이용해 더미 코드를 한줄 넣어봤다.


수정된 파일을 저장을 하면 "프로젝트 네비게이터"상에서 해당 파일의 오른쪽에 "M" 아이콘(Modified)이 보인다. 파일이 수정되었다는것을 나타내는것 같다.

해당 파일에 "우클릭"을 하면 "Source Control" 메뉴가 보이고 해당 메뉴에 마우스를 올리면 관련 메뉴들이 나타난다. 이중 "Commit Selected Files..."메뉴를 선택하여 리파지토리에 저장해 보겠다.


상단위 툴바의 메뉴중 "Show the version editor"를 이용하여 수정 되는 내용과 비교 및 수정 할 수 있다.

 

 
 
Discard Changes...을 선택 하면 현재 수정된 내용을 버리고 이전의 내용으로 복구가 된다.
이상 간단한 설정법을 알아봤으며, 자세한 내용은 다음의 iOS Developer Library의 Xcode 4 Transition Guide 를 통해 확인 하시길 바란다. 
:

centos ssh 설치 및 설정

OS/Linux 2011. 9. 27. 13:34


원문 : http://www.cyberciti.biz/faq/centos-ssh/

다음 두개의 패키지를 설치한다.
1. openssh-clients
2. openssh-server

# yum -y install openssh-server openssh-clients

서비스 시작하기
# chkconfig sshd on
# service sshd start

port 22 가 열렸는지 확인.
# netstat -tulpn | grep :22

방화벽 설정.

/etc/sysconfig/iptables 편집 (IPv4 방화벽)
# vi /etc/sysconfig/iptables

다음 라인을 추가.
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

* 내 경우 위 라인을 추가시 서비스 재시작 과정에서 fail이 났다. 그래서 일단 삭제...

저장 후 iptables 재시작
# service iptables restart
 


'OS > Linux' 카테고리의 다른 글

Linux 부팅시 명령어 자동실행.  (0) 2011.12.19
CentOS 6 WOL  (1) 2011.12.09
centos 에 x-window 설치  (1) 2011.09.27
CentOS 6 네트워크 설치.  (0) 2011.09.27
리눅스에 gcc를 설치해 보자.  (0) 2011.09.22
:

centos 에 x-window 설치

OS/Linux 2011. 9. 27. 13:11


centos에 gui 환경인 gnome x-window를 설치한다.

# yum groupinstall "X Window System" "GNOME Desktop Environment"

gui 환경 실행 방법.

# startx

default 실행 방법을 gui로 변경하는 방법.

# vi /etc/inittab

id:3:initdefault: 에서 id:5:initdefault: 으로 변경한다.

숫자가 의미하는 내용은 다음과 같다.
   1 : 안전모드 부팅
   2 : 네트워크 지원 안되는 콘솔모드
   3 : 콘솔모드
   4 : 사용안함
   5 : X-windows 부팅
   6 : reboot
 

'OS > Linux' 카테고리의 다른 글

CentOS 6 WOL  (1) 2011.12.09
centos ssh 설치 및 설정  (2) 2011.09.27
CentOS 6 네트워크 설치.  (0) 2011.09.27
리눅스에 gcc를 설치해 보자.  (0) 2011.09.22
Linux web server 보안 설정에 관하여...  (0) 2011.09.22
:

CentOS 6 네트워크 설치.

OS/Linux 2011. 9. 27. 12:29


daum 서버를 통한 네트워크 설치에 대하여 간단하게 기록한다.

1. iso 파일 다운로드
  32비트 다운로드
  64비트 다운로드

2. CD 에 굽고 부팅.
  Welcome to CentOS 6.0 이라는 메시지와 함께 부트 옵션이 나온다. 난 기존 OS를 모두 밀고 새로 설치할 것이기 때문에 Install of Upgrade an existing system 을 선택. 

3. Language 선택 - English 확인.

4. Installation Methos 중에서 URL을 선택.

5. Configure TCP/IP 중 IPV6 설정을 체크 해제. 확인.

6. URL Setup 에서 http://ftp.daum.net/centos/6.0/os/i386/ 입력 후 확인.

7. 파일을 다운로드 하고 설치 GUI가 뜬다. 그런후 시간 설정 해주고, root비밀번호 설정 후 Next 하여 설치 완료 

'OS > Linux' 카테고리의 다른 글

CentOS 6 WOL  (1) 2011.12.09
centos ssh 설치 및 설정  (2) 2011.09.27
centos 에 x-window 설치  (1) 2011.09.27
리눅스에 gcc를 설치해 보자.  (0) 2011.09.22
Linux web server 보안 설정에 관하여...  (0) 2011.09.22
:

fgets 에서 프로그램이 진행 안됄때.

Dev 2011. 9. 25. 20:03


어처구니 없는 실수...
Linux에 간단한 게임 서버를 공부삼아 꾸며 봐야겠다는 생각에 일단 테스트로 에코 서버/클라이언트를 작성해 보았는데 이상하게 프로그램이 프리징 된듯하게 진행이 안돼는 것이였다.
분명 대학교때 사용하던 책이었고 작성해 봤었던 간단한 프로그램이였는데 왜 안돼는지 정말 답답 했었다.
리눅스여서 뭔가 다른가? 하고 눈을 씻고 여기저기 구석구석 찾아 보았다.

원인은....

문자열을 입력 받기 위한 fgets 함수에 있었다.

fgets(message, BUFSIZE, stdin);

이것을

fgets(message, strlen(message), stdin);

이렇게 잠결에 아랫줄과 혼돈하여 넣은것이다.
잠결에 코드 작성하지 말자.

그런데, 프로그램이 아예 뻑나거나... 그러질 않고 가만히 멈추어 있는 뭐지? ㅋㅋ
리눅스(gcc 라고 해야하나?)상에서 디버깅 기술이 전혀 없어서 그런듯 하다.
시간 날때 꼭 디버깅에 대해 정리해보고 공부해야겠다.

해당 함수의 레퍼런스 링크 : http://www.cplusplus.com/reference/clibrary/cstdio/fgets/
:

NSMutableArray 인스턴스에 접근시 EXC_BAD_ACCESS 발생.

Dev/iOS 2011. 9. 23. 17:53


Model 클래스에서 데이터 베이스의 내용을 읽어 NSMutableArray 로컬 변수에 채운후 클래스 멤버 변수로 대입 후 다른 뷰 콘트롤러에서 해당 배열에 접근을 시도 하였더니 EXC_BAD_ACCESS 에러가 발생 되었다.
원인은 데이터 베이스에서 읽어온 데이터를 저장 중이던 배열을 release해준것으로 보인다.

@interface Model : NSObject {
  NSMutableArray _array;
}
@property (retain) NSMutableArray * _array;
@end 

@implemention Model

...

- (void)readDatabase {
  ...
  NSMutableArray localArray = [[NSMutableArray alloc] initWithCapacity:sqlite3_data_count(statement)];

  // database에서 읽어온 데이터를 localArray에 채워 넣는다.

  _array = localArray;
  [localArray release]; 

}

위와 같이 release 코드를 삭제 해주면 해달 오류는 발생하지 않는데 아직 정확한 원인을 이해하지 못하겠다.
아직 Object-C 에서 메모리 관리가 정확히 어떻게 되는지 감이 안온다.
메모리 관리에 관련된 부분을 좀 더 자세히 공부해봐야겠다.

뭔진 모르지만 C언어의 그것과 굉장히 헷갈리고 매치가 되질 않는데 뭘가를 잘못 생각하고 있는듯 하다.

위와 같은 원인에 대하여 아시는 분 있으시면 좀 알려주세요 !!
 
:

iOS Coverflow Control

Dev/iOS 2011. 9. 23. 14:55


프로젝트에 iTunes에서 음악을 재생하면 나타나는 앨범 재킷들처럼 Coverflow 를 삽입하는 내용을 정리한다.
원문 : iPhone Coverflow Tutorial : Adding Tapku To Xcode4 Project 



 Devin Ross란 사람이 만든 Tapku 라는 라이브러리를 사용한다. (Free library)
download
 
1. View-based application iphone 프로젝트를 생성한다.
2. Tapku library 를 프로젝트로 복사한다. 
3. 복사후 해당 폴더 안으 TapkuLibrary.xcodeproj 파일을 프로젝트의 framework group에 드래그 앤 드롭한다.
4. 'TapkuLibrary' 폴더 아래의 'TabkuLibrary.bundle' 파일을 프로젝트의 Supporting Files group에 드래그 앤 드롭한다. 대화 상자가 나타나면 "Create Folder References"를 선택 하고 "Copy items"는 체크를 해제 한후 'Finish'를 클릭한다.
5. Core Animation & MapKit frameworks를 프로젝트에 추가한다.
 - Project navigator에서 project file을 선택
 - targets list 에서 해당 target을 선택
 - Build Phases tab을 선택 후 Link Binary With Libraries 를 확장한다.
 - '+'버튼을 클릭해서 'QuartzCore.framework'와 'MapKit.framework'을 추가한다.
6. Target Dependencies에 Tapku library 추가
 - 'Target Dependencies'를 확장
 - Tapku Xcode project에서 TapkuLibrary를 추가
7. libTapkuLibrary.a추가
 - Target Build Phases 의 'Link Binary With Libraries'섹션에서 '+'버튼을 클릭해 'libTapkuLibrary.a'를 추가한다.
8. Build Settings의 'Header Search Paths'에 '$(SRCROOT)/Coverflow/Tapku/src'를 추가해 준후 Done. (자신의 프로젝트에 알맞도록 변경 할것)
9. Linker 섹션 아래 'Other Linker Flags'에 '-ObjC'와 'all_load' flag추가 후 Done.
10. Tapku 폴더의 src/Frameworks/ 위치에 있는 TouchJSON library를 추가한다.
 - TouchJSON폴더를 frameworks group에 드래그 앤 드롭 한다.
 - 대화상자가 나타나면 copy item checkbox 를 선택한다.

설정 완료.

뷰 컨트롤러의 헤더. ----

#import <UIKit/UIKit.h>
#import <TapkuLibrary/TabkuLibrary.h>

@interface XXXViewController : UIViewController <TKCoverflowViewDelegate, TKCoverflowViewDataSource>
{
    TKCoverflowView * coverflow;
    NSMutableArray * covers;
}
@property (retain, nonatomic) TKCoverflowView * coverflow;

@end

뷰 컨트롤러의 구현 파일. -----
- (void)viewDidLoad
{
    [super viewDidLoad];

    covers = [[NSArray arrayWithObjects:
        [UIImage imageNamed:@"aaaa.png"], [UIImage imageNamed:@"bbbb.png"], nil] retain];

    coverflow = [[TKCoverflowView alloc]  initWithFrame:CGRectMake(0, 0, 480, 300)];
    coverflow.coverflowDelegate = self;
    coverflow.dataSource = self;
    [self.view addSubview:coverflow];
    [coverflow setNumberOfCovers:50];
}
 
** 추가로 datasource 와 view delegate 메소드들을 구현해줘야 한다. 데모는 landscape로 회전되어 있는다.
project download
 
이상. 프로그램 소스는 코드에서 복사한 내용이 아니라 오탈자가 있을수 있으니, 소스 코드를 다운로드 하여 확인.
:

리눅스에 gcc를 설치해 보자.

OS/Linux 2011. 9. 22. 21:25


리눅스 설치시 별다른 옵션없이 설치 했더니 gcc가 없나보다.
간만에 책에서 본것좀 리눅스에서 컴파일 좀 돌려볼려고 명령 프롬프트에
# gcc -v
를 입력 하니 없단다.
그리서 yum을 이용하여 설치 하였다.

# yum install gcc

미러 사이트를 통해 자동으로 받아 설치 하겠느냐고 묻는다. y키 한번 입력해 주면 설치가 완료된다.

테스트 방법 )
vi편집기를 이용하여 항상 입력하던 hello를 출력하는 프로그램 코드를 입력후 빌드해 본다.

#vi hello.c

----------------프로그램 코드 -------------

#include <stdio.h>

int main(void)
{
    printf("hello\n");
    return 0;
}
-------------------------------------------
:wq

gcc를 이용하여 컴파일 한다.

# gcc hello.c -o hello

hello라는 출력 파일이 생긴다. (gcc hello.c만을 이용하여 컴파일 할 경우 a.out 라는 디폴트 이름으로 출력 파일이 생성된다.)
-o 는 출력 파일의 이름을 지정하는 옵션.
실행은 다음과 같이 한다.

# ./hello
hello

끝.

'OS > Linux' 카테고리의 다른 글

CentOS 6 WOL  (1) 2011.12.09
centos ssh 설치 및 설정  (2) 2011.09.27
centos 에 x-window 설치  (1) 2011.09.27
CentOS 6 네트워크 설치.  (0) 2011.09.27
Linux web server 보안 설정에 관하여...  (0) 2011.09.22
:

Linux web server 보안 설정에 관하여...

OS/Linux 2011. 9. 22. 21:05


집에 CentOS를 이용하여 웹서버를 구성해 보았다.
음... 평소 리눅스는 안써본터라 굉장히 낮설고 어색하긴 하지만 이래저래 삽질 좀 했더니 APM설치 까지 다 마쳤다.
로컬상에서는 페이지가 보이나... 다른 컴퓨터에서 접속이 되질 않는다.

인터넷을 통하여 찾아본결과... 보안 설정 때문에 접속이 안돼는거라는데 아직은 이유를 정확히 파악 못했다.
일단

# setenforce 0
# iptables -F

이 두 명령어를 입력하면 보안기능이 꺼지는지 정상적으로 접속 된다.
윈도우 PC에서 SSH접속으로 리눅스를 조작 할 수 있음을 알았다.
Xshell 4 라는 프로그램을 이용한다. 그래도 아직 미숙하니 리눅스의 GUI기능은 살려둬야겠다.

일단은 기억을 위해 기록... 혹시 이것에 관한 내용을 쉽게 좀 설명해주실 수 있는분 계시면 좀 알려주세요. ㅠ

'OS > Linux' 카테고리의 다른 글

CentOS 6 WOL  (1) 2011.12.09
centos ssh 설치 및 설정  (2) 2011.09.27
centos 에 x-window 설치  (1) 2011.09.27
CentOS 6 네트워크 설치.  (0) 2011.09.27
리눅스에 gcc를 설치해 보자.  (0) 2011.09.22
:

SQLite3를 이용해 실제 Device에서 실행시 오류.

Dev/iOS 2011. 9. 22. 17:33


error 내용 )
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

SQLite3 라이브러리를 사용하는 코드를 작성중. 시뮬레이터에서는 정상 작동하는 코드가 실제 디바이스 타겟으로 잡아 놓고 실행시 위와 같은 오류 메시지를 뱉어내며 빌드가 실패한다.

문제점 )
프로젝트의 Build Settings 의 Library Search Paths 가 기본으로 시뮬레이터의 경로로 설정되어 있는 경우에 발생 되는듯 하다.

해당 위치 : 프로젝트 루트 선택 -> TARGETS중 해당 타겟 선택



해결책 )
해당 위치를 iPhoneOS.platform에 해당하는 위치로 변경해 주면 빌드가 정상적으로 된다.


iPhoneOS platform 에 해당하는 위치를 입력후 iPhoneSimulator platform의 위치보다 위로 드래그앤 드롭하여 올려준다. 자세한 위치는 다음과 같이 변경 하였다 (version 4.3 일경우)

LIBRARY_SEARCH_PATHS = $(inherited) "$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib"




해당 내용은 SQLite3라이브러리만 해당하는것이 아니라 다른 종류의 라이브러리들도 해당되리라 생각 된다.

: