<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.11.81 (http://www.squarespace.com/) on Fri, 17 Feb 2012 13:06:58 GMT--><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>Blog</title><link>http://ctoforaday.com/blog/</link><description></description><lastBuildDate>Fri, 17 Feb 2012 01:12:42 +0000</lastBuildDate><copyright></copyright><language>en-GB</language><generator>Squarespace Site Server v5.11.81 (http://www.squarespace.com/)</generator><item><title>AdSense Publisher Toolbar v1.5 Update</title><dc:creator>Gregory Block</dc:creator><pubDate>Fri, 17 Feb 2012 01:02:06 +0000</pubDate><link>http://ctoforaday.com/blog/2012/2/17/adsense-publisher-toolbar-v15-update.html</link><guid isPermaLink="false">487685:5541460:15067546</guid><description><![CDATA[<p>We&#8217;ve been hard at work on the publisher toolbar, and I&#8217;m happy to announce that we&#8217;ve pushed a new version containing the most commonly requested feature: support for selecting a range other than a 7-day daterange for the custom and URL channel summary.</p>

<p>There&#8217;s more, of course - go see the <a href="https://chrome.google.com/webstore/detail/omioeahgfecgfpfldejlnideemfidnkc">AdSense Publisher Toolbar on the Chrome Web Store</a> for more.</p>

<p>Specifically:</p>

<ul>
<li>A new, first-install page explains the product features a bit better;</li>
<li>A First-install page added that explains product features in more detail, linked from help.</li>
<li>An overlay notification is added when overlays are disabled on a domain, to help users find the feature.</li>
<li>Choose your own reporting window on custom and url channel reports.</li>
<li>Uses your current Google account login, rather than OAuth.</li>
<li>Supports multiple logins.</li>
<li>Fixes for timezone issues.  If you still see problems, please report them.</li>
</ul>

<p>Looking forward to hearing feedback.</p>
]]></description><wfw:commentRss>http://ctoforaday.com/blog/rss-comments-entry-15067546.xml</wfw:commentRss></item><item><title>AdSense Dashboard 2.7</title><dc:creator>Gregory Block</dc:creator><pubDate>Wed, 26 Oct 2011 14:45:53 +0000</pubDate><link>http://ctoforaday.com/blog/2011/10/26/adsense-dashboard-27.html</link><guid isPermaLink="false">487685:5541460:13472699</guid><description><![CDATA[<p>So as a part of the V1 launch of the API, there are a few things that are happening.</p>

<p>First and foremost, we don&#8217;t need to hide the fact that the API exists anymore; this means we can move to OAuth2 for our authentication.  This miiiiiiight be a little flaky; I&#8217;ll be watching for problems with authentication, and if you have problems, tell me.  Also, we&#8217;ll be moving to an explicitly read-only auth scope, and a human-readable scope at that, so that users can feel confident that we can&#8217;t do anything untoward with their data.</p>

<p>Next, this is the first pass on a multi-pass redesign of the look and feel.  Specifically, we&#8217;re going to be surfacing a lot more data - so we need ways of making all that data work.  As such, we&#8217;re moving to ViewPager, the same pager UI you see in Market and Google+.</p>

<p>Gotchas:</p>

<ul>
<li>Auth might be a little flaky.  Working on it.</li>
<li>Graph rendering is really slow, especially now that there are six of them on screen.</li>
<li>There are a lot of UI tweaks needed, here; the app isn&#8217;t the prettiest thing in the world.</li>
</ul>

<p>I&#8217;ll continue to work on this over the next few weeks, but again, I&#8217;d like to thank everyone for helping us test the AdSense Management API - we wouldn&#8217;t have been able to launch it with the level of confidence we have today without each of you.</p>
]]></description><wfw:commentRss>http://ctoforaday.com/blog/rss-comments-entry-13472699.xml</wfw:commentRss></item><item><title>Thank You, Beta Testers!</title><category>AdSense</category><category>adsense dashboard</category><category>android</category><category>api</category><dc:creator>Gregory Block</dc:creator><pubDate>Tue, 25 Oct 2011 09:13:50 +0000</pubDate><link>http://ctoforaday.com/blog/2011/10/25/thank-you-beta-testers.html</link><guid isPermaLink="false">487685:5541460:13450311</guid><description><![CDATA[<p>So the secret can now be told - AdSense Dashboard has been a skunkworks project to test Google&#8217;s prototype AdSense API.</p>

<p>Together, we generated enough traffic to verify the production-readiness of the API; thanks for enduring the occasional downtime as we got the API ready for the masses and for its public release, and thanks to the AdSense API team for doing such amazing work under difficult time schedules and a rather large amount of pressure from me on the shape and form of the API.</p>

<p>This isn&#8217;t the end of AdSense Dashboard - in fact, it&#8217;s just the beginning.  But for now, the limelight belongs to our API launch.</p>

<p><a href="http://adsenseapi.blogspot.com/2011/10/new-and-updated.html">Read the complete Adsense API Announcement</a></p>

<p>If you&#8217;d like more information on the API, you&#8217;ll find the <a href="http://code.google.com/apis/adsense/management/index.html">public documentation</a> is now available.  Now that we&#8217;re public, I&#8217;ll be changing the auth method from ClientLogin (which reported &#8220;AdSense&#8221; as the permissions it wanted when you attached an account) to the OAuth endpoint for the API, at which point it will tell you that it wants read-only access to the API, further limiting the set of permissible actions that can be taken by the code.</p>

<p>Thanks again to everyone who&#8217;s installed the product and helped us test our API.</p>
]]></description><wfw:commentRss>http://ctoforaday.com/blog/rss-comments-entry-13450311.xml</wfw:commentRss></item><item><title>AdSense Dashboard 2.6</title><category>AdSense</category><category>android</category><category>dashboard</category><category>release</category><dc:creator>Gregory Block</dc:creator><pubDate>Sat, 01 Oct 2011 19:16:38 +0000</pubDate><link>http://ctoforaday.com/blog/2011/10/1/adsense-dashboard-26.html</link><guid isPermaLink="false">487685:5541460:13046648</guid><description><![CDATA[<p>I&#8217;ve been pumping out dashboard changes for the last few days, based on feedback, bug reports, and general email discussions with users.  Keep them coming - if you use the app, I want to hear from you.</p>

<p>Users on Eclair/Froyo got bit by a pretty nasty bug in the HTTP stack built into the phone; the common fix appears to be to not use that API on those platforms, so that&#8217;s what I&#8217;m doing.</p>

<p>New stuff:</p>

<ul>
<li>Support for disabling auto-refresh.</li>
<li>Bugfixes for Eclair/Froyo.  If it&#8217;s not fixed for you, I want to hear about it.</li>
<li>Device-specific compatibility bugfixes around currency and rounding.</li>
<li>Google TV support.  This is a bit slapdash - I&#8217;ll improve it as I improve the tablet layout.</li>
<li>New widget (released as part of the 2.5 chain) by a contributor/coworker.</li>
</ul>

<p>There&#8217;s a lot of activity going on this weekend and early next week; I intend to do a lot of &#8216;remastering&#8217; of the numeric portion of the display to show more comparative data - today versus yesterday, today verus one week ago, this week verus last week, this month versus last month, etc., for a broader set of metrics than we currently include.</p>

<p>That will also be extracted into widget form - choose an arbitrary 1x1 fact.</p>

<p>Lifetime spend, custom channels, and url channels will also show up, in all probability.</p>

<p>Your feedback isn&#8217;t just welcome - it&#8217;s wanted.  Ping me with your gripes, comments, suggestions, and requests.</p>
]]></description><wfw:commentRss>http://ctoforaday.com/blog/rss-comments-entry-13046648.xml</wfw:commentRss></item><item><title>Adsense Dashboard 2.0</title><dc:creator>Gregory Block</dc:creator><pubDate>Sun, 31 Jul 2011 21:40:38 +0000</pubDate><link>http://ctoforaday.com/blog/2011/7/31/adsense-dashboard-20.html</link><guid isPermaLink="false">487685:5541460:12352497</guid><description><![CDATA[<p>Ok, admittedly, I&#8217;m spending an awful lot of nights on this not-a-20% project.</p>

<ul>
<li>Prettier 3D graphs</li>
<li>Support for switching to 2D graphs</li>
<li>Oooodles of end-user controls and settings</li>
<li>The ability to disable chart series</li>
<li>Checkboxes in the legend on the full-screen graph</li>
<li>A widget for your home page that updates once an hour.</li>
<li>Totals and averages on the data view.</li>
</ul>
]]></description><wfw:commentRss>http://ctoforaday.com/blog/rss-comments-entry-12352497.xml</wfw:commentRss></item><item><title>AdSense Dashboard Released</title><dc:creator>Gregory Block</dc:creator><pubDate>Sun, 24 Jul 2011 15:38:22 +0000</pubDate><link>http://ctoforaday.com/blog/2011/7/24/adsense-dashboard-released.html</link><guid isPermaLink="false">487685:5541460:12245937</guid><description><![CDATA[<p><a href="http://ctoforaday.com/adsense-dashboard/"><span class="full-image-block ssNonEditable"><span><img style="display:block;margin-left:auto;margin-right:auto;" src="http://ctoforaday.com/storage/f-1024-5.png?__SQUARESPACE_CACHEVERSION=1311522068784" alt=""/></span></span></a>
I&#8217;ve released a new (free) app to the market for AdSense publishers to track their performance. <a href="http://ctoforaday.com/adsense-dashboard/">AdSense Dashboard</a> is exactly what it sounds like - a heads-up dashboard for Android devices that shows vital statistics about your AdSense account.</p>

<p>Over time, I&#8217;ll be adding features designed to fulfill a specific need:  the need to know, at any moment, what&#8217;s happening to your revenue and traffic.  We&#8217;ll be adding new facts, improving the quality and usefulness of the default report, pushing the data table onto more layouts, extending downwards to support smaller devices, and adding widgets so that you can get the most important information on the home screen, to be reviewed hundreds of times a day.</p>

<p><a href="https://market.android.com/details?id=com.ctoforaday.asfedash">Check out Adsense Dashboard the Android Market.</a></p>
]]></description><wfw:commentRss>http://ctoforaday.com/blog/rss-comments-entry-12245937.xml</wfw:commentRss></item><item><title>In Search Of Quality</title><category>flickr</category><category>quality</category><category>search terms</category><category>weathrman</category><dc:creator>Gregory Block</dc:creator><pubDate>Sun, 22 May 2011 16:13:16 +0000</pubDate><link>http://ctoforaday.com/blog/2011/5/22/in-search-of-quality.html</link><guid isPermaLink="false">487685:5541460:11539755</guid><description><![CDATA[<p>Well, we&#8217;re getting back on track. &nbsp;I&#8217;ve spent some time trying to return us to our previous levels of quality, and enable us to move forward on adding longer blacklists again.</p>

<p>I believe I&#8217;ve been able to return us to the previous state of affairs successfully, now - but the cost isn&#8217;t cheap.</p>

<p>The solution depends on the fact that we <em>do</em> have a known sort order for all returned results - interestingness. &nbsp;If we assume that interestingness, as a score, is stable and not random, that should mean that our query can be split not only by positive term, but by negative terms, and taking the <em>intersection</em> of results for a particular positive query term; if a photo doesn&#8217;t appear in all of the split queries for a positive term, then it must contain one of the negative terms, and can be discarded from the result set.</p>

<p>This means, again, we&#8217;re doing a lot more queries. Specifically 6 locations * 2 years * # of positive search terms * (# of negative search terms / 9) ~= 1.5k Flickr API requests per search result as a worst case.  (This used to be a lot higher - I&#8217;m having to bring down the search range in order to allow for more queries per positive term.)</p>

<p>Now, we do a lot of caching along the way whenever possible, because, again, this is a free service on freebie quota, but that&#8217;s a lot of outbound API calls per inbound user request.</p>

<p>Hopefully things look better again.</p>
]]></description><wfw:commentRss>http://ctoforaday.com/blog/rss-comments-entry-11539755.xml</wfw:commentRss></item><item><title>Well, that was fun. Not.</title><dc:creator>Gregory Block</dc:creator><pubDate>Sat, 30 Apr 2011 10:29:18 +0000</pubDate><link>http://ctoforaday.com/blog/2011/4/30/well-that-was-fun-not.html</link><guid isPermaLink="false">487685:5541460:11310111</guid><description><![CDATA[<p>Cataclysm.</p>

<ul>
<li>A raft of exceptions started turning up with geolocation and weather.  Turns out Yahoo’s weather service isn’t as smart as I thought it was, and outside of major city centers it can be difficult to tell at exactly which level weather is mapped in at, if anywhere.  We now do weather feed pulls at levels 13, 11, 9, 6, and 3 in the hopes of finding something useful.  If you live somewhere other than a major city, chances are your weather just got more reliable.</li>
<li>If we can’t find weather, we’ll return weather conditions for unknown.  I think that means more people will see volcanoes.  I think I’m okay with that.</li>
<li>We were previously directly calling the memcache API, which sounds nice on the surface until you realize that actually it’s quite unreliable as a cache (within the wider definition of ‘reliable’) and that you really ought to wrap it in a bit of cache management.  I’ve done so, so that when problematic keys come up, they get discarded, and we silently ignore fails to update caches (as it’s not fatal, or at least, ought not to be.)</li>
<li>We’re doing so many more searches that the search results&#8217;s size basically exceed the storage limits on a memcache key.  I’ve split that out into caching search results for each search, instead of the aggregate search set, to get better fan-out; it also means we’re doing an aggregate query for cached results across multiple keys simultaneously, which, due to magical google infrastructure, should improve performance for search caching.</li>
</ul>

<p>Anyways, that’s what I get for getting too eager; I could easily have canaried it and paid a more watchful eye, but didn’t, and pushed it along with the new client binary all at once.  While most people might only have seen a sluggishness in updates, I saw…. I think it peaked at about 10QPS of errors by midnight, due to a sea of broken shit that I didn’t test properly before I stuck it in production.</p>

<p>We’re back down to our more normal 1QPS of traffic, and our normal error rate (mostly due to Flickr taking too long to perform even these simpler searches - we’ve still got an upper bound on request fetch time of 10s), that client retries magic away.</p>

<p>More improvements, probably, soon.</p>
]]></description><wfw:commentRss>http://ctoforaday.com/blog/rss-comments-entry-11310111.xml</wfw:commentRss></item><item><title>Weathrman 4.0: By Popular Demand</title><category>android</category><category>honeycomb</category><category>update</category><category>weathrman</category><category>xoom</category><dc:creator>Gregory Block</dc:creator><pubDate>Fri, 29 Apr 2011 17:47:42 +0000</pubDate><link>http://ctoforaday.com/blog/2011/4/29/weathrman-40-by-popular-demand.html</link><guid isPermaLink="false">487685:5541460:11305540</guid><description><![CDATA[<p>I&#8217;ve got a shiny new Xoom, and now you have a shiny new Weathrman client.</p>

<p>The biggest changes here are all around two user stories I&#8217;ve heard more than anything else:</p>

<ul>
<li>I installed the app, but it doesn&#8217;t do anything and I can&#8217;t find it.</li>
<li>I need more control over how the application uses data on my device.</li>
</ul>

<p>To address the former, we&#8217;ve got a launcher, dialogs on preview, and an embedded usage guide to help the user get the live wallpaper selected on their devices.</p>

<p>To address the latter, we&#8217;ve now got a pretty good story on data controls:</p>

<ul>
<li>We now obey background data settings.  If you turn off background data support, you can still refresh the wallpaper manually, but all automated, non-interactive network activity is stopped.</li>
<li>Support for disabling use of 2G/3G and WiMAX networks, for those who want wifi-only.</li>
<li>Control over walllpaper refresh rate.</li>
</ul>

<p>Now that we’re allowed a lot fewer search terms, we’re doing a lot more fan-out of requests to flickr; a single user can now result in about 5,000 flickr requests, fired off in under 30 seconds.  The pressure is on to find better search terms and filter terms, and so our next steps will be to take advantage of the prediction API and start using machine learning to make better decisions.</p>
]]></description><wfw:commentRss>http://ctoforaday.com/blog/rss-comments-entry-11305540.xml</wfw:commentRss></item><item><title>Weathrman Search Quality: A Progress Report</title><category>flickr</category><category>honeycomb</category><category>search terms</category><category>weathrman</category><category>xoom</category><dc:creator>Gregory Block</dc:creator><pubDate>Mon, 25 Apr 2011 12:36:38 +0000</pubDate><link>http://ctoforaday.com/blog/2011/4/25/weathrman-search-quality-a-progress-report.html</link><guid isPermaLink="false">487685:5541460:11257273</guid><description><![CDATA[<p>I&#8217;m in the process of doing some server-side results joining, to reduce the complexity of our queries. &nbsp;The upside of this is that I should be able to, over time, bring us back up to our previous quality of searches. &nbsp;In fact, we&#8217;ll actually be slightly better off - performing a series of decomposed searches will ultimately result in more search results to process, as we&#8217;re doing more queries and getting more results.</p>
<p>This mean the load on the flickr API - and the load on my server - are going up.</p>
<p>I&#8217;m still in the awful position of not being able to charge for this, having made it free once - so I still want this to fall within freebie quota if at all humanly possible.</p>
<p>Last, I&#8217;ve got a shiny new Xoom, and I&#8217;ll be spending some time on the client shortly getting some basic changes into the UI to make it slightly prettier when used there. &nbsp;I&#8217;ve already made some server-side tweaks to broaden the minimum image size so that Xoom resolutions get more Flickr results. &nbsp;The biggest problem at the moment is that there just aren&#8217;t many large image sizes fetchable via the API, and the images that do come back are far below the 1920x1408 background image size that a xoom wants.</p>
<p>More soon.</p>
]]></description><wfw:commentRss>http://ctoforaday.com/blog/rss-comments-entry-11257273.xml</wfw:commentRss></item></channel></rss>
