2007년 10월 29일 월요일

escapeshellcmd

Description

string escapeshellcmd ( string $command )

escapeshellcmd()는 인자로 받는 $command가 실행되었을 때, 의도하지 않았던 shell 명령어를 실행하게하는 트릭을 방지하기위해서 트릭을 실행할 수 있는 특정 문자들을 제거하는 함수입니다. 이 함수는 사용자가 입력한 내용이 exec()system() 또는 backtick operator로 실행되기 전에 호출되어야하는 함수입니다.

호출이 되는 경우 다음의 문자들 앞에 backslash가 추가됩니다.

#&;`|*?~<>^()[]{}$\, \x0A and \xFF
'" 는 두 개가 쌍으로 사용되지 않은 경우에만 처리됩니다. 윈도우에서는 위의 문자들과 %가 공백으로 바뀝니다.

Parameters

command

금지된 문자들을 제거하기 위한 명령어를 인자로 받습니다.

Return Values

금지된 문자들이 제거된 명령어가 리턴됩니다.

[Safari] 디버깅할 때 onload가 호출되지 않는다면 태그를 확인해보세요.

Safari에서만 유독 onload가 호출되지 않아서 이것 저것 테스트를 했었는데 알고보니 </div> 태그가 하나 더 들어가 있더군요. (엄끼님 고생 많으셨습니다. (__)) Firefox나 IE에서는 태그 에러에 대한 예외 처리가 되어 있는데 Safarid에서는 onload 자체가 호출이 안되는군요.
오늘의 교훈
- Firefox나 IE에서는 잘 되던데 Safari나 Opera에서 onload가 호출되지 않으면 태그를 확인해보세요.
추가:
1. <div />와 같이 잘못된 태그가 들어간 경우 Safari에서는 아예 보여지지 않습니다.
<2. iframe src="about:blank"></iframe> about:blank에 ;가 잘못 들어간 경우도 처리가 안되네요.

내가 생각하는 서비스

'쟤시켜 알바'님의 개인적인 서비스의 특징에서 트랙백했습니다.

제가 생각하는 서비스는 다음과 같습니다.

1. 서비스는 균형이 잡혀야 합니다.
어떤 한 부분에 강점을 둔다면 다른 부분에 투입할 수 있는 자원은 줄어들겠죠. 모든 것을 추구하는 서비스는 특징이 사라지고, 무거워지다 두가지 목적을 달성 못 할 가능성이 높습니다.

2. 서비스가 추구하는 환경에 맞는 서비스여야 합니다.
서비스가 웹 환경에서 제공되는 서비스라면 디자인도 웹 환경에 맞는 디자인이 되어야하고 구성이나 동작도 웹환경에 맞게 제공되어야 하겠죠. Java라면 Java 환경에 맞게 Flash라면 Flash 환경에 맞게, 각 환경을 뛰어넘는 기능도 제공을 할 수도 있습니다. (예외없는 법칙은 있을 수 없습니다. -_-b 다만, 거기에 드는 비용에 대해서 생각도 안하고 무턱대고 구현하는 것은 절대 있을 수 없다고 생각합니다.)

3. 변화에 적응할 수 있는 서비스여야 합니다.
단위별로 분리할 수 있는 서비스여야겠죠. 2의 테두리에서 구현된 서비스에 단위별로 잘 나뉘어진 서비스라면 언제든지 변화에 잘 적응할 수 있다고 생각합니다. 다만, html, css, php, js 등등 각각의 모듈이 잘 나뉘어야 겠죠.

쓰다보니 공돌이가 원하는 서비스가 되었군요. 쩝~ -_-;;
결론은 한정된 자원을 얼마나 투입하고 얼마나 쓸지 균형이 안잡힌다면 서비스는 망한다입니다. -_-)//

사용자 삽입 이미지

2007년 10월 25일 목요일

모니터를 교체해야되는 이유!!

IT 업계 종사자로서 17인치 모니터를 들여다보며 코딩하는 고통을 더이상 겪기 싫기 때문이죠 -_-;;;
24인치 와이드에 회전까지 되는 모니터면.. 더 이상 이런 고통을 겪을 필요가 줄어들 것 같아요 ㅠㅠ

빈약한 지갑(?) 사정으로는 올해는 사기 힘들것 같은데 좀 뽑아주세요 ^^b

※ 본 포스팅은 BTC와 Buzz에서 하는 이벤트 참여용입니다. -_-v



2007년 10월 24일 수요일

다음에 [최훈의 만화 작가평]이라는 코너가 생겼더군요.

사용자 삽입 이미지

역시 최훈 작가의 만화
는 재밌다는 생각으로 한참 웃다가 생각해보니..
네이버에 삼국전투기, GM, MLB 카툰 업뎃이 안되어서 다음에 왔다는 기억이 아련하게 떠오르더군요.

"최훈 작가님, 삼국전투기 연재 계속되는거 맞죠?? -_-;;;;;"

ImageMagick

ImageMagick - GPL 라이센스, 이미지 타입변환, 크롭, 등등등 다양한 기능을 제공하고 있는 이미지 프로세싱 프로그램입니다. Command-line에서 실행할 수 있는 프로그램으로 다음과 같은 명령어들이 있습니다.
  • animate: animates an image sequence on any X server.
  • compare: mathematically and visually annotate the difference between an image and its reconstruction.
  • composite: overlaps one image over another.
  • conjure: interprets and executes scripts written in the Magick Scripting Language (MSL).
  • convert: 이미지의 포멧변환부터 크기조절, 썸네일, 필터링, 블루어(Blur), 크롭(Crop), 디더링(Dither), 그리기(Draw on), 이미지 합치기, GIF 프레임 처리 등등의 다양한 변환 작업을 (옵션을 사용하여 지정) 실행합니다.
  • display: displays an image or image sequence on any X server.
  • identify: 이미지 파일(들)의 포멧 또는 이미지 정보들을 표시해줍니다.
  • import: saves any visible window on an X server and outputs it as an image file. You can capture a single window, the entire screen, or any rectangular portion of the screen.
  • mogrify: resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. Mogrify overwrites the original image file, whereas, convert writes to a different image file.
  • montage: create a composite image by combining several separate images. The images are tiled on the composite image optionally adorned with a border, frame, image name, and more.
  • stream: a lightweight tool to stream one or more pixel components of the image or portion of the image to your choice of storage formats. It writes the pixel components as they are read from the input image a row at a time making stream desirable when working with large images or when you require raw pixel components.
이러한 명령어들과 명령어의 다양한 옵션(명령어를 클릭해서 들어가면 옵션을 보실 수 있습니다. )들로 이미지에 여러가지 효과를 줄 수가 있습니다.

Command line에서 실행은 명령어, 원본파일, 옵션명(옵션 값이 있으면 옵션 값을 같이 사용합니다.), 결과파일순으로 명령어를 입력한 후 실행시키면 됩니다.
C:\> convert src.gif -layers flatten dst.gif
위의 명령어는 움직이는 gif파일의 깜박임을 제거해주는 명령입니다.

관련링크 및 참고자료
※ 허접 포스팅입니다. ImageMagick 사용하기 위한 메모로 작성한 것이니 참고해주세요. -_-;;;

P.S.1. ImageMagick을 윈도우에서 설치할 때 Download로 들어가서 ImageMagick 외의 사이트에서 다운로드 받는 경우 바이너리 설치버전을 찾을 수 없더군요. 바이너리가 아닌 경우에는 컴파일해서 설치해야하는 복잡한 과정이 필요합니다.

P.S.2. php에서 exec()를 사용하여서 ImageMagick을 실행하는 경우, 세 번째 인자로 실행결과 값을 얻어올 수가 있습니다. 저의 경우 바이너리를 설치하고 바로 실행하였는데, 4가 리턴되면서 동작을 하지 않더군요. 고민 끝에 재부팅(!)을 하자 정상적으로 동작하더군요. -_-;;;;;

2007년 10월 22일 월요일

Barcelona TV의 아나운서?

Mercè 2007 행사 중계를 하고 있던 Barcelona TV 입니다.
아나운서가 생중계를 하고 있길래 카메라를 들이대고 찍었었죠. (나중에 생각해보니 TV 카메라 돌고 있었을 건데.. 미친짓을 했다는 생각이 =_=;;;)

사용자 삽입 이미지

외국이라서 존재가 들어나지 않는다는 생각에 참 뻘짓 많이 했다는 생각이 듭니다. =_=;;;;;;;

2007년 10월 20일 토요일

Wholinks2me

사용자 삽입 이미지
지민아빠 님의 포스트를 보고 저도 한번 해봤습니다.
역시 공돌이 포스트는 검색 순위에 상당히 영향을 주는군요 -_-b

2007년 10월 11일 목요일

투우

사용자 삽입 이미지

한 생명을 죽이는게 스포츠라고 할 수는 없지만... 투우사들의 동작 하나하나는 화려하였다.

7 Portes - 먹물빠에야

바르셀로나 떠나기 전에 시장에서 파는 빵이나 패스트푸드 또는 슈퍼마켓의 빵이 아닌 맛난 음식을 한 번 먹어야 겠다는 생각에, 7 Portes (민박집 주인 아저씨께서 강추하시더군요.)에 들렀습니다.
사용자 삽입 이미지

3시가 넘어간 시간임에도 불구하고 40분정도를 기다렸습니다. (8시 출발하는 비행기였으니 가슴 많이 졸였죠 -_-);
사용자 삽입 이미지

가게의 분위기는 오래된 가게의 전통답게 빈곤한 저의 지갑의 한도를 뛰어넘는 고급 레스토랑이더군요.
식사 전에 요리 따로 식사, 식사 후 디저트 따로 물 또는 음료수 따로 해서 기본으로 40유로 정도는 생각해야되겠더군요.
(그나마 가장 싼 요리가 먹물 빠에야-15유로였습니다. )

사용자 삽입 이미지

드디어 나온 먹물 빠에야!! 처음 먹을 때는 달콤하면서도 짠맛이 어우러진데다 부드럽게 씹히는 오징어 살은 가히.. 뭐랄까요.
오징어 특유의 질긴 느낌이 전혀 들지 않더군요. 생긴 것은 좀.. 지저분하게 생겼지만 맛은 일품입니다.
사용자 삽입 이미지

한 냄비에 두 접시 정도 나오는데 양은 상당히 많습니다. 두 번째 접시를 비울 때 쯤되니까 배부르면서도 짠맛이 강하더군요. 그래도.... 이 가격대의 레스토랑은 아마 올해안에 다시 갈일은 없겠죠. -_-;;;;;

여튼 바르셀로나 가신다면 꼭 한번 들러보세요. 혼자가시지는 말구요!!!

2007년 10월 7일 일요일

그라나다의 길냥이들

바르셀로나에서는 보지를 못했었는데 그라나다에는 길냥이들이 많이 있어서 찍어 보았습니다.
만...... 역시 줌렌즈 없이는 무리군요 ^^;;; istDS + 18~55mm 번들입니다.
사용자 삽입 이미지
처음 만난 길냥이는 보자말자 방향을 틀더군요. "난 너같은애 싫어~!"
사용자 삽입 이미지
두 번째로 만난 길냥이는 사진 찍던 말던 개의치 않더군요. 쓰다듬으면 부비부비 모드로 ~ ^^
왠지 자세가 나 좀 쓰다듬고가봐~ 하는 것 같지 않나요?
사용자 삽입 이미지
세 번째로 만난 이 분은 사진기를 들이대자말자 얼굴이 변하더군요. "아쒸 재수없어~ "
사용자 삽입 이미지
그러고선, 유연한 몸매로 길 가던 중 뒷다리로 얼굴을 긁는 중....... (멍멍이들이 자주 하는 행동 아니던가요? ^^;;;;;)
사용자 삽입 이미지
한바탕 긁은 다음에는 "빨리 가버려~"하면서 물만 한참을 먹더군요.
사용자 삽입 이미지
마지막으로 만났던 이 분도 매섭게 째려보시더군요. "뭘보니~~~"

역시.. 길냥이 찍으려면 줌 렌즈를 !!!!!


마법의 시작

사용자 삽입 이미지

바르셀로나의 Mercè 2007


Priority Pass Card

사용자 삽입 이미지
Priority Pass Card는 전 세계 공항의 라운지를 이용할 수 있는 카드입니다.
비행기 출발 시간 전까지 또는 비행기를 갈아탈 때 시간이 남는 경우, 라운지를 이용하면 상당히 편리하더군요.

제가 가본 곳은 인천국제공항의 KAL 라운지와 바르셀로나 공항의 Salida 라운지를 이용했습니다.
기본적으로 푹신한 쇼파, 유무선 인터넷에 음료수와 과자 정도를 제공하고 있고 각각의 라운지에 따라서는 침실 또는 샤워를 할 수 있는 시설도 있습니다.

가입하는 방법은 Priority Pass Card에 직접가입하거나 플래티넘 카드에서 혜택으로 주는 것 같습니다.
Priority Pass Card에 직접가입하는 경우에는 종류에 따라서 방문 시 비용 청구, 무료횟수 제한, 동반자 금액 청구 등의 제한 폭이 다르더군요. (자세한 사항은 여기를 참고)

플래티넘 카드의 경우에도 본인은 무료인데 동반자에 대해서는 금액을 따로 청구하는 카드들도 있으니 주의해서 신청을 하셔야될 것 같습니다.

사용자 삽입 이미지

KAL 라운지입니다.


이번 여행에서는 아시아나 항공을 이용했었는데 프랑크푸르트 공항에서는 라운지를 이용하지 못했습니다. 프랑크푸르트 공항의 경우 터미널이 1,2로 나뉘어져 있고 터미널 안에서도 A,B,C,D,E 게이트가 나위어져 있더군요. 아시아나 항공이 도착하는 1터미널의 B게이트에서는 라운지가 루프트한자의 라운지 밖에 없더군요.

돌아와서 확인해보니 스타얼라이언스 소속의 루프트한자나 아시아나 등의 항공사 라운지는 Priority Pass Card에서 지원이 안되는 것 같더군요. 반대로 스카이 팀에 속해있는 대한항공의 KAL 라운지나 KLM, 델타항공, 알리탈리아 항공사 부근에 대부분 라운지가 있더군요. Priority Pass Card를 이용하실 생각이라면 스카이팀의 항공사를 이용하는게 좋을 것으로 생각됩니다.

※ 본인만 이용이 가능합니다.
※※ Priority Pass Card를 이용할 때는 항공권과 Priority Pass Card를 확인합니다.
※※※ 공항에서 물이나 간단한 음식을 사먹는 비용을 생각한다면 Priority Pass Card가 지원되는 플래티넘 카드로 지르시는 것도 좋을 것 같군요 ^^a
※※※※ 인천공항의 KAL 라운지에서는 과일도 제공이 됩니다. -_-b

관련 링크: Priority Pass Card(한국어 페이지)

2007년 10월 5일 금요일

'Permission denied to call method XMLDocument.getElementsByTagName' 에러~

XML로 데이타를 주고 받는 프로그램을 작성하다 다음과 같은 에러가 발생하였습니다. 이름하여~
'Permission denied to call method XMLDocument.getElementsByTagName'
에러 내용대로 살펴보자면 XMLDocument의 getElementsByTagName에 접근할 수 없다는 얘기가 되는데... 발생한 이유를 몰라서 다시 확인을 해봤습니다.

  1. Firebug를 통해서 살펴보니 클라이언트, 서버간의 데이타 전송 및 수신은 정상적으로 처리가 되었습니다.
  2. 받은 XML 데이타를 확인해보니 정상입니다.
    <?xml version="1.0" encoding="utf-8" ?>
    <channel>
       <result>0</result>
       <message>값을 반드시 입력하셔야 합니다</message>
    </channel>
구글 검색으로 에러에 대해서 검색을 해보니 다음과 같은 것들이 원인이 될 수 있다고 합니다.
  1. synchrnous하게 Ajax 송수신을 해야하는데 asnychronous하게 호출한 경우 발생가능하다. (상관없더군요.)
  2. 리턴된 response의 http.open() 후 http.onreadystatechange를 할당해야한다.
    (prototype에서 잘 해주고 있습니다.)
  3. Cross-domain 스크립팅을 잘못 사용했다.
    (그런일 없더군요.)
결론은, JSON으로 하자로 결론을 내렸습니다. -_-;;; 받는 것은 정상적으로 되니깐요....
원인 아시는 분 있으신가요?