<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Clues | SFiO.org</title><link>https://www.sfio.org/tags/clues/</link><atom:link href="https://www.sfio.org/tags/clues/index.xml" rel="self" type="application/rss+xml"/><description>Clues</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>Clues</title><link>https://www.sfio.org/tags/clues/</link></image><item><title>Clues 1.0</title><link>https://www.sfio.org/interaction/2009-1/clues-1.0/</link><pubDate>Tue, 05 May 2009 00:00:00 +0000</pubDate><guid>https://www.sfio.org/interaction/2009-1/clues-1.0/</guid><description>&lt;h2 class="red-heading">Abstract&lt;/h2>
&lt;p>In the SFCT review process, work is peer-reviewed to
observe and build the use of the SF approach in organisa-
tional settings. These “Clues” are offered as part of the SFCT
reviewing process.&lt;/p>
&lt;p>We wish to suggest many of the different ways of noticing
that someone is using the SF approach. We do not seek or
claim a complete description of what SF is or is not. Instead,
we seek a kind of ‘family resemblance’, with traits that might
be visible signs of an SF approach. This is a list of ways that
we might notice the SF approach in action. Of course, not all
of these need to be present for a piece of work to be a good
piece of solution focused work.&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><item><title>Clues 1.2</title><link>https://www.sfio.org/interaction/2011-1/clues-1.2/</link><pubDate>Tue, 05 May 2009 00:00:00 +0000</pubDate><guid>https://www.sfio.org/interaction/2011-1/clues-1.2/</guid><description>&lt;h2 class="red-heading">Abstract&lt;/h2>
&lt;p>In the SFCT review process, work is peer-reviewed to
observe and build the use of the SF approach in organisa-
tional settings. These “Clues” are offered as part of the
SFCT reviewing process.
We wish to suggest many of the different ways of noticing
that someone is using the SF approach. We do not seek or
claim a complete description of what SF is or is not. Instead,
we seek a kind of ‘family resemblance’, with traits that might
be visible signs of an SF approach. This is a list of ways that
we might notice the SF approach in action. Of course, not all
of these need to be present for a piece of work to be a good
piece of SF work.
This latest version 1.2 contains changes proposed before
the AGM and agreed between the Full (reviewed) Members.
There are changes to the sections about a not-knowing
stance, and a considerable reworking to the Background
section.&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>