<?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"
	>

<channel>
	<title>DCortesi . blog</title>
	<atom:link href="http://dcortesi.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dcortesi.com</link>
	<description>Coding, Security, and maybe a little bit about Damon Cortesi</description>
	<pubDate>Sun, 21 Sep 2008 10:20:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>GustavTracker Now Online, Tracking Help Requests</title>
		<link>http://dcortesi.com/2008/09/01/gustavtracker-now-online-tracking-help-requests/</link>
		<comments>http://dcortesi.com/2008/09/01/gustavtracker-now-online-tracking-help-requests/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 19:35:02 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[Coding]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://dcortesi.com/?p=1320</guid>
		<description><![CDATA[Last night, around 6pm EST, I started asking around Twitter to see what people were doing to help out with Gustav efforts. What I found were a lot of links to how people could find information about Gustav, but not very much in the way of active efforts to provide a means for disseminating actual [...]]]></description>
			<content:encoded><![CDATA[<p>Last night, around 6pm EST, I started asking around Twitter to see what people were doing to help out with Gustav efforts. What I found were a lot of links to how people could find information about Gustav, but not very much in the way of active efforts to provide a means for disseminating actual requests for help.</p>
<p>As an example, Twitter is a pretty big echo chamber and a simple request can get lost, even in <a href="http://search.twitter.com/search?q=gustav+help">targeted searches</a>. As I couldn&#8217;t find anything else and my <a href="http://marinamartin.com">cohort</a> was having trouble finding an official means of SMS communication via the Red Cross, <a href="http://gustavtracker.appspot.com">GustavTracker</a> was born.</p>
<p>I don&#8217;t know if this is the right way to address this problem, but I&#8217;m trying to do what little my nimble keyboard fingers can. This morning, I also came across a <a href="http://gustav08.ning.com/">Gustav Information Center Wiki</a> and it seems they&#8217;re doing some similar work. I&#8217;m currently in the process of trying to collaborate with them.</p>
<p>In the end, I fear it&#8217;s simply too late to get the necessary information made available. However, if you would like to help, please pass on the information about <a href="http://gustavtracker.appspot.com">GustavTracker</a> for those in need of something that the web community might be able to assist with.</p>
<p>It should be noted that the Red Cross has the <a href="http://twitter.com/safeandwell">@safeandwell</a> Twitter account that ties in to the official Red Cross <a href="https://disastersafe.redcross.org/default.aspx">Safe &#038; Well List</a>, but trying to find information relative to this channel was an exercise in futility.</p>
]]></content:encoded>
			<wfw:commentRss>http://dcortesi.com/2008/09/01/gustavtracker-now-online-tracking-help-requests/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Life Reboot</title>
		<link>http://dcortesi.com/2008/08/25/life-reboot/</link>
		<comments>http://dcortesi.com/2008/08/25/life-reboot/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 21:25:56 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[Personal]]></category>

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

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

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

		<guid isPermaLink="false">http://dcortesi.com/?p=1319</guid>
		<description><![CDATA[Well it&#8217;s been far too long since I&#8217;ve posted here, so I thought I should let my vast world of blog subscribers know what I&#8217;m up to (Hi, Mom). 
Living in Germany put a lot of different things in focus for me, as did the last time I spent an extended amount of time in [...]]]></description>
			<content:encoded><![CDATA[<p>Well it&#8217;s been far too long since I&#8217;ve posted here, so I thought I should let my vast world of blog subscribers know what I&#8217;m up to (Hi, Mom). </p>
<p>Living in Germany put a lot of different things in focus for me, as did the last time I spent an extended amount of time in a foreign place and ended up <a href="/2006/10/19/chchchchanges/">moving to Seattle</a>. No, I&#8217;m not moving to Germany, although I did definitely consider it. </p>
<p>I&#8217;ve been a professional security consultant for over six years now. While I&#8217;ve loved doing that and all the great experiences I&#8217;ve had (awesome people, doing work for top companies), I&#8217;ve always felt something was missing. I&#8217;ve always felt that there was a little more I could contribute. Ever since three months into doing this job, I&#8217;ve wanted to change how some things are done. At the heart of everything I do is a little voice that&#8217;s always trying figure out the best and most efficient ways to get things done. A little voice that asks me how and why something works that led me to disassemble numerous watches as a child. This same voice (perhaps not of reason) convinced me that I should leave my job in July when I returned from Germany and pursue some of those things in life that I feel I can make better. I usually don&#8217;t post much about my professional life since this is a personal blog, but this time my personal life is very heavily affected as I will be trying to go into business for myself.</p>
<p>For numerous reasons this was not an easy decision to make, but I feel the time in my life has come when I need to make this change or risk wondering for too long what I&#8217;m doing with my life. One of the other reasons is simply having more control of my life, with the ability to make decisions on my personal and business goals and desires. This constantly makes me think of one person - my father. He still to this day talks of how he would never work for anybody but himself - the freedom it allows, both to be ornery and independent, is something that can&#8217;t be matched. I&#8217;ve always admired him and for very long as a child felt that I should somehow follow in his footsteps. I always felt an unexplainable bit of guilt at not carrying on his profession, but I feel that by going out on my own I am somehow fulfilling that desire to proudly carry on in his footsteps.</p>
<p>The effects of this decision can already be felt. On a bit of a whim, I attended <a href="http://www.gnomedex.com/">Gnomedex 8.0</a> this weekend - a local Seattle Tech conference. Though only partially related to my professional life, I was often frustrated by a lack of a good means to provide feedback to speakers at conferences. I&#8217;m sorry, but filling out a paper form and mailing it in after the fact does <em>not</em> cut it in this day and age. Thus was born an all-nighter on Thursday preparing <a href="http://ratemytalk.com/">Rate My Talk</a>, a new service allowing for instant speaker feedback through the use of a Twitter bot. In what I feel was I surprisingly successful beta launch, I pimped my service at Gnomedex to provide to useful feedback for <a href="http://ratemytalk.com/cons/Gnomedex">Gnomedex speakers</a>. Though I am far from a marketing person, people seemed to like it and though there&#8217;s still a lot of work to be done, the choice and capacity to do that is something I would very likely not be able to do were I not newly self-employed.</p>
<p>And that&#8217;s where I am. A little life reboot to keep things interesting. Now, excuse me while I decide what interesting thing I want to work on this afternoon. <img src='http://dcortesi.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://dcortesi.com/2008/08/25/life-reboot/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Unicode Grep</title>
		<link>http://dcortesi.com/2008/07/16/unicode-grep/</link>
		<comments>http://dcortesi.com/2008/07/16/unicode-grep/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 02:20:53 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[Coding]]></category>

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

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

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

		<guid isPermaLink="false">http://dcortesi.com/?p=1317</guid>
		<description><![CDATA[I got caught by a bit of a bug today when I was trying to add a custom wallet item in 1Password. I was in the process of copying one of their templates after realizing they were just simple json, but couldn&#8217;t find the file where the description strings were stored. The file, Localizable.strings, that [...]]]></description>
			<content:encoded><![CDATA[<p>I got caught by a bit of a bug today when I was trying to <a href="http://zzamboni.org/brt/2007/12/17/how-to-define-a-new-wallet-item-in-1password/">add a custom wallet item in 1Password</a>. I was in the process of copying one of their templates after realizing they were just simple json, but couldn&#8217;t find the file where the description strings were stored. The file, <em>Localizable.strings</em>, that the above article eventually led me to turned out to be UTF-16, which grep cannot &#8230; grep through. After a little bit of googling, I came up with the following solution, which does a recursive case-insensitive grep in UTF-16 files on OS X.</p>
<pre class="output" style="overflow: auto;"><code>
for f in `find . -type f | xargs -I {} file {} | grep UTF-16 | cut -f1 -d\:`
        do iconv -f UTF-16 -t UTF-8 $f | grep -iH --label=$f ${GREP_FOR}
done
</code></pre>
<p><ins datetime="2008-07-17T02:27:55+00:00">Update</ins>: I also put an accompanying shell script on github (<a href="http://github.com/dacort/ugrep/">ugrep.git</a>) in the event that I need to make it a bit more flexible.</p>
]]></content:encoded>
			<wfw:commentRss>http://dcortesi.com/2008/07/16/unicode-grep/feed/</wfw:commentRss>
		</item>
		<item>
		<title>del.icio.us tag cloud</title>
		<link>http://dcortesi.com/2008/06/26/delicious-tag-cloud/</link>
		<comments>http://dcortesi.com/2008/06/26/delicious-tag-cloud/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 13:38:44 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[Tech]]></category>

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

		<category><![CDATA[del.icio.us]]></category>

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

		<guid isPermaLink="false">http://dcortesi.com/?p=1316</guid>
		<description><![CDATA[My del.icio.us tags tell quite a bit about me. Wonder if I could integrate this with TweetStats somehow&#8230;

]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://del.icio.us/dcortesi">del.icio.us</a> tags tell quite a bit about me. Wonder if I could integrate this with <a href="http://tweetstats.com">TweetStats</a> somehow&#8230;</p>
<p><a href="http://wordle.net/gallery/wrdl/33183/dcortesi%27s_del.icio.us_tags" title="Wordle: dcortesi&#39;s del.icio.us tags"><img src="http://wordle.net/thumb/wrdl/33183/dcortesi%27s_del.icio.us_tags" style="padding:4px;border:1px solid #ddd"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dcortesi.com/2008/06/26/delicious-tag-cloud/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google AJAX Search API Example Python Code</title>
		<link>http://dcortesi.com/2008/05/28/google-ajax-search-api-example-python-code/</link>
		<comments>http://dcortesi.com/2008/05/28/google-ajax-search-api-example-python-code/#comments</comments>
		<pubDate>Wed, 28 May 2008 08:29:58 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[Coding]]></category>

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

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

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

		<guid isPermaLink="false">http://dcortesi.com/2008/05/28/google-ajax-search-api-example-python-code/</guid>
		<description><![CDATA[For whatever reason, there aren&#8217;t many examples on the net of Python code that can be used with the Google AJAX Search API. I&#8217;m not really sure why this is and perhaps I&#8217;m missing something, but for future reference here&#8217;s some sample python code.

#!/usr/bin/python
import urllib
import simplejson

query = urllib.urlencode({'q' : 'damon cortesi'})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&#038;%s' \
  [...]]]></description>
			<content:encoded><![CDATA[<p>For whatever reason, there aren&#8217;t many examples on the net of Python code that can be used with the <a href="http://code.google.com/apis/ajaxsearch/">Google AJAX Search API</a>. I&#8217;m not really sure why this is and perhaps I&#8217;m missing something, but for future reference here&#8217;s some sample python code.</p>
<pre class="output" style="overflow: auto;"><code>
#!/usr/bin/python
import urllib
import simplejson

query = urllib.urlencode({'q' : 'damon cortesi'})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&#038;%s' \
  % (query)
search_results = urllib.urlopen(url)
json = simplejson.loads(search_results.read())
results = json['responseData']['results']
for i in results:
  print i['title'] + &#8220;: &#8221; + i['url']
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://dcortesi.com/2008/05/28/google-ajax-search-api-example-python-code/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RSS/Atom Feed view-source Bookmarklet</title>
		<link>http://dcortesi.com/2008/05/21/rssatom-feed-view-source-bookmarklet/</link>
		<comments>http://dcortesi.com/2008/05/21/rssatom-feed-view-source-bookmarklet/#comments</comments>
		<pubDate>Wed, 21 May 2008 12:19:43 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[Personal]]></category>

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

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

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

		<guid isPermaLink="false">http://dcortesi.com/2008/05/21/rssatom-feed-view-source-bookmarklet/</guid>
		<description><![CDATA[See, this is why I love Twitter. One of my gripes with Firefox is that it automatically assumes any RSS or atom feed I enter into the address bar is one that I want to subscribe to using some sort of feed reader like Google Reader. While this is true 90% of the time, there [...]]]></description>
			<content:encoded><![CDATA[<p>See, this is why I love Twitter. One of my gripes with Firefox is that it automatically assumes any RSS or atom feed I enter into the address bar is one that I want to subscribe to using some sort of feed reader like Google Reader. While this is true 90% of the time, there is that occasional instance where I actually want to see the plain text of the feed. I posed my question to the Twittersphere and merely moments later, somebody replied with just the right solution:</p>
<p><img src="http://dcortesi.com/wp/wp-content/uploads/2008/05/picture-4.png" alt="Picture 4.png" border="0" width="400" height="46" /></p>
<p>I gave it a shot and it worked perfectly, but the only problem was that it required a few too many keystrokes for my liking. With that in mind, I whipped up a quick bookmarklet to take care of it for me. Here&#8217;s the source in, conveniently enough, less than 140 characters.</p>
<p><code>javascript:(function(){s=location.href;location.href='view-source:'+unescape(s.substr(s.indexOf("feedurl")+8));})();void(0);</code></p>
<p>You can also just drag this <a href="javascript:(function(){s=location.href;location.href='view-source:'+unescape(s.substr(s.indexOf('feedurl')+8));})();void(0);">View Feed Source</a> link to your bookmarks.</p>
<p>Thanks, @<a href="http://twitter.com/popthestack">popthestack</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://dcortesi.com/2008/05/21/rssatom-feed-view-source-bookmarklet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Best Time to Visit Croatia</title>
		<link>http://dcortesi.com/2008/05/20/the-best-time-to-visit-croatia/</link>
		<comments>http://dcortesi.com/2008/05/20/the-best-time-to-visit-croatia/#comments</comments>
		<pubDate>Tue, 20 May 2008 19:09:21 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[Travel]]></category>

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

		<guid isPermaLink="false">http://dcortesi.com/2008/05/20/the-best-time-to-visit-croatia/</guid>
		<description><![CDATA[The best time of the year to visit Croatia, at least for me, is sometime in May. The crowds aren&#8217;t too thick, the weather is just right and not too hot for this Seattle guy.

Definitely not too bad. I went to Split at the last minute to take advantage of a long weekend. The picture [...]]]></description>
			<content:encoded><![CDATA[<p>The best time of the year to visit Croatia, at least for me, is sometime in May. The crowds aren&#8217;t too thick, the weather is just right and not too hot for this Seattle guy.</p>
<p><a href="http://www.flickr.com/photos/84075272@N00/2483195342" title="View 'Coastal view' on Flickr.com"><img src="http://farm3.static.flickr.com/2289/2483195342_8ec546087b_t.jpg" alt="Coastal view" border="0" width="100" height="75" /></a></p>
<p>Definitely not too bad. I went to Split at the last minute to take advantage of a long weekend. The picture above was not at all the image of Croatia that I had in my mind when somebody on Twitter suggested I visit there for the weekend. One hour after Googling &#8220;Split, Croatia&#8221; and seeing some of the results on Google Images, I had my ticket and hotel booked within the hour.</p>
<p>I arrived in Split on Saturday morning and even before I landed, I knew I had made the right choice for a relaxing weekend.</p>
<p><a href="http://www.flickr.com/photos/84075272@N00/2483077222" title="View 'Arrival in Croatia' on Flickr.com"><img src="http://farm3.static.flickr.com/2181/2483077222_0b0ba52a96_t.jpg" alt="Arrival in Croatia" border="0" width="100" height="75" /></a></p>
<p>I quickly realized after landing in Croatia that I would need some shades after having lost mine a couple weeks earlier. After finding the hotel (not the easiest task given the streets of Split), checking in and procuring some shades, I started simply wandering the streets of Split. I easily found myself basking under the blue skies both under cover and right on some stairs leading into the Adriatic Sea.</p>
<p><a href="http://www.flickr.com/photos/84075272@N00/2482356493" title="View 'Canvas sky' on Flickr.com"><img src="http://farm4.static.flickr.com/3030/2482356493_bd0558ff5d_t.jpg" alt="Canvas sky" border="0" width="75" height="100" /></a> <a href="http://www.flickr.com/photos/84075272@N00/2482397707" title="View 'Bar on the coast' on Flickr.com"><img src="http://farm3.static.flickr.com/2418/2482397707_4874edf7af_t.jpg" alt="Bar on the coast" border="0" width="100" height="75" /></a> <a href="http://www.flickr.com/photos/84075272@N00/2483208854" title="View 'Stairs into the Sea' on Flickr.com"><img src="http://farm4.static.flickr.com/3227/2483208854_20fd8ed809_t.jpg" alt="Stairs into the Sea" border="0" width="75" height="100" /></a> </p>
<p>And that was really all I ended up doing on my first day. I was pretty tired from all that sun (oh woe is me) and passed out early in the evening only to wake up around 9pm and find someplace to settle down for some fresh octopus.</p>
<p>Day 2 was more of the same with the exception that I got up early intending to go for a run and ended up hiking through a park, finding churches set into cliffsides and relaxing on a beach.</p>
<p><a href="http://www.flickr.com/photos/84075272@N00/2486958837" title="View 'The views are simply dazzling...' on Flickr.com"><img src="http://farm4.static.flickr.com/3107/2486958837_95592d26a4_t.jpg" alt="The views are simply dazzling..." border="0" width="100" height="75" /></a> <a href="http://www.flickr.com/photos/84075272@N00/2486971579" title="View 'But then around back, built into the cliff' on Flickr.com"><img src="http://farm4.static.flickr.com/3064/2486971579_4cc69f73fe_t.jpg" alt="But then around back, built into the cliff" border="0" width="75" height="100" /></a> <a href="http://www.flickr.com/photos/84075272@N00/2486981307" title="View 'Not getting much closer to my goal...' on Flickr.com"><img src="http://farm4.static.flickr.com/3040/2486981307_b9e8cea1f9_t.jpg" alt="Not getting much closer to my goal..." border="0" width="100" height="75" /></a></p>
<p>I settled down into an afternoon pizza, relaxed some more and then checked out a sweet concert by the coast. The band, <a href="http://kries.info">Kries</a>, was very unique and the bagpipes were the most authentic ones I had ever seen.<br />
<a href="http://www.flickr.com/photos/84075272@N00/2487850166" title="View 'Now those are some bagpipes!' on Flickr.com"><img src="http://farm4.static.flickr.com/3247/2487850166_1c273ebef6_t.jpg" alt="Now those are some bagpipes!" border="0" width="75" height="100" /></a></p>
<p>The last day was mostly souvenir shopping, checking out the cathedral and the tower next to. Now I&#8217;m not usually prone to a fear of heights, but this rickety stairway up the tower definitely made me happy once I was back on solid ground.</p>
<p><a href="http://www.flickr.com/photos/84075272@N00/2487167255" title="View 'Stairs leading to the top of the tower.' on Flickr.com"><img src="http://static.flickr.com/2203/2487167255_d9672a47f6_t.jpg" alt="Stairs leading to the top of the tower." border="0" width="" height="" /></a></p>
<p>You can check out more pictures of my <a href="http://flickr.com/photos/dcortesi/collections/72157605021031396/">Split, Croatia</a> trip on Flickr.</p>
]]></content:encoded>
			<wfw:commentRss>http://dcortesi.com/2008/05/20/the-best-time-to-visit-croatia/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Delete Twitter Direct Messages</title>
		<link>http://dcortesi.com/2008/05/02/delete-twitter-direct-messages/</link>
		<comments>http://dcortesi.com/2008/05/02/delete-twitter-direct-messages/#comments</comments>
		<pubDate>Fri, 02 May 2008 22:54:54 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[Coding]]></category>

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

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

		<guid isPermaLink="false">http://dcortesi.com/2008/05/02/delete-twitter-direct-messages/</guid>
		<description><![CDATA[*****
This is a hack.
This is not guaranteed to work.
Twitter may change their website at any time.
I am not responsible if something breaks or you decide to delete all your DM&#8217;s.
Nor am I responsible if your friends get mad at you for deleting your sent DM&#8217;s from their Inbox.

*****
That being said, I&#8217;d like to introduce my [...]]]></description>
			<content:encoded><![CDATA[<p><strong>*****</strong></p>
<blockquote><p>This is a hack.<br />
This is not guaranteed to work.<br />
Twitter may change their website at any time.<br />
I am not responsible if something breaks or you decide to delete all your DM&#8217;s.<br />
Nor am I responsible if your friends get mad at you for deleting your sent DM&#8217;s from their Inbox.
</p></blockquote>
<p><strong>*****</strong></p>
<p>That being said, I&#8217;d like to introduce my DM Whacker, DM Deleter, DM Sniper, whatever you want to call it I created a tool to delete your direct messages en-masse on <a href="http://twitter.com/">Twitter</a>. After the recent debacle regarding <a href="http://www.techcrunch.com/2008/04/23/privacy-disaster-at-twitter-direct-messages-exposed/">direct messages being exposed</a>, I definitely saw a need amongst some Tweeters do delete their direct messages. </p>
<p>I need to thank <a href="http://twitter.com/chris4403">@chris4403</a> who posted his awesome <a href="http://chris4403.blogspot.com/2008/03/translate-twitter-greasemonkey-and.html">Twitter Translate bookmarklet</a> recently. Were it not for that, I would not have had the motivation nor the codebase off which to build my first bookmarklet.</p>
<p>With that introduction, I&#8217;d like to point you in the direction of the new <a href="/tools/dm-deleter/">DM Deleter</a>. Simply drag the link that&#8217;s in that page up to your Firefox or Safari bookmark bar, navigate to your direct messages, click the bookmark and select your options to delete your DM&#8217;s once and for all. The tool allows you to delete all of your messages, or just messages from certain friends.</p>
<p>My apologies for the additional link, but I just wanted to reinforce the point that this tool <strong>will delete your direct messages forever</strong>. So, use it with care.</p>
<p>Feedback welcome. The ability to delete sent messages <strike>will be added in as well soon</strike>has been added in version 0.2.4.</p>
]]></content:encoded>
			<wfw:commentRss>http://dcortesi.com/2008/05/02/delete-twitter-direct-messages/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Twitter Reputation Statistics</title>
		<link>http://dcortesi.com/2008/04/27/twitter-reputation-statistics/</link>
		<comments>http://dcortesi.com/2008/04/27/twitter-reputation-statistics/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 21:20:29 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[Internet]]></category>

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

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

		<guid isPermaLink="false">http://dcortesi.com/2008/04/27/twitter-reputation-statistics/</guid>
		<description><![CDATA[OK, I figure it&#8217;s time to throw my hat into the ring.
I&#8217;ve posted in the past about Twitter spam and I run what I think to be a pretty fun website about Twitter Stats, but there seems to be a lot of conversation recently about Twitter and the noise ratio.
Obviously, people are trying to figure [...]]]></description>
			<content:encoded><![CDATA[<p>OK, I figure it&#8217;s time to throw my hat into the ring.</p>
<p>I&#8217;ve posted in the past about <a href="/2008/04/16/addressing-twitter-spam-through-statistical-analysis/">Twitter spam</a> and I run what I think to be a pretty fun website about <a href="http://tweetstats.com">Twitter Stats</a>, but there seems to be a lot of conversation recently about Twitter and the noise ratio.</p>
<p>Obviously, people are trying to figure out how best to use Twitter given its recent surge in popularity and accompanying spaminess. Louis Gray made a blog post about his <a href="http://www.louisgray.com/live/2008/04/whats-your-twitter-noise-ratio.html">noise ratio</a> and Stowe Boyd followed up with a post about the noise ratio and <a href="http://www.stoweboyd.com/message/2008/04/the-twitter-con.html">conversational index</a>, but there&#8217;s one thing that seems to be common across both these posts:</p>
<p><strong>There is a super-fantastic problem in that both posts discuss one, <em>one</em> ratio!</strong></p>
<p>That&#8217;s right - one ratio to describe the entire activity of Twitterites. One ratio to rule them all, one ratio to find them, one ratio to bring them all and in the darkness bind them.</p>
<p>OK, perhaps these posts were intended to be their own personal way of determining a proper reputation structure on Twitter, but there is so much more data available to play with. Shall we? Yes, let&#8217;s take a look at all the numbers we have to play with:</p>
<ul>
<li>Friends</li>
<li>Followers</li>
<li>Favorites</li>
<li>Updates</li>
<li>Date joined Twitter</li>
<li>Number of updates over time</li>
<li>Number of updates in the past month vs. when the first joined Twitter</li>
<li>% of updates that contain links</li>
<li>% of updates that are replies</li>
<li>Number of mentions of the word &#8220;awesome&#8221;</li>
</ul>
<p>These are just a few of the numbers that Twitter provides and while the noise ratio is a nice statistics, it is most definitely not a holistic means of providing a method by which to rate the reputation of a Twitter user. And there never will be such a means. Myself and @wardspan had a conversation this evening where we discussed the top three things we use to determine if we&#8217;re going to follow somebody. I think we only shared one in common of our top 3 and we tend to be pretty similar-minded. But we use Twitter for different reasons.</p>
<p>And it is with this post that I call out for a reasonable reputation system across our many services. Twitter is one such example, but there have been others in the past (yes, those other social networks) that have dealt with the same reputational issue, not to mention spam.</p>
<p>And it&#8217;s not getting better. I signed up for FriendFeed today and created a profile of my real self&#8217;s online activity. The scary thing is&#8230;I could have created the same profile for anybody else and the question to ask yourself is would anybody have known any better? In addition, in their case - does it even matter? Or are they redirecting their trust to the other systems they are using to generate their content.</p>
<p>Just imagine, if we could create a reliable reputation system across the services that we use to provide us with better and more interesting, targeted content on a daily basis. If only&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://dcortesi.com/2008/04/27/twitter-reputation-statistics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Addressing Twitter Spam Through Statistical Analysis</title>
		<link>http://dcortesi.com/2008/04/16/addressing-twitter-spam-through-statistical-analysis/</link>
		<comments>http://dcortesi.com/2008/04/16/addressing-twitter-spam-through-statistical-analysis/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 08:43:39 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[Internet]]></category>

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

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

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

		<guid isPermaLink="false">http://dcortesi.com/2008/04/16/addressing-twitter-spam-through-statistical-analysis/</guid>
		<description><![CDATA[A brief update - top 3 things that can be done to help users weed out spam:

Make the block functionality more accessible - did you find it underneath the &#8220;Following&#8221; legend?
Provide basic stats about a user in the notification email - location, bio and some ratio information
Use backend monitoring/analysis to `killall -9` spammer accounts (block [...]]]></description>
			<content:encoded><![CDATA[<p>A brief update - top 3 things that can be done to help users weed out spam:</p>
<ol>
<li>Make the block functionality more accessible - did <em>you</em> find it underneath the &#8220;Following&#8221; legend?</li>
<li>Provide basic stats about a user in the notification email - location, bio and some ratio information</li>
<li>Use backend monitoring/analysis to `killall -9` spammer accounts (block ratio, usage trends indicative of automation, etc)</li>
</ol>
<p>As with any social network, spammers appear to take advantage of the collective masses that are gathered and interacting with each other. This is no different on Twitter, where numerous people have complained recently about massive follows from spam accounts. These accounts typically take the form of a high following:friend ratio and a low number of updates. There is even a site devoted to Twitter spam, <a href="http://www.twitterspam.com/">twitterspam.com</a>. There&#8217;s quite a bit of other information we can examine, but let&#8217;s tackle this in order of the two main types of spam I&#8217;ve come across.</p>
<p>The first is embodied in the <a href="http://twitter.com/castlebaths" rel="nofollow">@castlebaths</a> account. Statistics that indicate this as a possible spam account:
<ul>
<li><strong>20% of links</strong> in the first 20 updates are the same as the bio link</li>
<li>There are <strong>zero replies</strong> in the account (note: not unlike a new Twitter user)</li>
<li>There&#8217;s an average of <strong>1.15 updates/follower</strong></li>
<li>The users &#8220;Friends&#8221; account for <strong>95% of the aggregate friends and followers</strong></li>
</ul>
<p>Now this account may very well be legitimate, but I doubt many people want to follow somebody on Twitter that is simply hawking a product and not contributing much beyond that. Taking these values and creating an aggregate score would probably score pretty high on the spam card.</p>
<p>Let&#8217;s take a look at another account, <a href="http://twitter.com/kendra2" rel="nofollow">@kendra2</a>. This account is a little bit more difficult to identify as spam through the numbers:
<ul>
<li><strong>5% of the urls</strong> in the first 20 updates are the same as the bio link (that&#8217;s one url for those not counting)</li>
<li>This account has actually replied to people</li>
<li>There are <strong>only 14 updates</strong>, but</li>
<li>The users &#8220;Friends&#8221; account for <strong>95% of the aggregate friends and followers</strong></li>
</ul>
<p>This is an interesting account since it seems to be an actual person trying to interact, but the bio link is actually the telltale sign here - videochatonline is a webcam site and @kendra2 is obviously trying to bring traffic to that site. The numbers do not clearly mark this as spam, but the last two statistics seem to indicate this account has been <em>created solely for the purpose driving traffic outside of Twitter</em>. Other signs are the &#8220;pretty girl&#8221; avatar, bio link to a commercial site and potentially similar profiles.</p>
<p>As a Twitter user, what other statistics can I use to identify spam that Twitter (or somebody else&#8230;) might be able to provide?
<ul>
<li># of my friends that _also_ follow the account</li>
<li># of accounts without autofollow that are following the account</li>
<li># of inactive accounts being followed by the new user</li>
<li>Are consecutive accounts being followed?</li>
</ul>
<p>There&#8217;s also a <strong>number of back end statistics</strong> that can be utilized by Twitter such as unique IP addresses in use across large numbers accounts, clickstream rates and patterns and other similarities across multiple accounts. Reporting spam isn&#8217;t always useful, but observing the (generally predictable) behavior of spammers and the interaction of the users with those accounts is a step forward.</p>
<p>Is spam an easy problem? Obviously not or we wouldn&#8217;t have blog, email, trackback, comment and postal spam. Will there be false positives? Sure. However the numbers above can help in both the automatic identification of spam accounts and providing users with enough topical information to make smart decisions to help alleviate their frustration as well. Furnishing an <em>easy</em> means by which to report/block spam is also a necessary evil. Twitter has hummed along relatively under the spam radar until now, but it seems it has to accept that spammers will try to take advantage of its users. <strong>Giving users the power to identify and avoid spam through the use of statistics will hopefully make Twitter a fruitless source of successful spam.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://dcortesi.com/2008/04/16/addressing-twitter-spam-through-statistical-analysis/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

