'[IT] 기타' 카테고리의 다른 글
사용자 인터페이스 (UI) vs 사용자 경험 (UX) (0) | 2012.07.12 |
---|---|
애플이 옳았던 것일까? (0) | 2010.05.15 |
HipHop for PHP : 더 빠른 PHP를 위해 (1) | 2010.02.04 |
구글의 스트리트 뷰 광고판 설치 계획 (1) | 2010.01.18 |
사용자 인터페이스 (UI) vs 사용자 경험 (UX) (0) | 2012.07.12 |
---|---|
애플이 옳았던 것일까? (0) | 2010.05.15 |
HipHop for PHP : 더 빠른 PHP를 위해 (1) | 2010.02.04 |
구글의 스트리트 뷰 광고판 설치 계획 (1) | 2010.01.18 |
V8 디버거는 자바스크립트 디버깅만 할 수 있었고, 하나의 V8 가상 머신에서만 동작했었습니다. 사실 하나의 구글 크롬 인스턴스에는 렌더링 프로세스에 따라 한 개 이상의 V8 가상 머신이 존재할 수 있습니다. 게다가 브라우저 탭에서 URL을 가져오거나 DOM 트리를 탐색하고 수정하는 작업은 자바스크립트 만으로는 다룰 수 없습니다.이 프로토콜을 사용해서 만든 도구 중 하나가 바로 이클립스 기반의 디버거입니다.
이러한 제약때문에 원격 디버거와 디버깅되는 프로세스간에 추가 정보를 주고받을 수 있는 크롬 개발툴 프로토콜을 만들었습니다. 크롬 개발툴 프로토콜은 현재의 V8 디버거 프로토콜을 비롯한 다른 디버깅 관련 프로토콜의 전송 수단으로도 사용할 수 있습니다.
CSS만으로 작성한 AT AT (0) | 2010.02.06 |
---|---|
Gordon : 자바스크립트만으로 플래시를 실행한다! (4) | 2010.01.14 |
제대로 막나가는(?) 프로젝트 - Skulpt (1) | 2009.08.14 |
iPhone 스타일의 패스워드 입력창 플러그인 (0) | 2009.08.06 |
구글 크롬 이클립스 디버거 (0) | 2009.08.06 |
FireScope: Firebug에 레퍼런스 추가하기 (0) | 2009.02.09 |
Firefox Trunk에 체크박스 미정 상태 지원이 포함되다! (0) | 2009.02.07 |
최신 iPhone에 포함된 HTML5 기능; 응용프로그램 캐시와 데이터베이스 (0) | 2009.02.04 |
IE='\v'=='v' (0) | 2009.01.30 |
JavaScript로 만든 팩맨 (0) | 2008.09.20 |
---|---|
iPhone에서도 SVG를 사용할 수 있습니다 (0) | 2008.09.19 |
리눅스에서도 AIR를!! (0) | 2008.09.18 |
iPhone Web App: Spin the Bottle (0) | 2008.09.18 |
구글 크롬과 IE의 새로운 프로파일러와 디버거 (0) | 2008.09.17 |
CSS 변형 : WebKit에서 먼저 되고, 이제는 Gecko에서도!! (0) | 2008.09.17 |
iPhone에서의 3D CSS 변환 (0) | 2008.09.09 |
mtjs_iepnghandler: IE 6 를 위한 더 나은 PNG 지원 (3) | 2008.08.13 |
img2json: App Engine을 통해 이미지의 메타데이터를 얻다 (0) | 2008.08.13 |
Gears
GWT
General Ajax
가장 많이 쓰이는 JavaScript 프레임웍 (0) | 2008.06.23 |
---|---|
Pivot: Java 기반 RIA 플랫폼으로서의 Swing++? (0) | 2008.06.23 |
PodiPodi: 웹을 위한 Enso / Quicksilver (0) | 2008.06.23 |
MooTools 1.2 릴리스 (0) | 2008.06.23 |
Gears 0.3 릴리스. Google I/O 동영상 (0) | 2008.06.23 |
Validanguage 0.9: 폼 검증 라이브러리 (0) | 2008.06.23 |
TLS Report: 최고 혹은 최악의 보안 사이트 목록 (0) | 2008.06.23 |
ensure: 요청시 리소스 받기 (0) | 2008.06.23 |
Frizione: JavaScript 개발, 테스트, 배포 환경 (0) | 2008.06.23 |
BrowserPlus를 로컬에서 동작하도록 해킹하기 (0) | 2008.06.10 |
---|---|
한 줄의 JavaScript로 중첩 패턴 제거 (0) | 2008.06.10 |
BeSlimed: Mootools로 만든 게임 (0) | 2008.06.10 |
SocialHistory.js: Spyjax 보다 더 (0) | 2008.06.10 |
Gears, 첫 돌을 맞다 (0) | 2008.06.06 |
GWT 1.5 RC 버전 릴리스 (0) | 2008.06.06 |
Ajax로 혁신적인 온라인 경매 수집기 (0) | 2008.06.05 |
스피드 업! Wordpress와 Google Gears (0) | 2008.06.05 |
IE 버전별 테스트를 조금 더 편하게! (0) | 2008.06.05 |
GWT의 이전 릴리스부터, 우리는 여러분이 사용자에게 집중하고 여러 브라우저의 괴상함과 다른 Ajax의 장애물들에 대한 상당한 걱정을 멈추는 것이 가능하다는 것을 보여준 많은 양의 정말 훌륭한 응용프로그램들을 보아왔습니다. 우리가 본 것들에 고무되어, 우리는 개발자들이 사용자들이 즐길 웹 응용프로그램을 작성하는데 자신들이 기존에 사용하던 도구를 사용하도록 하려는 작업에 계속 집중했습니다. GWT 1.5에는 이러한 노력이 포함되어있으며, 더 나아가 새로운 기능과 150개가 넘는 버그 수정도 들어있습니다. 그리고, 모든 GWT 릴리스들과 마찬가지로, 으뜸가는 이점은 업그레이드하고 재컴파일만 하면 되는 것입니다.Dion씨가 잠시 사용해본 바로는 꽤 재밌다고 합니다. 주요 기능은 어떤 것이 있을까요?
한 줄의 JavaScript로 중첩 패턴 제거 (0) | 2008.06.10 |
---|---|
BeSlimed: Mootools로 만든 게임 (0) | 2008.06.10 |
SocialHistory.js: Spyjax 보다 더 (0) | 2008.06.10 |
Gears, 첫 돌을 맞다 (0) | 2008.06.06 |
GWT 1.5 RC 버전 릴리스 (0) | 2008.06.06 |
Ajax로 혁신적인 온라인 경매 수집기 (0) | 2008.06.05 |
스피드 업! Wordpress와 Google Gears (0) | 2008.06.05 |
IE 버전별 테스트를 조금 더 편하게! (0) | 2008.06.05 |
YUI 2.5.2 릴리스, Firefox 3와 Opera 9.5 지원 대폭 개선 (0) | 2008.06.05 |
SocialHistory.js: Spyjax 보다 더 (0) | 2008.06.10 |
---|---|
Gears, 첫 돌을 맞다 (0) | 2008.06.06 |
GWT 1.5 RC 버전 릴리스 (0) | 2008.06.06 |
Ajax로 혁신적인 온라인 경매 수집기 (0) | 2008.06.05 |
스피드 업! Wordpress와 Google Gears (0) | 2008.06.05 |
IE 버전별 테스트를 조금 더 편하게! (0) | 2008.06.05 |
YUI 2.5.2 릴리스, Firefox 3와 Opera 9.5 지원 대폭 개선 (0) | 2008.06.05 |
Addressbook: Form History 패턴의 예제 (0) | 2008.06.04 |
Yahoo! BrowserPlus 엿보기 (0) | 2008.06.04 |
Yahoo! BrowserPlus 엿보기 (0) | 2008.06.04 |
---|---|
Flash로 구현된 HTML5의 Video 태그 (3) | 2008.06.04 |
SquireelFish: WebKit의 빠른 새 JavaScript 엔진 (4) | 2008.06.04 |
"모바일 웹에서 빠르게" 프리젠테이션 (0) | 2008.06.04 |
Google AJAX 라이브러리 API (4) | 2008.06.04 |
Sound Manager2 업데이트: 속도와 데모 (0) | 2008.06.03 |
YUI를 위한 Scrolling Tab View (0) | 2008.06.02 |
dojo.workers: 쇼케이스 (1) | 2008.06.02 |
HTML5, 다른 형태의 ruby 지원 (0) | 2008.06.02 |
Doctype에 대해서 또 다른 글이 올라왔습니다. Dion씨는 이 프로젝트에 대해서 꽤 흥분하고 있는 듯 보입니다.
Doctype에는 주장을 뒷받침 하기위한 여러 테스트들이 있습니다. 별로 생각하지 않아도 될만큼 간단합니다. 테스트들은 총체적으로 보여집니다만, 테스트는 Google Code 프로젝트에 있으므로 직접 접근하실 수도 있습니다.
document 테스트를 한번 살펴보세요, 그러면 Mark씨가 우리에게 튼튼한 기반을 제공하기 위해 이 일에 얼마나 많은 작업을 했는지 알게 될 것입니다.
또한 테스트가 goog.* 라는 JavaScript 라이브러리들을 사용하고 있는 것을 알 수 있습니다.
Simon Willison씨가 이미 다음과 같이 몇가지 재밌는 점을 발견하셨습니다:
Goog 라이브러리는사용자 환경에 설치된 iPhoto의 버전을 찾아내는 코드를 포함합니다. 그 코드는 Mac.com의 Gallery RSS 피드를 리버스 엔지니어링한 것을 기반으로 합니다.
수많은 훌륭한 코드들이 있습니다. 아무거나 한 번 시도해보세요. 그리고 알아낸 것을 알려주세요!
datepicker 컨트롤 기능 추가 (0) | 2008.05.22 |
---|---|
Spring WebFlow 2.0; JavaScript 모듈 릴리스 (0) | 2008.05.22 |
초기 탑재량 분산 : 모든 JavaScript를 한 파일로 만들지 않는 이유 (0) | 2008.05.22 |
Ajaxian Featured Tutorial: 첫번째 YUI 응용프로그램 만들기 (0) | 2008.05.22 |
Doctype: 테스트해보실래요? (0) | 2008.05.22 |
Flash 10 "Astro" 프리릴리스 (0) | 2008.05.22 |
MooTools를 이용한 CSS 애니메이션 (2) | 2008.05.20 |
Google Doctype : 개방형웹의 문서화! (0) | 2008.05.20 |
단순한 setTimeout 대신 Polling (0) | 2008.05.20 |
Mark Pilgrim씨가 오픈 백과사전이자 레퍼런스 라이브러리인 Google Doctype을 릴리스했습니다. 웹 개발자들에 의해, 웹 개발자들을 위해 쓰여지는 이 문서들은 웹 보안, JavaScript DOM 다루기, CSS 팁과 트릭 등에 대해서 다루고 있습니다.
레퍼런스 부분에는 크로스 브라우저와 크로스 플랫폼 호환성을 확인하기 위한 계속 추가되는 테스트 케이스 라이브러리도 있습니다.
이것은 오픈소스이자 오픈 라이센스(Creativce Commons)를 표방하는 야심찬 프로젝트의 시작일뿐입니다. 개발자들이라면 참여해서 이 문서를 성장시키는 가치 있는 데이터를 추가하는 것도 좋을 것 같습니다.
Dion씨가 Mark씨를 만났던 모양입니다. 이 프로젝트에 대한 Mark씨의 말씀을 들어보세요:Ajaxian Featured Tutorial: 첫번째 YUI 응용프로그램 만들기 (0) | 2008.05.22 |
---|---|
Doctype: 테스트해보실래요? (0) | 2008.05.22 |
Flash 10 "Astro" 프리릴리스 (0) | 2008.05.22 |
MooTools를 이용한 CSS 애니메이션 (2) | 2008.05.20 |
Google Doctype : 개방형웹의 문서화! (0) | 2008.05.20 |
단순한 setTimeout 대신 Polling (0) | 2008.05.20 |
xmake : JavaScript로 만든 make 같은 유틸리티 (0) | 2008.05.20 |
Timelapse CSS : 시간이 보이는 CSS (0) | 2008.05.20 |
window.name에는 뭐가 있을까? (0) | 2008.05.20 |
오늘은 GWT팀의 Bruce Johnson씨와 GWT 1.5에 대한 얘기를 나누어보았습니다. 그는 오래 기다려왔던 Java 5 에 대한 지원, 성능 개선 등과 같은 새로운 기능에 대해서 얘기했습니다.
응용프로그램을 새로운 GWT 1.5 컴파일러를 통해서 실행하고 "공짜"로 더 빨리 동작하는 응용프로그램을 얻을 수 있으니 아주 좋습니다.다른 인터뷰들...
from Ajax Pioneer Week: Bruce Johnson of GWT on Ajaxian겸손한 Script를 통한 게으른 로딩 기능 (1) | 2008.05.14 |
---|---|
line-height : 고통? (1) | 2008.05.13 |
jQuery와 함께하는 겸손한 JavaScript (0) | 2008.05.12 |
Opera Dragonfly : 새로운 디버깅 툴 (0) | 2008.05.12 |
Ajax 개척자 주간 : GWT의 Bruce Johnson (0) | 2008.05.10 |
Dojo 메소드를 Flash 로 포팅하기 (0) | 2008.05.10 |
브라우저별 버튼 여백 자세히 뜯어보기 (0) | 2008.05.10 |
IE와 Windows XP 서비스팩 3... 아직도 IE6 (2) | 2008.05.10 |
Ajax 개척자 주간 : Prototype의 Sam Stephenson (0) | 2008.05.10 |
IE와 Windows XP 서비스팩 3... 아직도 IE6 (2) | 2008.05.10 |
---|---|
Ajax 개척자 주간 : Prototype의 Sam Stephenson (0) | 2008.05.10 |
JavaScript로 만든 HTML Parser (0) | 2008.05.10 |
Canvas와 PNG를 이용한 압축 (2) | 2008.05.09 |
It's Business Time : Google I/O로의 자유 이용권 (0) | 2008.05.08 |
Ajaxian Featured Tutorial : YSlow를 이용한 성능 분석 (0) | 2008.05.08 |
우리는 JavaScript 라이브러리 개발자들이다. 우리의 외침을 들어라! (0) | 2008.05.07 |
모든 브라우저를 위한 get, set, catchall 에뮬레이션 (0) | 2008.05.07 |
CSS로 호머 심슨 만들기 (0) | 2008.05.07 |
Ajax 언어 API를 개발자들이 알게 되었다는 것은 정말 운이 좋은 일이었다고 생각합니다. 덕분에 우리는 번역역 걱정을 하지 않을 수 있게 되었습니다. 이제 우리는 API를 사용하여 Goolge 백엔드를 통해 번역 작업을 할 수 있습니다.또 다른 번역 관련 응용프로그램입니다. 웹 기반 IRC 응용프로그램인 Mibbit 에는, 대화방에서 자동 번역을 해주는 "번역" 기능이 있습니다.
저는 최근에 급하게 번역을 해야할 일이 몇 번 있었습니다. 프랑스어와 스페인어로 된 짧은 Twitter 메시지를 영어로 옮겨야 했습니다. 저는 외국 포럼에 나온 몇몇 기술적 이슈에 대한 답이 있었습니다.
그래서, 외국어를 선택하고 북마크를 클릭하면 작은 창이 떠서 영어로 번역해주는 번역 북마클릿을 만들어보기로 했습니다. 자동 번역이 완벽해지려면 한참 멀었지만, 대부분의 경우 요점 정도는 쉽게 알 수 있을 것입니다(책 한 권을 통째로 번역하려고 하진 않을테니까요).
아래는 이 북마클릿을 만든 방법입니다:
소스
우선, 북마클릿이 될 JavaScript 소스를 작성했습니다. 코드에는 몇가지 단계가 있습니다. 첫째로, 우리는 작업을 시작하고 Ajax 언어 API를 호출하고, 번역을 거쳐 우리가 원하는 언어를 얻을 수 있는 메소드를 작성합니다. 영어를 원하지 않는다면 언어 코드를 변경하면 됩니다.
[code:js]
if (!window['apiLoaded']) {
window.apiLoaded = function() {
var language = "en";
var text = window.getSelection().toString();
if (text) {
google.load("language", "1", { "callback" : function() {
google.language.detect(text, function(dresult) {
if (!dresult.error && dresult.language) {
google.language.translate(text, dresult.language, language, function(tresult) {
if (tresult.translation) {
translationWindow(tresult, dresult);
} else {
alert('No translation found for "' + text + '" guessing the language: ' + dresult.language);
}
});
}
});
}});
}
};
}
그 뒤에는 결과를 window에 표시할 수 있는 메소드를 작성합니다. 저는 가능하면 Prototype UI Window 객체를 사용했고, 그렇지 않으면 익숙한alert()
를 사용했습니다:[code:js]
if (!window['translationWindow']) {
window.translationWindow = function(tresult, dresult) {
if (window['UI']) {
new UI.Window({theme: "black_hud",
shadow: true,
width: 350,
height: 100}).setContent("<div style='padding:6px'>" + tresult.translation + "</div>")
.setHeader("English Translation")
.setFooter("Language detected: " + dresult.language)
.center({top: 20}).show();
} else {
alert(tresult.translation + " [lang = " + dresult.language + "]");
}
}
}
다음에는, Prototype UI window 코드를 읽고 DOM에 리소스를 동적으로 추가하는 방식으로 함께 사용하는 CSS 리소스를 읽어들였습니다:[code:js]
if (!window['UI']) {
var pw = document.createElement('script');
pw.src = 'http://almaer.com/downloads/protowindow/protowin.js';
pw.type = "text/javascript";
document.getElementsByTagName('body')[0].appendChild(pw);
var pwdefault = document.createElement('link');
pwdefault.setAttribute('rel', 'stylesheet');
pwdefault.setAttribute('type', 'text/css');
pwdefault.setAttribute('href', 'http://almaer.com/downloads/protowindow/themes/window.css');
document.getElementsByTagName('body')[0].appendChild(pwdefault);
var pwblack = document.createElement('link');
pwblack.setAttribute('rel', 'stylesheet');
pwblack.setAttribute('type', 'text/css');
pwblack.setAttribute('href', 'http://almaer.com/downloads/protowindow/themes/black_hud.css');
document.getElementsByTagName('body')[0].appendChild(pwblack);
}
마지막으로, Google API 로더를 읽어들여서?callback=apiLoaded
을 통해 동적 로딩 옵션을 사용합니다. 이는 우리가 처음에 봤던 메인 드라이버를 시작하게 합니다. 이미 로드되었으면 직접 호출할 수 있습니다(같은 페이지에서 다중 번역을 하기 위함).[code:js]
if (!window['google']) {
var s = document.createElement('script');
s.src = 'http://www.google.com/jsapi?callback=apiLoaded';
s.type = "text/javascript";
document.getElementsByTagName('body')[0].appendChild(s);
} else {
apiLoaded();
};"컴파일"
이것은 가공 전 형태인데, 우리가 필요한 것은 영어를 원하면 바로 사용할 수 있는 북마클릿 형태입니다. 이를 위해 저는 John Grubber 씨의 makebookmarklet Perl 스크립트를 사용해 변환을 했습니다.
서버
Prototype UI 코드는 서버에 있어야 하므로, Prototype + Window JavaScript의 조합된 파일을 포함한 가볍게 만든 버전과 한가지 테마의 CSS 세트를 서버에 넣었습니다.
작동
제가 얘기한 것에 대해 믿음이 안가세요? 실제 동작하는 것을 한번 보세요:
Ext JS : 오픈소스 FLOSS 예외사항 (0) | 2008.05.03 |
---|---|
OpenExt : ExtJS의 포크 프로젝트 (0) | 2008.05.02 |
Ext JS와 오픈소스 라이센스의 재밌는 점 (0) | 2008.05.02 |
Cuzillion: 최적화 성능 테스트 툴 (0) | 2008.04.29 |
번역 북마클릿과 Mibbit (0) | 2008.04.29 |
다음은 CSS 변수? (1) | 2008.04.28 |
JavaScriptMVC Test 플러그인 (0) | 2008.04.28 |
WebKit의 CSS 마스크 (0) | 2008.04.28 |
Canvas를 이용해 사이트를 색맹 사용테스트 (0) | 2008.04.26 |
Google App Engine 엔진이 나오길 고대했는데, 비록 프리뷰 릴리스이긴 하지만 나와주었습니다.
Google App Engine이 뭘까요?
Google App Engine은 Google의 기반 위에서 당신의 웹 응용프로그램을 실행할 수 있도록 합니다. App Engine 응용프로그램은 작성하기 쉽고, 유지보수하기도 쉽고, 트래픽과 데이터 저장공간의 증가에 따른 규모 변경도 쉽습니다. App Engine을 이용하면 유지보수해야 할 서버가 없습니다: 응용프로그램을 업로드하면 사용자에게 서비스할 준비가 끝난 것입니다.
appspot.com의 무료 도메인을 이용하거나 Google Apps을 통한 독립 도메인을 이용해서 서비스할 수도 있습니다. 응용프로그램을 모두 공개하거나 원하는 사용자에 대한 접근 제한을 하는 방법으로 공유할 수도 있습니다.
App Engine은 시작할 때 아무 비용도 들지 않습니다. 무료 계정에 가입하면, 요금이나 의무없이 세계에 보여줄 응용프로그램을 개발하고 알릴 수 있습니다. 무료 계정은 500MB의 공간을 주고 한달 5백만 페이지 뷰에 충분한 CPU와 대역폭을 제공합니다.
Google App Engine의 프리뷰 릴리스 중에는 무료 계정만 가능합니다. 조만간, 추가 자원을 구입할 수 있도록 할 것입니다.
Google App Engine에는 분명 한계가 있습니다. EC2 같은 Provisioning System이 아니라 샌드 박스처럼 한정된 권한과 공간만을 응용프로그램에 제공합니다. 하지만, 분명 어떤 이들에게는 괜찮은 방법이 될 수 있습니다.
글쓴이에게 서버 공간이 필요했던 작은 단위의 응용프로그램이 몇개 있었는데, 이럴 때 Google App Engine이 좋은 대안이 될 수 있을 것이라고 생각합니다. 설정의 번거로움도, 트래픽 비용도 없죠. 그냥 만들고 실행하기만 하면 됩니다. Google App Engine을 이용하면 서비스와 클라이언트측 환경에 더 집중할 수 있습니다.
물론,Google App
Engine가 Ajax 응용프로그램에서 할 수 없는 것까지 제공해주지는 않지만, 간단한 명령으로도 이러한 서비스들을 시작할 수 있게 해줍니다. 글쓴이는 이것이 배치(DEPLOY)의 세계로 가는 첫걸음이라고 보고 있습니다. Heroku 같이 다른 장단점을 가진 다른 서비스들도 있습니다.
랭귀지 전쟁으로 돌아가지만 않는다면 옵션으로 제공되는 서버측 JavaScript를 보는 것도 즐거울 것 같습니다.
수퍼 마리오 : 14KB의 JavaScript (0) | 2008.04.11 |
---|---|
JS 타임머신 (0) | 2008.04.11 |
MooWheel : 독특한 데이터 시각화 (0) | 2008.04.11 |
Chandler 서버 Dojo 1.0.2로 업그레이드 (0) | 2008.04.11 |
Google Apps 엔진이 Ajax 개발자에게 의미하는 것은? (0) | 2008.04.11 |
웹 고고학 : Java Pluglet API (0) | 2008.04.11 |
Pi.Debugger : 크로스 브라우징 디버거 (0) | 2008.04.10 |
JavaScript의 강력함. Stargate에서 사용되다 (0) | 2008.04.10 |
Spket IDE 1.6.11 릴리스 (0) | 2008.04.10 |
댓글을 달아 주세요
역시 구글.. 멋지네요!