John Marshall

John Marshall

@johnm.bsky.social

Bioinformatics tools developer at Australia’s Centre for Population Genomics. Will edit GA4GH specifications for food. New Zealander fairly recently returned after a decade in the U.K.

970 followers327 following331 posts

John Marshall reposted

Don’t let ANYONE tell you you can’t vote! Cast a special vote NO MATTER WHAT. It will then be counted as a disallowed vote and we will be able to see how much this evil government cheated. #nzpol

This post is unavailable.

John Marshall reposted

HTSJDK 6.0.0 is released! Major updates include: - Full support for VCF 4.0-4.5 (finally) - Full support for BCF 2.2 (including bgzf) - File->Path everywhere for NIO file system plugins - Proper CRAM/CRAI indexing - CSI index support for many formats - Non-trivial performance improvements

In which someone's AI suggests exactly the same thing as I did seven years ago… …except that it suggests adding a note to the instructions rather than a contextually adjusted note to the end of the build log, because it doesn't understand no one ever reads the instructions.

github.comCompiling from source error · Issue #1033 · samtools/bcftoolsI am trying to compile bcftools with perl support but have met the same error on two systems (CentOS7 and Ubuntu18.04LTS), with the 1.9 release source and latest commit 4caf1fd. Same method in all ...

Somewhat embarrassed to have emailed my Labour candidate this morning on the basis of the uncorrected article. Thanks a lot RNZ! Still, good for him for replying within an hour, which is more than his predecessor has managed since I emailed her on this topic back in August.

This post is unavailable.

John Marshall reposted

Well the time I and other experts sent both submitting and then talking to labour ministers about why this is a terrible idea unsupported by facts was clearly well spent. Dear Labour: Campaigning on "we'll ignore experts, just like National!" may not be the winner you expect it to be. #nzpol

This post is unavailable.

John Marshall reposted

SCOOP: A majority of Cabinet wanted New Zealand to back a vote on a new UN pandemic treaty but Winston Peters made the call not to, @samsachdeva.bsky.social reports. NZ and Paraguay were only countries to abstain, US, Israel and Argentina voted against. newsroom.co.nz/2026/10/13/p...

newsroom.co.nzPeters overrides Govt ministers on UN pandemic voteMajority of ministers wanted to vote in favour of declaration on pandemic prevention – but with no Cabinet decision needed, the foreign minister made a captain's call.

Python 3.15 final has now been released. We built pysam 0.24.1 with 3.15 RC2 (which is guaranteed to be ABI-compatible with the eventual final release) so the next entry in this table is minus 1 month (3.15) 🎉

John Marshall@johnm.bsky.social

Over the last few years we've had new-Python-release-wheel-containing pysam releases out 1.5 months (3.10), 6 months (3.11), 3 days (3.12), 4 months (3.13), and 6 months (3.14) after the respective release. I'm aiming to make that statistic negative this time!

John Marshall reposted

Twenty years ago, on October 7, 2006, Anna Politkovskaya was murdered by Putin’s henchmen. She had warned about the true nature of the russian regime and urged that it not be allowed to continue until it was too late. Western leaders chose to listen to the appeasers—or succumbed to corruption.

In Python function definitions, parameters before / are positional-only; parameters after * are keyword-only. The * is old, and even / has been around since 3.8 so no longer counts as newfangled. (Noted here so I might remember it clearly in future…)

What's worse than a drive-by pull request from some rando with no interest in your project who merely pointed their AI at one of your open issues? That same drive-by PR, but when the issue reporter (and their cybernetic friend) has already opened a superior PR fixing the problem.

Wondering where the Python Standard Library documentation's sections on built-in functions, constants, types, and exceptions went? They were moved to a new top-level Built-ins section alongside Library/Language/etc three weeks ago. Now I regularly need to look at two index pages instead of one…

github.comDocs: split builtins to their own page from library by nedbat · Pull Request #156682 · python/cpythonWe've talked about separating the built-ins from the stdlib modules, since "dict" (for example) isn't part of the stdlib. I think I took care of all the places the pages are refer...

John Marshall reposted

Seacliff farm sheds, North Dunedin #Nikon #Rural I've always been a fan of this fangled new 'hyper localism', a reaction to 'influencer photographers' all travelling to the same insanely beautiful 'secret' location to get iconic shots. Celebrating the local rocks my boat too

John Marshall reposted

I'm at Unity Bookshop Wellington for the Nicky Hager book launch. The event is not due to start until 6 pm, but the room is mostly full already and filling up fast.

Investigating pysam wheel sizes had been on my to-do list for a while. Recently realising that we'd used 6 GiB out of our default 10 GiB PyPI limit and had room for maybe five more releases made it urgent. Last week's 0.24.1 release reduces the per-release total from ~760 MiB to ~150 MiB. 🧬🖥️ 🧵

View full thread

Exceptions raised by pysam show a Python/Cython stack trace, but AIUI any C debugging information would only be displayed by a C debugger like gdb. The default debugging level comes from compiler settings tuned for building Python itself and is not really suitable for building Cython extensions.

github.comOmit all C debugging symbols from pre-built wheels · pysam-developers/pysam@cebcb9eC debugging information is largely unnecessary in a Python context. Most people who might use gdb or another C debugger with pysam are not using pre-built wheels, or could rerun against a hand-buil...

Overall the unnecessary source code and bundled libraries were substantial, but the biggest component was the out of control GCC debugging symbols, which are particularly bloated for the style of code generated by Cython. I considered ‑g1 but other Cython projects that control this mostly use ‑g0.

Investigating pysam wheel sizes had been on my to-do list for a while. Recently realising that we'd used 6 GiB out of our default 10 GiB PyPI limit and had room for maybe five more releases made it urgent. Last week's 0.24.1 release reduces the per-release total from ~760 MiB to ~150 MiB. 🧬🖥️ 🧵

The most obvious problem was that somewhere along the line htslib, samtools, bcftools, and Cython source code and the compiled-into-voluminous-C Cython code became included in the binary wheels. This turned out to be an inadvertent byproduct of adding a pyproject.toml build configuration file.

github.comOmit files unnecessarily added to wheels · pysam-developers/pysam@12a71e8A pyproject.toml file was added in March 2023, which inadvertently changed the include_package_data default from False to True. Explicitly set it to False to omit *.c, *.pyx, etc source files, redu...

Python wheels bundle the more exotic system libraries to make themselves portable across distros and OS versions. On Linux this embedded libcurl in wheels — along with 20 other system libraries pulled in by it. Preventing this has several advantages, including sidestepping some security concerns.

John Marshall@johnm.bsky.social

Probably the biggest organisational change we've made in pysam for a while: Dynamically load libcurl and libcrypto in order to subvert Linux wheel repair and avoid these libraries being bundled into the final wheels. (This organisational change affects only the pre-built Linux wheels.)

Today's pysam 0.24.1 release bundles htslib, samtools, and bcftools 1.24 and has pre-built wheels on PyPI for Python 3.9 through 3.15. Wheels are much smaller than in previous releases. It includes type hint fixes, some speed optimisations, and a new reverse_complement() utility function. 🧬🖥️

github.comRelease v0.24.1 · pysam-developers/pysamThis minor pysam release wraps htslib/samtools/bcftools version 1.24. It has been tested with Python versions 3.9 through 3.15 (RC2) and wheels are available via PyPI for all of those Python versio...

Probably the biggest organisational change we've made in pysam for a while: Dynamically load libcurl and libcrypto in order to subvert Linux wheel repair and avoid these libraries being bundled into the final wheels. (This organisational change affects only the pre-built Linux wheels.)

github.comPrevent libcurl/libcrypto/et al being bundled in Linux wheels by jmarshall · Pull Request #1420 · pysam-developers/pysamAn alternative to PR #1415 which reapplied the CA bundle location hack to hfile_s3.c. Because Linux wheels bundle libcurl.so and are built on AlmaLinux (i.e., a Red Hat flavoured distro); and becau...

A week later, and no response from my electorate MP other than the autoreply from her office. I also emailed Reuben Davidson asking if the public are allowed to read his reported “79 questions” letter… 🦗🦗 Labour really working hard to earn every vote here… 🙄

John Marshall@johnm.bsky.social

Surely (surely…!) Labour would not offer support to the government on a contentious topic less than three months before an election. I've told my Labour MP what will happen to my vote if the party supports this, and I hope they get a deluge of such letters.

John Marshall reposted

Just reflecting on the fact that when a Kiwi was seized and detained for weeks by the US regime, our Minister of Foreign Affairs (who also leads a party in govt) responded by sharing an elaborate and obvious lie that it was her own fault- -and it has disappeared down the memory hole already. 1/

John Marshall reposted

Very disappointed to see the govt proposing a ban on under-16s using social media. While we agree there is work to be done, a ban is the wrong approach and interferes with young people's rights to communicate with family, each other, and the wider world. www.rnz.co.nz/news/politic...

rnz.co.nzWatch live: Govt pushes ahead with social media ban for under-16sThe government is pressing ahead with its ban on social media for under-16 year olds, with the legislation set to be introduced on Monday.

Surely (surely…!) Labour would not offer support to the government on a contentious topic less than three months before an election. I've told my Labour MP what will happen to my vote if the party supports this, and I hope they get a deluge of such letters.

John Marshall reposted

Wait what, synthID requires access to the secret key used to encode the watermark? And we just have to trust the person with the secret to say yes or no? I know DRM is pretty useless, but this is next level useless.

John Marshall reposted

There was no cholera in ancient or medieval Europe; it’s a 19th century arrival to Europe

Riley Bruce@rileybruce.bsky.social

What’s a thing from your area of expertise (or special interest) that you think it would behoove everyone else to know?

Last year 2785 people voted in the InternetNZ Board election, and 1046 (37%) of them had an FSU candidate as their first preference. This year 3104 people voted, 1923 (61%) of them for an FSU candidate as first pref. Very unevenly: Brown had 1822 (58%) of the first prefs and—go figure—was elected.

So last year 1739 people voted non-FSU as their first pref. This year only 1181 people voted non-FSU as their first preference. Questions about vote splitting and strategies are immaterial. We lost because our numbers went backwards. And theirs doubled. What the hell.

(It's late and I didn't read enough digits off my reverse Polish calculator… 1923/3104 = 61.95% which is why everyone else is reporting that awful number as 62%.)

First #InternetNZ AGM motion vote at 7.30, scheduled for a minute or two after 6:55 — we're only running half an hour late after two hours elapsed!

Thalia@thaliathalia.bsky.social

InternetNZ AGM peeps: voting on motions is starting NOW!

Currently ~900 people in the InternetNZ AGM meeting. Early days yet, still just testing the voting system — if memory serves, we spent AGES doing this last year!