Monthly Archives: July 2010

Mac OSX 사용하면서 불편한 점들

OSX 사용하면서 제가 느끼기에 가장 불편한 점은 PgUp/PgDown의 동작이 Windows나 다른 OS와 다르다는 겁니다. PgDown을 누르면 당연히 커서가 따라갈거라 생각하는데, 안그렇습니다. 특히 프로그램 짤때 에디터(Xcode)에서 PgUp/Down으로 이동하다가 이부분 편집해야지 하고 입력을 하거나 화살표를 누르면 커서 원래 있던 곳으로 돌아갑니다. 무슨 생각으로 이렇게 만들었는지 아무리 생각해도 이해가 안되더군요. 그리고 맥북에서 PgUp/PgDown은 Function-위/아래 화살표입니다! 키보드에 표시도 안되어 있죠.

해결 방법은 ~/Library/KeyBindings 폴더를 만들어주고, DefaultKeyBinding.dict 파일을 아래 내용대로 저장하고, 재로그인 하면 해결됩니다.

{

/* http://www.hcs.harvard.edu/~jrus/site/cocoa-text.html */

/* page up/down with moving insertion point, caret */
“\UF72C” = “pageUp:”;
“\UF72D” = “pageDown:”;

“^\UF700″ = “pageUp:”; /* Control up */
“^\UF701″ = “pageDown:”; /* Control down */

/* Option/Alt + PgUp/PgDn */
“~\UF72C” = “scrollPageUp:”;
“~\UF72D” = “scrollPageDown:”;
}

다만, Finder에서도 PgUp/Down이 이런식으로 동작하는데, 해결 방법을 아직 찾지 못했습니다. 그리고 OSX 사용하다 보면 가끔 마우스를 쓰지 않으면 안될때가 있더군요. 마우스 없어도 대부분의 작업을 키보드로 할수 있는 면에서는 윈도우즈가 약간 더 좋은거 같네요 –;

또한 창 버튼 중 + (최대화) 버튼의 동작이 어플마다 미묘하게 다릅니다. 대표적으로 iTunes는 누르면 미니창으로 바뀝니다. iTunes 창크기가 화면 크기를 넘어가서 창 줄일려니 마땅한 방법이 없더군요 –. 한참 고민하다가 방법은 찾았습니다. option + 클릭하면 최대화가 되더군요. 크롬은 + 누르면 어정쩡하게 최대화됩니다. 아직 로직을 파악 못하겠네요. 위아래로만 되는거도 아니고, 전체화면 되는거도 아니고… 뭐 어플 잘못일수도 있지만… 시스템 버튼 영역이 일관성이 없는건 애플답지 않네요.

그리고 취향의 차이이겠지만, 전 Command-Tab, Command-` 의 조합으로 프로그램 이동하는거보다, 윈도우즈의 Alt-Tab이 더 편하네요.

또한가지, 외부모니터로 보다가 모니터 연결 빼고 나면, 어떻게도 창을 못찾는 상태가 되는 경우가 있습니다. 키보드 단축키가 없으니 화면 밖으로 사라진 창을 가져올 방법이 없더군요. 이련 경우가 저만 당한게 아니라 그런지 찾아보니 창 모아주기 애플스크립트가 있습니다. 외부 모니터 연결한다면 꼭 필요한 스크립트입니다.

— Example list of processes to ignore: {“xGestures”} or {“xGestures”, “OtherApp”, …}
property processesToIgnore : {}

— Get the size of the Display(s), only useful if there is one display
— otherwise it will grab the total size of both displays
tell application “Finder”
    set _b to bounds of window of desktop
    set screen_width to item 3 of _b
    set screen_height to item 4 of _b
end tell

tell application “System Events”
    set allProcesses to application processes
    set _results to “”
    repeat with i from 1 to count allProcesses
        set doIt to 1
        repeat with z from 1 to count processesToIgnore
            if process i = process (item z of processesToIgnore) then
                set doIt to 0
            end if
        end repeat
       
        if doIt = 1 then
            tell process i
                repeat with x from 1 to (count windows)
                    set winPos to position of window x
                    set _x to item 1 of winPos
                    set _y to item 2 of winPos
                   
                    if (_x < 0 or _y < 0 or _x > screen_width or _y > screen_height) then
                        set position of window x to {0, 22}
                    end if
                end repeat
            end tell
        end if
    end repeat
end tell

applescript 편집기에 내용 붙여넣고 저장하시고 사용하시면 됩니다.

저는 iphone simulator가 자주 그런 경우를 당했는데, 프로그램 재시작해도 안나옵니다. 창 옮기는거 단축키 혹시 있으면 알려주세요 TT

제가 터미널에서 많이 작업하는데, 터미널 창의 가장자리가 없어서 많이 불편합니다. 여러창을 동시 띄우면 구별이 잘 안되고, 특히 투명도 주면(디폴트) 머리가 산만해지더군요. 지금은 투명도 안주고 어느정도 적응해서 참으며 쓰고 있습니다.

물론 좋은점도 많습니다. UI 예쁘고, UNIX 기반, Spotlight, 속도, 바이러스로부터 비교적 안전. 프로그램 설치/제거 쉬움. 유닉스에 없는 상용 프로그램들.

20100511

맥북에서 GarageBand를 이용해서 만든 음악입니다. 회사에서 업무시간 피해서(?!) 만들었습니다. GarageBand 프로그램은 정말 깔끔한데, 기능면에서는 아쉬운 점이 많네요.

제목은 아직 못 정했어요. 20100511

mix1009-20100511a.2.mp3     

오랜만에…

작년말부터 계속 글을 못올렸네요.

작년 12월초에 아이폰을 구매하면서부터 컨텐츠 소비(주로 구글리더)를 출퇴근시간에 하다보니 따로 시간 내어서 블로그에 글쓰는게 더 어려워졌던거 같네요.

아이폰 쓰기 시작하면서부터 플랫폼으로써 가능성이 보여서 혼자 공부도 하고, 노트북(Lenovo X61)에 OSX도 깔아보고, 회사에 어필한 결과 올해 2월부터 맥북으로 아이폰앱을 개발하게 됐었습니다. OS도 새롭고, 개발환경도 새롭고, 언어는 더 생소해서 여러가지로 많이 배울수 있었던 시간이었네요. 다만 4월말에 개발이 완료 됐는데, 애플의 정책정리로 얼마전에서야 앱스토어에 올라오게 됐습니다.

생각보다 반응이 괜찮아서 올린지 하루만에 카테고리 1위하고, 열흘정도 됐는데 아직 카테고리 1위를 유지하고 있습니다. 전체 순위도 6위까지 올라갔다가, 현재는 상당히 밀렸네요. iOS4에 맞춰서 새로운 기능이 들어가서 나름 선전한거 같습니다.

개인적으로 만들어보고 싶은 여러가지 어플들이 있는데, 집에 오면 다 귀찮아져서… 아직 개인 앱은 올리지 못하고 있습니다.

아이폰 개발하면서 그전에 사용하던 언어와 개발환경에 대해서 다시 생각해보는 계기가 되었네요.

제가 사용하거나 했던 언어와 개발 환경 정리입니다.

  • BASIC (C-64)
  • UNIX – C, pro-c, X11, Motif, Tcl/Tk, Qt
  • Java
  • FreeBSD/Linux – C, lex/yacc
  • Python
  • Windows – Visual C++, MFC
  • Flash – Actionscript3
  • iOS – Objective-C

언어와 제가 느낀 점.

  • BASIC  – 제가 접한 첫 언어. 초딩때 게임도 만들었어요.
  • C – 가장 기본이 되는 언어.
  • Tcl/Tk – 스크립트 언어로서 UI와 UI builder(XF)까지 놀라웠죠. (95년?)
  • Python – 간결함과 표준 라이브러리가 인상적. 자료구조 쉽게 쓸수 있어서 프로그래밍 방식 변화
  • C++ – STL 좋음. 언어는 너무 복잡. 자유도 많아서 안좋음.
  • Java – 언어는 모르겠고, JVM에는 관심갑니다.
  • Actionscript3 – FlashDevelop와 사용하면 너무 편한 언어. 도움말 및 예제 굿! Javascript에 비하면 좀더 일반적인 객체지향 언어.
  • Objective-C – 강력한 개발환경과 애플의 개선을 위한 필사적인 노력.

이외 관심있는 언어:

  • OCaml
  • LISP
  • Erlang
  • JVM 위에서 돌아가는 함수형 언어들