축 처져가는 말년에 들려온 놀라운 소식이다.

The day Merb joined Rails내년에 본격적으로 배포되서 사용될 Ruby 1.9.x 버전과 맞물려 Rails와 Merb의 장점들만 고스란히 스며든 또 하나의 강력한 웹 프레임워크가 탄생하길 기대한다. 하지만, 약간 뒤쳐저서 그 동안 달려온 걸음걸음의 자취를 찬찬히 훑어보고 있는 사람에게는, 어쩌면 따라가기에도 벅찬 급변하는 웹 개발 환경이 마음을 조급하고 약간 걱정스럽게 만들기도 하는 것이 지금의 심정이고, 과연 둘의 장점을 어떻게 서로 잘 녹아들게 해서 어떤 결과물을 보여줄지도 궁금해진다.

아무쪼록, 강력하고 편리한 기능과 빠른 성능을 두루 갖춘, 개발자들에게 행복감을 줄 수 있는 훌륭한 Rails 3 (Merb 2)가 탄생하길…
결국, Rubyist들에겐 DRY한 소식이 아닐까?

한편, Rails 진영에서 이탈했던 Merb 추종자들의 기대반 걱정반이 섞인 반응들

MySQL 서버는 기본적으로 데이타 갱신과 관련된 모든 선언문 기록들을 Binary Log 형태로 저장하도록 설정되어 있는데, 이 놈은 그냥 놔두면 절대 지워지지 않아서 나중에 무한 증식해서 디스크 용량을 크게 잡아먹을 수도 있다. 그래서, 무제한 증식을 막기위한 조치로, 아래 처럼 서버 설정 파일에다 expire_logs_days 값을 설정해 놓으면, 지정 기간이 지난 log 파일들은 서버를 재시동할 때마다 확인해서 자동 삭제해 준다.

# expire binary log files automatically after a given number of days
expire_logs_days = 30

물론, 지금 당장 모두 지워버리고 싶다면, 긴급 조치로서 아래의 방법을 사용할 수도 있다:

mysql> FLUSH LOGS;
mysql> RESET MASTER;

여태 신경 안 쓰고 그냥 놔두었더니, 위 명령으로 500MB 이상을 줄일 수 있었다. 😳

웹 사이트 최적화 덕목들 중에서, JavaScript와 CSS 파일의 압축은 핵심 요소 중 하나다.
여기에 쓰이는 압축 도구로 웹에선 주로 JSMINPacker가 많이 쓰이는데, 압축 효율과 안전성 면에서 YUI Compressor를 따를 수 없다.

YUI Compressor의 터미널 사용 기본 용법을 보면 다음과 같다:

$ java -jar yuicompressor-2.4.1.jar myfile.js -o myfile-min.js --type js|css --charset charset --nomunge --preserve-semi --disable-optimizations

이렇게 놓고 보면 터미널을 열고 일일이 타이핑 하는 수고가 꺼려질 법도 한데, 반갑게도 CSS와 JavaScript 파일은 YUI Compressor TextMate Bundle을 통해서, 단축키 하나(⌃⇧Y)로 간단하게 압축할 수 있게 되었다.
개인적으로 위젯 형태로 만들어 볼까 생각하고 있었는데, 이놈이 더 안성맞춤이군. 8)

아래 코드를 이해하려면 JavaScript 만의 특성이 가미된 scope과 closures 이해하고 있어야 한다.

function add (x) {
  return function (y) {
    return x + y;
  };
}
var add5 = add(5);
var no8 = add5(3);
alert(no8); // Returns 8 

JavaScript를 좀 더 깊게 이해하고 좋은 코드를 짜기 위해서는 꼭 알고 있어야 할 부분이지만, 처음 접하는 사람들에겐 난해하기 마련인데, 마침 Robert씨가 알기 쉽게 풀어서 설명해 놓은 글을 올려놓았다.

더불어서, 위 소개 글에서도 잘 설명되어 있는 JavaScript Module Pattern을 약간 변형시킨 것으로, 스크립트 사용 용법이 좀 더 일관되고 패턴 속의 어떤 함수와 변수가 공개적으로 접근 가능한지를 훨씬 명확하게 보여주는 Revealing Module Pattern도 참고할 만하다. 이 패턴은 원한다면 실제 private 함수를 좀 더 명확한 이름을 지정해 놓고 공개해서 되돌려줄 수도 있는 장점이 있다.