"Blog"에 해당하는 글들
페이지:«1234567...43»

Sony Bravia TV의 웹 EPG 만들기 (첫번째)
Ruby+Server 버전

2013-04-27   //   alexken작성   //   기술  //  3 Comments

집에 TV는 2년전 구입한 nx720이라는 Sony사 제품이다.
스마트폰에서 제어할 수 있도록 Media Remote라는 앱을 iOS용과 Android용으로 제공하고 있다.

그런데 Android용으로 TV SideView라는 새로운 앱을 제공하기 시작했다.
Media Remote가 리모콘의 단순 대체라면, TV SideView는 음성 컨트롤, EPG를 통한 채널 선택, 저장된 미디어 재생(PVR 모델의 경우)와 같은 새로운 UX를 제공하고, 이중에서 EPG를 통한 채널선택은 TV 사용에 있어 가장 자연스런 UX인거 같다.

그런데, 국가가 [일본/미국]인 경우에는 EPG를 보여주고 해당 채널을 선택할 수 있는 반면, 국가를 [한국]으로 설정해면 EPG 기능이 비활성화 되는 것에 광분하여 자체적으로 만들게 되었다.

조사해본 결과

Sony TV의 경우 IRCC라는 웹서비스를 제공한다.
리모콘 키의 IR 신호에 해당하는 ircc 코드를 HTTP 프로토콜로 SOAP 메시지로 전달하면 리모콘 키를 누른 것과 동일하게 동작한다.
IRCC의 경우에 범용적으로 표준화된 것은 아니고, Sony가 개발한 Sony의 Bravia 브랜드를 사용하는 TV, Blue-lay, PVR 기기에서만 활용되는, 그다지 범용적인 기술 표준은 아니었다.

적당히 EPG 정보를 대충 가져와 그냥 html로 알아서 아래와 같이 변환 후 화면을 터치하면, 해당 프로그램의 채널로 TV가 튜닝하도록 하였다.

ircc command를 soap으로 전송하는 가장 손쉬운 방법은 ruby cers_remote 라이브러리를 이용하면 되고, 웹 서버측 php에서 ruby를 통해 TV로 soap 메시지를 보내게 된다.

ircc가 동작 제한 조건으로

  • ircc의 soap 메시지 header에 TV에 기 등록된 기기의 MAC주소를 보낼 것
  • ircc 전송측과 TV가 동일 네트워크에 있을 것

이 중 MAC 주소는 기존에 Media Remote를 설치해서 TV와 패어링된 스마트폰/태블릿의 MAC 주소여야 하고,송신측이 TV와 동일 네트워크에 있어야 하려면, 웹버서를 집내에서 운영해야 한다.

#!/usr/bin/env ruby

require "cers_device"
tv_ip = "XXX.XXX.XXX.XXX"
paired_device_mac = "XX-XX-XX-XX-XX-XX"

command =
"1"=>"AAAAAQAAAAEAAAAAAw==",
"2"=>"AAAAAQAAAAEAAAABAw==",
"3"=>"AAAAAQAAAAEAAAACAw==",
"4"=>"AAAAAQAAAAEAAAADAw==",
"5"=>"AAAAAQAAAAEAAAAEAw==",
"6"=>"AAAAAQAAAAEAAAAFAw==",
"7"=>"AAAAAQAAAAEAAAAGAw==",
"8"=>"AAAAAQAAAAEAAAAHAw==",
"9"=>"AAAAAQAAAAEAAAAIAw==",
"0"=>"AAAAAQAAAAEAAAAJAw==",
"."=>"AAAAAgAAAJcAAAAdAw=="
}

device = CersDevice.new(tv_ip,paired_device_mac)

if __FILE__ == $0
  ARGV[0].split(//).each{|x|
    device.send_ircc(command[x])
    sleep 1
  }
end

위 파일을 setch 라고 저장하였다면 터미널에서

$setch 11.1

로 채널전환 가능하며, 이를 서버측에서 불러주면됨

HTML5:getUserMedia를 이용한 초간단 웹캠 뷰어를 Nexus7에서

2013-03-12   //   alexken작성   //   기술  //  3 Comments

1년전에 HTML5:getUserMedia를 이용한 초간단 웹캠 뷰어란 글을 쓴적이 있다.
그런데 모처럼 들어가 보니 동작을 하지 않는다.
이유는

  navigator.webkitGetUserMedia("video", success);
  ==>   navigator.webkitGetUserMedia({video:true}, success);

webkitGetUserMedia 첫번째 인자가, 문자열 “video” 가 아니라, JSON 객체 {video:ture}로 넘기도록 좀더 표준에 가까워 졌다.
하지만, webkitGetUserMedia와 webkitURL처럼 webkit prefix는 여전히 붙여줘야 함.

아래와 같이 코드를 수정해서 다시 동작하도록 해놓음.

< !DOCTYPE html>
<html>
  <body>
    <video id="myvideo"  autoplay></video>
    <script type="text/javascript">
      var video = document.getElementById('myvideo');
     
      if(navigator.webkitGetUserMedia){
        navigator.webkitGetUserMedia({video:true}, success, fail);
      }else{ 
        navigator.getUserMedia({video:true}, success, fail);
      }
   
      function success(stream){
        if(window.webkitURL){
          video.src = window.webkitURL.createObjectURL(stream);
        }else{
          video.src = window.URL.createObjectURL(stream);
        }
      }

      function fail(err){
        console.log("The following error occured: " + err);
      }
    </script>
  </body>
</html>

더 보기 >>

블랙베리에서 올리는 포스트

2013-01-04   //   alexken작성   //   기술  //  No Comments

어제부터 가지고 놀기 시작한 다소 철지난 블랙베리 9900에서 올리는 포스팅이다.

목표는 사진 올리고 글작성 모두를 다른 기기 도움없이 여기서 끝내는 것 임.

다행히 WordPress 전용앱이 있었고, 스크린 캡쳐는 CaptureIt에서 할 수 있었다.

뽐뿌의 계기는 블랙베리를 블루투스 키보드로 활용할 수 있어서이고, 안드로이드 기기는 잘 붙고, iOS기기에는 현재까지 안붙음.

9900에서는 이게 좀 짱인게,
한번 붙으면
터치스크린은 멀티터치 지원되는 트랙패드처럼 동작하고, 바로 아래 빨콩으로 마우스처럼 동작하고, 오른쪽 볼륨 버튼은 원격 기기의 물리 버튼 처럼 동작하고, 마지막으로 말이 필요없는 블랙베리 키보드를 블투 키보드로 활용할 수 있다.
농담 아니라 RIM에서 블투 키보드 하나 출시해 주면 좋겠다.

키보드 최고이고,전체적으로 간결하고 깔끔해서 좋긴한데 오래 쓸거 같지는 않음.
필요한 앱도 앱월드에선 찾아지지 않고, 오래된 버전의 OTA를 찾아서 설치해야하고, 지원은 끊긴지 오래고, 시들어 가는 생태계에서 굳이 불편함을 감래하고 싶지는 않다.
블랙베리

블랙베리

하계휴가 – 경주 여행

2012-08-17   //   alexken작성   //   인생  //  No Comments

경주는 90년 고1때 수학여행이후 처음.
카메라 둘의 배터리가 앵꼬가 나서(아니, 충전을 하지 않아서가 정확한 표현), 어쩔 수 없이 아이폰으로 3D PVR 놀이만 했음.

7월31일 작성해 놓은거 이제서야 공개
佛國寺-四天王像

길어서 가림
더 보기 >>

오늘의 라이딩 후 사진

2012-07-25   //   alexken작성   //   인생  //  2 Comments

오랜만에 남기는 오늘의 라이딩후 사진.

요즘도 퇴근후 라이딩은 계속하고 있다.
어제 라이딩할때, 날씨가 상당히 청명하여 시계(視界)가 좋아 카메라를 안들고 온걸 후회했었다.
하지만 오늘은 달무리도 있고, 어제와는 다른 날씨였지만, 그냥 찍어옴.

iPad의 iBooks에 사전 추가하기

2012-07-24   //   alexken작성   //   기술  //  3 Comments

지난글 “MacOSX용 대한민국 우편번호 사전 만들기“에서 재미삼아 만들어본 사전을 iPad의 iBooks에서 띄우고 싶어서, 순정주의자인 내가 이것 땜에 iPad를 탈옥했다.

MacOSX처럼 /Library/Dictionaries에 복사만 하면 될 줄 알았는데, 복사해도 아무런 반응이 없음.

그래서 포기하고 있었는데, iBooks Dictionaries In Other Languages?에서 방법을 찾음.

MacOSX와 다르게 iOS에서는 앱별로 사전을 등록해 줘야함.

iBooks.app에 있는 BKDictionaryManager_LanguageToOrder.plist 파일에 위와 같이
사전마다 고유한 Bundle identifer값을 등록해주면, iBooks에서 사용자 사전이 활성화 됨.
일본어의 경우 고퀄의 사전이 기본 3개나 탑재되어 있음. 부러븐 것들.
한국어 사전도 넣어달란 얘긴 안할테니, 애플은 사용자가 사전을 JB없이도 추가할 수 있는 방법을 제공하라~~(방법 존재)

iPad에서 내가만든 사전을 띄운건 자랑
이것 땜에 jailbreak한건 안 자랑

지금은 독서중…

2012-07-21   //   alexken작성   //   인생  //  2 Comments


찰스 형 책은 1995년 “바이러스 분석과 백신 제작” 이후에 첨.
단국대 의예과 학과장 관두고 안랩을 설립하기 전 딱 그 즈음.

그러고 보니 표준문서, 레퍼런스, 메뉴얼과 같은 기술서적이 아닌 책을 읽는게 도대체 몇년 만이냐.
책 좀 읽어야 겠다. 기술서적이 아닌 놈으로다가.

– Posted using BlogPress from my iPhone

MacOSX용 대한민국 우편번호 사전 만들기

2012-07-17   //   alexken작성   //   기술  //  2 Comments

binWord/blog Leopardの「辞書」アプリで郵便番号辞書を使う란 MacOS용 시스템 사전을 응용한 일본 우편번호 사전 만들기 포스트를 보고 한국어 버전으로 만들어 보았음.

우정사업본부에서도 우편번호 데이터를 얻을 수 있지만,
인터넷에서 아래와 같이 정리된 데이터를 이용하였음.(2012년5월, 51,989항목)

135-806 서울  강남구 개포1동    경남아파트                      1
135-807 서울  강남구 개포1동    우성3차아파트    (1∼6동)         2
135-806 서울  강남구 개포1동    우성9차아파트    (901∼902동)     3
135-770 서울  강남구 개포1동    주공아파트       (1∼16동)        4

아래와 같이 작성한 ruby 코드로 데이터를 사전용 xml 포맷으로 변환하고, XCode에 있는 사전 도구를 이용해서 make 한방 때리면 사전이 튀어 나옴.

#!/usr/bin/env ruby

puts < <XML_HEAD
<?xml version="1.0" encoding="UTF-8"?>
<d:dictionary xmlns="http://www.w3.org/1999/xhtml"
              xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng">
XML_HEAD

class File
  def File.open_and_process(*args)
    f = File.open(*args)
    yield f
    f.close
  end
end

File.open_and_process(ARGV[0],'r') do |file|
  while line = file.gets
    line.gsub(/\s+/,' ').scan(/^(\S+)\s+(.*)\s+(\d+)\s+$/).each{|zip,index,id|
      puts "<d:entry d:title='#{index}' id='#{id}' from=''>"
      index.split(' ').each{ |x|
        puts "\t<d:index d:value='#{x}'></d:index>"
      }
      puts "<section><b>#{zip}</b> #{index}</section>"
      puts "</d:entry>"
    }
  end
end

puts < <XML_TAIL
</d:dictionary>
XML_TAIL
</d:dictionary>

원래 txt 데이터는 3MB
MacOSX 사전용 xml로 변환하면 5MB
사전으로 컴파일하면 28MB
Zip으로 압축해서 5.7MB

7월19일 추가사항

배포를 하려해도 호스팅비용이 부담되어 어찌할까 하다가,
요번 참에 github 가입하고, 소스채 올림.

소스: https://github.com/alexken/korzipcode
컴파일된 사전: https://github.com/alexken/korzipcode/downloads

설치방법?
zip 파일을 다운받아 압축을 풀면 ‘한국 우편번호.dictionary’가 나오고 이것을 ~/Library/Dictionaries에 복사하면 끝.
(~/Library/Dictionaries을 파인더로 가기 힘들다면 Terminal.app에서 cd ~/Library/Dictionaries 하고 open . 으로 열 수 있음.)

Olympus OM-D 천체용 카메라로는 실패!

2012-06-25   //   alexken작성   //   천문  //  3 Comments

5D + 24-70 조합을 잘 쓰다가, 무겁고, 5D는 동영상 기능도 없어서, 다른 한손에는 Sony 캠코더까지 들고다니다가 내가 무슨 예술을 한다고 이 고생이지 하고, 당시 아버지 드릴려고 사서 잠깐 쓰던 Olympus PEN E-P1의 컴팩트함에 반해, 모두 처분하고, 당시 국내 발매도 안된 Panasonic GF1으로 바꿨고, 지금까지 아주 만족하며 잘 쓰고 있었다. 그러다가, 최근 GX1으로 업글하려고, 모든 마음의 준비를 했을 무렵, 이준화교수님의 OM-D 5축 손떨방 뽐뿌에 OM-D를 구매하였다. 카메라 본연의 기능은 아주 대만족이다. 빠른 AF, 연사속도, 방진방적, 고감도 ISO에서의 낮은 노이즈, 특히 5축 손떨방은 아주 압권이다. 반셔터만 누르면(디폴트는 꺼져있고, 옵션을 켜줘야 가능), EVF 혹은 액정의 화면이 갑자기 정지화상으로 변신한다. 완전 스테디 캠이 된다. 편의성은 나에게는 Panasonic이 훨씬 좋은데, 이번 OM-D는 조금씩 불편하지만 쓸만은 하다. 예전 PEN E-P1은 쓸수가 없었던 가장 큰 원인이 수동 초점 모드시 확대 지원부분이다. Olympus PEN E-P1도 확대 지원한다. 하지만, 포커스링을 돌렸을 때 활성화 된다. 즉, 전용렌즈가 아닌, MF렌즈나 망원경에 물리면, 이 기능을 이용할 수가 없다는 얘기이다. 이에 반해 Panasonic GF1은 초점 지원을 위한 확대기능 전용 버튼이 할당되어 있다. 이번 OM-D도 초기 상태에서는 이전 PEN E-P1과 똑같이 동작하지만, Fn 버튼에 초점 확대 기능을 할당해 넣을 수 있어서 무엇보다 기뻤다. 그래도 조금 불편하고 아쉬운 것은, 반셔터만 누르면 도로 되돌아 가 버린다. (수동 초점시 부분 확대하고 IS를 이용하려면, 먼저 반셔터를 누른 상태에서 손을 때지 않고, Fn1을 눌러야 한다. 그리고도 계속 반셔터 유지해야 한다.) 얘기가 길어졌음. 이번 OM-D 사기전에 5축 손떨방이 천체사진에 어떤 역할을 할까 하고 혼자서 많은 공상을 했드랬다.
* 지구 자전에 의해 별이 이동하는 것을 손떨방이 쫒아가줌(이건 2축, X-Y Shift만으로도 가능)
* 부실한 마운트 위에서 바람에 의해 상이 떨리는 것을 잡아줌
* 경위대식 마운트(혹은 돕소니언)으로 추적하는 경우 장노출시 화면이 회전하는데, 이를 바로 잡아줄 로테이터로 동작.
* 극축이 나간 광학계의 극축 보정.
* 시상이 나쁜날 AO로 동작(이는 5축 손떨방이라 상상해봄 – 이것까지 된다면 정말 지릴 것 같음) 이번 주말에 시험결과 모두 실패. AO로 동작하기는 커녕 1번 추적도 안됨. 당연히 별사진을 찍을거라고는 올림푸스 개발자들이 상상도 안했을 것이고, 별사진이 아닌 충분한 면적을 가진 달사진에서는 동작 할 것 같음. 아님 AO 처럼 레이저가 등장해야 하는 건가? 나처럼 추적을 상상하며 OM-D를 사려는 사람이 있으면, 말리고 싶고,

그냥 좋은 카메라를 찾는다면, OM-D 좋은 카메라가 맞으니 사도 됨. 하나 확실한 것은, 부실한 삼각대에, 파워메이트로 무리하게 초점거리를 연장해서 달 사진을 찍는 시나리오라면, 액정의 부분 확대한 영상이 아주 춤을 춰서 초점 잡기가 힘들텐데, 이럴때 손떨방이 액정속 혼돈을 잠재워 줌.(단 초점거리 1000mm까지만)

페이지:«1234567...43»