맥 터미널 사용시, 터미널 안의 텍스트가 제대로 출력되지 않을때..

얼마전부터, 내 맥북에서 호스트 설정을 위해,..

터미널을 열고, 루트로 로그인후,.
#vi /etc/hosts 
라고 입력을 하면, 그동안 설정했던 호스트들이 하나도 안보이는 문제가 발생했다..
혹시 내가 실수로 호스트를 다 날려먹은건가?..
그런 의심도 해봤는데.. 최근에 맥북으로 호스트 파일을 설정한 일이 없기때문에..
그건 아닌것같고…
곰곰히 생각해보았다.. 문제가 뭘까?
ㅇㅎㅎ 결국 1주일 내내 궁금해 했던 그 문제는 인코딩 문제였다..-_-
지난주에, 회사 원격서버 접근이 필요해서 터미널의 문자 인코딩을 EUC-KR로 설정을 바꿨었다..
다시 UTF-8로 설정을 바꾸니.. 정상적으로 나온다..
— 이것때메 얼마나 삽질을 했떤지.. 
오늘 또 하나 배우는구낭.. 알수없는 삽질의 끝은 과연 언제 끝날까?
모든 캐릭터셋이 UTF-8 이었음 좋겠다는 생각을 오늘 또 해본다.
—-
터미널 명령어 몇개 정리해보면,..
1. 맥 터미널 루트 인증 – 사전에 root 아이디를 생성했던걸로 기억한다.
  맥도 그렇고, 우분투도 그랬던거 같고, 기본적으로 root 아이디를 따로 생성해야한다.
# su  (엔터)
# 비밀번호 (엔터)
2. ssh 로 접근 하려면.. 그냥 터미널에서 아래와 같이 치면된다.
#ssh 접근 도메인 (엔터)
정리 할려고 했더니.. 딱히 더 정리 할게 없꾸낭…ㅎㅎㅎ 
또 검색하다가.. 익히면 적어둬야징~

IE8 출시 기념 스페셜 포스팅~!!

아직도 IE6을 쓰고 계십니까?.. 이제는 더이상 망설이지 않으셔도 되요!!
당당히 IE8로 업그레이드하여, 월등히 빨라진 속도를 체감해보세요~!!
자신있게 강추 드립니다..ㅋㅋㅋ

내가 모 MS 직원은 아니지만,.. 그동안 RC1 깔고 지우고 반복하면서…
IE8 제잘 쪼옴~!! 이랬는데.. 정식버전은 그야말로 굿이다..
아직은 눈에 띄는 버그는 발견하지 못했다.

그동안 알파와 베타를 거치면서 내가 리포팅한 버그도 몇개 있는데..
다 해결 되었군..ㅋ

RC1에서 Active X 황금바 관련 버그도 해결된거 같아.. 느무 기쁘다..
이젠 IE8 로도 당당하게 오픈업~!! 결제할수있꾸나~ ++++

지금까지 칭찬 일색이었습니다. 움훼훼훼..
솔직히 좀 까고 싶진 않다.. 칭찬해줄껀 해줘야지..
나부터도 우리나라 사람들은 칭찬에 너무 인색한것 같다.
이젠 칭찬하며 살아야지~ ㅋㅋㅋ

검색을 좀 해보니,..여전히 까는 사람은 까더군..
FF니 Opera니, 좀 안다고 나불대는 블로거들을 보면.. 토나온다..정말로..
웹표준이나 뭐니 좀안다고 쫑알대는 블로거와 별반 다르지 않는 수준이다..

자신들이 믿는것만이 진실인냥 나불대는 사람들이 너무나 추해보인다.
나도 한때 저랬는데.. 진실은 저 너머에… 좀더 겸손해져야겠다.

여튼, 이번 IE8 출시는 IE6 점유율에 얼마나 많은 영향을 미칠지..
기대된다~ +
+++

분명 IE8이 성공해 IE점유율 50%를 넘어서는 날에는..
많은 웹사이트들이 IE8 최적화를 하겠지?
그렇다는 얘기는 FF나 사파리나 오페라에서도 다 잘되겠지?
생각만 해도 흐믓하다~ ㅋ

Httpwatcher에서 이미지 요청시 Aborted 되는 현상

항상 이런 이슈는 퇴근쯔음 생긴다..-_- 싫다 정말..
여튼, 개편이후, PV가 갑자기 줄어서.. 확인해본결과..
문제는 이미지 태그의 src 이용해 리퀘스트를 날릴때, 그 리퀘스트가 중지되는 현상이 발견됐다.
Httpwatcher에서 확인해본결과.. 
아래와 같은 코드 사용시에..
(new Image()).src = “로그집계기록” 
열에 2~3번은 aborted가 되고 있었다. 
위와 같은 상황이라면 PV가 대략 20~30%는 하락할것이다..ㅎㅎ
여튼 수많은 삽질을 통해 대강의 원인을 찾아본결과..
아래와 같은 이유가 있었다.  (이유는 3가진데.. 자세한건 아래 링크 참조)

http://blog.httpwatch.com/2008/01/28/what-does-aborted-mean-in-httpwatch/

그중에서 다운로드 중일때, 리퀘스트를 날리면 요청을 끊어버린다는 것!!
이게 가장 유력한 원인으로 파악되고 있다. 
일단.. 내일 다시 테스트해봐야징.. 졸립넹..-_-
—–
최종정리~
위에서 발생한 문제는 최종적으로 가비지 콜렉션 문제로 정리됐다. 
즉, 위와 같이 (new Image()).src = “로그집계 기록”을 호출할경우..
요청에 대한 응답을 받기도 전에 이미지 객체가 가비지 콜렉션 되어 사라질수 있다. 
이럴경우, 응답은 취소가 된다. 
해결책은 간단하다. 가비지 콜렉션 되지 않도록 이미지의 참조 카운터를 누군가가 들고 있으면 된다. 아래와 같이 전역변수로 가지고 있어도 되고,
_gImg = [];
function 로그집계 = {
    var o = new Image(); 
    o.src = “로그집계”;
    _gImg.push(o);
}
로그집계();
혹은 아래와 같이 abort 이벤트에 대해서 이벤트를 바인딩 해둬도 된다 
function 로그집계 = {
    var o = new Image(); 
    o.src = “로그집계”;
    o.abort=function(){};
}
로그집계();
후자보다는 전자가 보다 명확한 방법이다. 
후자의 경우의 코드상의 의미는 abort 이벤트가 발생했을때, 어떠한 처리를 따로 해주는것인데..
저렇게 아무런 의미없는 함수를 바인딩해둘필요는 없지 않을까?
그래서 전자로 처리했다.