<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.11.81 (http://www.squarespace.com/) on Sun, 27 May 2012 06:26:17 GMT--><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rss="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:cc="http://web.resource.org/cc/"><rss:channel rdf:about="http://bristowe.com/blog/"><rss:title>John Bristowe's Blog</rss:title><rss:link>http://bristowe.com/blog/</rss:link><rss:description></rss:description><dc:language>en-CA</dc:language><dc:date>2012-05-27T06:26:17Z</dc:date><admin:generatorAgent rdf:resource="http://www.squarespace.com/">Squarespace Site Server v5.11.81 (http://www.squarespace.com/)</admin:generatorAgent><rss:items><rdf:Seq><rdf:li rdf:resource="http://bristowe.com/blog/2012/5/24/introducing-the-actionsheet-for-kendo-ui-mobile.html"/><rdf:li rdf:resource="http://bristowe.com/blog/2012/5/16/kendo-ui-q1-2012-commercial-service-pack-available-now.html"/><rdf:li rdf:resource="http://bristowe.com/blog/2012/5/9/another-day-another-beautiful-sunrise.html"/><rdf:li rdf:resource="http://bristowe.com/blog/2012/5/9/connecting-the-kendo-ui-datasource-to-remote-data.html"/><rdf:li rdf:resource="http://bristowe.com/blog/2012/5/5/webdu-2012.html"/><rdf:li rdf:resource="http://bristowe.com/blog/2012/4/13/an-in-depth-look-at-the-listview-in-kendo-ui-web.html"/><rdf:li rdf:resource="http://bristowe.com/blog/2012/3/30/kendo-ui-folks-at-an-event-near-you.html"/><rdf:li rdf:resource="http://bristowe.com/blog/2012/3/16/just-because-its-ridiculous-doesnt-mean-its-stoopid.html"/><rdf:li rdf:resource="http://bristowe.com/blog/2011/12/13/why-travel-across-canada.html"/><rdf:li rdf:resource="http://bristowe.com/blog/2011/12/2/kendo-ui-official-launch-webinar.html"/></rdf:Seq></rss:items></rss:channel><rss:item rdf:about="http://bristowe.com/blog/2012/5/24/introducing-the-actionsheet-for-kendo-ui-mobile.html"><rss:title>Introducing the ActionSheet for Kendo UI Mobile</rss:title><rss:link>http://bristowe.com/blog/2012/5/24/introducing-the-actionsheet-for-kendo-ui-mobile.html</rss:link><dc:creator>John Bristowe</dc:creator><dc:date>2012-05-23T23:54:29Z</dc:date><dc:subject>ActionSheet Android BlackBerry Kendo UI Kendo UI Kendo UI Mobile ListView Mobile iOS</dc:subject><content:encoded><![CDATA[<h2>Highlights</h2>
<ul>
<li><em style="color: #00a000;">New!</em> <a href="http://demos.kendoui.com/mobile/actionsheet/index.html">ActionSheet</a> introduced in the Q1 2012 SP of <a href="http://www.kendoui.com/mobile.aspx">Kendo UI Mobile</a> (v2012.1.515)</li>
<li><strong>ActionSheet</strong> displays a set of choices related to a task the user initiates</li>
<li>Super-easy to add the <strong>ActionSheet</strong> to your apps built on Kendo UI Mobile</li>
<li>Easy to add <strong>ActionSheet</strong> to existing Kendo UI Mobile applications (i.e. <a href="http://www.kendoui.com/blogs/teamblog/posts/12-05-08/teamthing_a_html5_mobile_app_demo.aspx">TeamThing</a>)</li>
</ul>
<h2>Introduction</h2>
<p>In case you missed it, <a href="http://www.kendoui.com/blogs/teamblog/posts/12-05-15/kendo_ui_q1_2012_commercial_service_pack_available_now.aspx">we shipped a service pack for the Q1 2012 release of Kendo UI last week</a>. This service pack includes many updates, fixes, and enhancements to all three collections of Kendo UI (Web, DataViz, Mobile). For the release, I wrote a blog post that provided a high-level overview of what&#8217;s new. Unfortunately, I neglected to highlight the <strong>ActionSheet</strong> that we introduced in Kendo UI Mobile.</p>
<p>In my defense, it&#8217;s always a challenge to cover everything for our releases!</p>
<h2>Introducing the ActionSheet</h2>
<p>The purpose of the <strong>ActionSheet</strong> is to display a list of actions based on user interaction. The <strong>ActionSheet</strong> provides a native-like menu across all platforms supported by Kendo UI Mobile. In every case, a cancellation button is provided for the user to revoke the action. Additionally, it provides a title bar on Android and BlackBerry devices.</p>
<p>Here&#8217;s an example of an <strong>ActionSheet</strong> that could be displayed when a user selects an email:</p>
<p><span class="full-image-block ssNonEditable"><span><img src="http://dl.dropbox.com/s/sgeuj91sw70eig6/actionsheet-in-action.png?__SQUARESPACE_CACHEVERSION=1337823762779" alt="" /></span><span class="thumbnail-caption" style="width: 693px;">ActionSheet of Kendo UI Mobile</span></span></p>
<p>The <strong>ActionSheet</strong> is useful in situations when you want to provide a user with a quick, contextual menu to perform a task. It may also be used to confirm a user&#8217;s choice before conducting an action with potentially significant consequences (i.e. deleting an email).</p>
<h2>Getting Started</h2>
<p>An <strong>ActionSheet</strong> is displayed when a user interacts with navigational widgets such as a <a href="http://demos.kendoui.com/mobile/listview/index.html">ListView</a>. Adding an <strong>ActionSheet</strong> to your Kendo UI Mobile is pretty simple. Let&#8217;s assume the following example:</p>
<script src="https://gist.github.com/2778953.js?file=ActionSheet-Definition.html"></script>
<p>An <strong>ActionSheet</strong> is a <code>ul</code> element with a <em>role</em> <code>data-</code> attribute set to <em>actionsheet</em>. (Alternatively, the <strong>ActionSheet</strong> can be initialized via a jQuery selector.) It&#8217;s a widget that you&#8217;ll define within the context of a <a href="http://demos.kendoui.com/mobile/view/index.html">View</a> like so:</p>
<script src="https://gist.github.com/2778953.js?file=ActionSheet-in-View.html"></script>
<p>In the example (above), each action is represented by a <code>li</code> element with a nested anchor that contains an <em>action</em> <code>data-</code> attribute. The purpose of the <em>action</em> <code>data-</code> attribute is to specify a callback method to be executed when the user clicks/touches it. For example, when the user clicks/touches the <em>Reply</em> option, the <code>reply</code> callback is triggered.</p>
<p>The callback receives a object with two fields: <code>target</code> and (optional) <code>context</code> as a parameter. The <code>target</code> field provide a reference to the DOM element responsible for displaying the <strong>ActionScript</strong>. The <code>context</code> field provides access to the <em>actionsheet-context</em> <code>data-</code> attribute of the opening element:</p>
<script src="https://gist.github.com/2778953.js?file=reply-Callback.js"></script>
<p>The <code>context</code> field provides allows you to quickly reference the item that the user selected.</p>
<h2>Adding the ActionSheet to TeamThing</h2>
<p><span class="full-image-block ssNonEditable"><span><img src="http://dl.dropbox.com/s/klziq6xgtwdkqft/TeamThing.png?__SQUARESPACE_CACHEVERSION=1337823778959" alt="" /></span><span class="thumbnail-caption">TeamThing on the iPhone</span></span></p>
<p>Earlier this month, <a href="http://twitter.com/toddanglin">Todd Anglin</a> published a sample application entitled, <a href="http://teamthing.apphb.com/mobile/index.html">TeamThing</a>. Its purpose is simple to highlight the building blocks of Kendo UI Mobile. From <a href="http://www.kendoui.com/blogs/teamblog/posts/12-05-08/teamthing_a_html5_mobile_app_demo.aspx">Todd&#8217;s blog post on TeamThing</a>:</p>
<blockquote>While the purpose of the app is to showcase Kendo UI Mobile, let&#8217;s make sure you understand the basic app concepts. In essence, TeamThing is like a task list app for teams. The idea is that distributed team members can use TeamThing to effortlessly share what they&#8217;re working on so that all other team members and observers (like bosses) can easily answer the question, &#8220;What are you working on?&#8221; at any time.</blockquote>
<p>At the time that TeamThing was built, Kendo UI Mobile didn&#8217;t have the <strong>ActionSheet</strong>. When task was selected by a user, the application simply navigated to a new <strong>View</strong>:</p>
<p><span class="full-image-block ssNonEditable"><span><img src="http://dl.dropbox.com/s/6i8bz4583s5yx71/TeamThing-ThingDetailView.png?__SQUARESPACE_CACHEVERSION=1337823798184" alt="" /></span><span class="thumbnail-caption">ThingDetail View of TeamThing</span></span></p>
<p>This isn&#8217;t an ideal user experience because the transition to a new view didn&#8217;t feel natural to the user experience metaphors of the device experience. I wanted to see if I could swap out this <strong>View</strong> with a more intuitive <strong>ActionSheet</strong>. I also wanted to see just how easy this was.</p>
<p>As it turns out, it was really easy.</p>
<p>The first step involved building an <strong>ActionSheet</strong> for TeamThing:</p>
<script src="https://gist.github.com/2778953.js?file=TeamThing-ActionSheet.html"></script>
<p>Here&#8217;s the resulting output for this markup:</p>
<p><span class="full-image-block ssNonEditable"><span><img src="http://dl.dropbox.com/s/aic3owtncdt9rvc/TeamThing-ActionSheet.png" alt="" /></span><span class="thumbnail-caption">ActionSheet for TeamThing</span></span></p>
<p>Notice that I themed the <em>Delete</em> option appropriately. This was done through a simple set of style applied through the CSS classes, <em>km-button</em> and <em>delete</em>:</p>
<script src="https://gist.github.com/2778953.js?file=Delete-ActionSheet-Option.css"></script>
<p>The next step was to route user interactions for each item to this newly-created <strong>ActionSheet</strong>. Because the original list utilized databinding and templates, accomplishing this task was easy:</p>
<script src="https://gist.github.com/2778953.js?file=ListView-Template.html"></script>
<p>In the markup (above), the template outputs code to inform the Kendo UI Mobile framework to route interactions to the <strong>ActionSheet</strong>. To make matters simplier for me when modified items, I utilized the <em>actionsheet-context</em> <code>data-</code> attribute to pass information to each of my callbacks that I had created for each action defined.</p>
<h2>Final Thoughts</h2>
<p>So, there you have it. The <strong>ActionSheet</strong> is a new widget that will provide you with a quick, contextual menu for performing actions against a collection of items you have in your Kendo UI Mobile applications. We added it to the service pack for Kendo UI Q1 2012 so make sure to sync up your script and style references. And, as always, please continue to send us your awesome feedback!</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://bristowe.com/blog/2012/5/16/kendo-ui-q1-2012-commercial-service-pack-available-now.html"><rss:title>Kendo UI Q1 2012 Commercial Service Pack Available Now</rss:title><rss:link>http://bristowe.com/blog/2012/5/16/kendo-ui-q1-2012-commercial-service-pack-available-now.html</rss:link><dc:creator>John Bristowe</dc:creator><dc:date>2012-05-15T15:17:03Z</dc:date><dc:subject>Kendo UI Kendo UI Service Pack</dc:subject><content:encoded><![CDATA[<p><span class="full-image-block ssNonEditable"><span><img src="http://bristowe.com/storage/kendo-ui-q1-2012-service-pack.png?__SQUARESPACE_CACHEVERSION=1337095058134" alt="" /></span></span></p>
<p>I&#8217;m happy to report that our team has shipped a service pack for Kendo UI Q1 2012 release (version 2012.1.515). In this blog post, I&#8217;ll highlight a few of the noteworthy enhancements we&#8217;ve implemented for this release. However, as always, I would encourage you to review the change logs:</p>
<ul>
<li><a href="http://www.kendoui.com/web/whats-new.aspx">What&#8217;s New in Kendo UI Web</a></li>
<li><a href="http://www.kendoui.com/dataviz/whats-new.aspx">What&#8217;s New in Kendo UI DataViz</a></li>
<li><a href="http://www.kendoui.com/mobile/whats-new.aspx">What&#8217;s New in Kendo UI Mobile</a></li>
</ul>
<p>The Kendo UI Q1 2012 service pack provides a number of updates, fixes, and enhancements to the version of Kendo UI we shipped earlier this year. From a high-level perspective, we accomplished a great deal of work for this latest milestone:</p>
<ul>
<li>112 bugs fixed</li>
<li>17 enhancements added</li>
<li>85 issues resolved for Kendo UI Web</li>
<li>18 issues resolved for Kendo UI DataViz</li>
<li>20 issues resolved for Kendo UI Mobile</li>
<li>and much more!</li>
</ul>
<p>Here are just a few of the cooler fixes and enhancements we&#8217;ve implemented in this service pack:</p>
<p><strong><em style="color: #00a000;">New!</em> Method Chaining Support in Kendo UI Web, DataViz, and Mobile</strong><br />Prior to this service pack, whenever a developer wished to interface with a Kendo UI widget, he/she needed to invoke .data() in order to obtain a reference to the object. For example:</p>
<pre>$("#grid").kendoGrid();
$("#grid").data("kendoGrid").refresh();</pre>
<p>All of this ceremony caused frustration and so we decided to eliminate it by supporting method chaining. With this latest service pack, you&#8217;ll be able to write JavaScript that&#8217;s more readable:</p>
<pre>$("grid").kendoGrid("refresh");</pre>
<p>This enhancement has been implemented across all three collections of Kendo UI; Kendo UI Web, Kendo UI DataViz, and Kendo UI Mobile.</p>
<p><strong><em style="color: #00a000;">New!</em> Column Reordering and Resizing in the Grid of Kendo UI Web</strong><br />Fans of our ASP.NET MVC controls will know just how valueable it can be to have a grid that can be modified by users. In this service pack, we&#8217;re providing the ability to<strong>resize</strong> and <strong>reorder</strong> the columns of the Grid widget in Kendo UI Web.</p>
<ul>
<li>Check out <a href="http://demos.kendoui.com/web/grid/column-resizing.html">a demo of column resizing</a> of the Grid widget in Kendo UI Web</li>
<li>Check out <a href="http://demos.kendoui.com/web/grid/column-reordering.html">a demo of column reordering</a> of the Grid widget in Kendo UI Web</li>
</ul>
<p>Although it&#8217;s a minor enhancement, it&#8217;s one that got a lot of votes on <a href="http://kendo.uservoice.com/">our UserVoice site</a>. In other words, you asked, so we delivered!</p>
<p><strong><em style="color: #00a000;">Fixed!</em> kendo.web.js and kendo.dataviz.js can be Included Simultaneously</strong><br />In certain, edge-case type scenarios, customers would experience runtime errors when attemting to load the JavaScript resources for Kendo UI Web and Kendo UI DataViz on the same page. This behaviour has been resolved in this service pack.</p>
<p><strong><em style="color: #00a000;">Fixed!</em> Case-Sensitive Filtering and Searching in Kendo UI Web</strong><br />A few of the widgets of Kendo UI Web - noteably, the AutoComplete, ComboBox, and DatePicker - support the filtering and/or searching of values. In this service pack, we have included support for case sensitivity when conducting these operations against data-bound collections.</p>
<p><strong><em style="color: #00a000;">New!</em> Dynamic Content in the ScrollView of Kendo UI Mobile</strong><br />The ScrollView widget provides a finger-friendly control for scrolling through content like images. Through a swipe gesture, you can navigate between a list of local and remote resources. Until this latest release, it was difficult (but not impossible) for developers to dynamically update the content of ScrollView panes. Now, we&#8217;re providing a new method - .content() - which will provide this facility.</p>
<p>These are just a few of the updates, fixes, and enhancements that you&#8217;ll find in the service pack for the Kendo UI Q1 2012 release. Many of the bugs and feature requests we implemented came directly from you; our customers. We spend a great deal of time tracking your feedback on <a href="http://www.kendoui.com/forums.aspx">our forums</a>, <a href="http://kendo.uservoice.com/">our UserVoice site</a>, <a href="http://stackoverflow.com/">Stack Overflow</a>, Twitter (<a href="http://twitter.com/KendoUI">@KendoUI</a>) and elsewhere online. As always, we welcome all feedback. Please continue to submit your requests. We&#8217;ll continue to make Kendo UI more awesome.</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://bristowe.com/blog/2012/5/9/another-day-another-beautiful-sunrise.html"><rss:title>"Another Day, Another Beautiful Sunrise"</rss:title><rss:link>http://bristowe.com/blog/2012/5/9/another-day-another-beautiful-sunrise.html</rss:link><dc:creator>John Bristowe</dc:creator><dc:date>2012-05-09T10:52:32Z</dc:date><dc:subject>Morning Personal Photos Sunrise</dc:subject><content:encoded><![CDATA[<p><span class="full-image-block ssNonEditable"><span><img src="http://bristowe.com/storage/IMG_0811.JPG?__SQUARESPACE_CACHEVERSION=1336561133249" alt="" /></span></span></p>
<p>Shot taken from Berwick, Victoria, Australia.</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://bristowe.com/blog/2012/5/9/connecting-the-kendo-ui-datasource-to-remote-data.html"><rss:title>Connecting the Kendo UI DataSource to Remote Data</rss:title><rss:link>http://bristowe.com/blog/2012/5/9/connecting-the-kendo-ui-datasource-to-remote-data.html</rss:link><dc:creator>John Bristowe</dc:creator><dc:date>2012-05-09T06:16:15Z</dc:date><dc:subject>Kendo UI Kendo UI</dc:subject><content:encoded><![CDATA[<p>Over the past number of months, I&#8217;ve fielded an enormous number of questions about <a href="http://www.kendoui.com/">Kendo UI</a>. In this post, I&#8217;d like to answer a question I&#8217;ve received about the <a href="http://demos.kendoui.com/web/datasource/index.html">DataSource</a> component. This question speaks more to the architectural concerns of your application as opposed to the technical aspects of Kendo UI. Nevertheless, it&#8217;s a question that warrants some examination.</p>
<blockquote>
I am considering moving to Kendo UI but I am discouraged by the examples that I see for connecting to the DataSource component. How can I use existing data from a database in a Kendo UI application?
</blockquote>
<p>The answer to this question is somewhat nuanced due to the implications it can have on your application&#8217;s architecture. Consider for a moment the operating requirements of Kendo UI itself. Kendo UI is a framework that operates entirely within the confines of the browser since it&#8217;s built in HTML5, JavaScript, and CSS. Knowing this, one can see the implications of connecting to the data in your underlying database.</p>
<p>The <strong>DataSource</strong> component is an abstraction in JavaScript that manages in-memory and remote data sources. Its purpose is to simplify the process of propagating updates to and from these data sources. In the case of data that&#8217;s stored in a remote database (SQL Server, Oracle, MySQL, CouchDB, etc.), there&#8217;s an assumption on our part that the data is accessible to query via <a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol">HTTP</a>. This is necessary since we are talking about JavaScript running in the context of the browser. So, at a basic level, this is what is required for us to integrate your data with our framework. In terms of the actual data coming across the wire, this can be represented in a number of different ways. Out-of-the-box, we support <a href="http://en.wikipedia.org/wiki/XML">XML</a>, <a href="http://en.wikipedia.org/wiki/Open_Data_Protocol">OData</a>, and <a href="http://en.wikipedia.org/wiki/JSON">JSON</a>.</p>
<p>Coming back to the question posed earlier, if you want to “use existing data from a database in a Kendo UI application” then you need to expose it via HTTP. There are a lot of different ways to do this; your options really do vary wildly, database to database. That stated, I&#8217;m a fan of implementing a service layer that can be exposed and consumed by frameworks like Kendo UI. For example, if you&#8217;re a .NET developer then you can take advantage of <a href="http://www.asp.net/web-api">ASP.NET Web API</a>. Many other solutions exist for Java, PHP, and others. The point is that you can have a great deal of control over how your data is provided to consuming clients. Of course, how you chose to implement these endpoints is another topic entirely. For now, know that for Kendo UI, we need some mechanism of accessing your data. Because we&#8217;re on the web, that means HTTP.</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://bristowe.com/blog/2012/5/5/webdu-2012.html"><rss:title>webDU 2012</rss:title><rss:link>http://bristowe.com/blog/2012/5/5/webdu-2012.html</rss:link><dc:creator>John Bristowe</dc:creator><dc:date>2012-05-05T05:41:00Z</dc:date><dc:subject>Conferences Developers Events Sydney Web Development webDU</dc:subject><content:encoded><![CDATA[<p><img src="http://bristowe.com/storage/webDU-1.jpg?__SQUARESPACE_CACHEVERSION=1336975837344" alt=""/></p>
<p>I was in Sydney earlier this week to speak at <a href="http://www.webdu.com.au/">webDU</a>. This year marked the 10th anniversary of this conference and I admit that I walked away impressed by the quality of the presentations that were delivered along with the professionalism of the organising staff.</p>
<p>Initially, I had planned to deliver a talk on responsive design. However, I was asked to cover for a missing speaker due to illness. My first talk entitled, &#8220;Make Awesome Web&#8221; covered a top 25 list of sites and tools I had curated on <a href="http://makeawesomeweb.com/">Make Awesome Web</a>.</p>
<ul>
<li><a href="http://kendoui.com/">Kendo UI</a></li>
<li><a href="http://raphaeljs.com/">Raphaël</a></li>
<li><a href="http://html5please.com/">HTML5 Please</a></li>
<li><a href="http://css3please.com/">CSS3 Please</a></li>
<li><a href="http://css3test.com/">CSS3 Test</a>
<li><a href="http://viget.com/inspire/39-ridiculous-things-to-do-with-css3-box-shadows">39 Ridiculous Things To Do With CSS3 Box Shadows</a></li>
<li><a href="http://twitter.github.com/bootstrap/">Bootstrap, from Twitter</a>
<li><a href="http://html5boilerplate.com/">HTML5 Boilerplate</a></li>
<li><a href="http://httpstat.us/">httpstat.us</a></li>
<li><a href="http://fittextjs.com/">FitText</a></li>
<li><a href="http://jaredhardy.com/omg-text/">OMG Text!</a></li>
<li><a href="http://prettyloaded.com/">Pretty Loaded</a></li>
<li><a href="http://builtwith.com/">BuiltWith</a></li>
<li><a href="http://lea.verou.me/polyfills/progress/">HTML5 Progress Polyfill</a></li>
<li><a href="http://baconipsum.com/">Bacon Ipsum</a></li>
<li><a href="http://peoplemov.in/">PeopleMov.in</a></li>
<li><a href="http://newzealand.com/">NewZealand.com</a></li>
<li><a href="http://jsbin.com/">JS Bin</a></li>
<li><a href="http://paperjs.org/">Paper.js</a></li>
<li><a href="http://microjs.com/">MicroJS</a></li>
<li><a href="http://phonegap.com/">PhoneGap</a></li>
<li><a href="http://createjs.com/">CreateJS</a></li>
<li><a href="http://jsfiddle.net/">jsFiddle</a></li>
<li><a href="http://httparchive.org/">HTTP Archive</a></li>
<li><a href="http://thenounproject.com/">The Noun Project</a></li>
<li><a href="http://wheelsofsteel.net/">Wheels of Steel</a></li>
<li><a href="http://daftpunk.themaninblue.com/">Anatomy of a Mashup</a></li>
<li><a href="http://mothereffingtextshadow.com/">Mother-effing Text-Shadow</a></li>
<li><a href="http://mothereffinghsl.com/">Mother-effing HSL</a></li>
<li><a href="http://mothereffinganimatedgif.com/">Mother-effing Animated GIF</a></li>
<li><a href="http://www.webink.com/fout-b-gone">FOUT-B-Gone</a></li>
</ul>
<p>This talk went very well. In retrospect, I probably should have given the presentation a better title. Something like &#8220;Johnny&#8217;s Crazy-Ass Brain-Dump of Awesome Sites and Tools&#8221; would have been much more appropriate.</p>
<p><img src="http://bristowe.com/storage/webdu-2.jpg?__SQUARESPACE_CACHEVERSION=1336975544783" alt=""/></p>
<p>Later in the night, I was a panelist in a BOF entitled, <a href="http://www.webdu.com.au/session/bof-building-native-apps-with-web-frameworks">Building Native Apps with Web Frameworks</a>, which featured a lively discussion about building applications for mobile devices with web development technologies. Of course, I spoke at-length about how we (at Telerik) approach this problem with Kendo UI. Our view is that many developers and companies want to build applications that look and feel native without having to resort to differing frameworks and unfamiliar languages. During our discussion, I made the point that of all the viable mobile platforms in existence (and soon-to-be-in existence), the Metro UX metaphor presented by Microsoft is the one that certainly disrupts the in-and-out push-button experience you see across iOS, Android, and Blackberry today. This certainly got a few questions raised. Of course, the reality is somewhat interesting this days with Apple and Google owning a great deal of developer and consumer mindshare in this space. Nevertheless, it&#8217;s one that a lot of folks are watching with great interest.</p>
<p>As I stated earlier, I had planned to deliver a talk on responsive design on the following day of the conference. Unfortunately, my son back in Melbourne was very sick and I received word from my wife that I needed to come home immediately. I was (therefore) unable to deliver my talk but I suppose that&#8217;s life as a parent.</p>
<p>On a side note, I was great to meet a number of the speakers and attendees at webDU. I was quite impressed by the level of expertise and experience at this conference. I truly hope to be invited back to speak next year and I look forward to seeing the list of talks on-offer at that time.</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://bristowe.com/blog/2012/4/13/an-in-depth-look-at-the-listview-in-kendo-ui-web.html"><rss:title>An In-Depth Look at the ListView in Kendo UI Web</rss:title><rss:link>http://bristowe.com/blog/2012/4/13/an-in-depth-look-at-the-listview-in-kendo-ui-web.html</rss:link><dc:creator>John Bristowe</dc:creator><dc:date>2012-04-13T05:21:16Z</dc:date><dc:subject>Kendo UI Kendo UI</dc:subject><content:encoded><![CDATA[<p>The <a href="http://demos.kendoui.com/web/listview/">ListView</a> is a widget that was recently introduced in the <a href="http://www.kendoui.com/web/whats-new/release-notes/q1-2012-version-2012-1-322.aspx">March 2012 release of Kendo UI Web</a>. Its purpose is to display a custom layout of data-bound items through templates. In this article, I&#8217;ll highlight how the ListView works as well as identify scenarios where it is suitable to use.</p>
<p>The ListView is ideally suited for scenarios where you wish to display a list of items in a consistent manner. Examples of its use can be seen in commonplace design structures applied on the Internet today; search engine results, tweets from Twitter, Facebook updates, inbox items in Gmail, card lists in Trello, and so on.</p>
<p>The ListView is designed to put you back in control when it comes to displaying data. In fact, it does not provide a default rendering of data-bound items. Instead, it relies entirely on templates to define how a list of items - including alternating items and items being edited - is displayed.</p>
<p>Let&#8217;s see how the ListView works by building a simple example that integrates the <a href="https://dev.twitter.com/">Twitter API</a>.</p>
<p>First, we&#8217;ll define a target HTML element such as a list or div:</p>
<p><script src="https://gist.github.com/2373272.js"> </script></p>
<p>Next, we&#8217;ll initialize the ListView by referring the template and a result set from the Twitter API to be displayed:</p>
<p><script src="https://gist.github.com/2373296.js"> </script></p>
<p>Here&#8217;s the live example of the representation (above) with additional styling:</p>
<p><iframe style="width: 100%; height: 425px" src="http://jsfiddle.net/jbristowe/TzNpS/embedded/result,js,html,css" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<p>In scenarios where the number of items bound to a ListView is larger than expected, a Pager will control the items being displayed. Using a Pager is relatively simple. First, you create a target element for its rendering. Typically, it should be placed in the vicinity of the ListView.</p>
<p><script src="https://gist.github.com/2373305.js"> </script></p>
<p>The next step is to update the ListView configuration to state that it support paging through its <strong>pageable</strong> property and to initialize the Pager.</p>
<p><script src="https://gist.github.com/2373309.js"> </script></p>
<p>Here&#8217;s the same live example with a Pager applied to the ListView:</p>
<p><iframe style="width: 100%; height: 425px" src="http://jsfiddle.net/jbristowe/3w7ru/embedded/result,js,html,css" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<p>From a design perspective, it may be useful to visually differiante each alternating item in a ListView. For example, in the previous example, I may wish to have every second item have a slightly darker background (i.e. banded rows). Defining the <strong>altTemplate</strong> property accomplishes this through the use of a template that you define. Let&#8217;s go ahead and update our working example to include a template for alternating items.</p>
<p><script src="https://gist.github.com/2373322.js"> </script></p>
<p>Here&#8217;s how the live example how looks with a template for alternating items:</p>
<p><iframe style="width: 100%; height: 425px" src="http://jsfiddle.net/jbristowe/mBRML/embedded/result,js,html,css" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<p>In addition to paging, the ListView supports item selection, navigation, and inline editing. Supporting these operations is achieved through the initialization of its Boolean configuration options. In the case of inline editing, the ListView provides the <strong>editTemplate</strong> property, which defines a template for this mode. Once define, the ListView can render out this editing template via the <strong>edit</strong> method. When invoked, the <strong>editTemplate</strong> for the ListView is applied against the target item. In most scenarios, you should implement this through an event model that is triggered when the user selected an item to modify.</p>
<p><script src="https://gist.github.com/2373360.js"> </script></p>
<p>The ListView encapsulates operations for adding and removing items, item selection, editing, and persisting changes. These methods enable you to modify the underpinning list of items through a series of user-initiated actions/events. In the case of inline editing, the first step is to define a template that is to be used when editing items.</p>
<p><script src="https://gist.github.com/2373365.js"> </script></p>
<p>The template you define for the inline editing of items may include other Kendo UI widgets. Looking at <a href="http://demos.kendoui.com/web/listview/editing.html">the example for editing items on KendoUI.com</a>, you can see that the edit template defines a series of widgets for editing an item:</p>
<p><span class="full-image-block ssNonEditable"><span><img src="http://bristowe.com/storage/listview-item-editing.png?__SQUARESPACE_CACHEVERSION=1334295660060" alt="" /></span></span></p>
<p>The inline editing of ListView items is triggered by a click event initiated by a user and is wired up via <strong>.delegate()</strong> in jQuery.</p>
<p><script src="https://gist.github.com/2373527.js"> </script></p>
<p>Item selection is another scenario supported by the ListView. By setting the <strong>selectable</strong> property to either &#8220;single&#8221; or &#8220;multiple&#8221;, you can provide the ability to have users select items.</p>
<p><script src="https://gist.github.com/2373579.js"> </script></p>
<p>You can capture when items are selected through the <strong>change</strong> event that is triggered when a user selected one or more items (via shift-select).</p>
<p><script src="https://gist.github.com/2373597.js"> </script></p>
<p>Updating the example using the Twitter API that I created before, here&#8217;s the live representation of that with item selection enabled:</p>
<p><iframe style="width: 100%; height: 425px" src="http://jsfiddle.net/jbristowe/AtraC/embedded/result,js,html,css" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<p>As you&#8217;ve seen, the ListView is ideally suited for scenarios where you wish to display a list of items in a consistent manner. I hope this blog post has shed some light on the use of this widget. As always, if you have any questions, please feel free to drop us a line on Twitter (<a href="http://twitter.com/KendoUI">@KendoUI</a>).</p>
<p><em>This blog post also appears on the <a href="http://www.kendoui.com/blogs/teamblog/posts/12-04-12/an_in-depth_look_at_the_listview.aspx">Kendo UI Blog</a>.</em></p>
]]></content:encoded></rss:item><rss:item rdf:about="http://bristowe.com/blog/2012/3/30/kendo-ui-folks-at-an-event-near-you.html"><rss:title>Kendo UI Folks at an Event Near You!</rss:title><rss:link>http://bristowe.com/blog/2012/3/30/kendo-ui-folks-at-an-event-near-you.html</rss:link><dc:creator>John Bristowe</dc:creator><dc:date>2012-03-30T09:33:39Z</dc:date><dc:subject>Events Kendo UI</dc:subject><content:encoded><![CDATA[<p>Building a great product means listening to your customers. The feedback you get can have a tremendous impact on your success. That&#8217;s why those of us on the Kendo UI team are committed to connecting with developers like you. We love getting your feedback. We spend a great deal of time listening to your feature requests and suggestions. To date, we&#8217;ve had a total of 183 ideas posted on <a href="http://kendo.uservoice.com/forums/127393-kendo-ui-feedback">our user voice site</a>. On our <a href="http://www.kendoui.com/forums.aspx">forums</a>, we&#8217;ve had 2117 threads created, with a total of 6965 posts. These numbers speak volumes, especially when you consider we shipped the first release of Kendo UI less than six months ago.</p>
<p>Of course, building a great product also means connecting with your customers on a face-to-face level. This usually involves a lot of travel and time away from family, but it&#8217;s value cannot be understated. Nothing gets us more excited than hearing a story about the <em>Next Big Thing</em> being built on Kendo UI. Or, talking to a developer who wants us to implement a feature for the next release. We love it.</p>
<p>That&#8217;s why I wanted to take this opportunity to share with you the whereabouts of some of the Kendo UI team memebers over the next few months. Specifically, you&#8217;ll find <a href="http://htmlui.com/">Todd Anglin</a> (<a href="http://twitter.com/ToddAnglin">@ToddAnglin</a>), <a href="http://a.shinynew.me/">Burke Holland</a> (<a href="http://twitter.com/BurkeHolland">@BurkeHolland</a>), <a href="http://www.userinexperience.com/">Brandon Satrom</a> (<a href="http://twitter.com/BrandonSatrom">@BrandonSatrom</a>), and I (<a href="http://bristowe.com/">John Bristowe</a>, <a href="http://twitter.com/JohnBristowe">@JohnBristowe</a>) at one of the following events near you:</p>
<p>
<ul>
<li>April 2-3: <a href="http://2012.jsconf.us/">JSConf 2012</a></li>
<li>April 30 - May 1: <a href="http://www.terrapinn.com/exhibition/the-internet-show-melbourne/index.stm">Melbourne Internet Show</a></li>
<li>May 3-4: <a href="http://www.webdu.com.au/">WebDU</a></li>
<li>May 4-6: <a href="http://newenglandgivecamp.org/">New England GiveCamp</a></li>
<li>May 16-18: <a href="http://www.webvisionsevent.com/portland/">WebVisions</a></li>
<li>May 23-24: <a href="http://code12melb.webdirections.org/">Web Directions Code</a></li>
<li>June 11-14: <a href="http://northamerica.msteched.com/">TechEd North America 2012</a></li>
<li>June 15-16: <a href="http://codestock.org/">CodeStock 2012</a></li>
<li>June 28-29: <a href="http://events.jquery.org/2012/sf/">jQuery San Francisco Conference 2012</a></li>
<li>July 31: <a href="http://environmentsforhumans.com/2012/css-summit/">CSS Summit 2012</a></li>
<li>August 29-31: <a href="http://devlink.net/">devLINK 2012</a></li>
<li>October 16-19: Web Directions South 2012</li>
</ul>
</p>
<p>If you&#8217;re at one of these events, please track us down! We&#8217;d love to have a chat.</p>
<p>In the meantime, please continue to submit your awesome feedback. It&#8217;s what keeps us going. Also, don&#8217;t forget to follow us on Twitter! We&#8217;re at <a href="http://twitter.com/KendoUI">@KendoUI</a>. Tell your friends.</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://bristowe.com/blog/2012/3/16/just-because-its-ridiculous-doesnt-mean-its-stoopid.html"><rss:title>Just Because It's Ridiculous Doesn't Mean It's Stoopid</rss:title><rss:link>http://bristowe.com/blog/2012/3/16/just-because-its-ridiculous-doesnt-mean-its-stoopid.html</rss:link><dc:creator>John Bristowe</dc:creator><dc:date>2012-03-16T10:11:00Z</dc:date><dc:subject>CSS3 Video Web Development</dc:subject><content:encoded><![CDATA[<iframe width="640" height="360" src="http://www.youtube.com/embed/0jBicWv7YcI" frameborder="0" allowfullscreen></iframe>
]]></content:encoded></rss:item><rss:item rdf:about="http://bristowe.com/blog/2011/12/13/why-travel-across-canada.html"><rss:title>Why Travel Across Canada?</rss:title><rss:link>http://bristowe.com/blog/2011/12/13/why-travel-across-canada.html</rss:link><dc:creator>John Bristowe</dc:creator><dc:date>2011-12-13T03:39:30Z</dc:date><dc:subject>Canada Humour</dc:subject><content:encoded><![CDATA[<iframe width="640" height="360" src="http://www.youtube.com/embed/pHeH0ppqMbk" frameborder="0" allowfullscreen></iframe>
<p>Having travelled across Canada three times, I found this absolutely hilarious. SO TRUE.</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://bristowe.com/blog/2011/12/2/kendo-ui-official-launch-webinar.html"><rss:title>Kendo UI Official Launch Webinar</rss:title><rss:link>http://bristowe.com/blog/2011/12/2/kendo-ui-official-launch-webinar.html</rss:link><dc:creator>John Bristowe</dc:creator><dc:date>2011-12-02T03:59:47Z</dc:date><dc:subject></dc:subject><content:encoded><![CDATA[<p>In case you missed it, yesterday, <a href="http://www.kendoui.com/blogs/teamblog/posts/11-11-30/kendo_ui_now_available.aspx">we launched Kendo UI</a>. As part of the launch, <a href="http://htmlui.com/">Todd Anglin</a> hosted a webinar where he highlighted this framework and its licensing model. Due to the popularity of this webinar, they were a few folks who couldn’t connect to the live event. Fortunately, we recorded the webinar and published it to YouTube.</p>  <p><iframe height="360" src="http://www.youtube.com/embed/4BOFXM4QMJ4" frameborder="0" width="640" allowfullscreen="allowfullscreen"></iframe></p>  <p>I’d strongly recommend watching this video if you’re looking for a good lap-around Kendo UI.</p>]]></content:encoded></rss:item></rdf:RDF>
