<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6920622988798145088</id><updated>2011-07-07T17:32:15.271-07:00</updated><category term='javascript animation effects curves color menu'/><category term='calendar widget date picker'/><title type='text'>UIZE JavaScript Framework BLOG</title><subtitle type='html'>UIZE (pronounced "you eyes") is a powerful, open source, object oriented JavaScript framework - supporting widgets, AJAX, DOM, templates, and more. You can call it an "Ajax Framework", an "Ajax Toolkit", a "JavaScript Framework", a "JavaScript API", a "JavaScript Toolkit", a "JavaScript Toolbox"... whatever you like! We call it the UIZE JavaScript Framework (or just "UIZE" for short). UIZE allows you to create more effective user interfaces in your Web-based applications and services.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://uize.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://uize.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>cvr</name><uri>http://www.blogger.com/profile/02390237414976310346</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_bEbHWibdK0Y/Sp4CW8lsavI/AAAAAAAAAAM/NHQ0DqHSmhs/S220/head-shot.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6920622988798145088.post-3251248603642733794</id><published>2010-04-14T14:07:00.000-07:00</published><updated>2010-04-14T14:10:20.061-07:00</updated><title type='text'>Spastronica</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-family: inherit;"&gt;OK, so this has absolutely NOTHING to do with UIZE, except t&lt;/span&gt;hat it occurred while doing development on some UIZE code.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;So, I enjoy listening to electronica music while I code (what software engineer doesn't, right?). In particular, I was listening to Space Station Soma, one of SOMA FM's streams, and I started getting rather aggravated by the particular piece I was listening to. It seems to fall into this peculiar little experimental / avant garde / unlistenable subgenre of electronica music that is particularly aggrating in a kind of frenetically spastic way.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Therefore, I have coined the term "&lt;b&gt;spastronica&lt;/b&gt;". It's the words "spastic" and "electronica" combined together in what I believe is technically referred to as a portmanteau. A quick search on Google brings up not a single page for this word. Not one! Therefore, I claim this term as my invention, and this post shall be the first proudly indexed result for this brand spanking new, hot-off-the-presses, freshly minted, steaming-its-freshly-baked-pie-sitting-on-the-window-sill-and-waiting-to-be-stolen-aromas, term spastronica.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6920622988798145088-3251248603642733794?l=uize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://uize.blogspot.com/feeds/3251248603642733794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://uize.blogspot.com/2010/04/spastronica.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/3251248603642733794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/3251248603642733794'/><link rel='alternate' type='text/html' href='http://uize.blogspot.com/2010/04/spastronica.html' title='Spastronica'/><author><name>cvr</name><uri>http://www.blogger.com/profile/02390237414976310346</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_bEbHWibdK0Y/Sp4CW8lsavI/AAAAAAAAAAM/NHQ0DqHSmhs/S220/head-shot.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6920622988798145088.post-493405973061881809</id><published>2010-01-17T18:36:00.000-08:00</published><updated>2010-01-17T18:36:32.045-08:00</updated><title type='text'>Dion Almaer reports on Virtual DOM Events</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Dion Almaer, co-founder of ajaxian.com, reports on the UIZE JavaScript Framework's support for a useful new construct called Virtual DOM Events.&lt;br /&gt;&lt;br /&gt;Response to the article by readers is overwhelmingly positive, with a high rating from many votes and a healthy serving of lively comments and feedback. From the feedback, it is clear that the folks behind YUI are thinking along similar lines, although their "synthetic events" feature is not as fleshed out at the time, nor is it thoroughly documented like the UIZE Virtual DOM Events feature. This article struck a chord, and it took all of a day for developers behind jQuery to transcode the UIZE implementation and offer equivalent features. Well, you know what they say: "Imitation is the sincerest form of flattery". UIZE considers itself flattered. Dion links to two examples on the uize.com Web site in this article: the Edge Virtual DOM Events and Virtual DOM Events examples.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;a href="http://ajaxian.com/archives/virtual-dom-events"&gt;READ THE ARTICLE&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6920622988798145088-493405973061881809?l=uize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://uize.blogspot.com/feeds/493405973061881809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://uize.blogspot.com/2010/01/dion-almaer-reports-on-virtual-dom.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/493405973061881809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/493405973061881809'/><link rel='alternate' type='text/html' href='http://uize.blogspot.com/2010/01/dion-almaer-reports-on-virtual-dom.html' title='Dion Almaer reports on Virtual DOM Events'/><author><name>cvr</name><uri>http://www.blogger.com/profile/02390237414976310346</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_bEbHWibdK0Y/Sp4CW8lsavI/AAAAAAAAAAM/NHQ0DqHSmhs/S220/head-shot.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6920622988798145088.post-7936560428277240272</id><published>2009-12-14T22:18:00.000-08:00</published><updated>2009-12-14T22:18:41.184-08:00</updated><title type='text'>Look, ma... no images!!!</title><content type='html'>&lt;div class="separator" style="clear: both; font-family: Arial,Helvetica,sans-serif; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Arial,Helvetica,sans-serif; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_bEbHWibdK0Y/SycnpX2T4gI/AAAAAAAAACc/k1jrQ8PVL5w/s1600-h/fade-css-style-across-nodes.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_bEbHWibdK0Y/SycnpX2T4gI/AAAAAAAAACc/k1jrQ8PVL5w/s400/fade-css-style-across-nodes.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;It's really nice to see what is possible when combining the UIZE JavaScript Framework with the neat new features of CSS3 - like text shadow - that are being implemented in the newer versions of Firefox, Chrome, Safari, and Opera (and some more that I'm probably missing). No, it's not clear yet whether IE9 will support text shadow, but hopefully they will join the party - there's fun to be had for all.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;In this new example that I put together, a new method of the Uize.Fx module is being used to create CSS style "fades" - or gradients - across a series of nodes. In this case, the nodes are links in a navigation menu. The UIZE JavaScript Framework lets you perform compound fades and supply different curve functions to different components of a fade. So, for example, you could provide a different curve function for the red color channel of the background color as the curve functions you provide for the green and blue color channels. This allows for some pretty radical and nuanced transitions. No, the same linear curve applied to everything is definitely not interesting, anymore. Compound non-linear is the new black.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Take a look at the example and experiment with the different presets. If you've got the time, hang up your coat and linger for a while. Once you get the hang of it, you'll be creating your own tasty gradients&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;a href="http://www.uize.com/examples/fade-css-style-across-nodes.html"&gt;http://www.uize.com/examples/fade-css-style-across-nodes.html&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6920622988798145088-7936560428277240272?l=uize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://uize.blogspot.com/feeds/7936560428277240272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://uize.blogspot.com/2009/12/look-ma-no-images.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/7936560428277240272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/7936560428277240272'/><link rel='alternate' type='text/html' href='http://uize.blogspot.com/2009/12/look-ma-no-images.html' title='Look, ma... no images!!!'/><author><name>cvr</name><uri>http://www.blogger.com/profile/02390237414976310346</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_bEbHWibdK0Y/Sp4CW8lsavI/AAAAAAAAAAM/NHQ0DqHSmhs/S220/head-shot.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bEbHWibdK0Y/SycnpX2T4gI/AAAAAAAAACc/k1jrQ8PVL5w/s72-c/fade-css-style-across-nodes.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6920622988798145088.post-2983909834706665423</id><published>2009-12-04T15:32:00.000-08:00</published><updated>2009-12-04T15:34:12.865-08:00</updated><title type='text'>Animating the CSS Text Shadow Property</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Just finished up with adding support for text shadow animation to the UIZE JavaScript Framework. I think you’ll find something interesting to look at here…&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.uize.com/examples/hover-fader-text-shadow-animation.html"&gt;http://www.uize.com/examples/hover-fader-text-shadow-animation.html&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_bEbHWibdK0Y/Sxmb_8v5QlI/AAAAAAAAACU/5Wl3SfrTEmk/s1600-h/hover-fader-text-shadow-animation.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_bEbHWibdK0Y/Sxmb_8v5QlI/AAAAAAAAACU/5Wl3SfrTEmk/s640/hover-fader-text-shadow-animation.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I love the fact that Firefox 3.5x fully supports the text-shadow property. It's nice to see it in Google Chrome, Safari, and Opera, as well. Would be nice to get the IE folks on board. Performance seems to be best in Safari, so far. Chrome 3.0 seems to have some rendering issues with text shadow: not quite as smooth as it could be, and there appears to be some interaction between the shadow and the text above it. Nevertheless, the results are pretty consistent between all the browsers that support text shadow, which is encouraging.&lt;br /&gt;&lt;br /&gt;When animating text shadow, it's once again pretty compelling to apply different curve functions to different components of what you're animating. So, a text shadow can move, or its blur radius can change over time, or its color can change... but why should these all have to happen at the same rate? I just spent a bit of time playing with settings and came up with the short list of presets you'll see on the example page, but I can just tell from my cursory experimentation that there's a whole world of Hollywood movie credit like text effects awaiting the creative mind with these new features of CSS3. My favorite preset so far is the "Sci-fi Materialize", which makes me think of a Star Trek transporter.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6920622988798145088-2983909834706665423?l=uize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://uize.blogspot.com/feeds/2983909834706665423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://uize.blogspot.com/2009/12/just-finished-up-with-adding-support.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/2983909834706665423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/2983909834706665423'/><link rel='alternate' type='text/html' href='http://uize.blogspot.com/2009/12/just-finished-up-with-adding-support.html' title='Animating the CSS Text Shadow Property'/><author><name>cvr</name><uri>http://www.blogger.com/profile/02390237414976310346</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_bEbHWibdK0Y/Sp4CW8lsavI/AAAAAAAAAAM/NHQ0DqHSmhs/S220/head-shot.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bEbHWibdK0Y/Sxmb_8v5QlI/AAAAAAAAACU/5Wl3SfrTEmk/s72-c/hover-fader-text-shadow-animation.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6920622988798145088.post-4741812536332673646</id><published>2009-11-22T16:04:00.000-08:00</published><updated>2009-11-22T16:06:50.242-08:00</updated><title type='text'>ASCII.jp gets excited about image wipe effects...</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;The Japanese Web site ASCII.jp has released a follow up article to their first introductory review of the UIZE JavaScript Framework. This time, they take a look at UIZE's support for sophisticated image wipe animation effects. The writers do a great job of capturing snapshots of image wipes in progress to complement the sample code provided. Another nice look at the power of UIZE from ASCII.jp. &lt;b&gt;Domo arigato!&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;a href="http://ascii.jp/elem/000/000/475/475252/"&gt;http://ascii.jp/elem/000/000/475/475252/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_bEbHWibdK0Y/SwnReyfOY2I/AAAAAAAAACE/THxcgNb0JZg/s1600/ASCIIjp-review-part2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_bEbHWibdK0Y/SwnReyfOY2I/AAAAAAAAACE/THxcgNb0JZg/s400/ASCIIjp-review-part2.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6920622988798145088-4741812536332673646?l=uize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://uize.blogspot.com/feeds/4741812536332673646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://uize.blogspot.com/2009/11/asciijp-gets-excited-about-image-wipe.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/4741812536332673646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/4741812536332673646'/><link rel='alternate' type='text/html' href='http://uize.blogspot.com/2009/11/asciijp-gets-excited-about-image-wipe.html' title='ASCII.jp gets excited about image wipe effects...'/><author><name>cvr</name><uri>http://www.blogger.com/profile/02390237414976310346</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_bEbHWibdK0Y/Sp4CW8lsavI/AAAAAAAAAAM/NHQ0DqHSmhs/S220/head-shot.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bEbHWibdK0Y/SwnReyfOY2I/AAAAAAAAACE/THxcgNb0JZg/s72-c/ASCIIjp-review-part2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6920622988798145088.post-7841688624588114853</id><published>2009-11-02T21:58:00.000-08:00</published><updated>2009-11-02T22:07:24.607-08:00</updated><title type='text'>UIZE gets review on ASCII.jp</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Arial,Helvetica,sans-serif;"&gt;The Japanese Web site ASCII.jp has written a nice multi-page review of the UIZE JavaScript Framework, complete with their own samples. Sweeeeeeeeeet! Hopefully we will see UIZE catching on in Japan.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://ascii.jp/elem/000/000/466/466515/" style="font-family: Arial,Helvetica,sans-serif;"&gt;http://ascii.jp/elem/000/000/466/466515/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_bEbHWibdK0Y/Su_FLDjJI7I/AAAAAAAAAB8/l39vF7X3xIQ/s400/ASCIIjp-review.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6920622988798145088-7841688624588114853?l=uize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://uize.blogspot.com/feeds/7841688624588114853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://uize.blogspot.com/2009/11/uize-gets-review-on-asciijp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/7841688624588114853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/7841688624588114853'/><link rel='alternate' type='text/html' href='http://uize.blogspot.com/2009/11/uize-gets-review-on-asciijp.html' title='UIZE gets review on ASCII.jp'/><author><name>cvr</name><uri>http://www.blogger.com/profile/02390237414976310346</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_bEbHWibdK0Y/Sp4CW8lsavI/AAAAAAAAAAM/NHQ0DqHSmhs/S220/head-shot.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bEbHWibdK0Y/Su_FLDjJI7I/AAAAAAAAAB8/l39vF7X3xIQ/s72-c/ASCIIjp-review.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6920622988798145088.post-8471250338075110246</id><published>2009-10-21T20:00:00.000-07:00</published><updated>2009-10-21T20:03:01.705-07:00</updated><title type='text'>A humble widget...</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_bEbHWibdK0Y/St_KkEe2RWI/AAAAAAAAAB0/UdlJSst4964/s1600-h/calculator-widget.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_bEbHWibdK0Y/St_KkEe2RWI/AAAAAAAAAB0/UdlJSst4964/s320/calculator-widget.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;A humble widget... but glowy (at least, in browsers that support text-shadow, like Chrome and Safari).&lt;/span&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;It's cool to see browser-rendered text with effects that are actually useful in the application's styling.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;OK, so it's a humble widget. But then, I threw it together in a couple of days. More a UX exercise than anything else. I wanted to add some little UX touches to this type of critter. For example, it's always bugged me how the percent key behaves in that ugly ass Windows calculator whenever I've used it. Why can't you just do "85 % 15 =" to get 85 percent of 15? Or how about "15 x 85%"? Or how about "15 + 20%"? Or "15 - 20%"? Well, the Windows calculator does the last two, but you have to click the equals button after the percent - annoying. Even more annoying, if you try to reiterate the operation using the equals key -- just like doing "2 x = = = ="&amp;nbsp; to get 2 to the power of 5 (remember that?) -- you end up adding the percent as it resolved the first time, rather than adding the same percent over and over. So, I came up with what I thought was a better implementation, where "15 + 20% = = = =" would just keep compounding the 20% increase on the running value.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Besides the percent implementation I wanted to be able to use the minus key to do things like "3 x -5 = -15". The Windows calculator just turns that into "3 - 5". Other little touches that I threw in are: entry in the display field, with filtering out of unacceptable characters, triggering of operations with the keys "*", "/", "+", "-", "=", "%", "m" (memory plus), escape (clear), and simulation of clicking the buttons on the keypad when typing keys in the display field. Finally, buttons on the keypad are disabled when they can't be used. Type in "2.5" and the "." button becomes disabled (can't have two decimal points in the same number or we might have to send the Number Nazis after you). Try getting the square root of "-1" and you get an extreme illustration of this principle.&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;See it in action here: &lt;/span&gt;&lt;a href="http://www.uize.com/examples/javascript-calculator-widget.html" style="font-family: Arial,Helvetica,sans-serif;"&gt;JavaScript calculator widget&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6920622988798145088-8471250338075110246?l=uize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://uize.blogspot.com/feeds/8471250338075110246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://uize.blogspot.com/2009/10/humble-widget.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/8471250338075110246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/8471250338075110246'/><link rel='alternate' type='text/html' href='http://uize.blogspot.com/2009/10/humble-widget.html' title='A humble widget...'/><author><name>cvr</name><uri>http://www.blogger.com/profile/02390237414976310346</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_bEbHWibdK0Y/Sp4CW8lsavI/AAAAAAAAAAM/NHQ0DqHSmhs/S220/head-shot.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bEbHWibdK0Y/St_KkEe2RWI/AAAAAAAAAB0/UdlJSst4964/s72-c/calculator-widget.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6920622988798145088.post-5639880349460962060</id><published>2009-09-01T23:28:00.000-07:00</published><updated>2009-09-02T00:01:26.797-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript animation effects curves color menu'/><title type='text'>Let's get non-linear...</title><content type='html'>&lt;br/&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bEbHWibdK0Y/Sp4WWyBNSZI/AAAAAAAAABo/iatVuENF0F8/s1600-h/hover-fader-color-effects.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 212px;" src="http://1.bp.blogspot.com/_bEbHWibdK0Y/Sp4WWyBNSZI/AAAAAAAAABo/iatVuENF0F8/s400/hover-fader-color-effects.jpg" alt="" id="BLOGGER_PHOTO_ID_5376759585766721938" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Riffing on the curves work that I did recently, I tried to see what juicy effects could be produced by taking some boring old CSS and throwing a few curves at it. Now, you can do some pretty fun things when you get non-linear. We’ve all seen the JavaScript animation effects where you animate the value of a CSS style property over time. It gets a little more interesting when you start animating several CSS style properties over time – but still not interesting enough for me (I have an appetite for the strange).&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Work that I did around animation made it possible to animate multiple CSS properties in the same animation, but then also provide different curves for the different properties being animated. So, if you’re animating background color and border color at the same time, why do they both have to transition at the same pace – or in the same manner? Sure, you can throw an easing equation on the entire animation, so things get bouncy and stuff, but that’s still not interesting enough. What if it were easy to make the border color animation bouncy, and the background color animation an ease-in? Now things start looking interesting. And what if you could even… prepare yourself now… provide different curves for different components of color values?!?!? That would just be insane! So, of course, I went and tried it. Result: beauty. It’s truly lovely to see different animations that all have the same start settings and that all have the same end settings, but that feel wildly different because of the curves that govern what happens between point A and point B. Example: you fade the border color from black to white. OK, so somewhere in the middle it’s gray, right? WRONG! Not when you’ve got some juicy curves doing different things for red, green, and blue.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I put together a little example to demonstrate what happens when you go and get non-linear on animation’s ass. It’s a demo of the hover fader widget that is being used to create animated menu effects. Yeah, pages get sticky when people spend five minutes just tickling a nav menu repeatedly to see pretty colors. Hey, I won’t vouch for all of the settings I came up with: some of them are just outlandish and should NEVER be used on any Web site, or risk getting a knock on the door from the usability police. But, then again, life is too short to be boring. One should use the awesome power of curves wisely.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;PS: Some of my favorites are “A Fading Fusion of Fuchsia and Morning Glory”, “Spectral Background Fade Out”, “Prismatic Border”, “Gold Ingots”, and “Aqua Border, Oscillating Tail Slows Down Towards End”. But, they’re all kind of fun. And this is just what I could come up with, with a little bit of tooling around and imagining what curves might produce what kinds of effects.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.uize.com/examples/hover-fader-color-effects.html"&gt;http://www.uize.com/examples/hover-fader-color-effects.html&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6920622988798145088-5639880349460962060?l=uize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://uize.blogspot.com/feeds/5639880349460962060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://uize.blogspot.com/2009/09/lets-get-non-linear.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/5639880349460962060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/5639880349460962060'/><link rel='alternate' type='text/html' href='http://uize.blogspot.com/2009/09/lets-get-non-linear.html' title='Let&apos;s get non-linear...'/><author><name>cvr</name><uri>http://www.blogger.com/profile/02390237414976310346</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_bEbHWibdK0Y/Sp4CW8lsavI/AAAAAAAAAAM/NHQ0DqHSmhs/S220/head-shot.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bEbHWibdK0Y/Sp4WWyBNSZI/AAAAAAAAABo/iatVuENF0F8/s72-c/hover-fader-color-effects.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6920622988798145088.post-6558965738982691483</id><published>2009-09-01T22:31:00.000-07:00</published><updated>2009-09-01T22:34:33.399-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='calendar widget date picker'/><title type='text'>IMPROVED MODULE: Uize.Widget.Calendar</title><content type='html'>&lt;div class="contents1"&gt;   &lt;p&gt;The &lt;code&gt;&lt;a href="file:///C:/%7Euize/uize_framework/reference/Uize.Widget.Calendar.html"&gt;Uize.Widget.Calendar&lt;/a&gt;&lt;/code&gt; module has been improved with the addition of the new &lt;code&gt;snapViewOnValueChange&lt;/code&gt; set-get property, which lets you control whether or not the values of the &lt;code&gt;month&lt;/code&gt; and &lt;code&gt;year&lt;/code&gt; set-get properties should automatically be set when the value of the &lt;code&gt;value&lt;/code&gt; set-get property changes.&lt;/p&gt;      &lt;p&gt;When this property is set to &lt;code&gt;true&lt;/code&gt;, the &lt;code&gt;month&lt;/code&gt; and &lt;code&gt;year&lt;/code&gt; properties will be automatically set when the value of the &lt;code&gt;value&lt;/code&gt; property changes, to ensure that the newly selected date is in view. In this mode, the values of the &lt;code&gt;month&lt;/code&gt; and &lt;code&gt;year&lt;/code&gt; properties can still be changed so that the currently selected date is not in view, but whenever the &lt;code&gt;value&lt;/code&gt; property is next modified, the &lt;code&gt;month&lt;/code&gt; and &lt;code&gt;year&lt;/code&gt; properties will be "snapped back" to the month and year of the selected date.&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6920622988798145088-6558965738982691483?l=uize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://uize.blogspot.com/feeds/6558965738982691483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://uize.blogspot.com/2009/09/improved-module-uizewidgetcalendar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/6558965738982691483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6920622988798145088/posts/default/6558965738982691483'/><link rel='alternate' type='text/html' href='http://uize.blogspot.com/2009/09/improved-module-uizewidgetcalendar.html' title='IMPROVED MODULE: Uize.Widget.Calendar'/><author><name>cvr</name><uri>http://www.blogger.com/profile/02390237414976310346</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_bEbHWibdK0Y/Sp4CW8lsavI/AAAAAAAAAAM/NHQ0DqHSmhs/S220/head-shot.jpg'/></author><thr:total>0</thr:total></entry></feed>
