<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>daisyrust.com &#187; digital art hacks</title>
	<link>http://www.daisyrust.com</link>
	<description>digital art hacks - creative code - exhibition</description>
	<pubDate>Mon, 25 Feb 2008 14:46:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Controlling Quartz Composer with Speech Commands</title>
		<link>http://www.daisyrust.com/2006/10/11/controlling-quartz-composer-with-speech-commands/</link>
		<comments>http://www.daisyrust.com/2006/10/11/controlling-quartz-composer-with-speech-commands/#comments</comments>
		<pubDate>Wed, 11 Oct 2006 10:44:37 +0000</pubDate>
		<dc:creator>ian grant</dc:creator>
		
		<category><![CDATA[creative code]]></category>

		<category><![CDATA[digital art hacks]]></category>

		<category><![CDATA[general]]></category>

		<category><![CDATA[quartz composer]]></category>

		<category><![CDATA[speech]]></category>

		<guid isPermaLink="false">http://www.daisyrust.com/2006/10/11/controlling-quartz-composer-with-speech-commands/</guid>
		<description><![CDATA[First draft:

Here we go! I did this once then failed to remember how I did it - and I'm not surprised - because the functionality to attach a speech command to an application specific keyboard command "Define a Keyboard Command" or to trigger specific key press can only be accessed by SPEAKING a command - highlighted below in the Speech Commands window.]]></description>
			<content:encoded><![CDATA[<p>First draft:</p>
<p>Here we go! I did this once then failed to remember how I did it - and I&#8217;m not surprised - because the functionality to attach a speech command to an application specific key-press can only be accessed by SPEAKING the command &#8220;Define a Keyboard Command&#8221; - highlighted below in the Speech Commands window. <a href="http://www.daisyrust.com/2006/10/11/controlling-quartz-composer-with-speech-commands/#more-48" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.daisyrust.com/2006/10/11/controlling-quartz-composer-with-speech-commands/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using Magpie RSS to scrape blog headlines to html</title>
		<link>http://www.daisyrust.com/2006/03/25/using-magpie-rss-to-scrape-blog-headlines-to-html/</link>
		<comments>http://www.daisyrust.com/2006/03/25/using-magpie-rss-to-scrape-blog-headlines-to-html/#comments</comments>
		<pubDate>Sat, 25 Mar 2006 09:43:42 +0000</pubDate>
		<dc:creator>ian grant</dc:creator>
		
		<category><![CDATA[digital art hacks]]></category>

		<category><![CDATA[general]]></category>

		<category><![CDATA[net art]]></category>

		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.daisyrust.com/2006/03/25/using-magpie-rss-to-scrape-blog-headlines-to-html/</guid>
		<description><![CDATA[Creating a mashup often requires manipulating RSS feeds and exploring XML formats. MagpieRSS is an excellent tool that can simplify manipulations with RSS feeds. This article illustrates a simple, introductory use of this powerful tool.]]></description>
			<content:encoded><![CDATA[<p>This walkthrough assumes you have access to a server running PHP and the ability to change permissions on directories.</p>
<p>Step One: <a href="http://magpierss.sourceforge.net/">Get MagpieRSS here!</a> Head to sourceforge and grab the latest copy of the excellent MagpieRSS.</p>
<p>Step Two: Read the docs. Quickstart: setup a directory on the webserver that looks a bit like this:</p>
<p><img src="http://www.daisyrust.com/wp-content/images/directory_001.png" height="192" width="355" border="1" hspace="4" vspace="4" alt="Directory 001" /></p>
<p>Set the permission of the &#8220;cache&#8221; directory to 777 - world writable. You may be able to get away with more restricted permissions.</p>
<p>Step Three: use the code below as a starting point for exploration. You can see the results of it here<a href="http://www.daisyrust.com/magpie/magpierss_test_001.php"> here </a></p>
<p>
There are several lines you can comment/uncomment to see the object magpierss returns. The current example is set to return the results of a blogger feed. With some extra code one can detect the feed and provide summaries accordingly&#8230; that is to come.</p>
<blockquote><pre><code>
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

</head>

<body>
< ?php
require_once('magpierss/rss_fetch.inc');
// the @ suppresses errors
// change the URL to the blog atom / rss feed. If the feed is not atom but RSS some of the item names will be different - one will need to check. The info is in the 'channel' array.

$rss = @fetch_rss( 'http://internetandnetworkart.blogspot.com/atom.xml' );
// $rss = @fetch_rss( 'http://ellington.tvu.ac.uk/dev/?feed=rss2' );

// dump the object to the screen to study the structure magpie returns
echo '
<pre>';
print_r($rss);
echo '';
// end dump

$channel = $rss->channel;
echo "<em>Blog Title: </em>&#8221; .$channel[&#8217;title&#8217;];

//display links recent blog entries:

echo &#8221;
<ul><em>Latest blog additions:</em>\n&#8221;;

foreach ($rss->items as $item) {
   $href = $item[&#8217;link&#8217;];
   $title = $item[&#8217;title&#8217;];
   $author = $item[&#8217;author_name&#8217;];
   $created = $item[&#8217;created&#8217;];
   $content = $item[&#8217;atom_content&#8217;];

   echo &#8221;
<li><a href=$href>$title</a> created by $author on $created</li>

\n
   $content\n&#8221;;
}

echo &#8220;</ul>

&#8220;;

?>

</body>
</html>

</code></pre>
</blockquote>
<p>The sample files can be downloaded here: <a href="http://www.daisyrust.com/magpie/magpierss_blog_scrape.zip">magpierss_blog_scrape.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.daisyrust.com/2006/03/25/using-magpie-rss-to-scrape-blog-headlines-to-html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Basic Telematics using SMS and the Web</title>
		<link>http://www.daisyrust.com/2006/03/24/basic-telematics-using-sms-and-the-web/</link>
		<comments>http://www.daisyrust.com/2006/03/24/basic-telematics-using-sms-and-the-web/#comments</comments>
		<pubDate>Fri, 24 Mar 2006 22:00:29 +0000</pubDate>
		<dc:creator>ian grant</dc:creator>
		
		<category><![CDATA[digital art hacks]]></category>

		<category><![CDATA[flickr]]></category>

		<category><![CDATA[telematics]]></category>

		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.daisyrust.com/2006/03/24/basic-telematics-using-sms-and-the-web/</guid>
		<description><![CDATA["Flickr Peep Show" connected mobile phone networks and a popular internet social photography network by means of SMS messaging and explored public display and projection. See <a href="http://www.mediamatic.net/artefact-200.9203.html">Flickr Peep Show</a> for more information. If you wish to do this style of creative telematic work, read on!

There are a number of ways to get going with SMS (Short Message Service) and web page integration. Some techniques are trickier and more expensive than others. The technique here uses a Bluetooth-Enabled Mobile Phone, A Bluetooth-Enabled Mac/Linux Server and a free server tool called <a href="http://kinks.ultralab.ac.uk/ultrasms/">UltraSMS</a>]]></description>
			<content:encoded><![CDATA[<p><strong>Integrating Short Message Service (SMS) and the Web</strong></p>
<p><strong>Introduction</strong></p>
<p>"Flickr Peep Show" connected mobile phone networks and a popular internet social photography network by means of SMS messaging and explored public display and projection. See <a href="http://www.mediamatic.net/artefact-200.9203.html">Flickr Peep Show</a> for more information. If you wish to do this style of creative telematic work, read on!</p>
<p>There are a number of ways to get going with SMS (Short Message Service) and web page integration. Some techniques are trickier and more expensive than others. Some rely on you having direct access and control over the web server - this may be possible when you are using web technologies to do installation / gallery work and are providing the infrastructure yourself (eg. degree shows).</p>
<p>The three options I write about here are:</p>
<p><strong>(Option 1)</strong> Subscribe to an online SMS gateway<br />
<strong>(Option 2)</strong> Use a GSM Modem<br />
<strong>(Option 3)</strong> Using a Bluetooth-Enabled Mobile Phone, A Bluetooth-Enabled Mac/Linux Server and <a href="http://kinks.ultralab.ac.uk/ultrasms/">UltraSMS</a></p>
<hr />
<strong>(Option 1) Subscribe to an online SMS gateway for sending and receiving messages. </strong></p>
<p>This option is the only one that does not require physical access to the web server.</p>
<p><strong>(a) Find a service and sign up. </strong><br />
I use tm4b - bulk sms gateway. <a href="http://www.tm4b.com/">http://www.tm4b.com/</a> </p>
<p>Signing up is free [true circa March 2005). You have many options for sending messages, via their web interface, via their simple Application Programming Interface (API) using scripting languages like php. The cost per message is slightly cheaper than mobile network operators charge. </p>
<p><strong>(b) Sending a message using tm4b's SMS API and PHP</strong><br />
Here is a working php script. Download here (ctrl/right click): <a href="http://www.daisyrust.com/wp-content/code/sms.php.txt">sms.php.txt</a>.</p>
<blockquote>
<pre>
<code>
<div class="igBar"><a href="javascript:showCodeTxt('php-1');">plain text file</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">PHP:</span>
<div id="php-1">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//initialize the request variable</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$request</span> = <span style="color:#FF0000;">""</span>; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//this is the username of our TM4B account</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$param</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#FF0000;">"username"</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#FF0000;">"[your TM4B username]"</span>; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//this is the password of our TM4B account</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$param</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#FF0000;">"password"</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#FF0000;">"[your TM4B password]"</span>; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//this is the message that we want to send</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$param</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#FF0000;">"msg"</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#FF0000;">"This is a sample SMS."</span>; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//these are the recipients of the message</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$param</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#FF0000;">"to"</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#FF0000;">"[insert recipients phone number or multiple number seperated by a pipe (|)]"</span>; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//this is our sender </span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$param</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#FF0000;">"from"</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#FF0000;">"Ian"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//we want to send the message via first class</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$param</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#FF0000;">"route"</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#FF0000;">"frst"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//we are only simulating a broadcast</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//$param[&quot;sim&quot;] = &quot;yes&quot;; // un-comment this line to enter 'simulation' mode. It will test the script without sending a message (saving money)</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//traverse through each member of the param array building the url query</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#616100;">foreach</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$param</span> <span style="color:#616100;">as</span> <span style="color:#0000FF;">$key</span>=&gt;<span style="color:#0000FF;">$val</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">//we have to urlencode the values</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$request</span>.= <span style="color:#0000FF;">$key</span>.<span style="color:#FF0000;">"="</span>.urlencode<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$val</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">//append the ampersand (&amp;) sign after each paramter/value pair</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$request</span>.= <span style="color:#FF0000;">"&amp;"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//remove the final ampersand sign from the request</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$request</span> = <a href="http://www.php.net/substr"><span style="color:#000066;">substr</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$request</span>, <span style="color:#800000;">0</span>, <a href="http://www.php.net/strlen"><span style="color:#000066;">strlen</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$request</span><span style="color:#006600; font-weight:bold;">&#41;</span>-<span style="color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//echo $request; // uncomment this line to view the URL that is constructed using the code above.</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//this is the url of the gateway's interface</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// method 1 -- using CURL - this must be installed</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$url</span> = <span style="color:#FF0000;">"http://www.tm4b.com/client/api/send.php"</span>;&nbsp; <span style="color:#FF9933; font-style:italic;">//this is the url of the gateway's interface</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$query</span> = <span style="color:#0000FF;">$url</span>.<span style="color:#FF0000;">"?"</span>.<span style="color:#0000FF;">$request</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$ch</span> = curl_init<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$query</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">//initialize curl handle </span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$response</span> = curl_exec<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$ch</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">//run the whole process and return the response</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">curl_close<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$ch</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">//close the curl handle</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//echo $response; // uncomment to show the result onscreen for debugging</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>

</code></pre>
</blockquote>
<p><strong>(c) Receiving messages</strong></p>
<p>Receiving messages via a web page and handling that message within a script is slightly more involved. Some web based 'bulk sms' suppliers charge a packet (no network pun intended) for this facility - you normally need a dedicated number or short number and the set up costs are prohibitive - with monthly fees sometimes as high as £1000! I am have a 'keyword' and a dedicated short number from tm4b.com. I'll update this post / or post another entry when I have had a chance to evaluate this service properly. The API is flexible and well documented.</p>
<p>[update 18 July 2006 - I won a dedicated keyword on a long-number-service of my choice in a customer service survey for tm4b - I can highly recommend them as a web based SMS service - check out their current options here: <a href="http://www.tm4b.com/">http://www.tm4b.com/</a></p>
<p>The principle is: through your suppliers web interface you set up a "message receiver" and a "message responder". tm4b.com has 3 main channels for handling received messages: depicted here (read from bottom to top):</p>
<p><img src="http://www.daisyrust.com/wp-content/images/tm4b_model.png" height="227" width="270" align="" border="1" hspace="4" vspace="4" alt="Tm4B Receiving Model Image" title="Tm4B.com Receiving Model" longdesc="" /></p>
<p>In the case of our artistic endeavors, the communication model may not immediately re-route the message to a user. It is likely the text message will be intercepted by a web script using the SMS API and processed in a creative and interesting way. For example: text process the message, stripping keywords and then flickr retrieving images, or store the message in a mysql database and processed later - maybe into a fragmented hypertext narrative.</p>
<p><strong>(Option 2) GSM Modem with SMS capabilities with Built in SIM Card Reader</strong> </p>
<p>You need to buy a modem and have a spare SIM card with a phone number, dedicated only to receiving SMS and have physical access to a server.</p>
<p>Richard Colson (Digital Arts Pathway Leader) has a Falcom GSM modem for use in Digital Art modules. [Note: this post was originally written as a tutorial for students on the BA (Hons) in Digital Art at TVU, London. <a href="http://mercury.tvu.ac.uk/da/">http://mercury.tvu.ac.uk/da/</a>] The drivers are windows only and as yet, I have not tested it. It can send/receive SMS message to a dedicate phone number and relays the message to the PC it is connected to. Using cross platform open source SMS tools (<a href="http://smstools.meinemullemaus.de/">http://smstools.meinemullemaus.de/</a>), you can configure a server box to do near enough what you wish. Using it, Richard has created a shockwave movie that interfaces with a matrix display and outputs SMS content.</p>
<p><strong>(Option 3) Instant SMS to MySQL Using a Bluetooth-Enabled Mobile Phone, A Bluetooth-Enabled Mac/Linux Server and an Open Source 'Daemon' Called UltraSMS</strong></p>
<p><strong>Requires:</strong> Physical access to a bluetooth enabled linux or Mac OS X Server, running MySQL and a supported phone</p>
<p>This option is very cool and relatively straight forward. Put simply: the server and the phone are 'paired' via bluetooth. A small piece of software (ultraSMS), called a daemon, runs continuously in the background and 'listens' for an incoming SMS. As soon as a SMS is received, the daemon pulls the SMS data off the phone, inserts it into a MySQL database and tidies up by deleting the received message from the phone. As soon as the SMS is in the database, any server side scripting language can access, process and output the data.</p>
<p><strong>Step by step</strong></p>
<p><strong>(a)</strong> Download UltraSMS here: <a href="http://kinks.ultralab.ac.uk/ultrasms/">http://kinks.ultralab.ac.uk/ultrasms/</a><br />
UltraSMS is an open source daemon for sending and recieving SMS messages. It will work on Mac OS X and Linux systems. It comes with full instructions for use. </p>
<p><strong>(b)</strong> Use phpMyAdmin, or similar tool, to create a MySQL database on the webserver to contain the SMS Data - the SQL file (ultrasms.sql) to do this for you is included in the ultraSMS distribution.</p>
<p><a href="http://www.daisyrust.com/wp-content/images/01_create_db-1.png" onclick="window.open('http://www.daisyrust.com/wp-content/images/01_create_db-1.png','popup','width=1074+20,height=972+20,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"><img src="http://www.daisyrust.com/wp-content/images/01_create_db-1-tm.jpg" height="100" width="110" align="" border="1" hspace="4" vspace="4" alt="01 Create Db-1" title="" longdesc="" /></a></p>
<p><strong>(c)</strong> 'Pair' the server via Bluetooth with a supported phone (luckily mine was on the short list!).</p>
<p>On a mac you do from the bluetooth preferences, detailed instructions are in the documentation of ultraSMS (click for larger images):</p>
<p><a href="http://www.daisyrust.com/wp-content/images/bluetooth_01.png" onclick="window.open('http://www.daisyrust.com/wp-content/images/bluetooth_01.png','popup','width=595+20,height=636+20,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"><img src="http://www.daisyrust.com/wp-content/images/bluetooth_01-tm.jpg" height="100" width="93" align="" border="1" hspace="4" vspace="4" alt="Bluetooth 01" title="" longdesc="" /></a></p>
<p>Pair the phone, then click the button to edit the serial ports:</p>
<p><a href="http://www.daisyrust.com/wp-content/images/bluetooth_02-1.png" onclick="window.open('http://www.daisyrust.com/wp-content/images/bluetooth_02-1.png','popup','width=595+20,height=468+20,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"><img src="http://www.daisyrust.com/wp-content/images/bluetooth_02-1-tm.jpg" height="100" width="127" align="" border="1" hspace="4" vspace="4" alt="Bluetooth 02-1" title="" longdesc="" /></a></p>
<p>Here are the settings: the port name will be needed in the configuration file in the next step, so copy it!</p>
<p><a href="http://www.daisyrust.com/wp-content/images/bluetooth_03-1.png" onclick="window.open('http://www.daisyrust.com/wp-content/images/bluetooth_03-1.png','popup','width=438+20,height=419+20,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"><img src="http://www.daisyrust.com/wp-content/images/bluetooth_03-1-tm.jpg" height="100" width="104" align="" border="1" hspace="4" vspace="4" alt="Bluetooth 03-1" title="" longdesc="" /></a></p>
<p><strong>(c)</strong> Edit the UltraSMS Configuration file (utlrasms.conf) to point to the newly created database, sample below your details may vary. </p>
<blockquote><pre><code>
DEVICE = "/dev/tty.Torme-SerialPort-1"
DAEMON = "FALSE"
DEBUG = "FALSE"
MYSQL_HOST = "localhost"
MYSQL_DB = "ultrasms"
MYSQL_USER = "root"
MYSQL_PASS = "[insert your mysql password]"
</code></pre>
</blockquote>
<p>You put this conf into the /etc/ directory.</p>
<p><strong>(d)</strong> Start the daemon.</p>
<p><img src="http://www.daisyrust.com/wp-content/images/start_daemon.png" height="114" width="388" align="" border="1" hspace="4" vspace="4" alt="Start Daemon" title="" longdesc="" /></p>
<p><strong>(e)</strong> Wait for a text!</p>
<p><strong>(f)</strong> Voila! Message Received</p>
<p><a href="http://www.daisyrust.com/wp-content/images/daemon_receives_message.png" onclick="window.open('http://www.daisyrust.com/wp-content/images/daemon_receives_message.png','popup','width=503+20,height=364+20,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"><img src="http://www.daisyrust.com/wp-content/images/daemon_receives_message-tm.jpg" height="100" width="138" align="" border="1" hspace="4" vspace="4" alt="Daemon Receives Message" title="" longdesc="" /></a></p>
<p><strong>(g)</strong> The SMS data is automatically inserted the database.</p>
<p><a href="http://www.daisyrust.com/wp-content/images/database_result.png" onclick="window.open('http://www.daisyrust.com/wp-content/images/database_result.png','popup','width=865+20,height=892+20,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"><img src="http://www.daisyrust.com/wp-content/images/database_result-tm.jpg" height="100" width="96" align="" border="1" hspace="4" vspace="4" alt="Database Result" title="" longdesc="" /></a></p>
<p><strong>(h)</strong> The next step is to do something cool with the data! </p>
<p><strong>Conclusions</strong></p>
<p>I favour <strong>option (3)</strong>. Physical access to a server is not always possible and so this solution is ideal for art installation scenarios where one has hands on access to a web-server setup.</p>
<p>Option (1) - is great but finding an inexpensive service, of an appropriate scale and that is reliable has so far eluded me. I will update this view when <a href="http://www.tm4b.com">www.tm4b.com</a> get back to me.</p>
<p>The next tutorial, Public Art and Interactivity using SMS: a prototype, will demonstrate how to integrate a flickr search with the ultraSMS and MySQL process elaborated in Option 3.</p>
<p><strong>Ian Grant</strong></p>
<p><strong>Further Links</strong></p>
<p><a href="http://www.mediamatic.net/artefact-200.9203.html">Flickr Peep Show</a><br />
<a href="http://www.textually.org/">http://www.textually.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.daisyrust.com/2006/03/24/basic-telematics-using-sms-and-the-web/feed/</wfw:commentRss>
		</item>
		<item>
		<title>searching and returning images from flickr</title>
		<link>http://www.daisyrust.com/2006/02/05/public-screens-searching-and-returning-images-from-flickr-via-sms/</link>
		<comments>http://www.daisyrust.com/2006/02/05/public-screens-searching-and-returning-images-from-flickr-via-sms/#comments</comments>
		<pubDate>Sun, 05 Feb 2006 16:45:56 +0000</pubDate>
		<dc:creator>ian grant</dc:creator>
		
		<category><![CDATA[digital art hacks]]></category>

		<category><![CDATA[telematics]]></category>

		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.daisyrust.com/2006/02/05/public-screens-searching-and-returning-images-from-flickr-via-sms/</guid>
		<description><![CDATA[An introductory article on searching flickr and returning the images using php, phpFlickr and (optionally) a mySQL database.]]></description>
			<content:encoded><![CDATA[<p>A number of people need to get searching flickr, returning and displaying images according to tag or full-text searches and handling associated tags. Although it seems a long process, this tutorial demonstrates one way to approach flickr that is simple and flexible. <a href="http://www.daisyrust.com/2006/02/05/public-screens-searching-and-returning-images-from-flickr-via-sms/#more-10" class="more-link">(more...)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.daisyrust.com/2006/02/05/public-screens-searching-and-returning-images-from-flickr-via-sms/feed/</wfw:commentRss>
		</item>
		<item>
		<title>creating anaglyphs with adobe photoshop</title>
		<link>http://www.daisyrust.com/2006/02/05/creating-anaglyphs-with-adobe-photoshop/</link>
		<comments>http://www.daisyrust.com/2006/02/05/creating-anaglyphs-with-adobe-photoshop/#comments</comments>
		<pubDate>Sun, 05 Feb 2006 00:07:14 +0000</pubDate>
		<dc:creator>ian grant</dc:creator>
		
		<category><![CDATA[digital art hacks]]></category>

		<guid isPermaLink="false">http://www.daisyrust.com/2006/02/05/creating-anaglyphs-with-adobe-photoshop/</guid>
		<description><![CDATA[A useful excerpt on anaglyph production using photoshop from dogfeathers.com:
<a href="http://dogfeathers.com/3d/3dhowto.html">Creating Anaglyphs with Adobe Photoshop</a>:]]></description>
			<content:encoded><![CDATA[<p>A useful excerpt on 3d imaging from dogfeathers.com:  <a href="http://www.daisyrust.com/2006/02/05/creating-anaglyphs-with-adobe-photoshop/#more-9" class="more-link">(more...)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.daisyrust.com/2006/02/05/creating-anaglyphs-with-adobe-photoshop/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
