Skip to main content

Status message

Debug: Image path is empty. in Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (line 500 of modules/contrib/twig_tweak/src/TwigTweakExtension.php).
Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (Line: 96)
__TwigTemplate_693ce2762fd462ab5d93c14ead18f796->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 75)
__TwigTemplate_99bcdbccd37c076b1b3449b03a6587d3->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 103)
__TwigTemplate_d88d8e4a45ed4911237e2e3c21db144c->block_content() (Line: 432)
Twig\Template->yieldBlock() (Line: 76)
__TwigTemplate_d88d8e4a45ed4911237e2e3c21db144c->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 79)
__TwigTemplate_cf062fe3b86e1cd19b10edb0ef7351bf->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 504)
Drupal\Core\Render\Renderer->doRender() (Line: 248)
Drupal\Core\Render\Renderer->render() (Line: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 111)
__TwigTemplate_8d77fdb8ac8a95124755ddf9feb14db2->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 69)
__TwigTemplate_fb5ddceda6e698beeb6bc95d13abe15b->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 118)
__TwigTemplate_ac9b9d32e442f829b829583ce11c2317->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 238)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 638)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 239)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare() (Line: 128)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray() (Line: 97)
Drupal\tracer\EventDispatcher\TraceableEventDispatcher->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: 201)
Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 138)
Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 87)
Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 50)
Drupal\ban\BanMiddleware->handle() (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 38)
Drupal\tracer\StackMiddleware\TracesMiddleware->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)

Debug: Image path is empty. in Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (line 500 of modules/contrib/twig_tweak/src/TwigTweakExtension.php).
Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (Line: 96)
__TwigTemplate_693ce2762fd462ab5d93c14ead18f796->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 75)
__TwigTemplate_99bcdbccd37c076b1b3449b03a6587d3->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 103)
__TwigTemplate_d88d8e4a45ed4911237e2e3c21db144c->block_content() (Line: 432)
Twig\Template->yieldBlock() (Line: 76)
__TwigTemplate_d88d8e4a45ed4911237e2e3c21db144c->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 79)
__TwigTemplate_cf062fe3b86e1cd19b10edb0ef7351bf->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 504)
Drupal\Core\Render\Renderer->doRender() (Line: 248)
Drupal\Core\Render\Renderer->render() (Line: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 111)
__TwigTemplate_8d77fdb8ac8a95124755ddf9feb14db2->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 69)
__TwigTemplate_fb5ddceda6e698beeb6bc95d13abe15b->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 118)
__TwigTemplate_ac9b9d32e442f829b829583ce11c2317->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 238)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 638)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 239)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare() (Line: 128)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray() (Line: 97)
Drupal\tracer\EventDispatcher\TraceableEventDispatcher->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: 201)
Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 138)
Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 87)
Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 50)
Drupal\ban\BanMiddleware->handle() (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 38)
Drupal\tracer\StackMiddleware\TracesMiddleware->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)

Debug: Image path is empty. in Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (line 500 of modules/contrib/twig_tweak/src/TwigTweakExtension.php).
Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (Line: 96)
__TwigTemplate_693ce2762fd462ab5d93c14ead18f796->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 75)
__TwigTemplate_99bcdbccd37c076b1b3449b03a6587d3->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 103)
__TwigTemplate_d88d8e4a45ed4911237e2e3c21db144c->block_content() (Line: 432)
Twig\Template->yieldBlock() (Line: 76)
__TwigTemplate_d88d8e4a45ed4911237e2e3c21db144c->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 79)
__TwigTemplate_cf062fe3b86e1cd19b10edb0ef7351bf->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 504)
Drupal\Core\Render\Renderer->doRender() (Line: 248)
Drupal\Core\Render\Renderer->render() (Line: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 111)
__TwigTemplate_8d77fdb8ac8a95124755ddf9feb14db2->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 69)
__TwigTemplate_fb5ddceda6e698beeb6bc95d13abe15b->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 484)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 118)
__TwigTemplate_ac9b9d32e442f829b829583ce11c2317->doDisplay() (Line: 388)
Twig\Template->yield() (Line: 344)
Twig\Template->display() (Line: 359)
Twig\Template->render() (Line: 51)
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: 238)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 638)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 239)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare() (Line: 128)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray() (Line: 97)
Drupal\tracer\EventDispatcher\TraceableEventDispatcher->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: 201)
Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 138)
Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 87)
Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 50)
Drupal\ban\BanMiddleware->handle() (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 38)
Drupal\tracer\StackMiddleware\TracesMiddleware->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)

MADreads Reviews

Book reviews by library staff and guest contributors

Finding hope in creation

Posted by on Dec 8, 2023 - 3:09pm
A review of Angelo by
David
Macaulay

David Macauley, a celebrated illustrator of non-fiction books such as Cathedral and The Way Things Work, applies his knack for drawing complex structures in this gorgeous, heart-wrenching celebration of an aging plasterer, Angelo. 

The story follows Angelo as he restores the facade of a massive cathedral and reluctantly befriends a wounded pigeon named Sylvia. Angelo's declining health makes for a melancholy tone, but Sylvia's lighthearted antics and the warm, chaotic illustrations of Italian vistas give the story an incredible range. 

Unlikely allies working together

Posted by on Dec 1, 2023 - 2:33pm
Maggie
Tokuda-Hall

Fans of The Mermaid, The Witch, and the Sea, rejoice! In this companion to her 2020 fantasy debut, Maggie Tokuda-Hall introduces a vibrant new cast of characters – although the magical world they inhabit and the colonial forces they resist will be familiar to readers of the author’s earlier work. Told through diverse perspectives woven together, this story is every bit as clever, queer, and generally delightful as its predecessor.

--reviewed by Ros

Tribute to the women whose lives were cut short

Posted by Molly W on Dec 1, 2023 - 10:55am
A review of Bright Young Women by
Jessica
Knoll

On a Saturday night in 1978, a man enters a Florida sorority house and systematically attacks women from room to room, leaving them for dead. He flees the sorority down the main staircase and out the front door as the sorority president Pamela Schumacher stands in the shadows, frozen in fear. She sees the killer's face and haunted by that night and the aftermath of the attack, she's determined to find justice. She's obsessed with finding the killer and eventually earns a law degree with the intention of facing him in court one day.

Extra pinch and sparkle

Posted by Molly W on Nov 30, 2023 - 5:06pm
Dolly
Parton

One of Dolly Parton's best colors is what her husband Carl Dean calls "pinch" or peachy pink. It's one of my favorite colors, too. I used to call it melon. But it's more than that. The cover of this beautiful tribute to the iconic personal style of Dolly Parton over the years is pinch. Isn't that a clever way of naming a color? It just fits. It's logical, yet fancy. Just like Dolly.

Heartbreakingly beautiful

Posted by on Nov 28, 2023 - 2:44pm
A review of Stolen Words by
Melanie
Florence

Compared to other types of books, picture books are simple, short, and accessible -- but that doesn't make them any less impactful. On the contrary, sometimes the simplest stories hit the hardest. And this is definitely the case with Melanie Florence's Stolen Words.

If you need inspiration

Posted by Jane J on Nov 21, 2023 - 3:38pm
A review of NPR's Books We Love by

If you're a bookie like me then this is the best time of the year. No, not because of the turkey and Black Friday sales (though those are a bonus), but because now is when NPR posts their Books We Love list and oh how happy it makes me to browse through all those possibles. Think of it as a cross between the library's Best Sellers and Too Good to Miss collections. There is something for everyone and every one of the titles is worth a look.

Cheese and applesauce

Posted by Molly W on Nov 20, 2023 - 1:58pm
A review of The Lost Library by
Rebecca
Stead

Rising sixth graders Evan and Rafe discover a little free library that appears overnight filled with books that belonged to Martinville Public Library.  There has been no public library in Martinville their entire lives so there is much excitement and intrigue surrounding the library built with a crate and cabinet doors that smell like cheese and applesauce.  Who built it?  Where have the library books been all these years?  Why was one of the books checked out by Evan's dad over and over again?  What is the name of the cat who is guarding the books?  Some people call the cat Goldie.  Other

Werewolves, whoopee cushions, bioluminescent frogs and a ball

Posted by Molly W on Nov 14, 2023 - 3:12pm
Julia
Seales

The small English township of Swampshire provides a most agreeable setting for murder, mystery, mayhem and mayhap a little melding of hearts. Too much? Well, that's what A Most Agreeable Murder excels at. The residents of Swampshire head to an autumn ball at the largest local estate in order to meet an eligible bachelor named Croaksworth. The guests must pass through swamps that boast of glowing frogs and squelch holes in order to join a group of friends and enemies at the seemingly lavish, but actually crumbling estate.

Family and friends make the difference

Posted by on Nov 10, 2023 - 3:37pm
A review of We Still Belong by
Christine
Day

Seventh-grader Wesley Wilder is thinking about a lot of things. For example, her Upper Skagit community and heritage, which she loves being part of as much as she can. Then, there's the school newspaper publishing her poem celebrating Indigenous Peoples’ Day. And wait, isn’t it weird that her English teacher at her new school doesn’t give her extra credit for the Indigenous Peoples’ Day poem, even though it satisfied all the requirements? And what’s going to happen with Wesley and her mom’s wonderfully unique living situation? Also, is her favorite gamer Indigenous, too?

Immerse yourself

Posted by Jane J on Nov 7, 2023 - 3:44pm
A review of Mask of Mirrors by
M. A.
Carrick

This first in the Rook & Rose trilogy has been on my to-read list for a while, but I'll confess it's length was a bit daunting. Not because I don't like a longer book, but because I never felt I had the time to allow myself to settle in and become immersed. But once I did that? I was. Immersed.

At what cost?

Posted by on Nov 6, 2023 - 4:19pm
A review of I Must Betray You by
Rūta
Šepetys

One of my reading goals this year is to read most (if not all) of this year’s Teen’s Choice Awards books, in part so that I can recommend them more readily, but also because this crop of YA novels is so GOOD, and I love being able to support teen readers!

Traveling through the pages

Posted by Janelle C on Nov 3, 2023 - 3:45pm
Aaron
Becker

In this wordless book, the illustrations take the reader through time. From a wild past where people shared the land with animals, to a future full of lights, tall buildings, and more people than animals, two things remain constant: a proud tree and the river that runs past it. Eventually, destruction befalls the city, but the river and the tree work together to create a new beginning.

PW's Best Nonfiction Books of 2023

Posted by Kathy K on Oct 27, 2023 - 11:20am

The lists for the best books of the year have started. Publishers Weekly's 2023 list contain a wide variety of books to choose from. Below are the nonfiction ones. There is a little bit of everything--histories, biographies, books about crime, sports, literature, science. There are a number of them that are on my to- read list. Are there any that you would add?

Being allowed to shine

Posted by Jane J on Oct 25, 2023 - 2:19pm
A review of Lessons in Chemistry by
Bonnie
Garmus

I've had Lessons in Chemistry on a list of "books I will probably read some day" since before it even came out. The initial appeal was the cover.** Then I read the blurb: 60s era woman scientist struggles in the misogynistic world of science and ends up creating a popular cooking show? Color me even more intrigued. So yes, I've wanted to read it. What finally got me to do so? Friends who wanted to watch the new AppleTV adaptation together and required that I get the book read first. Assigned reading with a deadline?

Letting the outsiders in

Posted by on Oct 23, 2023 - 9:16am
Ruth
Ozeki

Benny Oh hears voices. And not just any voices: he hears the thoughts and mutterings of all things, from the soft shirts in his dad’s closet to the Frisbee someone tossed up onto the school roof. These voices—some friendly, some rude—are a constant soundtrack that Benny struggles to contend with as he navigates life without his jazz musician father, Kenji, who has just died in an accident, and continues living with his mother, Annabelle, who has begun exhibiting hoarding tendencies since the night of Kenji’s death.

Adventure covered in slime and brimming with humor

Posted by Rebecca M on Oct 20, 2023 - 3:35pm
Cressida
Cowell

I have been an avid audio book reader for a long time, but I have recently been exploring kid friendly titles to listen to with my own children as they grow up. How to Train Your Dragon is not a new title - it originally came out in 2004 - and I usually associate it with the animated movies and now apparently a series on Netflix? But holy cow, have I been missing out on the hilarity of these books for a long time! And maybe you have too! Rather than being 8 or the parent of an 8 year old in the early 2000's I was a moody high schooler.

Always works for me

Posted by Jane J on Oct 18, 2023 - 4:51pm
A review of Mr. Fixer Upper by
Lucy
Score

Recently I saw a discussion about themes/tropes/storylines that would be automatically appealing in a book. For a moment I was stumped. Sure I know the kinds of things I look for in books and often can name things that can be dealbreakers. But an automatic appeal? Hmmm. I couldn't think of anything - until someone mentioned competence. And I knew. Yes, yes, yes. Give me a competent protagonist? I'm in. Doesn't even really matter what they're competent at, I want to read about them. Enter Mr.

Don't be so drama

Posted by Molly W on Oct 17, 2023 - 10:56am
Jesse Q.
Sutanto

Little old lady Vera Wong wakes up to find a dead body in her tea shop in San Francisco's Chinatown and immediately gets to work solving the murder. The police rule the death accidental but Vera knows there's foul play. After all, she found evidence on the deceased while she was waiting for the police to arrive. She searched every pocket and looked inside the victim's wallet. She knows stuff! Too bad the young officers assigned to the case didn't drink any of Vera's special tea to sharpen the mind and senses. She prepared a tea tray especially for this purpose.

Operation friendship

Posted by Molly W on Oct 13, 2023 - 4:54pm
A review of Pocket Peaches by
Dora
Wang

There's a new cat in town!  Peaches the bunny, Mango the calico and Pogi the puppy live in Pocketon and have a theory about the new cat, Taro.  They think Taro is a magical cat!   No matter how hard they try to get to know Taro, their attempts to become friends fail.  It's as if Taro disappears into thin air!  There's definitely something mysterious going on.