<?xml version="1.0" encoding="UTF-8"?>
 <rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://pinboard.in">
    <title>Pinboard (jm)</title>
    <link>https://pinboard.in/u:jm/public/</link>
    <description>recent bookmarks from jm</description>
    <items>
      <rdf:Seq>	<rdf:li rdf:resource="https://github.com/StanzaSystems/awesome-load-management"/>
	<rdf:li rdf:resource="https://github.com/resilience4j/resilience4j"/>
	<rdf:li rdf:resource="https://ploomber.io/blog/sql/"/>
	<rdf:li rdf:resource="http://www.michaelnygard.com/blog/2016/07/qa-instability-implies-production-instability/"/>
	<rdf:li rdf:resource="https://github.com/shopify/semian"/>
	<rdf:li rdf:resource="http://www.slideshare.net/nathariel/patterns-for-building-resilient-and-scalable-microservices-platform-onaws-full"/>
	<rdf:li rdf:resource="http://www.slideshare.net/ScottWlaschin/fp-patterns-buildstufflt"/>
	<rdf:li rdf:resource="http://blog.acolyer.org/2014/10/24/brownout-building-more-robust-cloud-applications/"/>
	<rdf:li rdf:resource="http://kellabyte.com/2012/05/30/clarifying-the-saga-pattern/"/>
	<rdf:li rdf:resource="http://ispyker.blogspot.ie/2014/08/a-netflixoss-sidecar-in-support-of-non.html"/>
	<rdf:li rdf:resource="http://martinfowler.com/articles/collection-pipeline/"/>
	<rdf:li rdf:resource="http://www.planetgeek.ch/wp-content/uploads/2013/06/Clean-Code-V2.2.pdf"/>
	<rdf:li rdf:resource="http://martinfowler.com/bliki/TestDouble.html"/>
	<rdf:li rdf:resource="http://highlyscalable.wordpress.com/2012/02/01/mapreduce-patterns/"/>
	<rdf:li rdf:resource="http://stackoverflow.com/questions/6559308/how-does-lmaxs-disruptor-pattern-work"/>
	<rdf:li rdf:resource="http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di.html"/>
      </rdf:Seq>
    </items>
  </channel><item rdf:about="https://github.com/StanzaSystems/awesome-load-management">
    <title>StanzaSystems/awesome-load-management</title>
    <dc:date>2023-05-18T22:19:17+00:00</dc:date>
    <link>https://github.com/StanzaSystems/awesome-load-management</link>
    <dc:creator>jm</dc:creator><description><![CDATA["A repo of links to articles, papers, conference talks, and tooling related to load management in software services: loadshedding, circuitbreaking, quota management and throttling. PRs welcome." (via Niall Murphy)]]></description>
<dc:subject>load-shedding circuit-breakers quota-management throttling papers architecture patterns via:niallm</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:250d15e46975/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:load-shedding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:circuit-breakers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:quota-management"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:throttling"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:papers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:niallm"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/resilience4j/resilience4j">
    <title>Resilience4J</title>
    <dc:date>2022-03-30T22:18:54+00:00</dc:date>
    <link>https://github.com/resilience4j/resilience4j</link>
    <dc:creator>jm</dc:creator><description><![CDATA['a lightweight fault tolerance library inspired by Netflix Hystrix, but designed for Java 8 and functional programming.'
]]></description>
<dc:subject>fp hystrix java fault-tolerance retries timeouts architecture patterns circuit-breakers</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:3c49a9299497/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hystrix"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fault-tolerance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:retries"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:timeouts"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:circuit-breakers"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://ploomber.io/blog/sql/">
    <title>Decent SQL patterns for data science pipelines</title>
    <dc:date>2022-03-08T16:31:40+00:00</dc:date>
    <link>https://ploomber.io/blog/sql/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[If you wind up using complex SQL queries run frequently to generate reports, OLAP-style, this blog post details a few good patterns worth following -- particularly the use of clean SQL using common table expressions and WITH ... AS]]></description>
<dc:subject>sql coding clean-code patterns data-science data-pipelines olap</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:59c60e02728d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clean-code"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data-science"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data-pipelines"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:olap"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.michaelnygard.com/blog/2016/07/qa-instability-implies-production-instability/">
    <title>QA Instability Implies Production Instability</title>
    <dc:date>2016-07-15T13:36:28+00:00</dc:date>
    <link>http://www.michaelnygard.com/blog/2016/07/qa-instability-implies-production-instability/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Invariably, when I see a lot of developer effort in production support I also find an unreliable QA environment. It is both unreliable in that it is frequently not available for testing, and unreliable in the sense that the system’s behavior in QA is not a good predictor of its behavior in production.</blockquote>

]]></description>
<dc:subject>qa testing architecture patterns systems production</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:0f86aee40e69/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:qa"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:systems"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:production"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/shopify/semian">
    <title>Semian</title>
    <dc:date>2015-06-23T13:17:53+00:00</dc:date>
    <link>https://github.com/shopify/semian</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Hystrix-style Circuit Breakers and Bulkheads for Ruby/Rails, from Shopify]]></description>
<dc:subject>circuit-breaker bulkhead patterns architecture microservices shopify rails ruby networking reliability fallback fail-fast</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:1110a603d906/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:circuit-breaker"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bulkhead"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:microservices"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:shopify"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rails"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ruby"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:reliability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fallback"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fail-fast"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.slideshare.net/nathariel/patterns-for-building-resilient-and-scalable-microservices-platform-onaws-full">
    <title>Patterns for building a resilient and scalable microservices platform on AWS</title>
    <dc:date>2015-05-06T14:59:03+00:00</dc:date>
    <link>http://www.slideshare.net/nathariel/patterns-for-building-resilient-and-scalable-microservices-platform-onaws-full</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Some good details from Boyan Dimitrov at Hailo, on their orchestration, deployment, provisioning infra they've built]]></description>
<dc:subject>deployment ops devops hailo microservices platform patterns slides</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:b424fcec24ec/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:deployment"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:devops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hailo"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:microservices"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:platform"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:slides"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.slideshare.net/ScottWlaschin/fp-patterns-buildstufflt">
    <title>Functional Programming Patterns (BuildStuff '14)</title>
    <dc:date>2015-01-25T09:13:41+00:00</dc:date>
    <link>http://www.slideshare.net/ScottWlaschin/fp-patterns-buildstufflt</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Good, and very accessible even for FP noobs like myself ;)]]></description>
<dc:subject>clojure fp functional patterns coding scala</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f1da1f0020cb/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clojure"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:functional"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scala"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://blog.acolyer.org/2014/10/24/brownout-building-more-robust-cloud-applications/">
    <title>Brownout: building more robust cloud applications</title>
    <dc:date>2014-10-30T13:10:33+00:00</dc:date>
    <link>http://blog.acolyer.org/2014/10/24/brownout-building-more-robust-cloud-applications/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Applications can saturate – i.e. become unable to serve users in a timely manner. Some users may experience high latencies, while others may not receive any service at all. The authors argue that it is better to downgrade the user experience and continue serving a larger number of clients with reasonable latency.

"We define a cloud application as brownout compliant if it can gradually downgrade user experience to avoid saturation."

This is actually very reminiscent of circuit breakers, as described in Nygard’s ‘Release It!’ and popularized by Netflix. If you’re already designing with circuit breakers, you’ve probably got all the pieces you need to add brownout support to your application relatively easily.

"Our work borrows from the concept of brownout in electrical grids. Brownouts are an intentional voltage drop often used to prevent blackouts through load reduction in case of emergency. In such a situation, incandescent light bulbs dim, hence originating the term."
"To lower the maintenance effort, brownouts should be automatically triggered. This enables cloud applications to rapidly and robustly avoid saturation due to unexpected environmental changes, lowering the burden on human operators."</blockquote>

This is really similar to the Circuit Breaker pattern -- in fact it feels to me like a variation on that, driven by measured latencies of operations/requests.

See also http://blog.acolyer.org/2014/10/27/improving-cloud-service-resilience-using-brownout-aware-load-balancing/ .
]]></description>
<dc:subject>circuit-breaker patterns brownout robustness reliability load latencies degradation</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:54124e536cdb/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:circuit-breaker"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:brownout"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:robustness"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:reliability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:load"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:latencies"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:degradation"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://kellabyte.com/2012/05/30/clarifying-the-saga-pattern/">
    <title>The Saga pattern</title>
    <dc:date>2014-10-01T14:01:14+00:00</dc:date>
    <link>http://kellabyte.com/2012/05/30/clarifying-the-saga-pattern/</link>
    <dc:creator>jm</dc:creator><description><![CDATA['a distribution of long-living [distributed] transactions where steps may interleave, each with associated compensating transactions providing a compensation path across databases in the occurrence of a fault that may or may not compensate the entire chain back to the originator.']]></description>
<dc:subject>distributed messaging saga patterns architecture transactions distributed-transactions distcomp</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:1e75f48db4f6/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distributed"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:messaging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:saga"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:transactions"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distributed-transactions"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distcomp"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://ispyker.blogspot.ie/2014/08/a-netflixoss-sidecar-in-support-of-non.html">
    <title>The &quot;sidecar&quot; pattern</title>
    <dc:date>2014-08-18T23:20:01+00:00</dc:date>
    <link>http://ispyker.blogspot.ie/2014/08/a-netflixoss-sidecar-in-support-of-non.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Ha, great name. We use this (in the form of Smartstack).

<blockquote>For what it is worth, we faced a similar challenge in earlier services (mostly due to existing C/C++ applications) and we created what was called a "sidecar".  By sidecar, what I mean is a second process on each node/instance that did Cloud Service Fabric operations on behalf of the main process (the side-managed process).  Unfortunately those sidecars all went off and created one-offs for their particular service.  In this post, I'll describe a more general sidecar that doesn't force users to have these one-offs.

Sidenote:  For those not familiar with sidecars, think of the motorcycle sidecar below.  Snoopy would be the main process with Woodstock being the sidecar process.  The main work on the instance would be the motorcycle (say serving your users' REST requests).  The operational control is the sidecar (say serving health checks and management plane requests of the operational platform).
</blockquote>

]]></description>
<dc:subject>netflix sidecars architecture patterns smartstack netflixoss microservices soa</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:1384a64a9720/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:netflix"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sidecars"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:smartstack"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:netflixoss"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:microservices"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:soa"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://martinfowler.com/articles/collection-pipeline/">
    <title>Collection Pipeline</title>
    <dc:date>2014-07-28T13:02:16+00:00</dc:date>
    <link>http://martinfowler.com/articles/collection-pipeline/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[a nice summarisation of the state of pipe/stream-oriented collection operations in various languages, from Martin Fowler]]></description>
<dc:subject>martin-fowler patterns coding ruby clojure streams pipelines pipes unix lambda fp java languages</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:3294217f4efc/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:martin-fowler"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ruby"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clojure"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:streams"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pipelines"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pipes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:unix"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lambda"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:languages"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.planetgeek.ch/wp-content/uploads/2013/06/Clean-Code-V2.2.pdf">
    <title>Clean Code Cheat Sheet [pdf]</title>
    <dc:date>2013-07-03T21:26:24+00:00</dc:date>
    <link>http://www.planetgeek.ch/wp-content/uploads/2013/06/Clean-Code-V2.2.pdf</link>
    <dc:creator>jm</dc:creator><description><![CDATA['principles, patterns, smells and guidelines for clean code, class and package design, TDD, Acceptance Test Driven Development, and CI']]></description>
<dc:subject>clean-code code-smells coding tdd testing continous-integration patterns pdf</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:62a5e19c36ea/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clean-code"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:code-smells"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tdd"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:continous-integration"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pdf"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://martinfowler.com/bliki/TestDouble.html">
    <title>TestDouble</title>
    <dc:date>2013-04-29T15:18:38+00:00</dc:date>
    <link>http://martinfowler.com/bliki/TestDouble.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Test Double is a generic term for any case where you replace a production object for testing purposes. There are various kinds of double that Gerard lists:

Dummy objects are passed around but never actually used. Usually they are just used to fill parameter lists.
Fake objects actually have working implementations, but usually take some shortcut which makes them not suitable for production (an InMemoryTestDatabase is a good example).
Stubs provide canned answers to calls made during the test, usually not responding at all to anything outside what's programmed in for the test.
Spies are stubs that also record some information based on how they were called. One form of this might be an email service that records how many messages it was sent.
Mocks are pre-programmed with expectations which form a specification of the calls they are expected to receive. They can throw an exception if they receive a call they don't expect and are checked during verification to ensure they got all the calls they were expecting.</blockquote>
]]></description>
<dc:subject>test-doubles naming patterns tdd testing mocking tests martin-fowler</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:8880b63c1cea/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:test-doubles"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:naming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tdd"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mocking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tests"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:martin-fowler"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://highlyscalable.wordpress.com/2012/02/01/mapreduce-patterns/">
    <title>MapReduce Patterns, Algorithms, and Use Cases</title>
    <dc:date>2012-02-16T11:56:48+00:00</dc:date>
    <link>http://highlyscalable.wordpress.com/2012/02/01/mapreduce-patterns/</link>
    <dc:creator>jm</dc:creator><description><![CDATA['I digested a number of MapReduce patterns and algorithms to give a systematic view of the different techniques that can be found in the web or scientific articles. Several practical case studies are also provided. All descriptions and code snippets use the standard Hadoop’s MapReduce model with Mappers, Reduces, Combiners, Partitioners, and sorting.']]></description>
<dc:subject>algorithms hadoop java mapreduce patterns distcomp</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:cdc3829d348a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:algorithms"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hadoop"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mapreduce"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distcomp"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://stackoverflow.com/questions/6559308/how-does-lmaxs-disruptor-pattern-work">
    <title>How does LMAX's disruptor pattern work? - Stack Overflow</title>
    <dc:date>2011-11-23T09:52:35+00:00</dc:date>
    <link>http://stackoverflow.com/questions/6559308/how-does-lmaxs-disruptor-pattern-work</link>
    <dc:creator>jm</dc:creator><description><![CDATA[LMAX's "Disruptor" concurrent-server pattern, claiming to be a higher-throughput, lower-latency, and lock-free alternative to the SEDA pattern using a massive ring buffer.  Good discussion here at SO.  (via Filippo)]]></description>
<dc:subject>via:filippo servers seda queueing concurrency disruptor patterns latency trading performance ring-buffers</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:388ee9929e15/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:filippo"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:servers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:seda"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:queueing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:concurrency"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:disruptor"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:latency"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:trading"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ring-buffers"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di.html">
    <title>Real-World Scala: Dependency Injection (DI)</title>
    <dc:date>2011-08-28T20:26:29+00:00</dc:date>
    <link>http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[I think I prefer the structural-typing approach, TBH]]></description>
<dc:subject>scala patterns programming oo coding dependency-injection</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:075c87515a54/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scala"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:patterns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:oo"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dependency-injection"/>
</rdf:Bag></taxo:topics>
</item>
</rdf:RDF>