Error message
Deprecated function: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in Drupal\Component\Utility\Unicode::validateUtf8() (line 395 of core/lib/Drupal/Component/Utility/Unicode.php).
Drupal\Component\Utility\Unicode::validateUtf8() (Line: 65) Drupal\Component\Utility\Xss::filter() (Line: 351) _colorbox_formatter_get_caption() (Line: 140) template_preprocess_colorbox_formatter() call_user_func_array() (Line: 261) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 254) __TwigTemplate_e68b79b8ded550481c188f9d99549233->{closure}() (Line: 2058) Twig\Extension\CoreExtension::captureOutput() (Line: 44) __TwigTemplate_e68b79b8ded550481c188f9d99549233->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 504) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 45) __TwigTemplate_1c086714c718e741ecd343a31c9086e1->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 504) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 224) Drupal\entity_embed\Plugin\Filter\EntityEmbedFilter->Drupal\entity_embed\Plugin\Filter\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 223) Drupal\entity_embed\Plugin\Filter\EntityEmbedFilter->process() (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText() call_user_func_array() (Line: 113) Drupal\Core\Render\Renderer->doTrustedCallback() (Line: 870) Drupal\Core\Render\Renderer->doCallback() (Line: 432) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 254) __TwigTemplate_e68b79b8ded550481c188f9d99549233->{closure}() (Line: 2058) Twig\Extension\CoreExtension::captureOutput() (Line: 44) __TwigTemplate_e68b79b8ded550481c188f9d99549233->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 423) __TwigTemplate_e9c454f5097960fcbad400867a054bcd->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 238) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 231) Drupal\Core\Render\MainContent\HtmlRenderer->prepare() (Line: 128) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray() call_user_func() (Line: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() (Line: 186) Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76) Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53) Drupal\Core\StackMiddleware\Session->handle() (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28) Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32) Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 50) Drupal\ban\BanMiddleware->handle() (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 36) Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 741) Drupal\Core\DrupalKernel->handle() (Line: 19)
Deprecated function: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in Drupal\Component\Utility\Xss::filter() (line 69 of core/lib/Drupal/Component/Utility/Xss.php).
Drupal\Component\Utility\Xss::filter() (Line: 351) _colorbox_formatter_get_caption() (Line: 140) template_preprocess_colorbox_formatter() call_user_func_array() (Line: 261) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 254) __TwigTemplate_e68b79b8ded550481c188f9d99549233->{closure}() (Line: 2058) Twig\Extension\CoreExtension::captureOutput() (Line: 44) __TwigTemplate_e68b79b8ded550481c188f9d99549233->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 504) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 45) __TwigTemplate_1c086714c718e741ecd343a31c9086e1->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 504) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 224) Drupal\entity_embed\Plugin\Filter\EntityEmbedFilter->Drupal\entity_embed\Plugin\Filter\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 223) Drupal\entity_embed\Plugin\Filter\EntityEmbedFilter->process() (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText() call_user_func_array() (Line: 113) Drupal\Core\Render\Renderer->doTrustedCallback() (Line: 870) Drupal\Core\Render\Renderer->doCallback() (Line: 432) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 254) __TwigTemplate_e68b79b8ded550481c188f9d99549233->{closure}() (Line: 2058) Twig\Extension\CoreExtension::captureOutput() (Line: 44) __TwigTemplate_e68b79b8ded550481c188f9d99549233->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 423) __TwigTemplate_e9c454f5097960fcbad400867a054bcd->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 238) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 231) Drupal\Core\Render\MainContent\HtmlRenderer->prepare() (Line: 128) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray() call_user_func() (Line: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() (Line: 186) Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76) Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53) Drupal\Core\StackMiddleware\Session->handle() (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28) Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32) Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 50) Drupal\ban\BanMiddleware->handle() (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 36) Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 741) Drupal\Core\DrupalKernel->handle() (Line: 19)
May is a good time to look for sunfish nests. Sunfish build saucer-shaped nests (see the photo below) a foot or two across in the shallows of lakes, ponds, and rivers. Anxious males hover above the nests, guarding the eggs and hatchlings, chasing away intruders. Because the nests often are in very shallow water (sometimes almost on the shore), they’re easy to see and watch.
The sunfish family includes some of Michigan’s most popular sport fish: largemouth and smallmouth bass, bluegills, pumpkinseeds, crappies, rock bass and others. They are easy and fun to catch, attractive, good to eat, and very common – almost every warm lake and river in the state contains sunfish. In Michigan and all throughout the eastern United States, sunfishes are among the most highly valued freshwater fishes.
They are also among the world’s worst invasive fish species.
Because sunfishes are so highly valued in eastern North America, they have been widely and indiscriminately stocked all over the world for recreational fishing and released from aquaria into the wild. Anyone familiar with sunfishes knows that they are intelligent, inquisitive, aggressive, adaptable fish, and would predict that they might have strong impacts on ecosystems into which they are introduced.
Indeed, they have.
Largemouth bass introduced to Lake Atitlan, Guatemala, drove a species of flightless grebe to extinction by eating its food and its chicks. In California, “native fishes have paid dearly” for the introduction of largemouth bass, green sunfish, and other sunfishes, which helped to drive several of California’s native fish species to extinction or endangerment. In Europe, introduced pumpkinseeds displaced native fishes and reduced populations of native invertebrates. Certainly, some introduced sunfish populations are valued for angling or food, but nearly all sunfishes introduced into Europe are regarded as pests, and the largemouth bass is on the list of the world’s 100 worst invasive species.
Sunfishes are among the very long list of invasive species that are valued in their native ranges but cause problems and are reviled where they were introduced. European rabbits are valued as food, pets, and objects of affection (think Peter Rabbit) in Europe, but caused immense damage to native wildlife and rangeland in Australia. Black cherry is valued for timber and wildlife food in North America, but ranked as one of the worst invasive species in Europe. Asian carp are valued as food fish in China, but regarded as an existential threat to fisheries in the Great Lakes and elsewhere in North America.
We spend a lot of time and energy arguing about whether such species are good or bad. People who want to control species in invaded regions often describe them as evil, sometimes in lurid terms (e.g., “frankenfish”, “plant from Hell”, “plant vampires”, “murder hornets”). Opponents of control often counter by describing the species as good, pointing out their value in their native land. The intent of such portrayals is to justify management actions: evil species must be destroyed, whereas good species must be protected or even spread.
But as the example of sunfish shows, it’s not simple to categorize species as good or bad. Sunfish are highly valued in the eastern United States and cause serious harm elsewhere. With a few exceptions (e.g., mosquitoes that carry serious human diseases), it is hard to simply sort species into the good and the bad from a human point of view. Attempts at such a simple classification are more likely to lead to heated, dead-end debates than to provide a helpful guide to management.
In addition, focusing on whether a species is good or bad diverts our attention away from the central problem of invasive species management, which is the careless movement of species around the world by people. The responsibility for problems with invasive species rests on the people who moved a species around, not with “bad” species. It’s not that sunfish are intrinsically good or bad fish, but that people moved sunfish all over the place with scarcely a thought to consequences.
It turns out to be hard to predict the consequences of moving a species into a new ecosystem, which can be large and long-lasting. In fact, invasion biologists don’t yet know whether accurate predictions can be made. At least, they will require careful analysis by smart people.
But we do know that the guy who stocked largemouth bass in Lake Atitlan wasn’t smart enough, nor was the aquarist who released pumpkinseeds into France. Thomas Austin, the man who brought rabbits to Australia, and wrote “The introduction of a few rabbits could do little harm and might provide a touch of home,” wasn’t smart enough. Étienne Léopold Trouvelot, who brought what used to be called “gypsy moths” to North America, wasn’t smart enough.
I’m not smart enough, and you probably aren’t either. And the people who want to introduce genetically engineered analogs of extinct animals like woolly mammoths and passenger pigeons haven’t shown us that they are smart enough to predict the outcomes of these introductions, either.
So, by all means go out and watch our beautiful and interesting sunfishes on their nests this month. If you are so inclined, go fishing for sunfish, and enjoy these delicious fish on your plate. But please, please, don’t move them or any other of Michigan’s beautiful and interesting plants and animals into a new ecosystem.
You’re not smart enough.