2011년 7월 31일 일요일

오토메이터로 여러개의 이미지를 한번에 리사이즈 하기(Resize multiple images automatically using Automator)

Mac OS에 기본으로 들어 있지만 사람들이 잘 몰라서 안쓰는 보석같은 어플중에 하나가 바로 automator이다.


물론 쉘 스크립트만큼 강력하지는 않아도 프로그래밍을 모르는 사람들도 GUI로 손쉽게 자기가 원하는 동작들을 하도록 프로그램으로 만들어 줄 수 있는 막강한 툴이다.
특히 여러 이미지를 동일한 크기로 변환한다던가, 여러 파일의 확장자를 변경하는등의 동일한 작업을 반복적으로 해야 하는 경우 매우 유용하게 사용할 수 있다.

여기서는 폴더 안에 들어있는 여러 이미지를 전부 동일한 크기로 리사이즈 하는걸 예로 들어보겠다.


먼저 오토메이터를 실행하면 위와 같은 화면이 나온다. 여기서는 바로 실행할 수 있는 프로그램을 원하니까 Applicaiton을 선택해준다.


화면에 위와 같이 사용할 수 있는 액션들이 나타난다.


맨 왼쪽 페인에서 photos를 선택하면 바로 옆쪽 페인에 사진들에 대해 수행할 수 있는 액션 목록들만 필터링 되어 보이게 된다.


그리고 어떤 액 션을 선택하면 아래쪽에 그 액션에 대한 간단한 설명이 나타난다.


원하는 액션을 찾았으면 오른쪽 페인으로 드래그 해 주면 된다. 여기선 폴더 안에 들어있는 모든 이미지 파일들의 크기를 일괄 변경할 것이기 때문에 Get folder contents를 선택했다.


그 다음 이미지 크기 변경을 위해 Scale images 액션을 드래그하면 위와 같은 경고가 나온다. Scale images액션은 현재 이미지 파일의 크기를 바꿔 버리기 때문에 원본 파일이 없어지게 되니까 원본파일을 보존하고 싶으면 파일을 복사해야 한다. 그렇게 하길 원하느냐고 묻는 것이다.
만일 원본파일은 더 이상 필요 없으면 그냥 Don't add를 선택하면 되고 원본도 보존되길 원하면 Add를 선택해준다. 이 예제에서는 Add를 선택했다.


위에서 Add를 선택했기 때문에 Copy finder items라는 액션이 자동으로 추가되었다. 이미지 크기는 픽셀, 또는 퍼센트로 지정해 줄 수 있다. 픽셀로 지정하는 경우 가로 기준으로 크기를 지정하고 세로 크기는 그에 비례해 자동으로 맞춰진다.


원하는 액션을 다 추가했으면 File -> Save...로 저장해주면 된다.


원하는 이름을 지정해주면 그 이름의 어플리케이션이 만들어 진다.


img_resize.app라는 이름의 어플리케이션이 생겼다. 위의 화면에서 test src라는 폴더에 원본 이미지 파일들이 들어있다. tmp라는 폴더는 리사이즈 된 이미지 파일들이 들어갈 폴더로 현재 비어있다.
test src 폴더를 드래그해서 img_resize.app 아이콘 위로 드래그 해 주면 바로 어플리케이션이 실행되어 리사이즈 된 이미지들이 tmp 폴더에 저장되게 된다. 


원본 폴더에 들어있는 이미지 정보이다.



실행된 후 tmp 폴더에 생성된 이미지 정보이다. 여기서는 scale images 액션에 이미지 크기를 1024로 해 놓은 결과이다.

2011년 7월 19일 화요일

아이폰에서 시리얼 포트 사용하기 (Use iPhone Serial Port without Jailbreak)

아이폰에서 시리얼 포트를 사용하는 몇가지 방법이 있는데 그 동안의 방법은 탈옥을 해야만 하거나 탈옥을 하지 않으면 헤드폰 잭을 사용해서 상대적으로 저속으로 통신하는 방법(HiJack)밖에 없었는데 이제 탈옥을 하지 않은 아이폰/아이패드/아이팟터치에서 독커넥터를 통해 시리얼 통신이 가능해 졌다.

RedPark에서 나온 애플 인증을 받은 아이폰/아이패드/아이팟용 시리얼 케이블로 이 제품을 사용하면 탈옥하지 않은 순정 디바이스에서 직접 시리얼 포트를 사용할 수 있다.

시리얼 터미널 앱을 사용할 수도 있고 직접 자신의 앱에서 시리얼 포트를 제어할 수 있는 SDK는 RedPark 웹 사이트에서 다운받을 수 있다. SDK는 따로 MFi 프로그램에 가입할 필요는 없고 이메일 주소만 넣어주면 된다.


http://makeprojects.com/Project/Connect-an-iPhone-iPad-or-iPod-touch-to-Arduino-with-the-Redpark-Serial-Cable/1130/1

이 주소에 가보면 이 케이블을 사용해 아이폰과 아뒤노를 연결하고 SDK를 사용해 아뒤노와 통신을 하는 앱을 만드는 법이 각 단계별로 상세히 설명이 되어 있다.

2011년 7월 16일 토요일

Snow Leopard에서 ssh 활성화 시키기 (how to enable ssh on the Snow Leopard)

Snow Leopard에는 ssh가 기본으로 들어있지만 sshd는 기본적으로 비활성화 되어 있어서 외부에서 ssh로 로그인을 할 수 없다.
이 경우 먼저 sshd를 활성화시켜줘야만 한다.

1. System Preferences에서 Sharing을 선택한다.


2. Remote Login항목을 보면 체크가 되어 있지 않은걸 볼 수 있다.


3. 이 항목을 체크하면 오른쪽의 Remote Login: 이 On으로 바뀐다. 이제부터 sshd가 활성화 된 것이다. 


Allow access for: 를 보면 'All users'로 되어있으면 모든 계정에 대해 ssh를 사용할 수 있는 것이고 특정 유저 어카운트에 대해서만 ssh를 허용하고 싶으면 Only these users를 선택한 다음 아래쪽의 '+' 버튼을 눌러 원하는 사용자 어카운트를 목록에 추가해 주면 된다.

그리고 ssh는 기본적으로 22번 포트를 사용한다. 만일 이 포트를 다른 포트넘버로 바꾸고 싶으면 launchd.plist 파일을 수정해 주면 된다.

    <key>Sockets</key>
    <dict>
            <key>Listeners</key>
            <dict>
                    <key>SockServiceName</key>
                    <string>22022</string>
                    <key>SockFamily</key>
                    <string>IPv4</string>
                    <key>Bonjour</key>
                    <array>
                            <string>22022</string>
                            <string>sftp-ssh</string>
                    </array>
            </dict>
    </dict>
launchd.plist 파일을 위와 같이 수정해 주면 sshd는 22022번 포트를 사용하게 된다.

launchd에 대한 자세한 설명은 아래 포스트를 참조하면 된다.

Mac에서 정해진 시간에 자동으로 프로그램 실행하는 법

2011년 7월 6일 수요일

블루투스 기기를 맥의 RFID 스마트키로 사용하기 (Use bluetooth device like iPhone or Android phone as a RFID smart key for Mac)

맥에서 proximity (http://code.google.com/p/reduxcomputing-proximity/)를 사용하면 블루투스 디바이스를 맥의 스마트 키로 사용할 수가 있다.
디바이스의 블루투스 MAC ID를 기준으로 동작하기 때문에 블루투스 디바이스는 아이폰이나 안드로이드 스마트폰 또는 일반 피쳐폰도 상관 없다.

 

다운 받아 설치한 다음 실행시키면 화면 위에 아이콘이 나타난다.
현재 등록된 블루투스 디바이스가 통신가능 범위 내에 들어와 있기 때문에 아이콘 아래쪽에 조그마한 글씨로 'IN'이라고 써 있다. 처음 실행해서 아직 블루투스 디바이스를 등록하지 않았거나 등록된 디바이스가 통신가능 범위 외에 있으면 'OUT'이라고 나오게 된다.



설정을 위해 아이콘을 클릭하면 메뉴가 나오고 그 메뉴에서 'Preferences'를 선택하면 된다.


설정 화면은 간단하고 각각에 대해 위에 설명을 달아 놓았다.

여기서 핵심은 자신이 원하는 동작을 애플스크립트로 만들어 주는 것이다.
예를 들어 사용자가 컴퓨터에 가까이 오면 스크린 세이버를 풀어준다던가 원하는 음악을 플레이 하게 해 줄수도 있다. 반대로 컴퓨터에서 멀어지면 자동으로 화면이 락이 걸리게 하는 식의 동작을 할 수 있다.

예를 들어 in range script와 out range script에 각각 아래의 이름으로 파일을 저장한 다음 Preferences 화면에서 해당 스크립트 파일을 지정해주면 멀어지면 스크린 세이버가 켜지고 가까이 오면 자동으로 스크린 세이버가 꺼지게 된다.

InScript.scpt


-- Disable the screen Saver Password
     do shell script "defaults -currentHost write com.apple.screensaver askForPassword -int 0"
     do shell script "notif"
     -- Turn OFF the screen saver
     tell application "ScreenSaverEngine" to quit
     tell application "Address Book"
          if not unsaved then
               try
                    quit
                    delay 1
               end try
          end if
     end tell

OutScript.scpt

-- Turn on the screen saver password
     do shell script "defaults -currentHost write com.apple.screensaver askForPassword -int 1"
     do shell script "notif"
     -- Activate the screen saver
     tell application "ScreenSaverEngine" to activate
 
다른 예제로 LockScreen 2를 사용하는 경우에는 다음 스크립트를 사용하면 된다.


In.scpt

tell application "System Events" 
          keystroke "l" using {command down}
end tell 

Out.scpt


tell application "System Events" 
          keystroke "asdfghjkl"  
end tell 
 
만일 시스템 이벤트가 아니고 특정 어플리케이션을 실행한 다음 그 어플리케이션에 키 이벤트를 보내고 싶으면 아래와 같이 하면 된다.


tell application "TextEdit"
activate
tell application "System Events" 
               keystroke "f" using {command down}
end tell 
end tell 
 

LockScreen 2를 사용하는 스크립트의 사용 예제이다.


 먼저 아이패드의 블루투스를 켜고 등록을 시켜 주었다. 맥에서 아이패드가 등록되어 현재 통신가능 범위 내에 있는걸 확인할 수 있다.


통신가능 범위 바깥으로 나간걸 시뮬레이션 하기 위해 아이패드의 블루투스를 꺼 주었다. 그러면 몇초 후 스크립트가 실행되어 LockScreen 2가 실행된 화면을 볼 수 있다.


여기서 다시 통신가능 거리로 들어온걸 시뮬레이션 하기 위해 아이패드의 블루투스를 켜 주었다. 역시 몇초 후 proximity가 등록된 블루투스 디바이스가 통신가능 거리로 들어온 걸 인식하면 바로 스크립트를 실행해 주기 때문에 LockScreen 2가 풀려 데스크탑 화면으로 돌아온다.



애플스크립트에 관해서는 인터넷을 찾아보면 공개되어 있는 자료들을 쉽게 찾을 수 있다.

http://www.computer-books.us/applescript_1.php