Marc Liyanage씨의 Blog에 가면 Universal Binary로 컴파일되어 있는 Apache 2.2.3를 받을 수 있군요.
간단하게 /usr/local/ 디렉토리에 압축을 풀어놓기만 하면 바로 쓸 수 있습니다.
로그인하지 않으셨습니다. 로그인 또는 가입해 주세요.
사과나무 이야기 마당 » miname께서 작성한 글
Marc Liyanage씨의 Blog에 가면 Universal Binary로 컴파일되어 있는 Apache 2.2.3를 받을 수 있군요.
간단하게 /usr/local/ 디렉토리에 압축을 풀어놓기만 하면 바로 쓸 수 있습니다.
이 기술 문서에서는 몇몇 "configure" 기반의 오픈 소스 프로젝트들을 유니버설 바이너리들로 만드는 방법을 논의하고 있습니다.
소개
Xcode IDE에서는 유니버설 바이너리들을 만드는데 필요한 대부분의 복잡한 과정들을 생략하는 능률적인 제작(build) 시스템을 제공하고 있습니다. 그래서 여러 설정들과 환경 변수들 그리고 실제 제작에 필요한 명령들을 포함한 소스 파일들과의 연결은 미리 지정되어 있는 제작 설정 사항들에 함축되어 있거나, 혹은 Xcode UI를 통해 쉽게 조절할 수 있습니다.
대부분의 오픈 소스 프로젝트들은 실제 제작 시에 실행되는 설정 스크립트를 통해 CPU 유형, word order 그리고 포인터(pointer) 크기와 같은 컴퓨터 정보들과 시스템에 어떤 헤더(header) 파일들과 라이브러리들이 사용가능한지를 포함해서, 프로그램이 컴파일되고 실행될 환경을 결정하게 됩니다. 이러한 스크립트는 보통 하나 혹은 그 이상의 Makefile들과 헤더 파일들을 만들게 됩니다. 이 Makefile들에는 컴파일러와 링커(linker)의 선택 사항들을 포함하고 있으나, Xcode IDE에 있는 자동화된 제작의 이점들을 사용할 수는 없습니다. 이러한 과정으로 생성된 헤더 파일들은 보통 기능 유무 검사들에서 사용되는 상수들을 포함하고 있는데, 예를 들어, 아래는 이미 생성되어 있는 config.h 파일 안에 #define HAVE_UNISTD_H라는 상수가 설정되어 있는 예입니다:
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
이러한 방법은 전통적인 컴파일 환경에서는 잘 작동해서, 여러 오픈 소스 프로젝트들을 Mac OS X로 비교적 쉽게 포트(port)하는 것을 가능케 하였습니다. 하지만 설정 환경에 유니버설 바이너리와 같은 상황을 미리 염두에 두지 않은 상태에서는 문제가 발생할 수도 있습니다.
주의: 이 기술 문서에서는 기존 프로젝트를 인텔 기반의 Macintosh로 이주시키는데 필요할지도 모를 코드의 수정은 다루고 있지 않습니다. 어떠한 코드의 수정이 필요할지는 Universal Binary Programming Guide 문서를 참고하시기 바랍니다.
유니버설 바이너리를 다루고 빌드하는 데에는 주로 두 가지의 접근법이 있습니다. 여기서는 "Hello, World"라는 GNU Hello package로 된 프로그램을 사용해서 어떻게 설정 스크립트를 사용하는지를 알아보는 두 가지의 접근 방법들을 설명하겠습니다. GNU Hello의 소스는 Free Software Foundation을 통해서 내려받을 수 있습니다.
유니버설 바이너리들을 위한 설정
첫 번째 접근 방법으로는 적당한 CFLAGS와 LDFAGS 환경 변수들을 configure에 전달해서 간단하게 유니버설 바이너리로 만드는 법입니다. 이 방법은 간단히 터미널에서 다음과 같은 명령을 주면 됩니다:
env CFLAGS="-O -g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" \
LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" \
./configure --prefix=${HOME}/Hello --disable-dependency-tracking
여기서, configure에 --disable-dependency-tracking 설정을 해놓음으로써, 여러 -arch의 하드웨어 목표 환경들에서는 제대로 작동하지 않는 gcc 자체내의 의존적 생성 코드를 사용하지 않게 합니다.
주의: Developer Transition System에서는, 이미 시스템 라이브러리들이 유니버설로 되어 있으며, Intel과 PowerPC 구조들을 모두 지원하므로, CFLAGS 설정으로 -arch i386 -arch ppc만 지정하면 되지만 PowerPC Macintosh에서는 MacOSX10.4u SDK를 꼭 사용해야만 합니다.
configure를 실행한 후에 make로 만들면, 유니버설 바이너리로 된 결과물이 ./src/hello 디렉토리에 있게 됩니다. 여기서 파일 유형은 다음과 같은 명령으로 확인할 수가 있습니다:
file ./src/hello
그러면, 다음과 같은 결과를 얻을 것입니다:
src/hello: Mach-O fat file with 2 architectures
src/hello (for architecture i386): Mach-O executable i386
src/hello (for architecture ppc): Mach-O executable ppc
이 실행 파일은 PowerPC와 Intel 기반의 매킨토시들에서 모두 고유하게(natively) 실행될 것입니다.
다중 제작 결과물들(builds)의 합병
비록 GNU Hello 프로그램은 비슷한 목적으로 쓰여진 것들 중에 가장 복잡한 "Hello, World" 프로그램이지만, 그래도 비교적 간단한 프로그램입니다: byte order도 상관하지 않으며, word size나 pointer 크기에도 관계가 없고, 설정 과정에서 생기는 실행 파일들도 목표로 하는 컴퓨터 환경의 기준에 맞게 알아서 설정 파일들을 생성하게 됩니다. 하지만, 모든 오픈 소스 프로젝트들이 이렇게 간단하지만은 않습니다. 이럴 경우에는, 또 다른 접근 방법으로 lipo 명령을 사용하는 방법이 있습니다.
만약 위에서 설명한 과정을 통해서 GNU Hello 프로그램을 설정하고 빌드하는 것이 불가능 했다면, 적어도 프로그램을 여러 번 설정하고 빌드해서 유니버설 바이너리로 만들 수 있습니다.
Intel과 PowerPC 기반 맥에서 모두 다음과 같이 설정해서 프로그램을 빌드합니다:
./configure --prefix=${HOME}/Hello
make
이렇게 해서 얻어진 src/hello 프로그램들을 하나의 특정 컴퓨터로 복사합니다: 예를 들어, PowerPC 기반 맥에 있는 /tmp 디렉토리에 각기 hello-intel과 hello-ppc 이름으로 복사합니다. 그리고 나서, lipo 명령으로 두 개 모두를 하나로 합칩니다:
lipo -create hello-intel hello-ppc -output hello
전처럼, file 명령으로 파일 속 구성 내용을 확인할 수 있습니다:
file hello
그러면 다음과 같은 결과를 얻습니다
hello: Mach-O fat file with 2 architectures
hello (for architecture i386): Mach-O executable i386
hello (for architecture ppc): Mach-O executable ppc
더 복잡한 프로젝트들의 경우에는, 각각에 맞는 설정으로 설치하고 나서, Mach-O 파일들(라이브러리들과 실행 파일들)의 목록을 생성하고, 각각의 파일들에 lipo 명령을 실행해야 합니다.
주의해야 할 사항들
이 경우에도, 몇 가지 알아두어야 할 사항들이 있습니다:
첫 째로, 모든 구성 파일들은 똑같이 설정되어 있어야 합니다. 만약 어느 한 구성 파일의 설정에는 실행 파일이 /usr/local/etc에 위치하도록 되어있으나, 또 다른 하드웨어 기반의 구성에서는 /etc로 설정되어 있다면, 실행 방식은 서로 다를 겁니다.
두 번째는, 간혹 위와 같은 상황을 피할 수 없을 때가 있습니다. 예를 들자면, 설정 작업에서 실행 디렉토리들에 있는 프로세서의 유형(예, "ppc" 혹은 "i386" 혹은 "i686")을 사용할 경우입니다. 이러한 프로젝트의 바이너리 배포를 위한 빌드 시, 일일이 설치 과정에서 생긴 트리(trees) 구조들을 살펴서 모든 변형들이 최종 배포판에 있는지 확인하거나, 혹은 심볼릭 링크들(symbolic links)을 사용해서 이러한 환경을 연출할 수 있습니다. (예, /usr/local/myproj/etc/i386/input.conf와 /usr/local/myproj/etc/ppc/input.conf가 모두 존재하거나, 혹은 /usr/local/myproj/etc/i386에서 /usr/local/myproj/etc/ppc를 가리키도록 심볼릭 링크를 사용할 수도 있을 것입니다.)
옮긴 글 - Apple Technical Note TN2137: Building Universal Binaries from "configure"-based Open Source Projects
2007년 1월 8~12일, 미국 San Francisco에서 열리는 Macworld Expo 2007에서는 스티브 잡스씨가 기조 연설을 할 것이라는 발표가 있었습니다.
이미, 알려졌다시피 2007년 1분기에 Apple은 차기 Mac OS X 버전인 Leopard를 발표할 것으로 알려졌으며, iLife와 iWork의 갱신, "iTV" 발표 그리고 Apple 상표를 부착한 휴대전화 등 새로운 제품들의 발표장이 될 것으로 기대되고 있습니다.
스티브 잡스씨의 기조 연설은 미국 시간으로 1월 9일 아침 9시에 있을 예정입니다. 97일 남았군요.
몇 가지 보안 관련 취약점들을 고치면서 PunBB가 1.2.13으로 갱신되었습니다.
전처럼, PunBB 내려받기 페이지에서 최신 버전을 내려받으실 수 있으며, 같은 페이지에서 고친 내역이 담긴 Hdiff도 확인하실 수 있습니다.
Microformats Bookmarklet - 선택하면 현 페이지에 있는 모든 hCards와 hCalendars를 포함하는 창이 나탸나고, 여기서 특정 항목을 선택하면.vcf 혹은 .ics 파일로 저장할 수 있게 됨.
del.icio.us에 현재 보이는 페이지를 책갈피 해두기 (코드에 있는 계정이름은 자기의 것으로 대신 넣어주어야 합니다) :
javascript:location.href='http://del.icio.us/계정이름?v=3&url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)
.Mac에 webmail 기능이 추가될 예정이라는군요.
꼭 Apple의 Mail 어플리케이션을 웹] 브라우져에 그대로 옮겨놓은 모습입니다. .Mac 구독자들에게는 반가운 또 하나의 유용한 기능이 추가되는 샘이지만, 새로운 .Mac 구독자들을 끌어들이기에는 비교적 비싼 가격에 비해 아직은 조금 모자른 듯 합니다.
어떤 특이한 상황에서는 유효한 볼륨도 마운트되지 못하는 상황이 발생할 수도 있습니다. 이럴 경우, Disk Utility로도 해당 볼륨을 고칠 수가 없게 되는데, 자료 복구를 위해서는 일기 전용으로라도 마운트시켜야 하는데, 아래는 이러한 특정 볼륨을 읽기 전용으로 마운트시키는 방법입니다.
1. 터미널(/Applications/Utilities/Terminal)을 열고 다음과 같은 명령을 실행합니다:
diskutil list
2. 여기서 보여지는 내용들 중에서 마운트되지 않은 볼륨의 이름을 찾습니다, 예를 들어:
/dev/disk0
#: type name size identifier
0: Apple_partition_scheme *152.7 GB disk0
1: Apple_partition_map 31.5 KB disk0s1
2: Apple_HFS Drive160 152.5 GB disk0s3
/dev/disk1
#: type name size identifier
0: Apple_partition_scheme *76.7 GB disk1
1: Apple_partition_map 31.5 KB disk1s1
2: Apple_Boot 128.0 MB disk1s2
3: Apple_HFSX Drive80 76.6 GB disk1s3
위에 보여지는 본보기에서, 우리는 "Drive80" 이름의 볼륨을 예로 들겠습니다. Drive80는 disk1의 세 번째 조각(slice)에 위치하므로, 장치(device)의 전체 이름은 /dev/disk1s3가 됩니다.
3. 터미널에서 해당 드라이브의 이름을 가지고 /Volumes 밑에 다음과 같은 디렉토리를 만듭니다:
mkdir /Volumes/Drive80
여기서 "Drive80" 대신에 읽기 전용으로 마운트시키고자 하는 볼륨의 이름을 대신 입력하십시오.
4. 터미널에서 해당 장치를 다음과 같은 명령을 사용해서 읽기 전용으로 마운트시킵니다:
sudo mount -t hfs -o rdonly /dev/disk1s3 /Volumes/Drive80
여기서도 "Drive80" 대신에 읽기 전용으로 마운트시키고자 하는 볼륨의 이름을 대신 입력하십시오.
5. 만약 볼륨이 Fider에서 보이지 않는다면, 터미널에서 다음과 같은 명령을 실행하십시오:
disktool -r
만약 이러한 과정들이 성공적으로 수행되었다면, 해당 볼륨에서 자료들을 백업실 수 있을겁니다. 모든 자료들이 복구된 후에는, 해당 드라이브는 다시 모두 지워서 사용해야 합니다.
Apple 문서: Mac OS X, Mac OS X Server: How to mount a volume as read-only
Digital Web Magazine - Objectifying JavaScript : JavaScript 코드를 더 객체지향적인 코드로 바꾸는 대표적 방법들을 소개하고 있습니다. 주로, object literal을 사용하는 법과, function의 new 키워드를 쓰는 방법이 다루어져 있습니다.
댓글들도 눈여겨 볼 내용이 많군요.
JavaScript를 객체화하는 이유로는, 커다란 규모의 작업을 수행할 때 코드의 관리와 재사용이 간편해지기 때문일 것입니다.
불행히도 Dashboard는 처음 실행할 때 약간의 지체현상을 보입니다. 그래서, 시스템을 켤 때마다 미리 Dashboard를 실행해 놓고 작업할 때가 많은데, 이 작업을 자동적으로 해주는 도구들이 이미 여러개 나와있습니다만, 가장 간편하고 가벼운 도구로 DashboardStarter를 추천합니다.
사용은 시스템 환경설정의 계정 항목에서 시동 항목으로 등록해 두기만 하면 됩니다. 그러면, 시동할 때마다 Dashboard만 실행시켜 놓고 다시 감추어 줍니다. 너무나도 간단한 기능이지만 가려운 데를 긁어주는 기능이라 다음 Mac OS X에는 기본적으로 이 기능이 추가되었으면 좋겠군요.
Safari를 위한 유용한 도구들을 소개해 놓은 PimpMySafari에도 이 곳에 소개된 것들을 포함해서 추가로 여러 유용한 bookmarklet들이 소개되어 있군요.
Apple은 수년 전부터 휴대전화 영역에도 뛰어들 것이라는 예견들이 전해져 왔었으며, 이를 말해주듯 이미 1999년부터 iPhone.org라는 이름의 도메인을 Apple의 홈 페이지에 연결해 놓고 있으며, 2002년 경에는 iPhone이라는 상표를 등록하였습니다.
최근에 와서는 Apple phone은 이미 거의 제품 완성 단계에 와 있으며, 겉모양의 생김새도 iPod nano와 비슷한 형태가 될 것이며 iTunes와도 밀접하게 연동되리라는 소문이 있었습니다.
그런데, 바로 어제 iTunes 7이 발표되면서 이러한 소문들은 거의 사실로 굳어지는 모습입니다.
이미 어느 한 Mac 사용자의 블로그에 올려진 글에 의하면, iTunes 7의 리소스 파일들을 살펴보면, iPod 형태의 휴대 전화가 존재한다는 사실을 증명해주는 몇 가지의 증거들을 발견할 수 있었다고 합니다.
직접 확인해 본 바에 의하면, iTunes 7의 strings 리소스 파일에는 다음과 같은 "휴대 전화"라는 말을 포함하는 메시지들이 있습니다:
/* ===== Mobile Phone Strings ===== */
"4301.002" = "iTunes 보관함에 있는 모든 항목을 저장할 충분한 여유 공간이 없기 때문에 “^1” 휴대 전화를 업데이트할 수 없습니다.";
"4301.034" = "음악을 동기화하겠습니까? “^1” 휴대 전화에 있는 모든 기존의 컨텐츠가 제거되고 iTunes 보관함에 있는 노래와 재생목록으로 대치됩니다.";
"4301.053" = "“^1” 휴대 전화에는 새로운 음성 메모가 포함되어 있습니다. 음성 메모를 iTunes 보관함으로 이동하겠습니까?";
"4301.110" = "“^1”에 연락처 및 캘린더 업데이트 중...";
"4301.123" = "TV 프로그램과 동기화하겠습니까? “^1” 휴대 전화에 있는 모든 기존의 TV 프로그램이 iTunes 보관함에 있는 TV 프로그램으로 대치될 것입니다.";
"4301.141" = "iTunes 보관함에 있는 일부 게임들은 이 컴퓨터에서 재생하도록 인증되지 않았기 때문에 “^1” 휴대 전화로 복사되지 않았습니다.";
...
이런 것들로 미루어 보면, iPod 형태의 휴대 전화는 게임, 영화, 사진, 음악 등의 모든 iTunes 기능들을 지원한다는 것을 짐작할 수 있습니다.
더욱이 흥미로운 사실은 Whois.net에 조사해 본 바에 의하면, Apple은 또 iTunesPhone.com이라는 이름의 도메인을 등록하였다고 나옵니다.
그렇다면, 여러 많은 가능성들 중에서 iTunes Phone이 차기 Apple에서 발표할 휴대 전화의 이름이 될 수도 있겠군요. (개인적으로는, 이미 널리 알려진 iPhone이 더 마음에 듭니다만...)
하여튼, 이렇게 되면 아예 iPod까지도 대체하는 차세대의 만능 개인 휴대 장치가 되는 것이 아닌지 모르겠습니다. :eek:
PunBB에서 기본적으로 제공되는 그림말들(smilies) 이외의 것들을 추가하시려면, 15x15 pixels 크기의 새로운 그림말 파일들을 PunBB 디렉토리 바로 밑에 있는 img/smilies 디렉토리에 넣어주고, include/parser.php 파일을 열어서 추가된 그림말들에 대한 수정을 해주어야 합니다.
아래는 이 곳에서 추가 적용한 parser.php 파일에 있는 그림말 추가 관련 코드입니다:
// Here you can add additional smilies if you like (please note that you must escape singlequote and backslash)
$smiley_text = array(':)', '=)', ':|', '=|', ':(', '=(', ':D', ':o', ':O', ';)', ':/', ':P', ':lol:', ':ioi:', ':mad:', ':cry:', ':rolleyes:', ':roll:', ':red:', ':cool:', ':eek:', ':crazy:', ':thumbup:', ':thumbdown:', ':idea:', ':arrow:', ':!:', ':?:');
$smiley_img = array('smile.png', 'smile.png', 'neutral.png', 'neutral.png', 'sad.png', 'sad.png', 'big_smile.png', 'yikes.png', 'yikes.png', 'wink.png', 'tongue.png', 'tongue.png', 'lol.png', 'ioi.gif', 'mad.png', 'cry.gif', 'roll.png', 'roll.gif', 'redface.gif', 'cool.png', 'eek.gif', 'crazy.gif', 'thumbup.gif', 'thumbdown.gif', 'idea.gif', 'arrow.gif', 'exclaim.gif', 'question.gif');
보시다시피, $smiley_text의 array 속에 포함된 것들은 그림말을 대표하는 문자들이 포함되어 있고, $smiley_img의 array 속에 있는 것들은 해당 문자들을 대치하게 되는 그림말 그림 파일들의 이름이 대표 문자와 같은 순서로 지정되어 있습니다. 그래서, 각각의 array에 새로 추가한 그림말의 대표 문자와 해당 그림말 그림의 이름을 새로 추가해 주시면 됩니다.
그리고 Attachment Mod에 의해 첨부한 그림 파일들이 올린 글에서 바로 보이지 않는 이유는, 아쉽지만 원래 Attachment Mod에서는 첨부한 그림 파일들의 미리보기 기능이 아직 없기 때문입니다.
그래서 올린 글에 첨부한 그림이 바로 보이게 하려면 꼼수를 써야 하는데, 먼저 그림 파일을 첨부하고 나서 해당 그림 파일의 주소를 아래와 같이 다시 PunBB의 img 꼬리표로 감싸주는 방법이 있습니다.
[img]http://appletree.or.kr/forum/attachment.php?item=1[/img]
결국, 이렇게 하기 위해서는 글을 한 번 더 수정해 주어야 합니다만, 첨부한 그림은 글의 원하는 위치에 바로 보여줄 수 있게 됩니다.
RSS 신호에 걸린 글들을 읽다가 아주 기발한 아이디어에서 출발한 FormTextResizer bookmarklet 소개의 글이 눈에 띄어서 여기에도 달아둡니다.
가끔가다 댓글을 달거나 폼(forms) 항목들을 채울 때, 글자 항목들의 빈 칸이 입력 내용에 비해 너무 작게 느껴질 때가 있을 겁니다. 이럴 때 책갈피에 등록해 둔 FormTextResizer bookmarklet을 선택하면 실시간으로 원하는 textarea나 text field의 크기를 조절할 수 있게 됩니다. textarea의 경우, 상하좌우로 크기로 조절할 수 있고, text field의 경우에는 좌우 크기만 조절 가능합니다. 그리고 Safari에서는 커서가 폼 요소의 테두리 위에 위치할 때에만 크기 조절 커서로 바뀌게 된답니다.
bookmarklet으로의 사용은 아래의 코드를 복사해서 FormTextResizer의 이름으로 추가한 새로운 책갈피 항목의 주소 부분에 붙여두면 됩니다.
javascript:TxtRsz={formEl:null,adEv:function(t,ev,fn){if(typeof%20document.addEventListener!='undefined'){t.addEventListener(ev,fn,false)}else{t.attachEvent('on'+ev,fn)}},rmEv:function(t,ev,fn){if(typeof%20document.removeEventListener!='undefined'){t.removeEventListener(ev,fn,false)}else{t.detachEvent('on'+ev,fn)}},init:function(){var%20textareas=document.getElementsByTagName('textarea');for(var%20i=0;i%3Ctextareas.length;i++){textareas[i].style.cursor='se-resize'}var%20inputs=document.getElementsByTagName('input');for(var%20i=0;i%3Cinputs.length;i++){if(inputs[i].type=='text'){inputs[i].style.cursor='e-resize'}}TxtRsz.adEv(document,'mousedown',TxtRsz.initResize)},initResize:function(event){if(typeof%20event=='undefined'){event=window.event}var%20target=event.target||event.srcElement;if(target.nodeName.toLowerCase()=='textarea'||(target.nodeName.toLowerCase()=='input'&&target.type=='text')){TxtRsz.formEl=target;TxtRsz.formEl.startWidth=TxtRsz.formEl.clientWidth;TxtRsz.formEl.startHeight=TxtRsz.formEl.clientHeight;TxtRsz.formEl.startX=event.clientX;TxtRsz.formEl.startY=event.clientY;TxtRsz.adEv(document,'mousemove',TxtRsz.resize);TxtRsz.adEv(document,'mouseup',TxtRsz.stopResize);try{event.preventDefault()}catch(e){}}},resize:function(event){if(typeof%20event=='undefined'){event=window.event}try{TxtRsz.formEl.style.width=event.clientX-TxtRsz.formEl.startX+TxtRsz.formEl.startWidth+'px'}catch(e){}if(TxtRsz.formEl.nodeName.toLowerCase()=='textarea'){TxtRsz.formEl.style.height=event.clientY-TxtRsz.formEl.startY+TxtRsz.formEl.startHeight+'px'}},stopResize:function(event){TxtRsz.rmEv(document,'mousedown',TxtRsz.initResize);TxtRsz.rmEv(document,'mousemove',TxtRsz.resize);var%20textareas=document.getElementsByTagName('textarea');for(var%20i=0;i%3Ctextareas.length;i++){textareas[i].style.cursor='text'}var%20inputs=document.getElementsByTagName('input');for(var%20i=0;i%3Cinputs.length;i++){if(inputs[i].type=='text'){inputs[i].style.cursor='text'}}}};TxtRsz.init();
자주 사용할 일은 없겠지만, 그래도 기발한 아이디어를 시작으로 해서 여러 적용 가능성들 중 하나의 훌륭한 본보기를 보는 것 같군요.
Mac Rumors 사이트에 올라온 소식에 의하면, Mac OS X 10.4.8이 개발자들에게 배포되었다고 합니다.
개발자들에게 다음과 같은 항목들을 중점적으로 실험해 보라고 전해진답니다.
[uli]AHP[/uli]
[uli]DVD Player[/uli]
[uli]Graphics and Graphics applications[/uli]
[uli]iCal[/uli]
[uli]iPhoto[/uli]
[uli]Mail[/uli]
[uli]Microsoft Word & OpenType fonts[/uli]
[uli]Modem usage[/uli]
[uli]Networking[/uli]
[uli]Printing[/uli]
[uli]Safari[/uli]
[uli]USB[/uli]
항목들을 보면 특별히 새로운 것은 안보입니다만, 아마도 내년에 발표될 Leopard 전까지 나올 마지막 갱신 버전이 아닐까 생각됩니다.
Apache 서버의 AddDefaultCharset에 쓰여진 인코딩 값은 서버에서 보여주는 문서 형식이 text/plain 혹은 text/html일 경우, 전달하는 문서의 meta 요소에서 지정해준 값보다 더 높은 우선순위를 갖는답니다.
그래서, PunBB의 기본 언어를 iso-8859-1 인코딩으로 된 영어를 선택했어도 utf-8이 적용되어서 한글이 제대로 보였던 것이지요. 원래의 iso-8859-1 인코딩으로 해석했다면 한글을 표현할 수 없었겠지요. 만인들과 통용하려면 utf-8이 대세입니다.
사과나무 이야기 마당 » miname께서 작성한 글
PunBB 1.3.6로 운용됨, Informer Technologies, Inc 제공.