Jekyll2023-02-17T20:58:03+00:00https://ardvaark.net/feed.xmlThe Dumping GroundBrian VargasIt’s Been A Minute2021-02-08T00:00:00+00:002021-02-08T00:00:00+00:00https://ardvaark.net/its-been-a-minute<p>Well, now. It sure has been a while since I’ve posted here. I’ve just moved
to a statically-generated site. Now the content is simple markdown, which is
generated into HTML using <a href="http://jekyllrb.com">Jekyll</a>; and those static pages are
hosted and served on AWS.</p>
<p>I hope this setup will be immune to the constant cycle of software and security updates
that sapped my will to use WordPress.</p>
<p>I have also dramatically simplied the theme and layout. A dumb blog doesn’t really need much more.</p>
<p>I missed having a place to post since <a href="/twitter-is-bad-it-promotes-evil-it-makes-me-feel-bad-and-im-leaving/">leaving twitter a few years ago</a>.
Perhaps this will scratch that itch again. Or not. 🤷♂️</p>Brian VargasWell, now. It sure has been a while since I’ve posted here. I’ve just moved to a statically-generated site. Now the content is simple markdown, which is generated into HTML using Jekyll; and those static pages are hosted and served on AWS.Twitter Is Bad, It Promotes Evil, It Makes Me Feel Bad, And I’m Leaving2018-08-16T00:00:00+00:002018-08-16T00:00:00+00:00https://ardvaark.net/twitter-is-bad-it-promotes-evil-it-makes-me-feel-bad-and-im-leaving<p>I joined Twitter in May 2007, as user #6,060,732. Over ten years later, after not quite twenty
thousand tweets, it’s time to go. It started out as something so simple –
What are you doing? Over <em>SMS</em> no less! – and grew into a platform for global conversation.</p>
<p>Unfortunately, it also grew into a toxic hellscape, fostering abuse by anonymous trolls, enabling the
rise of neo-facism and political manipulation by foreign powers, and promoting an ever-shorter attention
span as people vie for likes with the most clever hot take instead of thoughtful analysis. It has become
apparent that the leadership at Twitter is either actively in league with factions I would consider treasonous
to western civilization, or too naive to understand the cliff towards which their platform is relentlessly
driving us. I want no part of this.</p>
<p>On a more personal level, my timeline feels like an endless steam of anxiety, anger, and sadness, interspersed
with occasional joy, laughter, and friendship; but the former far outweighs the latter. It makes me feel bad.
I’ve tried a lot of things to improve things for myself over the years: judicious mutes and blocks, disabling
retweets, cultivating lists, and temporary leaves-of-absence; but it seems to just continue to get worse.
Third-party clients like Tweetbot gave me enough control to keep my sanity – mostly – but Twitter has effectively
cut them off now.</p>
<p>So I’m done. It’s been a long time coming. I don’t want anyone else to obtain my identity, so I will not be deleting
my account. I have exported all my tweets, and intend to replace them here on my own site. But I have deleted them
from Twitter. I apologize for any broken links, but I cannot in good conscious leave my writing on that platform. If,
someday in the future, Twitter rights the ship, maybe I’ll be back. But for now, farewell.</p>Brian VargasI joined Twitter in May 2007, as user #6,060,732. Over ten years later, after not quite twenty thousand tweets, it’s time to go. It started out as something so simple – What are you doing? Over SMS no less! – and grew into a platform for global conversation.How To Automatically Clean Your macOS Downloads Folder2017-03-27T00:00:00+00:002017-03-27T00:00:00+00:00https://ardvaark.net/how-to-automatically-clean-your-macos-downloads-folder<p>I download a lot of crap, and it ends up in my Downloads folder. I used to use <a href="https://www.noodlesoft.com">Hazel</a> to keep my Downloads and Trash clean, but it was overkill: Hazel is a much more powerful tool than I needed. With the relatively recent addition to macOS to automatically <a href="https://support.apple.com/kb/PH25075?locale=en_US&viewlocale=en_US">remove items from the trash after 30 days</a> I was left with just my downloads folder.</p>
<p>So I wrote a script.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/usr/bin/env bash</span>
<span class="nv">folderName</span><span class="o">=</span><span class="s2">"</span><span class="k">${</span><span class="nv">1</span><span class="k">:-</span><span class="nv">$HOME</span><span class="p">/Downloads</span><span class="k">}</span><span class="s2">"</span>
<span class="nv">olderThan</span><span class="o">=</span><span class="s2">"</span><span class="k">${</span><span class="nv">2</span><span class="k">:-</span><span class="nv">7</span><span class="k">}</span><span class="s2">"</span>
find <span class="s2">"</span><span class="nv">$folderName</span><span class="s2">"</span> <span class="nt">-type</span> f <span class="nt">-ctime</span> <span class="s2">"+</span><span class="k">${</span><span class="nv">olderThan</span><span class="k">}</span><span class="s2">"</span> <span class="nt">-not</span> <span class="nt">-name</span> <span class="s1">'.\*'</span> <span class="nt">-exec</span> <span class="nb">rm</span> <span class="s1">'{}'</span> <span class="s1">';'</span>
find <span class="s2">"</span><span class="nv">$folderName</span><span class="s2">"</span> <span class="nt">-type</span> d <span class="nt">-empty</span> <span class="nt">-not</span> <span class="nt">-name</span> <span class="s1">'.\*'</span> <span class="nt">-exec</span> <span class="nb">rmdir</span> <span class="s1">'{}'</span> <span class="s1">';'</span>
</code></pre></div></div>
<p>Then, I installed it as a regularly-running launchd agent.</p>
<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp"><?xml version="1.0" encoding="UTF-8"?></span>
<span class="cp"><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"></span>
<span class="nt"><plist</span> <span class="na">version=</span><span class="s">"1.0"</span><span class="nt">></span>
<span class="nt"><dict></span>
<span class="nt"><key></span>Label<span class="nt"></key></span>
<span class="nt"><string></span>net.ardvaark.autocleandownloads<span class="nt"></string></span>
<span class="nt"><key></span>ProgramArguments<span class="nt"></key></span>
<span class="nt"><array></span>
<span class="nt"><string></span>/Users/bvargas/Documents/Misc/AutoCleanDownloads/auto-clean-downloads.sh<span class="nt"></string></span>
<span class="nt"></array></span>
<span class="nt"><key></span>Nice<span class="nt"></key></span>
<span class="nt"><integer></span>1<span class="nt"></integer></span>
<span class="nt"><key></span>StartCalendarInterval<span class="nt"></key></span>
<span class="nt"><dict></span>
<span class="nt"><key></span>Hour<span class="nt"></key></span>
<span class="nt"><integer></span>03<span class="nt"></integer></span>
<span class="nt"></dict></span>
<span class="nt"></dict></span>
<span class="nt"></plist></span>
</code></pre></div></div>
<p>Which I then copied to <code class="language-plaintext highlighter-rouge">~/Library/LaunchAgents/net.ardvaark.autocleandownloads.plist</code>, and installed with the command:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>launchctl load ~/Library/LaunchAgents/net.ardvaark.autocleandownloads.plist
</code></pre></div></div>
<p>And now my Mac automatically cleans my download folder of anything older than a week every morning at three o’clock.</p>Brian VargasI download a lot of crap, and it ends up in my Downloads folder. I used to use Hazel to keep my Downloads and Trash clean, but it was overkill: Hazel is a much more powerful tool than I needed. With the relatively recent addition to macOS to automatically remove items from the trash after 30 days I was left with just my downloads folder.Natural Reaction2014-02-04T00:00:00+00:002014-02-04T00:00:00+00:00https://ardvaark.net/natural-reaction<p><img src="/images/bloody-mess-275x275@2x.jpg" alt="A bloody mess" title="A bloody mess" width="275" height="275" /> Just
south of San Francisco, shortly after you merge onto Interstate 280 heading down to the South Bay, there is this massive red stain in the
center lane of the freeway. At night, flashing by so quickly under the headlights before disappearing underneath your car at seventy-five
miles per hour, it looks for all the world like an eighteen-wheeler tractor trailer decimated a full-grown deer mere moments before.</p>
<p>You instinctually look around when faced with that much carnage; you can’t help it: Where is the cab of the truck? Is the driver okay? The deer certainly isn’t, but … Why is there no body? Where are the guts?</p>
<p>It wasn’t until the third or fourth time I made the drive that I finally realized it was just paint. But it still freaks me out four years later.</p>Brian VargasJust south of San Francisco, shortly after you merge onto Interstate 280 heading down to the South Bay, there is this massive red stain in the center lane of the freeway. At night, flashing by so quickly under the headlights before disappearing underneath your car at seventy-five miles per hour, it looks for all the world like an eighteen-wheeler tractor trailer decimated a full-grown deer mere moments before.The Real Reason We’re Disappointed About Google Acquiring Nest2014-01-16T00:00:00+00:002014-01-16T00:00:00+00:00https://ardvaark.net/the-real-reason-were-disappointed-about-google-acquiring-nest<p><img src="/images/nest-thermostat1.jpg" /></p>
<p>Leave aside the privacy concerns for a moment. The issues there are real enough: The <a href="http://www.marco.org/2014/01/14/nest-privacy">non-answers in their privacy statement</a> leave enough room to build a data center in, and both the words and the actions of the leadership at Google can leave no doubt that they intend to push the boundary of what is creepy in pursuit of more, better data about you. They need it to target you with ads.</p>
<p>But that isn’t enough for disappointment. Paranoia and cynicism? Sure. But not disappointment. So why did <a href="http://www.theverge.com/2014/1/14/5307530/why-is-everyone-disappointed-by-google-buying-nest">the Internet react so strongly</a> at the news?</p>
<p>Nest is in the thermostat and smoke detector business. The make money in one way: Selling you thermostats and smoke detectors. The economic incentives drive them to make better thermostats and smoke detectors. The best damn smoke detectors and thermostats we have ever seen, in fact. So good that we were willing to pay a 10x premium for what is normally a $15 forgotten-about white box. One could only imagine all the cool things that were coming – and Nest had every reason to keep making them better: To sell us more thermostats and smoke detectors.</p>
<p>Google is in the advertising business. They make money in one way: Selling advertisements to be shown to you. The economic incentives drive everything in their business to that end. Everything else is secondary, and must <em>at least</em> provide some benefit to their primary business. Android is about controlling a mobile platform so they can mine it for data and show you ads. Gmail is about mining your email for context and showing you ads. Web search is about understanding you from your web activity and showing you ads based on it. And Google has every reason to find new ways to learn more about you: To sell more advertisements.</p>
<p>And there’s the rub: All of us could all see the potential of Nest to make our lives better in real, concrete, visceral ways; and they had the economic incentives to make it happen. Under Google, the economic incentives have changed, and with it the goal. Instead of making great products, the goal is now to push as close to the Creepy Line as possible. It won’t start out that way, but it will end up that way. You can’t fight economics.</p>
<p>The products will continue to improve, of course. A secondary goal must be to make them good enough to compete in the market, but it will always be secondary. It’s easy to see how much potential has been lost, and that is ever so disappointing.</p>
<blockquote>
<p>“The best minds of my generation are thinking about how to make people click ads. That sucks.” – <a href="http://www.businessweek.com/magazine/content/11_17/b4225060960537.htm">Jeff Hammerbacher</a></p>
</blockquote>Brian VargasTarget Hacked – Credit Cards vs. Debit Cards2013-12-19T00:00:00+00:002013-12-19T00:00:00+00:00https://ardvaark.net/target-hacked-credit-cards-vs-debit-cards<p>The world seems to be going crazy this morning with news that some <a href="http://www.mercurynews.com/business/ci_24756498/target-hack-40-million-card-accounts-may-have">40 million credit cards were stolen from Target’s databases</a>. My Twitter feed is aflame, it’s all over my news sites, and I’ve even received email from family members warning me to get all my cards reissued. I’m not going to, though. I only use credit cards, so it’s not my problem.</p>
<p>If my number just happens to be one of the 40 million stolen, and if a thief happens to actually try and use it, and if the credit card companies’ powerful automated anti-fraud systems don’t happen to notice that I couldn’t possibly be buying a new television from Amazon in Kazakhstan while also paying for dinner at Chez Billy, then in that unlikely scenario my total projected costs will be a grand total of $0, plus a minor inconvenience while my card gets re-issued.</p>
<p>How can this be?</p>
<p>In the United States, the law limits consumer liability for credit card fraud to the first $50, so no matter what happens, I’m only out $50. As a bonus, credit card companies nearly always waive that $50 charge, as they would rather not piss me off and lose me as a customer over a another person’s crime.</p>
<p>But if you use debit cards, the story is different. The consumer protection laws are far more lax, with a potential maximum liability of up to $500 – 10x more! And even though most cases of fraud will probably eventually be resolved, in the meantime, the missing money is <em>your</em> money. The bank can take up to 10 days to investigate the fraud, and during that time your checking account will sit empty. When you use a credit card, you’re buying things with <em>somebody else’s</em> money_._ While they investigate the fraud, you’re not out a nickel.</p>
<p>The moral of the story is: Use credit cards instead of debit cards. Or use cash. But either way, cut up your debit cards.</p>
<p>[You can find more information on the <a href="http://www.pirg.org/consumer/banks/debit/debitcards1.htm">legal difference between credit cards and debit cards at US PIRG</a>.]</p>Brian VargasThe world seems to be going crazy this morning with news that some 40 million credit cards were stolen from Target’s databases. My Twitter feed is aflame, it’s all over my news sites, and I’ve even received email from family members warning me to get all my cards reissued. I’m not going to, though. I only use credit cards, so it’s not my problem.Divorced2013-08-23T00:00:00+00:002013-08-23T00:00:00+00:00https://ardvaark.net/divorced<p>[I wrote this post several months ago, shortly after the divorce was finalized. I have held off publishing it until all the final details were completed. Now they are.]</p>
<p>“How long were you married,” was always the first question. “Nine years,” I would reply. It was only a slight exaggeration. Our anniversary was only a few months away, and the mandatory waiting period meant we wouldn’t be divorced for six months, at least. “That’s a long time. You must have gotten married young.”</p>
<p>It didn’t feel like it at the time. We were both out of college – she had a master’s degree already! – when I proposed. We had career paths and car payments, student loans and credit cards, rent checks and insurance premiums. We felt like adults, though still struggling to learn who we really were and where we really fit and what was really important. Several of our other friends had already said their vows a year or more before, and we loved each other. She agreed, and the ceremony was a year later. We were twenty-three.</p>
<p>The years seem to have rushed by now, looking back. Our career paths detoured, and we sold our cars. A new city meant new friends gained, and old friends grown distant. The credit cards and loan payments were still there, but we exchanged the rent check for a mortgage payment, and put down roots. There were no children – a fact for which I am ever so grateful now – and as we discovered more of who we were, our love was changed and redefined, but was still a constant to me.</p>
<p>When I uncovered her affair, my world view shattered. I left her. I told our mutual friends what was happening, moved out of the house, and spent the next four-and-a-half months hurting. I posted to a secret, anonymous blog, dumping to it anything that came into my head: I wrote angry epitaphs, aimed at her. I wrote of the unexpected sadness I felt at the family we would never now have. I transcribed the dreams from which I awoke crying at three o’clock in the morning.</p>
<p>And then, without warning, I got over her. I moved on.</p>
<p>“That’s too fast,” people would say. “Ten years is a long time. You can’t be over her that quickly. Give yourself time to heal.” Know thyself, said somebody or another. And I guess I do. I had set myself up to succeed the moment I decided the marriage was over. With the help of my friends and family, I had made it through to the other side. For the first time in a decade, I was ready to live only for myself. I could do anything I wanted, and I did. I lost forty-five pounds. I went on trips and to concerts. I ate goat brains and learned to love seafood. I started dating.</p>
<p>I threw a big party this past New Years Eve. As I mingled with friends new and old, I found myself telling them that 2012 had been a really good year for me. Sure, a terrible thing had happened, but I came through it happier and healthier and more fulfilled than ever before. Loss and pain have acted like a lens, focusing me on what I want and what is important to me. My future is clearer to me now than ever before.</p>Brian Vargas[I wrote this post several months ago, shortly after the divorce was finalized. I have held off publishing it until all the final details were completed. Now they are.]Brian Drinks Java: Chromatic Coffee2012-12-11T00:00:00+00:002012-12-11T00:00:00+00:00https://ardvaark.net/brian-drinks-java-chromatic-coffee<p><img src="/images/chromatic-coffee-beans.jpg" alt="Chromatic Coffee beans" class="alignright" width="253" height="323" />
Everything old is new again, and that includes <a href="http://www.chromaticcoffee.com/">Chromatic Coffee</a> in Santa Clara, California. Formerly Barefoot Coffee, longtime visitors were surprised by the sudden change in name and signage. But concerns that the hangout would lose its charm or passion for great joe were quickly ameliorated: The staff tells me that the owner simply decided to open his own roastery to go with the shop – which only means even more interesting micro-roasts and single-origin coffees to experience! And the warm interior, friendly and professional staff, funky playlist, and ever-changing gallery of local art all remain, as welcoming as ever.</p>
<p>Chromatic Coffee runs two primary coffee stations. The first is a three-head La Marzocco rotary espresso machine, providing shots for the usual selection of lattes, macchiatos, cappuccinos, and doppios. Two time-modded grinders provide the day’s pair of espresso selections. The baristas are well-trained and know their product. When I arrived shortly after opening one morning, the barista Christine was still dialing in the machine to provide the optimum extraction for that day’s beans: grind-pull-sip-toss-adjust, grind-pull-sip-toss-adjust, grind-pull-sip-toss-adjust. Her extra few minutes of effort paid off in the end, though, with an excellent cafe latte: The <a href="http://www.chromaticcoffee.com/ProductDetails.asp?ProductCode=emperor%2Despresso">Emperor blend</a> she used held an excellent sweet chocolate, but with enough brightness to kick over the perfectly micro-foamed milk. And all topped with the a lovely bit of art that it seems we’ve all come to take for granted. <a href="http://www.chromaticcoffee.com/ProductDetails.asp?ProductCode=Eucaliptos">The Guatamala Eucaliptos</a> in the second grinder provided me with a doppio that landed on my tongue with a mild start, but quickly evolved into a swath of fruit and earth (the packaging describes it as “cherry cola”).</p>
<p><img src="/images/chromatic-coffee-current-offerings.jpg" alt="Chromatic Coffee Current Offerings" class="alignleft" width="280" height="210" />
The second of Chromatic’s stations is a four-funnel manual pour-over stand, used to highlight the company’s selection of single-origin beans and artisan roasting. Each order is individually ground, filtered, and poured by hand into a single cup – a meticulous process, but one that brings out the flavor characteristics of each coffee. If you’re looking to experience the aroma and flavor of a particular region of coffee, this is how you want to do it. At the recommendation of Kyle, I sampled the <a href="http://www.chromaticcoffee.com/ProductDetails.asp?ProductCode=El%2DCerro">El Cerro</a> from El Salvador, and was thoroughly surprised by the different ends of the flavor spectrum it yielded: a tart fruitiness on the top with a deep base of chocolate underlying.</p>
<p>Chromatic Coffee’s ample seating and medium-to-large tables make it a great place to meet friends for a chat, or gather with larger groups. Coupled with the free wifi, they also make Chromatic an excellent spot for a laptop-bug to work while staying caffeinated. But please, no mooching! And a typical assortment of pastries are delivered fresh each morning, if you need more than just caffeine to function.</p>
<p>Chromatic Coffee is located at <a href="https://maps.google.com/maps?client=safari&oe=UTF-8&ie=UTF-8&q=Chromatic+Coffee+Santa+Clara&fb=1&gl=us&hq=Chromatic+Coffee&hnear=0x808fb7815c08c193:0xe475a47ca3c0bfc0,Santa+Clara,+CA&cid=0,0,12412587536349052390&ei=hHHDUIfeL8mEyAG0gIGgAg&ved=0CJEBEPwSMAA">5237 Stevens Creek Blvd.</a> in Santa Clara, California. Follow <a href="https://twitter.com/CHROMATICCOFFEE">@CHROMATICCOFFEE</a> on Twitter, <a href="http://instagram.com/chromaticcoffee">@chromaticcoffee</a> on Instagram, and find them on <a href="https://www.facebook.com/ChromaticCoffeethecafe">Facebook</a>. For more photos, be sure to check out my <a href="http://www.flickr.com/photos/ardvaark/8252891957/in/set-72157632196131454/lightbox/" title="Chromatic Coffee by Ardvaark on Flickr">Chromatic Coffee set on Flickr</a>.</p>
<ul>
<li>Laptop Friendly: Yes</li>
<li>Size: Large</li>
<li>Rating: <img src="/images/five-tacos.png" alt="5 Tacos" title="5 Tacos" /></li>
</ul>
<p><img src="/images/chromatic-coffee-espresso-machine-reflection.jpg" alt="" title="Chromatic Coffee La Marzocco Espresso Machine Reflection" /></p>Brian VargasEverything old is new again, and that includes Chromatic Coffee in Santa Clara, California. Formerly Barefoot Coffee, longtime visitors were surprised by the sudden change in name and signage. But concerns that the hangout would lose its charm or passion for great joe were quickly ameliorated: The staff tells me that the owner simply decided to open his own roastery to go with the shop – which only means even more interesting micro-roasts and single-origin coffees to experience! And the warm interior, friendly and professional staff, funky playlist, and ever-changing gallery of local art all remain, as welcoming as ever.How Twitter Ruined Their API And What They Can Do To Fix It2012-12-03T00:00:00+00:002012-12-03T00:00:00+00:00https://ardvaark.net/how-twitter-ruined-their-api-and-what-they-can-do-to-fix-it<p>During the question and answer section of the <a href="http://ardvaark.net/the-one-api-you-should-know">panel I recently spoke on</a> at <a href="http://dcweek2012.sched.org/event/6f1a50ca0cbd57d41da9adc0a412a97d#.UJ0pT6XJu2x">DCWeek 2012</a>, one questioner asked the panel to describe an API that had “disappointed” us at some point. I replied: Twitter. Though he was angling for technical reasons – poor design, bad documentation, or insufficient abstraction – I had different reasons in mind.</p>
<h3 id="twitters-successful-api">Twitter’s Successful API</h3>
<p>Twitter’s primary API is without a doubt a hallmark of good design. It is singularly focused on one particular task: broadcasting small messages from one account to all following accounts as close to real-time as possible. That extreme focus led to simplicity, and that simplicity meant it is easy for developers to code and test their applications. Interactions with the API’s abstraction are straight-forward and often self-documenting. When coupled with <a href="https://dev.twitter.com/docs">Twitter’s excellent documentation</a> and sense of community, the early years meant that developers were free to explore and experiment, leading to a plethora of interesting – and sometimes terrible – Twitter clients (including my own <a href="http://ardvaark.net/projects/jackbot">Java IRC bot JackBot</a>).</p>
<p>Coincidentally, the explosion of smart phones, social networking, and always-on Internet connectivity meant Twitter’s <em>raison d’être</em> was also a means to explosive growth. <a href="http://en.wikipedia.org/wiki/Twitter#Outages">The Fail Whale</a> was an all-too-familiar sight during those early growing pains, but the same focus and simplicity that made it an easy API for developers to use also made it possible for Twitter to dramatically improve the implementation. Today, Twitter serves over 300 million messages daily – up several orders of magnitude from when I joined – yet our favorite marine mammal surfaces rarely.</p>
<h3 id="business-decisions">Business Decisions</h3>
<p>Twitter’s early business model is a familiar story. A cool idea formed the basis of a company, funded by venture-capital and outside investment. There was little thought given to how to turn a profit. Seeing themselves in competition with the already-huge Facebook, growing the user-base was the only real concern. For many years, Twitter continued to foster its community: In a symbiotic relationship with developers and users – who were often the same – Twitter expanded and modified the API, improved the implementation, and actively encouraged new developers to explore new and different ways of interacting with the Twitter systems. So important was this relationship that even things like the term “tweet”, the concept of the re-tweet, and even Twitter’s trademarked blue bird logo all originated with third-parties.</p>
<p>But the good times can’t roll forever; eventually the investors want a return, and the company began seeking a method to make money. Seeing itself as a social network, advertising was the obvious choice. But there was a problem: the company’s own policy and openness had made advertising difficult to implement. Here’s <a href="http://ardvaark.net/the-web-paradigm-four-years-later-king-browser">what I wrote in December 2009</a>:</p>
<blockquote>
<p>Twitter shows us the future of the Web. The user interface on Twitter’s home page is as technologically up-to-date as any of Google’s applications: it’s a full-on CSS-styled, HTML-structured, JavaScript-driven, AJAX-enhanced web application. And it looks just as lackluster as GMail or Google Calendar. But Twitter isn’t about HTML and CSS – it’s about data and the APIs to access and manipulate it.</p>
<p>More than 70% of users on Twitter post from third-party applications that aren’t controlled by Twitter. Some of those applications are other services – sites like TwitterFeed that syndicate information pulled from other places on the web (this blog, included). Others are robots like JackBot, my Java IRC bot which tweets the topics of conversation for a channel I frequent.</p>
</blockquote>
<p>Advertisers purchase users’ attention, and if you can’t guarantee that access, you can’t sell ads. But what third-party client is going to show ads on behalf of Twitter? Users – particularly the developers creating those third-party apps – don’t want to see ads if they can avoid it. You won’t make much money selling ads to only 30% of your users (who are also likely the least savvy 30%). What’s a little blue birdie to do?</p>
<p>The chosen path was to limit – and perhaps eliminate entirely – third-party clients. The recent 100,000 limit on client tokens is an obvious technological step, and they are <a href="http://www.windowsobserver.com/2012/11/16/breaking-twitter-completely-slams-the-door-on-tweetro-refuses-to-offer-exemption-to-user-token-limits/">already completely cutting off access for some developers</a>. Additionally, where technological restrictions are difficult, changes to the terms of service have placed legal restrictions on how clients may interact with the API, display tweets, and even in how they may interact with other similar services. (Twitter clients are not allowed to “intermingle” messages from Twitter’s API with messages from other services.) It seems likely that the screws will continue to tighten.</p>
<h3 id="a-way-forward-get-on-the-bus">A Way Forward: Get On The Bus</h3>
<p><img src="/images/busses.jpg" alt="busses" width="50%" />
Twitter has built the first ubiquitous, Internet-wide, scalable pub-sub messaging bus. Today that bus primarily carries human-language messages from person to person, but there are no technical limitations preventing its broader use. The system could be enhanced and expanded to provide additional features – security, reliability, bursty-ness, quantity of messages, quantity of followers, to name just a few – and then Twitter can charge companies for access to those features. Industrial control and just-in-time manufacturing, stock quotes and financial data, and broadcast and media conglomerates would all have benefited from a general-purpose, simple message exchange API.</p>
<p>Such a generalized service would be far more useful to the world at large than just another mechanism for shoving ads in my face, and I would bet that the potential profits from becoming the de facto worldwide messaging bus would dwarf even the wildest projections for ad revenues. It wouldn’t be easy: highly available, super-scalable systems are fraught with difficulty – just ask Amazon – but Twitter is closer to it than anyone else, and their lead and mindshare would give them a huge network-effect advantage in the marketplace.</p>
<p>With this new model replacing the advertising money, third-party clients would no longer be an existential threat. Twitter could remove the pillow from the face of their ecosystem and breath new life back into their slowly-suffocating community.</p>
<p>Will they take this path? I doubt it. The company’s actions in the past several months clearly telegraph their intentions. Twitter’s API teaches us an important lesson that, no matter how well designed, documented, and supported an platform is, there will always be people behind it making business decisions. Those decisions can affect the usability of the API just as deeply as bad design, and often much more suddenly. <em>Caveat programmer!</em></p>
<div class="credits">
<p>Busses from <a href="http://www.flickr.com/photos/andresrueda/3274955487/" title="per•spec•tive on Flickr">per•spec•tive</a> by <a href="http://www.flickr.com/photos/alansmythee/" title="Alan Smythee on Flickr">Alan Smythee</a> under a <a href="http://creativecommons.org/licenses/by/2.0/deed.en" title="Attribution 2.0 Generic">CC Attribution 2.0 Generic license</a>.</p>
</div>Brian VargasDuring the question and answer section of the panel I recently spoke on at DCWeek 2012, one questioner asked the panel to describe an API that had “disappointed” us at some point. I replied: Twitter. Though he was angling for technical reasons – poor design, bad documentation, or insufficient abstraction – I had different reasons in mind.Win, Lose, Banana – The Best $1 You’ve Ever Spent2012-11-29T00:00:00+00:002012-11-29T00:00:00+00:00https://ardvaark.net/win-lose-banana-the-best-one-dollar-youve-ever-spent<p><img src="/images/win-lose-banana-cards.jpg" alt="Win, Lose, Banana cards" width="50%" />
Little pockets of downtime pepper our lives: waiting for the bus, waiting at a crosswalk, waiting for that one person in the group to come back from the bathroom <em>again</em>. We make smalltalk, we look at our watches, we check our phones. These moments flit away like a mote of dust passing through a sunbeam, a few seconds at at time.</p>
<p><a href="http://winloseorbanana.com/">Win, Lose, Banana</a> is a game for these moments. A typical game lasts less than ten seconds, turning that awkward silence where everyone would normally be feigning sudden extreme interest in the patterns on the tin ceiling into an awkward argument over which player has the banana.</p>
<p>Win, Lose, Banana is a so-called <em>convincing game</em> for three players. It consists of merely three cards: Win, Lose, and Banana. Each player randomly choses a card, and the player with the Win card simply shows it and announces victory. Congratulations! The winner is then entitled to the banana.</p>
<p>Ah, but who has it? The two remaining players must then convince the winner that <em>they</em> have the banana – and that the other player is the loser. If the winner chooses correctly, both she and the banana may smugly gloat over the loser. But if the loser manages to be more convincing, he must mercilessly mock the other two players. The only real rule is that you may not simply show the winner your card; everything else is fair game. The lengths to which players can go to be convincing are otherwise bounded only by decorum and your imagination. And perhaps the length of time it takes that one friend to pee.</p>
<p>It’s hard to describe how much fun I’ve had with this game. Passing moments on the street with friends would sudden turn rowdy as we argued over possession of the banana. And at only $1, it’s a no-brainer that you ought to buy it. In fact, buy a dozen and give them away to friends. This may be the single best value in gaming – ever – and quite possibly the best $1 you’ve ever spent.</p>
<ul>
<li>Publisher: <a href="http://winloseorbanana.com" title="Asmadi Games: Win, Lose, Banana">Asmadi Games</a></li>
<li>Price: $1</li>
<li>Rating: <img src="/images/five-tacos.png" alt="5 Tacos" title="5 Tacos" /></li>
</ul>
<p>Available in DC at: <a href="http://www.labyrinthgameshop.com">Labyrinth Game Shop</a>, 645 Pennsylvania Ave. SE</p>Brian VargasLittle pockets of downtime pepper our lives: waiting for the bus, waiting at a crosswalk, waiting for that one person in the group to come back from the bathroom again. We make smalltalk, we look at our watches, we check our phones. These moments flit away like a mote of dust passing through a sunbeam, a few seconds at at time.