구글 크롬 10분사용기

잠깐 써본 구글 크롬이라는 녀셕은 좀 할말이 많을거 같습니다.
구글 크롬 피카츄
아침에 출근하자마자 제일 먼저 한일이 구글 크롬을 설치하는거 였습니다. 설치경로를몰라서 그냥 막상 구글사이트르 들어가니 링크가 보이는군요.
명확한 구글 크롬 링크
설치를 걸어놓고 아름다운 요구르트 배달을 다녀온뒤(이제 지하에서 나눠주므로 아는동생과 함께 들고와서 나눠줍니다;) 다녀오니 firefox의 개인정보 데이타를 복사해가는 모양이군요. 흐음 firefox가 없을때는 ie 를 긁어가는지는 모르겠습니다.
명확한 구글 크롬 링크
일단 사용해보았습니다.
역시 업무시간에는 업무를 해야하기 때문에(응?) 저희 회사의 사이트를 들어갔지요.별다른 큰문제없이 잘 들어가지는듯 합니다. 작동도 대부분 잘되구요. 오~ 그러면서 서핑을하고있는데 문득느껴지는것은 속도였습니다. 일단 진짜 빨라졌네요 신기합니다. 왜 빨라졌는지는 좀더 알아봐야겠습니다. http통신에 한계란것이 있을터인데; 이거 궁금하군요;
일단 브라우저가 나오면 먼저 해보는 ACID2 테스트 부터 진행했습니다.
ACID2 통과
뭐 가뿐히 통과하는듯하구요. 역시 엔진이 좋아야………
또한 자주가는 페이지 9개를 미리볼수있는 기능을 지원합니다. 이건 오페라에서 봤던 기능이네요.
자주가는 사이트 미리보기

한가지 약간 의아한 부분이 있습니다.
바로 document.all의 지원입니다. 제가 일하는회사의 어떤사이트들은 아직 DOM을 접근하는방법으로 document.all을 사용하고 있어서 에러가 났었는데 크롬으로 확인을 해봤더니 문제없이 나오는군요… 흐음 좋은건지 나쁜건지 모르겠습니다.
또한 그래도 약간씩은 화면이 깨지거나 그런 사이트들이 많이 보이는데.. 이게 더 큰걱정입니다.
깨지는 사이트가 많고 물론 activeX가 안되므로 꼬진 브라우저다 라고 얘기할사람들이 많지 않을까 살짝 걱정이 됩니다. 그건 브라우저의 문제가 아닌 사이트 자체의 문제일 가능성이 큰데 말이죠..
저도 예전에 netscape navigator 6인가 7인가 나왔을때 그랬거든요 ‘브라우저가 얼마나 꼬지면 다음도 제대로 안나오냐.’ 그런분들 생각보다 많지 않을까요? 구글도 그런 이유로 IE와의 호환 타협을 본게 아닐까 하는 생각도 들고 뭐 약간 찝찝하네용..
IE의 점유율을 살금살금 잡아먹었으면 하는 구글크롬이 firefox나 safari, oprea등의 점유율만 잡아먹지 않을까 걱정입니다. 십중 팔구는 그렇게 되지 않을까 생각됩니다만…

암튼 구글 크롬은 구글의 다른 서비스보다 좀더 파격적인 느낌을 줍니다. 점점 괴물이 되어가는 그런 느낌으로 말이죠….

ㅎㅎ 저는 테스트 더하러 갑니다.(실버라이트는 아예 시원하게 안되는군요 =_=;;;)

Flash Activate

Flash의 활성화 이슈

웹 페이지에서 구성되는 기본적인 필수 요소는 아니지만 플래시는 그 미려한 모션과 다양한 액션등으로 많은 곳에서 사용 되고 있습니다.
2006년경 object를 HTML 에서 사용하는 방식에대해 미국의 Eolas사에서 MS에 소송을 걸게 되었고 판결이 나기까지 MS는 Object를 js를 이용해서 로드하게하는 패치를 진행하였습니다.
2008년 초에 MS는 소송에서 이기게 되었고 다시 <object>를 이용해 바로 Object를 로드할 수 있게 패치를 진행하였으나, 사용자의 업데이트율이 낮은관계로 아직까지 js로 Object를 로드해야 안전하게 사용자가 플래시를 사용할 수 있게 됩니다.

ngbFlashActivate()

플래시 구현시에 정의 할 수 있는 대부분의 요소들을 원하는것으로 정의가 가능 하기 위해 작업이 되었으며, 여러가지 상황에 대비해서 고려가 되었습니다. 현재 플래시CS3 에서 제공하는 플래시 구현 방식을 차용해서 script 방식과 script가 로드되지 않을때의 방식 모두를 지원하게 했습니다. 파라미터는 원하는대로 추가 할 수 있습니다.

JS Source
function ngbFlashActivate()
{
	var isIE  = (navigator.appVersion.toLowerCase().indexOf("msie") != -1) ? true : false;
	var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
	var fullParam = new String;

	this.clsid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"; //MS Object ClassID
	this.codebase = "https://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"; //Flash Version
	this.pluginspage = "http://www.macromedia.com/go/getflashplayer"; //Flash Plugin Link

	this.flashURL = new String;
	this.width = new String;
	this.height = new String;
	this.objId = new String;
	this.objClass = new String;

	this.wmode = new String;
	this.quality = new String;
	this.bgcolor = new String;
	this.allowScriptAccess = new String;
	this.allowFullScreen = new String;
	this.accessibility = new String;
	this.parameter = function( property, value )
	{
		if(isIE && isWin) { fullParam += "<param name='"+ property +"' value='"+ value + "' />\n"; }
		else { fullParam += " " + property +"='" + value +"'"; }
		switch ( property )
		{
			case "wmode": this.wmode = value; break;
			case "quality": this.quality = value; break;
			case "bgcolor": this.bgcolor = value; break;
			case "allowScriptAccess": this.allowScriptAccess = value; break;
			case "allowFullScreen": this.allowScriptAccess = value; break;
			default:;
		}
	}

	this.init = function( strFlashUrl, n4Width, n4Height)
	{
		this.flashURL = strFlashUrl;
		this.width = n4Width;
		this.height = n4Height;
	}
	this.loadFlash = function( showId )
	{
		if(this.wmode == ""){ this.parameter("wmode", "window")};
		if(this.quality == "") { this.parameter("quality", "high")};
		if(this.bgcolor == "") { this.parameter("bgcolor", "#FFFFFF")};
		if(this.allowScriptAccess == "") { this.parameter("allowScriptAccess", "always")};
		if(this.allowFullScreen == "") { this.parameter("allowFullScreen", "false")};

		var resultHTML = new String;
		var genIDAttr = (this.objId!="") ? " id='" + this.objId + "'" : "";
		var genClassAttr = (this.objClass!="") ? " class='" + this.objClass + "'" : "";
		var widthSizeAttr = (this.width !=0) ? " width='"+ this.width +"'" : "";
		var heightSizeAttr = (this.height !=0) ? " height='"+ this.height +"'" : "";
		if(isIE && isWin)
		{
			resultHTML = "<object " + genIDAttr + genClassAttr + " classid='"+ this.clsid +"' codebase='"+ this.codebase +"' " + widthSizeAttr + heightSizeAttr + ">\n";
			resultHTML += "<param name='movie' value='"+ this.flashURL +"' />";
			resultHTML += fullParam ;
			resultHTML += this.accessibility;
			resultHTML += "</object>";
		}
		else
		{
			resultHTML = "<object  " + genIDAttr + genClassAttr + "  type='application/x-shockwave-flash' data='" + this.flashURL + "' " + widthSizeAttr + heightSizeAttr + fullParam + ">\n";
			resultHTML += this.accessibility;
			resultHTML += "</object>";
		}
		(showId) ? document.getElementById(showid).innerHTML = resultHTML : document.writeln ( resultHTML );
	}
}
사용법
<script type="text/javascript">
	var flash = new ngbFlashActivate();
	flash.init('http://s.nx.com/S2/Nexon2007/banner/banner_brand/main_promotion.swf','225','283','main_promotion');
	flash.accessibility = '<p><img src="" alt="대체컨텐츠" /></p>';
	flash.parameter('wmode','transparent');
	flash.parameter('flashVars','menu= 001');
	flash.loadFlash();
</script>

<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="225" height="283" id="Untitled-2">
	<param name="allowScriptAccess" value="sameDomain" />
	<param name="allowFullScreen" value="false" />
	<param name="movie" value="http://s.nx.com/S2/Nexon2007/banner/banner_brand/main_promotion.swf" />
	<param name="quality" value="high" />
	<param name="bgcolor" value="#ffffff" />
	<param name="wmode" value="transparent" />
	<param name="flashVars" value="menu= 001" />

	<!--[if IE]>
	<object type="application/x-shockwave-flash" data="http://s.nx.com/S2/Nexon2007/banner/banner_brand/main_promotion.swf" quality="high" bgcolor="#ffffff" width="225" height="283" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" flashvars="menu=001">
		<p><img src="" alt="대체컨텐츠" /></p>
	</object>
	<![endif]-->
</object>

크게 스크립트 로드부분과 <noscript>에 의한 대체 컨텐츠 부분으로 구성이 되어 있습니다.
컨디셔널 코멘트를 사용하여 IE일때와 IE가 아닐때를 구분해서 IE용을 먼저 로드후 로드되지않을때 안의 컨텐츠를 로드하는 방식으로 구성되어 있습니다.

var flash = new ngbFlashActivate();
필수요소입니다. 플래시 오브젝트를 생성하고 특정 변수(flash)에 대입합니다. 특정 변수는 알아보기 쉽고 중복되지 않는 범위에서 자유롭게 결정합니다.

var 정의오브젝트명 = new ngbFlashActivate();
flash.init(‘http://s.nx.com/S2/Nexon2007/banner/banner_brand/main_promotion.swf’,’225′,’283′,’main_promotion’);
필수요소입니다. 플래시에서 기본적으로 필요한 요소들을 정의합니다.

정의오브젝트명.init('flash URL','가로사이즈','세로사이즈','플래시의 DOM ID');
flash.accessibility = ‘<p><img src=”” alt=”대체컨텐츠” /></p>’;
부가요소입니다. 플래시가 로드되지 않을 경우에 보여야 하는 컨텐츠를 구성하여 넣어 줍니다. 접근성 관련 콘텐츠입니다.

정의오브젝트명.accessibility = "대체 콘텐츠";
flash.parameter(‘wmode’,’transparent’);
부가요소입니다. 플래시에서 사용되는 각종 속성들(wmode, flashvars 등등) 정의 할 수 있습니다.
정의오브젝트명.parameter('속성', '속성값');
flash.loadFlash(); , flash.loadFlash(‘DOM ID’);
필수요소입니다. 각종 요소들과 정의된 옵션들을 조합해서 실제로 플래시 오브젝트를 표현해 줍니다.
loadFlash 함수안에 파라미터의 값이 있게 되면 파라미터의 값을 ID로 가진 앨리먼트 안으로 앨리먼트가 표현되게 됩니다.
함수안에 파라미터가 존재하지 않으면 오브젝트가 정의된 곳에 그대로 플래시오브젝트를 표현합니다.

각종 요소에 기본값이 세팅되어 있습니다.

  • wmode= “window”
  • quality= “high”
  • bgcolor = “#FFFFFF”
  • allowScriptAccess = “always”
  • allowFullScreen = “flase”

당연히 파라미터 지정을 새로이하면 값은 변경이 됩니다.

이걸 본 한사람의 반응
‘플래시를 스크립트로 구현한다는게 좀 구림 플래시오브젝트 여부를 판단해서 대체텍스트를 뿌려줄지 플래시 코드를 뿌려줄지 선택할수 있지 않을까?’
라고 했으나 더이상은 귀찮아서 작업하기 싫었어요;

다찌마와 리 – 악인이여 지옥행 급행열차를 타라!

제가 머 딱히 영화에 조예가 깊은것도 아니고 그냥 웬만한 영화는다 재미있게 즐겨보는편 입니다.
일단 멍석 깔아놓고, 대부분의 영화도 그렇지만 류승완 감독의 작품도 꽤나 좋아합니다. 아라한 장풍대작전이나 짝패같이 시원 시원한 액션이 있는 작품이나 (특히 아라한의 고기집 액션 이나 짝패의 비보이등과의 싸움 같은건 가히 최고라고..) 주먹이 운다 같은 절박함이 묻어나는 내용의 영화도 재미있죠. 또한 사이사이 묻어나오는 센스와 화려하고 세련된 액션이 항상 빛을 발하는것 같습니다.
이번에 다찌마와리는 티저 부터 시작해서 포스터 등장인물 등등 제 눈을 한눈에 뒤집었습니다.
다찌마와리 포스터
보통 B급 영화라고들 홍보가 된 것 같았는데, 일부러 허술하게 제작한 느낌을 주기 위해 노력하면서도 디테일이 무한으로 숨어 있었습니다. 뭐 억지로 세트를 꾸미지 않습니다. 21세기에 우리가 자주보던 그런곳들이 1940년대로 뒤바뀝니다. 그리고 뻔뻔하게 자막으로 처리하죠-_-; 영화를 보면서 이영화의 참맛을 모두 알려면 몇 번은 더봐야겠다는 느낌까지 들었을 정도니까요. 랩을 할때 매인 랩만큼 추임새의 비중이 높았다고나 할까요? 그만큼 볼거리가 많은 영화 였습니다. 또한 류승완 감독답게 특유의 화려한 액션도 놓치지 않았습니다.
화려한 액숀

아 최고의 그 센스있는 대사를 생각해내는 사람은 누굴까요. 아 대사자체도 너무웃깁니다.
정말 간간히 보여주는 액션은 화려하다 못해 아름다웠는데 역시 류승완, 정두홍이다 라는 말이 나올만하군요. 참 정두홍 감독은 네멋대로해라에서 알게되어 서울액션스쿨의 존재도 알게되고, 영화에 정두홍이 나올때마다, 우리의 복수가 옆에 있을것같아 정겹기만 합니다.
정두홍 감독은 이번에 일부러 비중을 낮게 잡은걸까요? ㅎㅎ

류승완 감독의 친동생이자 멋진 배우인 류승범의 좀 깝치는 연기도 이제는 물이 오를때로 올랐나봅니다. 역시 깝치는 연기는 품행제로 이후 뭐 평정했다고나 할까요?
승범아아~~~
보면서 어찌나 웃었는지 배가 땡겨서 기침을 못할 정도 였습니다. 아 리쌍이 찬조로 나오더군요. 길은 확실히 예능쪽에 뭔가있는지 개리보다 많은 비중을 보여줬습니다.
나를위해노래를불러줘~

주인공인 임원희는 이런 연기를 위해 타고난 듯한 느낌이 듭니다. 재밌는영화 보다는 이번이 더 재미있는것 같습니다.(사실 재밌는영화는좀 =_=;;;) 목소리는 임원희라는 배우에서 가장 큰 비중을 차지하지 않을까 생각합니다. 인터뷰도 있네요

볼거리가 너무 많아 컷이 빨리 진행되는게 아까운 영화 였습니다. 엔딩 크래딧에서 나오는 NG신도 사람들이 거의 앉아서 웃으면서 즐기더라구요. 사람들 반응을 보니 그냥 격식없이 즐거운 표정이었습니다. 맨날 뭔가 반전이있고 엄숙하며 뭔가 머리써서 생각하느라 정신없는 영화들도 있지만 이렇게 그냥 막웃다 나오는 영화도 좋은것 같습니다. 그냥 저는 요즘 본 영화중에 제일 재미있었어요.

강풀의 다찌마와리 소개 만화도 재미 있을것 같아요.

Firefox에서 게임을 실행할 수 있습니다.

제가 다니는 회사에서 한 1년6개월전인가요? 기존의 activeX에서만 실행이 되던 게임 웹 런칭(저희는 이렇게 부를껄요?)을 firefox도 될수있게 XUL을 이용해서 만들었었습니다. 제가 만든건 아니고 관련의 다른팀분께서… 저는 약간의 조언이나 도움만 주었죠;;
그런데 실제로 게임 웹 사이트가 firefox에서 실행되지 않는 문제가 있어서 사용할 수 없었는데요.. (무한 error alert의 반복….. documant.all 의 향연)

이번에 오픈한 사이트 는 완벽하진 않지만 로그인하고 게임을 실행하는데 큰 무리가 없습니다. 일단 작업 하신분들께 감사하다는 말씀을 드립니다. 아직까지 윈도우 기반의 IE, Firefox만 지원하지만 그래도 어디입니까~ 한발을 용기내어서 내딛었다는데 기분이 좋더라구요.(작업도 안한 주제에;)
나머지 게임 웹 사이트들도 어서 크로스 브라우징이 되게 수정하여 빛을 발했으면 하는 느낌입니다.

음 같은 방법으로 오페라도 만들고 차츰 이렇게 게임 실행이되는 범위를 늘리면 좋겠다 하는 생각이 드는 반면, 한계가 있을텐데라는 생각이 들기도 합니다. 또한 firefox용 ActiveX 를 만들어 버린건 아닌가 라는 생각이 들기도 하더라구요…
그래서 온라인 게임 실행에 대한 생각을 좀 해봤습니다.

게임 웹 런칭을 지원을 하되 웹 런칭이 불가능한 사람들을 위해서 로그인 세션이 걸려있지않은 경우에는 게임 실행후 로그인을 할 수 있게끔 지원을 하는거에요.. 뭐 경로가 여러군데고 그러면 보안상이나 이런저런 문제가 있겠지만 이렇게 작업하는것이 기본적인 느낌이라 생각이 들거든요. “기본적인것을 구현하고 부가적인것 덧붙인다.” 라는 말처럼 말이죠.

은행도 기본 HTTPS, SSL로 작업한뒤에 원하는 사람에 한에서만 부가적인 ActiveX같은 컨트롤을 이용하게 하면 좋을텐데 말이죠. 넥슨에서 사용하는 키보드 보안처럼 원하는사람만 사용할수있게….

한 CSS 파일안의 Selector 허용 갯수

음 말이 좀 이상한데; 예전에 어느 블로그에서 본적이 있었습니다만. 그 블로그가 없어 졌는지 다시는 못찾겠네요.
IE6, IE7에서 CSS 파일 하나의 selector 개체가 4096번째까지만 인식을 한다는 내용입니다.
4096번째가 넘어가면 없는 파일로 치더라구요.. 테스트 파일 을 만들어 봤습니다. 혹 동일한 selector만 사용해서 그런가 해서 다른 것도 해봤는데 마찬가지이군요…
ie를 꼭 맞춰야하는 우리나라에서는 한번쯤 염두해 둬야 할 내용인지도 모르겠습니다.

뭐 이런 내용도 있습니다.. 여기에도 잠깐 언급이 되어있군요….
Internet Explorer CSS File Size Limit

닥치고 웹 표준