<?xml version="1.0" encoding="iso-8859-1"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
  <title>Projects</title>
  <link rel="alternate" type="text/html" href="http://www.kevincooney.com/projects/" />
  <modified>2006-03-07T21:19:11Z</modified>
  <tagline></tagline>
  <id>tag:www.kevincooney.com,2007:/projects//3</id>
  <generator url="http://www.movabletype.org/" version="2.661">Movable Type</generator>
  <copyright>Copyright (c) 2006, Kevin</copyright>
  <entry>
    <title>Picture Pages, Picture Pages - Part 2</title>
    <link rel="alternate" type="text/html" href="http://www.kevincooney.com/projects/archives/000130.php" />
    <modified>2006-03-07T21:19:11Z</modified>
    <issued>2006-03-07T16:19:11-05:00</issued>
    <id>tag:www.kevincooney.com,2006:/projects//3.130</id>
    <created>2006-03-07T21:19:11Z</created>
    <summary type="text/plain">The digital picture frame system I set up on the Audrey has been working great for about a year now. But recently on one of the Audrey websites I frequent, someone suggested using the Audrey to display Flickr photos. I...</summary>
    <author>
      <name>Kevin</name>
      <url>http://www.kevincooney.com</url>
      <email>kevin@kevincooney.com</email>
    </author>
    <dc:subject>Audrey</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.kevincooney.com/projects/">
      <![CDATA[<p><img src='/images/blog/projects/audrey/amer_gothic.jpg' align='right'/>The <a href="/projects/archives/000129.php">digital picture frame system</a> I set up on the Audrey has been working great for about a year now.  But recently on one of the Audrey websites I frequent, someone suggested using the Audrey to display Flickr photos.  I thought that was a great idea, so I gave it a try.  Here's what I came up with:</p>

<p><a href="http://www.kevincooney.com/projects/audrey/flickr_control.php">http://www.kevincooney.com/projects/audrey/flickr_control.php</a></p>

<p>Basically, just type in a tag to search for (e.g. <a href="http://www.kevincooney.com/projects/audrey/flickr.php?tags=artwork">artwork</a>, <a href="http://www.kevincooney.com/projects/audrey/flickr.php?tags=bw">bw</a>, <a href="http://www.kevincooney.com/projects/audrey/flickr.php?tags=green">green</a>), and you'll get a slideshow of photos that fit that tag.  Now, they're not always the best photos -- since they're submitted by the general public -- but it's nice for a change of pace when I've seen enough of my own pictures.</p>]]>
      
    </content>
  </entry>
  <entry>
    <title>Picture Pages, Picture Pages</title>
    <link rel="alternate" type="text/html" href="http://www.kevincooney.com/projects/archives/000129.php" />
    <modified>2006-03-07T21:04:04Z</modified>
    <issued>2006-03-07T16:04:04-05:00</issued>
    <id>tag:www.kevincooney.com,2006:/projects//3.129</id>
    <created>2006-03-07T21:04:04Z</created>
    <summary type="text/plain">Once I got the Audrey up and running, one of the first projects I attempted was a digital picture frame. Since the Audrey is pretty small, is in plain view in the kitchen, and is pretty much always on, I...</summary>
    <author>
      <name>Kevin</name>
      <url>http://www.kevincooney.com</url>
      <email>kevin@kevincooney.com</email>
    </author>
    <dc:subject>Audrey</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.kevincooney.com/projects/">
      <![CDATA[<p><img src='/images/blog/projects/audrey/amer_gothic.jpg' align='right'/>Once I got the Audrey up and running, one of the first projects I attempted was a digital picture frame.  Since the Audrey is pretty small, is in plain view in the kitchen, and is pretty much always on, I figured it would be perfect for such an application.</p>]]>
      <![CDATA[<p>Turns out there are a couple ways to do this, all of which are pretty complicated.  But seeing as how the Audrey has a great full-screen web browser, and I'm a web guy more than a Unix guy, I decided to just have Audrey display the photos as a web-page.</p>

<p>To do so, I set up an Apache webserver on my computer that has all the photos on it.  Then I wrote a script (in PHP), which will pick a photo at random, resize it to fit on Audrey's screen, and then serve it on the page.  Then I set up an Audrey channel to point to the URL of this PHP script.</p>

<p>This worked great, but it was pretty slow, since I have a lot of photos, so picking one takes a while.  Also, resizing the photo takes a second or two.  So I made two improvements to the script to improve the speed.  First, I switched the order of operations:  Now, I show a photo, and then pick a photo at random and resize it to be served the <i>next</i> time the script is called.  This way, the parts of the script that are time-intensive are run after a photo has already been shown.  Second, I decided to cache the list of photos on my computer, so that the script doesn't have to re-read all the photos on my computer on each load.  I save the cache to a file, and the next time the script loads, it reads from the cache file.  If the cache file is more than a day old, I build a new cache file, to make sure I have the most recent photos.</p>

<p>If you're interested, here's the final code for it:<br />
<a href="http://www.kevincooney.com/projects/audrey/picframe.txt">Main PHP script</a><br />
<a href="http://www.kevincooney.com/projects/audrey/resize.txt">Library to resize image</a></p>]]>
    </content>
  </entry>
  <entry>
    <title>Audrey Gets a Barcode Scanner</title>
    <link rel="alternate" type="text/html" href="http://www.kevincooney.com/projects/archives/000128.php" />
    <modified>2006-03-06T16:51:16Z</modified>
    <issued>2006-03-06T11:51:16-05:00</issued>
    <id>tag:www.kevincooney.com,2006:/projects//3.128</id>
    <created>2006-03-06T16:51:16Z</created>
    <summary type="text/plain"> I&apos;ve been working on a kitchen recipe/inventory/shopping-list application off-and-on for about a year now, with the idea of using an Audrey as the hardware. To really make this thing useful, I wanted a UPC barcode reader, so I can...</summary>
    <author>
      <name>Kevin</name>
      <url>http://www.kevincooney.com</url>
      <email>kevin@kevincooney.com</email>
    </author>
    <dc:subject>Audrey</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.kevincooney.com/projects/">
      <![CDATA[<p><img src='/images/blog/audrey.jpg' hspace='4' align='right' alt='Audrey'><br />
I've been working on a kitchen recipe/inventory/shopping-list application off-and-on for about a year now, with the idea of using an Audrey as the hardware.  To really make this thing useful, I wanted a UPC barcode reader, so I can register when I purchase or discard grocery items.  </p>

<p>I bought a CueCat scanner for about $8 on eBay, and thought I had a winner, since it's a USB device.  </p>

<p><img src='/images/blog/projects/audrey/cuecat.jpg' hspace='4' alt='CueCat Barcode scanner'></p>

<p>I plugged it into the Audrey, but it didn't work.  Turns out the Audrey wasn't intended to support generic USB devices.  I was bummin'.  The project went on the back-burner.</p>

<p>About a month ago, I had some time on my hands, so I dusted off the ol' Audrey, and tried again.  This time, though, I overwrote Audrey's operating system with one that <a href="http://www.prins.net/audrey/">supports USB devices</a>.  I plugged in the scanner again, but still no luck.</p>

<p>After some fooling around, I found that I needed to tell the Audrey to look for the scanner as a USB mouse (for anyone trying this, use the "wm popup" menu" by hitting Paste+Enter).  Viola!  The CueCat now reads barcodes like a charm.</p>

<p>So now I'm back to writing my kitchen inventory application.  I originally wanted to call it "Chefmate", but apparently someone beat me to it.  So Amy suggested "Kitch 'n' Bitch" (she doesn't like the Audrey, apparently).  I love it.</p>

<p>I'll post more progress here.</p>]]>
      
    </content>
  </entry>
  <entry>
    <title>gArchive</title>
    <link rel="alternate" type="text/html" href="http://www.kevincooney.com/projects/archives/000127.php" />
    <modified>2006-03-06T16:44:14Z</modified>
    <issued>2006-03-06T11:44:14-05:00</issued>
    <id>tag:www.kevincooney.com,2006:/projects//3.127</id>
    <created>2006-03-06T16:44:14Z</created>
    <summary type="text/plain">After my web hosting company &quot;lost&quot; my website, I knew I should be smarter about backing up my files. In the &quot;offline&quot; world, this was relatively simple: I bought a second hard-drive for my PC, and now save weekly backups...</summary>
    <author>
      <name>Kevin</name>
      <url>http://www.kevincooney.com</url>
      <email>kevin@kevincooney.com</email>
    </author>
    <dc:subject>Website</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.kevincooney.com/projects/">
      <![CDATA[<p>After my web hosting company "lost" my website, I knew I should be smarter about backing up my files.  In the "offline" world, this was relatively simple:  I bought a second hard-drive for my PC, and now save weekly backups to it.</p>

<p>The online world, however, wasn't as simple.  I was able to set up a weekly cron to zip up all my files, but where would I put it once it's done?  I don't have any kind of publicly-accessible FTP server.  </p>

<p>My solution came via a PHP program called <a href="http://www.puremango.co.uk/cm_gdrive_109.php">gDrive</a>, which lets you use a gmail account (and it's 1GB+ of disk space) as storage.</p>

<p>So I wrote two scripts which tar, gzips, emails (via gDrive), and then deletes my archive once a week (<a href="/projects/site/backup.sh.txt">script 1</a>, <a href="/projects/site/export_backups.php.txt">script 2</a>).  Works great, and no more worries.</p>]]>
      
    </content>
  </entry>

</feed>