<?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>Beyond Abstraction &#187; spencer</title>
	<atom:link href="http://beyondabstraction.net/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://beyondabstraction.net</link>
	<description>Meanderings and Such...</description>
	<lastBuildDate>Thu, 22 Dec 2011 14:29:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>WordPress 3.2, CentOS 5, PHP 5.2, &amp; eAccelerator.  What a mouthful.</title>
		<link>http://beyondabstraction.net/2011/07/09/wordpress-3-2-centos-5-php-5-2-eaccelerator-what-a-mouthful/</link>
		<comments>http://beyondabstraction.net/2011/07/09/wordpress-3-2-centos-5-php-5-2-eaccelerator-what-a-mouthful/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 17:45:08 +0000</pubDate>
		<dc:creator>spencer</dc:creator>
				<category><![CDATA[Randomness]]></category>

		<guid isPermaLink="false">http://beyondabstraction.net/?p=518</guid>
		<description><![CDATA[I wanted to update WordPress to 3.2 but hit a snag. Unfortunately 3.2 requires an update to PHP 5.2 which isn&#8217;t in stock CentOS. So I followed the instructions here to update to PHP 5.2 using the CentOS Testing repos. However I use eAccelerator which was built for 5.1 so before I could update the &#8230; </p><p><a class="more-link block-button" href="http://beyondabstraction.net/2011/07/09/wordpress-3-2-centos-5-php-5-2-eaccelerator-what-a-mouthful/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I wanted to update WordPress to 3.2 but hit a snag. Unfortunately 3.2 requires an update to PHP 5.2 which isn&#8217;t in stock CentOS. So I followed the instructions <a href="http://wiki.centos.org/HowTos/PHP_5.1_To_5.2" title="PHP 5.2 on CentOS 5">here</a> to update to PHP 5.2 using the CentOS Testing repos.  However I use eAccelerator which was built for 5.1 so before I could update the PHP packages I had to remove the eAccelerator RPM so I could update the PHP packages without breaking things:</p>
<p><code>sudo rpm -e php-eaccelerator</code></p>
<p>Then updating the PHP packages worked fine.  But I was without eAccelerator.  A kind soul had <a href="http://www.atoomnet.net/centos_updated_php.php" title="x86_64 PHP packages for CentOS 5">created packages for 5.2 on x86_64</a> but I need i386 packages.  Thankfully the src RPMs were also posted.  So a few minutes later I had my i386 RPM.  If you are in need of the eAccelerator packages for PHP 5.2 on i386 <a href="/files/php-eaccelerator-5.2.10_0.9.6.1-1.i386.rpm" title="i386 PHP eAccelerator for CentOS 5 w/ PHP 5.2">here it is</a>.  Install it like so:</p>
<p><code>sudo rpm -ivh php-eaccelerator-5.2.10_0.9.6.1-1.i386.rpm</code></p>
<p>Everything appears to be back to normal.  Performance tidbit &#8211; page generation time is 37% faster with eAccelerator.</p>
]]></content:encoded>
			<wfw:commentRss>http://beyondabstraction.net/2011/07/09/wordpress-3-2-centos-5-php-5-2-eaccelerator-what-a-mouthful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building for older RHEL/Fedora releases on newer systems</title>
		<link>http://beyondabstraction.net/2011/06/15/building-for-older-rhelfedora-releases-on-newer-systems/</link>
		<comments>http://beyondabstraction.net/2011/06/15/building-for-older-rhelfedora-releases-on-newer-systems/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 14:58:06 +0000</pubDate>
		<dc:creator>spencer</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://beyondabstraction.net/?p=512</guid>
		<description><![CDATA[If you have ever tried to use a new Fedora or RHEL to build packages for older systems you may have run into errors at installation time. For example, if you were to roll a package on Fedora >=10 or RHEL >=6 and tried to install it on RHEL 5 you will get rpmlib(FileDigests) errors. &#8230; </p><p><a class="more-link block-button" href="http://beyondabstraction.net/2011/06/15/building-for-older-rhelfedora-releases-on-newer-systems/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>If you have ever tried to use a new Fedora or RHEL to build packages for older systems you may have run into errors at installation time.  For example, if you were to roll a package on Fedora >=10 or RHEL >=6 and tried to install it on RHEL 5 you will get rpmlib(FileDigests) errors.  This is because newer versions of RPM use new compression and hashing algorithms. To force an RPM to be build using the older algorithms add these lines to your spec file:<br />
<code>%define _binary_payload w9.gzdio<br />
 %define _binary_filedigest_algorithm 1<br />
 %define _source_filedigest_algorithm 1</code></p>
<p>You can wrap them in a conditional check if you only want to use the older algorithms when targeted older versions of RHEL/Fedora but they are forward compatible, ie you can install a package compiled with these flags on RHEL 6 without a problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://beyondabstraction.net/2011/06/15/building-for-older-rhelfedora-releases-on-newer-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When Less is More</title>
		<link>http://beyondabstraction.net/2010/02/08/when-less-is-more/</link>
		<comments>http://beyondabstraction.net/2010/02/08/when-less-is-more/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 03:50:10 +0000</pubDate>
		<dc:creator>spencer</dc:creator>
				<category><![CDATA[Ads]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Randomness]]></category>

		<guid isPermaLink="false">http://beyondabstraction.net/?p=404</guid>
		<description><![CDATA[Hmmm&#8230; you would think the empty set resulting from the intersection of the product title and product features would have been a clue that something was awry.]]></description>
			<content:encoded><![CDATA[<p><a href="http://beyondabstraction.net/wp-content/uploads.hidden/2010/02/Screen-shot-2010-02-08-at-7.16.44-PM.png"><img src="http://beyondabstraction.net/wp-content/uploads.hidden/2010/02/Screen-shot-2010-02-08-at-7.16.44-PM.png" alt="" title="Screen shot 2010-02-08 at 7.16.44 PM" width="794" height="153" class="alignnone size-full wp-image-405" /></a></p>
<p>Hmmm&#8230; you would think the empty set resulting from the intersection of the product title and product features would have been a clue that something was awry.  </p>
]]></content:encoded>
			<wfw:commentRss>http://beyondabstraction.net/2010/02/08/when-less-is-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On topics such as how to run sudo from a cron job</title>
		<link>http://beyondabstraction.net/2009/12/20/on-topics-such-as-how-to-run-sudo-from-a-cron-job%e2%80%a6/</link>
		<comments>http://beyondabstraction.net/2009/12/20/on-topics-such-as-how-to-run-sudo-from-a-cron-job%e2%80%a6/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 01:15:37 +0000</pubDate>
		<dc:creator>spencer</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://beyondabstraction.net/?p=388</guid>
		<description><![CDATA[If you want to run sudo from any part of a cron job make sure you comment out the Defaults requiretty from /etc/sudoers. Bit me twice now so hopefully I&#8217;ll remember next time. Ed: Apologies to those who have read this before but I had to restore from backup and my last post wasn&#8217;t in &#8230; </p><p><a class="more-link block-button" href="http://beyondabstraction.net/2009/12/20/on-topics-such-as-how-to-run-sudo-from-a-cron-job%e2%80%a6/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>If you want to run sudo from any part of a cron job make sure you comment out the </p>
<blockquote><p>Defaults requiretty</p></blockquote>
<p>from /etc/sudoers. Bit me twice now so hopefully I&#8217;ll remember next time.</p>
<p><em>Ed: Apologies to those who have read this before but I had to restore from backup and my last post wasn&#8217;t in that backup.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://beyondabstraction.net/2009/12/20/on-topics-such-as-how-to-run-sudo-from-a-cron-job%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entourage Apple Script for Moving IMAP Mail</title>
		<link>http://beyondabstraction.net/2009/08/16/entourage-apple-script-for-moving-imap-mail/</link>
		<comments>http://beyondabstraction.net/2009/08/16/entourage-apple-script-for-moving-imap-mail/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 16:53:04 +0000</pubDate>
		<dc:creator>spencer</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[gtd]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://beyondabstraction.net/?p=380</guid>
		<description><![CDATA[In my last post I described a VB Script for moving IMAP email from my inbox to an archive folder. As an interesting Apples to Oranges (or Apple to Microsoft?) comparison here is the Apple Script I use with Entourage to perform the same task. I will post two versions: one that performs the exact &#8230; </p><p><a class="more-link block-button" href="http://beyondabstraction.net/2009/08/16/entourage-apple-script-for-moving-imap-mail/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://beyondabstraction.net/2009/08/14/outlook-vb-macro-for-moving-mail/">In my last post I described a VB Script for moving IMAP email from my inbox to an archive folder.</a>  As an interesting Apples to Oranges (or Apple to Microsoft?) comparison here is the Apple Script I use with Entourage to perform the same task.  I will post two versions: one that performs the exact same task and a second version that is significantly longer that integrates with the popular Growl notification system for OS X.  I would just like to highlight the overall simplicity  and elegance of the Apple Script vs. the VB script.  Yes I know their history is totally different and perhaps VB script is overloaded in usage these days but the point stands: the Apple Script is readable and intuitive while the VB script is neither.</p>
<p>Once again I apologize for the formatting but WordPress is butchering &lt;code&gt; posts lately and insert all sorts of uglies inside the code blocks and I don&#8217;t feel like fixing it at the moment.</p>
<blockquote><p>
tell application &#8220;Microsoft Entourage&#8221;<br />
	set acctName to &#8220;BA&#8221;<br />
	set folderName to &#8220;Archives&#8221;<br />
	set destFolder to null</p>
<p>	set currMsgs to (current messages)<br />
	set currCount to (count of currMsgs)</p>
<p>	if currCount is not 0 then<br />
		set folderList to folders of IMAP account acctName<br />
		repeat with x in folderList<br />
			if name of x is folderName then<br />
				set destFolder to x<br />
				move currMsgs to x<br />
			end if<br />
		end repeat<br />
	end if<br />
end tell
</p></blockquote>
<p>And the second with Growl support:</p>
<blockquote>
<p>	tell application &#8220;GrowlHelperApp&#8221;<br />
		set the allNotificationsList to {&#8220;General&#8221;, &#8220;Move message&#8221;, &#8220;Error&#8221;}<br />
		set the enabledNotificationsList to {&#8220;General&#8221;, &#8220;Move message&#8221;, &#8220;Error&#8221;}</p>
<p>		register as application &#8220;Entourage AppleScripts&#8221; all notifications allNotificationsList default notifications enabledNotificationsList icon of application &#8220;Microsoft Entourage&#8221;</p>
<p>		if currCount is 0 then<br />
			notify with name &#8220;Error&#8221; title &#8220;Entourage Error&#8221; description &#8220;You attempted to move a message but no message was selected.&#8221; application name &#8220;Entourage AppleScripts&#8221;<br />
			delay 10<br />
			return<br />
		end if<br />
		if destFolder is null then<br />
			notify with name &#8220;Error&#8221; title &#8220;Entourage Error&#8221; description (&#8220;You attempted to move a message but the destination folder \&#8221;" &#038; folderName &#038; &#8220;\&#8221; is not valid.&#8221;) application name &#8220;Entourage AppleScripts&#8221;<br />
			delay 10<br />
			return<br />
		end if</p>
<p>		&#8211;	1 Notification&#8230;<br />
		if currCount is 1 then<br />
			notify with name &#8220;General&#8221; title (acctName &#038; &#8221; Notification&#8221;) description (&#8220;1 message moved to \&#8221;" &#038; name of destFolder &#038; &#8220;\&#8221; folder of account \&#8221;" &#038; acctName &#038; &#8220;\&#8221;") application name &#8220;Entourage AppleScripts&#8221;<br />
			delay 10<br />
		end if</p>
<p>		&#8211;	Multi Notification&#8230;<br />
		if currCount > 1 then<br />
			notify with name &#8220;General&#8221; title (acctName &#038; &#8221; Notification&#8221;) description (&#8220;&#8221; &#038; (count of currMsgs) &#038; &#8221; messages moved to \&#8221;" &#038; name of destFolder &#038; &#8220;\&#8221; folder of account \&#8221;" &#038; acctName &#038; &#8220;\&#8221;") application name &#8220;Entourage AppleScripts&#8221;<br />
			delay 10<br />
		end if<br />
end tell
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://beyondabstraction.net/2009/08/16/entourage-apple-script-for-moving-imap-mail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Outlook VB macro for moving mail</title>
		<link>http://beyondabstraction.net/2009/08/14/outlook-vb-macro-for-moving-mail/</link>
		<comments>http://beyondabstraction.net/2009/08/14/outlook-vb-macro-for-moving-mail/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 20:26:30 +0000</pubDate>
		<dc:creator>spencer</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[gtd]]></category>

		<guid isPermaLink="false">http://beyondabstraction.net/?p=369</guid>
		<description><![CDATA[Been meaning to post this quickie for awhile. Took me a good bit of searching and tweaking but I&#8217;ve been using this macro for about two months to move email in my IMAP account in Outlook (2007) to my archive folder. Then I bound it to a hotkey combo by adding it to my menu &#8230; </p><p><a class="more-link block-button" href="http://beyondabstraction.net/2009/08/14/outlook-vb-macro-for-moving-mail/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Been meaning to post this quickie for awhile.  Took me a good bit of searching and tweaking but I&#8217;ve been using this macro for about two months to move email in my IMAP account in Outlook (2007) to my archive folder.  Then I bound it to a hotkey combo by adding it to my menu bar and placing an ampersand in front of the &#8220;trigger key.&#8221;  For example, I added the macro to the menu bar and then renamed it to &#8220;&#038;@rchive&#8221; to move the mail to the archive folder.  Now when I press &#8220;Alt-@&#8221; (really Alt-Shift-2) when I have mail selected it moves the mail to the appropriate folder.  You can&#8217;t overload hotkeys and since &#8220;Alt-A&#8221; was already taken I had to choose something else.</p>
<p>Note I&#8217;ve tested this with Cyrus.  Other IMAP servers may have different namespacing conventions.  </p>
<blockquote><p>Sub MoveSelectedMessagesToBAArchives()<br />
On Error Resume Next</p>
<p>    Dim objFolder As Outlook.MAPIFolder, objInbox As Outlook.MAPIFolder<br />
    Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem</p>
<p>    Dim TestFolder As Outlook.Folder<br />
    Dim FoldersArray As Variant<br />
    Dim i As Integer<br />
    Set objNS = Application.GetNamespace(&#8220;MAPI&#8221;)</p>
<p>    &#8216;Convert folderpath to array<br />
    FoldersArray = Split(&#8220;BA\Inbox\Archives&#8221;, &#8220;\&#8221;)<br />
    Set TestFolder = Application.Session.Folders.Item(FoldersArray(0))<br />
    Dim SubFolders As Outlook.Folders<br />
    If Not TestFolder Is Nothing Then<br />
        For i = 1 To UBound(FoldersArray, 1)<br />
            Set SubFolders = TestFolder.Folders<br />
            Set TestFolder = SubFolders.Item(FoldersArray(i))<br />
            If TestFolder Is Nothing Then<br />
                Set objFolder = Nothing<br />
            End If<br />
        Next<br />
    End If<br />
    &#8216;Return the TestFolder<br />
    Set objFolder = TestFolder</p>
<p>    &#8216;Set objFolder = objNS.GetFolder(&#8220;BA\Inbox\Archives&#8221;)<br />
    &#8216;Set objFolder = objInbox.Folders(&#8220;Archives&#8221;)<br />
&#8216;Assume this is a mail folder</p>
<p>If objFolder Is Nothing Then<br />
        MsgBox &#8220;This folder doesn&#8217;t exist!&#8221;, vbOKOnly + vbExclamation, &#8220;INVALID FOLDER&#8221;<br />
    End If</p>
<p>    If Application.ActiveExplorer.Selection.Count = 0 Then<br />
        &#8216;Require that this procedure be called only when a message is selected<br />
        Exit Sub<br />
    End If</p>
<p>    For Each objItem In Application.ActiveExplorer.Selection<br />
        If objFolder.DefaultItemType = olMailItem Then<br />
            If objItem.Class = olMail Then<br />
                objItem.Move objFolder<br />
            End If<br />
        End If<br />
    Next</p>
<p>    Set objItem = Nothing<br />
    Set objFolder = Nothing<br />
    Set objInbox = Nothing<br />
    Set objNS = Nothing<br />
End Sub</p>
</blockquote>
<p>Sorry for the busted formatting.  WordPress sucks sometimes.</p>
]]></content:encoded>
			<wfw:commentRss>http://beyondabstraction.net/2009/08/14/outlook-vb-macro-for-moving-mail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social Networking vs. Social Matrices</title>
		<link>http://beyondabstraction.net/2009/04/27/social-matrices/</link>
		<comments>http://beyondabstraction.net/2009/04/27/social-matrices/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 01:13:16 +0000</pubDate>
		<dc:creator>spencer</dc:creator>
				<category><![CDATA[Randomness]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://beyondabstraction.net/?p=330</guid>
		<description><![CDATA[In a social networking site that is truly extensible and robust we wouldn&#8217;t feel the urge to move on. Restarting on a shiny new site or culling or pruning your &#8220;friends&#8221; on an existing site wouldn&#8217;t be necessary. But we have been misled. Social networking doesn&#8217;t have to be all or nothing. We shouldn&#8217;t feel &#8230; </p><p><a class="more-link block-button" href="http://beyondabstraction.net/2009/04/27/social-matrices/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>In a social networking site that is truly extensible and robust we wouldn&#8217;t feel the urge to move on.  Restarting on a shiny new site or culling or pruning your &#8220;friends&#8221; on an existing site wouldn&#8217;t be necessary. But we have been misled.  Social networking doesn&#8217;t have to be all or nothing.  We shouldn&#8217;t feel constricted in how we express ourselves on a given site.  And to exacerbate the issue, some of us are misleadingly tied to our online social networks.  For example, some people feel obligated to update their profiles constantly or to accept friendship/relationship requests (regardless of their relationship to the requester), particularly those that rely on the Internet to construct their professional persona <a href="#id_0">[0]</a>.  The bottom line: these social networking sites <a href="#id_1">[1]</a><a href="#id_2">[2]</a> continue to fail us as a society.  </p>
<p>Why do so many exist? Why do so many fall by the wayside as we progress?  Why does each and every attempt at social networking eventually fall to its successor? </p>
<p>The answer to the first question is simple &#8211; new social networking sites crop up because of need or because of fad.  No one site has all the required features for its user base.  Why do social networking sites fail as time progresses? Well, some would argue the maturity level of the user base has changed.  Or, more often these days, perhaps the site&#8217;s interface is more Web 2.0 friendly, and everyone wants to be on the Web 2.0 bandwagon.  Your friends jump ship, you jump ship.  Finally, the user&#8217;s social network constructed on the site changes.  As you mature, you leave one social network for a new social network.  For example, the mass migration from Friendster to MySpace and now to facebook.  Still others would argue the usage of the site is tied to user interface: this argument being that facebook is more &#8220;mature&#8221; than MySpace.  The end result of this interface maturity is the same as others.  Some people leave, others follow.  Some even suggest a class bias between the sites, thus alluding to the fact that as oneâ€™s class changes, so does their social network (and thus the social networking site to which they should belong)<a href="#id_3">[3]</a>.  Finally, perhaps we are merely sheep, following one another from one social network to another.  </p>
<p>Regardless of the specifics, the users of these sites inevitably leave, thus forsaking their previously well-developed social network on MySpace for a new social network they must construct on facebook.  And this is doubtfully an isolated incident &#8211; as soon as facebook&#8217;s yet-unheard-of young competitor, social.blah.org.net.com.dontcare, appears on the scene, another mass migration will occur.  Or perhaps the reason for this migration is the users of these sites are leaving to shed &#8211; shed previous acquaintances, previous friendships, previous lifestyles.    </p>
<p>This mass migration from social network to social network is merely a side effect.  It is tied to the way those websites create implicit relationships.  They ask, &#8220;Did you know this person?&#8221; while forgetting to ask, &#8220;How would you like to know this person NOW?&#8221;  Life experiences previously allowed us to prune our network based on lifestyle changes. You grow, you change, your relationships change, perhaps you even shed relationships &#8211; that is the natural evolution. </p>
<p>Current social networks inhibit this natural pruning and the evolution of real-life social networks<a href="#id_4">[4]</a>.  This is no longer the case with the rise of facebook and MySpace. But perhaps you don&#8217;t want to &#8220;shed.&#8221; Perhaps you like your old friends, but not in &#8220;that way.&#8221;  Perhaps you would like tighter control of how your information is sent to your social networks, or more specifically, how your &#8220;social flows&#8221; are constructed.  While such pruning of social networks has been proposed<a href="#id_5">[5]</a>, it is not effective in that it is not driven by you, but by simple inferences about the populous as a whole. And besides, who says you actually want to &#8220;prune?&#8221;  Perhaps you&#8217;re just lacking fine-grained control.</p>
<p>Only you can define how you want your social flows to actually work in the present, and in the future.  Or rather, you should be able to define your social information flows and the social networking site should support you in doing so.  And eventually your social networking site should create these flows for you, based on your existing flows.  You shouldn&#8217;t have to rely on some coarse-grained all-or-nothing approach.  Such is the case with current social network sites.  </p>
<p>You add a friend, you remove a friend.  That is all you can do.  They can read everything, they can write to everyone. Coarse-grained filters aside, they are similar to you in that they lack controls over what information flows to whom, or more precisely, how they socialize in general.  You are in or you are out.  There is no in-between on current social networking sites. There are filtering tools in facebook<a href="#id_5">[5]</a>, but for the most part they are coarse-grained with respect to the filtering of content, not quite capable of expressing how your information is shown to your social network.</p>
<p>In addition to the coarse-grained nature of social information flows, there is the problem of duplicated information being presented, cluttering the consumable information on individual sites <a href="#id_6">[6]</a>.  This often results from people wanting to share information with multiple social networks, a side effect of wanting to maintain multiple online personas.   Some people create multiple personas to communicate with multiple distinct social groups online. For example, my Twitter network and my facebook network are distinct.  Yet at the same time, most of the information I&#8217;m posting makes it to both networks.  Thus, people following me on Twitter and facebook must consume the information twice, once on Twitter, once on facebook.  </p>
<p>To reiterate, social networking sites currently provide coarse-grained control over who sees what parts of your profile <a href="#id_7">[7]</a>.  They aren&#8217;t totally living in the dark ages.  The downside to the current approach is still the fact that is remains all or nothing.  There exists no middle ground in which you can control which information flows to which person.  Sure you can set up groups, but who wants to go through all of that work?</p>
<p>A novel proposal is in the works.  One that allows you true flexibility in constructing your online social network.  One that doesn&#8217;t represent an all-or-nothing approach to social networks.  One that doesn&#8217;t leave you questioning your own social network members and how they interact with you.  Instead of a wide-open network that exchanges all information to all people, you will be able to create your own network and define how the information flows between the people or groups in your social network.  Finally, you will be able to define your own social matrix, and you will be able to evolve your social matrix as your life changes.  You won&#8217;t have to shed or prune friends <a href="#id_8">[8]</a>.  This network will be able to learn or make inferences about your socialization style. And it will eventually learn how you socialize based on numerous aspects of your life. </p>
<p>Thanks to Vitak, Brandon, Josh, and Justin, for the inspiration for this post.  Oh, and IPAs.  </p>
<p>[0] <a href="http://beyondabstraction.net/about" id="id_0">About Spencer</a><br />
[1] <a href="http://facebook.com" id="id_1">Facebook</a><br />
[2] <a href="http://myspace.com" id="id_2">MySpace</a><br />
[3] <a href="http://www.danah.org/papers/essays/ClassDivisions.html" id="id_3">Viewing American class divisions through Facebook and MySpace</a><br />
[4] <a href="http://www.wired.com/techbiz/people/magazine/16-11/pl_brown" id="id_4">Scott Brown on Facebook Friendonomics</a><br />
[5] <a href="http://www.allfacebook.com/2009/03/facebook-feed-filters/" id="id_5">The Future Of Facebookâ€™s Feed Is Granular Filters</a><br />
[6] <a href="http://www.andydesoto.com/social-media/social-network-pruning-heuristic-2-eliminate-cross-posters/" id="id_6">Eliminating Cross Posting in Social Networks</a><br />
[7] <a href="http://www.allfacebook.com/2009/02/facebook-privacy/" id="id_7">10 Privacy Settings Every Facebook User Should Know</a><br />
[8] <a href="http://www.cs.georgetown.edu/~singh/papers/ICDM-2005.pdf" id="id_8">Pruning Social Networks Using Structural Properties and Descriptive Attributes</a></p>
]]></content:encoded>
			<wfw:commentRss>http://beyondabstraction.net/2009/04/27/social-matrices/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Solid State Devices (SSD) and journaling</title>
		<link>http://beyondabstraction.net/2009/03/02/solid-state-devices-ssd-and-journaling/</link>
		<comments>http://beyondabstraction.net/2009/03/02/solid-state-devices-ssd-and-journaling/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 07:09:51 +0000</pubDate>
		<dc:creator>spencer</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://beyondabstraction.net/?p=307</guid>
		<description><![CDATA[A few things all of us are probably interested in: SSD Write Amplification: http://www.extremetech.com/article2/0,2845,2329594,00.asp Journaling and write performance in ext4: http://thunk.org/tytso/blog/2009/03/01/ssds-journaling-and-noatimerelatime/ The bottom-line as far as wear and tear: vfat is basically the same as a journaled FS from a wear-leveling standpoint, both are worst case. Thankfully vfat, being the worst case, forced the manufacturers &#8230; </p><p><a class="more-link block-button" href="http://beyondabstraction.net/2009/03/02/solid-state-devices-ssd-and-journaling/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>A few things all of us are probably interested in:</p>
<ul>
<li>SSD Write Amplification:<br />
<br/><br />
<a href="http://www.extremetech.com/article2/0,2845,2329594,00.asp">http://www.extremetech.com/article2/0,2845,2329594,00.asp</a><br />
<br/>
</li>
<li>Journaling and write performance in ext4:<br />
<br/><br />
<a href="http://thunk.org/tytso/blog/2009/03/01/ssds-journaling-and-noatimerelatime/">http://thunk.org/tytso/blog/2009/03/01/ssds-journaling-and-noatimerelatime/</a>
</li>
</ul>
<p>The bottom-line as far as wear and tear: vfat is basically the same as a journaled FS from a wear-leveling standpoint, both are worst case.  Thankfully vfat, being the worst case, forced the manufacturers to deal with the problem early.  So all those outlandish claims I made about the world being flat and NTFS on thumbdrives are unfounded.  Ted&#8217;s evidence does not speak to the amount of effort it takes to create an NTFS thumbdrive in Windows, however</p>
]]></content:encoded>
			<wfw:commentRss>http://beyondabstraction.net/2009/03/02/solid-state-devices-ssd-and-journaling/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Disabling file access time updates using noatime in OS X</title>
		<link>http://beyondabstraction.net/2008/11/06/noatime-mount-option-in-os-x/</link>
		<comments>http://beyondabstraction.net/2008/11/06/noatime-mount-option-in-os-x/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 19:23:44 +0000</pubDate>
		<dc:creator>spencer</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[BSD]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[tipsntricks]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://beyondabstraction.net/?p=225</guid>
		<description><![CDATA[The past few days people in Linux blogosphere have been bringing back up the noatime/nodiratime mount options. These options disable the updating of file and directory access times. On many standard systems when you read file a &#8220;last read,&#8221; or access time, timestamp is written to disk. Disabling the writing of access times can provide &#8230; </p><p><a class="more-link block-button" href="http://beyondabstraction.net/2008/11/06/noatime-mount-option-in-os-x/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>The past few days people in Linux blogosphere have been bringing back up the noatime/nodiratime mount options.  These options disable the updating of file and directory access times.  On many standard systems when you read file a &#8220;last read,&#8221; or access time, timestamp is written to disk. Disabling the writing of access times can provide performance increases in some conditions.  Probably in a lot of conditions.  Disabling the writing of these access times can be accomplished with the noatime and nodiratime mount options on a typical FS on a Linux system.  Well in OS X and hfs+ nodiratime doesn&#8217;t exist but noatime does.  </p>
<p>These options are old news to some.  I had used them in Linux in the past &#8211; heck I think it was even in the standard Gentoo install docs &#8211; but I had never them a second thought since I moved to OS X.  If you know me personally you know I can&#8217;t leave something untweaked.  And those recent discussions got me to thinking&#8230;</p>
<p>Be forewarned, I haven&#8217;t gone to great lengths to explain the concepts of the notes below so if you&#8217;ve never seen a terminal this isn&#8217;t going to be comprehendible.</p>
<p>I wanted to mount my filesystems with the noatime option in OS X to disable the updates to access times for files.  Problem is that, at least in 10.5, OS X no longer honors /etc/fstab for system disks, only for automount disks.  </p>
<p>After wrestling with it for awhile I gave upon trying to find a location where I could specify mount options for system disks.  I decided to just remount the disk later with the correct options.  I created a StartupItem entry to remount the disk.  I created a directory:</p>
<blockquote><p>
# mkdir /Library/StartupItems/spencer_boot
</p></blockquote>
<p>Then I created the StartupItem plist. Pretty straight forward.</p>
<blockquote><p>
# cat /Library/StartupItems/\<br />
spencer_boot/StartupParameters.plist</p>
<blockquote><p>
{<br />
  Description = &#8220;Spencer&#8217;s Boot Script&#8221;;<br />
  Provides = (&#8220;spencer_boot&#8221;);<br />
  OrderPreference = &#8220;None&#8221;;<br />
  Messages =<br />
  {<br />
    start = &#8220;Starting Spencer&#8217;s Boot Script&#8221;;<br />
    stop = &#8220;Stoping Spencer&#8217;s Boot Script&#8221;;<br />
    restart = &#8220;Restarting Spencer&#8217;s Boot Script&#8221;;<br />
  };<br />
}
</p></blockquote>
</blockquote>
<p>Now I needed the shell script that would be run on boot.</p>
<blockquote><p>
# cat /Library/StartupItems/spencer_boot/spencer_boot </p>
<blockquote><p>
#!/bin/sh</p>
<p>. /etc/rc.common</p>
<p>case &#8220;$1&#8243; in<br />
  start)</p>
<p>    ConsoleMessage &#8220;Starting Spencer Boot: remounting root fs noatime&#8221;<br />
    mount_hfs -o noatime /dev/disk0s2 /</p>
<p>    ;;<br />
esac</p>
<p>exit 0
</p></blockquote>
</blockquote>
<p>This solved the problem for the root fs but I also use Filevault.  If you don&#8217;t use Filevault you can stop reading here.  How would I go about this?  Same problem as before, no where to add mount time options.  Additionally the fs is mounted upon login, not boot.  So our previous method of creating a StartupItem won&#8217;t work.  We&#8217;re going to have to do it later after it has been mounted &#8211; again.  </p>
<blockquote><p><strong>&lt;redacted&gt;</strong> I did have some other information here but after review I wasn&#8217;t happy with advocating the &#8220;hack&#8221; I&#8217;m using.  But the gist of it is to run something like this: <code>/sbin/mount  -u -o noatime,nosuid,nodev /dev/disk1s2 /Users/spencer/</code> after the volume is mounted.  This happens after you enter your password.  So a good place would be login items if you can figure out how to run mount as root from a user&#8217;s startup scripts.<strong>&lt;/redacted&gt;</strong></p></blockquote>
<p>After you login and the system has completely finished running your startup apps open a terminal and type &#8220;mount&#8221;.  You should see &#8220;noatime&#8221; listed as a mount option for you system and Filevault disks.</p>
<p><a href="http://beyondabstraction.net/wp-content/uploads.hidden/2008/11/spencer_boot.sh" title="noatime OS X StartupItem script">spencer_boot shell script</a><br />
<a href="http://beyondabstraction.net/wp-content/uploads.hidden/2008/11/startupparameters.plist" title="noatime OS X StartItems StartupParameters.plist">StartupParameters.plist for the spencer_boot StartupItem</a><br />
<a href="http://beyondabstraction.net/wp-content/uploads.hidden/2008/11/remount_filevault.c" title="noatime Filevault remounter">remount_filevault for noatime in Filevault volumes</a></p>
]]></content:encoded>
			<wfw:commentRss>http://beyondabstraction.net/2008/11/06/noatime-mount-option-in-os-x/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>My favorite shell completion of all time&#8230;</title>
		<link>http://beyondabstraction.net/2008/10/21/my-favorite-shell-completion-of-all-time/</link>
		<comments>http://beyondabstraction.net/2008/10/21/my-favorite-shell-completion-of-all-time/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 22:30:07 +0000</pubDate>
		<dc:creator>spencer</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[leopard]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://beyondabstraction.net/?p=176</guid>
		<description><![CDATA[My favorite BASH shell completion of all time is hostname completion for all of my favorite commands: SSH_COMPLETE=( $(cat ~/.ssh/known_hosts &#124; \ cut -f 1 -d &#8216; &#8216; &#124; \ sed -e s/,.*//g &#124; \ uniq &#124; \ egrep -v [0123456789]) ) complete -o default -W &#8220;${SSH_COMPLETE[*]}&#8221; ssh scp sftp rsync nmap traceroute ping nslookup &#8230; </p><p><a class="more-link block-button" href="http://beyondabstraction.net/2008/10/21/my-favorite-shell-completion-of-all-time/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>My favorite BASH shell completion of all time is hostname completion for all of my favorite commands:</p>
<blockquote><p>SSH_COMPLETE=( $(cat ~/.ssh/known_hosts | \<br />
                 cut -f 1 -d &#8216; &#8216; | \<br />
                 sed -e s/,.*//g | \<br />
                 uniq | \<br />
                 egrep -v [0123456789]) )</p>
<p>complete -o default -W &#8220;${SSH_COMPLETE[*]}&#8221; ssh scp sftp rsync nmap traceroute ping nslookup dig host nmap nc</p></blockquote>
<p>I find most of the hosts I ssh into I use for basic network diagnostics.  So performing completion  for traceroute, ping, etc based on the contents of known_hosts works great.  Just add it to your .bashrc.</p>
<p><strong>Update: 2008/11/04</strong> </p>
<p>I&#8217;ve modified it to support completion of SVN commands leveraging the hostnames expanded during the SSH completion above:</p>
<blockquote><p><code>SVN_COMPLETE=( $(svn -h|grep -e '^   '|awk '{ print $1; }') $SSH_COMPLETE )<br />
complete -o default -W "${SVN_COMPLETE[*]} ${SSH_COMPLETE[*]}" svn</code></p></blockquote>
<p>Adding these may lengthen your shell exec tasks.  </p>
<p>I test at work. I work from home.  But I will not test from home.  Fix it yourself. (trademark pending).</p>
]]></content:encoded>
			<wfw:commentRss>http://beyondabstraction.net/2008/10/21/my-favorite-shell-completion-of-all-time/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

