<?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://trysound.io/how-my-side-project-got-banned-from-the-internet/"/>
	<rdf:li rdf:resource="https://blog.cloudflare.com/introducing-pay-per-crawl/"/>
	<rdf:li rdf:resource="https://github.com/Orange-OpenSource/hurl"/>
	<rdf:li rdf:resource="https://byroot.github.io/ruby/performance/2025/03/04/the-pitchfork-story.html"/>
	<rdf:li rdf:resource="https://aws.amazon.com/about-aws/whats-new/2025/03/aws-waf-ja4-fingerprinting-aggregation-ja3-ja4-fingerprints-rate-based-rules/"/>
	<rdf:li rdf:resource="https://bessey.dev/blog/2024/05/24/why-im-over-graphql/"/>
	<rdf:li rdf:resource="https://portswigger.net/research/listen-to-the-whispers-web-timing-attacks-that-actually-work"/>
	<rdf:li rdf:resource="https://protomaps.com/"/>
	<rdf:li rdf:resource="https://karlstoney.com/2019/05/31/istio-503s-ucs-and-tcp-fun-times/"/>
	<rdf:li rdf:resource="https://www.maths.tcd.ie/~dwmalone/early-web.html?s=03"/>
	<rdf:li rdf:resource="https://dropbox.tech/frontend/investigating-the-impact-of-http3-on-network-latency-for-search"/>
	<rdf:li rdf:resource="https://datatracker.ietf.org/doc/html/draft-ietf-httpapi-idempotency-key-header-02"/>
	<rdf:li rdf:resource="https://fediverse.randomfoo.net/notice/ARAAtsSHL6jVTe4JBA"/>
	<rdf:li rdf:resource="https://www.browse.ai/"/>
	<rdf:li rdf:resource="https://aws.amazon.com/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/"/>
	<rdf:li rdf:resource="https://aws.amazon.com/builders-library/using-load-shedding-to-avoid-overload/"/>
	<rdf:li rdf:resource="https://talawah.io/blog/extreme-http-performance-tuning-one-point-two-million/"/>
	<rdf:li rdf:resource="https://www.scrapingbee.com/blog/charles-proxy/"/>
	<rdf:li rdf:resource="https://aws.amazon.com/about-aws/whats-new/2020/09/aws-crt-http-client-in-aws-sdk-for-java-2x/"/>
	<rdf:li rdf:resource="https://calendar.perfplanet.com/2019/eco-worriers-saving-the-planet-one-unoptimized-website-at-a-time/"/>
	<rdf:li rdf:resource="https://github.com/apple/servicetalk/"/>
	<rdf:li rdf:resource="https://rokt.com/engineering_blog/learnings-grpc-aws/"/>
	<rdf:li rdf:resource="https://kazu-yamamoto.hatenablog.jp/entry/2019/09/20/165939"/>
	<rdf:li rdf:resource="https://www.reddit.com/r/programming/comments/9wncor/httpoverquic_to_be_renamed_http3/"/>
	<rdf:li rdf:resource="https://wiert.me/2017/02/01/some-chromecast-urls/"/>
	<rdf:li rdf:resource="https://i.redd.it/vmkszm4oq6n11.png"/>
	<rdf:li rdf:resource="https://www.cncf.io/blog/2018/08/31/grpc-on-http-2-engineering-a-robust-high-performance-protocol/"/>
	<rdf:li rdf:resource="https://twitter.com/clare_liguori/status/1034829325306978304"/>
	<rdf:li rdf:resource="https://haydenjames.io/nginx-tuning-tips-tls-ssl-https-ttfb-latency/"/>
	<rdf:li rdf:resource="https://www.theregister.co.uk/2018/02/11/browsealoud_compromised_coinhive/"/>
	<rdf:li rdf:resource="https://blog.apnic.net/2017/12/12/internet-protocols-changing/"/>
	<rdf:li rdf:resource="https://aws.amazon.com/blogs/security/new-security-whitepaper-now-available-use-aws-waf-to-mitigate-owasps-top-10-web-application-vulnerabilities/"/>
	<rdf:li rdf:resource="https://atlas.ripe.net/about/probes/"/>
	<rdf:li rdf:resource="https://www.snellman.net/blog/archive/2016-12-01-quic-tou/"/>
	<rdf:li rdf:resource="https://restful.io/webhooks-dos-and-dont-s-what-we-learned-after-integrating-100-apis-d567405a3671#.prvn7y5dz"/>
	<rdf:li rdf:resource="https://www.prerender.cloud/lambda-latency"/>
	<rdf:li rdf:resource="https://applidium.com/en/news/unbundling_pokemon_go/"/>
	<rdf:li rdf:resource="https://www.datawire.io/3-reasons-aws-lambda-not-ready-prime-time/"/>
	<rdf:li rdf:resource="https://twitter.com/ashk4n/status/714889287133691905"/>
	<rdf:li rdf:resource="http://highscalability.com/blog/2016/3/28/how-we-implemented-the-video-player-in-mailru-cloud.html"/>
	<rdf:li rdf:resource="http://left-pad.io/"/>
	<rdf:li rdf:resource="http://neutrinoslb.github.io/"/>
	<rdf:li rdf:resource="https://github.com/go-kit/kit"/>
	<rdf:li rdf:resource="https://nchan.slact.net/"/>
	<rdf:li rdf:resource="http://www.bbc.co.uk/blogs/internet/entries/17d22fb8-cea2-49d5-be14-86e7a1dcde04"/>
	<rdf:li rdf:resource="https://samsaffron.com/archive/2015/12/29/websockets-caution-required"/>
	<rdf:li rdf:resource="https://github.com/raskasa/metrics-okhttp"/>
	<rdf:li rdf:resource="http://blog.lusis.org/blog/2015/12/09/aws-apigateway-for-fun-and-profit/"/>
	<rdf:li rdf:resource="https://blog.cloudflare.com/tools-for-debugging-testing-and-using-http-2/"/>
	<rdf:li rdf:resource="http://blog.cask.co/2015/12/introducing-netty-http-from-cask/"/>
	<rdf:li rdf:resource="https://cloud.google.com/compute/docs/load-balancing/http/"/>
	<rdf:li rdf:resource="https://github.com/eBay/fabio"/>
	<rdf:li rdf:resource="https://medium.com/@mubarak.seyed/netty-at-layer-powering-client-api-2a6ca3617d48#.91mjjdwh2"/>
	<rdf:li rdf:resource="https://labs.spotify.com/2015/10/09/designing-the-spotify-perimeter/"/>
	<rdf:li rdf:resource="https://github.com/datawire/bakerstreet"/>
	<rdf:li rdf:resource="https://github.com/mefellows/muxy"/>
	<rdf:li rdf:resource="https://github.com/EmileVauge/traefik"/>
	<rdf:li rdf:resource="http://dumpsterventures.com/jason/httpry/"/>
	<rdf:li rdf:resource="http://httpbin.org/"/>
	<rdf:li rdf:resource="https://blog.twitter.com/2015/diffy-testing-services-without-writing-tests"/>
	<rdf:li rdf:resource="https://github.com/h2non/toxy#latency"/>
	<rdf:li rdf:resource="https://gocardless.com/blog/in-search-of-performance-how-we-shaved-200ms-off-every-post-request/"/>
	<rdf:li rdf:resource="https://2ton.com.au/rwasa/"/>
	<rdf:li rdf:resource="http://square.github.io/okhttp/"/>
	<rdf:li rdf:resource="https://www.youtube.com/watch?v=MKgJeqF1DHw"/>
	<rdf:li rdf:resource="http://leonsbox.com/blog/2013/06/04/improving-testing-by-using-real-traffic-from-production/"/>
	<rdf:li rdf:resource="http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/"/>
	<rdf:li rdf:resource="https://github.com/relayrides/pushy/issues/184"/>
	<rdf:li rdf:resource="https://docs.google.com/presentation/d/1r7QXGYOLCh4fcUq0jDdDwKJWNqWK1o4xMtYpKZCJYjM/present?slide=id.g518e3c87f_0_387"/>
	<rdf:li rdf:resource="https://www.reddit.com/r/Bitcoin/comments/37oxow/the_security_issue_of_blockchaininfos_android/crolfk4"/>
      </rdf:Seq>
    </items>
  </channel><item rdf:about="https://trysound.io/how-my-side-project-got-banned-from-the-internet/">
    <title>302 HTTP redirects Considered Harmful</title>
    <dc:date>2026-02-26T09:46:28+00:00</dc:date>
    <link>https://trysound.io/how-my-side-project-got-banned-from-the-internet/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[The state of anti-phishing infrastructure nowadays is shocking.  This trivial action, combined with a relatively fresh domain, results in immediate blocklisting by Google:

<blockquote>Digging through Google forums, I found the most reported culprit: 302 temporary redirects. I used one redirect (engramma.dev → app.engramma.dev) to avoid building a landing page. In addition to a newly registered domain, this looks like an obvious issue. Security systems flag such redirects because malicious actors use them extensively.</blockquote>

It doesn't matter that "malicious actors use them extensively" if non-malicious actors do too.  That's the definition of a false positive!

Then the next shitfest is from no less than 10 separate vendors copying the listing from Google and not including an automated system to pick up the list removal afterwards.

I've had experience of this part -- and now that I think of it, it may have been from use of 302 redirects in my case too.

(via Paul Watson)]]></description>
<dc:subject>http security infosec blocklists google phishing redirects 302 false-positives fail via:paulwatson</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:79ec6c8e8842/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:security"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:infosec"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:blocklists"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:google"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:phishing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:redirects"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:302"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:false-positives"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fail"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:paulwatson"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blog.cloudflare.com/introducing-pay-per-crawl/">
    <title>Introducing pay per crawl: enabling content owners to charge AI crawlers for access</title>
    <dc:date>2025-07-02T09:12:20+00:00</dc:date>
    <link>https://blog.cloudflare.com/introducing-pay-per-crawl/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Cloudflare now looking to charge AI crawlers for content access.  This is intriguing, and I hope it works -- AI crawlers have been extremely abusive in their crawling practices.  Unfortunately I don't have high hopes, as the AI companies have already shown themselves to be happy to disguise their traffic as legit user accesses, with faked user-agent strings and use of proxies.... but let's see]]></description>
<dc:subject>cloudflare ai scraping llms http web pay-per-crawl</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:9945e21beaad/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cloudflare"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ai"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scraping"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:llms"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pay-per-crawl"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/Orange-OpenSource/hurl">
    <title>Orange-OpenSource/hurl</title>
    <dc:date>2025-06-20T09:42:49+00:00</dc:date>
    <link>https://github.com/Orange-OpenSource/hurl</link>
    <dc:creator>jm</dc:creator><description><![CDATA["Hurl; run and test HTTP requests with plain text".  This is pretty nice; a really simple plain-text file format to describe making a HTTP request or set of requests, and performing assertions on their results.  The only thing I can spot missing is builtin support for OAuth]]></description>
<dc:subject>cli rust tools unix testing linux json curl http tests</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:d9655d2dcc54/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cli"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rust"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:unix"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:json"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:curl"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tests"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://byroot.github.io/ruby/performance/2025/03/04/the-pitchfork-story.html">
    <title>Pitchfork</title>
    <dc:date>2025-03-21T10:30:41+00:00</dc:date>
    <link>https://byroot.github.io/ruby/performance/2025/03/04/the-pitchfork-story.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[An amazing journey through Ruby heap memory optimization, from one of the experts at Shopify, who are heavy users of Rails.  Using cleverly-timed fork(2) usage, it's possible to optimize memory usage in a Rails app and discard a lot of performance/heap overhead caused by lazy loading and poorly-timed in-memory caching.

This very much reminds me of optimising similar issues in Perl-land, back in the day -- and really helps me appreciate how easy the modern JVM world has it, in comparison.  There's a lot of complaints to be made about the complexity of optimising JVM garbage collection settings, but this kind of problem is malleable there without a fundamental architectural rewrite like this approach.]]></description>
<dc:subject>ruby performance optimisation optimization heap memory fork forking http services servers monolith rails gc</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:2839524a8511/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ruby"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:optimisation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:optimization"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:heap"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:memory"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fork"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:forking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:services"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:servers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:monolith"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rails"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gc"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://aws.amazon.com/about-aws/whats-new/2025/03/aws-waf-ja4-fingerprinting-aggregation-ja3-ja4-fingerprints-rate-based-rules/">
    <title>AWS WAF adds JA4 fingerprinting</title>
    <dc:date>2025-03-07T09:52:47+00:00</dc:date>
    <link>https://aws.amazon.com/about-aws/whats-new/2025/03/aws-waf-ja4-fingerprinting-aggregation-ja3-ja4-fingerprints-rate-based-rules/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[TIL:

<blockquote>A JA4 TLS client fingerprint contains a 36-character long fingerprint of the TLS Client Hello which is used to initiate a secure connection from clients. The fingerprint can be used to build a database of known good and bad actors to apply when inspecting HTTP[S] requests. These new features enhance your ability to identify and mitigate sophisticated attacks by creating more precise rules based on client behavior patterns. By leveraging both JA4 and JA3 fingerprinting capabilities, you can implement robust protection against automated threats while maintaining legitimate traffic flow to your applications.</blockquote>
]]></description>
<dc:subject>fingerprinting http https tls ja3 ja4 inspection networking firewalls waf web</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:383a5952e2e9/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fingerprinting"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:https"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tls"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ja3"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ja4"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:inspection"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:firewalls"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:waf"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://bessey.dev/blog/2024/05/24/why-im-over-graphql/">
    <title>Why, after 6 years, I’m over GraphQL</title>
    <dc:date>2024-09-05T14:53:10+00:00</dc:date>
    <link>https://bessey.dev/blog/2024/05/24/why-im-over-graphql/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Decent description of the problems with using GraphQL in a public API, vs a JSON REST approach]]></description>
<dc:subject>api graphql programming rest http apis coding rails</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:2f79b03af8f4/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:api"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:graphql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rest"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apis"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rails"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://portswigger.net/research/listen-to-the-whispers-web-timing-attacks-that-actually-work">
    <title>Listen to the whispers: web timing attacks that actually work</title>
    <dc:date>2024-08-12T22:39:45+00:00</dc:date>
    <link>https://portswigger.net/research/listen-to-the-whispers-web-timing-attacks-that-actually-work</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Impressively fiendish.  Figuring out attacks using 5ms differences in response times]]></description>
<dc:subject>timing-attacks attacks exploits web http security infosec</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c094d488c399/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:timing-attacks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:attacks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:exploits"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:security"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:infosec"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://protomaps.com/">
    <title>Protomaps</title>
    <dc:date>2023-10-24T08:38:29+00:00</dc:date>
    <link>https://protomaps.com/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[A very cool hack -- its PMTiles format allows serving map tiles using HTTP range requests, allowing the entire world to fit in a single CDN-compatible file of 107GB, but with easy incremental zooming from the javascript viewer app]]></description>
<dc:subject>cartography javascript mapping maps web http range-requests map-tiles cdn formats</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:8a246bc3183d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cartography"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mapping"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:maps"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:range-requests"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:map-tiles"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cdn"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:formats"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://karlstoney.com/2019/05/31/istio-503s-ucs-and-tcp-fun-times/">
    <title>Istio: 503's with UC's and TCP Fun Times</title>
    <dc:date>2023-07-12T13:54:04+00:00</dc:date>
    <link>https://karlstoney.com/2019/05/31/istio-503s-ucs-and-tcp-fun-times/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[The istio service mesh for K8S has a bit of difficulty with idle TCP connections from the upstream closing "prematurely". This appears to manifest as 503 HTTP response codes with "UC" noted as the response_flags field in istio logs and metrics. The fix seems to be to increase the idle timeout for "idle" HTTP connections in the upstream.]]></description>
<dc:subject>istio kubernetes k8s eks http tcp timeouts connection-pools networking</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:3e01e8a914df/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:istio"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kubernetes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:k8s"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:eks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:timeouts"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:connection-pools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.maths.tcd.ie/~dwmalone/early-web.html?s=03">
    <title>Early Irish Web Stuff</title>
    <dc:date>2023-06-19T10:43:27+00:00</dc:date>
    <link>https://www.maths.tcd.ie/~dwmalone/early-web.html?s=03</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Some history of the early Irish web, including yours truly, setting up the second server in Ireland in June 1993]]></description>
<dc:subject>history ireland 1993 iona web http www</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:577a1bb6e660/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:history"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ireland"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:1993"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:iona"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:www"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://dropbox.tech/frontend/investigating-the-impact-of-http3-on-network-latency-for-search">
    <title>Dropbox testing HTTP3</title>
    <dc:date>2023-05-22T10:02:25+00:00</dc:date>
    <link>https://dropbox.tech/frontend/investigating-the-impact-of-http3-on-network-latency-for-search</link>
    <dc:creator>jm</dc:creator><description><![CDATA["dark testing", live in production, to a separate test domain. Great way to gather some real-world data.  Latencies are appreciably better, particularly for low-quality connections]]></description>
<dc:subject>dropbox http3 http2 http protocols udp networking ip testing</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:9d832e568456/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dropbox"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http3"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:protocols"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:udp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ip"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://datatracker.ietf.org/doc/html/draft-ietf-httpapi-idempotency-key-header-02">
    <title>draft-ietf-httpapi-idempotency-key-header-02</title>
    <dc:date>2023-03-28T08:45:07+00:00</dc:date>
    <link>https://datatracker.ietf.org/doc/html/draft-ietf-httpapi-idempotency-key-header-02</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Adding an "Idempotency-Key:" header to HTTP to control idempotent operation on REST APIs. (via Tomasz Nurkiewicz)]]></description>
<dc:subject>via:nurkiewicz idempotency http standards ietf rest apis</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f19faee78889/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:nurkiewicz"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:idempotency"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:standards"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ietf"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rest"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apis"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://fediverse.randomfoo.net/notice/ARAAtsSHL6jVTe4JBA">
    <title>Caddy</title>
    <dc:date>2023-01-04T11:42:53+00:00</dc:date>
    <link>https://fediverse.randomfoo.net/notice/ARAAtsSHL6jVTe4JBA</link>
    <dc:creator>jm</dc:creator><description><![CDATA[lhl likes Caddy:

<blockquote>Caddy https://caddyserver.com/ came up in conversation earlier today. It's been my favorite reverse proxy/web server for the past few years because of how simple it is to setup and for it's automagic LetsEncrypt setup. (This post is actually being pushed through Caddy on my fediverse server, and was basically the easiest part of the setup). For those interested, it performs pretty competitively with nginx: https://blog.tjll.net/reverse-proxy-hot-dog-eating-contest-caddy-vs-nginx/ but IMO the main selling point (why I first installed it) was the automagic HTTPS setup: https://caddyserver.com/docs/automatic-https</blockquote>

]]></description>
<dc:subject>caddy reverse-proxies ops http https lets-encrypt servers</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:dbcc32a62424/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:caddy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:reverse-proxies"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:https"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lets-encrypt"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:servers"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.browse.ai/">
    <title>Browse.ai</title>
    <dc:date>2022-08-10T17:07:19+00:00</dc:date>
    <link>https://www.browse.ai/</link>
    <dc:creator>jm</dc:creator><description><![CDATA["Scrape and Monitor Data from Any Website with No Code" -- looks like an interesting approach to web scraping, with a free plan]]></description>
<dc:subject>scraping web monitoring http</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:d287c7100183/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scraping"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:monitoring"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://aws.amazon.com/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/">
    <title>AWS Lambda Function URLs</title>
    <dc:date>2022-04-08T10:46:45+00:00</dc:date>
    <link>https://aws.amazon.com/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/</link>
    <dc:creator>jm</dc:creator><description><![CDATA["Built-in HTTPS Endpoints for Single-Function Microservices". _Finally_ -- this should have been part of Lambda right from the start]]></description>
<dc:subject>aws http lambda serverless microservices web-services</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:373bac9edd30/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:aws"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lambda"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:serverless"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:microservices"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web-services"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://aws.amazon.com/builders-library/using-load-shedding-to-avoid-overload/">
    <title>Using load shedding to avoid overload</title>
    <dc:date>2021-10-12T12:10:25+00:00</dc:date>
    <link>https://aws.amazon.com/builders-library/using-load-shedding-to-avoid-overload/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[decent writeup from Lambda's David Yanacek]]></description>
<dc:subject>error-handling distributed-systems http aws services soa david-yanacek load load-shedding uptime reliability</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c8ea792bb37a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:error-handling"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distributed-systems"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:aws"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:services"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:soa"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:david-yanacek"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:load"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:load-shedding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:uptime"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:reliability"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://talawah.io/blog/extreme-http-performance-tuning-one-point-two-million/">
    <title>Extreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 Instance | talawah.io</title>
    <dc:date>2021-05-21T08:54:01+00:00</dc:date>
    <link>https://talawah.io/blog/extreme-http-performance-tuning-one-point-two-million/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This is very cool. Updating the old "C10K" problem space to C1.2M -- the current state of Linux userspace networking -- using libreactor and a whole load of up-to-date tweaks.

Interesting to note that this scale is feasible to run in Docker (using --network=host, of course).
]]></description>
<dc:subject>http servers c10k linux performance scalability ops tuning libreactor networking tcp</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:022774113a4b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:servers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:c10k"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scalability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tuning"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:libreactor"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.scrapingbee.com/blog/charles-proxy/">
    <title>Charles proxy for web scraping</title>
    <dc:date>2020-11-13T18:09:17+00:00</dc:date>
    <link>https://www.scrapingbee.com/blog/charles-proxy/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[wow, Charles is nifty. must give it a go next time I'm scraping something]]></description>
<dc:subject>scraping mitm charles web http proxies web-scraping automation</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:7a89e2e70395/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scraping"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mitm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:charles"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:proxies"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web-scraping"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:automation"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://aws.amazon.com/about-aws/whats-new/2020/09/aws-crt-http-client-in-aws-sdk-for-java-2x/">
    <title>AWS CRT HTTP Client in the AWS SDK for Java 2.x</title>
    <dc:date>2020-09-30T21:12:21+00:00</dc:date>
    <link>https://aws.amazon.com/about-aws/whats-new/2020/09/aws-crt-http-client-in-aws-sdk-for-java-2x/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Interesting -- a new, high-performance, high-concurrency HTTP/1.1 client library in the AWS SDK, outperforming other Java HTTP client libs]]></description>
<dc:subject>java libraries aws http http-1.1 clients</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:21056a150feb/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:libraries"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:aws"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http-1.1"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clients"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://calendar.perfplanet.com/2019/eco-worriers-saving-the-planet-one-unoptimized-website-at-a-time/">
    <title>Eco Worriers: Saving the Planet, One Unoptimized Website at a Time</title>
    <dc:date>2019-12-19T11:52:12+00:00</dc:date>
    <link>https://calendar.perfplanet.com/2019/eco-worriers-saving-the-planet-one-unoptimized-website-at-a-time/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Web sustainability performance checking]]></description>
<dc:subject>sustainability green web http optimization performance ad-blocking gwf</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:1247cc866bc4/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sustainability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:green"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:optimization"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ad-blocking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gwf"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/apple/servicetalk/">
    <title>ServiceTalk</title>
    <dc:date>2019-11-06T14:00:14+00:00</dc:date>
    <link>https://github.com/apple/servicetalk/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>a JVM network application framework with APIs tailored to specific protocols (e.g. HTTP/1.x, HTTP/2.x, etc…​) and supports multiple programming paradigms.
It is built on Netty and is designed to provide most of the performance/scalability benefits of Netty for common networking protocols used in service to service communication. ServiceTalk provides server support and "smart client" like features such as client-side load balancing and service discovery integration.</blockquote>

Open source from Apple.]]></description>
<dc:subject>apple servicetalk netty libraries java jvm coding http async</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:d97f22fd741a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apple"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:servicetalk"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:netty"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:libraries"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jvm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:async"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://rokt.com/engineering_blog/learnings-grpc-aws/">
    <title>Rokt.com's bad experiences with gRPC on AWS</title>
    <dc:date>2019-10-03T09:40:20+00:00</dc:date>
    <link>https://rokt.com/engineering_blog/learnings-grpc-aws/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Ugh.  Sounds like AWS load balancers' HTTP/2 support is pretty immature, and this screws up gRPC:

<blockquote>With ALB, a client sends request to the ALB via HTTP/1.1 and then the ALB forwards the request to the backend targets to distribute the load. Unfortunately, with gRPC, it was not as simple because gRPC uses HTTP/2. The AWS ALB only supports HTTP/2 from client to ALB. The ALB then downgrades the request to HTTP/1.1 before forwarding it through to the backend target. Additionally, AWS ALB lacks support for HTTP trailers. Full support for HTTP/2 and trailers is required for gRPC to function. This left us with two options: spin up our own HTTP/2 compliant load balancer (e.g. Envoy, Nginx), or, use one of AWS’s lower-level, L4 Load Balancers such as the Elastic Load Balancer, ELB, or the newer Network Load Balancer, NLB.</blockquote>

Thereafter follows a parade of issues with NLB.  All pretty sucky.
]]></description>
<dc:subject>grpc aws alb elb nlb http2 http protocols networking</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:eea1b9e098c6/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:grpc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:aws"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:alb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:elb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nlb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:protocols"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://kazu-yamamoto.hatenablog.jp/entry/2019/09/20/165939">
    <title>Implementing graceful-close in Haskell network library</title>
    <dc:date>2019-09-27T10:19:20+00:00</dc:date>
    <link>https://kazu-yamamoto.hatenablog.jp/entry/2019/09/20/165939</link>
    <dc:creator>jm</dc:creator><description><![CDATA[One of the nice bits about HTTP 1.0 and 1.1 was the strong connection direction semantics, avoiding the classic TCP deadlock scenarios seen in bidirectional protocols.  But now HTTP/2 supports bidirectionality, so HTTP/2 servers need to be more careful about how they close connections, as this blog post describes -- tl;dr: shutdown(SHUT_WR) .
]]></description>
<dc:subject>http networking protocols http2 bidirectional-protocols tcp ip</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:9fc9cf60d72b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:protocols"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bidirectional-protocols"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ip"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.reddit.com/r/programming/comments/9wncor/httpoverquic_to_be_renamed_http3/">
    <title>HTTP-over-QUIC to be renamed HTTP/3</title>
    <dc:date>2018-11-14T11:27:31+00:00</dc:date>
    <link>https://www.reddit.com/r/programming/comments/9wncor/httpoverquic_to_be_renamed_http3/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Decent newsy comment thread about HTTP/3, QUIC, and how the modern internet treats IP protocols]]></description>
<dc:subject>ip protocols http http3 quic networking internet newsy</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:0194d098183b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ip"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:protocols"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http3"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:quic"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:internet"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:newsy"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://wiert.me/2017/02/01/some-chromecast-urls/">
    <title>ChromeCast HTTP APIs</title>
    <dc:date>2018-10-30T12:36:08+00:00</dc:date>
    <link>https://wiert.me/2017/02/01/some-chromecast-urls/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[similar to the Google Home hackable APIs, it seems Chromecasts are easily hacked/scripted with no auth]]></description>
<dc:subject>auth http apis security chromecast google</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:84eea9f7ec0c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:auth"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apis"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:security"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:chromecast"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:google"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://i.redd.it/vmkszm4oq6n11.png">
    <title>Peter Flynn caused the first 404</title>
    <dc:date>2018-09-20T10:14:03+00:00</dc:date>
    <link>https://i.redd.it/vmkszm4oq6n11.png</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Now that's a great bit of web trivia :)  "[UCC's] first webmaster was the first person to ever break a link on the web, when he moved the location of a webpage on UCC's servers without telling TimBL.  Such a change resulted in the need to error-handle such an occurrence, and the 404 was born"]]></description>
<dc:subject>404 history http web peter-flynn ucc irish-web trivia</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:627af8520db0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:404"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:history"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:peter-flynn"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ucc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:irish-web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:trivia"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.cncf.io/blog/2018/08/31/grpc-on-http-2-engineering-a-robust-high-performance-protocol/">
    <title>gRPC On HTTP/2: Engineering A Robust, High Performance Protocol</title>
    <dc:date>2018-09-06T15:57:30+00:00</dc:date>
    <link>https://www.cncf.io/blog/2018/08/31/grpc-on-http-2-engineering-a-robust-high-performance-protocol/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Decent writeup on how gRPC uses HTTP/2 efficiently]]></description>
<dc:subject>http2 grpc rpc networking http tcp protocols</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:0c050c1f8551/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:grpc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rpc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:protocols"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://twitter.com/clare_liguori/status/1034829325306978304">
    <title>How network clients need to participate in fault tolerance</title>
    <dc:date>2018-08-29T22:22:30+00:00</dc:date>
    <link>https://twitter.com/clare_liguori/status/1034829325306978304</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Top tips on best practices here:

<blockquote>Colm's thread on shuffle sharding reminded me of how important it is that clients participate in fault tolerance, and how frustrated I get when a client library *doesn't* do this by default in my application. Let's talk about some best practices!</blockquote>

Bottom line: use Hystrix :)]]></description>
<dc:subject>retries fault-tolerance networking tcp http exponential-backoff ip</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:6dfb8a6e0dc7/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:retries"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fault-tolerance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:exponential-backoff"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ip"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://haydenjames.io/nginx-tuning-tips-tls-ssl-https-ttfb-latency/">
    <title>Nginx tuning tips: TLS/SSL HTTPS – Improved TTFB/latency</title>
    <dc:date>2018-07-05T09:45:02+00:00</dc:date>
    <link>https://haydenjames.io/nginx-tuning-tips-tls-ssl-https-ttfb-latency/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Must do these soon on jmason.org / taint.org et al.]]></description>
<dc:subject>nginx http https http2 ops tls security linux</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:2be4d6918037/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nginx"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:https"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tls"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:security"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.theregister.co.uk/2018/02/11/browsealoud_compromised_coinhive/">
    <title>Thousands of websites hijacked by hidden crypto-mining code after Browsealoud hacked</title>
    <dc:date>2018-02-12T11:12:05+00:00</dc:date>
    <link>https://www.theregister.co.uk/2018/02/11/browsealoud_compromised_coinhive/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>The affected sites all use a fairly popular plugin called Browsealoud, made by Brit biz Texthelp, which reads out webpages for blind or partially sighted people.

This technology was compromised in some way – either by hackers or rogue insiders altering Browsealoud's source code – to silently inject Coinhive's Monero miner into every webpage offering Browsealoud.

For several hours today, anyone who visited a site that embedded Browsealoud inadvertently ran this hidden mining code on their computer, generating money for the miscreants behind the caper.

A list of 4,200-plus affected websites can be found here: they include The City University of New York (cuny.edu), Uncle Sam's court information portal (uscourts.gov), Lund University (lu.se), the UK's Student Loans Company (slc.co.uk), privacy watchdog The Information Commissioner's Office (ico.org.uk) and the Financial Ombudsman Service (financial-ombudsman.org.uk), plus a shedload of other .gov.uk and .gov.au sites, UK NHS services, and other organizations across the globe.

Manchester.gov.uk, NHSinform.scot, agriculture.gov.ie, Croydon.gov.uk, ouh.nhs.uk, legislation.qld.gov.au, the list goes on.</blockquote>

]]></description>
<dc:subject>browsealoud accessibility http sri coinhive monero hacks ico nhs</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f1190da245af/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:browsealoud"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:accessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sri"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coinhive"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:monero"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hacks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ico"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nhs"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blog.apnic.net/2017/12/12/internet-protocols-changing/">
    <title>Internet protocols are changing</title>
    <dc:date>2017-12-12T15:38:19+00:00</dc:date>
    <link>https://blog.apnic.net/2017/12/12/internet-protocols-changing/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[per @mnot. HTTP/2; TLS 1.3; QUIC and UDP; and DOH (DNS over HTTP!)]]></description>
<dc:subject>crypto encryption http https protocols http2 tls quic udp tcp dns tunnelling</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:e5b0d96c4229/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:crypto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:encryption"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:https"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:protocols"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tls"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:quic"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:udp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tunnelling"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://aws.amazon.com/blogs/security/new-security-whitepaper-now-available-use-aws-waf-to-mitigate-owasps-top-10-web-application-vulnerabilities/">
    <title>Use AWS WAF to Mitigate OWASP’s Top 10 Web Application Vulnerabilities</title>
    <dc:date>2017-07-06T14:43:39+00:00</dc:date>
    <link>https://aws.amazon.com/blogs/security/new-security-whitepaper-now-available-use-aws-waf-to-mitigate-owasps-top-10-web-application-vulnerabilities/</link>
    <dc:creator>jm</dc:creator><description><![CDATA['describes how you can use AWS WAF, a web application firewall, to address the top application security flaws as named by the Open Web Application Security Project (OWASP). Using AWS WAF, you can write rules to match patterns of exploitation attempts in HTTP requests and block requests from reaching your web servers. This whitepaper discusses manifestations of these security vulnerabilities, AWS WAF–based mitigation strategies, and other AWS services or solutions that can help address these threats.']]></description>
<dc:subject>security waf aws http owasp filtering</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:91ec197fb992/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:security"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:waf"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:aws"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:owasp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:filtering"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://atlas.ripe.net/about/probes/">
    <title>RIPE Atlas Probes</title>
    <dc:date>2017-06-27T09:02:10+00:00</dc:date>
    <link>https://atlas.ripe.net/about/probes/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Interesting! We discussed similar ideas in $prevjob, good to see one hitting production globally.

<blockquote>RIPE Atlas probes form the backbone of the RIPE Atlas infrastructure. Volunteers all over the world host these small hardware devices that actively measure Internet connectivity through ping, traceroute, DNS, SSL/TLS, NTP and HTTP measurements. This data is collected and aggregated by the RIPE NCC, which makes the data publicly available. Network operators, engineers, researchers and even home users have used this data for a wide range of purposes, from investigating network outages to DNS anycasting to testing IPv6 connectivity.

Anyone can apply to host a RIPE Atlas probe. If your application is successful (based on your location), we will ship you a probe free of charge. Hosts simply need to plug their probe into their home (or other) network.

Probes are USB-powered and are connected to an Ethernet port on the host’s router or switch. They then automatically and continuously perform active measurements about the Internet’s connectivity, and this data is sent to the RIPE NCC, where it is aggregated and made publicly available. We also use this data to create several Internet maps and data visualisations. [....]

The hardware of the first and second generation probes is a Lantronix XPort Pro module with custom powering and housing built around it. The third generation probe is a modified TP-Link wireless router (model TL-MR 3020) with a small USB thumb drive in it, but this probe does not support WiFi. </blockquote>

(via irldexter)
]]></description>
<dc:subject>via:irldexter ripe ncc probing active-monitoring networking ping traceroute dns testing http ipv6 anycast hardware devices isps</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:6ba98239256a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:irldexter"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ripe"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ncc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:probing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:active-monitoring"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ping"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:traceroute"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ipv6"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:anycast"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hardware"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:devices"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:isps"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.snellman.net/blog/archive/2016-12-01-quic-tou/">
    <title>The hidden cost of QUIC and TOU</title>
    <dc:date>2016-12-15T10:54:31+00:00</dc:date>
    <link>https://www.snellman.net/blog/archive/2016-12-01-quic-tou/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>The recent movement to get all traffic encrypted has of course been great for the Internet. But the use of encryption in these protocols is different than in TLS. In TLS, the goal was to ensure the privacy and integrity of the payload. It's almost axiomatic that third parties should not be able to read or modify the web page you're loading over HTTPS. QUIC and TOU go further. They encrypt the control information, not just the payload. This provides no meaningful privacy or security benefits.

Instead the apparent goal is to break the back of middleboxes [0]. The idea is that TCP can't evolve due to middleboxes and is pretty much fully ossified. They interfere with connections in all kinds of ways, like stripping away unknown TCP options or dropping packets with unknown TCP options or with specific rare TCP flags set. The possibilities for breakage are endless, and any protocol extensions have to jump through a lot of hoops to try to minimize the damage.</blockquote>

]]></description>
<dc:subject>quic tou protocols http tls security internet crypto privacy firewalls debugging operability</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:5949cd1005cf/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:quic"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tou"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:protocols"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tls"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:security"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:internet"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:crypto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:privacy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:firewalls"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:operability"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://restful.io/webhooks-dos-and-dont-s-what-we-learned-after-integrating-100-apis-d567405a3671#.prvn7y5dz">
    <title>Webhooks do’s and dont’s: what we learned after integrating +100 APIs</title>
    <dc:date>2016-11-22T21:41:16+00:00</dc:date>
    <link>https://restful.io/webhooks-dos-and-dont-s-what-we-learned-after-integrating-100-apis-d567405a3671#.prvn7y5dz</link>
    <dc:creator>jm</dc:creator><description><![CDATA[interesting tips]]></description>
<dc:subject>webhooks api http https architecture</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:a374312dc876/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:webhooks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:api"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:https"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.prerender.cloud/lambda-latency">
    <title>AWS latency comparison: API Gateway vs Lambda vs Bare EC2</title>
    <dc:date>2016-10-12T11:04:22+00:00</dc:date>
    <link>https://www.prerender.cloud/lambda-latency</link>
    <dc:creator>jm</dc:creator><description><![CDATA[ugh, 213ms mean response overhead]]></description>
<dc:subject>aws latency lambda api-gateway architecture http</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:afa22c5b2f10/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:aws"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:latency"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lambda"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:api-gateway"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://applidium.com/en/news/unbundling_pokemon_go/">
    <title>Unbundling Pokémon Go</title>
    <dc:date>2016-07-18T12:35:00+00:00</dc:date>
    <link>https://applidium.com/en/news/unbundling_pokemon_go/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[tl;dr: on Android, it's a Unity app, talking HTTPS to the backend, using protobuf over HTTP.  Interesting notes about the use of certificate pinning and how they should be doing that]]></description>
<dc:subject>https http protobuf pokemon-go pokemon apps android reversing</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:a692da736fc5/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:https"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:protobuf"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pokemon-go"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pokemon"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apps"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:android"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:reversing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.datawire.io/3-reasons-aws-lambda-not-ready-prime-time/">
    <title>3 Reasons AWS Lambda Is Not Ready for Prime Time</title>
    <dc:date>2016-05-23T13:03:53+00:00</dc:date>
    <link>https://www.datawire.io/3-reasons-aws-lambda-not-ready-prime-time/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This totally matches my own preconceptions ;)

<blockquote>When we at Datawire tried to actually use Lambda for a real-world HTTP-based microservice [...], we found some uncool things that make Lambda not yet ready for the world we live in:

Lambda is a building block, not a tool;
Lambda is not well documented;
Lambda is terrible at error handling

Lung skips these uncool things, which makes sense because they’d make the tutorial collapse under its own weight, but you can’t skip them if you want to work in the real world. (Note that if you’re using Lambda for event handling within the AWS world, your life will be easier. But the really interesting case in the microservice world is Lambda and HTTP.)
</blockquote>

]]></description>
<dc:subject>aws lambda microservices datawire http api-gateway apis https python ops</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:43995416c92c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:aws"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lambda"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:microservices"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:datawire"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:api-gateway"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apis"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:https"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:python"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://twitter.com/ashk4n/status/714889287133691905">
    <title>CNBC &quot;How Secure Is Your Password&quot; tester form is a spectacular security shitshow</title>
    <dc:date>2016-03-31T09:26:40+00:00</dc:date>
    <link>https://twitter.com/ashk4n/status/714889287133691905</link>
    <dc:creator>jm</dc:creator><description><![CDATA[It not only runs over HTTP, it also sends your password to a bunch of third-party ad trackers. omgwtfbbqfail]]></description>
<dc:subject>fail wtf funny cnbc clowns inept security passwords http ad-trackers</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:d206693725df/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fail"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:wtf"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:funny"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cnbc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clowns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:inept"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:security"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:passwords"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ad-trackers"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://highscalability.com/blog/2016/3/28/how-we-implemented-the-video-player-in-mailru-cloud.html">
    <title>How we implemented the video player in Mail.Ru Cloud</title>
    <dc:date>2016-03-29T11:57:32+00:00</dc:date>
    <link>http://highscalability.com/blog/2016/3/28/how-we-implemented-the-video-player-in-mailru-cloud.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>We’ve recently added video streaming service to Mail.Ru Cloud. Development started with contemplating the new feature as an all-purpose “Swiss Army knife” that would both play files of any format and work on any device with the Cloud available. Video content uploaded to the Cloud mostly falls into one of the two categories: “movies/series” and “users’ videos”. The latter are the videos that users shoot with their phones and cameras, and these videos are most versatile in terms of formats and codecs. For many reasons, it is often a problem to watch these videos on other end-user devices without prior normalization: a required codec is missing, or the file size is too big to download, or whatever.</blockquote>

Mainly around using HLS (HTTP Live Streaming).]]></description>
<dc:subject>hls http streaming video audio mail.ru players codecs</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:b423519ef754/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hls"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:streaming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:video"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:audio"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mail.ru"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:players"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:codecs"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://left-pad.io/">
    <title>left-pad.io</title>
    <dc:date>2016-03-24T12:07:15+00:00</dc:date>
    <link>http://left-pad.io/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>A microservice saviour appears!
In order to prevent such a terrible tragedy from occurring ever again during
our lifetimes, `left-pad.io` has been created to provide all the functionality
of `left-pad` AND the overhead of a TLS handshake and an HTTP request.
Less code is better code, leave the heavy lifting to `left-pad.io`, The String
Experts™.</blockquote>

]]></description>
<dc:subject>humor javascript jokes npm packages left-pad strings microservices http</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:63260b4afafc/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:humor"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jokes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:npm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:packages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:left-pad"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:strings"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:microservices"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://neutrinoslb.github.io/">
    <title>Neutrino Software Load Balancer</title>
    <dc:date>2016-02-18T14:49:52+00:00</dc:date>
    <link>http://neutrinoslb.github.io/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[eBay's software LB, supporting URL matching, comparable to haproxy, built using Netty and Scala.  Used in their QA infrastructure it seems]]></description>
<dc:subject>netty scala ebay load-balancing load-balancers url http architecture</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:793be14e0ab4/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:netty"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scala"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ebay"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:load-balancing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:load-balancers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:url"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/go-kit/kit">
    <title>go-kit</title>
    <dc:date>2016-01-28T11:37:51+00:00</dc:date>
    <link>https://github.com/go-kit/kit</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Dropwizard for Go, basically:

<blockquote>a distributed programming toolkit for building microservices in large organizations. We solve common problems in distributed systems, so you can focus on your business logic.</blockquote>

]]></description>
<dc:subject>microservices go golang http libraries open-source rpc circuit-breakers</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c50f30c84808/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:microservices"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:go"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:golang"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:libraries"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:open-source"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rpc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:circuit-breakers"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://nchan.slact.net/">
    <title>Nchan</title>
    <dc:date>2016-01-12T09:58:54+00:00</dc:date>
    <link>https://nchan.slact.net/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Nchan is a scalable, flexible pub/sub server for the modern web, built as a module for the Nginx web server. It can be configured as a standalone server, or as a shim between your application and tens, thousands, or millions of live subscribers. It can buffer messages in memory, on-disk, or via Redis. All connections are handled asynchronously and distributed among any number of worker processes. It can also scale to many nginx server instances with Redis.  Messages are published to channels with HTTP POST requests or websockets, and subscribed also through websockets, long-polling, EventSource (SSE), old-fashioned interval polling, and more. Each subscriber can listen to up to 255 channels per connection, and can be optionally authenticated via a custom application url. An events meta channel is also available for debugging.</blockquote>

Also now supports HTTP/2.  This used to be called the Nginx HTTP Push Module, and I used it with great results in that form.  This is the way to do HTTP push in all its forms....]]></description>
<dc:subject>nginx pubsub websockets sse http http-push http2 redis long-polling nchan</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:07bf4fd5598d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nginx"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pubsub"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:websockets"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sse"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http-push"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:redis"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:long-polling"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nchan"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.bbc.co.uk/blogs/internet/entries/17d22fb8-cea2-49d5-be14-86e7a1dcde04">
    <title>BBC Digital Media Distribution: How we improved throughput by 4x</title>
    <dc:date>2016-01-04T10:39:51+00:00</dc:date>
    <link>http://www.bbc.co.uk/blogs/internet/entries/17d22fb8-cea2-49d5-be14-86e7a1dcde04</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Replacing varnish with nginx. Nice deep-dive blog post covering kernel innards

]]></description>
<dc:subject>nginx performance varnish web http bbc ops</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:dafcd34b6194/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nginx"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:varnish"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bbc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://samsaffron.com/archive/2015/12/29/websockets-caution-required">
    <title>WebSockets, caution required!</title>
    <dc:date>2016-01-03T10:20:18+00:00</dc:date>
    <link>https://samsaffron.com/archive/2015/12/29/websockets-caution-required</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This, so much. 

<blockquote>There are very valid technical reasons many of the biggest sites on the Internet have not adopted them. Twitter use HTTP/2 + polling, Facebook and Gmail use Long Polling. Saying WebSockets are the only way and the way of the future, is wrongheaded. HTTP/2 may end up winning this battle due to the huge amount of WebSocket connections web browsers allow, and HTTP/3 may unify the protocols</blockquote>

]]></description>
<dc:subject>http realtime websockets long-polling http2 protocols transport web internet</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c7af3e72be13/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:realtime"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:websockets"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:long-polling"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:protocols"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:transport"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:internet"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/raskasa/metrics-okhttp">
    <title>raskasa/metrics-okhttp</title>
    <dc:date>2015-12-31T10:27:43+00:00</dc:date>
    <link>https://github.com/raskasa/metrics-okhttp</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Metrics integration for OkHttp. looks quite nice]]></description>
<dc:subject>okhttp java clients http metrics dropwizard</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:5576ec805c35/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:okhttp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clients"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:metrics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dropwizard"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://blog.lusis.org/blog/2015/12/09/aws-apigateway-for-fun-and-profit/">
    <title>AWS Api Gateway for Fun and Profit</title>
    <dc:date>2015-12-10T14:10:02+00:00</dc:date>
    <link>http://blog.lusis.org/blog/2015/12/09/aws-apigateway-for-fun-and-profit/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[good worked-through example of an API Gateway rewriting system]]></description>
<dc:subject>api-gateway aws api http services ops alerting alarming opsgenie signalfx</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:a5bbeed7fb8b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:api-gateway"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:aws"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:api"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:services"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:alerting"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:alarming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:opsgenie"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:signalfx"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blog.cloudflare.com/tools-for-debugging-testing-and-using-http-2/">
    <title>Tools for debugging, testing and using HTTP/2</title>
    <dc:date>2015-12-10T14:06:56+00:00</dc:date>
    <link>https://blog.cloudflare.com/tools-for-debugging-testing-and-using-http-2/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[excellent, extensive list from Cloudflare]]></description>
<dc:subject>http http2 cloudflare tools cli ops testing debugging spdy</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:84b19c9ed138/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cloudflare"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cli"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:spdy"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://blog.cask.co/2015/12/introducing-netty-http-from-cask/">
    <title>Introducing Netty-HTTP from Cask</title>
    <dc:date>2015-12-03T12:52:22+00:00</dc:date>
    <link>http://blog.cask.co/2015/12/introducing-netty-http-from-cask/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>netty-http library solves [Netty usability issues] by using JAX-RS annotations to build a HTTP path routing layer on top of netty. In addition, the library implements a guava service to manage the HTTP service. netty-http allows users of the library to just focus on writing the business logic in HTTP handlers without having to worry about the complexities of path routing or learning netty pipeline internals to build the HTTP service.</blockquote>

We've written something very similar, although I didn't even bother supporting JAX-RS annotations -- just a simple code-level DSL.]]></description>
<dc:subject>jax-rs netty http cask java services coding</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c5c91942c05c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jax-rs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:netty"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cask"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:services"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://cloud.google.com/compute/docs/load-balancing/http/">
    <title>Google Cloud Platform HTTP/HTTPS Load Balancing</title>
    <dc:date>2015-10-30T10:37:45+00:00</dc:date>
    <link>https://cloud.google.com/compute/docs/load-balancing/http/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[GCE's LB product is pretty nice -- HTTP/2 support, and a built-in URL mapping feature (presumably based on how Google approach that problem internally, I understand they take that approach).  I'm hoping AWS are taking notes for the next generation of ELB, if that ever happens]]></description>
<dc:subject>elb gce google load-balancing http https spdy http2 urls request-routing ops architecture cloud</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:efdd9b76cd70/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:elb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gce"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:google"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:load-balancing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:https"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:spdy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:urls"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:request-routing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cloud"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/eBay/fabio">
    <title>fabio</title>
    <dc:date>2015-10-23T13:12:10+00:00</dc:date>
    <link>https://github.com/eBay/fabio</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>fast, modern, zero-conf load balancing HTTP(S) router managed by consul; serves 15k reqs/sec, in Go, from eBay</blockquote>

]]></description>
<dc:subject>load-balancing consul http https routing ebay go open-source fabio</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:daa2e3ecac5d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:load-balancing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:consul"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:https"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:routing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ebay"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:go"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:open-source"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fabio"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://medium.com/@mubarak.seyed/netty-at-layer-powering-client-api-2a6ca3617d48#.91mjjdwh2">
    <title>How Netty is used at Layer</title>
    <dc:date>2015-10-22T08:26:14+00:00</dc:date>
    <link>https://medium.com/@mubarak.seyed/netty-at-layer-powering-client-api-2a6ca3617d48#.91mjjdwh2</link>
    <dc:creator>jm</dc:creator><description><![CDATA[pretty conventional HTTP/1.1, WebSockets and HTTP/2 front-end services with modern Netty practices]]></description>
<dc:subject>netty http api-services coding java servers</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:2a9e57061ee5/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:netty"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:api-services"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:servers"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://labs.spotify.com/2015/10/09/designing-the-spotify-perimeter/">
    <title>Designing the Spotify perimeter</title>
    <dc:date>2015-10-14T16:32:39+00:00</dc:date>
    <link>https://labs.spotify.com/2015/10/09/designing-the-spotify-perimeter/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[How Spotify use nginx as a frontline for their sites and services]]></description>
<dc:subject>scaling spotify nginx ops architecture ssl tls http frontline security</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:4d8dab7436a4/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scaling"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:spotify"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nginx"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ssl"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tls"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:frontline"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:security"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/datawire/bakerstreet">
    <title>Baker Street</title>
    <dc:date>2015-10-09T16:33:59+00:00</dc:date>
    <link>https://github.com/datawire/bakerstreet</link>
    <dc:creator>jm</dc:creator><description><![CDATA[client-side 'service discovery and routing system for microservices' -- another Smartstack, then]]></description>
<dc:subject>python router smartstack baker-street microservices service-discovery routing load-balancing http</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:4f581d7bae09/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:python"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:router"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:smartstack"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:baker-street"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:microservices"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:service-discovery"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:routing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:load-balancing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/mefellows/muxy">
    <title>muxy</title>
    <dc:date>2015-09-28T15:40:24+00:00</dc:date>
    <link>https://github.com/mefellows/muxy</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>a proxy that mucks with your system and application context, operating at Layers 4 and 7, allowing you to simulate common failure scenarios from the perspective of an application under test; such as an API or a web application. If you are building a distributed system, Muxy can help you test your resilience and fault tolerance patterns.</blockquote>

]]></description>
<dc:subject>proxy distributed testing web http fault-tolerance failure injection tcp delay resilience error-handling</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:d87a53a30ddc/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:proxy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distributed"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fault-tolerance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:failure"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:injection"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:delay"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:resilience"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:error-handling"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/EmileVauge/traefik">
    <title>traefik</title>
    <dc:date>2015-09-28T15:39:20+00:00</dc:date>
    <link>https://github.com/EmileVauge/traefik</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Træfɪk is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It supports several backends (Docker , Mesos/Marathon, Consul, Etcd, Rest API, file...) to manage its configuration automatically and dynamically.</blockquote>

Hot-reloading is notably much easier than with nginx/haproxy.
]]></description>
<dc:subject>proxy http proxying reverse-proxy traefik go ops</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:2b20dc41d331/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:proxy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:proxying"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:reverse-proxy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:traefik"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:go"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://dumpsterventures.com/jason/httpry/">
    <title>httpry</title>
    <dc:date>2015-09-21T11:12:42+00:00</dc:date>
    <link>http://dumpsterventures.com/jason/httpry/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>a specialized packet sniffer designed for displaying and logging HTTP traffic. It is not intended to perform analysis itself, but to capture, parse, and log the traffic for later analysis. It can be run in real-time displaying the traffic as it is parsed, or as a daemon process that logs to an output file. It is written to be as lightweight and flexible as possible, so that it can be easily adaptable to different applications.</blockquote>

via Eoin Brazil]]></description>
<dc:subject>via:eoinbrazil httpry http networking tools ops testing tcpdump tracing</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:b685caaa1594/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:eoinbrazil"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:httpry"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcpdump"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://httpbin.org/">
    <title>httpbin(1): HTTP Client Testing Service</title>
    <dc:date>2015-09-09T08:34:45+00:00</dc:date>
    <link>http://httpbin.org/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Testing an HTTP Library can become difficult sometimes. RequestBin is fantastic for testing POST requests, but doesn't let you control the response. This exists to cover all kinds of HTTP scenarios. Additional endpoints are being considered.</blockquote>

]]></description>
<dc:subject>http httpbin networking testing web coding hacks</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:91a5c4d24296/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:httpbin"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hacks"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blog.twitter.com/2015/diffy-testing-services-without-writing-tests">
    <title>Diffy: Testing services without writing tests</title>
    <dc:date>2015-09-03T22:58:30+00:00</dc:date>
    <link>https://blog.twitter.com/2015/diffy-testing-services-without-writing-tests</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Play requests against 2 versions of a service.  A fair bit more complex than simply replaying logged requests, which took 10 lines of a shell script last time I did it]]></description>
<dc:subject>http testing thrift automation twitter diffy diff soa tests</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:aebc474734fc/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:thrift"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:automation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:twitter"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:diffy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:diff"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:soa"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tests"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/h2non/toxy#latency">
    <title>toxy</title>
    <dc:date>2015-08-28T11:19:51+00:00</dc:date>
    <link>https://github.com/h2non/toxy#latency</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>toxy is a fully programmatic and hackable HTTP proxy to simulate server failure scenarios and unexpected network conditions. It was mainly designed for fuzzing/evil testing purposes, when toxy becomes particularly useful to cover fault tolerance and resiliency capabilities of a system, especially in service-oriented architectures, where toxy may act as intermediate proxy among services.

toxy allows you to plug in poisons, optionally filtered by rules, which essentially can intercept and alter the HTTP flow as you need, performing multiple evil actions in the middle of that process, such as limiting the bandwidth, delaying TCP packets, injecting network jitter latency or replying with a custom error or status code.</blockquote>

]]></description>
<dc:subject>toxy proxies proxy http mitm node.js soa network failures latency slowdown jitter bandwidth tcp</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:4cc87b3a400a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:toxy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:proxies"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:proxy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mitm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:node.js"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:soa"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:network"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:failures"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:latency"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:slowdown"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jitter"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bandwidth"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://gocardless.com/blog/in-search-of-performance-how-we-shaved-200ms-off-every-post-request/">
    <title>In search of performance - how we shaved 200ms off every POST request — GoCardless Blog</title>
    <dc:date>2015-08-26T22:07:38+00:00</dc:date>
    <link>https://gocardless.com/blog/in-search-of-performance-how-we-shaved-200ms-off-every-post-request/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[tl;dr: don't use Ruby's Net::HTTP and/or HAProxy prior to 1.4.19]]></description>
<dc:subject>http ruby tcp nagle performance rtt networking haproxy ack curl</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:84d0785b699c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ruby"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nagle"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rtt"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:haproxy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ack"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:curl"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://2ton.com.au/rwasa/">
    <title>rwasa</title>
    <dc:date>2015-08-18T22:24:33+00:00</dc:date>
    <link>https://2ton.com.au/rwasa/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>our full-featured, high performance, scalable web server designed to compete with the likes of nginx. It has been built from the ground-up with no external library dependencies entirely in x86_64 assembly language, and is the result of many years' experience with high volume web environments. In addition to all of the common things you'd expect a modern web server to do, we also include assembly language function hooks ready-made to facilitate Rapid Web Application Server (in Assembler) development.</blockquote>

]]></description>
<dc:subject>assembly http performance https ssl x86_64 web ops rwasa tls</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:0eba92f129b8/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:assembly"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:https"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ssl"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:x86_64"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rwasa"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tls"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://square.github.io/okhttp/">
    <title>OkHttp</title>
    <dc:date>2015-07-13T10:26:21+00:00</dc:date>
    <link>http://square.github.io/okhttp/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[A new HTTP client library for Android and Java, with a lot of nice features:

<blockquote>HTTP/2 and SPDY support allows all requests to the same host to share a socket.

Connection pooling reduces request latency (if SPDY isn’t available).

Transparent GZIP shrinks download sizes.

Response caching avoids the network completely for repeat requests.

OkHttp perseveres when the network is troublesome: it will silently recover from common connection problems. If your service has multiple IP addresses OkHttp will attempt alternate addresses if the first connect fails. This is necessary for IPv4+IPv6 and for services hosted in redundant data centers. OkHttp initiates new connections with modern TLS features (SNI, ALPN), and falls back to TLS 1.0 if the handshake fails.

Using OkHttp is easy. Its 2.0 API is designed with fluent builders and immutability. It supports both synchronous blocking calls and async calls with callbacks.</blockquote>

]]></description>
<dc:subject>android http java libraries okhttp http2 spdy microservices jdk</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:eaee9dd428e7/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:android"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:libraries"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:okhttp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:spdy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:microservices"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jdk"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.youtube.com/watch?v=MKgJeqF1DHw">
    <title>Patrick Shuff - Building A Billion User Load Balancer - SCALE 13x - YouTube</title>
    <dc:date>2015-06-22T09:50:27+00:00</dc:date>
    <link>https://www.youtube.com/watch?v=MKgJeqF1DHw</link>
    <dc:creator>jm</dc:creator><description><![CDATA['Want to learn how Facebook scales their load balancing infrastructure to support more than 1.3 billion users? We will be revealing the technologies and methods we use to route and balance Facebook's traffic. The Traffic team at Facebook has built several systems for managing and balancing our site traffic, including both a DNS load balancer and a software load balancer capable of handling several protocols. This talk will focus on these technologies and how they have helped improve user performance, manage capacity, and increase reliability.'

Can't find the standalone slides, unfortunately.]]></description>
<dc:subject>facebook video talks lbs load-balancing http https scalability scale linux</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:2ad80cce86ff/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:facebook"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:video"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:talks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lbs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:load-balancing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:https"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scalability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scale"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://leonsbox.com/blog/2013/06/04/improving-testing-by-using-real-traffic-from-production/">
    <title>Improving testing by using real traffic from production</title>
    <dc:date>2015-06-19T13:45:26+00:00</dc:date>
    <link>http://leonsbox.com/blog/2013/06/04/improving-testing-by-using-real-traffic-from-production/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Gor, a very nice-looking tool to log and replay HTTP traffic, specifically designed to "tee" live traffic from production to staging for pre-release testing]]></description>
<dc:subject>gor performance testing http tcp packet-capture tests staging tee</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:542e15c67558/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gor"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:packet-capture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tests"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:staging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tee"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/">
    <title>Automated Nginx Reverse Proxy for Docker</title>
    <dc:date>2015-06-17T21:51:02+00:00</dc:date>
    <link>http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Nice hack. An automated nginx reverse proxy which regenerates as the Docker containers update]]></description>
<dc:subject>nginx reverse-proxy proxies web http ops docker</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:b8c8b841d575/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nginx"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:reverse-proxy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:proxies"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:docker"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/relayrides/pushy/issues/184">
    <title>Apple to switch APNS protocol to HTTP/2</title>
    <dc:date>2015-06-17T08:54:56+00:00</dc:date>
    <link>https://github.com/relayrides/pushy/issues/184</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This is great news -- the current protocol is a binary, proprietary horrorshow, particularly around error reporting.  Available "later this year" in production, and Pushy plan to support it.]]></description>
<dc:subject>http2 apns pushy apple push-notifications protocols http</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:2d2332377931/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pushy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apple"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:push-notifications"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:protocols"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://docs.google.com/presentation/d/1r7QXGYOLCh4fcUq0jDdDwKJWNqWK1o4xMtYpKZCJYjM/present?slide=id.g518e3c87f_0_387">
    <title>HTTP/2 is here, let's optimize! - Velocity SC 2015 - Google Slides</title>
    <dc:date>2015-06-02T11:39:09+00:00</dc:date>
    <link>https://docs.google.com/presentation/d/1r7QXGYOLCh4fcUq0jDdDwKJWNqWK1o4xMtYpKZCJYjM/present?slide=id.g518e3c87f_0_387</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Changes which server-side developers will need to start considering as HTTP/2 rolls out.  Remove domain sharding; stop concatenating resources; stop inlining resources; use server push.]]></description>
<dc:subject>http2 http protocols streaming internet web dns performance</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:8896914700b3/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:protocols"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:streaming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:internet"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.reddit.com/r/Bitcoin/comments/37oxow/the_security_issue_of_blockchaininfos_android/crolfk4">
    <title>murbul comments on The security issue of Blockchain.info's Android Wallet is not about system's entropy. It's their own BUGs on PRNG again!</title>
    <dc:date>2015-05-29T14:52:11+00:00</dc:date>
    <link>https://www.reddit.com/r/Bitcoin/comments/37oxow/the_security_issue_of_blockchaininfos_android/crolfk4</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>I was in the middle of writing a breakdown of what went wrong, but you've beat me to it.
Basically, they have a LinuxSecureRandom class that's supposed to override the standard SecureRandom. This class reads from /dev/urandom and should provide cryptographically secure random values.
They also seed the generator using SecureRandom#setSeed with data pulled from random.org. With their custom SecureRandom, this is safe because it mixes the entropy using XOR, so even if the random.org data is dodgy it won't reduce security. It's just an added bonus.
BUT! On some devices under some circumstances, the LinuxSecureRandom class doesn't get registered. This is likely because /dev/urandom doesn't exist or can't be accessed for some reason. Instead of screaming bloody murder like any sensible implementation would, they just ignore that and fall back to using the standard SecureRandom.
If the above happens, there's a problem because the default implementation of SecureRandom#setSeed doesn't mix. If you set the seed, it replaces the entropy entirely. So now the entropy is coming solely from random.org.
And the final mistake: They were using HTTP instead of HTTPS to make the webservice call to random.org. On Jan 4, random.org started enforcing HTTPS and returning a 301 Permanently Moved error for HTTP - see https://www.random.org/news/. So since that date, the entropy has actually been the error message (turned into bytes) instead of the expected 256-bit number. Using that seed, SecureRandom will generate the private key for address 1Bn9ReEocMG1WEW1qYjuDrdFzEFFDCq43F 100% of the time. Ouch. This is around the time that address first appears, so the timeline matches.
I haven't had a thorough look at what they've replaced it with in the latest version, but initial impressions are that it's not ideal. Not disastrous, but not good.</blockquote>

Always check return values; always check HTTP status codes.]]></description>
<dc:subject>bugs android fail securerandom random prng blockchain.info bitcoin http randomness entropy error-checking</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:86f51c232ab7/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bugs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:android"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fail"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:securerandom"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:random"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:prng"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:blockchain.info"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bitcoin"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:randomness"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:entropy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:error-checking"/>
</rdf:Bag></taxo:topics>
</item>
</rdf:RDF>