Tag Clouds



자바스크립트 협업 도구 JS Bin 설치하기

PDF
JS Bin은 오픈소스 기반의 자바스크립트 협업 도구입니다. PHP로 만들어진 녀석이라 설치를 시도했습니다만, 구글의 Closure Compiler(JAVA)를 이용한 빌드 과정이 포함되어 있어서 걍 안쓰고 말았더랬습니다. 일반적인 웹 호스팅 서비스에서는 자바 서블릿을 실행할 수 없기 때문입니다. A.J님boxersb님이 설치하는 모습을 보고 "이거 서버 시스템 스킬을 익혀야 하나..."하는 생각을 하며 마냥 부러워만 하다가 꼼수가 떠올라 우회할 수 있는 몇가지 방법을 시도하여 성공했고 그 과정을 기록합니다.

1. github로 부터 소스를 내려받습니다.
2. 동봉된 sql 파일들을 DB에 등록합니다.
3. 동봉된 phpMake 파일을 phpMake.php로 이름을 변경하고 마지막 부분을 다음과 같이 편집합니다.

변경 전:
...
// google compile in to jsbin.VERSION.js
echo "Google compiler compressing...\n";
system ('java -jar "./lib/compiler.jar" --js="' . SPROCKETIZED . '" --js_output_file="' . PRODUCTION . '" --warning_level=QUIET');

unlink(SPROCKETIZED);
echo "Compressed: " . PRODUCTION . "\nFile size: " . filesize(PRODUCTION) . " bytes.\n";
?>

변경 후:
...
// google compile in to jsbin.VERSION.js
echo "Google compiler compressing...\n";

$ch = curl_init("http://closure-compiler.appspot.com/compile");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "output_info=warnings&output_info=errors&output_info=statistics&output_info=compiled_code&output_format=json&compilation_level=SIMPLE_OPTIMIZATIONS&js_code=".urlencode(file_get_contents(SPROCKETIZED)));

$output = json_decode(curl_exec($ch));
curl_close($ch);

if ($output->compiledCode) {
  file_put_contents(PRODUCTION, $output->compiledCode, LOCK_EX);
  echo "Compressed: " . PRODUCTION . "\nFile size: " . filesize(PRODUCTION) . " bytes.\n";
} else {
  echo "Compile error!";
}
unlink(SPROCKETIZED);
?>

4. jsbin 폴더를 웹 서버에 업로드합니다.
5. 브라우저의 주소창에서 phpMake.php를 호출합니다.
6. 설치된 경로에서 작동여부를 확인합니다.

서버에서 자바 서블릿을 실행하는 부분을 구글에서 제공하는 Closure Compiler의 오픈 API를 사용하는 방식으로 변경한 것입니다. 결국 스크립트를 빌드하는 과정 때문에 설치를 못하고 있었던 것입니다. 더 쉬운 방법으로는 jsbin.com에서 이미 빌드되어 서비스 되고있는 /js/2.x.x/jsbin.js 파일을 저장하여 정적으로 호출해도 해결되는 문제인 것입니다. 더욱 자세한 설치 방법은 위 두 분의 포스팅을 참고하면 되겠습니다. 추가적으로 나름 한글화를 시도했으며, 루트에 설치하지 않아도 되도록 소스를 전반적으로 수정했습니다. 계정 인증으로 보안하고, 실제 서버에 있는 자바스크립트 리소스를 호출하여 편집할 수 있도록 손보면 온라인 에디터로도 손색이 없겠더군요. 이미 누군가 하고 있겠죠? 참 오랜만에 포스팅합니다. 개인사정으로 한동안 방치하게 될지도 모르겠습니다.


WebDevMobile 열린세미나 - CSS3 발표자료 공유

PDF

슬라이드를 클릭한 후 방향키를 이용하여 다음으로 넘길수 있습니다.


WebDevMobile에서 주관하는 열린세미나에서 금일 발표한 슬라이드입니다. "CSS3의 속성들"을 소개하는 부분의 소스와 예제는 zenelements.com를 참고했으며, "구린 브라우저 사용자에게는 구린 사용 경험을 제공하자"라는 다소 괴변 스러운 메시지를 전달하고자 했습니다. 이번 역시 급조해서 만든 슬라이드라 진행이 순조롭지 못했고 주제와 내용이 일치하지 않는 구석이 있었습니다. 어째 저는 발표를 하면 할수록 더 못하는 것 같습니다. 그럼에도 즐겁게 경청해 주신 여러분께 진심으로 감사드립니다.


ThinVNC 버전 0.9.0.10 업데이트

PDF
ThinVNC.png
ThinVNC는 브라우저만으로 데스크탑을 원격으로 제어할 수 있게 하는 소프트웨어입니다. 일전에 소개한 적이 있죠. 서버에 해당하는 PC에 ThinVNC를 설치하고 뷰어에 해당하는 클라이언트는 브라우저로 접속한 페이지인 것입니다. 최근 업데이트된 0.9.0.10 버전은 도저히 웹으로 구현한 것이라 믿기지 않을 정도로 속도가 향상되었고 쓸만한 기능들이 많이 생겼습니다. 프레젠테이션 도구가 추가되어 다른 사용자를 초대하고 관리할 수 있으며(암호 설정 가능), 현재 보여지는 화면을 모니터링 하고 화면에 떠 있는 특정 애플리케이션을 숨길 수도 있습니다. 이 밖에도 SSL 데이터 전송 방식이 추가되었으며, 윈도 서비스 모드로 실행할 수 있게 되었습니다. 그리고 기업 환경에서는 하나의 IP에 프록시 게이트웨이를 설정하여 ThinVNC가 설치되어있는 PC의 IP 또는 이름을 입력하여 접근할 수도 있습니다.

ThinVNC - Gateway3.jpg

뷰어는 HTML5로 구현 되었습니다. 별도의 브라우저 플러그인이나 소프트웨어의 설치를 강요하지 않기 때문에 여러 사용자들을 손쉽게 초대하여 온라인 프레젠테이션을 하거나 교육하는 목적으로 사용하기에 적합하다고 합니다. ThinVNC는 윈도 2000/XP/2003/Vista/7/Server8에서 작동하고 HTML5를 지원하는 Firefox, Chrome, Opera, Safari 등의 브라우저를 이용하여 접속할 수 있습니다. 비영리 목적으로는 무료로 사용할 수 있으며, GPL 라이센스의 오픈소스 프로젝트입니다.

우리 회사에서도 관련 프로젝트를 진행 중이고 참여하고 있는데 살짝 위협적으로 느껴지는군요.