text:
Q: Lof JSliderNews jQuery - how to pause on hover? jQuery(function($) {

            var buttons = {
                 previous: jQuery('#lofslidecontent45 .lof-previous'),
                 next: jQuery('#lofslidecontent45 .lof-next')
             };

            window.setTimeout(function(){
         $obj = jQuery('#lofslidecontent45').lofJSidernews({
                 interval: 4000,
                 direction: 'opacitys',
                 easing: 'easeInOutExpo',
                 duration: 1200,
                 auto: true,
                 maxItemDisplay: 3,
                 navPosition: 'horizontal', // horizontal
                 navigatorHeight: 40,
                 navigatorWidth: 70,
                 mainWidth: 1000,
                 buttons: buttons,
                 isPreloaded:false
                });
            },500);

         });

How to configure pause on hover?
is there any reference for this slider?
or is there any option like hover: stop?

A: there is no such config like hover: "stop".
But if you look in the actual .js file, you will find
$( obj ).hover(function(){
    self.stop();
    $buttonControl.addClass("action-start").removeClass("action-stop").addClass("hover-stop");
}, function(){
    if( $buttonControl.hasClass("hover-stop") ){
        if( self.settings.auto ){
            $buttonControl.removeClass("action-start").removeClass("hover-stop").addClass("action-stop");
                self.play( self.settings.interval,'next', true );
        }
    }
} );

That means, hover stop functionality is default there.


Must be patient to maximize the learning potential of children and adults of all levels and abilities.
Additional criteria apply depending on whether you are a qualified teacher, a university graduate or a university student.
^ If you are not a citizen of Australia or New Zealand, you will be required to give us permission to perform a Visa Eligibility Verification Online (VEVO) check so that we can establish your work rights in Australia before we can employ you.


The pleasures of a Tuscan country villa. That's Brio — home to "La Dolce Vita" (the good life). Brio offers fresh ingredients, simply prepared. From homemade pastas to fine steaks to specialties in a wood-burning oven.


text:
Loving neighbor is mission of Catholic Charities volunteers
Among those recognized for years of service during the Catholic Charities Indianapolis volunteer dinner on May 16 at the Archbishop Edward T. O'Meara Catholic Center in Indianapolis are: front row, Lorette Morgan, left, Iris Parrish, Sue Sandefur, Rita Tomson, Jessica Limeberry, Valerie Cook and Debbie Whitaker. Back row: Charlene Glawe, left, Margaret Voyles, Mike Parrish, Deacon Michael Braun, archdiocesan executive director of Catholic Charities David Bethuram, Robert Hughes, Tom Kueper and Jaqueline Pimentel-Gannon, president of the Catholic Charities Indianapolis Agency Council. (Photo by Mike Krokos)
By Mike Krokos
Rita Fortuna has been helping people for decades.
The member of SS. Peter and Paul Cathedral Parish in Indianapolis worked for the Social Security Administration (SSA) for 40 years, seeing firsthand how the office assisted people in need.
For the last nine years, she has volunteered at Catholic Charities Indianapolis' Crisis Office, where people in need come for food, clothing, financial assistance and other resources.
"I enjoy meeting the people," said Fortuna, who volunteers two days a week.
"I think [volunteering] is something a lot of people should do to find out who the people really are. Many people don't realize just how difficult these problems are."
Fortuna was among the Catholic Charities Indianapolis program volunteers honored during a dinner on May 16 at the Archbishop Edward T. O'Meara Catholic Center in Indianapolis.
During her career at SSA, Fortuna saw situations where people became disabled or retired—sometimes voluntarily and other times involuntarily—which led to them "ending up in bad situations."
"We see a lot of that also at the crisis office, … very bad situations," she said.
Fortuna noted that her commitment to helping her brothers and sisters in need started many years ago. "I've always been an advocate of social justice, going back to high school," she said, adding it was a big part of her college experience as well.
Deacon Michael Slinger and his wife Paula of Holy Spirit Parish in Indianapolis have a special place in their hearts for Holy Family Shelter, a ministry of Catholic Charities Indianapolis.
Deacon Slinger has volunteered there for 20 years, while Paula has assisted at the Indianapolis homeless shelter for families for the past three years.
While the couple enjoys assisting others in need, Deacon Slinger said his perspective has changed after an
eye-opening life lesson during his initial visit to the facility.
"When I first went there, I went on a tour through the whole building with Bill Bickel [the executive director], and as I'm going through I'm thinking, 'OK, I can fix that, I can take care of this,' and I'm thinking all these things I can do to make the place nicer," Deacon Slinger remembered.
"When we got back up to the front desk, [Bill] said, 'So, I'd like for you to sit here and push that button to open the door to let people in. If someone needs toilet paper or something, it's all right here, and here's a little script on how to answer the phone.'
"I started to tell him, 'I was thinking I could …' and he told me, 'No, I want you to sit here.' I was like, 'Oh, man.' "
Disappointed, Deacon Slinger told himself he'd go back one more time to volunteer, and if things weren't any better, he'd look for something else.
"When I came back, everybody on the staff was like, 'Oh, you're back. It's so good to see you again! You wouldn't believe how much we got done because you were here to take care of the phone and the door, and do this and that.' … It really made me feel valued, just being present."
Since being ordained in 2012, Deacon Slinger has also been able to assist through his ministry of charity at the shelter.
"A lot of people have come through who've had rough times, and so while I'm sitting at the desk I've been able to offer counseling through my diaconate training."
Through its mission of assisting people in need, Holy Family Shelter "is a wonderful place that does so much good for people that are struggling, helps them get back on their feet, and gets them moving in a good direction, and that's always heartwarming to see," Deacon Slinger said.
Retired and Senior Volunteer Program (RSVP) volunteers Ron and Paula Russell have turned their outreach into a family affair: Ron's sister Patti Merrill and her husband Bob also volunteer through RSVP, a Senior Corps program of the Corporation for National & Community Service that is managed in Marion County through Catholic Charities Indianapolis.
A recent retiree, Paula said, "It's always good to give back to the community."
"We enjoy meeting and helping people," added Ron.
The Russells volunteer at the Cathedral Soup Kitchen, while the Merrills offer a helping hand at Gleaners food pantry. Both agencies are in Indianapolis.
"We love giving," Patti Merrill said.
"And serving those who could use the help," Bob added.
Catholic Charities Indianapolis program volunteers are a committed group who take the Gospel mandate of loving their neighbors to heart, noted David Bethuram, archdiocesan executive director of Catholic Charities.
In thanking the volunteers for their commitment, Bethuram mentioned the appreciation dinner's Hawaiian theme, and also cited the Disney-based children's movies and TV show "Lilo & Stitch."
"In one of their movies, they talk about family. 'Ohana' is the word they use for family," he said. "It's not just immediate family. It's kind of the idea of family beyond that—it includes cousins and nephews, in-laws, neighbors and community.
"The reason I think you do what you do [through your volunteer efforts] is because you think of our community as family," Bethuram said. "Not only is your family your Church community and your neighborhood, but your wider community of Indianapolis. And what we do here, and how we go about doing the things that we do at Catholic Charities, you're part of that. You're part of our family, giving to the family that is also in need."
(To learn more about volunteer efforts with Catholic Charities Indianapolis, please visit its website, www.archindy.org/cc/indianapolis.) †
© Archdiocese of Indianapolis 2006-18 | 1400 N. Meridian Street, Indianapolis, IN 46202 | 800-382-9836

redpajama_set_name: RedPajamaCommonCrawl


text:
package br.jus.cnj.intercomunicacao_2_2;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;

/**
 *
Java class for tipoMovimentoProcessual complex type.
 *
 *
The following schema fragment specifies the expected content contained within this class.
 *
 *

 * <complexType name="tipoMovimentoProcessual">
 *   <complexContent>
 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       <sequence>
 *         <element name="complemento" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
 *         <element name="movimentoNacional" type="{http://www.cnj.jus.br/intercomunicacao-2.2.2}tipoMovimentoNacional" minOccurs="0"/>
 *         <element name="movimentoLocal" type="{http://www.cnj.jus.br/intercomunicacao-2.2.2}tipoMovimentoLocal" minOccurs="0"/>
 *         <element name="idDocumentoVinculado" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
 *       </sequence>
 *       <attribute name="dataHora" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       <attribute name="nivelSigilo" type="{http://www.w3.org/2001/XMLSchema}int" />
 *       <attribute name="identificadorMovimento" type="{http://www.w3.org/2001/XMLSchema}string" />
 *     </restriction>
 *   </complexContent>
 * </complexType>
 *

 *
 *
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "tipoMovimentoProcessual", propOrder = {
    "complemento",
    "movimentoNacional",
    "movimentoLocal",
    "idDocumentoVinculado"
})
public class TipoMovimentoProcessual {

    @XmlElement(nillable = true)
    protected List<String> complemento;
    protected TipoMovimentoNacional movimentoNacional;
    protected TipoMovimentoLocal movimentoLocal;
    @XmlElement(nillable = true)
    protected List<String> idDocumentoVinculado;
    @XmlAttribute(name = "dataHora")
    protected String dataHora;
    @XmlAttribute(name = "nivelSigilo")
    protected Integer nivelSigilo;
    @XmlAttribute(name = "identificadorMovimento")
    protected String identificadorMovimento;

    /**
     * Gets the value of the complemento property.
     *
     *

     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a set method for the complemento property.
     *
     *

     * For example, to add a new item, do as follows:
     *

     *    getComplemento().add(newItem);
     *

     *
     *
     *

     * Objects of the following type(s) are allowed in the list
     * {@link String }
     *
     *
     */
    public List<String> getComplemento() {
        if (complemento == null) {
            complemento = new ArrayList<String>();
        }
        return this.complemento;
    }

    /**
     * Gets the value of the movimentoNacional property.
     *
     * @return
     *     possible object is
     *     {@link TipoMovimentoNacional }
     *
     */
    public TipoMovimentoNacional getMovimentoNacional() {
        return movimentoNacional;
    }

    /**
     * Sets the value of the movimentoNacional property.
     *
     * @param value
     *     allowed object is
     *     {@link TipoMovimentoNacional }
     *
     */
    public void setMovimentoNacional(TipoMovimentoNacional value) {
        this.movimentoNacional = value;
    }

    /**
     * Gets the value of the movimentoLocal property.
     *
     * @return
     *     possible object is
     *     {@link TipoMovimentoLocal }
     *
     */
    public TipoMovimentoLocal getMovimentoLocal() {
        return movimentoLocal;
    }

    /**
     * Sets the value of the movimentoLocal property.
     *
     * @param value
     *     allowed object is
     *     {@link TipoMovimentoLocal }
     *
     */
    public void setMovimentoLocal(TipoMovimentoLocal value) {
        this.movimentoLocal = value;
    }

    /**
     * Gets the value of the idDocumentoVinculado property.
     *
     *

     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a set method for the idDocumentoVinculado property.
     *
     *

     * For example, to add a new item, do as follows:
     *

     *    getIdDocumentoVinculado().add(newItem);
     *

     *
     *
     *

     * Objects of the following type(s) are allowed in the list
     * {@link String }
     *
     *
     */
    public List<String> getIdDocumentoVinculado() {
        if (idDocumentoVinculado == null) {
            idDocumentoVinculado = new ArrayList<String>();
        }
        return this.idDocumentoVinculado;
    }

    /**
     * Gets the value of the dataHora property.
     *
     * @return
     *     possible object is
     *     {@link String }
     *
     */
    public String getDataHora() {
        return dataHora;
    }

    /**
     * Sets the value of the dataHora property.
     *
     * @param value
     *     allowed object is
     *     {@link String }
     *
     */
    public void setDataHora(String value) {
        this.dataHora = value;
    }

    /**
     * Gets the value of the nivelSigilo property.
     *
     * @return
     *     possible object is
     *     {@link Integer }
     *
     */
    public Integer getNivelSigilo() {
        return nivelSigilo;
    }

    /**
     * Sets the value of the nivelSigilo property.
     *
     * @param value
     *     allowed object is
     *     {@link Integer }
     *
     */
    public void setNivelSigilo(Integer value) {
        this.nivelSigilo = value;
    }

    /**
     * Gets the value of the identificadorMovimento property.
     *
     * @return
     *     possible object is
     *     {@link String }
     *
     */
    public String getIdentificadorMovimento() {
        return identificadorMovimento;
    }

    /**
     * Sets the value of the identificadorMovimento property.
     *
     * @param value
     *     allowed object is
     *     {@link String }
     *
     */
    public void setIdentificadorMovimento(String value) {
        this.identificadorMovimento = value;
    }

}

redpajama_set_name: RedPajamaGithub


text:
Meet the cast of Inspector George Gently
Martin Shaw, Lee Ingleby and Lisa McGrillis return for two more episodes, starring alongside guest actors from Poldark and Call the Midwife
By Eleanor Bley Griffiths
Inspector George Gently is back for two more episodes, which will be Martin Shaw's last-ever outings as the straight-laced copper before the detective series winds up for good. We have had eight series and now it's time to say goodbye.
The pair of episodes, titled Gently Liberated and Gently and The New Age, feature some familiar faces – but also guest stars who will help tell the story of Gently's final days in the North East Constabulary.
Here is everything we know about the characters you will see on screen:
Martin Shaw – George Gently
Who does he play? Inspector George Gently is an old-fashioned copper with a strong moral code who doesn't like to jump to conclusions about anyone. Before we met him he saw active service in the Second World War, met his wife Isabella and then worked as a Chief Inspector in London. At Isabella's funeral he handed in his notice, telling his superiors that he felt his dangerous job had resulted in his wife's murder. But during one final case in Northumberland, he met DS John Bacchus and decided to stay in the North East so he could take him under his wing. Now he is finally heading towards retirement, Gently is concerned about Bacchus and his other protege DS Rachel Coles – are they up to the job?
Where have I seen him before? Perhaps in Apparitions, Judge John Deed, Always and Everyone, cop drama The Chief, Rhodes or The Professionals. Back in the 60s he played Robert Croft on Coronation Street.
Lee Ingleby – John Bacchus
Who does he play? Bacchus is a talented and intelligent cop, but he doesn't always play but the book and he lacks Gently's patience. In fact, he will sometimes cut corners and even bend (or break) the law, and can be horribly bigoted and sexist. And when we meet him in the first of these two final episodes, he is a mess: drinking too much after the collapse of his marriage to Lisa, heartbroken, trying to bury his pain and acting extremely unprofessionally. It remains to be seen whether he can live up to Gently's expectations.
Where have I seen him before? Most recently you'll have seen him as Nick Huntley in Line of Duty. He has voiced Bob in Bob the Builder and has also been in Our Zoo, The A Word, The Five, The Street and Early Doors. Harry Potter fans may recognise him as Knight Bus conductor Stan Shunpike from Harry Potter and the Prisoner of Azkaban.
Lisa McGrillis – Rachel Coles
Who does she play? Rachel Coles, now a Detective Sergeant, was once a newcomer to the team but is now a settled member of the "three musketeers", even if she sometimes still gets sidelined. Book-smart and driven, ambitious and determined, she can be a little idealistic about her role. Coles genuinely believes in justice and makes Gently question his paternalistic attitudes. Previously she has had an antagonistic relationship with Bacchus who wants to put her in her place as a woman, but now Bacchus is so low even Rachel is concerned about him.
Where have I seen her before? Lisa McGrillis played Kelly in the TV series Mum. She has also been in Hebburn, Much Ado About Nothing and The Pass.
Lee Ingleby
Lisa McGrillis
Inspector George Gently
Why Mum's Lisa McGrillis deserves a comedy award ASAP
Fans react with dismay to BBC axing of The Coroner – but writer says it may live on
All about Inspector George Gently
Meet the cast of Line of Duty series four
Why is the final Inspector George Gently episode not airing next Sunday?


Vidya Mandir Senior Secondary School, Chennai was promoted in 1956 as a kindergarten school for boys under the aegis of the Members of the Mylapore Ladies Club (MLC) by the founder principal, Sister Subbalakshmi. The school became co-educational in 1978. It is affiliated with the Central Board of Secondary Education (CBSE), New Delhi and offers education from lower kindergarten (LKG) to class XII. The school maintains a high faculty-student ratio of 1:21, thereby facilitating individual attention to each student.
The school campus hosts a well-stocked library with approximately 10,000 books, classrooms equipped with interactive smart boards, audio-visual facility and LCD projector, and fully equipped math, science and English language lab. The school also offers a special learning centre to help children with learning difficulties.
The school is affiliated with CBSE and offers classes from LKG to class XII. The academic year commences in. Pre-primary has five sections, each with a maximum capacity of 30 students. Classes from I to XII have four sections with a maximum capacity of 38 students per section. The school lays emphasis on holistic development of the students; examinations are not conducted at the primary level to make learning interesting and less stressful.
Extracurricular: The school offers a range of extracurricular activities such as scouts, yoga, dance, music and karate. It also promotes sports such as football, cricket, volleyball, basket ball and athletics and encourages club activities, namely nature club, heritage club, science club, and literary and dramatics club.
Application forms are available in the school office. For the admission to LKG, students must have completed 3 years of age as on March 31 of the year of admission. Entrance test is conducted for admission to UKG and above and admissions are subject to vacancies. 25 percent of the seats are reserved for the economically weaker section.
Fees: The annual tuition fee varies from Rs. 3000 to Rs. 10,000. Detailed fee structure is available on request from the school.
The school lays emphasis on holistic development of the students; examinations are not conducted at the primary level to make learning interesting and less stressful.


Fears are growing for wildlife in Horsham Park following pollution of the park's pond after a diesel spillage yesterday.
Wildlife experts rescued a female swan from the pond but there are fears for the welfare of a male which flew off after reportedly spending a long time in the polluted water.
Only two moorhens were spotted this morning at the pond - normally home to dozens of ducks as well as the swans.
The diesel spillage, thought to have come from Horsham Hospital, is the second park pollution incident within a year.
John Potts of the Swans and Friends Bird Rescue organisation rescued the female swan from the pond yesterday and took her to the group's bird welfare centre at Shepperton for treatment.
"But," he said, "we don't know where the male is. We nearly caught him last night but he jumped into the water too quickly before flying off.
But concerns over wildlife in the park were expressed by the campaign group the Friends of Horsham Park. Chairman Sally Sanderson said the diesel had 'come from Horsham Hospital's generator as a result of a fault, following a power outage'.
A spokesman for Southern Water said today: "We were very happy to work alongside Horsham District Council, the Environment Agency and other parties to help trace the source of the pollution, which was quickly identified and was in no way related to our networks or any of our assets.
"In addition, we offered to help out with the clean-up operation, which has involved putting down oil absorbent pads and booms to help prevent the oil entering the nearby watercourse.
A spokeswoman for the RSPCA animal charity, whose head office is at Southwater, said: "The news about diesel spill pollution in a Horsham pond sounds worrying but so far, we have not received any reports about it.


text:
tabletmag.com Go back Open original
Historical narratives are built around artifacts—preserved and frail relics from past epochs. Mythology erupts in the absence of such relics, and it is the sort of absence that doesn't let one alone. Celebrating its first centennial this year, the Jewish Archive at the Vernadsky Library in Kiev is, perhaps, one of the oddest crossroads of history and mythology: It is filled with incredible artifacts of the Eastern European Jewish past, and yet, it hangs suspended within a cognitive void, in the absence of the community that engendered these artifacts. Growing up in Ukraine, the notion that there may exist a Jewish archive never once crossed my mind, for I simply knew nothing about the material culture such an archive might contain.
The original filing system of the archive, containing records and descriptions of its holdings, was demolished by the KGB, and its demise, in a way, mirrored the demise of access to knowledge of Judaism for people like me. Even today, there are only a limited number of scholars privy to the collection's riches. The library has thus become a Borgesian establishment, the sort that engenders, or even necessitates, myth.
I set out to visit the library to learn more about its musical archive—a huge set of Jewish vocal and instrumental recordings from the early decades of the 20th century. It is mind-boggling that long before any serious recording technology was invented, without much funding or publicity, groups of ambitious scholars set out on ethnographic expeditions into the heartland of the Ukrainian shtetl world, aiming to capture the community's folklore, and amassed a treasure trove of material. In recent years, these fragile, virtually unknown recordings were digitized and released in CD format. There are currently nine volumes of music out, with the three latest volumes released just within the past year. These most recent discs included the 1930s recordings of "Jewish Agricultural Colonies of the Southern Ukraine" and, oddly, a 1913 collection of fieldwork conducted in the Jewish communities of Palestine.
Kiev changed a great deal since my last visit, over a decade ago. One can feel the weight of the bloody civil unrest that still continues in the East. There are new monuments and banners, including the ubiquitous: "Ukraine is Europe!" And indeed, clean streets, fancy department stores, flashing advertising signs, cute coffee shops teeming with chattering, colorful crowds seem far more Western than anything I have ever seen in Ukraine.
Dr. Iryna Sergieieva holding a wax cylinder once used in recording. (Photo: Jake Marmer)
The Vernadsky Library, however, is something of a throwback. Dr. Iryna Sergieieva, head of the Judaica Department within the National Library's Manuscript Institute, and one of the scholars involved in the production of the digitized audio materials, warmly greeted me on the library's steps. As I went through lengthy loops of paperwork that would allow me to cross the library's threshold, Sergieieva ironically referred to the establishment as a konvserva: a witty play on words, which at once implies a conservatively-administered place, but also means canned fish—a wonderful way to describe an archive. Stout and dour female guards, who would do well in a dramatization of anything written by Kafka, sized me up as I produced documentation and solicited help in filling out the forms.
The library was built just before World War I. Smirking, Sergieieva explained that if there ever were renovations done to the building, they probably occurred around the time of the Soviet Revolution. Certainly, not much by way of upkeep has occurred since. The building breathes out a certain decaying chic, familiar to every dweller of the large, older cities across the former Soviet Union: gorgeous architectural detail, tall ceilings, intricate statuettes at the top of the staircase—and at the same time, peeling walls and cracked flooring. The mind goes in three directions at once: imagining the lost world that produced the beauty; taking in the accumulation of squalor; admiring the people, like Sergieieva, who, despite it all, keep the place going.
As I walked upward and proceeded through a series of musty hallways, dark despite the afternoon sun outside, something clicked in my mind. The audio recordings, released by the archive, are oddly similar to this very building: They are magnificent, but to experience that magnificence the mind needs to leap past the façade, past the crackling noise of poor recording technology, filling the gaps with one's own imagination. "Knowing is nothing at all," wrote Anatole France, "but imagining is everything."
For someone spoiled by immaculate 21st-century audio recordings, listening to century-old fieldwork is no easy feat. These recordings are not entertaining: You can't put them on as a backdrop while you cook dinner, or drive to the beach with friends. Instead, one needs a bit of solitude and a pair of noise-cancelling headphones. Also, a little light—just enough to follow the meticulous liner notes, culled from the original manuscripts of scholars, who collected the material. These notes indicate the year and location of the recording, name of the performer, performer's vocation, and even, at times, the music's source—whether it was learned from a music teacher, or a rabbi, or a relative.
The first 10 or 15 minutes of every listening period felt very bumpy, but once I plowed through, something started to shift. It didn't matter that I don't understand Yiddish, and that my Ukrainian has gotten rusty. These voices offered a portal into the immensity of a vanished world, which suddenly became real to me. As I listened further, it started to gnaw at me, to descend on me with heaviness and emotion. It was a world, vastly different from ours—technologically, spiritually, socially—and yet, somehow very recognizable and familiar. It is a world of voices—cheerful and mournful, pious and indignant, skillful and amateurish—that belonged to Ashkenazi Jews who, as they sang, were headed toward the decades of pogroms, Stalin's repressions, war and extermination, followed by more repression, and finally by the absence of nearly everything that came before.
The Jewish Archive was started back in 1918, and in those early days, Sergieieva told me, many of the early "acquisitions" that came in were the konfiskat—i.e., items confiscated from the wealthy, along with other private property that changed hands in the course of the post-Revolutionary activity. And then there were also the "library babushkas": older folks who watched out for abandoned private libraries of those escaping the Soviet regime, or for the closing down of synagogues and study houses. They would quickly drag the items over to the library to prevent looting—at times, endangering themselves in the process.
The archive's holdings expanded dramatically in the 1930s, when it received a large shipment from Saint Petersburg's Jewish Museum—a shipment that includes materials assembled by the legendary writer-anthropologist, S. Ansky, most famous as the author of The Dybbuk, perhaps the most successful Yiddish play ever produced. Written during an expedition into Ukrainian shtetls, the play incorporates a wild diversity of forms from within the Jewish discourse—references to the Bible, Talmud, and Hasidic lore; songs and niggunim; jokes and tall tales. At the center of the play is a love story gone wrong, and a supernatural tale of possession of the female protagonist by the disembodied spirit (the dybbuk) of her beloved, who died before his time.
Ansky, like other anthropologists of the early 20th century, used wax cylinders for the recording. The cylinders work in a manner similar to vinyl discs, with a needle moving in a groove to produce sound. The recorder was an unthinkably sophisticated piece of machinery in those days. The image of the dybbuk is wrought with symbolism—the haunting disembodied voice is also the voice of the past, of history and testimony, of anger and injustice. One can't help but wonder if the inspiration for the play's central motif came from Ansky's experience of being surrounded by the disembodied voices of his newly made recordings.
These recorded voices are all the more haunting today. After hearing, in the privacy of one's own headphones, someone from 100 years ago—enthusiasm, resignation, fervor—it is hard not to mythologize the whole person the voice belonged to. And if you do that, don't you somehow allow that person, that lost memory into your psyche? It is utterly unlike listening to any other sort of music: Hearing the singers' voices I felt that I owe them something—though I have a hard time articulating just what that something might be.
After listening to a few of the discs, I found myself coming back to one particular niggun, a wordless chant, sung by Meir Wiener, described in the liner notes as a "literary critic, 40 years old." The notes also indicated that Meir, who lived in Kiev at the time of the recording, "adopted this song from his older uncle in Krakow." It is a beautiful, dark and slow niggun, sung in a deep, pleasant baritone.
Undoubtedly, my interest in the track had something to do with the fact that I myself also happen to be a 40-year-old Eastern European-born literary critic. But it is also true that Meir could carry a tune better than any literary critic I know. For a while, I tried to picture this character in my mind—this literary scholar, who also enjoyed mystical chanting. What sorts of aesthetics did he lean toward? What made him leave Krakow? Did the mystical chanting impact his readings of literary texts?
On a whim, I googled the name. To my surprise, I learned that Meir Wiener left a substantial body of work that goes beyond this single recording. YIVO Archive has a dedicated page for him, and he is also the subject of a whole scholarly edition, From Kabbalah to Class Struggle: Expressionism, Marxism, and Yiddish Literature in the Life and Work of Meir Wiener. I also learned that Wiener perished in battle in 1941, not long after he enlisted as part of the Moscow Writers Battalion.
Wiener's niggun is one of many tracks collected by the musicologist Moyshe Beregovsky in the 1920s and '30s. His recordings are the gem of the collection, offering stunning democratic diversity—you get to hear voices of the elderly and children, intelligentsia and street beggars, teachers in the deep provinces, and imprisoned criminals in an Odessa jail. Beregovsky's careful annotations are also incredible in their level of detail and precision.
Among over 150,000 items in Kiev's Jewish Archive, there is a total of 1,017 audio cylinders. And there probably would have been a great deal more—but the archive was shut down by the KGB in the early 1950s as part of the attempt to get rid of "rootless cosmopolitans" through a thinly veiled government-sponsored anti-Semitic initiative aimed at erasing any trace of Jewish ethnocultural or political particularity.
I innocently asked Sergieieva why the KGB went after the Jews and their archive. She retorted with familiar sarcasm: "Because Jews were bad! Whose fault is it—always and for everything?" It was then that the KGB destroyed the filing system that contained the descriptions of the archive's holdings. The holdings themselves, however, were saved—even the books, which were decreed destruction-worthy. Sergieieva told me that by pure chance (or was it guile?) Jewish books were stored along with unwanted backlist publications of Communist propaganda, which functioned perhaps as a kind of camouflage.
Occasionally, another fervent KGB commission would decide to destroy the archive's books. And then, Sergieieva tells me, "these library babushkas—they were not necessarily Jewish, even—simply library folk, would block the way and threaten to report to higher authorities. They simply wouldn't allow a book to be destroyed, not for anything. They would tell the KGB: 'Are you trying to destroy the works of Marx, stashed here?' And KGB would go away."
When Ukraine became an independent nation in the 1990s, the archive was finally reopened. As a historian, Sergieieva was interested in reconstructing not only the archive itself, but also the list of individuals, who were involved with it—but she couldn't locate any relevant records. She told me: "I went through everything, all of the documents, but there was not a single last name there. And then, among a random stack of papers, a little scrap … and a wondrous find. It said: 'The list of employees of the Department of Jewish Literature … who received soap.' That's how I found it. God bless the soap, and its absence in the Soviet times."
If there is a definition of ultimate cosmic irony, it probably has something to do with signing on to receive the government's allotment of soap, and being remembered, in history, through this one act.
In 1997, Leonid Kuchma, Ukraine's president of the time, was planning a visit to Israel—the first such official visit of a Ukrainian leader. The government asked the newly reopened archive to help provide a thoughtful gift. It was then that the first batch of cylinders was digitized, with the help of complex technology, invented from scratch just for this occasion. Since then, CDs have been released at a steady pace.
The very latest disc published by the archive is an outlier: It was recorded in Palestine, rather than in Ukraine. And although the disc is labeled "Hasidic Songs and Cantilations Recorded by Isaac Luria in Palestine (1913)," it most certainly is not a collection of Hasidic Songs—instead they are religious melodies of Sephardi immigrants from Yemen, Syria, Iran, and Iraq, among others. It strikes a particularly wonderful contrast with the two preceding discs of Beregovsky's recordings of fiery 1930s Communist songs from the "Jewish agricultural colonies of Southern Ukraine."
In the past decades, a number of musicologists and contemporary klezmer musicians mined the archives for inspiration. Michael Alpert, who recently received the NEA lifetime achievement award for his massive contribution to the worldwide renaissance of klezmer, wrote to me in an email: "Working with those remarkable materials has formed a major part of my artistic and scholarly life. For all of us researching and performing Yiddish traditional music, the Vernadsky collections are a time capsule, a window into Yiddish folk musical creativity as a living heritage in pre-WWII Eastern Europe."
Not all of the contemporary klezmer players are quite as effusive as Alpert, though. Once digitized, the cylinders are no longer played, and when it comes to lending the materials to the outside public, the rules are strict. Joshua Horowitz, klezmer virtuoso, and one of the co-founders of a superb neoklezmer outfit Veretski Pass, was teaching in Kiev back in the early 2000s. In an email to me, he recalled "feeling excited at finally being able to hear some of the rare cylinder recordings made by the leading light of Ukrainian Jewish musicology under Stalin, Moyshe Beregovsky. But after I entered the archive, my excitement soon turned to frustration at not being able to hear anything that hadn't already been digitized on the one CD that they had issued at the time." Apparently, Horowitz was invited to view the handwritten transcriptions, but was barred from accessing the actual sound recordings—which, to a performing musician would be far more relevant than note sheets. As he put it, "The feeling of pride by the archivists at being the stewards of such valuable cultural treasures was tempered by their bashfulness in being forced to admit that they couldn't offer more due to a policy over which they had no control. It wasn't their fault. The sound recordings were housed in a different location, carefully sheltered from nonemployee human beings. We all understood the irony of an institution calling itself a library when it vehemently insulates its property from human perusal, but were still asking, 'Nu, so who is it for, then?'"
It should be no surprise that after the decades-long weight of bureaucracy and secrecy, the archive has a ways to go in becoming an all-welcoming, full-access establishment. One can remain enthusiastic, knowing that terrific scholars continue to oversee the materials, and as it is, the release of the audio recordings in the digitized format feels somewhat miraculous. And yet that question—who is it all for?—is one that I continue to ponder.
I would like to say that these recordings exist for those mythic dybbuks, whose voices are captured on the recordings.
May their memory be a blessing.
You can help support Tablet's unique brand of Jewish journalism. Click here to donate today.
Jake Marmer is Tablet's Poetry Critic. He is the author of Jazz Talmud. His jazz-klez-poetry record Hermeneutic Stomp was released by the Blue Thread Music in 2013.


text:
Choose Your Newsletters
RNS Morning Report
`, placementNumber: 3, placementPosition: 'after' }
National Association of Evangelicals launches racial justice collaborative
The initiative comes at a time when other evangelical organizations have also attempted to work on race relations in long-term initiatives.
Mekdes Haddis, director of the National Association of Evangelicals' new Racial Justice & Reconciliation Collaborative. Photo courtesy of NAE
Adelle M. Banks
(RNS) — The National Association of Evangelicals has hired a director of its new Racial Justice & Reconciliation Collaborative, an initiative aimed at providing resources and training for churches in its 40 member denominations.
Mekdes Haddis, the new initiative's director, was hired for the full-time role a month ago after serving in church and nonprofit circles for more than a decade. She is working remotely from South Carolina for the Washington-based evangelical organization.
"I've talked with many NAE member organization leaders and have been excited to discover a great deal of self-awareness and earnest desire for reconciliation," she told Religion News Service in a statement. "There is a lot of synergy and commitment to the task."
In 2020, the NAE inaugurated Walter Kim, a Korean American theologian, as its new president. At the same Washington ceremony, John K. Jenkins Sr., the African American senior pastor of Maryland's First Baptist Church of Glenarden, was installed as chair of the NAE and former Wesleyan Church General Superintendent Jo Anne Lyon as vice chair.
Kim has made recent appearances at the Ethics and Public Policy's Faith Angle Forum and the Council for Christian Colleges & Universities International Forum at which he has spoken about the racial diversity of evangelicals.
RELATED: Stories of racism permeate 'Let's Talk' evangelical reconciliation kickoff event
In an interview after his remarks at the CCCU meeting, Kim said he hopes the collaborative will help religious institutions within and beyond the NAE "that want to take a next step from 'I've read this book' or 'I've seen this webinar.'"
Kim also said he hopes the collaborative will offer a place of respite for the "exhaustion" and
"a spiritual oasis of encouragement for people of color working in predominantly white institutions."
Walter Kim speaks at the 2022 International Forum of the Council for Christian Colleges & Universities on Feb. 11, 2022. RNS photo by Adelle M. Banks
In an article for Faithfully magazine four years ago, Haddis, an Ethiopian immigrant, addressed that exhausting experience, writing of her desire to "bring healing" to evangelical Christianity as she sought to preserve her cultural identity.
"For those interacting with me in the United States, especially those in the church, I represented a group of people from which they isolate themselves," she wrote in the article, titled "Embracing My Otherness in the US Evangelical Church."
"I discovered that I was first Black, second a female, third an immigrant, and lastly (if we got there) a Christian."
Haddis is author of the forthcoming book "A Just Mission: Laying Down Power and Embracing Mutuality."
The Lilly Endowment is providing $1 million to support the NAE's collaborative, which comes at a time when other evangelical organizations have also attempted to work on race relations in long-term initiatives.
Last year, World Vision U.S., an evangelical Christian humanitarian organization, completed what an executive there called "a one-year mutual learning journey towards a Biblical understanding of what it means to pursue racial justice."
In November, hundreds of evangelical Christians gathered at the Museum of the Bible to kick off the "Let's Talk" initiative to listen to stories of racism and make plans to build racial unity. It has continued through monthly Zoom meetings with leaders, including Jenkins, gathering in small group discussions.
"I do think that there is a constituency of people whose hearts are open to recognizing the need to address the tension and the division that's greatly in our country," said Jenkins, who credited Kim with creating the NAE's collaborative.
Kim, who also is a teacher in residence at Trinity Presbyterian Church in Charlottesville, Virginia, said in a statement that he expects NAE's new three-year commitment will last much longer.
"Of course, the NAE's commitment to racial justice and reconciliation expresses a belief that the Church should be deeply engaged in this work as a reflection of our beliefs," he said. "As such, it will be an ongoing aspect of our work."
This story has been updated to correct Walter Kim's role in his church.
RELATED: World Vision convenes yearlong racial justice initiative for church staffers
Donate to Support Independent Journalism!
Black ProtestantsChristianityEvangelicalFaithNewsProtestantRace & Religion
You've read 0 of 5 of today's most popular posts.
National Prayer Breakfast breaks from 'The Family' with new organization
The AP Interview: Pope says homosexuality not a crime
'Rosary beads? Yes. But crystals, no.': Catholic school counselor loses her job
'He Gets Us' organizers hope to spend $1 billion to promote Jesus. Will anyone care?
Hamline University faculty call on president to resign over handling of Islamic art
At Boston-area church, a theology lab tackles complex topics with humility, curiosity
35 Black churches to receive total of $4 million for preservation work
In 'God made a fighter' ad, DeSantis paves way to replace Trump as anointed one
Biden includes faith leaders in summit's charge to 'rise together against hate'
Don't want the government forgiving student loans? Then your church should.
Submit your photos to RNS


text:
« Action: war in the Middle East, and the "balanced budget amendment." | Main | Action: police training, and media consolidation. »
Around the table: the President is not America for the 443rd time, and other musings.
Louisiana and Minnesota legislators introduce anti-protest bills in the wake of protests over pipeline expansions in those states. And the Louisiana bill actually goes further than model ALEC "critical infrastructure" legislation in that you don't actually have to set foot on a pipeline site to go to jail. Again: if you have to pass laws to stifle protests, you've lost the argument. Adults admit when they lose arguments. I guess that means these legislators aren't adults. You know, just like our President.
Jessica Rich at Wired reminds us that -- in the wake of the news that 87 million Americans, not 50 million, may have had their personal info on Facebook compromised by Cambridge Analytica -- that we need basic internet privacy laws in America. Recall that Congress repealed FCC broadband privacy regulations in 2017 and a campaign ad may present itself: the Facebook scandal proves we need stronger privacy laws -- but your Republican Congressperson voted to gut federal privacy laws! Think Democrats will run that? Nah; running ads like that might make people think you'll actually work for them.
Alvin Chang at Vox draws a straight line from tax-cuts-for-the-rich in Oklahoma to the Oklahoma teachers' strike, now almost two weeks old. Over the last 14 years, the state legislature has cut the top bracket from 6.65% to 5%, which wound up depriving Oklahoma of some $350 million in annual education spending, such that Oklahoma kids now only go to school four days a week. You recall, no doubt, that tax-cuts-for-the-rich has put Kansas's public schools in peril, too, though at least Kansas didn't respond to hard economic times by sponsoring an "Oilfield Prayer Day," as Oklahoma did.
Ed Henry at Fox News may have won numerous plaudits for his unexpectedly scorching interview with EPA Administrator Scott Pruitt, but the network's other programs either a) ignored the interview or b) gave it as much pro-Administration spin as possible. And this is exactly how one would do evil propaganda -- put up the occasional negative report to say "see, we're not so bad," and then bury that negative report as deeply as possible on programming that gets the most eyeballs. It's rather similar to how they've been using Shepard Smith for years. Hell, it's how they've been using their internet reporting for years.
Finally, hot on the heels of two FBI raids of the office of our President's personal lawyer, our President calls the FBI raid "an attack on our country in the truest sense." If he has a serious point to make about, say, the way the FBI got its warrants for the raid, you'll never hear it underneath all his TEH UNFAIRNEZZ!!!! and TEH WITCH HUNTZ!!!! And one more time: the President is not America. I locate the greatness of America in our people and our traditions, not our President. Perhaps Dr. Johnson should have said that conflating yourself with your country is the last refuge of a scoundrel.
Posted at 03:32 AM in ALEC, around the table, Democrat weakness, education, free speech, internet privacy, tax cuts for the rich, taxes, the "liberal" media, waaaaah! | Permalink


To study the mechanism of the eNOS/NO system in Ginsenoside Rb1 against the intrinsic aging of mouse brain.
Female C57BL/6 mice were divided into three groups randomly: control group(4 months, n=12); model group(24 months, n=12) and drug group(24 months, n=12). In drug group, ginsenoside Rb1(20mg·kg-1·d-1) was injected into the mice abdominal cavity for 8 weeks, Control group and model group were peritoneal injection with the same amount of normal sodium. The eNOS and NO protein expression in hippocampus in each group are to be detected respectively in the methods of RT-PCR and Western blot. The senescent neuron was examined by the senescence-related beta galactosidase (SA-β-gal) staining.
Compared with the control group, the eNOS and NO mRNA and protein expression significantly decreased, but the number of SA-β-gal-positive cells significantly increased in the model group, However, after treated with Ginsenoside Rb1, the eNOS and NO mRNA and protein expression significantly increased, but the number of SA-β-gal-positive cells significantly decreased.
Ginsenoside Rb1 could mitigate the intrinsic aging of mouse brain. The anti-aging mechanism of ginsenoside Rb1 is closely related to its regulation of the eNOS/NO system.


Medical Negligence is a very complex area of law.
The effects on the person who has suffered as a result of an error in medical treatment can be catastrophic, and have lifelong consequences. In fact, in some cases the victim may not be in a position to pursue an action due to the severity of the injuries sustained. In such instances, it might fall to the partner, parent or close relative of the victim to bring proceedings to protect the victim's interest.
We are aware that this may be a traumatic time for you and your family. We will give you our considered opinion on whether you should pursue a claim in Court. We will advise you on what steps are required to take such a case as the procedures in ascertaining if someone has a claim are more complicated than they in other forms of personal injury litigation.
At our first meeting we will assess your case and will discuss with you the merits of bringing a case. We will then work with you in gathering information on the incident that led to the injury.
If you wish to discuss a potential claim for medical negligence with us please contact our Litigation Department at 021-4877390 to make an appointment.


In this role, you have the opportunity to turn data into information, information into insight and insight into driving key business decisions.
Data analyst responsibilities include conducting full life cycle analysis of quality and regulatory metrics. Will develop analysis and reporting capabilities. Monitor performance and quality control plans to identify improvements and to support the compliance effort of the Quality team.
Identify, analyze, and interpret trending reports to identify opportunities to improve quality and decrease cost.
Demonstrated expertise in managing complex analysis and implementing improvement projects.
Filter and "clean" data by reviewing computer reports, printouts, and performance indicators to identify issues.
BS in Data Analytics, Mathematics, Computer Science, Engineering, or equivalent.
Working at Philips is more than a job. It's a calling to create a healthier society through meaningful work, focused on improving 3 billion lives a year by delivering innovative solutions across the health continuum at http://www.philips.com/b-dam/corporate/corporateblog/2016/PhilipsChronicDisease_5.jpg . Our people experience a variety of unexpected moments when their lives and careers come together in meaningful ways. Learn more by watching this video .
To find out more about what it's like working for Philips at a personal level, visit the Working at Philips page at http://www.philips.com/a-w/careers/healthtech/working-at-philips/working-at-philips.html on our career website, where you can read stories from our employee blog at http://www.usa.philips.com/a-w/our-people/life-at-philips.html . Once there, you can also learn about our recruitment process at http://www.philips.com/a-w/careers/healthtech/philips-recruitment-process.html , or find answers to some of the frequently asked questions at http://www.philips.com/a-w/careers/healthtech/faq.html .


As FOCUS Fort Myers pediatric occupational therapists know, it's not just important to reduce plagiocephaly, but also because a baby who is always belly-up is much more likely to have delays in motor development. Babies who don't get the opportunity to work the whole upper half of their body (tummy time helps strengthen their head, neck and upper body muscles) are going to have a much tougher time tackling basic skills like lifting their head, turning over, sitting, crawling, reaching, walking and playing.
Important as it is, we know tummy time isn't necessarily fun time for everyone. Many parents hesitate to initiate tummy time because they are afraid. They want to keep their child safe from hitting their head or some other mishap). Some are concerned their child isn't just being fussy, but in real pain (stemming from colic or acid reflux) that seems worse when they're on their tummies. Others find that other carriers, holders, swings, etc. are just far more tempting of a convenient alternative.
Firstly, as long as your baby is on a firm, flat surface, you are present and paying attention and your baby is awake and alert, tummy time should be safe from the time your child is first born (ask your pediatrician if you have questions). Secondly, if your child is in genuine pain, that shouldn't be ignored. Discuss it with your child's doctor. Interestingly though, babies who have this diagnosis sometimes find the tummy-down posture preferable because it can be soothing. Finally, although "child containers" are convenient, they aren't great for your babies' physical, social, emotional and cognitive development. They're fine on occasion, but try to avoid the constant "container shuffle" if you can and give your child more of an opportunity to grow strong and explore the world around them.
Babies may not like tummy time because it creates sensory confusion. A large sense represented in a young brain is vestibular movement and body position. Especially when parents wait until their child is 4 or 5 months old before initiating tummy time, it can feel confusing for an infant.
Numerous studies show that when babies have more opportunity for free play on the floor, they'll hit their developmental milestones sooner. Babies on a flat or firm surface can move, extend, flex and grow stronger. They won't learn magically to roll if they're strapped to a seat all day.
Sometimes development milestones can be missed entirely, with lasting consequences. Studies have shown that babies who get regular tummy time from Day 1 tend to have better posture, seated attendance, hand-eye coordination, strength, aided digestion and development in certain muscles that could event eventually help with skills like handwriting.
Incorporate tummy time into things you and your baby are already doing, like changing diapers, applying lotion, drying with a towel after bath.
When you burp your child, lay him across your lap on his tummy.
Because it's never too late to start reading to your child, make tummy time story time!
If you have questions about tummy time for your infant, ask one of our experienced Fort Myers pediatric occupational therapists.


Understand the most common challenges faced by employers today, and explore the various courses of action that can be applied to address these challenges.
The 1-day workshop will be conducted using a mix of instructor-led sessions, case studies, and group activities.
Starting with the End in mind. What do we want to achieve? How is success defined?
This module introduces learners to the common challenges faced by employers. This module explains the most common problems faced by employers, and sets the context for the 3rd module.
This module explores the various possible causes of the HR issues faced by employers. Specifically, it investigates how various factors contribute to HR challenges, and the possible underlying causes.
SGD 449.40 (inclusive of 7% GST). Fees include 2 tea breaks and 1 lunch per person.
Group discounts are available for group sizes exceeding 12 participants.
The class size is intentionally limited to ensure an optimal experience for all participants. Book early to avoid disappointment.


Running Springs, CA: A man from San Bernardino was killed in a crash on Highway 330. The investigation report shows that the man driving a red Honda Civic tried to make a left turn, and lost control veering into the other vehicle, a great Honda Civic. Both Civics collided head on, and the man driving the red one passed away at the scene.
As a Laguna Niguel accident lawyer, we know that the time after your accident is a very delicate time. You may be feeling stressed, angry, etc. And that is completely understandable. That is why we are here to help you. We want to make sure that insurance adjusters are not taking advantage of you during this time. A Laguna Niguel accident lawyer in our office will never settle just for the quick buck. We will do everything in our power to make sure that you get the settlement that is adequate enough to cover all of your damages.
If you or someone you know has been injured in a car accident, please Laguna Niguel accident lawyer to set up your free consultation with one of our team members.


text:
using System;
using System.Collections.Generic;

using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

namespace Infiniminer
{
    public class InterfaceEngine
    {
        InfiniminerGame gameInstance;
        PropertyBag _P;
        SpriteBatch spriteBatch;
        public SpriteFont uiFont, radarFont;
        Rectangle drawRect;

        Texture2D texCrosshairs, texBlank, texHelp;
        Texture2D texRadarBackground, texRadarForeground, texRadarPlayerSame, texRadarPlayerAbove, texRadarPlayerBelow, texRadarPlayerPing, texRadarNorth;
        Texture2D texToolRadarRed, texToolRadarBlue, texToolRadarGold, texToolRadarDiamond, texToolRadarLED, texToolRadarPointer, texToolRadarFlash;
        Texture2D texToolDetonatorDownRed, texToolDetonatorUpRed, texToolDetonatorDownBlue, texToolDetonatorUpBlue;
        Texture2D texToolBuild, texToolBuildCharge, texToolBuildBlast, texToolBuildSmoke;

        Dictionary<BlockType, Texture2D> blockIcons = new Dictionary<BlockType, Texture2D>();

        public InterfaceEngine(InfiniminerGame gameInstance)
        {
            this.gameInstance = gameInstance;
            spriteBatch = new SpriteBatch(gameInstance.GraphicsDevice);

            // Load textures.
            texCrosshairs = gameInstance.Content.Load<Texture2D>("ui/tex_ui_crosshair");
            texBlank = new Texture2D(gameInstance.GraphicsDevice, 1, 1);
            texBlank.SetData(new uint[1] { 0xFFFFFFFF });
            texRadarBackground = gameInstance.Content.Load<Texture2D>("ui/tex_radar_background");
            texRadarForeground = gameInstance.Content.Load<Texture2D>("ui/tex_radar_foreground");
            texRadarPlayerSame = gameInstance.Content.Load<Texture2D>("ui/tex_radar_player_same");
            texRadarPlayerAbove = gameInstance.Content.Load<Texture2D>("ui/tex_radar_player_above");
            texRadarPlayerBelow = gameInstance.Content.Load<Texture2D>("ui/tex_radar_player_below");
            texRadarPlayerPing = gameInstance.Content.Load<Texture2D>("ui/tex_radar_player_ping");
            texRadarNorth = gameInstance.Content.Load<Texture2D>("ui/tex_radar_north");
            texHelp = gameInstance.Content.Load<Texture2D>("menus/tex_menu_help");

            texToolRadarRed = gameInstance.Content.Load<Texture2D>("tools/tex_tool_radar_red");
            texToolRadarBlue = gameInstance.Content.Load<Texture2D>("tools/tex_tool_radar_blue");
            texToolRadarGold = gameInstance.Content.Load<Texture2D>("tools/tex_tool_radar_screen_gold");
            texToolRadarDiamond = gameInstance.Content.Load<Texture2D>("tools/tex_tool_radar_screen_diamond");
            texToolRadarLED = gameInstance.Content.Load<Texture2D>("tools/tex_tool_radar_led");
            texToolRadarPointer = gameInstance.Content.Load<Texture2D>("tools/tex_tool_radar_pointer");
            texToolRadarFlash = gameInstance.Content.Load<Texture2D>("tools/tex_tool_radar_flash");

            texToolBuild = gameInstance.Content.Load<Texture2D>("tools/tex_tool_build");
            texToolBuildCharge = gameInstance.Content.Load<Texture2D>("tools/tex_tool_build_charge");
            texToolBuildBlast = gameInstance.Content.Load<Texture2D>("tools/tex_tool_build_blast");
            texToolBuildSmoke = gameInstance.Content.Load<Texture2D>("tools/tex_tool_build_smoke");

            texToolDetonatorDownRed = gameInstance.Content.Load<Texture2D>("tools/tex_tool_detonator_down_red");
            texToolDetonatorUpRed = gameInstance.Content.Load<Texture2D>("tools/tex_tool_detonator_up_red");
            texToolDetonatorDownBlue = gameInstance.Content.Load<Texture2D>("tools/tex_tool_detonator_down_blue");
            texToolDetonatorUpBlue = gameInstance.Content.Load<Texture2D>("tools/tex_tool_detonator_up_blue");

            drawRect = new Rectangle(gameInstance.GraphicsDevice.Viewport.Width / 2 - 1024 / 2,
                                     gameInstance.GraphicsDevice.Viewport.Height / 2 - 768 / 2,
                                     1024,
                                     1024);

            // Load icons.
            blockIcons[BlockType.BankBlue] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_bank_blue");
            blockIcons[BlockType.BankRed] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_bank_red");
            blockIcons[BlockType.Explosive] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_explosive");
            blockIcons[BlockType.Jump] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_jump");
            blockIcons[BlockType.Ladder] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_ladder");
            blockIcons[BlockType.SolidBlue] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_solid_blue");
            blockIcons[BlockType.SolidRed] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_solid_red");
            blockIcons[BlockType.Shock] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_spikes");
            blockIcons[BlockType.TransBlue] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_translucent_blue");
            blockIcons[BlockType.TransRed] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_translucent_red");
            blockIcons[BlockType.BeaconRed] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_beacon");
            blockIcons[BlockType.BeaconBlue] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_beacon");
            blockIcons[BlockType.Road] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_road");
            blockIcons[BlockType.None] = gameInstance.Content.Load<Texture2D>("icons/tex_icon_deconstruction");

            // Load fonts.
            uiFont = gameInstance.Content.Load<SpriteFont>("font_04b08");
            radarFont = gameInstance.Content.Load<SpriteFont>("font_04b03b");
        }

        public void RenderMessageCenter(SpriteBatch spriteBatch, string text, Vector2 pointCenter, Color colorText, Color colorBackground)
        {
            Vector2 textSize = uiFont.MeasureString(text);
            spriteBatch.Draw(texBlank, new Rectangle((int)(pointCenter.X - textSize.X / 2 - 10), (int)(pointCenter.Y - textSize.Y / 2 - 10), (int)(textSize.X + 20), (int)(textSize.Y + 20)), colorBackground);
            spriteBatch.DrawString(uiFont, text, pointCenter - textSize / 2, colorText);
        }

        private static bool MessageExpired(ChatMessage msg)
        {
            return msg.timestamp <= 0;
        }

        public void Update(GameTime gameTime)
        {
            if (_P == null)
                return;

            foreach (ChatMessage msg in _P.chatBuffer)
                msg.timestamp -= (float)gameTime.ElapsedGameTime.TotalSeconds;
            _P.chatBuffer.RemoveAll(MessageExpired);

            int bufferSize = 10;
            if (_P.chatFullBuffer.Count > bufferSize)
                _P.chatFullBuffer.RemoveRange(bufferSize, _P.chatFullBuffer.Count - bufferSize);

            if (_P.constructionGunAnimation > 0)
            {
                if (_P.constructionGunAnimation > gameTime.ElapsedGameTime.TotalSeconds)
                    _P.constructionGunAnimation -= (float)gameTime.ElapsedGameTime.TotalSeconds;
                else
                    _P.constructionGunAnimation = 0;
            }
            else
            {
                if (_P.constructionGunAnimation < -gameTime.ElapsedGameTime.TotalSeconds)
                    _P.constructionGunAnimation += (float)gameTime.ElapsedGameTime.TotalSeconds;
                else
                    _P.constructionGunAnimation = 0;
            }
        }

        public void RenderRadarBlip(SpriteBatch spriteBatch, Vector3 position, Color color, bool ping, string text)
        {
            // Figure out the relative position for the radar blip.
            Vector3 relativePosition = position - _P.playerPosition;
            float relativeAltitude = relativePosition.Y;
            relativePosition.Y = 0;
            Matrix rotationMatrix = Matrix.CreateRotationY(-_P.playerCamera.Yaw);
            relativePosition = Vector3.Transform(relativePosition, rotationMatrix) * 10;
            float relativeLength = Math.Min(relativePosition.Length(), 93);
            if (relativeLength != 0)
                relativePosition.Normalize();
            relativePosition *= relativeLength;

            // Draw the radar blip.
            if (text == "")
            {
                relativePosition.X = (int)relativePosition.X;
                relativePosition.Z = (int)relativePosition.Z;
                Texture2D texRadarSprite = texRadarPlayerSame;
                if (relativeAltitude > 2)
                    texRadarSprite = texRadarPlayerAbove;
                else if (relativeAltitude < -2)
                    texRadarSprite = texRadarPlayerBelow;
                spriteBatch.Draw(texRadarSprite, new Vector2(10 + 99 + relativePosition.X - texRadarSprite.Width / 2, 30 + 99 + relativePosition.Z - texRadarSprite.Height / 2), color);
                if (ping)
                    spriteBatch.Draw(texRadarPlayerPing, new Vector2(10 + 99 + relativePosition.X - texRadarPlayerPing.Width / 2, 30 + 99 + relativePosition.Z - texRadarPlayerPing.Height / 2), color);
            }

            // Render text.
            if (text != "")
            {
                relativePosition *= 0.9f;
                relativePosition.X = (int)relativePosition.X;
                relativePosition.Z = (int)relativePosition.Z;

                if (text == "NORTH")
                {
                    spriteBatch.Draw(texRadarNorth, new Vector2(10 + 99 + relativePosition.X - texRadarNorth.Width / 2, 30 + 99 + relativePosition.Z - texRadarNorth.Height / 2), color);
                }
                else
                {
                    if (relativeAltitude > 2)
                        text += " ^";
                    else if (relativeAltitude < -2)
                        text += " v";
                    Vector2 textSize = radarFont.MeasureString(text);
                    spriteBatch.DrawString(radarFont, text, new Vector2(10 + 99 + relativePosition.X - textSize.X / 2, 30 + 99 + relativePosition.Z - textSize.Y / 2), color);
                }
            }
        }

        public void RenderDetonator(GraphicsDevice graphicsDevice, SpriteBatch spriteBatch)
        {
            int screenWidth = graphicsDevice.Viewport.Width;
            int screenHeight = graphicsDevice.Viewport.Height;
            graphicsDevice.SamplerStates[0].MagFilter = TextureFilter.Point;

            Texture2D textureToUse;
            if (Mouse.GetState().LeftButton == ButtonState.Pressed || Mouse.GetState().MiddleButton == ButtonState.Pressed || Mouse.GetState().RightButton == ButtonState.Pressed)
                textureToUse = _P.playerTeam == PlayerTeam.Red ? texToolDetonatorDownRed : texToolDetonatorDownBlue;
            else
                textureToUse = _P.playerTeam == PlayerTeam.Red ? texToolDetonatorUpRed : texToolDetonatorUpBlue;

            spriteBatch.Draw(textureToUse, new Rectangle(screenWidth / 2 /*- 22 * 3*/, screenHeight - 77 * 3 + 14 * 3, 75 * 3, 77 * 3), Color.White);
        }

        public void RenderProspectron(GraphicsDevice graphicsDevice, SpriteBatch spriteBatch)
        {
            int screenWidth = graphicsDevice.Viewport.Width;
            int screenHeight = graphicsDevice.Viewport.Height;
            graphicsDevice.SamplerStates[0].MagFilter = TextureFilter.Point;

            int drawX = screenWidth / 2 - 32 * 3;
            int drawY = screenHeight - 102 * 3;

            spriteBatch.Draw(_P.playerTeam == PlayerTeam.Red ? texToolRadarRed : texToolRadarBlue, new Rectangle(drawX, drawY, 70 * 3, 102 * 3), Color.White);

            if (_P.radarValue > 0)
                spriteBatch.Draw(texToolRadarLED, new Rectangle(drawX, drawY, 70 * 3, 102 * 3), Color.White);
            if (_P.radarValue == 200)
                spriteBatch.Draw(texToolRadarGold, new Rectangle(drawX, drawY, 70 * 3, 102 * 3), Color.White);
            if (_P.radarValue == 1000)
                spriteBatch.Draw(texToolRadarDiamond, new Rectangle(drawX, drawY, 70 * 3, 102 * 3), Color.White);
            if (_P.playerToolCooldown > 0.2f)
                spriteBatch.Draw(texToolRadarFlash, new Rectangle(drawX, drawY, 70 * 3, 102 * 3), Color.White);

            int pointerOffset = (int)(30 - _P.radarDistance) / 2;  // ranges from 0 to 15 inclusive
            if (_P.radarDistance == 30)
                pointerOffset = 15;
            spriteBatch.Draw(texToolRadarPointer, new Rectangle(drawX + 54 * 3, drawY + 20 * 3 + pointerOffset * 3, 4 * 3, 5 * 3), Color.White);
        }

        public void RenderConstructionGun(GraphicsDevice graphicsDevice, SpriteBatch spriteBatch, BlockType blockType)
        {
            int screenWidth = graphicsDevice.Viewport.Width;
            int screenHeight = graphicsDevice.Viewport.Height;
            graphicsDevice.SamplerStates[0].MagFilter = TextureFilter.Point;

            int drawX = screenWidth / 2 - 60 * 3;
            int drawY = screenHeight - 91 * 3;

            Texture2D gunSprite = texToolBuild;
            if (_P.constructionGunAnimation < -0.001)
                gunSprite = texToolBuildCharge;
            else if (_P.constructionGunAnimation > 0.3)
                gunSprite = texToolBuildBlast;
            else if (_P.constructionGunAnimation > 0.001)
                gunSprite = texToolBuildSmoke;
            spriteBatch.Draw(gunSprite, new Rectangle(drawX, drawY, 120 * 3, 126 * 3), Color.White);
            spriteBatch.Draw(blockIcons[blockType], new Rectangle(drawX + 37 * 3, drawY + 50 * 3, 117, 63), Color.White);
        }

        public void drawChat(List<ChatMessage>messages, GraphicsDevice graphicsDevice)
        {
            int newlines = 0;
            for (int i = 0; i < messages.Count; i++)
            {
                Color chatColor = Color.White;
                if (messages[i].type == ChatMessageType.SayRedTeam)
                    chatColor = _P.red;// Defines.IM_RED;
                if (messages[i].type == ChatMessageType.SayBlueTeam)
                    chatColor = _P.blue;// Defines.IM_BLUE;

                int y = graphicsDevice.Viewport.Height - 114;
                newlines += messages[i].newlines;
                y -= 16 * newlines;
                //y -= 16 * i;

                spriteBatch.DrawString(uiFont, messages[i].message, new Vector2(22, y), Color.Black);
                spriteBatch.DrawString(uiFont, messages[i].message, new Vector2(20, y-2), chatColor);//graphicsDevice.Viewport.Height - 116 - 16 * i), chatColor);
            }
        }

        public void Render(GraphicsDevice graphicsDevice)
        {
            // If we don't have _P, grab it from the current gameInstance.
            // We can't do this in the constructor because we are created in the property bag's constructor!
            if (_P == null)
                _P = gameInstance.propertyBag;

            // Draw the UI.
            spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.SaveState);

            // Draw the crosshair.
            spriteBatch.Draw(texCrosshairs, new Rectangle(graphicsDevice.Viewport.Width / 2 - texCrosshairs.Width / 2,
                                                            graphicsDevice.Viewport.Height / 2 - texCrosshairs.Height / 2,
                                                            texCrosshairs.Width,
                                                            texCrosshairs.Height), Color.White);

            // If equipped, draw the tool.
            switch (_P.playerTools[_P.playerToolSelected])
            {
                case PlayerTools.Detonator:
                    RenderDetonator(graphicsDevice, spriteBatch);
                    break;

                case PlayerTools.ProspectingRadar:
                    RenderProspectron(graphicsDevice, spriteBatch);
                    break;

                case PlayerTools.ConstructionGun:
                    RenderConstructionGun(graphicsDevice, spriteBatch, _P.playerBlocks[_P.playerBlockSelected]);
                    break;

                case PlayerTools.DeconstructionGun:
                    RenderConstructionGun(graphicsDevice, spriteBatch, BlockType.None);
                    break;

                default:
                    {
                        // Draw info about what we have equipped.
                        PlayerTools currentTool = _P.playerTools[_P.playerToolSelected];
                        BlockType currentBlock = _P.playerBlocks[_P.playerBlockSelected];
                        string equipment = currentTool.ToString();
                        if (currentTool == PlayerTools.ConstructionGun)
                            equipment += " - " + currentBlock.ToString() + " (" + BlockInformation.GetCost(currentBlock) + ")";
                        RenderMessageCenter(spriteBatch, equipment, new Vector2(graphicsDevice.Viewport.Width / 2, graphicsDevice.Viewport.Height - 20), Color.White, Color.Black);
                    }
                    break;
            }

            if (gameInstance.DrawFrameRate)
                RenderMessageCenter(spriteBatch, String.Format("FPS: {0:000}", gameInstance.FrameRate), new Vector2(60, graphicsDevice.Viewport.Height - 20), Color.Gray, Color.Black);

            // Show the altimeter.
            int altitude = (int)(_P.playerPosition.Y - 64 + Defines.GROUND_LEVEL);
            RenderMessageCenter(spriteBatch, String.Format("ALTITUDE: {0:00}", altitude), new Vector2(graphicsDevice.Viewport.Width - 90, graphicsDevice.Viewport.Height - 20), altitude >= 0 ? Color.Gray : Defines.IM_RED, Color.Black);

            // Draw bank instructions.
            if (_P.AtBankTerminal())
                RenderMessageCenter(spriteBatch, "8: DEPOSIT 50 ORE  9: WITHDRAW 50 ORE", new Vector2(graphicsDevice.Viewport.Width / 2, graphicsDevice.Viewport.Height / 2 + 60), Color.White, Color.Black);

            // Are they trying to change class when they cannot?
            //if (Keyboard.GetState().IsKeyDown(Keys.M) && _P.playerPosition.Y <= 64 - Defines.GROUND_LEVEL && _P.chatMode == ChatMessageType.None)
            //    RenderMessageCenter(spriteBatch, "YOU CANNOT CHANGE YOUR CLASS BELOW THE SURFACE", new Vector2(graphicsDevice.Viewport.Width / 2, graphicsDevice.Viewport.Height / 2 + 90), Color.White, Color.Black);

            // Draw the text-based information panel.
            int textStart = (graphicsDevice.Viewport.Width - 1024) / 2;
            spriteBatch.Draw(texBlank, new Rectangle(0, 0, graphicsDevice.Viewport.Width, 20), Color.Black);
            spriteBatch.DrawString(uiFont, "ORE: " + _P.playerOre + "/" + _P.playerOreMax, new Vector2(textStart + 3, 2), Color.White);
            spriteBatch.DrawString(uiFont, "LOOT: $" + _P.playerCash, new Vector2(textStart + 170, 2), Color.White);
            spriteBatch.DrawString(uiFont, "WEIGHT: " + _P.playerWeight + "/" + _P.playerWeightMax, new Vector2(textStart + 340, 2), Color.White);
            spriteBatch.DrawString(uiFont, "TEAM ORE: " + _P.teamOre, new Vector2(textStart + 515, 2), Color.White);
            spriteBatch.DrawString(uiFont, _P.redName + ": $" + _P.teamRedCash, new Vector2(textStart + 700, 2), _P.red);// Defines.IM_RED);
            spriteBatch.DrawString(uiFont, _P.blueName + ": $" + _P.teamBlueCash, new Vector2(textStart + 860, 2), _P.blue);// Defines.IM_BLUE);

            // Draw player information.
            if ((Keyboard.GetState().IsKeyDown(Keys.Tab) && _P.screenEffect == ScreenEffect.None) || _P.teamWinners != PlayerTeam.None)
            {
                spriteBatch.Draw(texBlank, new Rectangle(0, 0, graphicsDevice.Viewport.Width, graphicsDevice.Viewport.Height), new Color(Color.Black, 0.7f));

                //Server name
                RenderMessageCenter(spriteBatch, _P.serverName, new Vector2(graphicsDevice.Viewport.Width / 2, 32), _P.playerTeam == PlayerTeam.Blue ? _P.blue : _P.red, Color.Black);//Defines.IM_BLUE : Defines.IM_RED, Color.Black);

                if (_P.teamWinners != PlayerTeam.None)
                {
                    string teamName = _P.teamWinners == PlayerTeam.Red ? "RED" : "BLUE";
                    Color teamColor = _P.teamWinners == PlayerTeam.Red ? _P.red : _P.blue;//Defines.IM_RED : Defines.IM_BLUE;
                    string gameOverMessage = "GAME OVER - " + teamName + " TEAM WINS!";
                    RenderMessageCenter(spriteBatch, gameOverMessage, new Vector2(graphicsDevice.Viewport.Width / 2, 150), teamColor, new Color(0, 0, 0, 0));
                }

                int drawY = 200;
                foreach (Player p in _P.playerList.Values)
                {
                    if (p.Team != PlayerTeam.Red)
                        continue;
                    RenderMessageCenter(spriteBatch, p.Handle + " ( $" + p.Score + " )", new Vector2(graphicsDevice.Viewport.Width / 4, drawY), _P.red, new Color(0, 0, 0, 0));//Defines.IM_RED
                    drawY += 35;
                }
                drawY = 200;
                foreach (Player p in _P.playerList.Values)
                {
                    if (p.Team != PlayerTeam.Blue)
                        continue;
                    RenderMessageCenter(spriteBatch, p.Handle + " ( $" + p.Score + " )", new Vector2(graphicsDevice.Viewport.Width * 3 / 4, drawY), _P.blue, new Color(0, 0, 0, 0)); //Defines.IM_BLUE
                    drawY += 35;
                }
            }

            // Draw the chat buffer.
            if (_P.chatMode == ChatMessageType.SayAll)
            {
                spriteBatch.DrawString(uiFont, "ALL> " + _P.chatEntryBuffer, new Vector2(22, graphicsDevice.Viewport.Height - 98), Color.Black);
                spriteBatch.DrawString(uiFont, "ALL> " + _P.chatEntryBuffer, new Vector2(20, graphicsDevice.Viewport.Height - 100), Color.White);
            }
            else if (_P.chatMode == ChatMessageType.SayBlueTeam || _P.chatMode == ChatMessageType.SayRedTeam)
            {
                spriteBatch.DrawString(uiFont, "TEAM> " + _P.chatEntryBuffer, new Vector2(22, graphicsDevice.Viewport.Height - 98), Color.Black);
                spriteBatch.DrawString(uiFont, "TEAM> " + _P.chatEntryBuffer, new Vector2(20, graphicsDevice.Viewport.Height - 100), Color.White);
            }
            if (_P.chatMode != ChatMessageType.None)
            {
                drawChat(_P.chatFullBuffer,graphicsDevice);
                /*for (int i = 0; i < _P.chatFullBuffer.Count; i++)
                {
                    Color chatColor = Color.White;
                    chatColor = _P.chatFullBuffer[i].type == ChatMessageType.SayAll ? Color.White : _P.chatFullBuffer[i].type == ChatMessageType.SayRedTeam ? InfiniminerGame.IM_RED : InfiniminerGame.IM_BLUE;

                    spriteBatch.DrawString(uiFont, _P.chatFullBuffer[i].message, new Vector2(22, graphicsDevice.Viewport.Height - 114 - 16 * i), Color.Black);
                    spriteBatch.DrawString(uiFont, _P.chatFullBuffer[i].message, new Vector2(20, graphicsDevice.Viewport.Height - 116 - 16 * i), chatColor);
                }*/
            }
            else
            {
                drawChat(_P.chatBuffer,graphicsDevice);
            }

            // Draw the player radar.
            spriteBatch.Draw(texRadarBackground, new Vector2(10, 30), Color.White);
            foreach (Player p in _P.playerList.Values)
                if (p.Team == _P.playerTeam && p.Alive)
                    RenderRadarBlip(spriteBatch, p.ID == _P.playerMyId ? _P.playerPosition : p.Position, p.Team == PlayerTeam.Red ? _P.red : _P.blue, p.Ping > 0, ""); //Defines.IM_RED : Defines.IM_BLUE, p.Ping > 0, "");
            foreach (KeyValuePair<Vector3, Beacon> bPair in _P.beaconList)
                if (bPair.Value.Team == _P.playerTeam)
                    RenderRadarBlip(spriteBatch, bPair.Key, Color.White, false, bPair.Value.ID);
            RenderRadarBlip(spriteBatch, new Vector3(100000, 0, 32), Color.White, false, "NORTH");

            spriteBatch.Draw(texRadarForeground, new Vector2(10, 30), Color.White);

            // Draw escape message.
            if (Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                RenderMessageCenter(spriteBatch, "PRESS Y TO CONFIRM THAT YOU WANT TO QUIT.", new Vector2(graphicsDevice.Viewport.Width / 2, graphicsDevice.Viewport.Height / 2 + 30), Color.White, Color.Black);
                RenderMessageCenter(spriteBatch, "PRESS K TO COMMIT PIXELCIDE.", new Vector2(graphicsDevice.Viewport.Width / 2, graphicsDevice.Viewport.Height / 2 + 80), Color.White, Color.Black);
            }

            // Draw the current screen effect.
            if (_P.screenEffect == ScreenEffect.Death)
            {
                Color drawColor = new Color(1 - (float)_P.screenEffectCounter * 0.5f, 0f, 0f);
                spriteBatch.Draw(texBlank, new Rectangle(0, 0, graphicsDevice.Viewport.Width, graphicsDevice.Viewport.Height), drawColor);
                if (_P.screenEffectCounter >= 2)
                    RenderMessageCenter(spriteBatch, "You have died. Click to respawn.", new Vector2(graphicsDevice.Viewport.Width / 2, graphicsDevice.Viewport.Height / 2), Color.White, Color.Black);
            }
            if (_P.screenEffect == ScreenEffect.Teleport || _P.screenEffect == ScreenEffect.Explosion)
            {
                Color drawColor = new Color(1, 1, 1, 1 - (float)_P.screenEffectCounter * 0.5f);
                spriteBatch.Draw(texBlank, new Rectangle(0, 0, graphicsDevice.Viewport.Width, graphicsDevice.Viewport.Height), drawColor);
                if (_P.screenEffectCounter > 2)
                    _P.screenEffect = ScreenEffect.None;
            }
            if (_P.screenEffect == ScreenEffect.Fall)
            {
                Color drawColor = new Color(1, 0, 0, 1 - (float)_P.screenEffectCounter * 0.5f);
                spriteBatch.Draw(texBlank, new Rectangle(0, 0, graphicsDevice.Viewport.Width, graphicsDevice.Viewport.Height), drawColor);
                if (_P.screenEffectCounter > 2)
                    _P.screenEffect = ScreenEffect.None;
            }

            // Draw the help screen.
            if (Keyboard.GetState().IsKeyDown(Keys.F1))
            {
                spriteBatch.Draw(texBlank, new Rectangle(0, 0, graphicsDevice.Viewport.Width, graphicsDevice.Viewport.Height), Color.Black);
                spriteBatch.Draw(texHelp, drawRect, Color.White);
            }

            spriteBatch.End();
        }
    }
}


text:
Q: Laravel 5.4 pagination with relationship I have two tables questions and answers. Question table has relationship on answer table.
When paginating eloquent results on the first page it returns lets say 7 unanswered questions (with empty relationship) and 3 with answered questions, but I need it to return 5 with answers and 5 without answers in total 10.
Right now i'm doing this:
Question::with(['user', 'answers])->paginate(10);

Is there any way to return always 5 answered/5 unanswered instead of random?

A: The paginate() method returns a LengthAwarePaginator object so you can create your own as the doc suggests. Maybe (I haven't tested it) you can do it more or less like this:
$limit = $request->input('limit', 5);
$page = $request->input('page', 1);
$total = Question::count();
$offset = ($page - 1) * $limit;

$items1 = Question::with(['user', 'answers'])->has('answers')->limit($limit)->offset($offset)->get();
$items2 = Question::with(['user', 'answers'])->doesntHave('answers')->limit($limit)->offset($offset)->get();

$paginator = new \Illuminate\Pagination\LengthAwarePaginator(
    $items1->concat(items2),
    $total,
    $limit,
    $page,
    ['path' => $request->getPathInfo()]
);

return response()->json($paginator);

redpajama_set_name: RedPajamaStackExchange


text:
Fantasy Scouting Notebook: 41 observations to help make sure you're ready to draft
Scott Pianowski
Yahoo Sports August 31, 2018, 9:01 PM UTC
Some of the pieces on the Bears are undervalued ( Jordan Howard) in fantasy drafts, while others are overvalued. The same could be said for many situations around the NFL. Let's dive in. (AP Photo/Paul Sancya)
Let's take a quick-hitting approach on several players and situations around the NFL heading into the last big Fantasy Football draft weekend. For those of you looking for cliff notes version, we have you covered there, too.
• Carlos Hyde is in his Ibanez All-Star years, the boring veteran. He's a player you can draft as a bench option (or flex option) who might be good enough to slide into the RB2 slot on your team. Nick Chubb got nowhere this summer.
• Alex Collins showed what he could do in the second half of 2017, and the Ravens have a healthy, impactful offensive line again.
• Pierre Garcon is old and doesn't score touchdowns. Jimmy Garoppolo meshed well with Marquise Goodwin last year. My early-draft season indirect path to Kyle Shanahan and Jimmy G was tight end George Kittle (who I still like). But when Kittle got dinged up, I pivoted to Goodwin. I don't want Garcon. I also think Jerick McKinnon is a trap, and Alfred Morris will have a role.
• Royce Freeman is obviously the most-talented back in Denver. I expect Vance Joseph to be stubborn, though, and for Devontae Booker to stay involved. I'd be comfortable drafting Freeman in a "he will likely be good" pocket, but I can't use a second or third round pick, where he has to be good. He's been an eyelash overpriced for me this summer. But I completely understand why people like him.
• The opinion split in the Green Bay backfield interests me. Jamaal Williams never looked special to me last year. All he has right now is the baton — he'll play, while Aaron Jones (two-game suspension) sits. I have not drafted Williams proactively — and usually someone wants to — so I'm fine with little to no Williams. The Packers backfield is rarely the rich pool of production we think it should be.
• Patrick Mahomes is going to have many highlights and a few bombastic mistakes. And with the skill talent around him, plus Andy Reid, I can't see how he fails. Kansas City's horrible defense — when's the last time we said that? — will also force the offense to push the envelope. I went from slightly out on Tyreek Hill to fully in. Sammy Watkins might be a square peg again, though.
Patrick Mahomes, this year's "fun pick," (AP/Annie Rice)
• The only thing I don't like about drafting Golden Tate or Marvin Jones is that it might block me from Kenny Golladay later. If Golladay explodes — which I think is very possible — it would more likely come at Jones's expense.
• Jarvis Landry has been underrated his entire career. He's good at something that isn't sexy. I'd be shocked if he's not Cleveland's best receiver. Josh Gordon is a fun idea and I'll root for it, but he goes in an expectant pocket and I haven't considered drafting him for weeks. (The next hot coaching candidate should be begging for this Cleveland job, by the way.)
• My buddy Mike Salfino has been banging away at "Rams Regression" and he makes a lot of good points. But look around at that lousy division. Who's better than the Rams? I also fully believe in Sean McVay. If you think the offensive efficiency tanks, Greg Zuerlein is your target.
• If you want to listen to Mike and I argue (and sometimes agree), we have a podcast. Also read his stuff at The Athletic.
• Okay, so Todd Gurley is unlikely to score 19 touchdowns again. We can't scream "regression!" and drop the mic. If he's healthy, he can have a bad season and still score eight times. Something in the 10-12 range is likely. And while it's hard for any player to be the best fantasy player — all I expect at No. 1 is a foundation, not a sure thing to crush everyone else — Gurley would be the way I would bet.
• Cooper Kupp is obviously the best Rams value at receiver, and is a little cheaper than Brandin Cooks and Robert Woods. I have a lot of Kupp, some Woods, and almost no Cooks.
• I'm shocked there's anyone who doesn't love JuJu Smith-Schuster. What he did as a rookie was astounding, and then consider he was 20 for most of the year. JuJu is both a floor and upside pick. His efficiency has to drop from last year's unreal levels, but his workload should increase significantly.
• I didn't want Alshon Jeffery even before the shoulder issue lingered. Now he's an automatic fade. I don't like players who get in my way in September — too good to cut, can't start them, can't trade them. For different reasons, Mark Ingram and Julian Edelman are on this list. (Yeah, sure, if you get them super-cheap, fine. I haven't had that option. Maybe you will. Play to your room. It's all contextual. I know it's not a fit in my world.)
• Tyler Lockett has missed for several seasons, but he's still cheap, Baldwin is hurt, the defense stinks, and Graham and Richardson left town. I'm scratching the Lockett lottery ticket again.
• If you must have a vanity kicker, make sure they have a late bye week. And while I generally ignore bye weeks for most players, if you get to bye week as a tie-breaker (after looking at all the important stuff), later is generally better. Remember, your roster is going to turn over a ton between now and midseason. Your bye-week glut in Week 9 might be irrelevant when Week 9 finally shows up. The NFL is a snow-globe league. Every week and every season will be called "weird" by somebody — but weirdness and randomness are what the league is largely about.
• Every reasonable outcome I see for Randall Cobb is bad. He's basically not on my board. (You can still use Davante Adams's sneaky touchdown count as a way to win bar bets. A great example of how players can dramatically improve.)
• I'd rather be a year early than a year late on Tom Brady and Larry Fitzgerald. I grew up in the 01824, so my peeps are crushing me for this. But I'm not drafting a team to market or a team to make friends (or a team to brand myself), I just want the numbers. I nonetheless have a bunch of Chris Hogan.
• The Melvin Gordon setup is so good, I can rationalize his ordinary efficiency. There's no major threat to his playing time. The Chargers love him and they put him in easy positions to succeed. Good enough for me.
• I'm unlikely to make the Jordan Reed leap of faith, especially if bench space is limited. I also don't see Vernon Davis as good enough to be a handcuff. (Yes, there is a handcuff season, but no, it's not in August, with rare exceptions. I might handcuff John Kelly to Gurley or James Conner to Bell, in the right situation, this weekend. That's it. Handcuffing in August is bunting in baseball — you're playing for the small inning. I want to play for the big inning. When it's time to handcuff later this year, I'll let you know.)
• Reed or no Reed, Alex Smith is almost always worth more than what you pay, and will be again. He's also the reason you should have a two-QB format or Superflex format. Everyone in start-one leagues is going to like their quarterback setup, and that's a bug, not a feature.
• I'm torn on Joe Mixon. Love that he lost weight and seems more dedicated. Don't trust the offensive line. I usually pick the other guy when it's a 50-50 call on Mixon. (Same is true for Mike Evans; I usually take the other guy.)
• Maybe Chris Godwin will happen and maybe he won't, but I'm done with DeSean Jackson. Zero interest.
• It's hard to trust teams when they say sunshiny things, but when they tell you bad news, it's often important. Every piece of Ronald Jones news this summer was bad. This goes beyond motivational ploy — he doesn't look ready to contribute.
• I expect the Patriots to have a bankable running back who is projectable and startable, at some point. But it's unlikely that will show early. Remember, though, LeGarrette Blount was a needle-mover two years ago (18 TDs) and Dion Lewis was on a bunch of winners last year.
• "League winner" is an overrated phrase to me. Sure, Todd Gurley, Alvin Kamara, Kareem Hunt could justly wear that tag for 2017. But success in fantasy comes down to a bunch of small things in addition to the occasional, glorious big thing. Attention to detail is an important part of anyone's success in life (the best football coaches are constantly telling us this).
I don't accept that every fantasy pick has to be a "hair on fire, I'm trying to win" pick — though in the middle and later rounds, obviously upside dominates. If some of your early picks are floor driven, that's perfectly fine.
Does Adrian Peterson have anything left for us? (AP/Alex Brandon)
• For the first time in his career, Adrian Peterson is a boring floor pick and a little-upside pick. They need him. I think he has just enough left that he'll keep playing. I don't expect him to move needles. A reasonable depth pick, but I'm not going to outwrestle anyone for him.
• The Saints have plenty of skill players I like, but this is rarely a team that goes out of its way to steer touchdowns. Michael Thomas could score 11-12 times — or be back around 5-6 again. Sean Payton isn't happy unless the trainer gets 2-4 scores. I'm probably an eyelash underweight on Saints, though I would have no problem taking Kamara proactively.
• "Who's playing Buffalo?" will be a gift all season. Ravens Week 1, Chargers Week 2. (This late in draft season, forget about skipping a kicker and defense. It's a smart hack mid-summer. Just about every good player is in bubble wrap now, so accept the timing and fill the fringe spots, too.)
• Jordan Howard is the boring value in Chicago. I am not sure Mitchell Trubisky is ready for the leap some expect. I think Matt Nagy was a good hire. Allen Robinson's last good season was so long ago; I'm stunned he's still going as essentially a sure thing. The setup for Trey Burton could not be more perfect. Rookie wideouts almost always flop, but Anthony Miller came into the league very polished, and will get those golden slot snaps.
• I don't know when Sam Darnold is going to be great, but he will be great someday. Makeup is often a fluffy bit of noise, but it matters with quarterbacks. Darnold has the perfect wiring for his city and his position.
• I don't understand the Jon Gruden hire or much of Gruden's proclaimed 2018 strategy, unless it's the ultimate long con. I took a few Marshawn Lynch shares when they were very cheap. I was not proactive with Amari Cooper.
• Kenny Stills has been an obvious value all summer and the market never quite caught up, though it did rally somewhat. And of course DeVante Parker injured his middle finger.
• I refuse to draft Andrew Luck like his comeback already happened and is a full success. And as much as I love T.Y. Hilton, remember he doesn't run the full route tree and he can easily disappoint you in touchdowns. Jack Doyle is the boring but useful mid-round target here.
• It feels like a cop-out to say someone is a better best-ball pick than seasonal pick, but it's true for the Jacksonville receivers. Keelan Cole should have a few big games. Dede Westbrook should pop now and then. The catch is predicting when this happens, and not being shaken by them when they have a few bad weeks. Mostly, you want them as bench fliers — guys you can use but you don't have to initially use.
[Join a Yahoo Fantasy Football league before the season: Sign up now for free]
• I can't explain why Julio Jones's touchdown rate doesn't make sense. It just doesn't, and we're deep into his career. He's more of a reactive pick than a proactive pick for me, though I have a few shares. I'm still extremely nervous and frustrated with OC Steve Sarkisian. Matt Ryan is one of a million acceptable values at quarterback.
• Dalvin Cook is a wonderful talent, but he's off a major injury, his offensive line might stink, and Latavius Murray is likely the goal-line back. Cook quickly became a second-round fade for me. I see why it could work, but I'm not paying for it.
• Adam Thielen is the Camry, Stefon Diggs is the sports car. Kirk Cousins was worth the dough. Kyle Rudolph might get bogged down taking out the trash — this line is going to need a lot of help. Rudolph and Cousins also got off to a poor start this summer. (Cousins's rapport with Jordan Reed doesn't influence my Rudolph rank. Reed's peak level is much higher than Rudolph's — and I say that as a fan of both players.)
• I want to see more of Corey Clement. The way the Eagles are constructed, I don't think they have a choice.
• I want Saquon Barkley to be great and I was mid-round drafting him in mid-summer. Then he got dinged and the line looks messy, so I pushed him back a slot or two. He's still a first-rounder, but a later-round guy for me.
• Lamar Miller is another boring value guy to target. Nothing chasing him. The mobile QB helps. The line isn't great, but hey, can't have everything. Miller didn't hit lofty expectations a few years ago, and now it's being unfairly held against him.
Did I miss your favorite player or biggest conundrum? Hit me up on Twitter: @scott_pianowski
More from Yahoo Fantasy Sports