text:
The Eddie Jefferson School of Bop - Master Classes, Artist in Residence, Workshops, Concerts and Tours by George V Johnson Jr
Posted by George V Johnson Jr. on October 15, 2012 at 3:00pm
Advocate for Preserving America's Classical Music, "JAZZ",
it's African American Legacy, Roots and Heritage!
Washington DC Jazz Music Awards
Coming to a City Near You!
GEORGE V JOHNSON JR
William Brower
The Art of Jazz Vocalese
Writing & Singing Lyrics to Improvised Solos
Tours, Clubs, Festivals, Concerts
A Member of the Pittsburgh Jazz Network
The Father of the Art of Jazz Vocalese
THE LEGACY CONTINUES....
Eddie Jefferson & GVJ Left Bank Jazz Society 1977 Passing the torch
Remember to pause this music player when viewing videos
Find more music like this on WASHINGTON DC JAZZ NETWORK
The best in the business George V Johnson Jr, One of my students...
(Historic 16 sec sound clip)
"HE'S NEXT IN LINE"
George V Johnson Jr - Vocalese
Executive Director & Founder
Washington DC Jazz Network
THE EDDIE JEFFERSON
SCHOOL OF BOP!
* Summer Workshops *
* Artist in Residence *
* Concerts *
*Tours *
* Private lessons *
* In person or skype video *
* Local, National or International *
Start learning the Art of Jazz Vocalese today!
Clinic/Workshop Information:
Beginners - Intermediate to advanced students
THE ART OF JAZZ VOCALESE LESSONS
WORKSHOP INSTRUCTIONS INCLUDES:
. History of Jazz Vocalese
. The Art of Writing & Singing Good Lyrics
. Demonstration, Vocal Drills
. Importance of Diction, Rhythm, Presentation & Intonation
. Class Participation / Breakdown of Classic Solo's
. Class Reciting, Speaking, Singing & Writing original lyrics
. Repetition & Practice w/End of session performance
WORKSHOPS (SPECIAL GROUP RATES)
. 1 to 10 week programs or 1-5 day workshops
. Elementary / Jr., High / High Schools
. Colleges / Universities
. Master Classes / Seminars / Private Instructions
ailable on Skype: www.skype.com
Skype contact: georgevjohnsonjr@hotmail.com
. If you sing in the shower, car or the closet. We want you!
Now Booking: USA, Canada, South America, Africa, Austrailia, UK, Europe, Asia
READ About GVJ: Suggested book:
THINKING IN JAZZ! THE INFINITE ART OF IMPROVISATION!
Author: Paul F. Berliner
Professor of Ethnomusicology at Northwestern University, Chicago IL.
Jazz Phrasing by Dr Gloria Cooper & Don Sickler: - A Workshop For The Jazz Vocalist with lyrics by George V Johnson Jr. It covers: Specific Rhythm Phrasing  interpreting 8th notes, specific rhythm figures; Open Phrasing  exploring tempos and styles, working with ballads; Tips on Performance  choosing a tempo and counting off, telling the song's story, working with your ensemble; and more. The accompanying CD lets you: compare transcriptions to recorded examples, listen to vocal and instrumental examples, sing along with the rhythm section, create backgrounds and analyze arrangements.
The 1st Hank Mobley Jazz Festival produced by Don Sickler featuring George V Johnson Jr, Frank Wess, Don Braden, Houston Person, Eric Alexander, Semus Blake, Joe Lovano. Jazz Standard Oct 28 to Nov 2, 2003 a week long event.
HOOKED ON MOBLEY!!!
Down by the River - East of the Village
A "JAZZICAL" The Jazz Opera
Lyrics & Script: by George V Johnson Jr
Music: Hank Mobley
Arrangements: Don Sickler
In 2003, George V Johnson Jr. was commissioned by Don Sickler of Second Floor Music to pen lyrics to the music of jazz legend and saxophonist, Hank Mobley. Since taking on the project Johnson has skillfully, completed over 40 of Mobley's classic compositions and still counting. Some with complete solo's. Critics are already saying this is one of the most important and extensive projects to be presented to the public from the jazz vocalese realm in many, many years. With Jazz Vocalese, still in a state of infancy, Johnson has almost single handedly kept the vocalese dream alive as exemplified from his performances presenting the Music of Hank Mobley. A feat unmatched by any of his peers in jazz music. His lyrics are well rounded, beautifully written and a classic work of art. In the spirit of Eddie Jefferson, Johnson's a modern day "GRIO" telling stories our ancestors would be very proud of ...a la...Langston Hughes
Hank Mobley recorded many of his classic compositions on the Blue Note label featuring some of the greatest names in jazz. Mobley composed over 100 songs that are becoming jazz classics and every musicians dream. Johnson's soulful style and earthly lyrics to this great composers work establishes new dimensions in Jazz Vocalese. The voice accented with skillful musicians magically connects with the Mobley Spirit. Just imagine! Swinging, stories that take you on a musical voyage. Everyone should experience this. See what the buzz is all about. Join in the fun and bring the music of Hank Mobley to your city today. It's Jazzically wonderful.
Hank's Symphony, Soul Station, Dig Dis, No Room For Squares, East of The Village, This I Dig of You, Take Your Pick, Three Way Split, Split Feelings, Up A Step, Work Out, The Baptist Beat, My Groove Your Move, Soft Impressions, Hank's Waltz, Chain Reaction, Roll Call, Syrup & Biscuits, Snappin Out, Comin' Back, The Feelings Good, Uh Huh, Up Over and Out, Looking East, Cute N' Pretty, Third Time Around, Bossa For Baby, Ballin, Madeline, No More Goodbyes, The Break Through, Hank's Other Bag, Infra Rae, Straight NoFilter, Caddy for Daddy, The Morning After. . . and more
Imagine listening to a seasoned jazz musician rip into a bebop solo so sizzling and smooth it makes your senses tingle. Close your eyes and play along. Try and picture the sweat bouncing off the performer like the notes that leap through the air. See if you can hear the mesmerizing melodies go up and down, bringing you through joy and sadness, taking your emotions on a sensory experience unlike any other. Now picture that musician and his beloved instrument: His voice. That's the art of vocalese, and that's what native D.C. son George V Johnson Jr. has been doing for over 40 years....Working as a performer, a D.C. Metrobus driver and a New Jersey train conductor at different times throughout his life, Johnson's latest work has taken the form of pedagogy. He has become a teacher and mentor to both aspiring and established vocalists from around the area, and most recently he has lent his years of experience and talent to AU, leading the AU jazz vocal ensemble. ~~By Ben Lozovsky - 2005
GEORGE V JOHNSON JR,...considered by many as "Heir Apparent" to Jefferson's innovation and is one of the foremost practitioners of the vocalese style on the Jazz scene today. He first turned heads on his debut recording in 1981 with "Pharaoh Sanders" on the LP REJOICE and was credited with vocals and lyric on Coltrane's classic "Moments Notice ", later reissued on CD by Evidence Music Johnson was mentored and performed regularly with "James Moody & Lou Donaldson". Two of the greatest saxophonist in the history of Jazz. His close association with Moody led to many Local & National Live Radio and Television Broadcasts.
THE ONE AND ONLY!
"Moody's Mood For Love"
Eddie Jefferson's Birthday Jazz Mobile Concert
Grants Tomb, NYC
While appearing with James Moody over one dozen live NPR coast to coast
radio & television broadcast
George V Johnson Jr & Lou Donaldson @ the historic Birdland Jazz Club in NYC July 9, 2011.
The two were introduced by John Malachi in 1975. Donaldson has been presenting Johnson ever since.
"The Gingerbread Boy"
Johnson was invited to the stage from the audience by the great Jimmy Heath
during the during the DC Jazz Festival 2011
Benny Golson and George V Johnson Jr pose for a fan after a impromptu invite to the stage on
Charlie Parker's "Now's the Time" and tribute to the late James Moody "Moody's Mood for Love"
at the historic "Bohemian Caverns"
Dear George,
Thank you for your impressive E-mail message and the enclosed photographs. It was great meeting you and hearing you. Though you had a comforting job and an abundance of security as a conductor with The New Jersey Transit, it's obvious your heart lies within the existing realm of the music we lovingly call jazz. Few of us will ever get rich by engaging in this pursuit, but our hearts will be overrun with joy and satisfaction for having done it. Time cannot be so cruel as to keep us apart indefinitely. So, onward and upward as we chase our dreams with a votive and determined effort, in spite of all else, with an inelluctable spirit of success concerning our proleptic tomorrows. We have no choice but to HIT IT over and over again at every opportunity as faithful visionaries letting no one or anything get in our way.
Noblesse Oblige,
Sent via BlackBerry from T-Mobile
Hank Mobley Jazz Festival
Frank Wess, GVJ & Don Sicker @ Jazz Standard
2011 - 30 years later @ Howard University receiving the Benny Golson Lifetime Achievement Award
COLTRANE'S classic "Moments Notice" is a complete gas! Sanders like Coltrane, pulls and holds attention with his entrances. Bobby Hutcherson's and Hicks solo's are heated and models of vivid imagination. The three put forth some of the very best solo's in the entire album. The there's the arresting new talent introduced here on compact disc in debute - GEORGE V JOHNSON JR., whose marvelous lyrics and viocal work are truly auspicous! He sngs with James Moody on occassion and is happily remindflul of the insistent giftness of the late EDDIE JEFFERSON. Johnson's three stanzars close with "Relax dig the sounds of Coltrane's Music. Coltrane fills your heart with love and harmony. Trane played with magic. Listen to the melodies and you will see momently. When you here the message of his song!". There's no doubt in my mind that henceforth George V Johnson sholuld and will be sought for his own gift to the music. He sang the song for Sanders at the Village Vanguard, and Sanders "felt that George ought to be heard".
Thank you, Pharoah Sanders for your spirit of sharing! Wheeeeee....what a dynamite track this is~~~~HERBIE WONG!
Learn More About The Great Herb Wong
GVJ, Javon Jackson & Jimmy Cobb 83rd birthday celebration @ Bohemian Caverns
Photo by Bill Brower
He has also shared the stage with Richie Cole, James King, Nasar Abeday, Dizzy Gillespie, Pharoah Sanders, Benny Golson, Jimmy & Tootie Heath, Jimmy Cobb, Don Sickler, David 'Fathead' Newman, Wallace Roney, Antoine Roney, Wes Anderson, Clifford Jordan, George Coleman, Frank Foster, Dr. Art Davis, Keter Betts, Calvin Jones, Zoot Simms, Al Cohn, Herman Foster, Harold Mabern, Kenny Barron, Mulgrew Miller, Rueben Brown, Marshall Hawkins, John Hicks, Barry Harris, Kirt Lightsey, Philly Joe Jones, Idris Muhammad, Larry Ridley and the Jazz Legacy Ensemble and many more. Johnson has entertained and performed at clubs, festivals, concert halls worldwide.
In 2003, George V Johnson Jr. was commissioned by Don Sickler of Second Floor Music to pen lyrics to the music of jazz legend and saxophonist, Hank Mobley. Since taking on the project Johnson has skillfully, completed over 40 of Mobley's classic compositions and still counting. Some with complete solo's. Critics are already saying this is one of the most important and extensive projects to be presented to the public from the jazz vocalese realm in many, many years. With Jazz Vocalese, still in a state of infancy, Johnson has almost single handedly kept the vocalese dream alive as exemplified from his performances presenting the Music of Hank Mobley. A feat unmatched by any of his peers in jazz music. His lyrics are well rounded, beautifully written and a classic work of art. In the spirit of Eddie Jefferson, Johnson's a modern day "GRIO" telling stories our ancestors would be very proud of ...a la...Langston Hughes. Other accomplishments includes lyrics to over 30 Charlie Parker compositions and is one of the most exciting vocalist on the jazz scene today!
"The George V Johnson Jr Show"
I'm a student of the Eddie Jefferson School of Bop!
Ayelet Zohar, PhD (Smithsonian Institute) - Haifa, Israel
A Member of the Washington DC Jazz Network
Dr. Ayelet Zohar, History of Art and Asian Studies depts. University of Haifa, Mt. Carmel, IsraelLetter of Reference
George V. Johnson Jr. was my jazz singing teacher over the period of summer 2011 (June-September 2011).George is an outstanding singer in his own right, and has wonderful teaching abilities that complete this skill. George is a sensitive and thoughtful instructor, and was attentive to any request or complexity Ihave faced through the process of learning his style of jazz singing, the vocalese.
In the past, I was learning jazz with several teachers in California, people who gave me the opportunity to take my first steps into the realm of jazz. However, it was through my study with George that I could experience the heart and nature of true, black culture deep connection to jazz, and how this singing wasborn out of the painful history of black communities in the US, joined with the cheerful and happy moments of music making and pleasures of life. George introduced me to important musicians in hiscycle such as Eddie Jefferson, James Moody, Hank Mobley, Miles Davis, Sarah (Sassy) Vaughn, Ella Fitzgerald and more. When teaching me Hank Mobley's This I Dig of You, George was working with me on correct pronunciation and tempo; When working on Miles Davis' So What, George emphasized modes of wording and rhythm, and the relationship between lyrics and tune; when working on Body & Soul it was emotion and modes of expression that was in the focus; George was also very helpful in helping me to reshape and better understand the modus and style of songs such as Dat Dere, Joy Spring,I've Got it Bad, and more.
All in all, George proved to be an extremely talented individual who helped me tremendously in understanding jazz music background and way of singing, the genealogical ties between people and style, and how all these link together to become a unique style of singing which George V, Johnson Jr. is indeed, a master of.I highly recommend any individual or group to take George as their singing instructor!
Sincerely, Dr. Ayelet Zohar
History of Art and Asian Studies depts..University of Haifa Mt. Carmel 31905 Haifa
www.ayeletzohar.net
John Malachi
Letter of Recommendation to National Endowment of the Arts
John Malachi (born September 6, 1919 – February 11, 1987) was an American Jazz pianist born in Red Springs, North Carolina, who was a member of the epochal Billy Eckstine Bebop Orchestrain 1944-45 and again in 1947.
The band featured: Dizzy Gillespie, Dexter Gordon, Miles Davis, Art Blakey, Charlie Parker, Lucky Thompson,Wardell Gray, Gene Ammons, Leo Parker, Trummy Young, Cecil Payne, Sonny Criss, Oscar Pettford, Shadow Wilson, Tommy Potter, Fats Navarro. Tadd Dameron and Gil Fuller were among the band's arrangers, and Sarah Vaughan gave the vocals a contemporary air. The Billy Eckstine Orchestra was the first bop big-band, and its leader reflected bop innovations by stretching his vocal harmonics into his normal ballads.
John Malachi, Art Tatum
He also worked with Illinois Jacquet in 1948, Louis Jordan in 1951, and a series of singers including Pearl Bailey, Dinah Washington, Sarah Vaughan, Al Hibbler, and Joe Williams.
Malachi opted out of the traveling life of the touring jazz musician in the 1960s, living roughly the last decade and a half of his life in Washington, D.C. freelancing, playing with touring bands and artists when they stopped in Washington, and leading music workshops at clubs like Jimmy MacPhail's Gold Room and Bill Harris's Pig's Foot. Malachi's generosity towards younger musicians was legendary. One of the musicians he helped influence recalls that younger players referred to his workshops as "The University of John Malachi." [3][4]
Malachi is credited with creating the nickname "Sassy" for Sarah Vaughan, with whom he worked with the Eckstine Orchestra and later directly with her.
First time on TV. John Malachi presents "Your Majesty" George V Johnson Jr on the Carol Hall Show channel 7 news @ the PIGFOOT Jazz Club in NE Washington DC - 1975. During the same year we appeared on the Sue Simmons show "THE PLACE". Sue had just arrived to Wash DC and worked with Jim Vance a pairing that resulted in one of the first, if not the first, African-American co-anchors of a major market newscast. Now's the time for another appearance on a Major TV News Network.
John Malachi arranged Johnson's original composition Opening Night. Johnson kept telling
John that he had this song he wanted him to hear. One evening Malachi invited him over to his house
and asked him to sing the song to him. Within an hour John wrote it out the song and the rest
is history. He asked him what was the name of the song and Johnson responded....I haven't named it yet!
John suggested that he call it "Opening Night". He also had an idea!!!
One month later Malachi presented on his first professional gig and introduced
him to the audience as "YOUR MAJESTY" George V Johnson Jr.
Malachi is also credited with creating the nickname "Your Majesty": for George V Johnson Jr, Vocalist & Executive Director of the Washington DC Jazz Network,. He was fond of categorizing jazz pianists into "acrobats" and "poets," classifying himself among the latter.
"Your Majesty" George V Johnson Jr & John Malachi
American Jazz Museum
CHARLIE "YARDBIRD" PARKER
featuring -
Bobby Watson
Support Live Jazz!
"The Art of Jazz Vocalese"
Lyrics to over 30 Charlie Parker's Classic Compositions
Dennis Winslett


Everyone's favourite search engine is well known for its unique company culture: free food, free gym, free mobile phones, on-site services like dry-cleaning and hairdressing, as well as perks like private healthcare and relocation packages.
Of course, as one of the largest companies in the world, Google is well placed to offer staff these sorts of benefits, and the flipside is that the company expect a lot out of their employees: hard work, dedication, long hours. Where Google has succeeded is in recognising that to attract and retain talented staff – and get them to fully embrace working there – you need to create a fun, creative workplace community.
It may not be as 'cool' as Google but Anglian Water is certainly popular with its staff. The benefits on offer – like private healthcare and access to discounted services – most certainly play a part, but what Anglian Water's employees applaud most is the company's commitment to staff wellbeing and development.
On the whole, Anglian Water's employees definitely don't feel like one tiny cog in a giant machine: they feel engaged. Anglian Water seems to truly invest in its staff, offering clear performance review processes and the guidance and development to help staff progress within the company. It stands out as a company that cares, with staff also complimenting the company's work/life balance and their commitment to customer service.
The popularity of this social services non-profit amongst its workers shows that people aren't afraid of a bit of hard work if it's fulfilling.
Many Bromford employees extol the organisation's trusting and supportive ethos and the inspiring, innovative work they do. The day to day may be fast-paced and energetic but the company seem keen to promote a healthy work/life balance and support flexible working.
The king of social media may have been taking a beating in the press recently but as far as its UK employees are concerned it's obviously doing something right. CEO Mark Zuckerberg even has a current 99% approval rate from Glassdoor reviewers.
As with any successful company the numerous job perks aren't to be ignored, but Facebook's real success seems to be its team. Micromanaging doesn't really fit in Facebook's culture. The focus is on creative, collaborative, flexible working. Facebook make this work by hiring smart, innovative, talented and engaged staff who truly believe in, and care about what they are doing.
A lot of the personal ups and downs at work come down to who you're working with. Salesforce hires based on personality and ethics, as well as competency, to create a hardworking and friendly team.
Employees seem to really enjoy the innovative culture here too, and inspiring implementations like encouraging staff to volunteer with NGOs as part of their role are very popular.
Think about the values you stand for as a company and use this as a starting point for some creative thinking on staff engagement.
As a company you want to get ahead and improve but don't forget that's what your staff want for themselves too. No one likes stagnating.
Tired, overworked, stressed-out workers don't make for high levels of productivity or creativity. Also, a little bit of flexibility goes a long way.
Meaningful work doesn't have to mean changing the world. Build up your company ethos and create socially responsible initiatives that workers can really get behind.
Personality and ethics should have a bearing in the recruitment process too. Think hard-working, friendly and humble rather than brilliant but arrogant and lazy.


If you have any questions or want to enquire about dates, use our form to contact Elena Scalambrin or see their website for more information.
A superb hotel spread across three old buildings in the sleepy Ligurian village of Borgomaro. Delightful Elena and her family have converted a 19th-century butcher's shop, her grandparents' home and a 14th-century stone house into a stylish 'Albergo Diffuso'. Life is wonderfully slow here; church bells mark time and only ducks quacking in the river disturb the silence. You check in at Casa Madre, where there's a cosy library for afternoon tea, a garden planted with rambling roses and fragrant jasmine, and an irresistible pool. Impressive breakfast spreads featuring biscotti, cured meat and focaccia are served here too – you can even start the day with a glass of prosecco! Bedrooms in this traditional, double-fronted house are light and airy; some overlook the garden and village square. Wander across the river to Casa del Borgo where you can sleep in elegant rooms with vaulted ceilings; room 12 has a luxurious roll-top bath. Casa del Fienile, 40 metres away, has two atmospheric bedrooms furnished with antiques including a wardrobe from Elena's grandmother's dowry. Borrow thoughtful guides to local walks and beaches.
29 October - 22 March.
Extra bed/sofabed €20-€35 per person per night.
Have you visited Relais del Maro? Be the first to leave a review.
Borgomaro is a little town with 300 inhabitants: it's the perfect place for peace and quiet only 15km from the western Ligurian coast.
Imperia's beaches are only 15km away – choose between sand or shingle!
For those who love immersing themselves in nature, there are walks right from the town, and a short drive away, where you can see panoramic views over mountains, coast and olive tree groves.
About an hour away are the famous towns of Alassio and Sanremo, perfect for shopping-lovers and with a more urban atmosphere.
The Côte d'Azur, with Monte Carlo and Nice, is a short drive away, for those who fancy a taste of France.
And for wine lovers, you can reach the Langhe region in about an hour and a half.


text:
Q: ExecutorService terminates unexpectedly I have tried using different classes which implement the ExecutorService but all result in the same outcome: the executor exits early.
Here is my code:
public class StreamConsumer {

private static final Logger LOGGER = LogManager.getLogger(MethodHandles.lookup().lookupClass());

final Environment environment;
final String streamName;
final String shardId;

public StreamConsumer(Environment environment, String streamName, String shardId) {
    this.environment = environment;
    this.streamName = streamName;
    this.shardId = shardId;
}

public void initialize() {
    try {
        final ListShardsRequest listShardsRequest = new ListShardsRequest().withStreamName(streamName);
        final ListShardsResult listShardsResult = environment.kinesis().listShards(listShardsRequest);
        final List<Shard> shards = listShardsResult.getShards();

        final ThreadFactory threadFactory = new ThreadFactoryBuilder()
                .setDaemon(true)
                .setNameFormat(streamName + "-%d")
                .build();

        final ScheduledExecutorService executor = Executors.newScheduledThreadPool(shards.size(), threadFactory);
        shards.stream().map(ShardConsumer::new).forEach(consumer -> consumer.start(executor));
    } catch (Exception ex) {
        LOGGER.warn("Unable to start Stream Consumer of {}", streamName, ex);
    }
}

private class ShardConsumer {
    private final String shardId;
    private String shardIterator;

    ShardConsumer(Shard shard) {
        this.shardId = shard.getShardId();
    }

    private String getShardIterator() {
        GetShardIteratorRequest shardIteratorRequest = new GetShardIteratorRequest()
                .withStreamName(streamName)
                .withShardId(shardId)
                .withShardIteratorType(ShardIteratorType.LATEST.name());

        return environment.kinesis().getShardIterator(shardIteratorRequest).getShardIterator();
    }

    void start(ScheduledExecutorService executor) {
        this.shardIterator = getShardIterator();
        executor.scheduleAtFixedRate(() -> {
            try {
                LOGGER.info("Started consuming stream: {} with shardId: {}", streamName, shardId);
                    GetRecordsRequest request = new GetRecordsRequest().withShardIterator(shardIterator);
                    final GetRecordsResult records = environment.kinesis().getRecords(request);
                    UserRecord.deaggregate(records.getRecords()).forEach(x -> System.out.println(x));
                    shardIterator = records.getNextShardIterator();
            } catch (Throwable e) {
                LOGGER.error("Problem consuming records from {} {}", streamName, shardId, e);
            }
        }, 0, 1_000, TimeUnit.MILLISECONDS);
    }
}

The code terminates at this line:
final GetRecordsResult records = environment.kinesis().getRecords(request);
I've also tried to create another ExecutorService which executes:
while (true) {
    System.out.println(x)
}

It also terminates early and unexpectedly. I have no idea what the issue could be.
EDIT: I've found the issue. For whatever reason, the executor service doesn't like being run from a test class, I can create executor services that stay alive indefinitely from within the Main method. Does anybody know why this is? Or how it can be resolved? Thanks.

redpajama_set_name: RedPajamaStackExchange


Blood clots can be formed by clotting proteins (coagulation factors) and sticky blood cells (platelets). Oral anticoagulants such as warfarin are drugs that can prevent clot formation by blocking the clotting proteins. Other drugs, like aspirin, can also reduce clotting by blocking the platelets. Warfarin is better than aspirin in patients with heart failure who have abnormal heart rhythm (atrial fibrillation). Aspirin is known to be helpful in patients with heart failure with normal (sinus) rhythm, whose heart arteries are narrowed. This condition is a common cause of heart failure, so doctors often advise patients with a normal rhythm to take aspirin. Arguably, people with heart failure with a normal rhythm are at increased risk of clotting due to slower blood flow in the heart, similarly to people with an abnormal rhythm. Also, blood clots (thromboembolism) in the lungs, legs and brain (ischaemic stroke) lead to disability and death of patients with heart failure. Several studies have tried to find out whether all heart failure patients should receive oral anticoagulants, but the debate is still open.
This is an update of an earlier review. The evidence is current to September 2015. We only identified one new study with 2305 participants. In total, we analysed four randomised controlled studies with 4187 participants.
The comparison of warfarin with aspirin was based on a large number of patients from four high-quality studies. The analysis showed an almost identical risk of death with both drugs. There was not enough evidence to prove benefits of warfarin over aspirin to reduce the possibility of clotting complications, such as a heart attack or stroke. However, patients receiving warfarin experienced serious bleeding twice as often as those taking aspirin. A comparison of warfarin with another antiplatelet drug, clopidogrel, was based on a single medium size study, and it showed similar results: no difference in occurrence of death or clotting complications, but a higher chance of developing of a serious bleed.
There is currently no evidence to suggest advantages of warfarin over antiplatelet drugs in heart failure with a normal rhythm. Moreover, treatment with warfarin leads to more bleeding events than aspirin or clopidogrel. It is unlikely that further studies will change these conclusions unless new, more effective and safe drugs become available.
There is evidence from RCTs to suggest that neither oral anticoagulation with warfarin or platelet inhibition with aspirin is better for mortality in systolic heart failure with sinus rhythm (high quality of the evidence for all-cause mortality and moderate quality of the evidence for non-fatal cardiovascular events and major bleeding events). Treatment with warfarin was associated with a 20% reduction in non-fatal cardiovascular events but a twofold higher risk of major bleeding complications (high quality of the evidence). We saw a similar pattern of results for the warfarin versus clopidogrel comparison (low quality of the evidence). At present, there are no data on the role of oral anticoagulation versus antiplatelet agents in heart failure with preserved ejection fraction with sinus rhythm. Also, there were no data from RCTs on the utility of non-vitamin K antagonist oral anticoagulants compared to antiplatelet agents in heart failure with sinus rhythm.
Morbidity in patients with chronic heart failure is high, and this predisposes them to thrombotic complications, including stroke and thromboembolism, which in turn contribute to high mortality. Oral anticoagulants (e.g. warfarin) and antiplatelet agents (e.g. aspirin) are the principle oral antithrombotic agents. Many heart failure patients with sinus rhythm take aspirin because coronary artery disease is the leading cause of heart failure. Oral anticoagulants have become a standard in the management of heart failure with atrial fibrillation. However, a question remains regarding the appropriateness of oral anticoagulants in heart failure with sinus rhythm. This update of a review previously published in 2012 aims to address this question.
To assess the effects of oral anticoagulant therapy versus antiplatelet agents for all-cause mortality, non-fatal cardiovascular events and risk of major bleeding in adults with heart failure (either with reduced or preserved ejection fraction) who are in sinus rhythm.
We updated the searches in September 2015 on CENTRAL (The Cochrane Library), MEDLINE and Embase. We searched reference lists of papers and abstracts from cardiology meetings and contacted study authors for further information. We did not apply any language restrictions. Additionally, we searched two clinical trials registers: ClinicalTrials.gov (www.ClinicalTrials.gov) and the World Health Organization (WHO) International Clinical Trials Registry Platform (ICTRP) Search Portal apps.who.int/trialsearch/) (searched in July 2016).
We included randomised controlled trials comparing antiplatelet therapy versus oral anticoagulation in adults with chronic heart failure in sinus rhythm. Treatment had to last at least one month. We compared orally administered antiplatelet agents (aspirin, ticlopidine, clopidogrel, prasugrel, ticagrelor, dipyridamole) versus anticoagulant agents (coumarins, warfarin, non-vitamin K oral anticoagulants).
Two review authors independently assessed trials for inclusion and assessed the risks and benefits of antithrombotic versus antiplatelet therapy using relative measures of effects, such as risk ratios (RR), accompanied with 95% confidence intervals (CI). The data extracted included data relating to the study design, patient characteristics, study eligibility, quality, and outcomes. We used GRADE criteria to assess the quality of the evidence.
This update identified one additional study for inclusion, adding data for 2305 participants. This addition more than doubled the overall number of patients eligible for the review. In total, we included four randomised controlled trials (RCTs) with a total of 4187 eligible participants. All studies compared warfarin with aspirin. One RCT additionally compared warfarin with clopidogrel. All included RCTs studied patients with heart failure with reduced ejection fraction.
Analysis of all outcomes for warfarin versus aspirin was based on 3663 patients from four RCTs. All-cause mortality was similar for warfarin and aspirin (RR 1.00, 95% CI 0.89 to 1.13; 4 studies; 3663 participants; moderate quality evidence). Oral anticoagulation was associated with a reduction in non-fatal cardiovascular events, which included non-fatal stroke, myocardial infarction, pulmonary embolism, peripheral arterial embolism (RR 0.79, 95% CI 0.63 to 1.00; 4 studies; 3663 participants; moderate quality evidence). The rate of major bleeding events was twice as high in the warfarin groups (RR 2.00, 95% CI 1.44 to 2.78; 4 studies; 3663 participants; moderate quality evidence). We generally considered the risk of bias of the included studies to be low.
Analysis of warfarin versus clopidogrel was based on a single RCT (N = 1064). All-cause mortality was similar for warfarin and clopidogrel (RR 0.93, 95% CI 0.72 to 1.21; 1 study; 1064 participants; low quality evidence). There were similar rates of non-fatal cardiovascular events (RR 0.85, 95% CI 0.50 to 1.45; 1 study; 1064 participants; low quality evidence). The rate of major bleeding events was 2.5 times higher in the warfarin group (RR 2.47, 95% CI 1.24 to 4.91; 1 study; 1064 participants; low quality evidence). Risk of bias for this study can be summarised as low.


text:
Q: How do I get setSelectionSymbol to work on Polygon layer I am trying to create a zoom-multiple query that will:

*

*Select multiple features in a layer

*Highlight them

*Buffer an additional x feet around that selection extent

I just can't get setSelectionSymbol to work on this layer.
<!DOCTYPE html>

  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
  <title>Buffer in 2D and 3D - 4.1</title>

<link rel="stylesheet" href="https://js.arcgis.com/3.18/esri/css/esri.css">

MapView

A: the layer that you are selecting features from has a really restrictive scale dependency set.
from the metadata:

Min. Scale: 6160.84032885541,

this means that nothing is going to be displayed unless you modify the property in your code or zoom in farther prior to executing your selection.
featureLayer.setMinScale(0);

live working sample:
http://jsbin.com/fufatog/edit?html,output
endnote: you've shared a whole bunch of code that distracts from your question regarding getting setSelectionSymbol() to function as you'd expect. next time it'd be a good idea to whittle down your repro case before posting.


»All Posts»Are Fans Still Ignorant and Stupid ?
Its now two years since Positively Arsenal swung open its door and welcomed people into it warm and friendly community.
Well. alright, we welcomed in those we agreed with and shut out those we don't. I have no problem admitting that comments that are overtly abusive or just daft are not approved. In other words comments from the type of person I talked about in one of my first posts, repeated below.
You might think that despite the club doing everything the malcontent fans said they would not do, that these fans would have learned. But they don't ,and everything I said still holds true.
They either won't learn, or just don't want too.
It is now obvious that even the signings of world class players and silverware has done nothing to make them reconsider their regurgitated poorly formed opinions.
So read the post again and tell me if you think all is as it was, or is the tide turning?
"Is it just me or are others infuriated by ignorance and stupidity?
Now I don't blame people who are stupid, simply because they are. I mean they are born stupid. Nobody chooses to be an idiot. Mostly they can't help it. Such is life.
No, what annoys me is that some stupid people insist on thinking they are smart. And smart to the extent that they know more about a given subject than a top professional.
Of course this likely happens in all manner of activities, but I want to talk about football – and Arsenal in particular.
I am told all the time "I am entitled to an opinion".
Of course when I claim that in that case, I am entitled to hold the opinion that they are idiots, that same 'entitlement' doesn't appear to hold true for me.
If an opinion is formed from a position of almost total ignorance or built on falsehoods and misinformation, what is it worth? It is in fact worth less than nothing. I would prefer to hold no opinion on matters, rather than one which proves I am a foolish halfwit.
If I have a heart complaint I'd go to see a specialist heart Consultant. If he tells me I am in decent health and half an Aspirin per day and some light exercise will see me well would I then insist that I need a quadruple bypass simply because my plumber mate down the pub says that's what I need?
Or if I read a blog by an accountant in which he insists he has strong opinions on the matter, and I should therefore accept what he is saying, would I?
Buying a ticket entitles you to nothing more than a seat and a game to watch. It does not buy you the right to pick the team, choose formations or set tactics.
If someone tells me the world is flat, I don't feel the need to debate the subject with them. There could be only two reasons they believe that.
Ignorance can be excused. But if they have been told the facts and shown the evidence, ignorance can be excluded and stupidity is all that is left. So when someone says something like "Wenger does not understand defence" they immediately fall into the stupid category. And they should not complain when I tell them that they are a moron.
Or when people insist that Arsene has refused to spend money.
The annual accounts over the past 10 years prove there has been no money. Arsene has said there has been no money. So if they are going to ignore the facts then they can only be stupid. There is no alternative.
The biggest problem is not people like bloggers claiming to understand things that they clearly don't. There will always be people who hugely overestimate their knowledge and intellect. No, the problem is the masses of ill-informed halfwits that accept and repeat as fact, the opinions of these leaders of opinion. Hitler was not the problem. It was the millions of followers he attracted that was the problem.
Some want-to-be manager writing a blog about Arsenal is not the problem. It's the pathetic halfwits that believe that what he is saying has some real value, who are the problem.
People claim to know why Mata did not sign for Arsenal, for example. When in fact they have no idea at all the reasons for him going to Chelsea.
I have opinions about players, formations and tactics. Ask me on a Saturday morning to pick the team and I will have a go. But the difference is that by Saturday teatime, if we have lost I won't claim it was because the manager was too stupid to pick the team that I did.
Pointing to an outcome and claiming it would have been better if your advice had been heeded Is nothing but evidence of your own arrogance and stupidity.
I really can't understand why so many people believe that their one field of excellence is football and Arsenal.
← If You Love Football, You Love Rosicky.
fans are still ignorant and stupid, the fact that blogs, twitter, facebook etc have given them a platform to express and show their ignorance and stupidity actually has left most of them with a distorted value of their views and we have been left with a generation of self entitled fans out there.
I cannot believe how many people believe they know the players better than a man with Wengers intelligence and experience. Are these people in the training sessions? The dressing room? No. Angers me also.
Forgot to note Wenger's masterful reaction to such bologna. We field more British than any of the big clubs too which has largely gone unnoticed when you contrast that with the treatment he got for fielding no English players.
I don't mind their ignorance to be honest.
Their stupidity I can stomach.
It is that they are so unrelentingly and invariably miserable that aggravates me .
Now I know dysphoria is a very difficult, debilitating condition to suffer from. Admitting they they have the problem is the first step, and a rare one. No they prefer to follow like minded depressives and cynical manipulators, and dress themselves in odd outfits, bin bags, black scarves, blue snoods and the like.
I am sure and the incidence of the condition is sadly far too frequent among football fans, and among Arsenal fans it is epidemic. Moths to a candle perhaps ?
But thank goodness George set up this safe haven for those who of us who have to meet and interact with these chronic cases. Long may it flourish.
I am not an AKB but I know he knows a hell of a lot more than the many illogical idiots that I have to put up with at the Emirates at every home game. For example if they think a player is crap and he has a terrific game then they still won't see that he played very well today etc. A few months back they were on Santi's back (a typical mediocre AW signing) and he's been brilliant over the last couple of months, so, the idiots rather than admit they were wrong just move onto some other player to attack.
It's the self-importance that does my head in-idiots? I just ignore em.
I could have written this myself. Brilliant.
I have an opinion. I am not an experienced, qualified and talented expert with insider knowledge. And even experts make mistakes, that does not make an idiot cleverer than them. Why do people find that concept so difficult to grasp.
My congratulations on a well written article. However, I would suggest that your observations, whilst most certainly apply to a particular brand of Arsenal fan, is simply a reflection of society in general. You only have to watch any political debate to realise that most politicians are ignorant and stupid or more disturbingly, using peoples ignorace and stupidity to manipulate them into believing propaganda. Just like the anti-Wenger persuasion amoungst Arsenal fans, many have been manipulated into their tone of thought like the droves of UKIP supporters around the country, by misinformation, stupidity and prejudice.
Great post my first time on your blog and I love it ,, I love looking at the world in a positive way especially arsenal. The reason I support The Arsenal is because we do things differently , we have morals, norms and standards that were set by a long time ago which The Arsenal still follows this is why I support the team, this is why people who know football always praise arsenal. Those negative supporters are everywhere we had a facebook blog in south africa then there were a lot of negativity so we had to create a new blog on facebook only for those who supports the team through better or worse. Why because those dumb stupid anti arsenal supporters couldn't be learned the right.
Happy birthday and happy second anniversary PA!
Well done George, just remind the masses what this blog is about……sensible, evidence-based debate…..
stupidity and ignorance are everyday problems we all have to face, however there is something more within the AAA. We all know the media have, for a long time, had an agenda against us and the first successful overseas manager to grace our game. Historically us little englanders have not liked people coming from abroad telling us and showing us how to do things better. Why do you think basic managers like arry, fat sam and the welsh clogger are all held in such esteem by the press and the AAA and yet the cultured Proffesser is derided and abused. Rascism surely not? but I am ashamed to say its load and proud as a ukip purple poster.
next its self promotion, wheather youre need is to promote your waneing career, sell more badges and earings or re-invent a particular fan movement because the reason it was set up is no longer relevent, the main protaganists of the AAA all have their agendas and reasons to constantly critiscise the club. After all we know praise tends to get lost while a good slagging will always get you noticed.
In the main the disgruntled are frustrated fans not clever enough to think of comebacks to their mancity, manure and chelski mates who will obviously use whatever banter they can to slap the club and any representatives put in front of them. Many of these sheep use useless vengar and evil stan as a defence mechanism against a barracking. Agreement that your club is led by idiots is a great shield when a bloke in a new blue shirt is showing you all the photos of what his club has won since a few billion has been thrown at it. To be honest a feel almost sorry for these types and always suggest they should read a few ARSENAL history books and grow a pair a much more effective way of countering these plastic PL fans.
So it's official, the archangel Gabriel has finally proclaimed his arrival…..and Diego Costa has been charged….
Unfortunately, we live in a media driven society, and the likes of Adrian Durham (on TalkSport) are given the green light to carry out their moronic witch-hunts without comeback. He clearly hates Arsene, and although he claims to respect Arsenal as a club, he takes every opportunity to knock our club, and unfortunately, there are many stupid listeners who actually believe the nonsense he broadcasts, rather than looking at the facts and forming their own opinion.
I'd be interested to know what it was that originally sparked his obvious hatred of all things Arsenal, maybe they didn't offer him enough free champagne, when he was there 'reporting', who knows ?
I was a steward at Arsenal, and I can tell you first hand, that the rubbish these people in powerful positions broadcast, is well and truly taken in by the noisy minority because you hear them regurgitating it almost word for word on a Saturday afternoon, usually after a skinfull of lager, I suspect.
Yes, every true Arsenal fan craves success, and of course, when things aren't going brilliantly, it's fair to discuss the manager's options, we all have opinions after all, but what isn't fair, is to ignorantly slag a man off who's brought our wonderful football club so much, not just in terms of silverware, but possibly even more importantly, a footballing ethos which fans of clubs all around the world, admire.
Neuveau football fans, please our leave our club by the nearest available exit, Stamford Bridge will always welcome you !
It's the sense of false entitlement these fuckers have George, that boils my puss.
Us folk, on the sunshine bus are apparently accused of having no ambition and just love Arsene, not Arsenal. The fucknuts haven't an original sound bite in their tiny little minds.
Well done George. Keep fighting the good fight and lets also hope that the current team goes on to prove the doubters wrong. There are some good players there, and granted a bit of luck they have every chance of making quite a name for themselves as the next set of legends. If they do, and there are still elements of the fan base unhappy, then we will know that something most insidious is going on.
oh I forgot congratulations to George, Steww and Andrew and all those who have made this site a success and to make it feel like youve just wrapped yourself in a warm ARSENAL blanket everytime you visit here.
congrats george and the positively arsenal family. two years since the end of an era prophesy, right?
welcome gabriel to arsenal. at last the waiting is over.
costa deserves more than three match ban. this is not the first time. hope the club feel the full consequence of the ban as well. maureen can say what he likes, but if costa had been sent off 12 minutes into the game, liverpool would have won easily.
the laughable thing about Costa getting charged is, that he only got charged for one of the two stamps, and possibly the lesser of the two at that.
On signing Gabriel, I see he got photoed wearing an Arsenal shirt and holding an Arsenal shirt at the same time, must mean he is an idiot, after all the whingers said that is what it proved when Bielik done the same.
so the latest whinge from these ignorant and stupid fans are that Arsenal have signed Campbell up to a new long term contract, before sending him out on loan, as it only safeguards his future value if we want to sell him in the Summer.
Ditto from me. I was all set to give up my online Arsenal presence altogether until George and co. came to the rescue. I'm very glad for that as I would have missed interacting with all of you on the site.
Özil – 4 assists & 1 goal.
Not forgetting Arsenalandrew for priming the site?
Mr Wenger is blamed for the Dunkirk evacuation and of course, the formation of the Vichy Government, in 1940.
Others, of course, blame Mr Wenger for the 100 years war, some centuries ago.
Without giving the easting and northing of Mr Wenger's residence, it does contain the word – Willow! The willow tree bows before the tempest, as Lord Nelson was quoted as saying, rather than the oak, which can be uprooted.
Finsbury, for some reason, was not mentioned. Finsbury, in December 2011, stated or pointed to an article that suggested that The Emirates could be expanded. Of course, I had to look at the planning applications and some of the drawings for both The Emirates and the White Hart Lane Stadium!
The stadia are in different boroughs for a starter. Neither the police nor the residents affected, will allow any further expansion?
What is this to do with PA, research, research and research. Make sure that the source is noted in your archive, for the rebuttal of the ignorant!.
Man Utd's FA Cup game has been picked for TV coverage, this will be their 45th FAC tie in a row that has been live on TV, unbelievable.
Congrats on the two year anniversary PA. And thanks to the people who made it happen and all other contributors. This is one of very few blogs where the comment sections reflect the quality of the well written and thought out main articles. I share Passenals sentiment, this is really the only online football site I can go to after a loss or even a draw. I hope more Arsenal fans can find their way here.
I think the hatred among certain media people and doomers probably started long way back. It was always simmering but because Arsene was so successful it was held back. I think the knifes really came out of the shadows during the 2011 season. All summer it was building up and after the 8-2 loss they saw a chance to stick it in. A leading figure was martin samuel, the chief editor of daily fail where adrian durham and neil ashton are picking up their livings. If you look back at articles from that time you will see that samuel was driving a badly concealed campaign to get Arsene the sack. He didn't succeed but the tone was set and the naked aggressivity have remained since then.
FH, something insidious is going on. Keeping on like they do after Ozil, Sanchez and a FA cup win, that's really far beyond stupidity.
Correction, martin samuel is chief sport writer.
Meanwhile the post was one of the finest I have ever agreed with!!
Watching the highlights, or the lowlights, of Bareclona's win against Athletico Madrid.
The AM bubble will burst before long: to me they seem little more than a hyperactive Pulis side.
anicoll5 – and he only got a yellow card – surely physical violence towards an official is a red? Maybe only if your aim is good.
AM got frustrated because Barca just kept the ball in the second half. Haven't seen any stats but anything under 80% possession would surprise me.
Congratulations to all involved on your second anniversary – from a self-confessed idiot (sometimes).
Exactly what deal has Joel Campbell signed? Can't seem to find it anywhere.
Andy – Durham's son is a Gooner so one can only imagine it's his disappointment that Adrian Junior isn't following Dad's supporting footsteps that drives the pillock's passive aggression towards the club as expressed on his tragically inept Daily Arsenal feature and elsewhere.
I am lobbing some grenades on twitter. The knuckle daggers are beside themselves.
I reckon you can probably class pretty much all goners in 2 categories. I'm not talking AKB vs WOB's. No, no. I'm talking Goldfish vs Elephants. Those of us lucky enough to see the bigger perspective, i.e.: the long view. Vs those who can only see as far as their fingertip, on an outstretched arm…The short termers, as it were.
Wenger has plenty of faults. But, he's done his best to try to rectify them in the last few weeks/months/years/decades.
He's been called tactically inept more times than I care to remember. But, after beating City like that. I think, as was said on this very site, that it's more a case of the players available. If you haven't got a full squad, your tactics are restricted. That last Sunday, we had what we needed.
"History tells us…." that Arsene does not buy the players we need…..
Erm, well, errr, yeah he does. Just not when he can't get them at the right price and standard. In any other industry, that would be called common sense, or good business practice. But, of course, 'football' isn't supposed to be a business, is it?!
Yeah, we all wish we could've bought a proper DM and CB last august. But, as it happens, it wasn't that simple (see Manure's barren squad as proof, in fact, they still need a cb, and we've solved our conundrum already).
Trying to be realistic, I'd like to see Sissoko take Diaby's place in the squad. I'm sad for About. His is an unfortunate story. So much potential. But, a career ruined by the same bloody tackles that refs are still allowing these days. And now we have tw@'s like Savage with punditry like "that's a good foul". FFS, a self perpetuating cycle of mediocrity.
I digress, then again, i'm pissed, and it's 12:47am.
Loving this site. Nice to realise the world isn't ALL as dumb as it seems!
I'm thankful that I get to talk with like minded, incredibly Football literate and decent human beings.
Pires says Ivanovic is the best player at Chelsea. I agree. He is the best RB in the League. I hope he misses the game in Saturday.
Gains – how dare you call me a decent human being. I've made a career out of not being anything of the sort. I demand an instant retraction of such slander.
It looks as if the depth of the Chelsea squad will be tested over the next few games, as indeed has been the case with Man City. Its not easy playing top games without your best players. As for us, the angel Gabriel came down, and glory shone around. Well, let's hope so anyhow – and lets also hope that Danny W is recuperating nicely and is ready to re-join the fray soon: I fancy him to make a big impact in the second half of the season.
This is an excellent site, and I love all the comments. I wonder though whether some of our regular writers shouldn't undertake to produce a piece each week so that we can look forward to a new post nearly every day.
I am all for more writing on the site FH – it would be a bit daunting for people (i.e. me) to say I will definitely produce a piece every week though. Setting aside the lame 'busy at work' excuse there are some weeks when I would struggle to find anything to write about Arsenal or generally. When the spark is lit though, the bonfire blazes – modest aren't I ?
One advantage we have over the media rabble, and quite a few bloggers from what I can see, is that we do not have to churn out a piece every day to keep the hit rate on the site up and ensure the cash keeps rolling in. There are times when silence and contemplation may be sufficient.
The founding fathers of PA were George, Adi and Andrew!
Re: The new Arsenal Stadium.
No requirement for a Planning submission for a prospective project that if successful would only be valid for a few years. An official submission that would've failed (transport infrastructure etc.) would count against future applications.
There were definitely conversations had between councillors, MPs and the club about greater capacity in the early pre-planning design phases of the project. Which is normal. It'd be a worry if the club hadn't of had such healthy dialougue from the very beginning *coughs Tottenham coughs*. And about improving access to Holloway Road & Arsenal tube stations. But funding as you know better then is tricky for such works – the gold used for the refurbishment of Highbury & Islington Station was found under the Olympian/East London Line expansion umbrella.
It's possible to argue that the other two smaller stations should've been refurbished anyway* when the stadium was built. So, the club did well to get the stadium built as it is? Add in Finsbury Park and Harirngay Council's desire to rake in the lucre from concerts that wreck the park and it's almost a necessity to refurbish these stations as it stands.
*Ignoring mid-week games, and horrible schedules from broadcasters, if the access to the local stations would be improved would we see less people leaving early on a Saturday etc.? As discussed with Frank I don't think so, the self-entitled fan/consumer/self-declared Expert is too important for such considerations?
"Emirates Stadium is a four-tiered design, simply adding an extra tier(just like the overlapping tier between the first and second tier) will add the capacity required or simply to keep adding steps to the original stadium as it is, ie increase the steps from the back row.
It has been described as a "future proof" design. When building a house or building you might not have permission to build over a certain area or up to a specific height but this does not mean you can't make your foundations strong enough or to chuck in a couple of extra beams all to help facilitate with any future works or extensions etc. The same technique people use to build up their homes over time as they work they way around Planning issues. Most products we use in our everyday lives are over-engineered for safety etc. (you'd hope!), no different to that.
The above quote is from a someone who claims to have worked alongside designers on the project. There's also a consideration as to why the pitch is raised so high with that slope (unlike the Amex for example), i believe it's to allow another undercut and add some seating whilst lowering the pitch but that could be wrong.
The existing stadium is not taller then surrounding buidings because the stadium was sunk so deep into the site – after excavations a large lake covering the site formed from ground water had to be pumped out of the cleared before foundation work could begin. It's my understanding that the act of sinking the stadium so low allows the potential to go up at a later date if desired. That could be wrong but it all makes sense to me.
Whether one follows Arsenal for 50 years or since 2004, you have the right to be ignorant. Whenever Arsenal lost in the past (maybe pre-invincibles), I dealt with it in private, got over it and looked to the next game. Now (and since 2004) there are a growing number of fellow "fans" who want call and tell me what went wrong and why – furious that Arsenal is such "a terrible team".
I've stopped answering these calls as I think I might have found out the simple basis for, a kind of poster-wankers' fury after losses, and complete silence after amazing wins.
They talk about the time and money they invest in Arsenal – and that's where I stop listening. These people are not Arsenal fans – they're not even football fans – they're CONSUMERS. And when their product doesn't deliver they feel entitled to some sort of compensation. I feel sad for them and for football fans who have to deal with them.
And I applaud professionals who completely ignore them.
I used to try to ask them questions about why they, for instance, would play Gibbs instead of Monreal on a given day (in hindsight of course). I ask them how the player's form was at training the previous week, how his diet was working and how his general mood and motivation was on that given week or if they had any issues physically or socially. They look at me like I'm their grandmother, not knowing anything about football. They seem to think all footballers are robots who just need to be placed on the pitch and they will perform perfect.
An adivce to these consumers, would be to start following your team by their side instead of with only Your own argus eyes.
Thank you for a very refreshing blog in the midst of the sea of consumer blogs!


text:
Dec/Jan 2015
Mansplanation Nation
How two decades of nonfiction best sellers teem with fake self-assurance—and testosterone
THERE'S SOMETHING endearing about people who loudly proclaim their love of books. Forget the suspicions kicked up by trumpeting something as universal as "books" as one's true love (also loves: baby animals, pizza, oxygen); forget the anachronism of loving physical objects in space and not some "long read" floating in the ether; forget the self-congratulatory tone that hints at a closetful of book-festival tote bags emblazoned with Shakespeare's face. Proudly championing books still counts as a true act of courage, a way of raging against the dying of the page.
In embracing the book as an object, a concept, a signifier, and a religion, though, one often forgets the texts that answer to the name of "book" these days. A perusal of the best-seller lists of the past two decades indicates that the most popular books might more accurately be described as billionaire-themed smut, extended blast of own-horn tooting, Sociology 101 textbook with sexy one-word title, unfocused partisan rant, 250-page-long stand-up routine, text version of Muppets Most Wanted with self-serious humans where the Muppets should be, folksy Christian sci-fi/fantasy, pseudohistorical rambling by non-historian, and simpleton wisdom trussed up in overpriced yoga pants.
And if we narrow our focus to the No. 1 spot on the New York Times' hardcover-nonfiction best-seller list in the twenty years since Bookforum was first published, we discover an increasingly shrill, two-decade-long cry for help from the American people. As I Want to Tell You by O. J. Simpson (1995) and The Royals by Kitty Kelley (1997) yield to Dude, Where's My Country? by Michael Moore (2003) and Plan of Attack by Bob Woodward (2004), you can almost see the support beams of the American dream tumbling sideways, the illusions of endless peace and rapidly compounding prosperity crumbling along with it. The leisurely service-economy daydreams of the late '90s left us plenty of time to spend Tuesdays with Morrie and muse about The Millionaire Next Door or get worked up about The Day Diana Died. But such luxe distractions gave way to The Age of Turbulence, as our smug belief in the good life was crushed under the weight of 9/11, the Great Recession, and several murky and seemingly endless wars. Suddenly the world looked Hot, Flat, and Crowded, with the aggressively nostalgic waging an all-out Assault on Reason. In such a Culture of Corruption, if you weren't Going Rogue you inevitably found yourself Arguing with Idiots.
Tracking this borderline-hysterical parade of titles can feel like watching America lose its religion in slow motion. Except, of course, this also meant there was a boom industry in patiently teaching faith-shaken Americans precisely how to believe again. Since the new century began, the top spot on the best-seller list most years has been all but reserved for these morale-boosting bromides: Seemingly every politician, blowhard, and mouthpiece willing to instruct us on how to reclaim our threadbare security blanket of patriotism, cultural supremacy, and never-ending growth and prosperity has turned up in that prestigious limelight. If that list is any indication, we're desperate for something to ease our fears—or to feed directly into those fears with the kind of angry rhetoric that plays so well on cable news.
It makes simple sense, then, that the most popular nonfiction authors of our day might be characterized by a certain overconfident swagger, the modern prerequisite for mattering in a mixed-up, insecure world. More often than not, these "authors" aren't authors at all, in the strict sense of carefully pondering their ideas and diction and lovingly crafting an argument sturdy yet supple enough to carry their work over to a mass readership. In place of the William Whytes, Vance Packards, and Betty Friedans of earlier, more confident chapters of our national bestsellerdom, we have promoted a generation of alternately jumpy and anxious shouters. Generally, these public figurines fall into one of two categories: television personalities who have hired hands to cobble together their sound bites; and middling nonwriters suffering from extended delusions of grandeur. When it comes to hardcover nonfiction, a realm in which (for now at least) books often are physical objects, plunked down on coffee tables as signifiers or comfort totems, Americans don't seem to be looking for authors or writers or artists so much as lifestyle brands in human form: placeholder thinkers whose outrage, sense of irony, or general dystopian worldview matches their own, whether it's Glenn Beck, Barack Obama, or Chelsea Handler.
It's a glum corollary of such market forces that these very popular nonfiction books aren't books in the traditional sense of the word so much as aspirational impulse buys. They imbue their owners with a feeling of achievement and well-being upon purchase, a feeling that crucially does not require the purchaser to actually sit and read the book in question. Substantive, thoughtful books might pervade other lists (e-book, trade paperback, etc.), but when it comes to the top position on the hardcover-nonfiction roster, accessory books by high-profile bloviators typically dominate, from Al Franken's Rush Limbaugh Is a Big Fat Idiot to Ann Coulter's Godless to Edward Klein's The Amateur to Dinesh D'Souza's America.
And while it's impossible to argue that people aren't purchasing books by Laura Ingraham and Sean Hannity and Sarah Palin and Dick Cheney, it's also difficult to imagine that people are actually reading these books from cover to cover. These are identity accessories more than books—the red-state equivalent of what a funky watch or rakishly arranged silk scarf might be in our notoriously shallow and decadent coastal metropolises. It also says something about the current state of liberal culture that the most popular blue-state authors—Franken, Jon Stewart, Stephen Colbert—are, accessory-wise, more like a bow tie that squirts water in your face. Solemn, poorly written tomes on everything that's wrong with this country are on one side of the fence, ironic detachment, incredulity, and clown cars on the other. Or as Bill O'Reilly put it when he appeared on the Daily Show in 2004, "You've got stoned slackers watching your dopey show every night, and they can vote."
Bemoaning the stoned slackers of the world might not be a wise choice for the author responsible for what we might term the "Mansplanations of History for Stoned Slackers" series: Killing Lincoln (2011), Killing Kennedy (2012), Killing Jesus (2013), and Killing Patton (2014), every single one of which rested comfortably in the No. 1 spot for weeks at a time. In fact, over the past two decades, O'Reilly has been in the position with seven different books for forty-eight weeks total. How does he do it?
Here's a clue: If mansplaining means "to comment on or explain something to a woman in a condescending, overconfident, and often inaccurate or oversimplified manner," then O'Reilly clearly sees America as a suggestible (though fortunately profligate) woman in desperate need of a seemingly limitless amount of remedial mansplanation. And to be fair, if the most popular nonfiction books are a reliable guide, Americans crave mansplaining the way starving rats crave half-eaten hamburgers. We'd like Beck—not an education professor—to mansplain the Common Core to us. We want Malcolm Gladwell—not a neuroscientist or a sociologist or psychologist—to mansplain everything from the laws of romantic attraction to epidemiology. And we want O'Reilly—not an actual historian—to mansplain Lincoln, Kennedy, Jesus, and all of the other great mansplaining icons of history. We want mansplainers mansplaining other mansplainers. We dig hot mansplainer-on-mansplainer action.
Bill O'Reilly, 2013.
Mostly, though, what Americans seem to want, based on our hardcover purchases, is some way to beg, borrow, or steal our way back to the good life. We want someone to blame. We want someone to fix things. Republicans have capitalized most effectively on this longing, and have gained far more leverage from it over the years than Democrats, because they trust former neurosurgeons, TV-talk-show hosts, bloggers, radio personalities, and pretty much anyone who's ever appeared on Fox News to hold forth on the lost American dream. Whom do Democrats trust? Current or former presidents, current or former first ladies, and . . . comedians. On the Right, pretty much anyone with a bad temper is welcomed into the fray. On the Left, you'd better be on TV, but only CSPAN or Comedy Central will do.
It's unclear how the toxically partisan mansplaining tome became the go-to hardcover-nonfiction best seller when obviously there are many other varieties of best-selling nonfiction in the sea: the folksy yarns packed with down-home wisdom (Tuesdays with Morrie), the "God Is My Copilot" tomes (Conversations with God, Heaven Is for Real, Proof of Heaven), the no less zealous "Dog Is My Copilot" titles (Marley & Me, Inside of a Dog), the detailed retellings of historical events (Unbroken, The Boys in the Boat), and the managerial talismans (Who Moved My Cheese?). Such titles still fit the bill as aspirational accessories, with one important caveat: People actually seem to read them. It may be a presumptuous observation, or just an intuition, but those hardcover copies of It Takes a Village and Decision Points and The Way Forward usually look pristine and immovable in their hallowed roles as oversize paperweights or propagandist doorstops, whereas the average copy of The Four Agreements looks like it's been through a few dozen washing-machine cycles.
And it's telling that such books are often segregated onto separate lists. The New York Times has a business-book best-seller list and an "Advice, How-To & Miscellaneous" list, presumably to shine more glory on, say, Walter Isaacson than on the author of 10-Day Green Smoothie Cleanse. Still, the wide gap between what people will tell you they're reading (shiny hardcovers, good mostly for a few cocktail-party talking points) and what they're actually reading (a dog-eared copy of Quiet) underscores a central strain of the public/private interface in American life. Other nations may perceive us as hopelessly frank and confessional, but the reality of stateside social dynamics is much more of a Jekyll-and-Hyde affair, in which a polished professional pretends to be preoccupied with solemn sociopolitical concerns while privately obsessing over love, personal empowerment, and green-smoothie diets.
What is the source of our shame, exactly? Perhaps that the much-heralded partisan mansplainers of the hardcover list—women among them—may be some of the most unfit writers ever to put pen to paper ("I started running again, and it wasn't long before I started feeling pretty good, because I started thinking about some pretty good things." —Sarah Palin, Going Rogue). Thoughtful, poetic nonfiction writers are sequestered in the paperback, e-book, and "how-to" ghetto because it's somehow more respectable to craft digressive, empty tomes that essentially consist of reshuffling fifteen key words over and over again—freedom, liberty, solutions, leadership, founding principles, prosperity—until writer and reader alike chew their own paws off just to escape the steel trap of syntactic pandering.
The easiest explanation is that a newly enfeebled America craves mansplanations and shuns humility. Humility conjures falling stock prices and ineffectual wars and citizens who don't feel proud so much as desperate, and maybe even a little embarrassed—by Enron, by Katrina, by Ferguson, by the 101 cruel missteps of the past two decades. Humility is a woman thing, and by the hectoring logic of our mansplaining franchises, woman things are almost always embarrassing and bad. Novels by women are chick lit. Essays by women are "girl-friendly tales." Professional journalists are mommy bloggers. Man things deserve shiny hardcovers and pride of place on the coffee table. Woman things get flimsy covers with cursive writing and a leopard-print high heel illustrated on them, and they're shoved into purses and nightstand drawers. Humility and self-reflection are for the weak or silly.
But there's a key, and revealing, development overlooked amid this division of culture-saving labor. Many of these theoretically insignificant paperbacks aren't just embraced in the truest, pored-over, book-lover sense of the word; they're arguably more popular over time than a five-hundred-page political doorstop. The Hite Report, Shere Hite's detailed examination of female sexuality, may represent the ultimate in softcover ubiquity: Hite's publisher originally printed two thousand copies, mansplaining to her that "people are tired of feminism and sex." Since then, fifty million copies have sold worldwide. Hite's book, and others quietly acclaimed by women en masse, suggests that a more private story of American life is unfolding on the margins of the hardcover list, and humility and self-reflection are the central words in play there.
Although The Hite Report may have represented a beacon of liberation that was soon clouded over by a storm of regressive books like Women Who Love Too Much (1985), the arc of the best-selling universe may be bending toward liberation once again. Since the nadir of The Rules (1995), which instructed women to imitate nonchalant, overscheduled alien life-forms in order to lure unsuspecting human males onto the marital mother ship, one senses a slow, grueling march to empowerment in the paperback best-seller list, not unlike the slow, grueling march recounted by Cheryl Strayed in her omnipresent best seller Wild (2012). Because, despite a few undeniable low points (Marry Him!, To Hell With All That), some of the most popular softcover books being stuffed into shoulder bags and nightstands—How to Be a Woman, The Liars' Club, Bossypants, and, yes, Eat, Pray, Love—mark a dynamic and surefooted departure from the blind swagger of hardcover mansplanation. Instead of listening to men, serving men, tagging and tracking a suitable man, or parroting mansplanation after mansplanation in order to peacefully sally forth in a man's world, many female authors are serving up unique prose about finding gratification and solitude against a backdrop of global chaos. Even Lean In, in all of its One Percenter Mansplains Work-Life Balance to the Rest of Us absurdity, represents a genuine attempt to encourage women not to succumb to the domestic undertow of the zeitgeist. No matter how many dozens of handservants Sheryl Sandberg leans on in order to facilitate her own leaning in, her message—that fulfilling work makes a woman's life better—is worthwhile, if depressingly exotic.
The guardians of the status quo will continue working assiduously to protect so-called elite turf, waving off paperbacks and e-books and self-published books as if the real interests of the reading public weren't good enough for the sacred hardcover ground occupied by vainglorious celebrities and TV-talk-show blowhards. But in the shadow of the hardcover best-seller list, there is a much wider and more varied universe of writers and readers. Whether these titles are purchased at a store, downloaded onto phones and e-readers, delivered by Jeff Bezos's drones, or carved into stone in some blurry dystopian future, original thinkers will keep writing them, and book lovers will find a way to read them.
Heather Havrilesky is the author of the memoir Disaster Preparedness (Riverhead, 2010).

redpajama_set_name: RedPajamaCommonCrawl


text:
import { fakeAsync, TestBed } from '@angular/core/testing';
import { AlfrescoApiService } from './alfresco-api.service';
import { AuthenticationService } from './authentication.service';
import { CookieService } from './cookie.service';
import { AppConfigService } from '../app-config/app-config.service';
import { setupTestBed } from '../testing/setup-test-bed';
import { CoreTestingModule } from '../testing/core.testing.module';
import { TranslateModule } from '@ngx-translate/core';
import { PersonEntry } from '@alfresco/js-api';

declare let jasmine: any;

describe('AuthenticationService', () => {
    let apiService: AlfrescoApiService;
    let authService: AuthenticationService;
    let appConfigService: AppConfigService;
    let cookie: CookieService;

    setupTestBed({
        imports: [
            TranslateModule.forRoot(),
            CoreTestingModule
        ]
    });

    beforeEach(() => {
        sessionStorage.clear();
        localStorage.clear();
        apiService = TestBed.inject(AlfrescoApiService);
        authService = TestBed.inject(AuthenticationService);

        cookie = TestBed.inject(CookieService);
        cookie.clear();

        jasmine.Ajax.install();
        appConfigService = TestBed.inject(AppConfigService);
        appConfigService.config.pagination = {
            supportedPageSizes: []
        };
    });

    afterEach(() => {
        cookie.clear();
        jasmine.Ajax.uninstall();
    });

    describe('kerberos', () => {
        beforeEach(() => {
            appConfigService.config.providers = 'ALL';
            appConfigService.config.auth = { withCredentials: true };
        });

        it('should emit login event for kerberos', (done) => {
            spyOn(authService.peopleApi, 'getPerson').and.returnValue(Promise.resolve(new PersonEntry()));
            spyOn(authService.profileApi, 'getProfile').and.returnValue(Promise.resolve({}));
            const disposableLogin = authService.onLogin.subscribe(() => {
                expect(authService.profileApi.getProfile).toHaveBeenCalledTimes(1);
                expect(authService.peopleApi.getPerson).toHaveBeenCalledTimes(1);
                disposableLogin.unsubscribe();
                done();
            });
            appConfigService.load();
        });
    });

    describe('when the setting is ECM', () => {

        const fakeECMLoginResponse = { type: 'ECM', ticket: 'fake-post-ticket' };

        beforeEach(() => {
            appConfigService.config.providers = 'ECM';
            appConfigService.load();
            apiService.reset();
        });

        it('should not require cookie service enabled for ECM check', () => {
            spyOn(cookie, 'isEnabled').and.returnValue(false);
            spyOn(authService, 'isRememberMeSet').and.returnValue(false);
            spyOn(authService, 'isECMProvider').and.returnValue(true);
            spyOn(authService, 'isOauth').and.returnValue(false);
            spyOn(apiService, 'getInstance').and.callThrough();

            expect(authService.isEcmLoggedIn()).toBeFalsy();
            expect(apiService.getInstance).toHaveBeenCalled();
        });

        it('should check if loggedin on ECM in case the provider is ECM', () => {
            spyOn(authService, 'isEcmLoggedIn').and.returnValue(true);
            expect(authService.isLoggedInWith('ECM')).toBe(true);
        });

        it('should require remember me set for ECM check', () => {
            spyOn(cookie, 'isEnabled').and.returnValue(true);
            spyOn(authService, 'isRememberMeSet').and.returnValue(false);
            spyOn(authService, 'isECMProvider').and.returnValue(true);
            spyOn(authService, 'isOauth').and.returnValue(false);
            spyOn(apiService, 'getInstance').and.callThrough();

            expect(authService.isEcmLoggedIn()).toBeFalsy();
            expect(apiService.getInstance).not.toHaveBeenCalled();
        });

        it('[ECM] should return an ECM ticket after the login done', (done) => {
            const disposableLogin = authService.login('fake-username', 'fake-password').subscribe(() => {
                expect(authService.isLoggedIn()).toBe(true);
                expect(authService.getTicketEcm()).toEqual('fake-post-ticket');
                expect(authService.isEcmLoggedIn()).toBe(true);
                disposableLogin.unsubscribe();
                done();
            });

            jasmine.Ajax.requests.mostRecent().respondWith({
                status: 201,
                contentType: 'application/json',
                responseText: JSON.stringify({ entry: { id: 'fake-post-ticket', userId: 'admin' } })
            });
        });

        it('[ECM] should login in the ECM if no provider are defined calling the login', fakeAsync(() => {
            const disposableLogin = authService.login('fake-username', 'fake-password').subscribe((loginResponse) => {
                expect(loginResponse).toEqual(fakeECMLoginResponse);
                disposableLogin.unsubscribe();
            });

            jasmine.Ajax.requests.mostRecent().respondWith({
                status: 201,
                contentType: 'application/json',
                responseText: JSON.stringify({ entry: { id: 'fake-post-ticket', userId: 'admin' } })
            });
        }));

        it('[ECM] should return a ticket undefined after logout', fakeAsync(() => {
            const disposableLogin = authService.login('fake-username', 'fake-password').subscribe(() => {
                const disposableLogout = authService.logout().subscribe(() => {
                    expect(authService.isLoggedIn()).toBe(false);
                    expect(authService.getTicketEcm()).toBe(null);
                    expect(authService.isEcmLoggedIn()).toBe(false);
                    disposableLogin.unsubscribe();
                    disposableLogout.unsubscribe();
                });

                jasmine.Ajax.requests.mostRecent().respondWith({
                    status: 204
                });
            });

            jasmine.Ajax.requests.mostRecent().respondWith({
                status: 201,
                contentType: 'application/json',
                responseText: JSON.stringify({ entry: { id: 'fake-post-ticket', userId: 'admin' } })
            });
        }));

        it('[ECM] should return false if the user is not logged in', () => {
            expect(authService.isLoggedIn()).toBe(false);
            expect(authService.isEcmLoggedIn()).toBe(false);
        });

        it('[ECM] should set/get redirectUrl when provider is ECM', () => {
            authService.setRedirect({ provider: 'ECM', url: 'some-url' });

            expect(authService.getRedirect()).toEqual('some-url');
        });

        it('[ECM] should set/get redirectUrl when provider is BPM', () => {
            authService.setRedirect({ provider: 'BPM', url: 'some-url' });

            expect(authService.getRedirect()).toBeNull();
        });

        it('[ECM] should return null as redirectUrl when redirectUrl field is not set', () => {
            authService.setRedirect(null);

            expect(authService.getRedirect()).toBeNull();
        });

        it('[ECM] should return isECMProvider true', () => {
            expect(authService.isECMProvider()).toBe(true);
        });

        it('[ECM] should return isBPMProvider false', () => {
            expect(authService.isBPMProvider()).toBe(false);
        });

        it('[ECM] should return isALLProvider false', () => {
            expect(authService.isALLProvider()).toBe(false);
        });

        it('[ECM] should return isBpmLoggedIn false', () => {
            expect(authService.isBpmLoggedIn()).toBe(false);
        });
    });

    describe('when the setting is BPM', () => {

        beforeEach(() => {
            appConfigService.config.providers = 'BPM';
            appConfigService.load();
            apiService.reset();
        });

        it('should require remember me set for BPM check', () => {
            spyOn(cookie, 'isEnabled').and.returnValue(true);
            spyOn(authService, 'isRememberMeSet').and.returnValue(false);
            spyOn(authService, 'isBPMProvider').and.returnValue(true);
            spyOn(authService, 'isOauth').and.returnValue(false);
            spyOn(apiService, 'getInstance').and.callThrough();

            expect(authService.isBpmLoggedIn()).toBeFalsy();
            expect(apiService.getInstance).not.toHaveBeenCalled();
        });

        it('should check if loggedin on BPM in case the provider is BPM', () => {
            spyOn(authService, 'isBpmLoggedIn').and.returnValue(true);
            expect(authService.isLoggedInWith('BPM')).toBe(true);
        });

        it('should not require cookie service enabled for BPM check', () => {
            spyOn(cookie, 'isEnabled').and.returnValue(false);
            spyOn(authService, 'isRememberMeSet').and.returnValue(false);
            spyOn(authService, 'isBPMProvider').and.returnValue(true);
            spyOn(apiService, 'getInstance').and.callThrough();

            expect(authService.isBpmLoggedIn()).toBeFalsy();
            expect(apiService.getInstance).toHaveBeenCalled();
        });

        it('[BPM] should return an BPM ticket after the login done', (done) => {
            const disposableLogin = authService.login('fake-username', 'fake-password').subscribe(() => {
                expect(authService.isLoggedIn()).toBe(true);
                // cspell: disable-next
                expect(authService.getTicketBpm()).toEqual('Basic ZmFrZS11c2VybmFtZTpmYWtlLXBhc3N3b3Jk');
                expect(authService.isBpmLoggedIn()).toBe(true);
                disposableLogin.unsubscribe();
                done();
            });

            jasmine.Ajax.requests.mostRecent().respondWith({
                status: 200,
                contentType: 'application/json'
            });
        });

        it('[BPM] should return a ticket undefined after logout', (done) => {
            const disposableLogin = authService.login('fake-username', 'fake-password').subscribe(() => {
                const disposableLogout = authService.logout().subscribe(() => {
                    expect(authService.isLoggedIn()).toBe(false);
                    expect(authService.getTicketBpm()).toBe(null);
                    expect(authService.isBpmLoggedIn()).toBe(false);
                    disposableLogout.unsubscribe();
                    disposableLogin.unsubscribe();
                    done();
                });

                jasmine.Ajax.requests.mostRecent().respondWith({
                    status: 200
                });
            });

            jasmine.Ajax.requests.mostRecent().respondWith({
                status: 200
            });
        });

        it('[BPM] should return an error when the logout return error', (done) => {
            authService.logout().subscribe(
                () => {
                },
                (err: any) => {
                    expect(err).toBeDefined();
                    expect(authService.getTicketBpm()).toBe(undefined);
                    done();
                });

            jasmine.Ajax.requests.mostRecent().respondWith({
                status: 403
            });
        });

        it('[BPM] should set/get redirectUrl when provider is BPM', () => {
            authService.setRedirect({ provider: 'BPM', url: 'some-url' });

            expect(authService.getRedirect()).toEqual('some-url');
        });

        it('[BPM] should set/get redirectUrl when provider is ECM', () => {
            authService.setRedirect({ provider: 'ECM', url: 'some-url' });

            expect(authService.getRedirect()).toBeNull();
        });

        it('[BPM] should return null as redirectUrl when redirectUrl field is not set', () => {
            authService.setRedirect(null);

            expect(authService.getRedirect()).toBeNull();
        });

        it('[BPM] should return isECMProvider false', () => {
            expect(authService.isECMProvider()).toBe(false);
        });

        it('[BPM] should return isBPMProvider true', () => {
            expect(authService.isBPMProvider()).toBe(true);
        });

        it('[BPM] should return isALLProvider false', () => {
            expect(authService.isALLProvider()).toBe(false);
        });
    });

    describe('remember me', () => {

        beforeEach(() => {
            appConfigService.config.providers = 'ECM';
            appConfigService.load();
            apiService.reset();
        });

        it('[ECM] should save the remember me cookie as a session cookie after successful login', (done) => {
            const disposableLogin = authService.login('fake-username', 'fake-password', false).subscribe(() => {
                expect(cookie['ALFRESCO_REMEMBER_ME']).not.toBeUndefined();
                expect(cookie['ALFRESCO_REMEMBER_ME'].expiration).toBeNull();
                disposableLogin.unsubscribe();
                done();
            });

            jasmine.Ajax.requests.mostRecent().respondWith({
                status: 201,
                contentType: 'application/json',
                responseText: JSON.stringify({ entry: { id: 'fake-post-ticket', userId: 'admin' } })
            });
        });

        it('[ECM] should save the remember me cookie as a persistent cookie after successful login', (done) => {
            const disposableLogin = authService.login('fake-username', 'fake-password', true).subscribe(() => {
                expect(cookie['ALFRESCO_REMEMBER_ME']).not.toBeUndefined();
                expect(cookie['ALFRESCO_REMEMBER_ME'].expiration).not.toBeNull();
                disposableLogin.unsubscribe();

                done();
            });

            jasmine.Ajax.requests.mostRecent().respondWith({
                status: 201,
                contentType: 'application/json',
                responseText: JSON.stringify({ entry: { id: 'fake-post-ticket', userId: 'admin' } })
            });
        });

        it('[ECM] should not save the remember me cookie after failed login', (done) => {
            const disposableLogin = authService.login('fake-username', 'fake-password').subscribe(
                () => {},
                () => {
                    expect(cookie['ALFRESCO_REMEMBER_ME']).toBeUndefined();
                    disposableLogin.unsubscribe();
                    done();
                });

            jasmine.Ajax.requests.mostRecent().respondWith({
                status: 403,
                contentType: 'application/json',
                responseText: JSON.stringify({
                    error: {
                        errorKey: 'Login failed',
                        statusCode: 403,
                        briefSummary: '05150009 Login failed',
                        stackTrace: 'For security reasons the stack trace is no longer displayed, but the property is kept for previous versions.',
                        descriptionURL: 'https://api-explorer.alfresco.com'
                    }
                })
            });
        });
    });

    describe('when the setting is both ECM and BPM ', () => {

        beforeEach(() => {
            appConfigService.config.providers = 'ALL';
            appConfigService.load();
            apiService.reset();
        });

        it('[ALL] should return both ECM and BPM tickets after the login done', (done) => {
            const disposableLogin = authService.login('fake-username', 'fake-password').subscribe(() => {
                expect(authService.isLoggedIn()).toBe(true);
                expect(authService.getTicketEcm()).toEqual('fake-post-ticket');
                // cspell: disable-next
                expect(authService.getTicketBpm()).toEqual('Basic ZmFrZS11c2VybmFtZTpmYWtlLXBhc3N3b3Jk');
                expect(authService.isBpmLoggedIn()).toBe(true);
                expect(authService.isEcmLoggedIn()).toBe(true);
                disposableLogin.unsubscribe();
                done();
            });

            jasmine.Ajax.requests.at(0).respondWith({
                status: 201,
                contentType: 'application/json',
                responseText: JSON.stringify({ entry: { id: 'fake-post-ticket', userId: 'admin' } })
            });

            jasmine.Ajax.requests.at(1).respondWith({
                status: 200
            });
        });

        it('[ALL] should return login fail if only ECM call fail', (done) => {
            const disposableLogin = authService.login('fake-username', 'fake-password').subscribe(
                () => {},
                () => {
                    expect(authService.isLoggedIn()).toBe(false, 'isLoggedIn');
                    expect(authService.getTicketEcm()).toBe(null, 'getTicketEcm');
                    // cspell: disable-next
                    expect(authService.getTicketBpm()).toBe(null, 'getTicketBpm');
                    expect(authService.isEcmLoggedIn()).toBe(false, 'isEcmLoggedIn');
                    disposableLogin.unsubscribe();
                    done();
                });

            jasmine.Ajax.requests.at(0).respondWith({
                status: 403
            });

            jasmine.Ajax.requests.at(1).respondWith({
                status: 200
            });
        });

        it('[ALL] should return login fail if only BPM call fail', (done) => {
            const disposableLogin = authService.login('fake-username', 'fake-password').subscribe(
                () => {},
                () => {
                    expect(authService.isLoggedIn()).toBe(false);
                    expect(authService.getTicketEcm()).toBe(null);
                    expect(authService.getTicketBpm()).toBe(null);
                    expect(authService.isBpmLoggedIn()).toBe(false);
                    disposableLogin.unsubscribe();
                    done();
                });

            jasmine.Ajax.requests.at(0).respondWith({
                status: 201,
                contentType: 'application/json',
                responseText: JSON.stringify({ entry: { id: 'fake-post-ticket', userId: 'admin' } })
            });

            jasmine.Ajax.requests.at(1).respondWith({
                status: 403
            });
        });

        it('[ALL] should return ticket undefined when the credentials are wrong', (done) => {
            const disposableLogin = authService.login('fake-username', 'fake-password').subscribe(
                () => {},
                () => {
                    expect(authService.isLoggedIn()).toBe(false);
                    expect(authService.getTicketEcm()).toBe(null);
                    expect(authService.getTicketBpm()).toBe(null);
                    expect(authService.isBpmLoggedIn()).toBe(false);
                    expect(authService.isEcmLoggedIn()).toBe(false);
                    disposableLogin.unsubscribe();
                    done();
                });

            jasmine.Ajax.requests.at(0).respondWith({
                status: 403
            });

            jasmine.Ajax.requests.at(1).respondWith({
                status: 403
            });
        });

        it('[ALL] should set/get redirectUrl when provider is ALL', () => {
            authService.setRedirect({ provider: 'ALL', url: 'some-url' });

            expect(authService.getRedirect()).toEqual('some-url');
        });

        it('[ALL] should set/get redirectUrl when provider is BPM', () => {
            authService.setRedirect({ provider: 'BPM', url: 'some-url' });

            expect(authService.getRedirect()).toEqual('some-url');
        });

        it('[ALL] should set/get redirectUrl when provider is ECM', () => {
            authService.setRedirect({ provider: 'ECM', url: 'some-url' });

            expect(authService.getRedirect()).toEqual('some-url');
        });

        it('[ALL] should return null as redirectUrl when redirectUrl field is not set', () => {
            authService.setRedirect(null);

            expect(authService.getRedirect()).toBeNull();
        });

        it('[ALL] should return isECMProvider false', () => {
            expect(authService.isECMProvider()).toBe(false);
        });

        it('[ALL] should return isBPMProvider false', () => {
            expect(authService.isBPMProvider()).toBe(false);
        });

        it('[ALL] should return isALLProvider true', () => {
            expect(authService.isALLProvider()).toBe(true);
        });
    });
});

redpajama_set_name: RedPajamaGithub