<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Konklone</title>
    <link>http://konklone.com</link>
    <description>Stuff by Eric Mill</description>
    <language>en-us</language>
    <image>
      <title>Konklone</title>
      <link>http://konklone.com</link>
      <url>http://konklone.com/favicon.png</url>
      <description>Stuff by Eric Mill</description>
      <width>144</width>
      <height>144</height>
    </image>
    <atom:link href="http://konklone.com/rss.xml" rel="self" type="application/rss+xml" />
    
      
        <item>
          <title>Life Rational</title>
          <description><![CDATA[
            <p>I deeply appreciated Wesley Hicks&#39; plainly written contribution to <a href="http://thelistserve.com/">The Listserve</a> today. The Listserve is a list of ~20,000 people and someone gets picked to send a message each day. They are nearly always awful &quot;life affirming&quot; advice things. </p>

<p>Today&#39;s felt different, because it describes exactly how I feel about humans, and what my general priorities for the Universe are: &quot;life rational&quot;. For now, that&#39;s us. I&#39;d like to see as much of it as possible grow for as long as possible.</p>

<p>Wesley Hicks, &quot;What it means to me to be Human.&quot; &mdash;</p>

<blockquote>
<p>We as a species make the greatest changes to the world; more so then any other species ever has. Many take this idea as a bad or ominous sign about the destruction we cause upon the planet but I conversely consider it the single greatest thing that we can ever do. As humans we have been placed into a niche that no other species has ever been in. We have become the protectors and purveyors of life.</p>

<p>In the event of a large disaster, one that could cause mass extinctions, humans are at an interesting position in their ability to control and prevent such events. We have the ability to stop a meteorite from striking the earth in the same manner we can prevent almost any known cataclysm from striking our planet. This places us in the position of being the protectors of life on earth. Currently the planet tolerates what we are doing to it. With the current rate of destruction upon the nature with a rather conservative plan to end the destruction we will have killed more then 10% of the diversity of life on earth. This pales in comparison to what a single meteorite of a decent size will do. Having us in a position to prevent this truly makes our actions required to gain the technological and scientific standing that allows us to protect life rational.</p>

<p>We as humans will eventually have the ability to do something even more grand and overall important. Life as we know it is trapped on this planet. Earth is a limited place with limited resources, limited space and limited time. Earth certainly will not be around forever and we, as the technologically advanced species of earth, can leave and travel throughout the galaxy. At the time of writing this message over 850 planets outside of our solar system have been discovered with many in the habitable zone around their stars and there are even some that are truly earthlike. We as humans can travel forth and bring life to these planets. Inevitably we will bring the diversity of life from our planet along with us and guarantee the spread of life throughout the galaxy. Acting as the spreaders of life we will truly make up for the negative effects we have caused on our planet. We as a species are destined to protect, continue and spread life in a way no other known species could ever come close to doing.</p>
</blockquote>

          ]]></description>
          
          
            <category>listserve</category>
          
            
          <link>http://konklone.com/post/life-rational</link>
          <guid>http://konklone.com/post/life-rational</guid>
          <pubDate>Sat, 18 May 2013 21:01:23 21:01:23</pubDate>
        </item>
      
        <item>
          <title>Mr. Money Mustache</title>
          <description><![CDATA[
            <p><a href="http://www.mrmoneymustache.com/2012/04/18/news-flash-your-debt-is-an-emergency/">News Flash: Your Debt is an Emergency!!</a> —</p>

<blockquote>
<p>On another occasion I was visiting some friends – a married couple. The guy was showing me his new TV and video game system. Later, the wife came home from working at the part-time second job she had boldly taken to accelerate the paydown of some old personal debts. On the way home from work, she had picked up a bottle of wine and purchased a DVD containing some episodes of a popular TV show. This may sound like a normal Friday night to most people, but <em>note that the purchasing of expensive beverages, DVDs, and video games was put at a higher priority than paying off the debt</em>. The girl thought she was taking a second job to pay down debt, but in reality her second job was to pay for wine, DVDs, and video games.</p>
</blockquote>

<p><a href="http://www.mrmoneymustache.com/2012/10/03/the-practical-benefits-of-outrageous-optimism/">The Practical Benefits of Outrageous Optimism</a> —</p>

<blockquote>
<p>Fame, fortune, the respect of others, or a job as President of the United States? Just chemical patterns stored in the minds of a bunch of other humans. Even physical problems, like immediately cutting human carbon emissions by 75% to reduce climate change or eliminating poverty in all poor countries, are things that could be solved within months, just by altering patterns in a bunch of human minds. </p>
</blockquote>

<p>I&#39;m being destroyed and rebuilt on the inside by <a href="http://www.mrmoneymustache.com/">Mr. Money Mustache</a>. Not because I want to retire at 30, but because I have been, without a doubt, living the <a href="http://www.mrmoneymustache.com/2013/02/22/getting-rich-from-zero-to-hero-in-one-blog-post/">Exploding Volcano of Wastefulness</a> everyone else here has, and it&#39;s deeply shaming. There is an alternate universe I am supposed to be living in where I am far more free than I am here.</p>

<p>What&#39;s unique about Mr. Money Mustache is that his writing is intensely practical, vigorous, and does not discourage or disappoint the reader during their horrific epiphany - instead, it <strong>fills you with the energy</strong> you need to do things differently. </p>

<p>It&#39;s never too late, and there&#39;s so much to do.</p>

<p><strong>Update:</strong> My friend Gunnar had a <a href="http://atechnologyjobisnoexcuse.com/2013/05/sinners-in-the-hands-of-an-angry-moustache/">very different reaction</a> to MMM:</p>

<blockquote>
<p>There’s nothing practical about this advice. It’s straight-up Calvinism, with MMM and “millions of people”‘s judgement as my Angry God. You there, with the Doritos: convenience and comfort have made you soft, poor, and unworthy of your our love. Pull it together and eat an apple, you depraved sinner.</p>

<p>What should be a series of self-conscious, considered choices about what tools to use or food to eat have become, through the power of MMM’s disapproval, predicates for my sense of self-worth. Literally nothing could be more materialist.</p>
</blockquote>

<p>This was sufficient goad for me to take to Gunnar&#39;s comment form to really articulate why I feel this way. There&#39;s a fuller discussion there, but I wanted to excerpt this part of what I wrote:</p>

<blockquote>
<p>Over the last few years, well before I found MMM a couple weeks ago, I have been coming to a steady and angering awareness of a few basic truths:</p>

<ul>
<li>From when I entered the private tech sector workforce in 2005, to 2010, I maintained a constant supply of ~$3-5K in savings. (You can see the $4,000 frozen in stone in late 2010, when I shut down <a href="http://ohnomymoney.com">ohnomymoney.com</a>.)</li>

<li>I make more than 2x as much as I made in 2006, and feel 1x as pampered and comfortable. The sentence that first perked me up on MMM is the "Exploding Volcano of Wastefulness". This is what I am living (and I knew this well before MMM articulated it).</li>

<li>In the most challenging time I've ever undergone, from Nov 2008 to Mar 2009, I entered joblessness with $3,000 in savings, went down to 0, freelanced back up to $3,000 before landing my job at Sunlight, and then my savings didn't budge for *years*.</li>
</ul>

<p>So what I have realized is that I am just not good at saving money, and that it is largely all mental. Sure, I've had sharper constraints on me in the past, and I am saving more now, but that I still only manage to save 20% of my income despite having all the advantages in the world (well paying job and no family chief among them), and haven't managed to budge that despite 3 years of feeling really angry about it, is deeply frustrating.</p>

<p>How I'm channeling MMM is simply to give me the emotional impetus I need to make a few reasonable behavior changes. Such as: actually cooking, ever. Bringing lunches instead of buying them. Reducing my impulse purchasing. Taking car2gos a little less frivolously. Basic stuff, that really just requires an emotional foundation of really wanting to do it. That foundation's been very difficult for me to construct, and I'm welcoming it being shored up.</p>
</blockquote>

<p><strong>Update 2</strong>:  I&#39;m not so much looking for a sweet party as I am the ability to look my savings account in the face, but <a href="https://twitter.com/mrmoneymustache/status/334331910006374400">so sayeth</a> Mr. Money Mustache:</p>

<p><center><br>
<blockquote class="twitter-tweet"><p>Nicely written @<a href="https://twitter.com/konklone">konklone</a> ! Your friend who mentions Calvinism is crazy. This is about living a sweet party of a life, not atoning for sins!</p>— Mr. Money Mustache (@mrmoneymustache) <a href="https://twitter.com/mrmoneymustache/status/334331910006374400">May 14, 2013</a></blockquote><br>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><br>
</center></p>

          ]]></description>
          
          
            <category>money</category>
          
            
          <link>http://konklone.com/post/mr-money-mustache</link>
          <guid>http://konklone.com/post/mr-money-mustache</guid>
          <pubDate>Sun, 12 May 2013 04:31:19 04:31:19</pubDate>
        </item>
      
        <item>
          <title>Phoenix Has Forced Me To Come To Terms With Myself</title>
          <description><![CDATA[
            <p>I recently got a chance to go speak to <a href="http://www.aallnet.org/chapter/azll/">a group of Arizona law librarians</a> about legal informatics! I do not think that I would have guessed this future of myself back in college, but it&#39;s real and it&#39;s now, and it was actually a lot of fun.</p>

<p>They found me because of <a href="https://scout.sunlightfoundation.com/">Scout</a>, and asked me to talk about tracking government information. I decided to start with Scout as an example, to zoom out to <a href="http://www.govtrack.us/">similar</a> <a href="http://courtlistener.com/">projects</a>, and then to describe the conditions necessary to make projects like ours possible. Because the audience was law librarians, a sympathetic crowd inside an <a href="/assets/images/pacer-terms.png">unsympathetic</a> area of government, I emphasized the necessity of absolutely free access to data as a fundamental requirement and right.</p>

<p>They asked me to send over materials that could be, like, printed - like on paper - to give to attendees for legal credit. Bewildered, I decided to do a sort of active outline, and drafted it in Github&#39;s <a href="https://gist.github.com/">Gist</a> before converting it to a print-ready version (links -&gt; footnotes). I actually really like how it turned out - it&#39;s not a bad tour over the space I work in and how me and my emotions fit into it. So here it is below, embedded directly <a href="https://gist.github.com/konklone/5278942">from Gist</a>. <small class="right">
          <span>I also made a <a href="https://gist.github.com/konklone/5468803">list of links</a> of the 40-odd tabs I had open in my browser for the actual talk.</span></small></p>

<script src="https://gist.github.com/konklone/5278942.js"></script>

          ]]></description>
          
          
            <category>gist</category>
          
            <category>sunlight</category>
          
            
          <link>http://konklone.com/post/phoenix-has-forced-me-to-come-to-terms-with-myself</link>
          <guid>http://konklone.com/post/phoenix-has-forced-me-to-come-to-terms-with-myself</guid>
          <pubDate>Thu, 09 May 2013 03:10:08 03:10:08</pubDate>
        </item>
      
        <item>
          <title>Open Data Day DC, 2013</title>
          <description><![CDATA[
            <div class="container"><img src="/assets/images/dc-open-data.jpg" style="float: right; padding: 20px; width: 400px;" /></div>

<p>A couple Saturdays ago, I helped <a href="https://twitter.com/joshdata">Josh Tauberer</a> <a href="https://twitter.com/diplokat">and</a> <a href="https://twitter.com/kachok">a</a> <a href="https://twitter.com/OpenNotion">few</a> <a href="https://twitter.com/ulkins">others</a> organize a hackathon for <a href="http://opendataday.org/">Open Data Day</a>, here in DC. Open Data Day is an international event, and this year <a href="http://wiki.opendataday.org/2013/City_Events">over 100 cities</a> participated from <a href="http://opendataday.org/map/">around the world</a>. It&#39;s incredible to see. Our DC event <a href="http://opendataday2013dc.eventbrite.com/">sold out entirely</a>, and we got <strong>over 150</strong> people to join us at the World Bank to work together on a Saturday.</p>

<p>Hackathons can get a lot of flak nowadays. For example, David Sasaki, writing in December from the perspective of someone often invited to judge, fund, and otherwise evaluate hackathons and contests, <a href="http://davidsasaki.name/2012/12/on-hackathons-and-solutionism/">wonders</a> whether hackathons lead to solutions that don&#39;t understand the problem. Chinmay Pendharkar, from the perspective of a developer, started a <a href="http://news.ycombinator.com/item?id=5302940">vigorous Hacker News discussion</a> a couple days ago by <a href="http://chinpen.net/blog/2013/02/hackathons-are-bad-for-you/">writing</a> how hackathons are flat out bad for you and promote an irresponsible, unhealthy lifestyle.</p>

<p>I&#39;ve been to a lot of bad hackathons in my day. I&#39;ve even been paid to run some! We all did some crazy things back in the &quot;Gov 2.0&quot; heyday of 2009 and 2010. And there&#39;s still a lot of questionable hackathon-ing happening out there. But while there&#39;s some truth to what David and Chinmay are saying, that&#39;s not how it has to be.</p>

<p>Josh <a href="http://razor.occams.info/blog/2013/03/02/open-data-day-2013-hackathon-recap/">sums up our mindset nicely</a>:</p>

<blockquote>
<p>Our approach to the hackathon was a little different than many others. Our goals were to strengthen the open data community, to foster connections between people and between projects, and to emphasize problem statements over prototypes and solutions. </p>

<p>There was no beer or pizza at our hackathon, no competitions, and no pressure to produce outputs. Participants came motivated and stayed focused without needing to be treated like brogrammers. This created a positive, welcoming, and highly productive environment.</p>
</blockquote>

<p>Hopefully this is evident in our <a href="http://opendatadaydc.tumblr.com/">project screenshot blog</a>, our <a href="https://hackpad.com/@OpenDataDay-2013-DC-XOyEe1yIUK2">event hackpad</a>, and the <a href="http://www.youtube.com/watch?v=e_LcBQuaM1s">video</a> Josh kindly took the time to make from his shots and interviews throughout the day.</p>

<p>Josh also organized DC&#39;s first Open Data Day event, back in December of 2011, and I <a href="http://sunlightfoundation.com/blog/2011/12/08/sunlight-at-international-open-data-hackathon/">had a fantastic time there</a>. I didn&#39;t leave with working code: I left with <strong>momentum</strong>. I showed up with what I assumed was an arcane, intimidating idea (fording the data river from regulations back to legislation), and instead received the help of half a dozen enthusiastic people for an entire day. Most of them were not coders, just eager to work on something that mattered, and they contributed a ton of <a href="https://github.com/sunlightlabs/crosslaws/wiki/Working-Group-Pad">awesome research</a>. That outpouring of energy kept mine strong afterwards, and directly led to me creating <a href="http://sunlightfoundation.com/blog/taxonomy/term/citation-js/">a valuable tool</a> 7 months later. </p>

<p>Maybe most importantly, it introduced me to high quality people that I&#39;ve kept in touch with, and has added rooms to my imagination for future work that refuse to leave. This is what I wanted to create for people at Open Data Day this year. I hope the attendees left with more energy than they came in with, until we do it again next year.</p>

<p><center><iframe width="700" height="394" src="http://www.youtube.com/embed/e_LcBQuaM1s" frameborder="0" allowfullscreen></iframe></center></p>

          ]]></description>
          
          
            <category>open data day</category>
          
            <category>dc</category>
          
            <category>hacking</category>
          
            <category>hackathon</category>
          
            
          <link>http://konklone.com/post/open-data-day-dc-2013</link>
          <guid>http://konklone.com/post/open-data-day-dc-2013</guid>
          <pubDate>Mon, 04 Mar 2013 01:20:33 01:20:33</pubDate>
        </item>
      
        <item>
          <title>Hard Work The World Over</title>
          <description><![CDATA[
            <p>All great things in this world require the support of those around you, and working at 3 in the morning.</p>

<p><center><iframe class="youtube" src="https://www.youtube-nocookie.com/embed/0BPTNdmdJSc?rel=0" frameborder="0" allowfullscreen></iframe></center></p>

          ]]></description>
          
          
            
          <link>http://konklone.com/post/hard-work-the-world-over</link>
          <guid>http://konklone.com/post/hard-work-the-world-over</guid>
          <pubDate>Sun, 10 Feb 2013 18:25:23 18:25:23</pubDate>
        </item>
      
        <item>
          <title>Politics and Open Source</title>
          <description><![CDATA[
            <p>A friend of mine emailed me, asking about the <a href="http://www.theverge.com/2013/1/22/3902746/obama-heads-back-office-battle-rages-over-tech-that-got-him-reelected">publicly leaking battle</a> between the Obama/DNC techies and the higher-ups over what to do with all the code they wrote.</p>

<p>I worked on some of the Obama campaign&#39;s tech at Blue State Digital <a href="http://konklone.com/post/a-parallel-2012">back in 2008</a>, but that was just a big monolithic PHP website that was sold to a bunch of clients. What&#39;s at stake here is, as I understand it, a collection of much more modular innovations that the Obama campaign team -- who made a much heavier investment in in-house tech/data talent this time -- created themselves.</p>

<p>It actually is amazing how smart the Obama team was at tech this time around. Kyle Rush wrote a <a href="http://kylerush.net/blog/meet-the-obama-campaigns-250-million-fundraising-platform/">great post-mortem</a> on their fundraising platform and optimization, and it&#39;s obvious from that alone that they brought the spirit and skills of the modern web to presidential politics.</p>

<p>Nathan Woodhull, a friend of mine and someone I greatly respect, used to work as a technologist at the DNC, and was <a href="https://twitter.com/woodhull/status/293869813196009473">unhappy</a> with how The Verge implied he favored open sourcing everything - which <a href="https://twitter.com/woodhull/status/293869338316922880">he</a> <a href="https://twitter.com/woodhull/status/293871975284224000">doesn&#39;t</a>. He and Jim Pugh have a <a href="http://www.huffingtonpost.com/jim-pugh/obama-for-america-data_b_2325478.html">post on HuffPo</a> encouraging &quot;investment&quot; over &quot;mothballing&quot;, but that&#39;s as far as it goes.</p>

<p>Whether to open source code, and how much, is an incredibly tricky question. It&#39;s tempting to demand that it all be given to the public, full stop, but it&#39;s also simply not unreasonable for the Democratic party to act in their self-interest. I would argue that having their engineers engage with and invest in the open source community <strong>is</strong> in their self-interest, even if that just means some libraries and not full application code. </p>

<p>Below is an excerpt of the email I sent back to my friend, about the open source world. In it I make some reckless guessing at man-hours of open source labor, and I honestly have no idea if they&#39;re hyperbolicly high or insultingly low.</p>

<blockquote>
<p>The thing to understand about working as a developer, a web developer especially, in modern times is that <strong>everything</strong> people do now is premised on open source software. Even the types of software people are charging for are themselves built on layers and layers and layers of freely donated work by the public. It is much bigger than the collective creation that went into Wikipedia - like 2-3 orders of magnitude bigger. It&#39;s nearly impossible to conceive of - my tiny blog probably rests atop 2-300,000 man-hours of others&#39; free labor. Your Mac computer operates using probably 2-3 million man-hours of others&#39; free labor - that&#39;s besides the labor Apple pays for. Github just signed up its 3 millionth user, it is a gigantic ocean of constant churning public collaboration.</p>

<p>I&#39;m just guessing at the man-hour numbers, and I&#39;d love to see an actual study done that quantifies it more formally, but if anything I&#39;m probably understating it. It takes dozens of layers of work to go from electricity and 1&#39;s and 0&#39;s to anything that humans can even understand, and then another couple dozen layers of work to go from understandable to universally usable across the Internet. Each of those layers has alternatives and they&#39;re all being improved all the time and given away for free. That&#39;s just to get us all to the point where we can then compete on making things usable <strong>well</strong>.</p>

<p>People compete at the top, but the foundation of all modern computing is free.</p>

<p>So a wonderful culture has been created on the web where its engineers feel both an incredible sense of debt to the world, and a visceral understanding of karma: when you contribute your work to the world, you are rewarded by others helping make your work better, and the respect and credibility to attract more people to your cause.</p>
</blockquote>

<p>I&#39;ll also point to Tom Preston-Werner&#39;s <a href="http://tom.preston-werner.com/2011/11/22/open-source-everything.html">Open Source (Almost) Everything</a>, which uses a similarly unsourced estimate of &quot;millions&quot; of hours in the context of morally framing how developers interact with the open source Internet.</p>

<blockquote>
<p>Lastly, it&#39;s the right thing to do. It&#39;s almost impossible to do anything these days without directly or indirectly executing huge amounts of open source code. If you use the internet, you&#39;re using open source. That code represents millions of man-hours of time that has been spent and then given away so that everyone may benefit. We all enjoy the benefits of open source software, and I believe we are all morally obligated to give back to that community. If software is an ocean, then open source is the rising tide that raises all ships.</p>
</blockquote>

<p>Now let&#39;s not agree not to talk about the state of open source hardware device drivers.</p>

          ]]></description>
          
          
            
          <link>http://konklone.com/post/politics-and-open-source</link>
          <guid>http://konklone.com/post/politics-and-open-source</guid>
          <pubDate>Fri, 25 Jan 2013 19:36:25 19:36:25</pubDate>
        </item>
      
        <item>
          <title>Aaron Swartz</title>
          <description><![CDATA[
            <p>I don&#39;t know that I have it in me to offer something new and deep on the <a href="http://www.nytimes.com/2013/01/13/technology/aaron-swartz-internet-activist-dies-at-26.html">awful death of Aaron Swartz</a> on Friday. Aaron was known for, <a href="http://en.wikipedia.org/wiki/Aaron_Swartz">among other things</a>, downloading <a href="http://thelede.blogs.nytimes.com/2009/02/13/steal-these-federal-records-okay-not-literally/">20% of PACER</a> in 2009 and breaking into an MIT server closet in 2011 to download <a href="http://bits.blogs.nytimes.com/2011/07/19/reddit-co-founder-charged-with-data-theft/">a huge chunk of JSTOR</a>.  I was not close to him, and the most meaningful interaction I ever had with him was a back-and-forth in the comment thread of <a href="http://sunlightfoundation.com/blog/2012/07/06/open-data-creates-accountability/">a defense of open data</a> post that my colleague John Wonderlich wrote. I know people who knew him better though, and seeing them deal with it is jarring and miserable.</p>

<p>Apparently Aaron befriended some terrific writers in his life, because he&#39;s been honored with some stirring reactions.</p>

<p><a href="http://lessig.tumblr.com/post/40347463044/prosecutor-as-bully">Lawrence Lessig</a> knows something about justice, and is angry:</p>

<blockquote>
<p>Here is where we need a better sense of justice, and shame. For the outrageousness in this story is not just Aaron. It is also the absurdity of the prosecutor’s behavior. From the beginning, the government worked as hard as it could to characterize what Aaron did in the most extreme and absurd way. The “property” Aaron had “stolen,” we were told, was worth “millions of dollars” — with the hint, and then the suggestion, that his aim must have been to profit from his crime. ...</p>

<p>He was brilliant, and funny. A kid genius. A soul, a conscience, the source of a question I have asked myself a million times: What would Aaron think? That person is gone today, driven to the edge by what a decent society would only call bullying. I get wrong. But I also get proportionality. And if you don’t get both, you don’t deserve to have the power of the United States government behind you.</p>
</blockquote>

<p><a href="http://www.zephoria.org/thoughts/archives/2013/01/13/aaron-swartz.html">danah boyd</a> on the government&#39;s mission to triumph over hackers:</p>

<blockquote>
<p>What made me so overwhelmingly angry yesterday was the same thing that has been boiling in my gut for the last two years. When the federal government went after him – and MIT sheepishly played along – they weren’t treating him as a person who may or may not have done something stupid. He was an example. And the reason they threw the book at him wasn’t to teach him a lesson, but to make a point to the entire Cambridge hacker community that they were p0wned. It was a threat that had nothing to do with justice and everything to do with a broader battle over systemic power. </p>

<p>In recent years, hackers have challenged the status quo and called into question the legitimacy of countless political actions. Their means may have been questionable, but their intentions have been valiant. The whole point of a functioning democracy is to always question the uses and abuses of power in order to prevent tyranny from emerging. Over the last few years, we’ve seen hackers demonized as anti-democratic even though so many of them see themselves as contemporary freedom fighters. And those in power used Aaron, reframing his information liberation project as a story of vicious hackers whose terroristic acts are meant to destroy democracy.</p>
</blockquote>

<p><a href="http://dwillis.net/post/40483840271/on-aaron-swartz">Derek Willis</a> fills in an overlooked part of Aaron&#39;s work:</p>

<blockquote>
<p>Despite the penchant of many (including my employer) to refer to Aaron as an &quot;Internet activist&quot;, we should not forget that he was also deeply involved in the offline political world. I remember him volunteering to help Bill Halter&#39;s Senate campaign in Arkansas in 2010 (Halter lost the Democratic primary to incumbent Blanche Lincoln). He spoke at rallies about SOPA &amp; PIPA. </p>

<p>He could have chosen the &quot;web-only&quot; role, and for someone who had a complicated history of social interaction, that might have been an easier route. But I think he learned that, whatever his talents with a computer, politics needs - demands - people on the ground, face-to-face. I also imagine such activities took their toll on him; a spotlight lays bare our strengths and weaknesses.</p>
</blockquote>

<p>And <a href="http://boingboing.net/2013/01/12/rip-aaron-swartz.html">Cory Doctorow</a> just misses his friend:</p>

<blockquote>
<p>I don&#39;t know for sure whether Aaron understood that any of us, any of his friends, would have taken a call from him at any hour of the day or night. I don&#39;t know if he understood that wherever he was, there were people who cared about him, who admired him, who would get on a plane or a bus or on a video-call and talk to him.</p>

<p>Because whatever problems Aaron was facing, killing himself didn&#39;t solve them. Whatever problems Aaron was facing, they will go unsolved forever. If he was lonely, he will never again be embraced by his friends. If he was despairing of the fight, he will never again rally his comrades with brilliant strategies and leadership. If he was sorrowing, he will never again be lifted from it.</p>
</blockquote>

<p>For more background on the JSTOR case, <a href="http://arstechnica.com/tech-policy/2012/09/feds-go-overboard-in-prosecuting-information-activist/">Timothy Lee at Ars Technica explained</a> back in September how the government managed to up the charges to 10 felony counts, and the larger context of the Computer Fraud and Abuse Act.</p>

<p>Even though I didn&#39;t know Aaron personally, I can&#39;t really help but re-examine my own work. I go to <a href="http://sunlightfoundation.com/">my job</a> every day and work on improving access to public information. A few weekends ago, I remember going to a party full of lawyers and journalists and ranted (and probably bored) a bunch of ears off specifically about PACER, WestLaw, and LexisNexis -- what they represent, how they <a href="https://twitter.com/twneale/status/289756499562078210">worm their way in</a>, and the weakened democracy we live in as a result. </p>

<p>But my approach is very different. I work inside an institution, and none of my projects are viscerally radical. I work within the system, building the imagination and credibility to improve that system. And if I&#39;m being honest with myself, my temperament generally favors &quot;reasonableness&quot; over radicalism anyway, which tends to steer me away from some kinds of achievements and towards others. Usually I&#39;m okay with that, and I&#39;m sure I will be again soon, but right now it just feels like I&#39;m another guy coloring inside the lines.</p>

<p>An importance piece of peoples&#39; reaction to another&#39;s death is, I think, a realization that we were taking them for granted. I don&#39;t have to consider starting a radical advocacy group to defend the <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License">GPL</a> in court and generally legitimize copyleft - that&#39;s what we all have <a href="http://en.wikipedia.org/wiki/Richard_Stallman">Richard Stallman</a> and the <a href="http://www.fsf.org/">FSF</a> for. They&#39;ll take care of it for us. </p>

<p>With Aaron gone, it&#39;s up to everyone else now. Even before his death, Aaron&#39;s actions <a href="http://arstechnica.com/tech-policy/2011/07/swartz-supporter-dumps-18592-jstor-docs-on-the-pirate-bay/">inspired others</a> to take their own. That&#39;s only going to be more important now, as his death and the already changing norms around access to public information open up new opportunities for change.</p>

<div class="container"><a href="https://www.pacer.gov/psco/cgi-bin/regform.pl"><img src="/assets/images/pacer-terms.png" alt="PACER Terms of Service" title="PACER Terms of Service"></a></div>

          ]]></description>
          
          
            
          <link>http://konklone.com/post/aaron-swartz</link>
          <guid>http://konklone.com/post/aaron-swartz</guid>
          <pubDate>Mon, 14 Jan 2013 01:34:27 01:34:27</pubDate>
        </item>
      
        <item>
          <title>Learning While The Stakes Are Low</title>
          <description><![CDATA[
            <p>I got into two small debates on Twitter over the last couple of days, and they were both so similar that they made me pause and think about whether I was coming at them the right way.</p>

<p>In one, I disagreed with Netroots Nation&#39;s no-all-white-male-panels <a href="http://www.netrootsnation.org/ProposalsInfo/">policy</a> as well-intended but overly blunt. </p>

<blockquote class="twitter-tweet tw-align-center" data-in-reply-to="287949173590982656"><p>@<a href="https://twitter.com/1uigi">1uigi</a> for small panels, that's pretty silly. If a conf had 40 panels of 5 people each, and 1 was all-white-male...that is just fine.</p>— Eric Mill (@konklone) <a href="https://twitter.com/konklone/status/287978266520862720" data-datetime="2013-01-06T17:45:43+00:00">January 6, 2013</a></blockquote>

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<p>My immediate reaction was that in a large conference with dozens of panels of small numbers of people, even a fictional perfectly diverse conference could see a natural distribution that included an all-white-male panel or two. (You can already see how silly pushing this point sounds.) I ultimately agreed that the policy was better than none, but <a href="https://twitter.com/konklone/status/288042677004537856">said</a> that <a href="http://2012.jsconf.eu/2012/09/17/beating-the-odds-how-we-got-25-percent-women-speakers.html">thoughtful</a> <a href="http://devblog.avdi.org/2012/11/19/on-britruby/">policies</a> that hinge on discretion and diminish bias are superior.</p>

<p>In another, I <a href="https://twitter.com/konklone/status/288733058281123840">defended</a> Slate&#39;s <a href="http://www.slate.com/blogs/xx_factor/2013/01/08/the_enliven_project_s_false_rape_accusations_infographic_great_intentions.html">criticism of an infographic</a> that showed the disparity between rapes that end up reported and the attacker imprisoned, and the (many more) cases where one or both of those don&#39;t happen. </p>

<blockquote class="twitter-tweet tw-align-center" data-in-reply-to="288724050342207488"><p>@<a href="https://twitter.com/spavis">spavis</a> The post links to lots of supporting evidence. It *is* important to get facts and infographics right, or it's too easy to defeat.</p>— Eric Mill (@konklone) <a href="https://twitter.com/konklone/status/288733058281123840" data-datetime="2013-01-08T19:45:00+00:00">January 8, 2013</a></blockquote>

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<p>Writing for Slate, Amanda Marcotte argued that the numbers the infographic uses are more grim than is accurate, and that for a cause as important and charged as rape awareness those inaccuracies ultimately do more harm than good. I agreed, and felt it was damaging for constructive criticism to be unwelcome within the ranks of any good cause.</p>

<p>I&#39;ve since come to think that I let myself rush to judgment on these. While I believe my points were basically valid, I was elevating their narrow worth above the larger context, which is, for lack of a better word, a totally <a href="https://twitter.com/edw519/status/288059796463173632">engineer-y</a> thing to do.</p>

<p>Netroots&#39; policy is certainly imperfect, and they&#39;d probably agree with that, but there&#39;s lots of benefits, and in practice the downside is likely to be little, or nothing. &quot;Not white male&quot; is a pretty broad criteria that most panels will be able to meet, and in the meantime they&#39;ll have raised tons of awareness (like this post), pushed the issue forward, and, assuming it works, demonstrate a pretty cool reality when the actual conference happens.</p>

<p>I&#39;m sure the Slate author personally felt she was helping a cause she cares about, while holding it to a high standard. But it&#39;s also very easy for a person in that position to internally downplay the counter-arguments when there&#39;s such pressure for publications like Slate to attract traffic. The Slate headline was distinctly mocking and combative (&quot;Too Bad It&#39;s Wrong.&quot;), and while that&#39;s entirely explainable by the MO that every online for-profit magazine takes with crafting its headlines, in this context it really feels like Slate benefits more than the cause. The practical result is that a simple, well-made graphic that generated enough energy to make people re-examine their unconscious &quot;it&#39;s probably mostly okay these days&quot; feeling about how well rape is punished in the US had that energy sucked up into a vortex of meta, hosted at slate.com. That sucks.</p>

<p>I instinctively distrust militarization of conversation and questioning others&#39; motives, and I&#39;m fine with those instincts.  In particular, I worry the ferocity with which well-meaning people who make mistakes are getting attacked for them is polarizing them to <a href="https://gist.github.com/4106776">hold</a> <a href="http://conferencequotas.com/">opinions</a> they otherwise might have been steered away from.</p>

<p>But when talking about gender in 2013 elicits comments like <a href="http://fberriman.com/2013/01/06/conferences-arent-the-problem/">the ones on this post</a>, and talking about race in 2013 yields conversations like <a href="http://news.ycombinator.com/item?id=5006023">this one on Hacker News</a>, some bullheadedness and fighting spirit is probably justified for a long while yet.</p>

          ]]></description>
          
          
            
          <link>http://konklone.com/post/learning-while-the-stakes-are-low</link>
          <guid>http://konklone.com/post/learning-while-the-stakes-are-low</guid>
          <pubDate>Wed, 09 Jan 2013 03:28:56 03:28:56</pubDate>
        </item>
      
        <item>
          <title>isitchristmas.com 2012</title>
          <description><![CDATA[
            <p><a href="http://isitchristmas.com">isitchristmas.com</a> continues to get an irrational amount of traffic, <small class="right">In all of 2012: 3M visits, 2.3M uniques.</small> so I put an irrational amount of work into it this year.</p>

<p>If you <a href="http://isitchristmas.com">visit</a> in Chrome, Firefox, IE10, or Safari and wait a second or few for it to connect, you should see a bunch of <a href="http://bismuth-technetium-hydrogen.tumblr.com/image/38381109020">crazy</a> <a href="http://superturtle513.tumblr.com/post/38296087305/isitchristmas-com-added-a-feature-where-everyone-on-the">flags</a> appear and start moving around and making ripples. Each flag is another person, from that flag&#39;s country, moving their mouse around, and the ripples are clicks. Your own cursor should be your own flag, and you can participate too.</p>

<p>Participate in what? I have no idea. But people seem to be <a href="http://woodsgotwood.tumblr.com/post/38439453526">figuring out</a> some <a href="http://superturtle513.tumblr.com/post/38296646132/so-on-isitchristmas-com-i-found-my-friend-whos">awesome</a> <a href="http://cynchi-yuu.tumblr.com/image/38392610532">ways</a>.</p>

<div class="container"><a href="http://www.flickr.com/photos/konklone/8326547743/in/set-72157632388653620/" target="_blank"><img src="/assets/iic/brazilians-thumb2.png" style="text-align: center; border: 1px solid #888;" /></a></div>

<p><strong>Update:</strong> I&#39;ve created a <a href="http://www.flickr.com/photos/konklone/sets/72157632388653620/">set of screenshots</a> on Flickr.]</p>

<p><strong>How it works, short version</strong>:</p>

<ul>
<li>User visits isitchristmas.com, a Node.js app (<strong>web</strong>) running on Nodejitsu.</li>
<li><strong>web</strong> determines the user&#39;s country by checking their IP against a MongoDB full of mappings of IP blocks to ISO country codes obtained from MaxMind.</li>
<li><strong>web</strong> renders the page, which contains a bunch of JavaScript...</li>
<li>...that connects to a <em>separate</em> Node.js app (<strong>sockets</strong>) via SockJS.</li>
<li><strong>sockets</strong> keeps track of all connected users, and broadcasts mouse activity and other messages as appropriate between users.</li>
<li>There can be as many instances of <strong>web</strong> and <strong>sockets</strong> as there need to be to handle load. Each instance of <strong>sockets</strong> makes a virtual room that a visitor is randomly assigned to through Nodejitsu&#39;s load balancers.</li>
<li>Each <strong>sockets</strong> server uses a central Redis instance to say what users are connected, store analytics, and send certain commands and messages.</li>
</ul>

<p>Read on if you&#39;re interested in more technical details. I&#39;ll have a less technical post with stories, pictures, and stats after Christmas.<small class="left">I never did this, way too burnt out.</small></p>

<p>Jump to: <a href="#websockets">WebSockets</a> | <a href="#countries">Countries</a> | <a href="#flags">Flags</a> | <a href="#nodejitsu">Nodejitsu</a> | <a href="#redis">Redis</a> | <a href="#broadcasting">Broadcasting</a> | <a href="#code">Code</a></p>

<h2 id="websockets">WebSockets Have Arrived or at Least Are Arriving or Almost Arrived</h2>

<p><a href="http://www.html5rocks.com/en/tutorials/websockets/basics/">WebSockets</a> are super-low-latency held-open TCP connections that allow for lightning-fast data transfer. They stay open even as the Internet shifts under their feet. While completely magical, open TCP sockets are not new -- but for them to be available inside the browser in a standard way is extremely new. And while you can do a lot of things with rapid polling, even chat rooms, for mouse cursor movement you need actual open sockets.</p>

<p>Back in 2010, Jeff Kreeftmeijer did an <a href="https://vimeo.com/13805413">experimental blog post</a> that showed you other readers&#39; cursors in real time. Since then, WebSockets support has grown to include the most current version of every major browser - even Internet Explorer 10.</p>

<p>I use <a href="http://sockjs.org/">SockJS</a> to handle WebSockets or to fall back to <a href="http://en.wikipedia.org/wiki/Comet_(programming)">&quot;Comet&quot;</a> (a held-open AJAX connection). I expected lots of people to resort to Comet, but was pretty amazed to find that <strong>over 80%</strong> of successful connections are through WebSockets. WebSockets support has moved very fast!</p>

<p>In fact, many people who connect to isitchristmas.com through Comet are actually visiting in browsers that support WebSockets! Many routers, switches, and firewalls have a hard time allowing WebSockets connections through.</p>

<p>I drastically improved WebSockets connection rates, believe it or not, by <a href="https://gist.github.com/4247942">using SSL</a>. <small class="right">Check <a href="https://groups.google.com/d/topic/sockjs/wAgVZoN5iC4/discussion">this discussion</a> for more, including some better research from theyak.</small> By <a href="https://github.com/sockjs/sockjs-client/issues/94#issuecomment-9901564">moving it off port 80</a>, and by signaling that your packets require security, some networks that would otherwise examine and drop your packets choose to leave you alone.</p>

<p><strong>SockJS vs socket.io</strong>: I started out using <a href="http://socket.io/">socket.io</a>, but my servers were <a href="https://gist.github.com/4146668">crashing every 30 minutes</a> from exhausted memory. After switching to SockJS, they don&#39;t. I don&#39;t know for certain that socket.io was leaking memory (though there are <a href="https://github.com/LearnBoost/socket.io/issues/438#issuecomment-11745557">enough reports</a> that I suspect it was), because when I switched to SockJS, I also stopped brokering all mouse motion through Redis. That was hugely intensive and negated a lot of the benefit of adding more application servers. </p>

<p>So it&#39;s ambiguous. What I can say for sure is: SockJS is lighter and affords you more control, it&#39;s easy to add niceties like broadcasting and named events yourself, and <a href="https://groups.google.com/forum/?fromgroups#!forum/sockjs">Marek&#39;s support</a> is far more responsive than <a href="https://github.com/LearnBoost/socket.io/issues">socket.io&#39;s</a>. socket.io is easier to start with if you&#39;ve never done streaming before, but to really get things done, I recommend <a href="http://sockjs.org/">SockJS</a>.</p>

<h2 id="countries">Getting Users' Countries With Money</h2>

<p>From 2007-2011, I&#39;ve used the free database at <a href="http://www.hostip.info/">hostip.info</a> to match IP addresses to locations, using their <a href="http://www.hostip.info/dl/index.html">SQL dump</a>. It&#39;s done a great job, but I chose to pay a bit of money this year for <a href="http://www.maxmind.com/en/home">MaxMind&#39;s</a> commercial dataset. They offer varying levels of granularity, including just what I&#39;m looking for - <a href="http://www.maxmind.com/en/country">country codes</a> - for only $50, with updates for $12 apiece. There&#39;s also a <a href="http://dev.maxmind.com/geoip/geolite">free version</a> with the same schema; it&#39;s less accurate but actually seems pretty good.</p>

<p>MaxMind gives you a spreadsheet, so you can <a href="https://github.com/isitchristmas/web/blob/master/scripts/load.js">load it</a> into whatever you want. I leased a MongoDB instance from <a href="https://www.mongolab.com/">MongoLab</a> ($10/month) for this. Visits to isitchristmas.com check the visitor&#39;s IP address <a href="https://github.com/isitchristmas/web/blob/master/app.js">against each IP block</a> and get the page rendered. Unfortunately, doing this process server-side limits my options for caching. If it becomes a bottleneck, I&#39;ll have to add more application servers and potentially more MongoDB instances.</p>

<h2 id="flags">Flag Hutch</h2>

<p>I collected country names and flags by mixing <a href="http://www.maxmind.com/en/home">MaxMind</a>, <a href="http://flagpedia.net/">Flagpedia</a>, <a href="http://en.wikipedia.org/wiki/File:Flag_of_the_Isle_of_Man.svg">Wikipedia</a>, and <a href="http://geonames.de/">geonames.de</a>.</p>

<p>First, I took all the ISO country codes and names that appear in MaxMind&#39;s country spreadsheet. Flagpedia&#39;s flag image URLs are blessedly predictable by country code, so I &quot;borrowed&quot; all of their flags. Thanks, Flagpedia! </p>

<p>This only covered sovereign states, so for the remaining ~50 territories that have their own flag, I researched each one on Wikipedia and downloaded them by hand as SVG. I resized them down to a 20px height and converted to PNG to match Flagpedia.</p>

<p>Because the click effects (and other things) in isitchristmas depend on the exact width and height of the flag image, I wrote a script that used imagemagick to extract the width and height of each flag and create a <a href="https://github.com/isitchristmas/web/blob/master/public/christmas.js#L193">canonical bit of JSON</a> with country codes, names, and flag sizes.</p>

<p>The localized country names, visible at the top-right when you mouse over someone else&#39;s flag, come from <a href="http://www.geonames.de/indcou.html">geonames.de&#39;s index of country names</a>.</p>

<p>Finally, I downloaded the <a href="http://en.wikipedia.org/wiki/File:Flag_of_Esperanto.svg">flag for Esperanto</a> and made it the default for people the site can&#39;t identify or has no flag for.</p>

<p>I believe I have flags for every country and non-sovereign territory that has one - please let me know if I&#39;ve missed one. Grab them <a href="https://github.com/isitchristmas/web/tree/master/public/countries">from my public repository</a> if you want.</p>

<h2 id="nodejitsu">Hosting Node.js and WebSockets is Fun But Not Without Emotions</h2>

<p>Both the main app and the streaming app run on <a href="http://nodejs.org/">Node.js</a>, hosted on <a href="http://nodejitsu.com/">Nodejitsu</a>, a Node app host. I signed up because of how Node-dedicated they are - <a href="http://nodejitsu.com/company/team.html">their team</a> is made up almost entirely of extremely active Node.js community members. There are competitors to Nodejitsu out there, but they don&#39;t all support native WebSockets. Notably, Heroku <a href="https://devcenter.heroku.com/articles/using-socket-io-with-node-js-on-heroku">does not</a>.</p>

<p>I can definitely recommend Nodejitsu for its ease of deployment and app management, and especially its quality of real-time support. I&#39;ve visited their IRC channel at every hour of the day and have always gotten an answer to a question or problem right away. All the people who&#39;ve helped me there are professional, smart, and nice. They&#39;ve taken isitchristmas.com indefensibly seriously and gone out of their way to make sure things go smoothly for it - I really appreciate that.</p>

<p>The actual servers you get with Nodejitsu are less powerful than I would like for a project like this. Their site <a href="http://nodejitsu.com/paas/pricing.html">advertises business plans</a>, with dedicated servers and better controls over performance. Unfortunately, their December launch for these plans didn&#39;t happen on time, and so I&#39;m using their shared VMs, which they recommend for &quot;non-critical applications or experiments&quot;. I can&#39;t call isitchristmas.com critical, but I&#39;d have liked the option to pretend it is.</p>

<p>The silver lining of being stuck on shared VMs is that the servers start choking before clients&#39; browsers do. Servers only syndicate user activity to other users on that server, so this means I can handle &quot;room&quot; management and load balancing purely by adding more servers. Each server handles something like 50-60 users (including idle ones) before showing the strain, and this turns out to be an appropriate room limit. No load balancing application logic required!</p>

<p>Both Nodejitsu and I were surprised that the strain showed at 50-60 users. While my code could have some performance flaws, I think it&#39;s just that real-time mouse streaming is an unusually intense amount of work. I&#39;m sure for most uses, a Nodejitsu shared VM could handle a lot more users than that.</p>

<p>Nodejitsu makes it really easy to add as many servers as you want behind a domain, and their load balancers Just Work, even for WebSockets. I pay $3/server/month, or about 10 cents a day for each server. I could run 50 servers from December 24-26 and pay $15 for the trouble. That&#39;s a good deal.</p>

<p>A downside of Nodejitsu&#39;s approach to scaling is that there&#39;s no way to add a new server behind the balancer without disconnecting and reshuffling all currently connected users. Since isitchristmas&#39; whole point is longform user interaction, this is really disruptive and unpleasant. In an ideal world, adds would be seamless, removes would only disturb the users on the removed server, and Nodejitsu would provide a mechanism to automatically adjust server levels. Nodejitsu&#39;s upcoming business plan will provide an auto-scaling option, but it won&#39;t be much good for a project like this unless server scaling is non-disruptive.</p>

<p>Overall, Nodejitsu is a fine company with a great team, and you get a good deal with them. I definitely recommend them as a host. It&#39;s really amazing the kind of power you can lease on the Internet now for just a few bucks, and Nodejitsu gives you that power.</p>

<p>Of course, this is still partly just theory: I&#39;m writing this as the traffic is just ramping up towards midnight, so it&#39;s possible it could all fall to hell! I&#39;m excited to find out.</p>

<p><strong>Update:</strong> As it turned out, Nodejitsu held up well - but I forgot to scale out my Mongo database. I never bumped it above one instance, which was a bottleneck that yielded me some stressful midnight crashes. I panicked and just moved the HTML/JS delivery part back to my old host, and used Nodejitsu only for streaming, which solved it.</p>

<h2 id="redis">Broadcasting, Analytics, and Monitoring in Redis</h2>

<p>I use <a href="http://redis.io/">Redis</a> to keep track of connected users, and to store analytics on every visitor - their country, browser, OS, and whether they connected with WebSockets or Comet. Every visit increments a bunch of different counters, based on different combinations of values. It&#39;s anonymous and extremely helpful.</p>

<p>By having each server report connected users to the same Redis server, and snapshot its own system vitals to Redis every 5s, I can have any one of them produce a dashboard of all users and all servers.  This is crucial for me in knowing when to add and remove servers to handle load.</p>

<p>Redis&#39; pub/sub messaging system is a dream. By having each server subscribe to a few different channels, I was able to build tiny systems to send down live config changes (like adjusting mouse framerate) and arbitrary commands (like forcing reconnects) to clients from the Redis CLI, and to run a little chat room across every server entirely via the developer console. Redis&#39; architecture made the code to do all this very small.</p>

<p>I&#39;m using a micro instance on <a href="https://openredis.com/">OpenRedis</a>. They respond quickly to email, their site reads and works well, and they have reasonable prices (50MB for $8/month goes a long way). They also just opened up some servers inside <a href="http://joyent.com/">Joyent&#39;s</a> data center, which is where my <a href="http://nodejitsu.com/">Nodejitsu</a> servers are hosted: bonus.</p>

<h2 id="broadcasting">A Better Broadcast?</h2>

<p>Something still feels inefficient. While I do need an application layer to register users, create a dashboard, and keep analytics, all I want to do with mouse events is multicast them as quickly as possible to everyone else. The best way for me to do this right now is in Node, with <a href="https://github.com/isitchristmas/sockets/blob/master/app.js#L53">a for loop</a>. <a href="http://en.wikipedia.org/wiki/V8_(JavaScript_engine)">V8</a> is shockingly fast and all, but Redis is faster and its pub/sub system is optimized for multicasting.</p>

<p>I could have Node publish mouse events into a Redis channel, instead of doing a for loop, but the faster Redis multicast processing would probably be outweighed by the extra Redis round trip. Plus, the same Node process would ultimately need to deliver all the messages to users, so it&#39;s hard to see the gain.</p>

<p>Ideally, all users&#39; browsers would connect directly to a messaging server whose sole purpose is to blindly multicast. If Redis supported WebSockets, that would fit the bill, though exposing a whole Redis server to the outside world could be a big problem.</p>

<p>Is there anything out there that does this? <a href="http://www.rabbitmq.com/blog/2012/05/14/introducing-rabbitmq-web-stomp/">RabbitMQ-Web-STOMP</a> seems closer, <s>but still uses a SockJS/Node server as an intermediary</s>. [ed: Actually, it&#39;s a RabbitMQ plugin that exposes a SockJS endpoint directly.] <a href="https://github.com/progrium/nullmq">NullMQ</a> also <a href="http://avalanche123.com/blog/2012/02/25/interacting-with-zeromq-from-the-browser/">looks promising</a>, though perhaps no longer maintained. Figuring out a tighter multicast loop is the main thing I&#39;ll work on if I do this again. Also intriguing is <a href="http://webd.is/">Webdis</a>, a tiny C-based HTTP server whose sole job is to add an HTTP layer on top of Redis. Its main downside is that its WebSocket support is relatively new, and appears to have <a href="https://github.com/nicolasff/webdis/issues/search?q=websockets">issues</a>.</p>

<h2 id="code">The Code</h2>

<p>Both Node.js applications are open source under permissive licenses:</p>

<p><a href="https://github.com/isitchristmas/web">github.com/isitchristmas/web</a> - Looks up user&#39;s country code, renders page. Node + MongoDB.<br/><br>
<a href="https://github.com/isitchristmas/sockets">github.com/isitchristmas/sockets</a> - Manages all socket interaction. Node + SockJS + Redis.</p>

<p>Pull requests welcome. Or, if you want to correct a mis-translation, <a href="https://github.com/isitchristmas/web">file a ticket here</a>.</p>

<p>Thanks for reading this, for not DOSing me, and for not calling out how obviously pretentious this whole enterprise is! Hooray for Christmas.</p>

          ]]></description>
          
          
            <category>isitchristmas</category>
          
            <category>technical</category>
          
            <category>essay</category>
          
            
          <link>http://konklone.com/post/the-making-of-isitchristmas-dot-com-2012</link>
          <guid>http://konklone.com/post/the-making-of-isitchristmas-dot-com-2012</guid>
          <pubDate>Mon, 24 Dec 2012 20:12:39 20:12:39</pubDate>
        </item>
      
        <item>
          <title>A Parallel 2012</title>
          <description><![CDATA[
            <p>Obama gave a <a href="https://my.barackobama.com/page/share/thank-you-from-president-obama?source=20121108_OFA_TWS">wonderful speech</a> thanking his young Chicago staff, and telling them how inspired they make him. It comes across as extremely sincere, more for all the pausing and &quot;errs&quot; and thought he puts in than the crying, but, that too.</p>

<p><center><iframe class="youtube" src="http://www.youtube.com/embed/pBK2rfZt32g" frameborder="0" allowfullscreen></iframe></center></p>

<p>There&#39;s a bit of &quot;what could have been&quot; for me, watching it; I probably could have been in the room for it, if I&#39;d made different choices. I <a href="http://konklone.com/post/moving-on">worked for Obama&#39;s web team</a> at Blue State Digital in 2008, on the campaign&#39;s donation system, event planning platform, and many other things. Working at <a href="http://www.bluestatedigital.com/">Blue State</a>&#39;s boiler room in Boston, my connection to the official Obama campaign was a little indirect, but only a little. I moved to DC soon after, and in the years since have met a great number of people who worked on the 2008 campaign in Chicago and around the country. I also know folks who worked for the DNC leading up to 2010, and more recently friends who&#39;ve gone to work for Obama and other Democrats around the country for 2012. </p>

<p>Though no one ever explicitly asked me to go to Chicago this year, some certainly implied I could. If I&#39;d wanted to and asked around, I know I could have gone. It probably would have been a lot of fun, with, as it turned out, a euphoric ending. Certainly in 2008, it was an incredible thrill to celebrate with a team that worked directly towards its conclusion.</p>

<p>I suspect the reason that my friends&#39; invitations stayed implicit was that anyone who knows me well knows that I&#39;m really into my work at the <a href="http://sunlightfoundation.com/">Sunlight Foundation</a>. My Kool-Aid consumption is obvious. Democracy-building stuff like what I get to do at Sunlight -- high impact, legitimately non-partisan, and infrequently for show -- is heavily addicting in its own way. It&#39;s not that I&#39;d shun working for a Democrat so as to keep some sort of party-agnostic credentials; lots of people work together in DC that have easily discernible and opposing affiliations. I&#39;ve just found something else worth pouring myself into for a while.</p>

<p>It was the right call. All the best things I&#39;ve done at the Sunlight Foundation have been in 2012. I&#39;m actually making things change now in a way that I never felt in 2010 or 2011. And I knew it was the right call; I was never even tempted. But watching this video reminds me that it <strong>was</strong> a call I made, even if it didn&#39;t take a lot of thought. There was another path there, and it&#39;s entirely possible that by taking it I could have made a big difference on the campaign, and put myself in a position to make even bigger ones in cycles to come. I could have gotten into that game. A lot of the dreams I had as a kid, and still have, are very compatible with those kinds of choices.</p>

<p>Fortunately, so are the ones I made. I will allow myself some jealousy, though, for the staffers who get to feel a euphoria and sense of contribution this week many times greater than what I felt in 2008 -- and in a cycle where the Obama campaign&#39;s strategy and staff may be seen (by the more attentive historian) as a decisive force equal to that of changing demographics. Congratulations to the team in Chicago and around the US, and to President Obama.</p>

          ]]></description>
          
          
            <category>obama</category>
          
            <category>democrats</category>
          
            <category>elections</category>
          
            <category>2012</category>
          
            <category>blue state digital</category>
          
            <category>sunlight foundation</category>
          
            
          <link>http://konklone.com/post/a-parallel-2012</link>
          <guid>http://konklone.com/post/a-parallel-2012</guid>
          <pubDate>Fri, 09 Nov 2012 05:57:34 05:57:34</pubDate>
        </item>
      
        <item>
          <title>Dropbox Bug Can Permanently Lose Your Files</title>
          <description><![CDATA[
            <p>127 of my files in <a href="https://www.dropbox.com/">Dropbox</a> are now <strong>gone forever</strong>, due to a bug where files were &quot;updated&quot; to be 0 bytes, and Dropbox lost its previous copy of the file.</p>

<p>2 other files (precious family photos) were also affected, but it happened recently enough to be recovered manually by Dropbox engineers. 23 other files were also turned to 0 byte dust, but Dropbox kept its version history of these and I could revert them to their original version. </p>

<p>Check whether you&#39;ve been affected (on Mac or Linux) by running this command in a Terminal, it&#39;ll spit out a list of 0-byte files to a text file on your desktop.</p>

<p><code><br>
find /path/to/your/Dropbox -size 0 -type f &gt; ~/Desktop/zero-byte-files.txt<br>
</code></p>

<p><strong>Important</strong>: Make sure you sanity check the list. Some systems have hidden 0-byte files, such as Macs&#39; <a href="http://superuser.com/questions/298785/icon-file-on-os-x-desktop">&quot;Icon\r&quot;</a>, that are expected and normal.</p>

<p>If you find any that look unexpected, <a href="https://www.dropbox.com/support">let Dropbox know</a>, and reference this blog post to them so they can connect it with the issue I reported.</p>

<p>I&#39;ve included my correspondence with Dropbox on the issue below. They&#39;ve been very nice about it, and are looking into it, but this is a very serious bug. Because they don&#39;t know what the bug is, potentially anyone could be affected. I&#39;ll update this post if they find a fix.</p>

<p><strong>Update:</strong> Some folks on <a href="http://news.ycombinator.com/item?id=4703943">Hacker News</a>, and Matt Holden of Dropbox <a href="#comment-508b0becc68a6d1b2300000a">in the comments</a>, have raised the possibility of filesystem corruption, particularly because of a <a href="http://www.phoronix.com/scan.php?page=news_item&px=MTIxNDQ">recently reported ext4 bug</a>. I do use ext4, so this can plausibly explain why my files were 0-byte&#39;d in the first place, and why <a href="https://twitter.com/dangillmor/status/261921738441515009">others</a> have <a href="http://news.ycombinator.com/item?id=4704236">reported</a> finding 0-byte&#39;d files.  </p>

<p>I also do not use Packrat, a premium Dropbox feature that stores version history for longer than 30 days, so this could plausibly explain why my 127 files that had been 0-byte&#39;d months ago no longer have a version history of before then. I wasn&#39;t aware of the 30-day window.</p>

<p>However, these do not plausibly explain why the 2 manually recovered files that had recently been 0-byte&#39;d, well within the 30-day window, showed no pre-0-byte version history, and required the assistance of Dropbox engineers.</p>

<p>It could be that the bug here has nothing to do with their desktop client - it could be a version history bug in the web frontend that affects some recently edited files. If that&#39;s the case, then that still needs to be fixed, so that people in my position can recover files their disk corrupted before they pass out of the 30-day window. It&#39;s only by finding and fixing that website bug that Dropbox can say with confidence that there&#39;s no desktop client bug.</p>

<p><strong>Update 2:</strong> A report by someone who is on OS X, uses Packrat, but has lost <a href="https://twitter.com/frr149/status/261957708746469378">70 files</a> they <a href="https://twitter.com/frr149/status/262091947903168513">can&#39;t recover</a>.</p>

<p><strong>Original correspondence</strong></p>

<blockquote>
<pre>
<strong>Eric Mill, Oct 20 05:50 pm (PDT):</strong>

Hi,

I recently wiped my hard drive and reinstalled my OS (clean upgrade from Ubuntu 12.04 to 12.10). I had been running Dropbox on the old OS. When I installed Dropbox on the new OS, almost everything went very smoothly. However, for some unknown reason, 25 files were "edited" to become 0-byte files.

This took place over 3 "events", at 3:49 PM, 5:31 PM, and 5:45 PM that afternoon:
https://www.dropbox.com/events/[redacted]
https://www.dropbox.com/events/[redacted]
https://www.dropbox.com/events/[redacted]

As far as I know, nothing I did caused these to happen. I didn't interact with these files, and in fact, I took care not to make any destructive actions in my Dropbox folder during the long syncing process. I believe these are bugs in Dropbox's syncing logic, but I have no idea how to reproduce it, or what common thread ties these files and events together.

I am able to restore each file from Dropbox's version history, though the user experience for this process is pretty annoying - I have to navigate through the file system for each one. There's no way to jump from an "event" screen that lists the affected files to a file's version history screen.

In general, I'm pretty happy with Dropbox, but this was a pretty alarming bug. I hope there's something you can do to look into why it happened.

Thanks,
Eric


<strong>Ridwan - Dropbox Support, Oct 22 05:11 pm (PDT):</strong>

Hi Eric,

Terribly sorry about the delayed response on this support request. In reviewing your account you appear to have restored most of these files via the web interface (I restored one extra).

Is there anything further I can assist you with?

I'm not aware of any bugs in the client syncing process at this moment, but I'll pass your case along to our engineering team. Hope this helps! Please let me know if I can be of any other assistance.

Best,
Ridwan


<strong>Eric Mill, Oct 23 07:37 am (PDT):</strong>

Yeah, there is one other piece of assistance I need - in restoring the files one by one, I noticed there were two that seem to have lost their history entirely:

https://www.dropbox.com/revisions/[redacted]
https://www.dropbox.com/revisions/[redacted]

These two files were the first two marked as "Edited" in the third Dropbox event along with a bunch of other files, the rest of whom have an earlier version I could restore. These two do not, yet they definitely had an earlier version that was not 0 bytes. Dropbox describes the event as "Edited", which clearly implies there was an earlier version.

Again, I have no idea why these 25 files, among my entire Dropbox, were affected, or why these 2 were affected differently from the other 23. These 2 files are now lost to me.

I would ask that you take this as a serious bug report. Even if your engineering team were to write off my original report of 25 files being 0-byte'd as my own human error (which it wasn't), the state of these two files indicate an undeniable bug in Dropbox's software (which in turn strongly suggests that all 25 were affected by a Dropbox bug).

If you can restore my files somehow, that would be greatly appreciated. Thankfully, these are just a couple of random photos - but I have other, more irreplaceable files contained in Dropbox, and if I were to lose them I would be very upset.

-- Eric


<strong>David M. - Dropbox Support, Oct 23 05:30 pm (PDT):</strong>

Hi Eric,

I've reported this to our engineers and they are taking a further look into the issue. To help troubleshoot the issue can you run the following in Terminal:

find /home/eric/.dropbox_actual/Dropbox -size 0 > ~/Desktop/zerodump

This should generate a text file on your Desktop. Can you attach that file to your reply so we can see if there are any additional files that are 0 bytes in your Dropbox folder. Please also note there may be some false positives as some applications will create 0 byte log/temp files.

Additionally, can you let us know of any system events that may have occurred during the time frames for those changesets?

Thanks!

Best,
David


<strong>Eric Mill, Oct 24 07:07 am (PDT):</strong>

Hi David,

Thank you for the prompt response. That's a good suggestion, I ran the command and have attached the file. I should have thought of that myself.

There are more files than I expected listed as 0 bytes. The one that's marked as deleted and is in the dropbox cache folder is one that I deleted myself on the same day as the events in question, before I realized what was going on. Many of the rest are apparently from earlier in the year - for example, one is this, from May 20th:
https://www.dropbox.com/revisions/[redacted]

May 20th is somewhat near when I last upgraded Ubuntu, but I'm pretty sure I did that much earlier in May, soon after Ubuntu's release. This one also lacks a previous version to restore, which is alarming.

I don't know what specific system events would have transpired during the events in question, either in May or October. In October, the 3 events I originally referenced occurred throughout the late afternoon, during the hours after installation of Dropbox in which it was syncing ~11GB of data down to my laptop. During this time, I was re/installing other drivers and software, occasionally rebooting, and configuring things like my /etc/fstab and my /etc/X11/xorg.conf files.

The only thing I can think of that might have been related is that, somewhere in the middle of that, I added the user_xattr flag to the partition on which my Dropbox lives, and rebooted (which caused a remount). My understanding is that the user_xattr flag is a pretty harmless option, that allows applications that care about such things to add arbitrary filesystem attributes.

Unfortunately, I don't have system logs from that time - because I have an SSD, I mount my logs directory into RAM (to minimize disk writes) and it gets wiped on every reboot. Still, if you have any other questions I'm happy to try to answer them.

-- Eric


<strong>David M. - Dropbox Support, Oct 25 02:48 pm (PDT):</strong>

Hi Eric,

I was able to have our web team recover the two files:

https://www.dropbox.com/revisions/[redacted]
https://www.dropbox.com/revisions/[redacted]

Unfortunately, it looks like the files that were previously 0 byted can no longer be recovered as their previous versions were removed from our servers as the events occurred in June. I sincerely apologize for this file loss.

Thank you for the additional information you were able to provide about the events, I'll be continuing to follow up with our engineering team to try and find the root cause of this issue. I'll let you know as soon as we have any news.

If you have any additional questions or concerns please let me know.

Best,
David
</pre>
</blockquote>

          ]]></description>
          
          
            <category>dropbox</category>
          
            <category>bugs</category>
          
            
          <link>http://konklone.com/post/dropbox-bug-can-permanently-lose-your-files</link>
          <guid>http://konklone.com/post/dropbox-bug-can-permanently-lose-your-files</guid>
          <pubDate>Fri, 26 Oct 2012 18:23:55 18:23:55</pubDate>
        </item>
      
        <item>
          <title>The Right to Have Rights</title>
          <description><![CDATA[
            <p>If you have a PayPal account, you may have gotten an email from them - they&#39;ve <a href="http://consumerist.com/2012/10/09/paypal-slips-forced-arbitration-clause-into-user-agreement-gives-you-until-dec-1-to-opt-out/">updated their terms of service</a> to remove your right to participate in a class action lawsuit against them, unless you send a formal and precisely formatted letter to their legal department &quot;opting out&quot; of their removal of your rights.</p>

<p>Public Citizen has <a href="http://consumerist.com/2012/10/15/here-is-a-downloadable-template-for-opting-out-of-paypal-arbitration-clause/">designed a template</a> (specifically, a <a href="http://www.citizen.org/documents/paypal-arbitration-opt-out-letter.docx">DOCX file</a>) you can add your name/phone/email address to, print, <strong>sign</strong>, and mail to them. I&#39;m doing it. Don&#39;t forget about filling one out for <a href="http://www.citizen.org/documents/ebay-arbitration-opt-out-letter.docx">eBay too</a>, due on Nov 9.</p>

<p>There&#39;s also a classy &quot;<a href="http://www.citizen.org/rigged-justice-rogues-gallery">rogues gallery</a>&quot;, also done by Public Citizen, that lists other companies that have added these clauses to their terms. Everyone from Papa John&#39;s pizza to your local nursing home. Truly grotesque.</p>

          ]]></description>
          
          
            <category>legal</category>
          
            <category>public citizen</category>
          
            <category>ebay</category>
          
            <category>paypal</category>
          
            <category>consumerist</category>
          
            <category>rights</category>
          
            
          <link>http://konklone.com/post/the-right-to-have-rights</link>
          <guid>http://konklone.com/post/the-right-to-have-rights</guid>
          <pubDate>Tue, 16 Oct 2012 02:13:45 02:13:45</pubDate>
        </item>
      
        <item>
          <title>Mega Rapid Super Slideshow</title>
          <description><![CDATA[
            <p>Every photo in one&#39;s possession, cycled at a dizzying rate. </p>

<p>Execution may be trickier than it sounds - no personal computer can hold entire modern photo collections comfortably in memory. One approach: maintain an &quot;active window&quot; of photos that almost fills up memory, which is what is cycled through every fraction of a second, and slide the active window over the full photo collection. There&#39;ll be some repeating of individual photos, but it will be proceeding at a pace that makes this hard to discern. There are probably modifications that can add chaos and minimize obvious repetition.</p>

<p>Ideal as wall-size projected background material at events.</p>

<p><span class="status"><br>
STATUS: NO PLANS<br>
</span></p>

          ]]></description>
          
          
            
          <link>http://konklone.com/post/mega-rapid-super-slideshow</link>
          <guid>http://konklone.com/post/mega-rapid-super-slideshow</guid>
          <pubDate>Mon, 01 Oct 2012 04:55:09 04:55:09</pubDate>
        </item>
      
        <item>
          <title>Alley of Doom</title>
          <description><![CDATA[
            <div class="container"><a href="/assets/images/alley-unicycle.jpg"><img src="/assets/images/alley-unicycle-small.jpg" style="float: right; padding: 20px"></a></div>

<p>I spent Saturday afternoon sweeping, pushing, filming, running, climbing, dancing, and unicycling through the <a href="http://alleyofdoom.org/">Alley of Doom</a>, created by <a href="http://twitter.com/elle_mccann">Laurenellen McCann</a>. It was a wonderful spectacle, with high turnout and a diverse crowd. It ran an hour over time because it was just too impossible to fit in all the fun people were having.</p>

<p>The Alley of Doom allows anyone to be chased by a boulder down an alley, literally and exactly like Indiana Jones did in Raiders of the Lost Ark, figuratively speaking. The best explanation of the Alley, besides the <a href="http://www.flickr.com/groups/alleyofdoomdc/">pictures and video</a> being amassed on Flickr, may be from this <a href="http://blog.awesomefoundation.org/2011/08/27/indiana-jones-and-the-alley-of-doom/">interview with the Awesome Foundation</a> after we gave her the micro-grant to buy the zorb and make this happen.</p>

<p>Though everyone was enthusiastic about the idea, I don&#39;t think anyone expected it to generate such prolonged fun (it ran for 4 hours, well over schedule), or the press that it got (NPR was there almost the whole time). It&#39;s a tribute to a solid idea, an open minded city, and the great word-spreading power of the modern Internet. Thanks to Laurenellen for seeing the project through, and giving it so much love and energy.</p>

          ]]></description>
          
          
            <category>alley of doom</category>
          
            <category>zorb</category>
          
            <category>awesome foundation</category>
          
            <category>dc</category>
          
            
          <link>http://konklone.com/post/alley-of-doom</link>
          <guid>http://konklone.com/post/alley-of-doom</guid>
          <pubDate>Mon, 01 Oct 2012 03:50:26 03:50:26</pubDate>
        </item>
      
        <item>
          <title>Three</title>
          <description><![CDATA[
            <p>Web-based 3D is getting very powerful, and very easy. Here is a pyramid, all JavaScript, no Flash:</p>

<div class="webgl container"></div>

<p>I wrote that by hand in <a href="http://mrdoob.github.com/three.js/">WebGL</a> by using <a href="https://github.com/mrdoob/three.js/">Three.js</a>, which makes it dirt easy. Three.js&#39; creator, Ricardo Cabello, has a real simple example literally <a href="http://mrdoob.com/">running atop its code</a>. (WebGL won&#39;t run in IE. If you&#39;re on Safari, you can <a href="http://www.ikriz.nl/2011/08/23/enable-webgl-in-safari">enable it</a>.)</p>

<p>WebGL basically lets developers like me use your graphics card to do Real Big Boy Stuff without leaving the universal commons of HTML. If you&#39;ve ever wandered into Google&#39;s <a href="http://www.chromeexperiments.com/webgl/">Chrome Experiments</a> (some of them are quite <a href="http://workshop.chromeexperiments.com/cloudglobe/">breathtaking)</a>, WebGL is what they&#39;ve been using.</p>

<p>Getting started with Three.js can be a bit intimidating. As seems to be trendy these days, the creator is not super big on docs. There are some <a href="http://aerotwist.com/tutorials/getting-started-with-three-js/">tutorials</a> and <a href="http://learningthreejs.com/">blogs</a> out there, and a very healthy <a href="http://stackoverflow.com/questions/tagged/three.js">StackOverflow tag</a>, but you&#39;ll learn the most by looking at <a href="http://mrdoob.github.com/three.js/examples/webgl_geometry_colors.html">examples</a> and viewing the source. If you&#39;re willing to pay a bit of money though, a book was also published just last month called &quot;<a href="http://shop.oreilly.com/product/0636920024729.do">WebGL: Up and Running</a>&quot; - I bought it, and it&#39;s really great so far.</p>

<p>Last year, I messed around a little bit with 2D animation using <a href="http://processingjs.org">Processing.js</a> - first with a <a href="http://konklone.tumblr.com/post/6607235855/triangles-iv">sea of triangles</a>, and then <a href="http://konklone.tumblr.com/post/10428557572/quilt-i">stepped it up to hexagons</a> in an attempt to model <a href="http://konklone.com/post/hexagons-i">a childhood quilt</a> (it turns out drawing stitches requires trigonometry!). It was fun, and Processing.js is a great tool, but I never worked on much beyond proofs of concept, and trailed off.</p>

<p>This time feels more grounded and exciting, if challenging. Three dimensions just feel inherently more worthwhile than two. And hey, there&#39;s always <a href="http://www.youtube.com/watch?v=UnURElCzGc0">four</a>. After reading <a href="http://en.wikipedia.org/wiki/Flatland">Flatland</a>, one of my first Internet obsessions was a Java applet (that <a href="http://dogfeathers.com/java/hypercube1.html">still exists</a>!) of a <a href="http://www.youtube.com/watch?v=5xN4DxdiFrs">rotating hypercube</a>, made for red-blue 3D glasses. I bought 30 pairs and handed them out to my math class and made them all watch it. 13 years later, maybe I&#39;ll make a new incarnation, but with all the reach and ease of the Web.</p>

          ]]></description>
          
          
            <category>webgl</category>
          
            <category>three.js</category>
          
            <category>hypercube</category>
          
            <category>flatland</category>
          
            
          <link>http://konklone.com/post/three</link>
          <guid>http://konklone.com/post/three</guid>
          <pubDate>Wed, 26 Sep 2012 05:46:24 05:46:24</pubDate>
        </item>
      
        <item>
          <title>Sunlight Vanguard</title>
          <description><![CDATA[
            <div class="container"><a href="https://scout.sunlightfoundation.com"><img style="float: right; padding: 20px" src="/assets/images/logo_scout.png"></a></div>

<p>Recently, I created and launched a new website for the <a href="http://sunlightfoundation.com">Sunlight Foundation</a> called <a href="https://scout.sunlightfoundation.com">Scout</a>. It&#39;s the product I&#39;m the most proud of building in my 3 years there. It is essentially a search and notification engine for government action. Simple idea, simple presentation, and it&#39;s easy to compare to <a href="http://alerts.google.com">Google Alerts</a> - but there&#39;s a lot underneath the hood.</p>

<p>The most fundamental thing it does is search through the full text of legislation in Congress, and all 50 states (using our awe-some <a href="http://openstates.org">Open States</a> project), proposed federal regulations, and speeches made on the floor of Congress - then you can get new matches through RSS or email. You can also follow specific bills, and if you do that, Scout can can get fancy, like alerting you when a vote&#39;s coming up, or when anything official at all happens to the bill.</p>

<p>Doesn&#39;t it seem surprising that this doesn&#39;t exist already? Of course, it does exist - but these kind of features are typically what gets wrapped up into <a href="http://corporate.cqrollcall.com/content/48/en/Legislative_Tracking">expensive</a> <a href="http://about.bgov.com/">pay</a> <a href="http://billtrack50.com/">services</a>. A couple of Scout&#39;s data sources, <a href="http://govtrack.us">GovTrack</a> and the <a href="https://www.federalregister.gov">Federal Register</a>, also provide free alerts for legislation and regulations, respectively. Scout&#39;s goal is to bridge these all together, and it&#39;s my belief that there&#39;s a large class of professionals, journalists, policy staff, activists, and regular citizens that will use and seriously benefit from this kind of service - and that it can be both professional quality and free. Civic information disparity upsets me.</p>

<p>Though Scout was my idea, our scary effective <a href="http://sunlightfoundation.com/policy/">Policy team&#39;s</a> enthusiasm and vision for what it needed to do to support their work was crucial in getting the project going. Sunlight eventually attracted funding specifically to support Scout&#39;s development, and by the time we launched, we had actually managed to <a href="http://sunlightfoundation.com/blog/2012/05/25/scout-is-already-delivering-results/">change major legislation</a>, successfully providing the tip-off to remove an attempt to weaken the <a href="http://en.wikipedia.org/wiki/Freedom_of_Information_Act_(United_States)">FOIA</a>, a foundational law that just celebrated its <a href="http://pogoblog.typepad.com/pogo/2012/07/5-things-the-public-wouldnt-know-without-foia.html">46th birthday</a>. </p>

<p>That was satisfying, and dramatic, and perhaps something of that magnitude will be rare. But it&#39;s a promising start, and I&#39;ve been extremely happy with the uptake by users since formally launching at the <a href="http://personaldemocracy.com/conferences/nyc/2012/">Personal Democracy Forum</a>. We&#39;ve got a lot of people signed up and actually using it, and that&#39;s really cool.</p>

<p>What I find more exciting is how much we can do to make it better. The bulk of the development time was nailing down and polishing the user experience, and now that that&#39;s staying put for a while, we can concentrate on simply adding all sorts of new information, and really making it shine. There&#39;s a lot do beyond text searching; by the end of the year, I hope to make the connections between laws and regulations so smooth as to enable the kind of research that professionals are used to paying a law firm a lot of money for.  It&#39;ll be a lot of fun.</p>

          ]]></description>
          
          
            <category>scout</category>
          
            <category>sunlight foundation</category>
          
            <category>ruby</category>
          
            
          <link>http://konklone.com/post/sunlight-vanguard</link>
          <guid>http://konklone.com/post/sunlight-vanguard</guid>
          <pubDate>Fri, 06 Jul 2012 02:21:09 02:21:09</pubDate>
        </item>
      
        <item>
          <title>XOXO, With Trepidation</title>
          <description><![CDATA[
            <p>I bought a ticket to <a href="http://www.kickstarter.com/projects/waxpancake/xoxo-festival">XOXO</a>, an &quot;arts and technology festival&quot; to celebrate &quot;disruptive creativity&quot;. It&#39;s being organized by <a href="http://waxy.org">Andy Baio</a>, someone I admire for both his <a href="http://www.wired.com/epicenter/2012/03/opinion-baio-yahoo-patent-lie/">writing</a> and his absurdly ahead-of-the-curve <a href="http://waxy.org/links/">link feed</a>. I can usually count on him to care about a lot of what I care about, but to write about it with more force and credibility.</p>

<div class="container"><a href="http://kickstarter.com/projects/waxpancake/xoxo-festival"><img src="/assets/images/xoxo.png" style="float: right" /></a></div>

<p>I&#39;m excited about XOXO - it&#39;ll bring together a lot of great people. But there are some warning signs that have me feeling pretty cautious.</p>

<p>The biggest is that the price is <strong>$400</strong>. I find this oxymoronic for a conference dedicated to independent art and culture. Sure, we&#39;d all like the conference to be comfortable, and to be able to pay artists who are traveling to Portland to speak and offer their work. And since there are no sponsorships mentioned anywhere on the <a href="http://www.kickstarter.com/projects/waxpancake/xoxo-festival">conference description</a>, no one will have to put up with a keynote by some product manager at a big company who wants to assert their relevance to the creators of tomorrow or whatever.</p>

<p>But I think I&#39;d rather XOXO &quot;sell out&quot; a bit and get sponsorship money, than self-select the conference to be the part of the Internet that is the intersection of &quot;taste for indie games&quot; and &quot;doesn&#39;t have to keep a monthly budget if they don&#39;t want to&quot;. I also didn&#39;t see any scholarships offered for struggling artists or toolmakers who&#39;d like to go but have the exceptionally poor taste to live on the east coast, or outside of the US.</p>

<p>Because of that specific intersection of people who&#39;ll be going, I&#39;m concerned that there will be a feeling of privilege and exclusivity there: that sense of &quot;I knew about it before it was cool&quot; but multiplied by about 1,000. We all have a little hipster inside of us, and I&#39;d hate to see the culture of the conference bring it out for display. If there is a talk about <a href="http://new-aesthetic.tumblr.com/">&quot;the New Aesthetic&quot;</a>, I may emit an uncontrollable scream.</p>

<p>Finally, I&#39;m turned off by XOXO&#39;s emphasis on top-down curation. I do want XOXO to be a reflection in part of what Andy Baio loves and respects, but it would be a shame if that were all it was. Will there be any parts of the conference driven by participants? The marketplace will be &quot;tightly curated&quot; - will an artist not be able to sell there unless they&#39;re cool enough?</p>

<p>These things worry me especially because XOXO is not supposed to just be about indie games and webcomics. It&#39;s about a future where artists and technologists can find success without middle men. That&#39;s what companies like Etsy and Kickstarter (who are speaking there), and even <a href="http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000234621">Amazon</a>, are doing. It is a future that is happening, but is supposed to be, quite intentionally, a <strong>non-curated</strong> one where people&#39;s expectations are <a href="http://en.wikipedia.org/wiki/Fifty_Shades_of_Grey#Criticism">regularly upended</a>, and people are allowed to participate without a <a href="https://developer.apple.com/programs/ios/">corporation&#39;s subjective advance approval</a>, or paying <a href="http://arstechnica.com/information-technology/2012/05/no-cost-desktop-software-development-is-dead-on-windows-8/">hefty upfront fees</a> to publishers of any kind.</p>

<p>So while I like what XOXO claims to stand for, and I&#39;ll be going there myself to see it, I am concerned that it&#39;s not going to reflect its own values. Baio, and his co-planner Andy McMillan, are passionate people with a good vision - I just hope they are aware of the dangers as they bring it into reality.</p>

          ]]></description>
          
          
            <category>xoxo</category>
          
            <category>andy baio</category>
          
            <category>kickstarter</category>
          
            <category>conference</category>
          
            <category>portland</category>
          
            
          <link>http://konklone.com/post/xoxo-with-trepidation</link>
          <guid>http://konklone.com/post/xoxo-with-trepidation</guid>
          <pubDate>Sun, 27 May 2012 20:09:37 20:09:37</pubDate>
        </item>
      
        <item>
          <title>Time Hedge</title>
          <description><![CDATA[
            <p>I&#39;m not sure what&#39;s wrong with me. It&#39;s been 5 weeks. But here are some things.</p>

<p>At the end of January, shortly after <a href="/post/google-builds-an-email-list-rather-than-fight-pipa">my last post</a>, I went to Kingston, the capital of Jamaica, for a few days, to speak at <a href="http://developingcaribbean.org/">Developing the Carribean</a>. I was asked to speak about &quot;being a civic hacker&quot;, so I did a quick tour of a bunch of projects I find inspiring, both <a href="http://clearspending.com">within Sunlight</a> and <a href="https://www.federalregister.gov/">without</a>, both <a href="http://hacktyler.com/apps">inside the US</a> and <a href="http://blog.opendataottawa.ca/">elsewhere in the world</a>. I think it went pretty well, and the conference as a whole was great - it was joined with a hackathon by some Jamaican developers, who made some impressive work, including an SMS-powered impromptu mailing list for rural farmers. I also had some hostile and surreal street encounters that really livened up my trip.</p>

<p>Shortly after, I was on a panel at the House of Representatives, at <a href="http://cha.house.gov/about/contact-us/legislative-data-conference">a conference they threw</a> on legislative data. That may sound arcane, but whether you know much about &quot;legislative data&quot; or not, take a second and think about it: half of the legislature of the world&#39;s only superpower is hosting a self-organized conference about themselves publishing <strong>data</strong>, and the importance thereof. </p>

<p>And honestly, not to sound naive or something, but they&#39;re doing it because they care: they&#39;re not getting frantic calls from constituents about publishing vote results in XML, or making consistent use of identifiers when referencing members of Congress. It&#39;s taken time, but it is in fact possible to work with one&#39;s government on important issues that are bipartisan and unpolarizing, and having the opportunity to be part of that has been incredibly gratifying for me.</p>

<p>My engagement with my work in general, which has been high for a couple years now, has taken on new heights with some burgeoning research into the laws of the United States, and how to navigate them on a technical level. The data situation is not good, and since the strength of our laws is one of the things that makes us stand out in the world and in history, it really feels like it ought to be. There are real practical uses, including ways to connect the legislative system that gets so much hyperattention with the regulatory system that gets chronically ignored (often to the public&#39;s detriment), and so nowadays I&#39;m reading <a href="http://www.thecre.com/pdf/20120101_ALR_Table_of_Contents_2011.pdf">books like this</a> on my way to work. It took some time, but I&#39;m finally starting to accept a certain level of specialization in myself.  I&#39;m working with a couple colleagues on projects around this, and have been since late November, so hopefully we&#39;ll have some real results to show for it soon.</p>

<p>In more personal news, since my last post, I&#39;ve moved (<a href="http://maps.google.com/maps?q=1418+North+Capitol+St+NW,+Washington,+DC+20001&hl=en&sll=37.0625,-95.677068&sspn=47.569986,107.138672&oq=1418&t=v&hnear=1418+North+Capitol+St+NW,+Washington,+District+of+Columbia+20001&z=16">to here</a>). I&#39;m still in DC (and plan on being here for a while), but I left the safe-but-staid Dupont Circle for the opposite-of-both-of-those Eckington/NOMA neighborhood. I&#39;m living in a weird impromptu studio apartment carved out of the expansive second floor above the fledgling <a href="http://fablabdc.org/">Fab Lab DC</a>. The Fab Lab&#39;s existence is a potential thing and by all means unassured, but it has a lot of people and momentum, and we&#39;re working on a few different things that we hope will secure those things, as well as cold hard cash for the continuance thereof. In the meantime, my sudden studio arrangement is giving me a lot of personal inspiration and energy, my cat much more space, and is getting me to know many new people and a big new neighborhood. I&#39;m feeling part of a new adventure.</p>

          ]]></description>
          
          
            <category>fab lab</category>
          
            <category>oira</category>
          
            <category>jamaica</category>
          
            <category>sunlight foundation</category>
          
            <category>house of representatives</category>
          
            <category>congress</category>
          
            <category>data</category>
          
            
          <link>http://konklone.com/post/time-hedge</link>
          <guid>http://konklone.com/post/time-hedge</guid>
          <pubDate>Fri, 24 Feb 2012 05:04:21 05:04:21</pubDate>
        </item>
      
        <item>
          <title>Google Builds an Email List Rather Than Fight PIPA</title>
          <description><![CDATA[
            <p>Visit <a href="https://www.google.com/">Google</a> today and you&#39;ll see they blacked out their logo, and added a link to their <a href="https://www.google.com/landing/takeaction/">anti-SOPA/PIPA</a> campaign. Cool. Not quite as strong a move as <a href="http://en.wikipedia.org/">Wikipedia shutting off their entire English site</a>, but, fine.</p>

<p>Except that everyone else is asking people to call their Congressperson. Instead, Google is asking you to sign an online petition. This is a huge letdown.</p>

<p>Online petitions do not affect national political discourse. Maybe <a href="http://change.org">Change.org</a> is helping local campaigns get traction, I don&#39;t know, but their and everyone else&#39;s national campaigns are for show. They&#39;re building organizations&#39; email lists.</p>

<p>In fact, a study by the <a href="http://www.congressfoundation.org/projects/communicating-with-congress/perceptions-of-citizen-advocacy-on-capitol-hill">Congressional Management Foundation</a> that surveyed Congressional staff found that over 50% of them thought that &quot;most advocacy campaigns of identical form messages are sent without constituents&#39; knowledge or approval&quot;. Not just that they don&#39;t have much impact - the majority of Congressional staff assume form messages from citizens are <strong>meaningless lies</strong>.</p>

<p>Calls, on the other hand, get through to offices in a way that emails, contact forms, and even letters do not. The only thing better you can do as a citizen is visit your Congressperson&#39;s office in person. Calling and visiting are hard. They&#39;re uncomfortable. Fewer people will do them. </p>

<p>And <strong>that is why they are effective</strong>. By doing it, you convince your Congressperson&#39;s office that you mean business, that your vote is in the balance, and that you&#39;re probably the sort who&#39;ll convince a bunch of other people to hang their votes in the balance too. You&#39;re making yourself a representative to your representative.</p>

<p>Email lists can have value - but now is not the moment for making them. This is the moment where, if you&#39;ve already got one, you <strong>use them</strong> to get people to make calls. </p>

<p>Google&#39;s been a powerful advocate to date in opposing <a href="http://en.wikipedia.org/wiki/Stop_Online_Piracy_Act">SOPA</a> and <a href="http://en.wikipedia.org/wiki/PROTECT_IP_Act">PIPA</a>. Today, they should go the distance, and melt some phone lines.</p>

          ]]></description>
          
          
            <category>google</category>
          
            <category>sopa</category>
          
            <category>pipa</category>
          
            <category>list building</category>
          
            <category>online petitions</category>
          
            <category>change.org</category>
          
            <category>wikipedia</category>
          
            <category>internet blackout day</category>
          
            
          <link>http://konklone.com/post/google-builds-an-email-list-rather-than-fight-pipa</link>
          <guid>http://konklone.com/post/google-builds-an-email-list-rather-than-fight-pipa</guid>
          <pubDate>Wed, 18 Jan 2012 07:00:43 07:00:43</pubDate>
        </item>
      
        <item>
          <title>Google, the Cornered Animal</title>
          <description><![CDATA[
            <p>Google&#39;s apparently itching to get sued. Yesterday, they announced that they&#39;re <a href="http://googleblog.blogspot.com/2012/01/search-plus-your-world.html">integrating Google+ into Google search results</a> for everyone who&#39;s logged in while they search. It&#39;s not open to any other social networks: just Google+ results.</p>

<p>[Update: <a href="http://searchengineland.com/examples-google-search-plus-drive-facebook-twitter-crazy-107554">Not just people who are logged in</a>, either.]</p>

<p>As for the merits of the feature, this is just <a href="http://waxy.org/2011/10/google_kills_its_other_plus/">another way</a> that Google is favoring the 90-whatever% of people who use Google to surf around and talk with people, and making it harder for the people who are out there trying to Get Things Done with it. Whatever.</p>

<p>Danny Sullivan had a surprisingly awesome interview with Eric Schmidt, and though short on details of specific negotiations, Schmidt lays out Google&#39;s attitude extremely clearly. The video is below, and Sullivan <a href="http://marketingland.com/schmidt-google-not-favored-happy-to-talk-twitter-facebook-integration-3151">wrote up an accompanying summary</a> on MarketingLand.</p>

<p><center><iframe width="560" height="315" src="http://www.youtube-nocookie.com/embed/o3FEILaTP3o" frameborder="0" allowfullscreen></iframe></center></p>

<p>It&#39;s a short video, but the gist of it is that Eric Schmidt is quite defensive of Google&#39;s decision. He seems to recognize that the move is not exactly advancing the &quot;open web&quot;, and if you had a beer with him he might even admit that it&#39;s unfair: but he very clearly finds Facebook and Twitter&#39;s own behavior to be more unfair and a justification.</p>

<p>Sullivan is no fool, and presses Schmidt on the fact that Twitter and Facebook have <a href="http://en.wikipedia.org/wiki/Robots_exclusion_standard">robots.txt</a> files that do not disallow scraping of their content. Schmidt says that that&#39;s Sullivan&#39;s interpretation, and that it&#39;s better to have conversations with &quot;companies like that&quot;. Robots.txt isn&#39;t exactly a legal contract, after all, and this implies to me that Facebook and Twitter have made it clear in private channels, or at least strongly hinted, that they would be hostile to such a move. </p>

<p>It&#39;s worth noting that Google&#39;s currently scraping Yelp without Yelp&#39;s permission, to provide their data as part of Google Maps&#39; Places pages. In doing so, Google has <a href="http://www.businessinsider.com/yelp-ceo-on-google-2011-9?op=1">made an enemy of Yelp</a>, and one that is <a href="http://andre.me/post/10761526882">happy to testify in Congress</a> about it.</p>

<p>If they were trying to avoid making enemies, jamming Google+ into search results wasn&#39;t the way to do it. Twitter <a href="http://marketingland.com/twitter-google-integration-in-google-search-is-bad-for-everyone-3091">released a statement</a> saying they&#39;re &quot;concerned&quot; about the deal right after Google&#39;s announcement, prompting <br>
Google <a href="https://plus.google.com/u/0/116899029375914044550/posts/24uqWqvALud">to respond</a>, saying Twitter was the one that decided to terminate their agreement last year.</p>

<p>Ugly all around. Maybe Google is just doing this to scare Twitter and Facebook into making a deal. Either way, Google had better be bracing for an anti-trust lawsuit. It&#39;s just a matter of time.</p>

          ]]></description>
          
          
            <category>google</category>
          
            <category>antitrust</category>
          
            <category>facebook</category>
          
            <category>twitter</category>
          
            <category>legal</category>
          
            
          <link>http://konklone.com/post/google-the-cornered-animal</link>
          <guid>http://konklone.com/post/google-the-cornered-animal</guid>
          <pubDate>Thu, 12 Jan 2012 03:20:14 03:20:14</pubDate>
        </item>
      
  </channel>
</rss>