jQuery UI jQuery UI가 버전 1.5로 갱신되었다. 거의 다시 태어났다고 말하고 싶은 것은 단순한 기능 추가 뿐만이 아니라 기본적인 구조와 사용 용법에 많은 변화가 있었기 때문.

대략적인 주요 내용을 보면, API 사용 용법이 단순화되었고, 다른 파일들과의 의존성을 줄이기 위해 과거 plugin 형태로 있던 dimensions.js가 1.2.6 버전부터 jQuery core에 흡수되었으며, 새로운 ui.core.js가 소개되면서 새로운 plugin을 추가하는 작업이 훨씬 간단해 졌다.

그리고, 원래 Prototype 라이브러리script.aculo.us에 대응하는 프로젝트로 시작된 “Enchant”가 아예 jQuery UI에 합쳐지면서 여러 UI 요소들을 위한 16 가지 이상의 다양한 특수 효과들도 $('div').effect() 형태로 기본적으로 제공된다. 특히나 transfer, explode. clip, scale 효과는 이번에 처음 소개된 것들.

또, 흥미를 끄는 것이 복잡한 형태의 easing 효과들과 Class transitions가 추가되었는데, 특히나 Class transitions는 일종의 morphing 효과를 줄 수가 있어서 CSS의 class에 정의되어 있는 속성으로 점진적으로 바뀌어가는 모습을 보여줄 수가 있다. 이는 최근 Safari에 소개된 -webkit-transition 속성과도 닮아있다.

그리고 이것은 디자이너에게도 반가운 소식일텐데, 새로 만든 UI widget들을 사용하려는 사이트와 잘 어울리는 테마로 꾸며줄 수 있는 ThemeRoller의 소개.

ThemeRoller의 UI 모습
여기서는 각 control들의 색상과 모양을 선택해서 실제 모양을 확인해 본 후, 자기만의 테마를 입힌 UI widget들을 CSS 파일과 데모 페이지가 포함된 ZIP 파일로 내려받을 수 있다. 또, Theme Gallery도 제공하니, 다양한 테마들도 더불어 엿볼 수 있을 듯.

이번 발표 소식을 듣고있자니, 과연 Web UI widget들의 전성시대도 멀지 않았군. jQuery UI Changelog

과거 난해하고 너무나도 다양한 Ruby on Rails 어플리케이션 배포 환경 때문에 골치를 아파했던 개발자들에게 반가운 소식이 들려왔다. 일명 Apache의 mod_rails로 불리우는 Passenger가 공식 발표된 것.

Passenger의 설치는 너무나 간단해서, 아래처럼 Passenger gem 설치 후 설치 스크립트를 돌려주면 작업이 완료된다.

$ sudo gem install passenger
$ passenger-install-apache2-module

스크립트를 돌려서 컴파일링을 마치면 Apache 설정 파일에 추가해야 할 몇 가지 설정 사항들을 보여주는데, apache module 추가 관련 설정과 virtual host 용 설정 사항을 참고해서 자신의 사용 환경에 맞게 수정해서 httpd.conf 파일에 복사해 넣는다. 이렇게 해서, Apache를 재시동하면 바로 Rails Application을 손쉽게 Apache 위에 얹어놓고 돌려볼 수 있게 된다. 이렇게 설치는 너무나 간단하지만, 자세한 설치 과정을 담은 screencast도 제공하고 있다.

반가운 것은, 성능면에서 Mongrel 보다도 뛰어나서 거의 Thin에서 돌리는 것과 비슷한 성능을 보여준다는 것. 그리고, 아직 공식 배포는 이루어지지 않고 있지만, Ruby Enterprise Edition과 함께 돌리면 덤으로 33%의 메모리 절약을 기대할 수도 있다니, 이제 배포 환경 때문에 과거 골치를 썩혀왔던 걱정을 많이 덜게 되면서, 앞으로 Rails 어플리케이션의 채택율에도 더 가속도가 붙을 듯.

참고로, Rails 어플리케이션을 재시동하는 방법은 두 가지가 있는데, 하나는 물론 Apache를 재시동해도 되지만, 더 간편한 방법으로 Rails 어플리케이션이 위치하는 root 디렉토리 밑에 tem/restart.txt 파일을 추가하거나 수정해 주면 된단다. 이 작업은 터미널에서 다음과 같이 해주면 손쉬워진다:

$ touch /my_web_app/tmp/restart.txt

아직 다른 Ruby 웹 프레임워크에 대한 지원 계획은 미정이라니, 당장은 Rails만이 가지는 장점으로 남아 있을 듯.

얼마전 WordPress가 2.5로 갱신되었다는 소식에 그 동안 미루었던 갱신 작업을 마무리하였다.
예전 2.2.3에서 단숨에 2.5로 갱신. 지금 사용하고 있는, 약간의 수정을 거친, iTheme 테마가 혹시나 호환성에서 문제를 일으키지 않을까 걱정을 했었는데 아직 큰 문제는 눈에 띠지 않는다.

하지만, 오랜만의 갱신이라 몇몇 사용하고 있던 Plugin들이 문제를 일으키는 바람에 다른 plugin들로 대체하는 수선을 떨어야 했다. 먼저, 꼬리표(tag) 관리 목적으로 사용하던 Simple Tagging Plugin이 더 이상 WordPress 2.5 버전과 궁합이 맞지를 않아서, 대신 Simple Tags으로 대체하였다. 예전 사용하던 꼬리표 정보는 WordPress에서 기본 제공하는 import 기능으로 그대로 가져와서 사용할 수 있었다. 문제는 꼬리표 사용 목적의 주된 이유 중 하나인 Tag Cloud 기능이 제대로 작동하지 않고 있다는 것.
또한, Live Comment Preview Plugin도 최신 버전(1.8.2)으로 갱신하였으나 감감 무소식이라, 이것도 좀더 지켜봐야겠다.

전체적으로 관리자 화면이 좀 더 산뜻해졌고 Plugin 관리도 훨씬 쉬워졌으나, 지금 사용하고 있는 테마와의 충돌인지 새로운 widgets 추가가 어렵고 페이지 로딩 시 잠시 동안 레이아웃이 깨지는 현상을 보인다.

겸사겸사 테마를 바꿀 때가 온 걸까?

덧, 이제 WordPress 2.5에서는 plugin을 쓸 필요없이 Gravatar 표시 기능을 자체적으로 지원해주기 때문에, 사용하는 테마에 gravater를 추가하고자 할 경우, comments.php파일을 열어서 표시하고자 하는 위치에 다음 한 줄을 추가해 주면 된다. (뒤의 숫자는 gravatar 그림의 크기.)

<?php echo get_avatar$comment32 ); ?>

Rails가 버전 2로 갱신한 지도 꽤 되었지만, TextMate에서 사용하되는 Rails bundle은 새로운 기능에 대응하지 못하고 제자리에 멈춘 지 오래다. 그래서, 여기에 만족하지 못하고 자기만의 번들을 수정해서 사용하는 사용자들도 많으리라 생각되는데, 반갑게도 얼마전 Rails 2.x 버전을 위한 새로운 TextMate 번들 개발/관리자가 등장하였다는 소식이 있었다.

이제, 최신 Rails 번들은 요새 많은 주목을 받고 있는 version control system인 Git을 써서, two_point_ooh branch에서 받을 수 있게 되었다.

cd "~/Library/Application Support/TextMate/Bundles/"
mv "Ruby on Rails.tmbundle" "RoR.tmbundle.orig"
git clone git://github.com/drnic/ruby-on-rails-tmbundle.git "Ruby on Rails.tmbundle"
cd "Ruby on Rails.tmbundle"
git checkout --track -b two_point_ooh origin/two_point_ooh
git pull

차후에, 또 갱신된 번들을 받을 때는,

cd "~/Library/Application Support/TextMate/Bundles/Ruby on Rails.tmbundle"
git checkout two_point_ooh  # optional; only if you changed to another branch etc 
git pull

나중에, 공식 Rails 2.0 bundle은 원래의 SVN repository에도 배포될 예정이란다.
참고로, git을 Mac OS X에서 컴파일하는데 약간의 애를 먹었는데, 이 곳에서 간편하게 설치할 수 있는 최신 버전의 git installer 파일을 받을 수 있다.

Mac OS X Hints에 소개된 요령으로 YouTube 영상의 URL 주소 뒤에 &fmt=18 변수를 추가하면 훨씬 좋은 화질의 영상을 감상할 수 있다는 내용이 올라와 있다.

그렇다고 영상을 볼 때마다 일일이 주소를 수정해 주기란 번거로운 일이기 때문에, 이런 작업을 자동화시켜 주는 AppleScript 혹은 JavaScript bookmarklet을 소개하고 있는데, 이 또한 영상을 볼 때마다 일일이 선택해주어야 해서, 번거롭기는 마찬가지.

Safari에서의 경우, 이런 일은 PithHelmet을 써서 자동적으로 처리해주는 것이 제격일 것이다. PithHelmet 메뉴에 있는 “Show Rule Editor”를 선택하고 “New” 단추를 눌러서 새로운 Rule을 생성한다. 새로 생긴 목록의 이름을 적당히 “View higher quality YouTube videos”라고 정한 후, Matching Pattern 항목에 다음과 같이 입력해준다.

^(http:\/\/www\.youtube\.com\/watch\?v=.*)$

그리고 밑에 있는 선택 메뉴에서 “Regex URL Match”를 선택한 후, Filter 항목의 “Matching URL request action” 메뉴에서 “Transmogrify”를 선택해준다. 이렇게 하면, Transmogrification Replacement:라는 항목이 보여지는데, 여기에다 $1&fmt=18을 입력한 후, 마지막에 “Enable Site Preferences”를 선택해서 맨 아래에 있는 “Apply” 단추를 눌러주면 적용 끝.

이렇게 해서, YouTube 영상을 살펴보면 특정 영상의 경우 확연히 눈에 띄는 더 좋은 화질의 영상을 감상할 수가 있었다.
원래 YouTube에 계정이 있는 사람은 계정 정보에 있는 “Video Playback Quality”에서 더 좋은 화질의 영상을 선택해서 감상할 수 있도록 되어 있으나, 실제 영상을 감상할 때는 이 설정만으론 별 차이를 느낄 수 없었기 때문에, 아무래도 서버 통신 전송량의 증가 등 여러 가지 이유로 이 변수값의 처리는 별로 공개되지 않았던 기능인듯.

덧붙여서, 아직 PithHelmet은 Safari 3.1 버전용으로 정식 배포되지 않고 있는데, 당분간 ~/Library/Application Support/SIMBL/Plugins/PithHelmet.bundle 파일을 “패키지 내용 보기”로 열어서 안에 있는 Info.plist 파일을 글자 편집기에서 열고, MaxBundleVersion key 밑에 있는 <string> 사이의 숫자를 5525로 고쳐서 저장하면 큰 무리없이 계속 사용할 수가 있다.