 the novel.
A Brief History of Seven Killings is a massive sprawl, covering subjects on both local and universal scale. One seminal theme vividly depicted in the novel is how other nationalities have romanticized countries plagued with poverty and violence. James fascinated on the big picture but he further complimented this tapestry with details dealing on a plethora of subjects on a more personal scale. Through the several characters and their distinct voices, James subtly imbued the novel with subjects of sexuality, identity, and sexual orientations. The struggle for identity also resonated on a national level, as the nation grappled to find its post-colonial identity. The novel also tackled the hardships of women.
With its labyrinthine plot and its massive cast of characters, it does take some time to warm up to the narrative. At the start, James kept introducing characters without any context. The story opened with the narration of a ghost. He was succeeded by the voice of a teenager who witnessed extreme violence.  There was a link but it was never clearly defined from the start; their relationships were unclear and was never established outright. It is up to the reader to trace the indelible threads connecting them. James maneuvered an orchestra, a cacophony of distinct voices tied together by the multitude of their Jamaican experiences. At times, however, the tedium of the stream of consciousness weighed down on the narrative.
The various elements of the novel was held together by James’ writing and his development of the characters. It was among the successes of the novel. In A Brief History of Seven Killings, James demonstrated his adept skills at manipulating language to make his story flourish. With each character is a distinct voice and writing style; each character was a reflection of James’ writing. James celebrated the characters’ individuality and made them contribute their own voices to the grander narrative. These voices were also rendered with local colors as patois was used extensively in the narrative.
A Brief History of Seven Killings is an ambitious undertaking, both in vision and execution. Marlon James’ wrote a complex and labyrinthine narrative that drives readers through the turbulent history of a nation reeling from the offshoots of colonialism. It covered politics, violence, personal dilemmas, and even universal concerns. James was brilliant in weaving a rich tapestry that explored a plethora of subjects, building it around the events of Bob Marley’s attempted assassination. A Brief History of Seven Killings is an immersive narrative about modern Jamaica, meant to be taken in sips rather than in big gulps.
My first encounter with Marlon James’ A Brief History of Seven Killings was when I barely had any iota on what Pulizter and Booker Prize was. Its winning the 2015 Booker Prize was bannered in popular publications and websites. It was a winner. Cool. Whilst the interesting title registered on my mind, it didn’t immediately pique my interest and simply dismissed it. To reiterate, literary prize winners were of no consequence to me, at least back then. About three or four years later, I came across the book in the bookstore. The enigmatic title juxtaposed on a yellow backdrop was reeling me and without any more ado, I bought the book, only to be read after the passage of at least two more years. HAHA. On the surface, it was the story of what happened one fateful December night but as one digs deeper, it is the story of modern Jamaica, from the crowded ghettos to an atmosphere where violence permeated. A Brief History of Seven Killings was my first James novel and it wasn’t surprising that the first few pages unsettled me. The language and storytelling were both unfamiliar. There was also a huge cast of characters, with several contributing vivid details to James’ tableau. It was a difficult read, both ambitious and complex, but one that dissects into the heart of modern Jamaican history and politics.
Marlon James was born on November 24, 1970 in Kingston, Surrey County, Jamaica, to parents both in the Jamaican police.
James’ parents were key in cultivating their son’s interest in literature, with his mother gifting him with his first prose book, and his father gifting him his love of Shakespeare and Coleridge. James attended Kingston’s prestigious Wolmer’s Trust High School for Boys. In 1991, he graduated at the University of the West Indies, where he read Language and Literature. James received his master’s degree in creative writing in 2006 from Wilkes University. James left Jamaica to escape the conditions he deemed would stymie his career growth.
James made his literary debut in 2005, with the publication of his novel, John Crow’s Devil. In 2009, he published his second novel, The Book of Night Women, to critical acclaim. It won the 2010 Dayton Literary Peace Prize for Fiction, and the 2010 Minnesota Book Award (Novel and Short Story). It was also a finalist for the 2009 National Book Critics Circle Award. James’ ascent to global recognition was propelled when his third novel, A Brief History of Seven Killings (2014), won the prestigious Booker Prize for Fiction in 2015. The novel also won a slew of literary awards such as the 2015, Anisfield-Wolf Book Award for Fiction, the 2015 OCM Bocas Prize for Caribbean Literature (Fiction category), and the 2015 Green Carnation Prize. Like its predecessor, A Brief History of Seven Killings was a finalist for the 2014 National Book Critics Circle Award. James’ most recent work, Black Leopard, Red Wolf was published in 2014.
James is currently residing in Minneapolis, Minnesota and is teaching literature at Macalester College in St. Paul, Minnesota. He is also a faculty lecturer at St. Francis College’s Low Residency MFA in Creative Writing.
This sounds like a very cerebral read, Carll. I love reggae music. Thanks for the review.
<filename>dags/bigquery_census_normalize_dag.py
###########################################################################
#
#  Copyright 2020 Google LLC
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      https://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#
###########################################################################

'''
--------------------------------------------------------------

Before running this Airflow module...

  Install StarThinker in cloud composer from open source:

    pip install git+https://github.com/google/starthinker

  Or push local code to the cloud composer plugins directory:

    source install/deploy.sh
    4) Composer Menu
    l) Install All

--------------------------------------------------------------

Census Data Normalized

Convert given census table to percent of population, normalizing it.

Specify the geography, year, and span that make up the <a href='https://pantheon.corp.google.com/bigquery?redirect_from_classic=true&p=bigquery-public-data&d=census_bureau_acs&page=dataset' target='_blank'>census table names</a>.
Not every combination of geography, year, and span exists or contains all the required fields.
Every time the query runs it will overwrite the table.

'''

from starthinker_airflow.factory import DAG_Factory

# Add the following credentials to your Airflow configuration.
USER_CONN_ID = "starthinker_user" # The connection to use for user authentication.
GCP_CONN_ID = "starthinker_service" # The connection to use for service authentication.

INPUTS = {
  'auth':'service',  # Credentials used for writing data.
  'census_geography': 'zip_codes',  # Census table to get data from.
  'census_year': '2018',  # Census table to get data from.
  'census_span': '5yr',  # Census table to get data from.
  'dataset': '',  # Existing BigQuery dataset.
  'type': 'table',  # Write Census_Percent as table or view.
}

TASKS = [
  {
    'census': {
      'auth': {
        'field': {
          'order': 0,
          'kind': 'authentication',
          'name': 'auth',
          'description': 'Credentials used for writing data.',
          'default':'service'
        }
      },
      'normalize': {
        'census_geography': {
          'field': {
            'description': 'Census table to get data from.',
            'choices': [
              'zip_codes',
             'state',
              'zcta5',
             'schooldistrictunified',
              'puma',
              'place',
              'county',
              'congressionaldistrict',
              'censustract',
              'cbsa'
            ],
            'order': 1,