Grace G

Grace G

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

Grace Graham-Taylor is a freelance writer and content creator living in London, UK. She relies on books to refract the absurdity of the present day, so that she can laugh about things she would otherwise find unbearable. An insatiable media-consuming machine, she also loves film and has conducted interviews for an underground music magazine. She is particularly fond of experimental and post-modern fiction.

BookBrowse Editorial Reviews (15)

BookBrowse Editorial Review
The Anthropologists
by Aysegül Savas
(7/17/2024)
The driving activities of The Anthropologists are Asya and Manu's hunt for an apartment and the documentary Asya is making about life in the park, a kind of cinéma vérité project where she interviews park-goers about their reasons for being there. But really, the plot is somewhat beside the point. The meat of the story is in the moments in between larger events, conversations had with family members, neighbors, and friends. A book where so little happens could easily become
BookBrowse Editorial Review
The Fraud: A Novel
by Zadie Smith
(9/20/2023)
One of Smith's gifts is for creating complicated characters who don't know themselves as well as they think they do. There are many overlapping power structures at play in The Fraud, and its characters are often unaware of their own position within them. But as always in Smith's work, there is no easy moral to the story – there are only people and the lives they inhabit.
BookBrowse Editorial Review
Red Memory: The Afterlives of China's Cultural Revolution
by Tania Branigan
(6/7/2023)
Tania Branigan's Red Memory is an astounding and often harrowing study of Mao's China. Through a series of interviews with people who experienced the Cultural Revolution first-hand, she preserves the reality of one of the darkest and yet most elusive chapters in China's recent past.
BookBrowse Editorial Review
The Foundling: A Novel
by Ann Leary
(7/13/2022)
The Foundling by Ann Leary explores the exploitation of working-class girls at the time, whose so-called moral impropriety made them easy fodder for eugenicist experiments. At the same time, the story is packed with action, romance and drama — perfect for a little bit of escapism, or a break from watching TV soaps. Like a sweet candy with a bitter center, The Foundling is a feminist horror story wrapped up in a beach read. Leary is excellent at portraying the perversion of a
BookBrowse Editorial Review
Young Mungo
by Douglas Stuart
(5/4/2022)
Many of the themes present in Young Mungo will be familiar to readers of Stuart's first novel, the Booker-winning Shuggie Bain, which is set around the same place and time. Yet Young Mungo is more varied and expansive. Stuart delves deeper into the culture of sectarian violence between Protestants and Catholics through the character of Mungo's brother Hamish. A cornerstone of the novel is Mungo's relationship with James, a young pigeon enthusiast whose doocot (the Glaswegian
BookBrowse Editorial Review
The Dawn of Everything: A New History of Humanity
by David Graeber and David Wengrow
(2/2/2022)
From our earliest origins, it seems, human civilizations have evolved in highly particularized and sometimes counterintuitive ways. Here you will find examples of prehistoric hunter-gatherer societies that lived in grand, architecturally complex temples, and nomad societies such as the Nambikwara, who had kings in winter, but not in summer. Graeber and Wengrow spend time delving into the rich political philosophies of early Native American peoples, expounding on a lacerating critique of colonial
BookBrowse Editorial Review
Chronicles from the Land of the Happiest People on Earth: A Novel
by Wole Soyinka
(10/20/2021)
Whilst Chronicles is in many ways excellent, it would not be unreasonable to say that it is a difficult book. The plot is so densely woven that it sometimes feels like wandering blindly through a thicket, with so many layers that it veers towards the convoluted. Soyinka's writing is a little baroque, and he has a habit of dropping you into situations first and explaining later. Yet criticisms of style feel frivolous when placed against the importance of the themes he addresses, and the po
BookBrowse Editorial Review
The Brilliant Abyss: Exploring the Majestic Hidden Life of the Deep Ocean, and the Looming Threat That Imperils It
by Helen Scales
(8/18/2021)
The most outlandish creations of science fiction can't hold a candle to the inhabitants of the abyss, and I enjoyed the even-handed way Scales bestows her attention on them. The great whales that "headbutt the sky" are lavished with as much admiration as the minute Osedax worms that feast on their decaying bones, which gave me an equal appreciation for both. In this way, the author subtly expresses the significance of even the smallest species for the health of the marine ecosystem — a poi
BookBrowse Editorial Review
Big Vape: The Incendiary Rise of Juul
by Jamie Ducharme
(7/14/2021)
Ducharme writes in a level-headed, even tone, carefully weighing up her findings as though they were evidence presented in court. She allows for the possibility that in the early days Juul was not so much malicious as simply irresponsible. However, while Bowen and Monsees never actively sought out an underage demographic for their product, the colorful, aspirational aesthetic of Juul's early media campaigns makes its take-up by teenagers seem almost inevitable. Despite multiple warnings that the
BookBrowse Editorial Review
Paradise, Nevada
by Dario Diofebi
(6/9/2021)
Professional gambling is a fascinating niche, and Diofebi, an ex-professional poker player, provides the reader with insider knowledge. He also writes with real compassion about the lives of the frequently unappreciated waitresses and dancers — often young, attractive women whose careers are dependent on their looks and who are treated as expendable once they reach a certain age. Diofebi seems to be emulating writers such as David Foster Wallace, whose complex fictional worlds include the
BookBrowse Editorial Review
Sorrow and Bliss
by Meg Mason
(3/3/2021)
Whilst the book's content is not exactly ground-breaking, its sharp comedy makes it feel fresh. The author also draws striking attention to the delicate, transitory details of everyday life — Martha appreciates, for example, the way a passing cloud makes the light flicker on her sister's face, and the way the veins in her husband's hands bulge as he grips the steering wheel. The precision of Mason's description elevates otherwise mundane scenes into something that feels extraordinary. S
BookBrowse Editorial Review
Detransition, Baby
by Torrey Peters
(2/3/2021)
Peters, a trans woman herself, writes with intimate detail about trans culture in a way that I'm sure will be startlingly familiar to many who live that reality, but is likely to be revelatory for many outside of it. With wit and intelligence, she illuminates the pleasures, pains and psychological pressures of her trans protagonists as they navigate the world. In addition, Reese's irreverent discourses on femininity and the performative aspects of gender identity offer a helpful lens with which
BookBrowse Editorial Review
Caste: The Origins of Our Discontents
by Isabel Wilkerson
(10/21/2020)
Wilkerson writes clearly and with a gravity that matches her subject matter. Her masterful and at times poetic use of allegory adds color and emotional resonance to her academic analysis, such as when she relates the story of a strange sickness that swept through Siberia in 2016, which eventually was discovered to have been caused by anthrax buried under permafrost. It had been there since World War II, but now, because a radical heatwave had hit the area, it had been released from the snow. The
BookBrowse Editorial Review
Homeland Elegies
by Ayad Akhtar
(9/16/2020)
Through stories of not only his father but many individuals, the author attempts to portray the American experience as a whole. Like a literary Cubist, he draws upon the perspectives of both insiders and outsiders, showing a panoptic vision that brings us closer to understanding the nation's true form. Though telling stories of the past, Homeland Elegies ties itself to the present through the figure of Donald Trump. Trump looms throughout, an ominous specter in the book's peripheral visio
BookBrowse Editorial Review
The Kindness of Strangers: How a Selfish Ape Invented a New Moral Code
by Michael E. McCullough
(8/5/2020)
McCullough is social scientist, not a philosopher. Although he writes with the disarming alacrity of a born optimist, The Kindness of Strangers is couched in hard, empirical fact. Beginning, suitably, at the beginning of life on earth, McCullough's book traces the origins of altruistic tendencies in various species, patiently explaining the theories of evolutionary psychologists and biologists as to why these tendencies might exist. The cumulative maxim is gloriously stark: "Selfishness b

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...

Courage - a perfect sensibility of the measure of danger, and a mental willingness to endure it.

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 05:31 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
1780291895682 ms 1.78029189568E+012 ms 1 /root/website/app_server.cfm
942 ms 942 ms 1 /root/website/readers/index.cfm
481 ms 481 ms 1 /root/website/readers/dsp_profile.cfm
228 ms 228 ms 1 /root/website/app_layout.cfm
191 ms 191 ms 1 /root/website/app_globals.cfm
155 ms 155 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
119 ms 60 ms 2 /root/website/adsystem/adsystem_mod.cfm
82 ms 82 ms 1 /root/website/queries/qry_get_active_obc.cfm
72 ms 72 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
72 ms 72 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
68 ms 68 ms 1 /root/website/adzones/AdZone6.cfm
58 ms 58 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
52 ms 52 ms 1 /root/website/adzones/showcase_track.cfm
45 ms 45 ms 1 /root/website/queries/qry_get_current_competition.cfm
29 ms 29 ms 1 /root/website/queries/qry_get_reviews_by_member.cfm
23 ms 8 ms 3 /root/website/actions/act_spider_tracker.cfm
12 ms 12 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
11 ms 11 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
10 ms 10 ms 1 /root/website/actions/adstatus.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_member_profile.cfm
10 ms 10 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
7 ms 7 ms 1 /root/website/site/blocks/layout/header_announcement.cfm
6 ms 6 ms 1 /root/website/act_check_login.cfm
6 ms 6 ms 1 /root/website/queries/qry_get_following_count.cfm
5 ms 5 ms 1 /root/website/queries/qry_get_member_info.cfm
3 ms 3 ms 1 /root/website/queries/qry_get_follower_count.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/site/blocks/layout/dsp_bottom_block.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/head.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/act_libraryIPLogin.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/queries/qry_get_reader_reviews_power_reviewers.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/main_search.cfm
1 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
943 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=21ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 05:31:35.035
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=5ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 05:31:35.035
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=9ms, Records=2) in /root/website/actions/adstatus.cfm @ 05:31:35.035
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 @ 05:31:35.035
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=11ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 05:31:35.035
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=26ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 05:31:35.035
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=16ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 05:31:35.035
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 @ 05:31:35.035
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=17ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 05:31:35.035
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=23ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 05:31:35.035
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=38ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 05:31:35.035
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=10ms, Records=1) in /root/website/queries/qry_get_member_profile.cfm @ 05:31:35.035
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) = 14166

get_reviews_by_member (Datasource=bookbrowse_com_new, Time=28ms, Records=0) in /root/website/queries/qry_get_reviews_by_member.cfm @ 05:31:35.035
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) = 14166

get_follower_count (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/queries/qry_get_follower_count.cfm @ 05:31:35.035
SELECT COUNT(*) AS follower_count
    FROM member_follows
    WHERE followed_member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 14166

get_following_count (Datasource=bookbrowse_com_new, Time=5ms, Records=1) in /root/website/queries/qry_get_following_count.cfm @ 05:31:35.035
SELECT COUNT(*) AS following_count
    FROM member_follows
    WHERE follower_member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 14166

get_reviewer_number (Datasource=bookbrowse_com_new, Time=14ms, Records=1) in /root/website/readers/dsp_profile.cfm @ 05:31:35.035
SELECT TOP 1 reviewer_number
                FROM reviewers
                WHERE reviewer_email = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = gracegrahamtaylor@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 @ 05:31:35.035
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=8ms, Records=1) in /root/website/readers/dsp_profile.cfm @ 05:31:35.035
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) = 129

get_editorial_reviews (Datasource=bookbrowse_com_new, Time=444ms, Records=15) in /root/website/readers/dsp_profile.cfm @ 05:31:36.036
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) = 129

get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=39ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 05:31:36.036
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=31ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 05:31:36.036
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=51ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 05:31:36.036
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=9ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 05:31:36.036
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=4ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 05:31:36.036
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=10ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 05:31:36.036
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 @ 05:31:36.036
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=23ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 05:31:36.036
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=8ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 05:31:36.036
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=10ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 05:31:36.036
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=CFTOKEN=f18429e353a77887-10A12E7F-F843-B4C7-E91CD033447D52CE; CFID=4089465; CFGLOBALS=urltoken%3DCFID%23%3D4089465%26CFTOKEN%23%3Df18429e353a77887%2D10A12E7F%2DF843%2DB4C7%2DE91CD033447D52CE%23lastvisit%3D%7Bts%20%272026%2D06%2D01%2005%3A31%3A35%27%7D%23hitcount%3D296%23timecreated%3D%7Bts%20%272026%2D06%2D01%2005%3A30%3A44%27%7D%23cftoken%3Df18429e353a77887%2D10A12E7F%2DF843%2DB4C7%2DE91CD033447D52CE%23cfid%3D4089465%23; CFCLIENT_BOOKBROWSE=order%3Dp%23member%5Fnumber%3D0%23member%5Factive%5Fflag%3D0%23member%5Flogged%5Fin%5Fflag%3D0%23library%5Fuser%5Fflag%3D0%23view%3Dbooks%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=/14166
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=4089465
cftoken=f18429e353a77887-10A12E7F-F843-B4C7-E91CD033447D52CE
hitcount=302
lastvisit={ts '2026-06-01 05:31:36'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-06-01 05:30:44'}
urltoken=CFID=4089465&CFTOKEN=f18429e353a77887-10A12E7F-F843-B4C7-E91CD033447D52CE
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#=4089465&CFTOKEN#=f18429e353a77887-10A12E7F-F843-B4C7-E91CD033447D52CE#lastvisit={ts '2026-06-01 05:31:35'}#hitcount=296#timecreated={ts '2026-06-01 05:30:44'}#cftoken=f18429e353a77887-10A12E7F-F843-B4C7-E91CD033447D52CE#cfid=4089465#
CFID=4089465
CFTOKEN=f18429e353a77887-10A12E7F-F843-B4C7-E91CD033447D52CE
Session Variables:
cfid=4089465
cftoken=f18429e353a77887-10A12E7F-F843-B4C7-E91CD033447D52CE
sessionid=BOOKBROWSE_4089465_f18429e353a77887-10A12E7F-F843-B4C7-E91CD033447D52CE
urltoken=CFID=4089465&CFTOKEN=f18429e353a77887-10A12E7F-F843-B4C7-E91CD033447D52CE
URL Parameters:
14166=
Debug Rendering Time: 7 ms