<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blueb Blog</title>
	<atom:link href="http://blueb.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blueb.net</link>
	<description>Just another blueb blog season2</description>
	<lastBuildDate>Fri, 05 Mar 2010 00:12:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zen Coding: Quick HTML/CSS code</title>
		<link>http://blueb.net/2010/03/05/zen-coding-a-speedy-way-to-write-htmlcss-code/</link>
		<comments>http://blueb.net/2010/03/05/zen-coding-a-speedy-way-to-write-htmlcss-code/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 00:08:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Develop]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[quick]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[zen]]></category>
		<category><![CDATA[zen coding]]></category>

		<guid isPermaLink="false">http://blueb.net/?p=148</guid>
		<description><![CDATA[<p><a title="Zen Coding" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/" target="_blank">Zen Coding</a></p>
<p>퍼블리셔들에게 희소식이 될만한 코딩방법 입니다.<br />
Aptana, Coda, Espresso 어플에서 사용할 수 있습니다.<br />
부부적인 지원도 가능한 어플도 몇가지 있습니다.</p>
<p>자세한 내용은 아래 동영상을 보시면 감이 오실거 같네요</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=7405114&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=7405114&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/7405114">Zen Coding v0.5</a> from <a href="http://vimeo.com/user2060676">Sergey Chikuyonok</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p><a title="Zen Coding" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/" target="_blank">Zen Coding</a></p>
<p>퍼블리셔들에게 희소식이 될만한 코딩방법 입니다.<br />
Aptana, Coda, Espresso 어플에서 사용할 수 있습니다.<br />
부부적인 지원도 가능한 어플도 몇가지 있습니다.</p>
<p>자세한 내용은 아래 동영상을 보시면 감이 오실거 같네요</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=7405114&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=7405114&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/7405114">Zen Coding v0.5</a> from <a href="http://vimeo.com/user2060676">Sergey Chikuyonok</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blueb.net/2010/03/05/zen-coding-a-speedy-way-to-write-htmlcss-code/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HTML5 Essentials</title>
		<link>http://blueb.net/2010/03/02/html5-essentials/</link>
		<comments>http://blueb.net/2010/03/02/html5-essentials/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 05:11:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blueb.net/?p=154</guid>
		<description><![CDATA[<div id="__ss_3272184" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="HTML5 Essentials" href="http://www.slideshare.net/1Marc/html5-essentials">HTML5 Essentials</a></strong><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=html5-essentials-100225033212-phpapp01&amp;rel=0&amp;stripped_title=html5-essentials" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=html5-essentials-100225033212-phpapp01&amp;rel=0&amp;stripped_title=html5-essentials" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/1Marc">Marc Grabanski</a>.</div>
</div>
]]></description>
			<content:encoded><![CDATA[<div id="__ss_3272184" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="HTML5 Essentials" href="http://www.slideshare.net/1Marc/html5-essentials">HTML5 Essentials</a></strong><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=html5-essentials-100225033212-phpapp01&amp;rel=0&amp;stripped_title=html5-essentials" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=html5-essentials-100225033212-phpapp01&amp;rel=0&amp;stripped_title=html5-essentials" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/1Marc">Marc Grabanski</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blueb.net/2010/03/02/html5-essentials/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jQuery 1.4 is released</title>
		<link>http://blueb.net/2010/01/17/jquery-1-4-is-released/</link>
		<comments>http://blueb.net/2010/01/17/jquery-1-4-is-released/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 02:21:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Develop]]></category>

		<guid isPermaLink="false">http://blueb.net/?p=151</guid>
		<description><![CDATA[<p><a href="http://jquery.com/">http://jquery.com/</a></p>
<p><a title="jQuery Features" href="http://jquery14.com/day-01" target="_blank">http://jquery14.com/day-01</a></p>
<h3>Performance Overhaul of Popular Methods</h3>
<p>Many of the most popular and commonly used jQuery methods have seen a significant rewrite in jQuery 1.4. When analyzing the code base we found that we were able to make some significant performance gains by comparing jQuery against itself: Seeing how many internal function calls were being made and to work to <a href="http://ejohn.org/blog/function-call-profiling/">reduce the complexity</a> of the code base.</p>
<p><a title="# of Function Calls for Popular jQuery Methods by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271690739/"><img src="http://farm5.static.flickr.com/4008/4271690739_f0bced3a78.jpg" alt="# of Function Calls for Popular jQuery Methods" width="500" height="375" /></a><br />
<small><a title="# of Function Calls for Popular jQuery Methods by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271691293/">View the cropped chart.</a></small></p>
<p>In jQuery 1.4 we’ve significantly reduced the complexity of the most popular methods in jQuery. The full performance details can be found below.</p>
<h3>Easy Setter Functions</h3>
<p>For a while now, you’ve been able to pass a function into <code><a href="http://api.jquery.com/attr">.attr()</a></code> and the return value of that function is set into the appropriate attribute. This functionalilty has now been extended into all setter methods: <code><a href="http://api.jquery.com/css">.css()</a></code>, <code><a href="http://api.jquery.com/attr">.attr()</a></code>, <code><a href="http://api.jquery.com/val">.val()</a></code>, <code><a href="http://api.jquery.com/html">.html()</a></code>, <code><a href="http://api.jquery.com/text">.text()</a></code>, <code><a href="http://api.jquery.com/append">.append()</a></code>, <code><a href="http://api.jquery.com/prepend">.prepend()</a></code>,  <code><a href="http://api.jquery.com/before">.before()</a></code>, <code><a href="http://api.jquery.com/after">.after()</a></code>, <code><a href="http://api.jquery.com/replaceWith">.replaceWith()</a></code>, <code><a href="http://api.jquery.com/wrap">.wrap()</a></code>, <code><a href="http://api.jquery.com/wrapInner">.wrapInner()</a></code>, <code><a href="http://api.jquery.com/offset">.offset()</a></code>, <code><a href="http://api.jquery.com/addClass">.addClass()</a></code>, <code><a href="http://api.jquery.com/removeClass">.removeClass()</a></code>, and <code><a href="http://api.jquery.com/toggleClass">.toggleClass()</a></code>.</p>
<p>Addtionally, for the following options, the current value of the item is passed into the function as the second argument: <code><a href="http://api.jquery.com/css">.css()</a></code>, <code><a href="http://api.jquery.com/attr">.attr()</a></code>, <code><a href="http://api.jquery.com/val">.val()</a></code>, <code><a href="http://api.jquery.com/html">.html()</a></code>, <code><a href="http://api.jquery.com/text">.text()</a></code>, <code><a href="http://api.jquery.com/append">.append()</a></code>, <code><a href="http://api.jquery.com/prepend">.prepend()</a></code>, <code><a href="http://api.jquery.com/offset">.offset()</a></code>, <code><a href="http://api.jquery.com/addClass">.addClass()</a></code>, <code><a href="http://api.jquery.com/removeClass">.removeClass()</a></code>, and <code><a href="http://api.jquery.com/toggleClass">.toggleClass()</a></code>.</p>
<p>This enables code like:</p>
<div>
<div>
<pre>// find all ampersands in A's and wrap with a span
$('a').html(function(i,html){
  return html.replace(/&amp;amp;/gi,'&lt;span&gt;&amp;amp;&lt;/span&gt;');
});
 
// Add some information to the title of the anchors
$('a[target]').attr("title", function(i,title){
  return title + " (Opens in External Window)";
});</pre>
</div>
</div>
<h3>Ajax</h3>
<p><strong>Nested param serialization</strong> (<a href="http://api.jquery.com/jQuery.param/">jQuery.param() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/50d78e7658382d2a2f5149cae7a6572f78ce403f">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/67089eedf6f84acd9c16ea2a6dadadf7b13a7c84">Commit 2</a>)</p>
<p>jQuery 1.4 adds support for nested param serialization in jQuery.param, using the approach popularized by PHP, and supported by Ruby on Rails. For instance, <code>{foo: ["bar", "baz"]}</code> will be serialized as “foo[]=bar&amp;foo[]=baz”.</p>
<p>In jQuery 1.3, <code>{foo: ["bar", "baz"]}</code> was serialized as “foo=bar&amp;foo=baz”. However, there was no way to encode a single-element Array using this approach. If you need the old behavior, you can turn it back on by setting the traditional Ajax setting (globally via <code>jQuery.ajaxSettings.traditional</code> or on a case-by-case basis via the traditional flag).</p>
<p>There are three ways to enable the traditional way of serialization:</p>
<div>
<div>
<pre>// Enables for all serialization
jQuery.ajaxSettings.traditional = true;
 
// Enables for a single serialization
jQuery.param( stuff, true );
 
// Enables for a single Ajax requeset
$.ajax({ data: stuff, traditional: true });</pre>
</div>
</div>
<p>More information: <a href="http://api.jquery.com/jQuery.param/">jQuery.param() Documentation</a>, <a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/39518945047413f1185682078043e70e0c5c9091">Commit</a>, <a href="http://github.com/jquery/jquery/blob/master/src/ajax.js#L175">Code</a></p>
<p><strong>JSON and script types auto-detected by content-type</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax Documentation</a>, <a href="http://github.com/jquery/jquery/commit/787f271052220c20787104f0eba6441aedac22ff">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/6861b5d4eb16222ed5ea623af6ce75362b55d1d4">Commit 2</a>)</p>
<p>If the response to an Ajax request is returned with a JSON mime type (application/json), the dataType defaults to “json” (if no dataType is specified). Additionally, if the response to an Ajax request is returned with a JavaScript mime type (text/javascript or application/x-javascript) , the dataType defaults to “script” (if no dataType is specified), causing the script to automatically execute.</p>
<p><strong>Etag support has been added</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/28ab4d32247943e1ae3409b23fe69303df0bc9eb">Commit</a>)</p>
<p>By default, jQuery ignores the Last-Modified header for Ajax requests, preferring to make request and ignore the browser cache. Specifying ifModified: true causes jQuery to use the browser cache if available. jQuery 1.4 will also send the If-None-Match header (for ETag support) if you specify ifModified.</p>
<p><strong>Strict JSON parsing, using native JSON.parse</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/90a87c03b4943d75c24bc5e6246630231d12d933">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/308d6cdad023da190ace2a698ee4815ed8dad9c5">Commit 2</a>, <a href="http://github.com/jquery/jquery/commit/44e6beb10304789044de2c5a58f5bb82e8321636">Commit 3</a>)</p>
<p>jQuery 1.3 and earlier used JavaScript’s <code>eval</code> to evaluate incoming JSON. jQuery 1.4 uses the native JSON parser if available. It also validates incoming JSON for validity, so malformed JSON (for instance <code>{foo: "bar"}</code>) will be rejected by jQuery in <a href="http://api.jquery.com/jQuery.getJSON">jQuery.getJSON</a> and when specifying “json” as the dataType of an Ajax request.</p>
<p><strong>Serialize HTML5 elements</strong> (<a href="http://api.jquery.com/jQuery.param/">jQuery.param() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/b31b9bd756a1489c3b1b856ed8b624c55da9e02f">Commit</a>)</p>
<p>The new <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#attr-input-type-keywords">HTML5 input types</a> (such as `datetime` and `range`) will be included when you <code><a href="http://api.jquery.com/serialize">.serialize()</a></code> a form.</p>
<p><strong>Context for Ajax Request</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/183f37e4b4128af7ba096ac40046768b84b6d66e">Commit</a>)</p>
<p>You can now specify a context for an Ajax request, and all callbacks will have that context set (allowing you to simplify your code and possibly avoid having to use closures, or use other objects).</p>
<div>
<div>
<pre>jQuery.ajax({
    url: "test.html",
    context: document.body,
    success: function(){
        jQuery(this).addClass("done");
    }
});</pre>
</div>
</div>
<p><strong>Success callback receives XHR object as third argument</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/c2101245c07afdb831b0c79869c7263420407b67">Commit</a>)</p>
<p>The success callback for any ajax request now receives the XMLHttpRequest object as the third argument. Previously this XHR object was only accessible as the return value for <code>$.ajax</code> and the like.</p>
<p><strong>Explicitly set a content-type</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/25b0ba9f9612583033b902a0e40345463a3a71d0">Commit</a>)</p>
<p>In jQuery 1.3, the contentType setting was ignored in <a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax</a> if no data was sent. In jQuery 1.4, the contentType is always sent. This fixes an issue with some backends that used the Content-Type header to decide what kind of response to send.</p>
<p><strong>Explicitly specify a JSONP callback name</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax Documentation</a>,  <a href="http://github.com/jquery/jquery/commit/fbc73d45b487dd863886c7fd3f0af1fd4dec261b">Commit</a>)</p>
<p>You can now specify the name of the JSONP callback in <a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax()</a> using the jsonpCallback option.</p>
<p><strong>Avoid pre-flighting cross-domain XHR</strong> (<a href="http://github.com/jquery/jquery/commit/a7678267d848fcef8775c8b9f4fa3e507b8cc5f4">Commit</a>)</p>
<p>Cross-domain ajax (for the browsers that support it) is smoother with jQuery as preflighting is avoided by default.</p>
<p><strong>jQuery.ajax() is now using onreadystatechange instead of a timer</strong> (<a href="http://github.com/jquery/jquery/commit/fe6c86d53046b0f4d648f61c0b8e75387af65152">Commit</a>)</p>
<p>Ajax requests should now take fewer resources by using onreadystatechange instead of polling.</p>
<h3>Attributes</h3>
<p><strong>The performance of <code>.css()</code> and  <code>.attr() </code> has been improved.</strong></p>
<p><a title="Performance of .css() and .attr() by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271691147/"><img src="http://farm5.static.flickr.com/4026/4271691147_fd72853fa4.jpg" alt="Performance of .css() and .attr()" width="500" height="375" /></a></p>
<p><strong>The <code>.attr()</code> takes a function setter</strong> (<a href="http://api.jquery.com/attr/">.attr() Documentation</a>)</p>
<p>Not only can you use a function with <code>.attr()</code>, but you can also use the current value of the attribute with the function.</p>
<div>
<div>
<pre>jQuery('&lt;img src="enter.png" alt="enter your name" /&gt;')
.attr("alt", function(index, value) {
    return "Please, " + value;
});</pre>
</div>
</div>
<p><strong>.val( Function )</strong> (<a href="http://api.jquery.com/val/">.val() Documentation</a>)</p>
<div>
<div>
<pre>&lt;input class="food" type='text' data-index="0" /&gt;
&lt;input class="food" type='text' data-index="1" /&gt;</pre>
</div>
</div>
<div>
<div>
<pre>jQuery("input:text.food").hide();
 
jQuery("&amp;lt;ul class='sortable'&gt;&lt;li&gt;Peanut Butter&amp;lt;/li&gt;&amp;lt;li&gt;Jelly&amp;lt;/li&gt;&amp;lt;/ul&gt;")
  .sortable()
  .bind("endsort", function() {
    $(":text.food").val(function() {
      return $("ul.sortable li:eq(" + $(this).attr("data-index")  + ")").text();
    });
  });</pre>
</div>
</div>
<p><strong>.text() works on text and CDATA nodes</strong> (<a href="http://api.jquery.com/text/">.text() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/b30af34f28074b491929445f5aad3d62c63e772f">Commit</a>)</p>
<h3>Core</h3>
<p><strong>Quick Element Construction</strong> (<a href="http://api.jquery.com/jQuery/#jQuery2">jQuery() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/d40083c866738727aa7ffd7f13d2955bc9575d5e">Commit</a>)</p>
<p>When you create a single element with the jQuery function, you can now pass in an object to add attributes and events at the same time:</p>
<div>
<div>
<pre>jQuery("&lt;div/&gt;", {
    id: "foo",
    css: {
        height: "50px",
        width: "50px",
        color: "blue",
        backgroundColor: "#ccc"
    },
    click: function() {
       $(this).css("backgroundColor", "red");
    }
}).appendTo("body");</pre>
</div>
</div>
<p>The keys of the object are functions that will be called with each value passed as an argument.</p>
<p><strong>.eq(-N), .get(-N)</strong> (<a href="http://api.jquery.com/eq/">.eq() Documentation</a>, <a href="http://api.jquery.com/get/">.get() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/e532dfe5228217f55a33122a4438fd70522dbb4b">Commit</a>)</p>
<p>You can now pass in negative numbers for .get() and .eq(). For example, you can select the second-to-last div or, you can access the DOM element for the same:</p>
<div>
<div>
<pre>$("div").eq(-2);
$("div").get(-2);</pre>
</div>
</div>
<p><strong>New .first() and .last() methods</strong> (<a href="http://api.jquery.com/first/">.first() Documentation</a>, <a href="http://api.jquery.com/last/">.last() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/9de120e6d7cfffa3d990a6ccf23db3cd74e2bdc0">Commit</a>)</p>
<p>For convenience, <code>.first()</code> and <code>.last()</code> are aliases of <a href="http://api.jquery.com/eq/">.eq(0)</a> and <a href="http://api.jquery.com/eq/">.eq(-1)</a>.</p>
<p><strong>New .toArray() method</strong> (<a href="http://api.jquery.com/toArray/">.toArray() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/e124fec5e9cfee77cb23b27c0d43dc2631c83aab">Commit</a>)</p>
<p><a href="http://api.jquery.com/get">.get()</a> has historically returned an Array from the jQuery set. For further clarity, you can use <a href="http://api.jquery.com/toArray/">.toArray()</a> to achieve the same thing in jQuery 1.4. Unlike, .get(), however, .toArray() does not take an argument.</p>
<p><strong>jQuery() returns empty set</strong> (<a href="http://api.jquery.com/jQuery/">jQuery() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/04524287d3e0112deae570ff9247c734833431bb">Commit</a>)</p>
<p>In jQuery 1.3, <a href="http://api.jquery.com/jQuery/">jQuery()</a> returned a jQuery set containing just the document. in jQuery 1.4, it returns an empty jQuery set. This can be useful for creating an empty set and adding elements to it dynamically. Note: The <code>jQuery().ready()</code> technique still works in 1.4 but it has been deprecated. Please use either <code>jQuery(document).ready()</code> or <code>jQuery(function(){})</code>.</p>
<p><strong>jQuery(“TAG”)</strong> (<a href="http://api.jquery.com/element-selector/">Element Selector Documentation</a>, <a href="http://github.com/jquery/jquery/commit/4ea4fad0902839c06c281b5de7b0aca29922b63d">Commit</a>)</p>
<p>A faster path is used when passing in a single tag name.</p>
<p><strong>jQuery(“&lt;div&gt;”) jQuery(“&lt;div/&gt;”) and jQuery(“&lt;div&gt;&lt;/div&gt;”)</strong> (<a href="http://api.jquery.com/jQuery/#jQuery2">jQuery() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/c4c820efff4fa7bcce0d5bf0a448625278ea6379">Commit</a>)</p>
<p>All three now use the same code path (using document.createElement), improving performance for <code>jQuery("&lt;div&gt;&lt;/div&gt;")</code>. Note that if you specify attributes, we use the browser’s native parsing (using innerHTML).</p>
<h3>CSS</h3>
<p><strong>The performance of the .css() method has seen a 2x performance improvement.</strong></p>
<p><a title="Performance of .css() by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271691599/"><img src="http://farm5.static.flickr.com/4055/4271691599_8a2f2e0624.jpg" alt="Performance of .css()" width="500" height="375" /></a></p>
<p><strong>The performance of the <code>.addClass()</code>, <code>.removeClass()</code>, and <code>.hasClass()</code> methods has seen a 3x performance improvement.</strong></p>
<p><a title="Performance of addClass, removeClass, and hasClass by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4272434054/"><img src="http://farm5.static.flickr.com/4040/4272434054_819d8f9e19.jpg" alt="Performance of addClass, removeClass, and hasClass" width="500" height="375" /></a></p>
<p><strong>.toggleClass() can toggle multiple classes</strong> (<a href="http://api.jquery.com/toggleClass/">.toggleClass() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/5e6e53835e552920db4f88ac0c9eca71aaacbef0">Commit</a>)</p>
<p>You can now call <a href="http://api.jquery.com/toggleClass/">.toggleClass()</a> with multiple selectors and they will all be toggled.</p>
<div>
<div>
<pre>$("div").toggleClass("current active");</pre>
</div>
</div>
<h3>Data</h3>
<p><strong>.data() returns Object and .data(Object) sets the object</strong> (<a href="http://api.jquery.com/data/">.data() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/d36d224cc52e70d837306d33a03f517ef72abc60">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/f6a0bf6816f4e2e67382b1b13fdd3ff2ea4b22f8">Commit 2</a>)</p>
<p>It is sometimes desirable to work with the data attached to an element as a complete object. A common example would be wanting to copy the entire data from one element to another. In jQuery 1.4, <a href="http://api.jquery.com/data/">.data()</a> with no parameter returns the entire object, and <a href="http://api.jquery.com/data/">.data(Object)</a> sets the object. Keep in mind that this object includes events bound to the element, so use caution.</p>
<p><strong>Data cache is no longer created if it isn’t needed</strong> (<a href="http://github.com/jquery/jquery/commit/c4f144eeffd94c745839b0ced2de9c62cfa9f075">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/97e134fe80a734b97170bf43c9459511f4e165c7">Commit 2</a>, <a href="http://github.com/jquery/jquery/commit/67d445a703491c90a7d3c46be34bcdceb4d1c896">Commit 3</a>)</p>
<p>jQuery uses a unique expando on DOM elements that is used to get the <a href="http://api.jquery.com/data/">.data()</a> for a particular element. jQuery now avoids creating that expando when data is looked up but no data has been added. This potentially increases performance and avoids polluting the DOM in these cases.</p>
<h3>Effects</h3>
<p><strong>Per-property Easing</strong> (<a href="http://api.jquery.com/animate/#per-property-easing">Per-property Easing Documentation</a>, <a href="http://github.com/jquery/jquery/commit/93fdbeb963a9c350f807818c7cc99982942a92f3">Commit</a>)</p>
<p>In addition to being able to specify an easing function for an animation you can now specify an easing animation for individual properties. James Padolsey has more information and demos in <a href="http://james.padolsey.com/javascript/easing-in-jquery-1-4a2/">his blog post</a>.</p>
<div>
<div>
<pre>$("#clickme").click(function() {
  $("div").animate({
    width: ["+=200px", "swing"],
    height: ["+=50px", "linear"],
  }, 2000, function() {
      $(this).after("&lt;div&gt;Animation complete.&lt;/div&gt;");
  });
});</pre>
</div>
</div>
<h3>Events</h3>
<p><strong>New Method: jQuery.proxy()</strong> (<a href="http://api.jquery.com/jQuery.proxy/">jQuery.proxy() Documenation</a>, <a href="http://github.com/jquery/jquery/commit/66975de2d249643779e2b3daad0457f7f5f92508">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/1d2b1a57dae0b73b3d99197f73f4edb623b5574a">Commit 2</a>)</p>
<p>If you want to ensure that “this” inside a function will be permanently bound to a particular value, you can use jQuery.proxy to return a new function with that scope.</p>
<div>
<div>
<pre>var obj = {
  name: "John",
  test: function() {
    alert( this.name );
    $("#test").unbind("click", obj.test);
  }
};
 
$("#test").click( jQuery.proxy( obj, "test" ) );</pre>
</div>
</div>
<p><strong>Event Multi-binding</strong> (<a href="http://api.jquery.com/bind">.bind() Documentation</a>)</p>
<p>You can now pass an object of many events to bind to an element.</p>
<div>
<div>
<pre>$("div.test").bind({
  click: function(){
    $(this).addClass("active");
  },
  mouseenter: function(){
    $(this).addClass("inside");
  },
  mouseleave: function(){
    $(this).removeClass("inside");
  }
});</pre>
</div>
</div>
<p><strong>`change` and `submit` events normalized</strong> (<a href="http://api.jquery.com/change">Change Documentation</a>, <a href="http://api.jquery.com/submit">Submit Documentation</a>)</p>
<p>The change and submit events work reliably across browsers for both normal and live events. We override the normal change and submit events in Internet Explorer and replace them with events that work identically to the other browsers.</p>
<p><strong>New events: `focusin` and `focusout`</strong> (<a href="http://api.jquery.com/focusin/">.focusin() Documentation</a>, <a href="http://api.jquery.com/focusout/">.focusout() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/03481a52c72e417b01cfeb499f26738cf5ed5839">Commit</a>)</p>
<p><code>focusin</code> and <code>focusout</code> are generally equivalent to <code>focus</code> and <code>blur</code> but bubble, which helps tremendously if you are writing your own event delegation behavior. Please note that `focus` and `blur` will not work with the live() method; this was a design decision due to the <a href="http://www.w3.org/TR/DOM-Level-2-Events/events.html">DOM Events spec</a> defining focus/blur do not bubble.</p>
<div>
<div>
<pre>$("form").focusout(function(event) {
    var tgt = event.target;
    if (tgt.nodeName == "INPUT" &amp;&amp; !tgt.value) {
        $(tgt).after("&lt;span&gt;nothing here&lt;/span&gt;");
    }
});</pre>
</div>
</div>
<p><strong>All Events Can Be Live Events</strong> (<a href="http://api.jquery.com/live">.live() Documentation</a>)</p>
<p>With the exception of <a href="http://api.jquery.com/ready">ready</a>, <a href="http://api.jquery.com/focus">focus</a> (use focusin instead), and <a href="http://api.jquery.com/blur">blur</a> (use focusout instead), all events that can be bound using .bind() can also be live events.</p>
<p>We’re very proud to count some addtional events amongst those supported by <code>live()</code>. 1.4 introduces cross-browser support for<br />
<code>change</code>, <code>submit</code>, <code>focusin</code>, <code>focusout</code>, <code>mouseenter</code>, and <code>mouseleave</code> via the event delegation in <code>.live()</code>.</p>
<p>Note that if you need a live focus event, you should use focusin and focusout rather than focus and blur, because, as mentioned, focus and blur do not bubble.</p>
<p>Also, <code>live()</code> also now accepts a data object, just as <code>bind()</code> has. (<a href="http://github.com/jquery/jquery/commit/71efbdd3b26f3a283f8d4bfdcc7b6343142027b9">Commit</a>)</p>
<p><strong>live/die now work with context</strong> (<a href="http://github.com/jquery/jquery/commit/30e760b63fd6d82f30833cd2864f245dd9594cd9">Commit</a>)</p>
<p>You can now specify a context to the selector that will be used to bind a live event. If you do, only elements under that context will be bound. While the elements themselves do not need to exist when you create the live event, the context must exist.</p>
<p><strong>Make sure ready event has body at least</strong> (<a href="http://github.com/jquery/jquery/commit/262fcf7b7b919da1564509f621cf7480a5d5572b">Commit</a>)</p>
<p>jQuery now checks to see whether the body exists, and falls back to polling for the body if it does not.</p>
<p><strong>Unload is sped up in non-IE browsers that don’t need memory leak hand-holding.</strong> (<a href="http://github.com/jquery/jquery/commit/f3474c00cd6d9e5fd61b6ef1562003e9986ad67d">Commit</a>)</p>
<h3>Manipulation</h3>
<p>A number of DOM manipulation methods have seen dramatic overhauls in performance in jQuery 1.4.</p>
<p><strong>Performance of <a href="http://api.jquery.com/append">.append()</a>, <a href="http://api.jquery.com/prepend">.prepend()</a>, <a href="http://api.jquery.com/before">.before()</a>, and <a href="http://api.jquery.com/after">.after()</a> has been improved.</strong></p>
<p><a title="Performance of DOM Insertion by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271691471/"><img src="http://farm5.static.flickr.com/4029/4271691471_1240afd5af.jpg" alt="Performance of DOM Insertion" width="500" height="375" /></a></p>
<p><strong>Performance of <a href="http://api.jquery.com/html">.html()</a> has been improved by nearly 3x.</strong></p>
<p><a title="Performance of .html() by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271691747/"><img src="http://farm5.static.flickr.com/4037/4271691747_0cce01a33d.jpg" alt="Performance of .html()" width="500" height="375" /></a></p>
<p><strong>Performance of .remove() and .empty() has seen over a 4x speed increase.</strong></p>
<p><a title="Performance of .remove() and .empty() by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271690883/"><img src="http://farm3.static.flickr.com/2693/4271690883_3224979b9b.jpg" alt="Performance of .remove() and .empty()" width="500" height="375" /></a></p>
<p><strong>New Method: .detach()</strong> (<a href="http://api.jquery.com/detach/">.detach() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/7a67f8897d3c2ed97254f0fdb969be14e77962d1">Commit</a>)</p>
<p><code>detach()</code> removes an element from the DOM but does not remove the associated event handlers. This is appropriate for temporarily removing an element to manipulate and then return.</p>
<div>
<div>
<pre>var foo = $("#foo").click(function() {
    // do something
});
foo.detach();
// foo retains event handlers
foo.appendTo("body");</pre>
</div>
</div>
<p><strong>New unwrap() method</strong> (<a href="http://api.jquery.com/unwrap/">documentation</a>, <a href="http://github.com/jquery/jquery/commit/69e6e53555f21f07b534f1169298f7b33011bb4b">commit</a>)</p>
<p>The new unwrap method will take the children of a given parent and replace said parent with them. Like so:</p>
<div>
<div>
<pre>&lt;body&gt;
    &lt;div&gt;
        &lt;p&gt;annie&lt;/p&gt; &lt;p&gt;davey&lt;/p&gt; &lt;p&gt;stevie&lt;/p&gt;
    &lt;/div&gt;
&lt;/body&gt;</pre>
</div>
</div>
<div>
<div>
<pre>$('div').unwrap();</pre>
</div>
</div>
<div>
<div>
<pre>&lt;body&gt;
   &lt;p&gt;annie&lt;/p&gt; &lt;p&gt;davey&lt;/p&gt; &lt;p&gt;stevie&lt;/p&gt;
&lt;/body&gt;</pre>
</div>
</div>
<p><strong>Caching in domManip</strong> (<a href="http://github.com/jquery/jquery/commit/8db967e9d52407c8e76d81b9d472800667f6fa29">commit</a>)</p>
<p>jQuery caches the resulting nodes created using methods like <code>jQuery("&lt;div&gt;")</code> and <code>.after("&lt;div&gt;")</code>. This results in significantly faster performance on pages that do DOM manipulation with strings using these methods.</p>
<p><strong>before, after, replaceWith on disconnected nodes</strong> (<a href="http://github.com/jquery/jquery/commit/173c1477ae6efc4c2eeb7131ba0646c4e1323975">commit</a>)</p>
<p>You can now use before, after, and replaceWith on nodes that are not attached to the DOM. This allows you to do more complex manipulations before inserting the final structure into the DOM. This also prevents reflows from occuring while the manipulation is taking place.</p>
<div>
<div>
<pre>jQuery("&lt;div/&gt;").before("&lt;p&gt;Hello&lt;/p&gt;").appendTo("body")</pre>
</div>
</div>
<p><strong>.clone(true) also clones data</strong> (<a href="http://api.jquery.com/clone/">documentation</a>, <a href="http://github.com/jquery/jquery/commit/4b70f006f579fba24a882d80ca67f1971dbb4922">commit</a>)</p>
<p>In jQuery 1.3, .clone(true) did a deep clone, but did not clone data. In jQuery 1.4, it clones data, which means that events are cloned as well. This uses the same semantics as jQuery.extend, so plain objects and Arrays are cloned, while custom objects are not.</p>
<h3>Offset</h3>
<p><strong>.offset( coords | Function )</strong> (<a href="http://api.jquery.com/offset/">.offset() documentation</a>, <a href="http://github.com/jquery/jquery/commit/daffb954e397bd5d9f8e9aaedab6c0baa9609e1e">commit</a>)</p>
<p>It is now possible to set the offset of an element. Offset, like all setter methods, can now also accept a function as a second argument.</p>
<h3>Queueing</h3>
<p>Queueing has undergone an overhaul, improving the experience of working with queues other than the default <code>fx</code>.</p>
<p><strong>New .delay() method</strong> (<a href="http://api.jquery.com/delay/">.delay() documentation</a>, <a href="http://github.com/jquery/jquery/commit/bbd933cbfe6d31a749cb336d7a84155ccfab247f">commit</a>)</p>
<p>The <code>.delay()</code> method will delay any further elements in the queue for the specified number of milliseconds. By default, it will use the <code>fx</code> queue. You can specify an alternate queue as an optional second parameter to the delay function.</p>
<div>
<div>
<pre>$("div").fadeIn().delay(4000).fadeOut();</pre>
</div>
</div>
<p><strong>Queue next</strong> (<a href="http://api.jquery.com/queue/">.queue() documentation</a>, <a href="http://github.com/jquery/jquery/commit/89b4bc53ca0ca3d4e5c80b94ce92b09cc34af8ef">commit</a>)</p>
<p>In jQuery 1.4 the function that’s called is passed in another function, as the first argument, that when called automatically dequeues the next item and keeps the queue moving.</p>
<div>
<div>
<pre>jQuery("div").queue("ajax", function(next) {
  var self = this;
  jQuery.getJSON("/update", function(json) {
    $(self).html(json.text);
    next();
  };
}).queue("ajax", function() {
  $(this).fadeIn();
});</pre>
</div>
</div>
<p><strong>.clearQueue()</strong> (<a href="http://api.jquery.com/clearQueue/">documentation</a>, <a href="http://github.com/jquery/jquery/commit/d857315967a1cc07b73924bbdf2eb12f4f910c45">commit</a>)</p>
<p>Queues can now be cleared. This will remove any unexecuted functions from the queue, but not stop running functions. Using <code>.clearQueue()</code> without any parameters will clear the <code>fx</code> queue.</p>
<h3>Selectors</h3>
<p><strong>“#id p” is faster</strong> (<a href="http://github.com/jeresig/sizzle/commit/c5c18ae5f17f11b39b7f261633e4bfc5ef3e99d7">commit</a>) Any selector string that begins with an ID has an optimization to grab that immediately. ID rooted selectors will always be fastest.</p>
<h3>Traversing</h3>
<p><strong>.index(), .index(String)</strong> (<a href="http://api.jquery.com/index/">documentation</a>, <a href="http://github.com/jquery/jquery/commit/ffd457d4561eb1a6653aaef90f92a3b3010b9139">commit</a>)</p>
<p>The <code>.index()</code> method has been rewritten to be more far more intuitive and flexible.</p>
<p>You can now get the index of an element in relation to its siblings:</p>
<div>
<div>
<pre>// get the index of the first &lt;li&gt; in relation to its siblings:
$("li.current").index()</pre>
</div>
</div>
<p>You can get the index of an element in relation to to the current jQuery collection by passing in a selector or DOM element:</p>
<div>
<div>
<pre>// get the index of the &lt;h3 id="more-info"&gt; in relation to all &lt;h3&gt; elements:
$("#more-info").index("h3")</pre>
</div>
</div>
<p><strong>New .has() method</strong> (<a href="http://api.jquery.com/has/">documentation</a>, <a href="http://github.com/jquery/jquery/commit/4e27f17007c2329e31b449e61bb31197b90a37f1">commit</a>)</p>
<p>This is a method form of the <code>:has()</code> filter. It takes a given jQuery set and returns all of the same elements that contain a given selector.</p>
<p><strong>New .nextUntil(), .prevUntil(), .parentsUntil() methods</strong> (<a href="http://api.jquery.com/nextUntil/">.nextUntil() documentation</a>, <a href="http://api.jquery.com/prevUntil/">.prevUntil() documentation</a>, <a href="http://api.jquery.com/parentsUntil/">.parentsUntil() documentation</a>, <a href="http://github.com/jquery/jquery/commit/2b481b93cfca62f95aa7005e7db651456fa08e65">commit</a>)</p>
<p>The new “until” methods function similarly to <code>.nextAll()</code>, <code>.prevAll()</code>, <code>.parents()</code>, but the first argument they take is a selector that will terminate the traversal.</p>
<p><strong>.add(String, Element)</strong> (<a href="http://jquery14.com/%3C/p%3E%3Cp%3Ehttp://api.jquery.com/add/%3C/p%3E%3Cp%3E">.add() documentation</a>, <a href="http://jquery14.com/%3C/p%3E%3Cp%3Ehttp://github.com/jquery/jquery/commit/b0fe380cf89564305646bbd55d1fd7bd210fd591%3C/p%3E%3Cp%3E">commit</a>)<br />
The <code>.add()</code> now accepts a context. This is primarily useful in a chain when you want to add in addtional elements (returned from an ajax request, for example) and then manipulate those in addition to the others.</p>
<p><strong>.closest(filter, DOMElement)</strong> (<a href="http://api.jquery.com/closest/">.closest() documentation</a>, <a href="http://github.com/jquery/jquery/commit/d6991fa273515a8503692324499edcc71b5c3f64">commit</a>)</p>
<p>The closest method can now accept a context DOMElement as a second argument. Passing in a context will typically make your closest() calls much faster. This also applies to <code>live()</code> which leverages <code>closest()</code> internally.</p>
<h3>Utilities</h3>
<p><strong>jQuery.isEmptyObject()</strong> (<a href="http://api.jquery.com/jQuery.isEmptyObject/">jQuery.isEmptyObject() documentation</a>, <a href="http://github.com/jquery/jquery/commit/a38a5cd531a328319f8b7f3f33a84044b54591ce">commit</a>)</p>
<p>This returns true if there are <em>not</em> any properties on the object. You can only pass in objects to <code>jQuery.isEmptyObject()</code>, because jQuery performs an iteration on the object that is passed in without any other checks.</p>
<p><strong>jQuery.isPlainObject()</strong> (<a href="http://api.jquery.com/jQuery.isPlainObject/">jQuery.isPlainObject()</a>, <a href="http://github.com/jquery/jquery/commit/4b55e94d0849568a2fd121952f13a9d6571c731f">commit</a> )</p>
<p><code>jQuery.isPlainObject()</code> returns true if the object is an object literal and false if the object is another kind of object or a primitive.</p>
<p><strong>jQuery.contains()</strong> (<a href="http://api.jquery.com/jQuery.contains/">jQuery.contains() documentation</a>, <a href="http://github.com/jquery/jquery/commit/4e27f17007c2329e31b449e61bb31197b90a37f1">commit</a>)</p>
<p>jQuery.contains() returns true if both parameters are DOM nodes and the second parameter is contained inside the first.</p>
<p><strong>jQuery.noop</strong> (<a href="http://api.jquery.com/jQuery.noop/">jQuery.noop() documentation</a>, <a href="http://github.com/jquery/jquery/commit/6cb2945837ccca55204191a8e7a70b2b2486c28e">commit</a>)</p>
<p>jQuery.noop is empty function that can be used where a function is required.</p>
<p><strong>jQuery.unique()</strong> (<a href="http://api.jquery.com/jQuery.unique/">jQuery.unique() documentation</a>)</p>
<p>In jQuery 1.4, the <code>jQuery.unique()</code> method, which is used internally in the creation of the jQuery set, always returns results in document order. This means that jQuery sets returned from jQuery functions should be returned in document order.</p>
<h3>Miscellaneous</h3>
<p><strong>jQuery.browser is now engine-centric</strong> (<a href="http://api.jquery.com/jQuery.browser/">jQuery.browser documentation</a>, <a href="http://jquery14.com/%3Cbr%20/%3Ehttp://github.com/jquery/jquery/commit/ffb1867a4364ea65e60dad3469e8c8eb420ebcac">commit</a>)</p>
<p>For example, you can now test for Webkit with <code>jQuery.browser.webkit</code>.</p>
<p><strong>Better support for applets</strong> (<a href="http://github.com/jquery/jquery/commit/59802928566b6be3a66d65e77c2418fff37e6f5f">commit 1</a>, <a href="http://github.com/jquery/jquery/commit/3ec2f1aef6b137d0f639e2fc53f95352d24b9d90">commit 2</a>)</p>
<p>jQuery no longer attempts to bind events or data to Java applets (which throw exceptions).</p>
<p><strong>No longer use arguments.callee </strong> (<a href="http://github.com/jquery/jquery/commit/985856b823b1648bffc3fd63c1faf836d0ddaf7c">commit</a>)</p>
<p>For compliance with Caja and because it is slated to be deprecated in the upcoming ECMAScript 5 specification, we have removed all references to <code>arguments.callee</code> in jQuery core.</p>
<p><strong>Now use Closure Compiler instead of YUI Min</strong> (<a href="http://github.com/jquery/jquery/commit/3fd62eae9df3159fc238a515bb748140a942313d">commit</a>)</p>
<h3>Internal Reorganization</h3>
<p>One of the major pushes that we made with 1.4 was towards building a more legible, understandable, code base. To achieve that we did some major restructuring of the of the code base internals and began to establish some style guidelines for the code base.</p>
<p>Some of the major changes that were made:</p>
<ul>
<li>The old ‘core.js’ file has been split apart into ‘attribute.js’, ‘css.js’, ‘data.js’, ‘manipulation.js’, ‘traversing.js’, and ‘queue.js’.</li>
<li>The ready event has been moved into core.js (as it’s a fundamental part of jQuery itself).</li>
<li>The majority of core matches the new <a href="http://docs.jquery.com/JQuery_Core_Style_Guidelines">jQuery Core Style Guidelines</a>.</li>
<li>The logic for css and attributes have been split and aren’t so intertwined anymore.</li>
</ul>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://jquery.com/">http://jquery.com/</a></p>
<p><a title="jQuery Features" href="http://jquery14.com/day-01" target="_blank">http://jquery14.com/day-01</a></p>
<h3>Performance Overhaul of Popular Methods</h3>
<p>Many of the most popular and commonly used jQuery methods have seen a significant rewrite in jQuery 1.4. When analyzing the code base we found that we were able to make some significant performance gains by comparing jQuery against itself: Seeing how many internal function calls were being made and to work to <a href="http://ejohn.org/blog/function-call-profiling/">reduce the complexity</a> of the code base.</p>
<p><a title="# of Function Calls for Popular jQuery Methods by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271690739/"><img src="http://farm5.static.flickr.com/4008/4271690739_f0bced3a78.jpg" alt="# of Function Calls for Popular jQuery Methods" width="500" height="375" /></a><br />
<small><a title="# of Function Calls for Popular jQuery Methods by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271691293/">View the cropped chart.</a></small></p>
<p>In jQuery 1.4 we’ve significantly reduced the complexity of the most popular methods in jQuery. The full performance details can be found below.</p>
<h3>Easy Setter Functions</h3>
<p>For a while now, you’ve been able to pass a function into <code><a href="http://api.jquery.com/attr">.attr()</a></code> and the return value of that function is set into the appropriate attribute. This functionalilty has now been extended into all setter methods: <code><a href="http://api.jquery.com/css">.css()</a></code>, <code><a href="http://api.jquery.com/attr">.attr()</a></code>, <code><a href="http://api.jquery.com/val">.val()</a></code>, <code><a href="http://api.jquery.com/html">.html()</a></code>, <code><a href="http://api.jquery.com/text">.text()</a></code>, <code><a href="http://api.jquery.com/append">.append()</a></code>, <code><a href="http://api.jquery.com/prepend">.prepend()</a></code>,  <code><a href="http://api.jquery.com/before">.before()</a></code>, <code><a href="http://api.jquery.com/after">.after()</a></code>, <code><a href="http://api.jquery.com/replaceWith">.replaceWith()</a></code>, <code><a href="http://api.jquery.com/wrap">.wrap()</a></code>, <code><a href="http://api.jquery.com/wrapInner">.wrapInner()</a></code>, <code><a href="http://api.jquery.com/offset">.offset()</a></code>, <code><a href="http://api.jquery.com/addClass">.addClass()</a></code>, <code><a href="http://api.jquery.com/removeClass">.removeClass()</a></code>, and <code><a href="http://api.jquery.com/toggleClass">.toggleClass()</a></code>.</p>
<p>Addtionally, for the following options, the current value of the item is passed into the function as the second argument: <code><a href="http://api.jquery.com/css">.css()</a></code>, <code><a href="http://api.jquery.com/attr">.attr()</a></code>, <code><a href="http://api.jquery.com/val">.val()</a></code>, <code><a href="http://api.jquery.com/html">.html()</a></code>, <code><a href="http://api.jquery.com/text">.text()</a></code>, <code><a href="http://api.jquery.com/append">.append()</a></code>, <code><a href="http://api.jquery.com/prepend">.prepend()</a></code>, <code><a href="http://api.jquery.com/offset">.offset()</a></code>, <code><a href="http://api.jquery.com/addClass">.addClass()</a></code>, <code><a href="http://api.jquery.com/removeClass">.removeClass()</a></code>, and <code><a href="http://api.jquery.com/toggleClass">.toggleClass()</a></code>.</p>
<p>This enables code like:</p>
<div>
<div>
<pre>// find all ampersands in A's and wrap with a span
$('a').html(function(i,html){
  return html.replace(/&amp;amp;/gi,'&lt;span&gt;&amp;amp;&lt;/span&gt;');
});
 
// Add some information to the title of the anchors
$('a[target]').attr("title", function(i,title){
  return title + " (Opens in External Window)";
});</pre>
</div>
</div>
<h3>Ajax</h3>
<p><strong>Nested param serialization</strong> (<a href="http://api.jquery.com/jQuery.param/">jQuery.param() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/50d78e7658382d2a2f5149cae7a6572f78ce403f">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/67089eedf6f84acd9c16ea2a6dadadf7b13a7c84">Commit 2</a>)</p>
<p>jQuery 1.4 adds support for nested param serialization in jQuery.param, using the approach popularized by PHP, and supported by Ruby on Rails. For instance, <code>{foo: ["bar", "baz"]}</code> will be serialized as “foo[]=bar&amp;foo[]=baz”.</p>
<p>In jQuery 1.3, <code>{foo: ["bar", "baz"]}</code> was serialized as “foo=bar&amp;foo=baz”. However, there was no way to encode a single-element Array using this approach. If you need the old behavior, you can turn it back on by setting the traditional Ajax setting (globally via <code>jQuery.ajaxSettings.traditional</code> or on a case-by-case basis via the traditional flag).</p>
<p>There are three ways to enable the traditional way of serialization:</p>
<div>
<div>
<pre>// Enables for all serialization
jQuery.ajaxSettings.traditional = true;
 
// Enables for a single serialization
jQuery.param( stuff, true );
 
// Enables for a single Ajax requeset
$.ajax({ data: stuff, traditional: true });</pre>
</div>
</div>
<p>More information: <a href="http://api.jquery.com/jQuery.param/">jQuery.param() Documentation</a>, <a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/39518945047413f1185682078043e70e0c5c9091">Commit</a>, <a href="http://github.com/jquery/jquery/blob/master/src/ajax.js#L175">Code</a></p>
<p><strong>JSON and script types auto-detected by content-type</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax Documentation</a>, <a href="http://github.com/jquery/jquery/commit/787f271052220c20787104f0eba6441aedac22ff">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/6861b5d4eb16222ed5ea623af6ce75362b55d1d4">Commit 2</a>)</p>
<p>If the response to an Ajax request is returned with a JSON mime type (application/json), the dataType defaults to “json” (if no dataType is specified). Additionally, if the response to an Ajax request is returned with a JavaScript mime type (text/javascript or application/x-javascript) , the dataType defaults to “script” (if no dataType is specified), causing the script to automatically execute.</p>
<p><strong>Etag support has been added</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/28ab4d32247943e1ae3409b23fe69303df0bc9eb">Commit</a>)</p>
<p>By default, jQuery ignores the Last-Modified header for Ajax requests, preferring to make request and ignore the browser cache. Specifying ifModified: true causes jQuery to use the browser cache if available. jQuery 1.4 will also send the If-None-Match header (for ETag support) if you specify ifModified.</p>
<p><strong>Strict JSON parsing, using native JSON.parse</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/90a87c03b4943d75c24bc5e6246630231d12d933">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/308d6cdad023da190ace2a698ee4815ed8dad9c5">Commit 2</a>, <a href="http://github.com/jquery/jquery/commit/44e6beb10304789044de2c5a58f5bb82e8321636">Commit 3</a>)</p>
<p>jQuery 1.3 and earlier used JavaScript’s <code>eval</code> to evaluate incoming JSON. jQuery 1.4 uses the native JSON parser if available. It also validates incoming JSON for validity, so malformed JSON (for instance <code>{foo: "bar"}</code>) will be rejected by jQuery in <a href="http://api.jquery.com/jQuery.getJSON">jQuery.getJSON</a> and when specifying “json” as the dataType of an Ajax request.</p>
<p><strong>Serialize HTML5 elements</strong> (<a href="http://api.jquery.com/jQuery.param/">jQuery.param() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/b31b9bd756a1489c3b1b856ed8b624c55da9e02f">Commit</a>)</p>
<p>The new <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#attr-input-type-keywords">HTML5 input types</a> (such as `datetime` and `range`) will be included when you <code><a href="http://api.jquery.com/serialize">.serialize()</a></code> a form.</p>
<p><strong>Context for Ajax Request</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/183f37e4b4128af7ba096ac40046768b84b6d66e">Commit</a>)</p>
<p>You can now specify a context for an Ajax request, and all callbacks will have that context set (allowing you to simplify your code and possibly avoid having to use closures, or use other objects).</p>
<div>
<div>
<pre>jQuery.ajax({
    url: "test.html",
    context: document.body,
    success: function(){
        jQuery(this).addClass("done");
    }
});</pre>
</div>
</div>
<p><strong>Success callback receives XHR object as third argument</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/c2101245c07afdb831b0c79869c7263420407b67">Commit</a>)</p>
<p>The success callback for any ajax request now receives the XMLHttpRequest object as the third argument. Previously this XHR object was only accessible as the return value for <code>$.ajax</code> and the like.</p>
<p><strong>Explicitly set a content-type</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/25b0ba9f9612583033b902a0e40345463a3a71d0">Commit</a>)</p>
<p>In jQuery 1.3, the contentType setting was ignored in <a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax</a> if no data was sent. In jQuery 1.4, the contentType is always sent. This fixes an issue with some backends that used the Content-Type header to decide what kind of response to send.</p>
<p><strong>Explicitly specify a JSONP callback name</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax Documentation</a>,  <a href="http://github.com/jquery/jquery/commit/fbc73d45b487dd863886c7fd3f0af1fd4dec261b">Commit</a>)</p>
<p>You can now specify the name of the JSONP callback in <a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax()</a> using the jsonpCallback option.</p>
<p><strong>Avoid pre-flighting cross-domain XHR</strong> (<a href="http://github.com/jquery/jquery/commit/a7678267d848fcef8775c8b9f4fa3e507b8cc5f4">Commit</a>)</p>
<p>Cross-domain ajax (for the browsers that support it) is smoother with jQuery as preflighting is avoided by default.</p>
<p><strong>jQuery.ajax() is now using onreadystatechange instead of a timer</strong> (<a href="http://github.com/jquery/jquery/commit/fe6c86d53046b0f4d648f61c0b8e75387af65152">Commit</a>)</p>
<p>Ajax requests should now take fewer resources by using onreadystatechange instead of polling.</p>
<h3>Attributes</h3>
<p><strong>The performance of <code>.css()</code> and  <code>.attr() </code> has been improved.</strong></p>
<p><a title="Performance of .css() and .attr() by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271691147/"><img src="http://farm5.static.flickr.com/4026/4271691147_fd72853fa4.jpg" alt="Performance of .css() and .attr()" width="500" height="375" /></a></p>
<p><strong>The <code>.attr()</code> takes a function setter</strong> (<a href="http://api.jquery.com/attr/">.attr() Documentation</a>)</p>
<p>Not only can you use a function with <code>.attr()</code>, but you can also use the current value of the attribute with the function.</p>
<div>
<div>
<pre>jQuery('&lt;img src="enter.png" alt="enter your name" /&gt;')
.attr("alt", function(index, value) {
    return "Please, " + value;
});</pre>
</div>
</div>
<p><strong>.val( Function )</strong> (<a href="http://api.jquery.com/val/">.val() Documentation</a>)</p>
<div>
<div>
<pre>&lt;input class="food" type='text' data-index="0" /&gt;
&lt;input class="food" type='text' data-index="1" /&gt;</pre>
</div>
</div>
<div>
<div>
<pre>jQuery("input:text.food").hide();
 
jQuery("&amp;lt;ul class='sortable'&gt;&lt;li&gt;Peanut Butter&amp;lt;/li&gt;&amp;lt;li&gt;Jelly&amp;lt;/li&gt;&amp;lt;/ul&gt;")
  .sortable()
  .bind("endsort", function() {
    $(":text.food").val(function() {
      return $("ul.sortable li:eq(" + $(this).attr("data-index")  + ")").text();
    });
  });</pre>
</div>
</div>
<p><strong>.text() works on text and CDATA nodes</strong> (<a href="http://api.jquery.com/text/">.text() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/b30af34f28074b491929445f5aad3d62c63e772f">Commit</a>)</p>
<h3>Core</h3>
<p><strong>Quick Element Construction</strong> (<a href="http://api.jquery.com/jQuery/#jQuery2">jQuery() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/d40083c866738727aa7ffd7f13d2955bc9575d5e">Commit</a>)</p>
<p>When you create a single element with the jQuery function, you can now pass in an object to add attributes and events at the same time:</p>
<div>
<div>
<pre>jQuery("&lt;div/&gt;", {
    id: "foo",
    css: {
        height: "50px",
        width: "50px",
        color: "blue",
        backgroundColor: "#ccc"
    },
    click: function() {
       $(this).css("backgroundColor", "red");
    }
}).appendTo("body");</pre>
</div>
</div>
<p>The keys of the object are functions that will be called with each value passed as an argument.</p>
<p><strong>.eq(-N), .get(-N)</strong> (<a href="http://api.jquery.com/eq/">.eq() Documentation</a>, <a href="http://api.jquery.com/get/">.get() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/e532dfe5228217f55a33122a4438fd70522dbb4b">Commit</a>)</p>
<p>You can now pass in negative numbers for .get() and .eq(). For example, you can select the second-to-last div or, you can access the DOM element for the same:</p>
<div>
<div>
<pre>$("div").eq(-2);
$("div").get(-2);</pre>
</div>
</div>
<p><strong>New .first() and .last() methods</strong> (<a href="http://api.jquery.com/first/">.first() Documentation</a>, <a href="http://api.jquery.com/last/">.last() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/9de120e6d7cfffa3d990a6ccf23db3cd74e2bdc0">Commit</a>)</p>
<p>For convenience, <code>.first()</code> and <code>.last()</code> are aliases of <a href="http://api.jquery.com/eq/">.eq(0)</a> and <a href="http://api.jquery.com/eq/">.eq(-1)</a>.</p>
<p><strong>New .toArray() method</strong> (<a href="http://api.jquery.com/toArray/">.toArray() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/e124fec5e9cfee77cb23b27c0d43dc2631c83aab">Commit</a>)</p>
<p><a href="http://api.jquery.com/get">.get()</a> has historically returned an Array from the jQuery set. For further clarity, you can use <a href="http://api.jquery.com/toArray/">.toArray()</a> to achieve the same thing in jQuery 1.4. Unlike, .get(), however, .toArray() does not take an argument.</p>
<p><strong>jQuery() returns empty set</strong> (<a href="http://api.jquery.com/jQuery/">jQuery() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/04524287d3e0112deae570ff9247c734833431bb">Commit</a>)</p>
<p>In jQuery 1.3, <a href="http://api.jquery.com/jQuery/">jQuery()</a> returned a jQuery set containing just the document. in jQuery 1.4, it returns an empty jQuery set. This can be useful for creating an empty set and adding elements to it dynamically. Note: The <code>jQuery().ready()</code> technique still works in 1.4 but it has been deprecated. Please use either <code>jQuery(document).ready()</code> or <code>jQuery(function(){})</code>.</p>
<p><strong>jQuery(“TAG”)</strong> (<a href="http://api.jquery.com/element-selector/">Element Selector Documentation</a>, <a href="http://github.com/jquery/jquery/commit/4ea4fad0902839c06c281b5de7b0aca29922b63d">Commit</a>)</p>
<p>A faster path is used when passing in a single tag name.</p>
<p><strong>jQuery(“&lt;div&gt;”) jQuery(“&lt;div/&gt;”) and jQuery(“&lt;div&gt;&lt;/div&gt;”)</strong> (<a href="http://api.jquery.com/jQuery/#jQuery2">jQuery() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/c4c820efff4fa7bcce0d5bf0a448625278ea6379">Commit</a>)</p>
<p>All three now use the same code path (using document.createElement), improving performance for <code>jQuery("&lt;div&gt;&lt;/div&gt;")</code>. Note that if you specify attributes, we use the browser’s native parsing (using innerHTML).</p>
<h3>CSS</h3>
<p><strong>The performance of the .css() method has seen a 2x performance improvement.</strong></p>
<p><a title="Performance of .css() by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271691599/"><img src="http://farm5.static.flickr.com/4055/4271691599_8a2f2e0624.jpg" alt="Performance of .css()" width="500" height="375" /></a></p>
<p><strong>The performance of the <code>.addClass()</code>, <code>.removeClass()</code>, and <code>.hasClass()</code> methods has seen a 3x performance improvement.</strong></p>
<p><a title="Performance of addClass, removeClass, and hasClass by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4272434054/"><img src="http://farm5.static.flickr.com/4040/4272434054_819d8f9e19.jpg" alt="Performance of addClass, removeClass, and hasClass" width="500" height="375" /></a></p>
<p><strong>.toggleClass() can toggle multiple classes</strong> (<a href="http://api.jquery.com/toggleClass/">.toggleClass() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/5e6e53835e552920db4f88ac0c9eca71aaacbef0">Commit</a>)</p>
<p>You can now call <a href="http://api.jquery.com/toggleClass/">.toggleClass()</a> with multiple selectors and they will all be toggled.</p>
<div>
<div>
<pre>$("div").toggleClass("current active");</pre>
</div>
</div>
<h3>Data</h3>
<p><strong>.data() returns Object and .data(Object) sets the object</strong> (<a href="http://api.jquery.com/data/">.data() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/d36d224cc52e70d837306d33a03f517ef72abc60">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/f6a0bf6816f4e2e67382b1b13fdd3ff2ea4b22f8">Commit 2</a>)</p>
<p>It is sometimes desirable to work with the data attached to an element as a complete object. A common example would be wanting to copy the entire data from one element to another. In jQuery 1.4, <a href="http://api.jquery.com/data/">.data()</a> with no parameter returns the entire object, and <a href="http://api.jquery.com/data/">.data(Object)</a> sets the object. Keep in mind that this object includes events bound to the element, so use caution.</p>
<p><strong>Data cache is no longer created if it isn’t needed</strong> (<a href="http://github.com/jquery/jquery/commit/c4f144eeffd94c745839b0ced2de9c62cfa9f075">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/97e134fe80a734b97170bf43c9459511f4e165c7">Commit 2</a>, <a href="http://github.com/jquery/jquery/commit/67d445a703491c90a7d3c46be34bcdceb4d1c896">Commit 3</a>)</p>
<p>jQuery uses a unique expando on DOM elements that is used to get the <a href="http://api.jquery.com/data/">.data()</a> for a particular element. jQuery now avoids creating that expando when data is looked up but no data has been added. This potentially increases performance and avoids polluting the DOM in these cases.</p>
<h3>Effects</h3>
<p><strong>Per-property Easing</strong> (<a href="http://api.jquery.com/animate/#per-property-easing">Per-property Easing Documentation</a>, <a href="http://github.com/jquery/jquery/commit/93fdbeb963a9c350f807818c7cc99982942a92f3">Commit</a>)</p>
<p>In addition to being able to specify an easing function for an animation you can now specify an easing animation for individual properties. James Padolsey has more information and demos in <a href="http://james.padolsey.com/javascript/easing-in-jquery-1-4a2/">his blog post</a>.</p>
<div>
<div>
<pre>$("#clickme").click(function() {
  $("div").animate({
    width: ["+=200px", "swing"],
    height: ["+=50px", "linear"],
  }, 2000, function() {
      $(this).after("&lt;div&gt;Animation complete.&lt;/div&gt;");
  });
});</pre>
</div>
</div>
<h3>Events</h3>
<p><strong>New Method: jQuery.proxy()</strong> (<a href="http://api.jquery.com/jQuery.proxy/">jQuery.proxy() Documenation</a>, <a href="http://github.com/jquery/jquery/commit/66975de2d249643779e2b3daad0457f7f5f92508">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/1d2b1a57dae0b73b3d99197f73f4edb623b5574a">Commit 2</a>)</p>
<p>If you want to ensure that “this” inside a function will be permanently bound to a particular value, you can use jQuery.proxy to return a new function with that scope.</p>
<div>
<div>
<pre>var obj = {
  name: "John",
  test: function() {
    alert( this.name );
    $("#test").unbind("click", obj.test);
  }
};
 
$("#test").click( jQuery.proxy( obj, "test" ) );</pre>
</div>
</div>
<p><strong>Event Multi-binding</strong> (<a href="http://api.jquery.com/bind">.bind() Documentation</a>)</p>
<p>You can now pass an object of many events to bind to an element.</p>
<div>
<div>
<pre>$("div.test").bind({
  click: function(){
    $(this).addClass("active");
  },
  mouseenter: function(){
    $(this).addClass("inside");
  },
  mouseleave: function(){
    $(this).removeClass("inside");
  }
});</pre>
</div>
</div>
<p><strong>`change` and `submit` events normalized</strong> (<a href="http://api.jquery.com/change">Change Documentation</a>, <a href="http://api.jquery.com/submit">Submit Documentation</a>)</p>
<p>The change and submit events work reliably across browsers for both normal and live events. We override the normal change and submit events in Internet Explorer and replace them with events that work identically to the other browsers.</p>
<p><strong>New events: `focusin` and `focusout`</strong> (<a href="http://api.jquery.com/focusin/">.focusin() Documentation</a>, <a href="http://api.jquery.com/focusout/">.focusout() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/03481a52c72e417b01cfeb499f26738cf5ed5839">Commit</a>)</p>
<p><code>focusin</code> and <code>focusout</code> are generally equivalent to <code>focus</code> and <code>blur</code> but bubble, which helps tremendously if you are writing your own event delegation behavior. Please note that `focus` and `blur` will not work with the live() method; this was a design decision due to the <a href="http://www.w3.org/TR/DOM-Level-2-Events/events.html">DOM Events spec</a> defining focus/blur do not bubble.</p>
<div>
<div>
<pre>$("form").focusout(function(event) {
    var tgt = event.target;
    if (tgt.nodeName == "INPUT" &amp;&amp; !tgt.value) {
        $(tgt).after("&lt;span&gt;nothing here&lt;/span&gt;");
    }
});</pre>
</div>
</div>
<p><strong>All Events Can Be Live Events</strong> (<a href="http://api.jquery.com/live">.live() Documentation</a>)</p>
<p>With the exception of <a href="http://api.jquery.com/ready">ready</a>, <a href="http://api.jquery.com/focus">focus</a> (use focusin instead), and <a href="http://api.jquery.com/blur">blur</a> (use focusout instead), all events that can be bound using .bind() can also be live events.</p>
<p>We’re very proud to count some addtional events amongst those supported by <code>live()</code>. 1.4 introduces cross-browser support for<br />
<code>change</code>, <code>submit</code>, <code>focusin</code>, <code>focusout</code>, <code>mouseenter</code>, and <code>mouseleave</code> via the event delegation in <code>.live()</code>.</p>
<p>Note that if you need a live focus event, you should use focusin and focusout rather than focus and blur, because, as mentioned, focus and blur do not bubble.</p>
<p>Also, <code>live()</code> also now accepts a data object, just as <code>bind()</code> has. (<a href="http://github.com/jquery/jquery/commit/71efbdd3b26f3a283f8d4bfdcc7b6343142027b9">Commit</a>)</p>
<p><strong>live/die now work with context</strong> (<a href="http://github.com/jquery/jquery/commit/30e760b63fd6d82f30833cd2864f245dd9594cd9">Commit</a>)</p>
<p>You can now specify a context to the selector that will be used to bind a live event. If you do, only elements under that context will be bound. While the elements themselves do not need to exist when you create the live event, the context must exist.</p>
<p><strong>Make sure ready event has body at least</strong> (<a href="http://github.com/jquery/jquery/commit/262fcf7b7b919da1564509f621cf7480a5d5572b">Commit</a>)</p>
<p>jQuery now checks to see whether the body exists, and falls back to polling for the body if it does not.</p>
<p><strong>Unload is sped up in non-IE browsers that don’t need memory leak hand-holding.</strong> (<a href="http://github.com/jquery/jquery/commit/f3474c00cd6d9e5fd61b6ef1562003e9986ad67d">Commit</a>)</p>
<h3>Manipulation</h3>
<p>A number of DOM manipulation methods have seen dramatic overhauls in performance in jQuery 1.4.</p>
<p><strong>Performance of <a href="http://api.jquery.com/append">.append()</a>, <a href="http://api.jquery.com/prepend">.prepend()</a>, <a href="http://api.jquery.com/before">.before()</a>, and <a href="http://api.jquery.com/after">.after()</a> has been improved.</strong></p>
<p><a title="Performance of DOM Insertion by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271691471/"><img src="http://farm5.static.flickr.com/4029/4271691471_1240afd5af.jpg" alt="Performance of DOM Insertion" width="500" height="375" /></a></p>
<p><strong>Performance of <a href="http://api.jquery.com/html">.html()</a> has been improved by nearly 3x.</strong></p>
<p><a title="Performance of .html() by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271691747/"><img src="http://farm5.static.flickr.com/4037/4271691747_0cce01a33d.jpg" alt="Performance of .html()" width="500" height="375" /></a></p>
<p><strong>Performance of .remove() and .empty() has seen over a 4x speed increase.</strong></p>
<p><a title="Performance of .remove() and .empty() by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271690883/"><img src="http://farm3.static.flickr.com/2693/4271690883_3224979b9b.jpg" alt="Performance of .remove() and .empty()" width="500" height="375" /></a></p>
<p><strong>New Method: .detach()</strong> (<a href="http://api.jquery.com/detach/">.detach() Documentation</a>, <a href="http://github.com/jquery/jquery/commit/7a67f8897d3c2ed97254f0fdb969be14e77962d1">Commit</a>)</p>
<p><code>detach()</code> removes an element from the DOM but does not remove the associated event handlers. This is appropriate for temporarily removing an element to manipulate and then return.</p>
<div>
<div>
<pre>var foo = $("#foo").click(function() {
    // do something
});
foo.detach();
// foo retains event handlers
foo.appendTo("body");</pre>
</div>
</div>
<p><strong>New unwrap() method</strong> (<a href="http://api.jquery.com/unwrap/">documentation</a>, <a href="http://github.com/jquery/jquery/commit/69e6e53555f21f07b534f1169298f7b33011bb4b">commit</a>)</p>
<p>The new unwrap method will take the children of a given parent and replace said parent with them. Like so:</p>
<div>
<div>
<pre>&lt;body&gt;
    &lt;div&gt;
        &lt;p&gt;annie&lt;/p&gt; &lt;p&gt;davey&lt;/p&gt; &lt;p&gt;stevie&lt;/p&gt;
    &lt;/div&gt;
&lt;/body&gt;</pre>
</div>
</div>
<div>
<div>
<pre>$('div').unwrap();</pre>
</div>
</div>
<div>
<div>
<pre>&lt;body&gt;
   &lt;p&gt;annie&lt;/p&gt; &lt;p&gt;davey&lt;/p&gt; &lt;p&gt;stevie&lt;/p&gt;
&lt;/body&gt;</pre>
</div>
</div>
<p><strong>Caching in domManip</strong> (<a href="http://github.com/jquery/jquery/commit/8db967e9d52407c8e76d81b9d472800667f6fa29">commit</a>)</p>
<p>jQuery caches the resulting nodes created using methods like <code>jQuery("&lt;div&gt;")</code> and <code>.after("&lt;div&gt;")</code>. This results in significantly faster performance on pages that do DOM manipulation with strings using these methods.</p>
<p><strong>before, after, replaceWith on disconnected nodes</strong> (<a href="http://github.com/jquery/jquery/commit/173c1477ae6efc4c2eeb7131ba0646c4e1323975">commit</a>)</p>
<p>You can now use before, after, and replaceWith on nodes that are not attached to the DOM. This allows you to do more complex manipulations before inserting the final structure into the DOM. This also prevents reflows from occuring while the manipulation is taking place.</p>
<div>
<div>
<pre>jQuery("&lt;div/&gt;").before("&lt;p&gt;Hello&lt;/p&gt;").appendTo("body")</pre>
</div>
</div>
<p><strong>.clone(true) also clones data</strong> (<a href="http://api.jquery.com/clone/">documentation</a>, <a href="http://github.com/jquery/jquery/commit/4b70f006f579fba24a882d80ca67f1971dbb4922">commit</a>)</p>
<p>In jQuery 1.3, .clone(true) did a deep clone, but did not clone data. In jQuery 1.4, it clones data, which means that events are cloned as well. This uses the same semantics as jQuery.extend, so plain objects and Arrays are cloned, while custom objects are not.</p>
<h3>Offset</h3>
<p><strong>.offset( coords | Function )</strong> (<a href="http://api.jquery.com/offset/">.offset() documentation</a>, <a href="http://github.com/jquery/jquery/commit/daffb954e397bd5d9f8e9aaedab6c0baa9609e1e">commit</a>)</p>
<p>It is now possible to set the offset of an element. Offset, like all setter methods, can now also accept a function as a second argument.</p>
<h3>Queueing</h3>
<p>Queueing has undergone an overhaul, improving the experience of working with queues other than the default <code>fx</code>.</p>
<p><strong>New .delay() method</strong> (<a href="http://api.jquery.com/delay/">.delay() documentation</a>, <a href="http://github.com/jquery/jquery/commit/bbd933cbfe6d31a749cb336d7a84155ccfab247f">commit</a>)</p>
<p>The <code>.delay()</code> method will delay any further elements in the queue for the specified number of milliseconds. By default, it will use the <code>fx</code> queue. You can specify an alternate queue as an optional second parameter to the delay function.</p>
<div>
<div>
<pre>$("div").fadeIn().delay(4000).fadeOut();</pre>
</div>
</div>
<p><strong>Queue next</strong> (<a href="http://api.jquery.com/queue/">.queue() documentation</a>, <a href="http://github.com/jquery/jquery/commit/89b4bc53ca0ca3d4e5c80b94ce92b09cc34af8ef">commit</a>)</p>
<p>In jQuery 1.4 the function that’s called is passed in another function, as the first argument, that when called automatically dequeues the next item and keeps the queue moving.</p>
<div>
<div>
<pre>jQuery("div").queue("ajax", function(next) {
  var self = this;
  jQuery.getJSON("/update", function(json) {
    $(self).html(json.text);
    next();
  };
}).queue("ajax", function() {
  $(this).fadeIn();
});</pre>
</div>
</div>
<p><strong>.clearQueue()</strong> (<a href="http://api.jquery.com/clearQueue/">documentation</a>, <a href="http://github.com/jquery/jquery/commit/d857315967a1cc07b73924bbdf2eb12f4f910c45">commit</a>)</p>
<p>Queues can now be cleared. This will remove any unexecuted functions from the queue, but not stop running functions. Using <code>.clearQueue()</code> without any parameters will clear the <code>fx</code> queue.</p>
<h3>Selectors</h3>
<p><strong>“#id p” is faster</strong> (<a href="http://github.com/jeresig/sizzle/commit/c5c18ae5f17f11b39b7f261633e4bfc5ef3e99d7">commit</a>) Any selector string that begins with an ID has an optimization to grab that immediately. ID rooted selectors will always be fastest.</p>
<h3>Traversing</h3>
<p><strong>.index(), .index(String)</strong> (<a href="http://api.jquery.com/index/">documentation</a>, <a href="http://github.com/jquery/jquery/commit/ffd457d4561eb1a6653aaef90f92a3b3010b9139">commit</a>)</p>
<p>The <code>.index()</code> method has been rewritten to be more far more intuitive and flexible.</p>
<p>You can now get the index of an element in relation to its siblings:</p>
<div>
<div>
<pre>// get the index of the first &lt;li&gt; in relation to its siblings:
$("li.current").index()</pre>
</div>
</div>
<p>You can get the index of an element in relation to to the current jQuery collection by passing in a selector or DOM element:</p>
<div>
<div>
<pre>// get the index of the &lt;h3 id="more-info"&gt; in relation to all &lt;h3&gt; elements:
$("#more-info").index("h3")</pre>
</div>
</div>
<p><strong>New .has() method</strong> (<a href="http://api.jquery.com/has/">documentation</a>, <a href="http://github.com/jquery/jquery/commit/4e27f17007c2329e31b449e61bb31197b90a37f1">commit</a>)</p>
<p>This is a method form of the <code>:has()</code> filter. It takes a given jQuery set and returns all of the same elements that contain a given selector.</p>
<p><strong>New .nextUntil(), .prevUntil(), .parentsUntil() methods</strong> (<a href="http://api.jquery.com/nextUntil/">.nextUntil() documentation</a>, <a href="http://api.jquery.com/prevUntil/">.prevUntil() documentation</a>, <a href="http://api.jquery.com/parentsUntil/">.parentsUntil() documentation</a>, <a href="http://github.com/jquery/jquery/commit/2b481b93cfca62f95aa7005e7db651456fa08e65">commit</a>)</p>
<p>The new “until” methods function similarly to <code>.nextAll()</code>, <code>.prevAll()</code>, <code>.parents()</code>, but the first argument they take is a selector that will terminate the traversal.</p>
<p><strong>.add(String, Element)</strong> (<a href="http://jquery14.com/%3C/p%3E%3Cp%3Ehttp://api.jquery.com/add/%3C/p%3E%3Cp%3E">.add() documentation</a>, <a href="http://jquery14.com/%3C/p%3E%3Cp%3Ehttp://github.com/jquery/jquery/commit/b0fe380cf89564305646bbd55d1fd7bd210fd591%3C/p%3E%3Cp%3E">commit</a>)<br />
The <code>.add()</code> now accepts a context. This is primarily useful in a chain when you want to add in addtional elements (returned from an ajax request, for example) and then manipulate those in addition to the others.</p>
<p><strong>.closest(filter, DOMElement)</strong> (<a href="http://api.jquery.com/closest/">.closest() documentation</a>, <a href="http://github.com/jquery/jquery/commit/d6991fa273515a8503692324499edcc71b5c3f64">commit</a>)</p>
<p>The closest method can now accept a context DOMElement as a second argument. Passing in a context will typically make your closest() calls much faster. This also applies to <code>live()</code> which leverages <code>closest()</code> internally.</p>
<h3>Utilities</h3>
<p><strong>jQuery.isEmptyObject()</strong> (<a href="http://api.jquery.com/jQuery.isEmptyObject/">jQuery.isEmptyObject() documentation</a>, <a href="http://github.com/jquery/jquery/commit/a38a5cd531a328319f8b7f3f33a84044b54591ce">commit</a>)</p>
<p>This returns true if there are <em>not</em> any properties on the object. You can only pass in objects to <code>jQuery.isEmptyObject()</code>, because jQuery performs an iteration on the object that is passed in without any other checks.</p>
<p><strong>jQuery.isPlainObject()</strong> (<a href="http://api.jquery.com/jQuery.isPlainObject/">jQuery.isPlainObject()</a>, <a href="http://github.com/jquery/jquery/commit/4b55e94d0849568a2fd121952f13a9d6571c731f">commit</a> )</p>
<p><code>jQuery.isPlainObject()</code> returns true if the object is an object literal and false if the object is another kind of object or a primitive.</p>
<p><strong>jQuery.contains()</strong> (<a href="http://api.jquery.com/jQuery.contains/">jQuery.contains() documentation</a>, <a href="http://github.com/jquery/jquery/commit/4e27f17007c2329e31b449e61bb31197b90a37f1">commit</a>)</p>
<p>jQuery.contains() returns true if both parameters are DOM nodes and the second parameter is contained inside the first.</p>
<p><strong>jQuery.noop</strong> (<a href="http://api.jquery.com/jQuery.noop/">jQuery.noop() documentation</a>, <a href="http://github.com/jquery/jquery/commit/6cb2945837ccca55204191a8e7a70b2b2486c28e">commit</a>)</p>
<p>jQuery.noop is empty function that can be used where a function is required.</p>
<p><strong>jQuery.unique()</strong> (<a href="http://api.jquery.com/jQuery.unique/">jQuery.unique() documentation</a>)</p>
<p>In jQuery 1.4, the <code>jQuery.unique()</code> method, which is used internally in the creation of the jQuery set, always returns results in document order. This means that jQuery sets returned from jQuery functions should be returned in document order.</p>
<h3>Miscellaneous</h3>
<p><strong>jQuery.browser is now engine-centric</strong> (<a href="http://api.jquery.com/jQuery.browser/">jQuery.browser documentation</a>, <a href="http://jquery14.com/%3Cbr%20/%3Ehttp://github.com/jquery/jquery/commit/ffb1867a4364ea65e60dad3469e8c8eb420ebcac">commit</a>)</p>
<p>For example, you can now test for Webkit with <code>jQuery.browser.webkit</code>.</p>
<p><strong>Better support for applets</strong> (<a href="http://github.com/jquery/jquery/commit/59802928566b6be3a66d65e77c2418fff37e6f5f">commit 1</a>, <a href="http://github.com/jquery/jquery/commit/3ec2f1aef6b137d0f639e2fc53f95352d24b9d90">commit 2</a>)</p>
<p>jQuery no longer attempts to bind events or data to Java applets (which throw exceptions).</p>
<p><strong>No longer use arguments.callee </strong> (<a href="http://github.com/jquery/jquery/commit/985856b823b1648bffc3fd63c1faf836d0ddaf7c">commit</a>)</p>
<p>For compliance with Caja and because it is slated to be deprecated in the upcoming ECMAScript 5 specification, we have removed all references to <code>arguments.callee</code> in jQuery core.</p>
<p><strong>Now use Closure Compiler instead of YUI Min</strong> (<a href="http://github.com/jquery/jquery/commit/3fd62eae9df3159fc238a515bb748140a942313d">commit</a>)</p>
<h3>Internal Reorganization</h3>
<p>One of the major pushes that we made with 1.4 was towards building a more legible, understandable, code base. To achieve that we did some major restructuring of the of the code base internals and began to establish some style guidelines for the code base.</p>
<p>Some of the major changes that were made:</p>
<ul>
<li>The old ‘core.js’ file has been split apart into ‘attribute.js’, ‘css.js’, ‘data.js’, ‘manipulation.js’, ‘traversing.js’, and ‘queue.js’.</li>
<li>The ready event has been moved into core.js (as it’s a fundamental part of jQuery itself).</li>
<li>The majority of core matches the new <a href="http://docs.jquery.com/JQuery_Core_Style_Guidelines">jQuery Core Style Guidelines</a>.</li>
<li>The logic for css and attributes have been split and aren’t so intertwined anymore.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blueb.net/2010/01/17/jquery-1-4-is-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple’s Magic Mouse to play nice on Windows</title>
		<link>http://blueb.net/2009/12/18/apple%e2%80%99s-magic-mouse-to-play-nice-on-windows/</link>
		<comments>http://blueb.net/2009/12/18/apple%e2%80%99s-magic-mouse-to-play-nice-on-windows/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 14:40:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Develop]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[Magic Mouse]]></category>
		<category><![CDATA[매직마우스]]></category>
		<category><![CDATA[애플]]></category>

		<guid isPermaLink="false">http://blueb.net/?p=140</guid>
		<description><![CDATA[<p>애플 매직마우스를 Windows XP, Windows 7 에서 문제 없이 사용하기 위해서는(멀티스크롤, 멀티터치 기능) 별도의 드라이버가 필요 합니다.<br />
애플 공식 드라이버는 아니지만,  문제 없이 잘 작동합니다.</p>
<p>32비트 버전을 설치하는데 운영체제에 설치 할 수 없다는 경고 메시지가 뜨면서 설치가 되질 않더군요!<br />
오기를 가지고 설치가 될대까지 계속 시도를 했습니다 10번 찍어 안넘어가는 나무 없다고, 찍으니깐 넘어가네요.. ㅎㅎ<br />
유용하게 사용하시길.. ^^</p>
<p>(맥기기는 역시 맥과 궁합이 잘 맞습니다, 자주 팅기는 현상이 발생해서 사용하기 어렵네요.. 비추합니다.)</p>
<p><a onclick="javascript:pageTracker._trackPageview('/downloads/media/2009/11/AppleWirelessMouse4.exe');" href="http://uneasysilence.com/media/2009/11/AppleWirelessMouse4.exe">32bit version</a></p>
<p><a onclick="javascript:pageTracker._trackPageview('/downloads/media/2009/11/AppleWirelessMouse644.exe');" href="http://uneasysilence.com/media/2009/11/AppleWirelessMouse644.exe">64bit version</a></p>
<p><img class="aligncenter size-full wp-image-141" title="Apple Magic Mouse" src="http://blueb.net/wp-content/uploads/2009/12/lasertracking_20091020.jpg" alt="Apple Magic Mouse" width="439" height="423" /></p>
<p>출처 : <a title="Get Apple’s MultiTouch Magic Mouse To Play Nice on Windows" href="http://uneasysilence.com/archive/2009/11/14588/">http://uneasysilence.com/archive/2009/11/14588/</a></p>
]]></description>
			<content:encoded><![CDATA[<p>애플 매직마우스를 Windows XP, Windows 7 에서 문제 없이 사용하기 위해서는(멀티스크롤, 멀티터치 기능) 별도의 드라이버가 필요 합니다.<br />
애플 공식 드라이버는 아니지만,  문제 없이 잘 작동합니다.</p>
<p>32비트 버전을 설치하는데 운영체제에 설치 할 수 없다는 경고 메시지가 뜨면서 설치가 되질 않더군요!<br />
오기를 가지고 설치가 될대까지 계속 시도를 했습니다 10번 찍어 안넘어가는 나무 없다고, 찍으니깐 넘어가네요.. ㅎㅎ<br />
유용하게 사용하시길.. ^^</p>
<p>(맥기기는 역시 맥과 궁합이 잘 맞습니다, 자주 팅기는 현상이 발생해서 사용하기 어렵네요.. 비추합니다.)</p>
<p><a onclick="javascript:pageTracker._trackPageview('/downloads/media/2009/11/AppleWirelessMouse4.exe');" href="http://uneasysilence.com/media/2009/11/AppleWirelessMouse4.exe">32bit version</a></p>
<p><a onclick="javascript:pageTracker._trackPageview('/downloads/media/2009/11/AppleWirelessMouse644.exe');" href="http://uneasysilence.com/media/2009/11/AppleWirelessMouse644.exe">64bit version</a></p>
<p><img class="aligncenter size-full wp-image-141" title="Apple Magic Mouse" src="http://blueb.net/wp-content/uploads/2009/12/lasertracking_20091020.jpg" alt="Apple Magic Mouse" width="439" height="423" /></p>
<p>출처 : <a title="Get Apple’s MultiTouch Magic Mouse To Play Nice on Windows" href="http://uneasysilence.com/archive/2009/11/14588/">http://uneasysilence.com/archive/2009/11/14588/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blueb.net/2009/12/18/apple%e2%80%99s-magic-mouse-to-play-nice-on-windows/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Real Racing GTI Free Game</title>
		<link>http://blueb.net/2009/12/06/real-racing-gti-free-game/</link>
		<comments>http://blueb.net/2009/12/06/real-racing-gti-free-game/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 03:45:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[iPhone 3Gs]]></category>

		<guid isPermaLink="false">http://blueb.net/?p=106</guid>
		<description><![CDATA[<p><img class="alignleft size-full wp-image-107" style="border: 1px solid black; margin-left: 10px; margin-right: 10px;" title="Real Racing GTI" src="http://blueb.net/wp-content/uploads/2009/12/gti_icon.jpg" alt="Real Racing GTI" width="100" height="100" /><strong>Real Racing GTI</strong><br />
Category : Games<br />
Seller : ndWare Pty Ltd @ 2009 Firemint. All Rights Reserved<br />
Size : 59.3 MB<br />
Free, <a title="Real Racing GTI" href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=334366868&amp;mt=8" target="_blank">GET APP</a></p>
<p style="text-align: left;">
<p>폭스바겐에서 나온 무료앱 게임입니다.<br />
레이싱 게임중 강력 추천합니다. 한번 해보시면 그매력에 푹 빠지시게 될겁니다. ^^</p>
<p>유료 버전도 현재 6.99 달러에 판중이며  GTI 자동차 모델 28대와 12 가지의 트랙을 제공합니다.<br />
(무료 버전 : 자동차 1대, 트랙 3개)</p>
<p>- 미쿡 계정으로 받으셔야 합니다.</p>
<p><img class="alignnone size-full wp-image-123" title="IMG_0085 - 복사본" src="http://blueb.net/wp-content/uploads/2009/12/IMG_0085-복사본.PNG" alt="IMG_0085 - 복사본" width="480" height="320" /><img class="alignnone size-full wp-image-115" title="IMG_0074" src="http://blueb.net/wp-content/uploads/2009/12/IMG_0074.PNG" alt="IMG_0074" width="480" height="320" /><img title="IMG_0072" src="../wp-content/uploads/2009/12/IMG_0072.PNG" alt="IMG_0072" width="480" height="320" /><img title="IMG_0073" src="../wp-content/uploads/2009/12/IMG_0073.PNG" alt="IMG_0073" width="480" height="320" /><img title="IMG_0075" src="../wp-content/uploads/2009/12/IMG_0075.PNG" alt="IMG_0075" width="480" height="320" /><img title="IMG_0086 - 복사본" src="../wp-content/uploads/2009/12/IMG_0086-%EB%B3%B5%EC%82%AC%EB%B3%B8.PNG" alt="IMG_0086 - 복사본" width="480" height="320" /></p>
<p><img class="alignnone size-full wp-image-130" title="IMG_0093" src="http://blueb.net/wp-content/uploads/2009/12/IMG_0093.PNG" alt="IMG_0093" width="480" height="320" /></p>
]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-107" style="border: 1px solid black; margin-left: 10px; margin-right: 10px;" title="Real Racing GTI" src="http://blueb.net/wp-content/uploads/2009/12/gti_icon.jpg" alt="Real Racing GTI" width="100" height="100" /><strong>Real Racing GTI</strong><br />
Category : Games<br />
Seller : ndWare Pty Ltd @ 2009 Firemint. All Rights Reserved<br />
Size : 59.3 MB<br />
Free, <a title="Real Racing GTI" href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=334366868&amp;mt=8" target="_blank">GET APP</a></p>
<p style="text-align: left;">
<p>폭스바겐에서 나온 무료앱 게임입니다.<br />
레이싱 게임중 강력 추천합니다. 한번 해보시면 그매력에 푹 빠지시게 될겁니다. ^^</p>
<p>유료 버전도 현재 6.99 달러에 판중이며  GTI 자동차 모델 28대와 12 가지의 트랙을 제공합니다.<br />
(무료 버전 : 자동차 1대, 트랙 3개)</p>
<p>- 미쿡 계정으로 받으셔야 합니다.</p>
<p><img class="alignnone size-full wp-image-123" title="IMG_0085 - 복사본" src="http://blueb.net/wp-content/uploads/2009/12/IMG_0085-복사본.PNG" alt="IMG_0085 - 복사본" width="480" height="320" /><img class="alignnone size-full wp-image-115" title="IMG_0074" src="http://blueb.net/wp-content/uploads/2009/12/IMG_0074.PNG" alt="IMG_0074" width="480" height="320" /><img title="IMG_0072" src="../wp-content/uploads/2009/12/IMG_0072.PNG" alt="IMG_0072" width="480" height="320" /><img title="IMG_0073" src="../wp-content/uploads/2009/12/IMG_0073.PNG" alt="IMG_0073" width="480" height="320" /><img title="IMG_0075" src="../wp-content/uploads/2009/12/IMG_0075.PNG" alt="IMG_0075" width="480" height="320" /><img title="IMG_0086 - 복사본" src="../wp-content/uploads/2009/12/IMG_0086-%EB%B3%B5%EC%82%AC%EB%B3%B8.PNG" alt="IMG_0086 - 복사본" width="480" height="320" /></p>
<div id="attachment_129" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-129" title="Method A" src="http://blueb.net/wp-content/uploads/2009/12/IMG_0092-300x200.PNG" alt="IMG_0092" width="300" height="200" /><p class="wp-caption-text">핸들 모션 사용+터치브레이크</p></div>
<div id="attachment_126" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-126" title="Method C" src="http://blueb.net/wp-content/uploads/2009/12/IMG_0088-300x200.PNG" alt="IMG_0088" width="300" height="200" /><p class="wp-caption-text">터치 핸들+터치 브레이크</p></div>
<div id="attachment_125" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-125" title="Method B" src="http://blueb.net/wp-content/uploads/2009/12/IMG_00871-300x200.PNG" alt="IMG_0087" width="300" height="200" /><p class="wp-caption-text">모션 맨들+터치 브레이크, 악세레다</p></div>
<div id="attachment_127" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-127" title="Method D" src="http://blueb.net/wp-content/uploads/2009/12/IMG_0089-300x200.PNG" alt="IMG_0089" width="300" height="200" /><p class="wp-caption-text">터치 핸들+터치 브레이크</p></div>
<div id="attachment_128" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-128" title="Method E" src="http://blueb.net/wp-content/uploads/2009/12/IMG_0090-300x200.PNG" alt="IMG_0090" width="300" height="200" /><p class="wp-caption-text">터치 핸들+브레이크+악세레다</p></div>
<p><img class="alignnone size-full wp-image-130" title="IMG_0093" src="http://blueb.net/wp-content/uploads/2009/12/IMG_0093.PNG" alt="IMG_0093" width="480" height="320" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blueb.net/2009/12/06/real-racing-gti-free-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Begin the iPhone 3Gs</title>
		<link>http://blueb.net/2009/12/06/iphone-3gs/</link>
		<comments>http://blueb.net/2009/12/06/iphone-3gs/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 03:10:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iPhone 3Gs]]></category>

		<guid isPermaLink="false">http://blueb.net/?p=85</guid>
		<description><![CDATA[<p>11월 22일 일어나자 마자 SHOW(http://show.co.kr) 웹사이트에 방문<br />
iPhone 12:00 부터 예약접수를 한다는 팝업을 보고 너무 기뻐 멍~하니 12시가 되기를 기다렸다.<br />
12:00 SHOW 웹사이트에 접속을 하니 사용자 접속 폭주로 인해 사이트가 불안정해 예약을 할 수 없다. ㅠ.ㅠ<br />
일단 포기하고 저녁때 다시 접속하기로 마음을 먹고,  개인시간을 보내며 아이폰을 기다린다&#8230;&#8230;</p>
<p style="text-align: center;"><img class="size-medium wp-image-94 aligncenter" title="아이폰" src="http://blueb.net/wp-content/uploads/2009/12/DSC_0077-300x200.jpg" alt="아이폰" width="300" height="200" /></p>
<p>오후 5시쯤 혹시나 하는 마음으로 다시 SHOW 사이트에 접속을 해보았다.</p>
<p>이제야 사이트가 정상적으로 접속이 됩니다.  많은 사용자가 사전예약을 마친듯 하다<br />
아이폰구매를 위해 사전예약 페이지로 이동하여 사전예약을 하는데,<br />
아뿔사 예전에 가입해두었던 아이디가 있었는데 비밀번호를 찾을 수가 없다. ㅠㅠ<br />
사전예약시 회원에게 제공되는 쇼캐쉬 3만5천원을 포기하고 비회원구매를 선택하고 예약을 완료!!<br />
(폰 개통후 114에 전화를 해 알아내 사실이지만 아이디가 있어도 신규 회원가입이 가능했던거였다. ㅠ.ㅠ 아까운 3만5천원 쇼캐쉬)</p>
<p>예약 후로 폰스토어에 매일 방문해 주문정보를 매일같이 발송이 되었는지 개통이 되었는지 확인하며 하루 하루를 보낸다.<br />
빨리 받아 보고 싶은 마음이 간절했지만 발송은 28일 이후에나 될것을 뻔히 알면서도 말이다.</p>
<p>그렇게 시간을 흘러 28일 토요일.<br />
혼자서 무주스키장을 찾았다.<br />
한참 라이딩을 즐기는데 한통의 문자가 날아왔다.<br />
&#8220;아이폰이 발송되었습니다.&#8221;<br />
라이딩을 포기 하고 바로 집으로 가서 폰스토어에 접속해 현재 배송추적으로 해보고 싶지만, 0910시즌 첫 보딩이라 그러고 싶은 생각은 잠시 뒤로하고 즐거운 보딩을 즐기며  시간을 보냈다.</p>
<p>30일 되던날 점심때쯤 아이폰을 받아 보았습니다.</p>
<p><img class="alignnone size-medium wp-image-91" title="아이폰" src="http://blueb.net/wp-content/uploads/2009/12/DSC_0079-300x200.jpg" alt="아이폰" width="300" height="200" /><img class="alignnone size-medium wp-image-95" title="아이폰" src="http://blueb.net/wp-content/uploads/2009/12/DSC_0082-300x200.jpg" alt="아이폰" width="300" height="200" /></p>
<p>To be continued&#8230;</p>
]]></description>
			<content:encoded><![CDATA[<p>11월 22일 일어나자 마자 SHOW(http://show.co.kr) 웹사이트에 방문<br />
iPhone 12:00 부터 예약접수를 한다는 팝업을 보고 너무 기뻐 멍~하니 12시가 되기를 기다렸다.<br />
12:00 SHOW 웹사이트에 접속을 하니 사용자 접속 폭주로 인해 사이트가 불안정해 예약을 할 수 없다. ㅠ.ㅠ<br />
일단 포기하고 저녁때 다시 접속하기로 마음을 먹고,  개인시간을 보내며 아이폰을 기다린다&#8230;&#8230;</p>
<p style="text-align: center;"><img class="size-medium wp-image-94 aligncenter" title="아이폰" src="http://blueb.net/wp-content/uploads/2009/12/DSC_0077-300x200.jpg" alt="아이폰" width="300" height="200" /></p>
<p>오후 5시쯤 혹시나 하는 마음으로 다시 SHOW 사이트에 접속을 해보았다.</p>
<p>이제야 사이트가 정상적으로 접속이 됩니다.  많은 사용자가 사전예약을 마친듯 하다<br />
아이폰구매를 위해 사전예약 페이지로 이동하여 사전예약을 하는데,<br />
아뿔사 예전에 가입해두었던 아이디가 있었는데 비밀번호를 찾을 수가 없다. ㅠㅠ<br />
사전예약시 회원에게 제공되는 쇼캐쉬 3만5천원을 포기하고 비회원구매를 선택하고 예약을 완료!!<br />
(폰 개통후 114에 전화를 해 알아내 사실이지만 아이디가 있어도 신규 회원가입이 가능했던거였다. ㅠ.ㅠ 아까운 3만5천원 쇼캐쉬)</p>
<p>예약 후로 폰스토어에 매일 방문해 주문정보를 매일같이 발송이 되었는지 개통이 되었는지 확인하며 하루 하루를 보낸다.<br />
빨리 받아 보고 싶은 마음이 간절했지만 발송은 28일 이후에나 될것을 뻔히 알면서도 말이다.</p>
<p>그렇게 시간을 흘러 28일 토요일.<br />
혼자서 무주스키장을 찾았다.<br />
한참 라이딩을 즐기는데 한통의 문자가 날아왔다.<br />
&#8220;아이폰이 발송되었습니다.&#8221;<br />
라이딩을 포기 하고 바로 집으로 가서 폰스토어에 접속해 현재 배송추적으로 해보고 싶지만, 0910시즌 첫 보딩이라 그러고 싶은 생각은 잠시 뒤로하고 즐거운 보딩을 즐기며  시간을 보냈다.</p>
<p>30일 되던날 점심때쯤 아이폰을 받아 보았습니다.</p>
<p><img class="alignnone size-medium wp-image-91" title="아이폰" src="http://blueb.net/wp-content/uploads/2009/12/DSC_0079-300x200.jpg" alt="아이폰" width="300" height="200" /><img class="alignnone size-medium wp-image-95" title="아이폰" src="http://blueb.net/wp-content/uploads/2009/12/DSC_0082-300x200.jpg" alt="아이폰" width="300" height="200" /></p>
<p>To be continued&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blueb.net/2009/12/06/iphone-3gs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Nite in SEOUL Reviews</title>
		<link>http://blueb.net/2009/11/22/css-nite-in-seoul-reviews/</link>
		<comments>http://blueb.net/2009/11/22/css-nite-in-seoul-reviews/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 11:24:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS Nite]]></category>
		<category><![CDATA[NHN]]></category>
		<category><![CDATA[Nite]]></category>
		<category><![CDATA[웹접근성]]></category>
		<category><![CDATA[웹표준]]></category>

		<guid isPermaLink="false">http://blueb.net/?p=50</guid>
		<description><![CDATA[<p>11월 21일  <a title="CSS Nite in SEOUL" href="http://cssnite-seoul.regraphy.com/" target="_blank">CSS Nite in SEOUL </a>에 다녀왔습니다.</p>
<p><a title="CSS Nite in SEOUL" href="http://cssnite-seoul.regraphy.com/" target="_blank">CSS Nite in SEOUL</a>에 참가하위해 아침 일찍 부터 서둘러 회사동료들을 태우고<br />
행사가 열리는 서울 포스코센터로 향하였습니다.<br />
고속도록 곳곳에 교통사고 처리로 지체가 되는 바람에 점심도 거른체 10분 늦게 행사장에 도착하였습니다.</p>
<p>행사장 안이 너무 비좁았습니다.  미리 도착한 회사 동료가 자리를 맡아 두어 책상이 있는 좌석에 착석을 하고 세미나에 참여를 시작했습니다.</p>
<p><img class="alignnone size-medium wp-image-77" title="DSC_0062" src="http://blueb.net/wp-content/uploads/2009/11/DSC_0062-300x201.jpg" alt="DSC_0062" width="300" height="201" /><img class="alignnone size-medium wp-image-76" title="DSC_0063" src="http://blueb.net/wp-content/uploads/2009/11/DSC_0063-300x201.jpg" alt="DSC_0063" width="300" height="201" /><img class="alignnone size-medium wp-image-75" title="DSC_0055" src="http://blueb.net/wp-content/uploads/2009/11/DSC_0055-300x201.jpg" alt="DSC_0055" width="300" height="201" /><img class="alignnone size-medium wp-image-74" title="DSC_0074" src="http://blueb.net/wp-content/uploads/2009/11/DSC_0074-300x200.jpg" alt="DSC_0074" width="300" height="200" /></p>
<p>NHN의 웹표준화팀 박태준<sup>1)</sup> 팀장의  &#8216;웹표준을 기반을한 HTML 개발프로세스&#8217;를 통해 HTML 개발일정 산출의 수치화, 웹표준, 웹접근성, 코드최적화, 생산량의 수치화, 품질관리 등 많은 시도를 하고 있음을 알수 있었습니다.<br />
아직 우리나라는 웹표준에 대한 HTML개발프로세스가 자리 잡지 못한 상태에서 NHN기업의 웹표준화팀을 통해 서서히 HTML개발프로세스가 자리 잡아갈 수 있도록 지원할수 있는 기회를 마련해줄것을 기대해 봅니다.</p>
<p>발표 이후 미투데이이를 통해 박태준 팀장과 휴식시간에 명함교환을 하고, 현 웹기업들의 웹표준에 대한 인식이라던가, 앞으로 어떤 대안을 통해 성장할 수 있을지에 대한 이런 저런 고민을 하는 시간을 가져보았습니다.</p>
<p>타가노 마사히로<sup>2)</sup>씨의  &#8216;일본의 웹표준 현실과 제작 프로세스&#8217; 에서는 일본의 CSS정착배경, 웹표준, 웹접근성(jis), 드림위버를 통한 코딩 방법에 대한 예시를 보여주셨는데요, 처음 CSS Nite는 2005년 10월 시작으로 일본 엔지니어들은 많은 교류를 통해 웹표준, 웹접근성에 보다 가깝게 다가가고 있는듯 합니다, 그에 비해 우리나라는 그 당시  웹표준에 대한 생각이라 던지 웹접근성에 대해 고민하고 생각하는 사람은 몇 안되었을 것입니다. 일본보다 많이 늦은 감은 있지만 이런 자리를 통해 많은 웹종사자들의 인식이 일본인들처럼 바뀌었으면 하는 바람입니다.</p>
<p>마시코 다카히로<sup>3)</sup> 씨의 &#8216;미래의 웨표준으로써의 HTML5와 CSS3&#8242;는 제가 CSS Nite에 꼭 참석하고 싶었던 이유였습니다.<br />
HTML5와 CSS3에 대해 이미 많은 정보를 찾아 보았었고, 새로운것을 추구하고 연구하는 것에 관심이 많은 저로써는 정말 기대되는 세션이었습니다. 예상했던것 보다 새로운 정보를 얻을 수 있었던 자리는 아닌것이 다소 아쉬움이 남는 시간이었지만, 같이 동행한 회사 동료 그리고 CSS Nite에 참여한 모든 분들과 함께 공유할 수 있는 자리를 만들어준것에 대해 감사하는 마음입니다.<br />
HTML5는 현재 IE 브라우져를 빼고는 모든 웹브라우져에서 지원이 되고 있습니다.<br />
정말 안타까운 현실이 아닐수 없습니다. 현재 우리나라 IE사용자는 상당수를 차지하고 있기 때문에 HTML5를 적용하기에는 오랜 시간이 걸릴것으로 예상되어집니다.  IE9가 나온다고는 하지만 이미 IE(6,7,8)에 셋팅되어진 업무환경으로 인해 업그레이드가 불가한게 불보듯 뻔합니다.  이런 환경을 개선하기 위해 많은 기업, 공공기관, 정부는 투자를 아끼지 않아야 하겠죠~!!</p>
<p>CSS3역시 IE에서는 먼 훗날의 얘기로만 여겨집니다. CSS3에서는 다양한 selector가 추가 되었고 CSS Visual Effects도 추가 되어 자바스크립트를 통해 구현했던 Effect를 CSS만으로도 구현이 가능해집니다.</p>
<p>경품 추첨시간에는 같이간 동료와 함께 추첨이 되어 &#8220;검색 마케팅&#8221; 이야기라는 책을 경품으로 받는 행운의 기회를 잡았습니다.</p>
<p>이후 교류파티가 이루어 졌지만 대전에서 상경(?)한 터라 동료들과 아쉼을 뒤로 한채 행사장을 나서야 했습니다.</p>
<p>앞으로도 이런 행사가 많았으면 합니다.</p>
<hr style="clear:both" />
<div>
<h3><span>1) 박태준</span></h3>
<p><a href="http://www.nhncorp.com/">株式会社NHN</a> /　NHN 웹표준1팀 팀장</p>
<p>Naver 메인 UI개발</p>
<p>통합검색 UI개발</p></div>
<hr style="clear:both" />
<div>
<h3>2) 타가노 마사히로</h3>
<p><a href="http://swwwitch.jp/">주식회사 스위치 </a>대표 이사／<a href="http://cssnite.jp/">CSS Nite</a>주최</p>
<p>Web 사이트의 구축 및 컨설팅을 수행, Web 및 DTP에 대한 교육과 테크니컬라이터 활동을 하고 있다 . 10권 이상의 저서를 갖고있다. 메일 매거진 “Dreamweaver에서 Web Standards”를 발행. 일간 디지털 크리에이터즈와 닛케이 ITpro에서 연재중.</p>
<p>웹 관련 세미나와 강사 활동중.</p>
<p>2005년 부터<a href="http://cssnite.jp/">CSS Nite</a>의 기획, 주최.</p>
<dl>
<dt>서적 : 크리에이터 Dreamweaver 독학 내비게이션, Illustrator CS3 완전 제패, Dreamweaver 전문 스타일(공동저술)등 다수</dt>
</dl>
</div>
<hr style="clear:both" />
<div>
<h3>3) 마시코 다카히로</h3>
<p><a href="http://www.cybergarden.net/">주식회사 사이바가덴</a> 대표 이사／Web 제작 프로듀서 / 콘설턴트</p>
<p>와세다 대학 대학원 상학 연구과 수료. 대학원 재학중인 1999년 5월 Web 참조 &amp; 리소스 제공 사이트 “CYBER @ GARDEN”를 출시. 일반 기업에 취직 후에도 Web 디자인 지에서 라이터 및 W3C ® 사양서 번역 활동을계속, 2003 년 5 월 독립. Web 사이트의 제작 및 전략 기획, 제작 서비스, 컨설팅, Web 크리에이터를위한 강의와교육, 집필 활동에 종사. 사단 법인 전일본 능률 연맹 등록 자격 “Web 검정”프로젝트 구성원. 2008 년부터金沢工業大学대학원 공학 연구과 (도쿄虎ノ門대학원) 지적 창조 시스템 전공 객원 교수</p>
<dl>
<dt>서적 : 웹표준 교과서,현장에서 배우는HTML+CSS(공동저술)</dt>
</dl>
</div>
<hr style="clear:both" />
<div>
<h3>이 유미</h3>
<p><a href="http://www.regraphy.com/">유한 회사 리그래피 </a>대표 이사／프로젝트 매니져</p>
<p>홍익 대학교 미술 학부졸업. 디지털 할리우드 도쿄 본교 졸업.<br />
1996 년 도쿄에서 유학 후, 일본의 게임 회사에 근무. 2000 년 삿포로에 이주하여, SOHO로 활동을 시작. 2005년 유한 회사 리그래피 설립. 일본 한국 양국에서 Web 제작,프리젠 테이션 제작 및 디자인 전반, 예술 행사 등의 프로젝트 매니져로 활동하는 한편, 삿포로 디지털 전문 학교,디지털 헐리웃등 강사.</p>
<p>CSS Nite Seoul 기획,주최</p></div>
]]></description>
			<content:encoded><![CDATA[<p>11월 21일  <a title="CSS Nite in SEOUL" href="http://cssnite-seoul.regraphy.com/" target="_blank">CSS Nite in SEOUL </a>에 다녀왔습니다.</p>
<p><a title="CSS Nite in SEOUL" href="http://cssnite-seoul.regraphy.com/" target="_blank">CSS Nite in SEOUL</a>에 참가하위해 아침 일찍 부터 서둘러 회사동료들을 태우고<br />
행사가 열리는 서울 포스코센터로 향하였습니다.<br />
고속도록 곳곳에 교통사고 처리로 지체가 되는 바람에 점심도 거른체 10분 늦게 행사장에 도착하였습니다.</p>
<p>행사장 안이 너무 비좁았습니다.  미리 도착한 회사 동료가 자리를 맡아 두어 책상이 있는 좌석에 착석을 하고 세미나에 참여를 시작했습니다.</p>
<p><img class="alignnone size-medium wp-image-77" title="DSC_0062" src="http://blueb.net/wp-content/uploads/2009/11/DSC_0062-300x201.jpg" alt="DSC_0062" width="300" height="201" /><img class="alignnone size-medium wp-image-76" title="DSC_0063" src="http://blueb.net/wp-content/uploads/2009/11/DSC_0063-300x201.jpg" alt="DSC_0063" width="300" height="201" /><img class="alignnone size-medium wp-image-75" title="DSC_0055" src="http://blueb.net/wp-content/uploads/2009/11/DSC_0055-300x201.jpg" alt="DSC_0055" width="300" height="201" /><img class="alignnone size-medium wp-image-74" title="DSC_0074" src="http://blueb.net/wp-content/uploads/2009/11/DSC_0074-300x200.jpg" alt="DSC_0074" width="300" height="200" /></p>
<p>NHN의 웹표준화팀 박태준<sup>1)</sup> 팀장의  &#8216;웹표준을 기반을한 HTML 개발프로세스&#8217;를 통해 HTML 개발일정 산출의 수치화, 웹표준, 웹접근성, 코드최적화, 생산량의 수치화, 품질관리 등 많은 시도를 하고 있음을 알수 있었습니다.<br />
아직 우리나라는 웹표준에 대한 HTML개발프로세스가 자리 잡지 못한 상태에서 NHN기업의 웹표준화팀을 통해 서서히 HTML개발프로세스가 자리 잡아갈 수 있도록 지원할수 있는 기회를 마련해줄것을 기대해 봅니다.</p>
<p>발표 이후 미투데이이를 통해 박태준 팀장과 휴식시간에 명함교환을 하고, 현 웹기업들의 웹표준에 대한 인식이라던가, 앞으로 어떤 대안을 통해 성장할 수 있을지에 대한 이런 저런 고민을 하는 시간을 가져보았습니다.</p>
<p>타가노 마사히로<sup>2)</sup>씨의  &#8216;일본의 웹표준 현실과 제작 프로세스&#8217; 에서는 일본의 CSS정착배경, 웹표준, 웹접근성(jis), 드림위버를 통한 코딩 방법에 대한 예시를 보여주셨는데요, 처음 CSS Nite는 2005년 10월 시작으로 일본 엔지니어들은 많은 교류를 통해 웹표준, 웹접근성에 보다 가깝게 다가가고 있는듯 합니다, 그에 비해 우리나라는 그 당시  웹표준에 대한 생각이라 던지 웹접근성에 대해 고민하고 생각하는 사람은 몇 안되었을 것입니다. 일본보다 많이 늦은 감은 있지만 이런 자리를 통해 많은 웹종사자들의 인식이 일본인들처럼 바뀌었으면 하는 바람입니다.</p>
<p>마시코 다카히로<sup>3)</sup> 씨의 &#8216;미래의 웨표준으로써의 HTML5와 CSS3&#8242;는 제가 CSS Nite에 꼭 참석하고 싶었던 이유였습니다.<br />
HTML5와 CSS3에 대해 이미 많은 정보를 찾아 보았었고, 새로운것을 추구하고 연구하는 것에 관심이 많은 저로써는 정말 기대되는 세션이었습니다. 예상했던것 보다 새로운 정보를 얻을 수 있었던 자리는 아닌것이 다소 아쉬움이 남는 시간이었지만, 같이 동행한 회사 동료 그리고 CSS Nite에 참여한 모든 분들과 함께 공유할 수 있는 자리를 만들어준것에 대해 감사하는 마음입니다.<br />
HTML5는 현재 IE 브라우져를 빼고는 모든 웹브라우져에서 지원이 되고 있습니다.<br />
정말 안타까운 현실이 아닐수 없습니다. 현재 우리나라 IE사용자는 상당수를 차지하고 있기 때문에 HTML5를 적용하기에는 오랜 시간이 걸릴것으로 예상되어집니다.  IE9가 나온다고는 하지만 이미 IE(6,7,8)에 셋팅되어진 업무환경으로 인해 업그레이드가 불가한게 불보듯 뻔합니다.  이런 환경을 개선하기 위해 많은 기업, 공공기관, 정부는 투자를 아끼지 않아야 하겠죠~!!</p>
<p>CSS3역시 IE에서는 먼 훗날의 얘기로만 여겨집니다. CSS3에서는 다양한 selector가 추가 되었고 CSS Visual Effects도 추가 되어 자바스크립트를 통해 구현했던 Effect를 CSS만으로도 구현이 가능해집니다.</p>
<p>경품 추첨시간에는 같이간 동료와 함께 추첨이 되어 &#8220;검색 마케팅&#8221; 이야기라는 책을 경품으로 받는 행운의 기회를 잡았습니다.</p>
<div id="attachment_59" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-59" title="검색 마케팅 이야기" src="http://blueb.net/wp-content/uploads/2009/11/4121837254_59c7159345.jpg" alt="검색 마케팅 이야기" width="500" height="375" /><p class="wp-caption-text">검색 마케팅 이야기</p></div>
<p>이후 교류파티가 이루어 졌지만 대전에서 상경(?)한 터라 동료들과 아쉼을 뒤로 한채 행사장을 나서야 했습니다.</p>
<p>앞으로도 이런 행사가 많았으면 합니다.</p>
<hr style="clear:both" />
<div id="attachment_62" class="wp-caption alignleft" style="width: 190px"><img class="size-full wp-image-62" title="박태준" src="http://blueb.net/wp-content/uploads/2009/11/park.jpg" alt="박태준" width="180" height="180" /><p class="wp-caption-text">박태준</p></div>
<div>
<h3><span>1) 박태준</span></h3>
<p><a href="http://www.nhncorp.com/">株式会社NHN</a> /　NHN 웹표준1팀 팀장</p>
<p>Naver 메인 UI개발</p>
<p>통합검색 UI개발</p></div>
<hr style="clear:both" />
<div id="attachment_64" class="wp-caption alignleft" style="width: 190px"><img class="size-full wp-image-64" title="타가노 마사히로 " src="http://blueb.net/wp-content/uploads/2009/11/photo_takano.jpg" alt="타가노 마사히로 " width="180" height="180" /><p class="wp-caption-text">타가노 마사히로 </p></div>
<div>
<h3>2) 타가노 마사히로</h3>
<p><a href="http://swwwitch.jp/">주식회사 스위치 </a>대표 이사／<a href="http://cssnite.jp/">CSS Nite</a>주최</p>
<p>Web 사이트의 구축 및 컨설팅을 수행, Web 및 DTP에 대한 교육과 테크니컬라이터 활동을 하고 있다 . 10권 이상의 저서를 갖고있다. 메일 매거진 “Dreamweaver에서 Web Standards”를 발행. 일간 디지털 크리에이터즈와 닛케이 ITpro에서 연재중.</p>
<p>웹 관련 세미나와 강사 활동중.</p>
<p>2005년 부터<a href="http://cssnite.jp/">CSS Nite</a>의 기획, 주최.</p>
<dl>
<dt>서적 : 크리에이터 Dreamweaver 독학 내비게이션, Illustrator CS3 완전 제패, Dreamweaver 전문 스타일(공동저술)등 다수</dt>
</dl>
</div>
<hr style="clear:both" />
<div id="attachment_63" class="wp-caption alignleft" style="width: 190px"><img class="size-full wp-image-63" title="마시코 다카히로 " src="http://blueb.net/wp-content/uploads/2009/11/photo_mashiko.jpg" alt="마시코 다카히로 " width="180" height="180" /><p class="wp-caption-text">마시코 다카히로 </p></div>
<div>
<h3>3) 마시코 다카히로</h3>
<p><a href="http://www.cybergarden.net/">주식회사 사이바가덴</a> 대표 이사／Web 제작 프로듀서 / 콘설턴트</p>
<p>와세다 대학 대학원 상학 연구과 수료. 대학원 재학중인 1999년 5월 Web 참조 &amp; 리소스 제공 사이트 “CYBER @ GARDEN”를 출시. 일반 기업에 취직 후에도 Web 디자인 지에서 라이터 및 W3C ® 사양서 번역 활동을계속, 2003 년 5 월 독립. Web 사이트의 제작 및 전략 기획, 제작 서비스, 컨설팅, Web 크리에이터를위한 강의와교육, 집필 활동에 종사. 사단 법인 전일본 능률 연맹 등록 자격 “Web 검정”프로젝트 구성원. 2008 년부터金沢工業大学대학원 공학 연구과 (도쿄虎ノ門대학원) 지적 창조 시스템 전공 객원 교수</p>
<dl>
<dt>서적 : 웹표준 교과서,현장에서 배우는HTML+CSS(공동저술)</dt>
</dl>
</div>
<hr style="clear:both" />
<div id="attachment_61" class="wp-caption alignleft" style="width: 190px"><img class="size-full wp-image-61" title="이유미" src="http://blueb.net/wp-content/uploads/2009/11/lee1.jpg" alt="이유미" width="180" height="180" /><p class="wp-caption-text">이유미</p></div>
<div>
<h3>이 유미</h3>
<p><a href="http://www.regraphy.com/">유한 회사 리그래피 </a>대표 이사／프로젝트 매니져</p>
<p>홍익 대학교 미술 학부졸업. 디지털 할리우드 도쿄 본교 졸업.<br />
1996 년 도쿄에서 유학 후, 일본의 게임 회사에 근무. 2000 년 삿포로에 이주하여, SOHO로 활동을 시작. 2005년 유한 회사 리그래피 설립. 일본 한국 양국에서 Web 제작,프리젠 테이션 제작 및 디자인 전반, 예술 행사 등의 프로젝트 매니져로 활동하는 한편, 삿포로 디지털 전문 학교,디지털 헐리웃등 강사.</p>
<p>CSS Nite Seoul 기획,주최</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blueb.net/2009/11/22/css-nite-in-seoul-reviews/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPhone launch in Korea, Accepting reservations</title>
		<link>http://blueb.net/2009/11/22/iphone-launch-in-korea/</link>
		<comments>http://blueb.net/2009/11/22/iphone-launch-in-korea/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 01:17:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Issues]]></category>
		<category><![CDATA[3G]]></category>
		<category><![CDATA[3Gs]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Korea]]></category>
		<category><![CDATA[KT]]></category>
		<category><![CDATA[show]]></category>
		<category><![CDATA[아이폰]]></category>
		<category><![CDATA[애플]]></category>

		<guid isPermaLink="false">http://blueb.net/?p=38</guid>
		<description><![CDATA[<p>KT와 애플의 협상 타결로 오늘 11월22일 12:00 부터 예약 판매에 들어갑니다.</p>
<p>현재 <a title="KT SHOW" href="http://show.co.kr" target="_blank">http://show.co.kr</a> 웹사이트에 예약 접수를 받을 수 있는 웹페이지를 생성하고<br />
예약접수를 기다리고 있는 상태 입니다.</p>
<p>폰스토어(<a title="폰스토어" href="http://phonestore.show.co.kr" target="_blank">http://phonestore.show.co.kr</a>)에 예약가입한 선착순 1만명에게는<br />
iPhone 전용 액세서리 또는 쇼캐쉬 20,000월을 제공, 예약 가입자중 1,000명 추첨하여<br />
SHOW iPhone 런칭Festival에서 현장 개통하는 기회도 주어진다고 합니다.</p>
<p><img class="aligncenter size-full wp-image-40" title="KT iPhone 예약접수" src="http://blueb.net/wp-content/uploads/2009/11/iphoneresv.jpg" alt="KT iPhone 예약접수" width="300" height="456" /><img class="aligncenter size-full wp-image-42" title="KT SHOW iPhone 예약" src="http://blueb.net/wp-content/uploads/2009/11/show.jpg" alt="KT SHOW iPhone 예약" width="700" /></p>
<p><img class="aligncenter size-full wp-image-41" title="iPhone 요금제" src="http://blueb.net/wp-content/uploads/2009/11/phone.jpg" alt="iPhone 요금제" width="700" /></p>
]]></description>
			<content:encoded><![CDATA[<p>KT와 애플의 협상 타결로 오늘 11월22일 12:00 부터 예약 판매에 들어갑니다.</p>
<p>현재 <a title="KT SHOW" href="http://show.co.kr" target="_blank">http://show.co.kr</a> 웹사이트에 예약 접수를 받을 수 있는 웹페이지를 생성하고<br />
예약접수를 기다리고 있는 상태 입니다.</p>
<p>폰스토어(<a title="폰스토어" href="http://phonestore.show.co.kr" target="_blank">http://phonestore.show.co.kr</a>)에 예약가입한 선착순 1만명에게는<br />
iPhone 전용 액세서리 또는 쇼캐쉬 20,000월을 제공, 예약 가입자중 1,000명 추첨하여<br />
SHOW iPhone 런칭Festival에서 현장 개통하는 기회도 주어진다고 합니다.</p>
<p><img class="aligncenter size-full wp-image-40" title="KT iPhone 예약접수" src="http://blueb.net/wp-content/uploads/2009/11/iphoneresv.jpg" alt="KT iPhone 예약접수" width="300" height="456" /><img class="aligncenter size-full wp-image-42" title="KT SHOW iPhone 예약" src="http://blueb.net/wp-content/uploads/2009/11/show.jpg" alt="KT SHOW iPhone 예약" width="700" /></p>
<p><img class="aligncenter size-full wp-image-41" title="iPhone 요금제" src="http://blueb.net/wp-content/uploads/2009/11/phone.jpg" alt="iPhone 요금제" width="700" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blueb.net/2009/11/22/iphone-launch-in-korea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expo Bridge</title>
		<link>http://blueb.net/2009/11/20/expo-bridge/</link>
		<comments>http://blueb.net/2009/11/20/expo-bridge/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 12:43:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Gallery]]></category>
		<category><![CDATA[expo bridge]]></category>

		<guid isPermaLink="false">http://blueb.net/?p=6</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[
<a href='' title='1017188648'><img width="150" height="150" src="http://blueb.net/wp-content/uploads/2009/11/1017188648-150x150.jpg" class="attachment-thumbnail" alt="" title="1017188648" /></a>
<a href='' title='1105510269'><img width="150" height="150" src="http://blueb.net/wp-content/uploads/2009/11/1105510269-150x150.jpg" class="attachment-thumbnail" alt="" title="1105510269" /></a>
<a href='' title='1138414354'><img width="150" height="150" src="http://blueb.net/wp-content/uploads/2009/11/1138414354-150x150.jpg" class="attachment-thumbnail" alt="" title="1138414354" /></a>
<a href='' title='1235186701'><img width="150" height="150" src="http://blueb.net/wp-content/uploads/2009/11/1235186701-150x150.jpg" class="attachment-thumbnail" alt="" title="1235186701" /></a>
<a href='' title='1298010695'><img width="150" height="150" src="http://blueb.net/wp-content/uploads/2009/11/1298010695-150x150.jpg" class="attachment-thumbnail" alt="" title="1298010695" /></a>
<a href='' title='1352124966'><img width="150" height="150" src="http://blueb.net/wp-content/uploads/2009/11/1352124966-150x150.jpg" class="attachment-thumbnail" alt="" title="1352124966" /></a>

]]></content:encoded>
			<wfw:commentRss>http://blueb.net/2009/11/20/expo-bridge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://blueb.net/2009/11/20/hello-world/</link>
		<comments>http://blueb.net/2009/11/20/hello-world/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 12:21:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Diary]]></category>

		<guid isPermaLink="false">http://blueb.net/?p=1</guid>
		<description><![CDATA[<p>Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!</p>
]]></description>
			<content:encoded><![CDATA[<p>Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!</p>
]]></content:encoded>
			<wfw:commentRss>http://blueb.net/2009/11/20/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
