<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tim-Newton | SFiO.org</title><link>https://www.sfio.org/authors/tim-newton/</link><atom:link href="https://www.sfio.org/authors/tim-newton/index.xml" rel="self" type="application/rss+xml"/><description>Tim-Newton</description><generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><copyright>© 2016 - 2026 ASFIO - All Rights Reserved</copyright><lastBuildDate>Tue, 05 May 2009 00:00:00 +0000</lastBuildDate><image><url>https://www.sfio.org/images/logo.svg</url><title>Tim-Newton</title><link>https://www.sfio.org/authors/tim-newton/</link></image><item><title>The Power of Positive Deviance; How unlikely innovators solve the world’s toughest problems</title><link>https://www.sfio.org/interaction/2016-1/the-power-of-positive-deviance/</link><pubDate>Tue, 05 May 2009 00:00:00 +0000</pubDate><guid>https://www.sfio.org/interaction/2016-1/the-power-of-positive-deviance/</guid><description>&lt;p>&lt;a href="https://www.sfio.org/authors/tim-newton/">Tim-Newton&lt;/a>, &lt;a href="https://www.sfio.org/authors/richard-pascale/">Richard-Pascale&lt;/a>, &lt;a href="https://www.sfio.org/authors/jerry-sternin/">Jerry-Sternin&lt;/a>, &lt;a href="https://www.sfio.org/authors/monique-sternin/">Monique-Sternin&lt;/a>&lt;/p>
&lt;h2 class="red-heading">Abstract&lt;/h2>
&lt;p>The idea of “Positive Deviance” (PD) was first put forward in
a book entitled “Positive Deviance in Nutrition” by Tufts
University nutrition professor, Marian Zeitlin (1990),
proposing that childhood malnutrition could be tackled at the
community level by identifying what was going right in the
community in order to promote it, as opposed to focusing on
what was going wrong in the community and fixing it.&lt;/p>
&lt;h2 class="red-heading">Article&lt;/h2>
&lt;script src="https://www.sfio.org/js/pdf.js">&lt;/script>
&lt;div style="margin-left: 20px; margin-bottom: 20px;">
&lt;button id="prev">Previous&lt;/button>&amp;nbsp; &amp;nbsp;
&lt;button id="next">Next&lt;/button>&amp;nbsp; &amp;nbsp;
&lt;a href="article.pdf" download="article.pdf" target="_blank">Download&lt;/a>
&amp;nbsp; &amp;nbsp;
&lt;span>Page: &lt;span id="page_num">&lt;/span> / &lt;span id="page_count">&lt;/span>&lt;/span>
&lt;/div>
&lt;p>&lt;canvas id="the-canvas" style="border: 1px solid black; direction: ltr; width: 800px;">&lt;/canvas>&lt;/p>
&lt;script id="script">
// If absolute URL from the remote server is provided, configure the CORS
// header on that server.
var url = './article.pdf';
// Loaded via &lt;script> tag, create shortcut to access PDF.js exports.
var pdfjsLib = window['pdfjs-dist/build/pdf'];
// The workerSrc property shall be specified.
pdfjsLib.GlobalWorkerOptions.workerSrc = '/js/pdf.worker.js';
var pdfDoc = null,
pageNum = 1,
pageRendering = false,
pageNumPending = null,
scale = 2,
canvas = document.getElementById('the-canvas'),
ctx = canvas.getContext('2d');
/**
* Get page info from document, resize canvas accordingly, and render page.
* @param num Page number.
*/
function renderPage(num) {
pageRendering = true;
// Using promise to fetch the page
pdfDoc.getPage(num).then(function(page) {
var viewport = page.getViewport({scale: scale});
canvas.height = viewport.height;
canvas.width = viewport.width;
// Render PDF page into canvas context
var renderContext = {
canvasContext: ctx,
viewport: viewport
};
var renderTask = page.render(renderContext);
// Wait for rendering to finish
renderTask.promise.then(function() {
pageRendering = false;
if (pageNumPending !== null) {
// New page rendering is pending
renderPage(pageNumPending);
pageNumPending = null;
}
});
});
// Update page counters
document.getElementById('page_num').textContent = num;
}
/**
* If another page rendering in progress, waits until the rendering is
* finised. Otherwise, executes rendering immediately.
*/
function queueRenderPage(num) {
if (pageRendering) {
pageNumPending = num;
} else {
renderPage(num);
}
}
/**
* Displays previous page.
*/
function onPrevPage() {
if (pageNum &lt;= 1) {
return;
}
pageNum--;
queueRenderPage(pageNum);
}
document.getElementById('prev').addEventListener('click', onPrevPage);
/**
* Displays next page.
*/
function onNextPage() {
if (pageNum >= pdfDoc.numPages) {
return;
}
pageNum++;
queueRenderPage(pageNum);
}
document.getElementById('next').addEventListener('click', onNextPage);
/**
* Asynchronously downloads PDF.
*/
pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) {
pdfDoc = pdfDoc_;
document.getElementById('page_count').textContent = pdfDoc.numPages;
// Initial/first page rendering
renderPage(pageNum);
});
&lt;/script></description></item></channel></rss>