2010년 1월 20일 수요일

맨유 vs 맨시 칼링컵 준결승 1차전




테베즈가 복수 성공했네요.
어제 케이블 중계만 있었어도 재미있게 봤을텐데요 ㅠㅠ

2010년 1월 18일 월요일

2009.01.18 볼튼 vs 아스날 하일라이트 (10분)



오늘 새벽 볼튼 vs 아스날 하일라이트 동영상 입니다.
이청용 .. 후반 중반부터 체력이 급격히 떨어진 것을 제외하고는
위협적인 장면을 많이 만들어 냈죠.

기성용 셀틱 첫경기 볼터치 영상


























동영상 화질은 안습입니다만 꽤 먼거리에서 프리킥 참 잘 찼네요.
그나저나 스코틀랜드 리그는 관중열기를 제외하고는 참 안습이네요.

2010년 1월 16일 토요일

엄마 나 미국 앱스토어에서 일등 먹었어 -_-

어제 My Own Lucky Numbers 1.3버전 업데이트 기념으로 뿌린 리딤코드 효과 + 별로 인기없는 카테고리  효과 덕분에 미국 앱스토어 유료앱 전체카테고리 순위 급상승 어플 1위에 등극했습니다. (여기서 우리는 TOP 100 순위가 아님에 주의 해야 합니다. 판매량은 미미 할겁니다. 아마도요. ㅠㅠ)

미국 앱스토어 Financial 카테고리에서 순위권 밖에 있다가 한꺼번에 62계단 뛰어 올라 현재 해당 카테고리에서 38위를 차지하고 있네요. 순위야 뭐 조만간 떨어지겟으나, 일등만 기억하는 더러운 세상(?) 에서 이렇게라도 일등 먹으니 기분은 좋네요. ㅋㅋ

아래는 증명 스샷 입니다.  
스샷은 Hottest App 라고 전세계 앱스토어 국가별 유/무료 어플들의 최근 24시간동안 카테고리별 순위변동 사항을 보여주는 어플입니다.


2009년 12월 12일 토요일

앱스토어는 전쟁중 ?! 진화중 ?!

앱스토어 다운로드 횟수가 20억건을 돌파했습니다. 아이폰, 아이팟 터치 유저로서 사용가능한 어플의 갯수가 늘어나는 것에 대해 쾌재를 부르지 않을 수 없는 상황입니다.

하지만, 얼마전 앱스토어에 어플을 등록하고 엊그제부터 판매가 시작된 개발자의 입장에서는 안타까움이 절로 나옵니다. 개발자의 입장에선 당연히 경쟁이 적으면 적을 수록 좋은 일이니 당연한 것일 테니 말이죠. ^^*

아무튼 각설하고 저는 얼마전 앱스토어에 유료 어플을 등록하고, 판매가 시작되길 두근거리면서 기다리고 있었습니다. 약 2주정도가 흐른뒤 드디어 사과장수로 부터 어플을 팔 준비가 다 되었다는 메일을 받을 수 있었습니다.

사과장수가 보낸 메일에서 제공한 링크로 따라가보니, 짜잔~! 제 어플이 보입니다. 하지만, 어플이 등록된 카테고리를 찾아보니 제 어플은 눈을 씻고 찾아봐도 발견할 수가 없습니다. 어찌된 일인지 구글링을 해보니 어플이 카테고리 내에서 보이기까진 또 몇 시간이 걸릴 수 있다는 것이었습니다.

2주를 기다렸는데 몇시간을 못 기다릴 것이냐는 마음으로 카테고리에 등록되길 침착하게 기달렸습니다. 그리고 몇시간이 지나고, 저의 어플을 해당 카테고리의 7번째 페이지에서 찾을 수 있었습니다.

오늘 등록된 어플인데 7번째 페이지라니 !!

아무리 전세계 수많은 어플 개발사들이 앱스토어에 어플을 등록한다고 하더라도, 오늘 등록된 어플이 해당 카테고리 내에서 7번째 페이지에 등재 되었다는 것은 충격이 아닐 수 없었습니다.
어찌되었건, 왜 7페이지에 저의 어플이 등록될 수 밖에 없었는지를 침착하게 살펴보기 시작했습니다. 이성을 가지고 잠깐 들여다 본 결과 아래와 같은 결론을 얻을 수 있었습니다.

첫번째는 얼마전까지만해도 개발사에서 등록한 어플을 업데이트(버전 업) 하게 되면 다시 해당 카테고리의 첫번째 페이지에 등록이 되었었는데, 사과장수가 잦은 업데이트 때문에 야근이 많아졌는지 이제 더이상 어플을 업데이트를 하더라도 해당 카테고리의 첫번째 페이지에 등록되는 정책을 변경했기 때문인 것 같았습니다. 덕분에 아래 그림과 같이 동일한 어플에 컨텐츠를 바꿔서 폭탄 처럼 등록하는 개발사가 생겨나기 시작했습니다.







두번째는, 그럼 동일한 날짜에 등록된 어플인데도 불구하고 정렬 순서는 어떻게 정해지느냐는 건데, 상식적이라면 어플이 등록된 순서가 아닐까 했던 저의 소박한 생각도 빗나가고 말았지요. (어떻게 보면 이게 더 상식적일 수는 있으나) 정렬순서가 어플이 알파벳 순서였던 겁니다. 이를 알고 있었다면, 저의 어플도 "My Own Lucky Numbers" 가 아니라 "a My Own Lucky Number" 가 되었겠지요. ^^
아뭏튼 이와 같은 진실을 미리 파악한 개발사들이 발빠르게 아래 그림과 같이 어플 타이틀에 너도 나도 "a" 를 붙이기 시작했습니다.


이제 조만간 대부분의 어플 타이틀이 "a" 로 시작하게 될 것 같습니다. 어플 개발사들과 사과장수의 잔머리 싸움이 시작된 것이지요. 그리고 그때쯤이면, 사과장수도 정렬 순서를 변경 할 가능성이 있겠지요.

아뭏튼 저의 안타까운 사연은 접어두고서라도, 앱스토어는 마치 이전에 업데이트가 되었을 경우 해당 카테고리의 첫페이지에 재등재 되는 규칙을 버렸던 것처럼 또다시 개발사들의 잔머리에 대응하는 뭔가의 정책을 내놓을 것으로 보입니다. 어찌되었건 앱스토어의 모든 어플들이 "a" 로 시작하는 어플로 가득차기를 원하지는 않을 테니 말이죠.

더불어서 현재 1년간 무제한으로 어플 등록이 가능한 라이센스도 조만간 수정이 되지 않을까 싶기도 합니다. 이는 사용자의 선택권이 다양화 될 수 있다는 장점과 함께 어플의 기능만 조금 바꾼 중복되는 어플이 다량 등록으로 인한 사용자의 혼란과 어플의 업데이트 횟수가 줄게되는 단점이 함께 존재하기 때문입니다.

어찌되었건, 보다 사용자에게 도움이 되는 방향으로 앱스토어가 진화되었으면 하는 바램입니다.
저의 장문의 글이 나오게 한 안타까운 사연의 주인공, 저의 어플은 여기 에서 확인해 보실 수 있습니다. ㅠㅠ


2009년 12월 9일 수요일

My Own Lucky Numbers 다운로드 개시


우리의 첫 아이폰/아이팟터치 애플리케이션인 "My Own Lucky Numbers" 가 등록 이주일만에 앱스토어에서 다운로드 가능하게 되었습니다.

애플리케이션에 대한 상세 정보는 홈페이지 를 참조해 주시고, MOLN 은 아래의 링크에서 다운로드 받으실 수 있습니다. 감사합니다.


2009년 12월 7일 월요일

Mac OS X 의 Xcode 3 에서 svn 사용하기

다음의 글은 애플의 Developer Connection 의 Using Subversion with Xcode 3 on Mac OS X Leopard 의 글을 참고하여 작성되었습니다.

서브버전 서버를 설정하기 전에, svnserve 서버를 사용할 것인지 아니면 Apache 에서 mod_dav_svn 모듈을 사용할 것인지 먼저 결정해야 합니다. 여기서는 svnserve 를 사용하여 설정하도록 하겠습니다. (Apache 의 모듈을 이용한 방식은 위의 링크에서 확인 할 수 있습니다.)

1. 서브버전 저장소 생성하기

터미날을 열고 웹서버 어디서든 접근 가능하도록 아래와 같이 /Library 디렉토리 하위에 서브버전이 사용할 저장소를 생성합니다.

 mkdir -p /Library/Subversion/Repository

다음으로 서브버전 관리용 툴을 사용해서 프로젝트 디렉토리를 저장소 내에 생성합니다. (여기서는 HelloWorld 라고 하겠습니다.)

 svnadmin create /Library/Subversion/Repository/HelloWorld

그리고 여러분의 프로젝트에서 필요한 스켈레톤 디렉토리(trunk, branches, tags)를 /tmp 디렉토리에 생성합니다.

 mkdir -p /tmp/HelloWorld/trunk
 mkdir -p /tmp/HelloWorld/branches
 mkdir -p /tmp/HelloWorld/tags

아래의 명령어를 사용해서 생성한 디렉토리를 저장소로 임포트 시킵니다.

 svn import /tmp/HelloWorld file:///Library/Subversion/Repository/HelloWorld -m "Initial import"

임포트가 완료되면 /tmp 디렉토리에 생성한 임시 디렉토리를 삭제합니다.

 rm -rf /tmp/HelloWorld

마지막으로 저장소에 사용 권한을 부여합니다.

 sudo chown -R root:admin /Library/Subversion/Repository
 sudo chmod -R ug+rwX,o= /Library/Subversion/Repository


2. svnserve 서버 실행하기

Mac OS X 레오파드 에서 svnserve 바이너리는 사전에 컴파일 된 형태로 제공되어 ssh 서버 (sshd)가 요구하는 즉시 svnserve 를 시작하게 되므로 따로 데몬 형태로 svnserve 를 실행할 필요가 없습니다. 그러므로 저장소가 정해진 장소에 있고 sshd  가 서버에서 실행중이라면, svnserve 는 항상 연결을 받을 수 있게 됩니다.

주의할 점은, sshd 를 서버에서 실행하기 위해서는 아래 그림과 같이 "시스템 환경설정" 애플리케이션에서 "공유" 아이콘을 클릭하고 서비스 중 "원격로그인" 을 사용하겠다고 선택된 상태여야 한다는 것입니다.



3. Xcode 에서 서브버전 사용하기

Xcode 를 실행하고 상단의 메뉴에서 "SCM > Configure SCM Repository ... " 를 선택합니다.  아래와 같은 설정창이 나타나는데 아래와 같이 입력 합니다. URL 을 입력하면 Scheme, Host, Path 가 자동으로 입력됩니다.
모든 설정이 올바르게 입력되었 다면, 그림과 같이 하단에 Authenticated 라고 출력됩니다.


다음으로는 프로젝트를 아래와 같이 저장소로 임포트 합니다.

  • Xcode 의 메뉴에서 "SCM > Repositories" 를 선택합니다.
  • 저장소 브라우저가 열리면, 저장소 이름(여기서는 HelloWorld)를 선택하고 "trunk" 디렉토리를 선택합니다.
  • 저장소 브라우저 툴바의 "Import" 아이콘을 클릭합니다.
  • 그리고 새로 열린 탐색 창에서 HelloWorld 프로젝트 디렉토리를 선택하고 (저의 경우는 "/Users/likejy/code/workspaceXcode/HelloWorld" 디렉토리를 선택하였습니다.) 하단의 "Import" 버튼을 클릭합니다.

이렇게 한번 저장소에 저장된 프로젝트의 사본은 더이상 디스크에 사본을 보관할 필요가 없으며, 저장소에서 해당 프로젝트를 체크아웃 해오면 디스크에 작업 디렉토리 사본이 생기게 됩니다. 따라서 SCM 에서 체크아웃 하기 전에 먼저 생성되어 있던 디렉토리를 삭제하세요. 저의 경우는 위의 "/Users/likejy/code/workspaceXcode/HelloWorld" 디렉토리를 삭제하였습니다. (중요한 프로젝트 였다면, 혹시 모르니 다른 이름으로 디렉토리명을 변경하거나 백업해 두시길 바랍니다.)

다음으로 저장소에 저장된 프로젝트를 아래와 같이 체크아웃 해 봅니다.

  • Xcode 의 메뉴에서 "SCM > Repositories"  를 선택합니다.
  • 저장소 브라우저가 열리면, "HelloWorld > trunk > HelloWorld" 를 디렉토리를 선택합니다.
  • 브라우저 툴바의 "Checkout" 아이콘을 클릭하면 CheckOut 을 해올 디렉토리를 선택하게 됩니다. 원문에 서는 서브버전을 이용해서 버전관리를 하는 프로젝트의 경우 별도의 디렉토리에 저장하라고 하지만, 저의 경우는 원래 디렉토리가 위치해 둔 디렉토리 "/Users/likejy/code/workspaceXcode 를 선택하였습니다.
  • 다시한번 하단의 "Checkout" 버튼을 클릭하고 성공적으로 완료되었다면, 아래와 같이 다시한번 창이 뜨게 됩니다. "Open HelloWorld.xcodeproj" 버튼을 클릭합니다.

열린 Xcode 화면에서 프로젝트를 선택하고 "Info" 아이콘을 클릭합니다. 아래와 같이 화면 하단에 SCM 저장소를 선택하는 부분이 "None" 으로 되어 있을 것입니다. 이것을 "HelloWorld (Subversion) - Recommended" 로 선택합니다.


그리고 아래와 같이 ctrl 을 누른채 마우스를 클릭하여 "SCM" 을 선택합니다. 이제 해당 프로젝트내의 파일을 수정하게 되면, 별도의 SCM 칼럼에 저장소의 파일과 다르게 변경되었다는 표시가 나타나게 됩니다.