331

(2개의 댓글, Mac OS 글에 작성됨)

Mac Geekery - Turning Off Unneeded Services

위의 글에는 사용하지 않는 서비스들을 launchctl 명령을 사용해서 끄는 방법이 설명되어 있습니다.
하지만, CPU의 부담을 조금이라도 덜어주기 위해 사용되지 않는 서비스들을 끄는 것은 그다지 큰 효과를 볼 수 없을 뿐더러, .정말로 자신에게 불필요한 서비스인지 확신하지 않는다면 Mac OS X의 안정성을 위해 그대로 놔두는 것이 좋을 겁니다. 다만, 각 서비스들이 하는 일을 설명해 놓은 내용은 좋은 참고가 될 것 같습니다.

332

(2개의 댓글, 맥 개발 글에 작성됨)

Leopard Developer Tools Overview

Leopard에 포함될 새로운 개발자 도구의 신기능을 소개해 놓은 문서입니다.

여기에는 Xcode 3.0에 새로 도입된 소스 코드 편집기의 향상된 성능과 빌드시 보여주는 에러와 경고 메시지를 나타내는 풍선말, 브래이크포인트(breakpoints) 지점에 마우스 포인터를 갖다 대면 그 지점의 여러 변수값들을 실시간으로 확인할 수 있는 기능, 더 다채로워진 Leopard의 User Interfaces에 맞게 풍성해진 Interface Builder 그리고 Objective-C 2.0에서 새로 추가된 자동 garbage collector, 더 손쉬워진 collection 집합 객체들간의 iteration 작업 등이 소개되어 있습니다.

특히, 어플리케이션의 성능 모니터링 도구로 새로 소개된 Xray는 과거 여러 모니터링 도구들을 통합해서 한 눈에 어플리케이션의 성능을 시간대별로 관찰할 수 있게 되었답니다.

http://appletree.or.kr/forum/files/screenshot_xray2.jpg
그리고, 정식 버전에 공개될 Dashcode의 visual layout environment와 다양해진 templates들은 전에 우연한 경로로 공개되었던 베타 버전에서 얼마나 개선된 모습을 보여줄지 더욱 기대가 되는군요. cool

http://appletree.or.kr/forum/files/screenshot_dashcode.jpg
내년 봄에 Leopard가 발표되면, 먼지만 쌓여가는 Cocoa programming 책을 다시 꺼내보고 싶어질지도 모르겠습니다.:rolleyes:

333

(3개의 댓글, PunBB 맛보기 글에 작성됨)

그렇다면, 혹 Apache의 error_log 파일에 무슨 단서라도 찍혀있지 않았을까요? roll

334

(3개의 댓글, PunBB 맛보기 글에 작성됨)

관리자는 첨부 파일을 올리는데 아무런 문제가 없었다면, 아마도 해당 포럼에서 일반 회원의 권한 설정이 안되어 있어서 생기는 문제같습니다.
Attachment Mod의 "List Rules"에서 각 포럼마다 일반 회원의 권한 설정(ruleset)이 올바로 되어 있는지 다시 한 번 확인해 보세요. 만약 포럼이 10개가 있다면, 일반 회원을 위한 ruleset도 10번 설정해 주어야 합니다.

335

(8개의 댓글, 어플리케이션 글에 작성됨)

직접 빌드한 Apache 2를 시스템 환경 설정의 공유 항목에서 실행시키고 끄기

이번에 소개할 요령은, 앞에서 소개된 Apache 바이너리와 같이, 손수 빌드(build)한 Apache 2의 실행 환경을 Mac OS X에 기본 설치된 Apache 1.3.x 버전과 동일하게 만들어서, 손쉽게 시스템 환경 설정의 공유 항목에서 실행시키고 끌 수 있게 하는 방법입니다. 이렇게 해 놓으면, 시스템의 재시동 후에도 특정 시동 항목이나 LaunchDaemon의 설정 없이도 Apache가 자동적으로 실행될 수 있도록 만들 수도 있답니다.

먼저 Apache2의 httpd.conf 파일을 열고 httpd의 실행 권한을 다음과 같이 바꾸어 줍니다.

User www
Group www

다음에, PidFile을 다음과 같이 Mac OS X에 기본 설치된 Apache의 것에 설정되어 있는 값과 같게 해줍니다.

<IfModule !mpm_netware_module>
    PidFile /private/var/run/httpd.pid
</IfModule>

그리고, 기본 Apache 1.3.x 버전의 /usr/sbin/apachectl 파일을 apachectl-1.3이라는 이름으로 바꾸어 따로 남겨놓고, 심볼릭 링크(symbolic link)를 사용해서 원래의 것은 Apache 2의 것으로 대체되도록 합니다.

sudo mv /usr/sbin/apachectl /usr/sbin/apachectl-1.3
ln -s <path to apache2>/bin/apachectl /usr/sbin/apachectl

여기서, <path to apache2> 대신에, 실제 Apache 2가 설치되어 있는 경로를 입력해 주어야 합니다. (주로 /usr/local/apache2)

이렇게 하면, Mac OS X에 기본 설치된 Apache 1.3.x 버전과 거의 비슷한 환경을 구현해 놓게 되면서, 시스템 환경 설정의 공유 항목에서 Apache 2를 키고 끌 수 있게 됩니다.

덤으로, Mac OS X에서는 주기적(주간) 일정으로 비대해진 Apache의 log 파일들을 정리(rotate)하게 되는데, 손수 빌드해서 설치한 Apache 2의 log 파일들을 정리하도록 만들려면 /privat/etc/periodic/weekly/500.weekly에 위치한 주간 실행 shell 스크립트 파일을 열고, httpd log 파일 정리 부분을 다음과 같이 바꾸어 줍니다.

echo ""
printf %s "Rotating httpd log files:"
cd /usr/local/apache2/logs/
for i in access_log error_log; do
    if [ -f "${i}" ]; then
    printf %s " $i"
    if [ -x /usr/bin/gzip ]; then gzext=".gz"; else gzext=""; fi
    if [ -f "${i}.3${gzext}" ]; then mv -f "${i}.3${gzext}" "${i}.4${gzext}"; fi
    if [ -f "${i}.2${gzext}" ]; then mv -f "${i}.2${gzext}" "${i}.3${gzext}"; fi
    if [ -f "${i}.1${gzext}" ]; then mv -f "${i}.1${gzext}" "${i}.2${gzext}"; fi
    if [ -f "${i}.0${gzext}" ]; then mv -f "${i}.0${gzext}" "${i}.1${gzext}"; fi
    if [ -f "${i}" ]; then mv -f "${i}" "${i}.0" && if [ -x /usr/bin/gzip ]; then gzip -9 "${i}.0"; fi; fi
    touch "${i}" && chmod 644 "${i}" && chown root:admin "${i}"
    fi
done
if [ -f /private/var/run/httpd.pid ]; then /usr/local/apache2/bin/apachectl restart; fi
echo ""

위에서, /usr/local/apache2/ 부분은 자신이 설치한 Apache 2의 경로에 맞게 고쳐주어야 합니다.

그리고, Mac OS X에 설치된 Apache는 시스템 특성상 Finder에서 생성된 .DS_Store 파일들을 그대로 전달하게 되면서 보안상의 위험을 노출할 수도 있기 때문에, Apache의 httpd.conf 파일에 있는 .htaccess 파일들을 감추어 주는 설정 부분을 다음과 같이 바꾸어 주어야 합니다.

#
# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
#
#### For Mac OS X Server: Note the method used to deny access to these
#### files so that files on case-insensitive HFS+ volumes are protected.
#### Also note that .DS_Store files created by the Finder are denied here.
#### (Consider adding .FBCIndex files)
#### (Note: Denying .DS_S* may interfere with Finder WebDAV operation)
#
<Files ~ "^\.([Hh][Tt]|[Dd][Ss]_[Ss])">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>

이렇게 하면, 안전하고 Mac OS X의 환경과도 잘 어울리는 Apache 2 서버를 얻게 된답니다. wink

336

(1개의 댓글, Mac OS 글에 작성됨)

Aaron Adams씨가 쓴 OS X가 당면하고 있는 보안 관련 위협 요소들과 이에 대응하는 여러 대처법들에 관한 보고서가 2006년 11월 13일에 새로운 정보를 추가하면서 갱신되었습니다.

pdf로 된 보고서는 이 곳에서 내려받아 보실 수 있습니다.

더불어서, SANS Institute에서도 Mac OS X 10.4 Security Checklist (pdf)를 제공하고 있는데, 이 문서에는 Mac OS X Server 관련 내용도 포함하고 있답니다.

337

(3개의 댓글, PunBB 맛보기 글에 작성됨)

이 글을 보면서 Mod를 설치하면 생길 수 있는 또 하나의 부작용을 발견하게 되는군요.

손님(guests) 계정으로 글을 올리면 중복되어서 똑같은 글이 두 번 올라가는 버그가 보이는데, 확인해 보니 이미 오래전 PunBB 1.2.5 버전일 때 발견되어서 지금은 고쳐졌습니다만, Attachment Mod를 설치한 경우에는 해당 버그의 수정 내용이 Attachment Mod 설치시 필요한 수정 내용으로 대치되면서 또 다시 벌레가 살아나는 결과를 가져오게 되는군요. 이것은 물론 Attachment Mod가 갱신된지 오래되서 생기는 문제입니다.

혹, Attachment Mod를 설치하셨다면 다음과 같이 viewtopic.php 파일에 벌레를 잡기위한 수정 내용을 다시 적용해 주어야 합니다.

viewtopic.php의 다음과 같은 코드 내용을 찾아서:

$result = $db->query('SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'users AS u ON u.id=p.poster_id INNER JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id LEFT JOIN '.$db->prefix.'online AS o ON (o.user_id=u.id AND o.idle=0) WHERE p.topic_id='.$id.' ORDER BY p.id LIMIT '.$start_from.','.$pun_user['disp_posts'], false) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error()); //Attachment Mod, changed the true to false...

다음과 같은 코드로 바꾸어 주어야 합니다:

$result = $db->query('SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'users AS u ON u.id=p.poster_id INNER JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id LEFT JOIN '.$db->prefix.'online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id='.$id.' ORDER BY p.id LIMIT '.$start_from.','.$pun_user['disp_posts'], false) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error()); //Attachment Mod, changed the true to false...

어쨌거나 빨리 PunBB 1.3 버전이 나와주었으면 좋겠군요. neutral

338

(3개의 댓글, PunBB 맛보기 글에 작성됨)

Modern BBcode는 설치를 안해봐서 제가 해드릴 수 있는 말은 처음부터 새로운 상태에서 다시 설치해 보시라는 것밖에는 없습니다. 아마도 코드 수정 과정에서 실수가 있었을 수도 있을 겁니다.

확인해 보니, Modern BBcode의 소개 글에서도 같은 질문이 올려져 있습니다만, 개발자의 답변도 없고 아직 약간의 오류도 있는 듯 보입니다.

339

(17개의 댓글, PunBB 맛보기 글에 작성됨)

PunBB에서 보내는 전자우편이 RFC 2047 MIME 표준 규격에 따라 메시지 헤더에 올바른 인코딩 값(base64)을 적용하도록 해서 제목이 깨지지 않도록 email.php 파일을 수정함. (참고한 글 - http://forum.standardmag.org/viewtopic.php?id=189)

표준에 맞게 수정한 email.php 파일 내려받기

340

(10개의 댓글, Mac OS 글에 작성됨)

터미널에서 단어들 간 이동을 위한 단축키 적용 방법

아시다시피, Mac 어플리케이션들에서는 단어들 간의 이동을 위해 ⌥←와 ⌥→ 키 조합을 사용할 수 있습니다만, 터미널에서는 기본적으로 이런 단축키를 사용할 수 없게 되어있습니다.

하지만, 약간의 설정만으로 원하는 단축키 조합을 사용할 수 있답니다.
방법은, 터미널의 창 설정(Window Settings...)에서 키보드 항목을 선택하면 아래와 같은 창이 보입니다.

http://appletree.or.kr/forum/files/terminal_key_bindings.png

여기서 option+left(⌥←)키 조합을 사용해서 이전 단어로 이동할 수 있게 하려면 아래와 같이 새로운 키 매핑 항목을 추가해 줍니다:

http://appletree.or.kr/forum/files/terminal_key_editing_1.png

여기서 \033b를 입력하려면 escape 키(\033)를 누르고 나서 b 키를 누르면 됩니다.

오른쪽 단어로의 이동을 위한 조합 키도 앞에서와 마찬가지로 \033f를 입력해서 적용해 주면 됩니다.

덤으로, control left/right키를 사용해서 문단의 처음/끝으로 이동하도록 만들려면, 각각의 shell 키로는 ⌃A(control A)⌃E(control E)키를 적용하면 됩니다. 참고로, ⌃A키를 누르면 string 값으로 \001가 입력됩니다:

http://appletree.or.kr/forum/files/terminal_key_editing_2.png

적용 후에는 반드시 "Use Settings as Defaults" 단추를 눌러서 설정한 것을 기억시켜 놓습니다.

옮긴 글: TextMate Blog - Word Movement in Terminal

341

(0개의 댓글, 맥 개발 글에 작성됨)

여러 언어의 스크립트들(Ruby, Python, Perl, shell, 기타등등)을 내장하는 Dashboard Widget의 개발을 손쉽게 해주는 TextMate용 Widget Creator bundle이 소개되었습니다.

사용법과 적용의 예는 함께 공개된 screencast를 보면 쉽게 이해할 수 있답니다. 과연 TextMate의 bundle 쓰임새는 가지가지군요. yikes

342

(5개의 댓글, Mac OS 글에 작성됨)

또 다시 최근에 새어나온 몇 장의 Leopard 화면 사진들이 올라와 있습니다. yikes
Screenshots from the latest Leopard build

Finder의 새로운 미리보기, iCal의 새 모습, Safari 3에 추가될 anti-phishing 기능, 환경 설정에 추가된 Parental Controls 항목들....

343

(5개의 댓글, Mac OS 글에 작성됨)

Apple은 미국 시각으로 13일 차기 Mac OS가 될 새로운 빌드(9A283)의 Leopard를 배포했다고 합니다.
Channel 9에 올라온 소식에 의하면 다음과 같은 새로운 기능들이 추가되었다고 하는군요.

[ul][uli]새로운 자녀 통제용(Parental Controls) 시스템 환경설정 항목은 특정 시스템과 어플리케이션들의 접근을 제한하고, 또 유해 정보의 차단 수위를 조절하고 컴퓨터 사용 시간을 제한할 수 있게 되었음.[/uli][uli]iCal은 커다란 UI의 변경이 있었음.[/uli][uli]VoiceOver 화면 글자 해독기는 화면에 보여지는 항목들의 위치를 알려주는 3차원 음성 신호를 새로 포함함.[/uli][uli]인쇄 창에서의 실시간 미리보기 기능.[/uli][uli]헤드폰이나 신호 출력 잭을 통해서 재생되는 음성은 정상적인 음량으로 재생할 수 있게 되었음.[/uli][uli]미리보기에서는 이제 기본적인 편집이 가능하게 되었음.[/uli][uli]Input Method Frameworks가 갱신됨.[/uli][uli]주소록에 있는 그룹들과 하부 그룹들은 Time Machine으로 복구할 수 있게 됨.[/uli][/ul]
Spotlight
[ul][uli]Quick Look은 PDF, HTML, Web Archives, Text, QuickTime의 영상과 소리를 지원.[/uli][uli]Time Machine의 snapshot들은 Spotlight을 통해서도 검색이 가능해짐.[/uli][/ul]
iChat
[ul][uli]Spotlight의 미리보기는 iChat Theater 모드에서 전송이 가능해짐.[/uli][uli]Replace Background 비디오 효과 추가.[/uli][/ul]
특히, 시각 장애자들을 위한 끊임없는 배려가 눈에 띄는군요. (물론 아쉽게도 영어 사용자들만을 위한 것이지만...)

344

(1개의 댓글, 사과 상자 글에 작성됨)

구글(Google)이 공식 Mac blog를 시작함과 동시에, Dashboard를 위한 Google widget들을 내놓았습니다.

지금은 모두 세 가지의 widget들이 소개되어 있군요.

http://appletree.or.kr/forum/files/google_widgets.png

과연 구글의 웹 사업 영역 화장은 멈출 줄을 모릅니다. yikes

345

(6개의 댓글, Mac OS 글에 작성됨)

캐쉬 삭제로 Dashboard의 실행 속도를 더 빠르게

Mac OS X Hints에 올라온 요령에 의하면, Dashboard가 사용하는 캐쉬를 삭제하면 너무 과대해진 캐쉬 용량으로 인해 Dashboard 실행시 약간 지체될 수도 있는 현상을 막을 수 있답니다.

방법은, 자기 계정의 디렉토리에 있는 ~/Library/Cashes/DashboardClient/ 폴더 속의 모든 파일들을 지우면 된다는군요.
댓글들에 올라온 반응들을 보면, 분명 효과가 있나봅니다.

이렇게 비대해진 캐쉬 파일들은 보통 주기적으로 자동 삭제해 주는 작업이 있을 만도 한데, 그렇지가 않은 것 같습니다. 그렇다면 사용자 캐쉬 파일들도 함께 지워주는 다른 여러 시스템 최적화 도구들의 힘을 빌려야 할 겁니다.

캐쉬가 비대해지면 오히려 부작용을 일으킨다는 또 하나의 본보기가 되겠군요. roll

10.6에선 위에 설명된 폴더가 ~/Library/Caches/com.apple.dashboard.client/로 바뀌었습니다.