RubyKr 세미나 후기 & RubyCocoa Code Snippet 2
13 09 2007안녕하세요. Jenix입니다.
이상하게 루비 포럼 세미나 후기보다 RubyCocoa 코드부터 막 올리고.. 흐흐; 정신이 없어서 후기 올리는게 뒤로 미뤄졌는데요 -ㅇ-; 음. 한마디로 말해서 정말 즐거운 세미나였습니다.
사실 저는 웹 관련 개발은 거의 해본 적이 없어서 JUnit 테스트나 RoR 관련 내용들은 용어라도 알자라는 마음으로 막 들었는데.. ^^; 마지막에 강문식님의 만득이 루비 발표는 루비를 막 더 하고 싶도록 만드는 그런 내용이었습니다.
우연찮게 김정현님의 메일을 받고 저도 RubyCocoa 관련 발표를 했었는데, 실시간 코딩은 생각대로 잘 진행되지 않고 ㅠ.ㅠ 마지막에 문제를 일으키더군요! (데모의 법칙이라고 할까나…) 사실 제가 원했던건 제가 기획한 실시간 코딩인 “10분만에 용돈기입장 만들기”에서 wow 이펙트를 끌어내길 원했는데, 그거보단 irb에서 OSX 음성합성기를 이용하여 영어문장 읽어주는 부분에서 wow 이펙트가 발생하더라구요 ^^;
문식님께서 그 날 발표한 내용들을 동영상 인코딩해서 올리신다고 하니, 루비포럼(http://forum.rubykr.org)에서 곧 보실수 있겠습니다.
덤으로 아래 코드는 irb 에서 바로 음성합성기를 이용하는 코드입니다
Coffee:~ jenix$ irb
>> require 'osx/cocoa'
=> true
>> speech = OSX::NSSpeechSynthesizer.alloc.initWithVoice(nil)
=> #
>> speech.startSpeakingString("Hello, everyone! My name is Jenix!")
=> true
>>
RubyCocoa Code Snippet 1
12 09 2007이번 RubyKr 세미나를 듣고, 자극(?)을 받아서
간단한 RubyCocoa 코드를 하나 작성해 보았습니다.
콘솔에서 아래의 코드를 실행하면,
현재 OSX 의 AddressBook에 있는 연락처에서 이름과
첫번째 전화번호를 모아서 출력해 줍니다.
아직 루비 초보라, 루비틱한 코드가 아닐 수도 있는데,
혹 루비스트분들 이거 보시면 좋은 조언 부탁드립니다
#!/usr/bin/env ruby
require 'osx/cocoa'
OSX.require_framework "AddressBook"
ab = OSX::ABAddressBook.sharedAddressBook
ab.people.to_a.each do |_person|
phone = _person.valueForProperty("Phone")
if phone != nil
phone_str = phone.labelAtIndex(0)
phone_str = phone_str.to_s
/[A-Z].*[a-z]/ =~ phone_str
phone_str = Regexp.last_match(0), ": ", phone.valueAtIndex(0)
else
phone_str = "없음"
end
print _person.valueForProperty("Last"), " "
print _person.valueForProperty("First"), " - "
print phone_str, "\n"
end











Recent Comments