<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>ACM Queue - All Queue Content</title>
    <link>http://queue.acm.org/Curmudgeon</link>
    <description />
    <item>
      <title>The Calculus of Service Availability</title>
      <link>http://queue.acm.org/detail.cfm?ref=rss&amp;id=3096459</link>
      <description>Most services offered by Google aim to offer 99.99 percent (sometimes referred to as the "four 9s") availability to users. Some services contractually commit to a lower figure externally but set a 99.99 percent target internally. This more stringent target accounts for situations in which users become unhappy with service performance well before a contract violation occurs, as the number one aim of an SRE team is to keep users happy. For many services, a 99.99 percent internal target represents the sweet spot that balances cost, complexity, and availability. For some services, notably global cloud services, the internal target is 99.999 percent.</description>
      <pubDate>Wed, 17 May 2017 14:45:41 GMT</pubDate>
      <guid isPermaLink="false">3096459</guid>
    </item>
    <item>
      <title>Conversations with Technology Leaders: Erik Meijer</title>
      <link>http://queue.acm.org/detail.cfm?ref=rss&amp;id=3092954</link>
      <description>Whether you are a leader, a programmer, or just someone aspiring to be better, I am sure there are some smart takeaways from our conversation that will help you grow in your role. Oh, and if you read to the end, you can find out what his favorite job interview question is - and see if you would be able to pass his test.</description>
      <pubDate>Wed, 10 May 2017 16:53:07 GMT</pubDate>
      <guid isPermaLink="false">3092954</guid>
    </item>
    <item>
      <title>The IDAR Graph</title>
      <link>http://queue.acm.org/detail.cfm?ref=rss&amp;id=3089807</link>
      <description>UML is the de facto standard for representing object-oriented designs. It does a fine job of recording designs, but it has a severe problem: its diagrams don't convey what humans need to know, making them hard to understand. This is why most software developers use UML only when forced to.&#xD;
&#xD;
People understand an organization, such as a corporation, in terms of a control hierarchy. When faced with an organization of people or objects, the first question usually is, "What's controlling all this?" Surprisingly, UML has no concept of one object controlling another. Consequently, in every type of UML diagram, no object appears to have greater or lesser control than its neighbors.&#xD;
&#xD;
These problems mean designs tend to become messy during both initial implementation and maintenance, resulting in more bugs and delays.</description>
      <pubDate>Wed, 03 May 2017 11:46:10 GMT</pubDate>
      <guid isPermaLink="false">3089807</guid>
    </item>
    <item>
      <title>The Observer Effect</title>
      <link>http://queue.acm.org/detail.cfm?ref=rss&amp;id=3084695</link>
      <description>The problem is a failure to appreciate just what you are asking a system to do when polling it for information. Modern systems contain thousands of values that can be measured and recorded. Blindly retrieving whatever it is that might be exposed by the system is bad enough, but asking for it with a high-frequency poll is much worse.</description>
      <pubDate>Tue, 25 Apr 2017 16:29:39 GMT</pubDate>
      <guid isPermaLink="false">3084695</guid>
    </item>
    <item>
      <title>Too Big NOT to Fail</title>
      <link>http://queue.acm.org/detail.cfm?ref=rss&amp;id=3077383</link>
      <description>Web-scale infrastructure implies LOTS of servers working together, often tens or hundreds of thousands of servers all working toward the same goal. How can the complexity of these environments be managed? How can commonality and simplicity be introduced?</description>
      <pubDate>Wed, 05 Apr 2017 12:09:06 GMT</pubDate>
      <guid isPermaLink="false">3077383</guid>
    </item>
    <item>
      <title>Research for Practice: Tracing and Debugging Distributed Systems; Programming by Examples</title>
      <link>http://queue.acm.org/detail.cfm?ref=rss&amp;id=3074451</link>
      <description>This installment of Research for Practice covers two exciting topics in distributed systems and programming methodology. First, Peter Alvaro takes us on a tour of recent techniques for debugging some of the largest and most complex systems in the world: modern distributed systems and service-oriented architectures. The techniques Peter surveys can shed light on order amid the chaos of distributed call graphs. Second, Sumit Gulwani illustrates how to program without explicitly writing programs, instead synthesizing programs from examples! The techniques Sumit presents allow systems to "learn" a program representation from illustrative examples, allowing nonprogrammer users to create increasingly nontrivial functions such as spreadsheet macros. Both of these selections are well in line with RfP's goal of accessible, practical research; in fact, both contributors have successfully transferred their own research in each area to production, at Netflix and as part of Microsoft Excel. Readers may also find a use case!</description>
      <pubDate>Wed, 29 Mar 2017 11:51:58 GMT</pubDate>
      <guid isPermaLink="false">3074451</guid>
    </item>
    <item>
      <title>The Debugging Mindset</title>
      <link>http://queue.acm.org/detail.cfm?ref=rss&amp;id=3068754</link>
      <description>Software developers spend 35-50 percent of their time validating and debugging software. The cost of debugging, testing, and verification is estimated to account for 50-75 percent of the total budget of software development projects, amounting to more than $100 billion annually. While tools, languages, and environments have reduced the time spent on individual debugging tasks, they have not significantly reduced the total time spent debugging, nor the cost of doing so. Therefore, a hyperfocus on elimination of bugs during development is counterproductive; programmers should instead embrace debugging as an exercise in problem solving.</description>
      <pubDate>Wed, 22 Mar 2017 13:04:14 GMT</pubDate>
      <guid isPermaLink="false">3068754</guid>
    </item>
    <item>
      <title>Forced Exception-Handling</title>
      <link>http://queue.acm.org/detail.cfm?ref=rss&amp;id=3064643</link>
      <description>Yes, KV also reads "The Morning Paper," although he has to admit that he does not read everything that arrives in his inbox from that list. Of course, the paper you mention piqued my interest, and one of the things you don't point out is that it's actually a study of distributed systems failures. Now, how can we make programming harder? I know! Let's take a problem on a single system and distribute it. Someday I would like to see a paper that tells us if problems in distributed systems increase along with the number of nodes, or the number of interconnections. Being an optimist, I can only imagine that it's N(N + 1) / 2, or worse.</description>
      <pubDate>Tue, 14 Mar 2017 16:52:52 GMT</pubDate>
      <guid isPermaLink="false">3064643</guid>
    </item>
    <item>
      <title>MongoDB's JavaScript Fuzzer</title>
      <link>http://queue.acm.org/detail.cfm?ref=rss&amp;id=3059007</link>
      <description>As MongoDB becomes more feature-rich and complex with time, the need to develop more sophisticated methods for finding bugs grows as well. Three years ago, MongDB added a home-grown JavaScript fuzzer to its toolkit, and it is now our most prolific bug-finding tool, responsible for detecting almost 200 bugs over the course of two release cycles. These bugs span a range of MongoDB components from sharding to the storage engine, with symptoms ranging from deadlocks to data inconsistency. The fuzzer runs as part of the CI (continuous integration) system, where it frequently catches bugs in newly committed code.</description>
      <pubDate>Mon, 06 Mar 2017 17:07:09 GMT</pubDate>
      <guid isPermaLink="false">3059007</guid>
    </item>
    <item>
      <title>Does Anybody Listen to You?</title>
      <link>http://queue.acm.org/detail.cfm?ref=rss&amp;id=3056769</link>
      <description>An idea on its own is not worth much. Just because you think you know a better way to do something, even if you're right, no one is required to care. Making great things happen at work is about more than just being smart. Good ideas succeed or fail depending on your ability to communicate them correctly to the people who have the power to make them happen. When you are navigating an organization, it pays to know whom to talk to and how to reach them. Here is a simple guide to sending your ideas up the chain and actually making them stick. It takes three elements: the right people, the right time, and the right way.</description>
      <pubDate>Wed, 01 Mar 2017 10:03:40 GMT</pubDate>
      <guid isPermaLink="false">3056769</guid>
    </item>
    <item>
      <title>Making Money Using Math</title>
      <link>http://queue.acm.org/detail.cfm?ref=rss&amp;id=3055303</link>
      <description>A big difference between human-written code and learned models is that the latter are usually not represented by text and hence are not understandable by human developers or manipulable by existing tools. The consequence is that none of the traditional software engineering techniques for conventional programs (such as code reviews, source control, and debugging) are applicable anymore. Since incomprehensibility is not unique to learned code, these aspects are not of concern here.</description>
      <pubDate>Wed, 22 Feb 2017 16:17:06 GMT</pubDate>
      <guid isPermaLink="false">3055303</guid>
    </item>
  </channel>
</rss>

