41554 blogs · [ { "id": "01a087e1-d07c-7138-90d3-b3ce6e650fd6", "title": "Using Claude Code in devcontainers", "url": "https://sjp.co.nz/posts/claude-code-in-devcontainers/", "published_at": "2026-08-27T00:00:00+00:00" }, { "id": "01a087e1-d081-7317-b90c-4569a07e3b38", "title": "Most string operations aren't safe", "url": "https://sjp.co.nz/posts/most-string-operations-arent-safe/", "published_at": "2026-08-11T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a1724fff", "title": "AvroTools", "url": "https://sjp.co.nz/projects/avrotools/", "published_at": "2025-03-17T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a1ed728c", "title": "Get WiFi", "url": "https://sjp.co.nz/projects/get-wifi/", "published_at": "2025-03-17T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a2003775", "title": "Is My ID Leaky?", "url": "https://sjp.co.nz/projects/is-my-id-leaky/", "published_at": "2025-03-17T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a240e882", "title": "Tanstack Query SharedWorker Persister", "url": "https://sjp.co.nz/projects/query-shared-worker-persister/", "published_at": "2025-03-13T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a2f0a063", "title": "grConvert", "url": "https://sjp.co.nz/projects/grconvert/", "published_at": "2014-10-06T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a394f021", "title": "grImport2", "url": "https://sjp.co.nz/projects/grimport2/", "published_at": "2014-10-06T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a42f8fd8", "title": "Hexagonal Binning", "url": "https://sjp.co.nz/projects/msc-thesis/examples/hexbin/", "published_at": "2014-06-01T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a43e3d68", "title": "Interactive ARIMA Model Diagnostics", "url": "https://sjp.co.nz/projects/msc-thesis/examples/arima/", "published_at": "2014-06-01T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a445d903", "title": "LOESS Smoothing", "url": "https://sjp.co.nz/projects/msc-thesis/examples/loess/", "published_at": "2014-06-01T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a497d3f2", "title": "Multidimensional Scaling", "url": "https://sjp.co.nz/projects/msc-thesis/examples/mds/", "published_at": "2014-06-01T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a508cc41", "title": "Sampling Variation Teaching Visualisation", "url": "https://sjp.co.nz/projects/msc-thesis/examples/sampling-variation/", "published_at": "2014-06-01T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a5b662e0", "title": "TimingManager", "url": "https://sjp.co.nz/projects/timing-manager/", "published_at": "2013-01-09T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a5d80024", "title": "Retiring GOMstreamer", "url": "https://sjp.co.nz/posts/retiring-gomstreamer/", "published_at": "2013-01-07T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a66f031f", "title": "selectr", "url": "https://sjp.co.nz/projects/selectr/", "published_at": "2012-12-24T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a746e3ec", "title": "iNZight", "url": "https://sjp.co.nz/projects/inzight/", "published_at": "2012-07-21T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a7da50fa", "title": "Visual Inference Tools", "url": "https://sjp.co.nz/projects/visual-inference-tools/", "published_at": "2012-07-21T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a84e26da", "title": "Rainbow", "url": "https://sjp.co.nz/projects/rainbow/", "published_at": "2012-07-18T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a8d34980", "title": "knitr Support in Emacs (via ESS)", "url": "https://sjp.co.nz/posts/emacs-ess-knitr/", "published_at": "2012-05-22T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4a9a25865", "title": "(get|set)SVGFonts", "url": "https://sjp.co.nz/projects/gridsvg/docs/get-set-svgfonts/", "published_at": "2011-09-19T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4aa3db8c4", "title": "Patch for VMware Workstation", "url": "https://sjp.co.nz/posts/patch-for-vmware-workstation/", "published_at": "2011-09-18T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4ab344209", "title": "arrayQualityMetrics Figure", "url": "https://sjp.co.nz/projects/gridsvg/demos/aqm/", "published_at": "2011-07-06T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4ab4151b9", "title": "Gapminder - Multi Panel", "url": "https://sjp.co.nz/projects/gridsvg/demos/gapminder-multi/", "published_at": "2011-07-06T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4ab6fe32b", "title": "Gapminder - Single Panel", "url": "https://sjp.co.nz/projects/gridsvg/demos/gapminder-single/", "published_at": "2011-07-06T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4abfc6850", "title": "grid.animate", "url": "https://sjp.co.nz/projects/gridsvg/docs/grid-animate/", "published_at": "2011-07-06T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4ace6677f", "title": "grid.garnish", "url": "https://sjp.co.nz/projects/gridsvg/docs/grid-garnish/", "published_at": "2011-07-06T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4adaf4ece", "title": "grid.hyperlink", "url": "https://sjp.co.nz/projects/gridsvg/docs/grid-hyperlink/", "published_at": "2011-07-06T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4ae57dac3", "title": "grid.script", "url": "https://sjp.co.nz/projects/gridsvg/docs/grid-script/", "published_at": "2011-07-06T00:00:00+00:00" }, { "id": "01a087e1-d082-73dc-9450-f8d4af4a1b8f", "title": "HTML5 Interactivity", "url": "https://sjp.co.nz/projects/gridsvg/demos/html5/", "published_at": "2011-07-06T00:00:00+00:00" }, { "id": "01a087e1-d083-7126-8270-74503cbffab7", "title": "Stock Ticker", "url": "https://sjp.co.nz/projects/gridsvg/demos/stock-ticker/", "published_at": "2011-07-06T00:00:00+00:00" }, { "id": "01a087e1-d084-7147-b40a-2e7d4314486f", "title": "Teaching Example", "url": "https://sjp.co.nz/projects/gridsvg/demos/wildanim/", "published_at": "2011-07-06T00:00:00+00:00" }, { "id": "01a087e1-d084-7147-b40a-2e7d435bce34", "title": "Tooltips", "url": "https://sjp.co.nz/projects/gridsvg/demos/tooltips/", "published_at": "2011-07-06T00:00:00+00:00" }, { "id": "01a087e1-d084-7147-b40a-2e7d43a0ce41", "title": "GOMstreamer", "url": "https://sjp.co.nz/projects/gomstreamer/", "published_at": "2011-01-05T00:00:00+00:00" }, { "id": "01a087e1-d084-7147-b40a-2e7d4456db1d", "title": "Building nginx for Debian systems", "url": "https://sjp.co.nz/posts/building-nginx-for-debian-systems/", "published_at": "2010-07-14T00:00:00+00:00" }, { "id": "01a087e1-d084-7147-b40a-2e7d44f8e30e", "title": "Exploring R's function call semantics", "url": "https://sjp.co.nz/posts/exploring-r-function-call-semantics/", "published_at": "2010-03-23T00:00:00+00:00" }, { "id": "01a087e1-d084-7147-b40a-2e7d45b1b917", "title": "NormalLaplace", "url": "https://sjp.co.nz/projects/nl/", "published_at": "2010-03-02T00:00:00+00:00" }, { "id": "01a087e1-d084-7147-b40a-2e7d45bc31ff", "title": "GeneralizedHyperbolic", "url": "https://sjp.co.nz/projects/ghyp/", "published_at": "2010-02-23T00:00:00+00:00" }, { "id": "01a087e1-d084-7147-b40a-2e7d46290787", "title": "GitHub Contest Entry", "url": "https://sjp.co.nz/posts/github-contest-entry/", "published_at": "2010-02-23T00:00:00+00:00" }, { "id": "01a087e1-d084-7147-b40a-2e7d4685057a", "title": "About", "url": "https://sjp.co.nz/about/", "published_at": null }, { "id": "01a087e1-d084-7147-b40a-2e7d476f8434", "title": "Page Not Found", "url": "https://sjp.co.nz/404/", "published_at": null } ] posts Claim your blog
Back to sjp.co.nz
Blog · corpus.blog/blogs/sjp.co.nz/posts

sjp.co.nz

sjp.co.nz

2026

2025

2014

2013

2012

2011

2010

Undated