<?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>Limina.Log &#187; Writing</title>
	<atom:link href="http://log.liminastudio.com/category/writing/feed" rel="self" type="application/rss+xml" />
	<link>http://log.liminastudio.com</link>
	<description>Research &#38; Development at Limina.Studio</description>
	<lastBuildDate>Sun, 15 Jan 2012 21:25:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Wireless Positioning &amp; Location Awareness: An Overview</title>
		<link>http://log.liminastudio.com/writing/research/wireless-positioning-location-awareness-an-overview</link>
		<comments>http://log.liminastudio.com/writing/research/wireless-positioning-location-awareness-an-overview#comments</comments>
		<pubDate>Wed, 21 Dec 2011 19:56:50 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[Location Awareness]]></category>
		<category><![CDATA[Location Fingerprinting]]></category>
		<category><![CDATA[R&D]]></category>
		<category><![CDATA[RFID]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[xbee]]></category>
		<category><![CDATA[ZigBee]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=965</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/writing/research/wireless-positioning-location-awareness-an-overview' addthis:title='Wireless Positioning &#38; Location Awareness: An Overview '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>For one of my major projects I&#8217;m tasked with figuring out how we can locate mobile wireless devices within a limited location, and it seems a lot of other people I&#8217;ve talked to are in the process of figuring out the same thing, so here&#8217;s an overview of what I&#8217;ve learned so far. Wireless Technologies [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/writing/research/wireless-positioning-location-awareness-an-overview' addthis:title='Wireless Positioning &amp; Location Awareness: An Overview '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>For one of my major projects I&#8217;m tasked with figuring out how we can locate mobile wireless devices within a limited location, and it seems a lot of other people I&#8217;ve talked to are in the process of figuring out the same thing, so here&#8217;s an overview of what I&#8217;ve learned so far.<span id="more-965"></span></p>
<p><strong>Wireless Technologies / Protocols</strong></p>
<ul>
<li>WiFi (802.11)</li>
<li>XBee/ZigBee (802.15.4)</li>
<li>BlueTooth (802.15.1)</li>
<li>RFID</li>
<ul>
<li>Near Field Communication (Two-Way RFID)</li>
</ul>
</ul>
<p>These are four of the principal wireless technologies in mainstream use today.  The goal is to determine within some degree of accuracy the position in 2 or 3 dimensions of a wireless node.  Most, if not all, of the available approaches utilize the RSSI (Received Signal Strength Indicator) of the target node&#8217;s connections to nearby nodes.</p>
<p>If you have fixed routers with known locations, you can use the RSSI values of their connections to the target node to calculate the distances from the fixed nodes to the target node.  However, any RSSI value will be heavily influenced by a number of factors that may be out of your control: interfering structures, interfering people (we are walking bags of water, which readily absorbs 2.4ghz radiation) and other interfering radio signals or noise.</p>
<p>Due to these issues, some smart folks developed a system called RADAR that uses &#8216;location fingerprinting&#8217; to take a bunch of readings of signal strengths under varying conditions and associate them with known locations.  There are a variety of algorithms to tabulate this information, one of which uses neural networks.</p>
<p>Here is a collection of extremely useful papers and links that describe these various approaches, techniques and technologies:</p>
<p><strong>Resources</strong></p>
<ul>
<li><a href="http://www.sis.pitt.edu/~dtipper/2011/Survey1.pdf">Survey of Wireless Indoor Positioning Systems</a> [pdf]</li>
<li><a href="http://www.sensor-networks.org/index.php?page=0827027001">Indoor Location using 802.15.4</a></li>
<li><a href="http://www.ece.ucdavis.edu/~chuah/classes/eec173B/eec173b-s05/students/BluetoothTri_ppt.pdf">Bluetooth Triangulation</a> [pdf]</li>
<li><a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.124.3108&amp;rep=rep1&amp;type=pdf&amp;ei=jDbyTtTHO4Tz0gHl492zAg&amp;usg=AFQjCNHzIdwdyFqnY4nuSVz-ZFsj40Yn9Q&amp;sig2=YXe5yRHv3AXb9ZjySOeAEw">CS/RADAR: Indoor Location Discovery and Tracking</a> [pdf]</li>
<li><a href="http://crystal.uta.edu/~zaruba/winet_journal.pdf">Indoor location tracking using RSSI readings from a single Wi-Fi access point</a> [pdf]</li>
<li><a href="http://cial.csie.ncku.edu.tw/presentation/group_pdf/Location%20Estimation%20in%20ZigBee%20Network%20Based%20on%20Fingerprinting.pdf">Location Estimation in ZigBee Network Based on Fingerprinting</a> [pdf]</li>
<li><a href="http://www.cs.sunysb.edu/~pgupta/pdfs/COMSWARE_08.pdf">Experimental Analysis of RSSI-based Location Estimation in Wireless Sensor Networks</a> [pdf]</li>
<li><a href="http://www.freescale.com/files/microcontrollers/doc/brochure/PositionLocationMonitoring.pdf">Position Location Monitoring Using 802.15.4/ZigBee technology</a> [pdf]</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/writing/research/wireless-positioning-location-awareness-an-overview/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Ultimate Cheap DIY Media Center Device</title>
		<link>http://log.liminastudio.com/miscellaneous/the-ultimate-cheap-diy-media-center-device</link>
		<comments>http://log.liminastudio.com/miscellaneous/the-ultimate-cheap-diy-media-center-device#comments</comments>
		<pubDate>Thu, 11 Aug 2011 02:39:38 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[htpc]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=911</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/miscellaneous/the-ultimate-cheap-diy-media-center-device' addthis:title='The Ultimate Cheap DIY Media Center Device '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>You might be in the same situation I was in: a big collection of music and other media on one computer, but the big speakers/TV are in another room—how best to get that media out there?  Here&#8217;s a DIY solution that will cost you less than $200 (and a little elbow grease) and still get [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/miscellaneous/the-ultimate-cheap-diy-media-center-device' addthis:title='The Ultimate Cheap DIY Media Center Device '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>You might be in the same situation I was in: a big collection of music and other media on one computer, but the big speakers/TV are in another room—how best to get that media out there?  Here&#8217;s a DIY solution that will cost you less than $200 (and a little elbow grease) and still get you more features than any other prepackaged device can possibly offer.<span id="more-911"></span></p>
<p>I&#8217;ve experimented with a variety of streaming solutions, including a <a href="http://wiibrew.org/">homebrewed Wii</a> (which works exceptionally well with WiiMC), a Chumby (great in lots of ways, but not as powerful as a full-blown computer), and an AppleTV (which has still never even been plugged in since I don&#8217;t have any HDMI displays).</p>
<p>But since I use a projector as a screen, I can&#8217;t have it on all the time, so I needed something that can be remotely controlled.  Back when my Ubuntu server computer was in the living room and connected directly to the speakers and projector, I used <a href="http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki">mpd, the Music Player Daemon</a>, to remotely control music playlists and playback.  Furthermore, there are a few extremely useful tools that so far can only be run on a regular Linux machine, which I&#8217;ll describe below.</p>
<p>So I decided I needed a new Linux computer out in the main room to do what I really wanted to do.  Here&#8217;s what I ended up with, which I&#8217;m currently extremely happy with:</p>
<ul>
<li>Features</li>
<ul>
<li>MPD music playback from SMB share.  This allows you to remotely control music playback from any other computer—even your phone!</li>
<li>Pitchfork web client for MPD</li>
<li><a href="http://6xq.net/projects/pianobar/">Pianobar</a>, a Pandora server that can be controlled remotely</li>
<li><a href="https://github.com/albertz/shairport">Shairport</a>, which allows iTunes and some other software to send audio to your media machine.  More details below.</li>
</ul>
<li>Hardware</li>
<ul>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16856119043">Foxconn NT425H Book-size computer</a></li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820208503">8GB Flash card</a> (in lieu of a hard disk)</li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820233079">2GB RAM</a></li>
</ul>
</ul>
<div>This combination is startlingly cheap.  At the time of writing I paid somewhere around $175 for the whole thing.  Bear in mind this does not include a monitor of any kind; I am running it headless, though the Foxconn has both VGA and HDMI outputs, so it can be used with a TV or monitor of your choice!</div>
<div>Now for the fun part—setting it up.  This is going to seem long, and it is, but nothing is particularly difficult, and I have found the end result so far to be completely worth the hacking.</div>
<div>
<ol>
<li>Setting up the Foxconn box:</li>
<ol>
<li>Opening up the device requires removing the four screws (obvious), and using a credit card, guitar pick or <a href="http://www.ifixit.com/Tools/Plastic-Opening-Tools/IF145-000">spudger</a> to get the side the rest of the way off (not obvious).  At first it will seem like it is more difficult than it should be, but persevere, and it comes off without too big of a hassle.</li>
<li>Insert the ram.  Make sure it&#8217;s in all the way, or the machine won&#8217;t boot.</li>
<li>Attach antenna.</li>
<li>Attach a monitor; you&#8217;ll need it at least until you set up SSH if you&#8217;re going to run the box headless.</li>
</ol>
<li>Install Ubuntu (or your preferred flavor of Linux):</li>
<ol>
<li>Since we want to install directly to the SD card as though it were a hard disk, the easiest way to do this is with an external CD-ROM drive.  (I tried and tried to figure out how to just install the OS on the card from my existing Ubuntu box, but still have no idea how to make that happen.  If anyone has advice, please leave a comment!)</li>
<li>Get the <a href="http://www.ubuntu.com/download/ubuntu/alternative-download">Ubuntu Alternate Installer</a>, which I find to be MUCH faster and more effective on this machine (just less pretty).  Burn to CD.</li>
<li>Boot the CD with the SD card out, and put the SD card in when the installer is ready to scan for installation drives. The rest of the install should be unremarkable.</li>
</ol>
<li>Install software (all from the terminal):</li>
<ol>
<li>sudo apt-get update</li>
<li>You&#8217;ll want to give your computer a name on the network, since I don&#8217;t think the Alternate installer prompts you for it.  But it&#8217;s easy:</li>
<ol>
<li>sudo echo &#8220;myComputerName&#8221; &gt; /etc/hostname</li>
<li>sudo echo &#8220;127.0.0.1 myComputerName&#8221; &gt;&gt; /etc/hosts</li>
<li>It may take some time for other computers on your LAN to recognize this hostname.</li>
</ol>
<li>Install SSH if you want to be able to remotely administer the machine:</li>
<ol>
<li>sudo apt-get install openssh-server openssh-client</li>
<li>Henceforth, you can ssh into your box from another computer like so:</li>
<ol>
<li>ssh myComputerName</li>
</ol>
</ol>
<li>You&#8217;ll need Samba if you want to mount an SMB share from another computer as I do: sudo apt-get install smbfs</li>
<ol>
<li>Make a directory to mount your share in, i.e. /media/myMusic</li>
<li>Add this line to your fstab: //myserver/share/music /media/myMusic smbfs username=guest,password=guest 0 0</li>
<li>sudo mount -a</li>
</ol>
<li>For mpd:</li>
<ol>
<li>sudo apt-get install mpd mpc</li>
<li>sudo nano /etc/mpd.conf</li>
<li>Change &#8220;music_directory&#8221; to /media/myMusic</li>
<li>Comment out &#8220;bind_to_address&#8221; (so that clients from other IPs can connect)</li>
<li>in &#8220;audio_output,&#8221; change &#8220;mixer_control&#8221; to &#8220;Master,&#8221; and uncomment mixer_type &#8220;hardware&#8221;.  This will allow mpd to control the system volume, so that changing the volume in any mpd client will affect anything else that&#8217;s making sound.</li>
<li>sudo service mpd restart</li>
<li>We&#8217;ll be installing Pitchfork as a client, but there are <a href="http://mpd.wikia.com/wiki/Clients">TONS of other clients</a> for just about every operating system.  I use <a href="http://mpd.wikia.com/wiki/Client:Theremin">Theremin</a> on my OSX machines, and <a href="http://mpd.wikia.com/wiki/Client:MPoD2">MPoD</a> on my iPhone.  Let me tell you, it is incredibly fun and useful to be able to control music playback from my phone!</li>
</ol>
<li>For Pitchfork, we&#8217;ll need git to clone the current repository and a LAMP stack:</li>
<ol>
<li>sudo apt-get install git apache2 php5 libapache2-mod-php5 php5-common php5-cli mysql-server mysql-client</li>
<li>cd /var/www</li>
<li>sudo git clone git@github.com:virgildisgr4ce/pitchfork.git</li>
<ol>
<li>(This is my repo of Pitchfork which was originally forked from <a href="https://github.com/cdecker/pitchfork">cdecker</a>.  I plan on adding some features to integrate Pianobar whenever I can!)</li>
</ol>
<li>cp /var/www/pitchfork/doc/pitchfork.conf /etc/apache2/conf.d/pitchfork.conf</li>
<li>cd /var/www/pitchfork</li>
<li>sudo chown www-data config</li>
<li>sudo service apache2 restart</li>
<li>Open http://yourComputer/pitchfork</li>
<li>You should see the configuration for Pitchfork; I don&#8217;t think anything needs to be changed.</li>
</ol>
<li>Pianobar:</li>
<ol>
<li>sudo apt-get install pianobar</li>
<li>This software is the newest to me, so I&#8217;m still beginning to figure out.  I&#8217;ll be adding more info when I have it going!</li>
</ol>
<li>Shairport:</li>
<ol>
<li>cd ~</li>
<li>git clone https://github.com/albertz/shairport.git</li>
<li>sudo apt-get install libssl-dev libcrypt-openssl-rsa-perl libao-dev libio-socket-inet6-perl libwww-perl avahi-utils pkg-config</li>
<li>cd shairport</li>
<li>make</li>
<li>perl shairport.pl</li>
<li>Now, if you look at iTunes on another computer on your LAN, you should see a speaker icon showing your new media box.  Try it!  It&#8217;s amazing!</li>
<li>I&#8217;ve been looking for ways of sending system audio instead of just iTunes output; I may try some of the hacks, but so far I&#8217;ve been trying <a href="http://www.rogueamoeba.com/airfoil/">AirFoil</a>, which works decently but is the only thing on this list that&#8217;s not free, and doesn&#8217;t have complete OSX Lion support (yet).</li>
</ol>
<li>That&#8217;s it!</li>
</ol>
</ol>
<div>This is all recounted from having just done it, so if I forgot anything or something isn&#8217;t working, please let me know!  Have fun!</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/miscellaneous/the-ultimate-cheap-diy-media-center-device/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>From Eagle to Printed Circuit Board—Easy Tips</title>
		<link>http://log.liminastudio.com/itp/physical-computing/from-eagle-to-printed-circuit-board%e2%80%94easy-tips</link>
		<comments>http://log.liminastudio.com/itp/physical-computing/from-eagle-to-printed-circuit-board%e2%80%94easy-tips#comments</comments>
		<pubDate>Wed, 27 Jul 2011 22:42:06 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[CAD]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[PCB]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=897</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/physical-computing/from-eagle-to-printed-circuit-board%e2%80%94easy-tips' addthis:title='From Eagle to Printed Circuit Board—Easy Tips '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>If you&#8217;ve never gotten a printed circuit board (PCB) manufactured, it&#8217;s pretty daunting at first, but well worth the trouble—it&#8217;s exciting to get a stack of fresh, neat circuit boards of your own design in the mail, and a whole lot more fun than hand-soldering perfboard! I use EAGLE to design my schematics and boards, [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/physical-computing/from-eagle-to-printed-circuit-board%e2%80%94easy-tips' addthis:title='From Eagle to Printed Circuit Board—Easy Tips '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>If you&#8217;ve never gotten a printed circuit board (PCB) manufactured, it&#8217;s pretty daunting at first, but well worth the trouble—it&#8217;s exciting to get a stack of fresh, neat circuit boards of your own design in the mail, and a whole lot more fun than hand-soldering perfboard!</p>
<p>I use <a href="http://www.cadsoftusa.com/">EAGLE</a> to design my schematics and boards, and now that I&#8217;ve gotten used to its seemingly inscrutable interface, it&#8217;s quite fast and effective.  Here are some tips I&#8217;ve learned:<span id="more-897"></span></p>
<ul>
<li>Get <a href="http://www.opencircuits.com/SFE_Footprint_Library_Eagle">Sparkfun&#8217;s library</a> of common and useful parts, and check out their <a href="http://www.sparkfun.com/tutorials/108">tutorial</a>.  Drop the library in {Applications}/Eagle/lbr.</li>
<li>If you&#8217;re using an external mouse, holding the center button down pans the layout—extremely useful, hard to live without!</li>
<li>Get to know the names of the commands, like &#8216;add&#8217;, &#8216;group&#8217;, &#8216;move&#8217;; and remember that you can type the first couple of letters (&#8216;gro&#8217;) instead of click the button, which is much faster usually.</li>
<li>Moving groups is a bit of a pain; you first define the group by selecting it with the group tool, and then move it as a separate command.  You can right click and choose &#8220;Move Group&#8221; or Command (Ctrl on Windows)-Right Click.</li>
<li>When you are moving a part, right-clicking rotates it.</li>
<li>If you want to put a part on the bottom of your board instead of the top, just middle-click while moving it (or use the Mirror tool).</li>
<li>When adding parts, if you want to search for something, put asterisks around it, like &#8216;*battery*&#8217;, or else you probably won&#8217;t find anything.</li>
<li>Use <a href="http://www.sparkfun.com/tutorial/BeginningEmbedded/9-EaglePCBs/sfe-gerb274x.cam">Sparkfun&#8217;s CAM job</a> to output all the files you need to get boards made.  When I go through <a href="http://4pcb.com">Advanced Circuits</a>, I need these files:</li>
<ul>
<li>.drd, .GBL, .GBO, .GBS, .GTL, .GTO, .GTP, .GTS</li>
</ul>
<li>If you only need 1 or 2 boards, Advanced Circuits offers a &#8220;Student Special&#8221; on Standard Spec boards for $33 each.  Just put &#8220;Student&#8221; in the comments box when you order.</li>
<li>Another great way to get a few boards to test is with <a href="http://www.4pcb.com/index.php?load=content&amp;page_id=132">Barebones</a> boards, which have no solder mask (the green coating) and no silkscreening.</li>
<ul>
<li>This has a slight danger of making it possible to accidentally bridge traces while soldering, but if you&#8217;re careful, it&#8217;s a good savings.</li>
<li>When you get the boards, use a green scrub pad (a soft scouring pad) to get the traces nice and shiny.</li>
<li>You can put text or graphics on a copper layer if you&#8217;ve got the room for it, which is a neat way of making up for the lack of silkscreening!</li>
</ul>
<li>I also found a great way to <a href="http://todbot.com/blog/2011/06/06/from-illustrator-to-eagle-vector-graphics-in-circuits/">use vector images on your circuit board</a>, which I used to put the Limina.Studio logo on my newest project.</li>
<li>Got any other tips or ideas?  Post a comment and I&#8217;ll add them!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/itp/physical-computing/from-eagle-to-printed-circuit-board%e2%80%94easy-tips/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wireless Projects over the Web: Digi Dia for Hackers Part 1</title>
		<link>http://log.liminastudio.com/itp/physical-computing/wireless-projects-over-the-web-digi-dia-for-hackers</link>
		<comments>http://log.liminastudio.com/itp/physical-computing/wireless-projects-over-the-web-digi-dia-for-hackers#comments</comments>
		<pubDate>Mon, 02 May 2011 21:18:20 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[ConnectPort]]></category>
		<category><![CDATA[Digi Dia]]></category>
		<category><![CDATA[xbee]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=836</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/physical-computing/wireless-projects-over-the-web-digi-dia-for-hackers' addthis:title='Wireless Projects over the Web: Digi Dia for Hackers Part 1 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Suppose you want to log data from a group of sensors, like temperatures around the house, or turn lights on and off remotely via a webpage, and you want to do this wirelessly.  You could use a WiFi shield for an Arduino, but they&#8217;re notoriously hard to set up and stay reliably connected. My preferred [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/physical-computing/wireless-projects-over-the-web-digi-dia-for-hackers' addthis:title='Wireless Projects over the Web: Digi Dia for Hackers Part 1 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><div>
<p><a href="http://log.liminastudio.com/wp-content/uploads/2011/05/Dia_Schematic.png"  rel="lightbox[roadtrip]"><img class="alignleft size-medium wp-image-871" title="Dia_Schematic" src="http://log.liminastudio.com/wp-content/uploads/2011/05/Dia_Schematic-275x300.png" alt="" width="275" height="300" /></a>Suppose you want to log data from a group of sensors, like temperatures around the house, or turn lights on and off remotely via a webpage, and you want to do this wirelessly.  You could use a WiFi shield for an Arduino, but they&#8217;re notoriously hard to set up and stay reliably connected.</p>
<p>My preferred way uses Digi XBee radio modules with the <a href="http://www.digi.com/products/wireless-routers-gateways/gateways/">ConnectPort gateway</a>, which connects a network of XBee modules with a LAN over ethernet.  So far, easy: build your microcontroller project that sends and receives data via an XBee ZigBee module (using &#8220;Series 2&#8243; hardware), and the ConnectPort is your mesh&#8217;s coordinator.</p>
<p>Then the question becomes how to send and receive the data from the coordinator.  If you had the coordinator plugged into a computer, you could write an interface however you liked.  Lucky for us, the ConnectPort is basically a tiny computer that runs Python!  So how do you access your project&#8217;s data via the ConnectPort over the web?<span id="more-836"></span>There are two overall approaches: transmit to another webserver, or use the ConnectPort as a webserver itself.  XBee fiend <a href="http://www.faludi.com/">Rob Faludi</a> and I developed a handy way to do the first approach, called the <a href="http://code.google.com/p/xig/">XBee Internet Gateway</a> (XIG), and Digi mastermind Jordan Husney vastly improved it.</p>
<p>XIG&#8217;s one ability is simple but hugely useful: it allows your Arduino to retreive a URL from the Internet.  Say you&#8217;re collecting temperatures from sensors via your microcontroller.  With XIG, you can post the values to a web script on a server somewhere by sending this string to the ConnectPort: &#8220;http://my.server.com/myscript.php?val1=6&amp;val2=10&amp;etc=etc&#8221;.  Your script can then optionally return some string for your Arduino to parse and use.</p>
<p>This is fast, easy, and effective!  Its only downside is that you need an external webserver to get the data moving.  For many of us, this is no problem, but wouldn&#8217;t it be nice to cut out the middleman?</p>
<p><a href="http://log.liminastudio.com/wp-content/uploads/2011/05/Screen-shot-2011-05-02-at-5.03.53-PM.png"  rel="lightbox[roadtrip]"><img class="alignleft size-medium wp-image-870" title="Screen shot 2011-05-02 at 5.03.53 PM" src="http://log.liminastudio.com/wp-content/uploads/2011/05/Screen-shot-2011-05-02-at-5.03.53-PM-300x92.png" alt="" width="300" height="92" /></a>Enter Digi&#8217;s <a href="http://www.digi.com/wiki/developer/index.php/IDigi_Dia_Wiki">Dia platform</a>.  Dia (Device Integration Application) is a Python program that runs on the ConnectPort that talks to your XBees and—the important part—runs its own web server so you can talk directly to the ConnectPort instead of using an external web server.</p>
<p>Now, Dia is a fairly new platform, and definitely designed for engineers more than hackers like ourselves.  So I did a deep dive into the platform recently and have brought the results to you!  Stay tuned for the next part!</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/itp/physical-computing/wireless-projects-over-the-web-digi-dia-for-hackers/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Easy programming for breadboard Arduinos</title>
		<link>http://log.liminastudio.com/itp/physical-computing/easy-programming-for-breadboard-arduinos</link>
		<comments>http://log.liminastudio.com/itp/physical-computing/easy-programming-for-breadboard-arduinos#comments</comments>
		<pubDate>Mon, 02 May 2011 17:55:57 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[arduino]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=838</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/physical-computing/easy-programming-for-breadboard-arduinos' addthis:title='Easy programming for breadboard Arduinos '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>If you&#8217;ve never made a breadboard Arduino, you really ought to try it (I have a quick tutorial)—you&#8217;ll suddenly discover that you rarely need an actual (and expensive) Arduino anymore.  The Arduino is built around the Atmel ATmega microprocessor, which you can buy from various places for roughly only $4-5! However, there are a few [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/physical-computing/easy-programming-for-breadboard-arduinos' addthis:title='Easy programming for breadboard Arduinos '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p><a href="http://log.liminastudio.com/wp-content/uploads/2011/05/IMG_0728.jpg"  rel="lightbox[roadtrip]"><img class="alignleft size-medium wp-image-850" title="Breadboard Arduino + Programming Board" src="http://log.liminastudio.com/wp-content/uploads/2011/05/IMG_0728-300x224.jpg" alt="" width="300" height="224" /></a>If you&#8217;ve never made a breadboard Arduino, you really ought to try it (<a href="http://log.liminastudio.com/itp/physical-computing/breadboard-arduino-fast-cheap-and-fun">I have a quick tutorial</a>)—you&#8217;ll suddenly discover that you rarely need an actual (and expensive) Arduino anymore.  The Arduino is built around the Atmel ATmega microprocessor, which you can buy from various places for roughly only $4-5!</p>
<p>However, there are a few things about it that aren&#8217;t obvious at first, such as how to connect it to your computer via USB and make it programmable.<br />
<span id="more-838"></span> First off, be sure that your ATmega chip has the Arduino bootloader on it.  If you bought it from a major supplier such as Mouser or Digi-Key, it does not have the bootloader.  Sparkfun (among others) sells them with bootloaders.</p>
<p><a href="http://log.liminastudio.com/wp-content/uploads/2011/05/IMG_0720.jpg"  rel="lightbox[roadtrip]"><img class="alignleft size-medium wp-image-855" title="Programming Header" src="http://log.liminastudio.com/wp-content/uploads/2011/05/IMG_0720-300x224.jpg" alt="" width="300" height="224" /></a>Second, you&#8217;ll need an <a href="http://www.sparkfun.com/products/9873">FTDI USB breakout board</a>.  This connects to the TX and RX serial pins on the microprocessor and supplies a USB interface and firmware that your computer can recognize and use.  You&#8217;ll need the FTDI drivers for your system, which come with the Arduino software.</p>
<p>Third: the real work.  You need to connect some pins from the USB board to your breadboard:</p>
<ul>
<li>GND</li>
<li>TX</li>
<li>RX</li>
<li>DTR</li>
<li>Optional: 5V (if your breakout board supplies it)</li>
</ul>
<p>As you can see in the photo, I soldered up a handy little header so I can plug it right into a breadboard.  The serial pins are connected like so: TX→RX, RX→TX.  DTR is connected to a .1µF capacitor that goes to the RESET pin on the ATmega (pin 1).  That pin must also be connected to +5V via a 10kΩ resistor.</p>
<p>The DTR pin is the secret sauce: it pulls the reset pin down, which the Arduino bootloader requires to be programmed.  If you didn&#8217;t have this, you&#8217;d have to reset it by hand.  This way, it&#8217;s completely automatic, just like a regular Arduino board.</p>
<p>Let me know if this works for you!  Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/itp/physical-computing/easy-programming-for-breadboard-arduinos/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Breadboard Arduino: Fast, Cheap and Fun</title>
		<link>http://log.liminastudio.com/itp/physical-computing/breadboard-arduino-fast-cheap-and-fun</link>
		<comments>http://log.liminastudio.com/itp/physical-computing/breadboard-arduino-fast-cheap-and-fun#comments</comments>
		<pubDate>Mon, 02 May 2011 17:34:15 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[arduino]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=849</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/physical-computing/breadboard-arduino-fast-cheap-and-fun' addthis:title='Breadboard Arduino: Fast, Cheap and Fun '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>If you&#8217;ve been enjoying making stuff with the Arduino, but don&#8217;t want to buy more Arduino boards just to make a new project, fear not—you don&#8217;t need them! The Arduino board is just a convenient wrapper around the ATmega microprocessor, and it&#8217;s easy to recreate on a breadboard.  Here&#8217;s what you&#8217;ll need: ATmega328 (with Arduino [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/physical-computing/breadboard-arduino-fast-cheap-and-fun' addthis:title='Breadboard Arduino: Fast, Cheap and Fun '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>If you&#8217;ve been enjoying making stuff with the Arduino, but don&#8217;t want to buy more Arduino boards just to make a new project, fear not—you don&#8217;t need them!</p>
<p><a href="http://log.liminastudio.com/wp-content/uploads/2011/05/IMG_0731.jpg"  rel="lightbox[roadtrip]"><img class="alignleft size-medium wp-image-851" title="Breadboard Arduino" src="http://log.liminastudio.com/wp-content/uploads/2011/05/IMG_0731-224x300.jpg" alt="" width="224" height="300" /></a>The Arduino board is just a convenient wrapper around the ATmega microprocessor, and it&#8217;s easy to recreate on a breadboard.  Here&#8217;s what you&#8217;ll need:<br />
<span id="more-849"></span></p>
<ul>
<li><a href="http://www.sparkfun.com/products/10524">ATmega328</a> (with Arduino bootloader)</li>
<li><a href="http://www.sparkfun.com/products/107">5V regulator</a> (i.e. L7805)</li>
<li><a href="http://www.sparkfun.com/products/8375">.1µF capacitor</a> (the little yellowish disc kind that says &#8220;104&#8243; on it)</li>
<li><a href="http://www.sparkfun.com/products/9420">16mhz resonator</a></li>
<li>10kΩ resistor</li>
<li>&gt;5V power supply (can be any power supply you have, such as wall-warts, since we&#8217;re using our own regulator)</li>
<li>Optional: <a href="http://www.sparkfun.com/products/9716">FTDI USB breakout board</a> (for programming from a computer)</li>
</ul>
<p>The bootloader is what makes the microprocessor easy to program with the Arduino environment.  You can also buy ATmegas <a href="http://www.sparkfun.com/products/9061">without the bootloader</a> for about a dollar cheaper, but they must have the bootloader manually loaded on to use Arduino.</p>
<p><a href="http://log.liminastudio.com/wp-content/uploads/2011/05/IMG_0728.jpg"  rel="lightbox[roadtrip]"><img class="alignleft size-medium wp-image-850" title="Breadboard Arduino + Programming Board" src="http://log.liminastudio.com/wp-content/uploads/2011/05/IMG_0728-300x224.jpg" alt="" width="300" height="224" /></a>The resonator is a handy package that combines a crystal, which is where the microprocessor gets its clock signal from, and two capacitors, so all you have to do is plug it into the ATmega.</p>
<p>If you have an ATmega that&#8217;s already loaded with your program, you can just build this board as-is without the capacitor and leave pin 1 (RESET) connected to +5V via the 10k &#8220;pull-up&#8221; resistor.  You can even program a chip on an Arduino, remove it and plug it into your breadboard setup.</p>
<p>The one part remaining that I haven&#8217;t mentioned is the programming header I made, on the top right of the top photo (fully visible in the second photo).  This connects to the FTDI USB board I describe in my <a href="http://log.liminastudio.com/uncategorized/easy-programming-for-breadboard-arduinos">easy breadboard Arduino programming tutorial</a>.  The pins are, from top to bottom: Ground (Black), RX (White), TX (Green), DTR (Yellow).</p>
<p>Lastly, though not pictured here, it is good practice to use decoupling capacitors on your power supply to protect your microcontroller from any irregularities, as described in <a href="http://www.sparkfun.com/tutorials/57">this tutorial</a> (a few pages down).</p>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/itp/physical-computing/breadboard-arduino-fast-cheap-and-fun/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Art &amp; Signs</title>
		<link>http://log.liminastudio.com/writing/essays/art-signs</link>
		<comments>http://log.liminastudio.com/writing/essays/art-signs#comments</comments>
		<pubDate>Mon, 10 Jan 2011 18:45:15 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[Essays]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[semiotics]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=775</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/writing/essays/art-signs' addthis:title='Art &#38; Signs '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Following is a paper from 2008 entitled &#8220;Art &#38; Signs,&#8221; exploring the relationship between semiotics, semiosis and the interpretation of art. ART &#38; SIGNS Ted Hayes As abstractions go, the word and idea “art” could easily weigh in as one of the most widely varied, variously interpreted, hotly debated and bitterly fought-over designations in common [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/writing/essays/art-signs' addthis:title='Art &amp; Signs '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p style="text-align: left;"><a href="http://log.liminastudio.com/wp-content/uploads/2011/01/Screen-shot-2011-01-10-at-1.42.31-PM.png"  rel="lightbox[roadtrip]"><img class="alignleft size-full wp-image-777" title="Screen shot 2011-01-10 at 1.42.31 PM" src="http://log.liminastudio.com/wp-content/uploads/2011/01/Screen-shot-2011-01-10-at-1.42.31-PM.png" alt="" width="214" height="162" /></a>Following is a paper from 2008 entitled &#8220;Art &amp; Signs,&#8221; exploring the relationship between semiotics, semiosis and the interpretation of art.</p>
<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px 'Adobe Jenson Pro'} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px 'Gill Sans'; color: #5d5d5d} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Adobe Caslon Pro'; min-height: 14.0px} p.p4 {margin: 0.0px 0.0px 0.0px 36.0px; font: 12.0px 'Adobe Caslon Pro'} p.p5 {margin: 0.0px 0.0px 0.0px 36.0px; font: 12.0px 'Adobe Caslon Pro'; min-height: 14.0px} p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px} p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 9.0px 'Adobe Jenson Pro'} span.s1 {letter-spacing: 0.0px} span.Apple-tab-span {white-space:pre} table.t1 {background-color: #ffffff; border-collapse: collapse} td.td1 {width: 189.2px; height: 89.0px; padding: 5.0px 5.0px 5.0px 5.0px} td.td2 {width: 214.8px; height: 89.0px; padding: 5.0px 5.0px 5.0px 5.0px} td.td3 {width: 189.2px; height: 9.0px; padding: 5.0px 5.0px 5.0px 5.0px} td.td4 {width: 214.8px; height: 9.0px; padding: 5.0px 5.0px 5.0px 5.0px} --></p>
<p style="text-align: left;"><strong>ART &amp; SIGNS</strong></p>
<p style="text-align: left;"><strong>Ted Hayes</strong></p>
<p style="text-align: left;">As abstractions go, the word and idea “art” could easily weigh in as one of the most widely varied, variously interpreted, hotly debated and bitterly fought-over designations in common use.  It is a pattern that, like many abstractions, can be wielded naturally and intuitively and yet utterly defy explanation or description.</p>
<p style="text-align: left;"><span id="more-775"></span></p>
<p style="text-align: left;">All languages feature these kinds of words—signs that refer to some kind of an idea, as opposed to this or that object, or a particular manifestation of something.  But they are only features toward one end of a continuum of signs, those whose signifieds are themselves vast networks of other signs.  The words that don’t ordinarily inspire much debate—hammer, rock, glass—are still highly interpretable, but have comparatively narrow definitions; networks that are comprised of a smaller number of signifieds.</p>
<p style="text-align: left;">Understood in terms of patterns, the semantic war zone that is a word like “art” can be elucidated more clearly and scientifically than aesthetic philosophy has traditionally offered.  Indeed, much is made of it by each of us, every day, without us having to even consciously consider the term or its implications, thanks to our uniquely developed neural equipage.</p>
<p style="text-align: left;">The human brain is an astonishingly efficient pattern-recognition machine.  Even small, simple neural networks easily learn to pick out potentially complex patterns from noisy data, and I believe art to be one of the noisiest datasets that is even remotely definable.  There are almost endless examples to consider and weigh, and despite the equally varied definitions and opinions on the subject, there still seems to be a base level of consensus that allows us nevertheless to communicate about it.</p>
<p style="text-align: left;">I contend that there is a fundamental “pleasure” feedback to successful pattern recognition and completion that contributes to an artwork’s ability to generate interest and aesthetic responses.  These responses are not evaluative, but rather pave the way for evaluation as a secondary effort; they are an initial “gut reaction” that may be indistinct or inexplicable.</p>
<p style="text-align: left;"><strong><em> </em></strong></p>
<p style="text-align: left;">
<p style="text-align: left;"><strong><em>1. Semiotics, Convention &amp; Society</em></strong></p>
<p style="text-align: left;">The idea of “abstraction” often confounds linguist and the layperson alike.  When confronted with the task of defining “justice,” for instance, one must prepare for an elaborate and likely difficult philosophical digression, and for good reason: the word signifies a vast array of detailed signifieds, each of which must be understood on their own, entailing a long chain of requisite knowledge.  Consider a common and abstract word such as “beauty.”</p>
<p style="text-align: left;">Like all linguistic signs, the word “beauty” signifies only by learned convention: as a child develops, he or she will encounter the word now and then in different contexts and from different people.  “You look beautiful,” a mother exclaims, connoting goodness and pleasure.</p>
<p style="text-align: left;">“Isn’t it beautiful?” asks a friend, referring to an item of clothing perhaps, or an image, and such a rhetorical question actually implies or states that the interrogator believes that the item in question is, in fact, beautiful.  The word is also learned by learning what it is <em>not.</em> A child’s peer could be heard to remark on the ugliness of some other poor child; that the subject in question is “not beautiful.”  Flowers and the actresses on TV are beautiful; toads and story villains are not.</p>
<p style="text-align: left;">The minute properties and characteristics that each usage of the sign collects build up to what is taken to be the <em>meaning</em> of the sign.  At any given time, the meaning of a particular sign is the network of references and properties accrued by that individual’s entire lifetime of experience.</p>
<p style="text-align: left;">None of the above examples are endemic to the written or spoken sign “beauty”—it is a process common to all signs.  This framework of a sign’s structure was first advanced by the linguist Ferdinand de Saussure, who proposed that a sign consist of a <em>signifier</em> and a <em>signified,</em> and that the signifier is inherently arbitrary.  The philosopher Charles Peirce developed similar systems; but both offer useful approaches to and models of human language and its sociocultural implications.  The following proposals are my own, but borrow from both semiologists.</p>
<table style="text-align: left;" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="middle">﻿<a href="http://log.liminastudio.com/wp-content/uploads/2011/01/Screen-shot-2011-01-10-at-1.42.24-PM.png"  rel="lightbox[roadtrip]"><img class="alignleft size-full wp-image-776" title="Screen shot 2011-01-10 at 1.42.24 PM" src="http://log.liminastudio.com/wp-content/uploads/2011/01/Screen-shot-2011-01-10-at-1.42.24-PM.png" alt="" width="154" height="60" /></a></td>
<td valign="top"><a href="http://log.liminastudio.com/wp-content/uploads/2011/01/Screen-shot-2011-01-10-at-1.42.31-PM.png"  rel="lightbox[roadtrip]"><img class="alignleft size-full wp-image-777" title="Screen shot 2011-01-10 at 1.42.31 PM" src="http://log.liminastudio.com/wp-content/uploads/2011/01/Screen-shot-2011-01-10-at-1.42.31-PM.png" alt="" width="214" height="162" /></a></td>
</tr>
<tr>
<td valign="top"><em> “Concrete” sign</em></td>
<td valign="top"><em>“Abstract” sign</em></td>
</tr>
</tbody>
</table>
<p style="text-align: left;"><em>Concrete</em> or “simple” signs are those whose signifiers refer to a small number of signifieds.  Iconic and indexical signs, to use Charles Peirce’s semiotic taxonomy, are more fundamentally concrete than symbolic signs, which by definition have arbitrary signifiers.</p>
<p>An icon is a sign in which “the signifier is perceived as resembling or imitating the signified.” (Chandler, 2002)  Icons include portraits, cartoons, scale-models, et cetera.  An index, in contrast, is “directly connected in some way (physically or causally) to the signified” and is not arbitrary.  The index is a link that can be inferred, such as smoke that implies fire, tastes that imply certain foods, signals and pointers, et cetera.</p>
<p>The most common linguistic sign is symbolic in nature—its signifier is completely arbitrary and bears no causal link to its signified.  This most fundamental aspect of the symbol’s nature directly results in a profoundly important characteristic of linguistic signs: that their meanings are understood only by convention, an emergent process in which the language use of a number of individuals coalesce into a broader pattern that allows that language to effectively communicate ideas.  We will return to the importance and implications of convention later.</p>
<p>Any sign consists of a signifier that in some way, whether learned or observed causally, indicates a signifier, which can be another sign.  A representationally accurate signifier such as a drawing or photograph indicates fewer and more specific signs than a “vague” signifier, and thus the more concrete we perceive it to be.  A depiction of a chair signifies a commonly understood and observed object, whereas visual patterns within clouds are highly interpretable (<em>abstract</em>).  A photograph of a chair signifies even more directly, as it is both a representation of a chair and an indexical trace of an actual, real chair that existed at one time in a particular configuation.  Symbolic signifieds referred to by a given sign’s semantic network, however, are learned and therefore not intrinsic to the sign.  Strictly speaking, even the processes of recognition called on with iconic and indexical signs must be learned at one time by the basic neural systems of the developing brain.</p>
<p>Though an image of a pipe, for instance, can be seen as “representing” smoke or smoking, or Magritte’s un-pipe as representing Magritte, art, or sarcasm, all of these are learned relationships that cannot be counted on to have a guaranteed consensus among their viewers/readers.</p>
<p>Abstraction is the result of a large semantic topology, where any individual sign in the network is itself a network that refers to dozens, hundreds, or even thousands more signs.  Each sign in the network can be seen as a <em>property</em> of the signifier it is recalled by.  All symbolism and metaphor is essentially the comparison of properties between a signifier and a signified: “lamb” as symbol may come to be understood as representing gentleness, innocence and purity because the animal is incapable of conscious violence in the human sense.  An image of a green, leafy tree might be used to symbolize growth, abundance and prosperity, and yet a desert culture would not even recognize the signifier much less interpret it in that way.</p>
<p>The inherent challenge in the analysis of an abstract sign is that the more potential signifiers in the network, the less consensus there is likely to be about the sign as a whole, but it is this very indefinition that gives rise to the vast multiplicity of <em>readings</em> that artwork is consciously or subconsciously valued for.  The more potential signification it offers, the more a reader has to contemplate, and the more patterns that can be completed, the greater the reward.</p>
<p>To further elucidate this thesis, I propose some useful terminology of my own.</p>
<p><strong><em>2. Data, Metadata &amp; Value</em></strong></p>
<p>In the interest of understanding the contemplation of an artwork and the reactions it may or may not give rise to, we must first consider what is knowable about the artwork: an “aesthetic epistemology.”</p>
<p>An artwork’s <em>data</em> or <em>dataset</em> consists of the perceivable artwork as presented.  The dataset is the totality of its delimited presentation: all distinguishable signs within a contextually or consensually determined boundary of the artwork.</p>
<p>An artwork’s <em>metadata</em> consists of all other knowledge immediately related to the artwork, i.e., artist statements and biographical information, all of which are subject to questioning or interpretation themselves.</p>
<p>The <em>value</em> of an artwork is constructed by a given viewer or <em>reader</em> as she perceives and contemplates (<em>reads</em>) the data that the artwork presents, merges it with any metadata the reader may be aware of, and forms an internal representation of the work.  This phenomenological assembly is a two-fold process of pattern-recognition and pattern-formation.  Signs within and without the artwork activate the neural traversal of the networks they signify, and the consolidation of new pattern observations modify existing networks to form new ones.</p>
<p>Like many activities, the physiological gratification of pattern-recognition, pattern-matching and pattern-completion is what lends the contemplation of the artwork its pleasure.  Artworks with a rich dataset and dense network of interrelationships with other signs—whether internal or external to the work itself—will therefore give the reader “more to go on,” and produce a greater potential for pleasure.</p>
<p>It is not at all uncommon for a reader to describe a “resonance” or “identification” with an artwork or its features.  This is one of the clearest examples of pattern-recognition at work, and one of the best cases to support the pattern-pleasure hypothesis.  In this process, observed patterns within the artwork combine with and complete existing patterns known to the reader, forming a denser network than an “inaccessible” or “difficult” artwork.</p>
<p>The latter provides so little knowable, perceivable data that neural provocation never occurs, or doesn’t progress far enough to mesh with any other networks.  This poverty of information can be a primary factor in an artwork’s evaluation, and is likely to produce an ambiguous or lukewarm reaction such as “I neither liked it nor disliked it; it just didn’t do anything for me.”</p>
<p>Evaluation is a secondary process that draws on the interaction of the reader’s experience (their lifetime of neural patterns) with the artwork’s composition of data, metadata and any symbolic resonance therein.  The judgement of a work of art—whether it is <em>good</em> or <em>bad</em>—presupposes the existence of an external (“objective”) standard of judgement that is actually determined by convention and consensus.<br />
<strong><em>3. Composition, Coherence &amp; Complexity</em></strong></p>
<p><em> </em></p>
<p>The <em>composition</em> of an artwork is the structure of its data and the relationships of its features, whether visual-spatial, temporal, or otherwise.  The organization of features of a painting or placement of objects in an installation constitutes its composition.  Like systems of symbols, the compositional relationships of a piece form their own internal sign-networks.</p>
<p>What I have described is a framework for further study.  I believe we are at a point where empirical, scientific inquiry and new methods of neural study and observation can begin to answer questions that were heretofore solely within the domain of philosophy.</p>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/writing/essays/art-signs/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Shoe in Block</title>
		<link>http://log.liminastudio.com/itp/shoe-in-block</link>
		<comments>http://log.liminastudio.com/itp/shoe-in-block#comments</comments>
		<pubDate>Mon, 10 Jan 2011 18:20:21 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[Sculpture]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=756</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/shoe-in-block' addthis:title='Shoe in Block '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Shoe in Block is a sculpture collaboration between Taylor Levy and Ted Hayes that embedded a pair of sneakers in a pair of cast concrete blocks.  Following is the original commentary.  See bottom of post for the whole gallery.  Click here for the commentary in PDF form. . . . SHOE IN BLOCK The Superimposition [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/shoe-in-block' addthis:title='Shoe in Block '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p><a href="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC00026.jpg"  rel="lightbox[roadtrip]"><img class="alignleft size-medium wp-image-762" title="DSC00026" src="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC00026-300x225.jpg" alt="" width="300" height="225" /></a>Shoe in Block is a sculpture collaboration between Taylor Levy and Ted Hayes that embedded a pair of sneakers in a pair of cast concrete blocks.  Following is the original commentary.  See bottom of post for the whole gallery.  <a href="http://log.liminastudio.com/wp-content/uploads/2011/01/Shoe-in-Block-Commentary.pdf">Click here</a> for the commentary in PDF form.<br />
.<br />
.<br />
.<br />
<span id="more-756"></span><br />
<strong>SHOE IN BLOCK<br />
</strong><strong>The Superimposition of the Ordinary</strong></p>
<p>Commentary<br />
Taylor Levy  |  Ted Hayes</p>
<p>“Shoe in Block” I &amp; II are sculptural objects that render ordinary, highly functional objects useless by superimposing them into the same material space.  An individual shoe is fused into the physical space of a custom-molded concrete masonry unit, creating a new unusable object that still retains the former signs of the shoe and the block.  The remaining signs thus become conflicting, as the observer cannot immediately reconcile the presence of the two recognizable signs, transposed as they are into one unrecognizable object.</p>
<p>This process of signification is disjointed: it forces the viewer to a halt, because the object as a whole has no immediate relation to a particular signified, in effect, the object has a “stalled meaning.”  Abstract sculpture tends to be comprised of subtle forms that give vague suggestions of potential signs, and the signification of the piece for the viewer takes place only over the course of discovering or experimenting with the possibilities of those signs in relation to each other.  In the case of “Shoe in Block,” the component signs are familiar, explicit and obvious, and it is the juxtaposition of the signs that produce new questions and novel readings.</p>
<p><a href="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC00015.jpg"  rel="lightbox[roadtrip]"><img class="alignleft size-medium wp-image-760" title="DSC00015" src="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC00015-300x225.jpg" alt="" width="300" height="225" /></a>A fundamental principle of semiotics is that the sign itself is arbitrary, and is only understandable as part of a continuum of differing signs.  The difference is critical to the existence of the sign.  “Shoe in Block” enables the viewer to understand each component by realizing that their normal functions are now obviated; that their normalcy itself is attacked.  Sneakers are, today, designed for two purposes: facilitation of movement and vehicles of branding.  As embodied in the sculptures, the shoes are still wearable, but the wearer cannot walk or run in them, and their commodity value is lost to the owner if they cannot be worn and seen.  Surrounded by and encased in concrete, the sneaker is understood by what it is not: a building material, an ad-hoc step or seat, a sign of compressive strength and material solidarity.  Likewise, the Concrete Masonry Unit (CMU), as it is known to builders or architects, is not a sign of fashion value, fleetness, or comfort.</p>
<p>The sculptures are combined inverses that retain only some of their constituent parts’ original properties.  Concrete blocks are heavy and deliberately designed to be unmovable in their final installation; sneakers gained their popularity and enormous market share via their association with basketball and other sports in which speed and agility is extremely valuable.  Combined, the shoe can still be worn and even walked in, granted a strong and patient subject, at a significantly reduced speed.  Similarly, the concrete block can still serve its ordinary compressive function, but not with normal geometric simplicity; these blocks cannot be lined up next to each other to form a gapless wall.</p>
<p>Both the sneaker and the concrete block are the result of elaborate and highly specialized factories that strive to create exactly identical products in mass numbers—yet the concrete block is subsumed in a field of sameness in their final function, joined with hundreds or thousands more and plastered and painted over, while the brightly-colored and eye-catching sneaker is expected to enhance the individuality of its wearer in its final function, and differentiate itself from the hundreds of other styles of sneakers at large.  Both are mass-produced but have diametrically opposed identities and purposes in their intended installation.</p>
<p><a href="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC09997.jpg"  rel="lightbox[roadtrip]"><img class="alignleft size-medium wp-image-765" title="DSC09997" src="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC09997-300x225.jpg" alt="" width="300" height="225" /></a>Their materialities are also inverted: concrete blocks are made from a material that has been in use for thousands of years and is extremely cheap and easy to produce on large scales, yet is highly durable and long-lasting.  Modern sneakers are produced only with the advent of a wide array of comparatively expensive synthetic textiles that must be assembled in precise and complex patterns by armies of machines and laborers (the employment of which has itself been the subject of much human-rights controversy).</p>
<p>But none of these properties are readily signified by the shoe or block alone as objects of contemplation.  The placement of these signs together allows each to be seen, much as individual neurons in brain tissue are only visible with a contrasting agent that enables them to be identified and studied.  The hardness and immobility of the block allows the observer to identify the softness and swiftness of the running shoe, and vice versa.</p>
<p>The superimposition of inverses is only the most explicit among a range of formal signification that sculpture, and art in general, is capable of.  It is only through difference (and perhaps Derrida’s <em>différence</em>) that signs mean, and it is only when ordinary signs and objects are contextually displaced, as in the case of much modern and contemporary art, that they are ready to be reinterpreted as narratives, dialogues, statements, or simply as a beautiful objet d’art.  The act of interpretation falls on the viewer of the artwork, as does the first choice of whether to view it at all as an artwork.</p>
<p>Confounding this traditional recontextualization, we envision Shoe in Block to be installed in common public locales, such as the Lower East Side’s Allen Street median strip.  A potential viewer, whether pedestrian or passenger or loiterer, is caught unawares at the seeming impossibility of the superimposed objects.  This context introduces a third “ordinary” component into the piece—removed from the gallery, the question of the artwork’s nature looms larger, and the viewer is left without the careful cues that galleries offer: the title, the statement, the bare white walls.  Devoid of these contrasting agents, the  absurd materiality of the shoe-blocks must be considered in new ways.  Does the errant passerby attempt to wrench the valuable shoe(s) from the concrete block, thereby possibly destroying the object so desired?  Or are the sculptures immediately recognizable as such to an art-oriented Manhattanite, and enjoyed or dismissed with that in mind?</p>
<p>“Shoe in Block” I &amp; II lend themselves to a wide variety of readings because of the richness of their component signs.  The sneaker and the CMU come loaded with the viewer’s entire history of associations, their memories and desires and objections, and the strange combination thereof allows these entire semantic networks to collide and be bridged with new narratives and ideas.  The visceral pleasure of surprise, the stultifying wonder at their existence and question of their construction, and the longer process of association and contemplation contribute to the sculptures’ appeal as superimposed ordinariness.</p>

<a href='http://log.liminastudio.com/itp/shoe-in-block/attachment/dsc00005' title='DSC00005'><img width="150" height="150" src="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC00005-150x150.jpg" class="attachment-thumbnail" alt="DSC00005" title="DSC00005" /></a>
<a href='http://log.liminastudio.com/itp/shoe-in-block/attachment/dsc00006' title='DSC00006'><img width="150" height="150" src="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC00006-150x150.jpg" class="attachment-thumbnail" alt="DSC00006" title="DSC00006" /></a>
<a href='http://log.liminastudio.com/itp/shoe-in-block/attachment/dsc00008' title='DSC00008'><img width="150" height="150" src="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC00008-150x150.jpg" class="attachment-thumbnail" alt="DSC00008" title="DSC00008" /></a>
<a href='http://log.liminastudio.com/itp/shoe-in-block/attachment/dsc00015' title='DSC00015'><img width="150" height="150" src="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC00015-150x150.jpg" class="attachment-thumbnail" alt="DSC00015" title="DSC00015" /></a>
<a href='http://log.liminastudio.com/itp/shoe-in-block/attachment/dsc00024' title='DSC00024'><img width="150" height="150" src="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC00024-150x150.jpg" class="attachment-thumbnail" alt="DSC00024" title="DSC00024" /></a>
<a href='http://log.liminastudio.com/itp/shoe-in-block/attachment/dsc00026' title='DSC00026'><img width="150" height="150" src="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC00026-150x150.jpg" class="attachment-thumbnail" alt="DSC00026" title="DSC00026" /></a>
<a href='http://log.liminastudio.com/itp/shoe-in-block/attachment/dsc00036' title='DSC00036'><img width="150" height="150" src="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC00036-150x150.jpg" class="attachment-thumbnail" alt="DSC00036" title="DSC00036" /></a>
<a href='http://log.liminastudio.com/itp/shoe-in-block/attachment/dsc00046' title='DSC00046'><img width="150" height="150" src="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC00046-150x150.jpg" class="attachment-thumbnail" alt="DSC00046" title="DSC00046" /></a>
<a href='http://log.liminastudio.com/itp/shoe-in-block/attachment/dsc09997' title='DSC09997'><img width="150" height="150" src="http://log.liminastudio.com/wp-content/uploads/2011/01/DSC09997-150x150.jpg" class="attachment-thumbnail" alt="DSC09997" title="DSC09997" /></a>

]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/itp/shoe-in-block/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running Python on your OSX Apache server: mod_python</title>
		<link>http://log.liminastudio.com/programming/running-python-on-your-apache-server-mod_python</link>
		<comments>http://log.liminastudio.com/programming/running-python-on-your-apache-server-mod_python#comments</comments>
		<pubDate>Mon, 09 Aug 2010 02:51:05 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=674</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/programming/running-python-on-your-apache-server-mod_python' addthis:title='Running Python on your OSX Apache server: mod_python '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Want to interpret Python scripts in Apache on your OSX installation?  Look no further! After about 4 hours of repeated head-to-wall collisions, I finally managed to get mod_python running with Apache 2.2.14 on my Snow Leopard machine.  Here&#8217;s what I had to do: Use the MacPorts Apache instead of MAMP.  I absolutely could not get [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/programming/running-python-on-your-apache-server-mod_python' addthis:title='Running Python on your OSX Apache server: mod_python '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Want to interpret Python scripts in Apache on your OSX installation?  Look no further!</p>
<p>After about 4 hours of repeated head-to-wall collisions, I finally managed to get mod_python running with Apache 2.2.14 on my Snow Leopard machine.  Here&#8217;s what I had to do:</p>
<ol>
<li>Use the <a href="http://www.macports.org/">MacPorts</a> Apache instead of MAMP.  I absolutely could not get this to work for MAMP, which might be because MAMP uses version 2.062 of Apache.  All the following instructions are for MacPorts installs.  Once you install MacPorts, you can install Apache by doing
<pre>sudo port install apache</pre>
</li>
<li>Now you need mod_python, which is a module for Apache that allows the HTTP server to use the python interpreter &#8220;inside&#8221; the server.  With MacPorts, just do
<pre>sudo port install mod_python</pre>
<p>If for some reason this doesn&#8217;t work, I&#8217;ve <a href="http://log.liminastudio.com/wp-content/uploads/2010/08/mod_python-help.zip">packaged</a> it up along with the mod_python python package described next.  Put it in</p>
<pre>/opt/local/apache2/modules</pre>
</li>
<li>Make sure you have the mod_python Python package (yeah, it&#8217;s got the exact same name as the Apache module but is a completely different thing).  Get into your Python interpreter and try
<pre>import mod_python</pre>
<p>If it works, rejoice.  If not, I&#8217;ve <a href="http://log.liminastudio.com/wp-content/uploads/2010/08/mod_python-help.zip">included mine in a zip</a> because I could not for the life of me figure out where to get it from, but I had it in one of my other Python installs. It goes here:</p>
<pre>/Library/Python/2.6/site-packages</pre>
</li>
<li>Edit your httpd.conf file by adding the following:
<pre>LoadModule python_module modules/mod_python.so

SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On</pre>
<p>This first tells Apache to load the module, which is a shared object file (.so).  <em>Technical note for the curious:</em> A shared object is a binary that contains compiled functions that can be directly addressed in memory, so you can call functions in it given a header file.  It&#8217;s similar to a Windows .dll.</p>
<p>Anyway, the rest tells Apache to use mod_python&#8217;s VERY handy &#8220;publisher&#8221; function, <a href="http://www.modpython.org/live/current/doc-html/hand-pub.html">described here</a>.  This is a REALLY fast and easy way to start writing Python programs for the web.  Follow the examples there and you should be good to go!  Enjoy!</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/programming/running-python-on-your-apache-server-mod_python/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Photoshop to Flash: Best Practices</title>
		<link>http://log.liminastudio.com/programming/photoshop-to-flash-best-practices</link>
		<comments>http://log.liminastudio.com/programming/photoshop-to-flash-best-practices#comments</comments>
		<pubDate>Fri, 09 Jul 2010 21:22:39 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Photoshop]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=651</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/programming/photoshop-to-flash-best-practices' addthis:title='Photoshop to Flash: Best Practices '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Building out a Flash interface from a PSD can be a time consuming process, so to make things most efficient, here are some handy guidelines for preparing Photoshop files.  Designers may want to duplicate their PSD and save it as a new file specifically for Flash import if they want to keep extra hidden layers, [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/programming/photoshop-to-flash-best-practices' addthis:title='Photoshop to Flash: Best Practices '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Building out a Flash interface from a PSD can be a time consuming process, so to make things most efficient, here are some handy guidelines for preparing Photoshop files.  Designers may want to duplicate their PSD and save it as a new file specifically for Flash import if they want to keep extra hidden layers, etc..</p>
<ul>
<li>Turn off or delete all unused or irrelevant layers.</li>
<li>Merge all adjustment layers or masks into regular layers.  Masked layers or groups cannot be used!</li>
<li>Layer effects are OK!  However, if you turn one off and don&#8217;t plan on using it at all, make sure you remove the effect by dragging it onto the trash icon in the Layers palette.</li>
<li>Vector graphics are <em>always</em> preferred!  If you are using Illustrator to design any assets, please provide the Illustrator file too, as Flash cannot import Smart Vector Objects.</li>
<li>Vector graphics are especially preferred for layers intended to be animated.  Imported bitmaps will often look shoddy and low-resolution when moving around and rotating.</li>
<li>If an Illustrator file can&#8217;t be provided, rasterize any Smart Vector Objects or other non-standard layers.</li>
<li>Keep groups and layers orderly and named accurately whenever possible <img src='http://log.liminastudio.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/programming/photoshop-to-flash-best-practices/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

