<?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>Propheris</title>
	<atom:link href="http://propheris.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://propheris.com</link>
	<description>Building innovative communications solutions for the health sector</description>
	<lastBuildDate>Wed, 08 Feb 2012 17:18:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Patient Experience videos on our new YouTube channel</title>
		<link>http://propheris.com/strategy-development/patient-experience-videos-on-our-new-youtube-channel/</link>
		<comments>http://propheris.com/strategy-development/patient-experience-videos-on-our-new-youtube-channel/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 11:43:14 +0000</pubDate>
		<dc:creator>Paul Syrysko</dc:creator>
				<category><![CDATA[Marketing & Communications]]></category>
		<category><![CDATA[Video Production]]></category>
		<category><![CDATA[PPI Video]]></category>

		<guid isPermaLink="false">http://propheris.com/?p=904</guid>
		<description><![CDATA[We&#8217;ve uploaded the first of a series of patient experience videos to our YouTube channel. We wanted to create a cohesive and distinctive series that captured intimacy in the conversations and allowed viewers to see personality even on very small screens such as mobile phones. And do it all within a very tight budget. The [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://propheris.com/wp-content/uploads/2011/07/peter_butler.jpg"><img src="http://propheris.com/wp-content/uploads/2011/07/peter_butler-185x185.jpg" alt="" title="peter_butler" width="185" height="185" class="alignleft size-thumbnail wp-image-910" /></a></p>
<p>We&#8217;ve uploaded the first of a series of patient experience videos <a href="http://www.youtube.com/user/Propheris">to our YouTube channel</a>. We wanted to create a cohesive and distinctive series that captured intimacy in the conversations and allowed viewers to see personality even on very small screens such as mobile phones. And do it all within a very tight budget.</p>
<p>The contemporary style fits with the theme of leading edge science whilst the simplicity meant we could be very systematic and cost efficient in production. Above all, we needed to distinguish from other patient experience videos and generally raise the bar in this field without spending too much money. The various profile and close up shots allowed us to cut away from visual issues when we needed to without the use of fill shots or interviewer shots.</p>
<p>We used HD DSLR equipment which allowed us to get in close without being too intimidating. This allowed the subjects to open up emotionally, because once they got in their flow they soon ignored the camera.</p>
<p>The videos were created for Nottingham&#8217;s NIHR Biomedical Research Units and were commissioned by Nottingham University Hospitals Research &#038; Innovation. </p>
<p><iframe width="468" height="263" src="http://www.youtube.com/embed/zZxVxdC2Z9M" frameborder="0" allowfullscreen></iframe></p>
<p><iframe width="468" height="263" src="http://www.youtube.com/embed/f-DTZ8OdDyU" frameborder="0" allowfullscreen></iframe></p>
<p><iframe width="468" height="263" src="http://www.youtube.com/embed/mEP82VaucIw" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://propheris.com/strategy-development/patient-experience-videos-on-our-new-youtube-channel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to photograph a plastic bag in 9 steps</title>
		<link>http://propheris.com/strategy-development/design/how-to-photograph-a-plastic-bag-in-9-steps/</link>
		<comments>http://propheris.com/strategy-development/design/how-to-photograph-a-plastic-bag-in-9-steps/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 18:54:39 +0000</pubDate>
		<dc:creator>Paul Syrysko</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[lighting]]></category>
		<category><![CDATA[packaging]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[product shot]]></category>

		<guid isPermaLink="false">http://propheris.com/?p=854</guid>
		<description><![CDATA[Taking a picture of a plastic bag may seem the most inane marketing task but it brings myriad complexities. Faced with an urgent last minute job for an important exhibition and only three wrinkled samples to work with, we were challenged. This is how we did it. Given time and budget, you&#8217;d normally get this [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_876" class="wp-caption alignleft" style="width: 195px"><a href="http://propheris.com/wp-content/uploads/2011/02/medicine-bag-studio-setup.jpg"><img src="http://propheris.com/wp-content/uploads/2011/02/medicine-bag-studio-setup-185x185.jpg" alt="" title="medicine bag studio setup" width="185" height="185" class="size-thumbnail wp-image-876" /></a><p class="wp-caption-text">The setup; umbrellas on the floor reflected natural light back into the creases and shadows</p></div>
<p>Taking a picture of a plastic bag may seem the most inane marketing task but it brings myriad complexities. Faced with an urgent last minute job for an important exhibition and only three wrinkled samples to work with, we were challenged. This is how we did it.</p>
<p>Given time and budget, you&#8217;d normally get this sort of thing specially made up in durable plastic. The translucency, the creases, the lack of rigidity in polythene all make for a hellish task.<span id="more-854"></span></p>
<p>The product itself here is a bit of genius. A very simple, cheap, but far reaching innovation created in Nottingham that has already improved patient safety. The idea is that before you come into a hospital for treatment, you collect all your prescribed pills and medicines and put them in a bag so that the clinicians can see what you&#8217;ve been taking. You might think that would be on your medical record, but if you know anything about medical records you&#8217;ll know that a. they can take a long time to collate and b. they are not a sure fire guarantee.</p>
<div id="attachment_858" class="wp-caption alignright" style="width: 195px"><a href="http://propheris.com/wp-content/uploads/2011/02/bag-early-test.jpg"><img src="http://propheris.com/wp-content/uploads/2011/02/bag-early-test-185x185.jpg" alt="" title="bag-early-test" width="185" height="185" class="size-thumbnail wp-image-858" /></a><p class="wp-caption-text">The first test shot. A shop of horrors.</p></div>
<p>So, back to the bag. A simple piece of partly translucent polythene with lots of writing on it. You have a semi-opaque and highly reflective surface, and a very boring one dimensional shape that doesn&#8217;t stay together unless its flat on the floor. </p>
<p>The first thing to do is stick the product on a simple white background and look at it. Take a few test shots. Move the product around, move the camera around. Get a good idea of what&#8217;s happening as this will stimulate you into solving the myriad issues.</p>
<p>If you look at the first shot, you can see the problems immediately. This is how we solved them:</p>
<ol>
<li>Shoot the bag with something in it. This gives a rather tedious inanimate object some life.</li>
<li>Shoot the bag at an angle. This gives some depth to the plain rectangle.</li>
<li>Take from above (or below). This gives some vertical perspective angles which give power to the product. A plain rectangle looks more purposeful when given the wide shoulders &#8220;V&#8221; look.</li>
<li>Shape the bag. We cut some stiff photographic background paper to curve round and insert into the item. This allowed us to mould the bag to a more consistent, solid form.</li>
<li>Deal with the translucency. Unless your translucency is essential to the product look (eg a gel), try and get rid of it. Our paper inserts made our bag more or less opaque.</li>
<li>Don&#8217;t forget the peripheral bits. Our bag has handles. They flopped all over the place. We cut up last night&#8217;s pizza box to hold the handles upright.</li>
<li>Use anything you like out of shot to make it work. The final shot has lots of masking tape at the back to make the bag sit upright, <em>just so</em>. Ideally you&#8217;d have lots of product samples you can play with to destruction; you might need to make cuts and bends to make it all work. We only had three bags so were limited.</li>
<div id="attachment_868" class="wp-caption alignright" style="width: 200px"><a href="http://propheris.com/wp-content/uploads/2011/02/Patients-Medicines-Bag1.jpg"><img src="http://propheris.com/wp-content/uploads/2011/02/Patients-Medicines-Bag1-190x285.jpg" alt="" title="Patients-Medicines-Bag" width="190" height="285" class="size-medium wp-image-868" /></a><p class="wp-caption-text">The Patient's Medicines Bag. Translucent, lots of writing, floppy. A photographic challenge.</p></div>
<li>Light the product imaginatively. <em>This is easily the most important element</em>. Experiment with light, moving things around until you get the reflections and detail you want. We have natural light here coming in on the left and two umbrella reflectors placed on the floor to the right just out of shot. Shoot a whole series of photos with your reflectors and main light coming in from different angles so you see the effects. The soft fill lighting will work to reduce the visiblity of creasing and wrinkling. Even the slightest movements will have a positive or deleterious effect, trust me.</li>
<li>Inevitably, you&#8217;re not going to get everything perfect and there will be some touching up to do post-shoot. We had to keep this to an absolute minimum since there was so much detailed text on the product, making retouching a tricky prospect.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://propheris.com/strategy-development/design/how-to-photograph-a-plastic-bag-in-9-steps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generating pdf newsletters automatically from WordPress: how to include a few pages and resolve memory limit errors</title>
		<link>http://propheris.com/web-development/extranet/wordpress-extranet/generating-pdf-newsletters-automatically-from-wordpress-how-to-include-a-few-pages-and-resolve-memory-limit-errors/</link>
		<comments>http://propheris.com/web-development/extranet/wordpress-extranet/generating-pdf-newsletters-automatically-from-wordpress-how-to-include-a-few-pages-and-resolve-memory-limit-errors/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 08:46:20 +0000</pubDate>
		<dc:creator>Paul Syrysko</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[fivefilters]]></category>
		<category><![CDATA[Make PDF Newspaper]]></category>
		<category><![CDATA[Marios Alexandrou]]></category>
		<category><![CDATA[Martin Hawksey]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[simple pie]]></category>

		<guid isPermaLink="false">http://propheris.com/?p=694</guid>
		<description><![CDATA[We&#8217;re using WordPress as a CMS for a client who was thinking of producing a newsletter, both for those without access and to promote the site itself. Rather than going through the rigmarole (and time &#038; cost) of desktop publishing we set about finding a clever way to do this automatically. Martin Hawksey at JISC [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://propheris.com/wp-content/uploads/2010/12/pdf-newspaper.jpg"><img src="http://propheris.com/wp-content/uploads/2010/12/pdf-newspaper-185x185.jpg" alt="" title="pdf-newspaper" width="185" height="185" class="alignleft size-thumbnail wp-image-698" /></a>We&#8217;re using WordPress as a CMS for a client who was thinking of producing a newsletter, both for those without access and to promote the site itself. Rather than going through the rigmarole (and time &#038; cost) of desktop publishing we set about finding a clever way to do this automatically.<span id="more-694"></span></p>
<p><a href="http://www.rsc-ne-scotland.org.uk/mashe/wordpress-plugins/make-pdf-newspaper-2/">Martin Hawksey at JISC RSC Scotland North &#038; East</a> has done a very good job of this with his Make PDF Newspaper plugin. It uses the <a href="http://fivefilters.org/pdf-newspaper/">fivefilters pdf newspaper facility</a> which itself centres on the <a href="http://simplepie.org/">Simple Pie RSS management toolkit</a>. There aren&#8217;t too many options available but if you&#8217;re prepared to accept limitations in layout, the tool is a remarkably easy way to generate a good looking pdf version of an RSS feed.</p>
<p>We&#8217;ve been working a little with the plugin to get the output we want. The structure of the site we have pdf newspaper running on is fairly straightforward &#8211; posts appear as departmental news items and a bunch of static pages serve guidelines and a simple document repository.</p>
<p>We wanted a few of these static pages appearing in the newsletter which presented a conundrum as WordPress RSS feeds only deliver the posts side of the CMS, leaving the pages out completely.  However, the <a href="http://www.mariosalexandrou.com/blog/include-pages-in-wordpress-rss-feeds/">RSS Includes Pages plugin</a> alters this behaviour. It&#8217;s perfect for our purposes. All we need to do is to temporarily invoke it whilst preparing the newspaper. To get the right pages appearing, all we have to do is alter the publication dates so they fit into just the right place in the RSS feed.</p>
<p>One problem I encountered is a memory limit when making pdfs more than a few pages long. To resolve this, add a line like:</p>
<p><code>ini_set("memory_limit","120M")</code>;</p>
<p>to the beginning of tcpdf_config.php in the pdf newspaper plugin package.</p>
]]></content:encoded>
			<wfw:commentRss>http://propheris.com/web-development/extranet/wordpress-extranet/generating-pdf-newsletters-automatically-from-wordpress-how-to-include-a-few-pages-and-resolve-memory-limit-errors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging web scripts with the Firefox REST Client</title>
		<link>http://propheris.com/web-development/debugging-web-scripts-with-the-firefox-rest-client/</link>
		<comments>http://propheris.com/web-development/debugging-web-scripts-with-the-firefox-rest-client/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 08:08:33 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Document Management]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[dms]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://propheris.com/?p=645</guid>
		<description><![CDATA[Because Web Scripts involve two computers talking to each other, they are potentially hard to debug. We&#8217;ve found that it pays to test the scripts from a web browser before writing any code. We iron out our exact understanding of what parameters the script needs and what it returns before doing it from within our application. There&#8217;s an [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_629" class="wp-caption alignleft" style="width: 292px"><a href="http://propheris.com/wp-content/uploads/2010/11/RESTClient.png"><img src="http://propheris.com/wp-content/uploads/2010/11/RESTClient-282x285.png" alt="Firebug REST Client" title="Firebug REST Client" width="282" height="285" class="size-medium wp-image-629" /></a><p class="wp-caption-text">The Firebug REST Client</p></div>Because Web Scripts involve two computers talking to each other, they are potentially hard to debug. We&#8217;ve found that it pays to test the scripts from a web browser before writing any code. We iron out our exact understanding of what parameters the script needs and what it returns before doing it from within our application. There&#8217;s an add-on to Firefox called <a title="REST Client for Firefox" href="https://addons.mozilla.org/en-US/firefox/addon/9780/" target="_blank">&#8220;REST Client&#8221;</a>. You specify the URL, method (PUT, POST, GET) and optionally any request headers and body (for example CMIS XML). The REST Client will  then tell you if the request succeeded and you can examine the response.  Take care to specify the correct content type in the header for xml or json.</p>
<p>In the example above you can see the URL, http://epsilon.nuhrise.org/alfresco/service/cmis/i/2c62291d-2e9f-4ac3-83a1-157406ffb2aa/children and the verbose response. In this case the response describes files in the Company Home space.</p>
<p>In the next article we&#8217;ll describe the web services our application Documas uses to view, upload and download files from Alfresco and we&#8217;ll also cover assigning and accepting/rejecting workflow tasks on documents from our external application.</p>
]]></content:encoded>
			<wfw:commentRss>http://propheris.com/web-development/debugging-web-scripts-with-the-firefox-rest-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analysing web content semantics with AlchemyAPI: Part One &#8211; The Semantic Web</title>
		<link>http://propheris.com/strategy-development/analysing-web-content-semantics-with-alchemyapi-part-one-the-semantic-web/</link>
		<comments>http://propheris.com/strategy-development/analysing-web-content-semantics-with-alchemyapi-part-one-the-semantic-web/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 16:20:29 +0000</pubDate>
		<dc:creator>Paul Syrysko</dc:creator>
				<category><![CDATA[Marketing & Communications]]></category>
		<category><![CDATA[AlchemyAPI]]></category>
		<category><![CDATA[Kate Ray]]></category>
		<category><![CDATA[ontologies]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[Tim Berners-Lee]]></category>
		<category><![CDATA[Web 3.0]]></category>

		<guid isPermaLink="false">http://propheris.com/?p=673</guid>
		<description><![CDATA[How do you methodically analyse the context of hundreds of web pages? It&#8217;s an issue of semantics. Tasked with looking at how a bunch of organisations are portraying themselves to their stakeholders, we soon moved to clever machine analysis thanks to semantic tools that are slowly appearing. The semantic web (sometimes called Web 3.0) is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://propheris.com/wp-content/uploads/2010/12/semantic-web.png"><img src="http://propheris.com/wp-content/uploads/2010/12/semantic-web-185x185.png" alt="" title="semantic-web" width="185" height="185" class="alignleft size-thumbnail wp-image-680" /></a>How do you methodically analyse the context of hundreds of web pages? It&#8217;s an issue of semantics. Tasked with looking at how a bunch of organisations are portraying themselves to their stakeholders, we soon moved to clever machine analysis thanks to semantic tools that are slowly appearing. </p>
<p>The semantic web (sometimes called Web 3.0) is a generic term for a whole range of approaches that are looking to deal with the overwhelming mass of unstructured data the web is generating. Soon, techniques like Google&#8217;s search algorithms won&#8217;t be able to keep up with the trillions of web pages being generated. There needs to be a better way of understanding what web pages mean so that we can organise the valuable information they contain. It&#8217;s part of a move towards building clever systems that can reason. </p>
<p><iframe src="http://player.vimeo.com/video/11529540?color=adaebe" width="500" height="375" frameborder="0"></iframe></p>
<p>If you&#8217;ve got 15 mins, Kate Ray has put together this compelling and instructive video about the semantic web, interviewing world wide web inventor Tim Berners-Lee amongst others along the way. There&#8217;s something of the <a href="http://www.bbc.co.uk/programmes/b006mgxf">Horizon</a> about it; in the sense that it&#8217;s refreshing when difficult scientific concepts are coherently, simply and entertainingly described through video.</p>
<blockquote><p>It&#8217;s part of a move towards building clever systems that can reason. </p></blockquote>
<p>We&#8217;re using but a tiny part of the work on semantics for our own ends. We want to analyse a mass of web content, reasoning that if this can be done objectively and comprehensively by machine then it is probably better than anything we can do as humans. At least once you go beyond a handful of web pages; understanding the entirety of a few hundred pages can be a pretty tough job, unless you&#8217;ve got some clever tools to hand.</p>
<p>In the next few posts, I&#8217;ll describe how we used <a href="http://www.alchemyapi.com/">AlchemyAPI</a> to do it. The tool enabled us to pull out context in terms of entities like people and keywords, places and subject matter. It helped us organise and rank all these things so we knew at a glance where each organisation&#8217;s focus was and how they were portraying this to the world at large.</p>
]]></content:encoded>
			<wfw:commentRss>http://propheris.com/strategy-development/analysing-web-content-semantics-with-alchemyapi-part-one-the-semantic-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Ruby on Rails with Alfresco</title>
		<link>http://propheris.com/document-management/using-ruby-on-rails-with-alfresco/</link>
		<comments>http://propheris.com/document-management/using-ruby-on-rails-with-alfresco/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 08:04:21 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Document Management]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Bob the Builder]]></category>
		<category><![CDATA[CRUD]]></category>
		<category><![CDATA[dms]]></category>
		<category><![CDATA[Documas]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://propheris.com/?p=641</guid>
		<description><![CDATA[A large part of our Documas application concerns ordinary Create/Read/Update/Delete (CRUD) operations on a MySQL database. Really Documas is a hybrid application, part document management and part CRUD. Documas centres around a database model called Study. Studies are typically clinical trials that have dozens of properties reflecting their type and their progress. People such as administrators, lawyers, pharmacologists, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://propheris.com/wp-content/uploads/2010/11/rails-in-snow.jpg"><img src="http://propheris.com/wp-content/uploads/2010/11/rails-in-snow-185x185.jpg" alt="" title="rails-in-snow" width="185" height="185" class="alignleft size-thumbnail wp-image-650" /></a>A large part of our Documas application concerns ordinary Create/Read/Update/Delete (CRUD) operations on a MySQL database. Really Documas is a hybrid application, part document management and part CRUD.</p>
<p>Documas centres around a database model called <em>Study</em>. Studies are typically clinical trials that have dozens of properties reflecting their type and their progress. People such as administrators, lawyers, pharmacologists, nurses, researchers and clinicians act on these studies to progress them through a highly regulated approval process.</p>
<blockquote><p>We chose to use Ruby on Rails for the CRUD part of Documas because, to paraphrase Bob the Builder, it&#8217;s <em>the right tool for the job</em>.</p></blockquote>
<p>Much of the process is encapsulated in documents held in Alfresco, but equally a lot of the information is held in a normal database.</p>
<p>We chose to use Ruby on Rails for the CRUD part of Documas because, to paraphrase Bob the Builder, it&#8217;s <em>the right tool for the job</em>. Rails has easy ways to handle authentication (who), authorisation (what are they allowed to do), grids full of data, editing, validating and graphing. Above all, Rails is focused on the CRUD operations.</p>
<p>Rails also provides a http client to request &#8216;resources&#8217;, for  instance documents, user accounts and workflow tasks from RESTful servers, like Alfresco.</p>
<p>If I&#8217;ve been a bit negative about the web front end of Alfresco, I&#8217;m pleased to concede that they more than make up for that with the way they open up the internal document engine to external applications using a RESTful interface.</p>
]]></content:encoded>
			<wfw:commentRss>http://propheris.com/document-management/using-ruby-on-rails-with-alfresco/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Employing Alfresco web scripts to answer RESTful calls</title>
		<link>http://propheris.com/web-development/employing-alfresco-web-scripts-to-answer-restful-calls/</link>
		<comments>http://propheris.com/web-development/employing-alfresco-web-scripts-to-answer-restful-calls/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:57:09 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Document Management]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[dms]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Web Scripts]]></category>

		<guid isPermaLink="false">http://propheris.com/?p=643</guid>
		<description><![CDATA[REST is a set of ideas that promise to simplify communication between applications.  If you have not come across REST before, there is an entertaining description here. Conventionally applications use something like Remote Procedure Calls to call on each other for services, but every single call tends to have different parameters and return values making [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://propheris.com/wp-content/uploads/2010/11/services.png"><img class="size-full wp-image-628" src="http://propheris.com/wp-content/uploads/2010/11/services.png" alt="Example Alfresco Web Service" width="497" height="595" /></a></p>
<p><a title="REST" href="http://en.wikipedia.org/wiki/Representational_State_Transfer" target="_blank">REST</a> is a  set of ideas that promise to simplify communication between applications.  </p>
<blockquote><p>If you have not come across REST before, there is an <a title="How I explained REST to my wife" href="http://tomayko.com/writings/rest-to-my-wife">entertaining description here</a>.</p></blockquote>
<p>Conventionally applications use something like <a title="Remote Procedure calls" href="http://en.wikipedia.org/wiki/Remote_procedure_call" target="_blank">Remote Procedure Calls</a> to call on each other for services, but every single call tends to have different parameters and return values making it hard to generalise and fiddly to use. In REST, the interesting parts of an application are  available as &#8216;resources&#8217;.  Alfresco offers resources such as spaces  (folders), files, people, tasks etc. Each resource can only do a strictly limited number of things, it can be created, deleted, changed or just read.  That&#8217;s it.  (The technical success of the World Wide Web can be largely attributed to REST, the resources are things with URLs,  pages, pictures, tables of data, music etc. The operations in HTTP are PUT, POST and DELETE).</p>
<p>The designers of Alfresco have opened up the monolithic Java jungle inside Alfresco to expose the important resources. They have even documented it, a full list of approximately 370 Web Scripts (REST services) available from our Alfresco server is available at <a href="http://epsilon.nuhrise.org/alfresco/service/index" target="_blank">http://epsilon.nuhrise.org/alfresco/service/index</a>, but you need to log in with the admin password!</p>
<p>In my opinion Alfresco also clutters the REST API with methods that return GUI elements, strictly speaking this is not REST because the resources are embelished with javascript for the user interface. The Forms Service in v3.4 is an example.</p>
<p>Inside Alfresco, the units of code that answer RESTful calls are called <a title="How to write Alfresco Web Scripts" href="http://wiki.alfresco.com/wiki/Web_Scripts" target="_blank">Web Scripts</a>. They are written in Java and/or Javascript. The use of Javascript on the server side is clever because more people understand Javascript, and changes can be deployed with just a refresh of the web scripts rather than compiling and deploying Java class files. Otherwise one would have to maintain a Java build environment for the Web Scripts and employ at least half of somebody&#8217;s time just to develop and maintain the Java Web Scripts.</p>
]]></content:encoded>
			<wfw:commentRss>http://propheris.com/web-development/employing-alfresco-web-scripts-to-answer-restful-calls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opening up Alfresco to other web applications</title>
		<link>http://propheris.com/document-management/opening-up-alfresco/</link>
		<comments>http://propheris.com/document-management/opening-up-alfresco/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 11:59:53 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Document Management]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Alfresco Share]]></category>
		<category><![CDATA[CRUD]]></category>
		<category><![CDATA[dms]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://propheris.com/?p=623</guid>
		<description><![CDATA[We&#8217;ve built a web application, Documas, on the solid foundation of the Alfresco Document Management system.   In this article we&#8217;ll explain why and how we did it. Using Alfresco from another web application Alfresco is a solid platform for managing documents and the events that happen to them during their lifecycle, but the &#8216;Web Client&#8217; user interface is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://propheris.com/wp-content/uploads/2010/11/web-client1.png"><img class="alignnone size-full wp-image-626" src="http://propheris.com/wp-content/uploads/2010/11/web-client1.png" alt="Example page from the Alfresco Web Client" width="600" height="391" /></a></p>
<p>We&#8217;ve built a web application, Documas, on the solid foundation of the <a title="Alfresco Document Management" href="http://www.alfresco.com" target="_blank">Alfresco Document Management system</a>.   In this article we&#8217;ll explain why and how we did it.</p>
<p><strong>Using Alfresco from another web application</strong></p>
<p>Alfresco is a solid platform for managing documents and the events that happen to them during their lifecycle, but the &#8216;Web Client&#8217; user interface is not suitable for most purposes because it was built by people like me, programmers, instead of by normal people. (The Web Client is also called Alfresco Explorer). As an example of the problems, try deleting ten files quickly.  There is no way to do a bulk operation and remove all ten in one go.</p>
<p><em>Alfresco Explorer</em></p>
<p>The Web Client is written in Java using a technology called Java Server Faces which in my opinion values  gratuitous complexity over getting the job done.   (I think the adoption of JSF was the very reason the Web Client had proved to be hard to use, so much attention went into the JSF that little resource was left for usability testing).</p>
<p>Alfresco have addressed this problem by developing  the &#8216;Share&#8217; front end, a very Web 2.0, responsive and popular alternative to the clunky Web Client. But the Share web application is very closely tied to Alfresco and the kinds of document operations that Alfresco does. Our application needs to do those things, but also something called CRUD. Share, being AJAX, Javascript and REST based, is a sound choice for pure document management  uses of Alfresco, but for our application we needed a little bit more. Over the next few articles I&#8217;ll explain how we went about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://propheris.com/document-management/opening-up-alfresco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDF manipulation and editing via the command line with pdftk</title>
		<link>http://propheris.com/web-development/open-source/linux/pdf-manipulation-and-editing-via-the-command-line-with-pdftk/</link>
		<comments>http://propheris.com/web-development/open-source/linux/pdf-manipulation-and-editing-via-the-command-line-with-pdftk/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 07:47:50 +0000</pubDate>
		<dc:creator>Paul Syrysko</dc:creator>
				<category><![CDATA[Document Management]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[pdf]]></category>

		<guid isPermaLink="false">http://propheris.com/?p=580</guid>
		<description><![CDATA[We recently had a small job to chop and reassemble a dozen or so pdfs and then include them into a website archive. Our client needed all the first pages exchanged with new first pages that had new information on them. A laborious task manually, but PDF Toolkit came to our rescue. It&#8217;s a cross [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://propheris.com/wp-content/uploads/2010/11/document-pile.jpg"><img src="http://propheris.com/wp-content/uploads/2010/11/document-pile-285x285.jpg" alt="" title="document-pile" width="285" height="285" class="alignleft size-medium wp-image-581" /></a>We recently had a small job to chop and reassemble a dozen or so pdfs and then include them into a website archive. Our client needed all the first pages exchanged with new first pages that had new information on them. A laborious task manually, but<a href="http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/"> PDF Toolkit</a> came to our rescue. It&#8217;s a cross platform GPL licensed powerhouse for pdf manipulation. We used the command line to get the job done doc by doc; if the task was any larger, it would be a very trivial thing to incorporate this into a script.</p>
<p>First remove the old first page:</p>
<p><code>pdftk OurDocument.pdf cat 2-end output OurDocumentMinusFirst.pdf</code></p>
<p>then combine the new first page with the remaining document:</p>
<p><code>pdftk NewFirst.pdf OurDocumentMinusFirst.pdf cat output NewOurDocument.pdf</code></p>
<p>Very simple indeed, but pdftk can do a whole lot more:</p>
<ul>
<li>Merge PDF Documents</li>
<li>Split PDF Pages into a New Document</li>
<li>Rotate PDF Pages or Documents</li>
<li>Decrypt Input as Necessary (Password Required)</li>
<li>Encrypt Output as Desired</li>
<li>Fill PDF Forms with FDF Data or XFDF Data and/or Flatten Forms</li>
<li>Apply a Background Watermark or a Foreground Stamp</li>
<li>Report on PDF Metrics such as Metadata, Bookmarks, and Page Labels</li>
<li>Update PDF Metadata</li>
<li>Attach Files to PDF Pages or the PDF Document</li>
<li>Unpack PDF Attachments</li>
<li>Burst a PDF Document into Single Pages</li>
<li>Uncompress and Re-Compress Page Streams</li>
<li>Repair Corrupted PDF</li>
</ul>
<p>The help manual that comes with the package gives a fairly comprehensive guide to options together with examples. Simply type<br />
<code>pdftk --help</code></p>
<p>Otherwise, there are plenty of guides available, <a href="http://segfault.in/2010/07/pdf-manipulations-and-conversions-from-linux-command-prompt/">like this one from segfault</a>.</p>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://propheris.com/web-development/open-source/linux/pdf-manipulation-and-editing-via-the-command-line-with-pdftk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google font API makes embedded web fonts easy, were it not for a bug</title>
		<link>http://propheris.com/strategy-development/design/google-font-api-makes-embedded-web-fonts-easy/</link>
		<comments>http://propheris.com/strategy-development/design/google-font-api-makes-embedded-web-fonts-easy/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 08:31:29 +0000</pubDate>
		<dc:creator>Paul Syrysko</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[Droid Sans]]></category>
		<category><![CDATA[fontsquirrel]]></category>
		<category><![CDATA[google font api]]></category>

		<guid isPermaLink="false">http://propheris.com/?p=557</guid>
		<description><![CDATA[We&#8217;ve just been updating the design of one of our client&#8217;s sites and, as ever, fonts are a focus. Earlier this year, Google released a set of beautiful typefaces for use in web environments. It&#8217;s a simple matter of calling the font library from Google via a stylesheet header. Unless your choice includes Droid Bold. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://propheris.com/wp-content/uploads/2010/11/nuhrise-new-sq.png"><img src="http://propheris.com/wp-content/uploads/2010/11/nuhrise-new-sq-185x185.png" alt="" title="nuhrise-new-sq" width="185" height="185" class="alignleft size-thumbnail wp-image-558" /></a></p>
<p>We&#8217;ve just been updating the design of one of our client&#8217;s sites and, as ever, fonts are a focus. Earlier this year, <a href="http://code.google.com/webfonts">Google released a set of beautiful typefaces</a> for use in web environments. It&#8217;s a simple matter of calling the font library from Google via a stylesheet header.  Unless your choice includes Droid Bold.</p>
<p>Even easier, <a href="http://wordpress.org/extend/plugins/wp-google-fonts/">if you are using WordPress as a CMS, there are plugins available to implement the Google font API without much fuss</a>. This approach gets you going very quickly and it&#8217;s very handy for look-and-see building. </p>
<p>But for a production environment, I don&#8217;t like the mess it begins to create of your stylesheet set. The plugin simply adds your styles to each page&#8217;s header which isn&#8217;t very elegant. We&#8217;ll soon be looking to incorporate the relevant css within the stylesheets proper rather than layering plugins on top.</p>
<div id="attachment_559" class="wp-caption alignright" style="width: 195px"><a href="http://propheris.com/wp-content/uploads/2010/11/nuhrise.png"><img src="http://propheris.com/wp-content/uploads/2010/11/nuhrise-185x185.png" alt="" title="nuhrise" width="185" height="185" class="size-thumbnail wp-image-559" /></a><p class="wp-caption-text">The older design focused on Arial</p></div>
<p>Our implementation in question is for <a href="http://nuhrise.org/">Nottingham University Hospitals Trust R&#038;D</a>. Here, the site is run using WordPress using an old but very solid theme called The Morning After. The theme itself has long since been taken over and <a href="http://www.woothemes.com/2010/06/themorningafter/">incorporated into a commercial supplier&#8217;s portfolio</a>. We&#8217;ve kept with the original theme and have slowly updated it to suit our needs over time.</p>
<p>The redesign involved some font size changes and text colour modifications along with the big shifts which were to Google&#8217;s Droid fonts. These look beautiful and there&#8217;s a large family to pick from, including a serif set. Whilst Droid fully modernises the look compared to the previous Arial, we recoloured and resized front page headlines to match those at the BBC website. This helps deliver a familiar user experience. We also softened the body text to a mid to dark grey which makes reading less tiring on the eye and allows us to use darker greys for block quotes and other text emphasis.</p>
<p>There are some tweaks to come, especially amongst the internal pages but for now we&#8217;ve achieved a fresh contemporary look with relative ease&#8230; except for an evil little bug. If your chosen font is Droid Bold. Of course our chosen font is none other. For some undetermined reason, many browsers except Google&#8217;s own Chrome are not calling the font properly. <a href="http://code.google.com/p/googlefontdirectory/issues/detail?can=2&#038;q=&#038;colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary&#038;sort=&#038;id=13">There&#8217;s a work around suggested by Alexandre Paquette over at Google Code</a></p>
<blockquote><p>I found a way to fix this issue. By saving a local copy of the .css generated by de webfont directory, you can change the web font name defined in your css. for example, you can change &#8220;Droid Sans&#8221; for &#8220;Droid Sans Web&#8221;. </p></blockquote>
<p>Bear in mind this will only happen if you make the local version that Alexandre mentions a priority; ie it has to be called before Droid Sans:</p>
<p>Put this in your stylesheet:</p>
<p><code>@font-face {<br />
  font-family: 'Droid Sans Web';<br />
  font-style: normal;<br />
  font-weight: normal;<br />
  src: local('Droid Sans Web'), url('http://themes.googleusercontent.com/font?kit=rS9BT6-asrfjpkcV3DXf__esZW2xOQ-xsNqO47m55DA') format('truetype');<br />
}<br />
@font-face {<br />
  font-family: 'Droid Sans Web';<br />
  font-style: normal;<br />
  font-weight: bold;<br />
  src: local('Droid Sans Web'), url('http://themes.googleusercontent.com/font?kit=EFpQQyG9GqCrobXxL-KRMQJKKGfqHaYFsRG-T3ceEVo') format('truetype');<br />
}</code></p>
<p>Then decide where it&#8217;s going to operate like this:</p>
<p><code>h1{<br />
  font-family: 'Droid Sans Web', 'Droid Sans', sans-serif;<br />
}</code></p>
<p>Ta-da &#8211; all your browsers will now show Droid Sand Bold almost properly. Almost? You&#8217;ll find that the <strong>strong</strong> tag doesn&#8217;t work consistently, leaving such things resolutely not bold for some browsers.</p>
<p>I haven&#8217;t noticed any overhead in making this external call but to be sure you should have alternative fonts specified, or at least specify a default sans-serif or serif as above; just in case there&#8217;s a connection problem.</p>
<p>An alternative is to host the fonts yourself. Defeats the object of using the Google API, but this is what you do:</p>
<ol>
<li>Go to <a href="http://www.fontsquirrel.com/fonts/Droid-Sans">Font Squirrel&#8217;s Droid Sans section</a></li>
<li>Download the @font-face Kit. Make sure you check off each format so that all browsers are catered for</li>
<li>Upload the font kit to your own website so that they are then served locally rather than directly from Google</li>
</ol>
<p>So, a spoiler workaround to an otherwise tidy idea. Judging by the bug report at Google Code, this problem with Droid Bold has been hanging around since the early summer and shows no sign of being fixed yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://propheris.com/strategy-development/design/google-font-api-makes-embedded-web-fonts-easy/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

