<?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>Red Sweater Blog &#187; Web</title>
	<atom:link href="http://www.red-sweater.com/blog/category/articles/web/feed" rel="self" type="application/rss+xml" />
	<link>http://www.red-sweater.com/blog</link>
	<description>Mac &#38; Technology Writings by Daniel Jalkut</description>
	<lastBuildDate>Tue, 17 Jan 2012 22:03:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>How To Talk Dirty</title>
		<link>http://www.red-sweater.com/blog/2266/how-to-talk-dirty</link>
		<comments>http://www.red-sweater.com/blog/2266/how-to-talk-dirty#comments</comments>
		<pubDate>Wed, 09 Nov 2011 20:18:29 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Rant]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=2266</guid>
		<description><![CDATA[Today there is much chatter on Twitter about Brittany Tarvin&#8217;s A Letter to the Developer Community. In a nutshell: Brittany attended MacTech last week, and was offended by the unprofessional vibe in a few instances, but in particular, with regard to sexual jokes that comprised the content of one. It reads to me less like [...]]]></description>
			<content:encoded><![CDATA[<p>Today there is much chatter on Twitter about Brittany Tarvin&#8217;s <a href="http://wildchocolate.tumblr.com/">A Letter to the Developer Community</a>. In a nutshell: Brittany attended <a href="http://www.mactech.com/conference/about">MacTech</a> last week, and was offended by the unprofessional vibe in a few instances, but in particular, with regard to sexual jokes that comprised the content of one. It reads to me less like she was less personally offended than surprised and disappointed by the behavior of her peers. My takeaway after reading her piece is that she feels juvenile humor simply does not have a place at a professional conference.</p>
<p>Judging by the massive response on Twitter in support of her opinion, I think that most people tend to agree. However, I think that the vagueness of her description of the incident leaves much to the imagination, and is causing people to leap to condemnation of the talk, the conference, and the industry. I am not saying the condemnation is unwarranted, but my feelings about this particular event are complicated, and I think yours might be too, if you knew more of the details.</p>
<p>The talk in question was titled <a href="http://www.mactech.com/conference/sessions">The Ten Dirty Words and How To Use Them</a>. The talk was given by my friend <a href="http://www.notesfromandy.com/">Andy Lee</a>, and his synopsis from the conference session descriptions reads:</p>
<blockquote>
<p>In 2003, I came up with &#8220;The Top Ten Cocoa Words That Sound Dirty But Aren&#8217;t.&#8221; By finding APIs via this arbitrary way, we talk a random stroll through Cocoa, which can stimulate curiosity and lead to new discoveries and new questions. What would you guess NSInsertionPosition is for? (I incorrectly guessed text editing.) It can also be worthwhile reviewing familiar ground. We all autorelease &#8212; some of us every day &#8212; but it may still be possible to learn a thing or two about it. I will talk about the proper use of each word in the list.</p>
</blockquote>
<p>To give you a more specific idea of the offensiveness of the API method names that Andy discussed, take a look at his blog post <a href="http://www.notesfromandy.com/2011/05/14/ten-cocoa-words-plus-two/">listing the API methods</a> under discussion. [<strong>Update: </strong>MacTech has just posted <a href="http://www.mactech.com/sites/default/files/Lee-Ten_Dirty_Words_and_How_to_Use_Them.pdf">slides from the talk</a>.]</p>
<p>The genius of this talk is it takes a running gag in the Cocoa community, that occasional API names here and there were unfortunately named, and runs with that gag as a scaffolding for exploring the specific APIs in more detail. As for the sexual jokes, I think they basically write themselves in the individual minds of the audience. As anybody who has sat through an all-too-dry conference talk about the specific technical blah, blah, blah of any subject can attest, it is generally a good idea to <em>inject some humor</em> into a talk&#8217;s structure.</p>
<p>So was the humor in this case too much, or too vulgar? I&#8217;m sure that Brittany was not the only person in the room who was offended by the talk. On the other hand, as the one &#8220;comic relief&#8221; talk in a 3 day schedule that contained more than its fair share of professionalism, I think it&#8217;s probably fair to say that some members of the audience were relieved to have a chance to laugh about something.</p>
<p>Injecting humor into any talk is dangerous. Especially with a diverse crowd, you are liable to offend somebody. Jokes of a sexual nature are even more dangerous. Even if the joke is not sexist, per se, there is a strong possibility that members of the audience will take offense because of sexual taboos in society. I also imagine the discussion of sex in a strongly gender-imbalanced setting will make members of the minority gender more uncomfortable than the rest of the room.</p>
<p>But neglecting to inject humor is also dangerous. The Mac and iOS communities have a strong tradition of humor in our conferences. Many of us feel annoyed and cheated by a conference if there isn&#8217;t a bit of liveliness. So, it goes both ways. It&#8217;s important to process this incident carefully to understand how it went wrong. Was the problem that there was a session with a noticeably lower level of &#8220;seriousness&#8221; than the other sessions? Was it that the session&#8217;s jokes were of a sexual nature? Or was it that the sexual nature of the talk&#8217;s jokes were not made clear enough to the audience before it took place?</p>
<p>I think what is happening on the web now is many people are seizing onto the angle of Brittany&#8217;s complaint that most resonates with their own frustrations about the conduct of our community. This is a valuable reaction and a good opening for further exploration. But what isn&#8217;t useful is the large number of people who are condemning the conference and the speaker without significant information about the context of what happened. I hope that I have at least helped to clarify that to some extent. If you still feel that blanket condemnation is the appropriate response, then I&#8217;m happier with your opinion now that you&#8217;ve read mine.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/2266/how-to-talk-dirty/feed</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Twitter Security Smackdown</title>
		<link>http://www.red-sweater.com/blog/1864/twitter-security-smackdown</link>
		<comments>http://www.red-sweater.com/blog/1864/twitter-security-smackdown#comments</comments>
		<pubDate>Thu, 19 May 2011 04:08:23 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Rant]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=1864</guid>
		<description><![CDATA[Today Twitter announced a few distinct policy changes for clients of their API, all wrapped up under the banner of improved security permissions for end-users. The best response I&#8217;ve seen yet is from John Gruber, who smells something funny in the deli. I tend to agree. The announcements today comprise some useful security enhancements, but [...]]]></description>
			<content:encoded><![CDATA[<p>Today Twitter <a href="http://groups.google.com/group/twitter-api-announce/browse_thread/thread/e954fc0f8b5aa6ec">announced</a> a few distinct policy changes for clients of their API, all wrapped up under the banner of improved security permissions for end-users. The best response I&#8217;ve seen yet is from John Gruber, who <a href="http://daringfireball.net/2011/05/twitter_shit_sandwich">smells something funny</a> in the deli. I tend to agree. The announcements today comprise some useful security enhancements, but the security gains from some of the decisions that were announced are not so great that they offset the serious disadvantage they impose on 3rd party developers, particular developers of native mobile and desktop apps.</p>
<p>Let me break the announcements today into three policy change assertions, and how I react to them.</p>
<ol>
<li>
<p><strong>Access to Twitter direct messages will require a new level of user-granted permission.</strong> This is a great thing! I recently tweeted that exactly something like this was necessary, because I&#8217;ve grown tired of giving <em>every damn service </em>that I wish to connect to Twitter, access to all my confidential direct messages. The new permission allows developers of client apps to state their desired permissions, and those permissions will be listed prominently on <a href="http://twitter.com/settings/applications">your list of approved applications</a>.</p>
<p><strong>Verdict: Kudos, Twitter</strong>.</p>
</li>
<li>
<p><strong>Developers of Twitter clients will be <em>required</em> to use OAuth in order to gain this new permission. </strong>In laymen terms, this means client apps can&#8217;t log you in with just your username and password. You will need to be redirected to the web. This requirement is ostensibly because Twitter wants to increase the likelihood that end-users will be made aware of exactly which permissions a client application is requesting. Without this requirement, a native application could <em>claim to seek read-only access</em>, but behind the scenes be using your username and password, by way of Twitter&#8217;s xAuth solution, to request a higher level of permission than you intended to allow.</p>
<p>I concede that this requirement is, on the face of it, an added protection for customers who are wary of providing Twitter credentials to an untrusted app. But here&#8217;s the catch with native software: you better trust it, because there is no shortage of ways in which it could screw you. It&#8217;s running with <strong>some degree of elevated permission on your own device</strong>. Twitter putting shackles on native app developers in the name of security is laughable. For example, it would be easy for an untrustworthy native app to provide a custom, compromised browser view that purports to drive a user through the Twitter OAuth permission flow with a given permission, but is actually requesting a different level of permission in a second, undisplayed web flow.</p>
<p>This is not to say that we shouldn&#8217;t bother reining in native software that may be flawed or whose permission we may want to revoke. This is what is so clever about the xAuth workflow, the compromise that allows native apps to authenticate as if by way of an OAuth flow, but using a user&#8217;s username and password to facilitate the process. If an end-user or Twitter itself loses confidence in an xAuth based application, they can <em>still</em> revoke access to the application in the same way they would for any other OAuth managed client.</p>
<p><strong>Verdict: Nice try, but if you don&#8217;t trust your native software, Twitter can&#8217;t do much to keep you from getting screwed.</strong></p>
<p><em></em></li>
<li>
<p><strong>These requirements apply unilaterally to all native clients. Except Twitter&#8217;s.</strong> I grant you, <em>it makes sense</em> for a company to exempt itself from security restrictions that are imposed to prevent &#8220;bad guys&#8221; from taking control of a user&#8217;s credentials and doing damage to the user or to Twitter itself. But this story is complicated by the fact that Twitter entered a competitive market of native clients of its own system, where for years it was not a player, and then proceeded to adopt increasingly developer-hostile attitudes. In particular towards developers of software that aims to fill that coveted role of a &#8220;general purpose read/write Twitter client.&#8221;</p>
<p>Is it illegal to do what Twitter has done? Absolutely not, nor should it be. But in my opinion these 3rd party developers were a valuable asset that was pivotal in building passion for Twitter in the earliest years of its existence. Many of the features that we take for granted in Twitter itself were prototyped in 3rd party native applications. Hell, even Twitter&#8217;s own native Mac app was <em>itself a 3rd party application</em> (Tweetie) until not too long ago.</p>
<p>Twitter&#8217;s attitude towards these developers seems to be: thanks for all the help, but we&#8217;re done with you. The fact that Twitter is willing to &#8220;whitelist&#8221; their own apps further suggests that this may not be a pure security play. Only legitimate developers of trustworthy apps would be interested in seeking an API key to connect to Twitter. If your aim is to write malevolent software that abuses Twitter or its users, you should be content to take an app like Twitter&#8217;s own Mac client, extract the portions that communicate &#8220;securely&#8221; with Twitter, and build your own app that only the savviest user will notice is actually posting to Twitter as &#8220;Twitter for Mac.&#8221;</p>
<p>Twitter&#8217;s willingness to exempt any apps from the OAuth procedure is a concession that they don&#8217;t view xAuth authentication as <em>inherently</em> insecure. But they want to limit which API keys get the privilege of continuing to use it. So, expand that list of API keys. At the <em>very least</em>, add long-time supporters such as Iconfactory&#8217;s <a href="http://iconfactory.com/software/twitterrific">Twitterrific</a>. Better? Provide some kind of approval process through which any qualified developer can seek first-class status. Best of all? Stick to what OAuth and xAuth are best for: providing the power to revoke access for bad actors after bad intentions are discovered. Forcing applications through OAuth is not going to prevent offensive, buggy, or intentionally malevolent code from being authorized by users, but it is going to degrade the user experience for all native clients except, oh, how about that? Twitter&#8217;s own.</p>
<p><strong>Verdict: Dick move, Twitter.</strong></p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/1864/twitter-security-smackdown/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Fix Tumblr</title>
		<link>http://www.red-sweater.com/blog/1801/fix-tumblr</link>
		<comments>http://www.red-sweater.com/blog/1801/fix-tumblr#comments</comments>
		<pubDate>Sun, 20 Mar 2011 01:19:00 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=1801</guid>
		<description><![CDATA[For several months now, Tumblr has apparently been a victim of its own success. What used to be known as a super-popular, well-designed, streamlined blogging service with lots of internet-famous blogs hosted on it, is increasingly known as all that and also as a flakey, unreliable service. Folks who host their blogs on Tumblr are [...]]]></description>
			<content:encoded><![CDATA[<p>For several months now, <a href="http://www.tumblr.com/">Tumblr</a> has apparently been a victim of its own success. What used to be known as a super-popular, well-designed, streamlined blogging service with lots of internet-famous blogs hosted on it, is increasingly known as all that and also as a flakey, unreliable service. Folks who host their blogs on Tumblr are up-in-arms about the frustrating error-proneness and downtime of the service.</p>
<p>My primary product, <a href="http://www.red-sweater.com/marsedit/">MarsEdit</a>, is a desktop blogging client that interfaces with Tumblr, among dozens of other types of blogs. The reduced reliability of Tumblr, and in particular of its API, has meant a deeply compromised experience for our customers in common. This means that I also suffer some pain in the midst of Tumblr&#8217;s flakiness, because I have to support an unreliable service and explain to customers that MarsEdit is affected by Tumblr downtimes as well.</p>
<p>Some of Tumblr&#8217;s greatest assets are the deeply respected bloggers who trust Tumblr to host their writing. They serve as implicit spokespeople for the service each time they publish an entry, and more explicitly so when participating in Tumblr&#8217;s own social network, raving about the site on Twitter, at conferences, etc.</p>
<p>As flakiness continues, the tone of endorsements is turning negative. I regularly see sarcastic snipes against the service in my Twitter feed, and even on blogs that are hosted by Tumblr itself. Garrett Murray&#8217;s frustration peaked yesterday when he posted <a href="http://log.maniacalrage.net/post/3942771810/tumblrs-new-error-page-view-full-size-look-i">a sarcastic revision</a> to Tumblr&#8217;s increasingly famous &#8220;downtime&#8221; graphic. Steven Frank of <a href="http://www.panic.com/">Panic</a> fame <a href="http://twitter.com/#!/stevenf/status/49201250163630080">chimed in today</a> on Twitter:</p>
<blockquote><p>It occurs to me that Tumblr is also growing exponentially with no apparent income source. I should look for a new home, pre-dickbar.</p></blockquote>
<p>Tumblr has a problem. Since late 2010 and for all of 2011 they have been suffering enough downtime and flakiness that a growing chorus of users is lambasting the service. Without judging whether that&#8217;s fair or justified, let&#8217;s accept that what used to be a widely lauded service is becoming a widely criticized one.</p>
<p>But how big of a problem is it if, as Steven Frank suggested in his tweet, the service continues to grow its membership by leaps and bounds? My theory is Tumblr&#8217;s continued success in signing up new customers is both thanks to and at the expense of their influential early adopters. Folks who helped to build Tumblr&#8217;s reputation over the past several years are now suffering, presumably because of Tumblr&#8217;s ravenous ingestion of new users. If this keeps up, the influential &#8220;power-bloggers&#8221; will quit Tumblr and move on to more reliable services. Tumblr will be left with millions of users, who I&#8217;m sure are perfectly nice people, but who don&#8217;t exert as great an influence in the web world.</p>
<p>What should Tumblr do? If the failure to rein in performance and uptime issues is connected to success in signing up new customers, then they should stop signing up new customers. Sound foolish? In Tumblr&#8217;s position I would do whatever it takes to bring back the level of service that users enjoyed before the &#8220;great downtime of 2010.&#8221; Happy, influential customers paved the way for Tumblr&#8217;s success, and bringing back that enthusiasm is the best way to perpetuate success far into the future.</p>
<p>If Tumblr turned off new user registrations today and added a &#8220;notify me when more new users are being accepted&#8221; sign-up form, it would provide breathing room to focus on fixing the experience for current customers. Framed correctly, it would also make those customers feel cared for and important, something they probably aren&#8217;t feeling so much at the moment. Yes, for prospective customers it would be a slap in the face. Nobody wants to feel shut out. But if given a choice, protect your existing, not future customers. Web services build buzz all the time with limited, invitation-only beta testing intros. It would be a step backwards for Tumblr, but it would also re-establish a sense of exclusivity that would pay dividends after issues are resolved and open enrollment returns.</p>
<p>It&#8217;s easy to armchair-quarterback another business when you don&#8217;t know any of the details. I&#8217;m sure the challenges at Tumblr are diverse and hard to pin down to my convenient diagnosis of &#8220;too many users.&#8221; But if you&#8217;re bailing out a sinking boat, the first thing to do is stop admitting new passengers.</p>
<p>I hope Tumblr figures out a way to solve this for the long run. My customers depend on it. Their customers depend on it. And the longevity of the company itself depends on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/1801/fix-tumblr/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>What Is Blogging?</title>
		<link>http://www.red-sweater.com/blog/1714/what-is-blogging</link>
		<comments>http://www.red-sweater.com/blog/1714/what-is-blogging#comments</comments>
		<pubDate>Wed, 23 Feb 2011 17:24:01 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=1714</guid>
		<description><![CDATA[In response to my comment on Twitter about wanting to commission a good entry-level web site for aspiring bloggers, Ian Beck experiments with nailing down exactly what blogging is. Obviously, it&#8217;s many, many, things. Like chess, you can teach the ground rules to somebody, who then has a practically limitless number of choices about how [...]]]></description>
			<content:encoded><![CDATA[<p>In response to my <a href="http://twitter.com/#!/danielpunkass/status/40433844356251648">comment on Twitter</a> about wanting to commission a good entry-level web site for aspiring bloggers, Ian Beck experiments with <a href="http://beckism.com/2011/02/what-is-blogging/">nailing down exactly</a> what blogging is. Obviously, it&#8217;s many, many, things. Like chess, you can teach the ground rules to somebody, who then has a practically limitless number of choices about how they deploy with those rules.</p>
<p>Some of Ian&#8217;s remarks are inspiring, and may encourage you to blog more even if you <em>already know</em> what blogging is. I particularly like the simplicity of:</p>
<blockquote>
<p>Blogging is sharing something you have created online. And then doing it again tomorrow (or next week, or next month, or next year). And again.</p>
</blockquote>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/1714/what-is-blogging/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Authentic Comments</title>
		<link>http://www.red-sweater.com/blog/1704/authentic-comments</link>
		<comments>http://www.red-sweater.com/blog/1704/authentic-comments#comments</comments>
		<pubDate>Tue, 22 Feb 2011 21:32:35 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=1704</guid>
		<description><![CDATA[I was inspired to think about the problem of impersonation on the web, when I read Caterina Fake&#8217;s comment on Twitter, bemoaning the fact that somebody was able to impersonate her in a comment on GigaOm. Because they used an email associated with her by Gravatar, the comment gained an element of authenticity because her avatar [...]]]></description>
			<content:encoded><![CDATA[<p>I was inspired to think about the problem of impersonation on the web, when I read Caterina Fake&#8217;s <a href="https://twitter.com/caterina/status/39935668142473216">comment on Twitter</a>, bemoaning the fact that somebody was able to impersonate her in a comment on <a href="http://gigaom.com/">GigaOm</a>. Because they used an email associated with her by <a href="http://en.gravatar.com/">Gravatar</a>, the comment gained an element of authenticity because her avatar picture appeared by it.</p>
<p>My initial reaction, like Caterina&#8217;s, was to assume there is something wrong in the Gravatar model. Why should somebody be able to masquerade as me simply by guessing the email address I associated with Gravatar? But Matt Mullenweg of <a href="http://www.automattic.com/">Automattic</a>, which owns Gravatar, <a href="http://twitter.com/#!/photomatt/status/40082360506515456">explained concisely</a> that the fundamental problem of impersonation cannot be prevented by their service. An impersonator could just as easily have associated a new email, &#8220;fakecaterina@example.com&#8221; with Gravatar, and uploaded a copy of her avatar.</p>
<h3>A Hopeless Situation?</h3>
<p>I am convinced by Matt&#8217;s claim that Gravatar is not in a position to <em>prevent impersonation</em>. However, it&#8217;s possible to imagine ways in which Gravatar could <em>promote authenticity</em>. Gravatar already allows me to create an account through which I claim email addresses and can control which avatars should appear for these addresses. In addition, it allows me to confirm that account&#8217;s association with certain services such as Blogger.com, Facebook, Twitter, etc. This, combined with the fact that use of Gravatar is already widespread on the web, makes it a great candidate for serving as an arbiter of trust in arbitrary contexts on the web.</p>
<p>Web sites that make use of Gravatar&#8217;s services are currently able to fetch an image associated with a particular email address, by <a href="http://en.gravatar.com/site/implement/hash/">manipulating</a> (hashing) the user&#8217;s email address in such a way that the email address is no longer discernable, but Gravatar can easily look up the associated avatar image.</p>
<p>There are steps that Gravatar could take to make possible the &#8220;authentication&#8221; of specific Gravatar appearances on the web. It would be exhausting to elaborate on the variety of ways this might be done, and many of the options that spring to mind also bring to mind many pitfalls and annoyances, not to mention significant service demands on Gravatar. Maybe the authentication would require hosting sites to present authentication keys, or maybe users would just whitelist particular comment URLs. Let&#8217;s not get bogged down in details: the details are for companies like Gravatar to take on if they choose to meet the challenge.</p>
<p>In a world where Gravatar offered some form of per-use authentication, a site like GigaOm could show a trust icon next to commenters&#8217; avatars, or maybe it would be integrated into the avatar as a form check-mark badge or something. Click on the trust icon and it might take you to a Gravatar page where a curious reader could gauge authenticity with Gravatar&#8217;s help:</p>
<blockquote><p>The Gravatar being shown at <em>&lt;link to e.g. a comment url&gt;</em> was verified by Daniel Jalkut, a registered Gravatar user. Daniel is known to be associated with Twitter ID &#8220;danielpunkass&#8221;, and controls the web site domain http://www.red-sweater.com. For more information, view his profile here.</p></blockquote>
<p>The current Gravatar <a href="http://en.gravatar.com/site/implement/profiles/">user profiles</a> already lean strongly towards identity confirmation. Some clever techniques for authenticating comments would not eliminate impersonation, but would allow identity-concerned users such as Caterina a means of participating in web conversations while proactively confirming their own identities.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/1704/authentic-comments/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Instapaper Keyboard Shortcut</title>
		<link>http://www.red-sweater.com/blog/1594/instapaper-keyboard-shortcut</link>
		<comments>http://www.red-sweater.com/blog/1594/instapaper-keyboard-shortcut#comments</comments>
		<pubDate>Fri, 14 Jan 2011 20:17:10 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[FastScripts]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=1594</guid>
		<description><![CDATA[Like many people these days, I am using Marco Arment&#8217;s Instapaper to facilitate effortless postponement of reading longer, potentially interesting content I find on the web. Marco provides a handy bookmarklet that you can add to your browser&#8217;s button bar, so when you find something cool you just click &#8220;Read Later&#8221; and it gets added [...]]]></description>
			<content:encoded><![CDATA[<p>Like many people these days, I am using <a href="http://twitter.com/marcoarment">Marco Arment&#8217;s</a> <a href="http://instapaper.com/">Instapaper</a> to facilitate effortless postponement of reading longer, potentially interesting content I find on the web.</p>
<p>Marco provides a handy <a href="http://www.instapaper.com/extras">bookmarklet</a> that you can add to your browser&#8217;s button bar, so when you find something cool you just click &#8220;Read Later&#8221; and it gets added to your Instapaper collection. This is handy, and if you&#8217;re using a browser like Safari, these bookmark bar items even get mapped to default keyboard shortcuts based on their position, e.g. Cmd-1, Cmd-2, etc.</p>
<p>My news reader of choice, NetNewsWire, also supports Instapaper, allowing me to easily add any news item&#8217;s underlying content to my &#8220;Read Later&#8221; list. In NetNewsWire, the keyboard shortcut is Ctrl-P (for paper!), and I&#8217;ve gotten hard wired to punting stuff to my reading list with a quick flick of the keys.</p>
<p>For months I&#8217;ve thought it would be nice if I had the same workflow in Safari and in NetNewsWire: see something, want to read it, don&#8217;t have time, press Ctrl-P. I don&#8217;t know why I took so long to sit down and spend the 5 minutes it took to write an AppleScript wrapper for Marco&#8217;s bookmarklet, and install it in my scripts folder to invoke with <a href="http://www.red-sweater.com/fastscripts/">FastScripts</a>.</p>
<p>If you want to be cool like me:</p>
<ol>
<li>Download and install <a href="http://www.red-sweater.com/fastscripts/">FastScripts</a>. Free for up to 10 shortcuts!</li>
<li>From the FastScripts menu-bar icon, select FastScripts -&gt; Create Safari Scripts Folder.</li>
<li>Download <a href="http://www.red-sweater.com/AppleScript/ReadLater.zip">this script</a>, and move it to the Safari-specific scripts folder: [Home] -&gt; Library -&gt; Scripts -&gt; Applications -&gt; Safari</li>
<li>Switch to Safari.</li>
<li>While holding the Cmd key, select &#8220;Read Later&#8221; from the FastScripts menu.</li>
<li>Assign a keyboard shortcut of your choice. (Ctrl-P for NNW-likeness).</li>
</ol>
<p>Now whenever you see a cool page in Safari, just press Ctrl-P to instantly tag it for later reading.</p>
<p><strong>Update:</strong> David Kendal observes <a href="https://twitter.com/dpkendal/status/26012924975779840">on Twitter</a> that you can assign custom keyboard shortcuts to bookmarks in Safari by simply using the System Preferences Keyboard Shortcuts and assigning to the correctly named bookmark. I was not aware that this would work with bookmarks! Very cool. It diminishes the necessity of the above workflow considerably, though I was pleased to be able to take &#8220;Read Later&#8221; out of my bookmarks bar. Another downside to the System Preferences route? Apparently the keyboard shortcuts will never take effect until you&#8217;ve shown the menu that they appear in at least once per Safari-launch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/1594/instapaper-keyboard-shortcut/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Blog The First Draft</title>
		<link>http://www.red-sweater.com/blog/1459/blog-the-first-draft</link>
		<comments>http://www.red-sweater.com/blog/1459/blog-the-first-draft#comments</comments>
		<pubDate>Wed, 27 Oct 2010 01:08:28 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Motivation]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=1459</guid>
		<description><![CDATA[MarsEdit users sometimes sheepishly admit that they aren&#8217;t blogging as much as they &#8220;should&#8221; be. Excuses vary, but it usually boils down to the classic issue afflicting all of us who try to stick to a productive routine: we simply fall out of the habit. Long time readers of this blog will note that I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.red-sweater.com/marsedit/">MarsEdit</a> users sometimes sheepishly admit that they aren&#8217;t blogging as much as they &#8220;should&#8221; be. Excuses vary, but it usually boils down to the classic issue afflicting all of us who try to stick to a productive routine: we simply fall out of the habit.</p>
<p>Long time readers of this blog will note that I&#8217;ve had my dry periods as well. But watch closely: I&#8217;m blogging now about a thought I had just earlier this evening, while reading <a href="https://twitter.com/">Twitter</a> updates and responding to them. Colin Barrett complained that his <a href="http://twitter.com/cbarrett/status/28829478255">perfectionism is limiting his blogging</a>:</p>
<blockquote><p>
I plan to write more; I think my @<a href="http://twitter.com/secondconf">secondconf</a> talk on freelancing would work well as a series of posts. Just gotta get past my perfectionism.
</p></blockquote>
<p>I&#8217;m incredibly familiar with this line of thinking. In fact, it&#8217;s a variant of the indefinitely postponed software releases that I <a href="http://www.red-sweater.com/blog/1445/suck-it-up-and-ship">just wrote about</a>. I read Colin&#8217;s tweet and, before I had even noticed that the neurons in my brain were firing, I had responded with a <a href="http://twitter.com/danielpunkass/status/28829974451">bit of encouragement</a>:</p>
<blockquote><p>
@<a href="http://twitter.com/cbarrett">cbarrett</a> The modern business model for solo writing is to blog your first draft and sell your final.
</p></blockquote>
<p>I&#8217;m referring to the fact that very few blogs are edited to the level of professionalism you might find in literary or scientific journals. On the contrary, some of the web&#8217;s most celebrated bloggers have let their essays loose in a semi-rambling form, only to piece them together later into a more refined, salable volume. <a href="http://randsinrepose.com/">Rands in Repose</a> and <a href="http://www.joelonsoftware.com/">Joel on Software</a> spring to mind in the techie world, while writers such as <a href="http://www.dooce.com/">Heather Armstrong</a> and <a href="http://blogs.salon.com/0001399/">Julie Powell</a> turned their respective parenting and cooking blogs into million-dollar enterprises.</p>
<p>The ever-so-thinly veiled message? Don&#8217;t worry so much. Just blog it. If you are among the lucky few who achieves perfection effortlessly, then by all means carry forth. The rest of us are lucky if we coerce a unit of coherent thinking out our brains and onto the web. Perfectionism? Your editor will help you achieve it after you&#8217;re famous.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/1459/blog-the-first-draft/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Before Google</title>
		<link>http://www.red-sweater.com/blog/1366/before-google</link>
		<comments>http://www.red-sweater.com/blog/1366/before-google#comments</comments>
		<pubDate>Thu, 05 Aug 2010 13:34:15 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Folklore]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=1366</guid>
		<description><![CDATA[On a whim today I tried to figure out what the oldest pages are on the internet that mention the names of Google&#8217;s founders, Sergey Brin and Larry Page. In particular, I wanted to find out what information Google&#8217;s founders left on the internet before they had the notion to index it all. This pursuit [...]]]></description>
			<content:encoded><![CDATA[<p>On a whim today I tried to figure out what the oldest pages are on the internet that mention the names of Google&#8217;s founders, Sergey Brin and Larry Page. In particular, I wanted to find out what information Google&#8217;s founders left on the internet before they had the notion to index it all.</p>
<p>This pursuit was of course assisted by Google itself. It has a nifty advanced search feature where you can specify a date range for the results. <em>Unfortunately</em> the algorithm for assigning dates to pages seems really buggy, and you end up with a lot of false positives for the date range you specify. For example, Google was being talked about in 1973?</p>
<p><img src="http://www.red-sweater.com/blog/wp-content/downloads/2010/08/GoogleDates.png" border="0" alt="GoogleDates.png" width="440" height="140" /></p>
<p>I was able to find some interesting newsgroup postings from Sergey in 1994. On August 18, 1994, he <a href="http://groups.google.com/group/rec.travel.air/browse_thread/thread/e3a02aa6fd0d443a/98c6413b9b866583#98c6413b9b866583">sought advice about booking air travel</a> from San Francisco to Baltimore. In 2010, this conversation would almost certainly not happen, as any number of powerful airfare search engines crunch the numbers and compare rates across carriers, dates, and airports.</p>
<p>But even more interesting to me is a math question <a href="http://groups.google.com/group/sci.math/browse_thread/thread/43019d0ede8a4b6a/23ad3d30206342c2#23ad3d30206342c2">posed in 1994</a> about the Karhunen-Loeve theorem:</p>
<blockquote>
<p>Hi,</p>
<p>I ran across a reference to a Karhunen-Loeve transform in a paper I was reading and from the brief mention it seems that it is relevant to my research.  However, there is no pointer to where I could find more information.</p>
<p>Could someone let me know what a good reference for the Karhunen-Loeve transform would be?</p>
<p>thanx<br /> &#8211;sergey</p>
</blockquote>
<p>Today you just type &#8220;Karhunen-Loeve&#8221; into Google <a href="http://www.google.com/search?rls=en&amp;q=Karhunen-Loeve&amp;ie=UTF-8&amp;oe=UTF-8">to get the answer</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/1366/before-google/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Jump To PayPal Transaction</title>
		<link>http://www.red-sweater.com/blog/1174/jump-to-paypal-transaction</link>
		<comments>http://www.red-sweater.com/blog/1174/jump-to-paypal-transaction#comments</comments>
		<pubDate>Fri, 16 Apr 2010 15:40:30 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[AppleScript]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[FastScripts]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=1174</guid>
		<description><![CDATA[I complained on Twitter about PayPal&#8217;s unfortunate transaction search utility, which doesn&#8217;t recognize the transaction ID itself as a search term. Georg C. Brückmann chimed in with a semi-solution, which is a URL template you can use to jump directly to a PayPal transaction by ID. Take the root PayPal URL for your country, and [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://twitter.com/danielpunkass/status/12283008210">complained on Twitter</a> about PayPal&#8217;s unfortunate transaction search utility, which doesn&#8217;t recognize <em>the transaction ID</em> itself as a search term.</p>
<p>Georg C. Brückmann <a href="http://twitter.com/gcbrueckmann/status/12283277096">chimed in</a> with a semi-solution, which is a URL template you can use to jump directly to a PayPal transaction by ID. Take the root PayPal URL for your country, and add &#8220;vst/id=&#8221; followed by the PayPal transaction ID. In the United States, this leads to a URL like: <a href="https://www.paypal.com/vst/id=1234">https://www.paypal.com/vst/id=1234﻿</a>.</p>
<p>It&#8217;s sad to say that remembering a static PayPal URL and pasting in the transaction ID in the magic location is indeed easier than navigating PayPal&#8217;s slow and awkward transaction history UI. But it could be even easier with a little automation.</p>
<p><a href="http://www.red-sweater.com/AppleScript/JumpToPayPalTransactionID.zip">Jump To PayPal Transaction ID</a> is a simple AppleScript that prompts you for a transaction ID, constructs the desired URL, and opens it in your default browser. If you don&#8217;t live in the United States, open the script in AppleScript Editor and alter the template URL contained within it.</p>
<p>I put this in my Safari-specific scripts folder:</p>
<pre>[Home] | Library | Scripts | Applications | Safari</pre>
<p>So it&#8217;s available from <a href="http://www.red-sweater.com/fastscripts/">FastScripts</a> whenever I&#8217;m in Safari. Problem solved.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/1174/jump-to-paypal-transaction/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Oldest Trick In The Book</title>
		<link>http://www.red-sweater.com/blog/1166/the-oldest-trick-in-the-book</link>
		<comments>http://www.red-sweater.com/blog/1166/the-oldest-trick-in-the-book#comments</comments>
		<pubDate>Fri, 16 Apr 2010 12:50:58 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=1166</guid>
		<description><![CDATA[Brent Simmons reveals one of the biggest secrets for making friends and influencing people. Yes, it&#8217;s the oldest trick in the book: be nice. Be gracious. Be thoughtful of other peoples&#8217; interests. Don&#8217;t be a whiner. Be generous. Be inclusive. Pay it forward… you get the picture. Have you ever noticed this phenomenon of the [...]]]></description>
			<content:encoded><![CDATA[<p>Brent Simmons reveals <a href="http://inessential.com/2010/04/15/notes_on_being_a_nice_person_online_who_">one of the biggest secrets</a> for making friends and influencing people. Yes, it&#8217;s the oldest trick in the book: be nice.</p>
<p>Be gracious. Be thoughtful of other peoples&#8217; interests. Don&#8217;t be a whiner. Be generous. Be inclusive. Pay it forward… you get the picture.</p>
<p>Have you ever noticed this phenomenon of the internet? As the ultimate reference archive, it reveals the most arcane and lesser-known facts of science, art, and trivia. It teaches us about the world. But as the ultimate social connector, it teaches us about people, how we do or don&#8217;t, and how we should or shouldn&#8217;t get along with each other.</p>
<p>I experienced this the other day when I was <a href="http://twitter.com/danielpunkass/status/11912974564">tweeting enthusiastically</a> about <a href="http://www.atebits.com/tweetie-mac/">Tweetie for the Mac</a> and how I might be interested in taking the product over if it doesn&#8217;t fit into Twitter&#8217;s <a href="http://blog.twitter.com/2010/04/twitter-for-iphone.html">plans for the app</a>. In the excitement, I not only violated one of the social rules of politeness by filling my followers&#8217; Twitter screens to the brim, but I made the mistake of taking a stab at a company called <a href="http://brizzly.com/">Brizzly</a>.</p>
<p>See, my friends <a href="http://log.scifihifi.com/">Buzz</a> and <a href="http://mrgan.tumblr.com/">Neven</a> built a wonderful iPhone Twitter app called <a href="http://birdfeedapp.com/">Birdfeed</a>. A few months ago, Brizzly acquired Birdfeed from my friends, and revamped the user interface a bit to match their style. I&#8217;m not a fan of these revisions, and I have stuck with the original Birdfeed app on my phone. But I used this distaste for the UI changes to fuel a less constructive tweet that I would characterize as a &#8220;low blow&#8221; against Brizzly. I have since deleted the original tweet, but it prompted a <a href="http://twitter.com/shellen/status/11922558326">response from Brizzly&#8217;s CEO</a>:</p>
<blockquote>
<p>@phopkins He may be hella cool but does he realize that smacking Brizzly isn&#8217;t going to get him anywhere?</p>
</blockquote>
<p>I immediately had one of those wake-up-call feelings where you realize that what was just mindless banter at &#8220;somebody else&#8217;s&#8221; expense was actually at the expense of somebody very particular. Yes, <a href="http://twitter.com/danielpunkass/status/11940482432">I reminded myself</a>, there are actually people on the internet:</p>
<blockquote><p>I should know this by now: there are people behind products. Ashamed of my tasteless treatment of Brizzly, and by extension, @shellen.</p></blockquote>
<p>Some people who don&#8217;t know me very well assume that because my Twitter name, @danielpunkass, is a bit crass, that I must be a provocative and thoughtless person. They are surprised to meet me in person and find out that I&#8217;m actually pretty nice.</p>
<p>What my Twitter name represents to me is my willingness to be the cheeky one. To defy the standards and be a bit of a jerk when it&#8217;s called for, but only when it&#8217;s called for. Sometimes, the most unexpected, uncalled for, provocative, defiant move you can make is to be nicer than people expected you to be.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/1166/the-oldest-trick-in-the-book/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

