<?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>natasha&#039;s corner &#187; Projects</title>
	<atom:link href="http://www.natashascorner.com/categories/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.natashascorner.com</link>
	<description>thoughts on design, user experience, and other things that begin with letters</description>
	<lastBuildDate>Thu, 01 Dec 2011 19:56:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>How to make Outlook more like Gmail</title>
		<link>http://www.natashascorner.com/2011/12/01/how-to-make-outlook-more-like-gmail/</link>
		<comments>http://www.natashascorner.com/2011/12/01/how-to-make-outlook-more-like-gmail/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 19:52:40 +0000</pubDate>
		<dc:creator>Natasha Lloyd</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.natashascorner.com/?p=597</guid>
		<description><![CDATA[Ever since Microsoft improved the searching capabilities in Outlook, I have been using it more and more like Gmail (with its concepts of tags and archiving) rather than a traditional email client with folders. If you would like to reproduce the Gmail experience within Outlook, here is one way to do it. (Note: I use [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since Microsoft improved the searching capabilities in Outlook, I have been using it more and more like Gmail (with its concepts of tags and archiving) rather than a traditional email client with folders. If you would like to reproduce the Gmail experience within Outlook, here is one way to do it.</p>
<p>(Note: I use Outlook 2007 but this should work in later versions as well with hopefully minor modifications.)</p>
<h3>Create a top-level folder called &#8220;Archive&#8221;</h3>
<p><img src="http://www.natashascorner.com/wp-content/uploads/2011/12/archive_folder.png" alt="Archive folder" title="Archive folder" width="181" height="185" class="alignnone size-full wp-image-614" /></p>
<p>This folder will store all the emails you no longer want to have in your inbox but don&#8217;t want to delete. Having all the emails in one place makes it very easy to find a specific email by just about any criteria &#8211; sender, date, subject. When you search, Outlook will filter to show only the items that match your criteria right as you type, which makes locating emails very quick.</p>
<h3>Set up and use Categories instead of folders</h3>
<p>Using the &#8220;Categories&#8221; feature of Outlook has several advantages over using folders. For one, it lets you categorize emails without moving them from your inbox. If you use your inbox as a sort of to-do list, this can be very handy as it keeps you from jumping between folders to see what you need to do or respond to.</p>
<p>Another advantage is that you can apply more than one category to any given email. This is the biggest restriction in using folders because you can only file something away into one group. Sometimes, though, emails can be classified into two or more groups, which might require complex folder hierarchies that will make finding that email all that much more difficult. Categories remove this problem because you can assign as many categories as you want to an email.</p>
<p>Categories can also be color-coded, which enables a quick way for you to scan through a long list of emails and locate just the ones that you are interested in. The colors are also reflected in Calendar if you categorize your meeting requests.</p>
<p>If you don&#8217;t have a &#8220;Categories&#8221; column in your email view, you can add by right-clicking in the table header (where is shows the subject, sender, etc.) and selecting &#8220;Field Chooser&#8221;. In this dialog, locate &#8220;Categories&#8221; and drag it into your email list view where you want the categories to appear. I have them as the last column for easy scanning.</p>
<p>If you want to view all your emails for a given category, this can be easily accomplished by setting some view options in Outlook. You can sort by category, then choose the View > Arrange By > Show in Groups option.</p>
<h3>Add an &#8220;Archive&#8221; button to your toolbar</h3>
<p><img src="http://www.natashascorner.com/wp-content/uploads/2011/12/archive_button.png" alt="Archive button" title="Archive button" width="604" height="134" class="alignnone size-full wp-image-617" /></p>
<p>This is kind of an advanced bonus feature you can add to make archiving emails even easier. For this, you need to be somewhat comfortable using macros.</p>
<p>First, create a new macro called &#8220;Archive&#8221;. Use the following code and just substitute the name of your top-level folder (the one containing Inbox, Deleted Items, etc.):</p>
<pre>
Sub Archive()
On Error Resume Next
    Dim objFolder1 As Outlook.MAPIFolder, objFolder2 As Outlook.MAPIFolder
    Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem

    Set objNS = Application.GetNamespace("MAPI")
    Set objFolder1 = objNS.Folders("<SPAN STYLE="color: #ff0000">Name of your top-level folder</span>")
    Set objFolder2 = objFolder1.Folders("Archive")

    If objFolder2 Is Nothing Then
        MsgBox "This folder doesn't exist!", vbOKOnly + vbExclamation, "INVALID FOLDER"
    End If

    If Application.ActiveExplorer.Selection.Count = 0 Then
        'Require that this procedure be called only when a message is selected
        Exit Sub
    End If

    For Each objItem In Application.ActiveExplorer.Selection
        If objFolder.DefaultItemType = olMailItem Then
            If objItem.Class = olMail Then
                objItem.Move objFolder2
            End If
        End If
    Next
    Set objItem = Nothing
    Set objFolder1 = Nothing
    Set objFolder2 = Nothing
    Set objNS = Nothing
End Sub
</pre>
<p>(Note that I did not write this code myself. It&#8217;s based on sample code I found elsewhere and modified to suit my needs.)</p>
<p>Next, to add the button, go to View > Toolbars > Customize. In the Commands tab, select category &#8220;Macros&#8221;. This will show a list of all the macros you have defined. Click and drag your &#8220;Archive&#8221; macro to the toolbar of your choice (I put mine in the main toolbar, but you can also create a custom toolbar just for this button). </p>
<p>Once you have the button placed you can close the dialog and start using the button right away &#8211; just select an email in your inbox, click the button, and it should be moved to your Archive folder.</p>
<p>However, if you want to make it look a bit nicer, go back to the Customize dialog (you can right-click the button and select &#8220;Customize&#8221;). In the Commands tab, click the button &#8220;Rearrange Commands&#8221;. This will bring up another dialog. Select the toolbar that contains your Archive button and then select the button in the list of controls. If you click on the &#8220;Modify Selection&#8221; button to the right, you&#8217;ll get a long list of options. The first thing you should change is the name so it just says &#8220;Archive&#8221;. The other thing is you may want to change the icon or choose to not display an icon at all. </p>
<p>And that&#8217;s it! Now you should have a nice button in your toolbar for quickly archiving email messages.</p>
<div style="text-align: center">***</div>
<p>I&#8217;ve been using this method of archiving and categorizing for several years now and have found that it really improves my productivity within Outlook. I don&#8217;t have to dig through folders looking for something I received 6 months ago and I don&#8217;t have to worry about filing my emails to stay organized. As soon as there is nothing actionable left for me to do regarding an email, I archive it and forget about it until I need to reference it again. It&#8217;s a great way to get things done.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.natashascorner.com/2011/12/01/how-to-make-outlook-more-like-gmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uncharted: A new blog for dashboard design posts</title>
		<link>http://www.natashascorner.com/2010/01/03/uncharted-a-new-blog-for-dashboard-design-posts/</link>
		<comments>http://www.natashascorner.com/2010/01/03/uncharted-a-new-blog-for-dashboard-design-posts/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 02:55:14 +0000</pubDate>
		<dc:creator>Natasha Lloyd</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.natashascorner.com/?p=548</guid>
		<description><![CDATA[I&#8217;ve wanted to write more about dashboard design, but never felt like this was the right place to it because it&#8217;s my personal blog. So, as a new project for 2010, I decided to start a new blog. It&#8217;s called Uncharted and it&#8217;s all about applying user experience principles to dashboard design. I&#8217;ve moved a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve wanted to write more about dashboard design, but never felt like this was the right place to it because it&#8217;s my personal blog. So, as a new project for 2010, I decided to start a new blog. It&#8217;s called <a href="http://www.unchartedblog.com">Uncharted</a> and it&#8217;s all about applying user experience principles to dashboard design.</p>
<p>I&#8217;ve moved a few relevant posts from this blog to the new one and have disabled comments here in order to keep all the discussion in one place.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.natashascorner.com/2010/01/03/uncharted-a-new-blog-for-dashboard-design-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amplify Anything: Sentiment analysis for the web</title>
		<link>http://www.natashascorner.com/2009/09/02/amplify-anything-sentiment-analysis-for-the-web/</link>
		<comments>http://www.natashascorner.com/2009/09/02/amplify-anything-sentiment-analysis-for-the-web/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 03:13:01 +0000</pubDate>
		<dc:creator>Natasha Lloyd</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Words]]></category>

		<guid isPermaLink="false">http://www.natashascorner.com/?p=499</guid>
		<description><![CDATA[I&#8217;ve been pretty excited about the possibilities presented by OpenAmplify &#8211; I wrote a bit about it in my previous post. So I got thinking&#8230; Twitter is a good obvious place to start with text analysis, but wouldn&#8217;t it be cool to see the top topics and sentiment for any website you&#8217;re looking at? For [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been pretty excited about the possibilities presented by <a href="http://community.openamplify.com">OpenAmplify</a> &#8211; I wrote a bit about it in my <a href="http://www.natashascorner.com/2009/07/28/twitter-openamplify-xcelsius-awesome/">previous post</a>. So I got thinking&#8230; Twitter is a good obvious place to start with text analysis, but wouldn&#8217;t it be cool to see the top topics and sentiment for any website you&#8217;re looking at? </p>
<p>For example, say I&#8217;m thinking about buying a Kindle. I can go to Amazon.com and read through the 5000+ reviews. But what if I just want a summary? Amazon provides ratings, but that doesn&#8217;t tell me what I really want to know. In particular, what are the key things people are talking about? And how do they feel about them? Sure, I could copy/paste the URL into some tool and get the analysis, but that&#8217;s way too much work and I&#8217;ll probably forget about the tool when I need it anyway.</p>
<p>This is where Ubiquity comes in. Ubiquity is an add-on for Firefox that gives you the power to do more within your browser. For instance, you can select an address and immediately see a map. You can quickly shorten the URL you&#8217;re looking at so you can post it to Twitter. You can even tweet directly within the context of what you are reading. The beauty of Ubiquity is that it doesn&#8217;t interrupt your workflow to accomplish related tasks. You can read more about it here: <a href="http://labs.mozilla.com/ubiquity/">http://labs.mozilla.com/ubiquity</a>.</p>
<p>It&#8217;s easy to see that Ubiquity provides the perfect platform to incorporate the kind of analysis provided by OpenAmplify. It can expose the hidden information in a website that you otherwise could spend hours hunting down. This is where my Ubiquity command, &#8220;amplify&#8221;, comes in.</p>
<p>Here is how it works:</p>
<ol>
<li>Go to any website, like the <a href="http://www.amazon.com/Kindle-Amazons-Wireless-Reading-Generation/product-reviews/B00154JDAI">Kindle reviews page on Amazon.com</a>.
<p><a href="http://www.natashascorner.com/wp-content/uploads/2009/09/ubiquity1.png"><img src="http://www.natashascorner.com/wp-content/uploads/2009/09/ubiquity1-400x258.png" alt="Kindle reviews on Amazon.com" title="Kindle reviews on Amazon.com" width="400" height="258" class="size-medium wp-image-500" /></a><br />
<small>Kindle reviews on Amazon.com</small></li>
<li>Activate Ubiquity (Alt+Space) and execute the &#8220;amplify&#8221; command.
<p><a href="http://www.natashascorner.com/wp-content/uploads/2009/09/ubiquity2.png"><img src="http://www.natashascorner.com/wp-content/uploads/2009/09/ubiquity2-400x258.png" alt="Results of the &quot;amplify&quot; command" title="Results of the &quot;amplify&quot; Ubiquity command" width="400" height="258" class="size-medium wp-image-501" /></a><br />
<small>Results of the &#8220;amplify&#8221; Ubiquity command</small></li>
</ol>
<p>That&#8217;s it. You don&#8217;t need to open a new window, launch an external tool, or do any keyword searching. You get the sentiment analysis right in context, and that can reveal interesting insights.</p>
<p>So, how do you get this set up on your computer? It&#8217;s easy:</p>
<ol>
<li>Install <a href="http://www.firefox.com">Firefox</a>.</li>
<li>Install the <a href="http://labs.mozilla.com/ubiquity/">Ubiquity</a> add-on for Firefox.</li>
<li>Subscribe to my <a href="http://www.natashascorner.com/dev/ubiquity">&#8220;amplify&#8221; command feed</a>.</li>
</ol>
<p>Here are some ideas (besides my Kindle example above) to try out once you have the command installed:</p>
<ul>
<li>Amplify <a href="http://www.cnn.com">CNN.com</a> and compare it to <a href="http://www.foxnews.com">FoxNews.com</a>.</li>
<li>Open up an e-mail in Gmail, select the text, and Amplify it.</li>
<li>Go to your <a href="http://www.natashascorner.com">favorite blog</a> and Amplify it.</li>
</ul>
<p>Any other ideas for this type of sentiment analysis? Please share in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.natashascorner.com/2009/09/02/amplify-anything-sentiment-analysis-for-the-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitter + OpenAmplify + Xcelsius = Awesome</title>
		<link>http://www.natashascorner.com/2009/07/28/twitter-openamplify-xcelsius-awesome/</link>
		<comments>http://www.natashascorner.com/2009/07/28/twitter-openamplify-xcelsius-awesome/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 11:24:22 +0000</pubDate>
		<dc:creator>Natasha Lloyd</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Words]]></category>
		<category><![CDATA[Xcelsius]]></category>

		<guid isPermaLink="false">http://www.natashascorner.com/?p=463</guid>
		<description><![CDATA[This post has been moved to my new blog, Uncharted. Please continue the discussion there. I recently learned about OpenAmplify, a web service that uses Natural Language Processing (NLP) to extract meaning from text. I&#8217;m very familiar with NLP because I&#8217;ve worked on the Text Analysis team at SAP (previously with Inxight Software), so I [...]]]></description>
			<content:encoded><![CDATA[<div class="important">This post has been moved to my new blog, <a href="http://www.unchartedblog.com/2009/07/28/twitter-openamplify-xcelsius-awesome/">Uncharted</a>. Please continue the discussion there.</div>
<p>I recently learned about <a href="http://community.openamplify.com">OpenAmplify</a>, a web service that uses Natural Language Processing (NLP) to extract meaning from text. I&#8217;m very familiar with NLP because I&#8217;ve worked on the <a href="http://www.sap.com/solutions/sapbusinessobjects/large/intelligenceplatform/im/data-integration/textanalysis/index.epx">Text Analysis</a> team at SAP (previously with Inxight Software), so I was very interested to see OpenAmplify provide this capability for free and online. It&#8217;s the first such service that I&#8217;ve heard of and I wanted to try it out.</p>
<p>So, I put together a little demo using Twitter and Xcelsius, the product I&#8217;m currently working on. Here&#8217;s how it works:</p>
<ol>
<li><a href="http://apiwiki.twitter.com/">Twitter</a> supplies the data.</li>
<li><a href="http://community.openamplify.com">OpenAmplify</a> analyzes it for semantic content.</li>
<li><a href="http://www.sap.com/solutions/sapbusinessobjects/sme/xcelsius/index.epx">Xcelsius</a> displays the data.</li>
</ol>
<p>Try it out for yourself. (Note: Only single-word keywords will work right now.)</p>
<p><object width="475" height="566"><param name="movie" value="http://www.natashascorner.com/xcelsius/samples/twitter_plus_openamplify_plus_xcelsius.swf"></param>
<PARAM NAME="quality" VALUE="high"></param>
<PARAM NAME="bgcolor" VALUE="#FFFFFF"></param>
<PARAM NAME="play" VALUE="true"></param>
<PARAM NAME="loop" VALUE="true"></param>
<PARAM NAME=bgcolor VALUE="#FFFFFF"></param>
<EMBED src="http://www.natashascorner.com/xcelsius/samples/twitter_plus_openamplify_plus_xcelsius.swf" quality=high bgcolor=#FFFFFF WIDTH="475" HEIGHT="566" NAME="myMovieName" ALIGN="" TYPE="application/x-shockwave-flash" play="true" loop="true" PLUGINSPAGE="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"><br />
</EMBED><br />
</object></p>
<p>Those who are geekily-inclined can continue reading for the &#8220;how.&#8221; The rest of you can stop reading now. <img src='http://www.natashascorner.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Getting this set up was actually really easy and quick. Both Twitter&#8217;s and OpenAmplify&#8217;s APIs are easy to use and easy to connect. Here is what an OpenAmplify API call looks like when using Twitter as the data source:</p>
<blockquote><p>http://portaltnx.openamplify.com/AmplifyWeb/AmplifyThis?apiKey=[your API key]&#038;sourceURL=http://search.twitter.com/search.atom?q=[keyword]</p></blockquote>
<p>To get this into Xcelsius, you first need to create an XML map to that URL in your Excel spreadsheet. Then, you set up the XML Map connection and with a little concatenation, link the URL to a cell that inserts the keyword at the end. (Feel free to <a href="mailto:nblloyd@gmail.com">e-mail me</a> if you have questions about how to get this working.)</p>
<p>That&#8217;s all there is to it. Seriously.</p>
<p>In terms of functionality, I think OpenAmplify is rather limited. In their &#8220;About&#8221; page, they claim that OpenAmplify &#8220;identifies the significant topics, brands, people, perspectives, emotions, actions and timescales.&#8221; While that&#8217;s probably true, it would be nice to see the data by type (e.g., who are the people? what are the perspectives? what are the emotions?). As it is, you just get a list of &#8220;topics&#8221; and &#8220;actions&#8221; with ratings for polarity (positive, negative, or neutral). It would also be nice to get the supporting evidence that shows why each topic got the rating it got as a list of all the positive statements and all the negative statements. The style analysis (&#8220;slang&#8221; and &#8220;flamboyance&#8221;) might be fun, but I have a hard time imagining real uses for it. The demographics data, on the other hand, is very useful and I&#8217;m glad the OpenAmplify team says they will focus more on this in the future.</p>
<p>The latest release of OpenAmplify seems to have some good improvements in it, including performance improvements and the addition of &#8220;intentions&#8221; (what are people doing or intend to to). Just note that if you want to use the latest release, you actually have to use a different base URL for your API call:</p>
<p>http://portaltnx.openamplify.com/<strong>AmplifyWeb_V11</strong>/</p>
<p>rather than</p>
<p>http://portaltnx.openamplify.com/<strong>AmplifyWeb</strong>/</p>
<p>[A note for any OpenAmplify folks who may be reading this: You might want to update your <a href="http://community.openamplify.com/blogs/quickstart/pages/overview.aspx">documentation</a> to point to the latest release URL. Not everyone reads your blog.]</p>
<p>I did not use this latest release because I wasn&#8217;t aware of the difference in URLs, but I&#8217;ll try to upgrade to it in the future and see how it works.</p>
<p>Overall, I am impressed with OpenAmplify for two reasons. One, it provides a valuable service for free, and two, it uses a community model. Rather than building applications themselves, the OpenAmplify team provides the tools for other people to do it. This can be very powerful, as demonstrated by Apple&#8217;s App Store, and I hope it takes off for natural language processing as well. Twitter seems to be a popular choice for analysis at the moment, but I&#8217;m really interested to see what other applications people find for OpenAmplify and NLP. I think there is a lot of potential here.</p>
<p>UPDATE: This little app was <a href="http://community.openamplify.com/blogs/ampthis/archive/2009/07/28/twitter-openamplify-xcelsius-awesome.aspx">blogged by OpenAmplify</a>!</p>
<div class="important">This post has been moved to my new blog, <a href="http://www.unchartedblog.com/2009/07/28/twitter-openamplify-xcelsius-awesome/">Uncharted</a>. Please continue the discussion there.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.natashascorner.com/2009/07/28/twitter-openamplify-xcelsius-awesome/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>365 days of music</title>
		<link>http://www.natashascorner.com/2009/01/23/365-days-of-music/</link>
		<comments>http://www.natashascorner.com/2009/01/23/365-days-of-music/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 03:23:47 +0000</pubDate>
		<dc:creator>Natasha Lloyd</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.natashascorner.com/?p=213</guid>
		<description><![CDATA[At the start of 2009, I launched a mini-project called 365 days of music. I put this together in about a month and it&#8217;s not nearly complete, but there it is for now (maybe forever). The idea was that I wanted to share songs I like on the go and have an easy way to [...]]]></description>
			<content:encoded><![CDATA[<p>At the start of 2009, I launched a mini-project called <a href="http://www.natashascorner.com/playlist">365 days of music</a>. I put this together in about a month and it&#8217;s not nearly complete, but there it is for now (maybe forever).</p>
<p>The idea was that I wanted to share songs I like on the go and have an easy way to keep track of what I recommended. Initially, I wanted the website to play the songs from an embedded player, but I didn&#8217;t find any good APIs to accomplish what I needed. Instead I settled for linking to <a href="http://www.rhapsody.com">Rhapsody</a>, where you can play the songs for free if you&#8217;re in the US and other websites if you&#8217;re not.</p>
<p>Here is how it works:</p>
<ul>
<li>I send an e-mail to a super-secret special address with the following format:
<p><b>Subject:</b> <em>Song Title</em><br />
<b>Body:</b><br />
by <em>Artist</em><br />
from <em>Album</em><br />
rating <em>1-5</em><br />
<em>Notes</em></p>
<p>Everything but the name of the song is optional.</li>
<li>A PHP script that I wrote fetches the e-mail, parses it, formats it for the website by inserting the HTML and links for downloading the song, and sends the formatted post to WordPress via the <a href="http://www.economysizegeek.com/wp-mail/">Postie</a> plugin.
<p>I have the script set up to fetch only one message at a time and I have a cron job set up that runs the script once each day. This lets me queue up songs and have one posted each day.</li>
</ul>
<p>And that&#8217;s all there is to it. The best part is that all I had to learn was how to get and send e-mail through PHP.</p>
<p>Here is the code (with my secret account and formatting details removed):</p>
<p><code>
<p>
// connection info<br />
$host = "{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX";<br />
$user = "account@gmail.com";<br />
$pass = "password";<br/><br />
// open the connection<br />
$mbox = imap_open ($host, $user, $pass)<br />
&nbsp;&nbsp;&nbsp;&nbsp;or die("Can't connect: " . imap_last_error());<br/><br />
// get the headers<br />
$headers = imap_headers($mbox);<br />
$found_new_post = false;<br/><br />
if ($headers == false) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;// no headers in mailbox, so don't send anything<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo "No new messages to process.";<br />
}<br />
else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;for ($i = 1; $i <= count($headers); $i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// get the header<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$header = imap_headerinfo($mbox, $i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// get the text of the body<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// -- note: hard-coded for messages without attachments<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$body = imap_fetchbody($mbox, $i, "1");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// only process oldest unseen message<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($header->Unseen == "U") {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// message parsing and set-up goes here --><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$post_title = trim($header->subject);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$post_info = explode("\n", $body);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$song = $post_title;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$artist = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$album = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$rating = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$comments = "";<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ($j = 0; $j < count($post_info); $j++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$line = $post_info[$j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($line == ":end") break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list($keyword, $value) = split(" ", $line, 2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($keyword == "by") $artist = trim($value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if ($keyword == "from") $album = trim($value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if ($keyword == "rating") $rating = trim($value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if ($keyword != "")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$comments = $comments." ".trim($line);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$post_body = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// etc...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// <-- end message set-up<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// mark message as read<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imap_setflag_full($mbox, $i, "\\Seen");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$found_new_post = true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (!$found_new_post) echo "No new messages to process.";<br/><br />
}<br/><br />
// message processing goes here --><br/><br />
// send email, to be processed by postie<br />
$to = "another-account@gmail.com";<br />
mail($to, $subject, $post_body, null, "-faccount@gmail.com");<br/><br />
// <-- end message processing<br/><br />
imap_expunge($mbox);<br />
imap_close($mbox);
</p>
<p></code></p>
<p>There may be a better way to accomplish this, but my goal was to get something set up as quickly as possible. Customizing the WordPress theme took longer than writing the script, which makes me happy.</p>
<p>So there we go. A quick little project, up and running. I&#8217;ll probably add things to the website if I have time, but for now, I&#8217;m happy with it.</p>
<p>Oh yeah, there&#8217;s also a special iPhone version of the website. Check it out on your iPhone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.natashascorner.com/2009/01/23/365-days-of-music/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Putting together an Elfa closet</title>
		<link>http://www.natashascorner.com/2009/01/18/putting-together-an-elfa-closet/</link>
		<comments>http://www.natashascorner.com/2009/01/18/putting-together-an-elfa-closet/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 23:46:35 +0000</pubDate>
		<dc:creator>Natasha Lloyd</dc:creator>
				<category><![CDATA[House]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.natashascorner.com/?p=186</guid>
		<description><![CDATA[A couple weeks ago, we decided to remodel our master closet because the old one just wasn&#8217;t doing it for us. It had two high shelves that neither of us could reach easily and the hanger rod was totally warped from the weight of the clothes. So, we went to The Container Store and designed [...]]]></description>
			<content:encoded><![CDATA[<p>A couple weeks ago, we decided to remodel our master closet because the old one just wasn&#8217;t doing it for us. It had two high shelves that neither of us could reach easily and the hanger rod was totally warped from the weight of the clothes. So, we went to <a href="http://www.containerstore.com">The Container Store</a> and designed an <a href="http://www.elfa.com/">Elfa</a> closet for ourselves.</p>
<p><a href="http://www.natashascorner.com/wp-content/uploads/2009/01/img_0062.jpg"><img src="http://www.natashascorner.com/wp-content/uploads/2009/01/img_0062-400x300.jpg" alt="" title="Unassembled Elfa closet" width="400" height="300" class="alignnone size-medium wp-image-188" /></a><br />
<small>The unassembled Elfa closet parts.</small></p>
<p>The first thing we had to do to begin our remodeling was remove all the old closet shelving. It turned out that whoever put the closet together did a really crappy job. There were random boards nailed to the wall for support, there were plastic ties holding the shelves together, and there were screws and nails all over the walls. I got the impression that they put the closet together, it collapsed because it couldn&#8217;t handle the weight, and they patched it up as best they could (you know, instead of redoing it the <em>right way</em>).</p>
<p><a href="http://www.natashascorner.com/wp-content/uploads/2009/01/img_0057.jpg"><img src="http://www.natashascorner.com/wp-content/uploads/2009/01/img_0057-400x300.jpg" alt="" title="The closet after we took out the old shelves and removed the support boards." width="400" height="300" class="alignnone size-medium wp-image-190" /></a><br />
<small>The closet after we took out the old shelves and removed the support boards.</small></p>
<p><a href="http://www.natashascorner.com/wp-content/uploads/2009/01/img_0060.jpg"><img src="http://www.natashascorner.com/wp-content/uploads/2009/01/img_0060-400x300.jpg" alt="" title="Close-up showing the condition of the walls." width="400" height="300" class="alignnone size-medium wp-image-194" /></a><br />
<small>Close-up showing the condition of the walls.</small></p>
<p>The original plan was just to install the new closet stuff after removing the old parts. However, after we saw the condition of the walls, we decided to spackle and paint (thus turning this from a day-long project into a week-long one). We still had all the paint stuff left from when we painted the master bedroom and office before moving in, so all we needed to get was spackling materials and fresh paint.</p>
<p>Spackling helped a lot, and the paint made a <em>huge</em> difference! Since we were painting anyway, we decided to paint the walls the same color as the master bedroom rather than keeping them white.</p>
<p><a href="http://www.natashascorner.com/wp-content/uploads/2009/01/img_0066.jpg"><img src="http://www.natashascorner.com/wp-content/uploads/2009/01/img_0066-400x300.jpg" alt="" title="The closet with freshly painted walls." width="400" height="300" class="alignnone size-medium wp-image-195" /></a><br />
<small>The closet with freshly painted walls.</small></p>
<p>Once the paint was dry, we started installing the Elfa components. Almost immediately we ran into a problem: they had given us the wrong sized dry wall anchors. There are at least two different dry wall anchor sizes, depending on the thickness of your dry wall. Ours turned out to be 1&#8243; thick, but the ones they gave us were for 1/2&#8243; thick walls. It&#8217;s important to get the right sized anchors because all the weight rests on the top bar that you screw into the wall and if you&#8217;re installing on dry wall, you need to be careful that it doesn&#8217;t break from the weight. In our case, we didn&#8217;t hit any studs when installing the top bar, so we were especially concerned about having the right dry wall anchors. Luckily, exchanging the anchors just took a quick trip back to The Container Store (although we did have to pay for them since we didn&#8217;t bring back the other ones we had).</p>
<p><a href="http://www.flickr.com/photos/nblloyd/3204587541/" title="Top bar installed."><img src="http://farm4.static.flickr.com/3426/3204587541_e6a937da6e.jpg" width="500" height="334" alt="Top bar installed." /></a><br />
<small>Top bar installed.</small></p>
<p>The remainder of the process was pretty straight-forward, except for a few minor problems:</p>
<p>First, we had some trouble getting the placement of the hanging standards (the vertical bars) right. We had one long shelf in the middle and short ones on the sides. When we placed the hanging standards for the long shelf, we guesstimated where the middle bar should go and figured it was &#8220;good enough&#8221;. Although the shelves fit fine, we ran into a problem when we installed the facia (that&#8217;s the wooden front on the shelves). The facia pieces all came in small sizes and to make them fit we had to take apart the big shelf and place the bar exactly in the middle. </p>
<p>So, if you&#8217;re ever installing an Elfa closet, make sure all your hanging standards are exactly 24&#8243; apart, no matter how long your shelves are. It&#8217;ll save you the headache of fixing it later.</p>
<p><a href="http://www.flickr.com/photos/nblloyd/3204588193/" title="Hanging standards approximately in place."><img src="http://farm4.static.flickr.com/3523/3204588193_0ed4e66439.jpg" width="500" height="334" alt="Hanging standards approximately in place." /></a><br />
<small>Hanging standards approximately in place.</small></p>
<p>Second, the instructions for installing the shelves were not clear enough. You have to put the back end of the shelf into the notches first, then push down in the middle.</p>
<p>Also, although the shelves will install on brackets spaced less than 24&#8243; apart, there is only one right way to install them. You have to get the outsides completely inside the shelf brackets or none of the &#8220;decorative&#8221; pieces will fit correctly. This is also necessary if you have two shelves right next to each other, sharing one bracket.</p>
<p>All in all, installing the shelves was one of the hardest and most time consuming parts of the process. The three lines dedicated to this in the instruction booklet seems very inadequate.</p>
<p><a href="http://www.flickr.com/photos/nblloyd/3205436608/" title="Shelves installed."><img src="http://farm4.static.flickr.com/3087/3205436608_0659790998.jpg" width="500" height="334" alt="Shelves installed." /></a><br />
<small>Shelves installed.</small></p>
<p>Finally, the installation instructions make no mention of &#8220;niceties&#8221; like the top bar cover, the shelf bracket side covers, or the shelf liners (optional) that you need to install. </p>
<p>The top bar cover is basically a piece of plastic that you slide into the top bar to cover up the screws and make it look nicer. Make sure you install this <em>before</em> installing shelves! We didn&#8217;t realize we had to install it until after all the shelves were in place, and we had some high ones that were really hard to reach around.</p>
<p>The side covers for shelf brackets are also missing from the install guide. It&#8217;s not a big deal if you forget about these until the end, though, since they go on the outside.</p>
<p>The shelf liners are kind of a mystery. I&#8217;m not sure if you&#8217;re supposed to put them in before you put on the facia or after. We put them in last, but they basically just lie on top of the shelves and there is nothing holding them in place. I suspect that if you put them in <em>before</em> installing the facia, they would actually be held in place by the facia. Instructions would be really helpful here.</p>
<p>Despite these minor problems, the process was actually very easy to follow and rewarding to know that you did it yourself.</p>
<p><a href="http://www.flickr.com/photos/nblloyd/3204589881/" title="Empty closet with everything installed."><img src="http://farm4.static.flickr.com/3114/3204589881_6ba0ae0c8b.jpg" width="500" height="334" alt="Empty closet with everything installed." /></a><br />
<small>Empty closet with everything installed.</small></p>
<p>We are extremely happy with our new closet. It fits so much more than before and we can comfortably access everything we need. The wall color makes it look way better as well, and I&#8217;m glad we were forced to paint it. We also put in <a href="http://www.gelighting.com/na/home_lighting/products/reveal_main.htm">GE Reveal</a> light bulbs, which provide a cleaner, more neutral light for the closet.</p>
<p>I never thought I&#8217;d get excited about a closet, but I love it!</p>
<p><a href="http://www.flickr.com/photos/nblloyd/3205437914/" title="Our new closet in use."><img src="http://farm4.static.flickr.com/3350/3205437914_87bb4a9ca8.jpg" width="500" height="334" alt="Our new closet in use." /></a><br />
<small>Our new closet in use.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.natashascorner.com/2009/01/18/putting-together-an-elfa-closet/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Community Place book</title>
		<link>http://www.natashascorner.com/2008/05/28/the-community-place-book/</link>
		<comments>http://www.natashascorner.com/2008/05/28/the-community-place-book/#comments</comments>
		<pubDate>Thu, 29 May 2008 00:57:37 +0000</pubDate>
		<dc:creator>Natasha Lloyd</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.natashascorner.com/?p=22</guid>
		<description><![CDATA[Today I found the publisher&#8217;s website for a book that I worked on &#8211; The Community Place: More than a place, a way of welcoming. I spent over a year on the layout and design of this book, mostly due to life getting in the way. It&#8217;s great to see it in print (and for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.inclusion.com/bkcommunityplace.html"><img src="http://www.natashascorner.com/images/tcp_book_cover_500x370.jpg" alt="The Community Place book cover" /></a></p>
<p>Today I found the publisher&#8217;s website for a book that I worked on &#8211; <a href="http://www.inclusion.com/bkcommunityplace.html">The Community Place: More than a place, a way of welcoming</a>. I spent over a year on the layout and design of this book, mostly due to life getting in the way. It&#8217;s great to see it in print (and <a href="http://www.inclusion.com/bkcommunityplace.html">for sale</a>!). The website also features a summary, written by yours truly.</p>
<blockquote><p>We often find community in the most unexpected places &#8211; cafés, book shops, hair salons &#8211; but no matter where we find it, the benefits are undeniable. There is a feeling of belonging, of mattering in a community that we often seek and rarely find.</p>
<p>In 1994, a group of dedicated individuals set out to build and nurture a community that celebrates everyone’s gifts in Manchester, Connecticut. Located on Main Street, <strong>The Community Place</strong> was a card and gift shop on the outside and much more on the inside. It was a gathering place, a place to have a cup of tea, a place to meet local artists, and most importantly, a place where everyone was welcome.</p>
<p>Although The Community Place closed its doors in 2003, its legacy continues through the lessons learned and the lives it touched. This is the story of Pat Beeman, George Ducharme, Bev Jackson, and countless others that came along on this rocky yet rewarding community building experience.</p></blockquote>
<p>I have a lot of great memories from when I worked at The Community Place. In many ways, it has shaped who I am today. It changed my outlook on community, it taught me to respect people, to appreciate everyone&#8217;s gifts, and to <em>show</em> my appreciation.</p>
<p>The Community Place was a business with a clearly defined vision that everyone who walked through its doors was dedicated to fulfilling, whether they knew it or not. It was impossible to come in and <em>not</em> feel welcome. </p>
<p>Sometimes I miss the feeling of believing 100% in a mission shared by everyone involved in the business. The Community Place was a place I felt passionate about, where my creativity was encouraged, and where I felt like I was part of something greater than myself. All this, just from a part-time job I had when I was in high school. Not bad at all. <img src='http://www.natashascorner.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.natashascorner.com/2008/05/28/the-community-place-book/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

