Posts tagged "Google"urn:www-greghendershott-com:Google2013-08-03T19:48:50ZSpoiler Alert: Just Give Google Power of Attorneyurn:www-greghendershott-com:-2013-08-spoiler-alert-give-google-power-of-attorney.html2013-08-03T19:48:50Z2013-08-03T19:48:50ZGreg Hendershott
<div>
<article>
<header>
<h1>Spoiler Alert: Just Give Google Power of Attorney</h1>
<p class="date-and-tags">
<time datetime="2013-08-03" pubdate="true">2013-08-03</time> :: <span class="tags"><a href="/tags/Google.html">Google</a>, <a href="/tags/technology.html">technology</a></span></p></header>
<p>Robert Scoble’s <a href="http://thenextweb.com/google/2013/08/02/google-the-freaky-line-and-why-moto-x-is-a-game-changer/">“Google, the freaky line and why Moto X is a game-changer”</a> describes the significance of its always-on voice recognition. Under the heading, “the joy of context”:</p>
<blockquote>
<p>Moto X is just one in a string of products and services that will bring radical new functionality to users. Examples? Google Now, Google Glass, and the new Moto X phone that keeps the microphone open full-time. The Xbox One, coming this winter, will have a 3D sensor on it so sensitive it can see how fast your heart is beating just by watching your skin.</p>
<p>These new contextual, sensor-based features are game changers and I’m hearing Google has a raft of other product announcements lined up that will turn on even more freaky features. Why? Because the more Google can get you to communicate with your phone, the more context it can slurp up.</p>
<p>The more sensors it can turn on, or put on you, the more it can learn about your intent and your context. Today your phone doesn’t really know that you’re walking, running, skiing, shopping, driving, or biking, but in the future, Google will know that and will be able to build wild new kinds of systems that can serve you when doing each of those things.</p></blockquote>
<p>Naturally people have a variety of reactions for different reasons. You may find it yawningly predictable, or alarmingly freaky, or something in between. You might not mind Google slurping your data because you gave consent, but be creeped out by NSA contractors wrapping their lips around it uninvited.</p>
<p>But at bottom what’s the motivation behind this push for “context” and “intent”?</p><!-- more-->
<p>Why does Google want such a complete picture of us? To increase our economic value to them. The better Google understands what we want — and <em>when</em> and <em>where</em> we want it — the more they can charge companies who want to sell us stuff.</p>
<p>Simple example: If you sell pizza, you’ll pay more to reach people who want pizza (a) now and (b) near you. Much more than you’ll pay (if you’re smart) to do traditional advertising.</p>
<p>And to the extent this allows a company to form and sustain an ongoing relationship with you, it becomes even more valuable.</p>
<p>Let’s extrapolate, William Gibson style — hold down the fast-forward button and skip to the end. (<em>SPOILER ALERT!</em>)</p>
<p>If we keep moving the “freaky line”, we quickly arrive at a basic question: Why even faff about with all this technology? Why not simply give Google power of attorney? That way they can decide on our behalf what we want, procure it for us, and deduct the money from our bank account. Done. Sorted. Issue closed with pushed commit.</p>
<p>All this stuff with sensors, context, and intent is wonderful geekery. As technology for its own sake, it’s awesomely awesome. But truly, it’s a typically over-engineered solution to the problem of parting us from our money.</p>
<p>Google, if you want to know us deeply — know us, shall we say, biblically? Rather than passive-aggressively fap with sensors, be up-front and say you want to do the deed. Give us the power of attorney form and a blue ink pen: tell us to press hard, make three copies. What’s that? You’d rather sample our DNA using the retractable swab in the phone microphone? Well…OK. You asked honestly. We won’t judge you.</p>
<hr />
<p>In case it’s not clear:</p>
<ol>
<li>
<p>Am I being completely serious? No. But I’m not being completely un-serious, either.</p></li>
<li>
<p>Although Google isn’t alone in this, they’re a leader, so I think it’s fair to use “Google” as an abbreviation.</p></li></ol>
<footer></footer></article></div>Chromebook Pixelurn:www-greghendershott-com:-2013-05-chromebook-pixel.html2013-05-28T14:07:10Z2013-05-28T14:07:10ZGreg Hendershott
<div>
<article>
<header>
<h1>Chromebook Pixel</h1>
<p class="date-and-tags">
<time datetime="2013-05-28" pubdate="true">2013-05-28</time> :: <span class="tags"><a href="/tags/Google.html">Google</a>, <a href="/tags/Linux.html">Linux</a>, <a href="/tags/Racket.html">Racket</a></span></p></header>
<p>I’m writing this blog post on a <a href="http://www.google.com/chromebook/pixel">Chromebook Pixel</a>. In Emacs. On Ubuntu, as a <a href="http://en.wikipedia.org/wiki/Chroot">chroot</a>, thanks to <a href="https://github.com/dnschneid/crouton">crouton</a>.</p>
<p>Why do I have a Chromebook Pixel? Google gave one to every Google I/O 2013 attendee.<sup><a href="#chromebook-pixel-footnote-1-definition" name="chromebook-pixel-footnote-1-return">1</a></sup></p>
<p>Although I was happy to get such a cool new gadget, I honestly wasn’t sure what I’d <em>do</em> with the thing. I really like my MacBook Pro Retina and wasn’t looking for an alternative. Also, although <a href="http://www.greghendershott.com/2013/02/fucking-suggested-post-why-web-apps-matter.html">I love web apps</a> and 45% of my day is in the web browser, another 45% is in Emacs using <a href="http://racket-lang.org/">Racket</a> — what about that?</p><!-- more-->
<p>Then I remembered you can run Linux on a Chromebook. Well, it’s <em>already</em> running Linux; that’s what ChromeOS is built on. For “real” Linux, you have a choice:</p>
<ol>
<li>
<p>Dual boot ChromeOS and Linux.</p></li>
<li>
<p>Use chroot to run some other Linux userland on top of the ChromeOS’ Linux kernel.</p></li></ol>
<p>The advantage of the latter is that you can still run ChromeOS, and hit hotkeys to flip between it and the “real” Linux desktop.</p>
<blockquote>
<p><strong>NOTE</strong>: In the rest of this blog post, keep in mind that my Linux experience has been limited to command-line environments like Amazon Linux on EC2. My <em>entire</em> GUI desktop Linux experience consists of using Ubuntu on the Chromebook Pixel for the last 2 days. So if I write something stupid, keep that in mind and feel free to chime in with a nice comment below. ;)</p></blockquote>
<h2 id="installing">Installing</h2>
<ol>
<li>
<p>Put the Chromebook into developer mode.<sup><a href="#chromebook-pixel-footnote-2-definition" name="chromebook-pixel-footnote-2-return">2</a></sup> ~15 minutes.</p></li>
<li>
<p>Download and install <a href="https://github.com/dnschneid/crouton">crouton</a>. ~30 minutes.</p></li>
<li>
<p><a href="https://github.com/dnschneid/crouton/wiki/Chromebook-Pixel">Configure Ubuntu</a> to deal with the Chromebook Pixel’s insanely high DPI.</p></li></ol>
<h2 id="emacs">Emacs</h2>
<p>As I write this, the newest Emacs available from <code>apt-get</code> is 23.3. On OS X, I’d grown used to 24.2, including its package manager. Otherwise, a simple <code>git clone</code> of my <code>.emacs.d</code> tree got everything working quickly.</p>
<p>I realize it’s possible to build a newer Emacs. Just haven’t gotten to that.</p>
<h2 id="racket">Racket</h2>
<p>The <code>Linux x86_64 (Debian squeeze)</code> build of <a href="http://racket-lang.org/">Racket</a> works great. The only issues I encountered were the following:</p>
<h3 id="drracket">DrRacket</h3>
<p>Just crank the font size up <code>CTRL +</code> a few notches. Bad news: Some UI elements like toolbar buttons will remain tiny. Good news: The main text in the editor is rendered cripsly (unlike on the MacBook Pro Retina display where it’s some 4x4 sub-pixel affair).</p>
<h3 id="send-url-and-drracket-help">send-url (and DrRacket help)</h3>
<p>By default, <code>send-url</code> from <code>net/sendurl</code> doesn’t know how to start a browser. If it used <code>reasonable-browser</code> or <code>xdg-open</code> I think it would work. It looks like it’s possible to deal with this by changing the <code>external-browser</code> parameter. For example, here’s a quick hack I put in my local build of <a href="https://github.com/greghendershott/frog">Frog</a> to get its preview feature working:</p>
<div class="brush: racket">
<table class="sourcetable">
<tbody>
<tr>
<td class="linenos">
<div class="linenodiv">
<pre> 1
2
3
4
5
6
7
8
9
10</pre></div></td>
<td class="code">
<div class="source">
<pre><span></span> <span class="c1">;; This is a bit of a hack: If `preview` fails on Linux, try again</span>
<span class="c1">;; using the "sensible-browser" command.</span>
<span class="p">(</span><span class="k"><a href="http://docs.racket-lang.org/reference/exns.html#(form._((lib._racket/private/more-scheme..rkt)._with-handlers))" style="color: inherit">with-handlers</a></span> <span class="p">([</span><span class="nb"><a href="http://docs.racket-lang.org/reference/exns.html#(def._((quote._~23~25kernel)._exn~3afail~3f))" style="color: inherit">exn:fail?</a></span>
<span class="p">(</span><span class="k"><a href="http://docs.racket-lang.org/reference/lambda.html#(form._((lib._racket/private/base..rkt)._lambda))" style="color: inherit">lambda</a></span> <span class="p">(</span><span class="nb"><a href="http://docs.racket-lang.org/reference/exns.html#(def._((lib._racket/private/base..rkt)._exn))" style="color: inherit">exn</a></span><span class="p">)</span>
<span class="p">(</span><span class="k"><a href="http://docs.racket-lang.org/reference/match.html#(form._((lib._racket/match..rkt)._match))" style="color: inherit">match</a></span> <span class="p">(</span><span class="nb"><a href="http://docs.racket-lang.org/reference/runtime.html#(def._((quote._~23~25kernel)._system-type))" style="color: inherit">system-type</a></span> <span class="o">'</span><span class="ss">os</span><span class="p">)</span>
<span class="p">[</span><span class="o">'</span><span class="ss">unix</span>
<span class="p">(</span><span class="k"><a href="http://docs.racket-lang.org/reference/parameters.html#(form._((lib._racket/private/more-scheme..rkt)._parameterize))" style="color: inherit">parameterize</a></span> <span class="p">([</span><span class="n">external-browser</span> <span class="o">'</span><span class="p">(</span><span class="s2">"sensible-browser "</span> <span class="o">.</span> <span class="s2">""</span><span class="p">)])</span>
<span class="p">(</span><span class="n">preview</span><span class="p">))]</span>
<span class="p">[</span><span class="k"><a href="http://docs.racket-lang.org/reference/stx-patterns.html#(form._((lib._racket/private/stxcase-scheme..rkt).__))" style="color: inherit">_</a></span> <span class="p">(</span><span class="nb"><a href="http://docs.racket-lang.org/reference/Writing.html#(def._((quote._~23~25kernel)._eprintf))" style="color: inherit">eprintf</a></span> <span class="s2">"~a"</span> <span class="p">(</span><span class="nb"><a href="http://docs.racket-lang.org/reference/exns.html#(def._((quote._~23~25kernel)._exn-message))" style="color: inherit">exn-message</a></span> <span class="nb"><a href="http://docs.racket-lang.org/reference/exns.html#(def._((lib._racket/private/base..rkt)._exn))" style="color: inherit">exn</a></span><span class="p">))]))])</span>
<span class="p">(</span><span class="n">preview</span><span class="p">))</span>
</pre></div>
</td></tr></tbody></table>
</div>
<p>This is <em>not</em> necessarily the right way to handle this; I might not even commit this code.</p>
<p>Also, this doesn’t fix DrRacket knowing how to start a browser to show documentation.</p>
<h2 id="circ">CIRC</h2>
<p>When I searched the Chome store for “IRC”, strangely it did <em>not</em> show me <a href="https://chrome.google.com/webstore/detail/circ/bebigdkelppomhhjaaianniiifjbgocn?hl=en-US">CIRC</a>. Fortunately I found it from regular Google search. Very nifty IRC client. Not as featureful as something like Colloqy on OS X, but neat. Of course if you want to run IRC on the Ubuntu chroot instead of the main ChromeOS, there are the usual choices.</p>
<h2 id="prognosis">Prognosis?</h2>
<p>I spent a couple decades using DOS and then Windows. Only in the last few years have I seriously used OS X full-time, and used command-line Linux on EC2 instances. I’ve wanted to try a GUI Linux. Also, as I’ve grown grumpy lately about Apple and Google wanting to put us into AOL era walled gardens, I’ve thought more about using Linux as my main OS.</p>
<p>But I love laptops. And I hate screwing around with drivers. And I <em>really</em> hate laptops where things like wi-fi, power management, and the touch pad don’t really work correctly. So I’ve never wanted to go down that road of finding some specific ThinkPad model from 2007, spending a week futzing with drivers, and spending years with the thing never quite working right. At least that’s the impression I get everytime I research this. I won’t get a hobbyist’s enjoyment from tinkering with the basic damn hardware functionality of my main working machine. I need it to work, so I can focus on the kind of tinkering I <em>do</em> like.</p>
<p>So as far as I could tell, I’d probably never go down that road. And yet, hello, Chromebook Pixel. So far, it just-works the way I would want a Linux laptop to just-work. With a screen that’s even more beautiful than the MacBook Pro Retina (and, although it’s more of a novelty, for me, it’s a flipping <em>touch</em> screen). This thing is sweet.</p>
<p>The irony is that this laptop is from Google, who I mentioned above is one of the reasons why I was interested in moving to Linux. Plus, it’s Google, which means in 2 years will the whole thing get kicked to the curb like Reader and the latest round of open standards? Even if ChromeOS survives, this weird and wondeful Pixel-class Chromebook might not. It feels like something for early-adopter developers, a happy accident that will get cleaned up someday in an orgy of strategory changing and focusing. I hope I’m wrong. I hope this hot mess survives.</p>
<div class="footnotes">
<ol>
<li id="chromebook-pixel-footnote-1-definition" class="footnote-definition">
<p>Free? Well, the Google I/O fee was $999. Plus travel and hotel. So it wasn’t free for me in that sense. However the Pixel is $1299, Google’s COGS is probably ~$1000, and running Google I/O costs something. So it was at least free-ish, and certainly a very nice surprise from Google. <a href="#chromebook-pixel-footnote-1-return">↩</a></p></li>
<li id="chromebook-pixel-footnote-2-definition" class="footnote-definition">
<p>Otherwise known as “can’t watch the Bluths” mode. Literally the day after I flipped the Chromebook into dev mode, <em>Arrested Development</em> premiered on Netflix. But Netflix disables video viewing for dev mode. Amazon Instant Video, interestingly, still works. <a href="#chromebook-pixel-footnote-2-return">↩</a></p></li></ol></div>
<footer></footer></article></div>feeds2gmailurn:www-greghendershott-com:-2013-05-feeds2gmail.html2013-05-06T13:40:35Z2013-05-06T13:40:35ZGreg Hendershott
<div>
<article>
<header>
<h1>feeds2gmail</h1>
<p class="date-and-tags">
<time datetime="2013-05-06" pubdate="true">2013-05-06</time> :: <span class="tags"><a href="/tags/Google.html">Google</a>, <a href="/tags/Racket.html">Racket</a>, <a href="/tags/Atom.html">Atom</a>, <a href="/tags/RSS.html">RSS</a></span></p></header>
<p>Recently I wrote about my <a href="http://www.greghendershott.com/2013/03/my-google-reader-successor.html">my Google Reader successor</a>, using rss2email to push feeds to Gmail.</p>
<p>In the month since, I was still running it on my laptop. To make it work best, it should run on a dedicated server. That way, it would push emails even if I’m away from my laptop, and I could read them on e.g. my phone. But before committing to setting this up on Amazon EC2, I wanted to be sure I liked the approach.</p><!-- more-->
<p>Although I liked it, I missed having feeds in their own folders. Sometimes, I want to catch up with a specific blog, as opposed to a timeline mix of all of them.</p>
<p>Also, I was continuing to have deliverability issues, including Gmail persisting in tagging some items as Spam.</p>
<p>I stumbled across a <a href="https://github.com/rcarmo/rss2email">fork of rss2email that uses IMAP directly</a>. Great idea!</p>
<p>I had what I thought was an even better idea: Instead of doing this in Python, use Google Apps Script. This is a JavaScript environment that Google provides as its answer to macro languages in Microsoft Office products. It’s surprising powerful. Among other things, you can schedule scripts to run. That would mean I wouldn’t need a dedicated server to <code>cron</code> the feed updates.</p>
<p>Also, I was excited for the opportunity to increase my experience with JavaScript.</p>
<p>Unfortunately, although I got pretty far with this approach, I was completely blocked because <a href="http://stackoverflow.com/questions/16149899/how-to-create-a-gmail-message-with-a-specific-label">Google Apps Script can’t access IMAP</a>. And its own email APIs don’t let you create a Gmail mail in a specific folder (i.e. with a specific Gmail label).</p>
<p>I stewed over this for awhile. I looked at the rss2email source. And I decided, well shit, if I have to code this to run on my own server, I want to use Racket.</p>
<p>So I came up with <a href="https://github.com/greghendershott/feeds2gmail">feeds2gmail</a>. It’s similar to the <a href="https://github.com/rcarmo/rss2email">fork of rss2email that uses IMAP directly</a>, but written in Racket.</p>
<p>One thing Racket doesn’t have (that I could find) is a handy library to read feeds. Sometimes I’ve wanted a magic FFI to Python and/or Ruby libs. This was one of those times.</p>
<p>I ended up coding Atom, RSS, and RDF feed parsing myself. It works for the feeds I’ve tried. I suspect this is the most fragile aspect that will need bug fixes. Partly because I may have made mistakes, and partly because the feeds have made mistakes.</p>
<p>Meanwhile, it’s working for me. I have an experience in Gmail that is <em>very</em> close to Google Reader in the respects I care about.</p>
<footer></footer></article></div>My Google Reader successorurn:www-greghendershott-com:-2013-03-my-google-reader-successor.html2013-03-29T17:01:50Z2013-03-29T17:01:50ZGreg Hendershott
<div>
<article>
<header>
<h1>My Google Reader successor</h1>
<p class="date-and-tags">
<time datetime="2013-03-29" pubdate="true">2013-03-29</time> :: <span class="tags"><a href="/tags/Google.html">Google</a>, <a href="/tags/Atom.html">Atom</a>, <a href="/tags/RSS.html">RSS</a></span></p></header>
<p>Just a brief update about what I’ve settled on as my replacement for Google Reader. I’m using Rss2Email, following the instructions in <a href="http://wcm1.web.rice.edu/turning-gmail-into-google-reader.html">Turning Gmail into Google Reader</a>.</p>
<p>I tried Feedly, NewsBlur, and Reeder. Each of them wasn’t bad, but each felt “heavy” compared to Google Reader. So W. Caleb McDaniel’s post really clicked with me.</p><!-- more-->
<p>I did end up trimming 350 feeds down to 50. What I cut:</p>
<ol>
<li>
<p>Old/dead feeds.</p></li>
<li>
<p>Big name feeds.</p></li></ol>
<p>By the latter, I mean that I don’t need feeds to help me keep up with fire hose sites like Wired, TechCrunch, and so on. I can follow them in Twitter. If I miss a specific article, no big deal. Also, I will encounter a lot of that stuff on something like Hacker News.</p>
<p>Instead, I’m using feeds for the “long tail” stuff: Sites that post infrequently, and/or that are are smaller. And sites where I may want to read every post (or at least glance at every one).</p>
<p>The experience in Gmail is pretty darn close to GReader. Same navigation keys. Can star things. Can forward in email. On the one hand, this makes me empathize with Google wanting to kill Reader. But on the other hand, it makes me feel, why didn’t they add feed reeding <em>into</em> Gmail? Why the desire to deprecate RSS and Atom feeds? Grumble, grumble.</p>
<p>So overall it’s actually quite similar. Differences in the experience?</p>
<p>One small nuisance is the lack of a <code>V</code> key to go to the original web page. I have to mouse up and click the link.</p>
<p>A broader difference is that, even though it’s Gmail and I’m far from running out of space, I don’t want a lot of feed stuff to accumulate there. It probably doesn’t matter, I could periodically just nuke all the mails labeled Feeds, but there’s some “psychic weight”. But as I explained, I’m being more selective in the feeds I follow.</p>
<p>A tip: On Mac OS X, I tried both methods of sending mail—connecting to my GMail account, or, using <code>sendmail</code>. The latter worked better, because the display name of the From email address is the name of the feed (it looks like Caleb’s screen shot).</p>
<p>For the future: I have <code>cron</code> running this hourly on my Mac Book. That works just fine at home. But on the road, it won’t be pushing emails to my phone if the laptop isn’t running. So I’ll probably move this to a server, such as a micro EC2 instance that I’m using for something else. The only gotchas there? Might need to send the email using Amazon SES since EC2 instances are usually blacklisted for email sending. Plus, adding or removing feeds will require <code>ssh</code>-ing into that server. Although not horrible, not super user friendly.</p>
<blockquote>
<p><strong>UPDATE:</strong> I ended up replacing rss2email with <a href="http://www.greghendershott.com/2013/05/feeds2gmail.html">feeds2gmail, which is similar but has a few advantages</a>.</p></blockquote>
<footer></footer></article></div>Feed stats in Frog (without FeedBurner)urn:www-greghendershott-com:-2013-03-feed-stats-in-frog-without-feedburner.html2013-03-19T13:11:43Z2013-03-19T13:11:43ZGreg Hendershott
<div>
<article>
<header>
<h1>Feed stats in Frog (without FeedBurner)</h1>
<p class="date-and-tags">
<time datetime="2013-03-19" pubdate="true">2013-03-19</time> :: <span class="tags"><a href="/tags/Frog.html">Frog</a>, <a href="/tags/Google.html">Google</a>, <a href="/tags/Atom.html">Atom</a>, <a href="/tags/RSS.html">RSS</a></span></p></header>
<p>In light of Google <a href="http://googlereader.blogspot.com/2013/03/powering-down-google-reader.html">shutting down Google Reader</a> and <a href="http://www.webmonkey.com/2013/03/its-not-just-reader-google-kills-chrome-rss-extension-too/">removing feed-following UI in Chrome</a>, it probably can’t be long until they shut down FeedBurner, too.</p>
<p>Although I’m using <a href="http://www.google.com/analytics/">Google Analytics</a> for this blog, I’m not using FeedBurner. But imagining what feed readership stats I might want, I came up with a short list, and thought about how to get them without FeedBurner.</p><!-- more-->
<ol>
<li>
<p>“Subscribers”: Tell me how many people have chosen to subscribe to the Atom or RSS feed. How often they bother to read it is another matter.</p></li>
<li>
<p>“Readers on web site”: Tell me how many people are clicking through from the feed to read the full post on the original web site.</p></li>
<li>
<p>“Readers, feed-only”: Tell me how many people opened the feed item, possibly read it, but did <em>not</em> click through to the orignal web site.</p></li></ol>
<p>So the excercise is, how to do this <em>without</em> FeedBurner.</p>
<p>I <a href="https://github.com/greghendershott/frog/commit/7c0ed36acf8061cc0ac7332aaa8747b184fcdd0f">just added</a> tentative stuff to <a href="https://github.com/greghendershott/frog/">Frog</a> for items 2 and 3.</p>
<h2 id="readers-clicking-through-to-this-site">Readers clicking through to this site</h2>
<p>Some people will start to read an item in the feed, then click through to the main web site to finish reading it. (People are more likely to do this if you’ve set your blog to show only above-the-jump summaries, with “continue reading” links.)</p>
<p>Since this is page views on our web site, this can be handled by Google Analytics (or similar, if Google shuts <em>that</em> down). The only trick is to distinguish viewers who got here from the feed, as opposed to from somewhere else.</p>
<p>Well, that’s what the GA <code>utm_xxx</code> <a href="http://support.google.com/analytics/bin/answer.py?hl=en&answer=1033867">query parameters</a> are for. In the feed, we’ll decorate the URIs that lead back to the original blog post.</p>
<pre><code>http://example.com/path/to/thing.html</code></pre>
<p>becomes</p>
<pre><code>http://example.com/path/to/thing.html?
utm_source=feed&
utm_medium=feed</code></pre>
<p>This should let us view stats for <code>path/to/thing.html</code> in Google Analytics, that came via the feed.</p>
<p>In Frog I’m also adding a <code>utm_campaign</code> parameter, and distinguishing the RSS and Atom feeds (just because I’m curious).</p>
<h2 id="readers-staying-in-their-feed-reader">Readers staying in their feed reader</h2>
<p>Some people will solely read items in your feed, and not click through to your web site. (This is especially likely if you’re showing full posts in your feed.) How to count reads?</p>
<p>The answer here seems to be the tried-and-true “image bug”.</p>
<p>Each feed item’s contents will get the following image element added automatically:</p>
<div class="brush: html">
<table class="sourcetable">
<tbody>
<tr>
<td class="linenos">
<div class="linenodiv">
<pre>1
2
3
4
5
6</pre></div></td>
<td class="code">
<div class="source">
<pre><span></span><span class="p"><</span><span class="nt">img</span> <span class="na">height</span><span class="o">=</span><span class="s">"1"</span>
<span class="na">width</span><span class="o">=</span><span class="s">"1"</span>
<span class="na">src</span><span class="o">=</span><span class="s">"http://example.com/img/1x1.gif?</span>
<span class="s"> utm_source=feed&</span>
<span class="s"> utm_medium=feed&</span>
<span class="s"> utm_campaign=<URI of blog post>"</span>
</pre></div>
</td></tr></tbody></table>
</div>
<p>We’ll share the same 1x1.gif image bug across all posts. So we’ll distinguish each post using the <code>utm_campaign</code> query-parameter. The “campaign” name will be the URI of the blog post.</p>
<h2 id="subscriber-counts">Subscriber counts</h2>
<p>I’ve glossed over this so far. It’s the least-interesting metric to me—it seems akin to caring about followers count, as opposed to real interactions, on a social network.</p>
<p>In any case, presumably the way to handle this is as a Goal in Google Analytics: People who click the feed link have reached the goal.</p>
<p>If that’s not exactly like what FeedBurner does, maybe that’s OK with me. If you have some other idea, let me know.</p>
<h2 id="summary">Summary</h2>
<p>That’s what I’ve sketched out so far. It’s taking a little time to test it out. If you see any problems or sheer stupidity, please let me know in the comments.</p>
<footer></footer></article></div>The year Google became "Evil"?urn:www-greghendershott-com:-2013-03-the-year-google-became-evil.html2013-03-15T13:39:56Z2013-03-15T13:39:56ZGreg Hendershott
<div>
<article>
<header>
<h1>The year Google became "Evil"?</h1>
<p class="date-and-tags">
<time datetime="2013-03-15" pubdate="true">2013-03-15</time> :: <span class="tags"><a href="/tags/Google.html">Google</a></span></p></header>
<p>Via <a href="http://daringfireball.net/linked/2013/03/14/google-destroyer">Daring Fireball</a> I found <a href="http://corte.si/posts/socialmedia/rip-google-reader.html">Google, destroyer of ecosystems</a>. Aldo Cortesi writes:</p>
<blockquote>
<p>The truth is this: Google destroyed the RSS feed reader ecosystem with a subsidized product, stifling its competitors and killing innovation. It then neglected Google Reader itself for years, after it had effectively become the only player. Today it does further damage by buggering up the already beleaguered links between publishers and readers. It would have been better for the Internet if Reader had never been at all.</p></blockquote>
<p>What struck me is the obvious search-and-replace:</p><!-- more-->
<blockquote>
<p>The truth is this: Microsoft destroyed the browser market with a subsidized product, stifling its competitors and killing innovation. It then neglected Internet Explorer itself for years, after it had effectively become the only player. It would have been better for the Internet if Internet Explorer had never been at all.</p></blockquote>
<p>Will we look back on 2013 as the year that Google became “Evil”? When “do no evil” became a quaint artifact of corporate mythology?</p>
<p>I realize plenty of people have probably been saying Google is evil for some time already. And some won’t say it for a long time, if ever. Just like with Microsoft.</p>
<p>It’s weird timing. Couple days ago, on Wednesday, I sign up for my first-ever Google I/O conference. Later that evening, Google announces “spring cleaning”, killing Google Reader and CalDAV. Thursday everyone forgets it’s Pi Day; how sad. I’m spending time looking at Google Reader alternatives. I’m downloading Thunderbird and starting to question my continued use of Gmail. My cherished Gmail!</p>
<p>Is this how it starts, step by step? Someday will we look back on this as the inflection point?</p>
<footer></footer></article></div>Killing Google Readerurn:www-greghendershott-com:-2013-03-killing-google-reader.html2013-03-14T13:17:48Z2013-03-14T13:17:48ZGreg Hendershott
<div>
<article>
<header>
<h1>Killing Google Reader</h1>
<p class="date-and-tags">
<time datetime="2013-03-14" pubdate="true">2013-03-14</time> :: <span class="tags"><a href="/tags/Google.html">Google</a>, <a href="/tags/RSS.html">RSS</a>, <a href="/tags/Atom.html">Atom</a></span></p></header>
<p>Last night I learned the news that <a href="http://googlereader.blogspot.com/2013/03/powering-down-google-reader.html">Google is killing Google Reader July 1</a>.</p>
<p>This morning I’m feeling <a href="https://youtu.be/A25VgNZDQ08">like this</a>.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/A25VgNZDQ08" frameborder="0" allowfullscreen="allowfullscreen"></iframe><!-- more-->
<h2 id="google-killed-feed-readers">Google killed feed readers</h2>
<p>Google Reader was so good that it sucked all the oxygen out of the market for feed readers, especially in the form of desktop apps. Since then, innovation in this area has stagnated.</p>
<p>Glass half full, this could prompt a flurry of activity and interesting new options.</p>
<h2 id="google-reader-the-service">Google Reader, the service</h2>
<p>At the same time, Google Reader became a service upon which many other apps and services depended, and with which they synchronized.</p>
<p>Suddenly they have to scramble to do something else—or decide to kill their projects, too. Like <a href="http://nick.typepad.com/blog/2013/03/the-end-of-feeddemon.html">FeedDemon</a> just announced.</p>
<p>Glass half empty, there will be more of this and it will make the concept of RSS and Atom feeds weaker, not stronger.</p>
<h2 id="reeder-for-mac-alternative">Reeder for Mac: Alternative?</h2>
<p>Last night I tried <a href="http://reederapp.com/">Reeder</a> for Mac. On the plus side, it can work quite similarly to Google Reader. Out of the box you can use shortcut keys like <code>J</code> and <code>K</code> to navigate within a feed. I changed its other defaults to make it work even closer to GReader: <code>SHIFT+J</code> and <code>SHIFT+K</code> to navigate between feeds, and <code>V</code> to open the original page in a real browser.</p>
<p>Although it will take time to adjust, it might be fine.</p>
<p>A couple caveats:</p>
<ul>
<li>
<p>It’s not free. (Although $4.99 seems pretty reasonable for what it does. Especially if you care enough to get mad about Google Reader going away.)</p></li>
<li>
<p>It’s not in the browser. It just feels weird to me to juggle two different apps. Could/should this a reader built into the browser as an extension for Chrome or Firefox?</p></li>
<li>
<p>If you’re using Chrome OS, what the hell do you do? If I had just bought an expensive <a href="http://www.google.com/intl/en/chrome/devices/chromebook-pixel/">Chromebook Pixel</a>, I’d be pretty upset today. Suddenly killing useful web apps doesn’t help Google make the case for web apps.</p></li></ul>
<p>Lifehacker has a post about <a href="http://lifehacker.com/5990456/google-reader-is-getting-shut-down-here-are-the-best-alternatives">more alternatives</a>.</p>
<h2 id="googles-relationship-with-tech-press-and-bloggers">Google’s relationship with tech press and bloggers</h2>
<p>I remember the era around 2005, when LifeHacker was writing about Gmail and Google Reader. Here were these cool new web apps, more powerful than you might have guessed. And here were all these geeks eagerly embracing them.</p>
<p>I suspect this played a big role in Google’s generally positive image and mindshare.</p>
<p>Something like Google Reader is particularly useful and appealing to precisely the kind of people who write about the tech industry. I’m curious what effect this will have—when Google takes away a key part of those folks’ daily lives, and effectively gives them the finger. Will this turn out to be penny wise and pound foolish?</p>
<h2 id="summary">Summary</h2>
<p>Anyway, those are my initial thoughts. I hope we get the glass-half-full version.</p>
<footer></footer></article></div>