<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	
	<title type="text" xml:lang="en">Troy Davis</title>
	<link type="application/atom+xml" href="http://troy.yort.com/feed/" rel="self"/>
  <link type="text" href="http://troy.yort.com/" rel="alternate"/>
	<updated>2021-03-19T07:41:16-07:00</updated>
  <id>https://troy.yort.com/</id>
  <author>
    <name></name>
  </author>
  <rights> is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.</rights>
  <updated>2021-03-19T07:41:16-07:00</updated>
	
	
	<entry>
		<title>Letter to Washington State legislators about consumer data privacy bill (SB 5062)</title>
    <link href="https://troy.yort.com/letter-to-washington-state-legislators-about-consumer-data-privacy-bill-sb-5062/"/>
		<updated>2021-03-19T07:09:05-07:00</updated>
    <id>https://troy.yort.com/letter-to-washington-state-legislators-about-consumer-data-privacy-bill-sb-5062</id>
    <content type="html">&lt;p&gt;The Washington State legislature is considering a consumer data privacy bill, &lt;a href=&quot;https://app.leg.wa.gov/billsummary?BillNumber=5062&amp;amp;Year=2021&amp;amp;Initiative=false#documentSection&quot;&gt;Senate Bill 5062&lt;/a&gt; (&lt;a href=&quot;http://lawfilesext.leg.wa.gov/biennium/2021-22/Pdf/Bill%20Reports/House/5062-S2%20HBA%20CRJ%2021.pdf?q=20210319070334&quot;&gt;summary&lt;/a&gt;). While I was creating &lt;a href=&quot;https://simpleoptout.com/&quot;&gt;Simple Opt Out&lt;/a&gt;, I assumed that the &lt;a href=&quot;https://oag.ca.gov/privacy/ccpa&quot;&gt;CCPA&lt;/a&gt; made consumers opt-out of paid data sharing - not a business sharing data to target their own ads, but selling consumers&amp;#8217; personal data to unaffiliated third parties for compensation - due to an oversight. When the CCPA was in process, not everyone realized that retailers would sell their customers&amp;#8217; purchase history to anyone who would pay. It may not have stood out from targeted advertising and may have actually been an oversight.&lt;/p&gt;

&lt;p&gt;Not for this Washington State bill. Turns out that many, if not all of this bill&amp;rsquo;s sponsors know that its default protection is incredibly weak. By now, legislators are aware that consumers&amp;#8217; data is sold to unaffiliated third parties - and that no consumer would opt in to that. They just don&amp;rsquo;t care or don&amp;rsquo;t care enough to do anything about it.&lt;/p&gt;

&lt;p&gt;That&amp;rsquo;s why I sent this letter to the Washington State House of Representatives &lt;a href=&quot;https://leg.wa.gov/House/Committees/CRJ/Pages/default.aspx&quot;&gt;Civil Rights &amp;amp; Judiciary Committee&lt;/a&gt; and individual members. While Washington is probably stuck with this bill - and privacy for a vanishingly small number of residents - I hope my self-contained explanation helps another state or motivates a Washington State legislator to close the data sales loophole.&lt;/p&gt;

&lt;p&gt;Here&amp;rsquo;s my letter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subject: SB 5062 - Please don&amp;rsquo;t let businesses sell my data unless I opt out&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dear Chair Hansen and Civil Rights &amp;amp; Judiciary committee members,&lt;/p&gt;

&lt;p&gt;My comments are about requiring consumers to opt out of having their data sold to third parties for compensation, as SB 5062 currently does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you’ve purchased from Ace Hardware, Crate and Barrel, Home Depot, the Seattle Art Museum, or hundreds of other companies, they sell or trade your information - often including purchase history, contact information, and preferences - to third parties&lt;/strong&gt; for a few extra cents of gain. Yes, completely unrelated companies know what you bought at many traditional and online retailers.&lt;/p&gt;

&lt;p&gt;These businesses don’t do this in order to operate or market their business (as is the case with targeted advertising). Rather, this is turning the consumer into the product: selling customer information to completely unrelated businesses, merely because they’ll pay for it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reasonable people can debate the pros and cons of targeted advertising, but the practice I’m talking about, selling detailed data about customers to third parties, has no pros. It shouldn’t have ever been legal.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I know because I spent 100+ hours reading privacy policies, finding these practices, and creating a directory of opt-out instructions. My not-for-profit site, &lt;a href=&quot;https://simpleoptout.com/&quot;&gt;https://SimpleOptOut.com&lt;/a&gt;, has made it a bit easier for tens or hundreds of thousands of people to opt out of data sharing that they would never have opted in to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I want the Washington legislature to make my Web site obsolete.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This bill begins with ”The legislature finds that the people of Washington regard their privacy as a fundamental right” … and.. then it disregards that statement by requiring Washingtonians to opt out of these sales. Has anyone on the committee actually tried to opt out of data sharing? I have. You’ll spend most of a day digging through privacy policies, calling phone numbers, filling out web forms, and printing and mailing letters. If you’re lucky, after doing that 30 or 40 or 50 times, you’ll cover about half of the businesses that sell your data. My Web site makes that easier, but not easy – and that’s only because I’ve tried to mitigate a problem that the legislature should solve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Opting out of data sharing requires so much time that less than 1% of Washington residents will actually do it.&lt;/strong&gt; Instead of 100% of Washington residents having this so-called “fundamental right,” this bill will provide it to less than 1%. And that 1% will be well-educated computer engineers and attorneys. This bill makes privacy contingent on resources, on privilege and for no commercial justification. &lt;strong&gt;Unlike advertising, this doesn’t help a business deliver or market their products.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Since literally zero Washingtonians would opt in to having businesses sell their personal information for extra revenue, forcing each of us to opt out with each business is nonsensical.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine if, in order to have First Amendment protection for something you wrote, you needed to visit every web site which might publish it or have access to it, find their instructions for opting out of First Amendment violations, and follow them - which could take two minutes or twenty minutes each - and then hope the business actually processed your request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Or, imagine if every time you moved, you needed to call or visit the new city, county, state, and federal police and fill out a “Fourth Amendment violation opt-out” form.&lt;/strong&gt; This form requested that they not unreasonably search or seize your property. Oh, you didn’t spend the time to opt-out of Fourth Amendment violations? You must not mind them.&lt;/p&gt;

&lt;p&gt;That’s how this bill handles unnecessary data sharing. The right to &lt;em&gt;request&lt;/em&gt; that an entity &lt;em&gt;not&lt;/em&gt; sell my personal information to third parties… that’s not privacy. &lt;strong&gt;Privacy is not needing to do that in the first place.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There’s a better way. &lt;strong&gt;Require residents to opt in to data sharing for compensation.&lt;/strong&gt; If privacy is a fundamental right like this bill says, then privacy should be the default. &lt;strong&gt;Nobody needs to opt out of having their other rights violated, and we shouldn’t need to opt out of having our privacy violated, either.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Alternatively, if the bill is going to require opting out, then change the rest of the bill so it’s accurate. Instead of stating that privacy is a fundamental right, explain that privacy is a luxury that the legislature is offering to state’s most privileged and technically experienced residents. Explain that businesses can assume residents don’t deserve and shouldn’t receive privacy, unless and until each individual informs each business using whatever method the business prefers.&lt;/p&gt;

&lt;p&gt;If you’re thinking, “Wow, that sounds terrible,” you’re right. It does, because it is. All I did is accurately describe the bill&amp;rsquo;s current treatment of selling data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Businesses should be able to deliver the products and services that we depend on, and to market them effectively, but not to share or sell our personal information with unaffiliated third parties for compensation.&lt;/strong&gt; Please change this bill to deliver privacy for 100% of Washingtonians, not less than 1% like it does now.&lt;/p&gt;

&lt;p&gt;Thank you,&lt;/p&gt;

&lt;p&gt;Troy&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Checklist for configuring iPad for regular people</title>
    <link href="https://troy.yort.com/checklist-for-configuring-ipad-for-regular-people/"/>
		<updated>2021-02-03T12:19:17-08:00</updated>
    <id>https://troy.yort.com/checklist-for-configuring-ipad-for-regular-people</id>
    <content type="html">&lt;p&gt;I configured some iPads for regular people. If you&amp;rsquo;re configuring an iPad for a
parent, young child, or a good friend who is new to the iPad or new to
computers, maybe &lt;a href=&quot;https://discussions.apple.com/thread/252404401&quot;&gt;the checklist I posted&lt;/a&gt;
will give you a starting point.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Chrome loves auto-play, but do users?</title>
    <link href="https://troy.yort.com/chrome-loves-autoplay-but-do-users/"/>
		<updated>2018-05-17T10:46:01-07:00</updated>
    <id>https://troy.yort.com/chrome-loves-autoplay-but-do-users</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve encountered &lt;a href=&quot;https://news.ycombinator.com/item?id=17036803#17037992&quot;&gt;many&lt;/a&gt;, &lt;a href=&quot;https://news.ycombinator.com/item?id=16367457#16370471&quot;&gt;many&lt;/a&gt; &lt;a href=&quot;https://news.ycombinator.com/item?id=17008991#17009630&quot;&gt;examples&lt;/a&gt; that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;in some cases, users don&amp;rsquo;t want Chrome to auto-play any videos – even muted ones (mostly because sites abuse the privilege by autoplaying unrelated overlay videos), and&lt;/li&gt;
&lt;li&gt;users incorrectly think Chrome&amp;rsquo;s &lt;code&gt;chrome://flags/#autoplay-policy&lt;/code&gt; flag disables auto-playing videos, when it only affects auto-playing videos that aren&amp;rsquo;t muted&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Unfortunately, as of this post, Chrome&amp;rsquo;s &lt;a href=&quot;https://developers.google.com/web/updates/2017/09/autoplay-policy-changes#new-behaviors&quot;&gt;policy&lt;/a&gt; is that &amp;ldquo;Muted autoplay is always allowed.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve responded a few times on Hacker News to clarify the current behavior (see above links). The confusion and the unmet demand for disabling autoplay entirely, at least for certain domains, led me to &lt;a href=&quot;https://twitter.com/troyd/status/994578157058441217&quot;&gt;tweet&lt;/a&gt; inviting the Chrome product management team to respond, then when they didn&amp;rsquo;t, to &lt;a href=&quot;https://bugs.chromium.org/p/chromium/issues/detail?id=840866#c126&quot;&gt;comment on the Chromium bug tracker&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Google has never explained nor substantiated its decisions to allow muted autoplay by default, and not let users change that policy, at least globally and perhaps on a per-site basis. Since Google has a clear conflict of interest, both decisions justify more transparency than they&amp;rsquo;ve been given.&lt;/p&gt;

&lt;p&gt;I don&amp;rsquo;t have any data about user preferences for muted auto-play. I do know that no one likes the current behavior and that Chrome has per-domain controls for far less frequently used – and less polarizing – features, like whether to clear cookies on exit.&lt;/p&gt;

&lt;p&gt;Here&amp;rsquo;s my Chromium bug tracker &lt;a href=&quot;https://bugs.chromium.org/p/chromium/issues/detail?id=840866#c126&quot;&gt;comment&lt;/a&gt;:&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Anyone have some data that substantiates the theory that users want muted videos to autoplay by default (rather than, say, on a per-domain basis like cookie retention and &amp;ldquo;Clear cookies on exit&amp;rdquo; settings)?&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s entirely anecdotal (that&amp;rsquo;s why I&amp;rsquo;m asking for data…), but everyone I know can&amp;rsquo;t stand muted autoplay. Google didn&amp;rsquo;t provide any reasoning or substantiation why &amp;ldquo;Muted autoplay is always allowed&amp;rdquo; in &lt;a href=&quot;https://developers.google.com/web/updates/2017/09/autoplay-policy-changes.&quot;&gt;https://developers.google.com/web/updates/2017/09/autoplay-policy-changes.&lt;/a&gt; Advertisers and consumer-facing sites abuse that privilege by autoplaying muted unrelated videos.&lt;/p&gt;

&lt;p&gt;Clearly some users want autoplay for some domains. My question is whether at least a meaningful percentage of users would prefer to disable autoplay entirely, even for muted videos, at least for some domains.&lt;/p&gt;

&lt;p&gt;Related discussion: &lt;a href=&quot;https://news.ycombinator.com/item?id=17036803#17037890&quot;&gt;https://news.ycombinator.com/item?id=17036803#17037890&lt;/a&gt;&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Roon: More ways to discover/play music not in my Roon library</title>
    <link href="https://troy.yort.com/roon-more-ways-to-discover-and-play-music-not-in-my-roon-library/"/>
		<updated>2018-05-14T10:40:08-07:00</updated>
    <id>https://troy.yort.com/roon-more-ways-to-discover-and-play-music-not-in-my-roon-library</id>
    <content type="html">&lt;p&gt;I recently started using &lt;a href=&quot;https://roonlabs.com/&quot;&gt;Roon Labs&lt;/a&gt; and &lt;a href=&quot;https://community.roonlabs.com/t/more-any-ways-to-discover-play-music-not-in-my-roon-library/43136&quot;&gt;posted this suggestion&lt;/a&gt; in their customer Discourse forum.&lt;/p&gt;

&lt;p&gt;Here&amp;rsquo;s the suggestion:&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Hey all, here&amp;rsquo;s a wish and a few possible implementation ideas. Please understand that I&amp;rsquo;m spending the effort to write this down because I care about seeing Roon succeed, not because I want to slam Roon.&lt;/p&gt;

&lt;p&gt;Also, as with any feature request, some of this is almost certainly wrong or doesn&amp;rsquo;t apply to Roon&amp;rsquo;s business :-)&lt;/p&gt;

&lt;h2&gt;Summary&lt;/h2&gt;

&lt;p&gt;Make it easier - heck, make it possible - to play music that I haven&amp;rsquo;t explicitly added to my library. At a minimum, expose Tidal&amp;rsquo;s artist radio and track radio.&lt;/p&gt;

&lt;p&gt;One step up from there, make navigating between Roon&amp;rsquo;s version of an artist and Tidal&amp;rsquo;s more seamless, like letting me see my favorited or frequently played albums on Roon&amp;rsquo;s view of an artist (instead of a separate &amp;ldquo;Go to Tidal artist&amp;rdquo; dropdown choice and &amp;ldquo;Tidal artist&amp;rdquo; in search results).&lt;/p&gt;

&lt;p&gt;One step up from there, let me treat Tidal as my Roon library, at least in concept if not in implementation.&lt;/p&gt;

&lt;p&gt;Ideally, eliminate the idea of a binary &amp;ldquo;it&amp;rsquo;s in or it&amp;rsquo;s out&amp;rdquo; library entirely and split that into 2 concepts: music Roon has access to, and a continuum of opinions about that music (from love to hate). &amp;ldquo;The longer-term solution&amp;rdquo; has more on that.&lt;/p&gt;

&lt;h2&gt;Background&lt;/h2&gt;

&lt;p&gt; It feels like 10 or 15 years ago, the standard for music software was to play the music I had. Roon&amp;rsquo;s current feature set is basically the perfect implementation of what I wanted, and would have been thrilled with, in about 2005.&lt;/p&gt;

&lt;p&gt;In the last 10 years, a couple things changed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access to music. Thanks to Tidal (and before it, Rdio, Spotify, etc.) &amp;ldquo;My library&amp;rdquo; is actually almost the entire North American music catalog. I don&amp;rsquo;t have an &amp;ldquo;it&amp;rsquo;s in or out&amp;rdquo; library (where anything in the library should never be played), I have a continuum of I love, like, am so-so about, dislike, or never want to hear again.&lt;/li&gt;
&lt;li&gt;Quality of that music. Tidal is as good or better than anything I&amp;rsquo;d ever have locally. In the last 2 years, lossless and MQA eliminated the last reason that music from other sources might not be as play-worthy as &amp;ldquo;library&amp;rdquo; music.&lt;/li&gt;
&lt;li&gt;Expectations. Between the size of someone&amp;rsquo;s &amp;ldquo;library&amp;rdquo; (ie, all Tidal music) and the rise of machine learning, a computer (think Discover Weekly) can do a great job of finding new music I like &amp;ndash; way better than I&amp;rsquo;d do with manual curation, and good enough that I&amp;rsquo;d put my effort into correcting it rather than creating playlists myself.&lt;/li&gt;
&lt;li&gt;Publishing rate. The number of new songs appearing on even Tidal, let alone Spotify or Soundcloud, makes it impossible to listen to and curate new stuff even if I wanted to. I&amp;rsquo;d literally be listening to only new stuff just to decide whether I liked it.&lt;/li&gt;
&lt;li&gt;User persona. 10 years ago, Roon would have been most valuable to folks with hundreds of albums (in a sense, Roon depended on a substantial investment in media). Not only is that no longer true, it might not even be a predictor of/correlated with interest in music or playback portability anymore. Now that lossless subscriptions exist, I&amp;rsquo;d guess that an appreciation for audio quality (ie, lossless playback) plus ownership of more than 1 output are better predictors of suitability for Roon than, say, a desire or past experience collecting albums.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;To boil this down: The idea of a binary &amp;ldquo;it&amp;rsquo;s in or out&amp;rdquo; library was a byproduct of needing to collect albums or at least ripped MP3s. Today, the hard part isn&amp;rsquo;t playing stuff that I know I like; that&amp;rsquo;s table stakes. The hard part is surfacing new stuff that I didn&amp;rsquo;t know I liked, and delivering a great playlist from the entire music catalog that (a) matches my mood or interests, and (b) doesn&amp;rsquo;t require explicit curation. That&amp;rsquo;s also the only viable way to surface new music at the scale it&amp;rsquo;s currently released.&lt;/p&gt;

&lt;p&gt;This is also where the market is going. In 3 years, the idea of a manually-curated library will feel even more outdated than it does now. Even if Roon considers music fanatics to be its only target user (and isn&amp;rsquo;t ever trying to serve a more mainstream audience), having a manually-curated library is not correlated with that category anymore. And if Roon does want to serve a mass market at some point, it&amp;rsquo;s a gatekeeper to doing that.&lt;/p&gt;

&lt;h2&gt;The problem&lt;/h2&gt;

&lt;p&gt;Roon is built on the idea of a binary &amp;ldquo;in or out&amp;rdquo; library, which makes it difficult - actually, almost impossible - to play anything not in my library that I don&amp;rsquo;t curate manually (say, manually creating a playlist or going to a specific album).&lt;/p&gt;

&lt;p&gt;As an extreme example, if one uses Roon&amp;rsquo;s &amp;ldquo;Focus&amp;rdquo; feature and the Focus only matches a single song in one&amp;rsquo;s library, Roon will play that one song on a continuous loop.&lt;/p&gt;

&lt;p&gt;Imagine if, instead of listening to an entire set from Imogen Heap, you want a multi-artist playlist of stuff similar to or related to her or a song of hers, across all music you have access to (ie, Tidal, not one&amp;rsquo;s library). As I understand it and Roon&amp;rsquo;s staff confirmed, there&amp;rsquo;s no way to do that in Roon today.&lt;/p&gt;

&lt;p&gt;The obvious example is dynamic artist or track-inspired radio, what Tidal calls &amp;ldquo;Track radio&amp;rdquo; and &amp;ldquo;Artist radio.&amp;rdquo; These aren&amp;rsquo;t currently exposed anywhere in Roon. So, my first and probably simplest wish would be new choices in the &amp;ldquo;Play&amp;rdquo; dropdown for &amp;ldquo;Track radio&amp;rdquo; and &amp;ldquo;Artist radio&amp;rdquo; that use Tidal&amp;rsquo;s implementations of same.&lt;/p&gt;

&lt;h2&gt;The longer-term solution&lt;/h2&gt;

&lt;p&gt;If one agrees with the factors in &amp;ldquo;Background,&amp;rdquo; then having access to lossless versions of almost every song ever released should cause Roon to adapt. Today, the library serves 2 purposes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ability to play. Roon considers the library to be the music that it has access to (other than being specifically told to play an album not in my library)&lt;/li&gt;
&lt;li&gt;Preferences. Roon considers adding something to my library as a proxy for my preferences. Music in one&amp;rsquo;s library is presumed to be loved (it&amp;rsquo;s the only music that Focus and Roon Radio will play), and music not in one&amp;rsquo;s library is presumed to be hated (never played automatically).&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;These were never actually the same thing, though. Only item 1 - &amp;ldquo;Do I have a way to play this song?&amp;rdquo; - is binary. Item 2 is not binary. Right now, item 2 is treated as binary even though it&amp;rsquo;s not, and item 1 isn&amp;rsquo;t treated as a separate construct.&lt;/p&gt;

&lt;p&gt;Using Roon&amp;rsquo;s terminology, I want a way to add the entire Tidal catalog to my library. Obviously that&amp;rsquo;s probably not the best actual implementation, but it&amp;rsquo;s a good explanation. At that point, item 1 is actually correct (my library is all music that can be played, so Focus and Roon Radio can consider way more music), and item 2 would adjust based on ratings at playback.&lt;/p&gt;

&lt;p&gt;In practice, it probably means splitting these two purposes. Item 1 becomes &amp;ldquo;Anything on a remote service that I have access to, plus anything I have locally&amp;rdquo; and might eliminate the concept of a library.&lt;/p&gt;

&lt;p&gt;Hopefully obvious, but just to say it: none of this is mutually exclusive with local music storage. Someone with no Tidal subscription and purely locally-stored music is just a different set of item 1 &amp;ndash; it&amp;rsquo;s no worse for them than today. The core concept is recognizing that for many Roon users, items 1 and 2 are actually separate concepts, so that for users who do have access to a ton of music (Tidal subscription), Roon automatically makes use of it.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>DIY 360° review: how I asked colleagues for anonymous feedback about myself</title>
    <link href="https://troy.yort.com/diy-360-review-how-i-asked-colleagues-for-anonymous-feedback-about-myself/"/>
		<updated>2017-10-31T07:45:31-07:00</updated>
    <id>https://troy.yort.com/diy-360-review-how-i-asked-colleagues-for-anonymous-feedback-about-myself</id>
    <content type="html">&lt;p&gt;I explicitly asked colleagues, customers, and friends for anonymous feedback about myself – a self-administered &lt;a href=&quot;https://en.wikipedia.org/wiki/360-degree_feedback&quot;&gt;360° review&lt;/a&gt;. Here&amp;rsquo;s how I did so (twice in 5 years), and how anyone with 30 minutes can do so for free.&lt;/p&gt;

&lt;h2&gt;Why I did this&lt;/h2&gt;

&lt;p&gt;I thought that my role could make it less likely I&amp;rsquo;d receive unsolicited negative feedback, and that those negative comments were disproportionately valuable (compared to, say, compliments). Specifically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I mostly work with people whom I hired or at least chose to work with, so I&amp;rsquo;m part of the furniture. It&amp;rsquo;s easy to think of me as an aspect of the company that can&amp;rsquo;t change, or that at least requires taking a risk to change.&lt;/li&gt;
&lt;li&gt;While I regularly ask coworkers for feedback, making the feedback totally anonymous transfers the burden of interpretation on to the recipient, me. Since I care about the happiness of everyone I solicited feedback from, that&amp;rsquo;s ideal. I want someone to feel safe saying anything, even if it&amp;rsquo;s totally subjective and unsubstantiated. I can choose to disagree with and not act on it.&lt;/li&gt;
&lt;li&gt;In a small company, there&amp;rsquo;s little or no formal HR. If I don&amp;rsquo;t solicit this feedback (or more broadly, try to personally improve), no one else is going to do it.&lt;/li&gt;
&lt;li&gt;Although my main goal was incremental improvement, if I or the company did have any true blind spots, this could be the only way I&amp;rsquo;d find out. Sometimes a blind spot isn&amp;rsquo;t even a personal trait or skill, it&amp;rsquo;s not accommodating different &lt;a href=&quot;https://www.yahoo.com/style/biggest-blind-spot-based-myers-briggs-type-173754783.html&quot;&gt;personality-based perceptions&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;What I wanted to learn&lt;/h2&gt;

&lt;p&gt;In product management, asking users for non-specific comments (&amp;ldquo;Do you like our product?&amp;rdquo;) usually leads to less actionable feedback than providing a bit of focus, or even a lot of focus.&lt;/p&gt;

&lt;p&gt;I wanted this survey to take less than 10 minutes, and if a recipient didn&amp;rsquo;t have much to say, less than 5. That meant I couldn&amp;rsquo;t ask many questions. I asked open-ended questions for recipients who wanted them, but also tried to save time with short answer form fields and some pre-populated choices.&lt;/p&gt;

&lt;p&gt;I was most interested in things which don&amp;rsquo;t come up on their own in daily conversation, so here&amp;rsquo;s what I asked:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;When you think of Troy, do any word(s) come to mind?&lt;/li&gt;
&lt;li&gt;What is Troy best at?&lt;/li&gt;
&lt;li&gt;What is Troy worst at?&lt;/li&gt;
&lt;li&gt;When I interact with Troy, it&amp;rsquo;s (choose one): Painful; Tolerable; Unremarkable; Enjoyable; Great; Describe it yourself&lt;/li&gt;
&lt;li&gt;Complete the sentence: &amp;ldquo;My own work with Troy would be more gratifying if he…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Tell me anything - things I suck at, life advice, whatever.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;If you do this, adapt the questions and answers to your personality and situation. I&amp;rsquo;ve this twice, so the questions above&lt;/p&gt;

&lt;h2&gt;How I asked&lt;/h2&gt;

&lt;h4&gt;A Wufoo form&lt;/h4&gt;

&lt;p&gt;I chose Wufoo because its form URLs are so simple: anyone can see they don&amp;rsquo;t contain personally-identifiable information like a UUID, so it&amp;rsquo;s relatively anonymous. I also stated that in the preface. Also, Wufoo&amp;rsquo;s standard themes feel very approachable.&lt;/p&gt;

&lt;p&gt;Here&amp;rsquo;s the form exactly as reviewers saw it:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/diy-360-review-wufoo.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4&gt;An email request&lt;/h4&gt;

&lt;p&gt;I emailed myself and BCC&amp;#8217;ed about 20:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coworkers&lt;/li&gt;
&lt;li&gt;Business counterparties, though not only those who I interacted with the most. I biased the sample towards edge cases: projects where I wasn&amp;rsquo;t sure how satisfied the other person was (an open feedback loop), one-off tasks which I felt pushed my skills or where I may have under-executed, and personality types whom I didn&amp;rsquo;t interact with very often. Basically, I tried to get as wide a range, and as much criticism, as I could.&lt;/li&gt;
&lt;li&gt;Friends&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Here&amp;rsquo;s the email, exactly as sent:&lt;/p&gt;

&lt;figure class=&#39;code&#39;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class=&#39;line-number&#39;&gt;1&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;2&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;3&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;4&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;5&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;6&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;7&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;8&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;9&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;10&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;11&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;12&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;13&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;14&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;15&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;16&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;17&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#39;code&#39;&gt;&lt;pre&gt;&lt;code class=&#39;&#39;&gt;&lt;span class=&#39;line&#39;&gt;Hi,
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;I&#39;m conducting an anonymous 360-degree review of myself.  You&#39;re
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;receiving this because we&#39;ve worked or interacted a lot, over a long
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;period of time, or in a unique situation, and I value your feedback.
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;I&#39;d really appreciate 5-10 minutes of your time, preferably by Sunday,
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;April 14. Head over here:
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;    http://example.wufoo.com/my-form
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;The URL has more. Again, it&#39;s completely anonymous and should only
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;take a few minutes. If you have questions, just reply.
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;Thank you!
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;Troy&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;h2&gt;Results&lt;/h2&gt;

&lt;p&gt;I received the same number of form submissions as received my email, so in as much as I can measure, 100% responded. None of the comments were totally surprising (not a bad thing!) and they actually skewed more positive than I expected. There&amp;rsquo;s no substitute for seeing people&amp;rsquo;s assessments in their own words, though. The return for the time - mine and others&amp;#8217; - was very high. I did this twice over 3 years and I&amp;rsquo;ll do it again if I&amp;rsquo;m in a similar working situation.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Questions to ask before joining a startup</title>
    <link href="https://troy.yort.com/questions-to-ask-before-joining-a-startup/"/>
		<updated>2017-10-22T11:16:16-07:00</updated>
    <id>https://troy.yort.com/questions-to-ask-before-joining-a-startup</id>
    <content type="html">&lt;p&gt;A friend asked what I&amp;rsquo;d want to know about a startup, even a late-stage one, in order to better evaluate a job offer. Here&amp;rsquo;s the short list of less-obvious questions I&amp;rsquo;d ask before joining a startup.&lt;/p&gt;

&lt;h4&gt;The role&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;If you could make one impact in the business in your first 6-12 months, what what would it be (according to them)? This is as much to understand the metric they chose - revenue? product usage? features shipped? employees hired? - and why it&amp;rsquo;s important as it is to understand the amount.&lt;/li&gt;
&lt;li&gt;Where do you see the company in 3 years? What internal or industry changes might make you cut the vision short or significantly change the goal?&lt;/li&gt;
&lt;li&gt;Is there an employee who everyone thinks of as very connected and savvy, who you could use as a mentor for a few months to learn the communication style? If you&amp;rsquo;re remote, ideally this person will be too.&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;The offer&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Get enough understanding of the company&amp;rsquo;s cap table to have an idea what your offer represents. At a minimum, ask what percent of the shares currently outstanding your options would be, if they were vested.&lt;/li&gt;
&lt;li&gt;What happens to vested options if you leave? Have they solved &lt;a href=&quot;http://www.businessinsider.com/pinterest-will-let-employees-exercise-options-for-seven-years-after-leaving-2015-3&quot;&gt;this&lt;/a&gt; &lt;a href=&quot;https://news.ycombinator.com/item?id=9253497&quot;&gt;problem&lt;/a&gt;? If not, it dramatically decreases the value of the options; you basically have to stay until IPO (or some resale event) or acquisition, or take a risk that few people would (exercising illiquid options), or leave without the vested options. 7 years is great. 3 years is okay. Given how long companies remain private, 1 year or less make the options basically toys.&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;Meta&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Is the company forthcoming with the answers? Best case: the company not only answers the questions thoroughly, but also gives detailed reasoning behind their answers. If it seems like they&amp;rsquo;re reluctant to answer (or worse, dismissive of your need to know), that may be a hint how important employees&amp;#8217; concerns are, how much they&amp;rsquo;ve thought about the role you&amp;rsquo;d be doing, or how savvy other recent new employees are.&lt;/li&gt;
&lt;/ul&gt;

</content>
	</entry>
	
	<entry>
		<title>If Yelp put quality above quantity…</title>
    <link href="https://troy.yort.com/if-yelp-put-quality-above-quantity-dot-dot-dot/"/>
		<updated>2016-07-29T11:09:35-07:00</updated>
    <id>https://troy.yort.com/if-yelp-put-quality-above-quantity-dot-dot-dot</id>
    <content type="html">&lt;p&gt;I posted &lt;a href=&quot;https://news.ycombinator.com/item?id=12188315&quot;&gt;this comment&lt;/a&gt; on &lt;a href=&quot;https://news.ycombinator.com/item?id=12184688&quot;&gt;this Hacker News thread&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;If Yelp put accuracy and completeness ahead of # of reviews, they&amp;rsquo;d have already made 2 changes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Let anyone comment on other people&amp;rsquo;s comments - like HN or Reddit, with similar reputation (points) and up/downvotes.
 Right now, unless an owner monitors and responds to every negative comment, there&amp;rsquo;s no recourse for being unreasonable or flat-out inaccurate. Even when an owner does so, the recourse is minimal. Let any other Yelp user reply, turning each comment into a thread.&lt;/li&gt;
&lt;li&gt;When someone posts a 1- or 2-star review, show a second, required comment field for &amp;ldquo;What happened when you informed the retailer?&amp;rdquo;
 If someone is served a meal they don&amp;rsquo;t like and says nothing at the time, they skipped a - the - critical step. While there are cases where a low review could be justified without ever giving the retailer a chance to address the perceived problem (like if someone showed up twice during posted business hours and the retailer was closed), they cause fewer than 10% of 1- and 2-star ratings and they&amp;rsquo;re easy to explain. Otherwise, the minimum for a negative review to be constructive is having informed the retailer (and let them try to address it).&lt;/li&gt;
&lt;/ol&gt;

</content>
	</entry>
	
	<entry>
		<title>FastMail as &#8220;customer or consumer?&#8221; experiment</title>
    <link href="https://troy.yort.com/fastmail-as-customer-or-consumer-experiment/"/>
		<updated>2015-11-16T10:07:23-08:00</updated>
    <id>https://troy.yort.com/fastmail-as-customer-or-consumer-experiment</id>
    <content type="html">&lt;p&gt;I posted &lt;a href=&quot;https://news.ycombinator.com/item?id=10575488&quot;&gt;this comment&lt;/a&gt; on &lt;a href=&quot;https://news.ycombinator.com/item?id=10572597&quot;&gt;FastMail: Shutting down our XMPP service&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Background: A &lt;a href=&quot;https://news.ycombinator.com/item?id=10572819&quot;&gt;comment&lt;/a&gt;
criticized people for wanting to be &amp;ldquo;consumers&amp;rdquo; instead of &amp;ldquo;customers.&amp;rdquo;
Many other comments implied that people should want to pay for service received
and/or to encourage interoperability. That&amp;rsquo;s a fine opinion, but not when
concurrently using Google because it&amp;rsquo;s free.&lt;/p&gt;

&lt;p&gt;Here&amp;rsquo;s the comment.&lt;/p&gt;

&lt;p&gt;&amp;ndash;&lt;/p&gt;

&lt;p&gt;When someone raises this concern, I ask who hosts their personal email. 30-50% use a legacy free Google Apps account or Gmail. When I ask why, it&amp;rsquo;s a variation on &amp;ldquo;because FastMail &lt;a href=&quot;https://www.fastmail.com/help/ourservice/pricing.html&quot;&gt;costs&lt;/a&gt; ~$40/year.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;Of the rest, more than half host their own MX. While that&amp;rsquo;s totally reasonable, it means the percentage of people willing to pay just $3/month to be a customer is even smaller than it seems. And $40/year is the cheapest that one could ever hope &amp;ldquo;being a customer&amp;rdquo; would cost.&lt;/p&gt;

&lt;p&gt;So, lots of people say they want to be customers, but even when doing so is close to free, very few actually do.&lt;/p&gt;

&lt;p&gt;(Nothing wrong with using Google because it&amp;rsquo;s free, only while concurrently claiming to want to be a customer. I agree with your point and I&amp;rsquo;m a happy FastMail customer. I&amp;rsquo;m amazed FastMail can make a profit at $40 and it&amp;rsquo;s a huge credit to them that they can.)&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Comment on: How do I stop comparing myself to others?</title>
    <link href="https://troy.yort.com/comment-on-how-do-i-stop-comparing-myself-to-others/"/>
		<updated>2015-11-08T07:52:11-08:00</updated>
    <id>https://troy.yort.com/comment-on-how-do-i-stop-comparing-myself-to-others</id>
    <content type="html">&lt;p&gt;I posted a &lt;a href=&quot;https://news.ycombinator.com/item?id=10528744&quot;&gt;comment&lt;/a&gt; on the
Hacker News thread &amp;ldquo;&lt;a href=&quot;https://news.ycombinator.com/item?id=10523788&quot;&gt;Ask HN: How do I stop comparing myself to others?&lt;/a&gt;.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;Society didn&amp;rsquo;t offer &amp;ldquo;Start a geek-centric Web service, then spend years
quietly building it profitably, and do so while living in a dozen different
cities&amp;rdquo; as a viable journey, let alone a valuable goal.&lt;/p&gt;

&lt;p&gt;Here&amp;rsquo;s the comment:&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Find a goal or even a yardstick that&amp;rsquo;s more meaningful to you than to anyone else. Ideally, also find a path to it that&amp;rsquo;s uniquely appealing to you.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s way harder to think about what you want than to hop on to society&amp;rsquo;s defaults (schools, work prestige, wealth, looks, ..). &lt;a href=&quot;http://www.paulgraham.com/love.html&quot;&gt;http://www.paulgraham.com/love.html&lt;/a&gt; touches on this (&amp;ldquo;if you admire two kinds of work equally, [choose the less prestigious]&amp;rdquo;).&lt;/p&gt;

&lt;p&gt;When no one else is trying to accomplish the same thing in the same way, only absolute measurements matter: how close did you get? How much did you enjoy the ride?&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Papertrail joins SolarWinds and accelerates growth</title>
    <link href="https://troy.yort.com/papertrail-joins-solarwinds-and-accelerates-growth/"/>
		<updated>2015-04-28T09:00:00-07:00</updated>
    <id>https://troy.yort.com/papertrail-joins-solarwinds-and-accelerates-growth</id>
    <content type="html">&lt;p&gt;I’m thrilled that Papertrail is now part of SolarWinds. Here&amp;rsquo;s more:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.papertrailapp.com/papertrail-joins-solarwinds-and-accelerates-growth/&quot;&gt;Papertrail joins SolarWinds and accelerates growth&lt;/a&gt; on papertrailapp.com&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.solarwinds.com/company/newsroom/press_releases/solarwinds_adds_cloud_based_log_management_acquisition_of_papertrail.aspx&quot;&gt;SolarWinds Adds Cloud-based Log Management Capabilities with Acquisition of Papertrail&lt;/a&gt; on solarwinds.com&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.geekwire.com/2015/bootstrapper-success-story-seattle-startup-papertrail-sells-to-solarwinds-for-41m-in-cash/&quot;&gt;Bootstrapper success story: Seattle startup Papertrail sells to SolarWinds for $41M in cash&lt;/a&gt; on geekwire.com&lt;/li&gt;
&lt;/ul&gt;

</content>
	</entry>
	
	<entry>
		<title>Notes on standing desk</title>
    <link href="https://troy.yort.com/notes-on-standing-desk/"/>
		<updated>2015-01-04T16:14:55-08:00</updated>
    <id>https://troy.yort.com/notes-on-standing-desk</id>
    <content type="html">&lt;p&gt;I posted a bit about my first 6 weeks with a standing desk on &lt;a href=&quot;http://blogs.law.harvard.edu/philg/2015/01/03/standing-and-treadmill-desk-ideas-and-experience/comment-page-1/#comment-260561&quot;&gt;Philip
Greenspun&amp;rsquo;s blog&lt;/a&gt;. The post is below.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;I bought both a &lt;a href=&quot;http://www.geekdesk.com/geekdesk-max-frame-only&quot;&gt;GeekDesk Max&lt;/a&gt; frame and an &lt;a href=&quot;http://www.thehumansolution.com/uplift-920-electric-sit-stand-no-crossbar-desk-base-black.html&quot;&gt;Uplift 920&lt;/a&gt;. The 920 has a removable section of the desk mount so it can accept a full-depth keyboard drawer.&lt;/p&gt;

&lt;p&gt;I kept the Uplift and after 2 months, am thrilled with it. They&amp;rsquo;re both excellent products and incredible values. I opted for the Uplift because of the removable section, a longer warranty, no back brace between the legs (leaves room for bike or taller treadmill), and a design which allows the controls to be mounted anywhere. I don&amp;rsquo;t see any difference in sturdiness or daily use. The motor on the Uplift is slightly faster, but it makes no difference. I mounted an IKEA Numerar solid butcher block on it, mostly because just about all desktops on the market are deeper than the ~24&amp;#8221; I wanted.&lt;/p&gt;

&lt;p&gt;A lot of adjustable standing desks are actually rebranded legs, controls, and control boxes from a company called LINAK: &lt;a href=&quot;http://www.linak.com/products/lifting-columns.aspx?sbaid=2&quot;&gt;LINAK&lt;/a&gt;. Other than the very high-end office furniture makers, I&amp;rsquo;d guess more than half of electric adjustable desks are from LINAK VARs (GeekDesk and THS included): &lt;a href=&quot;http://www.linak.com/deskline/&quot;&gt;LINAK Deskline&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that I know how to spot them, I see Uplifts everywhere. The standing desk photo in &lt;a href=&quot;http://tmagazine.blogs.nytimes.com/2014/11/13/olafur-eliasson-interview-fondation-louis-vuitton/&quot;&gt;this article&lt;/a&gt; is the Uplift or identical components.&lt;/p&gt;

&lt;p&gt;Along with the desk, buy a large CumulusPRO mat: &lt;a href=&quot;http://thewirecutter.com/reviews/best-standing-desk-mat/&quot;&gt;The Wirecutter&lt;/a&gt;. A quality anti-fatigue mat is not optional. I also use a Kinesis &lt;a href=&quot;https://www.kinesis-ergo.com/shop/freestyle2-for-mac/&quot;&gt;Freestyle&lt;/a&gt; split keyboard and Evoluent &lt;a href=&quot;http://evoluent.com/&quot;&gt;VerticalMouse&lt;/a&gt;. Typing and mousing feel like extending my arms forward. Otherwise, just listen to your body. If you&amp;rsquo;re exhausted or something hurts, sit down.&lt;/p&gt;

&lt;p&gt;I have no firsthand experience with a treadmill desk. Our accountant uses a treadmill desk and has for years. He &lt;a href=&quot;https://twitter.com/papertrailapp/status/452162788547239936&quot;&gt;swears by&lt;/a&gt; it.&lt;/p&gt;

&lt;p&gt;I bought my desk intending to add either a treadmill or a bike. Last week, I ordered a bike because I wanted to also use it for full-energy cycling (while not working or barely occupied). It&amp;rsquo;s essentially &lt;a href=&quot;http://www.thehumansolution.com/uplift-spin-bike.html&quot;&gt;this&lt;/a&gt;, only with a belt drive Sunny SF-B1002 flywheel bike instead of the chain drive Marcy bike in the photo.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Improve Linux tcp_tw_recycle man page entry</title>
    <link href="https://troy.yort.com/improve-linux-tcp-tw-recycle-man-page-entry/"/>
		<updated>2014-11-23T09:01:38-08:00</updated>
    <id>https://troy.yort.com/improve-linux-tcp-tw-recycle-man-page-entry</id>
    <content type="html">&lt;p&gt;We recently identified the cause of a problem affecting one of
&lt;a href=&quot;https://papertrailapp.com&quot;&gt;Papertrail&amp;rsquo;s&lt;/a&gt; service providers. Their hosts
occasionally could not establish TCP connections with a seemingly-random
small set of Internet hosts.&lt;/p&gt;

&lt;p&gt;Troubleshooting was difficult because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The affected hosts changed. One host would oscillate between being able to establish a connection for a
few hours (or days) and not, seemingly with no pattern.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I didn&amp;rsquo;t have direct access to the service provider&amp;rsquo;s hosts or the end
users&amp;#8217; hosts. This made reproducing the problem in a controlled environment
basically impossible. &amp;ldquo;Paste the output of..&amp;rdquo; and &amp;ldquo;Run this packet capture..&amp;rdquo;
was what I had to work with.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;I couldn&amp;rsquo;t draw conclusions from the end users who reported the problem.
Fewer than 5 users reported problems and they were biased towards inquisitive
people (who investigated or reported the first occurrence) or those who
experienced the problem multiple times. Presumably, some end users couldn&amp;rsquo;t
connect once and just tried again later.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Among this tiny pool, there was one common theme: the remote hosts traversed
NAT. My investigation eventually led to &lt;code&gt;tcp_tw_recycle&lt;/code&gt;, a Linux &lt;code&gt;sysctl&lt;/code&gt; flag
with &lt;a href=&quot;https://www.google.com/search?q=tcp_tw_recycle&quot;&gt;far more Google results&lt;/a&gt;
than it deserves. Here&amp;rsquo;s why.&lt;/p&gt;

&lt;h3&gt;Linux TCP header verification&lt;/h3&gt;

&lt;p&gt;Modern Linux kernels verify that TCP header values meet certain requirements.
These include &amp;ldquo;Protect Against Wrapped Sequence numbers&amp;rdquo; or PAWS, defined in
&lt;a href=&quot;https://www.ietf.org/rfc/rfc1323.txt&quot;&gt;RFC 1323&lt;/a&gt;, and
&lt;a href=&quot;https://tools.ietf.org/html/rfc6191&quot;&gt;RFC 6191&lt;/a&gt; &amp;ldquo;Reducing the TIME-WAIT State
Using TCP Timestamps.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;With &lt;code&gt;tcp_tw_recycle&lt;/code&gt; enabled, a connection&amp;rsquo;s TCP header timestamp value is
retained in cases where it otherwise would not have been kept. From
&lt;a href=&quot;https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/net/ipv4/tcp_ipv4.c?h=linux-2.6.32.y#n200&quot;&gt;tcp_ipv4.c&lt;/a&gt;:&lt;/p&gt;

&lt;figure class=&#39;code&#39;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class=&#39;line-number&#39;&gt;1&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;2&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;3&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;4&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;5&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;6&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;7&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;8&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;9&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;10&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;11&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;12&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;13&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;14&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;15&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#39;code&#39;&gt;&lt;pre&gt;&lt;code class=&#39;&#39;&gt;&lt;span class=&#39;line&#39;&gt;if (tcp_death_row.sysctl_tw_recycle &amp;&amp;
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;    !tp-&amp;gt;rx_opt.ts_recent_stamp &amp;&amp; rt-&amp;gt;rt_dst == daddr) {
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;        struct inet_peer *peer = rt_get_peer(rt);
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;        /*
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;         * VJ&#39;s idea. We save last timestamp seen from
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;         * the destination in peer table, when entering state
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;         * TIME-WAIT * and initialize rx_opt.ts_recent from it,
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;         * when trying new connection.
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;         */
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;        if (peer != NULL &amp;&amp;
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;            peer-&amp;gt;tcp_ts_stamp + TCP_PAWS_MSL &amp;gt;= get_seconds()) {
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;                tp-&amp;gt;rx_opt.ts_recent_stamp = peer-&amp;gt;tcp_ts_stamp;
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;                tp-&amp;gt;rx_opt.ts_recent = peer-&amp;gt;tcp_ts;
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;        }
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;The problem: the TCP timestamp is only tracked on a per-remote-IP basis, yet
some NAT devices don&amp;rsquo;t rewrite TCP timestamps in the translation process.
As a result, the Internet-facing IP of a NAT device may transmit valid packets
with unrelated timestamps.&lt;/p&gt;

&lt;p&gt;The problem we saw manifests when more than one remote host (for example, two
employees on an office network) try to connect to this Linux host within a few
minutes of one another. The first connection will succeed, but the
second connection attempt (from the same public NAT IP) will fail. The
kernel considers its timestamp invalid.&lt;/p&gt;

&lt;p&gt;In another function, a comment hints at the difference between tracking
timestamps on a per-host basis and doing so on a per-port-pair basis. From
&lt;a href=&quot;https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/net/ipv4/tcp_ipv4.c?h=linux-2.6.32.y#n112&quot;&gt;tcp_ipv4.c&lt;/a&gt;:&lt;/p&gt;

&lt;figure class=&#39;code&#39;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class=&#39;line-number&#39;&gt;1&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;2&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;3&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;4&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;5&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;6&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;7&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;8&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;9&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;10&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#39;code&#39;&gt;&lt;pre&gt;&lt;code class=&#39;&#39;&gt;&lt;span class=&#39;line&#39;&gt;/* With PAWS, it is safe from the viewpoint
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;   of data integrity. Even without PAWS it is safe provided sequence
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;   spaces do not overlap i.e. at data rates &amp;lt;= 80Mbit/sec.
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;   Actually, the idea is close to VJ&#39;s one, only timestamp cache is
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;   held not per host, but per port pair and TW bucket is used as state
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;   holder.
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;   If TW bucket has been already destroyed we fall back to VJ&#39;s scheme
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;   and use initial timestamp retrieved from peer table.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Note: I haven&amp;rsquo;t read anywhere near all of Linux&amp;rsquo;s TCP header source. If you
find an error in this post, let me know.&lt;/p&gt;

&lt;h3&gt;Root cause&lt;/h3&gt;

&lt;p&gt;Although that&amp;rsquo;s the problem, the root cause is poor documentation. The two
places that a systems administrator is most likely to consult are
the kernel &lt;a href=&quot;https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/Documentation/networking/ip-sysctl.txt?h=linux-2.6.32.y#n438&quot;&gt;IP sysctl docs&lt;/a&gt;, which suggests consulting &amp;ldquo;technical experts&amp;rdquo;:&lt;/p&gt;

&lt;figure class=&#39;code&#39;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class=&#39;line-number&#39;&gt;1&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;2&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;3&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;4&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#39;code&#39;&gt;&lt;pre&gt;&lt;code class=&#39;&#39;&gt;&lt;span class=&#39;line&#39;&gt;tcp_tw_recycle - BOOLEAN
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;        Enable fast recycling TIME-WAIT sockets. Default value is 0.
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;        It should not be changed without advice/request of technical
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;        experts.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;.. and the &lt;a href=&quot;http://man7.org/linux/man-pages/man7/tcp.7.html&quot;&gt;tcp.7 man page&lt;/a&gt;, which says:&lt;/p&gt;

&lt;figure class=&#39;code&#39;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class=&#39;line-number&#39;&gt;1&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;2&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;3&lt;/span&gt;
&lt;span class=&#39;line-number&#39;&gt;4&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#39;code&#39;&gt;&lt;pre&gt;&lt;code class=&#39;&#39;&gt;&lt;span class=&#39;line&#39;&gt;tcp_tw_recycle (Boolean; default: disabled; since Linux 2.4)
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;        Enable fast recycling of TIME_WAIT sockets.  Enabling this
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;        option is not recommended since this causes problems when
&lt;/span&gt;&lt;span class=&#39;line&#39;&gt;        working with NAT (Network Address Translation).&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Neither of these explain what the option changes or how it interacts with
NAT. I&amp;rsquo;ve submitted &lt;a href=&quot;http://marc.info/?l=linux-man&amp;amp;m=141676013318902&amp;amp;w=2&quot;&gt;a patch&lt;/a&gt;
for the man page. The changed copy warns of the possible impact and says
where to learn more.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Enable fast recycling of TIME_WAIT sockets. Enabling this option is
not recommended for devices communicating with the general Internet
or using NAT (Network Address Translation). Since some NAT gateways
pass through IP timestamp values, one IP can appear to have
non-increasing timestamps. See RFC 1323 (PAWS), RFC 6191.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;There&amp;rsquo;s also a 2013 &lt;a href=&quot;https://tools.ietf.org/html/draft-penno-behave-rfc4787-5382-5508-bis-04#section-3.1.2&quot;&gt;BCP&lt;/a&gt;
(&amp;ldquo;Network Address Translation Behavioral Requirements Updates&amp;rdquo;)
which informs future NAT implementors of this consideration.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Clearer permission message for Chrome new tab extensions</title>
    <link href="https://troy.yort.com/clearer-permission-message-for-chrome-new-tab-extensions/"/>
		<updated>2014-08-16T10:38:02-07:00</updated>
    <id>https://troy.yort.com/clearer-permission-message-for-chrome-new-tab-extensions</id>
    <content type="html">&lt;p&gt;In creating Taco&amp;rsquo;s &lt;a href=&quot;https://tacoapp.com/chrome&quot;&gt;Chrome extension&lt;/a&gt;, I
became familiar with Chrome&amp;rsquo;s permission system. An extension defines
the information it accesses, like request history, and Chrome shows
permission-specific descriptions to end users when they try to install
it.&lt;/p&gt;

&lt;p&gt;I recently added the
&lt;a href=&quot;https://developer.chrome.com/extensions/topSites&quot;&gt;topSites&lt;/a&gt; permission
to Taco&amp;rsquo;s extension, which grants very limited access: the URLs and page
titles of the 20 most frequently visited sites. It&amp;rsquo;s the information
shown on Chrome&amp;rsquo;s new tab page.&lt;/p&gt;

&lt;p&gt;When I added this permission, here&amp;rsquo;s what Chrome presented to users (as
reported by a justifiably surprised user):&lt;/p&gt;

&lt;blockquote class=&quot;twitter-tweet&quot; lang=&quot;en&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://twitter.com/tacoapp&quot;&gt;@tacoapp&lt;/a&gt; The reason I ask is that it states on your website that the extension &amp;#39;can&amp;#39;t access your browsing data&amp;#39;… &lt;a href=&quot;http://t.co/9EUFn4TrW5&quot;&gt;pic.twitter.com/9EUFn4TrW5&lt;/a&gt;&lt;/p&gt;&amp;mdash; Adam Sait (@adamsait) &lt;a href=&quot;https://twitter.com/adamsait/statuses/500257116566085632&quot;&gt;August 15, 2014&lt;/a&gt;&lt;/blockquote&gt;


&lt;script async src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;


&lt;p&gt;&amp;ldquo;Read your browsing history&amp;rdquo; isn&amp;rsquo;t an accurate description of the access
Taco has, especially when a different permission level (&amp;ldquo;history&amp;rdquo;)
exists which does grant exactly that. I&amp;rsquo;m sure that led some users to
uninstall the extension instead of upgrading and granting this
permission, so I wanted to solve the problem for other users like this
person and for other extension authors.&lt;/p&gt;

&lt;p&gt;I found &lt;a href=&quot;https://code.google.com/p/chromium/issues/detail?id=362794&quot;&gt;this&lt;/a&gt;
Chromium issue about improving permission descriptions and posted
&lt;a href=&quot;https://code.google.com/p/chromium/issues/detail?id=362794#c15&quot;&gt;a request&lt;/a&gt;
and a followup &lt;a href=&quot;https://code.google.com/p/chromium/issues/detail?id=362794#c17&quot;&gt;justification&lt;/a&gt;,
both duplicated below. The justification led to Chromium
&lt;a href=&quot;https://code.google.com/p/chromium/issues/detail?id=404334&quot;&gt;issue 404334&lt;/a&gt;
to change the description to something clearer, like &amp;ldquo;Read a list of the
20 sites you most frequently visit.&amp;rdquo;&lt;/p&gt;

&lt;hr /&gt;

&lt;h3&gt;Comment #1 (&lt;a href=&quot;https://code.google.com/p/chromium/issues/detail?id=362794#c15&quot;&gt;original&lt;/a&gt;)&lt;/h3&gt;

&lt;p&gt;Our users encountered this problem. Namely, as
&lt;a href=&quot;https://developer.chrome.com/extensions/permission_warnings#warnings&quot;&gt;permission warnings&lt;/a&gt;
says, the &lt;code&gt;topSites&lt;/code&gt; permission causes users to see the same user-facing
description as the &lt;code&gt;history&lt;/code&gt; permission, even though it has far, far
less access.&lt;/p&gt;

&lt;p&gt;Both permissions say it&amp;rsquo;s possible to &amp;ldquo;Read and modify your browsing
history.&amp;rdquo; While that&amp;rsquo;s accurate for the history permission, for
topSites, it should say something like &amp;ldquo;Read the 20 most frequently
visited URLs&amp;rdquo; or &amp;ldquo;Read most frequently visited URLs.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;(If one wanted to be really user-friendly, I could see checking for
&lt;code&gt;newtab&lt;/code&gt; in &lt;code&gt;chrome_url_overrides&lt;/code&gt; and adjusting the message for that,
like &amp;ldquo;Read most frequently visited URLs (such as for new tab pages)&amp;rdquo; or
linking to a page which says same.)&lt;/p&gt;

&lt;p&gt;Anyway, end result is that right now, end users can&amp;rsquo;t tell the
difference between two permissions which should involve very different
amounts of trust.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3&gt;Comment #2 (&lt;a href=&quot;https://code.google.com/p/chromium/issues/detail?id=362794#c17&quot;&gt;original&lt;/a&gt;)&lt;/h3&gt;

&lt;p&gt;Thanks for the fast reply and thoughtful comments, Mustafa. I totally
agree that none of these is universally perfect. I do think there&amp;rsquo;s 3
challenges with the current (new) topSites description:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;When interpreted by almost any user, it&amp;rsquo;s inaccurate. No user thinks
of &amp;ldquo;browsing history&amp;rdquo; as &amp;ldquo;the most frequently accessed sites,&amp;rdquo; let alone
&amp;ldquo;the sites on my new tab page.&amp;rdquo; It uses a phrase (&amp;ldquo;browsing history&amp;rdquo;)
which, while obviously not intentionally wrong, doesn&amp;rsquo;t mean what it&amp;rsquo;s
intended to.&lt;/p&gt;

&lt;p&gt;  Here&amp;rsquo;s an example I encountered today:
&lt;a href=&quot;https://twitter.com/adamsait/status/500242045701988353&quot;&gt;tweet&lt;/a&gt;. Nobody
thinks &amp;ldquo;browsing history&amp;rdquo; means &amp;ldquo;URLs of top 20 sites.&amp;rdquo; This manifests
in lower user satisfaction because users decline to use extensions
they&amp;rsquo;d actually be comfortable with.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Users can&amp;rsquo;t differentiate between 2 very different permission levels.
By conflating two very different amounts of access (&lt;code&gt;topSites&lt;/code&gt; and
&lt;code&gt;history&lt;/code&gt;) into the same single message, a user isn&amp;rsquo;t told the difference.
Many, maybe a majority of, users who would be uncomfortable granting
history would be completely comfortable granting topSites.&lt;/p&gt;

&lt;p&gt;  In as much as the goal of the permissions system is to let users make
informed decisions, two very different amounts of access should be
described differently. (The corollary of this argument: if they aren&amp;rsquo;t
different enough to justify different descriptions, we might as well
obsolete topSites and exclusively use history. I don&amp;rsquo;t think that at
all, though!).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It deters extensions from using topSites, or would if extension authors
knew about this problem ahead of time. I just released an update to a new
tab page which started using &lt;code&gt;topSites&lt;/code&gt;
(&lt;a href=&quot;https://twitter.com/tacoapp/status/500268474560946177&quot;&gt;tweet&lt;/a&gt;). If I&amp;rsquo;d
known 24 hours ago what I know now about the permission wording, I would
not have added topSites support to our extension. Because it&amp;rsquo;s so
generic, the user message is scarier than the feature justifies.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</content>
	</entry>
	
	<entry>
		<title>Experience as a customer of Simple.com</title>
    <link href="https://troy.yort.com/experience-as-a-customer-of-simple-dot-com/"/>
		<updated>2014-05-21T15:12:54-07:00</updated>
    <id>https://troy.yort.com/experience-as-a-customer-of-simple-dot-com</id>
    <content type="html">&lt;p&gt;Jack Gavigan posted &lt;a href=&quot;http://jackgavigan.com/2014/04/14/disruptive-bank/&quot;&gt;What would a disruptive bank look like?&lt;/a&gt;
and Simple Finance Technology Corp. (AKA Simple.com, formerly
BankSimple) was one of the services he used as a baseline.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve been a customer of Simple since very close to day 1, so I posted
&lt;a href=&quot;http://jackgavigan.com/2014/04/14/disruptive-bank/#comment-1082&quot;&gt;a comment&lt;/a&gt;
with off-the-cuff notes. My comment is duplicated below.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Here&amp;rsquo;s my notes on experiences as a customer since very close to day 1.&lt;/p&gt;

&lt;h3&gt;Overall&lt;/h3&gt;

&lt;p&gt;Simple does almost everything I want from a basic retail bank. I felt
like they had enough access and control to try to solve many of the
problems I&amp;rsquo;d had with other banks. Without the full stack, they still
had no shortage of ways to stand out.&lt;/p&gt;

&lt;h3&gt;Completeness&lt;/h3&gt;

&lt;p&gt;I actually wanted fewer internally-maintained features than Simple
provided. For example, I didn&amp;rsquo;t use Simple&amp;rsquo;s goals at all, though I can
see from Twitter comments that some customers did. As another example,
Simple&amp;rsquo;s automatic merchant name cleanup was a minor convenience at best,
and had enough errors that I&amp;rsquo;m not sure it was worth the effort.&lt;/p&gt;

&lt;p&gt;Simple had basically reached maturity for a basic retail bank. Yes, there
was and is more it could do, but they&amp;rsquo;re the long tail of retail banking
features. (What would an end-to-end reinvention of a bank let them provide
that isn&amp;rsquo;t doable today? Perhaps doing less, not more, and exposing &amp;ldquo;raw&amp;rdquo;
parts of the stack for a future ZenPayroll or Balanced to consume).&lt;/p&gt;

&lt;h3&gt;Support (and paying for it..)&lt;/h3&gt;

&lt;p&gt;Support made or broke the service to a degree that I didn&amp;rsquo;t expect, even
coming from a bank where I had a personal rep. Simple&amp;rsquo;s site treats support
discussions as the first-class elements they are. The staff is responsive
and savvy. It made a huge difference.&lt;/p&gt;

&lt;p&gt;I don&amp;rsquo;t know how interchange fees would cover the costs of Simple&amp;rsquo;s customer
support, let alone software development, ops, and support. Although support
was very thorough, Simple didn&amp;rsquo;t spend a lot of effort turning answers into
something that would let other customers find the answer themselves.&lt;/p&gt;

&lt;p&gt;Many of my questions were factual topics which could easily go in a FAQ:
policies, limits, service features. Obviously I&amp;rsquo;d like my bank to be
sustainable on the fees it collects, which made it somewhat frustrating when
I had to ask a question that didn&amp;rsquo;t then end up somewhere in Simple&amp;rsquo;s docs.&lt;/p&gt;

&lt;p&gt;This might be a comprehensive FAQ (yes, there&amp;rsquo;s a FAQ, no, it&amp;rsquo;s not
comprehensive), a public Discourse-style forum, or giving certain customers
edit access to the existing FAQ and having staff moderate and release the
changes. I think Simple was hoping to differentiate mostly on service, so
providing fewer human interactions didn&amp;rsquo;t really appeal.&lt;/p&gt;

&lt;p&gt;It felt like there was a decision here: either they&amp;rsquo;re a premium bank with
a monthly price, or they&amp;rsquo;re a friend-of-all consumer bank like what WaMu
tried to brand themselves as.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Oaxaca street food recommendations</title>
    <link href="https://troy.yort.com/oaxaca-street-food-recommendations/"/>
		<updated>2014-03-30T14:08:23-07:00</updated>
    <id>https://troy.yort.com/oaxaca-street-food-recommendations</id>
    <content type="html">&lt;p&gt;When I returned from Oaxaca, I found a Chow.com thread titled &amp;ldquo;Oaxaca
for dummies.&amp;rdquo; I&amp;rsquo;d eaten at most of the sit-down restaurants mentioned in
the discussion, yet they weren&amp;rsquo;t meals I enjoyed most or remembered
most. Street food was. I wrote &lt;a href=&quot;http://chowhound.chow.com/topics/354760#8849236&quot;&gt;this comment&lt;/a&gt;
with food truck and tianguis/market meal suggestions. My comment is
duplicated below.&lt;/p&gt;

&lt;blockquote class=&quot;twitter-tweet&quot; lang=&quot;en&quot;&gt;&lt;p&gt;trying to support entrepreneurs in Oaxaca. added Tlayudas Doña Gloria to Google Maps, Flickr: &lt;a href=&quot;http://t.co/V7JZmO1nyN&quot;&gt;http://t.co/V7JZmO1nyN&lt;/a&gt;, &lt;a href=&quot;http://t.co/qDbkesD2sP&quot;&gt;http://t.co/qDbkesD2sP&lt;/a&gt;&lt;/p&gt;&amp;mdash; Troy Davis (@troyd) &lt;a href=&quot;https://twitter.com/troyd/statuses/400324521082642432&quot;&gt;November 12, 2013&lt;/a&gt;&lt;/blockquote&gt;


&lt;script async src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;


&lt;hr /&gt;

&lt;p&gt;I just returned from 4 months in Oaxaca. Here&amp;rsquo;s my very condensed
best-of.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DESAYUNO - TACOS&lt;/strong&gt;: 2 taco stands setup on the sidewalk at the far NW
corner of the Templo del Carmen Alto starting at 8:30:
&lt;a href=&quot;https://www.google.com/maps/place/Registro+Civil+del+Estado/@17.0673634,-96.7241585,20z&quot;&gt;Google Maps&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get a tinga taco from the southern-most one (in the corner), then walk
on to the northern one on the sidewalk. If the northernmost one isn&amp;rsquo;t
there that day, get 1 tinga and 1 chorizo :-) It&amp;rsquo;s actually
&lt;a href=&quot;https://foursquare.com/v/tacos-de-chorizo-del-carmen-alto/4ebd8b1b61af9815e138f31d&quot;&gt;on Foursquare&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DESAYUNO - MUFFIN&lt;/strong&gt;: the Cafe Brujula on Garcia Vigil bakes berry muffins
every morning. They come out at about 9:
&lt;a href=&quot;http://cafebrujula.com/index.php?lang=en#locations&quot;&gt;Cafe Brujula&lt;/a&gt;. Most
pastries in Mexico are little more than sugar and flour. These muffins
are amazing and the venue is nice for wifi. Skip the banana loaf thing
if that&amp;rsquo;s all they have.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;COMIDA - TOSTADAS&lt;/strong&gt;: Tostadas at a stand about 3 meters into Parque El
Llano (off of Avenida Juarez). There are a handful of stands throughout
the park, so I&amp;rsquo;ve attached a map with an X where this one is. At least
as of this writing, it has a green awning and is run by 1 woman and
sometimes a man. They&amp;rsquo;re around every day. Recommend 1 or 2 tostadas
with tinga, tasajo, or whatever she&amp;rsquo;s got.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;COMIDA - TORTA&lt;/strong&gt;: Every Friday, there&amp;rsquo;s a mercado at Parque El Llano. At
the southernmost street bordering the park, there&amp;rsquo;s a taco stand called.
Chitos Tacos or Chatos Tacos It&amp;rsquo;s across the street from 100% Natural,
facing north into the market. Get a torta Hawaiana and a taco.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CENA - TLAYUDA&lt;/strong&gt;: after 8:30 or 8:45 PM (which is not late for dinner in
Oaxaca), get a tlayuda con tasajo from Cenaduría Doña Gloria: &lt;a href=&quot;https://www.google.com/maps/preview?hl=en&amp;amp;cid=12755649183580244725&quot;&gt;Google Maps&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If I picked one must-have meal in Oaxaca, this is it. The food is
amazing, uniquely Oaxaqueñan, and you&amp;rsquo;re eating on her front porch.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s great with friends, and if you&amp;rsquo;re so inclined, bring a beer poured
into a Coke bottle. Ask for cebollas on the side and she&amp;rsquo;ll hand you a
Tupperware of awesome.&lt;/p&gt;

&lt;p&gt;The map is dead-on accurate. You&amp;rsquo;ll see this sign on the sidewalk of Río
Amazonas: &lt;a href=&quot;https://www.google.com/maps/place/Tlayudas+Do%C3%B1a+Gloria/@17.076582,-96.723928,2a,90y,90t/data=!3m5!1e2!3m3!1shttps:%2F%2Flh6.googleusercontent.com%2F-YETy_d4SvGk%2FUoWxuvx2oxI%2FAAAAAAAAAKI%2F0uMpi484fVI%2Fs270%2Fphoto.JPG!2e4!3e12!4m2!3m1!1s0x0:0xb1052b59a2cd4af5!6m1!1e1?hl=en&quot;&gt;Cenaduría Doña Gloria&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Many of the streets in Xochimilco/La Cascada are dead-ends, but if
you&amp;rsquo;re lost, ask someone and they&amp;rsquo;re likely to know where she is.&lt;/p&gt;

&lt;p&gt;The walk from El Centro is really nice, too, and leads past where
Mercado El Pochote happens every Friday and Saturday:
&lt;a href=&quot;http://oaxaca-chapulines.blogspot.com/2012/01/mercado-el-pochote.html&quot;&gt;El Pochote&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Taco: Basecamp to Zendesk, all your tasks on one place</title>
    <link href="https://troy.yort.com/taco-basecamp-to-zendesk/"/>
		<updated>2013-06-22T16:00:00-07:00</updated>
    <id>https://troy.yort.com/taco-basecamp-to-zendesk</id>
    <content type="html">&lt;p&gt;My take on productivity, &lt;a href=&quot;http://tacoapp.com/&quot;&gt;Taco&lt;/a&gt;, is now on Kickstarter: &lt;a href=&quot;http://www.kickstarter.com/projects/tacoapp/taco-basecamp-to-zendesk-all-your-tasks-in-one-pla&quot;&gt;Taco: Basecamp to Zendesk, all your tasks in one place&lt;/a&gt;. As I told friends:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&amp;ldquo;Most of you know I run Papertrail and that it takes all of my time
and then some. I&amp;rsquo;ve stayed sane because of a unique Web app that I&amp;rsquo;ve
been prototyping and using daily for 23 months.&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Last week that secret weapon took on a life of its own when Taco launched &lt;a href=&quot;http://www.kickstarter.com/projects/tacoapp/taco-basecamp-to-zendesk-all-your-tasks-in-one-pla&quot;&gt;on Kickstarter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Even the creator of Rails took notice:&lt;/p&gt;

&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p&gt;Nice kickstarter for a unified todolist that brings content together from Basecamp, Github, Google, and others: &lt;a href=&quot;http://t.co/To88EwsXh6&quot;&gt;http://t.co/To88EwsXh6&lt;/a&gt;&lt;/p&gt;&amp;mdash; DHH (@dhh) &lt;a href=&quot;https://twitter.com/dhh/statuses/347280173999202304&quot;&gt;June 19, 2013&lt;/a&gt;&lt;/blockquote&gt;


&lt;script async src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;


&lt;p&gt;Take a look and see whether it fits the way you work. I look forward to bringing you the same fine productivity I&amp;rsquo;ve enjoyed for 2 years.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>The elements of a great customer support reply</title>
    <link href="https://troy.yort.com/the-elements-of-a-great-customer-support-reply/"/>
		<updated>2013-04-03T15:39:00-07:00</updated>
    <id>https://troy.yort.com/the-elements-of-a-great-customer-support-reply</id>
    <content type="html">&lt;p&gt;I wrote a comment reply on &amp;ldquo;&lt;a href=&quot;http://supportops.co/a-better-feature-request-email/#comment-170&quot;&gt;A Better Feature Request Email&lt;/a&gt;&amp;rdquo; (at &lt;a href=&quot;http://supportops.co&quot;&gt;SupportOps&lt;/a&gt;) that covers the elements which I think go into a great customer support reply. I also rewrote an example reply from the blog post. My comment is reposted below or you can read &lt;a href=&quot;http://supportops.co/a-better-feature-request-email/#comment-170&quot;&gt;the thread&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Your reply is absolute gold. I don’t have much to add. I completely agree it’s all about being authentic, whatever authentic is. I particularly love the &amp;ldquo;You company should be customer inspired not customer driven.&amp;rdquo; I can’t imagine any better way to state it.&lt;/p&gt;

&lt;p&gt;My responses boil down to 3 things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;demonstrating that I understand what the user asked for, whether it’s by restating it in my own words or talking through the pros and cons of what they propose.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;either clarifying what they’re asking for and why (the back story that led to needing it) or when none is needed needed (like because the request stands alone or we’ve already thought about it), sharing our thought process about it rather than just an answer.&lt;/p&gt;

&lt;p&gt; This is by far the most important part because it means the user is a peer in the process. They should have the opportunity to explain why I’m (we’re) wrong, just like a co-worker of mine would. if I’m suggesting some other way to solve the same problem, it forces me to talk through (justify) its pros and cons clearly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;providing a clear resolution, whether it’s that nothing will be done, that’s the use is on our radar and I see the value but it’s not likely to happen anytime soon, or that we love it enough that it’s likely really soon. (We don’t do a roadmap or anything like that, and I think they – and committing to them – do more damage than good.)&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Now I need to put my keystrokes where my mouth is. For a new user with whom I’ve never interacted, I might write something like the reply below. I made up the facts to show a range of responses, though I may only have one. For questions which I’d answered before, the meat would be based on an existing reply. I’d adapt it to the recipient’s apparent interest – is it more &amp;ldquo;I want..&amp;rdquo; or &amp;ldquo;You guys should..&amp;rdquo; – and technical ability.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Hi James,&lt;/p&gt;

&lt;p&gt;Thanks for trying SupportOps and moreover, for caring enough about it to spend the time to send this suggestion. I appreciate it.&lt;/p&gt;

&lt;p&gt;There’s not a way to login with Facebook or Twitter credentials. I can understand why you’d want to, though, especially if you’ve standardized on one of them as your login service at other sites. Right now I have so many passwords that Keychain or LastPass are the only way to keep them all.&lt;/p&gt;

&lt;p&gt;We do one thing that’s made logging in way less tedious for me: SupportOps’ login time (session duration) is 4 weeks. If you’ve checked “Keep me logged in,” you should not see a login prompt more than once a month.&lt;/p&gt;

&lt;p&gt;Based on your email, I think we’ll improve it by resetting the timer on every page view. I know that yet another password isn’t great, but at least you’d almost never see a login prompt. I can’t commit to it, so I’ll let you know if and when that goes live.&lt;/p&gt;

&lt;p&gt;Abstractly, I’d like to add third-party authentication. would probably be what we used, since it’s most related to SupportOps. That said, basically all of our dev resources are going into the core service right now. might be used by 20% of SupportCo users, and we’re not done with big changes that improve the service for almost everyone.&lt;/p&gt;

&lt;p&gt;(I might also write: “One thing I’ve learned is that aside from the actual integration, providing a great user flow with third-party services is a lot harder than it seems. &lt;a href=&quot;http://viget.com/extend/facebook-connect-ux-challenges&quot;&gt;http://viget.com/extend/facebook-connect-ux-challenges&lt;/a&gt; explains more. I think maintaining a great UX would mean we’d need to invest the time to get it right.” -Troy)&lt;/p&gt;

&lt;p&gt;I’d welcome feedback here, and thanks again for giving me the chance to talk through our current thinking. if you have any other questions, just let me know.&lt;/p&gt;

&lt;p&gt;Troy&lt;/p&gt;&lt;/blockquote&gt;
</content>
	</entry>
	
	<entry>
		<title>Why Web apps suck at invoices (and vice versa)</title>
    <link href="https://troy.yort.com/why-web-apps-suck-at-invoices-and-vice-versa/"/>
		<updated>2012-09-04T00:00:00-07:00</updated>
    <id>https://troy.yort.com/why-web-apps-suck-at-invoices-and-vice-versa</id>
    <content type="html">&lt;p&gt;On the &lt;a href=&quot;https://scoutapp.com/&quot;&gt;Scout&lt;/a&gt; support &lt;a href=&quot;https://groups.google.com/group/scoutapp&quot;&gt;mailing list&lt;/a&gt;, a prospective customer asked to receive an invoice instead of the typical credit card payment. I have some unique experience with that, so I posted the comment below as food for thought (see &lt;a href=&quot;https://groups.google.com/group/scoutapp/browse_thread/thread/660f3ade8bcd5928/e3dce7fb91a7d1b2?#e3dce7fb91a7d1b2&quot;&gt;thread&lt;/a&gt;).&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;This is &amp;ldquo;Why Web apps suck at invoices&amp;rdquo; and &amp;ldquo;Why invoices suck for Web apps,&amp;rdquo; all rolled into one. Next time someone requests an invoice, send them here.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Subject: invoice billing (was: Re: Fees for Rails Apps..)&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m not affiliated with Scout except as a customer, but I run an unrelated subscription Web service that sells to businesses and I&amp;rsquo;m occasionally asked the same question. It sounds like a really simple request, so I can understand the frustration at not being able to accommodate it.&lt;/p&gt;

&lt;p&gt;I wanted to add some color about how challenging it is to provide invoices. I&amp;rsquo;m speaking only about my experience, not Scout&amp;rsquo;s. Here&amp;rsquo;s why this is often a much bigger pain than it looks like, and is often actually a disadvantage to both parties:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Everything is a one-off. Almost everyone who wants an invoice also needs some other customization: the delivery process, the followup, the formatting (&amp;ldquo;We&amp;rsquo;re in Germany and our government requires you to tell us who we are&amp;rdquo;), whatever. Aside from tracking those one-offs, they makes it harder to solve or automate the other issues below. Which leads me to..&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Everything requires a human. If you don&amp;rsquo;t pay, a human has to email you, and it will almost never be worth the time to automate that process (especially in light of customer-specific processes above). Even something as simple as a credit becomes a time sink. A human needs to figure out how much is due (best case, transferring the amount from a summary email that a developer had to implement; worst case, calculating it manually); figure out how to get you the money (edit a future invoice, reissue an existing invoice, or cut you a check); deliver that credit, probably to someone in accounting who doesn&amp;rsquo;t know anything about what&amp;rsquo;s being purchased; process the payment; and come back a few weeks later to verify it was paid.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Someone has to go to the PO Box and then to the bank, and it needs to happen often enough that you don&amp;rsquo;t look like an idiot for depositing a 2 month old check.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reconciliation is harder. Accounting typically needs an entry for every individual customer payment, rather than one per day per credit card or however other transactions are handled.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Having an elastic payment method is really awesome, and our service and many others bake that assumption into our UX decisions and business processes. By &amp;ldquo;elastic&amp;rdquo; I mean that the amount isn&amp;rsquo;t set in stone a month before the service is provided. What should happen if you add a new host that you didn&amp;rsquo;t plan for? Does the vendor extend credit, or do they issue an invoice with a pro-rated line item and make you wait until it&amp;rsquo;s paid? How about 100 new hosts? Before long, the customer is predicting and committing to a certain amount of usage, quite possibly just to make billing simpler, and we&amp;rsquo;ve undone 15 years of software-as-a-service progress.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;All of this distracts from making the product better. Whether a company has 2 people or 100, the resources are finite, and at some level any other work is in place of product improvements. No Web service will ever be great at invoicing, most will never be good at it, and not one will ever enjoy it. That &amp;ldquo;morale debt&amp;rdquo; accumulates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The overhead will eventually be reflected in prices, and it&amp;rsquo;s way higher than the ~3% for credit cards. This thread started as a question about fees. One reason that Scout is such a good value is that their decisions mostly optimize for practical value. Building off its usage-based fees, would you be willing to pay a $25/invoice fee, and/or have a $500/invoice minimum? From my own experience, that&amp;rsquo;s the absolute minimum it takes to make this practical, and I&amp;rsquo;m probably still way too low.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;None of this is rocket science, it just takes time, and that&amp;rsquo;s why invoices suck for typical business subscription services. I consider it a positive that Scout is savvy enough to focus on what they&amp;rsquo;re good at.&lt;/p&gt;

&lt;p&gt;Finally, a potential solution: get a company card that&amp;rsquo;s only used for recurring purchases like this. You&amp;rsquo;re freed from monthly employee expense reports and accounting gains authoritative information about the transaction, since it&amp;rsquo;s essentially their card.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Examining borrower privacy in peer-to-peer lending</title>
    <link href="https://troy.yort.com/borrower-privacy-in-peer-to-peer-lending/"/>
		<updated>2012-08-21T00:00:00-07:00</updated>
    <id>https://troy.yort.com/borrower-privacy-in-peer-to-peer-lending</id>
    <content type="html">&lt;p&gt;I just &lt;a href=&quot;https://twitter.com/troyd/status/238085893280395264&quot;&gt;noticed&lt;/a&gt; that the sales reports published by &lt;a href=&quot;http://lendingclub.com/&quot;&gt;Lending Club&lt;/a&gt; contain enough personally-identifiable information (PII) to be, well, personally-identifiable. Per the instructions on their &lt;a href=&quot;http://www.lendingclub.com/public/privacy-policy.action&quot;&gt;privacy policy&lt;/a&gt;, I emailed this to the privacy role account.&lt;/p&gt;

&lt;p&gt;As a point of reference, here&amp;rsquo;s the equivalent &lt;a href=&quot;http://www.prosper.com/prospectus/&quot;&gt;prospectuses&lt;/a&gt; and an example &lt;a href=&quot;http://www.prosper.com/published/sec/sales/2012/sales_20120820-0900.htm&quot;&gt;sales report&lt;/a&gt; from Prosper. Prosper doesn&amp;rsquo;t seem to publicly disclose a borrower&amp;rsquo;s employer or city, only an job category and a state. Prosper&amp;rsquo;s freeform loan descriptions are more detailed and the borrower sometimes refers to a location, but the aggregate information is still not generally enough to identify the borrower, and never is unless the borrower over-discloses. I am not affiliated with either service.&lt;/p&gt;

&lt;p&gt;Here&amp;rsquo;s the email to Lending Club (August 21, 2012) and their reply (September 6, 2012):&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m a prospective lender and I just skimmed the &lt;a href=&quot;https://www.lendingclub.com/info/prospectus.action&quot;&gt;prospectuses&lt;/a&gt; and the &lt;a href=&quot;https://www.lendingclub.com/info/sales-reports.action&quot;&gt;sales report&lt;/a&gt; filings, then I read them, the &lt;a href=&quot;http://www.lendingclub.com/public/privacy-policy.action&quot;&gt;privacy policy&lt;/a&gt;, and the &lt;a href=&quot;http://www.lendingclub.com/kb/index.php?CategoryID=19&quot;&gt;privacy section&lt;/a&gt; of Lending Club&amp;rsquo;s knowledge base in more detail. The privacy policy contains two material discrepancies, one of which I believe is substantial. I explain the discrepancies in detail below.&lt;/p&gt;

&lt;p&gt;I believe the fix is relatively simple: the new borrower signup process, the privacy policy, and the knowledge base privacy section should all contain visible, obvious links to the sales reports. Right now they&amp;rsquo;re buried, and the privacy policy spends lots of words to (incompletely) describe how much will be disclosed. The borrower should be shown the actual information which will be disclosed about them, using the existing sales reports as an example. I believe this description explains the disclosure much more clearly:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;If your loan is funded, Lending Club must publicly disclose certain information about you as part of public SEC filings. This includes employer, year hired, city, income, loan reason, and credit information. &lt;a href=&quot;https://www.lendingclub.com/info/sales-reports.action&quot;&gt;Click here to see examples of Lending Club loan disclosures&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I&amp;rsquo;m spending the time to write all of this down because I want to see peer-to-peer lending and Lending Club succeed, so please let me know if I can clarify anything here. Here&amp;rsquo;s more details about the 2 discrepancies:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The information disclosed about borrowers in sales reports is enough to identify many of them individually. Although the information doesn&amp;rsquo;t contain a real name, the privacy policy states:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Personal but not personally identifiable information about borrowers is contained in loan listings that can be viewed by all users and is filed with the Securities and Exchange Commission and as such is made publicly available.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt; This is inaccurate. Using the information on Lending Club&amp;rsquo;s sales reports, I could personally identify many individual borrowers, and take an educated guess about many more. In some cases this would take a bit of existing information, such as from discovering a loan request from a co-worker based on their listed employer. I can almost guarantee that another employee of Friendship Public Charter School, Reis Law, pair Networks, Fundly, and many other small- and mid-size employers listed on the 2012-08-21 sales report could name the borrower using only information from the report.&lt;/p&gt;

&lt;p&gt; In other cases, the combination of employer, year hired, city, income, and freeform text description is enough for a stranger to identify them using relatively simple Google, LinkedIn, or Facebook searches. For many companies, the combination of those fields is unique throughout the whole company. It&amp;rsquo;s often very unique, like because only a few people were hired in a given year. Also, the &amp;ldquo;Earliest credit line&amp;rdquo; field is often a reasonable proxy for the borrower&amp;rsquo;s age, and is at least a minimum age.&lt;/p&gt;

&lt;p&gt; In those cases, a single external corroboration such as a LinkedIn job announcement, a title transfer on BlockShopper, or a Facebook photo posted to the company&amp;rsquo;s page could be enough to attach a name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The credit score information is both public and disclosed alongside other information which is personally identifiable. The data disclosure section says:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Qualified Lending Club investors will also see certain credit data collected from or calculated based on your credit bureau file. It is necessary to allow prospective investors to see this information as they evaluate your loan request. The information displayed to investors includes a credit profile section and a credit history section. As noted above, this information is also contained anonymously in loan data files available on the statistics page.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt; It goes on to define the fields disclosed as part of the credit profile and the credit history.&lt;/p&gt;

&lt;p&gt; It doesn&amp;rsquo;t say that the credit information is disclosed alongside lots of other personal data. Even when that information is not enough to be personally-identifiable (discrepancy #1 above), it&amp;rsquo;s public and visible to anyone. It&amp;rsquo;s not visible only to &amp;ldquo;Qualified Lending Club investors,&amp;rdquo; and perhaps more importantly, the disclosure is not on a loan-by-loan basis. In reading the paragraph above, I would interpret it to say that my information will be temporarily disclosed to all qualified lenders (prospective investors) while my loan is being funded, then will be only shown to those lenders who actually funded my loan. That isn&amp;rsquo;t the case.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Troy&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Reply from Mark D&amp;#8217;Arrigo, Associate Counsel, Lending Club:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Mr. Davis:&lt;/p&gt;

&lt;p&gt;Thank you for your email regarding the protection of personally identifiable information on the Lending Club website.  Lending Club takes consumer privacy seriously and has implemented procedures and policies designed to protect consumer information.  We appreciate your detailed feedback and have discussed your suggestions regarding our Privacy Policy and disclosures to members.  However, we believe that our Privacy Policy is consistent and does not contain material discrepancies.&lt;/p&gt;

&lt;p&gt;As part of our consumer privacy efforts, Lending Club informs applicants regarding the type of information that will be disclosed to the public both in the Privacy Policy itself and throughout the application via the use of tool tips, a pop-up that notifies the applicant that information placed into certain fields is made available to the public.  We also review loan titles and free-form answers provided by applicants in an attempt to limit the exposure of personally identifiable information that applicants may provide outside the marked application fields.  Lastly, credit information is only available for viewing by Lending Club members and not available to non-members merely perusing the site.  As you noted, from the information available on our site, members such as yourself can view the information about borrowers that Lending Club must file with the Securities and Exchange Commission.  We do not agree, however, that this constitutes &amp;ldquo;personally identifiable&amp;rdquo; information.  Your letter indicates that you were only able to take an &amp;ldquo;educated guess&amp;rdquo; about the identity of some borrowers using information you gathered from other sources.  The fact that certain limited information regarding borrowers is viewable through the Lending Club website &amp;ndash; which, again, Lending Club flags as publicly disclosed in the application itself and in our Privacy Policy &amp;ndash; and that similar information may also be available through external sources that contain additional information does not, in our view, indicate that Lending Club displays personally identifiable information or that our Privacy Policy contains material discrepancies.  We also do not believe that the manner in which certain personal information is presented on the website is inconsistent with our Privacy Policy or other consumer protection initiatives.&lt;/p&gt;

&lt;p&gt;Although we disagree with your conclusions and interpretations, we appreciate your email and thank you for your feedback.  We periodically review our consumer privacy policies and processes and will take your specific suggestions under consideration as part of that review process.  Thank you very much for your time and your interest in Lending Club.&lt;/p&gt;

&lt;p&gt;Sincerely yours,&lt;/p&gt;

&lt;p&gt;Mark D&amp;#8217;Arrigo&lt;/p&gt;

&lt;p&gt;Associate Counsel&lt;/p&gt;&lt;/blockquote&gt;
</content>
	</entry>
	
	<entry>
		<title>A few days with the SlimFold Tyvek Wallet</title>
    <link href="https://troy.yort.com/a-few-days-with-the-slimfold-tyvek-wallet/"/>
		<updated>2012-08-19T00:00:00-07:00</updated>
    <id>https://troy.yort.com/a-few-days-with-the-slimfold-tyvek-wallet</id>
    <content type="html">&lt;p&gt;Update (January 19, 2014): After 2 Slimfolds, I&amp;rsquo;m still completely satisfied. I ordered a Slimfold Micro today. Read on for my initial experiences.&lt;/p&gt;

&lt;p&gt;My &lt;a href=&quot;http://slimfoldwallet.com/&quot;&gt;SlimFold Wallet&lt;/a&gt; arrived in Bangkok. Here&amp;rsquo;s a photo of mine when loaded.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://images.yort.com/blog/slimfold-tyvek-wallet-1.jpg&quot; alt=&quot;Photo of SlimFold Tyvek Wallet in use&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After five days - and two walks through monsoonal downpours - I highly recommend it. A few smart UX choices make all the difference.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Each section actually holds two cards. In the photo, you can see both card pockets on one of the sections. There&amp;rsquo;s two more sections (four pockets) inside. It doesn&amp;rsquo;t try to make a statement about how much crap I should carry.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cards are held firmly because the Tyvek isn&amp;rsquo;t pre-streched. Each pocket retains whatever capacity you stretch it to. (My tendency to RTFM/Skim TFM paid off here: the instructions warn not to ever stuff two cards into one pocket.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;They chose a good compromise between thickness, capacity, and physical size. It&amp;rsquo;s slightly larger than a typical trifold, and in return, can hold 10 cards and still stay hipster thin.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The ID pocket is secured by a folding tab, and more remarkably, it actually stays closed.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The creator notes that he made and tested over 100 prototypes, and it shows. It&amp;rsquo;s available in Plutonian Gray, Steal Me Orange, and now Everyone Asks For It Black.&lt;/p&gt;
</content>
	</entry>
	
</feed>
