text:
import type {
  AngularPromise,
  AngularQ,
  JqliteElement,
  AngularHttpService,
  AngularResourceFactory,
  AngularResourceResult,
  AngularResource,
  AngularCompileService,
} from 'angular'

'use strict'
const angular = require('angular')

function describe(tag, fn) {
  fn()
}

function it(tag, fn) {
  fn()
}

describe('Angular modules', () => {
  it('can be declared', () => {
    const module1 = angular.module('foo', [])
    const module2 = angular.module('foo', ['bazz', 'qux'])
  })

  it('can be retrieved after being declared', () => {
    const module1 = angular.module('foo')
  })

  it('requires a name', () => {
    // $ExpectError undefined. This type is incompatible with string
    const module1 = angular.module()
  })
})

describe('directives', () => {
  it('can be declared', () => {
    angular.module('foo', []).directive('foo', ['bar', 'bazz', (bar, bazz) => {
      return {
        restrict: 'E',
        templateUrl: 'foo.html',
      }
    }])
  })

  it('requires a directive to be returned', () => {
    angular.module('foo', []).directive('foo', ['bar', 'bazz', (bar, bazz) => {
      // $ExpectError string. This type is incompatible with Directive
      return 'this is clearly not a directive'
    }])
  })
})

describe('service', () => {
  it('can be declared', () => {
    angular.module('foo', []).service('foo', ['bar', 'bazz', (bar, bazz) => {
      return (a) => a + 1
    }])
  })

  it('requires a return value of a function', () => {
    angular.module('foo', []).service('foo', ['bar', 'bazz', (bar, bazz) => {
      // $ExpectError object. This type is incompatible with Function
      return { foo: 'bar' }
    }])
  })
})

describe('factory', () => {
  it('can be declared', () => {
    angular.module('foo', []).factory('foo', ['bar', 'bazz', (bar, bazz) => {
      return { a: bar, b: bazz }
    }])
  })

  it('requires a return value of some kind', () => {
    // $ExpectError undefined. This type is incompatible with
    angular.module('foo', []).factory('foo', ['bar', 'bazz', (bar, bazz) => {}])
  })

})

describe('value', () => {
  it('can be declared', () => {
    angular.module('foo', []).value('foo', ['bar', 'bazz', (bar, bazz) => {
      return { a: bar, b: bazz }
    }])
  })

  it('requires a return value of some kind', () => {
    // $ExpectError undefined. This type is incompatible with
    angular.module('foo', []).value('foo', ['bar', 'bazz', (bar, bazz) => {}])
  })
})

describe('constant', () => {
  it('can be declared', () => {
    angular.module('foo', []).constant('foo', ['bar', 'bazz', (bar, bazz) => {
      return { a: bar, b: bazz }
    }])
  })

  it('requires a return value of some kind', () => {
    // $ExpectError undefined. This type is incompatible with
    angular.module('foo', []).constant('foo', ['bar', 'bazz', (bar, bazz) => {
      // intentionally return nothing
    }])
  })
})

describe('element', () => {
  it('creates a jqlite element from a string', () => {
    const element: JqliteElement = angular.element('foo')
  })

  it('creates a jqlite element from an element', () => {
    const element: JqliteElement = angular.element(window.document.body)
  })

  it('does not accept other types as a parameter', () => {
    // $ExpectError number. This type is incompatible with string
    angular.element(5)
  })
})

describe('copy', () => {
  it('copies preserving the type', () => {
    const foo: number = angular.copy(5)
  })

  it('does not change the type', () => {
    // $ExpectError string. This type is incompatible with number
    const foo: number = angular.copy('5')
  })
})

describe('jqlite', () => {
  it('can remove itself', () => {
    angular.element('foo').remove()
  })

  it('yields nothing on removal', () => {
    // $ExpectError string. This type is incompatible with void
    const removal: string = angular.element('foo').remove()
  })

  it('can retrieve contents as a JqliteElement', () => {
    const contents: JqliteElement = angular.element('foo').contents()
  })

  it('does not yield a string', () => {
    // $ExpectError string. This type is incompatible with JqliteElement
    const contents: string = angular.element('foo').contents('bar')
  })
})

describe('$compile', () => {
  it('is a function that uses a jqlite element', () => {
    angular.mock.inject(($compile: AngularCompileService) => {
      $compile(angular.element('foo'))
    })
  })

  it('returns a compiled jqlite element', () => {
    angular.mock.inject(($compile: AngularCompileService) => {
      const element: JqliteElement = $compile(angular.element('foo'))
    })
  })
})

describe('$resource', () => {

  it('returns a $resource instance when invoked', () => {
    angular.mock.inject(($resource: AngularResourceFactory) => {
      const resource: AngularResource = $resource('/foo')
    })
  })

  describe('instance', () => {
    it('has a get function that returns a special $resource result', () => {
      angular.mock.inject(($resource: AngularResourceFactory) => {
        const resource: AngularResource = $resource('/foo')
        const promise: AngularPromise<*> = resource.get().$promise
      })
    })
  })
})

describe('$q', () => {
  it('can create a promise that resolves a pre-defined value', () => {
    angular.mock.inject(($q: AngularQ) => {
      const promise: AngularPromise<string> = $q.when('foo')
    })
  })

  it('creates a promise with the type provided the value resolved', () => {
    angular.mock.inject(($q: AngularQ) => {
      // $ExpectError number. This type is incompatible with string
      const promise: AngularPromise<number> = $q.when('foo')
    })
  })

  it('can chain promises between mapped types', () => {
    angular.mock.inject(($q: AngularQ) => {
      const finalPromise: AngularPromise<string> = $q.when('foo')
        .then((s) => parseInt(s))
        .then((n) => n.toString())
    })
  })

  it('catches with errors', () => {
    angular.mock.inject(($q: AngularQ) => {
      $q.when('foo').catch((e) => console.log(e.message))
    })
  })

  it('chains rejected promises into resolved promises', () => {
    angular.mock.inject(($q: AngularQ) => {
      const promise: AngularPromise<string> = $q.when('foo').catch((e) => 'bar')
    })
  })

  it('has both an error and a resolved value potential in finally', () => {
    angular.mock.inject(($q: AngularQ) => {
      $q.when('foo').finally((v) => {
        if(typeof v == 'string') {
          const s: string = v
        }
        else if(v instanceof Error){
          const e: Error = v
        }
      })
    })
  })
})

describe('$http', () => {
  it('can POST', () => {
    angular.mock.inject(($http: AngularHttpService) => {
      const promise: AngularPromise<*> = $http.post('/foo', { bar: 'bazz' })
    })
  })
})


Check out these freshly made necklaces, rings and bracelets from Tanya G Jewelry. Our featured products have a variety of jewelry from leather to crystals to quartz. We also put a spin on the popular link necklace.
Check back soon for more of the TGJ fall line.


text:
Christian Wheeler
#27 Defenseman - Cal State Fullerton
Hometown: Downey
High School: Downey
Eligibility: Unknown
2012 Cal State Fullerton 27 29 0 0 0 0 0 - 2
2008 UC Santa Barbara 27 0 0 0 0 0 0 - 0
02/03/2012 Saint Mary's L 7-11 1 0 0 0 0
02/04/2012 San Diego State L 6-7 6 0 0 0 0
02/11/2012 Cal Poly L 2-16 0 0 0 0 0
02/17/2012 Western Oregon W 12-11 4 0 0 0 0
02/18/2012 Utah Valley W 17-4 2 0 0 0 0
02/25/2012 San Diego W 8-7 0 0 0 0 0
02/26/2012 @ Marymount College W 28-0 2 0 0 0 0
03/04/2012 Regis W 17-3 0 0 0 0 0
03/11/2012 Portland W 7-5 1 0 0 0 0
03/10/2012 Fort Lewis W 13-12 1 0 0 0 0
03/08/2012 @ UC Irvine W 10-4 1 0 0 0 0
03/13/2012 Colorado Mines W 17-7 2 0 0 0 0
03/21/2012 Western Washington W 12-7 0 0 0 0 0
03/24/2012 Grand Canyon W 11-9 1 0 0 0 0
03/27/2012 Cal State San Marcos W 18-2 1 0 0 0 0
04/01/2012 UC San Diego W 5-3 1 0 0 0 0
04/14/2012 @ Concordia-Irvine L 7-15 0 0 0 0 0
04/22/2012 @ Cal State Long Beach W 12-5 2 0 0 0 0
04/28/2012 @ Occidental W 16-13 2 0 0 0 0
05/05/2012 @ Concordia-Irvine W 10-9 1 0 0 0 0
05/06/2012 Grand Canyon L 5-11 0 0 0 0 0
02/01/2008 @ California W 9-7 0 0 0 0 0
02/02/2008 @ Stanford W 8-3 0 0 0 0 0
02/09/2008 @ UCLA W 12-5 0 0 0 0 0
02/10/2008 @ USC W 9-7 0 0 0 0 0
02/14/2008 Brigham Young L 9-15 0 0 0 0 0
02/21/2008 Arizona W 8-3 0 0 0 0 0
02/23/2008 Cal Poly W 11-5 0 0 0 0 0
03/04/2008 Northeastern W 7-4 0 0 0 0 0
03/09/2008 Claremont W 13-7 0 0 0 0 0
03/14/2008 @ San Diego State W 7-3 0 0 0 0 0
03/24/2008 @ Florida State L 6-7 0 0 0 0 0
03/26/2008 @ Florida L 8-10 0 0 0 0 0
04/05/2008 Sonoma State W 12-5 0 0 0 0 0
04/06/2008 Arizona State L 8-9 0 0 0 0 0
04/12/2008 Chapman L 11-12 0 0 0 0 0
04/19/2008 Loyola Marymount W 12-9 0 0 0 0 0
05/13/2008 @ Arizona State L 8-11 0 0 0 0 0
03/10/2007 @ Stanford W 14-6 0 0 0 0 0
01/25/2007 @ San Diego W 9-5 0 0 0 0 0
04/14/2007 @ Cal Poly W 12-6 0 0 0 0 0
02/11/2007 UC San Diego W 13-3 0 0 0 0 0
02/24/2007 @ Brigham Young L 4-15 0 0 0 0 0
02/25/2007 @ Utah L 6-9 0 0 0 0 0
02/10/2007 @ Claremont W 11-6 0 0 0 0 0
02/24/2007 USC W 14-6 0 0 0 0 0
03/04/2007 @ Loyola Marymount W 18-7 0 0 0 0 0
03/10/2007 Boston College W 8-5 0 0 0 0 0
03/27/2007 @ Colorado State L 3-8 0 0 0 0 0
03/29/2007 @ Colorado W 6-5 0 0 0 0 0
03/17/2007 UCLA W 18-1 0 1 0 0 0
02/09/2007 @ Chapman L 5-13 0 0 0 0 0
04/28/2007 California W 12-4 0 0 0 0 0
04/29/2007 @ Arizona W 7-5 0 0 0 0 0
05/15/2007 Georgia W 8-3 0 0 0 0 0
02/26/2006 Chapman W 10-9 0 0 0 0 0
02/26/2006 Cal Poly W 9-5 0 0 0 0 0
03/12/2006 Brigham Young W 10-9 0 0 0 0 0
03/11/2006 Colorado State L 5-6 0 0 0 0 0
04/09/2006 University of Michigan L 5-8 0 0 0 0 0
02/04/2006 @ UC San Diego L 7-8 0 0 0 0 0
02/24/2006 @ Sonoma State L 6-8 0 0 0 0 0
02/20/2006 Colorado W 14-6 0 0 0 0 0
03/04/2006 @ Arizona L 6-9 0 0 0 0 0
04/09/2006 @ Arizona State W 10-7 0 0 0 0 0
03/11/2006 @ USC W 12-6 0 0 0 0 0
03/11/2006 @ UCLA W 8-4 0 0 0 0 0
04/14/2006 UC San Diego L 7-10 0 0 0 0 0

redpajama_set_name: RedPajamaCommonCrawl


text:
BCC122 - History of Censorship in Comics
History of Censorship in Comics - Alex Cox of the Comic Book Legal Defense Fund (CBLDF) and Fred Van Lente (comic book writer and historian) discuss the origins and examples of censorship in comic books in addition to the ongoing struggle to protect artists and retailers from laws that seek to penalize them for creating and selling comic books
Baltimore Comic Con 2012 - 09/08/12 - [1:03:27] - Download MP3
DTC 108 - Hard Time Season Two
Hard Time Season Two
1:35 Hard Time Season Two 1-6 - Cutter - Ethan learns more about his psychic abilities as he fends off an attack from a new prisoner
37:34 Hard Time Season Two 7 - 49 Years Later - flash forward to Ethan's parole hearing, 49 years after the events of the previous issue
51:48 Notes - Back Issue Magazine 31, corrections
Cover Art: Hard Time Season Two 1 by Brian Hurtt and Rian Hughes
The Great Darkness Saga Part 4
1:35 Legion of Super-Heroes 291 - The Legion splits into three teams to battle the Servants of Darkness on the planets Takron Galtos, Avalon, and Naltor
18:09 Legion of Super-Heroes 292 - The three teams of Legionnaires reunite on Sorcerer's World to once again battle the Servants of Darkness
37:18 Notes - Mordru, Time Trapper
Cover Art: Legion of Super-Heroes 291 by Keith Giffen and Romeo Tanghal


Need a Commercial Dumpster Service in Overbrook, KS?
Commercial Dumpster Service are available* in Overbrook.
People may wonder if there is certainly solution to that evergreen issue. Progress of the united states is always quit at this moment, which should be prioritized industrialization or even environmental defense? The answer to this is, both there'd be absolutely no purpose pertaining to existence of 1 without the some other. A nation that is nicely industrialized with polluted setting is connected with no benefit and or viceversa. Effective denver colorado ordination and co-operation between the two support beams is quite needed for the nation to be on the top rankings.
When we agree as a local community after a tornado, we strengthen our bonds with one another along with help ourself at the same time. Be secure this springtime, and if a storm does grab through your local community, get everybody together to completely clean up as an organization. After all, many hands actually do help to whiten the amount of work.
If you are new to renting debris canisters, be aware that not all roll down rental companies are exactly the same.
These dumpsters assistance will not interrupt your hectic schedule and it continues on with the work of eliminating garbage your own house location. You'll find the job web page free from the trash before you notice it occurrence there.
It is considered to be the ideal choice to Make and if you're Interested in Keeping the Home Area Clean - If you thought that it may only be used by construction or even home improvement functions, you must have considered in a wrong way. The function and scope of it will go far beyond as compared to construction and residential improvement program. To get total idea around the use of this, you can find out more on the relevant web page.
Just a few of the reasons why people need dumpster rentals, but sometimes have a problem locating 1, are: Settlement of vegetation around a fire zone for cover against brush and wildfires, cement and dirt removal such as an old groundwork, just plain rubbish removal (pieces of furniture and waste) as in a new foreclosed household, and trying to recycle. Get the right size and the right appraisal from a web-based roll down Commercial Dumpster Service in Overbrook, KS site and you'll get the best benefit possible, and this will leave a little more in your provide those gold-plated sinks! These Commercial Dumpster Service in Overbrook, KS businesses also cater the need of businesses or development companies that have huge pile of rubbish. Keeping in mind that will in some places power do not let men and women or businesses to keep toenails, lumber or even similar merchandise so these facilities also handle garbage. They then also maintain your hazardous rubbish which simply leaves you without worry you probably know this that your Commercial Dumpster Service in Overbrook, KS organization can take proper care of garbage.
Retain Old Town looking while stunning as it ever was when you rent a new dumpster to get any kind of work completed you need with your home or business although making oneself happy with the price you compensated and the assistance that was given to you.
Environment safety is the quantity factor worth focusing on for business employers and personnel while employed in this type of setting. As customers approach your own environment pertaining to business, beautification is the key to a prosperous business bargain. An with sight development Commercial Dumpster Service in Overbrook, KS is the respond to a well preserve environment. If your business is positioned in Washington DC location you can require a Maryland Commercial Dumpster Service in Overbrook, KS: it's also possible to go online and request a speedily delivered Commercial Dumpster Service in Overbrook, KS. Enterprise can still keep going smoothly in the course of the construction along with renovation in your business look.


With the folding of Network Sound, No Idea has stepped up to ensure that this first album from Tampa's increasingly beloved indie pop/emo sweethearts Hankshaw stays available. It's been a while since I listened to this record, and I forgot how wonderful it is, filled with sweet, glorious melodies with well-sung high register vocals courtesy of Harold, misleading at times, given the sometimes sad lyrics. There's a hint of punch and breaks among the catchiness to keep you rocking out among the sweetness, but in general this is a smooth, pleasant record.
Where you heading, man? James MacLaren has nothing but praise for Elijah Wald's tale of hitchhiking around the country. And of course he has a few things to say about hitchhiking myths and, hell, society in general.
Songs of Eta Carinae (Beta-lactam). Review by Aaron Shaul.
Various Artists (Lava/Atlantic). Review by Julio Diaz.


Being a member of the Robbinsdale Chamber of Commerce is more then just a way to promote your business. It is a collaboration of businesses within the Robbinsdale community supporting one another and continuously focusing their efforts on revitalizing an already progressive City while maintaining its quaint personality.
Address: 5325 – 45th Ave N.
Address: 4175 W Broadway Ave.
Address: 5309 W 70th St.
Click here to download a Membership Application!
Robbinsdale Chamber of Commerce shared a post.
Some changes in the Robbinsdale restaurant scene is coming up…check out the latest from CCX Media!
Wicked Wort Brewing Co. is adding a kitchen to its brewery and Marna's Cafe is expanding into the old Pig Ate My Pizza location. Construction continues on the new Travail space.
🐰🐣 Scenes from the controlled chaos that was the Robbinsdale Eggstravaganza last weekend. Happy Easter weekend, Sun Post readers!
So much cute! From our classic bunny cakes to petite eggs and chick cookies, we've got the perfect finishing touch to your Easter celebration!!
Robbinsdale Chamber of Commerce is in City of Robbinsdale, MN – Government.
Robbinsdale Chamber of Commerce updated their cover photo.
Chamber Give & Get Trick or Treat Event! Thank you!
Welcome to the Robbinsdale Chamber of Commerce © 2019. All Rights Reserved.


As well as building shipping crates and plinths, we also offer a variety of art related services; anything from hanging works, to wrapping and shipping.
So if you need to transport an entire exhibition to the other end of the country, hang a whole show, or just need help hanging an artwork at home, Rocketvan can help.
Call us on 020 7401 3928 to discuss your exact requirements.


text:
Interdisciplinary Graduate School (IGS) - Doctor of Philosophy Programme
The Interdisciplinary Graduate School (IGS) focuses on the key research areas within NTU's Peaks of Excellence in Sustainable Earth, New Media and Future Healthcare. Research in these areas span across different disciplines beyond the conventional school-based programmes. Rapid-Rich Object Search (ROSE) Lab is one of the Research Centers under the New Media Peak.
As Singapore looks set for her transformation into a global media city, the Peak of Excellence in New Media provides a timely boost to position the country as one of the key strategic media centers in the Asia-Pacific region.
IGS leverages on professors from all the schools and colleges in NTU to undertake interdisciplinary research and to act as advisors for IGS PhD students. With this approach, IGS aims to train a new generation of PhD students, who are exposed to an intensive seminar culture with ample interaction opportunities. This is in line with the best practices in leading overseas institutions.Forimformation about IGS Programme, click the link below:
Prospective Students read more
Current Students read more
EDB - IPP Grant (with Nvidia)
The Industrial Postgraduate Programme (IPP) is introduced by the Economic Development Board (EDB) to build up a pool of postgraduate manpower with critical R&D skill-sets for roles in industry through providing postgraduate training in a corporate R&D environment.
An IPP trainee will be enrolled at the PhD educational level, and spend time working on an industry project in an eligible local or multinational company. Singaporeans and Singapore Permanent Residents may apply for this programme.
NTU Research Scholarship
You are eligible for this scholarship if you are a local or international student seeking admission as a full-time candidate pursuing a Doctor of Philosophy (Ph.D) programme by research at NTU.
Singapore International Graduate Award (SINGA)
The Singapore International Graduate Award (SINGA) is a collaboration between the Agency for Science, Technology & Research (A*STAR), the Nanyang Technological University (NTU) and the National University of Singapore (NUS).
read more
A*STAR Graduate Scholarship
This is a collaboration between A*STAR Graduate Academy and the University.
Singaporeans, Singapore Permanent Residents, citizens of ASEAN countries and other international students seeking admission as full-time Ph.D. research candidates in NTU are encouraged to apply for this scholarship.
Nanyang President's Graduate Scholarship
The Nanyang President's Graduate Scholarship (NPGS) is a competitive and prestigious scholarship scheme designed to encourage outstanding graduates or final-year students to take their first step towards a leading research career by studying for a PhD at NTU.
Last modified on 21-Dec-2017


text:
\section{Introduction}
Hyperspectral imaging has widespread uses. From commercial applications such as mining, agriculture, and geology\cite{horton2010novel,descour1995computed,vane1988terrestrial,sabatke2002snapshot,Azzam1995,chipman1995,Henderson1995,Horton24,scholl2003phase,luo2007fast} to defense applications, where {it has} been used for Intelligence Surveillance and Reconnaissance (ISR)\cite{horton2010novel,descour1997demonstration,goetz1985imaging,johnson2007snapshot,sabatke2002snapshot,Azzam1995,chipman1995,Henderson1995,vo2014biomedical,descour1995computed,murguia2000compact,wilson2005reconstruction,scholl2003phase}.

The goal of hyperspectial imaging is to obtain {a datacube which is composed of images (the spatial component) of a scene at multiple wavelengths (the spectral component).} For example, {a datacube could be obtained} by taking a picture with a filter placed over the lens, then repeating the {process} with different filters. However, this is a time consuming task that {does not} scale well for dynamic scenes. To overcome these challenges snapshot methods {were} developed {to} encode spatial and spectral information directly into the sensed image. A reconstruction algorithm is then used to {form} the hyperspectral datacube. One instrument for snapshot hyperspectral imaging is CTIS which is robust, simple, fast, and has military successes in missile defense, ISR and target/threat characterization/detection. \cite{horton2010novel, wilson2005reconstruction,scholl2003phase,descour1995computed,scholl2006evaluations}

Even though CTIS captures raw images in milliseconds, \cite{horton2010novel,hagen2007fourier,descour1997demonstration,johnson2007snapshot,hege2004hyperspectral,descour1994non,volin1998high} post processing the imagery requires enormous computational resources, typically taking minutes to hours \cite{thompson2009accelerated,hagen2007fourier}. Since potential applications for CTIS are embedded realtime or near-realtime systems, a better reconstruction algorithm is needed. Previous attempts at speeding up the reconstruction algorithm have been performed by Hagen \cite{hagen2007fourier} and Vose-Horton\cite{horton2010novel,vose2007heuristic} where they developed fast reconstruction algorithms exploiting spatial shift-invariance (hereafter referred to as shift-invariance). {Additionally}, hardware accelerations were performed by Thompson \cite{thompson2009accelerated} and Sethaphong \cite{sethaphong2007large} using cell processors and supercomputers. Our approach is a combination where we developed a highly parallelizable algorithm that exploits shift-invariance and uses a GPU for hardware acceleration. GPUs are common in {modern computers and} provide hardware acceleration while still maintaining {small form factors}. To our knowledge researchers have not utilized GPUs for CTIS reconstruction, but a few hinted at the idea \cite{horton2010novel,thompson2009accelerated,sethaphong2007large}.

\section{CTIS overview}
\label{sec:ctisoverview}
Fig. \ref{fig:ctis_sensor} depicts a typical CTIS snapshot hyperspectral imaging sensor $\mathbf{H}$ that encodes spatial ($x,y$) and spectral ($\lambda$) information about a scene into an image $\mathbf{g}$ on a focal plane array (FPA). The image is then computationally decoded/reconstructed to produce a hyperspectral datacube $\mathbf{f}(x,y,\lambda)$. To reconstruct the datacube $\mathbf{f}$ from an image $\mathbf{g}$ the linear imaging equation is assumed \cite{barrett2004foundations,hagen2007fourier}
\begin{equation}
	\mathbf{g} = \mathbf{H}\mathbf{f} ,
	\label{eqn:linear}
\end{equation}
where the system matrix $\mathbf{H}$ is obtained via calibration. Calibration is {performed} by placing a monochromatic point source such as a small optical fiber illuminated via a monochromator at one pixel in an $a \times \alpha$ field stop. Then a set of $w$ calibration images as shown in Fig. \ref{fig:cal} are obtained on a $\gamma \times \xi$ FPA. After this, each calibration image is converted into a vector (via column major or row major order) of length $n = {\gamma}{\xi}$ and becomes one column of the system matrix. The remaining columns are obtained assuming shift-invariance where we assume for a given wavelength, shifting the optical fiber one pixel in the field stop or one voxel in the datacube will result in a calibration image that is shifted one pixel on the FPA. Doing so results in an $n \times m$ system matrix with $m = a \alpha w$. The assumption of shift-invariance is widely used and it's validity is explored by Hagen \cite{hagen2007fourier, hagen2007snapshot}.
\begin{figure}[H]
	\begin{center}
    	\begin{tabular}{c}
   		\includegraphics[height=6.5cm]{ctis_sensor.png}
   		\end{tabular}
   	\end{center}
   	\caption{(Color online) Diagram of a CTIS sensor along with an FPA image and reconstructed datacube.}
   	\label{fig:ctis_sensor}
\end{figure}
The solution to Eq. (\ref{eqn:linear}) is formally the Moore-Penrose pseudoinverse $\mathbf{f} = \mathbf{H}^{+}\mathbf{g}$, however, since the system matrix is large and sparse, iterative solvers such as: EM/MLEM, MART, MERT, ART, etc. {are often employed.} \cite{volin2000portable,shepp1982maximum,volin39,hagen2007fourier,horton2010novel,garcia1999mixed,sethaphong2007large,gordon1970algebraic} For our purposes {we used} the Expectation Maximization (EM) solver
\begin{equation}
\label{eqn:em}
\mathbf{f}^{(k+1)} = \frac{\mathbf{f}^{(k)}}{\mathbf{h}} \left( \mathbf{H}^T \frac{\mathbf{g}}{\mathbf{H}\mathbf{f}^{(k)}} \right) = \left(\mathbf{f}^{(k)} \oslash \mathbf{h} \right) \odot \left( \mathbf{H}^T \left( \mathbf{g} \oslash \mathbf{H}\mathbf{f}^{(k)} \right) \right) ,
\end{equation}
where $k$ is the iteration number, $\mathbf{h}$ in component notation is $h_j = \sum_{i=1}^n \mathbf{H}_{ij} \text{ for } j = 1 \dots m$, and $\odot$ ($\oslash$) denotes the Hadamard product (division). A typical initial guess for $\mathbf{f}^{(1)}$ is either all ones \cite{sethaphong2007large,wilson1997reconstructions} or $\mathbf{H}^T \mathbf{g}$. \cite{descour1995computed} A typical total number of iterations $K$, is $10-30$  \cite{descour1995computed,sethaphong2007large,wilson1997reconstructions,hagen2007snapshot}. As Hagen pointed out, using a large number of iterations can result in increased reconstruction error and even unrealistic solutions recommending stopping the iterations early to avoid this effect.

\begin{figure}[H]
	\begin{center}
    	\begin{tabular}{c}
   		\includegraphics[height=7cm]{cal.png}
   		\end{tabular}
   	\end{center}
   	\caption{(Color online) Two calibration images $I(x,y)$ in the upper left hand corner of the field stop. Left: $\lambda = 421$ nm and Right: $\lambda = 495$ nm.}
   	\label{fig:cal}
\end{figure}

\section{Parallel reconstruction algorithm}
\label{sec:alg}
Our reconstruction algorithm utilizes the Vose-Horton decomposition. We start by assuming shift-invariance which means the system matrix can be partitioned as
\begin{equation}
\label{eqn:H}
\mathbf{H} =
\left(
\begin{array}{cccc}
\mathbf{H}_1 & \mathbf{H}_2 & \dots & \mathbf{H}_w
\end{array}
\right) ,
\end{equation}
where each block $\mathbf{H}_i$ for $i = 1 \dots w$ is partitioned further into \textbf{rectangular circulant} blocks
\begin{equation}
\mathbf{H}_i =
\left(
\begin{array}{cccc}
\mathbf{T}_{i,1} & \mathbf{T}_{i,2} & \dots & \mathbf{T}_{i,\alpha}
\end{array}
\right) ,
\end{equation}
and each block $\mathbf{T}_{i,j}$ for $j = 1 \dots \alpha$ is an $n \times a$ \textbf{rectangular circulant} matrix; hence, $\mathbf{H}$ has $m = a{\alpha}w$ columns and $n = {\gamma}{\xi}$ rows. Next we define the ${\gamma} \times a$ matrix
\begin{equation}
\mathbf{Q} =
\left(
\begin{array}{c}
	\mathbf{I}_a \\
	\mathbf{0}
\end{array}
\right) ,
\end{equation}
and the $n \times a{\alpha}$ matrix
\begin{equation}
\mathbf{E} =
\left(
\begin{array}{c}
	\mathbf{I}_\alpha \otimes \mathbf{Q} \\
	\mathbf{0}
\end{array}
\right) ,
\end{equation}
where $\mathbf{0}$ is the zero matrix, $\mathbf{I}_p$ is the $p \times p$ identity matrix, and $\otimes$ is the Kronecker product. \cite{horton2010novel, vose2007heuristic} We now decompose the system matrix as
\begin{equation}
\label{eqn:decomposition}
\mathbf{H}_i = \mathbf{C}_i\mathbf{E} ,
\end{equation}
where $\mathbf{C}_i$ is an $n \times n$ circulant matrix whose first column $\mathbf{c}_i$ is $\mathbf{T}_{i,1}$. By inserting our results from Eq. (\ref{eqn:decomposition}) into Eq. (\ref{eqn:H}) and then into Eq. (\ref{eqn:linear}) we end up with
\begin{equation}
\label{eqn:vs_linear}
\mathbf{g} = \mathbf{H}\mathbf{f} = \sum_{i = 1}^w {\mathbf{C}_i}{\mathbf{E}}{\mathbf{f}_i} = \left( \begin{array}{cccc}
\mathbf{C}_1 & \mathbf{C}_2 & \dots & \mathbf{C}_w
\end{array} \right) \left( \mathbf{I}_w \otimes \mathbf{E} \right) \mathbf{f} ,
\end{equation}
where $\mathbf{f}$ is a block vector composed of $w$ blocks each of length $\ell = a \alpha$
\begin{equation}
\mathbf{f} = \left(
\begin{array}{c}
	\mathbf{f}_1  \\
	\vdots \\
	\mathbf{f}_w
\end{array}
\right) ;
\end{equation}
hence, $\mathbf{f}$ has length $m = \ell w = a \alpha w$.

It turns out, the matrix vector multiplication $\left( \mathbf{I}_w \otimes \mathbf{E} \right) \mathbf{f}$, {is a parallel} $1-1$ index mapping. This mapping can be done {quickly} on a GPU with $m$ threads. To see this, we define the vector of length $nw$ that results from the matrix vector multiplication $\mathbf{v} = \left( \mathbf{I}_w \otimes \mathbf{E} \right) \mathbf{f}$ as
\begin{equation}
\label{eqn:v}
\mathbf{v} = \left(
\begin{array}{c}
	\mathbf{v}_1  \\
	\vdots \\
	\mathbf{v}_w
\end{array}
\right) ,
\end{equation}
where each $\mathbf{v}_i = \mathbf{E}\mathbf{f}_i$ for $i = 1 \dots w$ is a vector of length $n$. Next we denote the $i^{th}$ element of $\mathbf{v}$ as $\left(\mathbf{v}\right)_i$ (and similarly for the $j^{th}$ element of $\mathbf{f}$). Then the \textbf{zero based} indexing mapping algorithm is
\begin{enumerate}
\item Initialize $\mathbf{v} = \mathbf{0}$.
\item $\left( \mathbf{v} \right)_i = \left(\mathbf{f} \right)_j \text{ for } j = 0 \dots m-1$ and $i$ is defined completely in terms of $j$ and constants as
\begin{equation}
i = j - s \ell + \left( \gamma - a \right) \left\lfloor \frac{j - s \ell}{a} \right\rfloor + sn \text{ where } s = \left\lfloor \frac{j}{\ell} \right\rfloor.
\end{equation}
\end{enumerate}
Rewriting Eq. (\ref{eqn:vs_linear}) in terms of $\mathbf{v}$, {we arrive at}
\begin{equation}
\label{eqn:linear_circulant}
\mathbf{g} = \mathbf{H} \mathbf{f} = \sum_{i = 1}^w {\mathbf{C}_i}{\mathbf{v}_i} .
\end{equation}
{It is} well {known} that circulant matrix vector multiplication can be {performed} via Fourier transforms in $\mathcal{O}(n \log n)$ time. This is because a circulant matrix $\mathbf{C}_i$ for $i = 1 \dots w$ can be written in terms of a diagonal matrix $\mathbf{D}_i$ as $\mathbf{D}_i = \mathbf{F}_1\mathbf{C}_i\mathbf{F}_1^{-1}$. In our notation, we denoted the 1D Fourier transform and {its} inverse as $\mathbf{F}_1$ and $\mathbf{F}_1^{-1}$. It follows that Eq. (\ref{eqn:linear_circulant}) can be written as
\begin{equation}
\label{eqn:forward}
\mathbf{g} = \mathbf{H} \mathbf{f} = \sum_{i = 1}^w {\mathbf{F}_1^{-1}\mathbf{F}_1\mathbf{C}_i}\mathbf{F}_1^{-1}\mathbf{F}_1{\mathbf{v}_i} = \mathbf{F}_1^{-1} \sum_{i = 1}^w {\mathbf{D}_i}\mathbf{F}_1{\mathbf{v}_i} = \mathbf{F}_1^{-1} \sum_{i = 1}^w \mathbf{d}_i \odot \left( \mathbf{F}_1{\mathbf{v}_i} \right) ,
\end{equation}
where $\mathbf{d}_i = \mathbf{F}_1 \mathbf{c}_i$ is precomputed. {Thus, we reduced} the expensive matrix vector multiplication $\mathbf{H}\mathbf{f}$ down to three trivial parallel operations. The {processing bottleneck then becomes} the Fourier transform which can be computed using cuFFT on a GPU \cite{cudadocs}.

We now need the backward projection $\mathbf{H}^{T}\mathbf{u}$ which is found by taking the transpose of the system matrix defined by Eq. (\ref{eqn:vs_linear}) $\mathbf{H}^T =
\left( \left( \begin{array}{cccc}
\mathbf{C}_1 & \mathbf{C}_2 & \dots & \mathbf{C}_w
\end{array} \right)\left(\mathbf{I}_w \otimes \mathbf{E} \right) \right)^T = \left(\mathbf{I}_w \otimes \mathbf{E} \right)^T \left( \begin{array}{cccc}
\mathbf{C}_1 & \mathbf{C}_2 & \dots & \mathbf{C}_w
\end{array} \right)^T$. This results in
\begin{equation}
\label{eq:Htu}
\mathbf{H}^T \mathbf{u} = \left(\mathbf{I}_w \otimes \mathbf{E} \right)^T \left(
\begin{array}{c}
	\mathbf{C}_1^T \mathbf{u}  \\
	\mathbf{C}_2^T \mathbf{u} \\
	\vdots \\
	\mathbf{C}_w^T \mathbf{u}
\end{array}
\right) ,
\end{equation}
which is also composed of a trivial index mapping $\left(\mathbf{I}_w \otimes \mathbf{E} \right)^T$ that can be {performed} on a GPU with $m$ threads. If we again denote the resulting vectors $\mathbf{z} =  \left( \begin{array}{cccc}
\mathbf{C}_1 & \mathbf{C}_2 & \dots & \mathbf{C}_w
\end{array} \right)^T \mathbf{u}$ and $ \boldsymbol{\zeta} = \left(\mathbf{I}_w \otimes \mathbf{E} \right)^T \mathbf{z}$ the \textbf{zero based} indexing mapping algorithm is
\begin{enumerate}
\item $\zeta_i = z_j \text{ for } i = 0 \dots m-1$ and $j$ is defined completely in terms of $i$ and constants as
\begin{equation}
j = i - s \ell + \left( \gamma - a \right) \left\lfloor \frac{i - s \ell}{a} \right\rfloor + sn \text{ where } s = \left\lfloor \frac{i}{\ell} \right\rfloor .
\end{equation}
\end{enumerate}
Since the transpose of a circulant matrix is also circulant, and because Fourier transforms along with diagonal matrices are symmetric{,} we can simplify Eq. (\ref{eq:Htu}) as

\begin{equation}
\label{eqn:transpose_cir}
\mathbf{C}_i^T \mathbf{u} = \mathbf{F}_1 \left( \mathbf{F}_1 \mathbf{C}_i \mathbf{F_1}^{-1} \right)^T \mathbf{F_1}^{-1} \mathbf{u} = \mathbf{F}_1 \mathbf{D}_i \mathbf{F}_1^{-1} \mathbf{u} \text{ for } i = 1 \dots w.
\end{equation}

An additional optimization using Hermitian symmetry can also be exploited. Hermitian symmetry implies that when we compute the forward Fourier transform of a real vector of length $n$, we only need the resulting complex vector of length $\beta = \left\lfloor \frac{n}{2}\right\rfloor + 1$. Likewise, the inverse Fourier transform of a complex vector results in a real vector of length $n$, so the complex input only needs a length of $\beta$ \cite{cudadocs}. In order to leverage Hermitian symmetry we need to write Eq. (\ref{eqn:transpose_cir}) with the Fourier terms flipped. This is accomplished by noticing that, $\overline{\mathbf{F}}_1 = \mathbf{F}^{-1}_1$, $\overline{\mathbf{F}}_1^{-1} = \mathbf{F}_1$ (bar denotes complex conjugate), while $\mathbf{u}$ and $\mathbf{C}_i^T \mathbf{u}$ are real
\begin{equation}
\label{eqn:backwards}
\mathbf{C}_i^T \mathbf{u} = \overline{\mathbf{C}_i^T \mathbf{u}} = \overline{\mathbf{C}_i^T} \overline{\mathbf{u}} = \overline{\mathbf{C}_i^T} \mathbf{u} = \overline{\mathbf{F}_1 \mathbf{D}_i \mathbf{F}_1^{-1}} \mathbf{u} = \mathbf{F}_1^{-1} \overline{\mathbf{D}}_i \mathbf{F}_1 \mathbf{u} = \mathbf{F}_1^{-1} \left( \overline{\mathbf{d}}_i \odot \left( \mathbf{F}_1 \mathbf{u} \right) \right) \text{ for } i = 1 \dots w  .
\end{equation}
This substantially reduces the spacetime complexity since
\begin{enumerate}
\item $\mathbf{d}_i = \mathbf{F}_1 \mathbf{c}_i$ with $\mathbf{c}_i$ real implies we only need the first $\beta$ elements of $\mathbf{d}_i$ instead of $n$ elements.

\item $\mathbf{F}_1 \mathbf{v}$ ($\mathbf{F}_1 \mathbf{u}$) result in vectors of length $\beta$ which means the Hadamard product between them and $\mathbf{d}_i$ ($\overline{\mathbf{d}}_i$) is {performed} on $\beta$ elements instead of $n$ elements.
\end{enumerate}

Just like the forward projection, we {reduced} the expensive matrix vector multiplication $\mathbf{H}^T\mathbf{u}$ down to two simple parallel operations leaving the bottleneck as the Fourier transform since the remaining Hadamard operations $\mathbf{g} \oslash (\dots)$ and $\left(\mathbf{f} \oslash \mathbf{h} \right) \odot \left( \dots \right)$ are trivially parallelizable.

For convenience we provided pseduocode for our parallel algorithm (hereafter referred to as WBH) implemented for the EM solver in Alg. \ref{alg:wbh}. Note that, even though we applied our algorithm to the EM solver, the WBH algorithm is solver agnostic. Finally, the complexity analysis of the WBH algorithm is driven by the Fourier transform. Since cuFFT \cite{cudadocs} has a guaranteed runtime of $\mathcal{O}(n \log n)$, we conclude our complexity is $\mathcal{O}\left( knw \log n \right)$. This is in contrast to the $\mathcal{O}\left( knw \ell \right)$ runtime using a brute-force (hereafter referred to as BF) matrix vector multiplication algorithm. In addition, the space complexity of WBH is $\mathcal{O}\left( n w \right)$ which is also better than the $\mathcal{O}\left( nw \ell \right)$ BF method.

\begin{algorithm}[H]
\label{alg:wbh}
\DontPrintSemicolon
\caption{WBH algorithm implemented in the EM solver. Each line in the for loop is a kernel call.}

Read and copy $\mathbf{d_1}, \mathbf{d_2}, \dots \mathbf{d}_w$ to the GPU \;
Read and copy $\mathbf{g}$ to the GPU \;
$K =$ some value between $10-30$ \;
Initialize $\mathbf{f}^{(1)}$ to all ones \;
\For{ k = 1 \KwTo K}{
	$\mathbf{v} = \left( \mathbf{I}_w \otimes \mathbf{E} \right) \mathbf{f}^{(k)}$ \;
	$\mathbf{g}^{(k)} = \mathbf{F}_1^{-1} \left( \mathbf{d}_1 \odot 	\left( \mathbf{F}_1 \mathbf{v}_1 \right) + \mathbf{d}_2 \odot 	\left( \mathbf{F}_1 \mathbf{v}_2 \right) + \dots + \mathbf{d}_w \odot 	\left( \mathbf{F}_1 \mathbf{v}_w \right) \right)$ \;
	$\mathbf{u} = \mathbf{g} \oslash \mathbf{g}^{(k)}$ \;
	$\mathbf{U} = \mathbf{F}_1 \mathbf{u}$	 \;
	$ \mathbf{z} = \mathbf{F}_1^{-1} \left( \begin{array}{cccc}\overline{\mathbf{d}}_1 \odot \mathbf{U} & \overline{\mathbf{d}}_2 \odot \mathbf{U} & \dots & \overline{\mathbf{d}}_w \odot \mathbf{U} \end{array} \right)^T$ \;
	 $\boldsymbol{\zeta} = \left( \mathbf{I}_w \otimes \mathbf{E} \right)^T \mathbf{z}$ \;
	 $\mathbf{f}^{(k+1)} = \left(\mathbf{f}^{(k)} \odot \boldsymbol{\zeta} \right) \oslash \mathbf{h}$ \;
}

Copy $\mathbf{f}^{(k+1)}$ from the GPU to the CPU \;
\textbf{Save:} $\mathbf{f}^{(k+1)}$ \;

\end{algorithm}

\section{Results and Discussion}
Using a system matrix provided by Sethaphong which spans $421$ nm up to $495$ nm in steps of $1$ nm we synthetically generated an image using a fully illuminated ($\mathbf{f}(x,y,\lambda) = 100$) $89 \times 80$ field stop ($a = 89$ and $\alpha = 80$) on a $2048 \times 2048$ FPA ($\gamma = \xi = 2048$) {. The FPA image is shown in Fig. {\ref{fig:g}}}.
\begin{figure}[H]
	\begin{center}
    	\begin{tabular}{c}
   		\includegraphics[height=7cm]{g.png}
   		\end{tabular}
   	\end{center}
   	\caption{(Color online) FPA image generated using a fully illuminated field stop $\mathbf{f}(x,y,\lambda) = 100$.}
   	\label{fig:g}
\end{figure}

Our benchmarks in seconds are shown in Table \ref{tbl:bm} and were obtained using the following hardware:
\begin{enumerate}
\item Desktop computer with a modest Quadro P4000 GPU and $8$ GB of GPU memory. We implemented the WBH + EM + P4000 (WBH implementation of the EM algorithm and running on a P4000 GPU) algorithm using CUDA C/C++ $10.1$.
\item Nvidia Jetson AGX Xavier (hereafter referred to as Xavier) with an embedded $512$-core Volta GPU and 16 GB of GPU memory \cite{jetson}. {We will} refer to this benchmark as WBH + EM + Xavier (WBH implementation of the EM algorithm running on an Xavier GPU).
\item Desktop computer with \textbf{two} 2.30 GHz Intel(R) Xeon(R) E5-2699 v3 CPUs and $\mathbf{256}$ GB of RAM. We implemented the BF + EM + CPU (BF implementation of the EM algorithm running on a CPU) algorithm using Matlab.
\end{enumerate}

\begin{table}[H]
\centering
\begin{tabular}{rrrrr}
\hline
\multicolumn{1}{r}{\bfseries BF + EM + CPU (s)} & \multicolumn{1}{r}{\bfseries WBH + EM + Xavier (s)} & \multicolumn{1}{c}{\bfseries WBH + EM + P4000 (s)} & \multicolumn{1}{r}{\bfseries $K$} & \multicolumn{1}{r}{\bfseries $w$} \\
\hline
21593.7 & 853.0 & 467.2 & 3100 & 75 \\
438.5 & 13.9 &  7.5 &   50 & . \\
315.7 & 9.2 &  5.0 &   33 & . \\
265.3 & 7.0 &  3.8 &   25 & . \\
161.0 & 2.8 &  1.5 &   10 & . \\

\hline
7537.2 & 281.1 & 153.2 & 3100 & 24 \\
149.1 & 4.6 &  2.5 &   50 & . \\
109.7 & 3.0 &  1.6 &   33 & . \\
91.9 & 2.3 &  1.2 &   25 & . \\
53.6 & 0.9 &  0.5 &   10 & . \\
\hline
1039.3 & 41.3 & 24.0 & 3100 & 3 \\
20.2 & 0.7 & 0.4 &   50 & . \\
13.9 & 0.5 & 0.3 &   33 & . \\
11.8 & 0.4 & 0.2 &   25 & . \\
6.8 & 0.1 & 0.08 &  10 & . \\

\hline
\end{tabular}
\caption{Runtime comparisons in seconds for BF + EM + CPU, WBH + EM + Xavier, WBH + EM + P4000 with a given total number of iterations $K$ and total number of wavelengths $w$.}
\label{tbl:bm}
\end{table}

As can be seen from Table. \ref{tbl:bm} the WBH algorithm {performs} well. For example, in the case $w = 75, K = 25$ the runtime is $3.8$ s using a desktop GPU and $7.0$ s using an embedded GPU. Furthermore, the relative error was $0.02$. In comparison, the BF algorithm took $265$ s and had a relative error of $1.4 \times 10^{-16}$. One explanation for the higher error is the use of single precision to save space when running WBH as opposed to double precision when running the BF method.

We can also compare our results to Vose-Horton. They used a CTIS system similar to ours but with $24$ wavelengths and ran their novel heuristic reconstruction algorithm on a CPU. Their reconstruction quality/error was excellent and it took $423.0$ s. They mentioned that choosing $K = 33$ for the BF MART solver did a fair job at reconstructing the image but the solver needed to be run for $K=3100$ in order to get as good of results as them. Notice that, in both cases $K = 33$ and $K=3100$, our algorithm ran faster. Furthermore, as discussed in Sec. \ref{sec:ctisoverview}, $10-30$ is a typical total number of iterations. For these reasons, we conclude the WBH algorithm when applied to the EM solver runs in a few seconds.

In addition to Vose-Horton, Sethaphong, using the same CTIS system as us ran a BF parallel EM reconstruction algorithm on a {dedicated} set of 10 processors that was part of a larger 1500 core supercomputer. For his benchmarks he used $w = 280$, $K=50$ and obtained a time of $37.08$ s. Unfortunately, due to memory limitations, we only {processed} $75$ wavelengths. However, we have table entries at $(w = 24, K = 50)$, $(w = 75,K = 50)$ and our runtime is linear in the total number of wavelengths. If we {linearly extrapolate} for $w=280$ we {obtain} $27.6$ s. This is, theoretically, faster than Sethaphong.

{
We validated our reconstruction quality using a method similar to Vose-Horton. Using an RGB image that corresponds to a datacube with three wavelengths, we multiplied the vectorized RBG image by our system matrix which produced an FPA image that was fed into both the EM and WBH algorithms. The reconstructed results using $33$ iterations in the aforementioned algorithms are shown in the left and right of Fig. {\ref{fig:recon}} respectively. As can be seen from Fig. {\ref{fig:recon}}, the reconstructed datacube using the WBH algorithm looks the same as the one using the EM method. Quantitatively, the average relative pixel error defined as $\frac{1}{m}\sum_{j=1}^m \frac{|f^{wbh}_j - f^{em}_j|}{f^{em}_j}$ where $\mathbf{f}^{em}$($\mathbf{f}^{wbh}$) denotes the vectorized left(right) RGB image in Fig. {\ref{fig:recon}} was found to be $0.5 \times 10^{-3}$. Thus, we obtained excellent reconstruction quality.
}
\begin{figure}[H]
	\begin{center}
    	\begin{tabular}{c}
   		\includegraphics[height=7cm]{emvswbh.png}
   		\end{tabular}
   	\end{center}
   	\caption{{(Color online) RBG images used to confirm our reconstruction quality. The images corresponded to a datacube with three wavelengths and where reconstructed using $33$ iterations. Left: Reconstructed datacube using the EM method. Right: Reconstructed datacube using the WBH algorithm.}\label{fig:recon}}
\end{figure}

It would be interesting as Horton suggested in his thesis \cite{horton2010novel} to implement the Vose-Horton algorithm on a GPU. One {benefit besides a potential processing gain}, is the possibility to use a hybrid approach that utilizes both algorithms. This is feasible because the WBH and Vose-Horton algorithm share the same matrix decomposition. In fact, {Thompson implemented} hardware acceleration for the Vose-Horton algorithm on a cell processor (running on {a} Playstation 3). Unfortunately, due to memory limitations he was only able to {process} three wavelengths but, the results are still interesting. Thompson showed, with hardware acceleration the Vose-Horton algorithm could run in $4.14$ s. In comparison, the WBH algorithm for $w = 3, K=3100$ was slower. However, in the more common case $w = 3, K=33$ the WBH algorithm was faster. Given that cell processors are less popular than GPUs today, we believe a GPU implementation is a better approach. Finally, Thompson's issues with memory bring up a good point. For embedded systems and GPUs, memory is a commodity. The fact that we were able to run $75$ wavelengths on a modest $8$ GB GPU is an excellent result. If we were to use a high end desktop with better and more GPUs, we think {it is} possible to run as many wavelengths as Sethaphong while still maintaining a few second reconstruction time. Overall, we developed a simple, fast, and solver agnostic algorithm {that is} practical for near-realtime and/or embedded systems.

\section{Conclusions}
We have developed a parallel algorithm that accelerated CTIS reconstruction times and exploited spatial shift invariance. The new algorithm, WBH, was applied to the EM solver and implemented {on a desktop and embedded GPU. After validating that our new algorithm maintained reconstruction quality on par with traditional methods we went on to benchmark the new WBH algorithm which was shown to preform well; achieving reconstruction times of a few seconds where traditional brute-force methods required minutes to hours.} We also demonstrated the feasibility of GPUs for CTIS reconstruction.

redpajama_set_name: RedPajamaArXiv


Our Exclusive Chat with TV Host and Health Expert – Jason Dundas!
Jason Dundas' story started with a humble upbringing in Sydney's Western Suburbs. After landing a gig with MTV at 21-years-old, he went on to film in over 100 countries for Getaway, hosted the X-factor and some of the worlds biggest shows. He currently runs Dundas Media from LA and is passionate about health and fitness. We caught up with Jason to chat about all things health, success and you guessed it – EGGS!
What would you say have been the highlights of your career?
I would say hosting the X Factor was one because for me it represents the pinnacle of TV hosting and I entered into the craft with the goal of reaching the top and that is a live format with a TV audience, a massive budget with a single host that guides the whole show. To me that is the pinnacle of TV Hosting and the fact that someone called me up and asked if I want to do it – it really was just reaching the top level that I always wanted.
When I was 27 years old, spending all my money and quitting the Aus market on a whim and almost going broke then landing a job in New York which has kind of changed my life.
Third was, I took two months off getaway in 2008 to study at theatre school. It cost 25k all up, the trip, but I thought I could be a better host if I was more natural, so I figured if I was going to do it I would go full throttle. At the HB Studio in the West Village and 6 days a week. As a host, you learn to be authentic, completely slow down and command the moment.
I think it all starts with growing up the western suburbs in Sydney and having a chip on my shoulder. Having an 'I can do what I want' mentality has really given me drive. I am stubborn and hate being told what to do, so I want to defy the odds all the time. I have chronic ADD so I constantly need to solve problems and be making things happen. Which is why I love tennis, you know, it isn't verse one on the course it's one in between your ears, it really is a mental game. And a never give up persistence is the key to success.
How much do health and well-being play a part in your life?
I got shredded when I worked with David Jones as an ambassador and it taught me that being fit and healthy can help you get razor sharp focus. After that, I went and studied at the world's largest nutrition school for a year to be a holistic health coach, then I did a course to be a certified PT. After all of that, I learnt the biggest thing is moderation, I live a nice little balance. I also really need sleep every night, 8 hours.
What would be your top tips for healthy living?
These are two super simple steps to get started. The first thing is to start with liquid. Whatever you do, for 8 weeks the only liquid you can put in your body is water. That is the easiest barrier to entry into health. No juice, no smoothies, just water and it might be a pain, but it will give you just enough discipline to make other changes. The next step, if you can do it is to drop the bread.
Best mentality towards diet and a healthy lifestyle?
Eating healthy and clean is super important, arm yourself with knowledge on why a certain food is good for you. The most important thing is to do our own research and read. At the Institute of Integrated Nutrition, I studied over 30 different dietary theories to learn what works for me is a balance. We need to look through the noise and find what works for ourselves. The overarching tip is to arm yourself with knowledge and do what works for you… don't listen to everything and everyone out there.
How important are eggs in your diet and lifestyle?
I like eggs, they make me feel good, they are a great source of protein, I love omelettes and frittatas. I love experimenting with them and making different things. I make these frittata muffins, and I really experiment with them – with spinach and onion all different stuff and it is a really great protein snack. Also, If I am ever in a foreign country to be healthy and not be bulked down the safe bet is a clean omelette.
How have you incorporated wellbeing into your life?
I did, this thing called Muse. I went through a heavy breakup before I moved to Sydney for X-factor and I meditated twice a day, morning and night and it was really great. Then I realised I didn't need it. And now I have realised that my meditation is when I am lifting weights or in the shower or cooking, walking my dog and using Photoshop. I don't have to think too much, but I allow one part of my brain to chill. Also, flying is a good one for me.


See the first ride of the first 'Beermobile'. It only needs better brakes than shoes.
A group of young men from Germany, probably still under the influence of the happy days of Oktoberfest, made this kind of car home-made!
It is unknown what the engine, a generator, a saucer, or something else, is not important, but it is obvious that this beermobil is going fast But from the footage it is obvious that the next step of these masters should be the brake!


text:
"Beacon Of Hope" For Malaysia To Bring Home Gold At The Olympics
The Prime Minister hopes for the best-ever result at the Tokyo Olympics under the leadership of Datuk Lee Chong Wei.
by Maya Suraya
olympic.org.my
Subscribe to our Telegram channel for the latest stories and updates.
Hearing our national anthem Negaraku played at Olympic venues in Tokyo would be just the morale booster this country needs in a time where morale is low.
Why? Because this would mean we've finally brought home a Gold at the world's leading, most prestigious international sporting event.
In a hopeful speech made at the Demi Malaysia Champions' Flag-off yesterday (17 July), Prime Minister Tan Sri Mahiaddin Md Yasin is confident that those representing the country would shine at the Games by fighting till the end to raise the nation's standing on the world stage and prove that Malaysians can be the best in their respective sports.
I am confident all of you will fight till the end for our beloved Malaysia (so as) to fly the Jalur Gemilang in the eyes of the world, to raise the nation's standing on the world stage (and) to prove that Malaysians can be the best in their respective sports. Most importantly, to ensure that the national anthem of Negaraku is played at the competition venues.
Prime Minister Tan Sri Mahiaddin Md Yasin, 17 July 2021 via a report by The Malay Mail
In addressing the national contingent present at yesterday's send-off, he said the whole contingent of 30 athletes, 21 coaches and 13 officials reflects the strength of Malaysia's 32 million population.
30 athletes competing in 27 events covering 10 sports
As reported by the Malay Mail, Mahiaddin hopes that under the leadership of Datuk Lee Chong Wei, the Tokyo Olympics would see the national contingent produce their best-ever result in the history of the Games.
The sport and competitors representing Malaysia are:
It was reported earlier this month that Chong Wei, Malaysia's chef de mission, would not be present at the Games due to his health condition and upon his doctor's advice.
The 2020 Summer Olympic Games in Tokyo will take place Friday 23 July 2021 – Sunday 8 August 2021, and the Paralympic Games between 24 August and 5 September.
It was announced back in March that international fans would not be able to attend the games, but Ministers and organisers have now decided to ban all spectators.
Share your thoughts with us via TRP's Facebook, Twitter, and Instagram.
Datuk Lee Chong Wei Malaysian Olympics Contingent Tokyo Olympics 2020 Tokyo Olympics 2021
Maya Suraya
Former advertising mad woman - turned mother to an amazing little girl born 3 months early - and now a returned writer. Also a textbook ambivert with no clue about today's pop music but a walking encyclopedia of music from the 80s and 90s.
Maya Suraya July 18, 2021
Silver Medal For Cyclist Azizulhasni!
"Thanks For The Gift" Malaysian Olympic Diver Shows Off Friendship Cardigan Made By British Athlete
A Spot Short Of A Medal But Still A Tremendous Feat For Nur Dhabitah
Shining Light On A Dark Past: The Story Behind The Flowers Handed To Olympic Medallists


text:
Homework answers / question archive / Write 7 pages thesis on the topic the gunpowder plot
Write 7 pages thesis on the topic the gunpowder plot
Write 7 pages thesis on the topic the gunpowder plot. Even before he officially took the English throne, James was the focus of at least two such plots, including the Main Plot and the Bye Plot (Magnussen, 2003: 409). This was in spite of the fact that he was the son of a devoutly Catholic mother, Mary, and was married to a recently converted Catholic queen. Thus, before one condemns James for the anti-Catholic sentiment in the country, these external, previously existing conditions must be considered. James took the throne in 1604 and was the subject of a more serious plot in 1605, now referred to as the Gunpowder Plot, but then called the Powder Treason (Fraser, 1997). The purpose of this paper is to discover more about this conspiracy by examining its origins, the planning involved in it, how it was discovered, the subsequent trials and executions, its impact on history, and how it is remembered today.
King James VI of Scotland accepted the crown of England in March of 1604 and, in response to the demands of his Protestant subjects, reinstated the penal laws first introduced by Elizabeth in response to Spanish and Papal threats during the latter portion of the 1500s. The penal codes began with the disputation of the legitimacy of Elizabeth's reign in light of the fact that her mother was Anne Boleyn, the second wife of Henry VIII. The Catholic Church recognized only the progeny of Catherine of Aragon as legitimate offspring and even published a papal bull excommunicating Elizabeth and effectively proclaiming all Catholics as traitors to the crown in England by releasing parishioners from any allegiance to her (Frasier, 2002). Under these laws, Catholics enjoyed severe restrictions in their movements, additional fines on their incomes, and constant fear of unwarranted trial or imprisonment. James' willingness to continue these laws convinced many Catholics in the country that they would not be able to expect reduced restrictions and that the country would not revert back to the 'true' religion with&nbsp.the new monarch.
FORUM DESCRIPTION Chapter10 discusses situationalawareness
Compose a 1250 words assignment on recycling as a partial solution to the amount of solid waste
Write 7 pages thesis on the topic cognitive behavior therapy in treating substance addictions
The work is to be 2 pages with three to five sources with intext citations and a reference page
Reflect on your experience as an online learner your own learning needs and how these may be similardifferent from those of other online learners
The Necessity to Fund Researches on BrainEating Amoeba
Your assignment is to prepare and submit a paper on one flew over the cuckoo39s nest as an evidence of inhumanity of psychiatric treatment
Prior to their repeal it was argued that the provisions in the Serious Organised Crime and Police Act 2005 relating to demonstrations within the vicinity of Parliament constituted an unnecessary extension of police powers
Create a 4 pages page paper that discusses pick one of the topic on the attachment
Write a 250 words paper on the topic Pop Culture Ads Authenticity


Here at Swift Brick Repair, we'll be ready to satisfy all of your needs regarding Brick Repair in Potter, KS. Our team of highly skilled experts will give you the solutions you'll need with the most innovative technology in the industry. Our supplies are of the finest quality and we have learned to conserve your cash. Call us today by dialing 844-222-4922 to start out.
Being economical is an essential part of the mission. On top of that, you should have the most impressive and finest quality of services when it comes to Brick Repair in Potter, KS. We ensure that our cash saving initiatives don't indicate a lower standard of quality work. Our ambition is to ensure that you acquire the finest products and a result that holds up through the years. We'll do this by supplying you with the most suitable prices in the field and avoiding costly complications. Save your time and funds by simply contacting Swift Brick Repair right now. Dial 844-222-4922 to speak with our customer service representatives, right now.
Brick Repair are available in Potter, KS.
It is important to be knowledgeable on the subject of Brick Repair in Potter, KS. You won't want to enter into it without understanding it, and you should understand what you should expect. We will take the surprises from the scenario by giving reliable and detailed advice. You can start by talking over your project with our client service associates when you call 844-222-4922. We're going to address your questions and concerns and schedule your first appointment. We will work with you through the whole process, and our team can arrive on time and well prepared.
When you're preparing a process for Brick Repair in Potter, KS, there are several great reasons to prefer Swift Brick Repair. We offer the highest customer satisfaction scores, the best resources, and the most helpful and powerful cash saving solutions. We fully understand your expectations and intentions, and we're there to serve you using our experience. Call 844-222-4922 when you need Brick Repair in Potter, and we'll work together with you to properly complete your project.


text:
Affordable Housing Brief: So Many Options for Santa Fe & NM to Achieve Equity
Issue Brief: Affordable Housing. Affordable Housing: Platform for Health and Economic Justice, May 2017 Martha Burt
Between 1960 and 2014, "inflation-adjusted rents have risen by 64%, but real household incomes only increased by 18%. The situation was particularly challenging from 2000 – 2010: household incomes actually fell by 7%, while rents rose by 12%. As a result, the share of cost-burdened renters nationwide more than doubled, from 24% in 1960 to 49% in 2014."[i]
Abstract: All over the United States, half of renter households are being priced out of housing. Almost 54,000 working households in New Mexico were severely cost burdened in 2014—meaning they spent over 50% of their income on rent. This is about 1 in 5 working households in the state. Another 1 in 5 working households spent between 30% and 50% of their income for rent.[2] The average renter household makes $12.53 an hour; someone making minimum wage makes $7.50 an hour in most of the state. Unfortunately, a renter household would have to make $16.06 an hour to afford a 2-bedroom apartment at the Fair Market Rent of $835 a month.[3] Upshot—far too many New Mexico households have very little left over to pay for everything else in their lives, and are very vulnerable to losing housing. This brief shows how a state could greatly increase its supply of affordable housing through two mechanisms—creating more affordable housing, and subsidizing low income renters to assure they spend no more than 30% of their income for rent.
What Happens When You Can't Afford Housing?
Low income households paying too much for housing are vulnerable to several unhappy situations. They may lose their housing altogether, and have to move in with family or friends; the overcrowding that results often increases tensions and mental health problems, and sometimes promotes family violence. Homelessness may be the ultimate outcome. Once families become homeless, they face many financial barriers to getting back into housing. Further, they themselves will not be in a position to help other family and friends in times of crisis. Even more, children's health and well-being suffer. About 1 in 4 New Mexico children go to bed hungry every night, in part because their parents cannot afford food after paying for housing. Children's health also suffers. Children who have been homeless before they reach four years of age are also significantly more likely to experience conditions that require hospitalization.[4]
What New Mexico Does Now Is Not Enough
New Mexico uses federal resources, mostly Section 8/Housing Choice Vouchers, to subsidize rents for about 5,300 low income renter households every year—or about 10 percent of households that need this assistance.[5]
New Mexico uses its own (state general fund) money to support five small rental assistance programs that are mostly (1) short term, (2) targeted to people with mental illness or homeless people, and (3) that all together serve fewer than 1,000 annually.[6]
New Mexico has four affordable housing construction/production subsidy programs, and Albuquerque has one of its own. These programs help developers acquire properties and amass enough money to create new housing or fix up existing properties for occupancy by low income renters.[7]
These programs work, but (1) don't produce enough units, and (2) are cumbersome to use.
What Some Other States Do, What New Mexico Could Do Also—and Should
Other states have programs that we could do in New Mexico.[8] These include:
Developing a statewide plan that (a) establishes a "fair share" of housing for every municipality in the state, (b) is enforceable, and (c), uses collaboration in all aspects, planning and production—as is done in New Jersey, Pennsylvania, Maine, Illinois, Minnesota, and Arizona
Reducing regulatory barriers created by zoning, construction and other codes to expedite creation of new units that revitalize deteriorating neighborhoods and communities; these allow smoother processing, one-stop applications even though multiple jurisdictions are affected, expedited approval processes—these practices have cut housing development costs by 10 to 40 percent in New Jersey; other states using these practices include Connecticut, Florida, Georgia, Maine, Maryland, Michigan, New York, Rhode Island, and Texas.
Incentivizing housing development that follows transportation lines, jobs creation (New Jersey, Massachusetts, others).
Pursuing multiple goals simultaneously (e.g., economic development plus housing—Oregon, New Jersey) and partnering with overlapping interests—special needs, elderly, rural, child welfare—Minnesota, Michigan, Rhode Island.
Using state funds to support Housing Trust Funds and affordable housing tax credits that parallel federal programs—to finance general affordable housing and special needs housing—as uisdone in numerous states.
Creating a Housing Levy—Seattle/King County voters recently chose to raise their property tax mil rate for the sixth time and devote the proceeds to rental assistance, loans to first-time homebuyers, and affordable housing development. Over the 25 years that previous levies were in place, they generated over 13,000 affordable apartments and helped 900 low-income families buy their first house. This city-county initiative is progressive taxation, and we could do it here.
Establishing a special tax on luxury development, with collections going into a Housing Trust Fund or other mechanism that then funds new unit construction in areas of high need—Santa Fe tried to establish such a tax in 2015—called the Workforce Housing Funding Initiative—but it didn't pass. Nevertheless, Santa Fe does have an "impact fee" imposed on development that is used for a variety of activities that make it less expensive for developers to produce reasonably-priced housing, such as roads and other infrastructure in areas being developed.
Establishing a Deep Subsidy Program, to invest more state funds in projects that aim to serve households with incomes below 30 percent of area median income (about the federal poverty level)—New Jersey.
Creating programs to acquire land in high priority areas, including brownfields and other contaminated land, and make it available to developers to clean up and create affordable housing—New Jersey, Pennsylvania.
A loan program specifically for small rental projects (5-25 units) suitable for "in-fill" in already-developed neighborhoods—New Jersey
Housing preservation program to assure that housing units that are currently affordable stay that way—many states.
A loan program for housing for youth aging out of foster care—New Jersey
Getting to "Yes" on Affordable Housing
The National Housing Conference has analyzed the positive messages that work best to promote investment in more affordable housing. These include:[9]
Focus on specific beneficiaries.
Describe programs with terms that affirm that the beneficiaries deserve assistance.
Make it clear that the whole community benefits.
Appeal to core values such as choice, hard work, balance, fairness, and opportunity.
[i][i] Woo, Andrew. 2016. How Have Rents Changed Since 1960? ApartmentList.com, Rentonomics. https://www.apartmentlist.com/rentonomics/rent-growth-since-1960. Based on analysis of 1960-2014 Census data.
[2] Alt, Mindy. 2016. Housing Landscape 2016. National Housing Conference, Center for Housing Policy. http://media.wix.com/ugd/19cfbe_5eb6819b54454941ac58ce5b6aa38b9d.pdf.
[3] National Low Income Housing Coalition. 2016. Out of Reach, 2016. National Low Income Housing Coalition, Washington, DC. http://nlihc.org/sites/default/files/oor/files/reports/state/OOR_2016_NM.pdf.
[4] Sandel, M, J. Cook, A.c Poblacion, et al. 2016. Housing as a Health Care Investment. Washington, DC: National Housing Conference, Children's Health Watch. http://www.childrenshealthwatch.org/wp-content/uploads/Housing-as-a-Health-Care-Investment.pdf.
[5] About $28-29 million a year. MFA website
[6] Altogether, these programs have had about $1.3 million of state funds to spend in recent fiscal years, and do not begin to meet the need. MFA website.
[7] MFA website.
[8] Houstoun, Feather O. Integrating Affordable Housing with State Development Policy. 2004. Washington, DC: National Governors Association, Center for Best Practices. www.nga.org/files/live/sites/NGA/files/pdf/0411affordablehousing.pdf.
[9] Viveiros, Janet and Rebecca Cohen. 2013. Building Support for Affordable Homeownership and Rental Choices: A Summary of Research Findings on Public Opinion and Messaging on Affordable Housing, p. 2. Washington, DC: National Housing Conference, Center for Housing Policy. http://www.mayorsinnovation.org/images/uploads/pdf/2_-_Insights_center_for_housting_policy.pdf.


text:
Old Food
Isobel Harbison digests a prodigious performance of Ed Atkins's ode to excess
By Isobel Harbison
Nan Goldin at Marian Goodman Gallery, London
'Sirens is not a normal show for Goldin, since it has not been a normal year' – J.J. Charlesworth on the artist and activist's latest show
By J.J. Charlesworth
Art and Postcapitalism: Aesthetic Labour, Automation and Value Production
by Dave Beech | Pluto Press, £19.99 (softcover)
The Posthuman City at NTU Centre for Contemporary Art, Singapore
Are we just playing at being 'human'? asks Adeline Chia
By Adeline Chia
Embodiment at Mitchell-Innes & Nash, New York
Rahel Aima considers how the works of Pope. L, Jonathan Lyndon Chase, Cheyenne Julien and Tschabalala Self engage with identity, ancestry and sociopolitical issues
By Rahel Aima
The New MoMA, New York
Siona Wilson weighs up the long-awaited rehang of the museum's collection
By Siona Wilson
The Museum of Modern Art has long been seen as the artworld bastion of white male privilege. Its formalist story of modern art, as Carol Duncan argued in her 1989 essay 'The MoMA's Hot Mamas', presents a male spiritual quest fought out over the nude – often fragmented – bodies of lower-class women (models, prostitutes and lovers). It took a sizeable donation from a wealthy woman patron earmarked specifically for spending on exhibitions of women's work for MoMA, in 2009, to present the first solo show by a female painter, Marlene Dumas, in 30 years. The museum's historical record on racial diversity is just as awful. But not anymore, it seems. The new MoMA loudly asserts that it has put all this in the past.
The two modest solo exhibitions for the inaugural rehang are both by black artists. A long-overdue presentation of early work by the African American Betye Saar, best known for assemblage (but here we also discover her roots in printmaking), and an exhibition of paintings by the Nairobi-born Michael Armitage. The permanent collection – presented in the familiar three temporal chunks, 1880s–1940s, 1940s–1970s, 1970s–present – has been reshaped to foreground many more works by women artists and to gesture beyond a Euro/US-centric narrative. And a temporary exhibition of contemporary art, Surrounds: 11 Installations, includes artists from all the world's continents. It sometimes feels like the curators were shadowed by an equal-opportunities committee prodding them to include the correct quotas of this or that demographic. But given the institution's record, something seriously needed to shift. How these changes are implemented is not always successful, but on balance, it's stimulating to see fresh and less familiar works in dialogue with the canonical.
Betye Saar, Lo, The Mystique City, 1965, etching with embossing, 47 × 50 cm. © the artist. Courtesy the artist and Roberts Projects, Los Angeles
The effect of the architectural renovation feels very much like the old MoMA with more room to breathe. The surprise views out onto the city now also include open-air rest stops and interior viewing areas to sit and take in the layers of Midtown architecture. The major overhaul, however, is in the display of the works and the flow of the exhibition narrative.
Curators from all the divisions of MoMA collaborated to rethink the presentation of the permanent collection. The separate galleries dedicated to photography, book arts, architecture, design and prints and drawings have been overtaken to present a massive integrated permanent collection. A theatrical lighting rig has been built in one of the postwar galleries, suggesting that performance will also feature in exhibitions. But not yet. The sound sculptures by David Tudor currently occupying this space operate as conventional objects, while the eruption of live bodies in the dead museum remains to be seen.
The most daring changes to the integrated permanent collection are in the 1880s–1940s section, where Alfred Barr's formalist narrative long defined a linear evolution for modern art. We are no longer corralled into a single route from one gallery to the next – Cubism leads to Futurism, to Constructivism, etc – but at a certain crucial point in the interwar period the galleries divide, opening up a choice of alternative paths. As a rhetorical device, this works well in the 1880s–1940s, whereas in the 1940s–1970s spaces it seems more random, confused, suggesting a bland pluralism. The smaller contemporary segment, for its part, is less freighted by historical narratives of chronological progress, making the choice of different routes seem much more natural.
The 1880s–1940s galleries have been reshaped in the most conceptually rigorous and imaginative way, and a call to think history differently is also signalled in select interruptions by postwar work, mostly by women. We first encounter this in the gallery dedicated to Picasso's Les Demoiselles d'Avignon (1907). Hanging the African-American artist Faith Ringgold's American People Series #20: Die (1967) in this gallery was a high-stakes bet that paid off. Ringgold's blood-splattered scene of urban violence, showing white and black men and women, infant boys and girls, with limbs crisscrossed and entwined against a gridded grey ground, is a provocative and generative counterpoint to the MoMA masterpiece. The fate of Picasso's 1907 painting as modernist landmark is almost wholly indebted to the museum. Its first-ever public display was at MoMA when it opened in 1929. Since taking up a defining place in the museum's modernist narrative, Les Demoiselles has generated reams of pages of analysis that jostle to reconcile the painting's conflicting registers of sexual, pictorial and postcolonial meaning. While Ringgold's American People has a closer affinity with Picasso's Guernica (1937), which was on long-term loan to MoMA from 1939 to 81, it holds its own in the gallery and generates productive questions about how we encounter artworks in new ways at different historical moments.
Readymade in Paris and New York (Gallery 508), 2019 (installation view). Photo: Denis Doorly. Courtesy Museum of Modern Art, New York
In the gallery dedicated to Picasso's great rival, simply titled 'Henri Matisse', a repetition of this contrapuntal historical move is less successful. Although Alma Woodsey Thomas's Fiery Sunset (1973) offers an important continuity with the colourist preoccupations of Matisse's work during the early 1900s, the awkward corner position and relatively modest scale finds Thomas's painting visually diminished and its presence limited to pedestrian notions of influence.
The most significant shift in the master narrative of modern art happens before we encounter these gestures of feminist backtalk. We move from the Postimpressionist beginnings of Modernism into a gallery dedicated to early photography and film before arriving at Cubism. This is an important addition to the museum's larger narrative, and it is one of the most successfully curated individual galleries. The two acknowledged 'fathers' of photography, Louis Daguerre and William Henry Fox Talbot, are displaced in favour of the offbeat British French pairing of Anna Atkins and Hippolyte Bayard. The former produced the first photobook using the cyanotype process, and the latter's salt-print method became widely used, but his personal success was overshadowed by the showmanship and acumen of Daguerre. This gallery is not so much a didactic account of the story of photography's invention as a demonstration of the expansive and pervasive cultural impact of its heterogeneous deployment and use.
The moving image does not lend itself as easily to exhibition display, and the inclusion of segments from two early films, an 'actuality film', Interior N.Y. Subway, 14th street to 42nd street, from 1905 (a year after the subway opened) and the earliest existing film featuring African-American actors, the 1914 Lime Kiln Club Field Day (with famous blackface performer Bert Williams), can only really operate as placeholders for a complex yet untold story. Both film and photography have their own heterogeneous histories and they therefore remain subordinated here – or play colourful cameo roles – in a narrative where painting and sculpture are still the lead protagonists.
Artist's Choice: Amy Sillman – The Shape of Shape, 2019 (installation view). Photo: Heidi Bohnenkamp. Courtesy Museum of Modern Art, New York
While the anxious placement of wall plans to map routes through the 1940s–1970s galleries signals a less confident conceptual understanding of the new spatial flow, in the 1880s–1940s gallery, the segue back to the alternative path is beautifully resolved. This breach in art historical logic is definitively scrambled by a packed one-room temporary 'Artist's Choice' exhibition by the painter Amy Sillman. Titled The Shape of Shape, and combining a broad selection of works from across the whole collection according to an abstract formal category, it allows for playful juxtapositions of typically unrelated works in a layered three-dimensional arrangement. Breaking with conventional methods of display, with multiple images on the wall and others propped up on a two-tier platform in front, the display's effect is of a stylised storage area or a nineteenth-century gentleman-collector's study. As such it echoes the creative labour involved in rehanging the collection we have just encountered, including the confrontations with establishment masculinity. It also declares that the notion of formal affinities between works is not the sole property of a conservative masculine past but is how many artists think and make.
When I asked around prior to visiting the museum to write this review, the consensus among my art historical colleagues seemed to be that MoMA had abandoned art history. I do not think this is the case. The political present is indeed palpably felt in this earnest rebranding of the museum as a cultural statement against the ideology and values of Trump. At the same time, it is also a serious reckoning with its own institutional history of discrimination, with its own past. It will be interesting to see where MoMA goes from here.
The New MoMA, Museum of Modern Art, New York, from 21 October
From the December 2019 issue of ArtReview
Subscribe to ArtReview
Siona Wilson
ArtReview December 2019
Kameelah Janan Rasheed at Brooklyn Historical Society, New York
Megan N. Liberty listens to sound art inspired by the society's 'Muslims in Brooklyn' oral history collection
By Megan N. Liberty
Videobrasil at SESC 24 de Maio, São Paulo
Oliver Basciano on the representation of marginalised communities at Brazil's film-festival-turned-art-biennial – through 2 February
By Oliver Basciano
Liang Luscombe at Sutton Gallery, Melbourne
Rosemary Forde on the artist exploring racial and gendered stereotypes in film
By Rosemary Forde
Marcel Broodthaers at M KHA, Antwerp
Martin Herbert reads through the oeuvre of the late Belgian conceptualist, who dedicated his art to the undoing of constraining systems – through 19 January
By Martin Herbert
Soto. The Fourth Dimension at Guggenheim Bilbao
David Trigg on the kinetics of the late-Venezuelan artist – through 9 February
By David Trigg
Anna Maria Maiolino at Whitechapel Gallery, London
Rosanna Mclaughlin looks back on the elusive Brazilian pioneer's six-decade oeuvre – through 12 January
By Rosanna Mclaughlin
Song Dong at Pace Gallery, London
Valentina Bin munches her way through the Chinese artist's edible artwork
By Valentina Bin
Torbjørn Rødland at Kiasma, Helsinki
The artist's new photographs and videoworks make further steps into spirituality and esotericism, writes Mike Watson – through 5 January
By Mike Watson


Fitbit CFO Departs Next Week (NYSE: FIT) - 24/7 Wall St.
Wearables maker Fitbit Inc. (NYSE: FIT) is losing its chief financial officer to an unspecified autonomous-vehicle startup on June 15. Bill Zerella, who has held the post since 2014, will be replaced as CFO by Ron Kisling, currently the company's chief accounting officer.
Zerella told MarketWatch that the move is a "personal decision [that gives him] the opportunity to take an earlier-stage company toward rapid-stage growth in the future." He joined Fitbit about a year before the company's June 2015 initial public offering.
Over the past four years, Bill's passion and dedication to growing early stage companies were key enablers of Fitbit's transformation from a startup to the leading global brand it is today. We thank him for his countless contributions, including leading our successful IPO in 2015, guiding our worldwide expansion, and laying the foundation for our future success, and wish him all the best in his next endeavor.
That's not to say that Fitbit hasn't struggled since its IPO. The stock quickly jumped to nearly $48 a share before tumbling to an all-time low below $5 earlier this year. In the past 12 months, though, the stock has added about 17%, a larger gain than the S&P 500 for the same period.
The company began selling its Versa device a month ago and said on Tuesday that it has sold 1 million of the health and fitness-focused smartwatch since then. It is the company's fastest-selling device ever.
New CFO Kisling has been with Fitbit for nearly four years and was CFO of publicly traded semiconductor firm Nanometrics before coming to Fitbit.
Fitbit stock took a hit in early trading Wednesday, down more than 4.5% at $5.96. The stock's 52-week range is $4.51 to $7.32 and the 12-month consensus price target is $6.06.


Team Wilk AB is a consulting company that helps both large and small companies. We work with management services as well as consulting and training in IT, finance and ownership issues.
We also have open courses and events that are open for everyone.
Focus: financing and ownership issues.
Focus: Project and management issues.


text:
Martina Suchá (ur. 20 listopada 1980 w Nowych Zamkach) – słowacka tenisistka, reprezentantka w Fed Cup, olimpijka z Aten (2004).

Kariera tenisowa
Wygrała dwa turnieje singlowe z cyklu WTA (2002 Hobart i 2004 Québec) oraz trzy razy uczestniczyła w finałach.

Nie osiągnęła większych sukcesów w turniejach wielkoszlemowych. W Australian Open była w czwartej rundzie w 2002 roku, we French Open w drugiej (2001). Najwyżej sklasyfikowana na 37 miejscu w światowym rankingu w kwietniu 2002.

W 2004 zagrała na igrzyskach olimpijskich w Atenach. Odpadła w 1 rundach singla i debla kobiet, w grze podwójnej partnerując Ľubomíre Kurhajcovej.

Trenerami zawodniczki byli M. Mihal i Tomas Kampmiller. Ojciec, Henrich Suchý, i matka, Margita Suchá, są lekarzami. Brat, Marek, jest studentem ekonomii i gra w hokeja na lodzie. Lubi robić zakupy i czytać (ulubiony autor to Michal Viewegh). Ulubiony program telewizyjny to The Simpsons.

Dnia 15 lipca 2008 roku ogłosiła zakończenie profesjonalnej kariery tenisowej. Obecnie jest trenerką Chantal Škamlovej, swojej rodaczki, która wygrała deblowy Australian Open 2010 dziewcząt.

Finały w turniejach WTA

Gra pojedyncza (2–3)

Przypisy

Bibliografia

Ludzie urodzeni w Nowych Zamkach
Słowackie tenisistki
Słowaccy olimpijczycy
Uczestnicy Letnich Igrzysk Olimpijskich 2004
Urodzeni w 1980

redpajama_set_name: RedPajamaWikipedia


text:
'''
tunepk urlresolver plugin
Copyright (C) 2013 icharania
updated Copyright (C) 2017 gujal
updated Copyright (C) 2019 cache-sk

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
'''

import base64
import hashlib
import json
import time

from lib import helpers
from urlresolver import common
from urlresolver.resolver import UrlResolver, ResolverError

class TunePkResolver(UrlResolver):
    name = "tune.pk"
    domains = ["tune.pk", "tune.video"]
    pattern = '(?://|\.)(tune\.(?:video|pk))/(?:player|video|play)/(?:[\w\.\?]+=)?(\d+)'

    def __init__(self):
        self.net = common.Net()

    def get_media_url(self, host, media_id):
        web_url = self.get_url(host, media_id)
        apiurl = 'https://api.tune.pk/v3/videos/{}'.format(media_id)
        currentTime = time.time()
        x_req_time = time.strftime('%a, %d %b %Y %H:%M:%S GMT',time.gmtime(currentTime))
        tunestring = 'videos/{} . {} . KH42JVbO'.format(media_id, int(currentTime))
        token = hashlib.sha1(tunestring).hexdigest()
        headers = {'Content-Type': 'application/json; charset=utf-8',
                   'User-Agent': common.FF_USER_AGENT,
                   'X-KEY': '777750fea4d3bd585bf47dc1873619fc',
                   #'X-REQ-APP': 'web' #not needed, returning bullshit hash anyways
                   'X-REQ-TIME': x_req_time,
                   'X-REQ-TOKEN': token}
        try:
            response = self.net.http_GET(apiurl, headers=headers)
            jdata = json.loads(response.content)
            if jdata['message'] == 'OK':
                vids = jdata['data']['videos']['files']
                sources = []
                for key in vids.keys():
                    sources.append((vids[key]['label'], vids[key]['file']))

                sources.reverse() #because it is from worst to best?

                video_url = helpers.pick_source(sources)

                # hash recount
                serverTime = long(jdata['timestamp']) + (int(time.time()) - int(currentTime))
                hashLifeDuration = long(jdata['data']['duration']) * 5
                if hashLifeDuration < 3600:
                    hashLifeDuration = 3600
                expiryTime = serverTime + hashLifeDuration
                try:
                    startOfPathUrl = video_url.index('/files/videos/')
                    pathUrl = video_url[startOfPathUrl:None]
                except ValueError:
                    try:
                        startOfPathUrl = video_url.index('/files/streams/')
                        pathUrl = video_url[startOfPathUrl:None]
                    except ValueError:
                            raise ResolverError('This video cannot be played.')

                htoken = hashlib.md5(str(expiryTime) + pathUrl + ' ' + 'c@ntr@lw3biutun3cb').digest()
                htoken = base64.urlsafe_b64encode(htoken).replace('=', '').replace('\n', '')
                video_url = video_url + '?h=' + htoken + '&ttl=' + str(expiryTime)

                headers = {'Referer': web_url,
                           'User-Agent': common.FF_USER_AGENT}

                return video_url + helpers.append_headers(headers)
        except:
            raise ResolverError('This video has been removed due to a copyright claim.')

    def get_url(self, host, media_id):
        return self._default_get_url(host, media_id, template='https://tune.pk/video/{media_id}/')

redpajama_set_name: RedPajamaGithub


text:
IMMU Continues Ascent, IDXG On Fire, REGN's Kevzara Disappoints In COVID-19 Trial, BLFS On Watch
By RTTNews Staff Writer ✉ | Published: 7/3/2020 1:04 AM ET
Today's Daily Dose brings you news about BioLife Solutions' preliminary second-quarter revenue estimate; Immunomedics' immediate catalyst; Interpace Biosciences' stock price spike; MEI Pharma discontinuing Pracinostat trial in AML patients due to lack of efficacy and disappointing outcome from Regeneron/Sanofi's study evaluating Kevzara in COVID-19 patients.
1. BioLife's Q2 Revenue Defies Covid-19 Impact
Shares of BioLife Solutions Inc. (BLFS) were up over 12% in Thursday's trading, following better-than-expected revenue estimates for the second quarter of 2020.
The Company has announced preliminary revenue for the second quarter of 2020 of $9.6 million to $9.8 million, representing 43% to 46% growth over the same quarter in 2019. Wall Street analysts are expecting revenue of $8.52 million for the quarter.
BLFS closed Thursday's trading at $17.98, up 12.09%.
2. Immunomedics To Provide Clinical Update On Monday
Immunomedics Inc. (IMMU) is all set to provide a clinical update on Monday, July 6, 2020, at 8:00 a.m. Eastern Time.
The Company's lead product is TRODELVY (sacituzumab govitecan-hziy), which received accelerated FDA approval as recently as April, for the treatment of adult patients with metastatic triple-negative breast cancer (mTNBC) who have received at least two prior therapies.
Continued approval depends upon verification of clinical benefit in phase III confirmatory trial of Trodelvy in third-line mTNBC, dubbed ASCENT. The topline data readout from the ASCENT study is expected around mid-2020.
A phase III study of Trodelvy in hormone receptor-positive, human epidermal growth factor receptor 2-negative metastatic breast cancer, known as TROPiCS-02, is underway.
Trodelvy is also being tested in a phase II trial in stage IV urothelial cancer after failure of a platinum-based regimen and/or anti-PD-1/PD-L1-based therapies, dubbed TROPHY U-01.
IMMU touched a new 52-week high of $37.69 in intraday trading before closing at $37.54, up 1.71%. In after-hours, the stock was up 3.89% at $39.00.
3. Interpace Biosciences On Fire
Interpace Biosciences Inc. (IDXG) has developed COVIANT, a qualitative blood test for the detection of IgG antibodies against SARS-CoV-2 in human plasma and serum.
According to the Company website, the test has not been reviewed by the FDA but its availability and performance have been determined to be appropriate with Emergency Use Authorization approval granted to the kit manufacturer, EUROIMMUN US, Mountain Lakes.
Historically, the Company has been providing molecular diagnostics, bioinformatics, and pathology services for evaluation of the risk of cancer. ThyGeNEXT for the diagnosis of thyroid cancer from thyroid nodules utilizing a next-generation sequencing assay; ThyraMIR for the diagnosis of thyroid cancer from thyroid nodules utilizing a proprietary gene expression assay; PancraGEN for the diagnosis and prognosis of pancreatic cancer from pancreatic cysts and RespriDX that differentiates lung cancer of primary vs. metastatic origin are the Company's four commercialized molecular tests. One test is also in clinical development and it goes by the name BarreGEN for Barrett's Esophagus.
COVIANT, the serology antibody ELISA testing for COVID-19, was developed in response to customer interest.
IDXG closed Thursday's trading at $6.14, up 39.23%. In after-hours, the stock was up another 11.07% at $6.82.
4. MEIP/Helsinn Pull The Plug On Pracinostat Trial In AML Patients
Shares of MEI Pharma Inc. (MEIP) tumbled on Thursday after the Company's decision to discontinue the ongoing phase III study of Pracinostat in combination with chemotherapy drug Vidaza (azacitidine) in patients with Acute Myeloid Leukemia who are unfit to receive standard intensive chemotherapy.
In August 2016, MEI Pharma licensed Pracinostat to Helsinn, a Swiss pharmaceutical group, in Acute Myeloid Leukemia and other indications, including MDS.
The decision to discontinue the trial was based on the Independent Data Monitoring Committee's interim futility analysis that has demonstrated the study was unlikely to meet the primary endpoint of overall survival compared to the control group.
However, patients currently enrolled in other Pracinostat studies will continue treatment, noted the companies.
MEIP closed Thursday's trading at $3.49, down 18.27%.
5. Regeneron/Sanofi's Arthritis Drug Kevzara Disappoints In COVID-19 Trial
Regeneron Pharmaceuticals Inc. (REGN) and Sanofi (SNY) on Thursday announced that their U.S. phase III trial of arthritis drug Kevzara 400 mg in COVID-19 patients requiring mechanical ventilation did not meet its primary and key secondary endpoints when Kevzara was added to best supportive care compared to best supportive care alone (placebo). Moreover, adverse events were experienced by 80% of COVID-19 patients treated with Kevzara and 77% of placebo patients.
Based on the disappointing outcome, the U.S.-based trial of Kevzara in COVID-19 patients has been stopped.
A separate phase II/III trial led by Sanofi outside of the U.S. in hospitalized patients with severe and critical COVID-19 using a different dosing regimen is ongoing. The companies expect to report the results of this trial outside of the U.S. this quarter (Q3, 2020).
Kevzara is an approved drug for rheumatoid arthritis and it is being tested for repurposing to treat COVID-19 based on data from a single-arm study in China suggesting that the interleukin-6 pathway may play an important role in the overactive inflammatory response in the lungs of patients with COVID-19. Kevzara is also an interleukin-6 (IL-6) receptor antagonist.
REGN closed Thursday's trading at $622.45, up 2.18%. In after-hours, the stock was down 1.54% at $611.
6. Stocks That Moved On No News
MTBC Inc. (MTBC) closed Thursday's trading at $9.55, up 12.88%.
Applied Genetic Technologies Corp. (AGTC) closed Thursday's trading at $6.43, up 10.29%.
Rocket Pharmaceuticals Inc. (RCKT) closed Thursday's trading at $22.55, up 10%.
Liminal BioSciences Inc. (LMNL) closed Thursday's trading at $16.75, down 26.50%.
Qualigen Therapeutics, Inc. (QLGN) closed Thursday's trading at $4.10, down 10.28%.