DM

Dean M

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

Dean Muscat is a freelance writer who lives on a hot and humid overpopulated speck of rock in the middle of the Mediterranean Sea, more commonly known as Malta. Some of his favorite authors include William Faulkner, Angela Carter, and Neil Gaiman. He reviews books, dabbles in short fiction, and posts the occasional travel diary on his blog The Strange & Ordinary.

BookBrowse Editorial Reviews (20)

BookBrowse Editorial Review
How to Pronounce Knife
by Souvankham Thammavongsa
(5/20/2020)
Throughout the 14 stories collected in How to Pronounce Knife, nearly all of which follow Lao immigrants and refugees building new lives in unnamed towns across Canada, not once do we encounter a character homesick with nostalgia. By limiting cultural particularities, Thammavongsa steers the reader closer to a general experience of alienation bound up with the immigrant experience. These stories never rely on twists or a-ha moments. They are deeply affecting, humorous and heartbreaking in
BookBrowse Editorial Review
The Lost Book of Adana Moreau
by Michael Zapata
(4/8/2020)
The Lost Book of Adana Moreau is a novel that's positively crammed with stories; there are enough here to fill several books and then some. Much like Maxwell's childhood favorite The Book of the Thousand Nights and a Night, Michael Zapata's luminous novel is set up in a stories-within-a-story framework. As Zapata shows again and again, stories offer insight into people's lives; give a voice to history's forgotten; and above all, have the unique ability to connect people from dispar
BookBrowse Editorial Review
Djinn Patrol on the Purple Line
by Deepa Anappara
(3/4/2020)
Anappara's India lives and breathes on the page. Every tin-roofed hut, abandoned alleyway, and overcrowded bazaar fizzes with a richness of detail that could only be rooted in the author's intimate knowledge of her setting. Anappara earns her right to eschew any happy endings. In an India where as many as 180 children go missing every day, with the vast majority of cases remaining unsolved, the enthralling Djinn Patrol on the Purple Line is unafraid to lay bare the country's grim realitie
BookBrowse Editorial Review
Follow Me to Ground
by Sue Rainsford
(2/5/2020)
At its core, Follow Me To Ground is a story about a daughter on the cusp of womanhood carving a life for herself away from her well-meaning if overbearing father. This could have so easily been just another fantastically-tinged tale of a girl seeking and attaining her own agency. Thankfully, it's much stranger than that, and all the more powerful for it— a haunting, intoxicating debut that establishes its author as one to watch in the future.
BookBrowse Editorial Review
Celestial Bodies
by Jokha Alharthi
(1/8/2020)
Celestial Bodies is a novel that is perhaps greater than the sum of its parts. Alharthi weaves it like a tapestry—a curious patch here, a perfunctory detail there. It's when you pull out to look at the creation in its entirety that you can truly appreciate its majesty. Once you get into the rhythm of the author's see-sawing, non-chronological storytelling, you'll realize that all mysteries will be unraveled in due course, always satisfyingly and often to startling effect.
BookBrowse Editorial Review
The Water Dancer
by Ta-Nehisi Coates
(10/2/2019)
Coates skillfully explores the many horrors of slavery. Through his journeys, Hiram comes in contact with countless former slaves who share their heartbreaking stories in great detail. These voices widen the scope, and it's in these testimonials where this novel truly comes alive.
BookBrowse Editorial Review
The World Doesn't Require You
by Rion Amilcar Scott
(10/2/2019)
The World Doesn't Require You is that rare short story collection – a unified work in which stories interweave and each successive chapter sheds light and adds deeper contexts of meaning to what came before. Once you reach the twists and turns of its climactic pages, you'll want to flip back to the beginning and read it all over again.
BookBrowse Editorial Review
Inland
by Téa Obreht
(8/21/2019)
Attempting to encapsulate Inland's many sprawling story-tendrils within a neat synopsis is to do this bewitching novel a great disservice. We may only follow two central protagonists, but from the get-go Obreht gives voice to a legion of lives and spirits that put flesh on the bones of a majestic, untamed American West unburdened by stale cowboy-and-Indian tropes. Episode after suspenseful episode fizzes with life thanks to shimmering prose and rippling turns of phrase.
BookBrowse Editorial Review
Costalegre
by Courtney Maum
(7/31/2019)
The plot is pretty spare but its form is endlessly inventive. Maum imbues Lara's diary vignettes with postmodern stylings, offering insight into her young protagonist's mindset. Through this bricolage we become intimate with all of Lara: her intelligence, artistry, perceptiveness, naivety, hopes and insecurities. Costalegre is a dazzling read that deftly questions the modern world's blind obsession with the cult of the artist.
BookBrowse Editorial Review
The Capital: A Novel
by Robert Menasse
(6/19/2019)
Menasse clearly has a deep-rooted affection for what the E.U. represents at its core. The Auschwitz celebrations may be a cynical political ploy to curry favor with the public, but the continual references to the Holocaust and its survivors demonstrate how easily feuding nations can lead to genocide and why a federation is needed to safeguard and unify European citizens. The Capital is a multi-faceted novel of ideas that will inspire great debate about the E.U.'s evolving role in contempo
BookBrowse Editorial Review
Once Upon a River
by Diane Setterfield
(1/9/2019)
Setterfield possesses a rare gift. She is able to endow even the most bit-part actors with rounded, intriguing backstories that never overstay their welcome and never read dry. Once Upon a River is a spellbinding feat in storytelling.
BookBrowse Editorial Review
The Melody
by Jim Crace
(8/29/2018)
The Melody has the illusory effect of a siesta in the afternoon sunshine...a hazy quality that invites the reader to fall into its dream-like prose and embrace its ambiguities.
BookBrowse Editorial Review
Treeborne
by Caleb Johnson
(7/11/2018)
At times Treeborne reads like a Southern Gothic novel by the numbers. This is a book of rattlesnakes and corn liquor, of a cursed backwoods family living on cursed backwater soil. Johnson appears to relish giving voice to the gross and grotesque. As such, a cynical reader may deem much of what's on offer as mere genre box-ticking. Thankfully, Johnson's fecund language – "The Seven more gorgeous than any piece of land she'd ever traipsed." – rooted in an earthy Southern vernacular render t
BookBrowse Editorial Review
America Is Not the Heart
by Elaine Castillo
(5/30/2018)
Attempting to distill Elaine Castillo's debut novel America is Not the Heart into a neat synopsis is a little like trying to explain the plots of several books all at the same time. Yes, this is first and foremost a tale of new beginnings in a foreign land. But it is also a document of a nation's political upheaval that spans several decades. America is Not the Heart is a bisexual romance, a story of survival, a celebration of Filipino culture, and more besides. Thankfully Castillo
BookBrowse Editorial Review
West
by Carys Davies
(5/2/2018)
While West is a slim novel, it rarely feels slight. The search for the unknown is the thematic backbone here and Davies has done well to present Cy's ambition as both noble quest and fool's errand. There was perhaps an opportunity for West to be a weightier, more immersive book. As such its brevity never thoroughly explores the sheer scale and vastness of Cy's expedition across America. Too much of the journey is glossed over in stark, unadorned sentences which at times robs the al
BookBrowse Editorial Review
Circe
by Madeline Miller
(4/18/2018)
Much of Circe is an exploration into what it means to be female in a world of men and monsters. While it is usually tenuous to compare an author's latest novel to previous work, it does feel as if Miller wrote Circe as a conscious inversion of her prize-winning debut The Song of Achilles in nearly every aspect. The pool of inspiration may be the same – primarily Homer's epics – but whereas Achilles was very much a book about mortal men coming to grips with their own v
BookBrowse Editorial Review
The Driest Season
by Meghan Kenny
(3/7/2018)
While The Driest Season is not perfect, it manages to be an affecting novel because of how it interprets the grieving process through prose and finds hope and goodness in a world that can all too often appear exhaustingly bleak. Time may not erase, but it does heal. The dry season is just that, a season that will eventually pass.
BookBrowse Editorial Review
Sadness Is a White Bird
by Moriel Rothman-Zecher
(2/21/2018)
Much of Sadness is a White Bird is an exploration into cultural identity and how even newer generations of optimistic, progressive, humanistic youths are unable to shake off the historical shackles that pull them back into a never-ending cycle of conflict. Rothman-Zecher has an exquisite ability to vocalize the historical contexts that shape personal identity. Through shimmering prose and a pointedly intimate narrative, Rothman-Zecher has written a powerful, passionate but even-handed cri
BookBrowse Editorial Review
A State of Freedom
by Neel Mukherjee
(2/7/2018)
Across the book's five disparate sections, there is no obvious grand narrative arc, no plot to speak of, no holistic character development or neat resolutions. Instead the reader is left with a glorious, chaotic babel of voices and lives and hopes and suffering of migrants pursuing freedom and economic betterment within the confines of their native country of India. For those willing to play its game, A State of Freedom will prove to be a dazzling and challenging contemplation on beauty a
BookBrowse Editorial Review
The Immortalists: A Novel
by Chloe Benjamin
(1/3/2018)
It is perhaps Benjamin's deftness in writing about familial matters that is most exquisite. From section to section, the reader is made to empathize with the brothers and sisters as they navigate a shared inner conflict between family duty and personal desires with their looming death days in mind. With uncluttered incisive prose, the author constantly brings to light the quiet tensions and bonds operating just under the surface of the relationships between the Gold family.

As such

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

I always find it more difficult to say the things I mean than the things I don't.

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
1780291884614 ms 1.78029188461E+012 ms 1 /root/website/app_server.cfm
1215 ms 1215 ms 1 /root/website/readers/index.cfm
818 ms 818 ms 1 /root/website/readers/dsp_profile.cfm
251 ms 251 ms 1 /root/website/app_layout.cfm
147 ms 74 ms 2 /root/website/adsystem/adsystem_mod.cfm
132 ms 132 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
118 ms 118 ms 1 /root/website/app_globals.cfm
102 ms 102 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
100 ms 100 ms 1 /root/website/adzones/showcase_track.cfm
47 ms 47 ms 1 /root/website/adzones/AdZone6.cfm
47 ms 47 ms 1 /root/website/queries/qry_get_active_obc.cfm
43 ms 43 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
41 ms 41 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
40 ms 40 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
25 ms 25 ms 1 /root/website/queries/qry_get_current_competition.cfm
14 ms 14 ms 1 /root/website/queries/qry_get_reviews_by_member.cfm
11 ms 11 ms 1 /root/website/queries/qry_get_member_profile.cfm
11 ms 11 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_follower_count.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_free_newsletters.cfm
9 ms 9 ms 1 /root/website/act_check_login.cfm
9 ms 3 ms 3 /root/website/actions/act_spider_tracker.cfm
9 ms 9 ms 1 /root/website/queries/qry_get_member_info.cfm
5 ms 5 ms 1 /root/website/actions/adstatus.cfm
5 ms 5 ms 1 /root/website/queries/qry_get_current_ezine.cfm
5 ms 5 ms 1 /root/website/queries/qry_get_following_count.cfm
3 ms 3 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/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/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_previous_arcs_for_ad.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/header_announcement.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/main_search.cfm
1 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
1216 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 @ 05:31:24.024
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=7ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 05:31:24.024
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=4ms, Records=2) in /root/website/actions/adstatus.cfm @ 05:31:24.024
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:24.024
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=8ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 05:31:24.024
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=6ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 05:31:24.024
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=17ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 05:31:24.024
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:24.024
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=14ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 05:31:24.024
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=16ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 05:31:24.024
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=10ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 05:31:24.024
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:24.024
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) = 11973

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

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

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

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

get_editorial_reviews (Datasource=bookbrowse_com_new, Time=763ms, Records=20) in /root/website/readers/dsp_profile.cfm @ 05:31:25.025
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) = 102

get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=10ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 05:31:25.025
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=29ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 05:31:25.025
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=21ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 05:31:25.025
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=17ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 05:31:25.025
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=3ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 05:31:25.025
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=39ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 05:31:25.025
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:25.025
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=76ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 05:31:25.025
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 @ 05:31:25.025
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=5ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 05:31:25.025
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%3A24%27%7D%23hitcount%3D232%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=/11973
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=236
lastvisit={ts '2026-06-01 05:31:25'}
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:24'}#hitcount=232#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:
11973=
Debug Rendering Time: 30 ms