티스토리 툴바

블로그 이미지
마음대로 퍼가셔도 됩니다. 웹에 글을 올린다는 것은 퍼가라고 올리는거지, 퍼가지 못하게 할꺼면 다이얼리에 쓰세요. meslva

카테고리

분류 전체보기 (57)
etc. (8)
Programming (25)
OS (24)
Total13,087
Today6
Yesterday7


-- 변수 선언
declare @value1 int
declare @value2 int

-- cname_cursor 라는 이름의 커서를 만든다, 변수는 value1, value2
declare cname_cursor insensitive cursor
for
    -- select쿼리 실행
    select @value1, @value2
    from table_source
for read only
open cname_cursor

-- cname_cursor 에서 value1, value2를 가져온다.
fetch from cname_cursor into @value1, @value2
while @@fetch_status = 0
begin
    -- value1, value2를 이용하여 쿼리를 작성한다.
    update table_target 
    set target1 = @value1, target2 = @value2

fetch from cname_cursor into @value1, @value2
end

-- 메모리 해제
close cname_cursor
deallocate cname_cursor

저작자 표시
Posted by meslva

개발을 하면 할수록 Xcode가 만들어 주는 코드에 대해서 깊은 생각을 하게된다.
그중에 하나가 loadView와 viewDidLoad이다.

apple의 주석은 다음가 같다.
loadView : nib를 생성하지 않고, 프로그래밍으로 뷰계층을 만들경우에 사용하라.
viewDidLoad : view가 로드된 뒤에 추가적인 작업을 할때 사용하라.

나를 포함한 대부분의 개발자는 초반에 viewDidLoad를 사용하고 loadView를 처다보지도 않을 것이다.
왜냐하면 초반엔 다들 Interface builder를 사용할테니까.

그러다가 IB실행도 귀찮아지고, 코드로만 작성하게되는데, 이때 자꾸 loadView가 눈에 걸린다.
간단히 말하면 둘의 역활은 많이 다르다.

loadView는 viewControler.view 를 생성하는 곳이다. 다시 말하면 loadView매소드 안에서는 self.view를 read로 사용할수가 없다.
아직 self.view가 만들어지지 않았기 때문이다.  그러므로 loadView의 코드는 다음과 같이 만들어진다.

- (void)loadView {
     UIView *view = [[UIView alloc] init];
     ...
     [view addSubview:subView1];
     [view addSubview.subView2];
     ....
     self.view = view;
     [view release];
}

viewDidLoad는 기존에 알던데로, view가 메모리에 적재된 후에 추가적인 작업을 하는 곳이다.
loadView -> viewDidLoad



 
Posted by meslva

Xcode 3에서 sqlcipher을 사용하셨던 분들은 2011년초가 악몽과도 같았을 겁니다. sqlcipher가 xcode4에서 컴파일이 안되었기 때문이죠. 개발자인 sjlombardo님은 업글을 너무 여유롭게 하시더군요. 하지만 SQLCipher Google Groups에서 저를 포함한 많은분들의 징징거림으로 인하여 현제는 XCode4를 아주 잘 지원하고 있습니다.
까놓고 말해서 Xcode4에서도 특별하 변경없이 기존것을 사용할수는 있었는데, 개발자가 배포하는거에 비하면 저의 능력은 너무 떨어지기 때문에 사용하면서도 불안했거든요..-_-;;;;

0. 준비물
    - SQLCipher : https://github.com/sjlombardo/sqlcipher 
    - OpenSSL : http://www.openssl.org/source/
    - OpenSSL-XCode : https://github.com/sjlombardo/openssl-xcode
 
    압축을 푸신 뒤 OpenSSL-XCode을 압축해제후 나오는  Xcode 프로젝트 파일과 문서 화일을 OpenSSL 소스 폴더에 복사해 놓으시면 됩니다.


1. Xcode4에서 SQLCipherTest라는 프로젝트를 생성한다.
2. XCode 4 Preference - Source Trees로 이동하여 OpenSSL과 SQLCipher의 경로를 설정한다.
[첨부1]

3. sqlcipher와 openssl 프로젝트를 SQLCipherTest 프로젝트에 포함시킨다.

[첨부 2]
4. SQLCipherTest - Target - Build Phases - Target Dependencies 로 이동하여 +를 클릭한 뒤에
   crypto와 sqlcipher를 추가한다.
  
   [첨부 3]
   [첨부 4]
  
5. SQLCipherTest - Target - Build Phases - Link Binary With Libraries 로 이동하여 +를 클릭한 뒤에
libcrypto.a와 libsqlcipher.a를 추가한다. (빨강색와도 정상이다. 아직 컴파일이 안되었기 때문에 빨강색으로 나오는 것이다.)
[첨부 5]

6. SQLCipherTest - Target - Header Search Paths에 +를 눌러서 경로를 추가한다.
[첨부 6]

7. 테스트용 코드를 작성한다.
 #import "/usr/include/sqlite3.h"
- (void)sqliteTest
{
    sqlite3 *database;
    
    // database file path
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentDirectory = [paths objectAtIndex:0];
    NSString *sqlfilePath = [documentDirectory stringByAppendingPathComponent:@"test.sqlite"];

    //Database open
    if (sqlite3_open([sqlfilePath UTF8String], &database) != SQLITE_OK) {
        sqlite3_close(database);
        NSAssert(0, @"Failed to open database");
    } else {
        sqlite3_exec(database, "PRAGMA key = 'InputYourPassword'", NULL, NULL, NULL);
    }
}


8. 에러 없다면 성공.

주의1 - Xcode4에서는 빌드 디렉토리가 통합으로 관리되는데, 이것을 기존과 같이 사용하기 위해 Xcode의 Preference를 변경하는 경우가 있다. 이럴 경우에는 sqlcipher가 Library 디렉토리를 찾지 못하므로 디폴트 값을 사용하길 권장한다. (Xcode - Preference - Locations - Build Location - Place build Products in derived location (recommended))
 
주의2 - 주의1처럼 Build Location 을 변경하셨는데 잘되시는분... 어떻게 하셨는지 알려주세요. 제가 하면 시뮬일때랑 디바이스때랑 항상 라이브러리 경로를 지정해 주어야만 정상적으로 실행이 되더군요.

주의3- Xcode 4.2에서는 armv6와 관련된 부분이 수정되었기 때문에,  SQLCipher을 새로 다운 받아서 컴파일해야한다. 컴파일중 에러가 발생할수 있는데, 이 때는 기본 컴퍼일러를 확인해본다. Apple LLVM Compiler인 경우, GCC LLVM Compiler로 변경하면  정상적으로 컴파일 될것이다. 

Posted by meslva

system : Fedora core 15

0. socks server 5 설치
#yum install ss5
 
1. root계정으로  ss5를 실행하고, 디폴트 포트 변경
#vi /etc/init.d/ss5

#젤 윗줄에 추가
export SS5_SOCKS_PORT=9999 #디폴트 1080
export SS5_SOCKS_USER=root   #이거 추가 안하니까 인증기능이 작동 안하드라...-_-;;

2. ss5.conf 편집
#vi /etc/opt/ss5/ss5.conf 
 

 #인증을 위해 다음줄로 수정 ( - 를 u로 변경, fakeAuth는 n을 사용함)
set SS5_PAM_AUTH
auth 0.0.0.0/0 – u

2. PAM 수정
#vi /etc/pam.d/ss5

# 다음줄 추가
auth required /lib/security/pam_unix.so

3. ss5 시작
#service ss5 start

만약, 다음 에러를 보게 된다면
Can't create pid file /var/run/ss5/ss5.pid
Can't unlink pid file /var/run/ss5/ss5.pid

다음을 써라
#mkdir /var/run/ss5

 
출처 :  http://linux.die.net/man/5/ss5.pam
Posted by meslva

system : Fedora core 15

0. socks server 5 설치
#yum install ss5
 
1. root계정으로  ss5를 실행하고, 디폴트 포트 변경
#vi /etc/init.d/ss5

#젤 윗줄에 추가
export SS5_SOCKS_PORT=9999 #디폴트 1080
export SS5_SOCKS_USER=root   #이거 추가 안하니까 인증기능이 작동 안하드라...-_-;;

2. ss5.conf 편집
#vi /etc/opt/ss5/ss5.conf 
 

 #인증을 위해 다음줄로 수정 ( - 를 u로 변경, fakeAuth는 n을 사용함)
auth 0.0.0.0/0 – u

3. ss5.passwd 편집
#vi /etc/opt/ss5/ss5.passwd

#아래와 같은 형태로 저장함
user1 user1passwd
user2 user2passwd

ss5.passwd는 너무 아름답게도(??) 그냥 텍스트 형태로 패스워드를 저장한다. 그러므로
파일 권한에 신경써야한다.

#chmod root.root /etc/opt/ss5/ss5.passwd
#chown 750 /etc/opt/ss5/ss5.passwd

4. ss5 시작
#service ss5 start

만약, 다음 에러를 보게 된다면
Can't create pid file /var/run/ss5/ss5.pid
Can't unlink pid file /var/run/ss5/ss5.pid

다음을 써라
#mkdir /var/run/ss5


출처 : http://lijeesh.in/install-and-configure-ss5-socks-proxy-with-simple-authentication.html

 
Posted by meslva
글의 제목을 어떻게 써야할지 고민되는 포스트인데, 설명하면 간단하다.
인자로 "MethodName"을 받았다. 이 값으로 MethodName이라는 메소드를 호출해야 한다.
이럴 경우, 어떻게 처리해야 할까... 바로 @selector가 떠오를 것이다.
그렇다. @selector를 사용하면 간단히 해결된다.

SEL funcSelector;
funcSelector = NSSelectorFromString(@"MethodName");
[self performSelector:funcSelector];

반대는.

NSStringFromSelector

출처
------------------------------------------
http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocSelectors.html
Posted by meslva
TAG iPhone, xcode


cydia를 사용하다가. 동일한 소스인데. 다른 url이라서 실수로 추가했을때, source가 꼬이는 경우가 있다.
이럴 경우 터미널로 접속해서 수동으로 해당 source들 삭제하지 않으면, 패키지 다운로드에서 무한루프에 빠지게 되는데, 이 경우 사용하면된다.

Step 1:

* Navigate to /private/etc/apt/sources.list.d and delete all files that contain the offending repo in the filename.
* Open cydia.list for editing.
* You will see lines that look like deb http://somerepo.url/ ./ Remove the line that has the offending repo url.
* Save the file.

Step 2:

* Navigate to /private/var/lib/apt/list and delete all files that contain the offending repo in the filename.

Step 3:

* Navigate to /private/var/lib/apt/list/partial and delete all files that contain the offending repo in the filename.

Step 4:

* Navigate to /private/var/lib/cydia and open the metadata.plist for editing.
* Ctrl+F (or similar) for your offending repo url and delete all instances of it (it may appear more than once in the file).
* Save the file.

출처 : http://xsellize.com/topic/65676-cydia-source-clear-cache/

 

Posted by meslva
TAG Cydia
사파리5의 읽기도구는 상당히 편리하다. 하지만 이것 역시 흰바탕의 너무나 멋진 폰트로 인하여 눈이 불타는 듯한 체험을 하게 만든다.
그래서 검정색으로 배경을 변경했는데, 그래도 눈이 아프더라.
그러던 도중 구글링하다가 피로감이 덜 한 스킨을 발견하였다.

압축파일 안에는 폰트를 맑은고딕으로 변경한 파일이 들어있다.
원본 파일은 원하면 출처 링크를 따라가면 된다.


Posted by meslva
TAG safari5
//,  /* */은 주석처리이다.
하지만 주석은 코드를 설명해줄 뿐, 어디에 어떤 주석이 있는지는 알 수 없다.

주석의 위치를 알수 있다면..... 혹시 나중에 처리해야할 위치를 표시해 놓는다면.... 편하지 않을까?
.Net에서는 다른 방법으로 한것 같은데.....현재는 기억안나고
Xcode에서는 //을 사용해서 이부분을 해소할 수 있다.

// TODO: 어쩌구 저쩌구   ==> 나중에 코드를 추가해야하는 부분에 적어주면 좋다.
// FIXME: 어쩌구 저쩌구  ==> 나중에 수정해야 할 코드를 표시
// MARK: 어쩌구  ==> 함수 목록에 보여지는 주석
// ???: 어쩌구 ==> 어처구니 없는 코드나 이해할 수 없는 코드
// !!!: 어쩌구 ==> 놀랍게도 너무 잘 짜여진 코드

이런식으로 주석을 달아 놓으면 함수목록에 주석이 보여진다.
예)

//TODO: Instantiate detail editing controller and push onto stack

//!!!: amazing

//FIXME: fix me

//MARK: mark sentence

//???: cannot understand code





Posted by meslva

Xcode를 사용하다보면, 배경 흰색에 검정글씨가 나의 눈을 파먹는것 같다. -_-;
그래서 색을 바꿔보려했지만, 나의 천재적(??)이 미적감각으로는 도저히 맘에 드는 color theme을 만들 수 없드라.

그래서 구글신의 도움을 얻어 몇가지 color theme을 다운 받아봤는데, 그 중에 제일 맘에 드는 건 Railcasts 테마였다.

환경 : Xcode 3.2.3




압축 파일에는 Railscasts 테마 이외에도 Human, IR_black, spacedust, TeliazTheme, XCodeColorTheme 의 테마도 포함되어 있다.

설치 방법은 테마 파일을  ~/Library/Application support/Xcode/Color Themes 안에 복사해서 넣고, XCode를 재실행하면 Xcode설정창 - Fonts & Colors에 나타날 것이다.

ps - 이곳 저곳에서 테마파일을 다운 받다보니, 출처를 저장하지 못했습니다. 죄송합니다.


환경 : XCode 4
Project Class Names 색은 제 맘대로 변경했음.

위치 : ~/Library/Developer/Xcode/UserData/FontAndColorThemes



Posted by meslva

최근에 달린 댓글

최근에 받은 트랙백

글 보관함