2015년 2월 28일 토요일

parallels.log 이파일이 먼지 암처럼 자란다.

parallels 10 을 사용하고 있다.

아이포토가 100GB를 넘었다 하여도

패러럴 이미지 2개

그리고 몇몇 어플들

256 기가 SSD가 가득찬다는건 너무 하다.

일단 아이포토 라이브러리를 맥미니에 구성한 서버로 이동 하고 이래 저래 찾아 봐도
너무 용량이 부족 하다.

조사 끝에

패러럴즈가 범인이었다.

먼가 문제가 있긴 한거 같은데...

원인은 모르겠고 일단 로그라서 정리 하자!

OS X Server 파일공유 / 타임머신 서버 만들기

맥북프로에 아이포토 라이브러리가 암처럼 자라더니 드디어 디스크 공간 부족 상태에 이르렀다.

애플 타임 캡슐?
Synology NAS?
WD My Book NAS?
WD My Book 외장 디스크?

다른 브랜드의 고급 Thunderbolt 외장 디스크?

가격도 만만치가 않고

현재 디스크 구성이랑 최소 비용으로 해결 하고 싶다.

mac mini 2007 500GB는 그냥 HTPC로 이용

mac mini 2012 1.2 Fusion Disk + USB3.0 1TB 가 OS X Server를 통해서
아이포토 라이브러리, 아이튠 라이브러리를 제공 하고
1TB 외장디스크를  타임머신 서버를 하도록 구성 했다.

지금껏 1TB 외장 디스크를 맥미니에 붙였다가 맥북 프로에 붙였다 하며 타임머신 디스크로
이용하였다.

어제 까지의 모든 자료는 정상으로 판단하고 과감히 디스크를 포멧 후
OS X Server에서 타임머신 디스크로 설정 했다.

OS X Server에서는 용량도 제한 할 수 있다. 그리고 모니터링도 된다.
왠지 외장 디스크에 타임머신 백업 하는것 보다. 네트워크로 맥미니에 OS X Server
설정 하여 타임머신 서버로 이용하니 타임캡슐 하나 장만한 느낌이다.

1TB 밖에 안되는 크기를 타임머신 백업 디스크로
맥미니도  맥북프로도 해야 하기 때문에 맥북프로에 백업 공간은 300기가로 제한을 주었다.
클라이언트 백업 크기를 제한을 줄 수 있는 기능이 맘에 든다.

그래서 오랜 고민 끝에 NAS / DAS 구매는 보류 하고 일단 현재 상태로 좀더 버티기로 결정 했다.

네트워크를 통한 아이포토 라이브러리 열기도 조금 답답하지만 쓸만하니
현재 까지 만들어진 아이포토 라이브러리는 맥미니에 넣어두고 OS X Server파일 공유를 통해 보고 싶을때 꺼내 볼수 있도록 하고 맥북 프로에 새로운 아이포토 라이브러리를 생성해서 신규 사진을 넣는 식으로 가야 겠다.




2015년 2월 27일 금요일

OS X Server 구매 기록 어디로 갔냐?

mac mini 서버 버젼이 단종 되면서 apple 먼가를 했나 보다.

app store에 분명히 구매 목록에 있었는데 찾아 보니 없다.

이래 저래 찾아 보니 mac mini 서버 버젼이 단종되면서 사라진것
근데 난 mac mini 서버 구매자도 아니고 가물거리는 기억을 더듬어 보니
난 iOS developer 프로그램 가입자로 다운 받은 것이다.

역시나 아직도 난 애플 개발자이고 다운 받을수 있다.

암처럼 커져가는 맥북 프로에 아이포토 라이브러리 부터 해서 모두 맥미니에 OS X 서버를 설치하고 거기에다 집어 넣고 파일 공유 부터 time machine 서버 도 돌려야 겠다.


2015년 2월 26일 목요일

Asset Catalog 를 이용해서 앱 아이콘 추가 하기

Xcode 6를 사용하다 보니 이것 저것 많이 바뀌었다.

이전에는 아이콘 파일 이름을 각각
icon file name and size for ios 7 compatible app as below (iPhone)
Icon.png - 57*57
Icon@2x.png - 114*114
Icon-Small.png - 29*29
Icon-Small@2x.png - 58*58
Icon-40.png - 40*40
Icon-40@2x.png - 80*80
Icon-60@2x.png - 120*120
Icon-76.png - 76 x 76
Icon-76@2x.png 152 x 152
(EDIT: corrected names of 120 & 40 sizes, and added 76 + 152)
정의 해서 파일을 추가 했었다.

Xcode 6에서는 프로젝트를 새로 만들면 Asset Catalog 파일이 기본으로 하나 추가 되어 있고 여기에 
이미지 리소스를 넣는 것으로 보인다.
물론 이번에 알바한 프로젝트도 이전 방식대로 버튼 이미지나 기타 리소스 파일은 그냥 개별 파일로 추가 했으나
앱을 앱스토어에 올리려니 아이콘이 없다는 에러를 만났고 Asset Catalog 를 이용 하게 되었다.
아이콘을 만들어 주는 앱을 앱스토어에서 받은 다음 
각각의 사이즈 별로 생성된 아이콘으로 Asset Catalog 파일을 선택 한다음 추가 하면 된다.




2015년 2월 23일 월요일

2007 맥미니 HTPC에서 NAS로 변신해도 될까? 사전 성능 테스트

NAS냐 DAS냐 그냥 USB3.0외장 디스크냐? 어떤걸 선택해야 하는가?
사진 용량은 늘어만 가고 맥북프로에 SSD 용량은 이제 남은 용량이 얼마 없다.
늘어만 가는 아이포토 라이브러리를 어떻게 처리 해야 하는가?

일단 아래와 같이 현재 집에 있는 장비들의 Disk 속도를 측정 하였다.


레티나 맥북프로에 SSD성능

http://mtsparrow.blogspot.kr/2014/01/blog-post.html

write 682 MB/s
read 730 MB/s









USB 3.0 외장 2.5인치 segate backup plus
write 42 MB/s
read 55 MB/s



맥미니2012 : 256GB SSD + 1TB HDD 퓨젼
write 85 MB/s
read 314 MB/s




맥미니 2007 :  기가빗 네트워크 연결 - HDD 500GB
write 61 MB/s
read 106 MB/s


추가 테스트 맥북프로에서 맥미니 2012를 A2004NS 무선 AC로 연결 액세스
내장 퓨젼드라이브나 외장 USB3.0이나 모두 20 ~ 30 MB/s 의 느린 속도를 보임
무선 AC는 거의 뻥임 ㅠ.ㅠ 이게 실제 사용 환경인데....


포토스 앱이 나와 봐야 알겠지만 일단 아이포토 라이브러리를 맥북 프로에서 관리 할 수는 없다.


1. 2012 맥미니 에 저장 시키고 이를 네트워크로 액세스
2. 2007 맥미니에 디스크 증설 시키고 이를 네트워크로 액세스
3. NAS
4. USB 외장 디스크

근데 USB 3.0이 성능이 별로 였다는 것과
2007 맥미니가 기가빗으로 연결 하니 성능이 생각 보다 좋다는 것이 놀랍다.










2015년 2월 21일 토요일

TR-40SFHDTV 리뷰

http://prod.danawa.com/info/?pcode=2877629&keyword=TR-40SFHDTV

이제 사용한지 1일 되었다.

명절에 엄마 집에서 가져온 중소기업 TVERA 제품에 40인체 full hd led TV 되겠다.

2007년 LG 32인치 LCD  720p TV에서 요넘을 보니 LG 삼성이 아니지만 훨씬 좋다.

화면도 밝고 선명하고 무엇보다 hdmi가 3개나 되어 xbox , 세탑을 연결 하고도 하나가 남는다.
남는 하나느는 맥북 프로와 연결하니 잘도 나온다.

그리고 기존 LG TV의 미디어 플레이어용으로 사용하던 2007년 맥미니와 의 연결을 위한 VGA포트도 있다. LG미니 컴퍼넌트의 DVD 플레이어 연결을 위한 컴퍼넌트 단자도 있고 모든 연결 단자는 준비 되어 있다.

베젤 두깨가 1cm 정도 밖에 안되서 기존 TV 와 크기도 비슷하고 그자리에 그대로 올라가도 공간이 부족하거나 하지 않다.

32인치에서 8인치가 커졌지만 금세 크다는 느낌은 사라진다.
셋탑에 설정도 1080p로 변경하고 맥미니 맥북프로 xbox 모두 연결하여 테스트를 하였다.

충분히 저렴한 가격에 만나는 LEDTV되겠다.

단점이라고 할수 있는건 스마트TV기능에 부재

그냥 기존 쓰던 LCDTV기능을 모두 하는 세탑에 연결하여 사용하는 모니터 스러운 TV로서는 아주 좋다.
TV를 바꾸고 싶었지만 고장이 나지 않는 32인치 TV
엄마 덕에 뜻밖에 기변을 하였는데 아주 좋다. 앞으로 10년간은 잘 쓸듯..

2015년 2월 17일 화요일

apns-3000 code error


Domain=NSCocoaErrorDomain Code=3000 "응용 프로그램에 대해 발견된 'aps-environment' 인타이틀먼트 문자열 없음" UserInfo=0x1706754c0 {NSLocalizedDescription=응용 프로그램에 대해 발견된 'aps-environment' 인타이틀먼트문자열 없음}

푸시 노티 앱을 개발 하면서 위와 같은 에러를 만나게 되었다.

이전 포스팅에서 처럼 xcode 버그 때문에 provisioning profile을 xcode 가 제너레이트 하게 했더니 이게 wild card (*)로 만들고 adhoc 프로비져닝도 App Id와 관계 없이 * 로 만들어서

위와 같은 에러를 만나게 되었다.

무지에서 오는 어설픈 의심때문에 푸시 서버 쪽에 인증서 문제가 아닌가 했지만
완전히 프로비져닝 프로파일 문제 였다.

해결방법은 역시 명시적으로 App ID를 지정해 주면 된다. 

2015년 2월 16일 월요일

2007 mac mini audio device problem

2007 mac mini에서 가끔 오디오 디바이스가 사라지는 문제가 있었다.

가끔은 정상 동작 하는 경우도 있다.

소리가 나지 않을때는 내장 오디오 디바이스 자체가 없다.

어떤 경우에는 DVD-ROM도 인식 못하는 경우도 있다.

이런 경우는 CD를 삽입 했다가 꺼내지 못하는 상황도 발생한다.

여러 사이트에 구글링을 해보니

2007 mac mini에 문제가 아니라

OSX 10.7.5의 문제 인듯한 글이 보인다.

라이온 마지막 버젼에 문제

결국 10.7.4 버젼을 구해서 다운그레이드 하였다.

설치되는 상태 그래도 다운그레이드를 하여 모든 동작이 정상 동작임을 확인 하였는데

사파리가 동작 하지 않는다.

결국 OS X 10.7.4로 다운그레이드 하고 크롬 브라우저려를 설치 하였다.

어린이들 미디어 플레이어로 TV에 붙어 있는 맥미니 2007의 생명을 연장 시켜 주었다.



2015년 2월 6일 금요일

Xcode 6.1.1 버그 삽질기

teacher 버젼과
parent 버전을 개발 해야 하는데
두앱은 공통 코드가 너무 많다.

해서 일단 먼저 개발된 teacher 버젼의 프로젝트를 완성 시킨 다음

duplicate target 을 해서
(무료 유료 버젼을 하나로 만들 때 주로 하는 방법, lite 버젼 pro 버젼 등...)

작업을 하려 했다.

물론 provisioning profile도 teacher 벼젼과 parent 버젼은 두가지로 준비 되어있었다.

허나 무한 resolve provisioning을 시도한다.

머가 잘못되었는지 계속 검색에 검색을 해도 답이 없다.

해서 provisioning profile이 잘못되었나 그냥 생으로 프로젝트를 만들어서 Team 항목에
developer 계정을 주니 처음에는 provisioning 못하고 어쩌고 하더니

성공 한다.

그런다음 duplicate target을 프로젝트에서 해보니 거기도 성공한다.
결국 Xcode 버그 갔다.

해결 법은 빈프로젝트를 프로덕트 이름을 갖게 하여 provisioning을 xcode가 제너레이트 하게
해서 성공 시킨 다음 duplicate target으로 만든 프로젝트를 resolve 하면 되는 듯 하다.



2015년 2월 2일 월요일

iOS 팁 여러개( sqlite, html, adhoc distribute, NSNotificationCenter, UIColor rgb

sqlite 테이블 리스트 보기

select name from sqllite_master where type ='table';

html text를 lalbel에 보이게 하려면

NSString *htmlString =[NSString stringWithFormat:@"%@", [[self.arrMessageData objectAtIndex:indexPath.row] objectAtIndex:indexOfMessage]];
    NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
   cell.messageLabel.attributedText = attributedString;

html을 일반 plain text로 변경 하려면

- (NSString *)flattenHTML:(NSString *)html {
 
    NSScanner *theScanner;
    NSString *text = nil;
    theScanner = [NSScanner scannerWithString:html];
 
    while ([theScanner isAtEnd] == NO) {
     
        [theScanner scanUpToString:@"<" intoString:NULL] ;
     
        [theScanner scanUpToString:@">" intoString:&text] ;
     
        html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>", text] withString:@""];
    }
 
    html = [html stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
 
    return html;
}


adhoc 배포

http://blog.saltfactory.net/242

드랍박스에 디렉토리를 만들고
거기에 ipa 파일  아카이브 할때 adhoc으로 한다.
물론 이에 필요한 provisioning이 필요 하다.
이렇게 해서 생성한 ipa파일과
.plist 파일이 필요 하다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://드랍박스 .ipa링크를 생성해서 붙인다.</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.ssomon.InaschoolTeacher</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>InaschoolTeacher</string>
</dict>
</dict>
</array>
</dict>
</plist>



<a href="itms-services://?action=download-manifest&url=드랍박스 plist의 링크를 붙여서 html
파일을 만든다.
www.ropbox.com -> dl.dropboxusercontent.com 으로 변경 한다.







객체간 자료 전송 

http://blog.naver.com/iss6388/10183297308
--> 노티가 왓을때 다른 viewController에게 알리는 코드를 응용 할수 있다.
NSNotificationCenter postNotificationName으로 전송 (NSDictionary를 전송하고)

이를 다른 ViewController에서 받아서 처리 하도록 한다.

전송 예제
    [[NSNotificationCenter defaultCenter]
     postNotificationName:@"UIApplicationDidReceiveRemoteNotification"
     object:self

     userInfo:nil];

받는곳
viewDidLoad에서 등록
    [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(didReceiveRemoteNotification:)
     name:@"UIApplicationDidReceiveRemoteNotification"
     object:nil];

viewDidUnload에서 해제
    [[NSNotificationCenter defaultCenter]
     removeObserver:self
     name:@"UIApplicationDidReceiveRemoteNotification"
     object:nil];

이렇게 하면 UiApplicationDidReceiveRemoteNotification이 호출 된다.


rgb 칼라를 UICrolro 매크로

http://winplz.tistory.com/entry/UIColor-간단히-Macro로-사용하기
#define RGB(r, g, b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1]

cell.textLabel.textColor = RGB(0x60,0x60,0x60);