<?xml version="1.0" encoding="UTF-8"?>
 <rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://pinboard.in">
    <title>Pinboard (jm)</title>
    <link>https://pinboard.in/u:jm/public/</link>
    <description>recent bookmarks from jm</description>
    <items>
      <rdf:Seq>	<rdf:li rdf:resource="https://github.com/Mic92/strace-macos"/>
	<rdf:li rdf:resource="https://tanelpoder.com/posts/xcapture-v3-alpha-ebpf-performance-analysis-with-duckdb/"/>
	<rdf:li rdf:resource="https://www.elastic.co/observability-labs/blog/debugging-aks-packet-loss"/>
	<rdf:li rdf:resource="https://rmoff.net/2021/03/04/quick-profiling-of-data-in-apache-kafka-using-kafkacat-and-visidata/"/>
	<rdf:li rdf:resource="https://poweruser.blog/using-dtrace-with-sip-enabled-3826a352e64b"/>
	<rdf:li rdf:resource="https://github.com/subtrace/subtrace"/>
	<rdf:li rdf:resource="https://dhashe.com/how-to-build-highly-debuggable-c-binaries.html"/>
	<rdf:li rdf:resource="https://github.com/dotcypress/ula"/>
	<rdf:li rdf:resource="https://github.com/eldadru/ksniff"/>
	<rdf:li rdf:resource="https://blog.acolyer.org/2020/01/08/ironies-of-automation/"/>
	<rdf:li rdf:resource="https://stripe.com/gb/blog/secret-life-of-dns"/>
	<rdf:li rdf:resource="https://confluence.atlassian.com/kb/how-to-change-jvm-arguments-at-runtime-to-avoid-application-restart-816682109.html"/>
	<rdf:li rdf:resource="https://blog.newrelic.com/2013/04/29/debugging-stuck-ruby-processes-what-to-do-before-you-kill-9/"/>
	<rdf:li rdf:resource="http://rr-project.org/"/>
	<rdf:li rdf:resource="https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr007.html"/>
	<rdf:li rdf:resource="https://github.com/AdoptOpenJDK/jitwatch"/>
	<rdf:li rdf:resource="https://jeremyeder.com/2017/07/25/docker-operations-slowing-down-on-aws-this-time-its-not-dns/"/>
	<rdf:li rdf:resource="https://blog.regehr.org/archives/1520"/>
	<rdf:li rdf:resource="https://medium.com/@rothgar/how-to-debug-a-running-docker-container-from-a-separate-container-983f11740dc6#.almdvzn67"/>
	<rdf:li rdf:resource="http://www.evanjones.ca/java-native-leak-bug.html"/>
	<rdf:li rdf:resource="https://www.snellman.net/blog/archive/2016-12-01-quic-tou/"/>
	<rdf:li rdf:resource="https://gdstechnology.blog.gov.uk/2015/12/11/using-jemalloc-to-get-to-the-bottom-of-a-memory-leak/"/>
	<rdf:li rdf:resource="http://danluu.com/perf-tracing/"/>
	<rdf:li rdf:resource="https://certsimple.com/blog/ssl-wireshark-mac-osx"/>
	<rdf:li rdf:resource="https://blog.cloudflare.com/tools-for-debugging-testing-and-using-http-2/"/>
	<rdf:li rdf:resource="http://byteman.jboss.org/"/>
	<rdf:li rdf:resource="http://githubengineering.com/benchmarking-github-enterprise/"/>
	<rdf:li rdf:resource="http://htrace.incubator.apache.org/"/>
	<rdf:li rdf:resource="http://blog.acolyer.org/2015/03/23/combining-static-model-checking-with-dynamic-enforcement-using-the-statecall-policy-language/"/>
	<rdf:li rdf:resource="http://openjdk.java.net/projects/code-tools/jol/"/>
	<rdf:li rdf:resource="https://blogs.oracle.com/ksplice/entry/8_gdb_tricks_you_should"/>
	<rdf:li rdf:resource="https://code.facebook.com/posts/1499322996995183/solving-the-mystery-of-link-imbalance-a-metastable-failure-state-at-scale/"/>
	<rdf:li rdf:resource="http://noahlz.roughdraft.io/865cc30e0fd93ad48369-troubleshooting-production-jvms-with-jcmd"/>
	<rdf:li rdf:resource="http://www.infoworld.com/d/data-center/systemd-harbinger-of-the-linux-apocalypse-248436?source=rss_data_center"/>
	<rdf:li rdf:resource="http://mutrics.iitis.pl/tracedump"/>
	<rdf:li rdf:resource="http://www.sysdig.org/"/>
	<rdf:li rdf:resource="http://robert.ocallahan.org/2014/03/introducing-rr.html"/>
	<rdf:li rdf:resource="http://blog.jetbrains.com/idea/2014/03/try-chronon-debugger-with-intellij-idea-13-1-eap/"/>
	<rdf:li rdf:resource="https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/LxaBFUI-hsQ/HiSPN-tV-BgJ"/>
	<rdf:li rdf:resource="https://flood.io/blog/16-convert-har-files-to-jmeter-test-plans"/>
	<rdf:li rdf:resource="https://developers.google.com/live/shows/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBjx4q0DDA"/>
	<rdf:li rdf:resource="https://blogs.atlassian.com/2013/03/so-you-want-your-jvms-heap/"/>
	<rdf:li rdf:resource="http://engineering.twitter.com/2012/06/distributed-systems-tracing-with-zipkin.html"/>
	<rdf:li rdf:resource="http://blog.viraptor.info/post/44424140237/peek-and-poke-in-the-age-of-linux"/>
	<rdf:li rdf:resource="http://www.chrononsystems.com/"/>
	<rdf:li rdf:resource="https://www.erlang-factory.com/upload/presentations/462/euc2011-draft2.pdf"/>
	<rdf:li rdf:resource="https://github.com/peak6/scala-ssh-shell"/>
	<rdf:li rdf:resource="http://aspersa.googlecode.com/svn/html/ioprofile.html"/>
	<rdf:li rdf:resource="http://jsonformat.com/"/>
	<rdf:li rdf:resource="http://www.rubyinside.com/hijack-get-a-live-irb-prompt-for-any-existing-ruby-process-2232.html"/>
      </rdf:Seq>
    </items>
  </channel><item rdf:about="https://github.com/Mic92/strace-macos">
    <title>Mic92/strace-macos</title>
    <dc:date>2025-11-19T11:49:32+00:00</dc:date>
    <link>https://github.com/Mic92/strace-macos</link>
    <dc:creator>jm</dc:creator><description><![CDATA["A clone of the strace command for macOS" -- yayyyy, I've been lamenting this loss for years]]></description>
<dc:subject>osx tools strace tracing debugging macos cli unix</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:43bae9d5408c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:osx"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:strace"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:macos"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cli"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:unix"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://tanelpoder.com/posts/xcapture-v3-alpha-ebpf-performance-analysis-with-duckdb/">
    <title>xcapture and xtop</title>
    <dc:date>2025-09-16T13:59:07+00:00</dc:date>
    <link>https://tanelpoder.com/posts/xcapture-v3-alpha-ebpf-performance-analysis-with-duckdb/</link>
    <dc:creator>jm</dc:creator><description><![CDATA["0x.Tools: X-Ray vision for Linux systems".  Linux Performance Analysis with Modern eBPF and DuckDB; dig into the captured DuckDB files using "xtop":

"xtop is like the Linux top tool, but extended with x-ray vision and ability to view your performance data from any chosen angle [..]. This enables dimensional performance analysis on Linux and tools like top for wall-clock time and much more. You can use it for system level overview and drill down into indivual threads’ activity and even into kernel events like lock waits or memory stalls."]]></description>
<dc:subject>os debugging sysadmin ops monitoring xtop xcapture ebpf linux duckdb syscalls</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:b730ad37aa33/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:os"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sysadmin"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:monitoring"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:xtop"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:xcapture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ebpf"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:duckdb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:syscalls"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.elastic.co/observability-labs/blog/debugging-aks-packet-loss">
    <title>Debugging Azure Networking for Elastic Cloud Serverless</title>
    <dc:date>2025-06-10T08:46:06+00:00</dc:date>
    <link>https://www.elastic.co/observability-labs/blog/debugging-aks-packet-loss</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Good writeup of fixing a Linux packet loss issue in Azure, using low-level access to the VMs running k8s nodes.

<blockquote>
Elastic's Site Reliability Engineering team (SRE) observed unstable throughput and packet loss in Elastic Cloud Serverless running on Azure Kubernetes Service (AKS). After investigation, we identified the primary contributing factors to be RX ring buffer overflows and kernel input queue saturation on SR-IOV interfaces. To address this, we increased RX buffer sizes and adjusted the netdev backlog, which significantly improved network stability.
</blockquote>]]></description>
<dc:subject>sr-iov linux networking bugs azure debugging ops sre drivers</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:aac45eb89c4b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sr-iov"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bugs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:azure"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sre"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:drivers"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://rmoff.net/2021/03/04/quick-profiling-of-data-in-apache-kafka-using-kafkacat-and-visidata/">
    <title>kafkacat and visidata</title>
    <dc:date>2025-03-04T11:44:29+00:00</dc:date>
    <link>https://rmoff.net/2021/03/04/quick-profiling-of-data-in-apache-kafka-using-kafkacat-and-visidata/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Two excellent tools in one blog post.

Visidata "is a commandline tool to work with data in all sorts of formats, including from stdin"; in this example it's taking lines of JSONL and producing an instant histogram of values from the stream:

<blockquote>
Once visidata is open, use the arrow keys to move to the column on which you want to build a histogram and press Shift-F. Since it works with pipes if you leave the -e off the kafkacat argument you get a live stream of messages from the Kafka topic and the visidata will continue to update as messages arrive (although I think you need to replot the histogram if you want it to refresh).
</blockquote>

On top of that, there's kcat, "netcat for Kafka”, "a swiss-army knife of tools for inspecting and creating data in Kafka", even supporting on-the-fly decode of Avro messages. https://github.com/edenhill/kcat]]></description>
<dc:subject>kcat kafka streams visidata tools cli avro debugging</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:649ff04bd089/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kcat"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kafka"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:streams"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:visidata"/>
	<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:avro"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://poweruser.blog/using-dtrace-with-sip-enabled-3826a352e64b">
    <title>Using dtrace on MacOS with SIP enabled</title>
    <dc:date>2025-02-27T17:26:52+00:00</dc:date>
    <link>https://poweruser.blog/using-dtrace-with-sip-enabled-3826a352e64b</link>
    <dc:creator>jm</dc:creator><description><![CDATA["On all current MacOS versions (Catalina 10.15.x, Big Sur 11.x) System Integrity Protection (SIP) is enabled by default and prevents most uses of dtrace and other tools and scripts based on it (i.e. dtruss)."

Wow this is really complicated. Nice work, Apple (via Tony Finch)]]></description>
<dc:subject>macos mac debugging osx via:fanf dtrace tracing sip</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:e887bd86dfe8/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:macos"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mac"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:osx"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:fanf"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dtrace"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sip"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/subtrace/subtrace">
    <title>subtrace</title>
    <dc:date>2025-02-26T12:00:30+00:00</dc:date>
    <link>https://github.com/subtrace/subtrace</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Subtrace is "Wireshark for your Docker containers. It lets developers see all incoming and outgoing requests in their backend server so that they can resolve production issues faster."

<blockquote>
* Works out-of-the-box
* No code changes needed
* Supports all languages (Python + Node + Go + everything else)
* See full payload, headers, status code, and latency
* Less than 100µs performance overhead
* Built on Clickhouse
* Open source
</blockquote>

Looks like it outputs to the Chrome Dev Console's Network tab, or a facsimile of it; "Open the subt.link URL in your browser to watch a live stream of your backend server’s network logs".

It may be interesting to try this out. (via LWIA)]]></description>
<dc:subject>subtrace tracing wireshark debugging docker containers ops clickhouse open-source tools tcpdump</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:bea8371bdcd0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:subtrace"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:wireshark"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:docker"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:containers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clickhouse"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:open-source"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcpdump"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://dhashe.com/how-to-build-highly-debuggable-c-binaries.html">
    <title>How to build highly-debuggable C++ binaries</title>
    <dc:date>2024-12-17T14:43:43+00:00</dc:date>
    <link>https://dhashe.com/how-to-build-highly-debuggable-c-binaries.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[aka, how to have a modern C++ development environment (for when you still need to do such a thing) -- also, wow, C++ has changed a lot since the last time I was working with it. (Via Tony Finch)]]></description>
<dc:subject>via:fanf gdb c++ coding debugging builds</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:ab5c9fb90833/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:fanf"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gdb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:c++"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:builds"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/dotcypress/ula">
    <title>μLA</title>
    <dc:date>2024-07-16T11:14:40+00:00</dc:date>
    <link>https://github.com/dotcypress/ula</link>
    <dc:creator>jm</dc:creator><description><![CDATA["Micro Logic Analyzer for RP2040" -- as noted by Alison Parrish at https://friend.camp/@aparrish/112792228639189926 , this makes a really nice logic analyzer/oscilloscope for hardware debugging from a Raspberry Pi Pico or other RP2040 board.  If I ever wind up back in hardware hacking, this will be useful]]></description>
<dc:subject>debugging hardware raspberry-pi pi-pico rp2040 oscilloscopes via:aparrish logic-analysers</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:2109cf23d571/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hardware"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:raspberry-pi"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pi-pico"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rp2040"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:oscilloscopes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:aparrish"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:logic-analysers"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/eldadru/ksniff">
    <title>eldadru/ksniff</title>
    <dc:date>2023-07-12T13:58:22+00:00</dc:date>
    <link>https://github.com/eldadru/ksniff</link>
    <dc:creator>jm</dc:creator><description><![CDATA["A kubectl plugin that utilize tcpdump and Wireshark to start a remote capture on any pod in your Kubernetes cluster.  You get the full power of Wireshark with minimal impact on your running pods.

When working with micro-services, many times it's very helpful to get a capture of the network activity between your micro-service and it's dependencies.

ksniff use kubectl to upload a statically compiled tcpdump binary to your pod and redirecting it's output to your local Wireshark for smooth network debugging experience."

This would be an absolutely vital piece of software once you get into the nitty-gritty of debugging TCP issues in K8S; I've been on the verge of needing a packet capture once or twice, but managed to just about avoid it so far. I'll be keeping this one in the back pocket.

]]></description>
<dc:subject>debugging kubernetes network networking packet-captures tcpdump wireshark ops k8s eks sniffing kubectl</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f25141e7690f/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kubernetes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:network"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:packet-captures"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcpdump"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:wireshark"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<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:sniffing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kubectl"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blog.acolyer.org/2020/01/08/ironies-of-automation/">
    <title>Ironies of automation</title>
    <dc:date>2020-01-09T17:32:47+00:00</dc:date>
    <link>https://blog.acolyer.org/2020/01/08/ironies-of-automation/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Wow, this is a great paper recommendation from Adrian Colyer - 'Ironies of automation', Bainbridge, Automatica, Vol. 19, No. 6, 1983.

<blockquote>In an automated system, two roles are left to humans: monitoring that the automated system is operating correctly, and taking over control if it isn’t. An operator that doesn’t routinely operate the system will have atrophied skills if ever called on to take over.

Unfortunately, physical skills deteriorate when they are not used, particularly the refinements of gain and timing. This means that a formerly experienced operator who has been monitoring an automated process may now be an inexeperienced one.

Not only are the operator’s skills declining, but the situations when the operator will be called upon are by their very nature the most demanding ones where something is deemed to be going wrong. Thus what we really need in such a situation is a more, not a lesser skilled operator! To generate successful strategies for unusual situtations, an operator also needs good understanding of the process under control, and the current state of the system. The former understanding develops most effectively through use and feedback (which the operator may no longer be getting the regular opportunity for), the latter takes some time to assimilate.</blockquote>

(via John Allspaw)]]></description>
<dc:subject>via:allspaw automation software reliability debugging ops design failsafe failure human-interfaces ui ux outages</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:8dde64ad2f41/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:allspaw"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:automation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:software"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:reliability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:failsafe"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:failure"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:human-interfaces"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ui"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:outages"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://stripe.com/gb/blog/secret-life-of-dns">
    <title>The secret life of DNS packets: investigating complex networks</title>
    <dc:date>2019-05-23T15:04:48+00:00</dc:date>
    <link>https://stripe.com/gb/blog/secret-life-of-dns</link>
    <dc:creator>jm</dc:creator><description><![CDATA[ah, the joys of building production systems atop AWS and its poorly-documented limits:

<blockquote>One more surprising detail we discovered in the tcpdump data was that the VPC resolver was not sending back responses to many of the queries. During one of the 60-second collection periods the DNS server sent 257,430 packets to the VPC resolver. The VPC resolver replied back with only 61,385 packets, which averages to 1,023 packets per second. We realized we may be hitting the AWS limit for how much traffic can be sent to a VPC resolver, which is 1,024 packets per second per interface.</blockquote>

]]></description>
<dc:subject>aws limits ops stripe vpc dns outages postmortems debugging</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:12605b81e624/</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:limits"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:stripe"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:vpc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dns"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:outages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:postmortems"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://confluence.atlassian.com/kb/how-to-change-jvm-arguments-at-runtime-to-avoid-application-restart-816682109.html">
    <title>How to change JVM arguments at runtime to avoid application restart</title>
    <dc:date>2018-06-06T15:27:52+00:00</dc:date>
    <link>https://confluence.atlassian.com/kb/how-to-change-jvm-arguments-at-runtime-to-avoid-application-restart-816682109.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This is a super nifty feature of the JVM: turn on and off heap class histogram dumps at runtime, for instance.

<blockquote>java -XX:+PrintFlagsFinal -version|grep manageable</blockquote>

]]></description>
<dc:subject>jvm ops switches cli java heap-dumps memory debugging memory-leaks</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:b591a243dc1d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jvm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:switches"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cli"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:heap-dumps"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:memory"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:memory-leaks"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blog.newrelic.com/2013/04/29/debugging-stuck-ruby-processes-what-to-do-before-you-kill-9/">
    <title>Debugging Stuck Ruby Processes — What to do Before You Kill -9</title>
    <dc:date>2018-04-23T10:30:12+00:00</dc:date>
    <link>https://blog.newrelic.com/2013/04/29/debugging-stuck-ruby-processes-what-to-do-before-you-kill-9/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[good tips on using gdb to gather backtraces (via Louise)]]></description>
<dc:subject>debugging gdb ruby linux unix threads ops</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:053ee778bddc/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gdb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ruby"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:unix"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:threads"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://rr-project.org/">
    <title>rr: lightweight recording &amp; deterministic debugging</title>
    <dc:date>2018-03-30T21:19:58+00:00</dc:date>
    <link>http://rr-project.org/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>aspires to be your primary C/C++ debugging tool for Linux, replacing — well, enhancing — gdb. You record a failure once, then debug the recording, deterministically, as many times as you want. The same execution is replayed every time.  rr also provides efficient reverse execution under gdb. Set breakpoints and data watchpoints and quickly reverse-execute to where they were hit.</blockquote>

(via Kevin Lyda and b0rk)]]></description>
<dc:subject>debug gdb mozilla debugging coding cli c++ c</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:934a17c302f6/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debug"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gdb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mozilla"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cli"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:c++"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:c"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr007.html">
    <title>Native Memory Tracking</title>
    <dc:date>2017-09-18T09:35:48+00:00</dc:date>
    <link>https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr007.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Java 8 HotSpot feature to monitor and diagnose native memory leaks]]></description>
<dc:subject>java jvm memory native-memory malloc debugging coding nmt java-8 jcmd</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:d2f2bae02fb3/</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:jvm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:memory"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:native-memory"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:malloc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nmt"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java-8"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jcmd"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/AdoptOpenJDK/jitwatch">
    <title>AdoptOpenJDK/jitwatch</title>
    <dc:date>2017-08-24T16:22:31+00:00</dc:date>
    <link>https://github.com/AdoptOpenJDK/jitwatch</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Log analyser and visualiser for the HotSpot JIT compiler. Inspect inlining decisions, hot methods, bytecode, and assembly. View results in the JavaFX user interface.</blockquote>

]]></description>
<dc:subject>analysis java jvm performance tools debugging optimization jit</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:404ca57f5933/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:analysis"/>
	<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:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:optimization"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jit"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://jeremyeder.com/2017/07/25/docker-operations-slowing-down-on-aws-this-time-its-not-dns/">
    <title>EBS gp2 I/O BurstBalance exhaustion</title>
    <dc:date>2017-07-26T13:14:54+00:00</dc:date>
    <link>https://jeremyeder.com/2017/07/25/docker-operations-slowing-down-on-aws-this-time-its-not-dns/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[when EBS volumes in EC2 exhaust their "burst" allocation, things go awry very quickly]]></description>
<dc:subject>performance aws ebs ec2 burst-balance ops debugging</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:bef976e76060/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:aws"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ebs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ec2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:burst-balance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blog.regehr.org/archives/1520">
    <title>Undefined Behavior in 2017</title>
    <dc:date>2017-07-06T11:36:55+00:00</dc:date>
    <link>https://blog.regehr.org/archives/1520</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This is an extremely detailed post on the state of dynamic checkers in C/C++ (via the inimitable Marc Brooker):

<blockquote>Recently we’ve heard a few people imply that problems stemming from undefined behaviors (UB) in C and C++ are largely solved due to ubiquitous availability of dynamic checking tools such as ASan, UBSan, MSan, and TSan. We are here to state the obvious — that, despite the many excellent advances in tooling over the last few years, UB-related problems are far from solved — and to look at the current situation in detail.</blockquote>

]]></description>
<dc:subject>via:marc-brooker c c++ coding testing debugging dynamic-analysis valgrind asan ubsan tsan</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:13303806849e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:marc-brooker"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:c"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:c++"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<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:dynamic-analysis"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:valgrind"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:asan"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ubsan"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tsan"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://medium.com/@rothgar/how-to-debug-a-running-docker-container-from-a-separate-container-983f11740dc6#.almdvzn67">
    <title>How-to Debug a Running Docker Container from a Separate Container</title>
    <dc:date>2017-02-20T10:34:01+00:00</dc:date>
    <link>https://medium.com/@rothgar/how-to-debug-a-running-docker-container-from-a-separate-container-983f11740dc6#.almdvzn67</link>
    <dc:creator>jm</dc:creator><description><![CDATA[arguably this shouldn't be required -- building containers without /bin/sh, strace, gdb etc. is just silly]]></description>
<dc:subject>strace docker ops debugging containers</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:aca1d05c70a3/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:strace"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:docker"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:containers"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.evanjones.ca/java-native-leak-bug.html">
    <title>Debugging Java Native Memory Leaks (evanjones.ca)</title>
    <dc:date>2017-01-10T16:39:09+00:00</dc:date>
    <link>http://www.evanjones.ca/java-native-leak-bug.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Using jemalloc to instrument the contents of the native heap and record stack traces of each chunk's allocators, so that leakers can be quickly identified (GZIPInputStream in this case).

See also https://gdstechnology.blog.gov.uk/2015/12/11/using-jemalloc-to-get-to-the-bottom-of-a-memory-leak/ , https://github.com/jeffgriffith/native-jvm-leaks/blob/master/README.md .]]></description>
<dc:subject>debugging memory jvm java leaks memory-leaks leak-checking jemalloc malloc native heap off-heap gzipinputstream</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:5206aa65dc43/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:memory"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jvm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:leaks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:memory-leaks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:leak-checking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jemalloc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:malloc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:native"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:heap"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:off-heap"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gzipinputstream"/>
</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://gdstechnology.blog.gov.uk/2015/12/11/using-jemalloc-to-get-to-the-bottom-of-a-memory-leak/">
    <title>Using jemalloc to get to the bottom of an off-heap Java memory leak</title>
    <dc:date>2016-04-14T11:39:20+00:00</dc:date>
    <link>https://gdstechnology.blog.gov.uk/2015/12/11/using-jemalloc-to-get-to-the-bottom-of-a-memory-leak/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Good technique]]></description>
<dc:subject>debugging java jvm memory jemalloc off-heap</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:e8651207606c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<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:memory"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jemalloc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:off-heap"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://danluu.com/perf-tracing/">
    <title>The Nyquist theorem and limitations of sampling profilers today, with glimpses of tracing tools from the future</title>
    <dc:date>2016-02-09T12:55:23+00:00</dc:date>
    <link>http://danluu.com/perf-tracing/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Awesome post from Dan Luu with data from Google:

<blockquote>The cause [of some mystery widespread 250ms hangs] was kernel throttling of the CPU for processes that went beyond their usage quota. To enforce the quota, the kernel puts all of the relevant threads to sleep until the next multiple of a quarter second. When the quarter-second hand of the clock rolls around, it wakes up all the threads, and if those threads are still using too much CPU, the threads get put back to sleep for another quarter second. The phase change out of this mode happens when, by happenstance, there aren’t too many requests in a quarter second interval and the kernel stops throttling the threads.  After finding the cause, an engineer found that this was happening on 25% of disk servers at Google, for an average of half an hour a day, with periods of high latency as long as 23 hours. This had been happening for three years. Dick Sites says that fixing this bug paid for his salary for a decade. This is another bug where traditional sampling profilers would have had a hard time. The key insight was that the slowdowns were correlated and machine wide, which isn’t something you can see in a profile.</blockquote>

]]></description>
<dc:subject>debugging performance visualization instrumentation metrics dan-luu latency google dick-sites linux scheduler throttling kernel hangs</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:670193c955f5/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:visualization"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:instrumentation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:metrics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dan-luu"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:latency"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:google"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dick-sites"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scheduler"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:throttling"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kernel"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hangs"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://certsimple.com/blog/ssl-wireshark-mac-osx">
    <title>How to inspect SSL/TLS traffic with Wireshark 2</title>
    <dc:date>2015-12-22T10:50:08+00:00</dc:date>
    <link>https://certsimple.com/blog/ssl-wireshark-mac-osx</link>
    <dc:creator>jm</dc:creator><description><![CDATA[turns out it's easy enough -- Mozilla standardised a debugging SSL session-key logging file format which Wireshark and Chrome support]]></description>
<dc:subject>chrome ssl browser firefox wireshark debugging tls</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:2cf279ca135a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:chrome"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ssl"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:browser"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:firefox"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:wireshark"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tls"/>
</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://byteman.jboss.org/">
    <title>Byteman</title>
    <dc:date>2015-09-24T10:11:48+00:00</dc:date>
    <link>http://byteman.jboss.org/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>a tool which simplifies tracing and testing of Java programs. Byteman allows you to insert extra Java code into your application, either as it is loaded during JVM startup or even after it has already started running. The injected code is allowed to access any of your data and call any application methods, including where they are private. You can inject code almost anywhere you want and there is no need to prepare the original source code in advance nor do you have to recompile, repackage or redeploy your application. In fact you can remove injected code and reinstall different code while the application continues to execute.  The simplest use of Byteman is to install code which traces what your application is doing. This can be used for monitoring or debugging live deployments as well as for instrumenting code under test so that you can be sure it has operated correctly. By injecting code at very specific locations you can avoid the overheads which often arise when you switch on debug or product trace. Also, you decide what to trace when you run your application rather than when you write it so you don't need 100% hindsight to be able to obtain the information you need.</blockquote>

]]></description>
<dc:subject>tracing java byteman injection jvm ops debugging testing</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:542b80c1b242/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:byteman"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:injection"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jvm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://githubengineering.com/benchmarking-github-enterprise/">
    <title>Benchmarking GitHub Enterprise - GitHub Engineering</title>
    <dc:date>2015-07-27T10:21:09+00:00</dc:date>
    <link>http://githubengineering.com/benchmarking-github-enterprise/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Walkthrough of debugging connection timeouts in a load test. Nice graphs (using matplotlib)]]></description>
<dc:subject>github listen-backlog tcp debugging timeouts load-testing benchmarking testing ops linux</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:fc612e31699d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:github"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:listen-backlog"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:timeouts"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:load-testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:benchmarking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://htrace.incubator.apache.org/">
    <title>Apache HTrace</title>
    <dc:date>2015-05-12T16:06:27+00:00</dc:date>
    <link>http://htrace.incubator.apache.org/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[a Zipkin-compatible distributed-system tracing framework in Java, in the Apache Incubator]]></description>
<dc:subject>zipkin tracing trace apache incubator java debugging</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:7241ab3bdb05/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:zipkin"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:trace"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apache"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:incubator"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://blog.acolyer.org/2015/03/23/combining-static-model-checking-with-dynamic-enforcement-using-the-statecall-policy-language/">
    <title>Combining static model checking with dynamic enforcement using the Statecall Policy Language</title>
    <dc:date>2015-03-24T12:55:54+00:00</dc:date>
    <link>http://blog.acolyer.org/2015/03/23/combining-static-model-checking-with-dynamic-enforcement-using-the-statecall-policy-language/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This looks quite nice -- a model-checker "for regular programmers". Example model for ping(1):

<pre>01 automaton ping (int max_count, int count, bool can_timeout) {
02   Initialize;
03   during {
04     count = 0;
05     do {
06       Transmit_Ping;
07       either {
08         Receive_Ping;
09       } or (can_timeout) {
10         Timeout_Ping;
11       };
12       count = count + 1;
13     } until (count &gt;= max_count);
14   } handle {
15     SIGINFO;
16     Print_Summary;
17   };</pre>

]]></description>
<dc:subject>ping model-checking models formal-methods verification static dynamic coding debugging testing distcomp papers</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:9eb26fa27811/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ping"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:model-checking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:models"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:formal-methods"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:verification"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:static"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dynamic"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distcomp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:papers"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://openjdk.java.net/projects/code-tools/jol/">
    <title>OpenJDK: jol</title>
    <dc:date>2015-02-16T11:17:41+00:00</dc:date>
    <link>http://openjdk.java.net/projects/code-tools/jol/</link>
    <dc:creator>jm</dc:creator><description><![CDATA['JOL (Java Object Layout) is the tiny toolbox to analyze object layout schemes in JVMs. These tools are using Unsafe, JVMTI, and Serviceability Agent (SA) heavily to decoder the actual object layout, footprint, and references. This makes JOL much more accurate than other tools relying on heap dumps, specification assumptions, etc.'

Recommended by Nitsan Wakart, looks pretty useful for JVM devs]]></description>
<dc:subject>java jvm tools scala memory estimation ram object-layout debugging via:nitsan</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:e605db4598c2/</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:jvm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scala"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:memory"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:estimation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ram"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:object-layout"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:nitsan"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blogs.oracle.com/ksplice/entry/8_gdb_tricks_you_should">
    <title>8 gdb tricks you should know (Ksplice Blog)</title>
    <dc:date>2015-01-30T22:26:19+00:00</dc:date>
    <link>https://blogs.oracle.com/ksplice/entry/8_gdb_tricks_you_should</link>
    <dc:creator>jm</dc:creator><description><![CDATA[These are very good -- bookmarking for the next time I'm using gdb, probably about 3 years from now]]></description>
<dc:subject>c debugging gdb c++ tips coding</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:af705539a22f/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:c"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gdb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:c++"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tips"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://code.facebook.com/posts/1499322996995183/solving-the-mystery-of-link-imbalance-a-metastable-failure-state-at-scale/">
    <title>Solving the Mystery of Link Imbalance: A Metastable Failure State at Scale | Engineering Blog | Facebook Code</title>
    <dc:date>2014-11-28T16:47:33+00:00</dc:date>
    <link>https://code.facebook.com/posts/1499322996995183/solving-the-mystery-of-link-imbalance-a-metastable-failure-state-at-scale/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Excellent real-world war story from Facebook -- a long-running mystery bug was eventually revealed to be a combination of edge-case behaviours across all the layers of the networking stack, from L2 link aggregation at the agg-router level, up to the L7 behaviour of the MySQL client connection pool.

<blockquote>Facebook collocates many of a user’s nodes and edges in the social graph. That means that when somebody logs in after a while and their data isn’t in the cache, we might suddenly perform 50 or 100 database queries to a single database to load their data. This starts a race among those queries. The queries that go over a congested link will lose the race reliably, even if only by a few milliseconds. That loss makes them the most recently used when they are put back in the pool. The effect is that during a query burst we stack the deck against ourselves, putting all of the congested connections at the top of the deck.</blockquote>

]]></description>
<dc:subject>architecture debugging devops facebook layer-7 mysql connection-pooling aggregation networking tcp-stack</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c71d54137cff/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:devops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:facebook"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:layer-7"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:connection-pooling"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:aggregation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp-stack"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://noahlz.roughdraft.io/865cc30e0fd93ad48369-troubleshooting-production-jvms-with-jcmd">
    <title>Troubleshooting Production JVMs with jcmd</title>
    <dc:date>2014-09-17T22:39:46+00:00</dc:date>
    <link>http://noahlz.roughdraft.io/865cc30e0fd93ad48369-troubleshooting-production-jvms-with-jcmd</link>
    <dc:creator>jm</dc:creator><description><![CDATA[remotely trigger GCs, finalization, heap dumps etc.  Handy]]></description>
<dc:subject>jvm jcmd debugging ops java gc heap troubleshooting</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:cc90aa62a26d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jvm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jcmd"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:heap"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:troubleshooting"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.infoworld.com/d/data-center/systemd-harbinger-of-the-linux-apocalypse-248436?source=rss_data_center">
    <title>Systemd: Harbinger of the Linux apocalypse</title>
    <dc:date>2014-08-18T13:40:05+00:00</dc:date>
    <link>http://www.infoworld.com/d/data-center/systemd-harbinger-of-the-linux-apocalypse-248436?source=rss_data_center</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>While there are many defensible aspects of Systemd, other aspects boggle the mind. Not the least of these was that, as of a few months ago, trying to debug the kernel from the boot line would cause the system to crash. This was because of Systemd's voracious logging and the fact that Systemd responds to the "debug" flag on the kernel boot line -- a flag meant for the kernel, not anything else. That, straight up, is a bug.

However, the Systemd developers didn't see it that way and actively fought with those experiencing the problem. Add the fact that one of the Systemd developers was banned by Linus Torvalds for poor attitude and bad design and another was responsible for causing significant issues with Linux audio support, but blamed the problem on everything else but his software, and you have a bad situation on your hands.

There's no shortage of egos in the open source development world. There's no shortage of new ideas and veteran developers and administrators pooh-poohing something new simply because it's new. But there are also 45 years of history behind Unix and extremely good reasons it's still flourishing. Tools designed like Systemd do not fit the Linux mold, to their own detriment. Systemd's design has more in common with Windows than with Unix -- down to the binary logging.</blockquote>

The link re systemd consuming the "debug" kernel boot arg is a canonical example of inflexible coders refusing to fix their own bugs.  (via Jason Dixon)
]]></description>
<dc:subject>systemd linux red-hat egos linus-torvalds unix init booting debugging logging design software via:obfuscurity</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:1a3ccdd34802/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:systemd"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:red-hat"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:egos"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linus-torvalds"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:unix"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:init"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:booting"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:logging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:software"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:obfuscurity"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://mutrics.iitis.pl/tracedump">
    <title>Tracedump</title>
    <dc:date>2014-05-29T09:25:20+00:00</dc:date>
    <link>http://mutrics.iitis.pl/tracedump</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>a single application IP packet sniffer that captures all TCP and UDP packets of a single Linux process. It consists of the following elements:

* ptrace monitor - tracks bind(), connect() and sendto() syscalls and extracts local port numbers that the traced application uses;
* pcap sniffer - using information from the previous module, it captures IP packets on an AF_PACKET socket (with an appropriate BPF filter attached);
* garbage collector - periodically reads /proc/net/{tcp,udp} files in order to detect the sockets that the application no longer uses.

As the output, tracedump generates a PCAP file with SLL-encapsulated IP packets - readable by eg. Wireshark. This file can be later used for detailed analysis of the networking operations made by the application. For instance, it might be useful for IP traffic classification systems.</blockquote>

]]></description>
<dc:subject>debugging networking linux strace ptrace tracedump tracing tcp udp sniffer ip tcpdump</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:d013afd680ad/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:strace"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ptrace"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracedump"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:udp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sniffer"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ip"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcpdump"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.sysdig.org/">
    <title>sysdig</title>
    <dc:date>2014-04-04T12:01:42+00:00</dc:date>
    <link>http://www.sysdig.org/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>open source, system-level exploration: capture system state and activity from a running Linux instance, then save, filter and analyze.
Think of it as strace + tcpdump + lsof + awesome sauce.
With a little Lua cherry on top.</blockquote>

This sounds excellent. Linux-based, GPLv2.
]]></description>
<dc:subject>debugging tools linux ops tracing strace open-source sysdig cli tcpdump lsof</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:fc93efb68a74/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:strace"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:open-source"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sysdig"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cli"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tcpdump"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lsof"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://robert.ocallahan.org/2014/03/introducing-rr.html">
    <title>rr</title>
    <dc:date>2014-03-26T15:42:14+00:00</dc:date>
    <link>http://robert.ocallahan.org/2014/03/introducing-rr.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[A cool-looking new debugging tool for C/C++ from Mozilla.

<blockquote>Many, many people have noticed that if we had a way to reliably record program execution and replay it later, with the ability to debug the replay, we could largely tame the nondeterminism problem. This would also allow us to deliberately introduce nondeterminism so tests can explore more of the possible execution space, without impacting debuggability. Many record and replay systems have been built in pursuit of this vision. (I built one myself.) For various reasons these systems have not seen wide adoption. So, a few years ago we at Mozilla started a project to create a new record-and-replay tool that would overcome the obstacles blocking adoption. We call this tool rr.</blockquote>

Low runtime overhead; easy deployability; targeted at 32-bit (?!) Linux; OSS. (via Bryan O'Sullivan)]]></description>
<dc:subject>via:bos mozilla debugging coding firefox rr record replay gdb c++ linux</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:13a77ee5a535/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:bos"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mozilla"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:firefox"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rr"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:record"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:replay"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gdb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:c++"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://blog.jetbrains.com/idea/2014/03/try-chronon-debugger-with-intellij-idea-13-1-eap/">
    <title>IntelliJ IDEA 13.1 will support Chronon Debugger</title>
    <dc:date>2014-03-10T11:09:07+00:00</dc:date>
    <link>http://blog.jetbrains.com/idea/2014/03/try-chronon-debugger-with-intellij-idea-13-1-eap/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This, IMO, would be a really good reason to upgrade to the payware version of IDEA - Chronon looks cool.

<blockquote>Chronon is a new revolutionary tool keeping track of running Java programs and recording their execution process for later analysis, which can be helpful when you need to thoroughly retrace your steps when dealing with complicated bugs.</blockquote>

]]></description>
<dc:subject>chronon debugging java intellij idea ides coding time-warp time</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:4d98efc8bf3f/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:chronon"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:intellij"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:idea"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ides"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:time-warp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:time"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/LxaBFUI-hsQ/HiSPN-tV-BgJ">
    <title>A sampling profiler for your daily browsing - Google Groups</title>
    <dc:date>2014-01-15T11:06:16+00:00</dc:date>
    <link>https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/LxaBFUI-hsQ/HiSPN-tV-BgJ</link>
    <dc:creator>jm</dc:creator><description><![CDATA[via Ilya Grigorik: Chrome Canary now has a built-in, always-on, zero-overhead code profiler.  I want this in my server-side JVMs!]]></description>
<dc:subject>chrome tracing debugging performance profiling google sampling-profiler javascript blink v8</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f6dd56bbf320/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:chrome"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:profiling"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:google"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sampling-profiler"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:blink"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:v8"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://flood.io/blog/16-convert-har-files-to-jmeter-test-plans">
    <title>flood.io » Convert HAR to a JMeter JMX plan file</title>
    <dc:date>2013-12-02T11:17:00+00:00</dc:date>
    <link>https://flood.io/blog/16-convert-har-files-to-jmeter-test-plans</link>
    <dc:creator>jm</dc:creator><description><![CDATA[this is absolutely fantastic.  Thanks flood.io!]]></description>
<dc:subject>har http archive jmeter jmx recording testing debugging captures conversion</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f8067c22a27c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:har"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:archive"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jmeter"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jmx"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:recording"/>
	<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:captures"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:conversion"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://developers.google.com/live/shows/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBjx4q0DDA">
    <title>Make The Web Fast - The HAR Show: Capturing and Analyzing performance data with HTTP Archive format — Google Developers</title>
    <dc:date>2013-12-02T11:15:34+00:00</dc:date>
    <link>https://developers.google.com/live/shows/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBjx4q0DDA</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Wow, I didn't know about this.  Great idea.

<blockquote>Need a flexible format to record, export, and analyze network performance data? Well, that's exactly what the HTTP Archive format (HAR) is designed to do! Even better, did you know that Chrome DevTools supports it? In this episode we'll take a deep dive into the format (as you'll see, its very simple), and explore the many different ways it can help you capture and analyze your sites performance. Join Ilya Grigorik and Peter Lubbers to find out how to capture HAR network traces in Chrome, visualize the data via an online tool, share the reports with your clients and coworkers, automate the logging and capture of HAR data for your build scripts, and even adapt it to server-side analysis use cases</blockquote>

]]></description>
<dc:subject>capturing logging performance http debugging trace capture har archives protocols recording</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:100f71ced36c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:capturing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:logging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:trace"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:capture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:har"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:archives"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:protocols"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:recording"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blogs.atlassian.com/2013/03/so-you-want-your-jvms-heap/">
    <title>dumping a JVM heap using gdb</title>
    <dc:date>2013-03-23T21:31:17+00:00</dc:date>
    <link>https://blogs.atlassian.com/2013/03/so-you-want-your-jvms-heap/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[now this is a neat trick -- having been stuck having to flip to spares and do other antics while a long-running heap dump took place, this is a winner.

<blockquote>Dumping a JVM’s heap is an extremely useful tool for debugging problems with a J2EE application. Unfortunately, when a JVM explodes, using the standard jmap tool can take an inordinate amount of time to execute for lots of different reasons. This leads to extended downtime when a heap dump is attempted and even then, jmap regularly fails.
This blog post is intended to outline an alternate method using [gdb] to achieve a heap dump that only requires mere seconds of additional downtime allowing the slow jmap process to happen once the application is back in service.</blockquote>

]]></description>
<dc:subject>heap-dump gdb heap jvm java via:peakscale gcore core core-dump debugging</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:8e1fe92e9dd1/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:heap-dump"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gdb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:heap"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jvm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:peakscale"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gcore"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:core"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:core-dump"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://engineering.twitter.com/2012/06/distributed-systems-tracing-with-zipkin.html">
    <title>Distributed Systems Tracing with Zipkin</title>
    <dc:date>2013-03-14T10:27:38+00:00</dc:date>
    <link>http://engineering.twitter.com/2012/06/distributed-systems-tracing-with-zipkin.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Twitter's version of the "canary"/"tracer" request concept]]></description>
<dc:subject>twitter zipkin tracing tracer-requests canary-requests http debugging production live distributed-systems distcomp stack infrastructure ops</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:63f33ab1015a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:twitter"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:zipkin"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracer-requests"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:canary-requests"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:http"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:production"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:live"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distributed-systems"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distcomp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:stack"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:infrastructure"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://blog.viraptor.info/post/44424140237/peek-and-poke-in-the-age-of-linux">
    <title>Peek and poke in the age of Linux</title>
    <dc:date>2013-03-06T22:32:52+00:00</dc:date>
    <link>http://blog.viraptor.info/post/44424140237/peek-and-poke-in-the-age-of-linux</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Neat demo of using ptrace to inject into a running process, just like the good old days ;)

<blockquote>Some time ago I ran into a production issue where the init process (upstart) stopped behaving properly. Specifically, instead of spawning new processes, it deadlocked in a transitional state. [...] What’s worse, upstart doesn’t allow forcing a state transition and trying to manually create and send DBus events didn’t help either. That meant the sane options we were left with were:
restart the host (not desirable at all in that scenario);
start the process manually and hope auto-respawn will not be needed.
Of course there are also some insane options. Why not cheat like in the old times and just PEEK and POKE the process in the right places? The solution used at the time involved a very ugly script driving gdb which probably summoned satan in some edge cases. But edge cases were not hit and majority of hosts recovered without issues.</blockquote>

]]></description>
<dc:subject>debugging memory linux upstart peek poke ptrace gdb processes hacks</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:1b09b0dbaa28/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:memory"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:upstart"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:peek"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:poke"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ptrace"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gdb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:processes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hacks"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.chrononsystems.com/">
    <title>Chronon DVR for Java</title>
    <dc:date>2012-05-12T21:47:46+00:00</dc:date>
    <link>http://www.chrononsystems.com/</link>
    <dc:creator>jm</dc:creator><description><![CDATA["record entire execution of your Java app; play it back on any machine". Other features: time-travelling debugger -- step backwards, jump to any point in execution, designed for long running programs; post-execution logging -- add log statements after the program has run, and see what it would have logged.  Looks extremely nifty, but I wonder how big those recording files get...]]></description>
<dc:subject>debugging via:peakscale eclipse chronon dvr java coding logging jvm</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c859a3bebaa9/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:peakscale"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:eclipse"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:chronon"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dvr"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:logging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jvm"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.erlang-factory.com/upload/presentations/462/euc2011-draft2.pdf">
    <title>DTrace and Erlang</title>
    <dc:date>2011-11-09T13:54:17+00:00</dc:date>
    <link>https://www.erlang-factory.com/upload/presentations/462/euc2011-draft2.pdf</link>
    <dc:creator>jm</dc:creator><description><![CDATA[from Basho, via istvan.  DTrace is becoming more compelling as a deep instrumentation/monitoring API -- I didn't realise disabled DTrace probes were virtually 0-overhead (a "2 NOOP instruction placeholder", apparently), that's nifty.  Wonder if they've fixed the licensing mess, though]]></description>
<dc:subject>dtrace monitoring instrumentation debugging tracing unix erlang via:istvan</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:76d5b3fb1bbf/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dtrace"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:monitoring"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:instrumentation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tracing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:unix"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:erlang"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:istvan"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/peak6/scala-ssh-shell">
    <title>peak6/scala-ssh-shell - GitHub</title>
    <dc:date>2011-10-11T20:25:59+00:00</dc:date>
    <link>https://github.com/peak6/scala-ssh-shell</link>
    <dc:creator>jm</dc:creator><description><![CDATA['Backdoor that gives you a scala shell over ssh on your jvm.  The shell is not sandboxed, anyone access the shell can touch anything in the jvm and do anything the jvm can do including modifying and deleting files, etc.'  nifty!]]></description>
<dc:subject>scala ssh repl interactive debugging coding jvm java</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:6e951601f9ba/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scala"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ssh"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:repl"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:interactive"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jvm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://aspersa.googlecode.com/svn/html/ioprofile.html">
    <title>ioprofile</title>
    <dc:date>2010-10-16T11:09:45+00:00</dc:date>
    <link>http://aspersa.googlecode.com/svn/html/ioprofile.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[wraps strace(1) to summarise and aggregate I/O ops performed by a Linux process.  looks pretty nifty (via Jeremy Zawodny)]]></description>
<dc:subject>via:jzawodny io strace linux monitoring debugging performance profiling sysadmin ioprofile unix tools</dc:subject>
<dc:identifier>https://pinboard.in/u:jm/b:2654db8d62e5/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:jzawodny"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:io"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:strace"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:monitoring"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:profiling"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sysadmin"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ioprofile"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:unix"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://jsonformat.com/">
    <title>JSON Format</title>
    <dc:date>2009-11-15T21:03:46+00:00</dc:date>
    <link>http://jsonformat.com/</link>
    <dc:creator>jm</dc:creator><description><![CDATA['your online JSON Formatter'.  useful.  via JKeyes]]></description>
<dc:subject>via:jkeyes json formatting tools useful format debugging</dc:subject>
<dc:identifier>https://pinboard.in/u:jm/b:5866179fece0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:jkeyes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:json"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:formatting"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:useful"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:format"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.rubyinside.com/hijack-get-a-live-irb-prompt-for-any-existing-ruby-process-2232.html">
    <title>Hijack: Get A Live IRB Prompt For Any Existing Ruby Process</title>
    <dc:date>2009-08-25T13:46:08+00:00</dc:date>
    <link>http://www.rubyinside.com/hijack-get-a-live-irb-prompt-for-any-existing-ruby-process-2232.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[injects via gdb.  pretty cool, if it works; one comment notes that they couldn't use it on a Rails app]]></description>
<dc:subject>gdb hijack ruby debugging irb live coding rubygems debugger</dc:subject>
<dc:identifier>https://pinboard.in/u:jm/b:a9a9509c330c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gdb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hijack"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ruby"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:irb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:live"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rubygems"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:debugger"/>
</rdf:Bag></taxo:topics>
</item>
</rdf:RDF>