Html5Demos : http://html5demos.com/ Html5를 응용하는 데모들을 보여준다. Geolocation, CrossDomain, Canvas, Video, Drag&Drop 등이 있다.
HTML 5 Demos and Examples
HTML 5 experimentation and demos I've hacked
together. Click on the browser support icon or the technology tag to
filter the demos (the filter is an OR filter).
코드를 테스트하고 코드에 대한 테스트 케이스를 만드는 과정을 개인적으로는 코드를 "미리검증(future-proofing)"하는 일이라고 본다. 작성된 코드와 라이브러리에 대한 테스트 케이스를 만들어놓으면 이상한 버그를 잡으면서, 게다가 자기도 모르는 사이에 코드에 새로운 버그를 집어넣으면서 디버깅하느라 보낼 지도 모르는 수많은 시간을 절약할 수 있다.
JSUnit : http://www.jsunit.net/ 자바스크립트 단위 테스트 라이브러리이다. JSUnit에는 세 가지 기본 컴포넌트가 존재한다. 테스트 러너(test runner) : 테스트 묶음에서 테스트 러너 부분은 현재 테스트 과정이 얼마나 진행되었는지 알기 쉬운 그림으로 보여준다. 테스트 묶음을 로드하고 그 내용을 실행하고 결과를 기록하는 기능을 제공한다. 테스트 묶음(test suite) : 테스트 케이스들의 묶음을 말한다.(가끔 여러 웹 페이지에 나뉘어 있기도 하다.) 테스트 케이스(test case) : 참/거짓을 나타내는 간단한 표현식이다. 코드가 제대로 작동하고 있는지 확인할 수 있는 수치화한 결과를 돌려준다. 테스트 케이스만으로는 완벽하지 않으며, 테스트 러너와 함께 사용하면 인터렉티브한 테스트 환경을 제공한다.
ex) test suite
<html> <head> <title>JsUnit Test Suite</title> <script src="../app/jsUnitCore.js"></script> <script> function suite() { var newsuite = new top.jsUnitTestSuite(); newsuite.addTestPage("jsUnitTests.html"); return newsuite; } </script> </head> <body></body> </html>
ex) test case
<html> <head> <title>JsUnit Assertion Tests</title> <script src="../app/jsUnitCore.js"></script> <script> // Test that an expression is true function testAssertTrue() { assertTrue("true should be true", true); assertTrue(true); }
// Test that an expression is false function testAssertFalse() { assertFalse("false should be false", false); assertFalse(false); }
// Tests to see if two arguments are equal to each other function testAssertEquals() { assertEquals("1 should equal 1", 1, 1); assertEquals(1, 1); }
// Tests to see if they're not equal to each other function testAssertNotEquals() { assertNotEquals("1 should not equal 2", 1, 2); assertNotEquals(1, 2); } // Tests to see if the argument is equal to null function testAssertNull() { assertNull("null should be null", null); assertNull(null); }
// Of is not equal to null function testAssertNotNull() { assertNotNull("1 should not be null", 1); assertNotNull(1); }
// plus many many more </script> </head> <body></body> </html>
<html> <head> <title>Sample Test</title> <script src="js/unittest.js" type="text/javascript"></script> <script src="js/suiterunner.js" type="text/javascript"></script> </head> <body> <p id="title">Sample Test</p> <script type="text/javascript"> new Test.Unit.Runner({ // Test hiding and showing an element testToggle: function() {with(this) { var title = document.getElementById("title"); title.style.display = 'none'; assertNotVisible(title, "title should be invisible"); element.style.display = 'block'; assertVisible(title, "title should be visible"); }},
// Test appending an element to another testAppend: function() {with(this) { var title = document.getElementById("title"); var p = document.createElement("p"); title.appendChild( p );
ex) 테스트를 위해 Test.Simple과 Test.More을 사용하는 예 // Test 모듈을 로드한다.(테스트 자체도 함께!) new JSAN('../lib').use('Test.More');
// 여섯 가지 테스트를 실행한다고 알린다. (언제, 무엇이 잘못되었는지 알기 위해) plan({tests: 6});
// 세 가지 간단한 경우를 테스트 한다. ok( 2 == 2, 'two is two is two is two' ); is( "foo", "foo", 'foo is foo' ); isnt( "foo", "bar", 'foo isnt bar');
// 정규 표현식을 사용해 테스트한다. like("fooble", /^foo/, 'foo is like fooble'); like("FooBle", /foo/i, 'foo is like FooBle'); like("/usr/local/", '^\/usr\/local', 'regexes with slashes in like' );
Ext Core Cross - Browser Javascript Library Ext Core is a JavaScript Library for enhancing websites. Ext Core has great documentation and will always be free to use under the MIT Open Source License.
Browser Compatibility
Ext Core supports all major web browsers including:
옛날에 학문하는 사람은 세 해 동안이나 뜰을 감상하지 않은 이도 있고, 문을 닫아걸고 담 밖을 나서지 않은 이도 있었으며, 어떤 사람은 집에서 편지가 와도 편안하다는 말만 짚어 읽고는 흐르는 물에 던져 버리기도 했다. 참으로 외곬으로 한 일에만 뜻을 쏟고 다른 일은 거들떠보지도 않은 사례들이다. 하물며 스님네로서 출세간의 법을 배우면서 세간의 일로 마음을 어지럽혀서야 되겠는가.
우리는 옛 사람의 이러한 마음가짐을 보고 마땅히 땀을 흘리고 두려워하여 깊이 가슴에 새겨야 하리라. - 山色 - 중에서
속담에는 세상을 깨우치는 이야기가 많다. 어떤 노인이 죽어 염라 대왕을 대하고서 "저승에 데려올 테면 진작 알려 주었어야 하지 않고!" 하고 항의하였다. 그러자 왕이 "내가 자주 알려 왔노라. 너의 눈이 점점 침침해진 것이 처음 소식이었고, 귀가 점점 어두워진 것이 두 번째 소식이었으며, 이가 하나씩 빠진 것이 세 번째 소식 이었노라. 그리고 너의 몸이 날로 쇠약해진것으로써 셀 수도 없이 많이 소식을 전해 왔노라" 하였다. 이 이야기가 노인을 위한 것이라면, 젊은이를 위한 것도 있다. 한 소년이 또한 염라대왕에게 항의하였다. "저의 눈과 귀가 밝고 이도 튼튼하며 온몸이 건강합니다. 왕은 어찌하여 저에게는 소식을 미리 전하지 않았습니까." 왕이 이렇게 대답하였다. "그대에게도 소식을 전해 왔으나 그대가 미처 깨닫지 못했을 뿐이로다. 동쪽 마을에 나이 사오십이 되어 죽은 사람이 있지 않던가. 그밖에 열 살 미만이나 두세 살 젖먹이로 죽은 이도 있지 않았던가. 어찌 소식을 전하지 않았다하는가."
날쌘 말은 채찍 그림자만 보고도 내달린다. 송곳이 살갗에 꽃혀서야 알아채는 것은 둔한 말이다.
세상 사람들은 문자를 모르거나 어떤 일에 견문이 없으면 '어리석다'고 말한다. 그것도 어리석은 것이기는 하지만 진실로 어리석은 것은 아니다. 다섯 수레의 책을 다 읽어 모르는 문자가 없고, 온갖 기술을 다 배워 능숙하지 않은 일이 없으며, 거기에다 도리를 말하고 선禪을 설함에 막히는 데가 없더라도, 정작 일체 미망이 끊긴 진실한 경계를 따져 물으면 전도되고 미혹되어 앞에서 말한 '어리석은'사람들에게서 도리어 비웃음을 당할 터이니, 이들이야말로 진실로 어리석은 사람이 아니랴.