<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Hacker News 50</title>
    <link>http://news.ycombinator.com</link>
    <description>Hacker News stories with a score above 50</description>
    <item>
      <title>APNewsBreak: New gender options for Facebook users - US News</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7232956'&gt;"APNewsBreak: New gender options for Facebook users - US News"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.usnews.com/news/business/articles/2014/02/13/apnewsbreak-new-gender-options-for-facebook-users'&gt;http://www.usnews.com/news/business/articles/2014/02/13/apnewsbreak-new-gender-options-for-facebook-users&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 &lt;p&gt;By MARTHA MENDOZA, AP National Writer&lt;/p&gt;
&lt;p&gt;MENLO PARK, Calif. (AP) &#8212; You don't have to be just male or female on Facebook anymore. The social media giant is adding a customizable option with about 50 different terms people can use to identify their gender as well as three preferred pronoun choices: him, her or them.&lt;/p&gt;
&lt;p&gt;Facebook said the changes, shared with The Associated Press before the launch on Thursday, initially cover the company's 159 million monthly users in the U.S. and are aimed at giving people more choices in how they describe themselves, such as androgynous, bi-gender, intersex, gender fluid or transsexual.&lt;/p&gt;
&lt;p&gt;[&lt;a href='http://www.usnews.com/news/blogs/data-mine/2014/02/06/how-twitters-user-growth-compares-to-facebooks'&gt;&lt;b&gt;READ:&lt;/b&gt;&#160;How Twitter's User Growth Compares to Facebook's&lt;/a&gt;]&lt;/p&gt;
&lt;p&gt;"There's going to be a lot of people for whom this is going to mean nothing, but for the few it does impact, it means the world," said Facebook software engineer Brielle Harrison, who worked on the project and is herself undergoing gender transformation, from male to female. On Thursday, while watchdogging the software for any problems, she said she was also changing her Facebook identity from Female to TransWoman.&lt;/p&gt;
&lt;p&gt;"All too often transgender people like myself and other gender nonconforming people are given this binary option, do you want to be male or female? What is your gender? And it's kind of disheartening because none of those let us tell others who we really are," she said. "This really changes that, and for the first time I get to go to the site and specify to all the people I know what my gender is."&lt;/p&gt;
 
 
Facebook, which has 1.23 billion active monthly users around the world, also allows them to keep their gender identity private and will continue to do so.&lt;p&gt;The Williams Institute, a think tank based at the University of California, Los Angeles, estimate that there are at least 700,000 individuals in the U.S. who identify as transgender, an umbrella term that includes people who live as a gender different from the one assigned to them at birth.&lt;/p&gt;
&lt;p&gt;The move by Facebook represents a basic and a yet significant form of recognition of the nation's growing transgender rights movement, which has been spurred by veteran activists and young people who identify as transgender at younger and younger ages. The Human Rights Campaign last year found that 10 percent of the 10,000 lesbian, gay, bisexual transgender youths it surveyed used "other" or wrote in their own gender terms.&lt;/p&gt;
&lt;p&gt;"Over the past few years, a person's Facebook profile truly has become their online identity, and now Facebook has taken a milestone step to allow countless people to more honestly and accurately represent themselves," HRC President Chad Griffin said. "Facebook's action is one that I hope others heed in supporting individuals' multifaceted identities."&lt;/p&gt;
&lt;p&gt;[&lt;a href='http://www.usnews.com/news/articles/2014/02/03/facebook-celebrates-its-10th-birthday'&gt;&lt;b&gt;ALSO:&lt;/b&gt;&#160;Facebook Celebrates Its 10th Birthday&lt;/a&gt;]&lt;/p&gt;
&lt;p&gt;The change to the gender selection option is seen as a major step toward acceptance for people who don't self-identify as male or female, but the high-profile development seemed senseless to those who believe in two genders, no more.&lt;/p&gt;
&lt;p&gt;"Of course Facebook is entitled to manage its wildly popular site as it sees fit, but here is the bottom line: It's impossible to deny the biological reality that humanity is divided into two halves - male and female," said Jeff Johnston, an issues analyst for Focus on the Family, an influential national religious organization based in Denver. "Those petitioning for the change insist that there are an infinite number of genders, but just saying it doesn't make it so. That said, we have a great deal of compassion for those who reject their biological sex and believe they are the opposite sex."&lt;/p&gt;
&lt;p&gt;Masen Davis, executive director of the San Francisco-based Transgender Law Center, said it may be hard for some people to understand the importance of having the ability to select from multiple genders online. But he said many transgender people will be thrilled with the change.&lt;/p&gt;
&lt;p&gt;"We applaud Facebook for making it possible for people to be their authentic selves online," he said.&lt;/p&gt;
&lt;p&gt;In the past decade, the transgender movement has become much more organized and outspoken, demanding the kind of civil rights and respect already sought by gay activists. During this time, the transgender umbrella has been growing well beyond transsexuals to encompass a wide variety of gender identities.&lt;/p&gt;
&lt;p&gt;The move by Facebook came after years of lobbying from users, some who started Facebook pages to petition for the change. Google+ offers male, female and "other" as choices, but transgender advocates said Facebook's many specific options puts the platform well ahead of any other online community. About 1 percent of Google+ users identify as other.&lt;/p&gt;
&lt;p&gt;The idea of expanding gender choices percolated at Facebook for about a year and started to come to fruition during an in-house brainstorming four months ago, project manager Lexi Ross said.&lt;/p&gt;
&lt;p&gt;Transgender activist Nori Herras-Castaneda, a spokeswoman for the Billy DeFrank LGBT Community Center in San Jose, said her community has been waiting for this to happen for a long time.&lt;/p&gt;
&lt;p&gt;"We always talk about how gender is a spectrum," she said. "I can see a lot of people being extremely happy about this."&lt;/p&gt;
&lt;p&gt;[&lt;a href='http://www.usnews.com/news/articles/2013/11/06/facebook-adds-online-bullying-prevention-hub'&gt;&lt;b&gt;MORE:&lt;/b&gt;&#160;Facebook Adds Online Bullying Prevention Hub&lt;/a&gt;]&lt;/p&gt;
&lt;p&gt;At this point, Facebook targets advertising according to male or female genders. For those who change to something neutral, ads will be targeted based on the pronoun they select for themselves. Unlike getting engaged or married, changing gender is not registered as a "life event" on the site and won't post on timelines. Therefore, Facebook said advertisers cannot target ads to those who declare themselves transgender or recently changed their gender.&lt;/p&gt;
&lt;p&gt;Users also can select "neither" or "other" and separately indicate whether they want to be referred to as he, she or they.&lt;/p&gt;
&lt;p&gt;Facebook came up with its range of terms after consulting with leading gay and transgender activists, and the company plans to continue working with them. Facebook started the options in the U.S. and plans to take it global after working with activists abroad to come up with terms appropriate in other countries.&lt;/p&gt;
&lt;p&gt;Herras-Castaneda said she did expect some anger.&lt;/p&gt;
&lt;p&gt;"Any time the transgender community makes advances, there is backlash, and this is a very big advance, so yes, we'll face some problems, no doubt," she said.&lt;/p&gt;
&lt;p&gt;At Facebook, staffers said the expanded options were never questioned, from CEO Mark Zuckerberg on down.&lt;/p&gt;
&lt;p&gt;"Really, there was no debate within Facebook about the social implications at all," said Alex Schultz, director of growth. "It was simple: Not allowing people to express something so fundamental is not really cool so we did something. Hopefully a more open and connected world will, by extension, make this a more understanding and tolerant world."&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;Follow Martha Mendoza at &lt;a href="https://twitter.com/mendozamartha"&gt;https://twitter.com/mendozamartha&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;Associated Press Writer Lisa Leff contributed to this story.&lt;/p&gt;
&lt;p&gt;Copyright 2014 The&#160;&lt;a href="http://www.ap.org"&gt;Associated Press&lt;/a&gt;. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.&lt;br&gt;&lt;/p&gt;
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 10:12:04 -0800</pubDate>
      <link>http://www.usnews.com/news/business/articles/2014/02/13/apnewsbreak-new-gender-options-for-facebook-users</link>
      <guid>http://www.usnews.com/news/business/articles/2014/02/13/apnewsbreak-new-gender-options-for-facebook-users</guid>
    </item>
    <item>
      <title>Can&#8217;t We All be Reasonable and Speak English? &#171;  Blog &#8211; Stack Exchange</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7233001'&gt;"Can&#8217;t We All be Reasonable and Speak English? &#171;  Blog &#8211; Stack Exchange"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://blog.stackoverflow.com/2014/02/cant-we-all-be-reasonable-and-speak-english/'&gt;http://blog.stackoverflow.com/2014/02/cant-we-all-be-reasonable-and-speak-english/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt; 
 
 &lt;p&gt;Two weeks ago, we announced the public launch of &lt;a href="http://pt.stackoverflow.com"&gt;Stack Overflow in Portuguese&lt;/a&gt;, our first-ever non-English Stack Overflow community. Which raises one very obvious question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Have we lost our minds?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Wasn&#8217;t the whole point of Stack Overflow to aggregate as much developer knowledge as possible &lt;em&gt;in one place?&lt;/em&gt; To get all the potential solutions &lt;em&gt;together&lt;/em&gt;, and provide one canonical set of answers?&lt;/p&gt;
&lt;div&gt;
&lt;a href="http://blog.stackoverflow.com/wp-content/uploads/800px-Pieter_Bruegel_the_Elder_-_The_Tower_of_Babel_Vienna_-_Google_Art_Project_-_edited.jpg"&gt;&lt;img src="http://blog.stackoverflow.com/wp-content/uploads/800px-Pieter_Bruegel_the_Elder_-_The_Tower_of_Babel_Vienna_-_Google_Art_Project_-_edited-300x219.jpg"&gt;&lt;/a&gt;&lt;p&gt;We are aware that, &#8220;Let&#8217;s all try speaking speaking different languages!&#8221; hasn&#8217;t always worked out for the best.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Yup. When we set out to &#8220;&lt;a href="http://www.codinghorror.com/blog/2008/04/introducing-stackoverflow-com.html"&gt;collectively increase the sum total of good programming knowledge in the world&lt;/a&gt;,&#8221; a big part of the plan was &lt;em&gt;de-fragmenting&lt;/em&gt; information previously spread across myriad books, sites, and your brains. It&#8217;s why we mark things as duplicates &#8211; we want all the precious gems of knowledge stored in the same cave of wonders.&lt;/p&gt;
&lt;p&gt;So know this: we are at least as worried about fragmentation as you are. And we have a plan:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Eventually, &lt;em&gt;all of you&lt;/em&gt; are going to have to learn Portuguese.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Okay, not really. But, given that one of our core goals was knowledge aggregation, it &lt;em&gt;does&lt;/em&gt; seem just a little bit crazypants to start launching sites in new languages, assuming that one very important fact is true:&lt;/p&gt;
 Assumption: All of the serious developers in the world are highly proficient in English. 
&lt;p&gt;Which&#8230; actually sounds plausible. But it&#8217;s wrong.&lt;/p&gt;
 Not every developer in the world speaks English.&#160;Just reading the comments from our announcement, you&#8217;ll see multiple readers sharing that they or their colleagues (and one dad) couldn&#8217;t participate on SO due to language constraints. But data beat anecdotes. We don&#8217;t have recent numbers for Brazil and Portugal, but we do for China, and they illustrate the same point:
So, if the data tell us that we&#8217;re getting roughly 80% less activity from Asia than we should in the absence of language constraints, why does it feel so obvious that all serious programmers speak English? &#160;This may help:
Quick &#8211; name any famous developer&#160;who doesn&#8217;t write well in English.
I couldn&#8217;t. &#160;I can name over a dozen famous English-speaking coders. But even if you frequent all the hacker sites and conferences, how many devs have you met who aren&#8217;t solid in English? Roughly none, right?
There&#8217;s just one problem. Try this:
Without Googling, name any famous developer from Japan. Or China. Or Russia.
Again, I couldn&#8217;t. Well, I came up with&#160;Shigeru Miyamoto. But he&#8217;s apparently a designer. I couldn&#8217;t&#160;name&#160;even one. Not like I can&#160;name&#160;Carmack or Stallman, or Hopper, or even &#8220;DHH.&#8221; (Does DHH have an actual name? I personally imagine him as a very handsome, talented, fast-driving set of initials. But I digress.)
Is it plausible that there aren&#8217;t&#160;any&#160;devs good enough to be famous from those countries? Nope. Here&#8217;s what&#8217;s happening:
It&#8217;s easy to assume that there aren&#8217;t any devs who can&#8217;t speak English because I never see any. But I never see any because I&#8217;m hanging around places where devs go&#160;to talk to each other in English.
The startling truth is this:
On the internet, If you don&#8217;t speak English, you&#8217;re completely invisible to me.
I also assumed that since developers have to learn English-like syntax, they must speak English. Which is a bit like assuming that because I can order Uni, Hamachi, and Aji by their Japanese names, I could probably toss back some sake with Morimoto and discuss knife techniques in Japanese. Even when programming languages use words like &#8220;if&#8221; or &#8220;function,&#8221; they&#8217;re just terms to memorize, and don&#8217;t always even mean the same thing in English that they do in programming.
It&#8217;s almost impossible to feel like part of a community if you&#8217;re not&#160;highly proficient in the language. Even non-native speakers who are fluent enough to read posts in their second or third languages often aren&#8217;t comfortable enough to write in them.I imagine myself at a professional meetup where&#160;everyone&#160;is speaking French (which I studied through college). How many jokes would I tell? How many would I even&#160;understand? Sure, I can function, and understand all the words, but I don&#8217;t feel like I&#160;belong to the group.
Don&#8217;t get me wrong &#8211; some of our best users aren&#8217;t native English speakers, but they&#8217;re in that rare group who have achieved a far higher mastery of a language than their peers. When I hear,
&#8220;Well, I didn&#8217;t need a site like this &#8211; English is my third language, and I&#8217;m in the top 1% on Stack Overflow!&#8221;
I think:
&#8220;Yes, that makes sense. You are insanely good at two difficult, language-based things. Most people will find both of them to be a lot more challenging than you did.&#8221;
The truth is, by requiring fluency in English, we&#8217;re shutting out of a lot of developers who may know enough English to read it but not enough to feel comfortable participating.
Requiring that all aspiring&#160;devs &#8220;just go learn English&#8221; first&#160;isn&#8217;t who we want to be.
No child should be denied their chance to revolutionize tomorrow&#8217;s input technologies.
Even if I believed that every programmer must eventually master English, it still wouldn&#8217;t make any sense to make them do it&#160;first. I believe that everyone &#8211; everyone &#8211; who can really fall in love with programming should get a chance to. So pre-filtering for the ones willing to learn a foreign freaking language before they first sit down with a code editor to see if it lights some spark in them just feels wrong.Think of the children. The children!! Okay, last quiz, just for the native English speakers:
How old were you when you first realized you could type things on a keyboard and control machines? Great. Now, at that age, were you proficient enough in another language to have learned to code&#160;without any English?
When I tell someone I work at Stack Exchange, my absolute favorite response is:
&#8220;I basically learned to code from posts I found on Stack Overflow&#8221;
We want that for every young programmer. Not just the ones lucky enough to be born somewhere that English gets taught in grammar school.
 &lt;p&gt;&lt;strong&gt;Okay, that all makes &lt;em&gt;some&lt;/em&gt; sense. But why Portuguese?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To be clear, we &lt;em&gt;still&lt;/em&gt; don&#8217;t think there needs to be a Stack Overflow in every language. We do want as much centralization as possible, and we know that devs who &lt;em&gt;have&lt;/em&gt; mastered English will mostly keep going to the English site, since it has the most critical mass. Just like we want them to.&#160;So, you won&#8217;t need to learn new languages to find good answers &#8211; we expect almost every question asked on the Portuguese site to&#160;&lt;b&gt;also&lt;/b&gt;&#160;be asked (and answered) on the English site.&lt;/p&gt;
&lt;p&gt;We&#8217;re really only considering launching sites in languages that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Have large, strong communities of high-talent developers, where&lt;/li&gt;
&lt;li&gt;A meaningful percent of them aren&#8217;t comfortable enough to participate in an English-only community&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That probably limits the list of potential candidates to Mandarin, Japanese, Portuguese, Russian, Turkish, and Spanish.&#160;&lt;span&gt;From there, Portuguese was a no-brainer. The developer community in Brazil is awesome, and growing fast. And we wanted to start with a language with a similar alphabet, to minimize the localization work.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;And it&#8217;s worth a shot&lt;/strong&gt;. We&#8217;ve learned that it&#8217;s easier to just watch the future than to try to predict it. So we&#8217;re big on just trying stuff out (assuming it can&#8217;t break our other stuff). And we&#8217;re huge on getting stuff crazy-wrong,&#160;refusing to admit it, and instead doubling down on our wrong-minded idea, while nodding crazily&#160;er&#8230; admitting we made a mistake, and reversing course. So, given the number of user requests, we figured, &#8220;why&#160;&lt;strong&gt;not&lt;/strong&gt;&#160;give it a it a try?&#8221; We&#8217;re committed to supporting one or two languages and seeing how they develop before we push any further.&lt;/p&gt;
&lt;p&gt;And so far, it&#8217;s an &lt;em&gt;incredible&lt;/em&gt; success. Despite an audience limited to portuguese-speaking devs, the site&#8217;s activity in its first week was higher than all but 4 out of 120 sites we&#8217;ve launched to date, including the original trilogy.&lt;/p&gt;
&lt;p&gt;More importantly, people who couldn&#8217;t ask questions are asking them, and getting great answers. When in doubt, we want to err on the side of helping more people. If just one little girl in Brazil sticks with programming because an answer on this site helped her finish her first project, well&#8230; &lt;em&gt;&lt;strong&gt;that&#8217;s not good enough! &lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;&#160;&lt;/strong&gt;I want to help thousands of them. And the boys, too.&lt;/p&gt;
&lt;p&gt;Still, it&#8217;s a good start.&lt;/p&gt;
 
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 10:19:04 -0800</pubDate>
      <link>http://blog.stackoverflow.com/2014/02/cant-we-all-be-reasonable-and-speak-english/</link>
      <guid>http://blog.stackoverflow.com/2014/02/cant-we-all-be-reasonable-and-speak-english/</guid>
    </item>
    <item>
      <title>"Strong" stack protection for GCC [LWN.net]</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7233464'&gt;""Strong" stack protection for GCC [LWN.net]"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://lwn.net/Articles/584225/'&gt;http://lwn.net/Articles/584225/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;p&gt;
 By &lt;b&gt;Jake Edge&lt;/b&gt;&lt;br&gt;February 5, 2014
 &lt;/p&gt;
&lt;p&gt;
Stack buffer overflows are a longstanding problem for C programs that leads
to all manner of ills, many of which are security vulnerabilities. The
biggest problems have typically been with string buffers on the stack
coupled with bad or missing length
tests. A
programmer who mistakenly leaves open the possibility of overrunning a buffer on a
function's stack may be allowing attackers to overwrite the return
pointer pushed onto the stack earlier. Since the attackers may be able to control
&lt;i&gt;what&lt;/i&gt; gets written, they can control where the function returns&#8212;with
potentially dire results. GCC, like many compilers, offers features to help detect buffer
 overflows; the upcoming 4.9 release offers a new stack-protection
 mode with a different tradeoff between security and performance
 impact.
&lt;/p&gt;
&lt;p&gt;
GCC has supported stack protection for some time. It currently supports two different
types of stack protection. Recently, Google engineers have
come up with another style that tries to chart a middle course between the
two existing options. It has made its way into GCC 4.9 (expected later
this year) and the upcoming 3.14 kernel has support for building with that option.
&lt;/p&gt;
&lt;p&gt;
The basic idea behind stack protection is to push a "&lt;a href="http://en.wikipedia.org/wiki/Stack_canary#Stack_canaries"&gt;canary&lt;/a&gt;"
(a randomly chosen integer) on the stack just after the function return
pointer has been pushed. The canary value is then checked before the
function returns; if it has 
changed, the program will abort. Generally, stack buffer overflow (aka
"stack smashing") attacks will have to change the value of the canary
as they write beyond the end of the buffer before they can get to the
return pointer. Since the value of the canary is unknown to the attacker,
it cannot be replaced by the attack. Thus,
the stack protection
allows the program to abort when that happens rather than return to wherever the attacker
wanted it to go.
&lt;/p&gt;
&lt;p&gt;
There is a downside to using canaries. The value must be generated and
checked, which takes some time, but more importantly there must be code
added to handle the canary for each function that is protected that way.
That extra code results in some level of performance degradation, perhaps
mostly due to a larger cache footprint. For this reason, it can make sense to restrict
stack protection to a subset of all the functions in a program.
&lt;/p&gt;
&lt;p&gt;
So the question has always been: "Which functions should be protected?" Putting stack protection into every
function is both overkill and may hurt performance, so one of the GCC
options chooses a subset of functions to protect. The existing
-fstack-protector-all option will protect all functions, while the
-fstack-protector option chooses any function that declares a
character array of eight bytes or more in length on its stack. Some
distributions have lowered that threshold (e.g. to four) in their builds by using the
--param=ssp-buffer-size=N option.
&lt;/p&gt;
&lt;p&gt;
That "character array" test catches the most "at risk" functions, but it leaves a number of
other functions behind. As Kees Cook pointed out in a recent &lt;a href="http://www.outflux.net/blog/archives/2014/01/27/fstack-protector-strong/"&gt;blog
post&lt;/a&gt;, the Google Chrome OS team had been using
-fstack-protector-all since the team is "paranoid", but a new
&lt;a href="http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00974.html"&gt;-fstack-protector-strong
option&lt;/a&gt; has been developed to broaden the scope of the stack protection
without extending it to every function in the program. 
&lt;/p&gt;
&lt;p&gt;
In addition to the protections offered by -fstack-protector, the
new option will guard any function that declares any type or length of local array,
even those in structs or unions. It will also protect functions that use a
local variable's address in a function argument or on the right-hand side
of an assignment. In addition, any function that uses local register
variables will be protected.
According to Cook, Chrome OS has been using
-fstack-protector-strong (instead of protecting all functions) for
ten months or so. 
&lt;/p&gt;
&lt;p&gt;
During the 3.14 merge window, Linus Torvalds pulled Cook's patches to add the
ability to build the kernel using the strong stack protection. In
Ingo Molnar's &lt;a href='http://lwn.net/Articles/584278/'&gt;pull request&lt;/a&gt; (and Cook's post), the results of
using strong protection on the kernel were presented. The kernel with
-fstack-protector turned on is 0.33% larger and covers 2.81% of
the functions in the kernel. For -fstack-protector-strong, those
numbers are an increase of 2.4% in code size over an unprotected kernel,
but 20.5% of the functions are covered. 
&lt;/p&gt;
&lt;p&gt;
The
CONFIG_CC_STACKPROTECTOR_STRONG kernel configuration option adds
the strong protection, while the CONFIG_CC_STACKPROTECTOR option
for the "regular" protection has been renamed to reflect that:
CONFIG_CC_STACKPROTECTOR_REGULAR. The default
CONFIG_CC_STACKPROTECTOR_NONE does just what its name would imply.
&lt;/p&gt;
&lt;p&gt;
While stack protection certainly isn't a panacea for security woes, it will
catch a significant portion of real-world attacks. Having an option that
strikes a balance between the ultra-paranoid "all" and the regular variant
(not to mention the wide-open "none" option) is likely to catch more
bugs&#8212;and attack vectors. We will likely see some of the more
security-conscious distributions building their user-space programs and
kernels with the "strong" option moving forward.
&lt;/p&gt; 
 (&lt;a href="https://lwn.net/login?target=/Articles/584225/"&gt;Log in&lt;/a&gt; to post comments)
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 11:10:06 -0800</pubDate>
      <link>http://lwn.net/Articles/584225/</link>
      <guid>http://lwn.net/Articles/584225/</guid>
    </item>
    <item>
      <title>Ron Paul Launches Snowden Clemency Petition - Hit &amp; Run : Reason.com</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7233544'&gt;"Ron Paul Launches Snowden Clemency Petition - Hit &amp; Run : Reason.com"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://reason.com/blog/2014/02/13/ron-paul-launches-snowden-clemency-peti'&gt;http://reason.com/blog/2014/02/13/ron-paul-launches-snowden-clemency-peti&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 &lt;p&gt;&lt;span&gt;&lt;img src="http://cloudfront-media.reason.com/mc/_external/2014_02/credit-gage-skidmorewikimedia-1.jpg?h=187&amp;amp;w=280"&gt;&lt;span&gt;Credit: Gage Skidmore/wikimedia&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Today, it &lt;a href="http://thehill.com/blogs/blog-briefing-room/news/198325-ron-paul-launches-clemency-for-snowden-petititon"&gt;
was reported&lt;/a&gt; that former Rep. Ron Paul (R-Texas) &lt;a href="https://campaign.ronpaulchannel.com/snowden/petition/"&gt;launched a
petition&lt;/a&gt; calling for NSA whistle-blower Edward Snowden to be
granted clemency.&lt;/p&gt;
&lt;p&gt;On the page on the Ron Paul Channel&#8217;s website where visitors can
sign the petition, the former congressman says,&lt;/p&gt;
 
Edward Snowden sacrificed his livelihood, citizenship, and
freedom by exposing the disturbing scope of the NSA&#8217;s worldwide
spying program. Thanks to one man&#8217;s courageous actions, Americans
know about the truly egregious ways their government is spying on
them.
 
&lt;p&gt;The news of Paul&#8217;s petition comes on the same day &lt;a href="http://www.upi.com/Top_News/World-News/2014/02/13/European-Parliament-panel-votes-down-asylum-protection-for-Snowden/UPI-48431392301754/?spt=su"&gt;
it was reported&lt;/a&gt; that the European Parliament had voted against
calling for &#160;Snowden to be granted asylum.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The New York&lt;/em&gt; &lt;em&gt;Times&lt;/em&gt; and &lt;em&gt;The Guardian&lt;/em&gt;
&lt;a href="http://news.yahoo.com/new-york-times--guardian--urge-clemency-for-snowden-153422938.html"&gt;
both&lt;/a&gt; urged U.S. officials to grant Snowden clemency last
month.&lt;/p&gt;
&lt;p&gt;According to the Ron Paul Channel, Snowden&#8217;s temporary asylum in
Russia will expire at the end of July.&lt;/p&gt;
&lt;p&gt;Yesterday, Intelligence Squared hosted a debate on the motion
&#8220;Snowden was Justified.&#8221; Speaking for the motion were legal adviser
to Edward Snowden and ACLU attorney Ben Wizner and Pentagon Papers
whistle-blower Daniel Ellsberg. Speaking against the motion were
former CIA Director James Woolsey and former federal prosecutor and
contributing editor to&#160;&lt;em&gt;National Review&lt;/em&gt; Andrew
McCarthy.&#160;&lt;/p&gt;
&lt;p&gt;Wizner said Snowden was justified &#8220;because he provided to
journalists and through them to us information that we had a right
to know and that we had a need to know. The government had not just
concealed this information, it had lied to us about it.&#8221;&lt;/p&gt;
&lt;p&gt;Woolsey claimed that Snowden had released information to
&#8220;Hezbollah, Al Qaeda, Hamas, Pyongyang, Tehran, and so on.&#8221;
Thankfully, Ellsberg pointed out that Snowden released information
to journalists who have since reported on the documents.&lt;/p&gt;
&lt;p&gt;Before the debate began 29 percent were for the motion, 29
percent were against the motion, and 43 percent were undecided.
After the debate, 54 percent were for the motion, 35 percent were
against the motion, and 11 percent were undecided.&lt;/p&gt;
&lt;p&gt;Watch the debate below:&lt;/p&gt;
&lt;p&gt; &#160;&lt;/p&gt; 
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 11:29:18 -0800</pubDate>
      <link>http://reason.com/blog/2014/02/13/ron-paul-launches-snowden-clemency-peti</link>
      <guid>http://reason.com/blog/2014/02/13/ron-paul-launches-snowden-clemency-peti</guid>
    </item>
    <item>
      <title>
Quant Strategies Implemented by the Quantopian Community | Quantopian Blog</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7233641'&gt;"
Quant Strategies Implemented by the Quantopian Community | Quantopian Blog"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://blog.quantopian.com/5-basic-quant-strategies-implemented-by-the-quantopian-community/'&gt;http://blog.quantopian.com/5-basic-quant-strategies-implemented-by-the-quantopian-community/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 &lt;h2&gt;Quant Strategies Implemented by the Quantopian Community&lt;/h2&gt;
 Posted by: Jess Stauth 
 
 
 &lt;div&gt;
 &lt;p&gt;Last week I gave a &lt;a href="http://www.meetup.com/Bay-Area-Algorithmic-Trading/"&gt;quant finance meet-up&lt;/a&gt; talk at the Hacker Dojo in Mountain View, CA. The format was inspired by some analysis I did on the types of algorithms shared and cloned in the Quantopian community &#8211; initially I wanted to ask: &lt;strong&gt;What are the most popular strategies coded up on Quantopian?&lt;/strong&gt; To answer this question I ranked all public forum posts three ways, first on number of replies, second on number of views, and third on number of times cloned. I averaged these scores and re-ranked the list to come up with the top 25 &#8216;Most popular posts of all time&#8217;. (NB: I did not do any correction for the date of the original post, so the amount of time the thread has been alive has not been normalized.)&lt;/p&gt;
&lt;p&gt;Starting from this list, I worked backwards and used examples from the Quantopian community to introduce 5 basic quant strategy types: &lt;a href="https://www.quantopian.com/posts/ernie-chans-ewa-slash-ewc-pair-trading"&gt;Mean Reversion&lt;/a&gt;, &lt;a href="https://www.quantopian.com/posts/mebane-faber-relative-strength-strategy-with-ma-rule%20"&gt;Momentum&lt;/a&gt;, &lt;a href="https://www.quantopian.com/posts/using-the-fetcher-with-quandl"&gt;Value&lt;/a&gt;, &lt;a href="https://www.quantopian.com/posts/ranking-and-trading-on-days-to-cover"&gt;Sentiment&lt;/a&gt; and &lt;a href="https://www.quantopian.com/posts/time-to-sell-in-may-and-go-away"&gt;Seasonality&lt;/a&gt;. While this list is not technically &#8216;mutually exclusive and collectively exhaustive&#8217;, it covers a large fraction of intraday to lower frequency quant strategies and provides a good overview of the way equity focused quants think about predicting market prices. I went back to my Top 25 list and categorized each algo into one of these five buckets and then created this pie chart based on the aggregated number of views for each strategy type.&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;There are a number of interesting conclusions to be drawn from this initial overview of community activity. Perhaps the most obvious and predictable of these is that price based strategies are currently in the lead by a large margin &#8211; due, I expect, to the easy access to minute-level equity pricing and the accessibility of the logic for momentum and mean-reversion. Indeed there were no value-based strategies that made their way into the Top 25 &#8211; which in my view represents a key opportunity space right now.&lt;/p&gt;
&lt;p&gt;More subtle and, from my admittedly biased point of view, more compelling is the diversity and quality of content and collaboration in the public sphere. Having joined the Quantopian team from a large corporate setting working with a small group of institutional clients, seeing that the Top 25 algos have been cloned over 13,000 times, an average of over &lt;strong&gt;500 clones per strategy&lt;/strong&gt; is&#8230; well it&#8217;s pretty damn cool.&lt;/p&gt;
&lt;p&gt;Below you can find the slide deck from my presentation:&lt;/p&gt;
 
 
 &lt;p&gt;
 
 This entry was posted on Monday, February 10th, 2014 at 6:05 pm and is filed under Quantopian. You can follow any responses to this entry through the RSS 2.0 feed. 
 You can leave a response, or trackback from your own site.
 
 
 &lt;/p&gt;
 &lt;/div&gt;
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 11:33:18 -0800</pubDate>
      <link>http://blog.quantopian.com/5-basic-quant-strategies-implemented-by-the-quantopian-community/</link>
      <guid>http://blog.quantopian.com/5-basic-quant-strategies-implemented-by-the-quantopian-community/</guid>
    </item>
    <item>
      <title>Good Samaritan Backfire &#8212; Medium</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7233730'&gt;"Good Samaritan Backfire &#8212; Medium"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='https://medium.com/p/9f53ef6a1c10/'&gt;https://medium.com/p/9f53ef6a1c10/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;p&gt;&lt;strong&gt;Solitary Confinement&#8202;&#8212;&#8202;Safety Cell&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I was led into a corner.&lt;/p&gt;
&lt;p&gt;&#8220;First we have to get you ready,&#8221; one of the deputies said. His arm undid the button of my pants, which at first I thought was a cruel joke, and then he yanked them down to my ankles.&lt;/p&gt;
&lt;p&gt;They pushed me forward against the wall. I stumbled in my handcuffs and pant shackles.&lt;/p&gt;
&lt;p&gt;&#8220;Step out of your pants,&#8221; they ordered. And as soon as I did: &#8220;Step out of your socks!&#8221;&lt;/p&gt;
&lt;p&gt;Naked from the waist down, someone said, &#8220;Take off your shirt.&#8221; It was topologically impossible, given the cuffs. One of the deputies said, &#8220;I&#8217;ll do it.&#8221; I was uncuffed, my shirt was stripped with force, getting caught on my neck, tugging my head backwards, then up, then off.&lt;/p&gt;
&lt;p&gt;The night shift deputies were cruel. They responded to questions in the tone of schoolyard bullies&#8212;tauntingly. They giggled as they slammed the door behind me. &#8220;You&#8217;ll see the doctor alright.&#8221;&lt;/p&gt;
&lt;p&gt;On the floor lay a straight jacket made from the material used to pad furniture when it is being moved, and a second piece of the same fabric that I later used to cover the dirty floor in an attempt to sleep.&lt;/p&gt;
&lt;p&gt;There were no knobs or protrusions in the room, just soft corners. The toilet was a hole in the ground, no toilet paper. The hole dropped down a few feet where it was intersected by a grate of prison bars. The flushing happened automatically, periodically, though I never felt the urge. Even one&#8217;s feces left prison upon evacuation, presumably to leave the subject without anything to play with.&lt;/p&gt;
&lt;p&gt;I say this, because while the room was dirty, it was not as dirty as the next two cells I experienced the following day, which were smeared with feces and peanut butter. Approximately every 6 hours, a pushcart made its way around the prison with regulation peanut butter sandwiches. Only a fraction were consumed. Many were used for wall decoration or splattered against the ceiling.&lt;/p&gt;I couldn&#8217;t bear to eat, so I took my rations home as a souvenir. Aside from the milk, they still seemed edible a month later. This is their strength.&lt;p&gt;&lt;strong&gt;Trapped in a rendition of One Flew Over the Cuckoo&#8217;s Nest&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;While the metal door was too thick for me to be heard if I did not scream, I could hear the muted screams of others across the jail. The din was anything but soothing.&lt;/p&gt;
&lt;p&gt;When I asked for water, I was given enough (a couple Dixie cups&#8217; worth) to barely keep my throat lubricated.&lt;/p&gt;
&lt;p&gt;I was cold. The two pieces of fabric were not enough to spread on the filthy ground and also cover my naked body. I tried to sleep but it proved fruitless. Every 15 minutes, the metal peephole was creaked open, and I was expected to react, presumably to confirm that I was still alive. This was noted on a clipboard hanging beside the door.&lt;/p&gt;
&lt;p&gt;Eventually, I found it most comfortable to stand by the cell door with the coarse fabric draped over my body. I looked out through a narrow slit of Plexiglas and tried to call attention from passers&#8217; by. &#8220;Sir, Ma&#8217;am, could you please tell me&#8230; how long should I expect to be in here?&#8221;&lt;/p&gt;
&lt;p&gt;A streak of being ignored was broken by a couple disheartening responses. &#8220;Usually we put people in there for 24 hours.&#8221;&lt;/p&gt;
&lt;p&gt;Now I really felt like I &lt;em&gt;was &lt;/em&gt;going crazy. Those weren&#8217;t the reassuring answers my inner optimist had hoped for. When I had told the arresting officers that I accepted my lot, this wasn&#8217;t the lot I was referring to. I didn&#8217;t expect a medal for fulfilling my civic duty, but I still felt like I had some fleeting right to something other than this. I banged on the metal door repeatedly until Deputy Terry showed up.&lt;/p&gt;
&lt;p&gt;&#8220;Why am I in here?&#8221;&lt;/p&gt;
&lt;p&gt;&#8220;You are crazy. You are a lunatic,&#8221; he pronounced.&lt;/p&gt;
&lt;p&gt;&#8220;Do you know how I got here?&#8221;&lt;/p&gt;
&lt;p&gt;&#8220;Doesn&#8217;t matter.&#8221;&lt;/p&gt;
&lt;p&gt;&#8220;This place&#8212;being in here&#8212;will &lt;em&gt;make &lt;/em&gt;me crazy,&#8221; I pleaded.&lt;/p&gt;
&lt;p&gt;&#8220;Good. That&#8217;s what you are and where you belong.&#8221; He spiraled his index finger by his muscular temple.&lt;/p&gt;
&lt;p&gt;I tried to respond as he started walking way.&lt;/p&gt;
&lt;p&gt;&#8220;Sir, might you consider for a moment that I am having a sane response to the conditions I&#8217;m being subjected? I was arrested by the very police I called to the scene of a medical emergency less than a block from my house, while heading home for the night.&#8221;&lt;/p&gt;
&lt;p&gt;He stared at me bewildered, and never came near again.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 12:29:44 -0800</pubDate>
      <link>https://medium.com/p/9f53ef6a1c10/</link>
      <guid>https://medium.com/p/9f53ef6a1c10/</guid>
    </item>
    <item>
      <title>Part 2: Lessons learned tuning TCP and Nginx in EC2 &#171;  Chartbeat Engineering Blog</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7233784'&gt;"Part 2: Lessons learned tuning TCP and Nginx in EC2 &#171;  Chartbeat Engineering Blog"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://engineering.chartbeat.com/2014/02/12/part-2-lessons-learned-tuning-tcp-and-nginx-in-ec2/'&gt;http://engineering.chartbeat.com/2014/02/12/part-2-lessons-learned-tuning-tcp-and-nginx-in-ec2/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt; 
 &lt;p&gt;In &lt;a href="http://engineering.chartbeat.com/2014/01/02/part-1-lessons-learned-tuning-tcp-and-nginx-in-ec2/"&gt;part 1&lt;/a&gt; of our post, one of the items we discussed was our issues with using DNS as a load balancing solution. &#160;To recap, at the end of our last post we were still setup with Dyn&#8217;s load balancing solution and our servers were receiving a disproportionate amount traffic to them. &#160;Server failures were still not as seamless as we wanted, due to the issues with DNS TTLs not always being obeyed and our response times were a lot higher than we wanted them to be, hovering around 200-250ms.&lt;/p&gt;
&lt;p&gt;In part 2 of this post, I&#8217;ll cover the following&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How we improved our issues with server failure and response time by using Amazon&#8217;s ELB service&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The performance gains we saw from enabling HTTP keepalives.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Future steps for performance improvements&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But first before I dive into the ELB, there&#8217;s one topic I left out of my last post that I wanted to mention.&lt;/p&gt;
&lt;h3&gt;TCP Congestion Window (cwnd)&lt;/h3&gt;
&lt;p&gt;In TCP congestion control, there exists a variable called the &#8220;congestion window&#8221; , commonly referred to as &lt;code&gt;cwnd&lt;/code&gt;. &#160;The initial value of &lt;code&gt;cwnd&lt;/code&gt; is often referred to as &#160;&#8220;&lt;code&gt;initcwnd&lt;/code&gt;&#8221;. &#160; &#160;After the initial TCP handshake is done, we begin to send data, the &lt;code&gt;cwnd&lt;/code&gt; determines how many bytes we can send before the client needs to respond with an ACK. &#160;Let&#8217;s look at a graphic of how different &lt;code&gt;initcwnd&lt;/code&gt; values affect TCP latency from a&lt;a href="http://research.google.com/pubs/pub36640.html"&gt; paper Google released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;At Chartbeat, we&#8217;re currently running Ubuntu 10.04 LTS (I know, I know, we&#8217;re in the process of upgrading to 12.04 as this is being written), which ships with Kernel 2.6.32. &#160;Starting in &lt;/span&gt;&lt;a href="http://kernelnewbies.org/Linux_2_6_39#head-c2acd2f0463943210471a42bf6f5b469a6999e7b"&gt;Kernel 2.6.39&lt;/a&gt;&lt;span&gt;, thanks to some research&#160;from Google, the default &lt;/span&gt;&lt;code&gt;initcwnd&lt;/code&gt;&lt;span&gt; was changed from 3 to 10. &#160;If you are serving up content greater than 4380 bytes (3 * 1460), you will benefit from increasing your &lt;/span&gt;&lt;code&gt;initcwnd&lt;/code&gt;&lt;span&gt; due to the ability to have more data in flight (BDP or bandwidth delay product) before having to reply with an ACK. &#160;The average response size from ping.chartbeat.net is way under that, at around 43 bytes, so this change had no benefit to us at the time when the servers were not behind the ELB. &#160;We&#8217;ll see why increasing the &lt;/span&gt;&lt;code&gt;initcwnd&lt;/code&gt;&lt;span&gt; helped us later in the post when we discuss HTTP keepalives.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;ELB (Elastic Load Balancer)&lt;/h3&gt;
&lt;p&gt;The options for load balancing traffic on AWS are fairly limited. &#160;Your choices are&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;DNS load balancing service such as Dyn&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Homegrown solution using HAProxy, nginx or &amp;lt;insert favorite load balancing software here&amp;gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each of these solutions have their limitations and depending on your requirements, some may not be suitable at all for you. &#160;I won&#8217;t go into all of the pros and cons of each solution here since there are plenty of articles on the web discussing these already. &#160;I&#8217;ll just go over a few that directly affected our choice.&lt;/p&gt;
&lt;p&gt;In choosing a homegrown solution, support for high availability and scalability is difficult. &#160;Currently with AWS, there&#8217;s no support for &lt;a href="http://wiki.wireshark.org/Gratuitous_ARP"&gt;gratuitous ARP&lt;/a&gt;, which is traditionally used in handling of fail overs both in software and hardware load balancers. &#160;In order to work around this issue, you can utilize Elastic IPs and homegrown scripts to move the Elastic IP between instances when it detects a failure. &#160;In our experience we&#8217;ve seen lag times from 30 seconds to a few minutes when moving an Elastic IP. &#160;During this time, you would be down hard and not serving up any traffic. &#160;The above solution also only works when all your traffic can be handled by one host and you can accept the small period of downtime during fail over.&lt;/p&gt;
&lt;p&gt;But how would you handle a situation where your traffic was too high for one host? &#160;You could launch multiple instances of your home grown solution but you would then need to handle balancing the traffic between these instances. &#160;We already discussed in part 1 the issue we had with using DNS to handle the balancing of traffic. &#160;The only other solution would be to actually use an ELB in front of these instances. &#160;If we went with this solution, it meant adding another layer of latency to the request. &#160;Did we really need to do something like this?&lt;/p&gt;
&lt;p&gt;The reason why most people end up going with a solution like HAProxy is because they have more advanced load balancing requirements. &#160;ELB only supports round robin request balancing and sticky sessions. &#160;Some folks require the ability to do request routing based on URI, weight based routing or any of the other various algorithms that HAProxy supports. &#160;Our requirements for a load balancing solution were fairly straightforward:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Evenly distribute traffic (better than our current DNS solution)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Highly available&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Handle our current traffic peak(200k req/sec) and scale beyond that&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;End-to-End SSL support&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ELB best met all these requirements for us. &#160;A homegrown solution would have been overkill for our needs. &#160;We didn&#8217;t need any of the advanced load balancing features, SSL is currently only supported in HAProxy&#8217;s development branch (1.5.x) and requires using stunnel or nginx for support in the stable branch (1.4.x) and we didn&#8217;t need to add any additional layers that would increase our latency even further.&lt;/p&gt;
&lt;h3&gt;Moving to ELB&lt;/h3&gt;
&lt;p&gt;The move to using an ELB was fairly straight forward. &#160;We contacted Amazon support and our technical account manager to coordinate pre-warming the ELB. &#160;According to the &lt;a href="http://aws.amazon.com/articles/1636185810492479"&gt;ELB best practices guide&lt;/a&gt;, ELBs will scale gradually as your traffic grows (should handle 50% of traffic increase every 5 minutes), but if we suddenly switched 100% of our traffic to the ELB, it would not be able to scale quickly enough and start throwing errors. &#160;We weren&#8217;t planning on doing a cutover in that fashion anyway, but to be safe we wanted to ensure the ELB was pre-warmed ahead of time even as we slowly moved over traffic. &#160;&#160;We added all the servers into the ELB and then did a slow roll out utilizing Dyn&#8217;s &lt;a href="http://dyn.com/traffic-director/"&gt;traffic director&lt;/a&gt; solution, which allowed us to weight DNS records. &#160;We were able to raise the weight of the ELB record and slowly remove the individual server&#8217;s IPs from ping.chartbeat.net to control the amount of traffic flowing through the ELB.&lt;/p&gt;
&lt;h3&gt;Performance gains&lt;/h3&gt;
&lt;p&gt;We saw large, immediate improvements in our performance with the cutover to the ELB. &#160;We saw less TCP timeouts &#160;and a huge decrease in our average response time.&lt;/p&gt;
&lt;p&gt;&#160;We went from roughly 200 ms average response times, to 3 ms response times. &#160;That&#8217;s a &lt;strong&gt;98.5%&lt;/strong&gt; decrease in response time!&lt;/p&gt;
&lt;p&gt;Our traffic was now more evenly distributed than our previous DNS based solution. &#160;We were able to further distribute our traffic shortly after, when Amazon released &#160;&#8220;&lt;a href="http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-disable-crosszone-lb.html"&gt;Cross-Zone load balancing&lt;/a&gt;&#8221;&lt;/p&gt;
&lt;p&gt;&#160;Enabling cross-zone load balancing got our request count distribution extremely well balanced, the max difference in requests between hosts sits currently around 13k requests over a minute.&lt;/p&gt;
&lt;h3&gt;KeepAlives&lt;/h3&gt;
&lt;p&gt;With our servers now behind the ELB we had one last performance tweak we wanted to enable, HTTP keepalives between our servers and the ELB. &#160;Keepalives work by allowing multiple requests over a single connection. &#160;In cases where users are loading many objects off your site, this can greatly reduce latency by removing the overhead of having to re-establish a connection for each object you are loading off the site. &#160;CPU savings are seen on the server side since less time will be spent opening and closing connections. &#160;All this sounds pretty great, so why didn&#8217;t we have it enabled before hand?&lt;/p&gt;
&lt;p&gt;There are a few cases where you may not want keepalives enabled on your web server. &#160;If you&#8217;re only serving up one object from your domain, it doesn&#8217;t make much sense to keep a connection hanging around for more requests. &#160;Each connection uses up a small amount of RAM. &#160;If your web servers don&#8217;t have a large amount of RAM and you have a lot of traffic, enabling keepalives could get you in a situation where you will consume all RAM on the server, especially with a high default timeout for the keepalive connection. &#160;For Chartbeat, our data comes from clients every 15 seconds, holding a connection open just to get a small amount of data every 15 seconds would be a waste of resources for us. &#160;Fortunately we were able to offload that to the ELB which enables keepalive connections by default for any HTTP 1.1 client.&lt;/p&gt;
&lt;p&gt;With our servers &#160;no longer being directly exposed to the clients, we could re-visit enabling keepalives. &#160;We are doing a high amount of requests between the ELB and our servers , with the connections coming from a limited set of servers on Amazon&#8217;s end. &#160;We want the ELBs to be able to proxy as much information as possible to us over one connection and keep that connection open for as long as possible. &#160;This is where having a larger &lt;code&gt;initcwnd&lt;/code&gt; comes into play. &#160;Having a larger &lt;code&gt;initcwnd&lt;/code&gt; lowers our latency and gets our bandwidth up to full speed between the servers and the ELB. &#160;We expected to see a drop off in the amount of traffic going through the servers as well as some CPU savings. &#160;To ensure there were no issues, we did a &#8220;canary&#8221; test with one server enabled with keepalive and put it into production. &#160;The results were not at all what we expected. &#160;Traffic to the server became extremely spiky and average response time increased a bit when keepalives were enabled on the canary server. &#160;After talking to Amazon about the issue, we learned that the ELB was favoring the host with keepalive enabled. &#160;More traffic was being sent to that host causing its latency to increase. &#160;When the latency increased, the ELB would then send less traffic through the host and the cycle would start over again. &#160;Once we confirmed what the issue was, we proceeded with the keepalive rollout and the traffic went back to being evenly distributed. &#160;The amount of sockets we had sitting in TIME_WAIT went from around 200k to 15k after enabling keepalives and CPU utilization dropped by about 20%.&lt;/p&gt;
&lt;h3&gt;Keepalives and Timeouts&lt;/h3&gt;
&lt;p&gt;There are a few important things to be aware of when configuring keepalives with your ELB with regards to timeouts. &#160;Unfortunately there&#8217;s a lack of official documentation on ELB keepalive configuration and behavior, so the information below could only be found through various posts on the official AWS forums.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The default keepalive idle connection timeout is 60 seconds&lt;/li&gt;
&lt;li&gt;The keepalive idle connection timeout can be changed to values as low as 1 second and as high as 17 minutes with a support ticket&lt;/li&gt;
&lt;li&gt;The keepalive timeout value on your backend server must be higher than that of your ELB connection timeout. &#160;If it is lower, the ELB will re-use the idle connection when your server has already dropped the connection, resulting in the client being served up a blank response. &#160;The default nginx &lt;a href="http://wiki.nginx.org/HttpCoreModule#keepalive_timeout"&gt;keepalive_timeout&lt;/a&gt; value is safe at 75 seconds with the default ELB timeout of 60 seconds.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Downsides&lt;/h3&gt;
&lt;p&gt;While the ELB has worked out great for us and we&#8217;ve seen huge performance improvements from switching to using one in front of our servers, there are a few issues we&#8217;d love to see addressed in future roll-outs of the ELB:&lt;/p&gt;
 
Lack of bandwidth graphs in CloudWatch. &#160;I&#8217;m surprised the ELB has been around for this long without this CloudWatch metric. &#160;You get charged per GB processed through the ELB, yet there&#8217;s no way to see from Amazon&#8217;s view, how much bandwidth is going through your ELB. &#160;This could also help identify DoS attacks that don&#8217;t involve making actual requests to the ELB.
No Ability to pre-warm an ELB without going through support. &#160;Right now it&#8217;s a process of having to contact Amazon support to get an ELB pre-warmed, and answering a bunch of questions related to your traffic. &#160;Even if this process was moved to a web form like how requests for service limit increases are done, it would be better than the current method.
No ability to clone an ELB. &#160;Why would you want that? &#160;If you have an ELB that is handling a large amount of traffic and you are experiencing issues with it, you cannot easily replace the faulty ELB in a hurry due to the need for new ELBs to scale up slowly. &#160;It would be extremely useful to clone an existing one, capturing it&#8217;s fully warmed configuration and then be able to flip traffic over to it. &#160;Right now if there&#8217;s an issue, AWS support needs to get involved, and unless you are paying for higher end support, you may not get a fast enough response from support.
No access to the raw logs. &#160;A feature to send the ELB logs to an S3 bucket would be very valuable. &#160;This would open up a bunch of doors with the ability to setup AWS Data Pipeline to fire off an EMR job or move data into Redshift. &#160;Currently all that must be done on the servers behind the ELB.
No official documentation on keepalive configuration or behavior.
Ability to change the default &#160;keepalive timeout value is not exposed through the API and requires a support ticket.
 &lt;h3&gt;Conclusions&lt;/h3&gt;
&lt;p&gt;We learned an important lesson by not monitoring some key metrics on our servers that were having an affect on our performance and reliability. &#160;With increasing traffic it&#8217;s important to re-evaluate your settings periodically to see if they still make sense for the level of traffic you are receiving. &#160;The default TCP sysctl settings will work just fine for a majority of workloads but when you begin to push your server resources to there limits, you can see big performance increases by making some adjustments to variables in sysctl. &#160; Through TCP tuning and utilizing AWS Elastic Load Balancer we were able to&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Decrease our response time by &lt;strong&gt;98.5%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Decrease our server footprint by &lt;strong&gt;20%&lt;/strong&gt; on our front end servers&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Have failed servers removed from service within seconds&lt;/li&gt;
&lt;li&gt;Eliminate dropped packets due to listen queue socket overflows&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Next Steps&lt;/h3&gt;
&lt;p&gt;Since the writing of this article, we&#8217;ve done some testing with Amazon&#8217;s new C3 instance types and are planning to move from the m1.large instance type to the c3.large. &#160;The c3.large is almost 50% cheaper and gives us more compute units which in turn yields slightly better response times.&lt;/p&gt;
&lt;p&gt;Our traffic is very cyclical which lends itself perfectly to take advantage of&lt;a href="http://aws.amazon.com/autoscaling/"&gt; Amazon&#8217;s auto scaling &lt;/a&gt;feature. &#160;Take a look at a graph from a weeks worth of traffic.&lt;a href="http://engineering.chartbeat.com/files/2014/02/week_total_concurrents.png"&gt;&lt;img src="http://engineering.chartbeat.com/files/2014/02/week_total_concurrents.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the middle of the night (EDT), we see half of what our peak traffic was earlier in the day and on weekends we see about 1/3 less traffic than a weekday.&lt;/p&gt;
&lt;p&gt;In the next coming months we&#8217;ll be looking to implement auto scaling to achieve additional cost savings and better handle large, unexpected spikes of traffic.&lt;/p&gt;
&lt;h3&gt;&lt;span&gt;Additional resources:&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Special thanks to the following folks for feedback and guidance on this post&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 11:54:18 -0800</pubDate>
      <link>http://engineering.chartbeat.com/2014/02/12/part-2-lessons-learned-tuning-tcp-and-nginx-in-ec2/</link>
      <guid>http://engineering.chartbeat.com/2014/02/12/part-2-lessons-learned-tuning-tcp-and-nginx-in-ec2/</guid>
    </item>
    <item>
      <title>Silk Road 2 Hacked, All Bitcoins Stolen &#8211; $2.7 Miliion | Deep Dot Web</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7234010'&gt;"Silk Road 2 Hacked, All Bitcoins Stolen &#8211; $2.7 Miliion | Deep Dot Web"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.deepdotweb.com/2014/02/13/silk-road-2-hacked-bitcoins-stolen-unknown-amount/'&gt;http://www.deepdotweb.com/2014/02/13/silk-road-2-hacked-bitcoins-stolen-unknown-amount/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 
 &lt;span&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;Update 2&lt;/strong&gt;: &lt;span&gt;As the time passes there are more and more suspicions that this was in fact a &lt;strong&gt;SCAM&lt;/strong&gt; by the Silk Road staff &#8211; and not a hack, we will post more details about it once, and if we get the full picture.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: &lt;span&gt;&lt;span&gt;The amount of BTC that was stolen was calculated by&#160;Nicholas Weaver &lt;a href="https://twitter.com/NCWeaver"&gt;&lt;span&gt;@NCWeaver&lt;/span&gt;&lt;/a&gt; &#8211; Computer Security Researcher, to be around:&#160; 4474.266369160003BTC that are with the value of about $2.7 Million.&lt;/span&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It was just announced in a post by Defcon the Silk Road administrator (this post will be updated as soon as we get more info) -&lt;br&gt;&lt;/strong&gt;Yes, what seemed to be an imaginary situation until not long ago, just became true, the silk road2&#160; &#8211; the site who counted to be the security fortress of the deep web just has been hacked with its bitcoin stolen.&#160; as he announced on the sites forums,&#160; we pasted his post here:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Link to the original thread on Silk Road 2 Forums:&#160;&lt;/strong&gt;&lt;/span&gt; http://silkroad5v7dywlc.onion/index.php?topic=25091.msg491029#msg491029&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;=====Start Quote====&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I am sweating as I write this.&lt;/p&gt;
&lt;p&gt;Christmas brought grave news. I cannot adequately express how deeply honored I was by your unconditional support of my staff.&lt;/p&gt;
&lt;p&gt;I do not expect the same reaction to today&#8217;s revelations. This movement is built on integrity, and I feel obligated to be forthright with you.&lt;/p&gt;
&lt;p&gt;I held myself to a high standard as your leader, yet now I must utter words all too familiar to this scarred community:&lt;/p&gt;
&lt;p&gt;We have been hacked.&lt;/p&gt;
&lt;p&gt;Nobody is in danger, no information has been leaked, and server access was never obtained by the attacker.&lt;/p&gt;
&lt;p&gt;Our initial investigations indicate that a vendor exploited a recently discovered vulnerability in the Bitcoin protocol known as &#8220;transaction malleability&#8221; to repeatedly withdraw coins from our system until it was completely empty.&lt;/p&gt;
&lt;p&gt;Despite our hardening and pentesting procedures, this attack vector was outside of penetration testing scope due to being rooted in the Bitcoin protocol itself.&lt;/p&gt;
&lt;p&gt;This attack hit us at the worst possible time. We were planning on re-launching the new auto-finalize and Dispute Center this past weekend, and our projections of order finalization volume indicated that we would need the community&#8217;s full balance in hot storage.&lt;/p&gt;
&lt;p&gt;In retrospect this was incredibly foolish, and I take full responsibility for this decision.&lt;/p&gt;
&lt;p&gt;I have failed you as a leader, and am completely devastated by today&#8217;s discoveries. I should have taken MtGox and Bitstamp&#8217;s lead and disabled withdrawals as soon as the malleability issue was reported. I was slow to respond and too skeptical of the possible issue at hand. It is a crushing blow. I cannot find the words to express how deeply I want this movement to be safe from the very threats I just watched materialize during my watch.&lt;/p&gt;
&lt;p&gt;I&#8217;ve included transaction logs at the bottom of this message. Review the vendor&#8217;s dishonest actions and use whatever means you deem necessary to bring this person to justice. More details will emerge as we continue to investigate.&lt;/p&gt;
&lt;p&gt;Given the right flavor of influence from our community, we can only hope that he will decide to return the coins with integrity as opposed to hiding like a coward.&lt;/p&gt;
&lt;p&gt;It takes the integrity of all of us to push this movement forward. Whoever you are, you still have a chance to act in the interest of helping this community. Keep a percentage, return the rest. Don&#8217;t walk away with your fellow freedom fighters&#8217; coins. DPR2 returned the cold storage. I didn&#8217;t run with the gold. But two people alone cannot move us forward. It takes an entire community committing to integrity &#8211; and though this crushing blow will not stop us, it sure is a testament to how greedy some bastards truly are.&lt;/p&gt;
&lt;p&gt;Being a part of this movement might be the most defining thing you do with your entire life.&lt;/p&gt;
&lt;p&gt;Don&#8217;t trade that for greed, comrades.&lt;/p&gt;
&lt;p&gt;I will fight here by your side, even the greedy bastards amongst us.&lt;/p&gt;
&lt;p&gt;This community has suffered great financial loss over and over again, and I am devastated that it has happened again under my watch.&lt;/p&gt;
&lt;p&gt;Hindsight is already suggesting dozens of ways this could have been prevented, but we must march onward.&lt;/p&gt;
&lt;p&gt;The only way to reverse a community&#8217;s greed is through generosity. Our true character is revealed during trying times.&lt;/p&gt;
&lt;p&gt;If this financial hardship places you at risk of physical harm, contact me directly and I will do my best to help you with my remaining personal funds.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Now what.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Never again store your escrow bitcoins on a server.&lt;/p&gt;
&lt;p&gt;Silk Road will never again be a centralized escrow storage.&lt;/p&gt;
&lt;p&gt;This week has shown the collateral damage we can cause by being a huge target and failing in just one unforeseen area.&lt;/p&gt;
&lt;p&gt;I am now fully convinced that no hosted escrow service is safe.&lt;/p&gt;
&lt;p&gt;If I cannot trust myself to keep a hosted escrow solution safe, I cannot trust anyone.&lt;/p&gt;
&lt;p&gt;Multi-signature transactions are the only way this community will be protected long-term.&lt;/p&gt;
&lt;p&gt;I am aggressively tasking our devs on building out multi-sig support for commonly-used bitcoin clients. Expect a generous bounty if you have the skill to implement this.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Until then.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;1. We will never again allow ourselves to be a single point of failure. We will never again host your Escrow wallets.&lt;/p&gt;
&lt;p&gt;2. Vendor registration is closed while we regroup.&lt;/p&gt;
&lt;p&gt;3. All listings on Silk Road are now No-Escrow (Finalize-Early) for 1-2 months while we implement multi-signature transactions and lobby for mainstream Bitcoin client multi-sig support.&lt;/p&gt;
&lt;p&gt;4. All unshipped orders have been cancelled.&lt;/p&gt;
&lt;p&gt;5. Vendors may link to other marketplaces on a trail basis until we launch multi-sig, then we will re-evaluate based on community input. We do not want to be a centralized point of failure, but we also do not want to lead our buyers into dangerous waters.&lt;/p&gt;
&lt;p&gt;6. From this point forward DO NOT trust markets with centralized escrow. Use multi-signature transactions whenever possible, with trusted third parties as escrow providers.&lt;/p&gt;
&lt;p&gt;Everything will be offline for 24-48 hours to minimize variables as we continue to investigate. The evidence we have below will be expanded based on our findings.&lt;/p&gt;
&lt;p&gt;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&lt;/p&gt;
&lt;p&gt;No marketplace is perfect. Expect any centralized market to fail at some point. This is precisely why we must unite in the decision to decentralize.&lt;/p&gt;
&lt;p&gt;We are relieved that our security procedures protected user identities, and that no servers were compromised. This was not a worst-case scenario: nobody will be getting arrested from this. Financial loss is terrible, but will not put all of us behind bars.&lt;/p&gt;
&lt;p&gt;The details we have on the hacker are below. Stop at nothing to bring this person to your own definition of justice.&lt;/p&gt;
&lt;p&gt;Humbled and furious,&lt;/p&gt;
&lt;p&gt;Defcon&lt;/p&gt;
&lt;p&gt;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&lt;/p&gt;
&lt;p&gt;# Attacker Intel as of 2014-02-13 18:00:00 UTC&lt;/p&gt;
&lt;p&gt;We normally do not doxx anyone, and hold user information sacred. But this is an extreme situation affecting our entire community, and all three users who have exploited this vulnerability are very much at risk until they approach us directly to assist with any information.&lt;/p&gt;
&lt;p&gt;Do not reveal any details of the attack. This will jeopardize your reward. Contact us directly.&lt;/p&gt;
&lt;p&gt;If anyone has purchased or sold to these usernames, expect generous bounties for any information you can contribute which leads to identification.&lt;/p&gt;
&lt;p&gt;# Attacker 1: (Responsible for 95% of theft)&lt;br&gt;
Suspected French, responsible for vast majority of the thefts. Used the following six vendor accounts to order from each other, to find and exploit the vulnerability aggressively.&lt;/p&gt;
&lt;p&gt;## Usernames used:&lt;br&gt;
narco93&lt;br&gt;
ketama&lt;br&gt;
riccola&lt;br&gt;
germancoke&lt;br&gt;
napolicoke&lt;br&gt;
smokinglife&lt;/p&gt;
&lt;p&gt;Transactions listed at bottom of this file. Finding Attacker 1 is top priority.&lt;/p&gt;
&lt;p&gt;# Attacker 2: (Responsible for ~2.5% of theft, using same methods towards end of attack lifecycle, likely knows Attacker 1)&lt;br&gt;
LethalWeapon &#8211; Australia &#8211; &#8220;stumbled upon&#8221; large amount of BTC&lt;/p&gt;
&lt;p&gt;# Attacker 3: (Responsible for ~2.5% of theft, using same methods towards end of attack lifecycle, likely knows Attacker 1)&lt;br&gt;
mrkermit &#8211; Australia&lt;/p&gt;
&lt;p&gt;# Theft Withdrawal Transactions and historical withdrawals by Attacker 1&lt;br&gt;
address,txid_cleaned&lt;br&gt;
{Here some big list of withdrawal addresses with the stolen bitcoins}&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;=====End Quote====&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Aside from the endless marketplaces being hacked every day now, this is the most shocking event we have encountered &#8211; as Silk Road being the largest DarkNet market nowadays was probably holding the largest sum of money of them all &#8211; it is not yet clear how many Bitcoins were stolen exactly, but its almost certain that this is about to become the largest theft in the Deep Web history &#8211; bigger than the &lt;a href="http://www.deepdotweb.com/2013/11/30/sheep-marketplace-scammed-over-40000000-in-the-biggets-darknet-scam-ever/"&gt;Sheep Marketplace Scam &lt;/a&gt; that had amount equal at the time to $40 million in bitcoins stolen by its admins.&lt;/p&gt;
&lt;p&gt;This case only serves as &lt;strong&gt;ANOTHER, Very Painful&lt;/strong&gt; lesson about &#8211; why on-site escrows are bad, and should not be used! only direct transaction or mulsig escrow like the one offered at themarketplace.i2p are the safe way to conduct business on these sites.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is this the end of the centralized marketplaces?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We sure hope so!&#160; as we posted here again and again, they are not safe, and will always end up being hacked or having the money stolen by their admins.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;So who were the hackers?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Few hours before the announcement we at DeepDotWeb received a mail saying: &#8220;SilkRoad hacked, 150 BTC stolen, you heard it first from me&#8221; this was sent to us by a reddit user who claimed since yesterday he was going to hack SR and steal the sites money &#8211; we are trying to verify if this amount matches the amounts that were stolen by the &#8220;smaller&#8221; hackers that Defcon reported in his post, the others remain unknown.&lt;/p&gt;
&lt;p&gt;The Silk Road moderators ranged from pleading or threatening the hackers:&lt;/p&gt;
&lt;p&gt;To a complete shock:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.deepdotweb.com/wp-content/uploads/2014/02/tang.png"&gt; &lt;img src="http://www.deepdotweb.com/wp-content/uploads/2014/02/tang.png"&gt;&lt;/a&gt;To an Apology:&lt;/p&gt;
&lt;p&gt;The users reaction was not much different obviously and ranged between shocked / angry / desperate or accusing the sites admins to the thief&#8217;s themselves:&lt;/p&gt;
 IS ANYONE ELSE BUYINGGGG THIS? !!! WE ARE FIXING ESCROW&#160; WE ARE FIXING VENDOR REFUNDS? WE ARE DOING ALL WE CAN
THIS SHEEP !!!! STYLE FUCKING BY OUR TRUSTED SR GUYS ,
ITS FUCKING PLAIN AND SIMPLE ESCROW SYSTEM WAS A SCAM SO EVERY COCKSUCKER WHO DIDNT FINALZE THE COINS STAYED IN THE BANK AND OPPS WE HAVE BEEN HACKED
!!! WE ARE FIXING THE VENNDOR REFUND ? YEAH RIGHT RIGHT ANOTHER PERFECT SCAM, MORE COIN IN THE BANK AND AT THE RIGHT TIME
AGAIN OOPSS WE HAVE BEEN HACKED \
DEFCON GO FUCK YOUR SELF , U GUYS HAVE NOT DOMNE NOTHING ABOUT THE ESCROW SYSTEM , U HAVE DONE NOTHIGN ABOUT VENDOR REFUND , ALL U GUYS DID IS LET THE FUCKING BANK&#160; BUILD UP AND SORRY GUYS WE HAVE BEEN HACKED
EVERY DOG GETS THERE DAY AND I CANT WAIT TILL I SEE ONE OF U FALL 
&lt;p&gt;Some even tried to help in some way.&lt;/p&gt;
&lt;p&gt;For us &#8211; the big question is &#8220;how much&#8221;? , we will keep following up on this and updating this post as we get new information &#8211; for now, you can check out other site &lt;a href="http://www.deepdotweb.com/2013/10/28/updated-llist-of-hidden-marketplaces-tor-i2p/"&gt;on this list&lt;/a&gt;.&lt;/p&gt;
&lt;!-- Quick Adsense WordPress Plugin: http://quicksense.net/ --&gt;
&lt;h3&gt;You might also like:&lt;/h3&gt;
&lt;h3&gt;Share and Enjoy&lt;/h3&gt;
&lt;!-- Start WP Socializer - Social Buttons - Output --&gt;
&lt;!-- End WP Socializer - Social Buttons - Output --&gt;
 
 
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 12:29:44 -0800</pubDate>
      <link>http://www.deepdotweb.com/2014/02/13/silk-road-2-hacked-bitcoins-stolen-unknown-amount/</link>
      <guid>http://www.deepdotweb.com/2014/02/13/silk-road-2-hacked-bitcoins-stolen-unknown-amount/</guid>
    </item>
    <item>
      <title>
Official Enterprise Blog: VMWare to Bring Traditional Windows Apps and Desktops to Chromebooks
</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7234080'&gt;"
Official Enterprise Blog: VMWare to Bring Traditional Windows Apps and Desktops to Chromebooks
"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://googleenterprise.blogspot.com/2014/02/vmware-to-bring-traditional-windows_12.html'&gt;http://googleenterprise.blogspot.com/2014/02/vmware-to-bring-traditional-windows_12.html&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;div&gt;
&lt;span&gt;Posted by Rajen Sheth, Director of Product Management, Chrome&lt;/span&gt;&lt;p&gt;Cloud applications allow flexibility, scalability and security and enable a work-anywhere environment, but many of our customers still use traditional desktop applications. Desktop as a Service (DaaS) helps bridge the gap between the cloud and a traditional desktop by allowing you to run your traditional software in the cloud and have applications appear on your Chromebook similarly to how they run today. An example might be your Windows based accounting application.&lt;/p&gt;
&lt;p&gt;Chromebooks have continued to help more and more customers over the last year.&#160;&lt;a href="https://www.npd.com/wps/portal/npd/us/news/press-releases/u-s-commercial-channel-computing-device-sales-set-to-end-2013-with-double-digit-growth-according-to-npd/"&gt;According to NPD&lt;/a&gt;, Chromebooks made up 21% of U.S. commercial laptop sales in 2013. Customers prefer the low total cost of ownership, the&#160;&lt;a href="http://www.google.com/intl/en/chrome/business/devices/features-management-console.html"&gt;central web-based management console&lt;/a&gt;&#160;and the fact that they don't need any additional security or anti-virus software. These are reasons why businesses large and small are adopting Chromebooks.&lt;/p&gt;
&lt;p&gt;Today, customers can fully embrace the cloud with Chromebooks using&#160;&lt;a href="https://www.vmware.com/products/daas.html"&gt;VMware Horizon&#8482; DaaS&#174;&lt;/a&gt;. &lt;a href="https://tinyurl.com/m3opzgx"&gt;VMware and Google are working together&lt;/a&gt; to make the migration of legacy applications even easier, by using the HTML5/Blast experience from Chromebooks. This means you can work with Chromebooks and connect to a Windows experience running VMWare&#8482; Horizon View.&lt;/p&gt;
&lt;p&gt;As the countdown to Windows XP end of life continues, deploying Chromebooks and taking advantage of a DaaS environment ensures that security vulnerabilities, application compatibility and migration budgets will be a thing of the past.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.vmware.com/products/daas"&gt;VMware Horizon DaaS&lt;/a&gt;&#160;enables customers to centralize other desktop environments and manage these as a cloud service. Initially available to customers as an on-premise service or by VMWare vCloud Service Provider Partners (VSPPs) offering DaaS in the cloud or within hybrid deployments. Users will be able to access their Windows applications, data and desktops using VMware&#8217;s Blast HTML5 technology to their Chromebook.&lt;/p&gt;
&lt;p&gt;This technology is available now by bringing together VMware Horizon View 5.3 and Chromebooks as an on-premise service and will be available soon as an application that can be installed from the Chrome Web Store. To find out more follow this&#160;&lt;a href="http://goo.gl/oa5mYR"&gt;link&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 12:33:44 -0800</pubDate>
      <link>http://googleenterprise.blogspot.com/2014/02/vmware-to-bring-traditional-windows_12.html</link>
      <guid>http://googleenterprise.blogspot.com/2014/02/vmware-to-bring-traditional-windows_12.html</guid>
    </item>
    <item>
      <title>Startup Sales Negotiations 101 - How to Respond to Discount Inquiries</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7234265'&gt;"Startup Sales Negotiations 101 - How to Respond to Discount Inquiries"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://blog.close.io/startup-negotiation-101-how-to-respond-to-discount-inquiries'&gt;http://blog.close.io/startup-negotiation-101-how-to-respond-to-discount-inquiries&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;p&gt;&lt;!--more--&gt;People will sometimes reach out and ask for a discount on your product &lt;strong&gt;&lt;em&gt;before&lt;/em&gt;&lt;/strong&gt; they took the time to sign up for a trial and use it at all. What do you do when that happens?&#160;&lt;/p&gt;
&lt;p&gt;Instead of debating if you should or shouldn't offer them a discount right away, you need to refocus their energy on what really matters: &lt;strong&gt;your product!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let's explore the 3 core reasons why you never want to negotiate pricing before someone had a chance to trial your product and determine that it's a good fit.&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;#1: You're starting the relationship on the wrong foot&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;People who ask you to lower your prices before having invested any time using your product are usually trouble.&lt;/p&gt;
&lt;p&gt;This can often lead to winning a new customer that is going to expect you to give 24/7 premium phone support, prioritize features based on their needs all while trying to pay you pennies on the dollar. If you start the relationship by giving them everything they ask for, don't be surprised if they keep asking for more in an unreasonable fashion. This is ultimately unsustainable and unhealthy for both sides.&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;#2: They're buying for the wrong reason&#160;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;At this point they can't tell if your product is a good fit for them since they never used it. Your first priority should always be to help people explore and discover that your product is really solving their problem before negotiating what the final pricing should be.&lt;/p&gt;
&lt;p&gt;Discounting your product upfront might help you close some deals faster but will often lead to these customers ultimately discovering that they should have never bought in the first place. Always be wary of prospects that don't want to do their homework upfront. Nothing sucks more than a new customer that cancels immediately after having created a ton of support and onboarding cost.&#160;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;#3: You're negotiating on price vs. value&#160;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;The problem with people trying to negotiate pricing before testing your product is that you are forced to negotiate on price rather than value. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;They didn't have a chance to build up any desire to buy and discover the massive value your product could deliver to them. All of the sudden your product turns into a commodity and your only differentiation is offering them the lowest price possible.&#160;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;#4: You're negotiating without leverage&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The more time people invest in your product the more "invested" they become and naturally the harder it is for them to "throw away" the time they put into exploring your product and making it part of their daily workflow.&lt;/p&gt;
&lt;p&gt;You always want to postpone the most difficult/complex parts of the sales negotiation till the end of the sales cycle. That way you ensure the right amount of momentum as you move forward in the sales process and avoid too much upfront friction.&#160;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Here is what your response should be when someone asks for a discount without having tried your product:&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;"Thanks for inquiring about pricing options! Why don't you sign up for a trial and give the product a go? If you find out that it's a great fit I'll take care of you and make sure you get a price that makes you happy. Sound fair enough?"&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This works every time. The reply you usually get will be:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;"Great! Just signed up and giving the product a go. Thanks!"&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;What's the result you should expect?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;9 out of 10 times the people that turn out to be a bad fit will self select during a trial and just leave. The prospects that are a good fit will love your product so much that they will not negotiate hard for a discount since they now really understand its value.&#160;&lt;/p&gt;
&lt;p&gt;Even if they do it's fine to give great customers a good price because you know they are buying for all the right reasons and will probably stay with you for a long time.&lt;/p&gt;
&lt;p&gt;We've done this thousands of times and it always works. I hope this startup sales negotiation tactic serves your business as much as it has ours :)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; The same tactic doesn't just work for people that are "unreasonable" and potentially a bad fit. Even when uber nice prospects are worrying about pricing upfront we tend to ask them to first discover if the product is even a good fit for their needs. See below a recent twitter exchange as a good example for this:&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 12:59:44 -0800</pubDate>
      <link>http://blog.close.io/startup-negotiation-101-how-to-respond-to-discount-inquiries</link>
      <guid>http://blog.close.io/startup-negotiation-101-how-to-respond-to-discount-inquiries</guid>
    </item>
    <item>
      <title>Redesigning the United Flight Search Interface in Photoshop | Nathan Barry</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7234575'&gt;"Redesigning the United Flight Search Interface in Photoshop | Nathan Barry"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://nathanbarry.com/redesigning-united-flight-search-ui-photoshop/'&gt;http://nathanbarry.com/redesigning-united-flight-search-ui-photoshop/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;
&lt;p&gt;
 &lt;a href="http://nathanbarry.com/category/design/"&gt;Design&lt;/a&gt; | February 13th, 2014 &lt;/p&gt;
&lt;div&gt;
 
 
 &lt;p&gt;Flying out of Boise, Idaho you don&#8217;t have a lot of options. There are only direct flights to a few cities and every itinerary has its downsides. Because of that I spend a lot of time using United&#8217;s advanced flight search.&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;I had two goals in redesigning this screen:&lt;/p&gt;
 To know how it could look and function.
To teach designers how to use Photoshop.
 &lt;p&gt;In this post I&#8217;ve got a two-part video walking you through the redesign. These videos are the first half of the entire case study available in my upcoming course, &lt;a href="http://nathanbarry.com/photoshop"&gt;Photoshop for Interface Design&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;The videos&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Part 1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;strong&gt;Part 2&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;The finished redesign&lt;/h2&gt;
&lt;p&gt;These videos take you halfway through the case study. The next two are coming next week. To make sure you get those sign up for the email list at the end of this page.&lt;/p&gt;
&lt;p&gt;In the mean time, here&#8217;s what the final design looks like:&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;h2&gt;Ready to learn more?&lt;/h2&gt;
&lt;p&gt;Photoshop for Interface Design is my new course on using Photoshop to design great software. Whether iOS apps, websites, or complex SaaS applications, I&#8217;ll teach you the techniques used by professional designers. You can skip right past the Photoshop tutorials for photographers (no red-eye removal tutorials here) and go right to learning about paths, layer styles, and the techniques you&#8217;ll use every day.&lt;/p&gt;
&lt;p&gt;If you want to learn to use Photoshop&#8212;and value your time&#8212;this course is for you.&lt;/p&gt;
&lt;p&gt;Sign up with the form below to hear more about the course and also get the next installment of this case study.&lt;/p&gt;
&lt;div&gt; &lt;div&gt; &lt;h3&gt;Learn to design your own interfaces in Photoshop&lt;/h3&gt; &lt;div&gt; &lt;span&gt; &lt;/span&gt; &lt;p&gt;Leading up to the course launch you'll receive free tutorials, resources, and a special bonus at launch.&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; &lt;div&gt; &lt;p&gt;Thanks for your interest! Now check your email to confirm your subscription.&lt;/p&gt; &lt;/div&gt; &lt;!-- Form starts here --&gt; &lt;/div&gt; &lt;!-- This is a random-length HTML comment: uhwbkdojuntqtvruwfzwiwmuifkqqrdpakizsnlkhvhslblknfidtevf --&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 13:40:53 -0800</pubDate>
      <link>http://nathanbarry.com/redesigning-united-flight-search-ui-photoshop/</link>
      <guid>http://nathanbarry.com/redesigning-united-flight-search-ui-photoshop/</guid>
    </item>
    <item>
      <title>OCaml: what you gain - Thomas Leonard's blog</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7234855'&gt;"OCaml: what you gain - Thomas Leonard's blog"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://roscidus.com/blog/blog/2014/02/13/ocaml-what-you-gain/'&gt;http://roscidus.com/blog/blog/2014/02/13/ocaml-what-you-gain/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;p&gt;Way back in June, in &lt;a href='http://roscidus.com/blog/blog/2013/06/20/replacing-python-round-2/'&gt;Replacing Python: second round&lt;/a&gt;, I wrote:&lt;/p&gt;
 
 The big surprise for me in these tests was how little you lose going from Python to OCaml.
 
&lt;p&gt;Of course, I was mainly focused on making sure the things I needed were still available. With the port now complete (&lt;a href="http://thread.gmane.org/gmane.comp.file-systems.zero-install.devel/7310"&gt;0install 2.6 has been released&lt;/a&gt;, and contains no Python code), here&#8217;s a summary of the main things you &lt;em&gt;gain&lt;/em&gt;.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;&lt;strong&gt;Table of Contents&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This post also appeared on &lt;a href="https://news.ycombinator.com/item?id=7234855"&gt;Hacker News&lt;/a&gt; and &lt;a href="http://www.reddit.com/r/programming/comments/1xtohg/ocaml_replacing_python_what_you_gain/"&gt;Reddit&lt;/a&gt;, where there are more comments.&lt;/p&gt;
&lt;p&gt;( This post is part of a series in which I
&lt;a href='http://roscidus.com/blog/blog/2013/06/09/choosing-a-python-replacement-for-0install'&gt;converted 0install from Python to OCaml&lt;/a&gt;, learning OCaml in the process. The full code is at &lt;a href="https://github.com/0install/0install"&gt;GitHub/0install&lt;/a&gt;. )&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A note on bias&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I started these blog posts unemployed (taking a career break), with no particular connection to any of the languages, and motivated to make a good choice since I&#8217;d be using it a lot. I wasn&#8217;t biased towards OCaml; it wasn&#8217;t even on my list of candidates until a complete stranger &lt;a href="http://article.gmane.org/gmane.comp.file-systems.zero-install.devel/6914/match=ocaml"&gt;suggested it on the mailing list&lt;/a&gt;.
But I must now disclose that, since my last blog post, I&#8217;m now getting paid for writing OCaml.&lt;/p&gt;
&lt;h2&gt;Functional programming&lt;/h2&gt;
&lt;p&gt;Some people commented it was good to see more projects moving to functional programming. So, what&#8217;s it like doing functional programming after Python? To be honest, not much has changed. According to OCaml&#8217;s &lt;a href="http://ocaml.org/learn/tutorials/functional_programming.html"&gt;What is functional programming?&lt;/a&gt;, &#8220;In a functional language, functions are first-class citizens&#8221; and &#8220;The fact is that Perl is actually quite a good functional language&#8221;.&lt;/p&gt;
&lt;p&gt;So, if you&#8217;ve ever used Python&#8217;s (built-in) &lt;code&gt;map&lt;/code&gt;, &lt;code&gt;reduce&lt;/code&gt;, &lt;code&gt;filter&lt;/code&gt; or &lt;code&gt;apply&lt;/code&gt; functions, ever written or used a &lt;a href="http://www.python.org/dev/peps/pep-0318/"&gt;decorator&lt;/a&gt; or ever passed a function as an argument to another function, you&#8217;re already doing functional programming as far as OCaml is concerned. By contrast, &#8220;&lt;em&gt;pure&lt;/em&gt; functional programming&#8221; (as in Haskell) would be a major change.&lt;/p&gt;
&lt;p&gt;OCaml does make partially applying functions easier, which is sometimes convenient, and it supports &lt;a href="http://en.wikipedia.org/wiki/Tail_call"&gt;tail recursion&lt;/a&gt;. Tail recursion allows you to write loops in a functional style (without needing &lt;code&gt;break&lt;/code&gt;, &lt;code&gt;continue&lt;/code&gt; or mutable state). That can make it easier to reason about loops, but I couldn&#8217;t find any examples in 0install where this style was clearly better than a plain Python loop.&lt;/p&gt;
&lt;h2&gt;Type-checking&lt;/h2&gt;
&lt;p&gt;I&#8217;ve used statically-typed languages before (I used to program in Java for my day job). That can catch many errors that Python would miss, but OCaml&#8217;s type system is far more useful than Java&#8217;s. Here&#8217;s an example, where we want to display an icon for some program in the GUI:&lt;/p&gt;
&lt;div&gt;1
2
get_icon program
|&amp;gt; widget#set_icon (* Error! *)
&lt;/div&gt;
&lt;pre&gt;&lt;code&gt;Error: This expression has type Icon.t -&amp;gt; unit
 but an expression was expected of type Icon.t option -&amp;gt; 'a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Oops. The program might not have an icon (icons are optional). We&#8217;ll need to use a default one in that case:&lt;/p&gt;
&lt;div&gt;1
2
3
get_icon program
|&amp;gt; default generic_program_icon
|&amp;gt; widget#set_icon
&lt;/div&gt;
&lt;p&gt;Downloading some data:&lt;/p&gt;
&lt;div&gt;1
2
3
4
match download url with
| `success data -&amp;gt; process data
| `network_failure msg -&amp;gt; show_error_dialog msg
(* Error! *)
&lt;/div&gt;
&lt;pre&gt;&lt;code&gt;Warning 8: this pattern-matching is not exhaustive.
Here is an example of a value that is not matched:
`aborted_by_user
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Oops. The user might click the &#8220;Cancel&#8221; button - we need to handle that too:&lt;/p&gt;
&lt;div&gt;1
2
3
4
match download url with
| `success data -&amp;gt; process data
| `network_failure msg -&amp;gt; show_error_dialog msg
| `aborted_by_user -&amp;gt; abort ()
&lt;/div&gt;
&lt;p&gt;When registering an extra feed to an interface we want to download it first to check it exists:&lt;/p&gt;
&lt;div&gt;1
2
3
let add_feed iface (feed_url:feed_url) =
 download_feed feed_url; (* Error! *)
 register_feed iface feed_url
&lt;/div&gt;
&lt;pre&gt;&lt;code&gt;Error: This expression has type feed_url
 but an expression was expected of type [&amp;lt; `remote_feed of url ]
 The second variant type does not allow tag(s) `local_feed
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Oops. The user might specify a local file too:&lt;/p&gt;
&lt;div&gt;1
2
3
4
5
let add_feed iface (feed_url:feed_url) =
 begin match feed_url with
 | `remote_feed _ as feed_url -&amp;gt; download_feed feed_url
 | `local_feed path -&amp;gt; check_file_exists path end;
 register_feed iface feed_url
&lt;/div&gt;
&lt;p&gt;Java makes you do all the work for static type checking, but manages to miss many of the benefits.
No matter how much care you take with your Java types, there&#8217;s always a good chance you&#8217;re going to crash with a NullPointerException.
By requiring correct handling of &lt;code&gt;None&lt;/code&gt; (&lt;code&gt;null&lt;/code&gt;) and ensuring pattern matching is exhaustive, OCaml&#8217;s type checking is far more useful. As with Haskell, when a piece of OCaml code compiles successfully, there&#8217;s a very good chance it will work first time.&lt;/p&gt;
&lt;p&gt;And, of course, static checking makes refactoring much easier than in Python. For example, if you remove or rename something, the compiler will always find every place you need to update.&lt;/p&gt;
&lt;h2&gt;Data type definitions&lt;/h2&gt;
&lt;p&gt;OCaml makes it really easy to define new data types as you need them. The types are always easy to see, and you know that OCaml will enforce them (unlike comments in Python, which may be incorrect). Here&#8217;s a record type for the configuration settings for an interface (an optional stability level and a list of extra feeds):&lt;/p&gt;
&lt;div&gt;1
2
3
4
type interface_config = {
 stability_policy : stability_level option;
 extra_feeds : Feed.feed_import list;
}
&lt;/div&gt;
&lt;p&gt;And here&#8217;s a variant (enum / tagged union / sum) type for the result of a download:&lt;/p&gt;
&lt;div&gt;1
2
3
4
type download_result =
 [ `aborted_by_user
 | `network_failure of string
 | `success of filepath ]
&lt;/div&gt;
&lt;h2&gt;Polymorphic variants&lt;/h2&gt;
&lt;p&gt;The &lt;a href="http://ocaml.org/learn/tutorials/labels.html#Morevariantspolymorphicvariants"&gt;OCaml labels tutorial&lt;/a&gt; describes polymorphic variants as a way to use the same name (e.g. &lt;code&gt;Open&lt;/code&gt;) for different things (e.g. opening a door vs opening a lock) and says:&lt;/p&gt;
 
 &#8220;Because of the reduction in type safety, it is recommended that you don&#8217;t use these in your code&#8221;.
 
&lt;p&gt;This is quite misleading (and I was &lt;a href="http://thread.gmane.org/gmane.comp.file-systems.zero-install.devel/6975/focus=6977"&gt;quickly corrected&lt;/a&gt; when I repeated it).
Their real purpose is to support subsets and supersets, which are useful all over the place. Some examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
 &lt;p&gt;The &#8220;0install&#8221; command-line parser accepts a large number of options. The &#8220;0install run&#8221; subcommand accepts a subset of these. That subset can be further subdivided into common options (present in all commands, such as &lt;code&gt;--verbose&lt;/code&gt;), options common to selection commands (e.g. &lt;code&gt;--before=VERSION&lt;/code&gt;) and those specific to &#8220;0install run&#8221; (e.g. &lt;code&gt;--wrapper=COMMAND&lt;/code&gt;).&lt;/p&gt;
 &lt;/li&gt;
 &lt;li&gt;
 &lt;p&gt;The GUI code that handles dialog responses (&lt;code&gt;OK&lt;/code&gt;, &lt;code&gt;Cancel&lt;/code&gt;, etc) must handle the union of all the action button responses it added and the always-present window close icon.&lt;/p&gt;
 &lt;/li&gt;
 &lt;li&gt;
 &lt;p&gt;The download code only handles the subset of feed URLs that represent remote resources.&lt;/p&gt;
 &lt;/li&gt;
 &lt;li&gt;
 &lt;p&gt;Users can only register local and remote feeds to an interface, not distribution-provided virtual feeds.&lt;/p&gt;
 &lt;/li&gt;
 &lt;li&gt;
 &lt;p&gt;Cached feeds contain only remote implementations, local feeds contain local and remote implementations, and distribution feeds contain only distribution implementations. All three types get combined together and passed to the solver.&lt;/p&gt;
 &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&#8217;s an example, showing the &lt;code&gt;run&lt;/code&gt; command dividing its options into sub-groups, with the compiler checking that every option will be handled in all cases:&lt;/p&gt;
&lt;div&gt;1
2
3
4
5
6
7
let select_opts = ref [] in
Support.Argparse.iter_options flags (function
 | #common_option as o -&amp;gt; Common_options.process_common_option options o
 | #select_option | `Refresh as o -&amp;gt; select_opts := o :: !select_opts
 | `Wrapper w -&amp;gt; run_opts.wrapper &amp;lt;- Some w
 | `MainExecutable m -&amp;gt; run_opts.main &amp;lt;- Some m
);
&lt;/div&gt;
&lt;p&gt;Without polymorphic variants, OCaml&#8217;s exhaustive matching requirements mean you&#8217;d have to provide code to handle cases that (you think) can&#8217;t happen. That&#8217;s tedious and your program will crash if you get it wrong. Polymorphic variants mean you can prove to the compiler that only the correct subset needs to be handled at each point in the code. This is fantastic, and I can&#8217;t think of any other major language that does this (though I&#8217;m sure people will suggest some in the comments).&lt;/p&gt;
&lt;h2&gt;Immutability&lt;/h2&gt;
&lt;p&gt;In OCaml, all variables and record fields are immutable by default. This is far saner than Java (where the default is mutable and you must use &lt;code&gt;final&lt;/code&gt; everywhere to override it). Immutable is a better default because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Typically, you want most things to be immutable (in any language).&lt;/li&gt;
 &lt;li&gt;If you forget to mark something as mutable, the compiler will quickly let you know, whereas forgetting to mark something as immutable would be missed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With mutable structures, you are always worrying about whether one piece of code will mutate a structure that another is relying on. For example, I originally made the XML element type mutable, but I found I was writing comments like this:&lt;/p&gt;
&lt;div&gt;1
2
(** Note: this returns the actual internal XML; don't modify it *)
val as_xml : selections -&amp;gt; element
&lt;/div&gt;
&lt;p&gt;After removing the &lt;code&gt;mutable&lt;/code&gt; annotations from the &lt;code&gt;element&lt;/code&gt; declaration, the compiler showed me each piece of code I needed to modify to make it work again. Then, I was able to remove those notes.&lt;/p&gt;
&lt;p&gt;[ The main difficulty in this conversion was handling XML namespace prefixes. Previously, each element had a reference to its owning document, which held a shared (mutable) pool of prefix bindings. Now, each namespaced item holds its preferred prefix, and the output code builds up a set of bindings before writing out the tree. ]&lt;/p&gt;
&lt;p&gt;There is one case where Python and Java do better than OCaml: OCaml strings are mutable! The convention is to treat them as immutable, though.&lt;/p&gt;
&lt;h2&gt;Abstraction&lt;/h2&gt;
&lt;p&gt;OCaml makes it very easy to hide a module&#8217;s implementation details from its users using &lt;em&gt;abstract types&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I gave one example in the &lt;a href="/blog/blog/2014/01/07/ocaml-the-bugs-so-far/#sorted-treeview-iter-mix-up"&gt;bugs post&lt;/a&gt;, where hiding the fact that a sorted tree is really the same type as an unsorted one prevents bugs due to mixing them up.&lt;/p&gt;
&lt;p&gt;Here&#8217;s another example. In the Python code, we would parse a selections XML document into a &lt;code&gt;Selections&lt;/code&gt; object, like this:&lt;/p&gt;
&lt;div&gt;1
2
3
class Selections(object):
 def __init__(self, root_element):
 ...
&lt;/div&gt;
&lt;p&gt;I found all this parsing and serialising complicated things and so in the OCaml rewrite I decided to use the plain XML element type everywhere.
That did simplify things, but it also removed some safety and clarity from the APIs.
Consider the &lt;code&gt;Selections.create&lt;/code&gt; function (which now does nothing unless the document is in an old format and needs to be upgraded):&lt;/p&gt;
&lt;div&gt;1
2
3
4
let create root =
 ZI.check_tag "selections" root;
 if is_latest_format root then root
 else convert_to_latest root
&lt;/div&gt;
&lt;p&gt;It&#8217;s nice and simple, but it just returns an &lt;code&gt;element&lt;/code&gt;. It would be easy to pass some other XML element to a function that only works on selection documents (or to pass a document that&#8217;s still in the old format).
We can solve this simply by declaring an abstract type for selection documents in the interface file (&lt;code&gt;selections.mli&lt;/code&gt;):&lt;/p&gt;
&lt;div&gt;1
2
type t
val create : element -&amp;gt; t
&lt;/div&gt;
&lt;p&gt;(note: it&#8217;s an OCaml convention for a module&#8217;s main type to be called &lt;code&gt;t&lt;/code&gt;; other modules will refer to this type as &lt;code&gt;Selections.t&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;I think this gets the best of both worlds. Internally, a selections object is just the XML root element, which is simple and efficient, but code using it can&#8217;t mix up the types. And, of course, we can change the internal type later if needed without breaking anything.&lt;/p&gt;
&lt;p&gt;This isn&#8217;t a particularly novel idea (you can do something similar in C). However, Python and Java would require you to write a wrapper object around the object you want to hide, and Python makes it easy for users of the API to access the internal representation even then. If you&#8217;re writing a library, OCaml (like C) makes it clear when you&#8217;re changing the module&#8217;s interface vs merely changing its implementation.&lt;/p&gt;
&lt;p&gt;( There is another interesting feature, which I haven&#8217;t used yet: you can use the &#8220;private&#8221; modifier to say that users of the module can see the structure of the type but can&#8217;t create their own instances of it. For example, saying &lt;code&gt;type t = private element&lt;/code&gt; would allow users to cast a selections value to an XML element, but not to treat any old XML as a selections value. )&lt;/p&gt;
&lt;p&gt;I did experience one case where abstraction didn&#8217;t work as intended. In the SAT solver, I declared the type of a literal abstractly as &lt;code&gt;type lit&lt;/code&gt; and, internally, I used &lt;code&gt;type lit = int&lt;/code&gt; (an array index). That worked fine. Later, I changed the internal representation from an int to a record. Ideally, that would have no effect on users of the module, but OCaml allows testing abstract types for equality, which resulted in each comparison recursively exploring the whole SAT problem. It can also cause runtime crashes if it encounters a function in this traversal. Haskell&#8217;s type classes avoid this problem by letting you control which types can be compared and how the comparison should be done.&lt;/p&gt;
&lt;h2&gt;Speed&lt;/h2&gt;
&lt;p&gt;Python is well known for being slow, but much of what real programs do is simply calling C libraries.
For example, when calculating a SHA256 digest, C does all the heavy lifting.&lt;/p&gt;
&lt;p&gt;Despite this, I&#8217;ve found OCaml to be fairly consistently 10 times faster in macro benchmarks (measuring a complete run of 0install from start to finish). Also, although I&#8217;ve added a lot of code and dependencies since the initial benchmarks, it still runs almost as quickly.
&lt;a href="/blog/blog/2013/06/20/replacing-python-round-2/#speed"&gt;The 0release benchmark&lt;/a&gt; took 8ms with June&#8217;s minimal version, compared to 10ms with the final version.&lt;/p&gt;
&lt;p&gt;When doing pure calculations (e.g. a tight loop adding integers), OCaml is typically more than 100x faster than Python.&lt;/p&gt;
&lt;p&gt;Even so, OCaml is probably not a great choice for CPU-intensive programs. Like Python, it has a global lock, so you can&#8217;t have multiple threads all using the CPU at once. But if you&#8217;re writing small utilities that need to run quickly, it&#8217;s perfect.&lt;/p&gt;
&lt;h2&gt;No dependency cycles&lt;/h2&gt;
&lt;p&gt;Perhaps I&#8217;m making a virtue of a flaw here, but I like the fact that OCaml doesn&#8217;t allow cyclic dependencies between source files.
I think this leads to cleaner code (back when I was writing Java, I wrote a script to extract all module dependencies and graph them so I could find and eliminate cycles).&lt;/p&gt;
&lt;p&gt;What this means is that in any OCaml code-base, no matter how complex, there&#8217;s always at least one module that doesn&#8217;t depend on any of the others and which you can therefore read first.
Then there&#8217;s a second module that only depends on the first one, etc.
For example, here are the modules that make up 0install&#8217;s GTK plugin (note the lack of cycles):&lt;/p&gt;
&lt;p&gt;Cycles can be a problem when converting existing code to OCaml, though. For example, the Python had a &lt;code&gt;helpers.py&lt;/code&gt; module containing various high-level helper functions (e.g. &lt;code&gt;get_selections_gui&lt;/code&gt; to run the GUI and return the user&#8217;s selections, and &lt;code&gt;ensure_cached&lt;/code&gt; to make sure some selections are cached and download them if not). That doesn&#8217;t work in OCaml, because the helpers module depends on the GUI, but the GUI also depends on the helpers (the GUI sometimes needs to ensure things are cached). The result is that I had to move each helper function to the module it uses, but I don&#8217;t mind because the result is a clearer API.&lt;/p&gt;
&lt;p&gt;Another example is the &lt;code&gt;Config&lt;/code&gt; object. When I started the Python code back in 2005, I was very excited about using the idea of &lt;a href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;dependency injection&lt;/a&gt; for connecting together software modules (this is the basis of how 0install runs programs). Yet, for some reason I can&#8217;t explain, it didn&#8217;t occur to me to use a dependency injection style &lt;em&gt;within&lt;/em&gt; the code. Instead, I made a load of singleton objects. Later, in an attempt to make things more testable, I moved all the singletons to a &lt;code&gt;Config&lt;/code&gt; object and passed that around everywhere. I wasn&#8217;t proud of this design even at the time, but it was the simplest way forward. It looked like this:&lt;/p&gt;
&lt;div&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Config(object):
 @property
 def fetcher(self):
 if not self._fetcher:
 from zeroinstall.injector import fetch
 self._fetcher = fetch.Fetcher(self)
 return self._fetcher
 @property
 def trust_mgr(self):
 if not self._trust_mgr:
 from zeroinstall.injector import trust
 self._trust_mgr = trust.TrustMgr(self)
 return self._trust_mgr
 ...
&lt;/div&gt;
&lt;p&gt;OCaml really didn&#8217;t like this design! &lt;code&gt;config.py&lt;/code&gt; depends on all the other modules because it calls their constructors, while they all depend on it to get their dependencies.&lt;/p&gt;
&lt;p&gt;Note that this design isn&#8217;t very safe: &lt;code&gt;Fetcher&lt;/code&gt;&#8217;s constructor could ask for &lt;code&gt;config.trust_mgr&lt;/code&gt;, and &lt;code&gt;TrustMgr&lt;/code&gt;&#8217;s constructor could ask for &lt;code&gt;config.fetcher&lt;/code&gt;. In Python, we have to remember not to do that, but in OCaml we&#8217;d like the type checker to prove it can&#8217;t happen.&lt;/p&gt;
&lt;p&gt;In most places, I fixed this by passing to each constructor just the objects it actually needs, which is cleaner.&lt;/p&gt;
&lt;p&gt;Another approach, which I used when lots of objects were needed, is that instead of requiring a &lt;code&gt;config&lt;/code&gt; object, a class can take simply &#8220;an object with at least &lt;code&gt;fetcher&lt;/code&gt; and &lt;code&gt;trust_mgr&lt;/code&gt; methods&#8221;.
Then we know statically that it will only call those methods, even though we actually give it the full config object.&lt;/p&gt;
&lt;p&gt;The result of all this is that you can look at e.g. the &lt;code&gt;fetch.mli&lt;/code&gt; interface file and see exactly which other modules it depends on, none of which will depend on it.&lt;/p&gt;
&lt;h2&gt;GUI code&lt;/h2&gt;
&lt;p&gt;Converting the GTK GUI to OCaml (using the &lt;a href="http://lablgtk.forge.ocamlcore.org/"&gt;LablGtk&lt;/a&gt; bindings), I replaced &lt;strong&gt;5166&lt;/strong&gt; lines of Python (&lt;strong&gt;plus 1736&lt;/strong&gt; lines of GtkBuilder XML) with &lt;strong&gt;4017&lt;/strong&gt; lines of OCaml (and no XML). I&#8217;m not sure why, but writing GTK code in OCaml just seems to be much easier than with Python.&lt;/p&gt;
&lt;p&gt;I used GtkBuilder in the Python code in the hope that it would make it easier to modify the layouts, and to improve reliability (since the XML should always be valid, whereas Python code might not be). However, it actually made things harder because Glade (the editor) is constantly trying to force you to upgrade to the latest (incompatible) XML syntax, and I ended up having to run an old OS in a VM any time I wanted to edit things.&lt;/p&gt;
&lt;p&gt;In the OCaml, the static type checking gives us similar confidence that the layout code won&#8217;t crash. Also, with GtkBuilder you name each widget in the XML and then search for these names in the code. If they don&#8217;t match, it will fail at runtime. Having everything in OCaml meant that couldn&#8217;t happen. [ Note: I later discovered that LablGtk doesn&#8217;t support GtkBuilder anyway. ]&lt;/p&gt;
&lt;p&gt;Here&#8217;s an example of some OCaml GTK code and the corresponding Python code. This shows how to build and display a menu (simplified to have just one item):&lt;/p&gt;
&lt;div&gt;OCaml 1
2
3
4
let menu = GMenu.menu () in
let explain = GMenu.menu_item ~packing:menu#add ~label:"Explain this decision" () in
explain#connect#activate ~callback:(fun () -&amp;gt; show_explanation impl) |&amp;gt; ignore;
menu#popup ~button:(B.button bev) ~time:(B.time bev);
&lt;/div&gt;
&lt;div&gt;Python 1
2
3
4
5
6
7
8
9
10
11
global menu # Fix GC problem with PyGObject
menu = gtk.Menu()
item = gtk.MenuItem()
item.set_label('Explain this decision')
item.connect('activate', lambda item: self.show_explanation(impl))
item.show()
menu.append(item)
if sys.version_info[0] &amp;lt; 3:
 menu.popup(None, None, None, bev.button, bev.time)
else:
 menu.popup(None, None, None, None, bev.button, bev.time)
&lt;/div&gt;
&lt;p&gt;Some points to note:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LablGtk allows you to specify many properties at once in the constructor call, whereas in PyGTK we need separate calls for each.&lt;/li&gt;
 &lt;li&gt;The Python API broke between Python 2 and Python 3, so we have to make sure to use the right one. It&#8217;s not sufficient to test the Python code using only one version of Python!&lt;/li&gt;
 &lt;li&gt;The Python bindings have always suffered from garbage collection bugs. If we don&#8217;t store &lt;code&gt;menu&lt;/code&gt; in a global variable, it may garbage collect the menu while the user is still choosing - this makes the menu disappear suddenly from the screen!&lt;/li&gt;
 &lt;li&gt;Actually, I see that Python&#8217;s &lt;code&gt;MenuItem&lt;/code&gt; takes a &lt;code&gt;label&lt;/code&gt; argument, so maybe I could save a line. Or maybe that doesn&#8217;t work on some older version. It&#8217;s not worth the risk of changing it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Update: I used the original layout for the OCaml above as I was comparing line counts, but it&#8217;s a bit wide for this narrow blog and some people are finding it hard to read. Here&#8217;s an expanded version which uses less special syntax:&lt;/p&gt;
&lt;div&gt;1
2
3
4
5
6
7
8
let menu = GMenu.menu () in
let explain = GMenu.menu_item
 ~packing:menu#add
 ~label:"Explain this decision"
 () in
let callback () = show_explanation impl in
let _signal_id = explain#connect#activate ~callback in
menu#popup ~button:(B.button bev) ~time:(B.time bev)
&lt;/div&gt;
&lt;p&gt;Here, &lt;code&gt;~&lt;/code&gt; indicates a named argument and &lt;code&gt;#&lt;/code&gt; is a method call. So &lt;code&gt;menu_item ~packing:menu#add ...&lt;/code&gt; is like &lt;code&gt;menu_item(packing = menu.add, ...)&lt;/code&gt; in Python.&lt;/p&gt;
&lt;p&gt;However, I did still have a few problems with the OCaml GTK bindings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There&#8217;s no support for custom cell renderers. I used three of these in the Python version and had to find alternative UIs for each.&lt;/li&gt;
 &lt;li&gt;Various minor functions aren&#8217;t included for some reason. The ones I wanted but couldn&#8217;t find were &lt;code&gt;Dialog.add_action_widget&lt;/code&gt;, &lt;code&gt;Style.paint_arrow&lt;/code&gt;, &lt;code&gt;MessageDialog.BUTTONS_NONE&lt;/code&gt;, &lt;code&gt;Dialog.set_keep_above&lt;/code&gt;, &lt;code&gt;icon_size_lookup&lt;/code&gt; and &lt;code&gt;Selection_data.get_uris&lt;/code&gt;.&lt;/li&gt;
 &lt;li&gt;You usually don&#8217;t need the result of creating a label or attaching a signal so you need to use &lt;code&gt;ignore&lt;/code&gt;, which can cause silent failures if you forgot an argument (it will ignore the partial function rather than the widget or signal result). Probably I should make &lt;code&gt;ignore_signal&lt;/code&gt; and &lt;code&gt;ignore_widget&lt;/code&gt; utility functions.&lt;/li&gt;
 &lt;li&gt;I had to work around a &lt;a href="/blog/blog/2014/01/07/ocaml-the-bugs-so-far/#crashes-with-gtkiconview"&gt;bug in the IconView support&lt;/a&gt; (reported, but with no response).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;API stability&lt;/h2&gt;
&lt;p&gt;This is a community thing rather than a language issue, but OCaml and OCaml libraries seem to be very good at maintaining backwards compatibility at the source level. 0install supports the old OCaml 3.12 and libraries in Ubuntu 12.04 up to the latest OCaml 4.01 release without any problems. The only use of conditional compilation for compatibility is that we don&#8217;t define the &lt;code&gt;|&amp;gt;&lt;/code&gt; operator on 4.01 because it&#8217;s already a built-in (this avoids a warning).&lt;/p&gt;
&lt;p&gt;On the other hand, binary compatibility is very poor. You can replace the implementation of a module with a newer version as long as the public interface doesn&#8217;t change (good), but any change at all to the interface requires everything that depends on it to be recompiled, and then everything that depends on them, and so on.&lt;/p&gt;
&lt;p&gt;For example, if the &lt;code&gt;List&lt;/code&gt; module adds a new function then the signature of the &lt;code&gt;List&lt;/code&gt; module changes. Now any program using the new version of the &lt;code&gt;List&lt;/code&gt; module is incompatible with every library binary compiled against the old version. Even if nothing is even using the new function! This means that distributing OCaml libraries in binary form is effectively impossible.&lt;/p&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;OCaml&#8217;s main strengths are correctness and speed. Its type checking is very good at catching errors, and its &#8220;polymorphic variants&#8221; are a particularly useful feature, which I haven&#8217;t seen in other languages. Separate module interface files, abstract types, cycle-free dependencies, and data structures that are immutable by default help to make clean APIs.&lt;/p&gt;
&lt;p&gt;Surprisingly, writing GTK GUI code in OCaml was easier than in Python. The resulting code was significantly shorter and, I suspect, will prove far more reliable. OCaml&#8217;s type checking is particularly welcome here, as GUI code is often difficult to unit-test.&lt;/p&gt;
&lt;p&gt;The OCaml community is very good at maintaining API stability, allowing the same code to compile on old and new systems and (hopefully) minimising time spent updating it later.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 14:30:11 -0800</pubDate>
      <link>http://roscidus.com/blog/blog/2014/02/13/ocaml-what-you-gain/</link>
      <guid>http://roscidus.com/blog/blog/2014/02/13/ocaml-what-you-gain/</guid>
    </item>
    <item>
      <title>The Couple That Pays Each Other to Put Kids to Bed - NBC News</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7234898'&gt;"The Couple That Pays Each Other to Put Kids to Bed - NBC News"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.nbcnews.com/business/consumer/couple-pays-each-other-put-kids-bed-n13021'&gt;http://www.nbcnews.com/business/consumer/couple-pays-each-other-put-kids-bed-n13021&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 &lt;p&gt;Like most couples, Daniel Reeves and Bethany Soule fight. Unlike most, they solve their spats with dollars.&lt;/p&gt;
&lt;p&gt;When a chore comes up neither wants to do, they put their hands behind their back and think of how much they'd pay the other to do it. Then, at the same time, they show that number on their fingers.&lt;/p&gt;
&lt;p&gt;It might be $20 to put the kids to bed, $4 to go fetch tacos in the rain, or $400 to make travel plans. Whoever has the lowest bid does the job and gets paid their bid to do it.&lt;/p&gt;
&lt;p&gt;It's basic &lt;a href="http://en.wikipedia.org/wiki/Game_theory"&gt;game theory&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Behavioral_economics"&gt;behavioral economics&lt;/a&gt;, just applied to a marriage.&lt;/p&gt;
&lt;p&gt;Folks like Danny and Bethany, part of the burgeoning "quantified self" movement, use smartphones and gadgets to track their goals. From the steps they take, number of emails they answer, and hours they play with their kids, they believe a better you is just a data point away.&lt;/p&gt;
&lt;p&gt;For this Portland, Ore., couple, just as in love as when they met nine years ago, their objective is total fairness and zero resentment, using cold hard cash.&lt;/p&gt;
&lt;p&gt;"'But I did the dishes last time!' turns into, 'But I did the dishes last time and I got paid $40 for it, so that was kind of awesome!'" said Bethany, 32, who co-founded and runs a startup called &lt;a href="http://beeminder.com"&gt;Beeminder&lt;/a&gt; with her husband, Danny, 38. They have two kids, Faire and Cantor, ages 6.7 and 4.997, according to a program Danny wrote.&lt;/p&gt;
&lt;p&gt;If that sounds geeky, that's just for starters.&lt;/p&gt;
&lt;p&gt;At one point, they paid each other $24 an hour to watch the kids. At another, Danny paid Bethany about $30,000 in various costs to have their first child while he worked a full-time tech job and she took time off school. Split over what to name their kid, they submitted sealed bids worth several thousand dollars.&lt;/p&gt;
&lt;p&gt;"If the money makes the other person feel valued &#9472; and like there's a payoff &#9472; great," said Paula Szuchman, co-author of Spousonomics, in an email. "For some couples a thank you and hug might suffice. For this couple they need something more tangible."&lt;/p&gt; "You need to really appreciate that money is utility, you have to trust in the math so much." &lt;p&gt;In the couple's ledger, Bethany's balance is -$80,421.10, largely money she owes Danny from grad school. Sometimes she pays for more things out of pocket in "the real world" to bring down her debt in the private books. The plan is their startup's eventual success will wipe out the balances.&lt;/p&gt;
&lt;p&gt;"Sometimes it will feel unfair in the short term, but you have to trust that it will be fair in the long term," said Danny.&lt;/p&gt;
&lt;p&gt;They do use some tricks to make it easier, like separate bank accounts. To cut down on bookkeeping they also say a random number between one and 10 when they haggle. The chore still gets done, but only if their two numbers match is there a payout, which they multiply by 10 to make up for only one in 10 bids matching.&lt;/p&gt;
&lt;p&gt;"Normal people have perfect good approximations of this," said Danny. "This is just nerd level turned up to 11."&lt;/p&gt;
&lt;p&gt;For two people who met online and share advanced degrees in computer science, it's a great system.&lt;/p&gt;
&lt;p&gt;"You need to really appreciate that money is utility," said Bethany, a concept borrowed from economic theory. "You have to trust in the math so much."&lt;/p&gt;
&lt;p&gt;So what about sex?&lt;/p&gt;
&lt;p&gt;There's no bartering in the bedroom, they say.&lt;/p&gt;
&lt;p&gt;"I don't think we've ever disagreed," said Bethany, because there's never been a time when only one of them was in the mood.&lt;/p&gt;
&lt;p&gt;Family therapist Terrence Real has no problem with the cash component. "They use it as a gauge to ask the critical question... 'what's it to ya?'" he said.&lt;/p&gt;
&lt;p&gt;However, there can be dangers if kids are involved. "If I was their child and I learned that they were bidding over the task of putting me to sleep I might get upset," said Real.&lt;/p&gt;
&lt;div&gt;
&lt;img src="http://media3.s-nbcnews.com/i/newscms/2014_04/128956/140121-couple-pays-bed-inline-12p_da04c4d84c9a555eea81fb4c5f8e5af5.jpg"&gt;Leah Nash&lt;p&gt;Daniel Reeves reads his children Cantor Soule-Reeves (rt) and Faire Soule-Reeves (lt) a bed time story at their home in Portland, OR. &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Another wrinkle is that the couple hasn't factored for how Danny didn't give birth to two children. He's also earned more in his life, giving him a bigger pot to bet with. They're mulling over whether to give Bethany a lump-sum payment to fix the imbalance.&lt;/p&gt;
&lt;p&gt;It sounds mercenary, even cruel. But there are ways within the system to show affection.&lt;/p&gt;
&lt;p&gt;Recently Danny and Bethany haggled to see if he would drive her home after a long day of work or if she would have to ride her bike. She bet $15, and he intentionally "lost," so that he could do her the favor.&lt;/p&gt;
&lt;p&gt;Communicating in a series of brief instant messages, she replied back with a smiley face emoticon, a symbol of 21st century love distilled down to two characters.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;In &lt;a href="http://messymatters.com/autonomy"&gt;this blog post&lt;/a&gt;, Bethany describes how their system works in more detail. Danny and Bethany's startup, Beeminder, can be found &lt;a href="http://beeminder.com"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
 &lt;p&gt;First published February 13 2014, 1:22 AM&lt;/p&gt;
 
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 14:30:11 -0800</pubDate>
      <link>http://www.nbcnews.com/business/consumer/couple-pays-each-other-put-kids-bed-n13021</link>
      <guid>http://www.nbcnews.com/business/consumer/couple-pays-each-other-put-kids-bed-n13021</guid>
    </item>
    <item>
      <title>
cr.yp.to: 
2014.02.13: A subfield-logarithm attack against ideal lattices
</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7235282'&gt;"
cr.yp.to: 
2014.02.13: A subfield-logarithm attack against ideal lattices
"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://blog.cr.yp.to/20140213-ideal.html'&gt;http://blog.cr.yp.to/20140213-ideal.html&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;h1&gt;The cr.yp.to &lt;a href='http://blog.cr.yp.to/index.html'&gt;blog&lt;/a&gt;
&lt;/h1&gt;
 &lt;div&gt;&lt;table&gt;
&lt;tr&gt;&lt;td&gt;
&lt;b&gt;2014.02.13: A subfield-logarithm attack against ideal lattices&lt;/b&gt; Computational algebraic number theory tackles lattice-based cryptography.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;
&lt;a href='http://blog.cr.yp.to/20140205-entropy.html'&gt;&lt;b&gt;2014.02.05: Entropy Attacks!&lt;/b&gt;&lt;/a&gt; The conventional wisdom says that hash outputs can't be controlled; the conventional wisdom is simply wrong.&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt; &lt;h2&gt;2014.02.13: A subfield-logarithm attack against ideal lattices&lt;/h2&gt;
&lt;h3&gt;Background: post-quantum cryptography&lt;/h3&gt;
&lt;p&gt;
Imagine that an attacker is &lt;i&gt;recording all your network traffic&lt;/i&gt;.
Yes, yes, I know this sounds paranoid,
but
&lt;a href="https://intelligence.house.gov/sites/intelligence.house.gov/files/documents/Huawei-ZTE%20Investigative%20Report%20%28FINAL%29.pdf"&gt;the U.S. government said&lt;/a&gt;
in October 2012
&lt;a href="intelligence.house.gov/sites/intelligence.house.gov/files/documents/Huawei-ZTE%20Investigative%20Report%20%28FINAL%29.pdf"&gt;[mirror]&lt;/a&gt;
that we have to watch out for Chinese-manufactured routers
providing "Chinese intelligence services access to telecommunication networks"
for "economic and foreign espionage by a foreign nation-state already known to be
a major perpetrator of cyber espionage".
&lt;/p&gt;
&lt;p&gt;
This recorded traffic includes your public keys,
the public keys of everyone you're communicating with,
and all the ciphertexts encrypted to those keys.
Years from now the attacker
will use Shor's algorithm
to factor your RSA public keys
and compute discrete logarithms of your ECC public keys.
The attacker will then decrypt all the ciphertexts.
Furthermore,
if you're still using RSA and ECC for signatures at that point,
the attacker will forge valid signatures,
for example on operating-system updates.
&lt;/p&gt;
&lt;p&gt;
Shor's algorithm needs a large general-purpose quantum computer.
When I say "general-purpose"
I mean that the computer
can reliably carry out certain standard quantum operations
in any specified order.
Beware that one heavily advertised corner of quantum computing,
namely &lt;a href="http://www.scottaaronson.com/blog/?p=954"&gt;D-Wave's quantum-annealing computer&lt;/a&gt;,
doesn't even try to be general-purpose.
D-Wave's computer can't run most quantum algorithms,
in particular can't run Shor's algorithm,
and has
&lt;a href="http://arxiv.org/abs/1401.7087"&gt;very little evidence of actually being useful&lt;/a&gt;.
Large general-purpose quantum computers will be much more useful,
notably because they can run Shor's algorithm.
&lt;/p&gt;
&lt;p&gt;
It isn't easy to build a large general-purpose quantum computer,
but many people publicly working on it
seem to think that they'll be successful next decade.
Maybe there will be serious obstacles that slow down or stop this success,
but there's clearly a serious risk to RSA and ECC,
and it isn't sensible risk management to pretend that the problem doesn't exist.
&lt;/p&gt;
&lt;p&gt;
Fortunately,
there are post-quantum alternatives to RSA and ECC.
My favorites are
&lt;a href="http://pqcrypto.org/hash.html"&gt;hash-based signatures&lt;/a&gt;
and
&lt;a href="http://pqcrypto.org/code.html"&gt;code-based encryption&lt;/a&gt;,
both of which were introduced in the 1970s
and inspire confidence after extensive security analysis.
&lt;/p&gt;
&lt;h3&gt;Lattice-based cryptography&lt;/h3&gt;
&lt;p&gt;
&lt;a href="http://pqcrypto.org/lattice.html"&gt;Lattice-based cryptography&lt;/a&gt;
is another important candidate for post-quantum public-key cryptography,
and is the main topic of this blog post.
The main practical reason to consider lattice-based encryption
rather than code-based encryption
is that lattice-based systems advertise &lt;b&gt;much smaller public keys&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;
Actually, there are two types of lattice-based encryption.
The first type uses special types of lattices called &lt;b&gt;ideal lattices&lt;/b&gt;;
the classic example is the NTRU cryptosystem introduced almost twenty years ago.
The second type uses lattices without this special ideal structure.
The second type is much slower and has much larger public keys,
so from now on I'll consider only the first type.
Sometimes people write lattice-based papers of the second type
because they find unstructured lattices simpler than ideals,
but then there are followup papers adding ideals to the picture
(e.g., switching from "LWE" to "Ring-LWE"),
because ideals are critical for the efficiency of lattice-based cryptography.
&lt;/p&gt;
&lt;p&gt;
Lattice-based encryption has also attracted attention from theoreticians
who talk about its
"flexibility for realizing powerful tools like fully homomorphic encryption".
The latest speed reports for fully homomorphic encryption
are&#8212;let me use precise technical terminology here,
since I'm a big fan of careful benchmarking&#8212;ludicrously slow,
but without ideal lattices they would be &lt;i&gt;utterly&lt;/i&gt; ludicrously slow.
Lattices can also be used for constructing more important tools
such as signatures.
&lt;/p&gt;
&lt;p&gt;
The same theoreticians also say that lattice-based cryptography has
"strong provable security guarantees".
If this is taken literally then it is false advertising.
The correct advertising
is that a broad class of attacks
against various lattice-based cryptosystems
can be converted, with limited loss of speed and success probability,
into attacks against certain standard lattice problems.
But this begs the question of how hard those lattice problems are.
(It also doesn't distinguish lattice-based cryptography
from other areas of cryptography,
but that's a topic for another blog post.)
&lt;/p&gt;
&lt;p&gt;
The prototypical lattice problem is the &lt;b&gt;shortest vector problem&lt;/b&gt; (SVP):
finding the shortest nonzero vector in a lattice L,
given as input a basis for L.
There are many papers attacking this problem,
and some papers attacking the variants of the problem
that actually appear in lattice-based cryptography.
The typical attack cost twenty years ago was exponential in n log n,
where n is the lattice dimension.
Newer attacks take time exponential in n,
obviously an improvement if n is large enough.
There have been various improvements in the base of these exponentials;
subexponential speedups; polynomial-factor speedups; etc.
&lt;/p&gt;
&lt;h3&gt;An attack against ideal lattices&lt;/h3&gt;
&lt;p&gt;
Here's the main point of this blog post:
an ideal-lattice attack strategy that,
unlike traditional lattice attacks,
exploits the multiplicative structure of ideals.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Setup.&lt;/b&gt;
The prototypical ideal-lattice problem is as follows.
Someone has a secret short nonzero element g of a ring R,
and tells us a basis for the principal ideal gR.
Our task is to find g.
The ring R is public,
the ring of integers of a standard degree-n number field.
&lt;/p&gt;
&lt;p&gt;
Practically all of the literature on lattice-based cryptography
takes specifically R = &lt;b&gt;Z&lt;/b&gt;[&#950;N],
the smallest subring of the complex numbers containing &#950;N = exp(2 &#960; i/N);
I'll also focus on this case,
so I won't discuss the general theory of number fields. 
The number field in this case is &lt;b&gt;Q&lt;/b&gt;(&#950;N),
the smallest subfield of the complex numbers containing &#950;N;
this field has degree n = #(&lt;b&gt;Z&lt;/b&gt;/N)*.
There is a ring isomorphism from &lt;b&gt;Q&lt;/b&gt;[x]/&#934;N(x) to the number field taking x to &#950;N,
where &#934;N is the Nth cyclotomic polynomial.
The same map restricted to &lt;b&gt;Z&lt;/b&gt;[x]/&#934;N(x) is a ring isomorphism from &lt;b&gt;Z&lt;/b&gt;[x]/&#934;N(x) to R.
&lt;/p&gt;
&lt;p&gt;
NTRU takes N to be prime;
then n = N-1 and &#934;N(x) = (xN-1)/(x-1) = 1+x+x2+...+xn.
&lt;a href="http://eprint.iacr.org/2013/757"&gt;PASSSign&lt;/a&gt;,
a recent lattice-based signature scheme,
also takes a prime N, specifically 433 or 577 or 769 or 1153;
in each case n factors as a product of powers of 2 and 3
to allow "very fast Fourier transform algorithms".
In recent papers it is very common
to consider only the cases N=2, N=4, N=8, N=16, etc.;
then n = N/2 and &#934;N(x) = xn+1.
For example,
&lt;a href="https://en.wikipedia.org/wiki/SWIFFT"&gt;SWIFFT&lt;/a&gt;
takes N=128, so &#934;N(x) = x64+1.
&lt;/p&gt;
&lt;p&gt;
There are exactly n different ring morphisms
from the number field into the complex numbers.
Specifically,
there are exactly n different roots of &#934;N in the complex numbers
(namely all powers &#950;Nj for j in (&lt;b&gt;Z&lt;/b&gt;/N)*),
and for each root there is a unique ring morphism
from the number field into the complex numbers
taking &#950;N to that root.
I'll write these n different maps as &#968;1,&#968;2,...,&#968;n;
the order doesn't matter.
Dirichlet's logarithm map takes each nonzero element v of the number field
to the vector Log v = (log|&#968;1(v)|,log|&#968;2(v)|,...,log|&#968;n(v)|),
where log is the natural logarithm.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Precomputation.&lt;/b&gt;
The attack begins as follows.
Write down many small elements s of R,
and keep a list of principal ideals sR
that factor as products of powers of small prime ideals.
When there are more factorizations than small prime ideals,
solve for the small prime ideals
as products of (positive or negative) powers of these principal ideals.
This is simple linear algebra on the exponents in the factorizations.
&lt;/p&gt;
&lt;p&gt;
(There is a tiny algebraic obstruction to this,
called the &lt;i&gt;class group&lt;/i&gt; of R.
A nontrivial class group means that
a few tiny prime ideals won't be expressible as products of powers of the principal ideals;
but all the remaining small prime ideals
will be expressible as products of powers of the principal ideals
and those few tiny prime ideals.
One can easily trace the effect of this complication
through the rest of the computation.)
&lt;/p&gt;
&lt;p&gt;
Note that any excess factorizations end up writing R in various ways
as products of powers of principal ideals,
i.e., end up writing down units u as various products of powers of elements s of R.
We can compute each Log u to any desired accuracy
as a corresponding sum of multiples of Log s.
Dirichlet's unit theorem tells us that Log R* is a lattice of dimension n/2-1
(since, out of the maps &#968;1,&#968;2,...,&#968;n above,
0 map to the reals and n don't),
and also tells us the determinant of the lattice,
so it's easy to recognize when we have enough units to generate this lattice.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Main computation: the logarithm attack.&lt;/b&gt;
If the input ideal gR factors into small prime ideals
then we immediately obtain an expression
for gR as a product of powers of principal ideals,
and thus for a generator of gR as a product of powers of elements of R.
If the input ideal gR doesn't factor into small prime ideals
then we search relatively small elements e of gR
until the quotient ideal eR(gR)-1 factors into small prime ideals,
again showing us a generator of gR as a product of powers of elements of R.
&lt;/p&gt;
&lt;p&gt;
We're not done yet:
we cannot expect this generator to be g or anything else small.
The generator is gu for some unknown u in the unit group R*.
So let's look for elements of the lattice Log R* close to Log gu;
modulo roots of unity this means
looking for u in R* with log|&#968;1(u)| close to log|&#968;1(gu)|,
with log|&#968;2(u)| close to log|&#968;2(gu)|, etc.
This is a closest-vector problem for a lattice of dimension n/2-1.
&lt;/p&gt;
&lt;p&gt;
The desired generator g (and -g and other roots of unity times g)
will be found in this way:
by hypothesis g is short,
so |&#968;1(g)|,|&#968;2(g)|,... are short,
so log|&#968;1(g)|,log|&#968;2(g)| are small,
so log|&#968;1(u)| is close to log|&#968;1(gu)| etc.
The coefficients of g
are easily interpolated from good approximations to &#968;1(g),&#968;2(g),...,
which in turn are easily computed from good approximations
to log &#968;1(g),log &#968;2(g),... (with any branch cuts),
which in turn are easily computed from
the known power-of-product expressions of u and gu.
One can alternatively compute g by computing u and gu modulo a large prime,
or modulo enough not-so-large primes.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Improvement: the subfield-logarithm attack.&lt;/b&gt;
At this point the lattice dimension has dropped from the original n by a factor of 2.
But we can do even better,
depending on the exact choice of N.
&lt;/p&gt;
&lt;p&gt;
Consider, for example, N=128,
and consider the ring automorphism m of R that takes &#950;128 to -&#950;128;
this is equivalent to the ring automorphism of &lt;b&gt;Z&lt;/b&gt;[x]/(x64+1) that takes x to -x.
Imagine that, along with the input ideal gR,
we magically know the product g m(g).
This makes the last step of the logarithm attack much easier:
we know gu as a power product,
so we know gu m(gu) as a power product,
so dividing by the magic g m(g) we know u m(u) as a power product
(as usual modulo roots of unity).
This gives us many new linear constraints on Log u,
effectively reducing the lattice dimension from 32 to just 16.
&lt;/p&gt;
&lt;p&gt;
How do we find the magic g m(g)?
Notice that the product g m(g) is in the subring S = &lt;b&gt;Z&lt;/b&gt;[&#950;64].
Starting from gR,
compute gR m(gR) = gm(g)R;
compute gm(g)S as the intersection of S with gm(g)R;
and compute gm(g) by applying the algorithm recursively to S.
&lt;/p&gt;
&lt;p&gt;
Generalization:
Compute all relative norms of gR
down to all proper subfields of the original number field.
Use the same algorithm recursively to compute each relative norm of g.
These relative norms give various linear constraints on Log u;
the remaining lattice dimension depends on the exact subfield structure.
A large number of subfields of small relative degree
should make the attack much faster;
if n has enough small prime factors then I would expect
the lattice dimension to drop to something slightly sublinear in n,
producing a slightly subexponential total attack cost.
&lt;/p&gt;
&lt;p&gt;
For comparison,
&lt;a href="http://link.springer.com/content/pdf/10.1007%2F3-540-46035-7%5F20.pdf"&gt;Gentry and Szydlo&lt;/a&gt;
introduced a fast method to compute g from the product gg*,
where g* is the complex conjugate of g;
i.e., from the relative norm of g
in the maximal real subfield of the original cyclotomic field.
This can be viewed as reducing the security level n of the original field
to the security level n/2 of the subfield.
However, from the perspective of the logarithm attack,
both of these fields already have the same n/2 security level
and the reduction doesn't accomplish anything.
The subfield-logarithm attack reduces the security level further,
breaking the n/2 barrier.
&lt;/p&gt;
&lt;h3&gt;Where does this algorithm come from?&lt;/h3&gt;
&lt;p&gt;
The precomputation that I've described doesn't have anything new:
it's one of the standard approaches
to computing class groups and unit groups,
the most fundamental tasks in computational algebraic number theory.
There's one paper from 2009 on fully homomorphic encryption,
by &lt;a href="http://eprint.iacr.org/2009/571"&gt;Smart and Vercauteren&lt;/a&gt;,
that mentions but dismisses class-group computations,
claiming incorrectly that the "best known algorithms"
run in "exponential time in the degree of the field";
see below for more about the speed of these computations.
&lt;/p&gt;
&lt;p&gt;
As for the logarithm attack,
I think that this approach to finding generators is reasonably well known
among computational algebraic number theorists.
On the other hand,
after considering the possibility of computing gu,
Smart and Vercauteren dismiss gu as being useless since it "will be very large";
they don't seem to realize that one can use logarithms to move from gu to the target g.
&lt;/p&gt;
&lt;p&gt;
I haven't seen the subfield-logarithm attack before.
I think it's the first attack
that can push the lattice dimension far below n/2.
I came up with the idea in 2012
and have been discussing it with various people since then.
&lt;/p&gt;
&lt;h3&gt;How fast is the precomputation?&lt;/h3&gt;
&lt;p&gt;
This is certainly an important question.
If the precomputation is too slow to carry out
then we'll never even get to the lattice steps.
But I find it clear that for large n
the precomputation will be vastly less important than the reduced lattice dimension.
&lt;/p&gt;
&lt;p&gt;
For number fields &lt;i&gt;of fixed degree&lt;/i&gt;
this precomputation is well known to take time subexponential in log|D|,
where D is the discriminant.
The argument is easy:
there are many easy-to-find number-field elements of norm at most x,
where x is not much larger than |D|;
these norms have chance roughly 1/y of being y-smooth,
where y is subexponential in log|D|,
roughly exp(sqrt(0.5 log x log log x));
all of the steps in the class-group computation
then take time polynomial in y,
and thus subexponential in log|D|.
The same argument appears in analyzing the number-field sieve,
an integer-factorization algorithm that works in the same way
and that obviously produces as a side effect
the class group of the underlying number field.
&lt;/p&gt;
&lt;p&gt;
As the degree grows,
one expects more and more separation
between the discriminant and the norms.
I haven't seen a careful analysis of this effect in the class-group literature.
There are various papers stating that class-group computation
takes time &lt;i&gt;at most&lt;/i&gt; nO(n) times something subexponential in log|D|;
but this is an upper bound, not a lower bound.
To slow down the computation so much
would require norms exponential in n2,
and as far as I can see this is very easy to beat.
&lt;/p&gt;
&lt;p&gt;
In mid-2013 I chatted with an expert on class-group computations,
&lt;a href="http://www.lix.polytechnique.fr/~biasse/"&gt;Jean-Fran&#231;ois Biasse&lt;/a&gt;,
and learned that for some big families of number fields he had an even better result
(by fancier techniques),
namely complexity exp((log D)1/3+o(1)) no matter how large n is.
Soon afterwards he told me that for &#934;N he expects subexponential complexity
by at least two different techniques.
Later in the year I discussed class-group computations with
&lt;a href="http://sydney.edu.au/science/people/stephen.donnelly.php"&gt;Steve Donnelly&lt;/a&gt;
from the
&lt;a href="http://magma.maths.usyd.edu.au/magma/"&gt;Magma&lt;/a&gt; computer-algebra group,
and he told me that class-group computation for x64+1 is "not very hard".
&lt;/p&gt;
&lt;h3&gt;Has the complete attack been proven? Implemented? Tested?&lt;/h3&gt;
&lt;p&gt;
No, no, and no.
Carefully analyzing and optimizing the complete attack
will require tons of serious effort.
Maybe the attack will turn out to be very slow or non-functional for some reason.
But my best guess at this point is that it will work
and will force serious changes in parameters for lattice-based cryptography.
&lt;/p&gt;
&lt;p&gt;
It also seems that the power-of-2 cyclotomic fields
used in most recent lattice papers
are quite far from the safest number fields,
even though these fields are constantly advertised as allowing "proofs of security".
Here's what's particularly troublesome:
&lt;b&gt;The structures used in the "proofs of security", such as automorphisms,
are also some of the structures exploited in this attack.&lt;/b&gt;
This is not an isolated phenomenon:
I see many examples where the single-minded pursuit of "proofs of security"
adds dangerous structures to cryptographic systems
and ends up compromising actual security.
Any competent cryptographer will &lt;b&gt;pay attention to the cryptanalytic algorithms&lt;/b&gt;
and recommend that cryptographic users avoid these dangerous structures.
&lt;/p&gt;
&lt;p&gt;
Whether or not the attack actually turns out to work,
it's clear that at this point
there has not been adequate security evaluation of ideal lattices.
There is a vast body of work on computational algebraic number theory,
including problems that are essentially identical
to typical problems in lattice-based cryptography;
this work has been given only the briefest consideration by lattice-based cryptographers
and has been dismissed for frivolous reasons.
&lt;/p&gt;
&lt;h3&gt;Wait a minute. Does solving this ideal-lattice problem actually break lattice-based cryptosystems?&lt;/h3&gt;
&lt;p&gt;
Sometimes yes, sometimes no.
Here are four examples to consider:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;My understanding is that solving this problem
directly breaks the Smart&#8211;Vercauteren system.
&lt;/li&gt;
&lt;li&gt;To break NTRU we want to solve a similar problem
having two dimensions on top of a degree-n number field.
I think this can be embedded into the same problem in a degree-2n number field.
&lt;/li&gt;
&lt;li&gt;I don't think the embedding trick will work in general for larger relative dimensions.
But maybe it's possible to generalize everything from nonzero ideals
to projective modules.
&lt;/li&gt;
&lt;li&gt;Many systems actually rely on CVP rather than SVP.
The usual "embedding" trick for CVP doesn't respect the ideal-lattice structure
unless one increases the &lt;i&gt;relative&lt;/i&gt; dimension by 1.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
People haven't actually been trying to break
all these different lattice-based cryptosystems;
people have been trying to break a few central lattice problems,
most prominently SVP.
If SVP is actually secure,
and if ideal-lattice SVP is at least as secure as SVP,
and if the cryptosystems are at least as secure as ideal-lattice SVP,
then the cryptosystems are secure;
but if ideal-lattice SVP &lt;i&gt;isn't&lt;/i&gt; actually so secure
then this logic collapses
and we're left with cryptosystems whose security hasn't actually been evaluated.
&lt;/p&gt;
&lt;h3&gt;Is there a defense against this attack?&lt;/h3&gt;
&lt;p&gt;
Here's a concrete suggestion, which I'll call NTRU Prime,
for eliminating the structures that I find worrisome
in existing ideal-lattice-based encryption systems.
This suggestion uses a number field of &lt;i&gt;prime&lt;/i&gt; degree,
so that the only subfield is &lt;b&gt;Q&lt;/b&gt;;
and uses an irreducible polynomial xp-x-1 with a very large Galois group,
so that the number field is very far from having automorphisms.
The best CVP dimension seems to be about half the degree;
this is optimal for number fields without many real embeddings.
(It's hard to create many real embeddings while keeping coefficients small,
and if coefficients are large then there are other problems.)
This suggestion also chooses its modulus q
so that (&lt;b&gt;Z&lt;/b&gt;/q)[x]/(xp-x-1) is a field;
this simultaneously avoids (1) NTRU's traditional 2-adic structure
and (2) the linear splittings used in most recent papers.
&lt;/p&gt;
&lt;p&gt;
Standardize a prime p larger than 10.
Standardize a positive integer t.
Standardize a prime q larger than 72t+3 such that p and q are different
and xp-x-1 is irreducible mod q.
Define R = &lt;b&gt;Z&lt;/b&gt;[x]/(xp-x-1).
&lt;/p&gt;
&lt;p&gt;
Alice's public key is a random-looking element h of (R/q)*.
Bob sends Alice a message as follows:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Take a random m in R with all coefficients in {-1,0,1}.
&lt;/li&gt;
&lt;li&gt;Take a random r in R
with t coefficients equal to 1, t coefficients equal to -1,
and the remaining coefficients all 0.
&lt;/li&gt;
&lt;li&gt;Send c=m+rh to Alice.
&lt;/li&gt;
&lt;li&gt;Use a hash of (m,r) as a secret key (for, e.g., AES-GCM)
to encrypt and authenticate Bob's actual message to Alice.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Alice secretly computed the public key as follows:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Take a secret f in R
with t coefficients equal to 1, t coefficients equal to -1,
and the remaining coefficients all 0.
Note that 1+3f is nonzero, and thus invertible, in the field R/q.
&lt;/li&gt;
&lt;li&gt;Take a secret g in R
with floor(p/3) coefficients equal to 1, floor(p/3) coefficients equal to -1,
and the remaining coefficients all 0.
Note that g is invertible in R/q.
&lt;/li&gt;
&lt;li&gt;Compute the public key h=3g/(1+3f) in R/q.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Given c=m+rh,
Alice recovers m and r as follows:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Compute (1+3f)c = (1+3f)m+3rg in R/q.
&lt;/li&gt;
&lt;li&gt;Lift to R with coefficients in {-(q-1)/2,...,(q-1)/2}.
&lt;/li&gt;
&lt;li&gt;Reduce modulo 3 to obtain m.
&lt;/li&gt;
&lt;li&gt;Compute r=(c-m)/h in R/q.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
This works because the lifting produces exactly (1+3f)m+3rg in R:
i.e., each coefficient of (1+3f)m+3rg is in {-(q-1)/2,...,(q-1)/2}.
Indeed, multiplying m by f in &lt;b&gt;Z&lt;/b&gt;[x] (with the usual lifts)
produces a polynomial of degree at most 2p-2,
with each coefficient bounded in absolute value by 2t.
Each coefficient of mf in R is thus bounded in absolute value by 6t:
note that reducing modulo xp-x-1
adds the coefficient of x2p-2
to the coefficients of xp-1 and xp-2,
adds the coefficient of x2p-3
to the coefficients of xp-2 and xp-3,
etc.
Each coefficient of rg is similarly bounded in absolute value by 6t.
Each coefficient of m+3fm+3rg is thus bounded in absolute value by 1+18t+18t = 36t+1,
and q was chosen so that (q-1)/2 is at least ((72t+3)-1)/2 = 36t+1.
Typically the coefficients of m+3fm+3rg are considerably smaller,
but I prefer to avoid the mess of figuring out
whether an attacker can trigger decryption failures.
&lt;/p&gt;
&lt;p&gt;
Of course, I don't recommend actually using NTRU Prime
unless and until it survives years of serious cryptanalytic attention,
including quantitative evaluation of specific parameter choices.
I could have screwed up something small, or something big,
or there could be something even more dangerous
about the entire concept of using ideal lattices in cryptography.
&lt;/p&gt;
 &lt;span&gt;&lt;b&gt;Version:&lt;/b&gt;
This is version 2014.02.13 of the 20140213-ideal.html web page.
&lt;/span&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 15:04:11 -0800</pubDate>
      <link>http://blog.cr.yp.to/20140213-ideal.html</link>
      <guid>http://blog.cr.yp.to/20140213-ideal.html</guid>
    </item>
    <item>
      <title>
		   Migrating from MongoDB to Cassandra	</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7235570'&gt;"
		   Migrating from MongoDB to Cassandra	"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.fullcontact.com/blog/mongo-to-cassandra-migration/?'&gt;http://www.fullcontact.com/blog/mongo-to-cassandra-migration/?&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 
 
 
 
 
 &lt;h2&gt;The Story&lt;/h2&gt;
&lt;p&gt;Long long ago (2011) in a &lt;a href="http://www.fullcontact.com/blog/from-basements-to-brad-feld-a-startup-story/"&gt;Littleton founder&#8217;s basement&lt;/a&gt;&#160;not so far away, the decision was made to use MongoDB as the persistence engine for our Person API product. The idea of the Person API is pretty simple:&lt;/p&gt;
&lt;p&gt;Given some input piece of data &lt;i&gt;{email, phone, Twitter, Facebook}&lt;/i&gt;, find other data related to that query and produce a merged document of that data. This is essentially a curated, recursive federated search, where multiple databases are consulted, reconsulted and their results aggregated and stored into MongoDB. These databases consist of various internal services (including previously searched data) and APIs from providers across the web.&lt;/p&gt;
&lt;p&gt;When we first started, we needed to move fast according to what our market wanted. As our customers queried us and we added data, our database continued to grow in size and operations per second.&lt;/p&gt;
&lt;p&gt;We were a young startup and made a few crucial mistakes. MongoDB was not a mistake. It let us iterate rapidly and scaled reasonably well. Our mistake was when we decided to put off fixing MongoDB&#8217;s deployment, instead vertically scaling to maintain the Person API product while working on other technologies such as the FullContact Address Book and our &#8216;secret sauce&#8217; behind the Person API and our deduplication technology (look for posts on this later this month).&lt;/p&gt;
&lt;p&gt;Eventually MongoDB started to have issues with lock time percentage, even on the generous hardware it already had. MongoDB has what&#8217;s known as a shared-exclusive or readers-writer lock over each database. While a write operation is in progress, a read is unable to proceed until the write operation yields the lock. Even then, a queued write is given precedence over a read and can queue reads, leading to a latency spike.&#160;As you can imagine, the Person API writes a lot of data (sometimes over 200K for a single document), averaging a 50/50 or 60/40 distribution of read/writes and several million daily writes. We worked hard to eliminate multiple updates by no longer using partial updates and staging documents in Redis, but even this wasn&#8217;t enough and our lock percentage continued to climb into the 40-50%&#8217;s leaving us with unhappy customers.&lt;/p&gt;
&lt;p&gt;We pushed Mongo onto the best database hardware AWS could provide: &lt;em&gt;hi1.4xlarge&lt;/em&gt;&#8217;s. With these we had 2TB of SSD. This dropped our lock percentage to a small fraction of the 40-50% we&#8217;d been pushing, not to mention much more storage space.&lt;/p&gt;
&lt;p&gt;And it was for a long time. We refactored products and launched others.&#160;One day we realized our &#8216;data burn&#8217; was on the order of 20GB a day and we had less than 200GB remaining on our SSDs. Even MongoDB&#8217;s &#8216;repairDatabase&#8217; to compact the data was unable to comfortably free enough data for more than a few days.&lt;/p&gt;
&lt;h2&gt;The Dirty Solution&lt;/h2&gt;
&lt;p&gt;The most painful part of this story to admit is the solution we came up with to limp along. Maybe you can guess from the code snippit below:&lt;/p&gt;
&lt;p&gt;By the time we had cycles to spend, it was too late to shard effectively. It would have been terribly painful and unacceptably slowed our cluster for days. We could have done it in parallel, but if we were going to make a painful transition it was better to align our database technology to our eventual goals of extreme fault-tolerance, horizontal scalability, and operational simplicity. MongoDB&#8217;s HBase-esque model of config servers, shard routing daemons, and the shards themselves is needlessly complicated. Webscale, right?&lt;/p&gt;
&lt;p&gt;To buy us time, we &#8216;sharded&#8217; our MongoDB cluster. At the application layer. We had two MongoDB clusters of hi1.4xlarges, sent all new writes to the new cluster, and read from both. If a document was present in the new cluster we&#8217;d return that, otherwise the old cluster. Meanwhile, Sherlock (internal codename for our search system) was busily refreshing older data and writing it into the new cluster as well. This in mind, we projected this to only last 2-3 months.&lt;/p&gt;
&lt;h2&gt;Cassandra&lt;/h2&gt;
&lt;p&gt;We&#8217;re believers in the Netflix way of thinking. Build with resilience in the DNA of an application, with the public cloud in mind. We&#8217;ve been long Apache HBase users, but found it to be tough to maintain 100% availability on Amazon EC2 for a variety of reasons. Cassandra attracted us with a veritable siren song of operational simplicity. No HDFS or Zookeeper dependencies, multiple servers serve the same data without requiring regions to failover (a process of sometimes multiple minutes or more), and a similar data model to HBase.&lt;/p&gt;
&lt;p&gt;It&#8217;s important to note that Cassandra was a year-long evaluation for us and aligned with our availability and fault-tolerance goals. Additionally, strong consistency isn&#8217;t something we needed for our use case. YMMV.&#160;That&#8217;s not to say things would be simple or expected, so we moved a less critical service over.&lt;/p&gt;
&lt;h2&gt;Trial Run &#8211; HBase -&amp;gt; Cassandra&lt;/h2&gt;
&lt;p&gt;As experience is everything when it comes to stable production deployments, we first moved a different part of our system, an outbound HTTP proxy cache if you will, to Cassandra. The existing system ran on Apache HBase, quite well for the most part. Periodically, this system is MapReduce&#8217;d into a coherent set of data for ingestion. This was a simple refactor and taught us some of the patterns we&#8217;d need to undertake our MongoDB conversion.&lt;/p&gt;
&lt;p&gt;The general pattern of any online conversion looks a little like this:&lt;/p&gt;
&lt;p&gt;We lean toward reading HBase HFiles directly when we can and avoiding HBase. It&#8217;s unnecessary overhead when the entire table is processed anyways. Our plan was to go from HFiles -&amp;gt; SSTables -&amp;gt; Cassandra Cluster.&lt;/p&gt;
&lt;p&gt;One of the issues we first ran into was a deficiency of Cassandra&#8217;s Hadoop MapReduce tooling. By default, it&#8217;s not compiled for Cloudera CDH4. We ended up vendoring half of the classes and applying patches from the Cassandra JIRA before giving up on their BulkOutputFormat (BOF) and ColumnFamilyOutputFormat (CFOF). It was a nice concept to write pre-sorted SSTables and load them directly into Cassandra, but it didn&#8217;t work out due to a combination of Hadoop bugs and operational issues (Context#progress no-op, SSTableLoader just randomly breaking, having to manually delete the SSTables after load).&lt;/p&gt;
&lt;p&gt;The other option was to use the ColumnFamilyOutputFormat, but we had ended up deciding to use CQL3 tables to make things simple from a tooling perspective (cqlsh and co.) and future-proofing perspective. CQL3 is really some pattern-sauce on top of traditional &#8216;Thrift&#8217; tables using Composite Types. The Hadoop utilities are rooted in these more complex Thrift APIs and doesn&#8217;t easily support non-COMPACT CQL3 tables. I&#8217;d already written some basic utilities around being able to utilize CQL3 tables from the BulkOutputFormat, &lt;a href="https://gist.github.com/Xorlev/7905443"&gt;MutationUtils.java&lt;/a&gt;&#160;(these are pretty rough, you&#8217;ll get the idea if you need it), and found the CFOF to be just as awkward but without the promise of SSTables bulk-loaded. We didn&#8217;t try the CQL3 tools in recent releases.&lt;/p&gt;
&lt;p&gt;Eventually we decided to just use &lt;a href="https://github.com/Netflix/astyanax/"&gt;Astyanax (Netflix&#8217;s Cassandra Client)&lt;/a&gt; directly from our MapReduce job reducers, which worked splendidly for writes. The first time we did this, we wrote as fast as we could to the Cassandra cluster. Topping out at just under 9300 writes/s on a 6-node cluster, we were appropriately impressed. Unfortunately, using all the CPU for the write path left no time for leveled compaction and the cluster spent several days trying to compact 128mb SSTables. Thanks to AWS, we spun up another cluster and repeated the job, this time with the Size-Tiered Compaction strategy (less IO, good for spinning disks) and a Guava RateLimiter to allow Cassandra to breathe and compact during the load process. A handy side-effect of ratelimiting, we were able to accurately project when our jobs would be finished.&lt;/p&gt;
&lt;p&gt;The rest of this trial wasn&#8217;t without issues, some of which we didn&#8217;t discover until we&#8217;d moved ahead with moving MongoDB to Cassandra. In general, a simple move.&lt;/p&gt;
&lt;h2&gt;MongoDB Conversion&lt;/h2&gt;
&lt;p&gt;We&#8217;re big users of Hadoop MapReduce and tend to lean on it whenever we need to make large scale migrations, especially ones with lots of transformation. That fact along with our existing conversion project from before, we used 10gen&#8217;s &lt;a href="https://github.com/mongodb/mongo-hadoop/blob/master/examples/README.md"&gt;mongo-hadoop&lt;/a&gt; project which has input and output formats for Hadoop. We immediately realized that the InputFormat which connected to a MongoDB cluster was ill-suited to our usage. We had 3TB of partially-overlapping data across 2 clusters. After calculating input splits for a few hours, it began pulling documents at an uncomfortably slow pace. It was slow enough, in fact, that we developed an alternative plan.&lt;/p&gt;
&lt;p&gt;The plan was to export large BSON files to S3 and MapReduce over them the same way we&#8217;d converted our cache before. Files are MapReduce&#8217;s bread and butter, this would work much better than opening a lot of cursors against a backup-restored MongoDB server. The Mongo-Hadoop project has a BSONInputFormat for reading in BSON dump files. A match made in heaven? Perhaps.&lt;/p&gt;
&lt;p&gt;MongoDB is capable of exporting a single BSON file comprising your entire collection with the &lt;a href="http://docs.mongodb.org/v2.2/reference/mongodump/"&gt;mongodump&lt;/a&gt; utility. The mongodump utility doesn&#8217;t need MongoDB to be running, making it ideal to extract data from backups.&#160;As we&#8217;d kept backups with snapshotted EBS volumes, we were able to boot a new machine with backup-bearing volumes attached. We pointed mongodump at the data directory on the EBS volume and exported the data as BSON to another disk, which took about a day for each cluster. After this process, we had to run mongo-hadoop&#8217;s &lt;a href="https://github.com/mongodb/mongo-hadoop/blob/master/tools/bson_splitter.py"&gt;bson_splitter.py&lt;/a&gt; tool to generate split points the BSONInputFormat can use, otherwise the entire file must be read in by a single mapper. It goes without saying, a single mapper is very slow. Then you can push both files to S3 and kick off your Hadoop job.&lt;/p&gt;
&lt;pre&gt;# Approximate commands..
# mongodump --dbpath /mnt/restore/data/ --collection identities --out /mnt/bsondump/
&amp;lt;wait a day&amp;gt;
# python bson_splitter.py /mnt/bsondump/identities.bson
&amp;lt;wait 20 minutes&amp;gt;
# s3cmd --multipart-chunk-size-mb=1000 put /mnt/bsondump/identities.bson s3://bucket/path
# s3cmd put /mnt/bsondump/.identities.bson.splits s3://bucket/path&lt;/pre&gt;
&lt;p&gt;It&#8217;s important to use a newer s3cmd with multipart support. S3 uploads tend to fail for single large objects with single puts, or too many puts. 5mb (the default with s3cmd-1.1.0) was too small &#8212; we found an acceptable size at 1GB which partitioned the upload into ~1500 individual uploads resulting in a single large ~1.5TB S3 object. The other cluster was about half the size. Phew.&#160;The only wrinkle we had with this process was getting SBT (mongo-hadoop&#8217;s build tool) to upload our CDH4-compiled artifacts to our Artifactory for inclusion into our conversion project.&lt;/p&gt;
&lt;p&gt;The mapper in this case is quite simple:&lt;/p&gt;
&lt;pre&gt;package com.fullcontact.hadoop.mongo;
import com.mongodb.hadoop.io.BSONWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import org.bson.BSONObject;
import java.io.IOException;
public class MongoConversionMapper extends Mapper&amp;lt;Object,BSONObject, Text, BSONWritable&amp;gt; {
 @Override
 protected void map(Object key, BSONObject value, Context context) throws IOException, InterruptedException {
 if (key != null &amp;amp;&amp;amp; value != null) {
 context.write(new Text(key.toString()), new BSONWritable(value));
 }
 }
}
&lt;/pre&gt;
&lt;p&gt;This emits each document as a different input group. The reducer too can be rather simple. Note: IntWritable key doesn&#8217;t match the Text key of the mapper, not shown is an intermediate step to SequenceFiles. We did this to more rapidly develop the reducer against on-disk data vs. re-pulling from S3 each time. Additionally, we wanted to write more jobs over this data for analytical purposes.&lt;/p&gt;
&lt;pre&gt; @Override
 protected void reduce(IntWritable randomIdentifier, Iterable&amp;lt;BSONWritable&amp;gt; values, Context context) throws IOException, InterruptedException {
 for (BSONWritable bsonWritable : values) {
 ProfileIdentity identity = null;
 try {
 identity = buildProfile(bsonWritable);
 context.getCounter(Stats.PROFILE_SUCCESS).increment(1);
 } catch (Exception e) {
 log.warn("Error building profile for " + identity + ", ex: " + e.getClass().getSimpleName() + " =&amp;gt; " + e.getMessage(), e);
 context.getCounter(Stats.PROFILE_FAILED).increment(1);
 continue;
 }
 try {
 writeCassandraRow(context, identity.get_id(), identity);
 context.getCounter(Stats.CASSANDRA_SUCCESS).increment(1);
 } catch (Exception e) {
 log.warn("Error writing Identity ("+randomIdentifier.toString()+") " + e.getClass().getSimpleName(), e);
 context.getCounter(Stats.CASSANDRA_FAILED).increment(1);
 }
 }
 }
 private void writeCassandraRow(Context context, String storageIdentifier, ProfileIdentity identity) throws IOException, InterruptedException, FullContactException {
 limiter.acquire();
 store.upsert(storageIdentifier , identity);
 }&lt;/pre&gt;
&lt;p&gt;We ran the conversion and converted all the data to our new data model, along the way cleaning up several artifacts of mistakes long past. The process was fast enough that we needed to rate limit the writes to Cassandra lest we end up with a endlessly-compacting cluster as we had in our first attempt. We then ran the same job against the second cluster of newer data and overwrote any overlapping data from the first load.&lt;/p&gt;
&lt;p&gt;At long last, we&#8217;d moved MongoDB into Cassandra and started verifying data and ensuring our 9-node m1.xlarge deployment would hold up under our read load by doing dual reads and not returning the Cassandra result to API consumers. Unfortunately, our latency was terrible and we weren&#8217;t yet sure why.&lt;/p&gt;
&lt;h2&gt;Cassandra &amp;amp; Linux Tuning&lt;/h2&gt;
&lt;p&gt;We&#8217;d just started sending reads and realized that spinning rust might not be fast enough for us, or AWS&#8217;s rust was even more rusty than we&#8217;d imagined. Not everything added up though. With some napkin math, it was pretty obvious we should have been able to sustain much higher loads for the amount of spindles we&#8217;d deployed. m1.xlarges are given 4 ephemeral drives to work with. 1 of these we dedicate to the Cassandra write log, the other 3 are put into RAID0 for a data directory. On top of this, we run LUKS+dm-crypt to encrypt the filesystem, as we have the self-imposed requirement to encrypt all contact data. All that being said, 200 IOPS should have been a cakewalk for this system. What was wrong?&lt;/p&gt;
&lt;p&gt;The first thing we really noticed is that we were reading 40+MB/s of disk for a relatively modest 500-1000KB/s of network traffic out. That was our first clue that something wasn&#8217;t tuned right, either in Cassandra or Linux. The disparity was especially troublesome, we were doing a lot of extra work. We first tried lots of different Cassandra tuning options, but finally came around to Linux.&lt;/p&gt;
&lt;p&gt;It&#8217;s important to set your disk readahead appropriately, especially databases. We&#8217;d forgotten to check it, as the defaults are usually pretty sane. A look at &lt;strong&gt;blockdev &#8211;report&lt;/strong&gt; blew us away.&lt;/p&gt;
&lt;pre&gt;RO RA SSZ BSZ StartSec Size Device
rw 256 512 4096 0 8589934592 /dev/xvda1
rw 128 512 4096 0 450934865920 /dev/xvdb
rw 128 512 4096 0 450934865920 /dev/xvdc
rw 128 512 4096 0 450934865920 /dev/xvdd
rw 128 512 4096 0 450934865920 /dev/xvde
rw 128 512 4096 0 1352803024896 /dev/md127
rw &lt;span&gt;&lt;strong&gt;6144&lt;/strong&gt;&lt;/span&gt; 512 4096 0 1352801452032 /dev/dm-0&lt;/pre&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;For every disk read, we were pulling in 3MB of data (RA is sectors, SSZ is sector size, 6144*512=3145728 bytes) into cache. Oops. Not only were we doing tons of extra work, but we were trashing our page cache too. The default for the device-mapper used by LUKS under Ubuntu 12.04LTS is incredibly sub-optimal for database usage, especially our usage of Cassandra (more small random reads vs. large rows). We turned this down to 128 sectors &#8212; 64KB. Below this we saw no benefits.&lt;/p&gt;
&lt;p&gt;We also mounted our filesystems with noatime and nodiratime. They&#8217;re pretty easy to forget, but given how often SSTables are accessed it definitely adds up.&lt;/p&gt;
&lt;p&gt;Immediately after our first readahead change, we saw promising first results:&lt;/p&gt;
&lt;p&gt;And disk IO from StackDriver:&lt;/p&gt;
&lt;p&gt;Loads flattened and Cassandra was able to perform. We played with some Cassandra tuning too. Given our large number of keys, we opted to bump our key cache to 500MB to help reduce the number of random IOs necessary to find a row. We also tuned down our bloom_filter_fp_chance on our rows to 0.00075 to keep false positive rates low and random IOs down. We considered increasing our read_repair_chance to keep data warm on replicas too, but deemed that to be more harmful than helpful. All throughout, our graphs were our truth.&lt;/p&gt;
&lt;p&gt;Over the next few days we continued dual reads, verified data, and moved select customers over before others to receive feedback before flipping the switch. For the last two months, the FullContact Person API has been powered by Cassandra 1.2.10.&lt;/p&gt;
&lt;h2&gt;That&#8217;s a wrap&lt;/h2&gt;
&lt;p&gt;Moving to Cassandra was a large effort with many long-running steps and acclimation time. Taking up the banner of any new database system is not without it&#8217;s share of risks. One really needs to know their data and access patterns to appropriately choose a technology. For us, horizontal scalability and the ability to run our database in a self-repairing autoscaling group are the most important factors for our choice. Paired with &lt;a href="https://github.com/Netflix/Priam"&gt;Priam&lt;/a&gt;, we&#8217;ve been able to unsafely terminate Cassandra instances with no impact to production clients. And perhaps the greatest benefit, we&#8217;ve been able to continue serving our API clients with an ever-expanding database of contact information.&lt;/p&gt;
&lt;p&gt;Our success with Cassandra has inspired other teams to adopt it for problems where traditional RDBMSes are an impedance mismatch. Cassandra will likely power features in our Address Book in the future.&lt;/p&gt;
&lt;p&gt;The future is bright for Cassandra at FullContact. As for MongoDB, I can&#8217;t say I&#8217;ve ever looked back.&lt;/p&gt;
 &lt;p&gt;&lt;em&gt;Image Credit: &lt;a href="http://www.flickr.com/photos/jemimus/"&gt;Jemimus via Flickr&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update: Check out the &lt;a href="https://news.ycombinator.com/item?id=7235570"&gt;Hacker News discussion&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
 
 
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 15:44:50 -0800</pubDate>
      <link>http://www.fullcontact.com/blog/mongo-to-cassandra-migration/?</link>
      <guid>http://www.fullcontact.com/blog/mongo-to-cassandra-migration/?</guid>
    </item>
    <item>
      <title>Keybase.io</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7235634'&gt;"Keybase.io"&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 13 Feb 2014 15:54:50 -0800</pubDate>
      <link>https://keybase.io/</link>
      <guid>https://keybase.io/</guid>
    </item>
    <item>
      <title>The Day We Fought Back by the numbers</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7235656'&gt;"The Day We Fought Back by the numbers"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='https://thedaywefightback.org/the-results/'&gt;https://thedaywefightback.org/the-results/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; </description>
      <pubDate>Thu, 13 Feb 2014 15:58:50 -0800</pubDate>
      <link>https://thedaywefightback.org/the-results/</link>
      <guid>https://thedaywefightback.org/the-results/</guid>
    </item>
    <item>
      <title>Moon | Typeset In The Future</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7236411'&gt;"Moon | Typeset In The Future"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://typesetinthefuture.com/moon/'&gt;http://typesetinthefuture.com/moon/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 
&lt;p&gt;I&#8217;ll tell you &lt;em&gt;exactly&lt;/em&gt; where we are now. We are in the FUTURE; and we are on the MOON.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://typesetinthefuture.com/2001-a-space-odyssey/"&gt;After studying&#160;&lt;em&gt;2001: A Space Odyssey&lt;/em&gt; in intimate detail&lt;/a&gt;,&#160;Duncan Jones&#8217;s&#160;&lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Moon_(film)"&gt;Moon&lt;/a&gt;&lt;/em&gt;&#160;was the logical choice for my second foray into sci-fi typography. As this opening shot illustrates, &lt;em&gt;Moon&lt;/em&gt; is a bleak, lonely, and above all &lt;em&gt;beautiful&lt;/em&gt; love-letter to classic sci-fi typography and design. It&#8217;s also one of my favorite sci-fi films of all time.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; I forgot to mention it originally, but this article contains some pretty massive spoilers about the plot of &lt;/em&gt;Moon&lt;em&gt;. In my defense, you&#8217;re here to read about typography, and typography is &lt;strong&gt;always&lt;/strong&gt;&#160;essential to the plot.&#160;Nonetheless, if you&#160;haven&#8217;t seen &lt;/em&gt;Moon&lt;em&gt;,&lt;a href="https://itunes.apple.com/us/movie/moon/id331842140"&gt; go and&#160;watch it first&lt;/a&gt;. The future will still be&#160;here when you&#8217;re done.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The searching question above is the opening shot of an infomercial for Lunar Industries. Their&#160;moon-based mining of &lt;a href="http://en.wikipedia.org/wiki/Helium-3"&gt;Helium-3&lt;/a&gt; is providing a plentiful source of energy on Earth. (On the evidence of the advert, they sound like a &lt;em&gt;great&lt;/em&gt; company to work for. I&#8217;m sure they have strong ethical values.)&lt;/p&gt;
&lt;p&gt;Sounds like science fiction, right? I&#8217;m afraid that&#8217;s where you would be &lt;em&gt;wrong&lt;/em&gt;, sir or madam. As of January 2014, &lt;a href="http://www.theverge.com/2014/2/9/5395684/nasa-begins-hunt-for-private-companies-to-mine-the-moon-catalyst"&gt;NASA is accepting applications from companies who want to mine the moon.&lt;/a&gt; This film isn&#8217;t science fiction &#8211; it&#8217;s inevitable science &lt;em&gt;fact&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Fittingly, the infomercial finishes with an animation of the words &#8216;sun / moon / earth / energy / future&#8217;&#8230;&lt;/p&gt;
&lt;p&gt;&#8230;and a transition to the Lunar Industries logo:&lt;/p&gt;
&lt;p&gt;As introductions go, it doesn&#8217;t get more &lt;a href="http://en.wikipedia.org/wiki/Eurostile"&gt;Eurostile Bold Extended&lt;/a&gt; than that.&lt;/p&gt;
&lt;p&gt;And that&#8217;s where I have bad news, I&#8217;m afraid. It&#8217;s &lt;em&gt;not&lt;/em&gt; Eurostile. It&#8217;s not even Eurostile&#8217;s daddy,&#160;&lt;a href="http://en.wikipedia.org/wiki/Microgramma_(typeface)"&gt;Microgramma&lt;/a&gt;. &lt;a href="http://www.gavinrothery.com/they-never-went-to-the-moon/2011/8/21/get-your-logo-on.html"&gt;According to conceptual designer Gavin Rothery&lt;/a&gt;,&#160;it&#8217;s actually &lt;a href="http://www.azfonts.net/load_font/microsbe.html"&gt;Microstyle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You&#8217;re probably wondering how to tell the three apart, right? Don&#8217;t worry &#8211; it&#8217;s trivially easy, as the big number two below will illustrate. Eurostile is in blue; Microgramma is in red; Microstyle is in green:&lt;/p&gt;
&lt;p&gt;I&#8217;m glad we&#8217;ve cleared that up.&#160;(For ease of blog post cross-referencing, I&#8217;m going to put my fingers in my ears and continue to call it Eurostile anyway.)&lt;/p&gt;
&lt;p&gt;Of course, sci-fi typography isn&#8217;t &lt;em&gt;just&lt;/em&gt; about the Eurostile, you know. Eurostile has a long-standing competitor; a rival, if you will. And the yang to Eurostile&#8217;s tenuous yin is none other than our rectilinear friend,&#160;&lt;a href="http://en.wikipedia.org/wiki/Bank_Gothic"&gt;Bank Gothic&lt;/a&gt;. &lt;em&gt;Moon&lt;/em&gt; uses both fonts in quick succession for maximum futuristic effect.&lt;/p&gt;
&lt;p&gt;A clever 3D layout of Bank Gothic Medium is used for much of the film&#8217;s opening credits, superimposed in-and-over each of the positioning scenes:&lt;/p&gt;
&lt;p&gt;One of these scenes introduces us to the film&#8217;s central character. Look! It&#8217;s Sam Bell, running on a treadmill to keep fit during his three-year stay on the moon. But what&#8217;s that on his t-shirt?&lt;/p&gt;
&lt;p&gt;Haha! It&#8217;s a meaningless, throwaway gag about running. Because &#8216;runners don&#8217;t quit&#8217;, do they? Unless this comedy 80s typography has a deeper, hidden meaning&#8230;&lt;/p&gt;
&lt;p&gt;One of my favorite things about &lt;em&gt;Moon&lt;/em&gt; is its constant foreshadowing of the movie&#8217;s central twist. &lt;em&gt;Wake Me When It&#8217;s Quitting Time&lt;/em&gt;&#160;is a pretty damn blatant forward reference to what happens later in the film. (And&#160;I hate to say it, type-fans, but that&#8217;s not &lt;a href="http://en.wikipedia.org/wiki/Helvetica"&gt;Helvetica&lt;/a&gt; on Sam&#8217;s t-shirt. It&#8217;s &lt;a href="http://en.wikipedia.org/wiki/Arial"&gt;Arial&lt;/a&gt;. You can tell from the Q and the G.)&lt;/p&gt;
&lt;p&gt;This opening sequence is also the first time we discover that the moon base is called &#8216;SARANG &#8211; &#49324;&#46993;&#8217;:&lt;/p&gt;
&lt;p&gt;This is essentially a duplication &#8211; the word &#8216;sarang&#8217; is an English rendition of the Korean word &#8216;&lt;a href="http://en.wiktionary.org/wiki/%EC%82%AC%EB%9E%91"&gt;&#49324;&#46993;&lt;/a&gt;&#8217;, which means &#8216;love&#8217; or &#8216;affection&#8217;. (&#8216;Sarang&#8217; is also etymologically and graphically close to &#8216;saram&#8217; or &#8216;&lt;a href="http://en.wiktionary.org/wiki/%EC%82%AC%EB%9E%8C"&gt;&#49324;&#46988;&lt;/a&gt;&#8217;, which, ironically, can mean either &#8216;person&#8217; or &#8216;people&#8217;.) In either case, it&#8217;s an unfortunate choice of name for Sam&#8217;s permanent home on the Moon, many thousands of miles away from his beloved wife and daughter.&lt;/p&gt;
&lt;p&gt;Next up is &lt;em&gt;Moon&lt;/em&gt;&#8216;s title card, an inverted homage to &lt;a href="http://en.wikipedia.org/wiki/Apollo_8"&gt;Apollo 8&lt;/a&gt;&#8216;s famous &lt;a href="http://en.wikipedia.org/wiki/Earthrise"&gt;Earthrise&lt;/a&gt; photograph:&lt;/p&gt;
&lt;p&gt;&#8230;albeit with more Bank Gothic than the original:&lt;/p&gt;
&lt;p&gt;(The gradient fill effect on the MOON logotype is a popular sci-fi trope for adding drama to typography. We&#8217;ll revisit this in future blog posts.)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Moon&lt;/em&gt; uses an interesting angular typeface for its location-establishing shot:&lt;/p&gt;
&lt;p&gt;This typeface is &lt;a href="http://en.wikipedia.org/wiki/OCR-A_font"&gt;OCR-A&lt;/a&gt;, which was designed in 1968 for use in &lt;a href="http://en.wikipedia.org/wiki/Optical_character_recognition"&gt;optical character recognition&lt;/a&gt; systems. It&#8217;s actually an &lt;a href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=5567"&gt;ISO standard for character recognition&lt;/a&gt;. Moreover, it looks like THE FUTURE, and so it makes a perfect choice for on-screen interstitial positioning shots. (&lt;a href="http://ansuz.sooke.bc.ca/page/about"&gt;Matthew Skala&lt;/a&gt; has very kindly made &lt;a href="http://ansuz.sooke.bc.ca/page/fonts#ocra"&gt;a modern implementation of OCR-A available for free on his web site&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;Back inside the base, Sam notices that one of the four HE3 harvesters has a full load ready for collection. The on-screen display is classic Bold Extended sci-fi, with bonus points for yellow-and-white text and barber&#8217;s-pole patterning:&lt;/p&gt;
&lt;p&gt;Also notable in this screenshot is a juxtaposition between the precision of the harvester&#8217;s on-screen display, and Sam&#8217;s hand-written customization of the surrounding fascia. This human customization of a clinical surrounding is something we certainly didn&#8217;t see in &lt;em&gt;2001&lt;/em&gt;, but it&#8217;s a common theme in &lt;em&gt;Moon&lt;/em&gt;. Sam&#8217;s boredom keeps finding creative and subversive outlets within the strict design confines of the moon base environment.&lt;/p&gt;
&lt;p&gt;Sam&#8217;s pressurized suit has three fabric &lt;a href="http://en.wikipedia.org/wiki/Mission_patch"&gt;mission patches&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Although Sam&#8217;s patches follow the Apollo &lt;a href="http://typesetinthefuture.com/postfiles/2001/2001_apollo_7_full.jpg"&gt;mission&lt;/a&gt; &lt;a href="http://typesetinthefuture.com/postfiles/2001/2001_apollo_9_full.jpg"&gt;patch&lt;/a&gt; &lt;a href="http://typesetinthefuture.com/postfiles/2001/2001_apollo_10_full.jpg"&gt;trend&lt;/a&gt; for Bold Extended typography, they are&#160;very different from those of the Apollo era. &lt;a href="http://en.wikipedia.org/wiki/Mission_patch#In_the_United_States"&gt;NASA astronauts always had creative input into the patches for their missions&lt;/a&gt;. In his fantastic autobiography &lt;a href="http://www.amazon.com/dp/B004KAB3ZM"&gt;&lt;em&gt;Carrying The Fire&lt;/em&gt;&lt;/a&gt;, Command Module Pilot &lt;a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)"&gt;Michael Collins&lt;/a&gt; describes &lt;a href="http://genedorr.com/patches/Apollo/Ap11.html"&gt;the design process for the Apollo 11 mission patch&#160;typography&lt;/a&gt;:&lt;/p&gt;
 I also penciled APOLLO around the top of my circular design and ELEVEN around the bottom. Neil didn&#8217;t like the ELEVEN because it wouldn&#8217;t be understandable to foreigners, so after trying XI and 11, we settled on the latter and put APOLLO 11 around the top. 
&lt;p&gt;Sam&#8217;s patches are the exact opposite of those from the Apollo era &#8211; rectangular rather than round; corporate and branded rather than personal and decorative.&lt;/p&gt;
&lt;p&gt;Sam records a message for Lunar Industries central back on Earth. He&#8217;s unable to speak to them live, due to an ongoing problem with the long-range comms:&lt;/p&gt;
&lt;p&gt;The on-screen interface is once again all about the Bold Extended.&#160;&lt;span&gt;One of the buttons to the right of the screen has an interesting label. I wonder what it does?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Sam isn&#8217;t happy about the fact he&#8217;s been on the base for nearly three years. &#8220;I&#8217;m talking to myself on a regular basis&#8221;, he says. (Be careful what you wish for, Sam.)&lt;/p&gt;
&lt;p&gt;Sam&#8217;s attempts to customize and personalize his environment continue in the living quarters. He&#8217;s keeping count of his days on the Moon with a dry-wipe marker on the bathroom wall. By my reckoning, this is 146 days and counting &#8211; not quite the nearly-three-years mentioned in the plot.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; &lt;a href="https://news.ycombinator.com/item?id=7237044"&gt;Patrick Devine has commented on Hacker News&lt;/a&gt;&#160;that there are actually &lt;strong&gt;156&lt;/strong&gt; smileys, not 146. Turns out I miscounted. Patrick also notes that three years is exactly 156 weeks. Good spot, sir!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;It&#8217;s not clear whether the facial emotions represent Sam&#8217;s mental state day by day. Nonetheless, they are a neat parallel to the simple&#160;expressions seen on the&#160;front of GERTY, Sam&#8217;s AI companion in the base:&lt;/p&gt;
&lt;p&gt;GERTY communicates his emotions to Sam via the &lt;em&gt;GERTY Unit Primary Emotional Interface&lt;/em&gt;. He has a stock set of&#160;&lt;a href="http://en.wikipedia.org/wiki/Emoji"&gt;emoji&lt;/a&gt;&#160;faces to draw on, based very closely on the standard emoticons that any Internet user will be familiar with. I&#8217;ll reference a few of them throughout this article, along with their official emoji names.&lt;/p&gt;
&lt;p&gt;Sam has drawn a window and pastoral scene on another metal wall, and surrounded it with family photos&#8230;&lt;/p&gt;
&lt;p&gt;&#8230;and the functional Eurostile of a harvester status screen is similarly customized with family photos and postcards:&lt;/p&gt;
&lt;p&gt;Just readable amongst the photos is a Post-it note detailing Sam&#8217;s cheeky plans for starting the day:&lt;/p&gt;
 07.30: Have a wank
07.32: Clean up mess
07.33: Nice cup of tea and a bickie 
&lt;p&gt;Sam might be American, but the film&#8217;s &lt;a href="http://en.wikipedia.org/wiki/Duncan_Jones"&gt;director&lt;/a&gt; and &lt;a href="http://gavinrothery.com"&gt;designer&lt;/a&gt; are definitely British.&#160;(To explain for Americans: &#8216;bickie&#8217; is British slang for &#8216;biscuit&#8217;;&#160;&#8216;biscuit&#8217; is British slang for &#8216;cookie&#8217;; and you can work out &#8216;wank&#8217; for yourselves.)&lt;/p&gt;
&lt;p&gt;This Post-it is particularly ironic in light of the quotation we see as the camera pans down the wall of photos:&lt;/p&gt;
 &#8216;Abstinence is a good thing, but it should always be practised in moderation.&#8217; &#8211; Anon 
&lt;p&gt;I&#8217;m delighted to report that the card is set in popular sci-fi font&#160;&lt;a href="http://www.linotype.com/1086586/Swiss911-family.html"&gt;Swiss 911 Compressed&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Next up is a gratuitous shot of Sam having a shower. If this isn&#8217;t a &#8216;backside of the moon&#8217; gag, I&#8217;ll be sorely disappointed.&lt;/p&gt;
&lt;p&gt;I&#8217;ve had a closer look, but I can&#8217;t see any typography:&lt;/p&gt;
&lt;p&gt;If there&#8217;s no typography, then I&#8217;m afraid we&#8217;re just not interested.&lt;/p&gt;
&lt;p&gt;After his shower, Sam gets his hair cut by GERTY:&lt;/p&gt;
&lt;p&gt;GERTY is using a futuristic vacuum-based device to suck up Sam&#8217;s hair and cut it to the perfect length. You can just make out a Lunar Industries logo on the device&#8217;s hi-gloss handle:&lt;/p&gt;
&lt;p&gt;Here&#8217;s how the device looks in close-up:&lt;/p&gt;
&lt;p&gt;HANG ON A MINUTE. What&#8217;s that written on the transparent plastic tube?&lt;/p&gt;
&lt;p&gt;Crop. Zoom in. Move left. Zoom in again. &lt;a href="http://tvtropes.org/pmwiki/pmwiki.php/Main/EnhanceButton"&gt;Enhance&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That embossed text appears to say:&lt;/p&gt;
 www.haircut.com
2&#8243; EXTENDER 
&lt;p&gt;Is this the Moon production team saying that at some point in the future, &lt;a href="http://www.haircut.com"&gt;haircut.com&lt;/a&gt; will be purchased by a futuristic hair-cutting company who make robotic trimming devices?&lt;/p&gt;
&lt;p&gt;No, dear reader, it is not. Because that future is already here. TODAY.&lt;/p&gt;
&lt;p&gt;It turns out that &lt;a href="http://www.haircut.com"&gt;haircut.com&lt;/a&gt; is the present-day home of RoboCut Inc.:&lt;/p&gt;
&lt;p&gt;&#8230;and that RoboCut Inc. are the makers of the RoboCut DIY:&lt;/p&gt;
&lt;p&gt;That&#8217;s right &#8211; the product you see in &lt;em&gt;Moon&lt;/em&gt; is a product you can buy yourself today, for only &lt;a href="http://www.haircut.com/product_info.php?products_id=29"&gt;$59.99 (including free shipping)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Want to know how the RoboCut works? Here&#8217;s RoboCut founder and inventor, Dr.&#160;Alfred Natrasevschi, to explain:&lt;/p&gt;
&lt;p&gt;Haircut completed, Sam expresses his annoyance that LunarSat (a.k.a. &#8216;long range comms&#8217;) still hasn&#8217;t been fixed. GERTY notes that it&#8217;s fairly low on the company&#8217;s priority list right now.&#160;His passive role in this scene is fascinating. If you watch&#160;&lt;em&gt;Moon&lt;/em&gt; after&#160;&lt;em&gt;2001&lt;/em&gt;, you can&#8217;t help but be suspicious of GERTY, in the same way that Ripley can&#8217;t help but be suspicious of Bishop in &lt;a href="http://en.wikipedia.org/wiki/Aliens_(film)"&gt;&lt;em&gt;Aliens&lt;/em&gt;&lt;/a&gt;&#160;after her experience with Ash in &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Alien_(film)"&gt;Alien&lt;/a&gt;&lt;/em&gt;. GERTY is a calm, relaxing AI voice with a glowing camera lens and corporate logo on the front. Moon certainly isn&#8217;t afraid to play on our expectations. After all, what could possibly go wrong?&lt;/p&gt;
&lt;p&gt;Sam listens to a message from his wife and daughter. He can&#8217;t talk to them live due to the LunarSat mishap, but he&#8217;s delighted to see them nonetheless. Just look at the joy on his face:&lt;/p&gt;
&lt;p&gt;No. &lt;em&gt;Don&#8217;t&lt;/em&gt; look at his face; look at his &lt;em&gt;clipboard&lt;/em&gt;. That&#8217;s where the typographic interestingness is most likely to be found.&lt;/p&gt;
&lt;p&gt;Crop. Zoom in. Rotate ninety degrees. Zoom in again.&#160;&lt;a href="http://tvtropes.org/pmwiki/pmwiki.php/Main/EnhanceButton"&gt;Enhance&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Hold on a minute &#8211; it looks like this clipboard was signed on the 16th January 2008. But that&#8217;s not THE FUTURE &#8211; indeed, it&#8217;s not even after&#160;&lt;em&gt;Moon&lt;/em&gt; was released!&lt;/p&gt;
&lt;p&gt;Moreover, who&#8217;s the signatory? It looks remarkably like the name of the film&#8217;s&#160;&lt;a href="http://www.imdb.com/name/nm0884255/"&gt;line producer&lt;/a&gt;. (Damn you, high-definition film releases.)&lt;/p&gt;
&lt;p&gt;Later on, Sam watches some TV. Specifically, he watches&#160;&lt;a href="http://en.wikipedia.org/wiki/Bewitched"&gt;Bewitched&lt;/a&gt;&#160;&#8211;&#160;or as it&#8217;s also known in the future, &#8216;SUPERNATURAL COMEDY LADIES&#8217;:&lt;/p&gt;
&lt;p&gt;As he makes a cup of tea, he spots a strange girl sat in his chair:&lt;/p&gt;
&lt;p&gt;While he&#8217;s distracted by the plot, let&#8217;s take a look at two typographically-interesting posters in the background:&lt;/p&gt;
&lt;p&gt;This poster, with its square iconography and cheery SELECTION EVENT &#8211; HEARTY FEEDING &#8211;&#160;PLEASE ENJOY &#8211; ORGANIC SUSTAINANCE MENU, makes you wonder if the Lunar Industries catering team learnt their trade at&#160;&lt;a href="http://theportalwiki.com/wiki/Aperture_Science"&gt;Aperture Science&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Even more interesting is a sign just visible beneath the pre-packed food boxes:&lt;/p&gt;
 Organic Material &#8211; Soylent Storage 
&lt;p&gt;Soylent. That name sounds familiar. Surely this isn&#8217;t the same foodstuff made by the Soylent Corporation in 1973&#8242;s &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Soylent_Green"&gt;Soylent Green&lt;/a&gt;&lt;/em&gt;? Because if it is, that would be remarkably worrying. &lt;a href="http://youtu.be/6zAFA-hamZ0?t=13s"&gt;Soylent Green is People&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;At least we can be confident that &lt;em&gt;this&lt;/em&gt; Soylent isn&#8217;t made from people. After all, where would you get them from? There&#8217;s only one person on this moon base, and that&#8217;s Sam Bell.&lt;/p&gt;
&lt;p&gt;Sam burns his hand in all the kerfuffle. GERTY fixes him up in the infirmary.&#160;Just visible behind Sam&#8217;s head is a screen with the comforting advice to &#8220;TRUST ROBOTIC ASSIST&#8221;:&lt;/p&gt;
&lt;p&gt;ROBOTIC ASSIST is the official name for GERTY 3000, Sam&#8217;s AI companion in the base&#160;(voiced by Kevin Spacey doing his best HAL impression). And why &lt;em&gt;not&lt;/em&gt; TRUST ROBOTIC ASSIST?&#160;I&#8217;m sure &lt;a href="http://www.killerclips.com/clip.php?id=113&amp;amp;qid=1385"&gt;the 3000 series has a perfect operational record&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Sam goes to bed. Beside his bunk is issue 15 of &lt;em&gt;Take Off&lt;/em&gt; Magazine:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Take Off&lt;/em&gt;&#160;was a&#160;132-issue aviation&#160;&lt;a href="http://en.wikipedia.org/wiki/Partwork"&gt;partwork&lt;/a&gt;&#160;published in the 1980s by&#160;&lt;a href="http://www.eaglemoss.com/our_history.aspx"&gt;Eaglemoss&lt;/a&gt;. This issue features V-Bombers and Biz-Jets:&lt;/p&gt;
&lt;p&gt;Sam has a sexy dream about his wife. It does not, however, contain any typography.&lt;/p&gt;
&lt;p&gt;Sam is rudely awoken by his &lt;a href="http://www.presenttime.com/p-2115-ka4134.aspx"&gt;Karlsson Digibell Alarm Clock&lt;/a&gt;, which features a classic LCD font. Sam&#8217;s future version of the clock has a bonus feature compared to the one you can buy in shops today. That&#8217;s right &#8211; Sam&#8217;s version plays &lt;a href="http://en.wikipedia.org/wiki/Chesney_Hawkes"&gt;Chesney Hawkes&lt;/a&gt; songs.&lt;/p&gt;
&lt;p&gt;Specifically, it wakes him up by playing Chesney&#8217;s number one hit&#160;&lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/The_One_and_Only_(song)"&gt;The One And Only&lt;/a&gt;&lt;/em&gt;. &#8220;I am, the one and only&#8221;, croons Mr. Hawkes.&lt;/p&gt;
&lt;p&gt;Yes, you heard me right &#8211; t&lt;em&gt;he filmmakers are foreshadowing upcoming events via the lyrics of a Chesney Hawkes song.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Over food, we see more of Sam&#8217;s Post-it reminders:&lt;/p&gt;
 Water plants!!
11:30 Gaze at earth from window 
&lt;p&gt;&#8230;and a picture of the Earth, with &lt;em&gt;Wish You Were Here&lt;/em&gt; on it. He really does want to go home, you know.&lt;/p&gt;
&lt;p&gt;Sam also has an &lt;a href="http://www.ikea.com"&gt;IKEA&lt;/a&gt; instruction booklet tucked behind his Lunar Industries sheet. The reasons for this are somewhat unclear.&lt;/p&gt;
&lt;p&gt;Sam heads out to retrieve some more HE3 from Matthew, one of the harvesters. He sees a second vision of the mysterious girl, and crashes into the side of Matthew, damaging both himself and his rover. The rover&#8217;s emergency sign once again asks him to TRUST ROBOTIC ASSIST:&lt;/p&gt;
&lt;p&gt;There&#8217;s a clear message coming through from these on-screen text displays: if things go wrong, ROBOTIC ASSIST should be TRUSTed to make things right. Let&#8217;s fade to black with that sensible advice in mind.&lt;/p&gt;
&lt;p&gt;Fade up from black. Why hello, Sam! You&#8217;re looking remarkably fresh-faced for someone who&#8217;s just nearly killed himself in an accident. How&#8217;s the head? Fuzzy? Tell you what, why not let GERTY run some tests to check for brain damage:&lt;/p&gt;
&lt;p&gt;This test is a &lt;a href="http://en.wikipedia.org/wiki/Concentration_(game)"&gt;Concentration&lt;/a&gt;-style&#160;matching pairs game. (Unlike Concentration, these cards all have Lunar Industries logos on the back.)&#160;Some of the card symbols are reminiscent of &lt;a href="http://en.wikipedia.org/wiki/Zapf_Dingbats"&gt;Zapf Dingbats&lt;/a&gt; &#8211; such as the&#160;&lt;a href="http://unicode-table.com/en/271A/"&gt;HEAVY GREEK CROSS&lt;/a&gt;, and a rotated&#160;&lt;a href="http://unicode-table.com/en/2756/"&gt;BLACK DIAMOND MINUS WHITE X&lt;/a&gt;&#160;&#8211; but I do wonder if I&#8217;m reading too much into things, and the design team haven&#8217;t just drawn some pretty symbols in &lt;a href="http://en.wikipedia.org/wiki/Adobe_Illustrator"&gt;Illustrator&lt;/a&gt;. (I had hoped that the asterisk card might be my own personal favorite, the&#160;&lt;a href="http://unicode-table.com/en/274B/"&gt;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK&lt;/a&gt;, but alas it is not to be.)&lt;/p&gt;
&lt;p&gt;&#8220;Let&#8217;s try another test&#8221; says GERTY, like some kind of benevolent &lt;a href="http://en.wikipedia.org/wiki/GLaDOS"&gt;GLaDOS&lt;/a&gt;. The analogy makes me trust him even less.&lt;/p&gt;
&lt;p&gt;Shortly thereafter, we overhear GERTY saying something to Lunar Central about &#8220;the new Sam&#8221;. What&#8217;re you going on&#160;about, GERTY?&lt;/p&gt;
&lt;p&gt;I&#8217;ll tell you exactly what he&#8217;s going on about. This is a &lt;em&gt;brand new Sam&lt;/em&gt;. He&#8217;s a clone of the original Sam Bell, and he&#8217;s just been woken up by GERTY. This might get confusing rather quickly, so let&#8217;s lean on our good friend &#8216;typographic convention&#8217;, and use &lt;a href="http://en.wikipedia.org/wiki/Subscript_and_superscript#Subscripts_that_are_dropped_below_the_baseline"&gt;subscript&lt;/a&gt;&#160;to refer to him henceforth as&#160;Sam2. Trust me, it&#8217;ll make life a damn sight easier once you know where we&#8217;re going with this.&lt;/p&gt;
&lt;p&gt;Sam2 spots that Matthew has stalled. He asks GERTY to unlock the doors so that he can go and fix it. GERTY says &#8220;I&#8217;ll pass on your message&#8221;. (This is Lunar Industries&#160;speak for &#8220;&lt;a href="http://www.youtube.com/watch?v=7qnd-hdmgfk"&gt;I&#8217;m sorry Sam, I&#8217;m afraid I can&#8217;t do that&lt;/a&gt;&#8221;.)&lt;/p&gt;
&lt;p&gt;Sam2 has a dream about his wife. This time, it&#8217;s not sexy at all &#8211; it&#8217;s psychologically &lt;em&gt;and&lt;/em&gt; typographically disturbing. There&#8217;s a scary Sam1 under the bedclothes, and he works for RANUL SEIRTSUDNI, on the &#46993;&#49324;-GNARAS base:&lt;/p&gt;
&lt;p&gt;Lunar Central tells Sam2 to stay put. GERTY apologies for being under strict orders not to let him outside. He&#8217;s acting like some kind of&#8230; &lt;em&gt;benevolent&lt;/em&gt; HAL 9000. This analogy actually endears him to me slightly. Sam2 tricks GERTY into letting him go outside anyway. He finds Sam1&#160;in the rover, and brings him back to the base. GERTY tells him that the person he&#8217;s found is &lt;em&gt;also Sam Bell&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GERTICON:&lt;/strong&gt;&#160;OHMYCRIKEYFACE&lt;/p&gt;
&lt;p&gt;A considerable amount of plot happens. It&#8217;s all fascinating, but if I&#8217;m honest, it&#8217;s rather light on typographic action. I feel I&#8217;d be doing us a disservice to document the whole&#160;lot, but I will report an important bit of GERTY dialog when he&#8217;s&#160;explaining&#160;events to Sam1:&lt;/p&gt;
&lt;p&gt;&#8220;I&#8217;m here to keep you safe, Sam.&#8221;&lt;/p&gt;
&lt;p&gt;That sounds a lot like the &lt;a href="http://en.wikipedia.org/wiki/Three_Laws_of_Robotics"&gt;First Law Of Robotics&lt;/a&gt; to me. If GERTY is programmed to follow the Laws, his robot AI is about to have some interesting choices to make.&lt;/p&gt;
&lt;p&gt;A message comes through from Central to say that the crew of the &lt;em&gt;Eliza&lt;/em&gt; are on their way to &#8216;rescue&#8217; Sam2:&lt;/p&gt;
&lt;p&gt;They look like a friendly bunch, don&#8217;t they? The instructions next to their mugshots say:&lt;/p&gt;
 Lunar Industries rescue crews have your best intentions at heart. Please try not to panic until they arrive. Remain on-station and make sure you obey their instructions no matter how strange they may seem. After all they&#8217;re here to help! 
&lt;p&gt;What could possibly go wrong with a&#160;crew called&#160;&lt;a href="http://www.imdb.com/name/nm2707210/?ref_=ttfc_fc_cr51"&gt;Rothery&lt;/a&gt;, &lt;a href="http://www.imdb.com/name/nm0911738/?ref_=ttfc_fc_cr34"&gt;Ward&lt;/a&gt;&#160;and &lt;a href="http://www.imdb.com/name/nm2134910/?ref_=ttfc_fc_cr16"&gt;Shaw&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;Sam2 realizes he must have come from somewhere on the base, and starts hunting around. He and Sam1 have a fight. Sam1 looks in a topical multi-mirror. (Don&#8217;t worry, that&#8217;s definitely Sam1&#160;in both mirrors. After all, it&#8217;s not like there are any &lt;em&gt;more&lt;/em&gt; Sams around, right?)&lt;/p&gt;
&lt;p&gt;GERTY and Sam1 have a Big Chat. When pressed for the truth about his wife, GERTY says &#8220;I can only account for what occurs on the base&#8221;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GERTICON:&lt;/strong&gt; NOTHINGTOSEEHEREFACE&lt;/p&gt;
&lt;p&gt;After some cajoling, GERTY finally tells Sam1 the truth. He&#8217;s a clone, and his memories of his wife and daughter are memory implants.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GERTICON:&lt;/strong&gt; SADTRUTHFACE&lt;/p&gt;
&lt;p&gt;The Sams find some signal-blocking antennas outside the base.&#160;Sam1 goes back to look at his old video logs. GERTY enters a special password on a Windows Keyboard to unlock all of the video diaries:&lt;/p&gt;
&lt;p&gt;Eagle-eyed viewers will notice that the password begins with KLGAN. Unfortunately, the security-conscious Duncan Jones cuts away from the keyboard just before we can hack into his email.&lt;/p&gt;
&lt;p&gt;Sam1 learns that Lunar Industries seem to view the words &#8216;termination&#8217; and &#8216;contract&#8217; in much the same way as the Mafia. Sam2 finds yet more long-range-comms-blocking aerials. He prints out their coordinates on a handy receipt printer:&lt;/p&gt;
&lt;p&gt;I very much doubt &lt;em&gt;those&lt;/em&gt;&#160;are going to become significant later on.&lt;/p&gt;
&lt;p&gt;Now: I&#8217;m sure you&#8217;ve already noticed that these are &lt;a href="http://en.wikipedia.org/wiki/Selenographic_coordinates"&gt;Selenographic coordinates&lt;/a&gt;, as used to refer to locations on the Earth&#8217;s Moon. Specifically, the co-ordinates are:&lt;/p&gt;
 LAT 034&#176;23&#8242;01.2&#8243;S, LONG&#160;124&#176;56&#8242;67.6&#8243;E
LAT 121&#176;09&#8242;56.2&#8243;S, LONG&#160;045&#176;34&#8242;56.4&#8243;E 
&lt;p&gt;We&#8217;ll gloss over the fact that one of these numbers has&#160;sixty-seven seconds in a minute. However, it&#8217;s a little hard to ignore the latitude value of 121&#176;S, given that the &lt;a href="http://en.wikipedia.org/wiki/Latitude"&gt;maximum value that latitude can take&lt;/a&gt; is 90&#176;S at the pole. (Maybe Sam mistyped it due to the &lt;a href="http://blog.nasm.si.edu/highlights-from-the-collection/neil-armstrongs-apollo-11-extravehicular-gloves-and-visor/"&gt;stubby fingers you get on space gloves&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;Back at base, the Sams discover a hidden room. Look at that: it&#8217;s &lt;a href="http://en.wikipedia.org/wiki/Turtles_all_the_way_down"&gt;Sams all the way down&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Trays 0001 through 0006 have already been opened. Sam0005 and Sam0006 (for it is they) decide to open tray 0007:&lt;/p&gt;
&lt;p&gt;It&#8217;s the small details of this scene that I find most disturbing. Every pre-packed Samn has a pre-packed &lt;em&gt;Wake Me When It&#8217;s Quitting Time&lt;/em&gt; t-shirt. The person at Lunar Industries responsible for this whole macabre set-up not only had the temerity to subject Sam Bell to his own personal &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Groundhog_Day_(film)"&gt;Groundhog Day&lt;/a&gt;&lt;/em&gt;; they also had the gall to leave cynical in-jokes for every iteration to endure.&lt;/p&gt;
&lt;p&gt;Once they&#8217;re out of the Tunnel Of Clones, Sam1 asks GERTY why he helped with the password. &#8220;Helping you is what I do&#8221;, says GERTY.&lt;/p&gt;
&lt;p&gt;See, Sam1? I&#160;&lt;em&gt;told&lt;/em&gt;&#160;you you should TRUST ROBOTIC ASSIST &#8211; he&#8217;s &lt;em&gt;definitely&lt;/em&gt; read&#160;&lt;a href="http://en.wikipedia.org/wiki/Three_Laws_of_Robotics"&gt;the Laws&lt;/a&gt;. (Although he may have skim-read the bit about not killing people in a space-coffin.)&lt;/p&gt;
&lt;p&gt;Sam1 drives the rover a very long way from the base, and re-establishes video contact with Earth. He calls his house. Turns out his wife is dead, but his now-15-year-old daughter has a chat with him anyway. She ends by shouting off-screen to her Dad to say that someone is asking about Mom. We hear the distinct voice of a certain Sam Bell in reply. Sam0 is still alive! (Sam1 closes the video call device quickly, and looks sad and pensive.)&lt;/p&gt;
&lt;p&gt;The known-to-be-alive-ness of Sam0 gives an an alternative, cheerier way of looking at the pre-packed t-shirt dilemma&#160;for the less depressingly-morbid of you. Presumably Sam0 is complicit in the fact that thousands of Sams are in cold storage on the Moon. If he&#8217;s complicit in the scheme, could it be that these small personal details &#8211; even that seemingly-sinister t-shirt &#8211; have been chosen with&#160;Sam0&#8216;s&#160;involvement, as homely comforts to soften the terror of Samn&#8216;s reality?&lt;/p&gt;
&lt;p&gt;I don&#8217;t think that&#8217;s the truth of it at all. But if helps you sleep at night, you&#8217;re more than welcome to run with it.&lt;/p&gt;
&lt;p&gt;We&#8217;re back at the base. Sam1 continues to fall apart. Sam2 sees Sam1&#8216;s video call with his daughter, and realizes that he and Sam1 will be killed when the &lt;em&gt;Eliza&lt;/em&gt; crew arrive. He convinces GERTY to wake up a new clone. Let&#8217;s call him Sam3.&lt;/p&gt;
&lt;p&gt;This section of the film gives us a rare close-up of the base&#8217;s OPERATIONAL NOTIFICATIONS board:&lt;/p&gt;
&lt;p&gt;Amongst other things, we discover that Lunar Industries Ltd. is a Registered Company Of The United Kingdom No.&#160;06346944. Delightfully, &lt;a href="http://companycheck.co.uk/company/06346944"&gt;this is indeed the case&lt;/a&gt;. In addition to the scrolling Eurostile, there&#8217;s also a Big Countdown Clock (in a pseudo-LED font), reinforcing the time pressure of &lt;em&gt;Eliza&lt;/em&gt;&#8216;s imminent arrival. (It was conveniently fixed at &lt;em&gt;88:88&lt;/em&gt; before the &lt;em&gt;Eliza&lt;/em&gt; plot point came into effect.) Notable on both font displays is an illustrative dot-matrix resolution substantially lower than the actual resolution of the fonts displayed thereon.&lt;/p&gt;
&lt;p&gt;Sam1, who is by now in a &lt;em&gt;right&lt;/em&gt; state, wakes up to Chesney Hawkes. (See? I &lt;em&gt;told&lt;/em&gt; you it was foreshadowing.) He discovers Sam3 in the infirmary.&lt;/p&gt;
&lt;p&gt;Talking of foreshadowing: on the movie&#8217;s original one-sheet poster, there are three copies of Sam Rockwell&#8217;s name, as shadows behind the main one:&lt;/p&gt;
&lt;p&gt;Strictly speaking, this is an accurate cast list. The film now stars Sam Rockwell0, Sam Rockwell1, Sam Rockwell2, and Sam Rockwell3.&lt;/p&gt;
&lt;p&gt;To put it another way &#8211; &lt;em&gt;the movie&#8217;s poster is four-shadowing the foreshadowing.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Maybe I should go and have a lie down for a bit, and come back when the conspiracy theories have subsided. It&#8217;s a shame sci-fi films don&#8217;t have intermissions these days. Let&#8217;s transplant the one from my&#160;&lt;a href="http://typesetinthefuture.com/2001-a-space-odyssey/"&gt;&lt;em&gt;2001: A Space Odyssey&lt;/em&gt;&lt;/a&gt;&#160;post, and go and have a cup of tea while the Sams work out what to do next.&lt;/p&gt;
&lt;p&gt;And we&#8217;re back. After much debate, it is decided that Sam1 will go back into the crashed rover; Sam2 will take the HE3 launcher back to Earth; and Sam3 will stay in the infirmary to be discovered by the crew of &lt;em&gt;Eliza&lt;/em&gt;. He&#8217;s still unconscious, so he doesn&#8217;t know this yet, but it&#8217;s a decision made by a quorum of hims, so he can&#8217;t really complain.&lt;/p&gt;
&lt;p&gt;Once he&#8217;s dropped Sam1&#160;off, &#160;Sam2 loads up the HE3 launcher. GERTY suggests &lt;a href="http://www.youtube.com/watch?v=nn2FB1P_Mn8"&gt;turning him on and off again&lt;/a&gt;&#160;so that he can&#8217;t provide any incriminating evidence to &lt;em&gt;Eliza&lt;/em&gt;. &#8220;I&#8217;m here to keep you safe, Sam. I want to help you.&#8221;&lt;/p&gt;
&lt;p&gt;Sam2 asks GERTY if he&#8217;ll be okay. &#8220;Of course. The new Sam and I will be back to our programming as soon as I&#8217;ve finished rebooting.&#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GERTICON:&lt;/strong&gt; YAYPROGRAMMINGFACE&lt;/p&gt;
&lt;p&gt;Sam2&#160;replies: &#8220;Gerty, we&#8217;re not programmed. We&#8217;re people, you understand?&#8221;&lt;/p&gt;
&lt;p&gt;As GERTY turns round, we see that Sam1 has stuck a KICK ME Post-it on GERTY&#8217;s back side:&lt;/p&gt;
&lt;p&gt;Sam2 turns GERTY off. After a short, poignant pause, he removes the Post-it from his back.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GERTICON:&lt;/strong&gt; REBOOTINGFACE&lt;/p&gt;
&lt;p&gt;Sam2 gets ready to launch back to Earth. At the very last minute, he realizes he can use the harvesters to knacker the signal-blocking aerials, and avoid&#160;Sam3&#160;suffering a similar fate to his own. He grabs the piece of paper with&#160;&lt;a href="http://tvtropes.org/pmwiki/pmwiki.php/Main/ChekhovsGun"&gt;Chekhov&#8217;s&#160;Coordinates&lt;/a&gt;&#160;on it:&lt;/p&gt;
&lt;p&gt;&#8230;and types a long series of numbers into a keyboard with great precision despite wearing spacesuit gloves. The harvester coordinates update. Go Sam2!&lt;/p&gt;
&lt;p&gt;This screen prompts a couple of interesting questions:&lt;/p&gt;
&lt;p&gt;1) What&#8217;s an &#8216;OLD MAN OVERIDE&#8217;?&lt;/p&gt;
&lt;p&gt;2) Is that an infinitely-looping&#160;&lt;a href="http://en.wikipedia.org/wiki/BASIC"&gt;BASIC&lt;/a&gt;&#160;program?&lt;/p&gt;
 20 GOTO 10
10 GOTO 20 
&lt;p&gt;The &lt;em&gt;Eliza&lt;/em&gt; arrives. Sam3 wakes up and asks GERTY what&#8217;s going on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GERTICON:&lt;/strong&gt; DONTASKMEJUSTREBOOTEDFACE&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Eliza&lt;/em&gt; crew members find Sam1 in his rover. Sam2 has a psychedelic trip through space. A harvester crashes into an aerial. Long Range Comms finally start working. And if you look closely, you discover that the contents of the portrait-orientation comms monitor is actually being played from a DVD player plugged into a landscape monitor turned 90 degrees clockwise:&lt;/p&gt;
&lt;p&gt;All of which is a timely reminder that this frankly awesome sci-fi film was made on a budget the size of a postcard. Which just makes its amazing styling and design all the more impressive. Indeed, &lt;em&gt;Moon&lt;/em&gt; is one of my favorite examples of sci-fi storytelling through design &#8211; and, to my mind, a worthy successor to Kubrick&#8217;s masterpiece.&lt;/p&gt;
&lt;p&gt;- &lt;a href="https://twitter.com/daveaddey"&gt;@daveaddey&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Postscript:&lt;/strong&gt;&#160;Apart from the note about Microstyle, and a nod to the DVD players, I deliberately wrote this post without referring to &lt;/em&gt;Moon&lt;em&gt; Conceptual Designer &lt;a href="http://www.gavinrothery.com"&gt;Gavin Rothery&lt;/a&gt;&#8216;s superb &#8216;&lt;a href="http://www.gavinrothery.com/moon-blog-index/"&gt;They Never Went To The Moon&lt;/a&gt;&#8217; blog. I much prefer to write these posts as a response to just what I see on screen &#8211; it&#8217;s more fun that way. You should totally go and read his blog in its entirety, however, as he explains or expands upon much of what I&#8217;ve written above. The blog also includes images of many of the computer screens and stickers from around the base,&#160;along with Gavin&#8217;s original renders for the base design. Good work, sir!&lt;/em&gt;&lt;/p&gt;
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 18:30:52 -0800</pubDate>
      <link>http://typesetinthefuture.com/moon/</link>
      <guid>http://typesetinthefuture.com/moon/</guid>
    </item>
    <item>
      <title>Flappy Space Program by corpsmoderne</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7237098'&gt;"Flappy Space Program by corpsmoderne"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://corpsmoderne.itch.io/flappy-space-program'&gt;http://corpsmoderne.itch.io/flappy-space-program&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; </description>
      <pubDate>Thu, 13 Feb 2014 21:30:25 -0800</pubDate>
      <link>http://corpsmoderne.itch.io/flappy-space-program</link>
      <guid>http://corpsmoderne.itch.io/flappy-space-program</guid>
    </item>
    <item>
      <title>The Economics of Star Trek &#8212; Editor's Picks &#8212; Medium</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7237184'&gt;"The Economics of Star Trek &#8212; Editor's Picks &#8212; Medium"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='https://medium.com/editors-picks/29bab88d50'&gt;https://medium.com/editors-picks/29bab88d50&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;p&gt;I promise this is about Star Trek. Sort of. Bear with me a moment.&lt;/p&gt;
&lt;p&gt;I&#8217;ve been reading a lot about robots lately. When I read about robots, and the future, I can&#8217;t help but think about it in economic terms. And that inevitably turns my mind to the branch of economics called &lt;a href="http://en.wikipedia.org/wiki/Post-scarcity_economy"&gt;post scarcity economics&lt;/a&gt;. Traditional economics, of course, deals with the efficient allocation of inherently scarce materials. Post scarcity economics deals with the economics of economies that are no longer constrained by scarcity of materials&#8202;&#8212;&#8202;food, energy, shelter, etc.&lt;/p&gt;
&lt;p&gt;The thing that never sits quite right with post scarcity economics, though, at least the very little that I&#8217;ve read, is that it&#8217;s always sort of an all or nothing affair: you either don&#8217;t have enough of &lt;em&gt;anything &lt;/em&gt;or you have enough of &lt;em&gt;everything. &lt;/em&gt;Thinking of this as a mental exercise is kind of fun, I think, but in reality it seems to me that getting from point A&#8202;&#8212;&#8202;a scarcity economy&#8202;&#8212;&#8202;to point B&#8202;&#8212;&#8202;post scarcity&#8202;&#8212;&#8202;is going to be a long, complicated journey as &lt;em&gt;some &lt;/em&gt;things become more abundant in &lt;em&gt;some &lt;/em&gt;places, while other things are still scarce.&lt;/p&gt;
&lt;p&gt;What is needed is some sort of interim-, or proto-post scarcity economics.&lt;/p&gt;
&lt;p&gt;More and more I find myself thinking we are, as a race, constrained by the economic models we have. We have capitalism, of course, the proverbial &lt;a href="http://wais.stanford.edu/Democracy/democracy_DemocracyAndChurchill%28090503%29.html"&gt;worst model except for every other one&lt;/a&gt; that dominates much of our planet right now. It&#8217;s definitely a scarcity-based system. Then we have the centrally planned systems of Communism and Marxism, not particularly effective, as it turns out. We have European-style socialist capitalism, but that&#8217;s still capitalism, and scarcity-based, albeit with a much more robust safety net than we have here in the US. Some Americans seem to think that a robust safety net somehow nullifies the distributed planning of capitalism. I&#8217;ll listen to them again when our schools are decent and our life span starts increasing again magically.&lt;/p&gt;
&lt;p&gt;The key here, to me, is to start thinking about how economics would work when we &lt;em&gt;decouple labor from reward. &lt;/em&gt;Does that make a system inherently communist? I don&#8217;t think it does. People work. They get paid. It is market driven, and not centrally planned. In reality,the market already basically dictates this, for who can claim that a Wall Street banker works more than a teacher? The only thing we really need to do is take this to a logical extreme: &lt;em&gt;that people can still get paid doing zero work. &lt;/em&gt;This fear seems to be at the heart of most people who say that Europe is communist: if we give people so much welfare, some of them might stop working! Quelle Horreur!&lt;/p&gt;
&lt;p&gt;It seems to me that with the rise of machines and robotics, advances in mining technology, energy technology (both fracking and green energy technologies), the obesity epidemic in the US, etc., that there are plenty of reasons to believe that we may be at the beginnings of a post scarcity economy. We have a surplus, no doubt. Of course, we still have legions of people in the world that are starving, and even people still here at home. But we actually have the &lt;em&gt;capacity &lt;/em&gt;to feed them, to feed everyone, even now, even if we don&#8217;t have the &lt;em&gt;will. &lt;/em&gt;It&#8217;s not a matter of scarcity; it&#8217;s a matter of the organization of labor and capital.&lt;/p&gt;
&lt;p&gt;Take a mental journey for a moment with me: what if, one day, technology reaches the point that a small number of humans&#8202;&#8212;&#8202;say, 10 million&#8202;&#8212;&#8202;can produce all of the food, shelter and energy that the race needs. This doesn&#8217;t seem like insanely wishful thinking, given current trends. There&#8217;s no rational reason why the advances in robotics, factories, energy and agriculture could continue unabated for long periods of time. Of course I&#8217;m not saying they &lt;em&gt;will&lt;/em&gt;, but rather, they &lt;em&gt;could.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;So, then, take that journey. What, then, of labor? In today&#8217;s terms, a &#8216;healthy&#8217; economy now is one at or near full employment. A healthy economy now is one where everyone has a job. But in our mental exercise, those jobs are actually unrelated to a healthy economy, at least from strict economic terms. Everyone&#8217;s fed and housed and tons of people simply don&#8217;t need to work. Right now, we have them working making shit we don&#8217;t need. Is that any better than them not working?&lt;/p&gt;
&lt;p&gt;I give you we&#8217;re in some fringe areas of economics here, but I have always wondered: is there any economic proof that we need full employment to reach full satisfaction of needs? To my knowledge, there isn&#8217;t. There&#8217;s a body of economics that goes into standards of living, and the increased standard of living. And here we get to our shitty world of unabated consumerism,&lt;a href="http://en.wikipedia.org/wiki/Thorstein_Veblen"&gt;Thorstein Veblen&#8217;s&lt;/a&gt; conspicuous consumption and George Battaille&#8217;s &lt;a href="http://en.wikipedia.org/wiki/The_Accursed_Share"&gt;accursed share&lt;/a&gt;&#8202;&#8212;&#8202;the inevitable destiny of all economies to eventually produce more than they need, and, thus, waste it.&lt;/p&gt;
&lt;p&gt;Seems to me that if we could think beyond capitalism and think of a new model, we could break out of this pointless cycle of more and more consumption of shit we don&#8217;t need and model things in another way.&lt;/p&gt;
&lt;p&gt;Yes yes, of course. We all know that. The problem seems to me that the minute we leave capitalism behind, we only look at the past alternatives of communism, marxism and pure socialism and pooh pooh them. Few people seem to be able to look beyond capitalism without regressing to the other failed economic models of the early 20th century, as if they are the only alternate possibilities for man.&lt;/p&gt;
&lt;p&gt;Yet there have been &lt;em&gt;some &lt;/em&gt;other attempts to leave capitalism behind that attempt to also leave the baggage of communism, marxism and socialism behind. The most notable is &lt;a href="http://en.wikipedia.org/wiki/Participatory_economics"&gt;participatory economics&lt;/a&gt;, or parecon. This is a worthwhile attempt, I think, but to me it doesn&#8217;t quite pass the smell test of being sufficiently un-communist, what with its workers councils and lack of any sort of ruling class. All very un-American, and in any case, a bit preoccupied with &#8220;workers&#8221; and &#8220;individual need&#8221; to really work in any post-scarcity economy where the very concept of a laborer is iffy. When you start thinking this way you start getting into the dodgy world of &lt;a href="http://en.wikipedia.org/wiki/Heterodox_economics"&gt;heterodox economics&lt;/a&gt; and, well, that&#8217;s a world of a lot of crackpots. Some good ideas, sure, but a lot of crackpots, and more to the point, it&#8217;s a world devoid of empirical research, which is a serious problem. Economics is really at its worst when it&#8217;s just making up theories. It&#8217;s a lot more noble when there&#8217;s some real data to back it up.&lt;/p&gt;
&lt;p&gt;Parecon does have some awesome concepts, though, by the way. I don&#8217;t hate it completely. I especially like that people&#8217;s say over any issue is proportional to the amount that issue affects them. It also has some states&#8217; rights-ish aura similar to &#8220;laws being made at the level closest to those affected.&#8221; It&#8217;s a worthy school of thought to consider when looking for a pure alternative to capitalism in a vacuum, though probably not very practical in reality for reasons similar to communism (despite not being centrally planned, it still very much hinges on some third party deciding the relative worth of each job&#8202;&#8212;&#8202;a messy business). More to the point, it doesn&#8217;t help us in thinking about our mental picture: a world where a small number of people can produce enough for everyone.&lt;/p&gt;
&lt;p&gt;Then I got to thinking. Screw the dodgy world of heterodox economics. Let&#8217;s go full-on fantastical and look at sci-fi. There IS actually a model out there that deals fairly realistically with a post scarcity economy. Not only that, it actually takes into account the difficulties of migrating from a capitalist society to a post scarcity society incrementally. It&#8217;s not just a theory in a vaccum.&lt;/p&gt;
&lt;p&gt;It&#8217;s called Star Trek.&lt;/p&gt;
&lt;p&gt;Stay with me here.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Star Trek and Economics&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Previous Theories&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When looking at the economics of Star Trek, there have been three broad approaches in the past:&lt;/p&gt; Trying to shoehorn Star Trek&#8217;s economics into the model of parecon. This is problematic because of the obviously hierarchical society of Starfleet, with Admirals, captains, commanders, chancellors, governors and whatnot, and the clear existence of a relatively strong Federation president, who is democratically elected. Plus we never once see a labor meeting, and it&#8217;s pretty obvious personal freedom and enrichment are important to society.Calling the Federation Communist, based on comments from Kirk in Star Trek IV on not having any money in the future and Picard&#8217;s speech about the economics of the federation being significantly different than 21st century economics and people pursuing personal enrichment rather than the accumulation of wealth. The problem with this definition is it&#8217;s lazy&#8202;&#8212;&#8202;just because they don&#8217;t pursue the accumulation of wealth, it does not mean the Federation is communist. There is absolutely, obviously, still private property in the Federation: most obviously Joseph Sisko&#8217;s restaurant in New Orleans and Chateau Picard, evidencing that not just small possessions are allowed but that the land itself is still privately owned. One could argue that these aren&#8217;t really Sisko and Picard&#8217;s to own, but they are routinely referred to as &#8220;his&#8221; restaurant and vineyard so we gotta go with Occam&#8217;s Razor here and assume they do, in fact, own them.A sort-of guessing game based on the various mentions of Federation Credits and trying to glean the system from every single mention of money or payments within the series. This is always a pain in the ass, especially given the original series sometimes did things that were pretty out there according to later firmly established canon, and later firmly rejected by Roddenberry himself before his death. Additionally, many of the assumptions about Federation Credits seem iffy: are they really currency? Do they have to be? Are they scrip? Rations? We simply don&#8217;t know. And in any case, trying to define the entire economy of the Federation&#8202;&#8212;&#8202;and perhaps even learning something from it&#8202;&#8212;&#8202;should be more than a matter of resolving obscure trivia references (though of course it&#8217;s fun). &lt;p&gt;None of them seem correct. None of them seem realistic. And yes, let&#8217;s go for realistic here, why not?&lt;/p&gt;
&lt;p&gt;Let&#8217;s take a different approach here.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What we know&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let&#8217;s start with the facts.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Federation is clearly not a centrally planned economy&lt;/em&gt;, and therefore obviously not communist. Individual freedom of choice is very obvious. Everyone chooses their careers, and there are many mentions of this throughout the series&#8202;&#8212;&#8202;witness every single time someone waxes nostalgic about why they chose to enter Starfleet. Witness Bashir going on about &lt;a href="http://en.memory-alpha.org/wiki/Julian_Bashir"&gt;why he wanted to be a doctor&lt;/a&gt; instead of a tennis player. Witness Wesley &lt;a href="http://en.memory-alpha.org/wiki/Journey%27s_End_%28episode%29"&gt;dropping out&lt;/a&gt; of Starfleet. Witness &lt;a href="http://en.memory-alpha.org/wiki/Vash"&gt;Vash&lt;/a&gt; being an archeologist and &lt;a href="http://en.memory-alpha.org/wiki/Kasidy_Yates-Sisko"&gt;Kasidy Yates&lt;/a&gt; being a cargo ship captain.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Private ownership still exists&#8202;&#8212;&#8202;&lt;/em&gt;the biggest examples, to me, are Sisko&#8217;s restaurant and Chateau Picard, but many other examples abound from all the trinkets everyone owns in their quarters. Crusher&#8217;s &lt;a href="http://en.memory-alpha.org/wiki/Sub_Rosa_%28episode%29"&gt;family owns a (haunted) cottage&lt;/a&gt; on some old-Scottish settlement planet. The Maquis routinely refer to &#8220;our land,&#8221; which they presumably owned, and while an individual tribe may have collectively owned the land through a corporation, like the &lt;a href="http://en.wikipedia.org/wiki/Alaska_Native_Claims_Settlement_Act"&gt;Alaska Native Land Claims Settlement Act&lt;/a&gt;, or through a co-op, they clearly &#8220;owned&#8221; the land, just like anyone else owned land, while the Federation was the superseding government that could give that territory away to another sovereign party, much like the ceding of the Sudetenland or Guam. Any alternative situation (the government owning the land and renting it to the settlers?) is never alluded to and in any case the words stated (&#8220;our land&#8221;) clearly indicate private ownership is still very much part of the cultural zeitgeist. Then we have JJ Abram&#8217;s &lt;a href="http://en.memory-alpha.org/wiki/Star_Trek_%28film%29"&gt;&lt;em&gt;Star Trek&lt;/em&gt;&lt;/a&gt;&lt;em&gt; &lt;/em&gt;and it&#8217;s pretty unlikely that, what? The Federation owned that shack Kirk grew up in, that sweet &lt;a href="http://en.memory-alpha.org/wiki/Corvette"&gt;Corvette&lt;/a&gt; or that &lt;a href="http://en.memory-alpha.org/wiki/Shipyard_Bar"&gt;roadhouse bar&lt;/a&gt;? Those items sure looked privately owned. Some spaceships were &lt;a href="http://en.memory-alpha.org/wiki/Winston%27s_trading_vessel"&gt;privately owned&lt;/a&gt;. Finally, let&#8217;s not forget &lt;em&gt;Star Trek: Generations &lt;/em&gt;when Kirk says in the Nexus &#8220;This is my house. I sold it years ago.&#8221;&lt;/p&gt;
&lt;p&gt;Next: &lt;em&gt;The Federation is not true post scarcity economy&lt;/em&gt;: &lt;a href="http://en.memory-alpha.org/wiki/Tarsus_IV"&gt;famines routinely&lt;/a&gt; &lt;a href="http://en.memory-alpha.org/wiki/Cerberus"&gt;still exist&lt;/a&gt;, transportation lines are vital in moving around goods within the Federation. Transportation is a whole grey area in most post-scarcity economic works, at least the few I&#8217;ve read. The Federation might have enough food, but at any time some planet may well be starving or in need of &lt;a href="http://en.memory-alpha.org/wiki/Rachelis_system"&gt;medicine&lt;/a&gt; that needs to come from somewhere else.&lt;/p&gt;
&lt;p&gt;It seems pretty clear cut that jobs are optional. They explicitly state on many occasions that the Federation is based on a philosophy of &lt;a href="http://en.memory-alpha.org/wiki/Money"&gt;self improvement and cultural enrichment&lt;/a&gt;, and in any case we sure do run into a lot of &#8220;artists&#8221; in the Federation. I particularly love those &lt;a href="http://en.memory-alpha.org/wiki/The_Way_to_Eden_%28episode%29"&gt;hippies in TOS&lt;/a&gt;. The Federation seems a bit like Williamsburg&#8202;&#8212;&#8202;a lot of artists who don&#8217;t need to work. Or maybe more like the UK at the height of its social programs supporting artists. Let a million JK Rowlings bloom. It&#8217;s a bit weird, to me, that we&#8217;ve never seen people who sit around and literally do nothing, but then why would we? And, of course, we&#8217;ve certainly seen more than a few societies that are all chilled out and not doing much (&lt;a href="http://en.memory-alpha.org/wiki/Risa"&gt;Risa&lt;/a&gt;, etc).&lt;/p&gt;
&lt;p&gt;Next: &lt;em&gt;The Federation doesn&#8217;t use money. &lt;/em&gt;This is basically absolute. Kirk says it in Star Trek IV. Picard says it several times. &lt;a href="http://en.memory-alpha.org/wiki/You_Are_Cordially_Invited_%28episode%29"&gt;Quark mocks it to Rom&lt;/a&gt;. &lt;a href="http://en.memory-alpha.org/wiki/Federation_credit"&gt;Roddenberry put it down as a hard and fast rule&lt;/a&gt;. No theory of Star Trek economics can be real while ignoring this fact. It has to be addressed. It is the basis of all confusion and, honestly, interest in figuring it out at all.&lt;/p&gt;
&lt;p&gt;Money still exists, so do banks. &lt;a href="http://en.memory-alpha.org/wiki/Encounter_at_Farpoint_%28episode%29"&gt;Crusher buys fabric at Farpoint&lt;/a&gt;. DS9 makes mention of the&lt;a href="http://en.memory-alpha.org/wiki/Bank_of_Bolias"&gt;Bank of Bolias&lt;/a&gt;, on a Federation planet. &lt;a href="http://en.memory-alpha.org/wiki/In_the_Cards_%28episode%29"&gt;Nog loans Jake latinum&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We also know there exists such a thing as the &lt;a href="http://en.memory-alpha.org/wiki/Federation_credit"&gt;Federation Credit&lt;/a&gt;. This presumably causes some confusion since they are routinely referred to like money (Kirk mentions that the Federation has invested 122,200 credits in Spock), and things are purchased for credits (Uhura buys a tribble, Quark occasionally accepts them at his bar).&lt;/p&gt;
&lt;p&gt;This would seem to be a giant contradiction to the lack of existence of money. We&#8217;ll get to that in a bit.&lt;/p&gt;
&lt;p&gt;There is still a ruling class, or classes&#8202;&#8212;&#8202;it is not perfectly-egalitarian in a communist manner. We have admirals and presidents and &lt;a href="http://en.memory-alpha.org/wiki/Kodos"&gt;governors&lt;/a&gt; and &lt;a href="http://en.memory-alpha.org/wiki/Delaplane"&gt;colony leaders&lt;/a&gt;. There are enlisted personnel in Starfleet and officers. Some are elected, some are appointed. Some Federation members were even &lt;a href="http://en.memory-alpha.org/wiki/Betazoid"&gt;hereditary nobilities&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There is still commerce (and even &lt;a href="http://en.memory-alpha.org/wiki/The_Gift_%28episode%29"&gt;Vulcan commerce&lt;/a&gt;), &lt;a href="http://en.memory-alpha.org/wiki/Cyrano_Jones"&gt;trade&lt;/a&gt;, &lt;a href="http://en.memory-alpha.org/wiki/Winston%27s_trading_vessel"&gt;trading vessels&lt;/a&gt;, and, we can assume, &lt;a href="http://en.memory-alpha.org/wiki/Dytallix_Mining_Company"&gt;corporations&lt;/a&gt;, in some form (though this may not be 100% definite&#8202;&#8212;&#8202;Dytallix is mined &lt;em&gt;for &lt;/em&gt;the Federation. It isn&#8217;t 100% clear it is &lt;em&gt;in &lt;/em&gt;the Federation).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Some thought exercises&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let&#8217;s do a couple thought exercises.&lt;/p&gt;
&lt;p&gt;First: if you eat a meal at Sisko&#8217;s Creole Kitchen, do you pay? It seems almost definite that you don&#8217;t pay. If you paid, with anything, including Federation Credits, that would be money. You could barter, but it seems if the entire economy was a barter economy, we&#8217;d hear it. No, it seems almost certain that you go to eat at Sisko&#8217;s, you don&#8217;t pay, and Joseph Sisko doesn&#8217;t pay for his supplies, and his suppliers probably don&#8217;t pay for theirs.&lt;/p&gt;
&lt;p&gt;Next: Can everyone have anything? Anything at all? Is the Federation a perfect post scarcity society? The answer seems almost certainly no. If you went to a replicator, or a dealer, or the &lt;a href="http://en.memory-alpha.org/wiki/Utopia_Planitia_Fleet_Yards"&gt;Utopia Planatia Fleet Yards&lt;/a&gt; and asked for 10 million star ships, the answer would be no. More concretely, when the Borg attacked, and during the Dominion War, the Federation suffered from a serious starship shortage.&lt;/p&gt;
&lt;p&gt;Next: Imagine there&#8217;s some level of welfare benefits in every country, including America. That&#8217;s easy. That&#8217;s true. Imagine that, as the economy became more efficient and wealthy, the society could afford to give more money in welfare benefits, and chooses to do so. Next, imagine that this kept happening until society could afford to give the equivalent of something like $10 million US dollars at current value to every man, woman and child. And imagine that, over the time that took to happen, society got its shit together on education, health, and the dignity of labor. Imagine if that self-same society frowned upon the conspicuous display of consumption and there was a large amount of societal pressure, though not laws, on people that evolved them into not being obsessed with wealth. Is any of that so crazy? Is it impossible?&lt;/p&gt;
&lt;p&gt;I think that is basically what&#8217;s going on on Star Trek.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A Theory of Star Trek Economics&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I believe the federation is a &lt;em&gt;proto-post scarcity society &lt;/em&gt;evolved from democratic capitalism. It is, essentially, European socialist capitalism vastly expanded to the point where no one has to work unless they want to.&lt;/p&gt;
&lt;p&gt;It is massively productive and efficient, allowing for the effective decoupling of labor and salary for the vast majority (but not all) of economic activity. The amount of welfare benefits available to all citizens is in excess of the needs of the citizens. Therefore, money is irrelevant to the lives of the citizenry, whether it exists or not. Resources are still accounted for and allocated in some manner, presumably by the amount of energy required to produce them (say Joules). And they are indeed credited to and debited from each citizen&#8217;s &#8220;account.&#8221; However, the average citizen doesn&#8217;t even notice it, though the government does, and again, it is not measured in currency units&#8202;&#8212;&#8202;definitely not Federation Credits. There is some level of scarcity&#8202;&#8212;&#8202;the Federation cannot manufacture a million starships, for example. This massive accounting is done by the Federation government in the background (witness the &lt;a href="http://en.memory-alpha.org/wiki/Homefront_%28episode%29"&gt;authority of the Federation President over planetary power supplies&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Because the welfare benefit is so large, and social pressure is so strong against conspicuous consumption, the average citizen never pays any attention to the amounts allocated to them, because it&#8217;s perpetually more than they need. But if they go crazy and try and purchase, say, 10 planets or 100 starships, the system simply says &#8220;no.&#8221;&lt;/p&gt;
&lt;p&gt;Citizens have no financial &lt;em&gt;need &lt;/em&gt;work, as their benefits are more than enough to provide a comfortable life, and there is, clearly, universal health care and education. The Federation has clearly taken the plunge to the other side of people&#8217;s fears about European socialist capitalism: yes, some people might not work. So What? Good for them. We think most still will.&lt;/p&gt;
&lt;p&gt;However, if they so choose they can also get a job. Many people do so for personal enrichment, societal pressure or through a desire to promote social welfare. Are those jobs paid? I would assume that yes, those jobs are &#8220;paid,&#8221; in the sense that your energy allocation is increased in the system, though, again, your allocation is large enough that you wouldn&#8217;t even really notice it. Why do I say this? The big challenge here is how does society get someone to do the menial jobs that cannot be done in an automated manner. Why would anyone? There are really only two options: there is some small, incremental increase in your hypothetical maximum consumption, thus appealing to the subconscious in some primal way, or massive societal pressure has ennobled those jobs in a way that we don&#8217;t these days. I opt for the former since it grounds everything in market economics, albeit on a bordering-on-infinitesimal manner, and that stands to reason, since &lt;em&gt;that&#8217;s how people talk &lt;/em&gt;in Star Trek. They talk about individual fulfillment, buying, selling, etc. No one was ever guilt-tripped into joining Starfleet, save by maybe their family.&lt;/p&gt;
&lt;p&gt;There is almost zero mention of central planning. It&#8217;s a capitalistic society, it&#8217;s benefits are just through the roof. Also, market economics = crowdsourced. That is, it&#8217;s not centrally planned. It&#8217;s democratic. It&#8217;s the only mechanism we know of to allocate resources that &lt;em&gt;isn&#8217;t &lt;/em&gt;centrally planned. The alternative is that all allocations are done algorithmically through a computer and the economy is completely decoupled from market forces, but that&#8217;s still basically central planning, and infinitely more complex than assuming there is still some semblance of market underpinning, much like we stayed on the gold standard for far longer than we needed to and we still have pennies even though we don&#8217;t need them. It&#8217;s a vestige of the past. It&#8217;s the constitutional monarchy.&lt;/p&gt;
&lt;p&gt;Either way, presumably, you take whatever job you want, and your benefits allocations are adjusted accordingly. But by and large you just don&#8217;t care, because the base welfare allocation is more than enough. Some people might care, some people might still care about wealth, such as&lt;a href="http://en.memory-alpha.org/wiki/Carter_Winston"&gt;Carter Winston&lt;/a&gt;. More power to them. They can go try and be &#8220;rich&#8221; in some non-Federation-issued currency. But most people just don&#8217;t care. After all, if you were effectively &#8220;wealthy&#8221; why would you take a job to become wealthy? It pretty much becomes the least likely reason to take a job.&lt;/p&gt;
&lt;p&gt;So, behind the scenes there is a massive internal accounting and calculation going on&#8202;&#8212;&#8202;&lt;em&gt;the economics still happen. &lt;/em&gt;They just aren&#8217;t based on a currency unit, and people don&#8217;t acquire things based upon a currency value. People just acquire things from replicators, from restaurants such as Sisko&#8217;s or coffee shops like &lt;a href="http://en.memory-alpha.org/wiki/Cosimo%27s"&gt;Cosimo&#8217;s&lt;/a&gt;, or, presumably, get larger things from dealerships or (more likely) factories. This could still be called &#8220;buying,&#8221; as a throwback.&lt;/p&gt;
&lt;p&gt;Two points here: first, the accounting is done in energy units, so that there is no need for currency. And why not? Resource allocation is mainly about energy anyhow, doubly so if it&#8217;s only robots building most things. And secondly, if you never had money, never saw it, and it didn&#8217;t physically exist to measure things, you&#8217;d pretty much tell people, &lt;a href="http://en.memory-alpha.org/wiki/Gillian_Taylor"&gt;like a certain 20th century oceanographer&lt;/a&gt;, that you &lt;a href="http://en.memory-alpha.org/wiki/Money"&gt;don&#8217;t have money in the 24th century&lt;/a&gt;, regardless of some automated accounting. This jibes with Federation people knowing what money is&#8202;&#8212;&#8202;because other societies have it&#8202;&#8212;&#8202;but saying they don&#8217;t use it. Because they don&#8217;t.&lt;/p&gt;
&lt;p&gt;However, you could still buy and sell things. You could take a thing from a replicator and go to someone else and &#8220;buy&#8221; something else with it. Why couldn&#8217;t you? It&#8217;s a free society. It&#8217;s essentially barter. Kirk may well have sold his house for a year&#8217;s supply of Romulan ale.&lt;/p&gt;
&lt;p&gt;Or Federation Credits.&lt;/p&gt;
&lt;p&gt;It is tempting to argue here that the massive accounting system uses a unit called the Federation Credit, but i don&#8217;t believe that&#8217;s the case. If it were, the credit would be too much like money because a) accounting is done in it, b) it is issued by a governing body (like a &lt;a href="http://en.wikipedia.org/wiki/Fiat_money"&gt;fiat currency&lt;/a&gt;) and c) it is fungible, i.e. you can already buy things with it and if you could buy things with it AND a and b were true, it would pretty much be a currency. This would fly in the face of Roddenberry&#8217;s absolute diktat that the Federation has no currency.&lt;/p&gt;
&lt;p&gt;I&#8217;m gonna make a bold new theory here. Federation Units are &#8220;Federation&#8221; the same way that American Cheese is American. It is simply descriptive. Currency was invented long before capitalism as a means to disintermediate trades: you wanted my grain, I didn&#8217;t want your cows, I wanted farmer Ted&#8217;s grapes. Rather than make every trade a 3, 4 or 5 way trade, we made a little certificate we all agreed was worth something to us and us only. This need would still occasionally crop up in the Federation, even without money. I believe the Federation Unit is a&lt;a href="http://en.wikipedia.org/wiki/Private_currency"&gt;private currency&lt;/a&gt;, developed by third parties to facilitate complex trades or trades outside the Federation. I believe that the Federation Unit is not actually underwritten or issued by the Federation. I think it is more akin to the &lt;a href="http://en.wikipedia.org/wiki/Calgary_Dollar"&gt;Calgary Dollar&lt;/a&gt; or the &lt;a href="http://en.wikipedia.org/wiki/Chiemgauer"&gt;Chiemgauer&lt;/a&gt;. Or &lt;a href="http://en.wikipedia.org/wiki/Bitcoin"&gt;bitcoin&lt;/a&gt;. This would solve so many problems. It would make it unequivocally true that the Federation doesn&#8217;t use money. It would give people a unit to use as reference when they say things are expensive. It would be a thing citizen&#8217;s could acquire, if they wanted to, through barter originally, then allowing them to use them to purchase things (like Tribbles or Holosuites) from people who elected to take them, since taking them is optional (witness Quark&#8217;s vacillations on whether he accepts them or not). It would make a nice proxy for talking about investment levels, such as when Kirk said how much the Federation had invested in Spock.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Foreign Reserves&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Additionally, I believe that the Federation acts like any current sovereign nation state and holds foreign reserves of currencies of other nations. It&#8217;s assumed that not all foreign trade is done through barter. The federation itself probably holds foreign reserves in foreign currency just as China holds US dollars and England keeps a reserve of Euros. Sisko at one point tells Quark he could have charged rent for the bar, but he chose not to. Presumably that would have been paid in latinum. Presumably the Federation would have just held onto it as foreign reserves. All evidence, in fact, points to the fact that the Federation operates as a nation and uses foreign reserves exactly as we do now. The Chinese government holds US Dollars but you don&#8217;t here a Chinese person say &#8220;we use dollars.&#8221; This is a &lt;em&gt;bit &lt;/em&gt;confusing by the episode in which the Federation &lt;a href="http://en.memory-alpha.org/wiki/The_Price_%28episode%29"&gt;offers 1.5 million Federation Credits for use of the Barzanian wormhole&lt;/a&gt;, but it doesn&#8217;t have to be contradictory. Federation Credits had value to the Barzanians, so the Federation could simply procure them from the issuer with its foreign reserves of other currencies at market rate.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Individual Can Have Money&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;An individual of the Federation can procure latinum by barter for goods, labor or, presumably Federation Credits, if they had them. I assume that there&#8217;s probably some black market value for Federation Credits just like any other currency, sovereign issued or not (you can buy a&lt;a href="http://en.wikipedia.org/wiki/Lewes_Pound"&gt;Lewes Pound&lt;/a&gt; on &lt;a href="http://www.ebay.com/sch/i.html?_odkw=%22stroud+pound%22&amp;amp;_osacat=0&amp;amp;_from=R40&amp;amp;_trksid=p2045573.m570.l1313&amp;amp;_nkw=%22lewes+pound%22&amp;amp;_sacat=0"&gt;eBay right now for $7.98&lt;/a&gt;). Perhaps its more legitimate and the Units are traded on a commodities exchange. It really doesn&#8217;t matter. As a Federation Citizen I can have gold pressed latinum, Federation Credits, &lt;a href="http://en.memory-alpha.org/wiki/Frang"&gt;Frangs&lt;/a&gt;, &lt;a href="http://en.memory-alpha.org/wiki/Darsek"&gt;Darseks&lt;/a&gt;, &lt;a href="http://en.memory-alpha.org/wiki/Isik"&gt;Isiks&lt;/a&gt;, &lt;a href="http://en.memory-alpha.org/wiki/Lek"&gt;Leks&lt;/a&gt;, or &lt;a href="http://en.memory-alpha.org/wiki/Quatloo"&gt;Quatloos&lt;/a&gt; in my wallet. I can have a wallet. I can buy things with &lt;a href="http://en.memory-alpha.org/wiki/Self-sealing_stem_bolt"&gt;Self Sealing Stem Bolts&lt;/a&gt; if I want. But none of that is in conflict with the fact that the Federation has no unit of currency, has no money, and my society is predominantly concerned with societal good and self improvement.&lt;/p&gt;
&lt;p&gt;Then there&#8217;s the matter of Quark&#8217;s bar. What&#8217;s up with that? He never seems to charge anyone for drinks, but is obsessed with money, and you can buy holosuites in latinum or Federation Credits, and you can bet on the Dabo table with Latinum. At first I thought there was a whole complex thing where Quark doesn&#8217;t charge Starfleet personnel because he made the mental calculation it was cheaper to give them drinks for free and keep accepting free rent from Sisko, but then I realized that doesn&#8217;t really work because he charges them for the Holosuites and Dabo tables. Then I realized: Quark&#8217;s is like any other casino. The drinks are free: they are a loss leader against the higher profits of the Dabo Table and Holosuites.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Proto Post Scarcity Economy&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The thing I love most about this theory is that it seems plausible for our future. &lt;a href="http://en.memory-alpha.org/wiki/New_World_Economy"&gt;Tom Paris said that a new world economy takes shape in the 22nd century&lt;/a&gt;. That might be a smidge optimistic but we already have a world economy, in one sense, so the &lt;em&gt;new &lt;/em&gt;one could be something only incrementally different from this one. Money went the way of the dinosaur, he said, and Ft. Knox was turned into a museum. Most of us are already off the gold standard, and it&#8217;s certainly not inconceivable in another 180 years we don&#8217;t use paper money at all, and a single currency has dominated the planet&#8202;&#8212;&#8202;the Dollar is already close&#8202;&#8212;&#8202;and it slowly fades into the background.&lt;/p&gt;
&lt;p&gt;From there, perhaps a cultural shift takes place as we realize that &#8220;everyone in a job&#8221; isn&#8217;t the same as a full economy, and we start to look for models beyond capitalism that aren&#8217;t all communist hoo-ha.&lt;/p&gt;
&lt;p&gt;I sort of love that Star Trek forces us to think about a society that has no money but still operates with individual freedom and without central planning. I love that democracy is still in place. I love that people can still buy and sell things. It&#8217;s &lt;em&gt;real. &lt;/em&gt;It&#8217;s a more realistic vision of post-capitalism than I have seen anywhere else. Scarcity still exists to some extant, but society produces more than enough to satisfy everyone&#8217;s basic needs. The frustrating thing is that &lt;em&gt;we pretty much do that now&lt;/em&gt;, we just don&#8217;t allocate properly. And allocating properly cannot be done via central planning.&lt;/p&gt;
&lt;p&gt;The only real &#8220;out there&#8221; requirement in all of this is a governmental layer higher than the nation, and indeed, higher than the planet. This doesn&#8217;t seem insane, I suppose, if we were to suddenly find ourselves not alone in the universe. And indeed we already have some measure of international government now. Moreover, the Federation clearly adheres to the &#8220;laws made as close to home as possible&#8221; routine, since as far as we can tell the Federation president really only has authority over Starfleet, Foreign Relations and power allocation and accounting. Virtually every other law we encounter in the Federation happens at the individual planet or colony level.&lt;/p&gt;
&lt;p&gt;It&#8217;s interesting to me because these are things we&#8217;re going to have to reckon with, I believe, in my lifetime. If robots do all the dirty work, and the US is hugely rich, does every single person really need a job? Are we going to let all of that money pile up in the 0.1% ruling elite, or can it be distributed to everyone? Does wealth being distributed to the people in an equal manner mean communism absolutely? Of course it doesn&#8217;t. The US isn&#8217;t communist. The UK isn&#8217;t communist. Denmark isn&#8217;t communist. What happens when the surplus is more than enough?&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 13 Feb 2014 22:04:25 -0800</pubDate>
      <link>https://medium.com/editors-picks/29bab88d50</link>
      <guid>https://medium.com/editors-picks/29bab88d50</guid>
    </item>
    <item>
      <title>Chrome Extension Developer FAQ for upcoming changes in Chrome 33 related to hosting extensions - The Chromium Projects</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7237725'&gt;"Chrome Extension Developer FAQ for upcoming changes in Chrome 33 related to hosting extensions - The Chromium Projects"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='https://sites.google.com/a/chromium.org/dev/developers/extensions-deployment-faq'&gt;https://sites.google.com/a/chromium.org/dev/developers/extensions-deployment-faq&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; </description>
      <pubDate>Fri, 14 Feb 2014 01:56:01 -0800</pubDate>
      <link>https://sites.google.com/a/chromium.org/dev/developers/extensions-deployment-faq</link>
      <guid>https://sites.google.com/a/chromium.org/dev/developers/extensions-deployment-faq</guid>
    </item>
    <item>
      <title>Servo Layout Engine: Parallelizing the Browser // by Paul Rouget</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7237735'&gt;"Servo Layout Engine: Parallelizing the Browser // by Paul Rouget"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://paulrouget.com/e/servopres/'&gt;http://paulrouget.com/e/servopres/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;

&lt;p&gt;During FOSDEM, Josh Matthews talked about Servo.
 You can find his slides here: &lt;a href="http://www.joshmatthews.net/fosdemservo/"&gt;joshmatthews.net/fosdemservo&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Video:&lt;/p&gt;
&lt;p&gt;
 
 http://mirrors.dotsrc.org/fosdem/2014/UD2218A/Saturday/Servo_building_a_parallel_web_browser.webm
 &lt;/p&gt;
 10 Feb 2014
 
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 01:59:01 -0800</pubDate>
      <link>http://paulrouget.com/e/servopres/</link>
      <guid>http://paulrouget.com/e/servopres/</guid>
    </item>
    <item>
      <title>CppCat, an Ambitious C++ Code Analyzer from Tula</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7238009'&gt;"CppCat, an Ambitious C++ Code Analyzer from Tula"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.viva64.com/en/b/0232/'&gt;http://www.viva64.com/en/b/0232/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 
 &lt;p&gt;&lt;span&gt;This article was originally &lt;a href="http://www.siliconrus.com/2014/02/cppcat/"&gt;&lt;span&gt;published&lt;/span&gt;&lt;/a&gt; (in Russian) at the website siliconrus.com. It is an interview with Evgeniy Ryzhkov by an author and editor at siliconrus.com, Konstantin Panphilov. The article was translated and published at our blog by the editors' permission.&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;Today we had a conversation with Evgeniy Ryzhkov, CEO of the "Program Verification Systems" company developing software products in the area of software testing systems and static code analysis systems. The company currently offers two products, &lt;a href='http://www.viva64.com/en/pvs-studio/'&gt;PVS-Studio&lt;/a&gt; and a recently released &lt;a href="http://www.cppcat.com/"&gt;CppCat&lt;/a&gt;. Both are static analyzers for C++ code.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Picture 1 - Evgeniy Ryzhkov&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In this interview, we have discussed specifics of debugging, problems of running an international business in Tula, issues of the pricing policy in their area, and cats.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Panphilov: Hello! Tell us please about your business in general - what are you doing, why, and who else takes part in it?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Ryzhkov: I work at the "Program Verification Systems" company which we founded together with my associate and business partner Andrey Karpov. We are situated in a provincial city of Tula which is famous for its arms industry, samovars, and traditional pryanik gingerbread. Since all these fields are already occupied, we've chosen an area which is not very usual for Russia. We develop programmers' tools. To be more exact, we create static analysis tools for C++ code.&lt;/p&gt;
&lt;p&gt;Currently our team consists of six people, but, despite the small size, we manage to create pretty cool and complex stuff. I mean first of all the PVS-Studio analyzer and our new product CppCat, which is a greatly revised version of PVS-Studio with a different pricing and licensing policy.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Picture 2 - Andrey Karpov, cofounder&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Ours is a most typical software company: we create software products and sell them to customers. In this sense, we are not quite "in the trend": we don't design mobile applications with millions of installs, or possess a website with hundreds of thousands of unique visitors. We run a, so to say, classic business which seems to be pretty rare nowadays.&lt;/p&gt;
&lt;p&gt;All the work on promoting, advertising and selling our primary product, PVS-Studio, we do on our own - not to mention that we develop it on our own too, of course.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;KP: What is the difference between CppCat and PVS-Studio?&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;ER: First of all, PVS-Studio is a pretty expensive and strongly specialized product. The cheapest license - the one for a team of up to 9 developers - currently costs &#8364;5250. Besides, this is a product with a long history (it was introduced in the beginning of 2011) and it has by now accumulated a lot of features which not all developers need. That's why, in the autumn 2013, we decided to redesign our product as if we were developing it from scratch.&lt;/p&gt;
&lt;p&gt;It took us 3.5 months to develop and release such new product (based on the existing one, of course). We got it clear of all the stuff that we found inconvenient and complicated, and worked out a new pricing policy. We offer single-user licenses for the product at $250. The tool was launched soon after the New Year. And you know, we were much astonished ourselves at having managed it all in just 3.5 months. By the way, I have a nice story to tell you about how its name was conceived.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Picture 3 - A recreation room in the office. It's empty - right, no time for relaxation!&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;You know, inventing names is a very difficult task. Those who have ever had to do it know what I mean, and those who haven't perhaps won't believe me. Anyway, we needed a name that met a few requirements: 1) it should emphasize that the tool was designed for C++ programmers; 2) it should be vacant (that's why various names like cppcheck and codescan wouldn't do); 3) it should be amusing; 4) it could be illustrated by a nice logo.&lt;/p&gt;
&lt;p&gt;Well, there is a general belief that programmers are fond of cats, and we used it as an inspiration source. If you visit the cppcat.com website, you'll see our logo hanging there all about (just scroll down a bit). So, it took us two weeks out of 3.5 months to make up the name and about a month to design the logos and test them on focus groups.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Picture 4 - This is how CppCat was being born&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;KP: You're offering PVS-Studio at such a high price - are there really any customers? Is it that Visual Studio's standard debugger is so awfully bad?&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;ER: Well, 85% of all the purchases are made from the US and Europe, while Russia makes only 10% of our sales. Static analysis tools are commonly pretty expensive throughout the world. You can't have thousands of customers, so you have to set high prices. It is not that Visual Studio's debugger is bad. Let me explain the way a customer makes a decision about using our or any other static analysis tool. He runs the trial version and studies the bugs it has found. If he finds really interesting and worthy issues, he estimates how much time it would have taken a programmer to find and fix those bugs manually. Then he estimates the cost of an hour of work. If he finds that the tool can help save time on bug search, he will buy it. And here we face a few issues with sales, and I'd like to tell you about them.&lt;/p&gt;
&lt;p&gt;First, when studying and evaluating a tool, the programmer may fail to find interesting messages among the issues detected by the analyzer. It's not because the tool has not found errors. It's that when you get, say, 300 messages, you will be most attentive when studying the first 10. You will be less attentive when studying the next 20. And then you will stop right there. So it is very important that the most interesting messages should be shown in the beginning of the list.&lt;/p&gt;
&lt;p&gt;Second, the cost of one hour of work I've already mentioned. If it is low (for example, in a project where students are engaged), the customer certainly doesn't need a static analyzer. But when you deal with highly-paid American programmers, who earn $50 per hour, a tool that can help to save at least some time would be useful.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Picture 5- One more photo of the office: a shaman's drum - a gift from Intel. A crucial part of a debugging ritual.&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;Third, static analysis tools allow users to detect bugs in the code right in the middle of writing it, before it gets to testers who, in turn, will need some time for testing it and forming a bug report - and all that bureaucratic stuff accompanying the whole procedure. No need to say when it slips over to the users.&lt;/p&gt;
&lt;p&gt;However, those who are not familiar with the static analysis technology may mistakenly think of it as a wonderful miracle - so why are there still bugs in programs when we have such a powerful weapon? Of course, it's not all that cool and neat. It's just an ordinary technology with its own advantages and disadvantages. Some find it useful, and some others do not.&lt;/p&gt;
&lt;p&gt;By the way, the specific character of our target audience sets some interesting limitations on the ways of product promotion.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;KP: Yes, that's interesting too, but before that I'd like you to tell us how you managed to launch your business so quickly.&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;ER: Well, I'm afraid our start was not so quick. We founded our company in 2008 - it was then that we started working with static code analysis technologies. Our first product named Viva64 was designed for finding issues of software migration to 64-bit systems. By the way, detection of the issues in migration to 64-bit systems was my graduation thesis subject, so our product was evolving along with our scientific work. And my coworker Andrey Karpov was working on his own thesis on parallel programming. Naturally, we had jobs as programmers but wished to try something of our own. That was how Viva64 appeared. Unfortunately, we were not that experienced in selling our products as we are now. For a long time, the tool didn't bring us enough profit to found a self-managed business and drop working as outsourcers to earn our living.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Picture 6 - It is usually recommended to nail a horseshoe to the computer's chassis... Why is it on the wall then?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Besides, that tool appeared to be ahead of its time. We counted on a swift software migration to 64-bit systems to happen soon, but this process has appeared to be slowly dragging and it is still not over. We also found it a difficult task to tell programmers about 64-bit errors - they just wouldn't believe us. So our first step was a flop - just as it ought to. By 2011 we developed a general-purpose code analyzer PVS-Studio which happened to be more familiar to people, and we saw a sales boost as a result.&lt;/p&gt;
&lt;p&gt;There was also some luck to it. Not in the sense that we didn't do anything and then it all just suddenly came to us. No, we did work hard - and one morning I checked my e-mail and saw a purchase-report from id Software by a user named John Carmack. I checked it several times and made sure it was not a fraud, and then I was very pleasantly amused. But it was when Carmack praised PVS-Studio from the stage at QuakeCon 2011 that I and all in our small team felt truly happy with what we were doing. And I want to clarify here why I am telling you about it. Not only to boast - though we felt proud indeed. It's just another thing which is very important: if you want to be mentioned and praised by some tough fellow of yours, you'll need to work quite a lot and that work may seem unnoticeable at first.&lt;/p&gt;
&lt;p&gt;And what such a quick launch of CppCat is concerned, we managed it because we had worked on the product concept for a long time by then, and we knew all the drawbacks of PVS-Studio that we needed to fix.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;KP: Wow, that's really a cool story about Carmack.&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;ER: By the way, we are currently selling both products, PVS-Studio and CppCat, so they live in parallel and help each other.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Picture 7 - Carmack is glad for Russian software products&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span&gt;KP: You're teasing Chromium, MTA, Doom 3, etc. at your site - doesn't it prove that bugs are infinite and it's impossible to find them all?&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;ER: Konstantin, you've touched upon my favorite subject - promotion of our products. Our target audience are tough and experienced programmers. Decision about purchasing products is made by a team leader (in large companies) or development director (in small teams). You may flood the whole Internet with bright banners "Our product is the best, buy it and forget all trouble!" &#8212; they won't fall for it.&lt;/p&gt;
&lt;p&gt;Moreover, many programmers either use AdBlock or have worked out a habit not to notice banners and to show criticism toward advertising reviews. But a few years ago we found - or rather accidentally discovered - the most efficient way of promotion. We take an open source project - the more famous, the better - and check it. We pick a dozen of bugs from the list and discuss them in the article. Andrey is especially good at writing such articles - he has really become a master in that. What is the idea of these articles? We DO NOT mean to say that all those projects are written by novices and bunglers and make fun of them. We mean to say, "Look, even the tough Chromium developers sometimes make mistakes! What about you - do you think you are perfect? Get the tool and check your code."&lt;/p&gt;
&lt;p&gt;People do like these articles, which inspire them to visit our site and download a trial version. The idea is simple. Programs are written by humans. And humans tend to make mistakes, you know that. Even the most qualified ones. The whole stuff is always in motion: projects are evolving, developers are writing new code and modifying old one. So mistakes are inevitable. The earlier they are diagnosed (either by our tools or by others), the cheaper it is to fix them.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Picture 8 - A program's screenshot (for the sake of formality)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;By the way, we are very lucky with our target audience (i.e. programmers). I've become convinced of it during the years of work. Out of 100 reports, only a few are inadequate; most often, we get really reasonable bug-reports, stack-dumps, and even recommendations (which are often quite useful) on how to fix bugs in our tools. I just can't but compare our audience to that of other products (as told by our friends) and feel happy that we are so lucky with our users.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;KP: By the way, what running CppCat on CppCat's code will result in?&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;ER: It's one of the most frequently asked questions. We regularly run our tools on themselves. They usually reveal bugs at the moment of writing the code, when analysis is invoked right after compilation. And here's where they all are caught. That's why you will never see us publishing an article with a title like, "We found 20 bugs in our analyzer". It's not because we don't make mistakes - we do, and quite a lot. But we get them fixed right away, so they don't even get into the bug tracker.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;KP: That's great. Speaking of money, does your startup pay off? How many customers do you have, what's the turnover?&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;ER: From the viewpoint of business, we have always tried to be profitable as we started and maintained the company with our own money. To be more exact, we have never been at a loss because we just can't afford it. This is partly the reason why we are still a small startup, though we want to grow, of course. Speaking of the turnover, we saw 40 purchases of PVS-Studio during 2013. Not all of them were first-time purchases (many of our customers renew licenses at 80% of the original price for one year). Among those purchases were both ordinary, i.e. cheaper, licenses and more expensive ones (the Site License for a team of many developers); but there were also cheaper deals when we carried out an experiment with the pricing policy. So these figures make a good estimate of our business. Not great, of course, and anyone would crave for more. But this is how it is for now.&lt;/p&gt;
&lt;p&gt;What CppCat is concerned, it's a bit too early to give any figures as the product was only launched in January 2014, and, as I already said, you don't expect millions of installs in our area.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;KP: Frankly, did you really start it all on your own, without any investments?&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;ER: Yes. However, when we only started and Russia didn't see such an investment boom like now, we communicated with some investment funds. They all answered, "Welcome when you have an established business". When we got an established business, they answered, "Welcome when you reach SUCH-AND-SUCH income level". And when our income reached that level, we did not need them anymore. So we haven't contacted any investors since then. This is our experience of trying to establish relations with investors. I suspect there are many cases when it may be mutually beneficial, but not for us with our narrow target area.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;KP: Everything looks bright and neat, but the world is not that way. There must be something you are not satisfied with. What is it?&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;ER: That's true, there is always something you don't like, along with positive aspects. We don't like failing to reach a larger audience of USA and Europe developers, or a larger number of article reads and trial-version downloads. Although we work and try hard, results are still not very promising. Sometimes I take a look at a diagram of Google Analytics for our fellow colleagues and can't help wondering, "How do they manage to attract so many thousands of visitors? What am &lt;span&gt;I &lt;/span&gt; doing wrong?" I can't but envy, "I wish I had traffic like this!"&lt;/p&gt;
&lt;p&gt;And please no comments like, "Sure you won't get over to the USA and Europe from Tula!"&lt;/p&gt;
&lt;p&gt;&lt;span&gt;KP: Why, you are right. It doesn't matter where you are situated. People get to your website, not your office. So it's OK.&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;ER: Yes, but we just can't understand where, for instance, USA programmers hang about. That is, people give us addresses of some websites in comments, we pick the first five and try to carry out some promotional activity there. But it seems not enough. So, we are currently not very good at internet-marketing. I mean you can't just create a fresh account at a forum and write there, "Hello guys, welcome here - analyzers for download".&lt;/p&gt;
&lt;p&gt;&lt;span&gt;KP: Well, I'm sure you'll make it one day.&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;ER: No doubts :-)&lt;/p&gt;
&lt;p&gt;&lt;span&gt;KP: Thank you very much!&lt;/span&gt; &lt;/p&gt;
 
 
 
 
 
 
 
 
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 03:44:48 -0800</pubDate>
      <link>http://www.viva64.com/en/b/0232/</link>
      <guid>http://www.viva64.com/en/b/0232/</guid>
    </item>
    <item>
      <title>Watch This Man Confront CEO of Mt. Gox Over Missing Bitcoins</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7238079'&gt;"Watch This Man Confront CEO of Mt. Gox Over Missing Bitcoins"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.coindesk.com/watch-man-confront-ceo-mt-gox-missing-bitcoins/'&gt;http://www.coindesk.com/watch-man-confront-ceo-mt-gox-missing-bitcoins/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt; &lt;span&gt;&lt;/span&gt;&lt;p&gt;Something about bitcoin inspires people to jump on airplanes and fly to the other side of the world to protect their wealth. Maybe that&#8217;s part of bitcoin&#8217;s &#8216;inherent value&#8217;.&lt;/p&gt;
&lt;p&gt;Kolin Burges was a software developer in London until the end of last year, when his vast Litecoin holdings suddenly went lunar. Concerned at the prospect of a Chinese New Year crash he moved much of his wealth back to Japan and &lt;a href='http://www.coindesk.com/companies/exchanges/mt-gox/'&gt;Mt. Gox&lt;/a&gt;, only to find it locked in there around the same week.&lt;/p&gt;
&lt;p&gt;Inspired by last week&#8217;s three-day sit-in protest by Australia&#8217;s &lt;a href="http://www.reddit.com/r/Bitcoin/comments/1x9gue/my_protest_at_mt"&gt;pseudonymous CoinSearcher&lt;/a&gt;, Burges bought a last-minute ticket (at the cost of &#163;850) and flew 12 hours from London to Tokyo to see for himself what was happening. He said:&lt;/p&gt; &#8220;They haven&#8217;t answered anybody&#8217;s support requests, they seem to have just taken people&#8217;s money &#8211; they&#8217;ve taken my money.&#8221; &lt;p&gt;After arriving in Japan on Wednesday, Bruges tried to schedule an&#160;appointment with the &lt;a href='http://www.coindesk.com/mt-gox-mark-karpeles-responds-to-critics/'&gt;company&#8217;s executives&lt;/a&gt;, but to no avail. On Friday morning he set up camp outside the Mt. Gox offices in&#160;Tokyo&#8217;s Shibuya district &#8211; despite the freezing temperatures.&lt;/p&gt;
&lt;p&gt;At 9.15am&#160;he confronted Mt. Gox&#8217;s CEO Mark Karpeles outside the exchange&#8217;s front door and demanded to withdraw his coins, but the response was: &#8220;We can&#8217;t right now.&#8221;&#160;Burges&#8217; next question: &#8220;Do you still have everyone&#8217;s bitcoins?&#8221; didn&#8217;t get a response.&lt;/p&gt;
&lt;p&gt;Burges admitted that a doorstop challenge would probably be futile, but said the wealth that he has stored in &lt;a href='http://www.coindesk.com/price-drops-mt-gox-blames-bitcoin-flaw-withdrawal-delays/'&gt;Mt. Gox&#8217;s servers&lt;/a&gt; is definitely worth it.&#160;&#8221;If I lose that, my lifestyle will change. I just didn&#8217;t want to lose that amount of money without a fight,&#8221; he said.&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;Burges&#160;says he&#8217;ll stay in Tokyo until next week, camping out at Mt. Gox&#8217;s offices again if necessary.&lt;/p&gt;
&lt;p&gt;When he announced his travel and protest plans on Reddit, the response was mixed. While some supported his effort, others said Mt. Gox had already given a credible explanation for the withdrawal problems and should be allowed time to fix them.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.coindesk.com/tag/japan/"&gt;Japan&lt;/a&gt;&lt;a href="http://www.coindesk.com/tag/reddit/"&gt;reddit&lt;/a&gt;&lt;a href="http://www.coindesk.com/tag/tokyo/"&gt;Tokyo&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 04:08:48 -0800</pubDate>
      <link>http://www.coindesk.com/watch-man-confront-ceo-mt-gox-missing-bitcoins/</link>
      <guid>http://www.coindesk.com/watch-man-confront-ceo-mt-gox-missing-bitcoins/</guid>
    </item>
    <item>
      <title>A new take on an old industry., Drop the ego and prove "I could make that so much better"</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7238109'&gt;"A new take on an old industry., Drop the ego and prove "I could make that so much better""&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://blog.lawnstarter.com/post/76623724133/drop-the-ego-and-prove-i-could-make-that-so-much'&gt;http://blog.lawnstarter.com/post/76623724133/drop-the-ego-and-prove-i-could-make-that-so-much&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;p&gt;I mow lawns for a living, what do you do?&lt;/p&gt;
&lt;p&gt;Well, if you&#8217;re working on a startup it probably sounds a helluva lot cooler than that. &#160;Whether it was my ego, or insecurity I came very close to never even starting LawnStarter simply due to the industry it was in.&lt;/p&gt;
&lt;p&gt;After dropping out I was ready to work on something that sounded revolutionary. What I didn&#8217;t expect was to stumble upon an industry that needed a full system overhaul.&lt;/p&gt;
&lt;p&gt;In the very beginning of working on LawnStarter &#160;I almost always told myself and other people that this was a segue to make some cash until my &#8220;real&#8221; startup began. I mean, come on, clearly I wasn&#8217;t going to make some lawn care company!&lt;/p&gt;
&lt;p&gt;As weeks turned into months and progress became rather substantial I started to realize the only thing holding us back was my ego. I felt uncomfortable telling friends what we were doing (in my defense they gave me tons of shit), I undersold the opportunity, and worst of all I was honestly a bit embarrassed.&lt;/p&gt;
&lt;p&gt;Looking back, it couldn&#8217;t be clearer that I had fallen into a mindset that is all too familiar in our community.&lt;/p&gt;
&lt;p&gt;&#160;Why the hell not do a startup to try to change the lawn care industry? It&#8217;s a massive industry that could really use some help!&lt;/p&gt;
&lt;p&gt;For some reason, I bought into this premium that our community puts on companies that produce gimmicky technology and raise massive rounds without having any real revenue streams. I got so caught up in this mentality that I was literally embarrassed to be working on a company that was making money in a less than sexy industry. Seems ass-backwards to me, and if I had simply ignored my ego for 10 minutes, I would have recognized how ridiculous I was for being embarrassed.&lt;/p&gt;
&lt;p&gt;Over the past 5 months I&#8217;ve realized just how many opportunities there are to make really shitty industries better. People are willing to pay for a better experience, think &lt;a href="http://homejoy.com"&gt;Homejoy&lt;/a&gt; and &lt;a href="http://moveline.com"&gt;Moveline&lt;/a&gt; (hopefully one day somebody puts &lt;a href="http://lawnstarter.com"&gt;Lawn Starter&lt;/a&gt; in that group). Even with money to be made and awesome companies to be built it seems to me like our egos and insecurities are holding us and progress back in dozens of not so attractive industries. Why not ride the wave of awesome customer experience and try to put your stamp on an industry that hasn&#8217;t changed in decades?&lt;/p&gt;
&lt;p&gt;While everyone is trying to make the next facebook or snapchat - which is cool, I use both of these a lot - you could be trying to reinventing an industry nobody else wants to touch.&lt;/p&gt;
&lt;p&gt;We all have a list of things or industries that &#8220;we could make so much better&#8221;. For me it was lawn care since high school. &#160;I&#8217;m finally putting my money where my mouth was and I look forward to seeing if I was right.&lt;/p&gt;
&lt;p&gt;&#160;Me, I&#8217;ll be&#160;&lt;a href="http://lawnstarter.com/fairfax/"&gt;mowing lawns in Fairfax&lt;/a&gt; and dozens of other places. Where will you be?&lt;/p&gt;
&lt;p&gt;-Steve&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 04:17:48 -0800</pubDate>
      <link>http://blog.lawnstarter.com/post/76623724133/drop-the-ego-and-prove-i-could-make-that-so-much</link>
      <guid>http://blog.lawnstarter.com/post/76623724133/drop-the-ego-and-prove-i-could-make-that-so-much</guid>
    </item>
    <item>
      <title>De La Soul to Make Entire Catalog Available for Free for 25 Hours | Music News | Rolling Stone</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7238287'&gt;"De La Soul to Make Entire Catalog Available for Free for 25 Hours | Music News | Rolling Stone"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.rollingstone.com/music/news/de-la-soul-to-make-entire-catalog-available-for-free-20140213'&gt;http://www.rollingstone.com/music/news/de-la-soul-to-make-entire-catalog-available-for-free-20140213&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;
&lt;div&gt;
 
 
 &lt;div&gt;
 &lt;!-- &lt;a class="thickbox imageLink" title="" href="http://assets-s3.rollingstone.com/assets/images/story/de-la-soul-to-make-entire-catalog-available-for-free-20140213/delasoul-600-1392321774.jpg"&gt; --&gt;
 
 &lt;!-- &lt;/a&gt; --&gt;
 &lt;p&gt;De La Soul&lt;/p&gt;
 
 &lt;p&gt;Robbie Jeffers&lt;/p&gt;
 &lt;/div&gt;
 
 &lt;div&gt;
 
 &lt;p&gt;February 13, 2014 4:35 PM ET&lt;/p&gt;
 &lt;/div&gt;
 
 
 
 
 &lt;p&gt;In honor of next month's 25th anniversary of their debut album &lt;em&gt;3 Feet High and Rising&lt;/em&gt;, &lt;a href="http://www.rollingstone.com/music/artists/de-la-soul"&gt;De La Soul&lt;/a&gt;&#160;are making their entire catalog available for free download for 25 hours on the &lt;a href="http://www.wearedelasoul.com"&gt;group's website&lt;/a&gt;. The download bonanza will begin on Friday, February 14th at 11 a.m. EST until Saturday at noon.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.rollingstone.com/music/pictures/10-unseen-photos-from-the-de-la-soul-archives-20140214"&gt;Check out 10 Unseen Photos Included in De La Soul's Album Downloads&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;"It's about allowing our fans who have been looking and trying to get a hold of our music to have access to it," De La Soul member Posdnuos tells &lt;em&gt;Rolling Stone&lt;/em&gt;. "It's been too long where our fans haven't had access to everything. This is our way of showing them how much we love them."&lt;/p&gt;
&lt;p&gt;The same things that made &lt;em&gt;3 Feet High&lt;/em&gt; and other De La albums so influential &#8212;&#160;its creative, if not fully licensed, use of a myriad of samples &#8212;&#160;has also prevented the group's work from appearing on many digital platforms. "It's been a trying journey," admits Posdnuos. "We've been blessed to be in the &lt;a href="http://www.wnyc.org/story/122544-de-la-soul-makes-library-congress-national-registry/"&gt;Library of Congress&lt;/a&gt;, but we can't even have our music on iTunes. We've been working very hard to get that solved." The rapper points to frequent personnel changes at record labels and hazy language in early contracts that have led to long delays in properly clearing the group's catalog.&#160;&lt;/p&gt;
&lt;p&gt;The release of the group's catalog is the first of numerous upcoming projects. In a few weeks, they'll post new songs to their site, with&#160;&lt;em&gt;You're Welcome, &lt;/em&gt;their first album since 2004's&lt;em&gt; The Grind Date,&lt;/em&gt;&#160;expected to be&#160;released before summer. Next month will also see the release of &lt;em&gt;Preemium Soul on the Rocks&lt;/em&gt;, a six-song EP with three beats each from DJ Premier and Pete Rock. The group is also planning a visit to Detroit to work on an unreleased beat from J Dilla, the prolific producer who passed away in 2006. "Dilla was the Tupac of producers," says Posdnuos. "He has so many unreleased things that no one has heard. His family knows how vital and important an ingredient his music was to our work."&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.rollingstone.com/music/lists/500-greatest-albums-of-all-time-20120531/de-la-soul-3-feet-high-and-rising-20120524"&gt;Where does &lt;em&gt;3 Feet High and Rising&lt;/em&gt; rank on&#160;&lt;em&gt;Rolling Stone's&lt;/em&gt;&#160;500 Greatest Albums of All Time?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Asked about the status of &lt;em&gt;You're Welcome&lt;/em&gt;, an album originally scheduled for release last year, Posdnuos says that it's "coming along amazingly," but points to self-criticism in its delay. "We have tons of music, but we're our own worst critics," admits the rapper. "Certain groups have too many 'yes men.' In our group, we have too many 'no men.' When we look back on some of the stuff we have, we're like, 'Yo, we need to just put this out.' The album is still called &lt;em&gt;You're Welcome&lt;/em&gt;, but we also have this whole other album that we're working on that&#8230;Wooo, I wish I could talk about it."&lt;/p&gt;
&lt;p&gt;Twenty-five years into their career, the group is ready, if somewhat cautiously, to adopt the more-is-more release schedule of its younger peers. "We're just getting in the mode of constantly giving people new music," says Posdnuos. "I'll be the first to say that not everyone can do it. You can put out a new mixtape every week, but it can dilute what you're putting out because you haven't had enough time to see what's going on with your life to write something from a different angle. With us, we've sat a long time without releasing an album. It's high time we start releasing a bunch of stuff because it's there."&lt;/p&gt; 
 
 
 &lt;/div&gt;
&lt;p&gt;To read the new issue of &lt;em&gt;Rolling Stone&lt;/em&gt; online, plus the entire RS archive: &lt;a href="http://archive.rollingstone.com/"&gt;Click Here&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 05:32:23 -0800</pubDate>
      <link>http://www.rollingstone.com/music/news/de-la-soul-to-make-entire-catalog-available-for-free-20140213</link>
      <guid>http://www.rollingstone.com/music/news/de-la-soul-to-make-entire-catalog-available-for-free-20140213</guid>
    </item>
    <item>
      <title>Mark Shuttleworth  &#187; Blog Archive   &#187; Losing graciously</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7238322'&gt;"Mark Shuttleworth  &#187; Blog Archive   &#187; Losing graciously"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.markshuttleworth.com/archives/1316'&gt;http://www.markshuttleworth.com/archives/1316&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;
&lt;div&gt;
 
 &lt;div&gt;
 
 Friday, February 14th, 2014
 &lt;/div&gt;
 &lt;div&gt;
 &lt;p&gt;With Bdale Garbee&#8217;s casting vote this week, the Debian technical committee finally settled the question of init for both Debian and Ubuntu in favour of systemd.&lt;/p&gt;
&lt;p&gt;I&#8217;d like to thank the committee for their thoughtful debate under pressure in the fishbowl; it set a high bar for analysis and experience-driven decision making since most members of the committee clearly took time to familiarise themselves with both options. I know the many people who work on Upstart appreciated the high praise for its code quality, rigorous testing and clarity of purpose expressed even by members who voted against it; from my perspective, it has been a pleasure to support the efforts of people who want to create truly great free software, and do it properly. Upstart has served Ubuntu extremely well &#8211; it gave us a great competitive advantage at a time when things became very dynamic in the kernel, it&#8217;s been very stable (it is after all the init used in both Ubuntu and RHEL 6 &lt;img src="http://www.markshuttleworth.com/wp-includes/images/smilies/icon_wink.gif"&gt; and has set a high standard for Canonical-lead software quality of which I am proud.&lt;/p&gt;
&lt;p&gt;Nevertheless, the decision is for systemd, and given that Ubuntu is quite centrally a member of the Debian family, that&#8217;s a decision we support. I will ask members of the Ubuntu community to help to implement this decision efficiently, bringing systemd into both Debian and Ubuntu safely and expeditiously. It will no doubt take time to achieve the stability and coverage that we enjoy today and in 14.04 LTS with Upstart, but I will ask the Ubuntu tech board (many of whom do not work for Canonical) to review the position and map out appropriate transition plans. We&#8217;ll certainly complete work to make the new logind work without systemd as pid 1. I expect they will want to bring systemd into Ubuntu as an option for developers as soon as it is reliably available in Debian, and as our default as soon as it offers a credible quality of service to match the existing init.&lt;/p&gt;
&lt;p&gt;Technologies of choice evolve, and our platform evolves both to lead &#160;(today our focus is on the cloud and on mobile, and we are quite clearly leading GNU/Linux on both fronts) and to embrace change imposed elsewhere. Init is contentious because it is required for both developers and system administrators to understand its quirks and capabilities. No wonder this was a difficult debate, the consequences for hundreds of thousands of people are very high. From my perspective the fact that good people were clearly split suggests that either option would work perfectly well.&#160;I trust the new stewards of pid 1 will take that responsibility as seriously as the Upstart team has done, and be as pleasant to work with. And&#8230; onward.&lt;/p&gt;
 
 &lt;p&gt;
 This entry was posted
 on Friday, February 14th, 2014 at 1:01 pm and is filed under &lt;a href="http://www.markshuttleworth.com/archives/category/ubuntu"&gt;ubuntu&lt;/a&gt;.
 You can follow any responses to this entry through the
 &lt;a href="http://www.markshuttleworth.com/archives/1316/feed"&gt;RSS 2.0&lt;/a&gt; feed.
 You can &lt;a href="#respond"&gt;leave a response&lt;/a&gt;, or &lt;a href="http://www.markshuttleworth.com/archives/1316/trackback"&gt;trackback&lt;/a&gt; from your own site.
 &lt;/p&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;p&gt;
Comments are filtered through &lt;a href="http://www.akismet.com/"&gt;Akismet&lt;/a&gt; for spam
detection. Please follow the Ubuntu Code of Conduct - your opinions are
welcome but please keep them polite and constructive.
&lt;/p&gt;
&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 05:32:23 -0800</pubDate>
      <link>http://www.markshuttleworth.com/archives/1316</link>
      <guid>http://www.markshuttleworth.com/archives/1316</guid>
    </item>
    <item>
      <title>@benguild | Apple's Remote Desktop software is secretly bundled for free with every Mac!</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7238410'&gt;"@benguild | Apple's Remote Desktop software is secretly bundled for free with every Mac!"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://benguild.com/2011/02/14/apples-remote-desktop-software-is-secretly-bundled-for/'&gt;http://benguild.com/2011/02/14/apples-remote-desktop-software-is-secretly-bundled-for/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;h2&gt;Apple's Remote Desktop software is secretly bundled for free with every Mac!&lt;/h2&gt;
 &lt;p&gt;&lt;strong&gt;14 Feb 2011&lt;/strong&gt; &#160;|&#160; Tags: &lt;a href='http://benguild.com/tagged/mac'&gt;#mac&lt;/a&gt;, &lt;a href='http://benguild.com/tagged/software'&gt;#software&lt;/a&gt;&lt;/p&gt;
 
 &lt;div&gt;
 &lt;p&gt;I&#8217;d always used Apple&#8217;s built-in VNC server for remote system administration via &lt;a href="http://sourceforge.net/projects/cotvnc/"&gt;Chicken of the VNC&lt;/a&gt;, but today I learned there is a better option based on what Apple includes with their &#8220;sold separately&#8221;&#160;&lt;a href="http://www.apple.com/remotedesktop/"&gt;Remote Desktop&lt;/a&gt; software. Ironically, it&#8217;s essentially the same product (including Clipboard sharing and Image scaling) &#8230; just less bloated and hidden for free deep inside most Macintosh computers!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Go to this folder on your computer:&lt;/strong&gt;&#160;/System/Library/CoreServices/&lt;em&gt;&lt;br&gt;(You can get there quickly by pressing Command+Shift+G in the Finder and pasting that string in as the folder)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In that folder, you&#8217;ll see an app called &#8220;Screen Sharing&#8221; &#8230; create a shortcut in your Applications folder by holding Command+Option and dragging it there. Do not move the actual file, make sure you hold those keys down and it will &#8220;link&#8221; it as a duplicate alias.&lt;/p&gt;
&lt;p&gt;This App works just like Remote Desktop, and can even save passwords in your system&#8217;s Keychain. Just enter a hostname and remember to enable &#8220;Screen Sharing&#8221; on the destination machine before starting!&lt;/p&gt;
&lt;p&gt;I&#8217;m not sure why Apple didn&#8217;t just put this in the Utilities folder? Enjoy!&lt;/p&gt;
 &lt;/div&gt;
 
 &lt;p&gt;&lt;a href="https://twitter.com/share"&gt;Tweet&lt;/a&gt;&lt;/p&gt;
 
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 05:44:23 -0800</pubDate>
      <link>http://benguild.com/2011/02/14/apples-remote-desktop-software-is-secretly-bundled-for/</link>
      <guid>http://benguild.com/2011/02/14/apples-remote-desktop-software-is-secretly-bundled-for/</guid>
    </item>
    <item>
      <title>Linux Design Tools: High-end Design on a Low-end Budget</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7238420'&gt;"Linux Design Tools: High-end Design on a Low-end Budget"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.sitepoint.com/linux-design-tools/'&gt;http://www.sitepoint.com/linux-design-tools/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;p&gt;While the world&#8217;s best commercial graphic applications come with packed with features, they also come with a price tag many find hard to justify. &lt;/p&gt;
&lt;p&gt;Though there are plenty of less expensive alternatives, the simple truth is: It&#8217;s hard to get cheaper than free. &lt;/p&gt;
&lt;p&gt;Today we&#8217;re going to look some of the free, open source graphic apps available, and see if they are a viable replacement.&lt;/p&gt;
&lt;p&gt;If you are currently unfamiliar with the abundance of free open source graphic apps now available, you may well be missing out.&lt;/p&gt;
&lt;p&gt;The best open source graphic applications on this list are comparable in quality to their leading commercial equivalents. &lt;/p&gt;
&lt;p&gt;Don&#8217;t be put off by the word &#8216;free&#8217; either. This is a case where &#8216;free&#8217; definitely doesn&#8217;t mean low quality. &lt;/p&gt;
&lt;p&gt;I know what you&#8217;re thinking: &#8220;If I use free software, I&#8217;ll have far too much extra money!&#8217; &lt;/p&gt;
&lt;p&gt;Relax. You can always donate to the hard-working developers behind these apps, and help them make them even better. &lt;/p&gt;
&lt;p&gt;So, let&#8217;s get to the list, and see if open source can &lt;em&gt;&lt;strong&gt;genuinely&lt;/strong&gt;&lt;/em&gt; compete with their expensive commercial counterparts. &lt;/p&gt;
&lt;p&gt;Sidenote: Although most of these applications were originally developed for Linux, they often have Windows and Mac versions. &lt;/p&gt;
&lt;h2&gt;1. Could You Use GIMP to Replace Photoshop?&lt;/h2&gt;
&lt;p&gt;Often the first application that comes to mind when you are thinking about free, open source graphics is &lt;a href="http://www.gimp.org/"&gt;GIMP (Gnu Image Manipulation Program). &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;While GIMP doesn&#8217;t have all the niche features of Photoshop, it certainly offers a lot. In fact, there are a good many professional designers who use GIMP and judging by their output, the results are stunning. &lt;/p&gt;
&lt;p&gt;So, assuming you have some design skills, the limitations of the applications you use is secondary. &lt;/p&gt;
&lt;div&gt;
&lt;img src="http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/02/GIMP.jpg"&gt;&lt;p&gt;Image Credit: gimp.org&lt;/p&gt;
&lt;/div&gt;
&lt;h3&gt;What Can GIMP Do?&lt;/h3&gt;
&lt;p&gt;GIMP is a raster graphics application that is useful for image editing and retouching. &lt;/p&gt;
&lt;p&gt;You can also use it to create raster images from scratch, as well as simple animations. &lt;/p&gt;
&lt;div&gt;
&lt;img src="http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/02/kick-it.gif"&gt;&lt;p&gt;Cage Transform in action&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;It supports layers and channels, has an advanced gradients function, includes paths and quick masks. There are rotation and transformation tools, as well as tools for scaling, cropping, resizing, file format conversion, and more. &lt;/p&gt;
&lt;p&gt;GIMP can also be used for both Web and print design. &lt;/p&gt;
&lt;p&gt;It even has a few tools that don&#8217;t have direct analogs in Photoshop &#8212; for instance, the Cage Transform tool that allows to warp just parts of objects.&lt;/p&gt;
&lt;h3&gt;Where Does GIMP Fall Short?&lt;/h3&gt;
&lt;p&gt;The main areas where GIMP falls behind are interface and feature list. &lt;/p&gt;
&lt;p&gt;Any designer raised on the Photoshop interface, might not always find menus options where they predict them to be. &lt;/p&gt;
&lt;p&gt;It&#8217;s true, the GIMP interface is different from Photoshop, and there will be an inevitable learning curve. &lt;/p&gt;
&lt;p&gt;However, if the UI differences are a show-stopper for you, there&#8217;s always &lt;a href="http://www.gimpshop.com/"&gt;Gimpshop&lt;/a&gt;. Gimpshop is GIMP retro-fitted a very Photoshop-like interface. &lt;/p&gt;
&lt;p&gt;Some may argue that reproducing Photoshop is not something to aspire to. You be the judge.&lt;/p&gt;
&lt;p&gt;In terms of features, it&#8217;s hard to pinpoint exactly which Photoshop features are missing, as most missing functionality can be added via GIMP&#8217;s rich plugins ecosystem. &lt;/p&gt;
&lt;p&gt;In theory, this is a better model, as you won&#8217;t have lots of unused functionality obscuring the features you need.&lt;/p&gt;
&lt;p&gt;As an example, GIMP doesn&#8217;t ship with RAW image processing abilities, but this can be added via the UFRaw plugin. &lt;/p&gt;
&lt;p&gt;GIMP does lack the granular text options of Photoshop, along with its adjustment layers. CMYK support is also somewhat limited by default, though additional plugins can plug this gap if required.&lt;/p&gt;
&lt;p&gt;While the lack of these features may well be a show-stopper for some, I suspect many designers would not even notice their absence. &lt;/p&gt;
&lt;p&gt;Interoperability is often cited as the biggest problem for dedicated GIMP users. Clients frequently want to provide you with PSD files, and while GIMP supports PSD in theory, the practical results aren&#8217;t always ideal.&lt;/p&gt;
&lt;p&gt;This file format issue is often cited as a key hurdle for new adopters, and is likely the major reason GIMP is not as widely-adopted as it might be.&lt;/p&gt;
&lt;h3&gt;Price Comparison Between GIMP and Photoshop &lt;/h3&gt;
&lt;p&gt;While there are some obvious caveats to adopting GIMP, these hurdles often become less important when you compare costs. As I mentioned, GIMP is free &#8211; it&#8217;s hard to get cheaper than that. &lt;/p&gt;
&lt;p&gt;On the other hand, Photoshop is no small investment. Currently, you can get Photoshop CS6 as a standalone application for $699-999 or for $1,299-2,559, bundled with other Creative Suite 6 products. &lt;/p&gt;
&lt;p&gt;With Adobe&#8217;s new rent-only policy &#8211; i.e. their Creative Cloud the situation is similar.&lt;/p&gt;
&lt;p&gt;If you are lucky to catch a promotion, you can get Photoshop for under $10 a month &#8211; otherwise the regular price is $19.99-29.99 a month. &lt;/p&gt;
&lt;p&gt;If you decide to go for the complete Creative Cloud, the price goes up to $49.99 a month (on a yearly contract), which is $600 a year. &lt;/p&gt;
&lt;p&gt;That is a lot money for most of us &#8212; especially if you are not using the software every day! &lt;/p&gt;
&lt;h2&gt;2. Could you use Inkscape to replace Illustrator?&lt;/h2&gt;
&lt;p&gt;Adobe Illustrator is another leading commercial vector graphic application that has a viable free open source competitor in the form of &lt;a href="http://inkscape.org/"&gt;Inkscape&lt;/a&gt;. &lt;/p&gt;
&lt;div&gt;
&lt;img src="http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/02/Inkscape.jpg"&gt;&lt;p&gt;SCREENSHOT, Image Credit: inkscape.org&lt;/p&gt;
&lt;/div&gt;
&lt;h3&gt;What Does Inkscape Bring to the Table?&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.inkscape.org/en/"&gt;Inkscape&lt;/a&gt; uses the W3C standard Scalable Vector Graphics (SVG) file format as it&#8217;s default. As you might know, SVG is a format that is becoming more relevant to web developers with every passing day. &lt;/p&gt;
&lt;p&gt;It can also work with other popular vector formats, such as .ai, .eps, or .pdf, while most other vector graphics programs can handle its SVG files. &lt;/p&gt;
&lt;p&gt;Inkscape ships with markers, clones, alpha blending, path operations, bitmap tracing, and other standard SVG features. &lt;/p&gt;
&lt;p&gt;For a full list of features, check &lt;a href="http://inkscape.org/en/about/features/"&gt;this&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Perhaps the most interesting section here is the list of features Inkscape has that are missing in Illustrator. According to &lt;a href="http://wiki.inkscape.org/wiki/index.php/Inkscape_for_Adobe_Illustrator_users"&gt;inkscape.org&lt;/a&gt;, the following Inkscape abilities are lacking in Illustrator: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Edit SVG source directly &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Clones, tiled clones, edit clones on canvas &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Keys to move/rotate/scale by screen pixels &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Shapes as objects &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Edit gradients with handles on-canvas &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Edit nodes with keyboard &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;One-click paint bucket fill&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While this list may need to be updated, I think it&#8217;s useful enough to include regardless.&lt;/p&gt;
&lt;h3&gt;What Illustrator Functionality Is Missing in Inkscape?&lt;/h3&gt;
&lt;p&gt;If you decided to switch to Inkscape, you should also be aware of its limitations. &lt;/p&gt;
&lt;p&gt;Firstly, file interoperability can be an issue, especially with older .ai files. &lt;/p&gt;
&lt;p&gt;Inkscape.org also publishes a list of Illustrator features that are currently missing in Inkscape: &lt;/p&gt;
&lt;p&gt;These include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Gradient meshes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Multiple strokes and fills for one object &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Color management for print (ICCProfiles, etc.) &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;PMS color management &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Natively work with graphs based ondata &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Free transform and perspective transform (available via extension) &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Blends (available via extension) &lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Again, this list may be slightly outdated, but gives you a sense of what you might be losing if you decide to throw your lot in with Inkscape. &lt;/p&gt;
&lt;p&gt;Now, I wouldn&#8217;t class myself as a &#8216;power-user&#8217; of either Illustrator or Inkscape. But as an occasional user I can attest that my skills (or the lack of them) are certainly a much more serious barrier, than any software limitations. &lt;/p&gt;
&lt;p&gt;From my point of view, there is no critical feature or tool that Inkscape lacks. For the majority of projects &#8212; even demanding professional use &#8212; I believe Inkscape is a very feasible alternative. &lt;/p&gt;
&lt;h3&gt;Price Comparison Between Inkscape and Adobe Illustrator&lt;/h3&gt;
&lt;p&gt;The price comparison between Inkscape and Adobe Illustrator is very similar to the earlier Photoshop comparision &#8211; free vs $599 for Illustrator CS6, or $19.99 a month for the standalone Creative Cloud version, or $49.99 as part of CC bundle. &lt;/p&gt;
&lt;p&gt;Switching to Inkscape could save you $240-600 a year.&lt;/p&gt;
&lt;h2&gt;3. Could You Use Scribus Instead of InDesign?&lt;/h2&gt;
&lt;p&gt;If you are into desktop publishing, then you might be interested in Scribus as an alternative to Quark Xpress, Adobe InDesign, or Microsoft Publisher. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.scribus.net/canvas/Scribus"&gt;Scribus&lt;/a&gt; is not an exact match of either program, so you shouldn&#8217;t expect it to have all the features you know from these programs. &lt;/p&gt;
&lt;div&gt;
&lt;img src="http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/02/Scribus.png"&gt;&lt;p&gt;Scribus: SCREENSHOT, Image Credit: &lt;br&gt;http://www.tomsguide.com/us/download/Scribus,0302-6428-150189.html&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;What can Scribus Do?&lt;/h2&gt;
&lt;p&gt;In simple terms, Scribus offers solid &#8220;CMYK color, separations, Spot Colors, ICC color management and versatile PDF creation.&#8221; It also can work with most common raster and vector image formats, as well as many text formats. &lt;/p&gt;
&lt;h2&gt;Features that Scribus Lacks&lt;/h2&gt;
&lt;p&gt;Similarly to GIMP and Inkscape, the Scribus interface is very different to that of InDesign. Until you become accustomed to it, it&#8217;s likely to take you some time to perform even the simplest tasks.&lt;/p&gt;
&lt;p&gt;Now, I am no Scribus expert, and to be frank, my encounters with InDesign are pretty sketchy, but experienced desktop publishers tell me they couldn&#8217;t use Scribus for critical publishing tasks. &lt;/p&gt;
&lt;p&gt;Aside from this, many common functions you will find in InDesign, are currently absent from Scribus. For instance, in Scribus you can&#8217;t even dock, move or hide individual palettes. &lt;/p&gt;
&lt;p&gt;But what&#8217;s the main buzz-killer?&lt;/p&gt;
&lt;p&gt;Currently Scribus can&#8217;t open InDesign&#8217;s default format. While Scribus&#8217;s PDF export facility covers most print situations, the lack of &#8216;INDD&#8217; support will be a roadblock for some.&lt;/p&gt;
&lt;p&gt;Again the savings are significant &#8211; free versus $19.99/49.99 a month for InDesign.&lt;/p&gt;
&lt;p&gt;However, since Scribus isn&#8217;t anywhere near as competent a replacement to InDesign, as GIMP and Inkscape are to Photoshop and Illustrator respectively, I think the price comparison is far less relevant. &lt;/p&gt;
&lt;p&gt;This comparison is truly an &#8216;apples to oranges&#8217; situation. &lt;/p&gt;
&lt;h2&gt;4. Other High Quality Linux Graphics Tools&lt;/h2&gt;
&lt;p&gt;The list of open source useful applications that are compete competently with commercial equivalents is too long to cover comprehensively here.&lt;/p&gt;
&lt;p&gt;However special mention has to go to the amazingly powerful Blender 3D, used for 3D design, video editing and special effects. &lt;/p&gt;
&lt;div&gt;
&lt;img src="http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/02/Blender.png"&gt;&lt;p&gt;SCREENSHOT, Image Credit: blender.org&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;While arguably not be a complete substitute for Premiere, 3DS Max or Maya, Blender has become a rich and powerful platform &#8212; evidenced by Blender-powered, short films and games such as &lt;a href="http://en.wikipedia.org/wiki/Big_Buck_Bunny"&gt;Big Buck Bunny&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Sintel"&gt;Sintel&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Tears_of_Steel"&gt;Tears of Steel&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;
&lt;img src="http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/02/bigbuckbunny.jpg"&gt;&lt;p&gt;Big Buck Bunny: Created entirely in Blender.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="http://krita.org/"&gt;Krita&lt;/a&gt; and &lt;a href="http://mypaint.intilinux.com/"&gt;MyPaint&lt;/a&gt; are two other graphic programs in addition to GIMP you can use. Paint.net for Windows is also a very viable Photoshop alternative. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.xaraxtreme.org/"&gt;Xara&lt;/a&gt; for vector graphics and &lt;a href="http://www.pencil-animation.org/"&gt;Pencil for cartoons&lt;/a&gt; are also good. When you add &lt;a href="http://fontforge.org/"&gt;FontForge&lt;/a&gt; (for fonts creation), &lt;a href="https://wiki.gnome.org/Apps/Dia/Screenshots"&gt;Dia&lt;/a&gt; (for diagrams), or Draw from the LibreOffice package, you&#8217;ll see that you can do pretty well without a spending metaphorical dime. &lt;/p&gt;
&lt;p&gt;These applications are just a sample of what&#8217;s available in the Linux world. Some are included in Linux distributions, while others need to be downloaded and installed separately. &lt;/p&gt;
&lt;p&gt;If you don&#8217;t have the time to do it, you can get a graphics-focused Linux distribution, such as &lt;a href="http://www.celeum.com/about-dreamstudio/"&gt;DreamStudio&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Dreamstudio includes all the applications listed above, plus some other graphics, sound, and video applications, like &lt;a href="http://www.darktable.org/"&gt;Darktable&lt;/a&gt;. Similar in function to Adobe Lightroom, Darktable helps you manage your digital negatives, view them through a zoomable light-table, as well as develop and enhance raw images . &lt;/p&gt;
&lt;h2&gt;Ready for Primetime?&lt;/h2&gt;
&lt;p&gt;Whether these applications can become your default editors is a question only you can answer. However, even if you decide they aren&#8217;t quite ready to completely replace your commercial suite yet, they may still may have a useful role in your toolkit. &lt;/p&gt;
&lt;p&gt;Frequently I find it more efficient to use an open source application for many of the simple graphics tasks you might perform in a typical day &#8212; cropping, scaling and simple color tweaks. &lt;/p&gt;
&lt;p&gt;Faster start-up times mean I&#8217;m often exporting from my open source app before it&#8217;s heavier commercial kin has had time to load.&lt;/p&gt;
&lt;p&gt;And that can make a big difference to your productivity in a busy day.&lt;/p&gt;
&lt;p&gt;As with many other decision in life, the choice of open source versus proprietary software isn&#8217;t only about the money. &lt;/p&gt;
 &lt;div&gt;
 &lt;div&gt;
 &lt;div&gt;
 
 
 &lt;p&gt;Ada is a fulltime freelancer. She enjoys design and writing and tries to keep pace with the all the latest and greatest new developments in technology&lt;/p&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 05:47:23 -0800</pubDate>
      <link>http://www.sitepoint.com/linux-design-tools/</link>
      <guid>http://www.sitepoint.com/linux-design-tools/</guid>
    </item>
    <item>
      <title>GOG.com</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7238494'&gt;"GOG.com"&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 14 Feb 2014 06:03:23 -0800</pubDate>
      <link>http://www.gog.com/</link>
      <guid>http://www.gog.com/</guid>
    </item>
    <item>
      <title>Multiple Simultaneous Ajax Requests (with one callback) in jQuery | CSS-Tricks</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7238554'&gt;"Multiple Simultaneous Ajax Requests (with one callback) in jQuery | CSS-Tricks"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://css-tricks.com/multiple-simultaneous-ajax-requests-one-callback-jquery/'&gt;http://css-tricks.com/multiple-simultaneous-ajax-requests-one-callback-jquery/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;

 &lt;p&gt;
 Published
 
 February 13, 2014 
 by Chris Coyier &lt;/p&gt;
 
 &lt;p&gt;Let's say there is a feature on your website that only gets used 5% of the time. That feature requires some HTML, CSS, and JavaScript to work. So you decide that instead of having that HTML, CSS, and JavaScript on the page directly, you're going to Ajax that stuff in when the feature is about to be used. &lt;/p&gt;
&lt;p&gt;We'll need to make three Ajax requests. Since we don't want to show anything to the user until the feature is ready to go (plus they all kinda rely on each other to work right) we need to wait for all three of them to be complete before proceeding.&lt;/p&gt;
&lt;p&gt;What's the best way to do that?&lt;/p&gt;
&lt;p&gt;Ajax calls in jQuery provide callbacks:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$.ajax({
 statusCode: {
 url: "/feature",
 success: function() {
 // Ajax success
 }
 }
});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or the "Deferred" way, this time using a shorthand &lt;code&gt;$.get()&lt;/code&gt; method:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$.get("/feature/").done(function() {
 // Ajax success
});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But we have three Ajax requests we're needing to perform, and we want to wait for all three of them to finish before doing anything, so it could get pretty gnarly in callback land:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Get the HTML
$.get("/feature/", function(html) {
 // Get the CSS
 $.get("/assets/feature.css", function(css) {
 
 // Get the JavaScript
 $.getScript("/assets/feature.js", function() {
 // All is ready now, so...
 // Add CSS to page
 $("&amp;lt;style /&amp;gt;").html(css).appendTo("head");
 // Add HTML to page
 $("body").append(html);
 });
 });
});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This successfully waits until everything is ready before adding anything to the page. So by the time the user sees anything, it's good to go. Perhaps that makes some of you feel nauseated, but I've done things that way before. At least it makes sense and works. &lt;strong&gt;The problem?&lt;/strong&gt; It's slow.&lt;/p&gt;
&lt;p&gt;One request ... wait to be done ... another request ... wait to be done ... another request ... wait to be done ... go.&lt;/p&gt;
&lt;p&gt;It would be faster if we could do:&lt;/p&gt;
&lt;p&gt;All three requests in parallel ... wait for all three to be done ... go.&lt;/p&gt;
&lt;p&gt;We can use a bit of Deferred / Promises action to help here. I'm sure this is some JavaScript 101 stuff to some of you but this kind of thing eluded me for a long time and more complex Promises stuff still does.&lt;/p&gt;
&lt;p&gt;In our simple use case, we can use jQuery's &lt;code&gt;$.when()&lt;/code&gt; method, which takes a list of these "Deferred" objects (All jQuery Ajax methods return Deferred objects) and then provides a single callback.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$.when(
 // Deferred object (probably Ajax request),
 // Deferred object (probably Ajax request),
 // Deferred object (probably Ajax request)
}.then(function() {
 // All have been resolved (or rejected), do your thing
});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So our callback-hell can be rewritten like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$.when(
 // Get the HTML
 $.get("/feature/", function(html) {
 globalStore.html = html;
 }),
 // Get the CSS
 $.get("/assets/feature.css", function(css) {
 globalStore.css = css;
 }),
 // Get the JS
 $.getScript("/assets/feature.js")
).then(function() {
 // All is ready now, so...
 // Add CSS to page
 $("&amp;lt;style /&amp;gt;").html(globalStore.css).appendTo("head");
 // Add HTML to page
 $("body").append(globalStore.html);
});&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Another use case: mustard cutting&lt;/h3&gt;
&lt;p&gt;My use-case example above is a 5% feature. Keep the page lighter for the 95% of users who don't use the feature, and have it be a relatively quick add-on for those that do. &lt;/p&gt;
&lt;p&gt;Another situation might be a cut-the-mustard situation where you add in additional features or content to a page in certain situations, as you decide. Perhaps do a &lt;code&gt;matchMedia&lt;/code&gt; test on some media queries and determine the device's screen and capabilities are such that you're going to include some extra modules. Cool, do it up with some parallel Ajax calls!&lt;/p&gt;
 
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 06:30:38 -0800</pubDate>
      <link>http://css-tricks.com/multiple-simultaneous-ajax-requests-one-callback-jquery/</link>
      <guid>http://css-tricks.com/multiple-simultaneous-ajax-requests-one-callback-jquery/</guid>
    </item>
    <item>
      <title>10 French startups disrupting the way you experience fashion online</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7238697'&gt;"10 French startups disrupting the way you experience fashion online"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.rudebaguette.com/2014/02/14/10-french-startups-fashion-marketplace/'&gt;http://www.rudebaguette.com/2014/02/14/10-french-startups-fashion-marketplace/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt; &lt;p&gt;It may sound like a stretch to say that French people are &lt;i&gt;the&lt;/i&gt; reference for fashion. But as we say, &#8220;&lt;i&gt;il n&#8217;y a pas de fum&#233;e sans feu&lt;/i&gt;&#8221; (there&#8217;s no smoke without fire).&lt;/p&gt;
&lt;p&gt;In addition to having a very prolific fashion sense, the French are also very creative when it comes to the shopping experience. The landscape of French fashion startups is flourishing those days: 6 of the 10 companies presented in this article closed a round last spring/summer season and the results of their investments are released now. Let&#8217;s open the catwalk.&lt;/p&gt;
&lt;!-- End of Artiss Code Embed code --&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;h4&gt;1.&#160;&#160;&#160; Flink, the Flipboard of fashion blogs.&lt;/h4&gt;
&lt;p&gt;The &lt;a href="http://www.rudebaguette.com/2014/01/28/prixing-technology-sold-highco-flink/"&gt;last born of &#8220;fashion inspiration&#8221; apps&lt;/a&gt; &lt;a href="http://flink.io/"&gt;Flink&lt;/a&gt; defines itself as the &#8220;Flipboard of fashion blogs&#8221;. Thomas France and his co-founders developed the idea while working on another e-commerce app, Shopelia: user-feedback got them the idea on focusing on the fashion vertical. Its mobile-first approach and great UX &lt;a href="http://www.thestilettoholic.com/2014/01/30/flink-the-new-fashion-app/"&gt;seduced fashion lovers&lt;/a&gt; and got them to 50,000 downloads in just a few days. Their next step is to release a new, more social version in two months.&lt;/p&gt;
From Flink&#8217;s Instagram account&lt;h4&gt;&#160;2.&#160;&#160;&#160; Carnet de Mode, crowdfunding meets social shopping.&lt;/h4&gt;
&lt;p&gt;Carnet de Mode brings together fashion-lovers and young creative talents: the former can participate in the funding of a collection, the latter are able to develop it and get access to their first customers. A real mix between crowdfunding and social shopping which seems to be a good call for fashion &#8211; a highly emotional sector that federates its passionnates. Elaia Partners agreed and invested in the startup in May 2013 ($1 million &#8211; the first e-commerce platform in Elaia&#8217;s portfolio) arguing Carnet de Mode was truly &#8220;&lt;a href="http://www.elaia.com/index.php/fr/portefeuille/portefeuille-global?id=85;catid%3D38:portefeuille"&gt;revolutionizing the online shopping experience&lt;/a&gt;&#8221;.&lt;/p&gt;
&lt;h4&gt;3.&#160;&#160;&#160; InstantLuxe, buying luxury online has never been safer.&lt;/h4&gt;
&lt;p&gt;The &lt;a href="https://www.instantluxe.com"&gt;fashion luxury marketplace&lt;/a&gt; places its expertise in luxury leather goods, watches and accessories. They play the intermediary and ensure a safe transaction between buyers and sellers with no risk of counterfeits. They achieved a &lt;a href="http://www.rudebaguette.com/2013/04/04/instantluxe-announces-e2-million-round-with-iris-capital-and-isai/"&gt;&#8364;2 millions round&lt;/a&gt; of investment in June 2013 with Iris Capital and ISAI (&lt;a href="http://techcrunch.com/2010/09/09/french-startup-fund-isai-announces-high-class-investment-in-instantluxe/"&gt;who already invested &#8364;650 000 in 2010&lt;/a&gt;) which enables them to focus on the German market and mobile commerce.&lt;/p&gt;
&lt;h4&gt;4.&#160;&#160;&#160; Monshowroom, the first marketplace for on-going collections.&lt;/h4&gt;
&lt;p&gt;When S&#233;verine Gr&#233;goire and Chlo&#233; Ramade created &lt;a href="http://www.monshowroom.com/"&gt;Monshowroom.com&lt;/a&gt; in 2006, the platform was basically the only way to access current collections online, an opportunity for people living outside of big cities, or simply online-fashion lovers. Today, the platform has become a reference with 270 brands available. Alven Capital and Cr&#233;dit Agricole Private Equity funds invested in the company in 2009 and Casino bought their share in 2012, in order to create synergies with the e-commerce platform &#8220;CDiscount&#8221;, &lt;a href="http://www.lefigaro.fr/societes/2012/02/28/20005-20120228ARTFIG00354-casino-se-renforce-dans-l-e-commerce.php"&gt;as sources say (FR).&lt;/a&gt;&lt;/p&gt;
Monshowroom&#8217;s Instagram&lt;h4&gt;
&lt;b&gt;5.&#160;&#160;&#160; &lt;/b&gt;&lt;b&gt;Dymant, invite-only eCommerce, the true eLuxury experience.&lt;/b&gt;
&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;a href="http://www.dymant.com"&gt;Dymant&lt;/a&gt; changed the e-commerce industry by focusing on the story-telling and esthetical atmosphere experience more than on the products. Quality &lt;i&gt;VS&lt;/i&gt; SEO, to put it shortly. The marketplace offers invite-only customers the opportunity to access high-end and &lt;a href="http://www.rudebaguette.com/2013/12/30/2014-will-year-connected/"&gt;exclusive French &#8220;artisanat&lt;/a&gt;&#8221; (craftsmanship). Partech Ventures and IDInvest &lt;a href="http://www.crunchbase.com/company/dymant"&gt;invested $1 million&lt;/a&gt; last year in order to enable the startup to address other geographical markets.&lt;/p&gt;
&lt;h4&gt;
&lt;b&gt;6.&#160;&#160;&#160; &lt;/b&gt;&lt;b&gt;Vestiaire Collective, a second-hand luxury marketplace.&lt;/b&gt;
&lt;/h4&gt;
&lt;p&gt;Co-founded by S&#233;bastien Fabre and Sophie Hersan, &lt;a href="http://fr.vestiairecollective.com"&gt;Vestiaire Collective&lt;/a&gt; is a marketplace for second-hand luxury fashion products. Created in Paris in 2009, &#160;(because, as Sebastien Fabre told us: &#8220;&lt;b&gt;In order to launch a fashion marketplace, we &lt;i&gt;had&lt;/i&gt; to be in Paris&lt;/b&gt;&#8221;), they now are developing abroad: London in 2012, Germany and the U.S in 2014. This internationalization follows their &lt;a href="http://www.rudebaguette.com/2013/09/02/conde-nast-invests-20-million-in-vestiaire-collectives-luxury-resale-site/"&gt;series C round with Cond&#233; Nast ($15 millions)&lt;/a&gt;, an interesting choice of partner, motivated by the expertise of the group in online community-based businesses and the U.S market.&lt;/p&gt;
&lt;p&gt;Vestiaire Collective has innovated in the marketplace sector by adding a friction in the process &#8211; which could be seen as a bad example: in order to ensure a faithful community of customers, Vestiaire Collective has an editorial committee that selects which articles can be sold online, that specialists then check before they arrive in the customer&#8217;s hands. A great service that ensures happiness on both sides of the sale.&#160;They just opened a &#8220;Vintage&#8221; and &#8220;Lifestyle&#8221; section: take a look at it (even you male readers, you represent 15% of Vestiaire Collective&#8217;s clientele!)&lt;/p&gt;
Vestiaire Collective&#8217;s Instagram&lt;h4&gt;
&lt;b&gt;7.&#160;&#160;&#160; &lt;/b&gt;&lt;b&gt;VideDressing, social shopping for previously owned outfits.&lt;/b&gt;
&lt;/h4&gt;
&lt;p&gt;If your wallet is slightly smaller than Chanel and Dior-material, then &lt;a href="http://www.videdressing.com"&gt;VideDressing&lt;/a&gt; might be the right fit for you. The principle is the same as other social shopping platform: &lt;a href="http://www.rudebaguette.com/2012/02/20/interview-videdressing/"&gt;Meryl Job&lt;/a&gt; and Renaud Guillerm, co-founders, managed to build a strong a faithful community first, and then monetized it by facilitating trades inside this community. They now claim a 5-times growth factor between 2011 and 2012 and realized two rounds in 2013 in order to penetrate the German market &#8211; the last one with &lt;a href="http://www.rudebaguette.com/2013/08/29/breaking-oliver-samwers-global-founders-capital-announces-3-investments-berlin-paris-london/"&gt;Global Founders Capital for $5 Million&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;
&lt;b&gt;8.&#160;&#160;&#160; &lt;/b&gt;&lt;b&gt;Selectionnist, shopping through fashion magazines.&lt;/b&gt;
&lt;/h4&gt;
&lt;p&gt;If you have ever been frustrated by not remembering the reference of an outfit you&#8217;ve seen in an old edition of Elle Magazine while waiting at the doctor&#8217;s, then you&#8217;ll love &lt;a href="http://www.selectionnist.com/landing"&gt;Selectionnist&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Selectionnist, founded by female serial-entrepreneurs Tatiana Jama and Lara Rouyres (Living Social, Dealissime) enables its visitors to search for things spotted by magazine or by brand. The beautifully-built website might also inspire some other shopping wishlists. The &lt;a href="http://www.rudebaguette.com/2014/02/06/selectionnist-launch/"&gt;website just launched yesterday&lt;/a&gt;, time to try it out!&lt;/p&gt;
Selectionnist&#8217;s Instagram&lt;h4&gt;
&lt;b&gt;9.&#160;&#160;&#160; &lt;/b&gt;&lt;b&gt;Wheretoget.it, finds the fashion items you lost of sight.&lt;/b&gt;
&lt;/h4&gt;
&lt;p&gt;Extreme situation, you have spotted an outfit &lt;i&gt;somewhere&lt;/i&gt;, anywhere, and you must have it. But of course, you don&#8217;t have the reference. Hopefully, &lt;a href="http://wheretoget.it"&gt;Wheretoget.it&lt;/a&gt; is here to help.&lt;/p&gt;
&lt;p&gt;The platform (which is French, unlike the URL extension &#171;&#160;.it&#160;&#187; might indicate) gathers a community of passionate fashion-lovers who are able to spot where you can find your desperately lost article, providing that you have a picture. If not, there is a great chance they will find something similar, or even better. The force of the &#8220;multitude&#8221; applied to fashion. Rumor is that &lt;a href="https://twitter.com/romainmoyne"&gt;Romain Moyne&lt;/a&gt;, founder, is &lt;a href="http://www.maddyness.com/finance/levee-de-fonds/2013/10/04/wheretoget-levee-de-fonds/"&gt;currently working on a Series A round of investment&lt;/a&gt;[fr].&lt;/p&gt;
&lt;h4&gt;
&lt;b&gt;10.&#160;&lt;/b&gt;&lt;b&gt;Rad, flash sales dedicated to the Cool.&lt;/b&gt;
&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://www.rad.co/"&gt;Rad&#8217;s v&lt;/a&gt;alue proposition is quite similar to other fashion discovery platforms: the cooler the pictures, the more you want to buy. How did Rad work out so well then? Rad&#8217;s particularity holds in its editorial line: it&#8217;s just cool, then you can only get it for a small amount of time.&lt;/p&gt;
&lt;p&gt;They closed a&#160;&lt;a href="http://www.rudebaguette.com/2013/06/20/with-1m-users-fashion-discovery-platform-rad-raises-e2-5m-from-index-ventures/"&gt;&#8364;2.5 Million Series A round of funding in June 2013,&lt;/a&gt;&#160;&lt;a href="http://techcrunch.com/2013/06/20/rad-a-parisian-hipster-fashion-portal-gets-3-3m-led-by-index-to-go-international/"&gt;declaring&lt;/a&gt;: &#8220;We are raising to accelerate our growth &#8212; hire key people, build a logistics platform, speed up acquisition through marketing, develop our production capacities&#8221;.&lt;/p&gt;
Rad&#8217;s Instagram&lt;h4&gt;&lt;/h4&gt;
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 06:40:38 -0800</pubDate>
      <link>http://www.rudebaguette.com/2014/02/14/10-french-startups-fashion-marketplace/</link>
      <guid>http://www.rudebaguette.com/2014/02/14/10-french-startups-fashion-marketplace/</guid>
    </item>
    <item>
      <title>Schneier on Security: The Insecurity of Secret IT Systems</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7238750'&gt;"Schneier on Security: The Insecurity of Secret IT Systems"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='https://www.schneier.com/blog/archives/2014/02/the_insecurity_2.html'&gt;https://www.schneier.com/blog/archives/2014/02/the_insecurity_2.html&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;td&gt;&#160;&lt;/td&gt;
&lt;td&gt;
&lt;!-- begin page content --&gt;
&lt;div&gt;
&lt;!-- robots content="noindex" --&gt;

&lt;p&gt;A blog covering security and security technology.&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://www.schneier.com/blog/archives/2014/02/gopherset_nsa_e.html"&gt;&#171; GOPHERSET: NSA Exploit of the Day&lt;/a&gt; |
&lt;a href="https://www.schneier.com/blog/"&gt;Main&lt;/a&gt;
| &lt;a href="https://www.schneier.com/blog/archives/2014/02/my_talk_on_the.html"&gt;My Talk on the NSA &#187;&lt;/a&gt;
&lt;/p&gt;
&lt;!-- /robots --&gt;
&lt;p&gt;&lt;strong&gt;February 14, 2014&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;The Insecurity of Secret IT Systems&lt;/h2&gt;
&lt;p&gt;We now know a lot about the security of the Rapiscan 522 B x-ray system used to scan carry-on baggage in airports worldwide. Billy Rios, director of threat intelligence at Qualys, got himself one and analyzed it. And &lt;a href="http://www.wired.com/threatlevel/2014/02/tsa-airport-scanners/"&gt;he&lt;/a&gt; &lt;a href="http://www.darkreading.com/attacks-breaches/tsa-carry-on-baggage-scanners-easy-to-ha/240166058"&gt;presented&lt;/a&gt; his results at the Kaspersky Security Analyst Summit this week.&lt;/p&gt;
&lt;p&gt;It&#8217;s worse than you might have expected:&lt;/p&gt;
 It runs on the outdated Windows 98 operating system, stores user credentials in plain text, and includes a feature called Threat Image Projection used to train screeners by injecting .bmp images of contraband, such as a gun or knife, into a passenger carry-on in order to test the screener's reaction during training sessions. The weak logins could allow a bad guy to project phony images on the X-ray display. 
&lt;p&gt;While this is all surprising, it shouldn&#8217;t be. These are the same sort of problems we saw in proprietary &lt;a href="https://www.usenix.org/legacy/events/evt08/tech/full_papers/aviv/aviv_html/"&gt;electronic&lt;/a&gt; &lt;a href="https://www.usenix.org/legacy/event/evt07/tech/full_papers/feldman/feldman_html/"&gt;voting&lt;/a&gt; &lt;a href="http://www.cs.berkeley.edu/~daw/papers/sarasota07.pdf"&gt;machines&lt;/a&gt;, or computerized &lt;a href="https://spqr.eecs.umich.edu/papers/b1kohFINAL2.pdf"&gt;medical equipment&lt;/a&gt;, or &lt;a href="http://www.autosec.org/pubs/cars-usenixsec2011.pdf"&gt;computers in automobiles&lt;/a&gt;. Basically, whenever an IT system is designed and used in secret &#8211; either actual secret or simply away from public scrutiny &#8211; the results are pretty awful.&lt;/p&gt;
&lt;p&gt;I used to decry secret security systems as "&lt;a href="https://www.schneier.com/crypto-gram-0205.html#1"&gt;security by obscurity&lt;/a&gt;." I now say it more strongly: "obscurity means insecurity."&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.schneier.com/essay-062.html"&gt;Security is a process&lt;/a&gt;. For software, that process is iterative. It involves defenders trying to build a secure system, attackers -- criminals, hackers, and researchers -- defeating the security, and defenders improving their system. This is how all mass-market software improves its security. It&#8217;s the best system we have. And for systems that are kept out of the hands of the public, that process stalls. The result looks like the Rapiscan 522 B x-ray system.&lt;/p&gt;
&lt;p&gt;Smart security engineers open their systems to public scrutiny, because that&#8217;s how they improve. The truly awful engineers will not only hide their bad designs behind secrecy, but try to belittle any negative security results. Get ready for Rapiscan to claim that the researchers had old software, and the new software has fixed all these problems. Or that they&#8217;re only theoretical. Or that the researchers themselves are the problem. We&#8217;ve seen it all before.&lt;/p&gt;
&lt;p&gt;Tags: &lt;a href="https://www.schneier.com/cgi-bin/mt/mt-search.cgi?tag=air%20travel"&gt;air travel&lt;/a&gt;, &lt;a href="https://www.schneier.com/cgi-bin/mt/mt-search.cgi?tag=disclosure"&gt;disclosure&lt;/a&gt;, &lt;a href="https://www.schneier.com/cgi-bin/mt/mt-search.cgi?tag=economics%20of%20security"&gt;economics of security&lt;/a&gt;, &lt;a href="https://www.schneier.com/cgi-bin/mt/mt-search.cgi?tag=obscurity"&gt;obscurity&lt;/a&gt;, &lt;a href="https://www.schneier.com/cgi-bin/mt/mt-search.cgi?tag=secrecy"&gt;secrecy&lt;/a&gt;, &lt;a href="https://www.schneier.com/cgi-bin/mt/mt-search.cgi?tag=security%20engineering"&gt;security engineering&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.schneier.com/blog/archives/2014/02/the_insecurity_2.html"&gt;Posted on February 14, 2014 at 6:50 AM&lt;/a&gt;
&#8226; &lt;a href="https://www.schneier.com/blog/archives/2014/02/the_insecurity_2.html#comments"&gt;28 Comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;To receive these entries once a month by e-mail, &lt;a href="https://www.schneier.com/crypto-gram-sub.html"&gt;sign up&lt;/a&gt; for the &lt;a href="https://www.schneier.com/crypto-gram.html"&gt;Crypto-Gram Newsletter&lt;/a&gt;.&lt;/em&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;In Europe they use quantum key cryptography in their voting systems:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.idquantique.com/news-and-events/press-releases.html?id=109"&gt;http://www.idquantique.com/news-and-events/...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In Europe, the struggle to create a public realm out of the monarchy's private government extends back to populist movements in the Middle Ages such as the Ranters and Diggers and Bretheren of the Free Spirit; they seem more likely to view their government as something that really belongs to them, with the potential to work for them.&lt;/p&gt;
&lt;p&gt;In the United States, our struggle to create a public government really begins with the 14th Amendment. Between then and the civil rights era is when we obtained universal suffrage. The franchise was highly exclusive in the Revolutionary era -- so much so that "WE, the People" probably only represents the will of 5-7% of the population at the time. Since then, the conservative battle cry has been "smaller government" and "privatization." Notwithstanding that we had private government once before -- when we were owned by the Britain -- we have this myth of obtaining self rule by fighting tyranny, when, in fact, the road to self rule has been a much more complicated struggle. But the myth prevails over history.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;The 522B is ancient - at least 5-10 years old. &lt;a href="http://aerodetection.com/rapiscan-522b/"&gt;http://aerodetection.com/rapiscan-522b/&lt;/a&gt; says the units it has are 8-10 years old.&lt;/p&gt;
&lt;p&gt;I'd be much more interested in the Rapiscan 620DV which appears to be the model used at major airports in Europe.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;I still remember the first time I ran smack into security-by-obscurity. My boss at the time put me in charge of the most secure system we had at work. It was kept behind a heavy locked door and I was admitted only after a strong lecture on how important it was to keep it as secure as possible.&lt;/p&gt;
&lt;p&gt;Even behind a closed door, he felt it necessary to whisper: "and the password is 'secret', which of course we can't tell anybody and they would never guess..."&lt;br&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p&gt;The idea of continual improvement driven by the hostile nature of the operating environment seems very similar to evolution in the natural world. I don't mean analagous to, I mean another form of evolution, survival of the fittest. Obscurity, obfuscation, and political lobbying are all attempts to exclude a product from the security evolutionary process but even at the very highest levels - government printed currency, NSA information - it is impossible to isolate anything from security evolutionary forces.&lt;br&gt;
It is better to embrace this process and to continually iteratively evolve and grow stronger and wiser during the process than to try and hold the driving forces of evolution at bay. The driving threat forces of security evolution themselves evolve, adapt and get stronger over time. You can hold them at bay temporarily through obscurity and obfuscation, but it then become only a matter of for how long? e.g. Sony Playstation 3&lt;br&gt;
The Playstation 3 is an interesting example in that it was finally cracked due to sloppy cryptography implementation ( what was meant to be a random number generator was implemented as a constant ). I say interesting because peer / open review would have exposed the obvious flaw and it would have been fixed. In this case it was the obscurity and obfuscation that ultimately was responsible for the security being broken.&lt;br&gt;&lt;a href="https://www.schneier.com/blog/archives/2011/01/sony_ps3_securi.html"&gt;https://www.schneier.com/blog/archives/2011/01/sony_ps3_securi.html&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;OK, so if Kaspersky or Symantec or TrendMicro or Norton doesn't hand over all their source code I shouldn't buy the product... right? &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;OK, go ahead and post all your passwords and SSN's and your credit card info. &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;@beatty Well ... yes, although not just because you don't have source code. Virus scanners typically only search for known exploit code (and perhaps a few variations on it). They're fundamentally reactive and in my view not worth the effort.&lt;/p&gt;
&lt;p&gt;@vincent You jest. The difference between secret paswords and secret algorithms has been explained to death already.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;@vincent: not really. That is yours, your privacy for your own usage/protection, but when somebody offer for public usage some kind of security product, it should be available for public scrutiny on potential security threats/weaknesses and invasion of privacy (like recently Samsung on smart TV agreed to provide led indicator when camera is on. I hope that activation is hardware, not software). &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;The meta-problem here is that many (in my experience most) software "engineers" are incompetent and do not qualify as engineers. The result is that the typical software system sucks badly. &lt;/p&gt;
&lt;p&gt;This machine is just a standard example. However though Windows (no matter what version) was suitable as an embedded OS has no business working on software or surrounding systems.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;@beatty -- you shouldn't buy their products if you don't trust them. I don't and the systems my family uses haven't had an problems. But they don't hide what they're doing and they have some pretty vigorous competition.&lt;/p&gt;
&lt;p&gt;@vincent -- I hope you don't think there is anything especially "secure" about your SSN. But hiding secret information used to access a system is different than hiding or obscuring information about the the system itself, which is what this post is about.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;No, this just another cherry-picked instance of failed product development that is being used for self-serving purposes. It's easy, isn't it, to swoop in after the fact and point out everything that went wrong. Do you even know what the original threat model was? For all you know this failure was the RESULT of anal security engineers that suffocated product development until the project collapsed. You don't know. You pick up on all this pop news junk and fling it anyway you want. &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;Oh, it gets better. I keep thinking that if you control the software, you can probably control where the X-Ray beam is at. And observe that TSA agents walk back and forth through the scanner all the time.&lt;/p&gt;
&lt;p&gt;So you keep it ON bouncing back and forth scanning at roughly chest level when not actually scanning the full body. When you see something metallic (say, a TSA badge), you immediately drop the emitter down to crotch level for the next 10 seconds...&lt;br&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;"For all you know this failure was the RESULT of anal security engineers"&lt;/p&gt;
&lt;p&gt;Win98 and plaintext passwords are not the result of anal security engineers. Unless, of course you mean actual anal security engineers, in which case it is not surprising, as they only know stuff about how to use a variety of rubber corks.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;I somewhat disagree that engineers try to hide their bad designs through obscurity. I don't believe they even think about security. &lt;/p&gt;
&lt;p&gt;There seems to be this idea of "Well, why would anyone attack that?" that is prevalent far too often. It's why we have empty passwords on internet-facing SCADA stuff, hopelessly outdated operating systems that can't be updated on embedded systems, etc. Nobody thinks like attackers. Closed systems are perfectly acceptable to people who don't think they will ever be a target. &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;It would be like me inventing my own door lock, and because no one has seen one before, I can assume I'm protected. (Of course this could also be said - Since no one has attempted to break into it yet, I hope I'm protected)&lt;/p&gt;
&lt;p&gt;Rather than the alternative&lt;/p&gt;
&lt;p&gt;Buying a door lock that has been proven in the real world. Paying attention to security bulletins so that if an exploit is found, I can replace it with a fixed version. &lt;/p&gt;
&lt;p&gt;@vincent - Either way, I'm not giving you my key.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;@Jason. All you said is valid when you are random target making you more protected than next target in the phishing scheme. Just to bring some relax mood: "Two young ladies were in the jungle and spotted lion. One start running, another asked is she really could run faster than lion. Nope, she reply. Just faster than you..." If you are NOT random target, all depends on the actor's resources available to break your security (psychical or informational): local thugs, organized crime, LEA local or state, LEA federal, foreign agents, etc. &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;@vas pup:&lt;/p&gt;
&lt;p&gt;Well, now we're just getting deeper into security concepts. I don't think the threat of a targeted attack is a reason to abandon tried and tested methods. I think it's a reason to bring in additional expertise, add some additional layers of protection. (Instead of just a good door lock, add a surveillance system, alarm system, maybe a stronger door, bars on windows). The security system you use, no matter what you're protecting has a cost that must be weighed against the risk, and to be effective almost certainly will be layered.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;@ Bruce,&lt;/p&gt;
&lt;ul&gt;&lt;i&gt;The truly awful engineers will not only hide their bad designs behind secrecy, but try to belittle any negative security results&lt;/i&gt;&lt;/ul&gt;
&lt;p&gt;That statment is a little unfair, because when it comes to hardware the closer you are to the metal, generaly the more competent you are as an "engineer".&lt;/p&gt;
&lt;p&gt;The problem generaly starts and ends with managment, because,&lt;/p&gt;
&lt;p&gt;1, Like quality, security has to be there fully functional from project day 0.&lt;/p&gt;
&lt;p&gt;2, Security processes, training etc "cost".&lt;/p&gt;
&lt;p&gt;You have to be an "old engineer" to remember the days befor quality processes were considered part and parcel of the job. And unfortunatly the area quality processes are least frequently found is "software engineering". Just take any modern software methodology and find the bits that are actually about "Quality Assurance"...&lt;/p&gt;
&lt;p&gt;The simple answer is all you will find is an illusion or mirage paying lip service to any real quality process. It's also the reason grizzled old vetrans of software coding will tell you that most software development methodologies are at best "make work" and that you will get better results where team members share a common non adveserial goal and thus trust each other.&lt;/p&gt;
&lt;p&gt;And when you look back at the development of QA systems it was the teams who bought into it and trusted the others that the most benifit was seen.&lt;/p&gt;
&lt;p&gt;The reason QA actually got going was two fold,&lt;/p&gt;
&lt;p&gt;1, Managment saw the financial benifit before the factory door.&lt;/p&gt;
&lt;p&gt;2, Those who saw benifit used QA as a part of purchase decision.&lt;/p&gt;
&lt;p&gt;Neither of these conditions is true currently for "security" thus managment treat it as "a non productive inefficiency" and thus "managment mantra" says it should be ruthlessly expunged from the work process "to increase productivity"&lt;/p&gt;
&lt;p&gt;The way to get security into the design process as a norm is by making having it the most profitable path to walk, that way as with QA "managment mantra" will change.&lt;/p&gt;
&lt;p&gt;Untill that time blaiming other people for "keeping their jobs" is a little unfair.&lt;br&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;&lt;br&gt;
I think the article is dead wrong about the threat projection system being a big issue.&lt;/p&gt;
&lt;p&gt;The purpose of this system is to keep the screener alert. In a normal airport, a contraband item like a bomb, gun, etc. might occur at most once a day. Rare contraband like a bomb is probably less than once in a lifetime. Hence it would be natural for a screener to simply 'pass' all luggage, even if they are being diligent. Adding these "false positives" gives the screener something to do, and increases security by "impedence matching" the task at hand to the psychology of the operator.&lt;/p&gt;
&lt;p&gt;It's true that an attacker could have the system inject innocuous items, or perhaps have it inject items at a very high rate. I suspect that either of these new behaviors would be quickly noticed.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;Actually, in any airport, contraband like this would occur at most 24hrs/airport-lockdown-time per day.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;Looks like I was wrong. The other article gives more details about the system, and it is pretty crappy.&lt;/p&gt;
&lt;p&gt;It's one thing to superimpose false images that are removed after alarming on them. It's another entirely to allow some other person to choose the time when the false image will be shown, and to replace rather than modify the image.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;Hacking is illegal. Selling crappy secured soft- / hardware isn't (wearing my black and white glasses now).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;"Upon seeing a weapon on the screen, operators are supposed to push a button to notify supervisors of the find. But if the image is a fake one that was superimposed, a message appears onscreen telling them so and advising them to search the bag anyway to be sure. If a fake image of a clean bag is superimposed on screen instead, the operator would never press the button, and therefore never be instructed to hand-search the bag."&lt;/p&gt;
&lt;p&gt;If the training software assumes that the .bmp images have simulated contraband, one would think that the training software would do something if the operator doesn't press the button when a .bmp is displayed. Or does the attacker who introduces a "clean" .bmp file also modify the software?&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;Thank you, Bruce... "Obscurity means insecurity" is exactly what I've always meant, when I said "closed source by definition is insecure".... only open source &lt;i&gt;can&lt;/i&gt; be secure (which doesn't guarantee that it is, only that it's at least possible).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;What really worries me is that we haven't really learned a lot. &lt;/p&gt;
&lt;p&gt;The 1983 movie &lt;a href="http://www.imdb.com/title/tt0086567/"&gt;wargames&lt;/a&gt; could happen today. Maybe not in the US (although I doubt that), but there are more countries in the world. The problem with security by obscurity is that you just don't know whether there is a &lt;a href="http://en.wikipedia.org/wiki/Wargames_%28movie%29"&gt;WOPR&lt;/a&gt; that has a backdoor with the login "Joshua".&lt;/p&gt;
&lt;p&gt;How secure are these nucleair platform systems? Just look at the stoxnet virus. Is "the west" capable of protecting itself against this kind of things? I don't think so. (looking at this news item)&lt;/p&gt;
&lt;p&gt;And is the JSF/F-35 capable of dropping a nuke? It also contains 20 mln lines of C++ code.&lt;/p&gt;
&lt;p&gt;I think this is way more worrying than any "terrorist attack".&lt;/p&gt;
&lt;p&gt;I don't know. Maybe it's just BS that I am talking about. I am not a security expert. But I do know that you can't trust computers. Not yesterday, today or tomorrow.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;Bruce,&lt;/p&gt;
&lt;p&gt;Saw you at SAS, thanks for speaking!&lt;/p&gt;
&lt;p&gt;Did you notice on the way out that all the machines in the Punta Cana airport were the make and model Billy and Terry evaluated?&lt;/p&gt;
&lt;p&gt;Mike&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;Your comment about engineers (smart vs awful) was unfortunate. Well-established companies such as Diebold produce software with a workforce that is salaried and university-educated. The software produced usually conforms to management's priorities. If QA isn't isn't part of the software process, the software produced will tell the tale. The company with good management and a weak engineering staff is a rare beast. Unicorn rare. If Diebold has crappy software, then Diebold is to blame, not some mythical bumbler.&lt;/p&gt;
&lt;p&gt;To say nothing of the procurement process.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;True of Diebold and Rapiscan!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
 
&lt;!-- end page content --&gt;
&lt;!-- robots content="noindex" --&gt;
&lt;p&gt;Schneier.com is a personal website. Opinions expressed are not necessarily those of &lt;a href="https://www.co3sys.com/"&gt;Co3 Systems, Inc.&lt;/a&gt;.
&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;&#160;&lt;/td&gt;
&lt;td&gt;
&lt;!-- /robots --&gt;
&lt;/td&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 06:50:38 -0800</pubDate>
      <link>https://www.schneier.com/blog/archives/2014/02/the_insecurity_2.html</link>
      <guid>https://www.schneier.com/blog/archives/2014/02/the_insecurity_2.html</guid>
    </item>
    <item>
      <title>BBC News - Linking to free web content is legal, says EU Court</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7239237'&gt;"BBC News - Linking to free web content is legal, says EU Court"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.bbc.co.uk/news/technology-26187730'&gt;http://www.bbc.co.uk/news/technology-26187730&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 &lt;span&gt;
 &lt;span&gt;14 February 2014&lt;/span&gt;
&lt;span&gt;Last updated at &lt;/span&gt;&lt;span&gt;09:50 ET&lt;/span&gt;
 
&lt;/span&gt;
 
 
 
 
 
 
 
 
 
 &lt;p&gt;Websites can link to freely available content without the permission of the copyright holder, the European Court of Justice says.&lt;/p&gt;
 &lt;p&gt;The court's decision came after a dispute in Sweden between journalists and a web company that had posted links on its site to online news articles.&lt;/p&gt;
 &lt;p&gt;A Swedish court had asked the EU court to consider whether this broke copyright law.&lt;/p&gt;
 &lt;p&gt;The "position would be different" for links that bypass a paywall.&lt;/p&gt;
 &lt;p&gt;The journalists worked for the Swedish newspaper Goteborgs-Posten and had articles published on the paper's website.&lt;/p&gt;
 &lt;p&gt;The company Retriever Sverige runs a website that provides links to articles published by other websites.&lt;/p&gt;
 &lt;span&gt;Broken the internet&lt;/span&gt;
 &lt;p&gt;The journalists argued in the original case that users of Retriever Sverige's website would not know that they had been sent to another website by clicking on the links and therefore had made their articles available without authorisation. They said that because of this they were due compensation.&lt;/p&gt;
 &lt;p&gt;The case was unsuccessful in the Swedish courts but there was an appeal and the appeal court asked the EU Court of Justice to consider whether copyright law had been broken.&lt;/p&gt;
 &lt;p&gt;The court had to consider whether by providing links Retriever Sverige had taken part in an "act of communication to the public". Under EU copyright law, authors have the exclusive right to authorise or prohibit any communication to the public of their works. &lt;/p&gt;
 &lt;p&gt;The court ruled that the law had not been broken because the articles in question were on Goteborgs-Posten's website and therefore already "freely available".&lt;/p&gt;
 &lt;p&gt;In a statement it said: "The owner of a website may, without the authorisation of the copyright holders, redirect internet users, via hyperlinks, to protected works available on a freely accessible basis on another site."&lt;/p&gt;
 &lt;p&gt;But they ruled that the "position would be different" if a link led users to material that had purposely been restricted from being freely available - for example if it had been posted on a site that operates a paywall.&lt;/p&gt;
 &lt;p&gt;"If the decision had gone the other way it would have broken the internet," said Susan Hall, technology lawyer at Clarke Willmott.&lt;/p&gt;
 &lt;p&gt;"The way we communicate online is predicated on sharing material, whether that's links to Robert Peston on Bank of England interest rates, decisions of the European court or pictures of otters who look like Benedict Cumberbatch," she said.&lt;/p&gt;
 &lt;p&gt;Goteborgs-Posten told the BBC that it was making no comment on the ruling.&lt;/p&gt;
 
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 08:30:18 -0800</pubDate>
      <link>http://www.bbc.co.uk/news/technology-26187730</link>
      <guid>http://www.bbc.co.uk/news/technology-26187730</guid>
    </item>
    <item>
      <title>IP Address Details - ipinfo.io</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7239333'&gt;"IP Address Details - ipinfo.io"&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 14 Feb 2014 08:30:18 -0800</pubDate>
      <link>http://ipinfo.io/</link>
      <guid>http://ipinfo.io/</guid>
    </item>
    <item>
      <title>solo.im - a single founder peer group</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7239385'&gt;"solo.im - a single founder peer group"&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 14 Feb 2014 08:39:18 -0800</pubDate>
      <link>http://solo.im/</link>
      <guid>http://solo.im/</guid>
    </item>
    <item>
      <title>How I want to write node: stream all the things!</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7239407'&gt;"How I want to write node: stream all the things!"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://caolanmcmahon.com/posts/how_i_want_to_write_node_stream_all_the_things_new/'&gt;http://caolanmcmahon.com/posts/how_i_want_to_write_node_stream_all_the_things_new/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 &lt;p&gt;I wrote the &lt;a href="https://github.com/async"&gt;async&lt;/a&gt; library back when Node
first removed Promises from core (yes, that really was the case). Back
then, I preferred to do with plain callbacks what was usually done by
including third-party Promise, Future or Continuable libraries instead.&lt;/p&gt;
&lt;p&gt;I find a certain elegance in describing complex patterns using simple
parts, particularly when the parts are made composable through a common
interface. In Node, and JavaScript in general, you're likely to use a
combination of Promises, callbacks, Streams, Event Emitters and even ES6
Generators. To me, however, these all represent values in the future.
What if we could reduce entire programs to transformations over a Stream,
and have just one API to rule them all?&lt;/p&gt;
&lt;p&gt;Well, here is my proposal, for your consideration and feedback: &lt;br&gt;&lt;a href="http://highlandjs.org"&gt;Highland, a high-level streams library&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span&gt;var&lt;/span&gt; _ = require(&lt;span&gt;'highland'&lt;/span&gt;);
&lt;span&gt;var&lt;/span&gt; doubled = _([&lt;span&gt;1&lt;/span&gt;, &lt;span&gt;2&lt;/span&gt;, &lt;span&gt;3&lt;/span&gt;, &lt;span&gt;4&lt;/span&gt;]).map(&lt;span&gt;&lt;span&gt;function&lt;/span&gt; &lt;span&gt;(x)&lt;/span&gt; {&lt;/span&gt;
 &lt;span&gt;return&lt;/span&gt; x * &lt;span&gt;2&lt;/span&gt;;
});
&lt;span&gt;var&lt;/span&gt; data = filenames.map(readFile).parallel(&lt;span&gt;4&lt;/span&gt;);
data.errors(&lt;span&gt;&lt;span&gt;function&lt;/span&gt; &lt;span&gt;(err, rethrow)&lt;/span&gt; {&lt;/span&gt;
 
});
data.pipe(output);
&lt;span&gt;var&lt;/span&gt; output = fs.createWriteStream(&lt;span&gt;'output'&lt;/span&gt;);
&lt;span&gt;var&lt;/span&gt; docs = db.createReadStream();
_(docs).filter(isBlogpost).pipe(output);
docs.pipe(_().filter(isBlogpost)).pipe(output);
&lt;span&gt;var&lt;/span&gt; clicks = _(&lt;span&gt;'click'&lt;/span&gt;, btn).map(&lt;span&gt;1&lt;/span&gt;);
&lt;span&gt;var&lt;/span&gt; counter = clicks.scan(&lt;span&gt;0&lt;/span&gt;, _.add);
counter.each(&lt;span&gt;&lt;span&gt;function&lt;/span&gt; &lt;span&gt;(n)&lt;/span&gt; {&lt;/span&gt;
 $(&lt;span&gt;'#count'&lt;/span&gt;).text(n);
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is not a new idea, but I believe it is a new combination of
features, which is important. Those of you that work with Streams in Node
may be aware of the excellent modules by &lt;a href="https://github.com/dominictarr"&gt;Dominic
Tarr&lt;/a&gt;, similarly if you're from the browser
you might use FRP libraries such as
&lt;a href="http://reactive-extensions.github.io/RxJS/"&gt;RxJS&lt;/a&gt;. These are all great,
but they hint at a deeper abstraction, one which would allow us to write
entire programs using Streams. In an attempt to achieve this, Highland
implements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Back-pressure support&lt;/strong&gt; - Data sources are regulated so that slow
consumers are not overwhelmed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Laziness&lt;/strong&gt; - So we can use the reading of Streams to sequence the
execution of code - this means we can choose to read from files in
parallel or series, or stop reading after an error, for example&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asynchronous operations&lt;/strong&gt; - So we're able to handle async data sources
&lt;strong&gt;and&lt;/strong&gt; async transformations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error and data channels&lt;/strong&gt; - So we can manage error propagation
from sync and async code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compatible with Node Streams&lt;/strong&gt; - So we can pipe Node Streams
to and from Highland Streams and play nicely with the Node ecosystem&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you find this idea intriguing and want to explore it further, then
check out the &lt;a href="http://highlandjs.org"&gt;Highland website&lt;/a&gt;. I'd love to hear
your experiences.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/caolan/highland"&gt;Highland on GitHub&lt;/a&gt;&lt;/p&gt;
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 08:45:18 -0800</pubDate>
      <link>http://caolanmcmahon.com/posts/how_i_want_to_write_node_stream_all_the_things_new/</link>
      <guid>http://caolanmcmahon.com/posts/how_i_want_to_write_node_stream_all_the_things_new/</guid>
    </item>
    <item>
      <title>Crazy ants take on fire ants and win | Ars Technica</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7239467'&gt;"Crazy ants take on fire ants and win | Ars Technica"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://arstechnica.com/science/2014/02/crazy-ants-take-on-fire-ants-and-win/'&gt;http://arstechnica.com/science/2014/02/crazy-ants-take-on-fire-ants-and-win/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 &lt;!-- cache hit --&gt;&lt;!-- empty --&gt; Fire ant, meet crazy ant. &lt;p&gt;If you&#8217;ve ever been attacked by red imported fire ants, you can likely attest that these tiny insects have a nasty defense mechanism. When threatened, fire ants inject or dab their enemy with a potent neurotoxic venom that quickly dispatches most other ants and can sometimes even send humans to the hospital.&lt;/p&gt;
&lt;p&gt;This deadly assault is a pretty effective deterrent to most other ant species, which tend to keep their distance. But the fire ants have now run up against another invasive species that's willing to take them on: the tawny crazy ant. This unassuming little ant has the surprising habit of aggressively barreling right into a colony of fire ants, seemingly undeterred by their toxic venom.&lt;/p&gt;
&lt;p&gt;In this week&#8217;s issue of &lt;i&gt;Science&lt;/i&gt;, researchers from the University of Texas at Austin report that crazy ants are actually able to detoxify fire ants&#8217; venom, helping them displace this usually dominant species.&lt;/p&gt;
&lt;p&gt;A crazy ant&#8217;s headlong charge into a mass of fire ants almost always results in it being smeared with venom. But once covered in the neurotoxin, these ants perform a systematic and ritualized behavior. First, an ant stands on its hind legs and curls up its abdomen, touching its mandibles to a small gland at the tip of its body called the acidopore. The ant then runs its front legs through its mandibles and grooms itself fastidiously.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It looks like the ant is covering itself with a secretion from its own body as a response to the fire ant's venom. To determine whether this behavior actually counteracts the venom&#8217;s effect, the researchers ran a controlled test. They used nail polish to seal the acidopore of one group of crazy ants, and simply sham-treated a second control group. After coming into contact with fire ant venom, the crazy ants with the sealed acidopores&#8212;which could not secrete any chemical defenses&#8212;had a survival rate of just 48 percent, whereas 98 percent of the control group survived. Clearly, something originating from the acidopore was increasing the survival of ants covered in venom.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;By testing crazy ant secretions, the researchers found that the life-saving substance was actually formic acid from the crazy ants&#8217; own venom. So far, it's unclear exactly how this chemical detoxifies fire ant venom. It&#8217;s possible that formic acid denatures the enzymes that enable neurotoxins to enter cells.&lt;/p&gt;
&lt;p&gt;While this rare ability confers a huge advantage for crazy ant survival, its biggest implications are ecological. Ever since fire ants were imported into the southern US in the 1930s, they have been the dominant ant species in most grassland ecosystems. But crazy ants&#8212;introduced only about 12 years ago&#8212;are now taking over, thanks in part to their ability to detoxify fire ant venom. When the two species fight over food or space, crazy ants come out on top 93 percent of the time.&lt;/p&gt;
&lt;p&gt;Digging into these two species&#8217; past sheds light on this asymmetry. Tawny crazy ants and red imported fire ants share an evolutionary history since their native ranges overlap in parts of South America. Their arms race began there, with fire ants evolving venom to defend themselves and crazy ants evolving a detoxification mechanism as a counter-defense.&#160;Now the chemical warfare has been re-engaged here on a second continent, playing out across the Gulf Coast. And for a second time in the past century, a new invasive ant species is dominating and drastically transforming ecological communities.&lt;/p&gt;
&lt;p&gt;Related PSA: crazy ants are attracted to electronics. So if you're a technology lover living in the southeastern US, watch your computers and appliances because these tiny invaders are headed your way.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Science&lt;/em&gt;, 2014. DOI: &lt;a href="http://dx.doi.org/10.1126/science.1245833%20"&gt;10.1126/science.1245833 &lt;/a&gt; &#160;(&lt;a href="http://arstechnica.com/science/news/2010/03/dois-and-their-discontents-1.ars"&gt;About DOIs&lt;/a&gt;).&lt;/p&gt;
 &lt;p&gt;&lt;em&gt;Listing image by University of Texas&lt;/em&gt;&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 08:55:18 -0800</pubDate>
      <link>http://arstechnica.com/science/2014/02/crazy-ants-take-on-fire-ants-and-win/</link>
      <guid>http://arstechnica.com/science/2014/02/crazy-ants-take-on-fire-ants-and-win/</guid>
    </item>
    <item>
      <title>The Coinbase Blog &#8212; Introducing &#8220;BitHack&#8221;: Hackathon by Coinbase</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7239724'&gt;"The Coinbase Blog &#8212; Introducing &#8220;BitHack&#8221;: Hackathon by Coinbase"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://blog.coinbase.com/post/76553987867/introducing-bithack-hackathon-by-coinbase'&gt;http://blog.coinbase.com/post/76553987867/introducing-bithack-hackathon-by-coinbase&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 &lt;p&gt;We&#8217;re excited to announce the launch of &lt;a href="http://www.bithackathon.com"&gt;Bithackathon.com&lt;/a&gt; &#8211; an online hackathon to inspire developers across platforms and continents to build solutions with bitcoin.&lt;/p&gt;
&lt;p&gt;&#160;&lt;img src="https://31.media.tumblr.com/e6d7bc04e1853462950b748117e00ca8/tumblr_inline_n0ycy8kDNN1sso7qm.png"&gt;&lt;/p&gt;
&lt;p&gt;We will judge app entries based on creativity, usability, and execution. The prize? Bitcoins!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1st prize: $10,000&#160; worth of bitcoin&lt;/li&gt;
&lt;li&gt;2nd prize: $5,000&#160; worth of bitcoin&lt;/li&gt;
&lt;li&gt;3rd prize: $3,000&#160; worth of bitcoin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Criteria&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We are looking for apps that excel in three areas:&lt;/p&gt;
&lt;p&gt;1) Creativity:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Originality of idea&lt;/li&gt;
&lt;li&gt;Innovation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2) Usability:&lt;/p&gt;
&lt;p&gt;3) Execution:&lt;/p&gt;
&lt;p&gt;We invite any and all developers around the world to participate in the competition.&#160; Check out &lt;a href="http://www.bithackathon.com"&gt;&lt;/a&gt;&lt;a href="http://www.bithackathon.com"&gt;www.bithackathon.com&lt;/a&gt; for more information &#8211; spread the word! &#160;Look forward to seeing you there.&lt;/p&gt;
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 09:41:31 -0800</pubDate>
      <link>http://blog.coinbase.com/post/76553987867/introducing-bithack-hackathon-by-coinbase</link>
      <guid>http://blog.coinbase.com/post/76553987867/introducing-bithack-hackathon-by-coinbase</guid>
    </item>
    <item>
      <title>Cryptic Crossword: Amateur Crypto and Reverse Engineering</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7239820'&gt;"Cryptic Crossword: Amateur Crypto and Reverse Engineering"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.muppetlabs.com/~breadbox/txt/acre.html'&gt;http://www.muppetlabs.com/~breadbox/txt/acre.html&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; </description>
      <pubDate>Fri, 14 Feb 2014 09:49:31 -0800</pubDate>
      <link>http://www.muppetlabs.com/~breadbox/txt/acre.html</link>
      <guid>http://www.muppetlabs.com/~breadbox/txt/acre.html</guid>
    </item>
    <item>
      <title>Rendered Prose Diffs &#183; GitHub</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7240122'&gt;"Rendered Prose Diffs &#183; GitHub"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='https://github.com/blog/1784-rendered-prose-diffs'&gt;https://github.com/blog/1784-rendered-prose-diffs&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;
&lt;div&gt;
 &lt;p&gt;Today we are making it easier to review and collaborate on prose documents. Commits and pull requests including prose files now feature &lt;em&gt;source&lt;/em&gt; and &lt;em&gt;rendered&lt;/em&gt; views.&lt;/p&gt;
&lt;p&gt;Click the "rendered" button to see the changes as they'll appear in the rendered document. Rendered prose view is handy when you're adding, removing, and editing text:&lt;/p&gt;
&lt;p&gt;Or working with more complex structures like tables:&lt;/p&gt;
&lt;p&gt;Non-text changes appear with a low-key dotted underline. Hover over the text to see what has changed:&lt;/p&gt;
&lt;p&gt;Building great software is about more than code. Whether you're writing docs, planning development, or blogging what you've learned, better prose makes for better products. Go forth and write together!&lt;/p&gt;
 &lt;/div&gt;
&lt;div&gt;
 
 &lt;p&gt;
 Need help or found a bug? &lt;a href='https://github.com/contact'&gt;Contact us&lt;/a&gt;.
 &lt;/p&gt;
 &lt;/div&gt;
&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 10:37:31 -0800</pubDate>
      <link>https://github.com/blog/1784-rendered-prose-diffs</link>
      <guid>https://github.com/blog/1784-rendered-prose-diffs</guid>
    </item>
    <item>
      <title>Phaser</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7240370'&gt;"Phaser"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://phaserapp.com'&gt;http://phaserapp.com&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; </description>
      <pubDate>Fri, 14 Feb 2014 11:12:35 -0800</pubDate>
      <link>http://phaserapp.com</link>
      <guid>http://phaserapp.com</guid>
    </item>
    <item>
      <title>Stephen Law: How the US Treasury imposes sanctions on me and every other "Stephen Law" on the planet - my letter to OFAC</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7240777'&gt;"Stephen Law: How the US Treasury imposes sanctions on me and every other "Stephen Law" on the planet - my letter to OFAC"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://stephenlaw.blogspot.com/2014/02/how-us-treasury-imposes-sanctions-on-me.html'&gt;http://stephenlaw.blogspot.com/2014/02/how-us-treasury-imposes-sanctions-on-me.html&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;i&gt;Right, here's another thing I am getting off my chest - email letter to OFAC (edited slightly from version sent).&lt;/i&gt;&lt;p&gt;Dear OFAC&lt;/p&gt;
&lt;p&gt;This correspondence is copied to my UK Member of Parliament The Right Hon. Andrew Smith. Please copy him into your reply.&lt;/p&gt;
&lt;p&gt;My name is "Stephen Law". The name "Stephen Law" appear on OFAC's "specially designated nationals" list:&lt;/p&gt;
&lt;p&gt;Here is the actual OFAC listing for "Stephen Law", alias of "Steven Law"&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ofac.data-list-search.com/Entities/ByName/steven-law"&gt;https://ofac.data-list-search.com/Entities/ByName/steven-law&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This person is Burmese and is suspected by US Treasury of drug trafficking. He is the son of Lo Hsing Han (dubbed by US Treasury as "The Godfather of Heroin") and has a Singaporean wife. His addresses, as listed by you, are all in Burma and Singapore. None are in the UK.&lt;/p&gt;
&lt;p&gt;I have discovered that, as a result of this listing, US Customs block shipments of goods to me here in the UK. Also when people try to wire me money from abroad (not just from the US, but from anywhere), for e.g. occasional travel expenses for academic conference attendance, the payment is interrupted and various checks are made before the funds are released. This became so bad during one period (a series of payments every single one of which triggered a block) that I had to switch to a different bank account. At no point was I told why this was happening (i.e. that you, OFAC, are responsible). The banks concerned believe they must keep this information from me (I was told this by my bank branch). Hence it took me many months to figure out what the source of the problem was: OFAC/US Treasury.&lt;/p&gt;
&lt;p&gt;It appears any "Stephen Law" anywhere in the world will suffer this same treatment, as indeed will anyone who merely happens to have the same name or alias as one of your "specially designated nationals". This has proved frustrating, time-consuming and also costly to me personally. E.g. I have&#160; paid US$77 postage for goods it turns out I can never receive because they are returned by US customs to the US vendor because my name is listed. As a result of the OFAC listing, I cannot now order goods from - or receive gifts from friends and relatives in - the United States.&lt;/p&gt;
&lt;p&gt;Can you inform me: given I am very obviously NOT the Burmese Stephen Law:&lt;/p&gt;
&lt;p&gt;(i) how I can avoid having all goods shipped to me from the US to my UK address being blocked and returned to sender by US customs?&lt;/p&gt;
&lt;p&gt;(ii) how I can avoid my own bank repeatedly asking me who I am (and requesting information including my DOB, which they already possess) before unblocking any payment from abroad?&lt;/p&gt;
&lt;p&gt;My bank knows who I am, and they know I am not the Burmese "Stephen Law" on the specially designated nationals list, but still I have to go through this same rigmarole every single time money is wired to me. How do I avoid this please?&lt;/p&gt;
&lt;p&gt;Yours faithfully&lt;/p&gt;
&lt;p&gt;Stephen Law&lt;/p&gt;
&lt;p&gt;PS Ofac-caused delays to payments to me can run into weeks. On one occasion I ran up overdraft charges as a result of not receiving funds blocked by OFAC.&lt;/p&gt;
&lt;p&gt;PPS I was interviewed by Foreign Policy magazine about all this a short while ago.Also interviewed by News Hour on BBC World Service.
&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 12:26:16 -0800</pubDate>
      <link>http://stephenlaw.blogspot.com/2014/02/how-us-treasury-imposes-sanctions-on-me.html</link>
      <guid>http://stephenlaw.blogspot.com/2014/02/how-us-treasury-imposes-sanctions-on-me.html</guid>
    </item>
    <item>
      <title></title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7240797'&gt;""&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.darpa.mil/opencatalog/'&gt;http://www.darpa.mil/opencatalog/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;tr&gt;
&lt;td&gt;Aptima Inc.&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/Aptima/pattern-matching"&gt;Network Query by Example&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/Aptima/pattern-matching.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/pattern-matching/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Hadoop MapReduce-over-Hive based implementation of network query by example utilizing attributed network pattern matching.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boeing/Pitt&lt;br&gt;&lt;a href="#Boeing/Pitt"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://smilewide.github.io/main/"&gt;SMILE-WIDE: A scalable Bayesian network library&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/SmileWide/main.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/main/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;SMILE-WIDE is a scalable Bayesian network library. Initially, it is a version of the SMILE library, as in SMILE With Integrated Distributed Execution. The general approach has been to provide an API similar to the existing API SMILE developers use to build "local," single-threaded applications. However, we provide "vectorized" operations that hide a Hadoop-distributed implementation. Apart from invoking a few idioms like generic Hadoop command line argument parsing, these appear to the developer as if they were executed locally.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Carnegie Mellon University&lt;br&gt;&lt;a href="#Carnegie%20Mellon%20University"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/dougalsutherland/py-sdm"&gt;Support Distribution Machines &lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/dougalsutherland/py-sdm.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/py-sdm/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Python implementation of the nonparametric divergence estimators described by Barnabas Poczos, Liang Xiong, Jeff Schneider (2011). Nonparametric divergence estimation with applications to machine learning on distributions. Uncertainty in Artificial Intelligence. ( http://autonlab.org/autonweb/20287.html ) and also their use in support vector machines, as described by Dougal J. Sutherland, Liang Xiong, Barnabas Poczos, Jeff Schneider (2012). Kernels on Sample Sets via Nonparametric Divergence Estimates. ( http://arxiv.org/abs/1202.0302 ).&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Continuum Analytics&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/ContinuumIO/blaze"&gt;Blaze&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/ContinuumIO/blaze.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/blaze/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Blaze is the next-generation of NumPy. It is designed as a foundational set of abstractions on which to build out-of-core and distributed algorithms over a wide variety of data sources and to extend the structure of NumPy itself. Blaze allows easy composition of low level computation kernels (C, Fortran, Numba) to form complex data transformations on large datasets. In Blaze, computations are described in a high-level language (Python) but executed on a low-level runtime (outside of Python), enabling the easy mapping of high-level expertise to data without sacrificing low-level performance. Blaze aims to bring Python and NumPy into the massively-multicore arena, allowing it to leverage many CPU and GPU cores across computers, virtual machines and cloud services.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Continuum Analytics&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/numba/numba"&gt;Numba&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/numba/numba.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/numba/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Numba is an Open Source NumPy-aware optimizing compiler for Python sponsored by Continuum Analytics, Inc. It uses the LLVM compiler infrastructure to compile Python syntax to machine code.&lt;p&gt;It is aware of NumPy arrays as typed memory regions and so can speed-up code using NumPy arrays. Other, less well-typed code is translated to Python C-API calls effectively removing the "interpreter" but not removing the dynamic indirection.&lt;/p&gt;
&lt;p&gt;Numba is also not a tracing just in time (JIT) compiler. It compiles your code before it runs either using run-time type information or type information you provide in the decorator.&lt;/p&gt;
&lt;p&gt;Numba is a mechanism for producing machine code from Python syntax and typed data structures such as those that exist in NumPy.&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Continuum Analytics&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://bokeh.pydata.org"&gt;Bokeh&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/ContinuumIO/bokeh.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/bokeh/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Bokeh (pronounced bo-Kay or bo-Kuh) is a Python interactive visualization library for large datasets that natively uses the latest web technologies. Its goal is to provide elegant, concise construction of novel graphics in the style of Protovis/D3, while delivering high-performance interactivity over large data to thin clients.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Continuum Analytics and Indiana University&lt;br&gt;&lt;a href="#Continuum%20Analytics%20and%20Indiana%20University"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://www.github.com/JosephCottam/AbstractRendering"&gt;Abstract Rendering&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/JosephCottam/AbstractRendering.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/AbstractRendering/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Information visualization rests on the idea that a meaningful relationship can be drawn between pixels and data. This is most often mediated by geometric entities (such as circles, squares and text) but always involves pixels eventually to display. In most systems, the pixels are tucked away under levels of abstraction in the rendering system. Abstract Rendering takes the opposite approach: expose the pixels and gain powerful pixel-level control. This pixel-level power is a complement to many existing visualization techniques. It is an elaboration on rendering, not an analytic or projection step, so it can be used as an epilogue to many existing techniques. In standard rendering, geometric objects are projected to an image and represented on that image's discrete pixels. The source space is an abstract canvas that contains logically continuous geometric primitives and the target space is an image that contains discrete colors. Abstract Rendering fits between these two states. It introduces a discretization of the data at the pixel-level, but not necessarily all the way to colors. This enables many pixel-level concerns to be efficiently and concisely captured.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Continuum Analytics&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/ContinuumIO/cdx"&gt;CDX&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/ContinuumIO/cdx.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/cdx/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Software to visualize the structure of large or complex datasets / produce guides that help users or algorithms gauge the quality of various kinds of graphs &amp;amp; plots.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Continuum Analytics and Indiana University&lt;br&gt;&lt;a href="#Continuum%20Analytics%20and%20Indiana%20University"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/JosephCottam/Stencil"&gt;Stencil&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/JosephCottam/Stencil.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/Stencil/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Stencil is a grammar-based approach to visualization specification at a higher-level.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Tactics Corporation&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/JohnLangford/vowpal_wabbit"&gt;Vowpal Wabbit&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/JohnLangford/vowpal_wabbit.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/vowpal_wabbit/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Vowpal Wabbit (VW) project is a fast out-of-core learning system sponsored by Microsoft Research and (previously) Yahoo! Research. Support is available through the mailing list. There are two ways to have a fast learning algorithm: (a) start with a slow algorithm and speed it up, or (b) build an intrinsically fast learning algorithm. This project is about approach (b), and it's reached a state where it may be useful to others as a platform for research and experimentation. There are several optimization algorithms available with the baseline being sparse gradient descent (GD) on a loss function (several are available). The code should be easily usable. Its only external dependence is on the boost library, which is often installed by default.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Tactics Corporation&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://www.gocircuit.org/"&gt;Circuit&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://code.google.com/p/gocircuit/source/checkout&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Go Circuit reduces the human development and sustenance costs of complex massively-scaled systems nearly to the level of their single-process counterparts. It is a combination of proven ideas from the Erlang ecosystem of distributed embedded devices and Go's ecosystem of Internet application development. Go Circuit extends the reach of Go's linguistic environment to multi-host/multi-process applications.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Georgia Tech / GTRI&lt;br&gt;&lt;a href="#Georgia%20Tech%20/%20GTRI"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://www.cc.gatech.edu/~hpark/"&gt;libNMF: a high-performance library for nonnegative matrix factorization and hierarchical clustering&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;Pending&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;LibNMF is a high-performance, parallel library for nonnegative matrix factorization on both dense and sparse matrices written in C++. Implementations of several different NMF algorithms are provided, including multiplicative updating, hierarchical alternating least squares, nonnegative least squares with block principal pivoting, and a new rank2 algorithm. The library provides an implementation of hierarchical clustering based on the rank2 NMF algorithm.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IBM Research&lt;br&gt;&lt;a href="#IBM%20Research"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://xdata-skylark.github.io/"&gt;SKYLARK: Randomized Numerical Linear Algebra and ML&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;2014-05-15&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;SKYLARK implements Numerical Linear Algebra (NLA) kernels based on sketching for distributed computing platforms. Sketching reduces dimensionality through randomization, and includes Johnson-Lindenstrauss random projection (JL); a faster version of JL based on fast transform techniques; sparse techniques that can be applied in time proportional to the number of nonzero matrix entries; and methods for approximating kernel functions and Gram matrices arising in nonlinear statistical modeling problems. We have a library of such sketching techniques, built using MPI in C++ and callable from Python, and are applying the library to regression, low-rank approximation, and kernel-based machine learning tasks, among other problems. &lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Institute for Creative Technologies / USC&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://ict.usc.edu/"&gt;Immersive Body-Based Interactions&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;http://code.google.com/p/svnmimir/source/checkout&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/immersive_body-based_interactions/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Provides innovative interaction techniques to address human-computer interaction challenges posed by Big Data. Examples include:&lt;br&gt;* Wiggle Interaction Technique: user induced motion to speed visual search.&lt;br&gt;* Immersive Tablet Based Viewers: low cost 3D virtual reality fly-through's of data sets.&lt;br&gt;* Multi-touch interfaces: browsing/querying multi-attribute and geospatial data, hosted by SOLR.&lt;br&gt;* Tablet based visualization controller: eye-free rapid interaction with visualizations.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Johns Hopkins University&lt;br&gt;&lt;a href="#Johns%20Hopkins%20University"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/igraph/xdata-igraph/"&gt;igraph&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/igraph/xdata-igraph.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/xdata-igraph/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;igraph provides a fast generation of large graphs, fast approximate computation of local graph invariants, fast parallelizable graph embedding. API and Web-service for batch processing graphs across formats.&lt;/td&gt;
&lt;td&gt;GPLv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trifacta (Stanford, University of Washington, Kitware, Inc. Team)&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/trifacta/vega"&gt;Vega&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/trifacta/vega.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/vega/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Vega is a visualization grammar, a declarative format for creating and saving visualization designs. With Vega you can describe data visualizations in a JSON format, and generate interactive views using either HTML5 Canvas or SVG.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kitware, Inc.&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://kitware.github.io/tangelo/"&gt;Tangelo&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/Kitware/tangelo.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/tangelo/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Tangelo provides a flexible HTML5 web server architecture that cleanly separates your web applications (pure Javascript, HTML, and CSS) and web services (pure Python). This software is bundled with some great tools to get you started.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Harvard and Kitware, Inc.&lt;br&gt;&lt;a href="#Harvard%20and%20Kitware,%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://sgratzl.github.io/paper-2013-lineup/"&gt;LineUp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/Caleydo/org.caleydo.vis.lineup.demos.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/org.caleydo.vis.lineup.demos/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;LineUp is a novel and scalable visualization technique that uses bar charts. This interactive technique supports the ranking of items based on multiple heterogeneous attributes with different scales and semantics. It enables users to interactively combine attributes and flexibly refine parameters to explore the effect of changes in the attribute combination. This process can be employed to derive actionable insights as to which attributes of an item need to be modified in order for its rank to change. Additionally, through integration of slope graphs, LineUp can also be used to compare multiple alternative rankings on the same set of items, for example, over time or across different attribute combinations. We evaluate the effectiveness of the proposed multi-attribute visualization technique in a qualitative study. The study shows that users are able to successfully solve complex ranking tasks in a short period of time.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Harvard and Kitware, Inc.&lt;br&gt;&lt;a href="#Harvard%20and%20Kitware,%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://sgratzl.github.io/paper-2013-lineup/"&gt;LineUp Web&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;2014-06&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;LineUpWeb is the web version of the novel and scalable visualization technique. This interactive technique supports the ranking of items based on multiple heterogeneous attributes with different scales and semantics. It enables users to interactively combine attributes and flexibly refine parameters to explore the effect of changes in the attribute combination.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stanford, University of Washington, Kitware, Inc.&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://idl.cs.washington.edu/projects/lyra"&gt;Lyra&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;2014-02&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Lyra is an interactive environment that makes custom visualization design accessible to a broader audience. With Lyra, designers map data to the properties of graphical marks to author expressive visualization designs without writing code. Marks can be moved, rotated and resized using handles; relatively positioned using connectors; and parameterized by data fields using property drop zones. Lyra also provides a data pipeline interface for iterative, visual specification of data transformations and layout algorithms. Visualizations created with Lyra are represented as specifications in Vega, a declarative visualization grammar that enables sharing and reuse.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Phronesis&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/kaneplusplus/stat_agg"&gt;stat_agg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/kaneplusplus/stat_agg.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/stat_agg/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;stat_agg is a Python package that provides statistical aggregators that maximize ensemble prediction accuracy by weighting individual learners in an optimal way. When used with the laputa package, learners may be distributed across a cluster of machines. The package also provides fault-tolerance when one or more learners becomes unavailable.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Phronesis&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/kaneplusplus/flexmem"&gt;flexmem&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/kaneplusplus/flexmem.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/flexmem/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Flexmem is a general, transparent tool for out-of-core (OOC) computing in the R programming environment. It is launched as a command line utility, taking an application as an argument. All memory allocations larger than a specified threshold are memory-mapped to a binary file. When data are not needed, they are stored on disk. It is both process- and thread-safe.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Phronesis&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/kaneplusplus/laputa"&gt;laputa&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/kaneplusplus/laputa.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/laputa/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Laputa is a Python package that provides an elastic, parallel computing foundation for the stat_agg (statistical aggregates) package.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Phronesis&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://bigmemory.org/"&gt;bigmemory&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;http://cran.r-project.org/web/packages/bigmemory/index.html&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Bigmemory is an R package to create, store, access, and manipulate massive matrices. Matrices are allocated to shared memory and may use memory-mapped files. Packages biganalytics, bigtabulate, synchronicity, and bigalgebra provide advanced functionality.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Phronesis&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://bigmemory.org/"&gt;bigalgebra&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://r-forge.r-project.org/scm/viewvc.php/?root=bigmemory&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Bigalgebra is an R package that provides arithmetic functions for R matrix and big.matrix objects.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MDA Information Systems, Inc., Jet Propulsion Laboratory, USC/Information Sciences Institute&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://oodt.apache.org/"&gt;OODT&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://svn.apache.org/repos/asf/oodt/&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/oodt/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;APACHE OODT enables transparent access to distributed resources, data discovery and query optimization, and distributed processing and virtual archives. OODT provides software architecture that enables models for information representation, solutions to knowledge capture problems, unification of technology, data, and metadata.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MDA Information Systems, Inc.,Jet Propulsion Laboratory, USC/Information Sciences Institute&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://www.wings-workflows.org/"&gt;Wings&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/varunratnakar/wings.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/wings/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;WINGS provides a semantic workflow system that assists scientists with the design of computational experiments. A unique feature of WINGS is that its workflow representations incorporate semantic constraints about datasets and workflow components, and are used to create and validate workflows and to generate metadata for new data products. WINGS submits workflows to execution frameworks such as Pegasus and OODT to run workflows at large scale in distributed resources.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MIT-LL&lt;br&gt;&lt;a href="#MIT-LL"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://www.ll.mit.edu/mission/cybersec/HLT/HLT.html"&gt;Query By Example (Graph QuBE)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;2014-02-15&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Query-by-Example (Graph QuBE) on dynamic transaction graphs.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MIT-LL&lt;br&gt;&lt;a href="#MIT-LL"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://julialang.org/"&gt;Julia&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/JuliaLang/julia.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/julia/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library.&lt;/td&gt;
&lt;td&gt;MIT,GPL,LGPL,BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MIT-LL&lt;br&gt;&lt;a href="#MIT-LL"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://www.ll.mit.edu/mission/cybersec/HLT/HLT.html"&gt;Topic&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;Pending&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Probabilistic Latent Semantic Analysis (pLSA) Topic Modeling.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MIT-LL&lt;br&gt;&lt;a href="#MIT-LL"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://scidb.org"&gt;SciDB&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/wujiang/SciDB-mirror.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/SciDB-mirror/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Scientific Database for large-scale numerical data.&lt;/td&gt;
&lt;td&gt;GPLv3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MIT-LL&lt;br&gt;&lt;a href="#MIT-LL"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://www.ll.mit.edu/mission/cybersec/HLT/HLT.html"&gt;Information Extractor&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;Pending&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Trainable named entity extractor (NER) and relation extractor.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next Century Corporation&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://owfgoss.org/download.html"&gt;Ozone Widget Framework&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/ozoneplatform/owf.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/owf/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Ozone Widget Framework provides a customizable open-source web application that assembles the tools you need to accomplish any task and enables those tools to communicate with each other. It is a technology-agnostic composition framework for data and visualizations in a common browser-based display and interaction environment that lowers the barrier to entry for the development of big data visualizations and enables efficient exploration of large data sets.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next Century Corporation&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://neonframework.org/"&gt;Neon Visualization Environment&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/NextCenturyCorporation/neon.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/neon/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Neon is a framework that gives a datastore agnostic way for visualizations to query data and perform simple operations on that data such as filtering, aggregation, and transforms. It is divided into two parts, neon-server and neon-client. Neon-server provides a set of RESTful web services to select a datastore and perform queries and other operations on the data. Neon-client is a javascript API that provides a way to easily integrate neon-server capabilities into a visualization, and also aids in 'widgetizing' a visualization, allowing it to be integrated into a common OWF based ecosystem.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oculus Info Inc.&lt;br&gt;&lt;a href="#Oculus%20Info%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://aperturejs.com/"&gt;ApertureJS&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/oculusinfo/aperturejs.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/aperturejs/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ApertureJS is an open, adaptable and extensible JavaScript visualization framework with supporting REST services, designed to produce visualizations for analysts and decision makers in any common web browser. Aperture utilizes a novel layer based approach to visualization assembly, and a data mapping API that simplifies the process of adaptable transformation of data and analytic results into visual forms and properties. Aperture vizlets can be easily embedded with full interoperability in frameworks such as the Ozone Widget Framework (OWF).&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oculus Info Inc.&lt;br&gt;&lt;a href="#Oculus%20Info%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://www.oculusinfo.com/influent"&gt;Influent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/oculusinfo/influent.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/influent/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Influent is an HTML5 tool for visually and interactively following transaction flow, rapidly revealing actors and behaviors of potential concern that might otherwise go unnoticed. Summary visualization of transactional patterns and actor characteristics, interactive link expansion and dynamic entity clustering enable Influent to operate effectively at scale with big data sources in any modern web browser. Influent has been used to explore data sets with millions of entities and hundreds of millions of transactions.&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oculus Info Inc.&lt;br&gt;&lt;a href="#Oculus%20Info%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://www.oculusinfo.com/tiles"&gt;Aperture Tile-Based Visual Analytics&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/oculusinfo/aperture-tiles.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/aperture-tiles/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;New tools for raw data characterization of 'big data' are required to suggest initial hypotheses for testing. The widespread use and adoption of web-based maps has provided a familiar set of interactions for exploring abstract large data spaces. Building on these techniques, we developed tile based visual analytics that provide browser-based interactive visualization of billions of data points.&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oculus Info Inc.&lt;br&gt;&lt;a href="#Oculus%20Info%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/oculusinfo/ensemble-clustering"&gt;Oculus Ensemble Clustering&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/oculusinfo/ensemble-clustering.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/ensemble-clustering/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Oculus Ensemble Clustering is a flexible multi-threaded clustering library for rapidly constructing tailored clustering solutions that leverage the different semantic aspects of heterogeneous data. The library can be used on a single machine using multi-threading or distributed computing using Spark.&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Raytheon BBN&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/plamenbbn/XDATA"&gt;Content and Context-based Graph Analysis: PINT, Patterns in Near-Real Time&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/plamenbbn/XDATA.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/XDATA/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Patterns in Near-Real Time will take any corpus as input and quantify the strength of the query match to a SME-based process model, represent process model as a Directed Acyclic Graph (DAG), and then search and score potential matches.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Raytheon BBN&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/plamenbbn/XDATA"&gt;Content and Context-based Graph Analysis: NILS, Network Inference of Link Strength&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/plamenbbn/XDATA.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/XDATA/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Network Inference of Link Strength will take any text corpus as input and quantify the strength of connections between any pair of entities. Link strength probabilities are computed via shortest path.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Royal Caliber&lt;br&gt;&lt;a href="#Royal%20Caliber"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/RoyalCaliber/vertexAPI2"&gt;GPU based Graphlab style Gather-Apply-Scatter (GAS) platform for quickly implementing and running graph algorithms&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/RoyalCaliber/vertexAPI2.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/vertexAPI2/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Allows users to express graph algorithms as a series of Gather-Apply-Scatter (GAS) steps similar to GraphLab. Runs these vertex programs using a single or multiple GPUs - demonstrates a large speedup over GraphLab.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scientific Systems Company, Inc., MIT, and University of Louisville&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://probcomp.csail.mit.edu/bayesdb/"&gt;BayesDB&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/mit-probabilistic-computing-project/BayesDB.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/BayesDB/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;BayesDB is an open-source implementation of a predictive database table. It provides predictive extensions to SQL that enable users to query the implications of their data --- predict missing entries, identify predictive relationships between columns, and examine synthetic populations --- based on a Bayesian machine learning system in the backend. &lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scientific Systems Company, Inc., MIT, and University of Louisville&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://probcomp.csail.mit.edu/crosscat/"&gt;Crosscat&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/mit-probabilistic-computing-project/crosscat.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/crosscat/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;CrossCat is a domain-general, Bayesian method for analyzing high-dimensional data tables. CrossCat estimates the full joint distribution over the variables in the table from the data via approximate inference in a hierarchical, nonparametric Bayesian model, and provides efficient samplers for every conditional distribution. CrossCat combines strengths of nonparametric mixture modeling and Bayesian network structure learning: it can model any joint distribution given enough data by positing latent variables, but also discovers independencies between the observable variables.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sotera Defense Solutions, Inc.&lt;br&gt;&lt;a href="#Sotera%20Defense%20Solutions,%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://github.com/Sotera/zephyr"&gt;Zephyr&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;http://github.com/Sotera/zephyr&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/zephyr/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Zephyr is a big data, platform agnostic ETL API, with Hadoop MapReduce, Storm, and other big data bindings.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sotera Defense Solutions, Inc.&lt;br&gt;&lt;a href="#Sotera%20Defense%20Solutions,%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/Sotera/page-rank"&gt;Page Rank&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/Sotera/page-rank.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/page-rank/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Sotera Page Rank is a Giraph/Hadoop implementation of a distributed version of the Page Rank algorithm.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sotera Defense Solutions, Inc.&lt;br&gt;&lt;a href="#Sotera%20Defense%20Solutions,%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://sotera.github.io/distributed-louvain-modularity/"&gt;Louvain Modularity&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/Sotera/distributed-louvain-modularity.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/distributed-louvain-modularity/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Giraph/Hadoop implementation of a distributed version of the Louvain community detection algorithm.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sotera Defense Solutions, Inc.&lt;br&gt;&lt;a href="#Sotera%20Defense%20Solutions,%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://sotera.github.io/aggregate-micro-paths/"&gt;Spark MicroPath&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/Sotera/aggregate-micro-paths.git&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;The Spark implementation of the micropath analytic.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sotera Defense Solutions, Inc.&lt;br&gt;&lt;a href="#Sotera%20Defense%20Solutions,%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/Sotera/rhipe-arima"&gt;ARIMA&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/Sotera/rhipe-arima&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/rhipe-arima/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Hive and RHIPE implementation of an ARIMA analytic.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sotera Defense Solutions, Inc.&lt;br&gt;&lt;a href="#Sotera%20Defense%20Solutions,%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/Sotera/leaf-compression"&gt; Leaf Compression&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/Sotera/leaf-compression.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/leaf-compression/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Recursive algorithm to remove nodes from a network where degree centrality is 1.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sotera Defense Solutions, Inc.&lt;br&gt;&lt;a href="#Sotera%20Defense%20Solutions,%20Inc."&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/Sotera/correlation-approximation"&gt;Correlation Approximation&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/Sotera/correlation-approximation&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/correlation-approximation/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Spark implementation of an algorithm to find highly correlated vectors using an approximation algorithm.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stanford University - Boyd&lt;br&gt;&lt;a href="#Stanford%20University%20-%20Boyd"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/cvxgrp/qcml"&gt;QCML (Quadratic Cone Modeling Language)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/cvxgrp/qcml.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/qcml/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Seamless transition from prototyping to code generation. Enable ease and expressiveness of convex optimization across scales with little change in code.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stanford University - Boyd&lt;br&gt;&lt;a href="#Stanford%20University%20-%20Boyd"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/cvxgrp/pdos"&gt;PDOS (Primal-dual operator splitting)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/cvxgrp/pdos.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/pdos/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Concise algorithm for solving convex problems; solves problems passed from QCML.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stanford University - Boyd&lt;br&gt;&lt;a href="#Stanford%20University%20-%20Boyd"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/cvxgrp/scs"&gt;SCS (Self-dual Cone Solver)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/cvxgrp/scs.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/scs/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Implementation of a solver for general cone programs, including linear, second-order, semidefinite and exponential cones, based on an operator splitting method applied to a self-dual homogeneous embedding. The method and software supports both direct factorization, with factorization caching, and an indirect method, that requires only the operator associated with the problem data and its adjoint. The implementation includes interfaces to CVX, CVXPY, matlab, as well as test routines. This code is described in detail in an associated paper, at http://www.stanford.edu/~boyd/papers/pdos.html (which also links to the code).&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stanford University - Boyd&lt;br&gt;&lt;a href="#Stanford%20University%20-%20Boyd"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/ifa-ethz/ecos"&gt;ECOS: An SOCP Solver for Embedded Systems&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/ifa-ethz/ecos.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/ecos/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ECOS is a lightweight primal-dual homogeneous interior-point solver for SOCPs, for use in embedded systems as well as a base solver for use in large scale distributed solvers. It is described in the paper at http://www.stanford.edu/~boyd/papers/ecos.html.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stanford University - Boyd&lt;br&gt;&lt;a href="#Stanford%20University%20-%20Boyd"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/cvxgrp/proximal"&gt;Proximal Operators&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/cvxgrp/proximal.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/ecos/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;This library contains sample implementations of various proximal operators in Matlab. These implementations are intended to be pedagogical, not the most performant. This code is associated with the paper Proximal Algorithms by Neal Parikh and Stephen Boyd.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stanford University - Hanrahan&lt;br&gt;&lt;a href="#Stanford%20University%20-%20Hanrahan"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://vis.stanford.edu/projects/immens/"&gt;imMens&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/StanfordHCI/imMens.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/imMens/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;imMens is a web-based system for interactive visualization of large databases. imMens uses binned aggregation to produce summary visualizations that avoid the shortcomings of standard sampling-based approaches. Through data decomposition methods (to limit data transfer) and GPU computation via WebGL (for parallel query processing), imMens enables real-time (50fps) visual querying of billion+ element databases.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stanford University - Hanrahan&lt;br&gt;&lt;a href="#Stanford%20University%20-%20Hanrahan"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://hafen.github.io/trelliscope/"&gt;trelliscope&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/hafen/trelliscope.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/trelliscope/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Trellis Display, developed in the 90s, also divides the data. A visualization method is applied to each subset and shown on one panel of a multi-panel trellis display. This framework is a very powerful mechanism for all data, large and small. Trelliscope, a layer that uses datadr, extends Trellis to large complex data. An interactive viewer is available for viewing subsets of very large displays, and the software provides the capability to sample subsets of panels from rigorous sampling plans. Sampling is often necessary because in most applications, there are too many subsets to look at them all.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stanford University - Hanrahan&lt;br&gt;&lt;a href="#Stanford%20University%20-%20Hanrahan"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://www.datadr.org/"&gt;RHIPE: R and Hadoop Integrated Programming Environment&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/saptarshiguha/RHIPE.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/RHIPE/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;In Divide and Recombine (D&amp;amp;R), big data are divided into subsets in one or more ways, forming divisions. Analytic methods, numeric-categorical methods of machine learning and statistics plus visualization methods, are applied to each of the subsets of a division. Then the subset outputs for each method are recombined. D&amp;amp;R methods of division and recombination seek to make the statistical accuracy of recombinations as large as possible, ideally close to that of the hypothetical direct, all-data application of the methods. The D&amp;amp;R computational environment starts with RHIPE, a merger of R and Hadoop. RHIPE allows an analyst to carry out D&amp;amp;R analysis of big data wholly from within R, and use any of the thousands of methods available in R. RHIPE communicates with Hadoop to carry out the big, parallel computations.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stanford University - Hanrahan&lt;br&gt;&lt;a href="#Stanford%20University%20-%20Hanrahan"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/jtalbot/riposte"&gt;Riposte&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/jtalbot/riposte.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/riposte/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Riposte is a fast interpreter and JIT for R. The Riposte VM has 2 cooperative subVMs for R scripting (like Java) and for R vector computation (like APL). Our scripting code has been 2-4x faster in Riposte than in R's recent bytecode interpreter. Vector-heavy code is 5-10x faster. Speeding up R can greatly increases the analyst's efficiency.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stanford University - Olukotun&lt;br&gt;&lt;a href="#Stanford%20University%20-%20Olukotun"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/stanford-ppl/delite"&gt;Delite&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/stanford-ppl/Delite.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/Delite/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Delite is a compiler framework and runtime for parallel embedded domain-specific languages (DSLs).&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stanford University - Olukotun&lt;br&gt;&lt;a href="#Stanford%20University%20-%20Olukotun"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://snap.stanford.edu/"&gt;SNAP&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/snap-stanford/snap&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/snap/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Stanford Network Analysis Platform (SNAP) is a general purpose network analysis and graph mining library. It is written in C++ and easily scales to massive networks with hundreds of millions of nodes, and billions of edges. It efficiently manipulates large graphs, calculates structural properties, generates regular and random graphs, and supports attributes on nodes and edges.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SYSTAP, LLC&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://sourceforge.net/projects/bigdata/"&gt;bigdata&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://bigdata.svn.sourceforge.net/svnroot/bigdata/&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/bigdata/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Bigdata enables massively parallel graph processing on GPUs and many core CPUs. The approach is based on the decomposition of a graph algorithm as a vertex program. The initial implementation supports an API based on the GraphLab 2.1 Gather Apply Scatter (GAS) API. Execution is available on GPUs, Intel Xenon Phi (aka MIC), and multi-core GPUs. &lt;/td&gt;
&lt;td&gt;GPLv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SYSTAP, LLC&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://sourceforge.net/projects/mpgraph/"&gt;mpgraph&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;http://svn.code.sf.net/p/mpgraph/code/&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/mpgraph/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Mpgraph enables massively parallel graph processing on GPUs and many core CPUs. The approach is based on the decomposition of a graph algorithm as a vertex program. The initial implementation supports an API based on the GraphLab 2.1 Gather Apply Scatter (GAS) API. Execution is available on GPUs, Intel Xenon Phi (aka MIC), and multi-core GPUs. &lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UC Davis&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://gunrock.github.io/gunrock/"&gt;Gunrock&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/gunrock/gunrock.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/gunrock/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Gunrock is a CUDA library for graph primitives that refactors, integrates, and generalizes best-of-class GPU implementations of breadth-first search, connected components, and betweenness centrality into a unified code base useful for future development of high-performance GPU graph primitives.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Draper Laboratory&lt;br&gt;&lt;a href="#Draper%20Laboratory"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/draperlab/xdatalogger"&gt;Analytic Activity Logger&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/draperlab/xdatalogger.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/xdatalogger/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytic Activity Logger is an API that creates a common message passing interface to allow heterogeneous software components to communicate with an activity logging engine. Recording a user's analytic activities enables estimation of operational context and workflow. Combined with psychophysiology sensing, analytic activity logging further enables estimation of the user's arousal, cognitive load, and engagement with the tool.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;University of California, Berkeley&lt;br&gt;&lt;a href="#University%20of%20California,%20Berkeley"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://amplab.cs.berkeley.edu/software/"&gt;BDAS&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;BDAS, the Berkeley Data Analytics Stack, is an open source software stack that integrates software components being built by the AMPLab to make sense of Big Data.&lt;/td&gt;
&lt;td&gt;ALv2, BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;University of California, Berkeley&lt;br&gt;&lt;a href="#University%20of%20California,%20Berkeley"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://spark.incubator.apache.org/"&gt;Spark&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/mesos/spark.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/spark/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Apache Spark is an open source cluster computing system that aims to make data analytics both fast to run and fast to write. To run programs faster, Spark offers a general execution model that can optimize arbitrary operator graphs, and supports in-memory computing, which lets it query data faster than disk-based engines like Hadoop. To make programming faster, Spark provides clean, concise APIs in Python, Scala and Java. You can also use Spark interactively from the Scala and Python shells to rapidly query big datasets.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;University of California, Berkeley&lt;br&gt;&lt;a href="#University%20of%20California,%20Berkeley"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/amplab/shark"&gt;Shark&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/amplab/shark.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/shark/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Shark is a large-scale data warehouse system for Spark that is designed to be compatible with Apache Hive. It can execute Hive QL queries up to 100 times faster than Hive without any modification to the existing data or queries. Shark supports Hive's query language, metastore, serialization formats, and user-defined functions, providing seamless integration with existing Hive deployments and a familiar, more powerful option for new ones.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;University of California, Berkeley&lt;br&gt;&lt;a href="#University%20of%20California,%20Berkeley"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://blinkdb.org/"&gt;BlinkDB&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/sameeragarwal/blinkdb.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/blinkdb/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;BlinkDB is a massively parallel, approximate query engine for running interactive SQL queries on large volumes of data. It allows users to trade-off query accuracy for response time, enabling interactive queries over massive data by running queries on data samples and presenting results annotated with meaningful error bars. To achieve this, BlinkDB uses two key ideas: (1) An adaptive optimization framework that builds and maintains a set of multi-dimensional samples from original data over time, and (2) A dynamic sample selection strategy that selects an appropriately sized sample based on a query's accuracy and/or response time requirements. We have evaluated BlinkDB on the well-known TPC-H benchmarks, a real-world analytic workload derived from Conviva Inc. and are in the process of deploying it at Facebook Inc. &lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;University of California, Berkeley&lt;br&gt;&lt;a href="#University%20of%20California,%20Berkeley"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=http://mesos.apache.org/"&gt;Mesos&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://git-wip-us.apache.org/repos/asf/mesos.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/mesos/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Apache Mesos is a cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks. It can run Hadoop, MPI, Hypertable, Spark, and other applications on a dynamically shared pool of nodes.&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;University of California, Berkeley&lt;br&gt;&lt;a href="#University%20of%20California,%20Berkeley"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/amplab/tachyon"&gt;Tachyon&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/amplab/tachyon.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/tachyon/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Tachyon is a fault tolerant distributed file system enabling reliable file sharing at memory-speed across cluster frameworks, such as Spark and MapReduce. It achieves high performance by leveraging lineage information and using memory aggressively. Tachyon caches working set files in memory, and enables different jobs/queries and frameworks to access cached files at memory speed. Thus, Tachyon avoids going to disk to load datasets that are frequently read.&lt;/td&gt;
&lt;td&gt;BSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;University of Southern California&lt;br&gt;&lt;a href="#University%20of%20Southern%20California"&gt;Publications&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.darpa.mil/External_Link.aspx?url=https://github.com/usc-cloud/goffish"&gt;goffish&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;2014-07&lt;/td&gt;
&lt;td&gt;https://github.com/usc-cloud/goffish.git&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.darpa.mil/stats/goffish/index.html'&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The GoFFish project offers a distributed framework for storing timeseries graphs and composing graph analytics. It takes a clean-slate approach that leverages best practices and patterns from scalable data analytics such as Hadoop, HDFS, Hive, and Giraph, but with an emphasis on performing native analytics on graph (rather than tuple) data structures. This offers an more intuitive storage, access and programming model for graph datasets while also ensuring performance optimized for efficient analysis over large graphs (millions-billions of vertices) and many instances of them (thousands-millions of graph instances).&lt;/td&gt;
&lt;td&gt;ALv2&lt;/td&gt;
&lt;/tr&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 12:32:16 -0800</pubDate>
      <link>http://www.darpa.mil/opencatalog/</link>
      <guid>http://www.darpa.mil/opencatalog/</guid>
    </item>
    <item>
      <title>Instapainting Turns Your Photos Into Hand-Painted Oil Paintings On The Cheap  |  TechCrunch</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7241036'&gt;"Instapainting Turns Your Photos Into Hand-Painted Oil Paintings On The Cheap  |  TechCrunch"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://techcrunch.com/2014/02/14/instapainting-turns-your-photos-into-hand-painted-oil-paintings-on-the-cheap/'&gt;http://techcrunch.com/2014/02/14/instapainting-turns-your-photos-into-hand-painted-oil-paintings-on-the-cheap/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;!-- Begin: Wordpress Article Content --&gt;
&lt;img src="http://tctechcrunch2011.files.wordpress.com/2014/02/painting.png?w=722"&gt;&lt;p&gt;Surprise! It&#8217;s Valentine&#8217;s Day, the stealthiest of all the holidays. Sneaks up on you, doesn&#8217;t it?&lt;/p&gt;
&lt;p&gt;If you&#8217;re trying to get a gift today, you&#8230; might be a bit short on options. Will you go with the gas station teddy bear? The twice-crushed box of chocolates? A bouquet of acceptable-looking roses for $200?&lt;/p&gt;
&lt;p&gt;If your nearly-forgotten flame would be content with the promise of a pretty cool gift in a few weeks, though, you might be set. &lt;a href="https://instapainting.com/"&gt;Instapainting&lt;/a&gt;, a YC-backed company launching this morning, turns any photo into a hand-painted piece on canvas for under $100 bucks.&lt;/p&gt;
&lt;p&gt;If you&#8217;ve ever tried to have something like this done before, you probably know: this exists. A few companies have been doing the whole photo-into-art thing for years. Where Instapainting thinks they have them beat, however, is in pricing and speed.&lt;/p&gt;
&lt;p&gt;Instapainting&#8217;s smallest option (a 12&#8243;x12&#8243; canvas) starts the pricing at $53 (including shipping), with the largest option (29.33&#8243;x22&#8243;) going for $130 . A quick search turns up a number of others in this space &#8212; OilPaintingExpress, OilPaintings.com, and myDavinci to name a few. The next wallet-friendliest option I could find was OilPaintingExpress, where a 12&#8243;x12&#8243; work starts at $119. Most of them start the pricing at $200-$300 dollars.&lt;/p&gt;
&lt;p&gt;Instapainting&#8217;s website is also a bit more&#8230; modern, for lack of a better word. Setting up your order takes all of a few seconds; upload your photo, crop it to the region you like, pick a canvas size, and you&#8217;re set. Built on top of tools like &lt;a href="https://www.inkfilepicker.com/"&gt;FilePicker&lt;/a&gt; and &lt;a href="https://stripe.com/"&gt;Stripe&lt;/a&gt;, the whole ordering flow is slick and simple.&lt;/p&gt;
&lt;p&gt;So how do they keep the prices down? A few ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your original photo is printed onto canvas first, and this printed piece is used as the base/foundation of the hand painted piece. In other words: they&#8217;re painting &lt;em&gt;on top&lt;/em&gt; of the photo. The artist still has to know how to properly mix colors and how to recreate lights/shadows/etc. in oil, but it&#8217;s a &lt;em&gt;whole&lt;/em&gt; lot quicker than starting on blank canvas. Many a professional artist might balk at the idea &#8212; but unless your friends start scratching at the paint to see what&#8217;s underneath, they probably won&#8217;t be able to tell.&lt;/li&gt;
&lt;li&gt;As you might&#8217;ve guessed, much of the work is done overseas. Instapainting&#8217;s founders source their painters (primarily in China) one-by-one, mostly through their myriad online profiles. After quietly starting to roll the service out around a month ago, Instapainting says they have just shy of 100 painters producing pieces.&lt;/li&gt;
&lt;li&gt;They ship your art rolled in a tube, leaving it to the customer to frame it or stretch it onto canvas. The company tells me they&#8217;re working on a quick-assembling canvas frame that they can pack into the shipping tubes, but that&#8217;s still a few months out.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But what about shoddy work? Cheaper rarely means better, after all. To keep quality up, Instapainting puts two layers of protection into the mix: first, each painting is checked by a second set of eyes before it heads out to the customer. Second, they guarantee their work; if you don&#8217;t dig the oil-painted version they send you, they&#8217;ll remake it or give you a full refund.&lt;/p&gt;
&lt;p&gt;Meanwhile, the company is also dabbling with the idea of &lt;a href="https://instapainting.com/market"&gt;being a marketplace&lt;/a&gt; for artists looking to have their work recreated by hand. Artists upload the digital version of their painting or photograph, and Instapainting recreates their work and shares the revenue. It&#8217;s not quite the same as buying an original piece by the original artist, of course &#8212; but when your main concern is how it looks hanging above your couch, it&#8217;s a nice alternative to buying a standard print.&lt;/p&gt;
&lt;p&gt;We&#8217;re planning on putting the just-launched service through the proper paces, so be on the lookout for a full review in the coming weeks.&lt;/p&gt;
&lt;!-- End: Wordpress Article Content --&gt;
 
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 13:16:35 -0800</pubDate>
      <link>http://techcrunch.com/2014/02/14/instapainting-turns-your-photos-into-hand-painted-oil-paintings-on-the-cheap/</link>
      <guid>http://techcrunch.com/2014/02/14/instapainting-turns-your-photos-into-hand-painted-oil-paintings-on-the-cheap/</guid>
    </item>
    <item>
      <title> Bitcore </title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7241176'&gt;" Bitcore "&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 14 Feb 2014 13:46:44 -0800</pubDate>
      <link>http://bitcore.io/</link>
      <guid>http://bitcore.io/</guid>
    </item>
    <item>
      <title>Venezuelans Blocked on Twitter Amid Opposition&#8217;s Protests - Businessweek</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7241722'&gt;"Venezuelans Blocked on Twitter Amid Opposition&#8217;s Protests - Businessweek"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.businessweek.com/news/2014-02-14/twitter-says-venezuela-blocks-its-images-amid-protest-crackdown'&gt;http://www.businessweek.com/news/2014-02-14/twitter-says-venezuela-blocks-its-images-amid-protest-crackdown&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
&lt;p&gt; &lt;span&gt;&lt;span&gt;&lt;span&gt;Twitter Inc.&lt;/span&gt;&lt;/span&gt; (&lt;a href="http://investing.businessweek.com/research/stocks/snapshot/snapshot.asp?ticker=TWTR:US"&gt;TWTR:US&lt;/a&gt;)&lt;/span&gt; said the Venezuelan government blocked users&#8217; online images as opposition groups marched through Caracas for a third day, demonstrating against record shortages and the world&#8217;s fastest inflation. &lt;/p&gt; &lt;p&gt;Nu Wexler, a Twitter spokesman, confirmed in an e-mail that the government was behind the disruption. President Nicolas Maduro banned protests Feb. 12 and has asked his supporters to counter with a &#8220;march against fascism&#8221; tomorrow, in a week of social unrest that has left at least three Venezuelans dead. &lt;/p&gt; &lt;p&gt;
 &lt;strong&gt;Related:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Boy&#226;&#8364;&#8482;s Life Hanging on 8-Hour Trip Shows Why Venezuelans Protest&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Opinion:&lt;/strong&gt; Let's Watch Venezuela Destroy Itself
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the absence of information from the government or local television outlets, Venezuelans have turned to foreign reporters and social media for news. Twitter users had been posting their photos of demonstrations that started in provincial towns earlier this month, providing an alternative to state-controlled media. It&#8217;s unclear if photos are blocked for users of all Internet providers in Venezuela, Wexler said. &lt;/p&gt; &lt;p&gt;&#8220;We won&#8217;t cease protests until all our comrades are free,&#8221; Gaby Arellano, a leader of the Andes University student union and member of the opposition party Voluntad Popular, said by telephone today. &#8220;We will continue fighting for our democratic rights.&#8221; &lt;/p&gt; &lt;p&gt;Maduro ordered police on Feb. 12 to detain opposition leaders for inciting violence after clashes between opposition-affiliated students and armed pro-government socialist collectives left 66 people injured and 118 under detention, according to the Interior Ministry. &lt;/p&gt; &lt;h2&gt;Cantv Denial &lt;/h2&gt; &lt;p&gt;State-run phone company Cia. Anonima Nacional Telefonos de Venezuela SA, or Cantv, denied blocking the images of San Francisco-based Twitter. Twitter&#8217;s servers are outside of Venezuela, and other countries experienced the same issue, the company said in an e-mailed statement today. &lt;/p&gt; &lt;p&gt;A spokesman for the Information Ministry, who can&#8217;t be named because of internal policy, said he had no problem seeing pictures on his Twitter account, which he uses to follow friends and family. &lt;/p&gt; &lt;p&gt;Students have defied Maduro&#8217;s ban on protests, blocking Caracas&#8217; major avenues today on the way to the Eastern Cemetery to bury student Roberto Redman, one of the three killed in Feb. 12 clashes. &lt;/p&gt; &lt;p&gt;Only 10 of the 118 people detained have been charged to-date, mostly for instigating violence, according to the prosecutor general&#8217;s office. Human rights group Venezuelan Penal Forum put the number of detained at 148. &lt;/p&gt; &lt;h2&gt;&#8216;No Idea&#8217; &lt;/h2&gt; &lt;p&gt;Alex Matute, a Caracas-based web developer, said his brother Angel, a 24-year-old student, was among the 30 protesters who were held by the National Guard without being charged and without access to lawyers or family for two days, before being driven to courts. &lt;/p&gt; &lt;p&gt;&#8220;We have no idea what they plan to do with him,&#8221; Alex Matute said by telephone today. &#8220;The police won&#8217;t tell us anything.&#8221; &lt;/p&gt; &lt;p&gt;A National Guard spokesman, who can&#8217;t be named because of internal policy, and Interior Ministry spokesman Marco Hernandez declined to comment, citing national-security risks. &lt;/p&gt; &lt;p&gt;Maduro has accused international outlets of bias. He took Colombian station NTN24 off the air after the protests and in a national address yesterday criticized Agence France Presse for &#8220;manipulating information.&#8221; &lt;/p&gt; &lt;h2&gt;&#8216;Massive Attack&#8217; &lt;/h2&gt; &lt;p&gt;In November, Maduro asked authorities to investigate a disappearance of 6,000 of his 1.4 million Twitter followers, calling it a &#8220;massive attack&#8221; by the &#8220;international right wing.&#8221; &lt;/p&gt; &lt;p&gt;Billy Vaisberg, who runs an online directory of Venezuelan Twitter users called TwVen.com, said he had received several reports today from people who couldn&#8217;t see images on their feeds. In a post on its Spanish-language account, @twitter_es, Twitter advised Venezuelan users to subscribe to its text-message service to get updates. &lt;/p&gt; &lt;p&gt;&#8220;We are having a media blackout,&#8221; Josefina Blanco, a freelance science journalist and social media user, said in an e-mail from Caracas. Only because of Twitter, NTN24 and radio station RCR 750, &#8220;we can know what is really going on in our streets,&#8221; she said. &lt;/p&gt; &lt;p&gt;Inflation more than doubled in Venezuela in the past year to 56.3 percent in January, according to the central bank. At the same time, the central bank&#8217;s scarcity index rose to a record 28 percent, meaning that more than one in four basic goods was out of stock at any given time. &lt;/p&gt; &lt;h2&gt;Bonds Fall &lt;/h2&gt; &lt;p&gt;Amid the threat of new social unrest, the South American country&#8217;s benchmark dollar bond due in 2027 fell 0.67 cent to 64.85 cents on the dollar, near a 30-month low. The yield on the bond rose 16 basis points to 15.53 percent, at 3:40 p.m. in New York. &lt;/p&gt; &lt;p&gt;&#8220;The opposition has made a huge progress in the past week, as a couple of student protests have reignited the movement,&#8221; David Smilde, a senior fellow at the Washington Office on Latin America, said by telephone from Caracas yesterday. &#8220;If in the coming months the economy gets substantially worse and the protests continue, Maduro will be in tough position.&#8221; &lt;/p&gt; &lt;p&gt;To contact the reporters on this story: Patricia Laya in Mexico City at playa2@bloomberg.net; Sarah Frier in San Francisco at sfrier1@bloomberg.net; Anatoly Kurmanaev in Caracas at akurmanaev1@bloomberg.net &lt;/p&gt; &lt;p&gt;To contact the editors responsible for this story: Andre Soliani at asoliani@bloomberg.net; Nick Turner at nturner7@bloomberg.net &lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 15:30:39 -0800</pubDate>
      <link>http://www.businessweek.com/news/2014-02-14/twitter-says-venezuela-blocks-its-images-amid-protest-crackdown</link>
      <guid>http://www.businessweek.com/news/2014-02-14/twitter-says-venezuela-blocks-its-images-amid-protest-crackdown</guid>
    </item>
    <item>
      <title>Sublimall</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7242017'&gt;"Sublimall"&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 14 Feb 2014 16:29:02 -0800</pubDate>
      <link>http://sublimall.org/</link>
      <guid>http://sublimall.org/</guid>
    </item>
    <item>
      <title>95% of Climate Models Agree: The Observations Must be Wrong &#171;  Roy Spencer, PhD</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7242155'&gt;"95% of Climate Models Agree: The Observations Must be Wrong &#171;  Roy Spencer, PhD"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://www.drroyspencer.com/2014/02/95-of-climate-models-agree-the-observations-must-be-wrong/'&gt;http://www.drroyspencer.com/2014/02/95-of-climate-models-agree-the-observations-must-be-wrong/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 &lt;p&gt;I&#8217;m seeing a lot of wrangling over the recent (15+ year) pause in global average warming&#8230;when did it start, is it a full pause, shouldn&#8217;t we be taking the longer view, etc.&lt;/p&gt;
&lt;p&gt;These are all interesting exercises, but they miss the most important point: &lt;em&gt;the climate models that governments base policy decisions on have failed miserably.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&#8217;ve updated our comparison of 90 climate models versus observations for global average surface temperatures through 2013, and we still see that &amp;gt;95% of the models have over-forecast the warming trend since 1979, whether we use their own surface temperature dataset (HadCRUT4), or our satellite dataset of lower tropospheric temperatures (UAH):&lt;/p&gt;
&lt;p&gt;Whether humans are the cause of 100% of the observed warming or not, the conclusion is that global warming isn&#8217;t as bad as was predicted. That should have major policy implications&#8230;assuming policy is still informed by facts more than emotions and political aspirations.&lt;/p&gt;
&lt;p&gt;And if humans are the cause of only, say, 50% of the warming (e.g. &lt;a href="http://www.drroyspencer.com/2013/11/our-new-paper-el-nino-warming-reduces-climate-sensitivity-to-1-3-deg-c/"&gt;our published paper&lt;/a&gt;), then there is even less reason to force expensive and prosperity-destroying energy policies down our throats. &lt;/p&gt;
&lt;p&gt;I am growing weary of the variety of emotional, misleading, and policy-useless statements like &#8220;most warming since the 1950s is human caused&#8221; or &#8220;97% of climate scientists agree humans are contributing to warming&#8221;, neither of which leads to the conclusion we need to substantially increase energy prices and freeze and starve more poor people to death for the greater good. &lt;/p&gt;
&lt;p&gt;Yet, that is the direction we are heading.&lt;/p&gt;
&lt;p&gt;And even if the extra energy is being stored in the deep ocean (if you have faith in long-term measured warming trends of thousandths or hundredths of a degree), I say &#8220;great!&#8221;. Because that extra heat is in the form of a tiny temperature change spread throughout an unimaginably large heat sink, which can never have an appreciable effect on future surface climate. &lt;/p&gt;
&lt;p&gt;If the deep ocean ends up averaging 4.1 deg. C, rather than 4.0 deg. C, it won&#8217;t really matter.&lt;/p&gt;
 
 
 
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 17:29:48 -0800</pubDate>
      <link>http://www.drroyspencer.com/2014/02/95-of-climate-models-agree-the-observations-must-be-wrong/</link>
      <guid>http://www.drroyspencer.com/2014/02/95-of-climate-models-agree-the-observations-must-be-wrong/</guid>
    </item>
    <item>
      <title>Why I Dropped Out Of YC | wikichen</title>
      <description>&lt;p&gt;&lt;b&gt;Comments:&lt;/b&gt; &lt;a href='http://news.ycombinator.com/item?id=7242265'&gt;"Why I Dropped Out Of YC | wikichen"&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;URL:&lt;/b&gt; &lt;a href='http://wikichen.is/writing/why-i-dropped-out-of-yc/'&gt;http://wikichen.is/writing/why-i-dropped-out-of-yc/&lt;/a&gt;&lt;/p&gt; &lt;br/&gt; &lt;div&gt;&lt;div&gt;
 &lt;p&gt;I bought my first Moleskine by sheer coincidence while shopping for craft supplies that a design course had required; I had avoided buying a notebook for the first two years at university by resourcefully (for which some might argue was born out of necessity from the lazy frugality of your average college kid) removing stacks of printer paper from the student center under a well-rehearsed, convincing ruse that I was somehow heroically fixing a &#8220;paper jam&#8221;.&lt;/p&gt;
&lt;p&gt;By my third year I was making enough money from being a resident advisor and scrapping by with a delightful hodgepodge of research jobs that I could finally renounce my thieving ways and afford some decent stationeries, one of which was a proper notebook on which I could keep notes. &lt;em&gt;I&#8217;m going to be taking actual notes in an actual notebook like a Shakespearean boss&lt;/em&gt;, I thought as I browsed the notebook section in the art supplies store. I picked the most conventional looking one from the pile: a large Moleskine Classic Notebook with a hard cover and plain, white pages. I knew not what a Moleskine was then or of its more hipster connotations (I swear) or why it cost an arm and leg for one, but I was pleased to have something I could, at long last, take notes on that&#8217;s not single sheet and A4-sized.&lt;/p&gt;
&lt;p&gt;Naturally, those notes turned out to be nothing but the wild swirling caricatures of a sleep-deprived procrastinator nodding off every few minutes as the professor droned on. But over time that first Moleskine served as an outlet for my creative self, a blank canvas I painted with my thoughts and ideas and dreams. It captured the moments of blinding clarity and paroxysms of fleeting epiphany that so often defined checkpoints of my personal growth. More importantly, the notebook embodied me at my best and dutifully provided a record from which I could reflect and study.&lt;/p&gt;
&lt;p&gt;I filled up that very same Moleskine at the end of last year, around the time when I decided to join the startup as she made the transition to the Bay Area after being accepted into Y Combinator. The fortuitous signs of a full notebook greeting a new opportunity in a new year got the best of my superstitious tendencies, so I ordered a brand-spanking new one off Amazon. In the five or so weeks since Y Combinator commenced in full swing, I haven&#8217;t written anything in the Moleskine. In fact, it&#8217;s still sitting on my shelf, wrapped in its original packaging.&lt;/p&gt;
 &lt;p&gt;Earlier this week we met with our advisor and YC partner Aaron over what seemed to be a divergence in the direction of the company and the underlying disagreement on how to best solve problems. In the hour we talked, what surfaced instead was an irreconcilable working relationship rooted in fundamental differences in personalities and misaligned expectations of roles and responsibilities. There were no hard feelings, just hard lessons learned.&lt;/p&gt;
&lt;p&gt;Maybe I signed up for the wrong thing or for the wrong reason, as well-intentioned as I was from the start. Maybe it was more about Y Combinator, the subject of numerous pages in my Moleskine, and that was wrong. Maybe in the wake of a failed startup I deluded myself into thinking great teams are predicated on great friendships, a truism that no longer holds absolute truth.&lt;/p&gt;
&lt;p&gt;It was also the acceptance that the startup would never be something I could call my own, not just in stake but in equal say, that cemented my decision to walk away. A sense of ownership can be a powerful motivator for a startup; in this case the lack thereof tore it apart. But if you asked me for the one reason why it didn&#8217;t work out, the truth is that it just wasn&#8217;t &lt;em&gt;fun&lt;/em&gt; anymore, and when you&#8217;re grinding away on an early stage venture with no pay, the enjoyment you derive from working with your partners is all you have.&lt;/p&gt;
&lt;p&gt;Egos clashed and convictions shaken, we came to the consesnsus that it&#8217;d be best if I part ways with the startup. To some extent I was relieved, freed from an incompatible environment that brought no party joy, and it hardly mattered that, to those like me who held the institution on a pedestal, this is Y Combinator we&#8217;re talking about. Aaron put it this way, &#8220;Stop thinking about YC. YC is an artificial construct, a forcing function that augments a startup&#8217;s chances to succeed. But if you can&#8217;t work together, then none of it matters. If someone tells me I can do YC but I&#8217;ll have to wear hot pants the whole time, I wouldn&#8217;t do it.&#8221; And I wholeheartedly agree with him: life&#8217;s too short to wear hot pants.&lt;/p&gt;
&lt;p&gt;It&#8217;s been a few days since my departure, and I&#8217;m as uncertain as ever regarding my next steps, largely given that I&#8217;m still digesting what I&#8217;ve learned from this experience, and partly because I&#8217;ve grown jaded and disillusioned with Silicon Valley at large. What&#8217;s certain is that I won&#8217;t be touching startups for a very long time, and I might even stay away from Hacker News for a while. If anything, when the time comes and that startup itch manifests itself again, I&#8217;ve taken to heart that it will be of my own creation, with a team I can entrust equal ownership, and on my own terms, Y Combinator or not.&lt;/p&gt;
&lt;p&gt;Taking the new Moleskine from the shelf and removing it from its plastic wrap, I turned to the first blank page and picked up my pen.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Here we go again.&lt;/em&gt;&lt;/p&gt;
 &lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 14 Feb 2014 17:52:28 -0800</pubDate>
      <link>http://wikichen.is/writing/why-i-dropped-out-of-yc/</link>
      <guid>http://wikichen.is/writing/why-i-dropped-out-of-yc/</guid>
    </item>
  </channel>
</rss>
