Michelle A

Michelle A

BookBrowse Reviewer
+ Follow
BookBrowse Reviewer Michelle is a BookBrowse Reviewer and has written reviews featured in The BookBrowse Review.

Michelle Anya Anjirbag recently completed her PhD at the Centre for Research in Children's Literature at Cambridge, Faculty of Education, University of Cambridge. Work based on her dissertation has appeared and is forthcoming in several academic journals and edited collections. Having earned her MSc at the University of Edinburgh and her BA at the University of Connecticut, her research interests include Disney, adaptations of fairy tales and cross-period approaches to narrative transmission across cultures and societies, deep stories, and fantasy and the library in the fantastic. She has worn a lot of different hats including essayist, local journalist, leadership facilitator, book reviewer, and shopgirl. More information on her academic and other work can be found at michelleanjirbag.com

BookBrowse Editorial Reviews (28)

BookBrowse Editorial Review
Dark Laboratory: On Columbus, the Caribbean, and the Origins of the Climate Crisis
by Tao Leigh Goffe
(2/12/2025)
Goffe's scope is wide-ranging and dotted with her personal history; she understands the world she inhabits through discovery and exploration of her ancestral connections, examining how her mixed heritage is inflected with the aftereffects of colonialism. In doing so she makes a too often intellectualized problem — how to solve climate change — deeply intimate. By tracing history in this way, she deftly folds together intertwined historical threads to make visible ecological destructi
BookBrowse Editorial Review
Snowglobe: Snowglobe #1
by Soyoung Park
(3/6/2024)
In Snowglobe, Park presents a fascinating dystopian setting that taps into today's climate anxieties, and also imagines the kind of society that might grow out of contemporary celebrity culture, fandom, and the demands of reality entertainment. It asks us to interrogate what happens to the celebrities, the people who fans demand put their whole lives on display, and who lose all privacy just because they are famous. It also makes readers question just what exactly is real in reality telev
BookBrowse Editorial Review
Hotel Magnifique
by Emily J. Taylor
(5/4/2022)
Emily J. Taylor's debut young adult novel is a breathtaking fantasy with a dark edge that will tantalize the imaginations of people new to the genre as well as those who have already read widely within it. Though it suffers at times from pacing issues — too fast in some areas and dwelling a little too long on descriptive moments in others — strong worldbuilding, a fascinating narrative and emotionally engaging characters will keep readers interested to see if Jani makes it home with
BookBrowse Editorial Review
Skin of the Sea
by Natasha Bowen
(2/2/2022)
The novel is intriguing. Simi's perspective is immersive and driven by emotion as she slowly remembers pieces of her life, including her own experience with captivity. However, Bowen does not focus only on the one historical experience. In her author's note she writes that this novel allowed her "to tell a story of Black characters from ancient empires, showcasing their power and magnificence." She achieves her goal, neither skirting nor dwelling on the horrors of slavery, and also providing a r
BookBrowse Editorial Review
The Gilded Ones: Deathless #1
by Namina Forna
(5/5/2021)
Forna's debut novel and first book in the Deathless series is a challenge to patriarchal norms across societies and cultures. As her characters find their own power and agency, and learn to love who they are in spite of what others have said about their worth, young readers will be inspired to recognize their own self-worth. The Gilded Ones is a strong opening to what promises to be a compelling series that is taking on as its focus an almost timeless subject: violence enacted against wom
BookBrowse Editorial Review
Last Night at the Telegraph Club
by Malinda Lo
(2/17/2021)
Lo's extensive research makes this a YA novel with real historical teeth, grounded in the time period, geography, culture and history it is representing, offering a new window into an underrepresented intersection of identities. She does not sugarcoat reality, but still leaves readers with a sense of hope and appreciation for the power of young love and the true freedom of knowing oneself. Last Night at the Telegraph Club is a powerful coming-of-age story that expands on hidden histories
BookBrowse Editorial Review
Raybearer
by Jordan Ifueko
(8/19/2020)
In Raybearer, Ifueko opens the genre of fantasy further, stepping beyond old tropes and stories of power struggles to present something new. She proves that fantasy can be simultaneously diverse, political, and filled with wonder, and in dialogue with more than just a tradition. It's a development that the genre has desperately needed for a long time. She also proves that it's possible to explore the themes of imperialism and colonialism in fantasy without alienating readers and in a way
BookBrowse Editorial Review
Wilder Girls
by Rory Power
(8/21/2019)
The two perspectives lead the reader not only through the mystery, but into a meditation on human nature itself, and how people might respond to extraordinary circumstances. Rory Power's Wilder Girls is a powerful novel and a must-read in this current epoch, with urgent messages about what it means to be human when everything is changing.
BookBrowse Editorial Review
How to Make Friends with the Dark
by Kathleen Glasgow
(6/19/2019)
Glasgow uses Tiger's gaze to look not only inward at her own grief, but through a wider lens to account for other kinds of grief, loss and pain too. The result is powerful, and a must-read for anyone who needs language with which to discuss loss.
BookBrowse Editorial Review
How It Feels to Float
by Helena Fox
(5/29/2019)
This story is an incredible, lyrical journey through a teenager's struggle with undiagnosed mental health issues and the hereditary or intergenerational effects of trauma. Readers will be moved not only to empathy, but perhaps a real understanding through being enveloped in Biz's mind. They will be forced to confront their preconceptions of what it might mean to be either strong or fragile and what defines mental health, as well as face the idea that being "normal" or "okay" or "fine" is somethi
BookBrowse Editorial Review
And The Ocean Was Our Sky
by Patrick Ness
(11/14/2018)
All in all, And the Ocean Was our Sky is a challenge that should be engaged with by all readers. Like its source material, it is sure to spark conversation and remain of its time and context while being endlessly transposable and interpretable, and only gain from multiple and multifarious readings.
BookBrowse Editorial Review
The Lady's Guide to Petticoats and Piracy
by Mackenzi Lee
(10/17/2018)
Like its predecessor The Gentleman's Guide to Vice and Virtue, the impeccably researched historical novel is full of adventure and draws from true events and conditions.
BookBrowse Editorial Review
Anger Is a Gift
by Mark Oshiro
(7/11/2018)
It is no secret that contemporary young adult literature has been becoming more political, addressing the real problems and challenges faced by teenagers in the United States today. Anger is a Gift by Mark Oshiro is a welcome addition to the contemporary YA oeuvre, taking readers inside a brutal reality that too many young people today know well. It is a narrative about intergenerational trauma, about hope, and about finding strength in one's family and community, executed in a way t
BookBrowse Editorial Review
Dread Nation
by Justina Ireland
(5/2/2018)
The combination of period drama, alternative timelines, fantasy elements, zombies, and complex socio-historical-cultural contexts makes this book a welcome departure from other contemporary genre-specific young adult texts. Ireland proves that it is possible to write a rollicking fantasy filled with zombies and brave zombie fighters, and also provide readers with substance and thought-provoking material that challenges them to re-evaluate how they see the world. Above all, despite, or perhaps, b
BookBrowse Editorial Review
Picture Us In The Light
by Kelly Loy Gilbert
(5/2/2018)
The real strength of Picture Us In the Light is how deftly Gilbert demonstrates that to have a powerful narrative a book doesn't have to fit neat categories because, after all, whose life does? She gives us the complexity of life itself: bad things happen, friendships change, we learn things about our parents we could have never imagined, lives fall apart and come together again. And in between all the interwoven good and bad, love and loss, joy and despair, science and art, we reali
BookBrowse Editorial Review
Children of Blood and Bone: Legacy of Orisha
by Tomi Adeyemi
(4/4/2018)
This is the first in a series that is going to challenge everything that readers know about what makes good YA fantasy. It's going to leave them demanding more, not only from the series, but from what the standard of "good enough" in publishing already is. Growth, confrontation, trauma, and the search for a better way by two strong women are all part of this epic fantasy. If I have any criticisms, it is that it ends on a cliff-hanger and 2019 is far too far away to wait for the next install
BookBrowse Editorial Review
A Girl Like That
by Tanaz Bhathena
(3/21/2018)
Tanaz Bhathena's debut YA novel, told in flashbacks, gives life to a strong-willed, orphaned Zoroastrian girl living in Jeddah, Saudi Arabia. In a stunning narrative that proves the necessity of more diverse, own-voices young adult fiction, the world of the reader is expanded while also showing so clearly that some things are truly universal.
BookBrowse Editorial Review
A Land of Permanent Goodbyes
by Atia Abawi
(3/7/2018)
The true strength of Abawi's prose comes from her background as a journalist. She grounds the narrative in the day to day lives of her characters while simultaneously balancing the omniscient narration through Destiny, providing scope and detail that will allow the reader to feel an immediacy while also understanding how this family's story fits within a greater historical context. Abawi manages to bring to human scale a pain too great and an experience that should never be known by an
BookBrowse Editorial Review
The Book of Dust: La Belle Sauvage: The Book of Dust #1
by Philip Pullman
(12/6/2017)
Alice has quickly become one of my favorite characters ever written, and Pullman shows us again that he is a master of writing, not only for children, but for anyone. All readers who come to his books will find something for them. It is not a text that can be easily simplified to mean any one thing, and I am certain that those who come to this series first, and then look to read His Dark Materials, will have an utterly different experience. That is the mark of a good fantasy; it should be
BookBrowse Editorial Review
The Rules of Magic
by Alice Hoffman
(10/18/2017)
Alice Hoffman's Rules of Magic is the long-awaited prequel to one of her most cherished novels, Practical Magic (1995). With the return of Bridget and Franny, Hoffman proves again that the true magic of her work is not the sorcery itself, but the relationships between families, siblings, and the rest of the people that she brings to her readers. Emotionally wrenching without becoming trite, Hoffman explores l
BookBrowse Editorial Review
You Bring the Distant Near
by Mitali Perkins
(10/4/2017)
This is a love story – not only of romantic love, but of the love between families, the love between mothers and daughters, and how that love frames our lives. And it rings true, because it is an imperfect love, one that grows and changes as each woman grows and changes. But what Perkins accomplishes best is the creation of an individual as opposed to an archetype, which is, unfortunately, all too rare in modern publishing. Each woman's voice is unique and her own. This is the story of Tara
BookBrowse Editorial Review
Too Shattered for Mending
by Peter Brown Hoffmeister
(9/20/2017)
Some books break us a little bit as readers; they force us to walk in the shoes of characters who are so much more than words on a page, who live in an endless mire of challenges, and who still manage to hold on to the slightest sliver of hope without even knowing that this is what they are doing. They teach us, the reader, to be a little bit better at being human. And that is the best thing I can say about Peter Brown Hoffmeister’s third novel: it broke me. The book follows Gavin “Little” McCar
BookBrowse Editorial Review
Genuine Fraud
by E. Lockhart
(9/6/2017)
Readers will fly through Lockhart’s snappy prose; though the plot structure unfolds nontraditionally, the pacing facilitates understanding and makes each revelation manageable to follow. The dialogue, as well as Jule's internal monologue, walk the very narrow line of being formulaic, and in places does cross over into the patterns that genre fiction and thrillers are known for. But because we cannot anticipate the plot as in a true piece of genre fiction, we are still left coming out on the othe
BookBrowse Editorial Review
The Black Witch: The Black Witch Chronicles #1
by Laurie Forest
(8/2/2017)
The writing in The Black Witch is solid, the fantasy is developed, the world is immersive, and the characters are not flat – though some are emblematic. That being said, fantasy worlds constructed for young adult/adult crossover audiences are not in short supply, nor are those fantasy worlds that use the constructed world to provide a critique of and reflection on myriad social problems. A world like this, a story like this, will ultimately be put up against the worldbuilding of auth
BookBrowse Editorial Review
House of Names
by Colm Toibin
(5/31/2017)
What could have become a trite, overwrought, emotional depiction of "woman goes mad with grief, and is further corrupted by power" and, therefore, a backwards-looking cautionary tale, is, instead, presented as moving and human. While the depicted deeds by multiple characters are villainous to the point that even Lady Macbeth looks positively virtuous, Tóibín's narrative leads the reader to a place of compassion for these characters, and a better understanding of why darkness may c
BookBrowse Editorial Review
Wonderful Feels Like This
by Sara Lövestam
(5/3/2017)
The power of this book is that it is simultaneously disorienting in myriad ways while still remaining approachable in its exploration of the universal human experience. For a non-Scandinavian native English-speaking reader, despite being written in English, there is just enough culture shock, just enough difference in the ins and outs of daily life, that the reader's attention is drawn to how Steffi's experience is different, but also how some things, such as bullying, feeling isolated
BookBrowse Editorial Review
The Inexplicable Logic of My Life
by Benjamin Alire Saenz
(3/22/2017)
Saenz’s presentation is powerful not because of the questions it asks, but because of what the reader is forced to feel.
BookBrowse Editorial Review
Saving Hamlet
by Molly Booth
(1/4/2017)
What could have been a run-of-the-mill coming-of-age story is elevated through Booth’s clear prose, and the detailed, expertly researched descriptions of the original staging of Hamlet, as well as the ways in which the play’s staging changed over the years and under different directors. The students have to grapple with these choices while also grappling with their interpersonal relationships, which provides a level of depth to Booth’s description of high school life. Additionally, readers will

Reviews (0)

No reviews yet.

BookBrowse Book Club

Book Jacket
The Cover Girl
by Amy Rossi
Find them early enough, and they will always be her girls.

Members Recommend

  • Book Jacket
    The Sister's Curse
    by Nicola Solvinic
  • Book Jacket
    The Lost Story of Eva Fuentes
    by Chanel Cleeton
    A mysterious book links three women across generations in this novel by New York Times bestselling author Chanel Cleeton.
  • Book Jacket
    The Vanishing Place
    by Zoë Rankin
Who Said...

If passion drives you, let reason hold the reins

Click Here to find out who said this, as well as discovering other famous literary quotes!

Book
Trivia
  • Book Trivia

    Can you name the title?

    Test your book knowledge with our daily trivia challenge!

Wordplay

Solve this clue:

W the C A the M W P

and be entered to win..

Your guide toexceptional          books

BookBrowse seeks out and recommends the best in contemporary fiction and nonfiction—books that not only engage and entertain but also deepen our understanding of ourselves and the world around us.

 


Debugging Information
ColdFusion Server Developer 2021,0,13,330286
Template /readers/index.cfm
Time Stamp 01-Jun-26 01:40 AM
Locale en
User Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Remote IP 127.0.0.1
Host Name 127.0.0.1


Execution Time

Total Time Avg Time Count Template
1780278039375 ms 1.78027803938E+012 ms 1 /root/website/app_server.cfm
473 ms 473 ms 1 /root/website/readers/index.cfm
284 ms 284 ms 1 /root/website/readers/dsp_profile.cfm
114 ms 114 ms 1 /root/website/app_layout.cfm
81 ms 81 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
65 ms 65 ms 1 /root/website/app_globals.cfm
55 ms 28 ms 2 /root/website/adsystem/adsystem_mod.cfm
36 ms 36 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
35 ms 35 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
32 ms 32 ms 1 /root/website/adzones/AdZone6.cfm
27 ms 27 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
25 ms 25 ms 1 /root/website/adzones/showcase_track.cfm
18 ms 18 ms 1 /root/website/queries/qry_get_active_obc.cfm
11 ms 4 ms 3 /root/website/actions/act_spider_tracker.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_current_competition.cfm
10 ms 10 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
6 ms 6 ms 1 /root/website/actions/adstatus.cfm
5 ms 5 ms 1 /root/website/act_check_login.cfm
5 ms 5 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
4 ms 4 ms 1 /root/website/queries/qry_get_follower_count.cfm
4 ms 4 ms 1 /root/website/queries/qry_get_following_count.cfm
4 ms 4 ms 1 /root/website/queries/qry_get_member_info.cfm
4 ms 4 ms 1 /root/website/queries/qry_get_reviews_by_member.cfm
3 ms 3 ms 1 /root/website/queries/qry_get_member_profile.cfm
2 ms 2 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
1 ms 1 ms 1 /root/website/act_libraryIPLogin.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_current_ezine.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_previous_arcs_for_ad.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_reader_reviews_power_reviewers.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/main_menu.cfm
0 ms 0 ms 1 /root/website/Application.cfm
0 ms 0 ms 1 /root/website/actions/udfs.cfm
0 ms 0 ms 1 /root/website/banners/ad_594.cfm
0 ms 0 ms 1 /root/website/formurl2attributes.cfm
0 ms 0 ms 1 /root/website/js/fbjavascriptsdk.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_free_newsletters.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_border_booktalk.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_header_newsletter.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_wordplay.cfm
0 ms 0 ms 1 /root/website/site/blocks/email_modal.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/google_tags.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/head.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/header_announcement.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/main_search.cfm
1 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
474 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=4ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 01:40:39.039
SELECT	a.bot_number
        FROM	bots a
        WHERE	charindex(a.bot_name, ?) > 0
		OR a.bot_ip = ?
Query Parameter Value(s) -
Parameter #1(cf_sql_varchar) = Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Parameter #2(cf_sql_varchar) = 127.0.0.1

get_member_info (Datasource=bookbrowse_com_new, Time=3ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 01:40:39.039
select 	a.*, 
    		b.member_account_type_name, b.member_account_type_charge, b.member_account_type_charge_frequency,  b.member_account_type_months, 
            c.member_chargetype_name, c.member_chargetype_number, a.member_classification_number, a.member_book_format
	
    from members a, member_account_types b, member_chargetype c
	
    where a.member_account_type_number = b.member_account_type_number
	and a.payment_method_id = c.member_chargetype_number
	and a.member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 0

adactive (Datasource=bookbrowse_com_new, Time=5ms, Records=2) in /root/website/actions/adstatus.cfm @ 01:40:39.039
SELECT	viewby, section
    FROM	adsystem 
    WHERE	active  = 1 
    AND		start_date <= GETDATE()
    AND 	(viewby = ? OR viewby = 'all')
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = non

get_current_ezine (Datasource=bookbrowse_com_new, Time=0ms, Records=1, Cached Query) in /root/website/queries/qry_get_current_ezine.cfm @ 01:40:39.039
select		top 1 ezine_number, ezine_dt, ezine_image, ezine_brief_description, ezine_introduction
from		ezines
where		ezine_active_flag = 1
and 		ezine_type_number = 4
and			ezine_dt < getdate()
order by 	ezine_dt DESC
get_current_wordplay (Datasource=bookbrowse_com_new, Time=5ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 01:40:39.039
SELECT		a.wordplay_number, a.wordplay_dt, a.wordplay_name, a.wordplay_intro_text, b.wordplay_puzzle_number, b.wordplay_puzzle_question
    FROM		wordplays a 
	INNER JOIN	wordplay_puzzle_mapping c on c.wordplay_number = a.wordplay_number
	INNER JOIN	wordplay_puzzles b on b.wordplay_puzzle_number = c.wordplay_puzzle_number
	WHERE		a.wordplay_number = (	select top 1 a.wordplay_number
                                from wordplays a, wordplay_puzzles b, wordplay_puzzle_mapping c
                                where a.wordplay_number = c.wordplay_number
                                and b.wordplay_puzzle_number = c.wordplay_puzzle_number
                                and a.wordplay_dt < getdate()
                                and a.wordplay_expiration_dt > dateadd(day, -1, getdate())
                                order by a.wordplay_dt asc
                                )
get_ComNo (Datasource=bookbrowse_com_new, Time=4ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 01:40:39.039
SELECT 	TOP 1 	x.competition_number, x.bb_briefs_flag
	from			competitions x
	
		WHERE	x.competition_dt <= getdate()
		AND		x.competition_expiration_dt > dateadd(d,-1,getdate())
get_current_competition (Datasource=bookbrowse_com_new, Time=4ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 01:40:39.039
SELECT 	x.competition_number, x.book_number, x.competition_teaser_title, x.competition_teaser_description, x.competition_intro_text, x.competition_expiration_dt, x.bb_briefs_flag, x.competition_full_info_flag, x.competition_type, x.competition_optin,x.competition_optin_text, 
				a.book_title as "title",
				(b.author_first_name + ' ' +  b.author_middle_initial + ' ' + b.author_last_name) as "author",
	            f.edition_publish_dt AS "hardcover_publish_dt", f.edition_jacket_image as "hardcover_jacket_image",
				g.edition_publish_dt AS "paperback_publish_dt", g.edition_jacket_image as "paperback_jacket_image"
	
		FROM 		competitions x
		INNER JOIN	books a on a.book_number = x.book_number
		INNER JOIN	book_author_mapping c on c.book_number = x.book_number
		INNER JOIN	authors b on c.author_number = b.author_number
		LEFT JOIN	editions f on a.book_number = f.book_number and f.edition_paperback_flag = 0
		LEFT JOIN	editions g on a.book_number = g.book_number and g.edition_paperback_flag = 1

		WHERE		x.competition_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 0

get_previous_arcs_for_ad (Datasource=bookbrowse_com_new, Time=0ms, Records=0, Cached Query) in /root/website/queries/qry_get_previous_arcs_for_ad.cfm @ 01:40:39.039
SELECT 	a.arc_number,a.arc_client_url,a.arc_active_dt, a.arc_off_ad_dt,
		b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publisher, 
		b.ezine_preview_publish_dt, b.ezine_preview_jacket_desc, b.ezine_preview_number_of_pages, b.ezine_preview_bb_comments, b.ezine_preview_isbn13,
		c.ezine_preview_category_name AS "ezine_preview_category",
		(select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) as "reviews",
		(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
				 ELSE 0
				 END)
 			from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating,
 			(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,1))) AS numeric(12,1)))from arc_allocator where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS "decrating"

FROM arcs a
INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
INNER JOIN ezine_preview_categories c ON b.ezine_preview_category_number = c.ezine_preview_category_number

WHERE arc_closed_flag = 1
AND arc_obc_flag = 0
AND getdate() >= arc_on_ad_dt
AND getdate() < arc_off_ad_dt

ORDER BY a.arc_on_ad_dt DESC
get_future_obc (Datasource=bookbrowse_com_new, Time=3ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 01:40:39.039
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text, arc_on_ad_dt,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages, ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	
	WHERE 		arc_obc_flag = 1

	AND 		getdate() < arc_on_ad_dt
	
		ORDER BY  	NEWID()
get_active_obc (Datasource=bookbrowse_com_new, Time=6ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 01:40:39.039
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE 		a.arc_obc_flag = 1
	AND			a.arc_active_flag = 0
	AND 		arc_closed_flag = 1
	AND 		getdate() >= arc_on_ad_dt
	AND 		getdate() < arc_off_ad_dt
	ORDER BY  	NEWID()
get_recent_obc (Datasource=bookbrowse_com_new, Time=7ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 01:40:39.039
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE a.arc_number IN (select top 4 arc_number
							from		arcs
							WHERE 		arc_obc_flag = 1
							AND			arc_active_flag = 0
							AND 		arc_closed_flag = 1
							AND 		getdate() > arc_off_ad_dt
							ORDER BY	arc_on_ad_dt DESC)
	ORDER BY  	NEWID()
get_member_profile (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/queries/qry_get_member_profile.cfm @ 01:40:39.039
SELECT  m.member_number, m.discourse_username, m.member_first_name, m.member_last_name, m.profile_image_url, m.member_full_name, m.member_bio, m.external_link, m.member_classification_number, m.member_email
        FROM    members m
        WHERE   m.member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 10968

get_reviews_by_member (Datasource=bookbrowse_com_new, Time=4ms, Records=0) in /root/website/queries/qry_get_reviews_by_member.cfm @ 01:40:39.039
SELECT  a.book_number, a.ezine_preview_number, a.reader_review_number,
            COALESCE(NULLIF(LTRIM(RTRIM(m.discourse_username)), ''), NULLIF(LTRIM(RTRIM(a.reader_review_reviewer_name)), '')) AS reader_review_reviewer_name,
            a.reader_review_title, a.reader_review_rating, a.reader_review_description, a.reader_review_dt,
            (SELECT COUNT(*) FROM reader_review_likes rl WHERE rl.reader_review_number = a.reader_review_number) AS like_count
    FROM    reader_reviews a
    LEFT OUTER JOIN members m ON m.member_number = a.member_number
    WHERE   a.member_number = ?
    AND     a.reader_review_approved_flag = 1
    
        ORDER BY a.reader_review_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 10968

get_follower_count (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/queries/qry_get_follower_count.cfm @ 01:40:39.039
SELECT COUNT(*) AS follower_count
    FROM member_follows
    WHERE followed_member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 10968

get_following_count (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/queries/qry_get_following_count.cfm @ 01:40:39.039
SELECT COUNT(*) AS following_count
    FROM member_follows
    WHERE follower_member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 10968

get_reviewer_number (Datasource=bookbrowse_com_new, Time=4ms, Records=1) in /root/website/readers/dsp_profile.cfm @ 01:40:39.039
SELECT TOP 1 reviewer_number
                FROM reviewers
                WHERE reviewer_email = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = michelle.anjirbag@gmail.com

get_reader_reviews_power_reviewers (Datasource=bookbrowse_com_new, Time=0ms, Records=50, Cached Query) in /root/website/queries/qry_get_reader_reviews_power_reviewers.cfm @ 01:40:39.039
SELECT 		top 50 reader_review_reviewer_email_address, count(reader_review_reviewer_email_address) as "count"
	FROM 		reader_reviews
	WHERE 		reader_review_reviewer_email_address like '%@%'
	AND 		reader_review_reviewer_email_address <> 'reviews@bookbrowse.com'
	GROUP BY 	reader_review_reviewer_email_address
	
	
	ORDER BY 	count desc
get_reviewer_details (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/readers/dsp_profile.cfm @ 01:40:39.039
SELECT reviewer_photo, reviewer_bio, reviewer_first_name, reviewer_last_name
            FROM reviewers
            WHERE reviewer_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 89

get_editorial_reviews (Datasource=bookbrowse_com_new, Time=262ms, Records=28) in /root/website/readers/dsp_profile.cfm @ 01:40:39.039
SELECT  d.book_number, d.book_title, d.book_sub_title,
                    e.ezine_dt,
                    ep.ezine_preview_number, ep.ezine_preview_title, ep.ezine_preview_subtitle,
                    ep.ezine_preview_author, ep.ezine_preview_jacket_image,
                    mr.media_review_rating,
                    LEFT(mr.media_review, 500) AS review_excerpt
            FROM    ezine_edition_mapping b
            INNER JOIN editions c ON c.edition_number = b.edition_number
            INNER JOIN books d ON d.book_number = c.book_number
            INNER JOIN ezines e ON e.ezine_number = b.ezine_number
            LEFT JOIN ezine_previews ep ON ep.ezine_preview_isbn13 = c.edition_isbn13
                AND ep.ezine_preview_isbn13 IS NOT NULL AND LEN(ep.ezine_preview_isbn13) > 0
            LEFT JOIN media_reviews mr ON mr.book_number = c.book_number AND mr.media_review_type_number = 9
            WHERE   b.reviewer_number = ?
            AND     e.ezine_dt = (SELECT TOP 1 ez.ezine_dt
                                  FROM ezines ez
                                  INNER JOIN ezine_edition_mapping eem ON eem.ezine_number = ez.ezine_number
                                  INNER JOIN editions ed ON ed.edition_number = eem.edition_number
                                  WHERE ed.book_number = c.book_number
                                  ORDER BY ez.ezine_dt ASC)
            ORDER BY e.ezine_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 89

get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=12ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 01:40:39.039
SELECT 	top 10 a.arc_number,arc_promo_text,
		b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publish_dt, 
		(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
				 ELSE 0
				 END)
 			from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating

FROM arcs a
INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number

WHERE arc_closed_flag = 1
AND arc_obc_flag = 0
AND getdate() >= arc_on_ad_dt
AND (select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) > 1
and getdate() <= dateadd(day,1,a.arc_off_ad_dt)

ORDER BY NEWID()
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=17ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 01:40:39.039
SELECT 	top 3 a.arc_number,arc_promo_text,
			b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publish_dt, 
			(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
					(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
					 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
					 ELSE 0
					 END)
				from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating

	FROM arcs a
	INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number

	WHERE arc_closed_flag = 1
	AND arc_obc_flag = 0
	AND getdate() >= arc_on_ad_dt
	AND (select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) > 1

	ORDER BY a.arc_off_ad_dt DESC
get_ads (Datasource=bookbrowse_com_new, Time=22ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 01:40:39.039
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
	
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone6
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=5ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 01:40:39.039
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone6

get_type (Datasource=bookbrowse_com_new, Time=0ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 01:40:39.039
SELECT	a.start_date, a.adid, a.end_date, a.camp_views, a.image_name, a.alt_text, a.views, a.code, a.adsize
        FROM	adsystem a
        WHERE	a.adid = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1112

get_quotes (Datasource=bookbrowse_com_new, Time=9ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 01:40:39.039
select top 1 ezine_number, ezine_quote, ezine_quote_title
	    from ezines
	    where len(ezine_quote_title) > 1
	    order by newid()
get_free_newsletters (Datasource=bookbrowse_com_new, Time=0ms, Records=4, Cached Query) in /root/website/queries/qry_get_free_newsletters.cfm @ 01:40:39.039
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=8ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 01:40:39.039
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
		 	AND a.adid NOT IN (?) 
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = showcase_track
Parameter #2(CF_SQL_INTEGER) = 1112
Parameter #3(CF_SQL_VARCHAR) = 0
Parameter #4(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=5ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 01:40:39.039
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        		AND a.adid NOT IN (?) 
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = showcase_track
Parameter #2(CF_SQL_INTEGER) = 1112

get_type (Datasource=bookbrowse_com_new, Time=7ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 01:40:39.039
SELECT	a.start_date, a.adid, a.end_date, a.camp_views, a.image_name, a.alt_text, a.views, a.code, a.adsize
        FROM	adsystem a
        WHERE	a.adid = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 594


Scope Variables

CGI Variables:
AUTH_PASSWORD=
AUTH_TYPE=
AUTH_USER=
CERT_COOKIE=
CERT_FLAGS=
CERT_ISSUER=
CERT_KEYSIZE=
CERT_SECRETKEYSIZE=
CERT_SERIALNUMBER=
CERT_SERVER_ISSUER=
CERT_SERVER_SUBJECT=
CERT_SUBJECT=
CF_TEMPLATE_PATH=/root/website/readers/index.cfm
CONTENT_LENGTH=
CONTENT_TYPE=
CONTEXT_PATH=
GATEWAY_INTERFACE=
HTTPS=
HTTPS_KEYSIZE=
HTTPS_SECRETKEYSIZE=
HTTPS_SERVER_ISSUER=
HTTPS_SERVER_SUBJECT=
HTTP_ACCEPT=*/*
HTTP_ACCEPT_ENCODING=gzip, br, zstd, deflate
HTTP_ACCEPT_LANGUAGE=
HTTP_CONNECTION=upgrade
HTTP_COOKIE=CFCLIENT_BOOKBROWSE=order%3Dp%23member%5Fnumber%3D0%23member%5Factive%5Fflag%3D0%23member%5Flogged%5Fin%5Fflag%3D0%23library%5Fuser%5Fflag%3D0%23view%3Dbooks%23; CFID=4081350; CFTOKEN=b7a8b7c0d43c8a63-0860AC5D-FD9B-8FB0-19BA25F892BD43FF; CFGLOBALS=urltoken%3DCFID%23%3D4081350%26CFTOKEN%23%3Db7a8b7c0d43c8a63%2D0860AC5D%2DFD9B%2D8FB0%2D19BA25F892BD43FF%23lastvisit%3D%7Bts%20%272026%2D06%2D01%2001%3A40%3A39%27%7D%23hitcount%3D101%23timecreated%3D%7Bts%20%272026%2D06%2D01%2001%3A39%3A59%27%7D%23cftoken%3D450645be0a7a3ca3%2D086099CC%2D08D7%2D9D51%2D15AB0DD533F90A13%23cfid%3D4081347%23
HTTP_HOST=dev.bookbrowse.com
HTTP_REFERER=
HTTP_URL=
HTTP_USER_AGENT=Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
LOCAL_ADDR=127.0.0.1
PATH_INFO=/10968
PATH_TRANSLATED=/root/website/readers/index.cfm
QUERY_STRING=
REMOTE_ADDR=127.0.0.1
REMOTE_HOST=127.0.0.1
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/readers/index.cfm
SERVER_NAME=dev.bookbrowse.com
SERVER_PORT=8500
SERVER_PORT_SECURE=0
SERVER_PROTOCOL=HTTP/1.1
SERVER_SOFTWARE=
WEB_SERVER_API=
Client Variables:
cfid=4081347
cftoken=450645be0a7a3ca3-086099CC-08D7-9D51-15AB0DD533F90A13
hitcount=102
lastvisit={ts '2026-06-01 01:40:39'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-06-01 01:39:59'}
urltoken=CFID=4081350&CFTOKEN=b7a8b7c0d43c8a63-0860AC5D-FD9B-8FB0-19BA25F892BD43FF
view=books
Cookie Variables:
CFCLIENT_BOOKBROWSE=order=p#member_number=0#member_active_flag=0#member_logged_in_flag=0#library_user_flag=0#view=books#
CFGLOBALS=urltoken=CFID#=4081350&CFTOKEN#=b7a8b7c0d43c8a63-0860AC5D-FD9B-8FB0-19BA25F892BD43FF#lastvisit={ts '2026-06-01 01:40:39'}#hitcount=101#timecreated={ts '2026-06-01 01:39:59'}#cftoken=450645be0a7a3ca3-086099CC-08D7-9D51-15AB0DD533F90A13#cfid=4081347#
CFID=4081350
CFTOKEN=b7a8b7c0d43c8a63-0860AC5D-FD9B-8FB0-19BA25F892BD43FF
Session Variables:
cfid=4081350
cftoken=b7a8b7c0d43c8a63-0860AC5D-FD9B-8FB0-19BA25F892BD43FF
sessionid=BOOKBROWSE_4081350_b7a8b7c0d43c8a63-0860AC5D-FD9B-8FB0-19BA25F892BD43FF
urltoken=CFID=4081350&CFTOKEN=b7a8b7c0d43c8a63-0860AC5D-FD9B-8FB0-19BA25F892BD43FF
URL Parameters:
10968=
Debug Rendering Time: 14 ms