A dire controversy

When science and sensationalism collide.

Ian Wilmut's end goal was not to produce a lamb.

For years, it had been known that the stem cells of a mammalian embryo have the ability to differentiate into any type of cell. This so-called totipotency, however, is lost in adult cells. The general assumption was that this loss was permanent. Wilmut set out to show otherwise.

The first cloned mammal

The British researcher, along with Keith Campbell and other colleagues at the University of Edinburgh's Roslin Institute, isolated a cell from the mammary gland of an adult sheep. The cell's nucleus (and thus its DNA) was removed and placed in the emptied egg cell of a second sheep, and a third was impregnated. Two hundred and seventy-seven attempts led to the creation of only twenty-nine embryos. Only one of those twenty-nine would make it to birth. On July 5, 1996, Dolly entered the world as the first mammal to be cloned from an adult cell.

Her existence was revealed the following February, leading to a wave of sensationalist speculation about the future of cloning. Many wondered if human cloning was just around the corner, and President Clinton went so far as to ban federal funding for potential experiments. Today, we have yet to clone a human being, but Dolly's birth left its mark nonetheless.

Dolly proved to be just the first of many animals produced using Wilmut's nuclear transfer technique, and the discovery that a single adult cell could be induced to create an entirely new being revolutionized the field of regenerative medicine. We've transformed adult skin cells into functioning blood cells, and have even succeeded in growing organoids, small cell clusters that mimic the function of a kidney, lung, heart, or even a brain.

De-extinction

Human cloning remains in the realm of science fiction, and the ethical and moral issues surrounding it will likely keep it there for the foreseeable future. However, another potential use of cloning has seen increased interest in the last decade or so β€”the possibility of de-extinction. The idea is a tantalizing one. Could we right our past wrongs and resurrect the Steller's sea cow, the great auk, the dodo? We know from history that passenger pigeons were capable of darkening the sky with their sheer numbers. Could we see such a wonderful sight again?

This line of speculation has even extended into our prehistory. Jurassic Park is impossibleβ€”DNA can last roughly only a million years in ideal conditionsβ€”but we can imagine a Pleistocene Park filled with aurochs, cave lions, Irish elk, and woolly mammoths. There are plenty of fossil specimens. We've sequenced the genomes of both mammoths and Neanderthals. It should be a snap.

Except it's not.

We have only managed to bring back one extinct animal, the Pyrenean ibex. Unfortunately, the sole kid that resulted suffered from a lung defect and died several minutes after her birth, granting the Pyrenean ibex the dubious distinction of having gone extinct twice.

Over the last decade and change, we have been promised the resurrection of the woolly mammoth, perhaps the most charismatic of the Pleistocene megafauna. One has yet to be born. The genetic engineering company Colossal Biosciences is the latest to throw its hat in the ring, vowing to produce a mammoth calf by 2028.

Science by press release

In fact, Colossal made headlines back in April with the stunning announcement that they had managed to create three dire wolf pups, bringing a prehistoric species back to life for the very first time. The news was sensational... and, indeed, sensationalist.

Scientists greeted the announcement with skepticism. It was pointed out almost immediately that the three pups were grey wolves with genes edited to give them dire wolf-like traits. They are not true dire wolves. In fact, it is now suspected that dire wolves themselves were not closely related to grey wolves, having diverged from other canid lineages 5.7 million years ago. Colossal, in their zeal, overlooked this research.


READ: The resurrection of the American chestnut


That isn't the only thing they overlooked, either. Colossal's stated aim is to clone endangered and extinct animals and reintroduce them into their natural habitats. This is certainly a noble goal, but what if the animal's old habitat no longer exists? It's a particularly thorny problem for those that went extinct many millennia ago. The dire wolf was native to the Americas, but the Americas of the Pleistocene were radically different compared to today. Any potential mammoth faces a similar issueβ€”the cold and dry mammoth steppe that once spanned two continents disappeared when the climate warmed.

De-extinction brings with it another dilemma. It's one thing to bring back a species that we know for certain was wiped out by humans. It's quite another to bring back one that may have died out for purely natural reasons. We know that there was a megafaunal extinction in the late Pleistocene and early Holocene, but we don't know exactly how big of a role humans played in it. The world was entering the current interglacial, and much of the megafauna certainly would've been ill-equipped for it. The question is this: should we focus cloning efforts on those species whose extinctions were definitively caused by humans, or should we focus on species who died in the natural course of evolution because we think it'd be neat to see them?

Over a month went by before Colossal finally admitted that their pups were merely grey wolves that had been tinkered with genetically. It is worth pointing out, however, that their website still proudly states that dire wolves live again. Their messaging has been, to put it mildly, confusedβ€”and once again, sensationalism has been confused for science.

Comments

/* * OnlySky UTM Capture Shim β€” Sprint 1 / D4 * * Paste into Ghost Admin β†’ Settings β†’ Code Injection β†’ Site Footer (NOT Header). * Append after the existing gtag signup-event block; this script is independent * and stateless across page loads except for localStorage. * * What it does: * 1. On every page load: parse UTM params from window.location.search. If any * utm_* present AND no first-touch UTM already in localStorage, write the * five UTM params + landing slug + capture timestamp into localStorage * with a 90-day TTL. First-touch wins. * * 2. On signup confirmation pages (/free-subs/, /paid-sub/, /premium-sub/, * /hero-sub/): if localStorage has first-touch UTM and we haven't yet * POSTed for this conversion, send the capture to the OnlySky webhook * via navigator.sendBeacon() with a fetch() fallback. * * 3. Captures member identity if Ghost's portal exposes it (email and uuid). * If no member yet (e.g. anonymous landing on signup page), POSTs the * capture without identity β€” the server-side join uses timestamp * proximity as a last-resort match. * * Privacy: localStorage stays per-device. No third-party cookies. No personal * data leaves the device except what the user has voluntarily handed Ghost * (their email at signup). * * Tunable: edit WEBHOOK_URL below to match the deployed tunnel hostname. */ (function () { 'use strict'; // ─── config ────────────────────────────────────────────────────────── var WEBHOOK_URL = 'https://utm.onlys.ky/utm-capture'; // ← deployment target var SIGNUP_PAGES = ['/free-subs/', '/paid-sub/', '/premium-sub/', '/hero-sub/']; var TTL_DAYS = 90; var LS_PREFIX = 'onlysky_utm_'; // single namespace; cheap to grep var UTM_KEYS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term']; // ─── helpers ───────────────────────────────────────────────────────── function lsGet(k) { try { return localStorage.getItem(LS_PREFIX + k); } catch (e) { return null; } } function lsSet(k, v) { try { localStorage.setItem(LS_PREFIX + k, v); } catch (e) { /* quota or private mode */ } } function lsRemove(k) { try { localStorage.removeItem(LS_PREFIX + k); } catch (e) {} } function isStale() { var captured = lsGet('captured_at'); if (!captured) return false; try { var ageMs = Date.now() - new Date(captured).getTime(); return ageMs > TTL_DAYS * 86400 * 1000; } catch (e) { return false; } } function dropAll() { UTM_KEYS.forEach(function (k) { lsRemove(k); }); lsRemove('captured_at'); lsRemove('first_landing_slug'); lsRemove('posted_for_member'); } function nowISO() { return new Date().toISOString(); } function landingSlugFromPath() { var p = window.location.pathname.replace(/^\/|\/$/g, ''); if (!p) return null; var seg = p.split('/')[0]; var reserved = ['tag', 'tags', 'author', 'authors', 'page', 'pages', 'members', 'portal', 'ghost', 'free-subs', 'paid-sub', 'premium-sub', 'hero-sub']; return (reserved.indexOf(seg) >= 0) ? null : seg; } // ─── step 1: first-touch capture on every page load ────────────────── if (isStale()) dropAll(); // expire after TTL var params = new URLSearchParams(window.location.search); var anyUtm = false; UTM_KEYS.forEach(function (k) { if (params.has(k)) anyUtm = true; }); if (anyUtm && !lsGet('captured_at')) { UTM_KEYS.forEach(function (k) { var v = params.get(k); if (v) lsSet(k, v); }); lsSet('captured_at', nowISO()); var slug = landingSlugFromPath(); if (slug) lsSet('first_landing_slug', slug); } // ─── step 2: POST on signup-confirmation pages ────────────────────── if (SIGNUP_PAGES.indexOf(window.location.pathname) === -1) return; if (!lsGet('captured_at')) return; // no first-touch on this device β†’ nothing to send // Try to get member identity from Ghost Portal. function getMember() { try { if (window.MembersJS && typeof window.MembersJS.getMember === 'function') { return window.MembersJS.getMember(); } if (window.ghost && window.ghost.member) return window.ghost.member; } catch (e) {} return null; } function buildPayload(member) { var p = { captured_at: lsGet('captured_at'), conversion_at: nowISO(), conversion_page: window.location.pathname, first_landing_slug: lsGet('first_landing_slug'), member_email: member && member.email ? member.email : null, member_uuid: member && member.uuid ? member.uuid : null }; UTM_KEYS.forEach(function (k) { p[k] = lsGet(k); }); return p; } function postCapture(payload) { var posted_key = (payload.member_email || payload.member_uuid || payload.conversion_at); if (lsGet('posted_for_member') === posted_key) return; // de-dupe same-page reload lsSet('posted_for_member', posted_key); var body = JSON.stringify(payload); var ok = false; try { if (navigator.sendBeacon) { var blob = new Blob([body], { type: 'application/json' }); ok = navigator.sendBeacon(WEBHOOK_URL, blob); } } catch (e) {} if (!ok) { try { fetch(WEBHOOK_URL, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: body, keepalive: true, mode: 'cors', credentials: 'omit' }).catch(function () {}); } catch (e) {} } } // Member may not be ready on the first DOM tick. Try immediately, then // again at 500ms / 1500ms / 3000ms. Idempotency on the server side // (INSERT OR IGNORE) and the posted_for_member guard prevent dupes. function tryPost() { var member = getMember(); postCapture(buildPayload(member)); } tryPost(); setTimeout(tryPost, 500); setTimeout(tryPost, 1500); setTimeout(tryPost, 3000); })();