2012년 7월 29일 일요일

오토메이터와 캘린더를 이용해 아이튠즈로 모닝콜을 울리자

아이튠즈에 저장되어있는 내가 좋아하는 음악으로 기분좋게 하루를 시작하고싶다거나

시끄러운 음악이 아니면 아침에 일어날 수 없다거나

여러가지 이유로 맥을 모닝콜 용도로 사용하고픈 일이 있다

아이튠즈에 예약재생 기능이 있거나

캘린더의 스케쥴 이벤트에 아이튠즈 재생기능이 있었다면 딱 좋을텐데...없다

하지만 오토메이터를 이용해 만든 결과물을 캘린더에의 스케쥴 이벤트에 걸어줄수는 있다!

그렇다면 오토메이터로 아이튠즈의 음악을 재생해주는것만 만들면 되겠지

아이튠즈 화면...

재생목록을 하나 만들어주고 적당히 이름을 붙인다
재생목록에 음악을 추가하는건 취향껏

오토메이터...응용프로그램으로 만들어보자
캘린더 알람으로 만들어도 되지만 재사용이 불편하다

중요한 작업은 2개다
아이튠즈 항목 찾기와 아이튠즈 재생 시작...
항목찾기의 찾는 대상을 재생목록으로 바꿔주고
아까 아이튠즈에서 만든 재생목록을 찾을 수 있도록 검색조건을 설정해주자
위 스샷중 두번째 작업은 첫번째 작업에서 검색된 항목들이 여러개일 경우에만 사용되는 옵션이므로 지금 설정환 환경 내에서라면 필요 없는 작업이지만 그냥 넣었다
오토메이터에서 직접 노래 혹은 앨범을 검색해도 되지만...
나중에 모닝콜로 재생할 노래들을 바꿀때마다 오토메이터로 수정하고싶지 않다면 재생목록이 편할것이다


여기에 보너스로 아이튠즈와 시스템볼륨을 설정해두면
자기전에 볼륨설정을 잘못해서 듣고 깨어나기 힘들정도로 작은 모닝콜이 울리는것을 방지할 수 있다
만약 스피커가 시스템의 볼륨조절을 이용해 볼륨조절을 하는 스피커라면 스피커 볼륨이 낮아서 안들리는 경우도 없을것이고..
나는 B&W 의 MM-1 스피커를 사용중인데 이점이 특히 편리하게 작용한다.
이런 스피커가 아니라면 오토메이터에서 사운드 출력 대상을 맥의 기본 스피커로 바꾸는 작업을 추가하는것도 괜찮을것 같다

오토메이터 설정은 이것으로 끝이다. 저장하자

이제 캘린더에서 오토메이터로 만든 응용프로그램을 실행시켜줄 차례

편의상 모닝콜용 캘린더를 따로 만들어두고 쓰는데
이건 각자 취향에 따라서...


이벤트를 만들어보자


일정을 등록하고 일정이 다가왔을때의 알림...
이 알림에 오토메이터로 만든 어플리케이션을 등록하면 된다
'경고' 를 클릭하고

'파일 열기' 를 선택하고

'기타...' 를 선택한다.

아까 저장한 어플리케이션을 선택

끝~




평소 좋아하는 음악을 모닝콜로 설정해두면 그냥 듣기만 하고 안 일어나는 경우가 생기는게 단점




오토메이터로 아이폰/아이패드 환경으로 사파리 팝업하기


모바일용 웹페이지를 개발하다보면 귀찮은 점이 하나 있는데

개발용 디바이스와 테스트 디바이스가 다르다는 점이다.

웹서버에 올리고 모바일기기로 열어봐야 하는 불편함...

확인 후 수정하고 다시 서버에 올리고...

물론 모바일 페이지는 대부분 %로 크기를 잡다보니 대충 사파리의 크기를 줄여서 작업하거나

아이폰 해상도에 맞는 div  하나를 백그라운드컬러를 주고 그 위에서 코딩한다거나 하는 방법이 없는건 아니지만

오토메이터를 이용하면 더 손쉽게 확인이 가능하다

작업내용은 간단하다

아이폰 혹은 아이패드로 에이젼트를 변경한 사파리에 현재 활성화된 사파리의 웹페이지 url을 열어주는것

오토메이터 실행시 화면...서비스를 선택하자

해당 서비스의 속성을 설정하는 부분으로 약간만 바꿔주면 된다

사파리용 워크플로우를 제작하는것이므로 당연히 사파리를 선택

입력값은 필요 없다

수행할 작업은 딱 두가지만 있으면 된다.
사파리의 현재 웹페이지 가져오기와 웹사이트 팝업


사파리의 크기(해상도)를 설정하는 부분

에이전트를 변경하는 부분

여러 기기를 테스트하여야 하는 경우라면 위 옵션에 체크하자
매번 사파리의 에이전트와 크기를 설정해주고 팝업을 띄울 수 있다.

2012년 4월 10일 화요일

자바스크립트 json오브젝트를 json스트링으로 변환하기

오브젝트를 json 스트링으로 변환하는게 필요해서 검색을 좀 해봤는데...

오브젝트 내 오브젝트에 대한 처리나 array/dic 의 구분에 따른 처리가 안되어있는 소스 하나를 여러 블로그에서 서로 퍼가기로 돌려쓰는 결과만 나오더라

더 찾는것보다 직접 만드는게 더 빠를듯하여 만들어봤다.



function objectToJSONString(object) {
  if (object == null) return "";
  var isArray = (object.join!=null&&object.pop!=null&&object.push!=null&&object.reverse!=null&&object.shift!=null&&object.slice!=null&&object.splice!=null);
  var results = [];
  for (var i in object) {
    var value = object[i];
    if (typeof value == "object") {
      results.push((isArray ? "" : '"'+i.toString() + "\":") + this.objectToJSONString(value));
    }
    else if(value)
      results.push((isArray ? "" : '"'+i.toString() + "\":") + (typeof value == "string"? "\"" + value + "\"" : value));
  }
  return (isArray ? "[" : "{") + results.join(",") + (isArray ? "]" : "}");
}


사용(테스트)은


var a = {test: "asdf", test2: [11,12,13,"14","15",16], test3: {aaa:"aa",bbb:"bb"}};
var str = objectToJSONString(a);
alert(str);

이런식으로...

스트링으로 된 json문자열을 오브젝트로 바꾸는거야 뭐...

function jsonToObject(object) {

  var obj;
  try {
    obj = eval("("+json+")");
  }
  catch(err) {
    obj = {};
  }
  return obj;
}

이렇게 하면 되겠다.


이젠 JSON 이라는 오브젝트가 생겨서

JSON.stringfy 와 JSON.parse 를 사용하면 된다

2012년 2월 23일 목요일

objective-c 라이브러리로 사용할 a파일 생성

시뮬레이터와 디바이스를 각각 빌드한 후

빌드된 파일이 저장된 디렉토리로 이동하여(기본값 : ~/Library/Developer/Xcode/DerivedData)

프로젝트 디렉토리 밑의 DerivedData/GData/Build/Products 에 보면  Debug-iphoneos, debug-iphonesimulator 가 있습니다.

적당한 이름으로 변경하고 한 폴더에 복사해넣은 뒤 터미널에서 다음과 같이 입력합니다.

lipo -output [적당한 이름].a -create [아까 변경한 적당한 이름 1].a -arch i386 [아까 변경한 적당한 이름 2].a

[적당한 이름].a 파일과 debug-iphoneos 또는 debug-iphonesimulator 밑에 있던 header 를 가지고 사용하면 됩니다.

2012년 2월 21일 화요일

유저 평가와 측정치그래프의 차이로 논란이 되고있는 피셔오디오fa-006 짤막한 소감


우선 해상력은 괜찮은것 같습니다.
 
잘 잡아내고 잘 구분해서 들려주고 공간감도 괜찮아요
 
다만 중역대가 상대적으로 많이 커요
 
해상력이 좋아서 중역대에 맞춰 볼륨조절을 해도 고음,저음이 안들리는 일은 없는데 볼륨을 좀 높여서 듣는건 귀를 때리는 중음때문에 불가능합니다.
 
중음이 워낙 세고 저음,고음 해상력이 어느정도는 되서 그런지...
 
볼륨을 높이면 전체적으로 올라가는게 아니라 가운데를 잡고 들어올리니 양쪽도 조금 따라 올라오는 느낌?
 
볼륨을 높일수록 듣기 싫은소리가 나고 적당한 볼륨에서는 듣기 좋아요
 
잔향도...중역대의 소리가 심하게 울립니다.
 
꽤 넓지만 아무런 인테리어가 없는 지하실에서 소리가 울리는 느낌 이랄까요? 이것 역시 볼륨을 높였을때 이야기...
 
모 사이트의 측정치가 저역과 고음이 부족한 그래프로 나왔는데...
 
중음대가 심하게 높은 그래프라고 보면 맞는것 같아요
 
외형은 사진으로 봤던것만큼 고급스러운 느낌까지는 아니구요
 
싸구려같지는 않다 라는 정도에서 벗어나진 않는것 같습니다.
 
기본 케이블 길이가 말도못하게 길어서 그냥 사용하기는 좀 힘들겠습니다.
 
다행인건 케이블을 교체할 수가 있다는것인데...
 
헤드폰에 연결되는 단자가 상당히 깊숙히 들어가있어 케이블이 두꺼우면 사용이 불가능해요
 
아마 사용이 가능한 케이블보다 불가능한 케이블이 더 많을겁니다.
 
패드는 가죽보다는 천이 착용감과 소리 모두 좋아요
 
모 블로거가 얘기하는것처럼 엄청난 가격대 성능비를 지닌 제품까지는 아니더라도
 
가격대에 걸맞는... 그 가격대 라인 에서는 장점들이 좀 돋보이는 그런 모델인것 같습니다.
 
아, 그리고 아이폰 직결로 볼륨확보 충분하다못해 넘치도록 잘 되구요 밖으로 소리가 많이 샙니다...
 
아이폰 볼륨을 중간정도만 놔도 스피커예요 스피커 ㅎㅎ

2012년 2월 9일 목요일

2012년 2월 1일 수요일

이상한 꿈을 꾸었다

모든 꿈이 언제나 그렇듯 꿈이라는걸 인식하지 못하기에 현실과 다른.. 말 그대로 꿈같은 상황 전개에 당황해 하면서도 어떻게든 판단하고 적응을 한다.

모든 사람들이 입이 두개가 되어있다.

나 빼고...

기본적으로 한국말과 똑같은데...

'딸기' 를 이야기 하며 왼쪽입과 오른쪽 입이 서로 다른 음정으로 화음을 내며 (화음)'딸기' 한다

그래서 내가 '딸기?' 라고 물으니

아니 '딸기' 가 아니라 (화음)'딸기'

라고 한다.

같은 딸기지만 입이 두개인것을 이용해 화음을 넣은 딸기와 그냥 딸기를 다르게 구분해서 이야기 한다는건 알아챘으나

나는 입이 하나여서 도저히 (화음)'딸기' 를 이야기 할 수가 없었다.

화음을 낼 수 없는 스스로가 답답해서 화가나 미칠지경인 그 감정을 고스란히 유지하며 잠에서 깨어났다.

이게 대체 무슨 꿈인가

딸기나 사먹어야겠다