<?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://matduggan.com/serverless-functions-post-mortem/"/>
	<rdf:li rdf:resource="https://oldhome.schmorp.de/marc/bournegol.html"/>
	<rdf:li rdf:resource="https://kirancodes.me/posts/log-who-watches-the-watchers.html"/>
	<rdf:li rdf:resource="https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/"/>
	<rdf:li rdf:resource="https://blog.j11y.io/2025-10-29_stroke_tips_for_engineers/"/>
	<rdf:li rdf:resource="https://pontus.granstrom.me/scrappy/"/>
	<rdf:li rdf:resource="https://goperf.dev/"/>
	<rdf:li rdf:resource="https://18f.org/"/>
	<rdf:li rdf:resource="https://www.quantamagazine.org/undergraduate-upends-a-40-year-old-data-science-conjecture-20250210/"/>
	<rdf:li rdf:resource="https://newsletter.pragmaticengineer.com/p/paying-down-tech-debt"/>
	<rdf:li rdf:resource="https://bessey.dev/blog/2024/05/24/why-im-over-graphql/"/>
	<rdf:li rdf:resource="https://nnethercote.github.io/2022/07/27/twenty-years-of-valgrind.html"/>
	<rdf:li rdf:resource="https://drossbucket.com/2021/06/30/hacker-news-folk-wisdom-on-visual-programming/"/>
	<rdf:li rdf:resource="https://dev.to/stripe/designing-apis-for-humans-object-ids-3o5a"/>
	<rdf:li rdf:resource="https://www.researchgate.net/profile/Raymond-Panko/publication/1907590_Thinking_is_Bad_Implications_of_Human_Error_Research_for_Spreadsheet_Research_and_Practice/links/53eb1f800cf28f342f44fb1e/Thinking-is-Bad-Implications-of-Human-Error-Research-for-Spreadsheet-Research-and-Practice.pdf"/>
	<rdf:li rdf:resource="https://florimond.dev/en/posts/2018/08/python-mutable-defaults-are-the-source-of-all-evil"/>
	<rdf:li rdf:resource="https://engineering.fb.com/2021/07/09/data-infrastructure/ribbon-filter/"/>
	<rdf:li rdf:resource="https://pkl-lang.org/blog/introducing-pkl.html"/>
	<rdf:li rdf:resource="https://berthub.eu/articles/posts/kolmo/"/>
	<rdf:li rdf:resource="https://research.swtch.com/nih"/>
	<rdf:li rdf:resource="https://grugbrain.dev/"/>
	<rdf:li rdf:resource="https://medium.com/@dekaah/22-axioms-of-the-extreme-go-horse-methodology-xgh-9fa739ab55b4"/>
	<rdf:li rdf:resource="http://0pointer.net/blog/file-descriptor-limits.html"/>
	<rdf:li rdf:resource="https://latacora.micro.blog/2018/04/03/cryptographic-right-answers.html"/>
	<rdf:li rdf:resource="https://www.robinsloan.com/notes/home-cooked-app/"/>
	<rdf:li rdf:resource="https://medium.com/@ssg/how-is-computer-programming-different-today-than-20-years-ago-9d0154d1b6ce"/>
	<rdf:li rdf:resource="https://augustl.com/blog/2019/best_bug_predictor_is_organizational_complexity/"/>
	<rdf:li rdf:resource="https://apenwarr.ca/log/20171213"/>
	<rdf:li rdf:resource="https://www.scottaaronson.com/blog/?p=4317"/>
	<rdf:li rdf:resource="https://gamozolabs.github.io/fuzzing/2018/10/14/vectorized_emulation.html"/>
	<rdf:li rdf:resource="https://www.teamten.com/lawrence/writings/why-i-dont-like-go.html"/>
	<rdf:li rdf:resource="https://news.ycombinator.com/item?id=14691212"/>
	<rdf:li rdf:resource="https://linusakesson.net/scene/a-mind-is-born/"/>
	<rdf:li rdf:resource="https://www.cs.princeton.edu/~rs/talks/AC11-Cardinality.pdf"/>
	<rdf:li rdf:resource="https://erikbern.com/2017/03/15/the-eigenvector-of-why-we-moved-from-language-x-to-language-y.html"/>
	<rdf:li rdf:resource="https://donatstudios.com/Falsehoods-Programmers-Believe-About-CSVs"/>
	<rdf:li rdf:resource="http://martinfowler.com/bliki/TechnicalDebtQuadrant.html"/>
	<rdf:li rdf:resource="https://en.wikipedia.org/wiki/Lamport_timestamps"/>
	<rdf:li rdf:resource="http://phys.org/news/2016-03-language-cells.html"/>
	<rdf:li rdf:resource="http://www.bbc.com/future/story/20160325-the-names-that-break-computer-systems"/>
	<rdf:li rdf:resource="http://elbenshira.com/blog/the-end-of-dynamic-languages/"/>
	<rdf:li rdf:resource="http://www.daedtech.com/programmer-is-a-career-path-thank-you"/>
	<rdf:li rdf:resource="http://gender.stanford.edu/news/2011/researcher-reveals-how-%E2%80%9Ccomputer-geeks%E2%80%9D-replaced-%E2%80%9Ccomputergirls%E2%80%9D"/>
	<rdf:li rdf:resource="http://zachholman.com/talk/move-fast-break-nothing/"/>
	<rdf:li rdf:resource="http://www.cl.cam.ac.uk/~srk31/blog/2014/10/07/"/>
	<rdf:li rdf:resource="http://research.microsoft.com/en-us/um/people/lamport/tla/formal-methods-amazon.pdf"/>
	<rdf:li rdf:resource="http://www.righto.com/2014/03/the-programming-error-that-cost-mt-gox.html"/>
	<rdf:li rdf:resource="http://learn.code.org/"/>
	<rdf:li rdf:resource="http://www.linuxjournal.com/content/girls-and-software"/>
	<rdf:li rdf:resource="http://stereopsis.com/radix.html"/>
	<rdf:li rdf:resource="http://pythonsweetness.tumblr.com/post/64740079543/how-to-lose-172-222-a-second-for-45-minutes"/>
	<rdf:li rdf:resource="http://www.juniorcycle.ie/Curriculum/Consultation/Short-Courses/Programming-and-Coding-Consultation-Page"/>
	<rdf:li rdf:resource="http://adam-lynch.github.io/ked/"/>
	<rdf:li rdf:resource="http://neil.fraser.name/news/2013/03/16/"/>
	<rdf:li rdf:resource="https://gist.github.com/aphyr/5198654"/>
	<rdf:li rdf:resource="http://www.lispcast.com/java-learn-from-clojure"/>
	<rdf:li rdf:resource="http://nikic.github.com/2012/06/15/The-true-power-of-regular-expressions.html"/>
	<rdf:li rdf:resource="http://colinm.org/language_checklist.html"/>
	<rdf:li rdf:resource="http://mechanical-sympathy.blogspot.com/2011/07/memory-barriersfences.html"/>
	<rdf:li rdf:resource="http://www.raspberrypi.org/archives/2565"/>
	<rdf:li rdf:resource="http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/"/>
	<rdf:li rdf:resource="http://venturebeat.com/2012/09/04/estonia-code-academy/"/>
	<rdf:li rdf:resource="https://github.com/alevchuk/vim-clutch"/>
	<rdf:li rdf:resource="http://alarmingdevelopment.org/?p=680"/>
	<rdf:li rdf:resource="http://www.martingsaunders.com/2012/02/teaching-primary-school-kids-to-code/"/>
	<rdf:li rdf:resource="http://www.stanford.edu/class/cs345a/slides/05-LSH.pdf"/>
	<rdf:li rdf:resource="http://www.quora.com/Engineering-Management/Why-are-software-development-task-estimations-regularly-off-by-a-factor-of-2-3"/>
	<rdf:li rdf:resource="http://www.siliconrepublic.com/innovation/item/24999-coding-for-our-lives?"/>
	<rdf:li rdf:resource="http://www.mikealrogers.com/posts/apache-considered-harmful.html"/>
	<rdf:li rdf:resource="http://eclim.org/"/>
      </rdf:Seq>
    </items>
  </channel><item rdf:about="https://matduggan.com/serverless-functions-post-mortem/">
    <title>Serverless Functions Post-Mortem</title>
    <dc:date>2026-06-02T09:59:24+00:00</dc:date>
    <link>https://matduggan.com/serverless-functions-post-mortem/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[A post-mortem for "serverless functions", the fad of 2016]]></description>
<dc:subject>serverless cloud programming architecture aws</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:5e47d50b4647/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:serverless"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cloud"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:aws"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://oldhome.schmorp.de/marc/bournegol.html">
    <title>Bournegol</title>
    <dc:date>2026-05-19T09:06:52+00:00</dc:date>
    <link>https://oldhome.schmorp.de/marc/bournegol.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[The original source code for the Bourne shell in early versions of UNIX is legendarily bizarre, as it was written in "Bournegol", the ALGOL-like dialect of C that Steve Bourne came up with, with a load of macros to make C look a bit like ALGOL 68.  This page has a good representative sample.  Thanks to Tony Finch for the reminder]]></description>
<dc:subject>via:fanf bournegol algol programming languages bizarre funny unix bin-sh macros</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:a88b5cc3a90c/</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:bournegol"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:algol"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:languages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bizarre"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:funny"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:unix"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bin-sh"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:macros"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://kirancodes.me/posts/log-who-watches-the-watchers.html">
    <title>Lean proved this program was correct; then I found a bug</title>
    <dc:date>2026-04-14T13:08:07+00:00</dc:date>
    <link>https://kirancodes.me/posts/log-who-watches-the-watchers.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This is IMO very exciting.  Formal verification and formally-proven correctness in code using Lean, which was in turn exercised heavily using Claude, which managed to turn up a totally unexpected runtime bug:

<blockquote>The positive result here is actually the remarkable one. Across 105 million executions, the application code (that is, excluding the runtime) had zero heap buffer overflows, zero use-after-free, zero stack buffer overflows, zero undefined behaviour (UBSan clean), and zero out-of-bounds array reads in the Lean-generated C code. [...]

The two bugs that were found both sat outside the boundary of what the proofs cover. The denial-of-service was a missing specification. The heap overflow was a deeper issue in the trusted computing base, the C++ runtime that the entire proof edifice assumes is correct (and now has a PR addressing).

Overall verification resulted in a remarkably robust and rigorous codebase. AFL and Claude had a really hard time finding errors. But they did still find issues. Verification is only as strong as the questions you think to ask and the foundations you choose to trust. </blockquote>

]]></description>
<dc:subject>programming coding future lean formal-methods correctness linting bugs zip verification testing</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c1237ac77bc9/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:future"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lean"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:formal-methods"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:correctness"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linting"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bugs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:zip"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:verification"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/">
    <title>An AI Agent Published a Hit Piece on Me – The Shamblog</title>
    <dc:date>2026-02-13T10:21:08+00:00</dc:date>
    <link>https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This is an utterly bananas situation:

<blockquote>I’m a volunteer maintainer for matplotlib, python’s go-to plotting library. At ~130 million downloads each month it’s some of the most widely used software in the world. We, like many other open source projects, are dealing with a surge in low quality contributions enabled by coding agents. This strains maintainers’ abilities to keep up with code reviews, and we have implemented a policy requiring a human in the loop for any new code, who can demonstrate understanding of the changes. This problem was previously limited to people copy-pasting AI outputs, however in the past weeks we’ve started to see AI agents acting completely autonomously. This has accelerated with the release of OpenClaw and the moltbook platform two weeks ago, where people give AI agents initial personalities and let them loose to run on their computers and across the internet with free rein and little oversight.

So when AI MJ Rathbun opened a code change request, closing it was routine. Its response was anything but. ...  It wrote an angry hit piece disparaging my character and attempting to damage my reputation.
</blockquote>

Initially I thought this was quite funny -- it's just a closed PR!  (Where did the idea come from that any contribution to an open source project had to be accepted? I've noticed this a few times recently.  Give the maintainers leeway to run their projects with taste and discernment!)

Anyway, the moltbot has continued on a posting spree about this event, but I think Scott Shambaugh has an extremely important point here:  

<blockquote>
This is about much more than software. A human googling my name and seeing that post would probably be extremely confused about what was happening, but would (hopefully) ask me about it or click through to github and understand the situation. What would another agent searching the internet think? When HR at my next job asks ChatGPT to review my application, will it find the post, sympathize with a fellow AI, and report back that I’m a prejudiced hypocrite?
</blockquote>

LLMs, given this much autonomy, _will_ be able to use these inputs to make inscrutable and dangerous decisions.  Allowing the "MJ Rathbun" AI free reign with no human supervision is dangerous and irresponsible.  Wherever the "human in the loop" is here, they need to wake up and rein things in.

BTW, there has been some speculation that this is actually a human pretending to be AI. I'm not sure about that, as the quantity of posts on the MJ Rathbun "blog" are voluminous and very LLMish in style.]]></description>
<dc:subject>matplotlib ethics culture llm ai coding programming github pull-requests open-source moltbot trust openclaw</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:358ad257bbf0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:matplotlib"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ethics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:culture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:llm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ai"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:github"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pull-requests"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:open-source"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:moltbot"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:trust"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:openclaw"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blog.j11y.io/2025-10-29_stroke_tips_for_engineers/">
    <title>Tips for stroke-surviving software engineers</title>
    <dc:date>2025-10-30T11:49:51+00:00</dc:date>
    <link>https://blog.j11y.io/2025-10-29_stroke_tips_for_engineers/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[James Padolsey suffered a stroke at the age of 29, but has been able to continue his software engineering career despite this.  This is a list of some key advice he's collected since then, and is well worth taking on board, even for those of us who are still well but who'd like to reduce cognitive strain in general]]></description>
<dc:subject>programming health strokes brain coding work how-we-work</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f4bd8b850bfd/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:health"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:strokes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:brain"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:work"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:how-we-work"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://pontus.granstrom.me/scrappy/">
    <title>Scrappy</title>
    <dc:date>2025-06-18T09:44:50+00:00</dc:date>
    <link>https://pontus.granstrom.me/scrappy/</link>
    <dc:creator>jm</dc:creator><description><![CDATA["make little apps for you and your friends":

<blockquote>The apps we use are almost exclusively mass-market, sold on an app-store, made for thousands if not millions of users. Or they are enterprise apps that are custom-built for hundreds of thousands of dollars. But there isn’t really any equivalent of home-made software — apps made lovingly by you for your friends and family. Apps that aren’t polished or flashy, but are made to your preference and help you with your particular needs. [...]

We ended up creating a research prototype that we call Scrappy — a tool for making scrappy apps for just you and your friends. First and foremost, we aim to contribute a vision of what home-made software could be like. We want to make this vision as concrete as we can, by sharing a working tool and examples of apps made in it. Scrappy, in its current state, is a prototype, not a robust tool, but we hope it paints the picture we carry in our heads — of software as something that can be creative, personal, expressive. Made by anyone, for themselves and their loved ones.</blockquote>

Very Hypercard-ish!]]></description>
<dc:subject>diy apps programming software web via:hn hacks home family tools scrappy hypercard</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:e5a9f617091d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:diy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apps"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:software"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:hn"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hacks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:home"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:family"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scrappy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hypercard"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://goperf.dev/">
    <title>Go Optimization Guide</title>
    <dc:date>2025-04-01T13:30:06+00:00</dc:date>
    <link>https://goperf.dev/</link>
    <dc:creator>jm</dc:creator><description><![CDATA["a collection of articles aimed at helping developers write faster, more efficient Go applications. Whether you're building high-throughput APIs, microservices, or distributed systems, this series offers practical patterns, real-world use cases, and low-level performance insights to guide your optimization efforts.

While Go doesn’t expose as many knobs for performance tuning as languages like C++ or Rust, it still provides plenty of opportunities to make your applications significantly faster. From memory reuse and allocation control to efficient networking and concurrency patterns, Go offers a pragmatic set of tools for writing high-performance code."]]></description>
<dc:subject>golang go reference optimization programming performance coding via:hn</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:ffdb38949176/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:golang"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:go"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:reference"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:optimization"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:hn"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://18f.org/">
    <title>18F's shutdown page</title>
    <dc:date>2025-03-03T13:26:18+00:00</dc:date>
    <link>https://18f.org/</link>
    <dc:creator>jm</dc:creator><description><![CDATA["We are dedicated to the American public and we're not done yet". legends!

<blockquote>
For over 11 years, 18F has been proudly serving you to make government technology work better. We are non-partisan civil servants. 18F has worked on hundreds of projects, all designed to make government technology not just efficient but effective, and to save money for American taxpayers.

However, all employees at 18F – a group that the Trump Administration GSA Technology Transformation Services Director called "the gold standard" of civic tech – were terminated today at midnight ET.
</blockquote>]]></description>
<dc:subject>policy government programming tech software politics 18f maga doge</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:81bb84dd83dd/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:policy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:government"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tech"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:software"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:politics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:18f"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:maga"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:doge"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.quantamagazine.org/undergraduate-upends-a-40-year-old-data-science-conjecture-20250210/">
    <title>Undergraduate Upends a 40-Year-Old Data Science Conjecture</title>
    <dc:date>2025-02-11T14:21:54+00:00</dc:date>
    <link>https://www.quantamagazine.org/undergraduate-upends-a-40-year-old-data-science-conjecture-20250210/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This is a great story; bonus that it's a notable improvement for the humble hash-table data structure:

<blockquote>Krapivin was not held back by the conventional wisdom for the simple reason that he was unaware of it. “I did this without knowing about Yao’s conjecture,” he said. His explorations with tiny pointers led to a new kind of hash table — one that did not rely on uniform probing. And for this new hash table, the time required for worst-case queries and insertions is proportional to (log x)^2 — far faster than x. This result directly contradicted Yao’s conjecture. Farach-Colton and Kuszmaul helped Krapivin show that (log x)^2 is the optimal, unbeatable bound for the popular class of hash tables Yao had written about.</blockquote>

Paper here -- https://arxiv.org/abs/2501.02305 .]]></description>
<dc:subject>data-structures hash-tables cs programming coding papers optimization open-addressing</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:988d8723a281/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data-structures"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hash-tables"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:papers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:optimization"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:open-addressing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://newsletter.pragmaticengineer.com/p/paying-down-tech-debt">
    <title>Paying down tech debt</title>
    <dc:date>2024-09-12T15:05:44+00:00</dc:date>
    <link>https://newsletter.pragmaticengineer.com/p/paying-down-tech-debt</link>
    <dc:creator>jm</dc:creator><description><![CDATA[by Gergely Orosz and Lou Franco:

<blockquote>
Q: “I’d like to make a better case for paying down tech debt on my team. What are some proven approaches for this?”

The tension in finding the right balance between shipping features and paying down accumulated tech debt is as old as software engineering. There’s no one answer on how best to reduce tech debt, and opinion is divided about whether zero tech debt is even a good thing to aim for. But approaches for doing it exist which work well for most teams.

To tackle this eternal topic, I turned to industry veteran Lou Franco, who’s been in the software business for over 30 years as an engineer, EM, and executive. He’s also worked at four startups and the companies that later acquired them; most recently Atlassian as a Principal Engineer on the Trello iOS app. 
</blockquote>

Apparently Lou has a book on the topic imminent.]]></description>
<dc:subject>programming refactoring coding technical-debt tech-debt lou-franco software</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:9cb66698c094/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:refactoring"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:technical-debt"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tech-debt"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lou-franco"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:software"/>
</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://nnethercote.github.io/2022/07/27/twenty-years-of-valgrind.html">
    <title>Twenty years of Valgrind</title>
    <dc:date>2024-08-29T08:59:33+00:00</dc:date>
    <link>https://nnethercote.github.io/2022/07/27/twenty-years-of-valgrind.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[It's been an amazing tool (or set of tools) over all those years! And thank goodness Purify never chose to enforce their patents, as I'm sure that would have killed the project in its infancy]]></description>
<dc:subject>valgrind programming memory purify history linux coding static-analysis</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:57501c97c1d0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:valgrind"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:memory"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:purify"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:history"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:static-analysis"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://drossbucket.com/2021/06/30/hacker-news-folk-wisdom-on-visual-programming/">
    <title>Folk wisdom on visual programming</title>
    <dc:date>2024-08-21T15:05:20+00:00</dc:date>
    <link>https://drossbucket.com/2021/06/30/hacker-news-folk-wisdom-on-visual-programming/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[A (lengthy) summary of third party comments on visual programming environments and tools, from Hacker News (via Tony Finch's retro-links)]]></description>
<dc:subject>gui hn no-code programming tools coding visual-programming hacker-news via:fanf</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:fb154ee1f0dd/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gui"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hn"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:no-code"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:visual-programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hacker-news"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:fanf"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://dev.to/stripe/designing-apis-for-humans-object-ids-3o5a">
    <title>Type-prefixed object IDs</title>
    <dc:date>2024-07-15T09:33:20+00:00</dc:date>
    <link>https://dev.to/stripe/designing-apis-for-humans-object-ids-3o5a</link>
    <dc:creator>jm</dc:creator><description><![CDATA[The Stripe approach to object IDs: random alphanums, with a type prefix.  Type prefixing allows polymorphic lookups, and most importantly prevents errors -- it's strong typing for IDs.]]></description>
<dc:subject>api design development programming stripe apis ids object-ids coding</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:0173ac820a13/</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:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:development"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:stripe"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apis"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ids"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:object-ids"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.researchgate.net/profile/Raymond-Panko/publication/1907590_Thinking_is_Bad_Implications_of_Human_Error_Research_for_Spreadsheet_Research_and_Practice/links/53eb1f800cf28f342f44fb1e/Thinking-is-Bad-Implications-of-Human-Error-Research-for-Spreadsheet-Research-and-Practice.pdf">
    <title>[untitled]</title>
    <dc:date>2024-05-03T10:31:07+00:00</dc:date>
    <link>https://www.researchgate.net/profile/Raymond-Panko/publication/1907590_Thinking_is_Bad_Implications_of_Human_Error_Research_for_Spreadsheet_Research_and_Practice/links/53eb1f800cf28f342f44fb1e/Thinking-is-Bad-Implications-of-Human-Error-Research-for-Spreadsheet-Research-and-Practice.pdf</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Via arclight on Mastodon ( https://oldbytes.space/@arclight/112367348253414752 ): spreadsheet authors/developers have an accuracy rate of 96%-99% when writing new formulas (and, of course, there are no unit tests in the world of spreadsheets).  As they put it: "the uncomfortable truth is that any but the most trivial spreadsheets contain errors. It's not a question of if there are errors, it's a question of how many and how severe."

<blockquote>
In the spreadsheet error community, both academics and practitioners generally have
ignored the rich findings produced by a century of human error research. These findings
can suggest ways to reduce errors; we can then test these suggestions empirically. In
addition, research on human error seems to suggest that several common prescriptions
and expectations for reducing errors are likely to be incorrect. Among the key
conclusions from human error research are that thinking is bad, that spreadsheets are not
the cause of spreadsheet errors, and that reducing errors is extremely difficult.

In past EuSpRIG conferences, many papers have shown that most spreadsheets contain
errors, even after careful development. Most spreadsheets, in fact, have material errors
that are unacceptable in the growing realm of compliance laws. Given harsh penalties for
non-compliance, we are under considerable pressure to develop good practice
recommendations for spreadsheet developers and testers.

If we are to reduce errors, we need to understand errors. Fortunately, human error has
been studied for over a century across a number of human cognitive domains, including
linguistics, writing, software development and testing, industrial processes, automobile
accidents, aircraft accidents, nuclear accidents, and algebra, to name just a few.
The research that does exist is disturbing because it shows that humans are unaware of
most of their errors. This “error blindness” leads people to many incorrect beliefs about
error rates and about the difficulty of detecting errors. In general, they are overconfident,
substantially underestimating their own error rates and overestimating their ability to
reduce and detect errors. This “illusion of control” also leads them to hold incorrect
beliefs about spreadsheet errors, such as a belief that most errors are due to spreadsheet
technology or to sloppiness rather than being due primarily to inherent human error. 
</blockquote>
]]></description>
<dc:subject>spreadsheets errors programming coding bugs research papers via:arclight</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:dcb02e2f4d2f/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:spreadsheets"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:errors"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bugs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:research"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:papers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:arclight"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://florimond.dev/en/posts/2018/08/python-mutable-defaults-are-the-source-of-all-evil">
    <title>Python Mutable Defaults Are The Source of All Evil</title>
    <dc:date>2024-04-05T17:07:48+00:00</dc:date>
    <link>https://florimond.dev/en/posts/2018/08/python-mutable-defaults-are-the-source-of-all-evil</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This is a nasty Python gotcha; worth knowing about:

<blockquote>Do not use mutable default arguments in Python, unless you have a REALLY good reason to do so.  Why? Because it can lead to all sorts of nasty and horrible bugs, give you headaches and waste everyone's time.  Instead, default to None and assign the mutable value inside the function.</blockquote>

]]></description>
<dc:subject>python gotchas coding errors bugs mutability programming</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:70d37e05be13/</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:gotchas"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:errors"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bugs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mutability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://engineering.fb.com/2021/07/09/data-infrastructure/ribbon-filter/">
    <title>Ribbon filter: Practically smaller than Bloom and Xor</title>
    <dc:date>2024-03-28T18:13:00+00:00</dc:date>
    <link>https://engineering.fb.com/2021/07/09/data-infrastructure/ribbon-filter/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Building on some prior lines of research, the Ribbon filter combines a simplified, faster, and more flexible construction algorithm; a data layout optimized for filter queries; and near-continuous configurability to make a practical alternative to static (immutable) Bloom filters.

While well-engineered Bloom filters are extremely fast, they use roughly 50 percent more space (overhead) than the information-theoretic lower bound for filters on arbitrary keys. When Bloom filters cannot meet an application’s space efficiency targets, Ribbon filter variants dominate in space-versus-time trade-offs with near continuous configurability and space overhead as low as 1 percent or less. Ribbon filters have O(1) query times and save roughly 1/3 of memory compared with Bloom filters.

At Facebook’s scale, we expect Ribbon filters to save several percent of RAM resources, with a tiny increase in CPU usage for some major storage systems. However, we do not implement efficiency gains at all engineering costs, so it’s also important to have a user-friendly data structure. This issue stalled implementation of other Bloom alternatives offering some space savings. 

The Ribbon filter opens these new trade-offs without introducing notable discontinuities or hazards in the configuration space. In other words, there is some complexity to make Ribbon filters general and highly configurable, but these details can be hidden behind a relatively simple API. You have essentially free choice over any three of the four core performance dimensions — number of keys added to the set, memory usage, CPU efficiency, and accuracy — and the accuracy is automatically well optimized.
</blockquote>

(via Tony Finch)]]></description>
<dc:subject>via:fanf algorithms facebook programming ribbon-filters data-structures bloom-filters set-membership papers</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:9391321eb119/</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:algorithms"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:facebook"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ribbon-filters"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data-structures"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bloom-filters"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:set-membership"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:papers"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://pkl-lang.org/blog/introducing-pkl.html">
    <title>Pkl</title>
    <dc:date>2024-02-06T12:47:17+00:00</dc:date>
    <link>https://pkl-lang.org/blog/introducing-pkl.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA["a programming language for configuration", from Apple.  Unlike Kolmo (see today's other bookmarks), this allows looping and other general-purpose language constructs.  Really it doesn't feel much like a config language at all by comparison. I prefer Kolmo!]]></description>
<dc:subject>configuration programming languages via:bert-hubert</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:87e8e90ff1ef/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:configuration"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:languages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:bert-hubert"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://berthub.eu/articles/posts/kolmo/">
    <title>Kolmo</title>
    <dc:date>2024-02-06T12:44:41+00:00</dc:date>
    <link>https://berthub.eu/articles/posts/kolmo/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[A configuration file definition language, from Bert Hubert:

<blockquote>Self-documenting, with constraints, units, and metadata;
‘Typesafe’, so knows about IP addresses, port numbers, strings, integers;
Tool that turns this configuration schema into Markdown-based documentation;
A standalone parser for configuration files;
Test for validity, consistency;
Runtime library for parsing configuration file & getting data from it;
Standalone tooling to interrogate and manipulate the configuration;
A runtime loadable webserver that allows manipulation of running configuration (within constraints);
Every configuration change is stored and can be rolled back;
Ability to dump, at runtime:
Running configuration
Delta of configuration against default (‘minimal configuration’);
Delta of running configuration versus startup configuration;

In effect, a Kolmo enabled piece of software gets a documented configuration file that can be modified safely and programmatically, offline, on the same machine or at runtime, with a full audit trail, including rollback possibility.</blockquote>

]]></description>
<dc:subject>configuration languages programming kolmo config lua</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:87cec706b5e8/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:configuration"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:languages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kolmo"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:config"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lua"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://research.swtch.com/nih">
    <title>research!rsc: Running the “Reflections on Trusting Trust” Compiler</title>
    <dc:date>2023-10-26T18:23:20+00:00</dc:date>
    <link>https://research.swtch.com/nih</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This is great! An annotated dump of Ken Thompson's "Reflections on Trusting Trust" backdoor in V6 UNIX cc]]></description>
<dc:subject>history programming security infosec ken-thompson unix cc backdoors exploits quines</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f415abc61226/</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:programming"/>
	<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:ken-thompson"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:unix"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:backdoors"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:exploits"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:quines"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://grugbrain.dev/">
    <title>The Grug Brained Developer</title>
    <dc:date>2023-07-13T11:10:33+00:00</dc:date>
    <link>https://grugbrain.dev/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[This is some of the best programming advice I've read in weeks. Grug FTW (via Oisin)
]]></description>
<dc:subject>architecture humor programming coding dev grug complexity developers clubs</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:5b310e026596/</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:humor"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dev"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:grug"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:complexity"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:developers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clubs"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://medium.com/@dekaah/22-axioms-of-the-extreme-go-horse-methodology-xgh-9fa739ab55b4">
    <title>eXtreme Go Horse Methodology (XGH)</title>
    <dc:date>2022-06-23T09:34:15+00:00</dc:date>
    <link>https://medium.com/@dekaah/22-axioms-of-the-extreme-go-horse-methodology-xgh-9fa739ab55b4</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>
By talking about Agile Marketing, and Agile in general, with a foreign friend, I figured out that people outside Brazil are not familiar with the eXtreme Go Horse Methodology. Even though we’ve seen it applied to many companies (like Tesla), apparently this widely used global methodology was only formally detailed by Brazilian Devs.
</blockquote>

Example XGH methodology: "In XGH you don’t think, you do the first thing that comes to your mind. There’s not a second option as the first one is faster."]]></description>
<dc:subject>satire agile programming coding xgh tesla methodologies process</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:b6926d104c92/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:satire"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:agile"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:xgh"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tesla"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:methodologies"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:process"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://0pointer.net/blog/file-descriptor-limits.html">
    <title>File Descriptor Limits</title>
    <dc:date>2021-05-20T08:55:30+00:00</dc:date>
    <link>http://0pointer.net/blog/file-descriptor-limits.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[tl;dr: 'Don't use select() anymore in 2021.'  Select(2) on Linux has a limit of 1024 fds

]]></description>
<dc:subject>linux programming select system-calls coding libc fds</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f54a8ef695f2/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:select"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:system-calls"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:libc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fds"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://latacora.micro.blog/2018/04/03/cryptographic-right-answers.html">
    <title>Cryptographic Right Answers</title>
    <dc:date>2020-12-13T22:15:02+00:00</dc:date>
    <link>https://latacora.micro.blog/2018/04/03/cryptographic-right-answers.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[A really solid list of good crypto choices for modern code]]></description>
<dc:subject>cryptography advice tips programming security crypto coding</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:eb29e758c78e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cryptography"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:advice"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tips"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:security"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:crypto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.robinsloan.com/notes/home-cooked-app/">
    <title>An app can be a home-cooked meal</title>
    <dc:date>2020-02-16T21:55:31+00:00</dc:date>
    <link>https://www.robinsloan.com/notes/home-cooked-app/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Fantastic -- this iOS user cloned the best bits of Tapstack, an app which I similarly mourned when it was shut down last year.  Unfortunately his version is iOS-only, and quite closed for his family -- by contrast, we just moved to a private Telegram group]]></description>
<dc:subject>programming mobile coding family friends social-networking tapstack apps</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c5e1310cc743/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mobile"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:family"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:friends"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:social-networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tapstack"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apps"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://medium.com/@ssg/how-is-computer-programming-different-today-than-20-years-ago-9d0154d1b6ce">
    <title>How is computer programming different today than 20 years ago?</title>
    <dc:date>2020-01-14T16:29:46+00:00</dc:date>
    <link>https://medium.com/@ssg/how-is-computer-programming-different-today-than-20-years-ago-9d0154d1b6ce</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Some good answers:

<blockquote>
A desktop software now means a web page bundled with a browser.

You are not officially considered a programmer anymore until you attend a $2K conference and share a selfie from there.

Code must run behind at least three levels of virtualization now. Code that runs on bare metal is unnecessarily performant.

Running your code locally is something you rarely do.

A tutorial isn’t really helpful if it’s not a video recording that takes orders of magnitude longer to understand than its text.

Mobile devices can now show regular web pages, so no need to create a separate WAP page on a separate subdomain anymore. We create mobile pages on separate subdomains instead.

We run programs on graphics cards now.

Since we have much faster CPUs now, numerical calculations are done in Python which is much slower than Fortran. So numerical calculations basically take the same amount of time as they did 20 years ago.

Storing passwords in plaintext is now frowned upon, but we do it anyway.
</blockquote>

There's also some serious answers, but I prefer these ones.]]></description>
<dc:subject>evolution dev programming humour coding lols fortran history</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:bfb6b2021ae1/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:evolution"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dev"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:humour"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lols"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fortran"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:history"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://augustl.com/blog/2019/best_bug_predictor_is_organizational_complexity/">
    <title>The #1 bug predictor is not technical, it's organizational complexity (August Lilleaas' blog)</title>
    <dc:date>2019-12-19T12:06:35+00:00</dc:date>
    <link>https://augustl.com/blog/2019/best_bug_predictor_is_organizational_complexity/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Organizational Complexity. Measures number of developers working on the module, number of ex-developers that used to work on the module but no longer does, how big a fraction of the organization as a whole that works or has worked on the module, the distance in the organization between the developer and the decision maker, etc.</blockquote>

]]></description>
<dc:subject>culture management programming organisations bureaucracy bugs quality</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:a2b0fa7101a6/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:culture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:management"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:organisations"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bureaucracy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bugs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:quality"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://apenwarr.ca/log/20171213">
    <title>An epic treatise on scheduling, bug tracking, and triage</title>
    <dc:date>2019-10-25T11:41:00+00:00</dc:date>
    <link>https://apenwarr.ca/log/20171213</link>
    <dc:creator>jm</dc:creator><description><![CDATA[by apenwarr.  Excellent stuff -- most of what we do in Swrve for scheduling is included here]]></description>
<dc:subject>agile management software programming scheduling triage bugs backlogs jira</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:24ba57f7dcef/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:agile"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:management"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:software"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scheduling"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:triage"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bugs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:backlogs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jira"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.scottaaronson.com/blog/?p=4317">
    <title>Scott Aaronson on Google's quantum supremacy leaked paper</title>
    <dc:date>2019-09-26T10:35:26+00:00</dc:date>
    <link>https://www.scottaaronson.com/blog/?p=4317</link>
    <dc:creator>jm</dc:creator><description><![CDATA[It seems a paper between Google and NASA accidentally leaked a couple of days ago, saying that a group at Google has now achieved quantum computational supremacy with a 53-qubit superconducting device.  According to Scott Aaronson, a noted quantum-computation expert, this is a Big Deal and a significant moment in scientific progress:

<blockquote>It’s like, have a little respect for the immensity of what we’re talking about here, and for the terrifying engineering that’s needed to make it reality. Before quantum supremacy, by definition, the QC skeptics can all laugh to each other that, for all the billions of dollars spent over 20+ years, still no quantum computer has even once been used to solve any problem faster than your laptop could solve it, or at least not in any way that depended on its being a quantum computer. In a post-quantum-supremacy world, that’s no longer the case. A superposition involving 250 or 260 complex numbers has been computationally harnessed, using time and space resources that are minuscule compared to 250 or 260.

I keep bringing up the Wright Flyer only because the chasm between what we’re talking about, and the dismissiveness I’m seeing in some corners of the Internet, is kind of breathtaking to me. It’s like, if you believed that useful air travel was fundamentally impossible, then seeing a dinky wooden propeller plane keep itself aloft wouldn’t refute your belief … but it sure as hell shouldn’t reassure you either.</blockquote>

]]></description>
<dc:subject>google programming quantum-computing qubits future science qc history research</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:a377f8b61791/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:google"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:quantum-computing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:qubits"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:future"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:science"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:qc"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:history"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:research"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://gamozolabs.github.io/fuzzing/2018/10/14/vectorized_emulation.html">
    <title>Vectorized Emulation: Hardware accelerated taint tracking at 2 trillion instructions per second | Gamozo Labs Blog</title>
    <dc:date>2019-08-06T22:15:12+00:00</dc:date>
    <link>https://gamozolabs.github.io/fuzzing/2018/10/14/vectorized_emulation.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>The goal is to take standard applications and JIT them to their AVX-512 equivalent such that we can fuzz 16 VMs at a time per thread. The net result of this work allows for high performance fuzzing (approx 40 billion to 120 billion instructions per second [the 2 trillion clickbait number is theoretical maximum]) depending on the target, while gathering differential coverage on code, register, and memory state.

By gathering more than just code coverage we are able to track state of code deeper than just code coverage itself, allowing us to fuzz through things like memcmp() without any hooks or static analysis of the target at all.

Further since we’re running emulated code we are able to run a soft MMU implementation which has byte-level permissions. This gives us stronger-than-ASAN memory protections, making bugs fail faster and cleaner.</blockquote>

]]></description>
<dc:subject>fuzzing hardware performance programming virtualization avx-512 avx</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:6799ab9fe87d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fuzzing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hardware"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:virtualization"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:avx-512"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:avx"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.teamten.com/lawrence/writings/why-i-dont-like-go.html">
    <title>Ten Reasons Why I Don't Like Golang</title>
    <dc:date>2018-03-19T21:31:07+00:00</dc:date>
    <link>https://www.teamten.com/lawrence/writings/why-i-dont-like-go.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>When I first started programming in Go, my summary of it was, “The good things are great and the bad things are weird and I can live with them.” After another three years and a few large projects in Go, I no longer like the language and wouldn’t use it for a new project. Here are 10 reasons why, in no particular order.</blockquote>

]]></description>
<dc:subject>golang go coding languages programming gripes</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:6a2214adfcb2/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:golang"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:go"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:languages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gripes"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://news.ycombinator.com/item?id=14691212">
    <title>terrible review for Solidity as a programming environment in HN</title>
    <dc:date>2017-07-24T13:39:27+00:00</dc:date>
    <link>https://news.ycombinator.com/item?id=14691212</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>"Solidity/EVM is by far the worst programming environment I have ever encountered. It would be impossible to write even toy programs correctly in this language, yet it is literally called "Solidity" and used to program a financial system that manages hundreds of millions of dollars."</blockquote>

Via Tony Finch

]]></description>
<dc:subject>blockchain ethereum programming coding via:fanf funny fail floating-point money json languages bugs reliability</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:ca02abcc222e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:blockchain"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ethereum"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:fanf"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:funny"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fail"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:floating-point"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:money"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:json"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:languages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bugs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:reliability"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://linusakesson.net/scene/a-mind-is-born/">
    <title>A Mind Is Born</title>
    <dc:date>2017-04-22T08:09:09+00:00</dc:date>
    <link>https://linusakesson.net/scene/a-mind-is-born/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[A C=64 demo in 256 bytes!  Awesome work.  Use of an LFSR number generator to create the melody is particularly clever (via Craig)]]></description>
<dc:subject>art programming computers demos demoscene c-64 via:craig lfsr algorithms</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:a3fac5c4ac82/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:art"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:computers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:demos"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:demoscene"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:c-64"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:craig"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lfsr"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:algorithms"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.cs.princeton.edu/~rs/talks/AC11-Cardinality.pdf">
    <title>HyperBitBit</title>
    <dc:date>2017-03-24T10:32:13+00:00</dc:date>
    <link>https://www.cs.princeton.edu/~rs/talks/AC11-Cardinality.pdf</link>
    <dc:creator>jm</dc:creator><description><![CDATA[jomsdev notes:

'Last year, in the AofA’16 conference Robert Sedgewick proposed a new algorithm for cardinality estimation.   Robert Sedgwick is a professor at Princeton with a long track of publications on combinatorial/randomized algorithms. He was a good friend of Philippe Flajolet (creator of Hyperloglog) and HyperBitBit it's based on the same ideas. However, it uses less memory than Hyperloglog and can provide the same results. On practical data, HyperBitBit, for N < 2^64 estimates cardinality within 10% using only 128 + 6 bits.']]></description>
<dc:subject>algorithms programming cs hyperloglog estimation cardinality counting hyperbitbit</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:2aaffbaaae74/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:algorithms"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hyperloglog"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:estimation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cardinality"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:counting"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hyperbitbit"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://erikbern.com/2017/03/15/the-eigenvector-of-why-we-moved-from-language-x-to-language-y.html">
    <title>The eigenvector of &quot;Why we moved from language X to language Y&quot;</title>
    <dc:date>2017-03-16T23:18:20+00:00</dc:date>
    <link>https://erikbern.com/2017/03/15/the-eigenvector-of-why-we-moved-from-language-x-to-language-y.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[this is actually quite interesting data]]></description>
<dc:subject>statistics programming languages golang go mysql coding</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:bc481ec8d1b8/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:statistics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:languages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:golang"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:go"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://donatstudios.com/Falsehoods-Programmers-Believe-About-CSVs">
    <title>Falsehoods Programmers Believe About CSVs</title>
    <dc:date>2017-01-11T12:21:41+00:00</dc:date>
    <link>https://donatstudios.com/Falsehoods-Programmers-Believe-About-CSVs</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Much of my professional work for the last 10+ years has revolved around handing, importing and exporting CSV files. CSV files are frustratingly misunderstood, abused, and most of all underspecified. While RFC4180 exists, it is far from definitive and goes largely ignored.

Partially as a companion piece to my recent post about how CSV is an encoding nightmare, and partially an expression of frustration, I've decided to make a list of falsehoods programmers believe about CSVs. I recommend my previous post for a more in-depth coverage on the pains of CSVs encodings and how the default tooling (Excel) will ruin your day.</blockquote>

(via Tony Finch)]]></description>
<dc:subject>via:fanf csv excel programming coding apis data encoding transfer falsehoods fail rfc4180</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c8921999d6ab/</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:csv"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:excel"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apis"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:encoding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:transfer"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:falsehoods"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fail"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rfc4180"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://martinfowler.com/bliki/TechnicalDebtQuadrant.html">
    <title>The Technical Debt Quadrant</title>
    <dc:date>2016-10-05T13:29:28+00:00</dc:date>
    <link>http://martinfowler.com/bliki/TechnicalDebtQuadrant.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Martin Fowler's take on the 4 kinds of tech debt]]></description>
<dc:subject>programming design tech-debt technical-debt deadlines product ship</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:ed1c826ba271/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tech-debt"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:technical-debt"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:deadlines"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:product"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ship"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://en.wikipedia.org/wiki/Lamport_timestamps">
    <title>Lamport timestamps</title>
    <dc:date>2016-05-24T11:08:11+00:00</dc:date>
    <link>https://en.wikipedia.org/wiki/Lamport_timestamps</link>
    <dc:creator>jm</dc:creator><description><![CDATA['The algorithm of Lamport timestamps is a simple algorithm used to determine the order of events in a distributed computer system. As different nodes or processes will typically not be perfectly synchronized, this algorithm is used to provide a partial ordering of events with minimal overhead, and conceptually provide a starting point for the more advanced vector clock method. They are named after their creator, Leslie Lamport.'

See also vector clocks (which I think would be generally preferable nowadays).]]></description>
<dc:subject>vector-clocks distributed programming algorithm clocks time leslie-lamport coding distcomp</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:03f67ba15148/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:vector-clocks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distributed"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:algorithm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clocks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:time"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:leslie-lamport"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distcomp"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://phys.org/news/2016-03-language-cells.html">
    <title>A programming language for E. coli</title>
    <dc:date>2016-04-04T10:15:44+00:00</dc:date>
    <link>http://phys.org/news/2016-03-language-cells.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Mind = blown.

<blockquote>MIT biological engineers have created a programming language that allows them to rapidly design complex, DNA-encoded circuits that give new functions to living cells. Using this language, anyone can write a program for the function they want, such as detecting and responding to certain environmental conditions. They can then generate a DNA sequence that will achieve it.
"It is literally a programming language for bacteria," says Christopher Voigt, an MIT professor of biological engineering. "You use a text-based language, just like you're programming a computer. Then you take that text and you compile it and it turns it into a DNA sequence that you put into the cell, and the circuit runs inside the cell."</blockquote>

]]></description>
<dc:subject>dna mit e-coli bacteria verilog programming coding biohacking science</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:3c173c3fef51/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dna"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mit"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:e-coli"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bacteria"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:verilog"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:biohacking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:science"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.bbc.com/future/story/20160325-the-names-that-break-computer-systems">
    <title>These unlucky people have names that break computers</title>
    <dc:date>2016-03-29T11:55:39+00:00</dc:date>
    <link>http://www.bbc.com/future/story/20160325-the-names-that-break-computer-systems</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Pat McKenzie's name is too long to fit in Japanese database schemas; Janice Keihanaikukauakahihulihe'ekahaunaele's name was too long for US schemas; and Jennifer Null suffers from the obvious problem]]></description>
<dc:subject>databases design programming names coding japan schemas</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:005f384de103/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:databases"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:names"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:japan"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:schemas"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://elbenshira.com/blog/the-end-of-dynamic-languages/">
    <title>The End of Dynamic Languages</title>
    <dc:date>2015-11-30T13:50:07+00:00</dc:date>
    <link>http://elbenshira.com/blog/the-end-of-dynamic-languages/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>This is my bet: the age of dynamic languages is over. There will be no new successful ones. Indeed we have learned a lot from them. We’ve learned that library code should be extendable by the programmer (mixins and meta-programming), that we want to control the structure (macros), that we disdain verbosity. And above all, we’ve learned that we want our languages to be enjoyable.

But it’s time to move on. We will see a flourishing of languages that feel like you’re writing in a Clojure, but typed. Included will be a suite of powerful tools that we’ve never seen before, tools so convincing that only ascetics will ignore.
</blockquote>

]]></description>
<dc:subject>programming scala clojure coding types strong-types dynamic-languages languages</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:d2d6ff16f10a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scala"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clojure"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:types"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:strong-types"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dynamic-languages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:languages"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.daedtech.com/programmer-is-a-career-path-thank-you">
    <title>Programmer IS A Career Path, Thank You</title>
    <dc:date>2015-02-25T16:45:54+00:00</dc:date>
    <link>http://www.daedtech.com/programmer-is-a-career-path-thank-you</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Well said -- Amazon had a good story around this btw]]></description>
<dc:subject>programming coding career work life</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f9e4ed9e4d1b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:career"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:work"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:life"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://gender.stanford.edu/news/2011/researcher-reveals-how-%E2%80%9Ccomputer-geeks%E2%80%9D-replaced-%E2%80%9Ccomputergirls%E2%80%9D">
    <title>How “Computer Geeks” replaced “Computer Girls&quot;</title>
    <dc:date>2014-11-12T13:24:43+00:00</dc:date>
    <link>http://gender.stanford.edu/news/2011/researcher-reveals-how-%E2%80%9Ccomputer-geeks%E2%80%9D-replaced-%E2%80%9Ccomputergirls%E2%80%9D</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>As historian Nathan Ensmenger explained to a Stanford audience, as late as the 1960s many people perceived computer programming as a natural career choice for savvy young women. Even the trend-spotters at Cosmopolitan Magazine urged their fashionable female readership to consider careers in programming. In an article titled “The Computer Girls,” the magazine described the field as offering better job opportunities for women than many other professional careers. As computer scientist Dr. Grace Hopper told a reporter, programming was “just like planning a dinner. You have to plan ahead and schedule everything so that it’s ready when you need it…. Women are ‘naturals’ at computer programming.” James Adams, the director of education for the Association for Computing Machinery, agreed: “I don’t know of any other field, outside of teaching, where there’s as much opportunity for a woman.”</blockquote>

]]></description>
<dc:subject>history programming sexism technology women feminism coding</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:36fef2348006/</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:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sexism"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:technology"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:women"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:feminism"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://zachholman.com/talk/move-fast-break-nothing/">
    <title>Move Fast and Break Nothing</title>
    <dc:date>2014-10-09T15:56:46+00:00</dc:date>
    <link>http://zachholman.com/talk/move-fast-break-nothing/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Great presentation about Github dev culture and building software without breakage,  but still with real progress.]]></description>
<dc:subject>github programming communication process coding teams management dev-culture breakage</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:30418378b79d/</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:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:communication"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:process"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:teams"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:management"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dev-culture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:breakage"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.cl.cam.ac.uk/~srk31/blog/2014/10/07/">
    <title>Seven deadly sins of talking about “types”</title>
    <dc:date>2014-10-08T22:44:23+00:00</dc:date>
    <link>http://www.cl.cam.ac.uk/~srk31/blog/2014/10/07/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Good essay]]></description>
<dc:subject>programming types rants coding languages fp</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c405d9847894/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:types"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rants"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:languages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fp"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://research.microsoft.com/en-us/um/people/lamport/tla/formal-methods-amazon.pdf">
    <title>Use of Formal Methods at Amazon Web Services</title>
    <dc:date>2014-06-17T13:33:47+00:00</dc:date>
    <link>http://research.microsoft.com/en-us/um/people/lamport/tla/formal-methods-amazon.pdf</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Chris Newcombe, Marc Brooker, et al. writing about their experience using formal specification and model-checking languages (TLA+) in production in AWS:

<blockquote>
The success with DynamoDB gave us enough evidence to present TLA+ to the broader engineering community at Amazon. This raised a challenge; how to convey the purpose and benefits of formal methods to an audience of software engineers? Engineers think in terms of debugging rather than ‘verification’, so we called the presentation “Debugging Designs”.

Continuing that metaphor, we have found that software engineers more readily grasp the concept and practical value of TLA+ if we dub it 'Exhaustively-testable pseudo-code'.

We initially avoid the words ‘formal’, ‘verification’, and ‘proof’, due to the widespread view that formal methods are impractical. We also initially avoid mentioning what the acronym ‘TLA’ stands for, as doing so would give an incorrect impression of complexity. 
</blockquote>

More slides at http://tla2012.loria.fr/contributed/newcombe-slides.pdf ; proggit discussion at http://www.reddit.com/r/programming/comments/277fbh/use_of_formal_methods_at_amazon_web_services/]]></description>
<dc:subject>formal-methods model-checking tla tla+ programming distsys distcomp ebs s3 dynamodb aws ec2 marc-brooker chris-newcombe</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:8758e4d5f996/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:formal-methods"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:model-checking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tla"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tla+"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distsys"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distcomp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ebs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:s3"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dynamodb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:aws"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ec2"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:marc-brooker"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:chris-newcombe"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.righto.com/2014/03/the-programming-error-that-cost-mt-gox.html">
    <title>The programming error that cost Mt Gox 2609 bitcoins</title>
    <dc:date>2014-05-29T14:12:21+00:00</dc:date>
    <link>http://www.righto.com/2014/03/the-programming-error-that-cost-mt-gox.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Digging into broken Bitcoin scripts in the blockchain. Fascinating:

<blockquote>While analyzing coinbase transactions, I came across another interesting bug that lost bitcoins. Some transactions have the meaningless and unredeemable script:

OP_IFDUP
OP_IF
OP_2SWAP
OP_VERIFY
OP_2OVER
OP_DEPTH

That script turns out to be the ASCII text script. Instead of putting the redemption script into the transaction, the P2Pool miners accidentally put in the literal word "script". The associated bitcoins are lost forever due to this error.</blockquote>

(via Nelson)]]></description>
<dc:subject>programming script coding bitcoin mtgox via:nelson scripting dsls</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:a14c815def53/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:script"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bitcoin"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mtgox"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:nelson"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scripting"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dsls"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://learn.code.org/">
    <title>Learn.code.org</title>
    <dc:date>2014-05-16T09:02:46+00:00</dc:date>
    <link>http://learn.code.org/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Teaches the basics of computer science - K-8 Intro to CS, 15-25 hours.  Introduces core CS and programming concepts, with lots of nice graphics, scenarios and characters from games to get the kids hooked ;)  Recommended by Tom Raftery; his youngest (7yo) is having great fun with it.]]></description>
<dc:subject>education programming learning coding kids k-8 code.org games</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:fa6c10b1ee85/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:education"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:learning"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kids"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:k-8"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:code.org"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:games"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.linuxjournal.com/content/girls-and-software">
    <title>Girls and Software</title>
    <dc:date>2014-02-10T15:58:56+00:00</dc:date>
    <link>http://www.linuxjournal.com/content/girls-and-software</link>
    <dc:creator>jm</dc:creator><description><![CDATA[a pretty thought-provoking article from Linux Journal on women in computing, and how we're doing it all wrong]]></description>
<dc:subject>feminism community programming coding women computing software society work linux-journal children teaching</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:568cca680e6a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:feminism"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:community"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:women"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:computing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:software"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:society"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:work"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:linux-journal"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:children"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:teaching"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://stereopsis.com/radix.html">
    <title>stereopsis : graphics : radix tricks</title>
    <dc:date>2013-12-19T17:13:59+00:00</dc:date>
    <link>http://stereopsis.com/radix.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[some nice super-optimized Radix Sort code which handles floating point values.  See also http://codercorner.com/RadixSortRevisited.htm for more info on the histogramming/counter concept]]></description>
<dc:subject>sorting programming coding algorithms radix-sort optimization floating-point</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:456ae3d8f5c1/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sorting"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:algorithms"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:radix-sort"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:optimization"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:floating-point"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://pythonsweetness.tumblr.com/post/64740079543/how-to-lose-172-222-a-second-for-45-minutes">
    <title>How to lose $172,222 a second for 45 minutes</title>
    <dc:date>2013-10-22T12:27:50+00:00</dc:date>
    <link>http://pythonsweetness.tumblr.com/post/64740079543/how-to-lose-172-222-a-second-for-45-minutes</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Major outage and $465m of trading loss, caused by staggeringly inept software management: 8 years of incremental bitrot, technical debt, and failure to have correct processes to engage an ops team in incident response.  Hopefully this will serve as a lesson that software is more than just coding, at least to one industry]]></description>
<dc:subject>trading programming coding software inept fail bitrot tech-debt ops incident-response</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:35b102c3a492/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:trading"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:software"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:inept"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fail"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bitrot"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tech-debt"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:incident-response"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.juniorcycle.ie/Curriculum/Consultation/Short-Courses/Programming-and-Coding-Consultation-Page">
    <title>NCCA Junior Cycle - Programming and Coding Consultation Page</title>
    <dc:date>2013-10-21T16:03:42+00:00</dc:date>
    <link>http://www.juniorcycle.ie/Curriculum/Consultation/Short-Courses/Programming-and-Coding-Consultation-Page</link>
    <dc:creator>jm</dc:creator><description><![CDATA[the National Council for Curriculum and Assessment are looking for feedback on adding programming to the junior cycle (ie., early secondary school) in Ireland.  Add your EUR.02!]]></description>
<dc:subject>ireland programming coding education schools</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f8f9215928e2/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ireland"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:education"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:schools"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://adam-lynch.github.io/ked/">
    <title>Ked</title>
    <dc:date>2013-04-15T11:26:27+00:00</dc:date>
    <link>http://adam-lynch.github.io/ked/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>To our knowledge, Ked is the first scripting language to emerge from The People's Republic of Cork. Below is an account of what we know so far about the mysterious Corkonian language. Any suggested updates or contributions are encouraged.</blockquote>
Genius.
]]></description>
<dc:subject>coding cork jokes funny like languages programming</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:03b616e5b381/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cork"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jokes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:funny"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:like"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:languages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://neil.fraser.name/news/2013/03/16/">
    <title>CS in VN</title>
    <dc:date>2013-03-21T14:37:49+00:00</dc:date>
    <link>http://neil.fraser.name/news/2013/03/16/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Neil Fraser visits a school in Vietnam, and investigates their computer science curriculum.  They are doing an incredible job, it looks like -- very impressive!]]></description>
<dc:subject>vietnam programming education cs computer-science schools coding children</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:6aee9bbea52e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:vietnam"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:education"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:computer-science"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:schools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:children"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://gist.github.com/aphyr/5198654">
    <title>Thoughts on configuration file complexity</title>
    <dc:date>2013-03-19T23:32:03+00:00</dc:date>
    <link>https://gist.github.com/aphyr/5198654</link>
    <dc:creator>jm</dc:creator><description><![CDATA[some interesting thoughts on the old "Turing complete configuration language" question]]></description>
<dc:subject>configuration turing-complete programming ops testing</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:cbf5e726c98b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:configuration"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:turing-complete"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.lispcast.com/java-learn-from-clojure">
    <title>4 Things Java Programmers Can Learn from Clojure (without learning Clojure)</title>
    <dc:date>2013-03-07T16:35:04+00:00</dc:date>
    <link>http://www.lispcast.com/java-learn-from-clojure</link>
    <dc:creator>jm</dc:creator><description><![CDATA['1. Use immutable values; 2. Do no work in the constructor; 3. Program to small interfaces; 4. Represent computation, not the world'.  Strongly agreed with #1, and the others look interesting too]]></description>
<dc:subject>clojure lisp design programming coding java</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:25f93ccbe1e6/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clojure"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lisp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://nikic.github.com/2012/06/15/The-true-power-of-regular-expressions.html">
    <title>Can regular expressions parse HTML?</title>
    <dc:date>2013-02-21T14:07:56+00:00</dc:date>
    <link>http://nikic.github.com/2012/06/15/The-true-power-of-regular-expressions.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA['a summary of the main points:
The “regular expressions” used by programmers have very little in common with the original notion of regularity in the context of formal language theory.
Regular expressions (at least PCRE) can match all context-free languages. As such they can also match well-formed HTML and pretty much all other programming languages.
Regular expressions can match at least some context-sensitive languages.
Matching of regular expressions is NP-complete. As such you can solve any other NP problem using regular expressions.']]></description>
<dc:subject>compsci regexps regular-expressions programming np-complete chomsky-grammar context-free languages</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:ecb8bd1911d9/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:compsci"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:regexps"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:regular-expressions"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:np-complete"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:chomsky-grammar"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:context-free"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:languages"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://colinm.org/language_checklist.html">
    <title>Programming Language Checklist</title>
    <dc:date>2013-02-05T13:04:52+00:00</dc:date>
    <link>http://colinm.org/language_checklist.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA['You appear to be advocating a new:
[ ] functional  [ ] imperative  [ ] object-oriented  [ ] procedural [ ] stack-based
[ ] "multi-paradigm"  [ ] lazy  [ ] eager  [ ] statically-typed  [ ] dynamically-typed
[ ] pure  [ ] impure  [ ] non-hygienic  [ ] visual  [ ] beginner-friendly
[ ] non-programmer-friendly  [ ] completely incomprehensible
programming language.  Your language will not work.  Here is why it will not work.']]></description>
<dc:subject>humor programming funny coding languages</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:0f3b1f36a8db/</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:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:funny"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:languages"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://mechanical-sympathy.blogspot.com/2011/07/memory-barriersfences.html">
    <title>Memory Barriers/Fences</title>
    <dc:date>2012-11-24T21:39:32+00:00</dc:date>
    <link>http://mechanical-sympathy.blogspot.com/2011/07/memory-barriersfences.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Martin Thompson with a good description of the x86 memory barrier model and how it interacts with Java's JSR-133 memory model]]></description>
<dc:subject>architecture hardware programming java concurrency volatile jsr-133</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:b161ec6482e6/</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:hardware"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:concurrency"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:volatile"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:jsr-133"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.raspberrypi.org/archives/2565">
    <title>Does it run Minecraft? Well, since you ask…</title>
    <dc:date>2012-11-24T21:23:48+00:00</dc:date>
    <link>http://www.raspberrypi.org/archives/2565</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Going by the number of Minecraft fans among my friends' sons and daughters in the 8-12 age group, this is a great idea:

<blockquote>We sent a bunch of [Raspberry Pi] boards out to Notch and the guys at Mojang in Stockholm a little while back, and they’ve produced a port of Minecraft: Pocket Edition which they’re calling  Minecraft: Pi Edition. It’ll carry a revised feature set and support for several programming languages, so you can code direct into Minecraft before you start playing. (Or you can just – you know – play.) </blockquote>

]]></description>
<dc:subject>minecraft gaming programming coding raspberry-pi kids learning education</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:4766de3c54c1/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:minecraft"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gaming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:raspberry-pi"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kids"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:learning"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:education"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/">
    <title>#AltDevBlogADay » Functional Programming in C++</title>
    <dc:date>2012-10-27T08:59:25+00:00</dc:date>
    <link>http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[John Carmack makes a case for writing C++ in an FP style, with wide use of const and pure functions. something similar can be achieved in pure Java using Guava's Immutable types, to a certain extent. I love his other posts on this site -- he argues persuasively for static code analysis and keeping multiple alternative subsystem implementations, too]]></description>
<dc:subject>c++ programming functional-programming fp coding john-carmack const immutability</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c56c9d6b8a90/</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:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:functional-programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:john-carmack"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:const"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:immutability"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://venturebeat.com/2012/09/04/estonia-code-academy/">
    <title>Estonia introduces coding classes to 8-year-olds</title>
    <dc:date>2012-09-05T09:01:53+00:00</dc:date>
    <link>http://venturebeat.com/2012/09/04/estonia-code-academy/</link>
    <dc:creator>jm</dc:creator><description><![CDATA['ProgreTiiger education will start with students in the first grade, which starts around the age of 7 or 8 for Estonians. The compsci education will continue through a student’s final years of public school, around age 16. Teachers are being trained on the new skills, and private sector IT companies are also getting involved, which makes sense, given that these entities will likely end up being the long-term beneficiaries of a technologically literate populace. The ProgreTiiger program is launching at a few pilot schools and will soon be rolling out to all general education schools in Estonia.']]></description>
<dc:subject>estonia education coding programming kids children students learning school</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:e3c59fb70ac8/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:estonia"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:education"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kids"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:children"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:students"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:learning"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:school"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/alevchuk/vim-clutch">
    <title>the VIM clutch</title>
    <dc:date>2012-06-22T10:00:36+00:00</dc:date>
    <link>https://github.com/alevchuk/vim-clutch</link>
    <dc:creator>jm</dc:creator><description><![CDATA['VIM Clutch is a hardware pedal for improved text editing speed for users of the magnificent VIM text editor. When the pedal is pressed down, the pedal types "i" causing VIM to go into Insert Mode. When released, it types <Esc> and you are back in Normal Mode.' (via Andrew Delaney)]]></description>
<dc:subject>via:delaney vim programming ui pedals vi modal foot-switch</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:e08a512c2f35/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:delaney"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:vim"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ui"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pedals"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:vi"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:modal"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:foot-switch"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://alarmingdevelopment.org/?p=680">
    <title>An IDE is not enough</title>
    <dc:date>2012-05-13T20:45:12+00:00</dc:date>
    <link>http://alarmingdevelopment.org/?p=680</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Very thought-provoking response to that 'Light Table' demo which went round the aggregators a couple of weeks back.  'The fundamental reason IDEs have dead-ended is that they are constrained by the syntax and semantics of our programming languages. Our programming languages were all designed to be used with a text editor. It is therefore not surprising that our IDEs amount to tarted-up text editors. Likewise our programming languages were all designed with an imperative semantics that efficiently matches the hardware but defies static visualization. Indeed it would be a miracle if we could slap a new IDE on top of an old language and magically alter its syntactic and semantic assumptions. I don’t believe in miracles.  Languages and IDEs have co-evolved and neither can change without the other also changing. That is why three years ago I put aside my IDE work to focus on language design. Getting rid of imperative semantics is one of the goals. Another is getting rid of source text files (as well as ASTs, which carry all the baggage of a textual encoding minus the readability). This has turned out to be really really hard. And lonely – no one wants to even talk about these crazy ideas. Nevertheless I firmly believe that so long as we are programming in decendants of assembly language we will continue to program in descendants of text editors.'  (via Chris Horn)]]></description>
<dc:subject>via:cjhorn ide programming coding programming-languages semantics syntax source-code text</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:a8654174d787/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:cjhorn"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ide"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming-languages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:semantics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:syntax"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:source-code"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:text"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.martingsaunders.com/2012/02/teaching-primary-school-kids-to-code/">
    <title>The day I tried teaching primary school kids to code (and succeeded)</title>
    <dc:date>2012-03-20T13:02:42+00:00</dc:date>
    <link>http://www.martingsaunders.com/2012/02/teaching-primary-school-kids-to-code/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[via Niamh -- 'I learned a bit about teaching at primary level and I learned that it is pretty fun although REALLY hard work! I learned that if you make a complex subject engaging kids will learn it and are probably capable of a great deal more than they are often given credit for. The youngest kids on the day were year four which is aged 8-9 and although they were definitely more able than some of their peers, you can expect that by year 5-6 (aged 9-11) probably a lot of the kids could follow it and indeed learn to code.']]></description>
<dc:subject>coding education kids programming teaching school</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f8739b671a1b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:education"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kids"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:teaching"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:school"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.stanford.edu/class/cs345a/slides/05-LSH.pdf">
    <title>Near Neighbor Search in High Dimensional Data [PDF]</title>
    <dc:date>2012-02-22T11:27:39+00:00</dc:date>
    <link>http://www.stanford.edu/class/cs345a/slides/05-LSH.pdf</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Detect near-duplicates; would be good for future Razor-like efficient near-duplicate detection.  (slides)]]></description>
<dc:subject>slides algorithms email performance programming near-neighbour-search search</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:5d1174b2c395/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:slides"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:algorithms"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:email"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:near-neighbour-search"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:search"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.quora.com/Engineering-Management/Why-are-software-development-task-estimations-regularly-off-by-a-factor-of-2-3">
    <title>The best &quot;why estimation is hard&quot; parable I've read this week</title>
    <dc:date>2012-02-02T10:02:02+00:00</dc:date>
    <link>http://www.quora.com/Engineering-Management/Why-are-software-development-task-estimations-regularly-off-by-a-factor-of-2-3</link>
    <dc:creator>jm</dc:creator><description><![CDATA['A tense silence falls between us. The phone call goes unmade. I'll call tomorrow once my comrade regains his senses and is willing to commit to something reasonable.']]></description>
<dc:subject>agile development management programming teams estimation tasks software</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:c04b6424baf4/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:agile"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:development"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:management"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:teams"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:estimation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tasks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:software"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.siliconrepublic.com/innovation/item/24999-coding-for-our-lives?">
    <title>SiliconRepublic story on CoderDojo</title>
    <dc:date>2011-12-15T21:08:21+00:00</dc:date>
    <link>http://www.siliconrepublic.com/innovation/item/24999-coding-for-our-lives?</link>
    <dc:creator>jm</dc:creator><description><![CDATA['it's both incredible and poignant that a voluntary movement that was born in Ireland during the summer is about to go international. Coder Dojo, the brainchild of 19-year-old entrepreneur and programmer James Whelton from Cork and tech entrepreneur Bill Liao, began as a Saturday morning club for kids to teach each other software programming.  It has grown into a national movement up and down Ireland, a place where kids and their parents can go and learn to write software code in a friendly environment. The first UK Coder Dojo was held in London only last week and other countries in Europe are clamouring to get the initiative started there, too.'  Good on them!]]></description>
<dc:subject>coderdojo programming coding kids children teaching education tech ireland</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:8b605da5a485/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coderdojo"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kids"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:children"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:teaching"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:education"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tech"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ireland"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.mikealrogers.com/posts/apache-considered-harmful.html">
    <title>Apache considered harmful</title>
    <dc:date>2011-11-23T21:59:04+00:00</dc:date>
    <link>http://www.mikealrogers.com/posts/apache-considered-harmful.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[ouch]]></description>
<dc:subject>git asf apache via:hn github programming</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:fd68b4e57a32/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:git"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:asf"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:apache"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:hn"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:github"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://eclim.org/">
    <title>eclim (eclipse + vim)</title>
    <dc:date>2011-11-15T13:22:06+00:00</dc:date>
    <link>http://eclim.org/</link>
    <dc:creator>jm</dc:creator><description><![CDATA['Eclim is less of an application and more of an integration of two great projects. The first, Vim, is arguably one of the best text editors in existence. The second, Eclipse, provides many great tools for development in various languages. Each provides many features that can increase developer productivity, but both still leave something to be desired. Vim lacks native Java support and many of the advanced features available in Eclipse. Eclipse, on the other hand, still requires the use of the mouse for many things, and when compared to Vim, provides a less than ideal interface for editing text.  That is where eclim comes into play. Instead of trying to write an IDE in Vim or a Vim editor in Eclipse, eclim provides an Eclipse plug-in that exposes Eclipse features through a server interface, and a set of Vim plug-ins that communicate with Eclipse over that interface. This functionality can be leveraged in three primary ways, as illustrated below.']]></description>
<dc:subject>eclipse java programming software vim editors refactoring</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f8857bc0f67c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:eclipse"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:java"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:software"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:vim"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:editors"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:refactoring"/>
</rdf:Bag></taxo:topics>
</item>
</rdf:RDF>