Dan Fesperman Interview, plus links to author biography, book summaries, excerpts and reviews

Dan Fesperman

Dan Fesperman

An interview with Dan Fesperman

In two separate interviews Dan Fesperman talks about The Warlord's Son and The Prisoner of Guantanamo, and describes what it is like to be a war correspondent and why he believes "every culture in the world is just one good shove away from the precipice of barbarism".

You set your last novel, The Warlord's Son, in Afghanistan. Your new novel, The Prisoner of Guantanamo, is set at the now famous prison camp. Why is it important for you to base your fiction on current events?

I've always been fascinated by the way events in the here and now echo so much of what has gone on before. So I guess you could say that it's not just the immediacy I find attractive, it's also the timelessness. In Afghanistan, foreign empires have been blundering around for centuries, always faring worst when they're convinced they know best. How could you not be intrigued by the possibilities of exploring the way that's playing out now, right under our noses?

Guantanamo, to me at least, represents yet another period in our history when we've let hubris and insecurity push us to the limits of what is considered "American behavior." There is a side to us that, when threatened, wants to just kick ass and take names and forget about rules and rights for a while. But if you look back through history, this has always produced its own set of problems. So it was fascinating for me to offer a fictional take on some of the forces in collision down at Gitmo.

When and why did you decide that you wanted to set a novel at Guantanamo?

It partly goes back to a trip I took there way back in the late 1970s, covering a troop exercise ordered by President Jimmy Carter during a time of tension with Cuba. The place was much more isolated then–no Internet, no satellite dish TV, no 24-hour news cycle–and it struck me as one of the more surreal landscapes I'd ever set foot on. So when the Pentagon decided to turn the place into a sort of American Devil's Island, I couldn't resist the lure of the atmospheric possibilities. Six-hundred prisoners from 19 countries, plucked from the heart of the age-old East-West divide, surrounded by a few thousand soldiers who are slowly going stir crazy in the tropical heat. And everything is watched closely by the Cubans in their watchtowers. The geography is also very striking. Look in one direction and you would think you were in the high desert, with big cactus plants all over the hills. Turn around and you're staring at a Caribbean vista you might find at Club Med. Then a three-foot iguana strolls by, followed by a Marine on patrol in greasepaint and camouflage. Perfect.

How did you research The Prisoner of Guantanamo? How much access did you have to the camp?

I took the Pentagon's standard two-day media tour, which involves a whole lot of minders following and monitoring your every move, plus a brief swing through the prison itself. You're ordered not to speak with any prisoner. In fact, if you even make a hand signal or extended eye contact, the rules say you're kicked out, although in reality the prisoners stare at you and you stare right back. At the time there were only a few other visitors–a couple of BBC guys and a camera crew. The military let us talk to guards, officers, cooks, doctors, chaplains and so on, but never without an Army press officer sitting or standing nearby, so you were never sure about the candor except in response to the most innocuous questions. We also got a peek at Camp Iguana, the juvenile cellblock over on a bluff by the ocean. The best part of the experience was simply getting a physical feel for the place, for the sake of getting a grasp of the atmospherics. Most of the rest of my research occurred after I got back, and involved speaking with interrogators and officers who had done a hitch there. They were a lot more candid about everything one-on-one, with no minders around. The trove of hundreds of Gitmo memos unearthed by the American Civil Liberties Union in a Freedom of Information request was also invaluable, in that it offered a nice window onto the infighting between the FBI and the Pentagon over interrogation strategies.

In your novel, you portray Guantanamo as an intricate, secretive world where no one is to be trusted–a world within a world. How true to life is this description?

I think the rampant mistrust was particularly prevalent during the period when the book was set–late summer of 2003. Just as in the novel, there were some arrests made then of a couple of Arabic speakers who were charged with espionage. There was a lot of loose talk about a possible spy ring, and at one time as many as a dozen people were under suspicion, so the atmosphere was fairly poisonous. Most of the charges came to nothing, and in the end some skeptics suggested they had a lot more to do with personal vendettas and cultural misunderstandings, which was hardly surprising. An odd footnote to that was that the first person arrested, a Muslim Army chaplain, was a fellow I'd interviewed down there only a few weeks earlier. He was mild-mannered, and so careful in his answers that he was practically no help at all for my purposes, although when I bumped into him later at dinner he loosened up a bit. From the moment I first heard about the charges against him, it didn't seem to fit with the man's personality. Sure enough, the whole case against him fell apart, and turned out to be nothing. But in a hothouse environment like Gitmo, the smallest little shoots of suspicion can grow into something pretty menacing almost overnight. That whole episode gave me a much better understanding of some of the dynamics down there.

Revere Falk, the main character and an interrogator at the camp, is an Arabic speaker assigned to try to break a disturbed Yemeni who may or may not have valuable intelligence. How dangerous is this work for interrogators, especially for those who speak Arabic?

I don't think it's dangerous at all, except maybe to your mental stability. The people you're interrogating are chained to the floor, you have an MP nearby at all times, and you're pretty much in complete control of the situation. The prisoners don't know your name, and there's no way you're going to tell them. The biggest hazard, if you can call it that, is possible damage to your career. The FBI people–at least in the time I'm dealing with in the book–ran up against a lot of frustration in trying to do things their own way, and felt like they were often spinning their wheels. The military officers were under a lot of pressure to get results, and weren't always happy with the shortcuts they were taking to get them. It's a pretty terrible place to have to go to work every day, and people tend to burn out quickly. But it sure beats the hell out of being on the other side of the wire.

As Falk investigates the death of an American soldier who washed up on the wrong side of the border in Cuba, he realizes that operatives from his own government are trying to bury the investigation. Unfortunately, we see this happen in our own government, with the Abu Ghraib prison scandal, for instance. How much did this influence your story?

I don't think it was Abu Ghraib that influenced me as much as the usual institutional tendency of all organizations, whether the Pentagon or General Motors, to try and sweep embarrassing problems under the rug. For a writer, the fun part is that this urge to cover up often produces more problems than it solves, and it sets up a lot of interesting tensions. Your characters are faced with choices between the organization's values and their own. Everybody has to do a lot of thinking about what is right, and what is just, and whether or not those standards are flexible when you're facing an enemy who doesn't play by the same rules. And if you're covering your tracks, isn't that really a tacit admission that you're ashamed of the course you've chosen? It's a terrible thing to be caught in the middle of, but it offers pretty wonderful material for writers.

Your novels are always incredibly topical and yet also highly entertaining page turners. How do you achieve that balance of providing both information and entertainment?

You always have to value the needs of the story and the needs of your characters over the need to be topical. Once you've captured the essence of a place you can pretty much take the story in any direction you want without sacrificing plausibility. You hope that the feel of the moment will accurately reflect the temper of the times. But this doesn't mean you're trying to mimic reality. What you're striving for is an alternative reality. The scenery may look the same, and smell the same, and the issues at stake might be familiar enough to anyone who has been following the headlines. But once your characters begin to live and breathe you've got your own world to manage, and that's when you stop worrying about what's going on in the real one.

This is your fourth novel. Will you continue to draw on your experiences as a journalist for your next work of fiction? What are you working on?

In October I did some traveling for research as a novelist only. It was a first for me, even if the necessary techniques for interviewing and digging out material are pretty much the same. I was in Jordan and Greece for a few weeks, talking to a lot of people and visiting sites that I want to use in the next book. I've also been speaking with some humanitarian aid workers about their experiences in different countries where I used to travel. The book I've got in mind will feature an aid worker who thinks he is just about to enjoy the fruits of an early retirement, but is instead recruited into a covert operation in Jordan, infiltrating an organization run by an old Palestinian friend of his. It's sort of an Eric Ambler type of tale about a fellow with no experience in the secret world who is suddenly thrust among the professionals, for better or worse, and it will touch upon both the Israeli-Palestinian conflict and the current U.S. drive to identify financing sources of terror networks.


 

A Conversation with Dan Fesperman about The Warlord's Son

What made you want to set a novel in Afghanistan?
Afghanistan is one of the great, exotic theaters of the current rising struggle between East and West, which is shaping up as a sort of new Cold War. That, plus it has always been a prime setting for intrigue throughout history. Empires always end up meddling there, and almost always end up blundering or miscalculating, usually by underestimating the locals. There is something both current and timeless about that. So when I got the chance to travel there a few years ago–during the same period in which the book is set, in fact–I knew I had to use the setting. The atmospherics were just too wonderful to pass up.

What exactly is a Warlord in the context of this book?
He is a tribal chieftain, a man on the make with turf to protect, interests to look out for, and well-armed rivals to deal with. Outside powers have always tried to put such people to work for them in Afghanistan and along the North-West frontier, but somehow, as in the case of Najeeb's dad, the warlords always seem to get the better of the relationship. They get what they need, whether its weapons or money or a certain sort of leverage, and in exchange the donor often gets an unreliable ally, depending on his mood of the moment. If you look at Afghanistan now, and also the adjacent tribal areas of Pakistan, they are still largely run by networks of warlords. They tend to view Hamid Karzai as the mayor of Kabul, whose more grandiose title of president is tolerated as long as he doesn't interfere too greatly in their affairs.

Throughout the novel, Skelly puts himself in unbelievably dangerous situations for the sake of the "story." I'm sure you've known many journalists like this, or may even recognize this trait in yourself. How would you explain it?
The funny thing is that, except for the firefight, neither Skelly nor most any journalist who has covered war and upheaval abroad would necessarily argue that Skelly is much of a risk taker. It's not so much that you get enured to the dangers as much as you realize, once you're on the scene, that no place is as dangerous as it seems from afar. Even in the midst of war zones there are sanctuaries, pockets of relative tranquility. The trick is in learning how to move back and forth between the hot and cold zones without taking too much risk. Of course, some of this attitude, whether from me or from Skelly, is convenient self-delusion. We tell ourselves we know what we're doing, and that's fine until circumstances veer out of control. Then you find yourself huddling in the rocks and dodging fire, and wondering if any story could possibly be worth all this.

The title character, Najeeb, is a journalist in Pakistan as well as a translator and guide who went to University in the U.S. He is an intriguing mix of the traditional views he was raised with and the modern ideas he's been exposed to in the States. How prevalent are people like Najeeb in the Middle East?
More prevalent than you might think. Throughout the Middle East, and very much so over in Pakistan, you're always running into people who have relatives in America or Great Britain. In more educated circles it's even more frequent. But, to give you one example from some other travels, once in a benighted rural corner of the Balkans I was subjected to a half-hour political lecture by a nationalistic young thug who couldn't have seemed more out of touch with the modern world of the West. Of course, he then informed me that he had three uncles in California. Episodes like that happen in the Middle East as well. Plus, there's a lot of exposure to our culture through portals like the Internet, or films and television. What makes Najeeb exceptional is that he's from the Tribal Areas, which have remained relatively isolated. But there have been cases of suddenly wealthy chieftains who, either to make a point or to impress their rivals, have sent their sons abroad for university educations, just in the way Najeeb got his college degree.

There is a lot of curiosity about the Muslim culture. Were you trying to present a specific image in your writing of this novel? If so, how do you think readers will react to your portrayal of that culture?
Not so much a specific image of Muslim culture, because that would be about as difficult as trying to nail down the Christian culture within the framework of a single character. I was trying to present a slice of it, with someone who, while devout, isn't particularly slavish in his devotion. He does some of the little things wrong–doesn't always wash up before prayers, for example, or carries his teacup around, sipping at it just before unrolling his prayer rug. But not every Muslim, even among the devout, always follows every rule or restriction to the letter. I think a lot of Americans share Skelly's misconception -- thinking that any Muslim who's a true believer must be at least a borderline fanatic. But Skelly's lack of understanding also has to do with the uneasy relationship between the sacred and the secular, a point of friction just as likely to be found between, say, evangelical Christians and some of their secular neighbors, as between Muslims and Christians. Whenever any of these sides drift apart and stop talking to each other, whether its within the same town or across national borders, the misconceptions and conflicts only worsen.

At one point in the story, Skelly, the American war correspondent, looks around at a blood-thirsty crowd and recognizes it as a scene that he has seen in many places, including America. How distant would you say America is from the violence that occurs in other places?
Every culture in the world is just one good shove away from the precipice of barbarism. The easy example is the Germans under Hitler, or more recently the people who'd lived side by side for 50 years in Tito's Yugoslavia. They spent all that time modernizing and saying the right things, yet the seed was always there for their own destruction once they got that push from the politicians and the fear-mongers. Remove the established order from any place for an appreciable time and the mob will always assert itself, generally with ugly results. Give them a rope and you've got a lynching. Give them machetes and you have Rwanda. Give them 20-plus years to go after each other and you've got Afghanistan, with everything ruined and broken. The pity of it is that the number of people who would opt for reason, or for peaceful resolution, almost always outnumbers the rabble rousers and hotheads. Yet somehow the latter bunch always seems to prevail the moment you've removed the controls.

Najeeb, Skelly's translator, commits what is seen in his culture as an unforgivable sin–betraying his family. Do you believe that there are any unforgivable acts when it comes to family?
It depends on the family, really. A few friends of mine have been disowned by their parents for marrying out of their faith–and these aren't Muslims I'm talking about. A little tolerance can go a long way in holding a family together through thick and thin. The irony is that a tolerant upbringing is also less likely to produce the sort of offspring who might do something unforgivable. Then again, you look at someone like John Walker Lindh, the "American Taliban," a sort of lost soul who had been encouraged by his parents from an early age to sample other cultures, then took it to unthinkable extremes. He fell about as far away from their way of life as you can imagine, yet by all accounts his parents have been very forgiving, and would welcome him home in a second. So, even in a culture as rigid as Najeeb's, it is often a very personal standard as to what a family will and won't forgive.

Bin Laden appears throughout the novel, almost as a ghostly figure overlooking certain events but never directly taking part. What is the implication of this?
I wanted to have him hovering in the periphery as a threatening, influential and even ghostly presence. Because let's face it, without him there would have been no American adventure in Afghanistan, and no hordes of Skellys rushing over there to cover it with Najeebs in tow. Yet I very much did not want this book to devolve into a "Bin Laden novel." Of course, that made it tricky for me in the one scene in which the man himself appears to have a cameo. Which is why I chose to have Skelly come to this encounter feverish, and somewhat addle-brained. Does Skelly really see him? The evidence seems to strongly indicate that he does, but we'll never know for sure. Or, at least, no one but I will know. Hey, we have to keep some secrets from our readers!

Najeeb points out that as a journalist, Skelly is much like a walking ATM. In your experience, how are journalists viewed in countries where they are reporting from?
I can only speak for how American journalists are viewed abroad, because I think the experience varies by nationality. And for Americans the experience has become increasingly trying and hazardous. Even fifteen years ago a journalist might not have been identified so heavily with his home country, except in the Middle East, where there long been strong feelings among Arabs that U.S. coverage is slanted against them. But nowadays, particularly if it's in a part of the world where the American military is present, journalists will often have to endure political lectures, or long lists of grievances, before getting to the meat of their interview. Most alarmingly, there is a growing sense in some extremist quarters that one can send a more emphatic message by killing the messenger than by speaking with him, and that's very dangerous ground. As for the aspect of being a walking ATM, this happens in any country where chaos reigns and economic order has vanished. Arriving journalists will literally be the richest folks in town. Frankly it's a wonder (not to mention a tribute to the people in these places) that more of us haven't been robbed and killed simply because we're such easy and lucrative targets.

This is your third novel. What advantages have you found in writing fiction as opposed to journalistic writing?
The answer I always fall back on whenever this kind of question comes up is a quotation, source unknown, that I heard long ago from a colleague. "Journalism is truth with a small t. Fiction is truth with a capital T." Apart from the obvious stylistic freedom which fiction allows, it also unchains you from your notebook. You're not having to constantly get all of the little facts straight, as long as the greater truths are intact. You're out to capture a sense of place, of character, of culture, and of conflict. You're in search of the universals, yet also of the particulars that set yours apart. And while the best journalism also seeks the answers to some of those bigger questions, in fiction you have the wonderful convenience of shaping the characters in all the smaller ways that makes them a better fit.

What's next for you?
I recently started work on a novel set at Guantanamo, circa summer 2003. The main character is an FBI interrogator. And if you think of Afghanistan and the Balkans as exotic locales, well, none have anything on Camp Delta–a prison camp shut away from the world on a forbidden corner of Castro's Cuba. In other words, a world within a world within a world, with the largest of those worlds being an island nation isolated from its nearest neighbor. I visited Guantanamo and Camp Delta last summer, and the setting just knocked me over with all its exotic and bizarre touches, as well as with its overwhelming sense of claustrophobia and besiegement. It's perfect for the sort of books I like to write.

Unless otherwise stated, this interview was conducted at the time the book was first published, and is reproduced with permission of the publisher. This interview may not be reproduced or reprinted without permission in writing from the copyright holder.

Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

Books by this Author

Books by Dan Fesperman at BookBrowse
Pariah jacket Winter Work jacket Safe Houses jacket The Letter Writer jacket
Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

Read-Alikes

All the books below are recommended as read-alikes for Dan Fesperman but some maybe more relevant to you than others depending on which books by the author you have read and enjoyed. So look for the suggested read-alikes by title linked on the right.
How we choose readalikes

  • Jasmine Aimaq

    Jasmine Aimaq

    Jasmine Aimaq was born in Germany to a Swedish mother and Afghan father. At age 4, she moved to Afghanistan with her parents and sister, and attended a French school in Kabul. They left the country in 1976, two years before ... (more)

    If you enjoyed:
    The Warlord's Son

    Try:
    The Opium Prince
    by Jasmine Aimaq

  • Nadeem Aslam

    Nadeem Aslam

    Nadeem Aslam was born in Pakistan in 1966 and moved to Britain at age 14. His family left Pakistan to escape President Zia's regime.

    His novel Maps for Lost Lovers, winner of the Kuriyama Prize, took him more than a decade ... (more)

    If you enjoyed:
    The Warlord's Son

    Try:
    The Wasted Vigil
    by Nadeem Aslam

We recommend 21 similar authors


Non-members can see 2 results. Become a member
Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

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

We should have a great fewer disputes in the world if words were taken for what they are

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 /author_interviews/full/index.cfm
Time Stamp 01-Jun-26 01:41 PM
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
1780321294587 ms 1.78032129459E+012 ms 1 /root/website/app_server.cfm
874 ms 874 ms 1 /root/website/author_interviews/full/index.cfm
331 ms 331 ms 1 /root/website/app_layout.cfm
260 ms 260 ms 1 /root/website/author_interviews/full/dsp_main.cfm
248 ms 83 ms 3 /root/website/adsystem/adsystem_mod.cfm
205 ms 205 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
170 ms 170 ms 1 /root/website/app_globals.cfm
152 ms 76 ms 2 /root/website/queries/qry_get_books_by_author_id.cfm
114 ms 114 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
113 ms 113 ms 1 /root/website/adzones/showcase_track.cfm
93 ms 93 ms 1 /root/website/adzones/AdZone6.cfm
85 ms 85 ms 1 /root/website/queries/qry_get_active_obc.cfm
79 ms 79 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
77 ms 77 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
51 ms 51 ms 1 /root/website/queries/qry_get_books_by_author_id_lite.cfm
45 ms 15 ms 3 /root/website/site/blocks/membership_advantages.cfm
44 ms 15 ms 3 /root/website/queries/qry_get_member_account_types.cfm
42 ms 42 ms 1 /root/website/adzones/AdZone2.cfm
31 ms 31 ms 1 /root/website/queries/qry_get_bb_briefs_by_author.cfm
27 ms 27 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
21 ms 21 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
16 ms 16 ms 1 /root/website/actions/adstatus.cfm
16 ms 16 ms 1 /root/website/queries/qry_get_all_books_by_author_id.cfm
16 ms 16 ms 1 /root/website/queries/qry_get_current_competition.cfm
15 ms 4 ms 4 /root/website/actions/act_spider_tracker.cfm
12 ms 12 ms 1 /root/website/queries/qry_get_author_readalikes_by_id.cfm
4 ms 4 ms 1 /root/website/act_check_login.cfm
4 ms 4 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
3 ms 3 ms 1 /root/website/queries/qry_get_member_info.cfm
3 ms 3 ms 1 /root/website/site/blocks/layout/main_menu.cfm
3 ms 3 ms 1 /root/website/site/blocks/layout/main_search.cfm
2 ms 2 ms 1 /root/website/queries/qry_get_free_newsletters.cfm
2 ms 2 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.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/dsp_top_author_block.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/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
1 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
875 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=15ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 13:41:34.034
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 @ 13:41:34.034
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=10ms, Records=2) in /root/website/actions/adstatus.cfm @ 13:41:34.034
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 @ 13:41:34.034
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=18ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 13:41:34.034
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=10ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 13:41:34.034
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=2ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 13:41:34.034
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 @ 13:41:34.034
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=7ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 13:41:34.034
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=38ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 13:41:34.034
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 @ 13:41:34.034
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_books_by_author_id (Datasource=bookbrowse_com_new, Time=24ms, Records=3) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 13:41:34.034
select	a.book_number, a.book_title, a.book_sub_title, book_short_summary,
				(CASE WHEN f.edition_publish_dt < g.edition_publish_dt OR g.edition_publish_dt IS NULL THEN f.edition_publish_dt
                      ELSE g.edition_publish_dt 
                      END) "publish_dt"
		
        from 	books a
		inner join book_author_mapping e ON e.book_number = a.book_number
        inner join authors d ON d.author_number = e.author_number
        left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0 
   		left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1 
		
       	where 	d.author_number = ?
        and 	a.book_number IN (	select	distinct b.book_number 
        							from	categories a, category_book_mapping b 
                                    where 	a.category_number = b.category_number 
                                    and 	a.category_active_flag = 1)

		order by publish_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1076

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=24ms, Records=1) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 13:41:34.034
select	d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, d.author_pronunciation,
				i.author_info_number, i.author_number, i.author_info_image, i.author_info_entry_dt,
                i.author_info_url, i.author_info_interview_summary, i.author_info_interview, i.author_info_biography, i.author_info_copyright_info
                		
        from 	authors d, author_info i
		
        where 	d.author_number = ?
        and 	d.author_number = i.author_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1076

get_all_books_by_author_id (Datasource=bookbrowse_com_new, Time=15ms, Records=9) in /root/website/queries/qry_get_all_books_by_author_id.cfm @ 13:41:34.034
select	a.book_number, 
        		'' AS ezine_preview_number,
                a.book_title, 
                a.book_sub_title, 
				(CASE WHEN f.edition_publish_dt < g.edition_publish_dt OR g.edition_publish_dt IS NULL THEN f.edition_publish_dt
                      ELSE g.edition_publish_dt 
                      END) "publish_dt",
                '' as "jacket"
		
        from 	books a
		inner join book_author_mapping e ON e.book_number = a.book_number
        inner join authors d ON d.author_number = e.author_number
		left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0
		left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1
		
        where 	d.author_number = ?
        and 	a.book_number IN (	select	distinct b.book_number 
        							from	categories a, category_book_mapping b 
                                    where 	a.category_number = b.category_number 
                                    and 	a.category_active_flag = 1)        
        UNION

		select	'' AS book_number,
        		ezine_preview_number, 
				ezine_preview_title AS "book_title", 
				ezine_preview_subtitle AS "book_sub_title",
                ezine_preview_publish_dt AS "publish_dt",
                ezine_preview_jacket_image as "jacket"
		
        from 	ezine_previews
		
        where 	ezine_preview_bb_author_link = ?
        and		ezine_preview_bb_link < 1
        
        order by publish_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1076
Parameter #2(CF_SQL_INTEGER) = 1076

get_bb_briefs_by_author (Datasource=bookbrowse_com_new, Time=30ms, Records=5) in /root/website/queries/qry_get_bb_briefs_by_author.cfm @ 13:41:34.034
select	ezine_preview_number, 
				ezine_preview_title, 
				ezine_preview_subtitle,
                ezine_preview_publish_dt ,
                ezine_preview_jacket_image
		
        from 	ezine_previews
		
        where 	ezine_preview_bb_author_link = ?
        and		(ezine_preview_bb_link IS NULL
				 or ezine_preview_bb_link < 1)
        and		ezine_number > 0
        
		order by ezine_preview_publish_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1076

get_author_readalikes_by_id (Datasource=bookbrowse_com_new, Time=12ms, Records=21) in /root/website/queries/qry_get_author_readalikes_by_id.cfm @ 13:41:34.034
SELECT		a.author_number,
			CASE	WHEN datalength(a.author_middle_initial) > 0 
					THEN a.author_first_name + ' ' + a.author_middle_initial + ' ' + a.author_last_name
					ELSE a.author_first_name + ' ' + a.author_last_name
					END AS "author_full_name",
			b.book_number, 
			f.book_title as "book",

			CASE	WHEN datalength(e.author_middle_initial) > 0 
					THEN e.author_first_name + ' ' + e.author_middle_initial + ' ' + e.author_last_name
					ELSE e.author_first_name + ' ' + e.author_last_name
					END AS "liked_author_full_name",
			e.author_number as "liked_author_number", 
			g.book_title as "liked_book",
			c.liked_book_number as "liked_book_number" 

FROM		authors a
INNER JOIN	book_author_mapping b ON b.author_number = a.author_number
INNER JOIN	liked c ON c.book_number = b.book_number
INNER JOIN	book_author_mapping d ON d.book_number = c.liked_book_number
INNER JOIN	authors e ON e.author_number = d.author_number
INNER JOIN	books f on f.book_number = b.book_number
INNER JOIN	books g on g.book_number = c.liked_book_number

WHERE		a.author_number = ?

ORDER BY 	e.author_last_name, e.author_first_name
Query Parameter Value(s) -
Parameter #1(cf_sql_integer) = 1076

get_ads (Datasource=bookbrowse_com_new, Time=29ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 13:41:34.034
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) = adzone2
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=10ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 13:41:34.034
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) = adzone2

get_member_account_types (Datasource=bookbrowse_com_new, Time=14ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 13:41:34.034
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_book_image (Datasource=bookbrowse_com_new, Time=13ms, Records=1) in /root/website/actions/udfs.cfm @ 13:41:34.034
select 	f.edition_publish_dt "hardcover_publish_dt", f.edition_jacket_image "hardcover_jacket_image", 
            g.edition_publish_dt "paperback_publish_dt", g.edition_jacket_image "paperback_jacket_image"
    
    from   	books a
	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 	a.book_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4486

get_member_account_types (Datasource=bookbrowse_com_new, Time=13ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 13:41:34.034
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_books_by_author_id (Datasource=bookbrowse_com_new, Time=33ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 13:41:34.034
select	a.book_number, 
				a.book_title, 
				(CASE WHEN UPPER(LEFT(a.book_title, 2)) = 'A ' THEN SUBSTRING(a.book_title, 3, len(a.book_title) - 2) WHEN UPPER(LEFT(a.book_title, 3)) = 'AN ' THEN SUBSTRING(a.book_title, 4, len(a.book_title) - 3) WHEN UPPER(LEFT(a.book_title, 4)) = 'THE ' THEN SUBSTRING(a.book_title, 5, len(a.book_title) - 4) ELSE a.book_title END) "sort_book_title", 
				a.book_sub_title, 
				a.book_entry_dt, 
				a.book_short_summary, 
				a.book_jacket_info, 
                a.book_excerpt, 
                a.book_reading_guide,
				d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, 
				f.edition_publish_dt "hardcover_publish_dt", f.edition_number_of_pages "hardcover_number_of_pages", f.edition_isbn "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13",f.edition_jacket_image "hardcover_jacket_image",
				g.edition_publish_dt "paperback_publish_dt", g.edition_number_of_pages "paperback_number_of_pages", g.edition_isbn "paperback_isbn", g.edition_isbn13 "paperback_isbn13",g.edition_jacket_image "paperback_jacket_image",
				i.author_info_biography, i.author_info_interview, i.author_info_image, i.author_info_url,
                (select count(c.book_number) as "author_bookcount" from book_author_mapping c where c.author_number = ?) + (select count(e.ezine_preview_number) as "author_bookcount" from ezine_previews e where e.ezine_preview_bb_author_link = ?) as "authorbookcount"
                
		    from books a
            inner join book_author_mapping e ON a.book_number = e.book_number
            inner join authors d ON e.author_number = d.author_number
            inner join author_info i ON d.author_number = i.author_number
            left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0
            left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1
                        
            where e.author_number = ?
            and a.book_number IN (select distinct b.book_number from categories a, category_book_mapping b where a.category_number = b.category_number and a.category_active_flag = 1)
			
            order by sort_book_title
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 3470
Parameter #2(CF_SQL_INTEGER) = 3470
Parameter #3(CF_SQL_INTEGER) = 3470

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=14ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 13:41:35.035
select	d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, d.author_pronunciation,
                CASE	WHEN datalength(d.author_middle_initial) > 0 
                        THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
                        ELSE d.author_first_name + ' ' + d.author_last_name
                        END AS "author_full_name",
				i.author_info_number, i.author_number, i.author_info_image, i.author_info_entry_dt,
                i.author_info_url, i.author_info_interview_summary, i.author_info_interview, i.author_info_biography, i.author_info_copyright_info
                		
        from 	authors d, author_info i
		
        where 	d.author_number = ?
        and 	d.author_number = i.author_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 3470

get_books_by_author_id (Datasource=bookbrowse_com_new, Time=74ms, Records=2) in /root/website/queries/qry_get_books_by_author_id.cfm @ 13:41:35.035
select	a.book_number, 
				a.book_title, 
				(CASE WHEN UPPER(LEFT(a.book_title, 2)) = 'A ' THEN SUBSTRING(a.book_title, 3, len(a.book_title) - 2) WHEN UPPER(LEFT(a.book_title, 3)) = 'AN ' THEN SUBSTRING(a.book_title, 4, len(a.book_title) - 3) WHEN UPPER(LEFT(a.book_title, 4)) = 'THE ' THEN SUBSTRING(a.book_title, 5, len(a.book_title) - 4) ELSE a.book_title END) "sort_book_title", 
				a.book_sub_title, 
				a.book_entry_dt, 
				a.book_short_summary, 
				a.book_jacket_info, 
                a.book_excerpt, 
                a.book_reading_guide,
				d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, 
				f.edition_publish_dt "hardcover_publish_dt", f.edition_number_of_pages "hardcover_number_of_pages", f.edition_isbn "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13",f.edition_jacket_image "hardcover_jacket_image",
				g.edition_publish_dt "paperback_publish_dt", g.edition_number_of_pages "paperback_number_of_pages", g.edition_isbn "paperback_isbn", g.edition_isbn13 "paperback_isbn13",g.edition_jacket_image "paperback_jacket_image",
				i.author_info_biography, i.author_info_interview, i.author_info_image, i.author_info_url,
                (select count(c.book_number) as "author_bookcount" from book_author_mapping c where c.author_number = ?) + (select count(e.ezine_preview_number) as "author_bookcount" from ezine_previews e where e.ezine_preview_bb_author_link = ?) as "authorbookcount"
                
		    from books a
            inner join book_author_mapping e ON a.book_number = e.book_number
            inner join authors d ON e.author_number = d.author_number
            inner join author_info i ON d.author_number = i.author_number
            left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0
            left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1
                        
            where e.author_number = ?
            and a.book_number IN (select distinct b.book_number from categories a, category_book_mapping b where a.category_number = b.category_number and a.category_active_flag = 1)
			
            order by sort_book_title
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1149
Parameter #2(CF_SQL_INTEGER) = 1149
Parameter #3(CF_SQL_INTEGER) = 1149

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=23ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 13:41:35.035
select	d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, d.author_pronunciation,
                CASE	WHEN datalength(d.author_middle_initial) > 0 
                        THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
                        ELSE d.author_first_name + ' ' + d.author_last_name
                        END AS "author_full_name",
				i.author_info_number, i.author_number, i.author_info_image, i.author_info_entry_dt,
                i.author_info_url, i.author_info_interview_summary, i.author_info_interview, i.author_info_biography, i.author_info_copyright_info
                		
        from 	authors d, author_info i
		
        where 	d.author_number = ?
        and 	d.author_number = i.author_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1149

get_member_account_types (Datasource=bookbrowse_com_new, Time=15ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 13:41:35.035
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=37ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 13:41:35.035
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=38ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 13:41:35.035
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=26ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 13:41:35.035
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=29ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 13:41:35.035
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=35ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 13:41:35.035
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=26ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 13:41:35.035
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 @ 13:41:35.035
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=22ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 13:41:35.035
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=76ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 13:41:35.035
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=9ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 13:41:35.035
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/author_interviews/full/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=9a5d98164db27e44-222EA233-EF9E-4C46-2C8B9828B9B6A10B; CFID=4102299; CFCLIENT_BOOKBROWSE=order%3Dp%23member%5Fnumber%3D0%23member%5Factive%5Fflag%3D0%23member%5Flogged%5Fin%5Fflag%3D0%23library%5Fuser%5Fflag%3D0%23view%3Dbooks%23; CFGLOBALS=urltoken%3DCFID%23%3D4102299%26CFTOKEN%23%3D9a5d98164db27e44%2D222EA233%2DEF9E%2D4C46%2D2C8B9828B9B6A10B%23lastvisit%3D%7Bts%20%272026%2D06%2D01%2013%3A41%3A34%27%7D%23hitcount%3D2%23timecreated%3D%7Bts%20%272026%2D06%2D01%2013%3A41%3A32%27%7D%23cftoken%3D9a5d98164db27e44%2D222EA233%2DEF9E%2D4C46%2D2C8B9828B9B6A10B%23cfid%3D4102299%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=/author_number/1076/author/dan-fesperman
PATH_TRANSLATED=/root/website/author_interviews/full/index.cfm
QUERY_STRING=
REMOTE_ADDR=127.0.0.1
REMOTE_HOST=127.0.0.1
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/author_interviews/full/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=4102299
cftoken=9a5d98164db27e44-222EA233-EF9E-4C46-2C8B9828B9B6A10B
hitcount=2
lastvisit={ts '2026-06-01 13:41:34'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-06-01 13:41:32'}
urltoken=CFID=4102299&CFTOKEN=9a5d98164db27e44-222EA233-EF9E-4C46-2C8B9828B9B6A10B
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#=4102299&CFTOKEN#=9a5d98164db27e44-222EA233-EF9E-4C46-2C8B9828B9B6A10B#lastvisit={ts '2026-06-01 13:41:34'}#hitcount=2#timecreated={ts '2026-06-01 13:41:32'}#cftoken=9a5d98164db27e44-222EA233-EF9E-4C46-2C8B9828B9B6A10B#cfid=4102299#
CFID=4102299
CFTOKEN=9a5d98164db27e44-222EA233-EF9E-4C46-2C8B9828B9B6A10B
Session Variables:
cfid=4102299
cftoken=9a5d98164db27e44-222EA233-EF9E-4C46-2C8B9828B9B6A10B
sessionid=BOOKBROWSE_4102299_9a5d98164db27e44-222EA233-EF9E-4C46-2C8B9828B9B6A10B
urltoken=CFID=4102299&CFTOKEN=9a5d98164db27e44-222EA233-EF9E-4C46-2C8B9828B9B6A10B
URL Parameters:
author=dan-fesperman
author_number=1076
Debug Rendering Time: 12 ms