text:
One Fifth of First Time Buyers Scrap Goal of Buying a Home
Chris Lloyd
One in five young Brits have abandoned the ideal of owning a home thanks to the ongoing difficulties in the mortgage market. That's the findings of a new survey by mortgage lender Halifax which believes the problems facing first time buyers will have wider ramifications for society and the employment market over the next few years.
Almost three quarters of young people believe that the country is divided socially and economically between people who can and cannot buy a home. This comes after new figures found that the average asking price of a property in the UK now exceeds a quarter of a million pounds. We look at the problems facing first time buyers and young people in the large mortgage market.
70 percent of people don't think government intervention will help them get a high value mortgage
The Halifax questioned 8,051 people aged between 25 and 40 and found that a fifth of people had given up on the ambition of owning their own home. In addition, more than 70 percent said the country is divided socially and economically between people who could and could not buy a property.
Just over a third of respondents (around 36 percent) were of the opinion that they would like to buy a home but they do not think they would ever be able to do so.
"Home ownership is clearly still an important goal for a lot of people, but fewer and fewer people consider it to be something they'll be able to achieve," said Halifax's Mortgages Director, Craig McKinlay.
"Renters say they never feel properly settled and fear they will struggle to retire, so the social impact of this shift is significant. More needs to be done to redress the balance, both through making homeownership more accessible and offering more stability through the rental sector."
The Halifax survey also found that the number of Brits choosing to live in rented accommodation has reached 22 million households – the highest level since the 1990s.
What first time buyers think
And, young people in Britain are also unconvinced by government plans to help home buyers. Around seven in ten respondents said that they didn't believe that schemes such as the Funding for Lending initiative and the Chancellor's new mortgage guarantee plan would help them. The International Business Times reports that 'critics say the schemes are driving property prices higher and higher.'
"There's certainly some evidence that the government's intervention is pushing up house prices which, for many, is making it more difficult to buy," says Islay Robinson, CEO of London mortgage adviser Enness Private Clients.
"Many young people can't afford to pay a large mortgage, especially now that most lenders will insist on repayment terms. We've helped a number of professional clients who have access to a reasonable deposit and whose future earnings will support a high value mortgage but for the average first time buyer times remain very tough," he adds.
This sentiment is backed up by new figure from the leading property website, Rightmove. They have recently reported that the average home asking price in the UK exceeded a quarter of a million pounds for the first time in June, making it more difficult for prospective buyers to own houses.
For more information on accessing the mortgage market as a first time buyer, feel free to contact one of our expert brokers for a personal consultation and professional guidance, alternatively you can read our latest mortgage process guide for assistance.
Where in the World you can Escape Lockdown
Mortgages for Entrepreneurs and Founders
Preparing your Mortgages for a Storm…of Opportunity


text:
Facebook Acquires Whatsapp: 4 Numbers & 4 Tweets that are Lessons for a Lifetime
Earlier today, Facebook acquired messaging service Whatsapp for $19 bn in cash and stock. Whatsapp gets $4 bn in cash, $12 bn in Facebook shares and $3 bn in restricted stock units.
Whatsapp CEO & Co-Founder Jan Koum
$19 bn is a BIG number. And it is all over the news now.
What's really interesting, is the story of perseverance and of singular focus at Whatsapp. Sequoia capital, the only investor in Whatsapp had a fantastic blogpost which talks about 4 numbers that explain why Facebook acquired Whatsapp. TLDR
450, 32, 1 and 0.
450. WhatsApp has more than 450 million active users, and reached that number faster than any other company in history.
32. With only 32 engineers, one WhatsApp developer supports 14 million active users, a ratio unheard of in the industry.
1. Jan keeps a note from Brian taped to his desk that reads "No Ads! No Games! No Gimmicks!" It serves as a daily reminder of their commitment to stay focused on building a pure messaging experience.
0. There may be no greater testament to the viral nature of WhatsApp than the fact that the company has accomplished all this without investing a penny in marketing.
Brian Acton and Jan Koum started Whatsapp in 2009, and has had a steady, quiet growth in the last 5 years. It was in the app store by May 2009.
Acton and Koum began developing Whatsapp after they had quit their jobs at Yahoo. Koum was rejected for a job at Facebook in 2009!*
Here are a few tweets that capture Whatsapp's journey
Got denied by Twitter HQ. That's ok. Would have been a long commute.— Brian Acton (@brianacton) May 23, 2009[via TC]
Facebook turned me down. It was a great opportunity to connect with some fantastic people. Looking forward to life's next adventure.—Brian Acton (@brianacton) August 03, 2009 [ via TC]
WhatsApp had every option in the world, so I'm thrilled that they chose to work with us." Mark Zuckerberg February 2014.
WhatsApp's growth curve. —Richard Ting, February 20, 2014
Whatsapp will operate independently within Facebook. Koum will join Facebook board. WhatsApp is now valued at more than half of the $31.5 bn market value of Twitter.
*Made a correction here.
What Should The CEO Be Doing On A Day To Day Basis
The ideal tool for this is to build a dashboard that is to be drafted by the founder himself.
Too Late? Sometimes being early is a Punishment [Entrepreneurship]
If your business depends on an external partner whose services or products still seem out of bounds (even though available) to your eventual customers, don't expect your partner to become as sensible and rational as you expect him to be. You can't clap with one hand.

redpajama_set_name: RedPajamaCommonCrawl


text:
71 N. Federal Highway, Boca Raton, FL 33432
More History
Spanish River Papers
Preservation Update
Designated Sites
History Alive! Salutes
Our Corporate Members
Boca Bacchanal
Walk of Recognition
The Boca Raton Historical Society
The BRHS was founded in 1972 as a private, non-profit member organization and is headquartered in Historic Town Hall, built in 1927 and listed on the National Register of Historic Places.
The BRHS owns and operates The Schmidt Boca Raton History Museum, which opened in November 2021 after extensive building upgrades and the installation of its History Alive! exhibits.
The mission and purpose of the Boca Raton Historical Society is to collect, preserve, and present information and artifacts relevant to the past and evolving history of Boca Raton and to maintain a visible role in education and advocacy of historic preservation in our community.
Boca Raton Historical Society
Memphis Web Design by Speak


Description Dart 501 Challenge is a simple flash game. Reach Zero exactly in as minimum throws as possible. Player starts with 501 points. each dart throw reduces the score hit zero to close out and end the game exceeding zero is a bust, score is not reduced.
Controls Player starts with 501 points. each dart throw reduces the score hit zero to close out and end the game exceeding zero is a bust, score is not reduced.
Click and Drag Your Mouse UP and RELEASE.
Nice music and graphics, the controls are totally unexpected for me.


text:
Editors' ChoiceReparations
P.J. Patterson calls for dismantling systemic discrimination in post-Emancipation era
By IBW21August 4, 2022No Comments
You Are Here: Home » Blog » Editors' Choice » P.J. Patterson calls for dismantling systemic discrimination in post-Emancipation era
By CMC —
Former prime minister of Jamaica and Caribbean statesman, P.J. Patterson says full human emancipation requires freedom from all forms of discrimination and subjugation which retard the attainment of the development potential of the African and descendant people.
Former prime minister of Jamaica P.J. Patterson
In a message to mark Emancipation Day, Patterson who served as Jamaica's sixth and longest-serving head of Government, from 1992 to 2006, said the criminal atrocities of slavery should not be forgotten
"On this Emancipation Day we celebrate and solemnly recall emancipation from chattel slavery, the most sustained and barbaric violation of human rights in the history of mankind. For centuries enslaved Africans paid the price of Emancipation with their blood, sweat, and tears. Even after the promulgation of the Abolition Act, they had to pay the slave owners through forced labor.
In his message, Patterson noted that "there are those who would have us forget these criminal atrocities as they seek to deny their complicity in a global system of greed-driven inequities. Their atonement must be tangible and not limited merely to pious admissions of regret."
Reparative justice for these crimes against humanity remains a remedy to which we, the descendants of the enslaved, are entitled, even as we explore new dimensions of our emancipation and continue to push the boundaries of excellence and achievement within the realms of our sovereignty.
The process of liberation over hundreds of years is indelibly etched in the psyche as descendants of the people who transitioned from slavery to formal freedom. Emancipation was an unforgettably profound change in their circumstances, but it was the first step because we the people of Africa, the Caribbean, and the diaspora are yet to realize in full the dream of true freedom.
Speaking in his capacity as a statesman in residence at the P. J. Patterson Institute for Africa-Caribbean Advocacy, the former prime minister appealed for urgent attention "to remain steadfastly focused on the unfulfilled mission of dismantling the remaining vestiges of systemic discrimination that have persisted in the post-Emancipation era through various entrenched forms of political, social, and economic exclusion."
"From inequitable access to land, shelter, health, and education to unfair wages for labor, restrictive practices have been systemically embedded in national and international arrangements since emancipation nearly two centuries ago. Today, they continue to be reflected in global power configurations that serve to constrain the ability of our people to achieve their legitimate right to global decision-making and economic development."
According to Patterson, enter nations and disadvantaged groups of people in Africa, the Caribbean, and their diaspora remain trapped in universal structural inequalities that have persisted for far too long.
The former prime minister said the P.J. Patterson Institute for Africa-Caribbean Advocacy "is committed to this task and will engage in building alliances to forge the global consensus required for the achievement of this mission. In the pursuit of these constructive tasks, we invite global collaboration across nationalities and races. May it be a memorable Emancipation Day 2022."
Source: CMC
CaribbeanEmancipationEmancipation DayJamaicaPJ PattersonSystemic Racism
Previous PostTrinidad and Tobago observing Emancipation Day
Next PostCARICOM Secretariat receives African Royal Visit


Not to my knowledge, i'm not actively playing yet so I don't really have a ready BG to send you, but I can edit whatever BG you make/give advice if you message me privately.
Wow, thats some next level farming. Is it not super boring?
I closed my eyes, and I searched for light.
Lushiris and poinl like this.
Try opening them, works for me.
Do not overkill on ranged. i usually have not more than 5, the ones that fie are usually melee and also youl l have better chance of drawing them for font contesting.
As much as I enjoyed it. It was a direct jab at another player which is a no-no on the CoC. Comedy gold tho.
Alakhami, Dagda, JellyBerry and 7 others like this.
i have no interest being on the council. Doesn't seem like a very productive system currently.
SPiEkY, futant and mw24 like this.
It will be udderly fantastic.


text:
CNNMoney Sport
2018 World Cup tickets pass $1,000 mark
by Alanna Petroff @AlannaPetroff July 6, 2016: 8:37 AM ET
FIFA rakes in big bucks for EA Sports
It's time to start saving if you plan to attend the 2018 soccer World Cup in Russia.
Organizer FIFA revealed this week that the most desirable tickets for the final match will go on sale for $1,100, making them the most expensive in World Cup history.
The last soccer World Cup in Brazil in 2014 saw the most expensive individual tickets priced at $990.
As the 2018 tournament draws closer, the eye-watering official prices may seem like good value. Some tickets for the World Cup final in Brazil in 2014 were on sale for more than $10,000 through resellers like Viagogo and eBay (EBAY).
Of course, most fans will pay much less. The cheapest tickets for early matches will sell for as little as $105. And Russian fans will be offered even lower prices, paying as little as $20 per ticket for some games.
"We wanted to make sure that we priced tickets fairly to make the events accessible to as many people as possible," said FIFA Secretary General Fatma Samoura in a statement. She said FIFA had carried out "thorough market research" before pricing the tickets.
Even little fans will have to pay big prices for the best seats at the 2018 World Cup in Russia.
Balancing supply, demand and fair prices can be a tricky job for FIFA.
In 2014, FIFA reported unprecedented demand for tickets in the lead up to the event. There were 11 million requests for tickets, against only 3.1 million available.
CNNMoney (London) First published July 6, 2016: 8:26 AM ET


text:
The psychoses: Cluster 3 of the proposed meta-structure for DSM-V and ICD-11
W. T. Carpenter, J. R. Bustillo, G. K. Thaker, J. Van Os, R. F. Krueger, M. J. Green
Background In an effort to group mental disorders on the basis of etiology, five clusters have been proposed. Here we consider the validity of the cluster comprising selected psychotic and related disorders.Method A group of diagnostic entities classified under schizophrenia and other psychotic disorders in DSM-IV-TR were assigned to this cluster and the bordering disorders, bipolar (BD) and schizotypal personality disorders (SPD), were included. We then reviewed the literature in relation to 11 validating criteria proposed by the DSM-V Task Force Study Group.Results Relevant comparisons on the 11 spectrum criteria are rare for the included disorders except for schizophrenia and the two border conditions, BD and SPD. The core psychosis group is congruent at the level of shared psychotic psychopathology and response to antipsychotic medication. BD and SPD are exceptions in that psychosis is not typical in BD-II disorder and frank psychosis is excluded in SPD. There is modest similarity between schizophrenia and BD relating to risk factors, neural substrates, cognition and endophenotypes, but key differences are noted. There is greater support for a spectrum relationship of SPD and schizophrenia. Antecedent temperament, an important validator for other groupings, has received little empirical study in the various psychotic disorders.Conclusions The DSM-IV-TR grouping of psychotic disorders is supported by tradition and shared psychopathology, but few data exist across these diagnoses relating to the 11 spectrum criteria. The case for including BD is modest, and the relationship of BD to other mood disorders is addressed elsewhere. Evidence is stronger for inclusion of SPD, but the relationship with other personality disorders along the 11 criteria is not addressed and the absence of psychosis presents a conceptual problem. There are no data along the 11 spectrum criteria that are decisive for a cluster based on etiology, and inclusion of BD and SPD is questionable.
Meta-structure
Fingerprint Dive into the research topics of 'The psychoses: Cluster 3 of the proposed meta-structure for DSM-V and ICD-11'. Together they form a unique fingerprint.
Schizotypal Personality Disorder Medicine & Life Sciences
International Classification of Diseases Medicine & Life Sciences
Psychotic Disorders Medicine & Life Sciences
Diagnostic and Statistical Manual of Mental Disorders Medicine & Life Sciences
Psychopathology Medicine & Life Sciences
Endophenotypes Medicine & Life Sciences
Carpenter, W. T., Bustillo, J. R., Thaker, G. K., Van Os, J., Krueger, R. F., & Green, M. J. (2009). The psychoses: Cluster 3 of the proposed meta-structure for DSM-V and ICD-11. Psychological medicine, 39(12), 2025-2042. https://doi.org/10.1017/S0033291709990286
The psychoses : Cluster 3 of the proposed meta-structure for DSM-V and ICD-11. / Carpenter, W. T.; Bustillo, J. R.; Thaker, G. K.; Van Os, J.; Krueger, R. F.; Green, M. J.
In: Psychological medicine, Vol. 39, No. 12, 12.2009, p. 2025-2042.
Carpenter, WT, Bustillo, JR, Thaker, GK, Van Os, J, Krueger, RF & Green, MJ 2009, 'The psychoses: Cluster 3 of the proposed meta-structure for DSM-V and ICD-11', Psychological medicine, vol. 39, no. 12, pp. 2025-2042. https://doi.org/10.1017/S0033291709990286
Carpenter WT, Bustillo JR, Thaker GK, Van Os J, Krueger RF, Green MJ. The psychoses: Cluster 3 of the proposed meta-structure for DSM-V and ICD-11. Psychological medicine. 2009 Dec;39(12):2025-2042. https://doi.org/10.1017/S0033291709990286
Carpenter, W. T. ; Bustillo, J. R. ; Thaker, G. K. ; Van Os, J. ; Krueger, R. F. ; Green, M. J. / The psychoses : Cluster 3 of the proposed meta-structure for DSM-V and ICD-11. In: Psychological medicine. 2009 ; Vol. 39, No. 12. pp. 2025-2042.
@article{e38999e4d4494754ae9e96dd572b9133,
title = "The psychoses: Cluster 3 of the proposed meta-structure for DSM-V and ICD-11",
abstract = "Background In an effort to group mental disorders on the basis of etiology, five clusters have been proposed. Here we consider the validity of the cluster comprising selected psychotic and related disorders.Method A group of diagnostic entities classified under schizophrenia and other psychotic disorders in DSM-IV-TR were assigned to this cluster and the bordering disorders, bipolar (BD) and schizotypal personality disorders (SPD), were included. We then reviewed the literature in relation to 11 validating criteria proposed by the DSM-V Task Force Study Group.Results Relevant comparisons on the 11 spectrum criteria are rare for the included disorders except for schizophrenia and the two border conditions, BD and SPD. The core psychosis group is congruent at the level of shared psychotic psychopathology and response to antipsychotic medication. BD and SPD are exceptions in that psychosis is not typical in BD-II disorder and frank psychosis is excluded in SPD. There is modest similarity between schizophrenia and BD relating to risk factors, neural substrates, cognition and endophenotypes, but key differences are noted. There is greater support for a spectrum relationship of SPD and schizophrenia. Antecedent temperament, an important validator for other groupings, has received little empirical study in the various psychotic disorders.Conclusions The DSM-IV-TR grouping of psychotic disorders is supported by tradition and shared psychopathology, but few data exist across these diagnoses relating to the 11 spectrum criteria. The case for including BD is modest, and the relationship of BD to other mood disorders is addressed elsewhere. Evidence is stronger for inclusion of SPD, but the relationship with other personality disorders along the 11 criteria is not addressed and the absence of psychosis presents a conceptual problem. There are no data along the 11 spectrum criteria that are decisive for a cluster based on etiology, and inclusion of BD and SPD is questionable.",
keywords = "Bipolar, DSM-V, Meta-structure, Psychosis, Schizophrenia",
author = "Carpenter, {W. T.} and Bustillo, {J. R.} and Thaker, {G. K.} and {Van Os}, J. and Krueger, {R. F.} and Green, {M. J.}",
journal = "Psychological Medicine",
T1 - The psychoses
T2 - Cluster 3 of the proposed meta-structure for DSM-V and ICD-11
AU - Carpenter, W. T.
AU - Bustillo, J. R.
AU - Thaker, G. K.
AU - Krueger, R. F.
AU - Green, M. J.
N2 - Background In an effort to group mental disorders on the basis of etiology, five clusters have been proposed. Here we consider the validity of the cluster comprising selected psychotic and related disorders.Method A group of diagnostic entities classified under schizophrenia and other psychotic disorders in DSM-IV-TR were assigned to this cluster and the bordering disorders, bipolar (BD) and schizotypal personality disorders (SPD), were included. We then reviewed the literature in relation to 11 validating criteria proposed by the DSM-V Task Force Study Group.Results Relevant comparisons on the 11 spectrum criteria are rare for the included disorders except for schizophrenia and the two border conditions, BD and SPD. The core psychosis group is congruent at the level of shared psychotic psychopathology and response to antipsychotic medication. BD and SPD are exceptions in that psychosis is not typical in BD-II disorder and frank psychosis is excluded in SPD. There is modest similarity between schizophrenia and BD relating to risk factors, neural substrates, cognition and endophenotypes, but key differences are noted. There is greater support for a spectrum relationship of SPD and schizophrenia. Antecedent temperament, an important validator for other groupings, has received little empirical study in the various psychotic disorders.Conclusions The DSM-IV-TR grouping of psychotic disorders is supported by tradition and shared psychopathology, but few data exist across these diagnoses relating to the 11 spectrum criteria. The case for including BD is modest, and the relationship of BD to other mood disorders is addressed elsewhere. Evidence is stronger for inclusion of SPD, but the relationship with other personality disorders along the 11 criteria is not addressed and the absence of psychosis presents a conceptual problem. There are no data along the 11 spectrum criteria that are decisive for a cluster based on etiology, and inclusion of BD and SPD is questionable.
AB - Background In an effort to group mental disorders on the basis of etiology, five clusters have been proposed. Here we consider the validity of the cluster comprising selected psychotic and related disorders.Method A group of diagnostic entities classified under schizophrenia and other psychotic disorders in DSM-IV-TR were assigned to this cluster and the bordering disorders, bipolar (BD) and schizotypal personality disorders (SPD), were included. We then reviewed the literature in relation to 11 validating criteria proposed by the DSM-V Task Force Study Group.Results Relevant comparisons on the 11 spectrum criteria are rare for the included disorders except for schizophrenia and the two border conditions, BD and SPD. The core psychosis group is congruent at the level of shared psychotic psychopathology and response to antipsychotic medication. BD and SPD are exceptions in that psychosis is not typical in BD-II disorder and frank psychosis is excluded in SPD. There is modest similarity between schizophrenia and BD relating to risk factors, neural substrates, cognition and endophenotypes, but key differences are noted. There is greater support for a spectrum relationship of SPD and schizophrenia. Antecedent temperament, an important validator for other groupings, has received little empirical study in the various psychotic disorders.Conclusions The DSM-IV-TR grouping of psychotic disorders is supported by tradition and shared psychopathology, but few data exist across these diagnoses relating to the 11 spectrum criteria. The case for including BD is modest, and the relationship of BD to other mood disorders is addressed elsewhere. Evidence is stronger for inclusion of SPD, but the relationship with other personality disorders along the 11 criteria is not addressed and the absence of psychosis presents a conceptual problem. There are no data along the 11 spectrum criteria that are decisive for a cluster based on etiology, and inclusion of BD and SPD is questionable.
KW - Bipolar
KW - DSM-V
KW - Meta-structure
KW - Psychosis
KW - Schizophrenia
JO - Psychological Medicine
JF - Psychological Medicine


Members of the National Network of Libraries of Medicine provide health professionals and consumers with access to health information resources and services. We welcome libraries, information centers, and others who provide access to health information for both health professionals and the general public.
Membership in the NNLM is free of charge.
Over 600 libraries are part of the NNLM Pacific Southwest Region.
The Regional Medical Library - The UCLA Louise M. Darling Biomedical Library serves as the Regional Medical Library for the Pacific Southwest Region. RML staff assists the National Library of Medicine in developing, marketing, and distributing its products and services and coordinates the operation of the regional network of libraries to carry out programs cooperatively. We also provide NLM with feedback on how information is being used, suggestions for improvements to existing products and services, and new ideas for products and services. In all of these areas, we strive to involve other Network libraries and to design programs to facilitate communication at all levels of the Network.
Resource Libraries - The Resource Libraries of the Pacific Southwest Region are the large academic libraries in the region. The Resource Libraries play key roles in their states and/or regions, not only in document delivery and resource sharing, but in developing and managing outreach programs. Resource Libraries typically provide a variety of services to communities outside of their primary clientele.
Hospital and Health Sciences Libraries - Hospital libraries and health sciences libraries generally represent the health professional's first point of access into the Network. These libraries serve health professionals who plan, manage, and provide health care as well as teachers and students in these areas.
Public Libraries - Public libraries exist in urban, suburban and rural neighborhoods and play a vital role in advancing the health and health literacy of members in their communities. They provide free access to computers and internet services which allow access to online health information. Many public libraries offer health and wellness-related programming and outreach for their communities.
Other Members - There are many other types of libraries and information centers included in the Network. Their communities extend beyond health professionals to anyone who has a need for health information. They include community college libraries, public health organizations, community-based organizations, K-12 libraries, advocacy groups, correctional facilities, corporate libraries, state libraries, and zoological associations.
Enrollment on the "PSR-News" Announcement List.
Be listed in the national registry of network members. NNLM Members Directory is available online.
Complete the Member Application to become a member of the National Network of Libraries of Medicine in the Pacific Southwest Region.
If you have any questions about applying for network membership, please contact the Pacific Southwest Regional office at 1-310-825-1200.


This is the special edition of the Snowspeeder from Episode V TESB.
I used Hasbro and Galoob's toys as general guides, and photos from Chronicles and MR's prop for detail reference. The size of the model is about 25 cm in length and 20 cm in width.
The gallery for the Snowspeeder is here and I welcome any comment and suggestion. Thanx!!!
This rocks! Only minor crits from me. I think maybe the cannona are a hair toolong. I love the nose end as well. Nice Job tith that. And the cockpit at 5 studs wide is also nice, it's just a shame that the cockpit sides don't taper from 4 at the top to five at the bottom. I also love that the top and bottom rear flaps are functional. Great work there. ANd the cockpit interior is nice as well.
A very nice snowspeeder collection you have there! Your new speeder is a very good design, being settled between UCS and system scale, right? For minifigs it's too large. Maybe for technic figs it would be perfect. Very nice interior detail and very original use of wedges and wings for the front section!
Good work on the front end and the guns, although I have to agree with reto about the bley.
Nice work on the interior. Making it an odd # of studs wide was a good call.
I love the interior, the seats are great! I also like the detail under the air brakes, very cool. The guns are great as well.
You've really captured the look of the ship very accurately.
To warhawk: the part I used to seal off the space behind the two windscreen pieces is the 3*4*1&1/3 windscreen from the original 7130 Snowspeeder. I was messing with the available windscreen parts for the cockpit and luckily found these pieces. The 5*2*1&2/3 windscreens had the angle that I wanted and 3*4*1&1/3 windscreen perfectly sealed off the gap behind them. Hope this helps.
Regarding the old dark grey and new dark blue, I have to admit that I did not pay much attention to them when I used them - I did not realize the color contrast until I saw the pictures....thank you guys again for the suggestions!!!


text:
Did you want to search for:
as a Fingerprint Concept
as free text
API analysis of the Minrva mobile app (May 2015 – December 2015)
Hahn, J. F. (Creator), University of Illinois at Urbana-Champaign, Dec 19 2016
DOI: 10.13012/B2IDB-5495131_V1
Modern sinistral whelk spire angles, genus Busycon
Kozuch, L. (Creator), Walker, K. (Creator), Marquardt, W. (Creator), University of Illinois at Urbana-Champaign, Sep 6 2017
Data from: Embryogenesis in the plant parasitic nematode Heterodera glycines is independent of host-derived stimulation
Thapa, S. (Creator), Schroeder, N. E. (Creator), Patel, J. (Creator), Reuter-Carlson, U. (Creator), University of Illinois at Urbana-Champaign, Mar 8 2017
Geometric analysis of magnetic dimensionality
Karigerasi, M. H. (Creator), Wagner, L. K. (Creator), Shoemaker, D. P. (Creator), University of Illinois at Urbana-Champaign, May 21 2018
Data from: "Identifying Motivations for DAMS Migration: A Survey."
Kenfield, A. (Creator), Thompson, S. (Creator), University of Illinois at Urbana-Champaign, Dec 18 2015
DOI: 10.13012/J89G5JR4
NEXUS data file for phylogenetic analysis of Evacanthinae (Hemiptera: Cicadellidae)
Wang, Y. (Creator), Dietrich, C. H. (Creator), Zhang, Y. (Creator), University of Illinois at Urbana-Champaign, Dec 4 2018
Scripts for testing the error rate of polyRAD
Clark, L. V. (Creator), Lipka, A. E. (Creator), Sacks, E. J. (Creator), University of Illinois at Urbana-Champaign, Nov 21 2018
Replication Data for: The Transformation of Gender in English-Language Fiction
Underwood, T. (Creator), Bamman, D. (Creator), Lee, S. (Creator), Harvard Dataverse, 2018
DOI: 10.7910/DVN/ZM2MAN
Bibliotelemetry data
Hahn, J. F. (Creator), University of Illinois at Urbana-Champaign, Mar 28 2018
US books 1931 to 1933 All Parts Transcription from Vendor
Carlstone, J. D. (Creator), Kenfield, A. (Creator), Norman, M. A. (Creator), Wilkin, J. P. (Creator), University of Illinois at Urbana-Champaign, Jan 7 2019
Spatial and Temporal Allocation of Ammonia Emissions from Fertilizer Application Important for Air Quality Predictions in U.S. Corn Belt
Balasubramanian, S. (Creator), Koloutsou-Vakakis, S. (Creator), Rood, M. J. (Creator), University of Illinois at Urbana-Champaign, May 1 2019
Data from: Classical Topological Order in the Kinetics of Artificial Spin Ice
Lao, Y. (Creator), Caravelli, F. (Creator), Sheikh, M. (Creator), Sklenar, J. (Creator), Gardeazabal, D. (Creator), Watts, J. D. (Creator), Albrecht, A. M. (Creator), Scholl, A. (Creator), Dahmen, K. A. (Creator), Nisoli, C. (Creator), Schiffer, P. E. (Creator), University of Illinois at Urbana-Champaign, Jun 20 2018
Sorghum bicolor GBS: recombination study
Brown, P. J. (Creator), University of Illinois at Urbana-Champaign, Feb 21 2017
Data for "Mislabeling of an Invasive Vine (Celastrus orbiculatus) as a Native Congener (C. scandens) in Horticulture"
Zaya, D. N. (Creator), Leicht-Young, S. A. (Creator), Pavlovic, N. (Creator), Hetrea, C. S. (Creator), Ashley, M. V. (Creator), University of Illinois at Urbana-Champaign, Dec 4 2017
Sorghum bicolor GBS: diversity study II
Bee visitation for PLOS ONE manuscript
Lovell, S. T. (Creator), University of Illinois at Urbana-Champaign, Feb 2 2019
Magnetotransport measurements of connected kagome artificial spin ice in armchair and zigzag configurations
Schiffer, P. E. (Creator), Le, B. L. (Creator), University of Illinois at Urbana-Champaign, Aug 11 2017
Targeted ballet program mitigates ataxia and improves agility in moderate-to-advanced multiple sclerosis
Scheidler, A. (Creator), Kinnett-Hopkins, D. (Creator), Learmonth, Y. (Creator), Motl, R. W. (Creator), López-Ortiz, C. (Creator), University of Illinois at Urbana-Champaign, Dec 22 2017
Sorghum bicolor GBS: diversity study
Data for: Probabilistic global maps of crop-specific areas from 1961 to 2014
Jackson, N. (Creator), Konar, M. (Creator), Debaere, P. (Creator), Estes, L. (Creator), University of Illinois at Urbana-Champaign, Sep 1 2019
Data from: A response-surface examination of competition and facilitation between native and invasive fishes
Nelson, K. (Creator), Collins, S. (Creator), Sass, G. (Creator), Wahl, D. H. (Creator), University of Illinois at Urbana-Champaign, May 22 2017
Site attributes for PLOS ONE article
11IL005
Brown, P. J. (Creator), University of Illinois at Urbana-Champaign, Dec 14 2016
Pollen types from Haselhorst et al. (2017) Ecological Informatics: Table S1. Pollen types identified in the BCI and PNSL pollen rain data sets
Haselhorst, D. S. (Creator), Tcheng, D. K. (Creator), Moreno, J. E. (Creator), Punyasena, S. W. (Creator), University of Illinois at Urbana-Champaign, Jun 16 2017
Isolated artificial spin ice kinetics
Lao, Y. (Creator), Schiffer, P. E. (Creator), University of Illinois at Urbana-Champaign, May 22 2019


BAGHDAD (AP) -- A wave of car bomb blasts tore through Shiite areas south of Baghdad on Monday, killing at least 36 and deepening fears that Iraq is rapidly spiraling back out of control.
In a possible sign of mounting worries over the deteriorating security situation, Iraqi authorities announced they plan to close the country's only border crossing with Jordan, beginning on Tuesday. The Interior Ministry said the move is related Iraq's domestic affairs.
HIGHLANDS, N.J. (AP) -- Gov. Chris Christie said Monday that President Barack Obama "has kept every promise he's made" about helping the state recover from Superstorm Sandy.
Hours later, Obama's housing secretary approved New Jersey's plans to spend $1.83 billion in federal money to help the state rebuild and recover from the storm.
Speaking on MSNBC's "Morning Joe" program six months after the deadly storm, the Republican governor said presidential politics were the last thing on his mind as he toured storm-devastated areas with Obama last fall.
When it comes to helping New Jersey rebuild from the storm, "the president has kept every promise he's made," said Christie, widely considered a potential candidate for the Republican presidential nomination in 2016. "I think he's done a good job. He kept his word."
His comments came in response to a question about whether he had any regrets about his warm embrace of Obama after the storm, which angered some Republicans, who said it helped tip a close presidential election. Christie had endorsed and campaigned for Republican Mitt Romney.


text:
Q: Replacement for .NET WebView on Tizen TV Tizen TV platform .NET for Xamarin lacks of WebView class support - due of security reasons or anything else:

*

*application fail to start with xamarin webview;

*tizen decline to create tizen.Net webview (cos its only aviable for wearable and mobile platforms).
So, because of impossibilyty of start browser page (webview) in tizen TV application,  interactive OAuth2 google authorization imposible.
Yes - I can open authorization link on TV platform pre-installed samsung browser, but callback from this browser to 127.0.0.1 (or localhost) unaviable due sandboxing of my app.
Non-interactive authorization is only for short list of google services where google.photos not listed.
Here is the main question -  what I can use to implement browser engine into cross-platform xamarin project ?

redpajama_set_name: RedPajamaStackExchange


Joint project of the University Library and Swearer Center for Public Service. Comprised of archival and manuscript papers of activists (with a focus on Brown alumni) engaged in public service through non-governmental organizations.
The Community Organizing Archive comprises archival and manuscript papers of activists and Brown alumni engaged in public service for the betterment of communal life in the United States through non-governmental organizations. The COA was organized in 2006 by Brown alumni Jim Dickson (1968) and Ken Galdston (1968) as a joint project of the University Library and the Swearer Center for Public Service.
The Brown University Archives and Manuscripts, housed in the John Hay Library, has a long history of collecting material from the University and its alumni, as well as various Rhode Island groups and organizations. Over the years, we have accumulated material regarding activists and community organizing, including the Rhode Island Feminist Theatre Archive (1973-1984), the records of the Rhode Island Women's Health Collective (1975-1997), the records of ACT UP Rhode Island (1988-1995), and records of the Brown-Tougaloo Exchange. Since its inauguration on April 24, 2007, the Community Organizing Archive has grown to encompass several collections, including the papers of James C. Dickson (Brown class of 1968) and the American Association of People with Disabilities, the records of the Needmor Fund, and the papers of Bob Cohen (Brown class of 1968).
We are pleased at the prospect of expanding the Community Organizing Archive to document the activities of Brown alumni and others in the field of community organizing and social activism. All materials in the Community Organizing Archive are accessible at the John Hay Library to students, faculty, and researchers, both now and in the future.


text:
Q: jQuery Ajax PHP and CSV I don't have experience with CSV export in a particular scenario and would be great if anyone could point me in the right direction. Need to export array to CSV, but the problem is that Array's text may have multiple commas and during the export it splits the text by comma and adds to CSV in a separate column.
This is what I've got so far for Ajax (CSV generation code I found somewhere on the Internet):

  $('#export-csv').on('click', function(){
    alert('export');
    var postId = 551;

    //call database and get data
    $.ajax({
        url:ajax_object.ajax_url,
        type: 'POST',
        dataType: 'json',
        data: {
            'action': 'export_csv',
            'posts': postId,
        },
        success:function(data) {
          output.html(data);
          console.log(data);

          download_csv(data);

        },
        error: function(errorThrown){

        }
    });

    return false;

  });
  function download_csv(data) {
    var csv = 'Name,Title\n';
    data.forEach(function(row) {
            csv += row.join(',');
            csv += "\n";
    });

    console.log(csv);
    var hiddenElement = document.createElement('a');
    hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);
    hiddenElement.target = '_blank';
    hiddenElement.download = 'people.csv';
    hiddenElement.click();
}

I get an Array  from PHP in the following format:

["risk_communicate_consult", "Lorem ipsum dolor sit amet, consectetuer adipiscin…r ridiculus mus. Donec quam felis, ultricies nec,"]
["risk_monitoring_review", "Lorem ipsum dolor sit amet, consectetuer adipiscin…r ridiculus mus. Donec quam felis, ultricies nec,"]

After I export it to CSV, it splits array on every occurrence of ',' and adding those piece in CSV in separate columns.

A: Because your column values may contain commas, you need to use a field identifier.
Typically, this is " wrapped around each column value. Any double-quote characters in your column values should be escaped by using two double-quotes
Try something like this...

const data = [
  ["risk_communicate_consult", "Lorem ipsum dolor sit amet, consectetuer adipiscin…r ridiculus mus. Donec quam felis, ultricies nec,"],
  ["risk_monitoring_review", "Lorem ipsum dolor sit amet, consectetuer adipiscin…r ridiculus mus. Donec quam felis, ultricies nec,"]
]

const csv = ['Name,Title'].concat(data.map(row => {
  return row.map(col => `"${col.replace(/"/g, '""')}"`).join(',')
})).join('\n')

console.info(csv)


The Lucrative Home Studio will help you master the business, technical, and creative secrets of consistently producing professional radio-ready recordings.
This 8 module online training program will take your production chops WAY beyond tracking, mixing and mastering and help you produce your way to profit and satisfaction by producing music in your home studio.
Develop a 6-figure money making machine by producing music in your home studio.
Learn more about producing music in your home studio AND the Lucrative Home Studio course here.


The British weather can be deceiving. It's so warm now, the next minute its freezing. So I always go out prepared. Its not time to lose the jumpers and coats just yet. Keep them on hand for when you need them. For this look I've gone for fun and playful block colours, taking from the pantone ss17 colours. This colour scheme reminds me of the action figures, and truck toys I used to play with when I was younger. They were always in the primary colours, blue, red and yellow. I was more of a tomboy back then. Guess still got that boyish flare in me.
This is what I call a bag with an attitude. I literarily feel fierce any time I'm holding it. That 'don't mess with me' look gets me every time.
<queue song> "com'on let me see you shake your tail feather....."


I've been busy…well, mentally anyway. All of my Israel plans fell apart and had to be reassembled. The youngest Israeli niece got engaged after we made our plans…and then they set a wedding date: July 17! That is about a month after I was planning to return from the June trip. So my stepmother and I had to scramble to change everything. I was able to rebook my flights for July, paying only the change fee. I kept my trip almost exactly the same—still have three nights in Paris, about the same time with Spesh (maybe a little longer). The only hit is that the car rental is about twice as much as before. It's still under $200 for a bit over a week, so not too bad. I was pretty frustrated, but now I feel like I have some breathing room. I start to get mentally prepared weeks before I travel and now it feels like all this free space has opened up in my calendar. I've already almost finished the two new knitted hedgehogs (though I think I only needed one). I have a packing strategy in mind. My passport expires a year from July…I think I will still wait to renew it until after I get back, but I do have time to renew now if I start the process this week. I might even put my place on the AirBnB market, which I wasn't going to do in June, just because it was too much of a pain to get things clean and ready for guests.
Last weekend, I went on a 17-mile organized bike ride in DC. I rode more like 20 since I biked to the start. For the ride, the streets of DC were closed, which was pretty cool. It was cold and damp but I'm glad it was cool! We got to ride over the Whitehurst Freeway! That was fun. I hope they have it next year, I'll happily pay the fee and go again. Yesterday, I did another long bike ride—25 miles total—and it was pretty rough. It was nearly 90 degrees and I was dragging. On the long uphill of the first half of the ride, I was way behind the rest of the group. I didn't have this problem last weekend and I figure it has to be the heat. At any rate, I survived and rode the whole way home. Physically, I feel fine today, which is kind of amazing. I was sure I'd be more sore. My shoulders are stiff, but that's because I started up my shoulder exercises again this week. Biking may have exacerbated it a bit, it's not the main cause. Anyway, it's cool to be able to do these medium distances. I'd like to work up to 50 miles, but that probably isn't in the cards for this summer. We'll see.
Work continues well. The project I was working on got wrapped up quickly when my boss said he'd done some editing. I realized that I had to share my major reorganization with him so he wouldn't be wasting his time. I managed to wrap it up in a day. He commented the next day, and we sent it to the editors on Friday. Deadlines. That's what I need! However, with that project wrapped, I have to figure out what's next. I have been working slowly and steadily on another project, which will now have to be the focus. It needs to wrap up someday too and I still don't have a handle on the timeline. That's what I'll figure out next week.
And men…dating…all is well. Still involved with my two not-boyfriends. Liking them both for the very different people they are. Enjoying my interactions with both of them. Mostly. Marty continues to get me riled up. I wonder if that's something I want? I know fighting is sort of my weakness. I hate it. I really hate it. But it also feels "normal" since I grew up with parents who fought constantly. Sometimes I get angry at Marty and I don't even understand why. But Ian…I can't even imagine getting angry at him. I'm not even annoyed with him anymore now that I understand his sense of humor better. I do wonder how sustainable this situation is, but so far so good. I still fit in other socializing—I went to a reception for the volunteers for the tutoring I've been doing last week. The best conversation I had was with a woman about her studies in theoretical linguistics. She's moving to England so it's not like we're going to hang out, but oh well. I'm in a good place right now—a good balance. Work is pleasant, socializing is good, I have enough to alone time to recharge. I'm on the bike, I'm cooking at home. Sure, I haven't vacuumed in a month, but nobody's perfect.


text:
Back Catalogue är ett samlingsalbum av Front 242, utgivet 1987 och återutgivet 1992. Albumet innehåller låtar inspelade mellan 1982 och 1985.

Låtlista

Medverkande
Daniel Bressanutti
Jean-Luc de Meyer
Patrick Codenys
Richard Jonckheere

Källor

Album av Front 242
Samlingsalbum 1987

redpajama_set_name: RedPajamaWikipedia


text:
var LdapConfiguration = {
	refreshConfig: function() {
		if($('#ldap_serverconfig_chooser option').length < 2) {
			LdapConfiguration.addConfiguration(true);
			return;
		}
		$.post(
			OC.filePath('user_ldap','ajax','getConfiguration.php'),
			$('#ldap_serverconfig_chooser').serialize(),
			function (result) {
				if(result.status === 'success') {
					$.each(result.configuration, function(configkey, configvalue) {
						elementID = '#'+configkey;

						//deal with Checkboxes
						if($(elementID).is('input[type=checkbox]')) {
							if(parseInt(configvalue, 10) === 1) {
								$(elementID).attr('checked', 'checked');
							} else {
								$(elementID).removeAttr('checked');
							}
							return;
						}

						//On Textareas, Multi-Line Settings come as array
						if($(elementID).is('textarea') && $.isArray(configvalue)) {
							configvalue = configvalue.join("\n");
						}

						// assign the value
						$('#'+configkey).val(configvalue);
					});
					LdapWizard.init();
				}
			}
		);
	},

	resetDefaults: function() {
		$('#ldap').find('input[type=text], input[type=number], input[type=password], textarea, select').each(function() {
			if($(this).attr('id') === 'ldap_serverconfig_chooser') {
				return;
			}
			$(this).val($(this).attr('data-default'));
		});
		$('#ldap').find('input[type=checkbox]').each(function() {
			if($(this).attr('data-default') === 1) {
				$(this).attr('checked', 'checked');
			} else {
				$(this).removeAttr('checked');
			}
		});
	},

	deleteConfiguration: function() {
		$.post(
			OC.filePath('user_ldap','ajax','deleteConfiguration.php'),
			$('#ldap_serverconfig_chooser').serialize(),
			function (result) {
				if(result.status === 'success') {
					$('#ldap_serverconfig_chooser option:selected').remove();
					$('#ldap_serverconfig_chooser option:first').select();
					LdapConfiguration.refreshConfig();
				} else {
					OC.dialogs.alert(
						result.message,
						t('user_ldap', 'Deletion failed')
					);
				}
			}
		);
	},

	addConfiguration: function(doNotAsk) {
		$.post(
			OC.filePath('user_ldap','ajax','getNewServerConfigPrefix.php'),
			function (result) {
				if(result.status === 'success') {
					if(doNotAsk) {
						LdapConfiguration.resetDefaults();
					} else {
						OC.dialogs.confirm(
							t('user_ldap', 'Take over settings from recent server configuration?'),
							t('user_ldap', 'Keep settings?'),
							function(keep) {
								if(!keep) {
									LdapConfiguration.resetDefaults();
								}
							}
						);
					}
					$('#ldap_serverconfig_chooser option:selected').removeAttr('selected');
					var html = '<option value="'+result.configPrefix+'" selected="selected">'+t('user_ldap','{nthServer}. Server', {nthServer: $('#ldap_serverconfig_chooser option').length})+'</option>';
					$('#ldap_serverconfig_chooser option:last').before(html);
					LdapWizard.init();
				} else {
					OC.dialogs.alert(
						result.message,
						t('user_ldap', 'Cannot add server configuration')
					);
				}
			}
		);
	},

	testConfiguration: function(onSuccess, onError) {
		$.post(
			OC.filePath('user_ldap','ajax','testConfiguration.php'),
			$('#ldap').serialize(),
			function (result) {
				if (result.status === 'success') {
					onSuccess(result);
				} else {
					onError(result);
				}
			}
		);
	},

	clearMappings: function(mappingSubject) {
		$.post(
			OC.filePath('user_ldap','ajax','clearMappings.php'),
			'ldap_clear_mapping='+encodeURIComponent(mappingSubject),
			function(result) {
				if(result.status === 'success') {
					OC.dialogs.info(
						t('user_ldap', 'mappings cleared'),
						t('user_ldap', 'Success')
					);
				} else {
					OC.dialogs.alert(
						result.message,
						t('user_ldap', 'Error')
					);
				}
			}
		);
	}
};

var LdapWizard = {
	checkPortInfoShown: false,
	saveBlacklist: {},
	userFilterGroupSelectState: 'enable',
	spinner: '<img class="wizSpinner" src="'+ OC.imagePath('core', 'loading.gif') +'">',
	filterModeAssisted: 0,
	filterModeRaw: 1,
	userFilter: false,
	loginFilter: false,
	groupFilter: false,
	ajaxRequests: {},
	lastTestSuccessful: true,

	ajax: function(param, fnOnSuccess, fnOnError, reqID) {
		if(!_.isUndefined(reqID)) {
			if(LdapWizard.ajaxRequests.hasOwnProperty(reqID)) {
				console.log('aborting ' + reqID);
				console.log(param);
				LdapWizard.ajaxRequests[reqID].abort();
			}
		}
		var request = $.post(
			OC.filePath('user_ldap','ajax','wizard.php'),
			param,
			function(result) {
				if(result.status === 'success') {
					fnOnSuccess(result);
				} else {
					fnOnError(result);
				}
			}
		);
		if(!_.isUndefined(reqID)) {
			LdapWizard.ajaxRequests[reqID] = request;
		}
		return request;
	},

	applyChanges: function (result) {
		for (var id in result.changes) {
			LdapWizard.blacklistAdd(id);
			if(id.indexOf('count') > 0) {
				$('#'+id).text(result.changes[id]);
			} else {
				$('#'+id).val(result.changes[id]);
			}
		}
		LdapWizard.functionalityCheck();

		if($('#ldapSettings').tabs('option', 'active') == 0) {
			LdapWizard.basicStatusCheck();
		}
	},

	enableTabs: function() {
		//do not use this function directly, use basicStatusCheck instead.
		if(LdapWizard.saveProcesses === 0) {
			$('.ldap_action_continue').removeAttr('disabled');
			$('.ldap_action_back').removeAttr('disabled');
			$('#ldapSettings').tabs('option', 'disabled', []);
		}
	},

	disableTabs: function() {
		$('.ldap_action_continue').attr('disabled', 'disabled');
		$('.ldap_action_back').attr('disabled', 'disabled');
		$('#ldapSettings').tabs('option', 'disabled', [1, 2, 3, 4, 5]);
	},

	basicStatusCheck: function() {
		//criteria to continue from the first tab
		// - host, port, user filter, agent dn, password, base dn
		var host  = $('#ldap_host').val();
		var port  = $('#ldap_port').val();
		var agent = $('#ldap_dn').val();
		var pwd   = $('#ldap_agent_password').val();
		var base  = $('#ldap_base').val();

		if((host && port  && base) && ((!agent && !pwd) || (agent && pwd))) {
			LdapWizard.enableTabs();
		} else {
			LdapWizard.disableTabs();
		}
	},

	blacklistAdd: function(id) {
		var obj = $('#' + id);
		if(!(obj[0].hasOwnProperty('multiple') && obj[0]['multiple'] === true)) {
			//no need to blacklist multiselect
			LdapWizard.saveBlacklist[id] = true;
			return true;
		}
		return false;
	},

	blacklistRemove: function(id) {
		if(LdapWizard.saveBlacklist.hasOwnProperty(id)) {
			delete LdapWizard.saveBlacklist[id];
			return true;
		}
		return false;
	},

	checkBaseDN: function() {
		var host = $('#ldap_host').val();
		var port = $('#ldap_port').val();
		var user = $('#ldap_dn').val();
		var pass = $('#ldap_agent_password').val();

		//FIXME: determine base dn with anonymous access
		if(host && port && user && pass) {
			var param = 'action=guessBaseDN'+
					'&ldap_serverconfig_chooser='+
					encodeURIComponent($('#ldap_serverconfig_chooser').val());

			LdapWizard.showSpinner('#ldap_base');
			$('#ldap_base').prop('disabled', 'disabled');
			LdapWizard.ajax(param,
				function(result) {
					LdapWizard.applyChanges(result);
					LdapWizard.hideSpinner('#ldap_base');
					if($('#ldap_base').val()) {
						LdapWizard.hideInfoBox();
					}
					$('#ldap_base').prop('disabled', false);
				},
				function (result) {
					LdapWizard.hideSpinner('#ldap_base');
					LdapWizard.showInfoBox(t('user_ldap', 'Please specify a Base DN'));
					LdapWizard.showInfoBox(t('user_ldap', 'Could not determine Base DN'));
					$('#ldap_base').prop('disabled', false);
				},
				'guessBaseDN'
			);
		}
	},

	checkPort: function() {
		var host = $('#ldap_host').val();
		var port = $('#ldap_port').val();

		if(host && !port) {
			var param = 'action=guessPortAndTLS'+
					'&ldap_serverconfig_chooser='+
					encodeURIComponent($('#ldap_serverconfig_chooser').val());

			LdapWizard.showSpinner('#ldap_port');
			$('#ldap_port').prop('disabled', 'disabled');
			LdapWizard.ajax(param,
				function(result) {
					LdapWizard.applyChanges(result);
					LdapWizard.hideSpinner('#ldap_port');
					if($('#ldap_port').val()) {
						LdapWizard.checkBaseDN();
						$('#ldap_port').prop('disabled', false);
						LdapWizard.hideInfoBox();
					}
				},
				function (result) {
					LdapWizard.hideSpinner('#ldap_port');
					$('#ldap_port').prop('disabled', false);
					LdapWizard.showInfoBox(t('user_ldap', 'Please specify the port'));
				},
				'guessPortAndTLS'
			);
		}
	},

	controlBack: function() {
		var curTabIndex = $('#ldapSettings').tabs('option', 'active');
		if(curTabIndex == 0) {
			return;
		}
		$('#ldapSettings').tabs('option', 'active', curTabIndex - 1);
		LdapWizard.controlUpdate(curTabIndex - 1);
	},

	controlContinue: function() {
		var curTabIndex = $('#ldapSettings').tabs('option', 'active');
		if(curTabIndex == 3) {
			return;
		}
		$('#ldapSettings').tabs('option', 'active', 1 + curTabIndex);
		LdapWizard.controlUpdate(curTabIndex + 1);
	},

	controlUpdate: function(nextTabIndex) {
		if(nextTabIndex == 0) {
			$('.ldap_action_back').addClass('invisible');
			$('.ldap_action_continue').removeClass('invisible');
		} else
		if(nextTabIndex == 1) {
			$('.ldap_action_back').removeClass('invisible');
			$('.ldap_action_continue').removeClass('invisible');
		} else
		if(nextTabIndex == 2) {
			$('.ldap_action_continue').removeClass('invisible');
			$('.ldap_action_back').removeClass('invisible');
		} else
		if(nextTabIndex == 3) {
			//now last tab
			$('.ldap_action_back').removeClass('invisible');
			$('.ldap_action_continue').addClass('invisible');
		}
	},

	_countThings: function(method, spinnerID, doneCallback) {
		var param = 'action='+method+
				'&ldap_serverconfig_chooser='+
				encodeURIComponent($('#ldap_serverconfig_chooser').val());

		LdapWizard.showSpinner(spinnerID);
		LdapWizard.ajax(param,
			function(result) {
				LdapWizard.applyChanges(result);
				LdapWizard.hideSpinner(spinnerID);
				if(!_.isUndefined(doneCallback)) {
					doneCallback(method);
				}
			},
			function (result) {
				OC.Notification.showTemporary('Counting the entries failed with: ' + result.message);
				LdapWizard.hideSpinner(spinnerID);
				if(!_.isUndefined(doneCallback)) {
					doneCallback(method);
				}
			},
			method
		);
	},

	countGroups: function(doneCallback) {
		var groupFilter  = $('#ldap_group_filter').val();
		if(!_.isEmpty(groupFilter)) {
			LdapWizard._countThings('countGroups', '#ldap_group_count', doneCallback);
		}
	},

	countUsers: function(doneCallback) {
		var userFilter  = $('#ldap_userlist_filter').val();
		if(!_.isEmpty(userFilter)) {
			LdapWizard._countThings('countUsers', '#ldap_user_count', doneCallback);
		}
	},

	/**
	 * called after detectors have run
	 * @callback runDetectorsCallback
	 */

	/**
	 * runs detectors to determine appropriate attributes, e.g. displayName
	 * @param {string} type either "User" or "Group"
	 * @param {runDetectorsCallback} triggered after all detectors have completed
	 */
	runDetectors: function(type, callback) {
		if(type === 'Group') {
			$.when(LdapWizard.detectGroupMemberAssoc())
				.then(callback, callback);
			if(   LdapWizard.admin.isExperienced
			   && !(LdapWizard.detectorsRunInXPMode & LdapWizard.groupDetectors)) {
				LdapWizard.detectorsRunInXPMode += LdapWizard.groupDetectors;
			}
		} else if(type === 'User') {
			var req1 = LdapWizard.detectUserDisplayNameAttribute();
			var req2 = LdapWizard.detectEmailAttribute();
			$.when(req1, req2)
				.then(callback, callback);
			if(   LdapWizard.admin.isExperienced
			   && !(LdapWizard.detectorsRunInXPMode & LdapWizard.userDetectors)) {
				LdapWizard.detectorsRunInXPMode += LdapWizard.userDetectors;
			}
		}
	},

	/**
	 * runs detector to find out a fitting user display name attribute
	 */
	detectUserDisplayNameAttribute: function() {
		var param = 'action=detectUserDisplayNameAttribute' +
			'&ldap_serverconfig_chooser='+
			encodeURIComponent($('#ldap_serverconfig_chooser').val());

		//runs in the background, no callbacks necessary
		return LdapWizard.ajax(param, LdapWizard.applyChanges, function(){}, 'detectUserDisplayNameAttribute');
	},

	detectEmailAttribute: function() {
		var param = 'action=detectEmailAttribute'+
				'&ldap_serverconfig_chooser='+
				encodeURIComponent($('#ldap_serverconfig_chooser').val());
		//runs in the background, no callbacks necessary
		return LdapWizard.ajax(param, LdapWizard.applyChanges, function(){}, 'detectEmailAttribute');
	},

	detectGroupMemberAssoc: function() {
		param = 'action=determineGroupMemberAssoc'+
				'&ldap_serverconfig_chooser='+
				encodeURIComponent($('#ldap_serverconfig_chooser').val());

		return LdapWizard.ajax(param,
			function(result) {
				//pure background story
			},
			function (result) {
				// error handling
			},
			'determineGroupMemberAssoc'
		);
	},

	findAttributes: function() {
		param = 'action=determineAttributes'+
				'&ldap_serverconfig_chooser='+
				encodeURIComponent($('#ldap_serverconfig_chooser').val());

		LdapWizard.showSpinner('#ldap_loginfilter_attributes');
		LdapWizard.ajax(param,
			function(result) {
				$('#ldap_loginfilter_attributes').find('option').remove();
				for (var i in result.options['ldap_loginfilter_attributes']) {
					//FIXME: move HTML into template
					var attr = result.options['ldap_loginfilter_attributes'][i];
					$('#ldap_loginfilter_attributes').append(
								"<option value='"+attr+"'>"+attr+"</option>");
				}
				LdapWizard.hideSpinner('#ldap_loginfilter_attributes');
				LdapWizard.applyChanges(result);
				$('#ldap_loginfilter_attributes').multiselect('refresh');
				if($('#rawLoginFilterContainer').hasClass('invisible')) {
					$('#ldap_loginfilter_attributes').multiselect('enable');
				}
				LdapWizard.postInitLoginFilter();
			},
			function (result) {
				//deactivate if no attributes found
				$('#ldap_loginfilter_attributes').multiselect(
									{noneSelectedText : 'No attributes found'});
				$('#ldap_loginfilter_attributes').multiselect('disable');
				LdapWizard.hideSpinner('#ldap_loginfilter_attributes');
			},
			'determineAttributes'
		);
	},

	findAvailableGroups: function(multisel, type) {
		if(type !== 'Users' && type !== 'Groups') {
			return false;
		}
		param = 'action=determineGroupsFor'+encodeURIComponent(type)+
				'&ldap_serverconfig_chooser='+
				encodeURIComponent($('#ldap_serverconfig_chooser').val());

		LdapWizard.showSpinner('#'+multisel);
		LdapWizard.ajax(param,
			function(result) {
				$('#'+multisel).find('option').remove();
				for (var i in result.options[multisel]) {
					//FIXME: move HTML into template
					objc = result.options[multisel][i];
					$('#'+multisel).append("<option value='"+objc+"'>"+objc+"</option>");
				}
				LdapWizard.hideSpinner('#'+multisel);
				LdapWizard.applyChanges(result);
				$('#'+multisel).multiselect('refresh');
				part = type.slice(0, -1);
				if($('#raw' + part + 'FilterContainer').hasClass('invisible')) {
					//enable only when raw filter editing is not turned on
					$('#'+multisel).multiselect('enable');
				}
				if(type === 'Users') {
					//required for initial save
					filter = $('#ldap_userlist_filter').val();
					if(!filter) {
						LdapWizard.saveMultiSelect(multisel,
									$('#'+multisel).multiselect("getChecked"));
					}
					LdapWizard.userFilterAvailableGroupsHasRun = true;
					LdapWizard.postInitUserFilter();
				}
			},
			function (result) {
				LdapWizard.hideSpinner('#'+multisel);
				$('#'+multisel).multiselect('disable');
				if(type === 'Users') {
					LdapWizard.userFilterAvailableGroupsHasRun = true;
					LdapWizard.postInitUserFilter();
				}
			},
			'findAvailableGroupsFor' + type
		);
	},

	findObjectClasses: function(multisel, type) {
		if(type !== 'User' && type !== 'Group') {
			return false;
		}
		var param = 'action=determine'+encodeURIComponent(type)+'ObjectClasses'+
				'&ldap_serverconfig_chooser='+
				encodeURIComponent($('#ldap_serverconfig_chooser').val());

		LdapWizard.showSpinner('#'+multisel);
		LdapWizard.ajax(param,
			function(result) {
				$('#'+multisel).find('option').remove();
				for (var i in result.options[multisel]) {
					//FIXME: move HTML into template
					objc = result.options[multisel][i];
					$('#'+multisel).append("<option value='"+objc+"'>"+objc+"</option>");
				}
				LdapWizard.hideSpinner('#'+multisel);
				LdapWizard.applyChanges(result);
				$('#'+multisel).multiselect('refresh');
				if(type === 'User') {
					//required for initial save
					filter = $('#ldap_userlist_filter').val();
					if(!filter) {
						LdapWizard.saveMultiSelect(multisel,
										$('#'+multisel).multiselect("getChecked"));
					}
					LdapWizard.userFilterObjectClassesHasRun = true;
					LdapWizard.postInitUserFilter();
				}
			},
			function (result) {
				LdapWizard.hideSpinner('#'+multisel);
				if(type === 'User') {
					LdapWizard.userFilterObjectClassesHasRun = true;
					LdapWizard.postInitUserFilter();
				}
				//TODO: error handling
			},
			'determine' + type + 'ObjectClasses'
		);
	},

	functionalityCheck: function() {
		//criteria to enable the connection:
		// - host, port, basedn, user filter, login filter
		var host        = $('#ldap_host').val();
		var port        = $('#ldap_port').val();
		var base        = $('#ldap_base').val();
		var userfilter  = $('#ldap_userlist_filter').val();
		var loginfilter = $('#ldap_login_filter').val();

		//FIXME: activates a manually deactivated configuration.
		if(host && port && base && userfilter && loginfilter) {
			LdapWizard.updateStatusIndicator(true);
			if($('#ldap_configuration_active').is(':checked')) {
				return;
			}
			if(!LdapWizard.isConfigurationActiveControlLocked) {
				//avoids a manually deactivated connection will be activated
				//upon opening the admin page
				$('#ldap_configuration_active').prop('checked', true);
				LdapWizard.save($('#ldap_configuration_active')[0]);
			}
		} else {
			if($('#ldap_configuration_active').is(':checked')) {
				$('#ldap_configuration_active').prop('checked', false);
				LdapWizard.save($('#ldap_configuration_active')[0]);
			}
			LdapWizard.updateStatusIndicator(false);
		}
	},

	hideInfoBox: function() {
		if(LdapWizard.checkInfoShown) {
			$('#ldapWizard1 .ldapWizardInfo').addClass('invisible');
			LdapWizard.checkInfoShown = false;
		}
	},

	hideSpinner: function(id) {
		$(id+' + .wizSpinner').remove();
		$(id + " + button").css('display', 'inline');
	},

	isConfigurationActiveControlLocked: true,
	detectorsRunInXPMode: 0,
	userDetectors: 1,
	groupDetectors: 2,

	init: function() {
		LdapWizard.detectorsRunInXPMode = 0;
		LdapWizard.instantiateFilters();
		LdapWizard.admin.setExperienced($('#ldap_experienced_admin').is(':checked'));
		LdapWizard.lastTestSuccessful = true;
		LdapWizard.basicStatusCheck();
		LdapWizard.functionalityCheck();
		LdapWizard.isConfigurationActiveControlLocked = false;
	},

	initGroupFilter: function() {
		LdapWizard.groupFilter.activate();
	},

	/** init login filter tab section **/

	initLoginFilter: function() {
		LdapWizard.loginFilter.activate();
	},

	postInitLoginFilter: function() {
		if($('#rawLoginFilterContainer').hasClass('invisible')) {
			LdapWizard.loginFilter.compose();
		}
	},

	/** end of init user filter tab section **/

	initMultiSelect: function(object, id, caption) {
		object.multiselect({
			header: false,
			selectedList: 9,
			noneSelectedText: caption,
			click: function(event, ui) {
				LdapWizard.saveMultiSelect(id,
										$('#'+id).multiselect("getChecked"));
			}
		});
	},

	hideTestSpinner:function (countMethod) {
		var selector;
		if(countMethod === 'countUsers') {
			selector = '#rawUserFilterContainer .ldapGetEntryCount';
		} else {
			selector = '#rawGroupFilterContainer .ldapGetEntryCount';
		}
		LdapWizard.hideSpinner(selector);
	},

	/** init user filter tab section **/

	instantiateFilters: function() {
		delete LdapWizard.userFilter;
		LdapWizard.userFilter = new LdapFilter('User', function(mode) {
			if( !LdapWizard.admin.isExperienced()
			   || mode === LdapWizard.filterModeAssisted) {
				LdapWizard.userFilter.updateCount();
			}
			LdapWizard.userFilter.findFeatures();
		});
		$('#rawUserFilterContainer .ldapGetEntryCount').click(function(event) {
			event.preventDefault();
			$('#ldap_user_count').text('');
			LdapWizard.showSpinner('#rawUserFilterContainer .ldapGetEntryCount');
			LdapWizard.userFilter.updateCount(LdapWizard.hideTestSpinner);
			$('#ldap_user_count').removeClass('hidden');
		});

		delete LdapWizard.loginFilter;
		LdapWizard.loginFilter = new LdapFilter('Login', function(mode) {
			LdapWizard.loginFilter.findFeatures();
		});

		delete LdapWizard.groupFilter;
		LdapWizard.groupFilter = new LdapFilter('Group', function(mode) {
			if( !LdapWizard.admin.isExperienced()
			   || mode === LdapWizard.filterModeAssisted) {
				LdapWizard.groupFilter.updateCount();
			}
			LdapWizard.groupFilter.findFeatures();
		});
		$('#rawGroupFilterContainer .ldapGetEntryCount').click(function(event) {
			event.preventDefault();
			$('#ldap_group_count').text('');
			LdapWizard.showSpinner('#rawGroupFilterContainer .ldapGetEntryCount');
			LdapWizard.groupFilter.updateCount(LdapWizard.hideTestSpinner);
			$('#ldap_group_count').removeClass('hidden');
		});
	},

	userFilterObjectClassesHasRun: false,
	userFilterAvailableGroupsHasRun: false,

	initUserFilter: function() {
		LdapWizard.userFilterObjectClassesHasRun = false;
		LdapWizard.userFilterAvailableGroupsHasRun = false;
		LdapWizard.userFilter.activate();
	},

	postInitUserFilter: function() {
		if(LdapWizard.userFilterObjectClassesHasRun &&
			LdapWizard.userFilterAvailableGroupsHasRun) {
			LdapWizard.userFilter.compose();
		}
	},

	/** end of init user filter tab section **/

	onTabChange: function(event, ui) {
		if(LdapWizard.saveProcesses  > 0) {
			//do not allow to switch tabs as long as a save process is active
			return false;
		}
		var newTabIndex = 0;
		if(ui.newTab[0].id === '#ldapWizard2') {
			LdapWizard.initUserFilter();
			newTabIndex = 1;
		} else if(ui.newTab[0].id === '#ldapWizard3') {
			LdapWizard.initLoginFilter();
			newTabIndex = 2;
		} else if(ui.newTab[0].id === '#ldapWizard4') {
			LdapWizard.initGroupFilter();
			newTabIndex = 3;
		}

		var curTabIndex = $('#ldapSettings').tabs('option', 'active');
		if(curTabIndex >= 0 && curTabIndex <= 3) {
			LdapWizard.controlUpdate(newTabIndex);
			//run detectors in XP mode, when "Test Filter" button has not been
			//clicked in order to make sure that email, displayname, member-
			//group association attributes are properly set.
			if(   curTabIndex === 1
			   && LdapWizard.admin.isExperienced
			   && !(LdapWizard.detecorsRunInXPMode & LdapWizard.userDetectors)
			) {
				LdapWizard.runDetectors('User', function(){});
			} else if(   curTabIndex === 3
			          && LdapWizard.admin.isExperienced
			          && !(LdapWizard.detecorsRunInXPMode & LdapWizard.groupDetectors)
			) {
				LdapWizard.runDetectors('Group', function(){});
			}
		}
	},

	/**
	 * allows UserFilter, LoginFilter and GroupFilter to lookup objectClasses
	 * and similar again. This should be called after essential changes, e.g.
	 * Host or BaseDN changes, or positive functionality check
	 *
	 */
	allowFilterFeatureSearch: function () {
		LdapWizard.userFilter.reAllowFeatureLookup();
		LdapWizard.loginFilter.reAllowFeatureLookup();
		LdapWizard.groupFilter.reAllowFeatureLookup();
	},

	processChanges: function (triggerObj) {
		LdapWizard.hideInfoBox();

		if(triggerObj.id === 'ldap_host'
		   || triggerObj.id === 'ldap_port'
		   || triggerObj.id === 'ldap_dn'
		   || triggerObj.id === 'ldap_agent_password') {
			LdapWizard.checkPort();
			if($('#ldap_port').val()) {
				//if Port is already set, check BaseDN
				LdapWizard.checkBaseDN();
				LdapWizard.allowFilterFeatureSearch();
			}
		}

		if(triggerObj.id === 'ldap_loginfilter_username'
		   || triggerObj.id === 'ldap_loginfilter_email') {
			LdapWizard.loginFilter.compose();
		} else if (!LdapWizard.admin.isExperienced()) {
			if(triggerObj.id === 'ldap_userlist_filter') {
				LdapWizard.userFilter.updateCount();
			} else if (triggerObj.id === 'ldap_group_filter') {
				LdapWizard.groupFilter.updateCount();
			}
		}

		if($('#ldapSettings').tabs('option', 'active') == 0) {
			LdapWizard.basicStatusCheck();
			LdapWizard.functionalityCheck();
		}
	},

	save: function(inputObj) {
		if(LdapWizard.blacklistRemove(inputObj.id)) {
			return;
		}
		if($(inputObj).is('input[type=checkbox]')
		   && !$(inputObj).is(':checked')) {
			val = 0;
		} else {
			val = $(inputObj).val();
		}
		LdapWizard._save(inputObj, val);
	},

	/**
	 * updates user or group count on multiSelect close. Resets the event
	 * function subsequently.
	 *
	 * @param {LdapFilter} filter
	 * @param {Object} $multiSelectObj
	 */
	onMultiSelectClose: function(filter, $multiSelectObj) {
		filter.updateCount();
		$multiSelectObj.multiselect({close: function(){}});
	},

	saveMultiSelect: function(originalObj, resultObj) {
		var values = '';
		for(var i = 0; i < resultObj.length; i++) {
			values = values + "\n" + resultObj[i].value;
		}
		LdapWizard._save($('#'+originalObj)[0], $.trim(values));
		var $multiSelectObj = $('#'+originalObj);
		var updateCount = !$multiSelectObj.multiselect("isOpen");
		var applyUpdateOnCloseToFilter;
		if(originalObj === 'ldap_userfilter_objectclass'
		   || originalObj === 'ldap_userfilter_groups') {
			LdapWizard.userFilter.compose(updateCount);
			if(!updateCount) {
				applyUpdateOnCloseToFilter = LdapWizard.userFilter;
			}
			//when user filter is changed afterwards, login filter needs to
			//be adjusted, too
			if(!LdapWizard.loginFilter) {
				LdapWizard.initLoginFilter();
			}
			LdapWizard.loginFilter.compose();
		} else if(originalObj === 'ldap_loginfilter_attributes') {
			LdapWizard.loginFilter.compose();
		} else if(originalObj === 'ldap_groupfilter_objectclass'
		   || originalObj === 'ldap_groupfilter_groups') {
			LdapWizard.groupFilter.compose(updateCount);
			if(!updateCount) {
				applyUpdateOnCloseToFilter = LdapWizard.groupFilter;
			}
		}

		if(applyUpdateOnCloseToFilter instanceof LdapFilter) {
			$multiSelectObj.multiselect({
				close: function () {
					LdapWizard.onMultiSelectClose(
						applyUpdateOnCloseToFilter, $multiSelectObj);
				}
			});
		}
	},

	saveProcesses: 0,
	_save: function(object, value) {
		$('#ldap .ldap_saving').removeClass('hidden');
		LdapWizard.saveProcesses += 1;
		$('#ldap *').addClass('save-cursor');
		param = 'cfgkey='+encodeURIComponent(object.id)+
				'&cfgval='+encodeURIComponent(value)+
				'&action=save'+
				'&ldap_serverconfig_chooser='+$('#ldap_serverconfig_chooser').val();

		$.post(
			OC.filePath('user_ldap','ajax','wizard.php'),
			param,
			function(result) {
				LdapWizard.saveProcesses -= 1;
				if(LdapWizard.saveProcesses === 0) {
					$('#ldap .ldap_saving').addClass('hidden');
					$('#ldap *').removeClass('save-cursor');
				}
				if(result.status === 'success') {
					LdapWizard.processChanges(object);
				} else {
					console.log('Could not save value for ' + object.id);
				}
			}
		);
	},

	showInfoBox: function(text) {
		$('#ldapWizard1 .ldapWizardInfo').text(text);
		$('#ldapWizard1 .ldapWizardInfo').removeClass('invisible');
		LdapWizard.checkInfoShown = true;
	},

	showSpinner: function(id) {
		if($(id + ' + .wizSpinner').length == 0) {
			$(LdapWizard.spinner).insertAfter($(id));
			$(id + " + img + button").css('display', 'none');
		}
	},

	toggleRawFilter: function(container, moc, mg, stateVar, modeKey) {
		var isUser = moc.indexOf('user') >= 0;
		var filter = isUser ? LdapWizard.userFilter : LdapWizard.groupFilter;
		//moc = multiselect objectclass
		//mg = mutliselect groups
		if($(container).hasClass('invisible')) {
			filter.setMode(LdapWizard.filterModeRaw);
			$(container).removeClass('invisible');
			$(moc).multiselect('disable');
			if($(mg).multiselect().attr('disabled') === 'disabled') {
				LdapWizard[stateVar] = 'disable';
			} else {
				LdapWizard[stateVar] = 'enable';
			}
			$(mg).multiselect('disable');
			LdapWizard._save({ id: modeKey }, LdapWizard.filterModeRaw);
		} else {
			filter.setMode(LdapWizard.filterModeAssisted);
			filter.findFeatures();
			$(container).addClass('invisible');
			$(mg).multiselect(LdapWizard[stateVar]);
			$(moc).multiselect('enable');
			LdapWizard._save({ id: modeKey }, LdapWizard.filterModeAssisted);
			if(isUser) {
				LdapWizard.blacklistRemove('ldap_userlist_filter');
				LdapWizard.userFilter.compose(true);
			} else {
				LdapWizard.blacklistRemove('ldap_group_filter');
				LdapWizard.groupFilter.compose(true);
			}
		}
	},

	onToggleRawFilterConfirmation: function(currentMode, isRawVisible, callback) {
		if(   !LdapWizard.admin.isExperienced()
		   || currentMode === LdapWizard.filterModeAssisted
		   || (LdapWizard.admin.isExperienced() && !isRawVisible)
		) {
			return callback(true);
		}

		var confirmed = OCdialogs.confirm(
			'Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?',
			'Mode switch',
			callback
		);
	},

	toggleRawGroupFilter: function() {
		LdapWizard.onToggleRawFilterConfirmation(
			LdapWizard.groupFilter.getMode(),
			!$('#rawGroupFilterContainer').hasClass('invisible'),
			function(confirmed) {
				if(confirmed !== true) {
					return;
				}

				LdapWizard.blacklistRemove('ldap_group_filter');
				LdapWizard.toggleRawFilter('#rawGroupFilterContainer',
										   '#ldap_groupfilter_objectclass',
										   '#ldap_groupfilter_groups',
										   'groupFilterGroupSelectState',
										   'ldapGroupFilterMode'
		  								);
				LdapWizard.admin.updateGroupTab(LdapWizard.groupFilter.getMode());
			}
		);
	},

	toggleRawLoginFilter: function() {
		LdapWizard.onToggleRawFilterConfirmation(
			LdapWizard.loginFilter.getMode(),
			!$('#rawLoginFilterContainer').hasClass('invisible'),
			function(confirmed) {
				if(confirmed !== true) {
					return;
				}

				LdapWizard.blacklistRemove('ldap_login_filter');
				container = '#rawLoginFilterContainer';
				if($(container).hasClass('invisible')) {
					$(container).removeClass('invisible');
					action = 'disable';
					property = 'disabled';
					mode = LdapWizard.filterModeRaw;
				} else {
					$(container).addClass('invisible');
					action = 'enable';
					property = false;
					mode = LdapWizard.filterModeAssisted;
				}
				LdapWizard.loginFilter.setMode(mode);
				LdapWizard.loginFilter.findFeatures();
				$('#ldap_loginfilter_attributes').multiselect(action);
				$('#ldap_loginfilter_email').prop('disabled', property);
				$('#ldap_loginfilter_username').prop('disabled', property);
				LdapWizard._save({ id: 'ldapLoginFilterMode' }, mode);
				if(action === 'enable') {
					LdapWizard.loginFilter.compose();
				}
			}
		);
	},

	toggleRawUserFilter: function() {
		LdapWizard.onToggleRawFilterConfirmation(
			LdapWizard.userFilter.getMode(),
			!$('#rawUserFilterContainer').hasClass('invisible'),
			function(confirmed) {
				if(confirmed === true) {
					LdapWizard.blacklistRemove('ldap_userlist_filter');
					LdapWizard.toggleRawFilter('#rawUserFilterContainer',
											   '#ldap_userfilter_objectclass',
											   '#ldap_userfilter_groups',
											   'userFilterGroupSelectState',
											   'ldapUserFilterMode'
			  								);
					LdapWizard.admin.updateUserTab(LdapWizard.userFilter.getMode());
				}
			}
		);
	},

	updateStatusIndicator: function(isComplete) {
		if(isComplete) {
			LdapConfiguration.testConfiguration(
				//onSuccess
				function(result) {
					$('.ldap_config_state_indicator').text(t('user_ldap',
						'Configuration OK'
					));
					$('.ldap_config_state_indicator').addClass('ldap_grey');
					$('.ldap_config_state_indicator_sign').removeClass('error');
					$('.ldap_config_state_indicator_sign').addClass('success');
					if(!LdapWizard.lastTestSuccessful) {
						LdapWizard.lastTestSuccessful = true;
						LdapWizard.allowFilterFeatureSearch();
					}
				},
				//onError
				function(result) {
					$('.ldap_config_state_indicator').text(t('user_ldap',
						'Configuration incorrect'
					));
					$('.ldap_config_state_indicator').removeClass('ldap_grey');
					$('.ldap_config_state_indicator_sign').addClass('error');
					$('.ldap_config_state_indicator_sign').removeClass('success');
					LdapWizard.lastTestSuccessful = false;
				}
			);
		} else {
			$('.ldap_config_state_indicator').text(t('user_ldap',
				'Configuration incomplete'
			));
			$('.ldap_config_state_indicator').removeClass('ldap_grey');
			$('.ldap_config_state_indicator_sign').removeClass('error');
			$('.ldap_config_state_indicator_sign').removeClass('success');
		}
	}
};

$(document).ready(function() {
	$('#ldapAdvancedAccordion').accordion({ heightStyle: 'content', animate: 'easeInOutCirc'});
	$('#ldapSettings').tabs({ beforeActivate: LdapWizard.onTabChange });
	$('.ldap_submit').button();
	$('.ldap_action_test_connection').button();
	$('#ldap_action_delete_configuration').button();
	LdapWizard.initMultiSelect($('#ldap_userfilter_groups'),
							   'ldap_userfilter_groups',
							   t('user_ldap', 'Select groups'));
	LdapWizard.initMultiSelect($('#ldap_userfilter_objectclass'),
							   'ldap_userfilter_objectclass',
							   t('user_ldap', 'Select object classes'));
	LdapWizard.initMultiSelect($('#ldap_loginfilter_attributes'),
							   'ldap_loginfilter_attributes',
							   t('user_ldap', 'Select attributes'));
	LdapWizard.initMultiSelect($('#ldap_groupfilter_groups'),
							   'ldap_groupfilter_groups',
							   t('user_ldap', 'Select groups'));
	LdapWizard.initMultiSelect($('#ldap_groupfilter_objectclass'),
							   'ldap_groupfilter_objectclass',
							   t('user_ldap', 'Select object classes'));

	$('.lwautosave').change(function() { LdapWizard.save(this); });
	$('#toggleRawUserFilter').click(LdapWizard.toggleRawUserFilter);
	$('#toggleRawGroupFilter').click(LdapWizard.toggleRawGroupFilter);
	$('#toggleRawLoginFilter').click(LdapWizard.toggleRawLoginFilter);
	LdapConfiguration.refreshConfig();
	$('.ldap_action_continue').click(function(event) {
		event.preventDefault();
		LdapWizard.controlContinue();
	});
	$('.ldap_action_back').click(function(event) {
		event.preventDefault();
		LdapWizard.controlBack();
	});
	$('.ldap_action_test_connection').click(function(event){
		event.preventDefault();
		LdapConfiguration.testConfiguration(
			//onSuccess
			function(result) {
				OC.dialogs.alert(
					result.message,
					t('user_ldap', 'Connection test succeeded')
				);
			},
			//onError
			function(result) {
				OC.dialogs.alert(
					result.message,
					t('user_ldap', 'Connection test failed')
				);
			}
		);
	});

	$('#ldap_action_delete_configuration').click(function(event) {
		event.preventDefault();
		OC.dialogs.confirm(
			t('user_ldap', 'Do you really want to delete the current Server Configuration?'),
			t('user_ldap', 'Confirm Deletion'),
			function(deleteConfiguration) {
				if(deleteConfiguration) {
					LdapConfiguration.deleteConfiguration();
				}
			}
		);
	});

	$('.ldap_submit').click(function(event) {
		event.preventDefault();
		$.post(
			OC.filePath('user_ldap','ajax','setConfiguration.php'),
			$('#ldap').serialize(),
			function (result) {
				bgcolor = $('.ldap_submit').css('background');
				if (result.status === 'success') {
					//the dealing with colors is a but ugly, but the jQuery version in use has issues with rgba colors
					$('.ldap_submit').css('background', '#fff');
					$('.ldap_submit').effect('highlight', {'color':'#A8FA87'}, 5000, function() {
						$('.ldap_submit').css('background', bgcolor);
					});
					//update the Label in the config chooser
					caption = $('#ldap_serverconfig_chooser option:selected:first').text();
					pretext = '. Server: ';
					caption = caption.slice(0, caption.indexOf(pretext) + pretext.length);
					caption = caption + $('#ldap_host').val();
					$('#ldap_serverconfig_chooser option:selected:first').text(caption);

				} else {
					$('.ldap_submit').css('background', '#fff');
					$('.ldap_submit').effect('highlight', {'color':'#E97'}, 5000, function() {
						$('.ldap_submit').css('background', bgcolor);
					});
				}
			}
		);
	});

	$('#ldap_action_clear_user_mappings').click(function(event) {
		event.preventDefault();
		LdapConfiguration.clearMappings('user');
	});

	$('#ldap_action_clear_group_mappings').click(function(event) {
		event.preventDefault();
		LdapConfiguration.clearMappings('group');
	});

	$('#ldap_serverconfig_chooser').change(function(event) {
		value = $('#ldap_serverconfig_chooser option:selected:first').attr('value');
		if(value === 'NEW') {
			LdapConfiguration.addConfiguration(false);
		} else {
			LdapConfiguration.refreshConfig();
		}
	});

	expAdminCB = $('#ldap_experienced_admin');
	LdapWizard.admin = new ExperiencedAdmin(LdapWizard, expAdminCB.is(':checked'));
	expAdminCB.change(function() {
		LdapWizard.admin.setExperienced($(this).is(':checked'));
	});
});

redpajama_set_name: RedPajamaGithub


text:
Stealth Gameplay Isn't Enough: Give Me the Thrill of the Hunt
Kirk Hamilton
I finally finished Crytek's Crysis 2 last week and surprised myself by immediately firing up a new game and starting it over from the beginning. Sure, Crysis 2 is a slick, well-made first-person shooter, but it's fairly unremarkable on the surface. So why, when I had so many other games I could (or should) be playing, was I nano-suiting up yet another time?
A few minutes into my new game, I hit the right shoulder button to engage my cloaking device and slunk out of an office window and onto a balcony overlooking one of Crysis 2's trademark sun-dappled urban arenas. I surveyed the scene—a group of Cell soldiers were standing across a small park while nearby, another manned the machine gun on the back of an armored car. I slipped, cat-like, into an alleyway, bits of their conversation drifting along as I drew nearer. Carefully, I began to flank them.
And that was when I realized what it is that makes the game so appealing: Crysis 2 evokes the thrill of the hunt.
A friend of mine was talking about Crysis 2 on a podcast earlier this year, and when asked to explain why he enjoyed the game he said, essentially, "It's really fun to hunt people down." After saying that, he paused and kind of laughed, backpedaling a bit. "I realize that sounds a little creepy… but it's true! It's really fun!"
He's right: there's something uniquely satisfying about games that allow me to play the predator. And he's also right that it sounds kind of strange admitting that out loud… I swear I'm not a weirdo! I don't hunt people in my neighborhood after dark or anything! I just like games like Crysis 2, games that engage a natural, animal instinct through a confluence of stealth mechanics, flexible level design and strong enemy AI.
The essence of Batman is that predator in the dark, two white eyes glowing in the shadows, striking fear into the wicked.
Batman: Arkham Asylum had a lot going for it, but my favorite parts of the game were its predatory stealth segments. As the Bat picked off Joker's goons one by one, their increasingly panicked reactions and erratic behavior gave me a sick thrill. This is what people are talking about when they say that game feels like a "BatmanSimulator." Crime-solving, exploration and brawling are all fun, but the essence of Batman is that predator in the dark, two white eyes glowing in the shadows, striking fear into the wicked. Arkham Asylum perfectly captured that feeling.
Predatory games hinge upon the freedom to be spotted and then hide again without resetting everything—call it "dynamic stealth." Early Splinter Cells fall mostly into the "pure stealth" category. Protagonist Sam Fisher must remain unseen for the most part, and so most of the game is spent lurking in corners, waiting for guards to pass by or turn their backs. Splinter Cell: Conviction did a lot to move the gameplay in a more predatory, engaging direction. And while I do love early Splinter Cell games, I had a absolute blast playing and re-playing Conviction, and at this point I think I prefer it.
While doing a second spin through Deus Ex for our letter series on the game, I realized that as much as the game encourages stealth-based, predatory gameplay, it doesn't quite feel right. The moment I get spotted, enemies start running about all willy-nilly, setting off alarms and charging my position. The levels are too narrow to allow for any escape or improvisation, and in most instances, enemy AI doesn't have any layers between "unaware" and "alert." Striking, setting off the alarm, and then sneakily circling back while enemies close in on your last known position is one of the sublime thrills of a predatory game; but AI has to be advanced enough to pull it off.
I've Played Deus Ex. She Hasn't. Now We're Playing It Together
Earlier this year, games journalist-about-town (and Kotaku columnist) Leigh Alexander and I did a…
In addition to enemy AI, overall enemy design is also very important. Both Crysis 2 and its predecessor Crysis start off brilliantly, but both games get quite a bit less fun as they go on. This is almost entirely due to the fact that both games introduced a new, different type of enemy at the midpoint. When the Ceph were introduced in Crysis, what had been a game about prowling through the underbrush suddenly hinged upon big, open-field shootouts against flying squid-monsters. It wasn't half as much fun. Crytek smartly kept the Ceph on the ground in Crysis 2, but they still weren't as much fun to take on as the hapless PMC drones from the earlier parts of the game.
These sorts of games dig at something deeper, something darker: the hunter in all of us.
The sprawling savannas of Far Cry 2 present a remarkably pure dilution of chaotic, predatory gameplay. Pure stealth is rarely an option in that game, mainly because enemies are annoyingly hyper-aware and can spot you a couple clicks away. The key, then, is to move in carefully, strike from a distance and then close quickly, circling at all times while using the natural environment (bodies of water, bluffs and vantage points) to your advantage.
The dynamic nature of Far Cry 2's encounters make it enjoyable for hours at a time. Even better, the game adheres to its core design from beginning to end, dodging the switcheroo-itis that has plagued Crytek's games, including the first Far Cry. It is truly a wonderful thing that there are no extraterrestrial cephalopods or mutant killer apes in the latter half of Far Cry 2.
But there's something else about the game too, a certain quickening of the pulse as I come up over a bluff, crouch, and take aim. These games dig at something deeper, something darker: the hunter in all of us.
When I've used a wounded enemy for bait and drawn out an entire camp of mercenaries, I get a sense of bloody accomplishment that doesn't just derive from in-game progression or increased leaderboard status. It's grim, but it's very real—my predatory nature, working its way to the surface.
The guard post has been decimated, gutted by fire; there are bodies strewn all about. The last man standing has lost his cool and snapped. He's whirling around in circles, shouting false bravado into the shadows in the jungle. "That all you got? You got nothing! Where are you hiding? Where are you?"
I'll tell you where I am, buddy. I'm circling, circling… closing in for the kill…
You can contact Kirk Hamilton, the author of this post, at kirk@kotaku.com. You can also find him on Twitter, Facebook, and lurking around our #tips page.
TheDarknessDude
Seeing no love for the Hitman series in the comments so I will be the first to mention of what an amazing job they did with the stealth mechanics in this game specially Blood Money.
From dressing up as Chef to insert poison into your main target's food then vanish without anyone seeing you make your escape, to dressing up as a Clown just to knock out a woman who wants to have sex with you just so you can steal her necklace and sneak into the living room to use Fiber Wire to strangle her father who is too busy watching TV to even pay attention to you.
Not only that but there are so many available ways to kill them too. The series was so much fun and what they did with Blood Money, specially adding accidental deaths, was phenomenal.


text:
Videos 90 Day Fiance The Bachelor The Bachelorette Teen Mom Teen Mom 2 Big Brother Married at First Sight Sister Wives Below Deck RHOC RHOBH RHONY Love Island
Benjamin defends himself after 'bride price' scene with Akinyi's family: 'I did not come into this journey clueless'
Wed Oct 16, 2019 at 3:10pm ET Fri Jul 03, 2020 at 3:10 pm EDT
By Shaunee Flowers
After the latest episode of 90 Day Fiance: Before the 90 days, Benjamin is defending himself. Pic credit: TLC
On the latest episode of 90 Day Fiance: Before the 90 Days, Benjamin made a major flub when trying to convince Akinyi's family to let him marry her. Now, he's speaking out in his own defense with claims that he actually did know what he was doing when he traveled to Kenya to meet and hopefully become engaged to Akinyi.
The scene that has drawn quite a bit of criticism is when Benjamin finally showed up to Akinyi's family home to haggle over the bride price. He brought gifts in the form of a whole lot of food just as Akinyi told him but it turns out that her father was offended because that wasn't correct.
Akinyi's father explained that the large delivery of groceries is something that you do for a family when a loved one dies, not when you're trying to marry their daughter. Then, he called Akinyi back into the room before Benjamin even had a chance to offend him with the amount of cash he had planned to offer up too.
View More Pics
"I started with 90 day Fiance to share a journey and the experience that I went through with others," Ben wrote. "This included some of the challenges, love, and heart break that comes with it. I chose to do the Bride price ceremony on my own merits. I respect Akinyi's family and the amount of patience that they had to exercise do to my lack of knowledge."
In the post, Benjamin continued to explain, even defending Akinyi's family and asking 90 Day Fiance fans to show them some respect.
Join these forum discussions!
Do you think Nicole and Azan will ever get married?
Who is your crush on 90 Day Fiance? We know we all have one!
Are you Team Aladin or Team Laura?
"I chose to do this because of the beauty that I found within the culture," he continued. "I did not come into this journey clueless. I had done research, spoken with Akinyi and talked with others in America from her tribe. It is not okay for anyone to treat Akinyi, her family, or friends with disrespect. The amount that I took for the bride price is not acceptable in the culture. Please respect Akinyi, her family and friends."
He continued to defend Akinyi's parents, claiming that they were very hospitable despite what we've seen on the TLC series so far. Then, he finished the post with a Bible verse and a request to stop with all the negativity.
90 Day Fiance: Before the 90 Days star Stephanie Matto has Aplastic Anemia — What is it?
"Her Father and Mother welcomed me into their house with lots of hospitality. They prepared food for me and were accepting to my lack of knowledge surrounding their culture. As it's said in John 15:12 'My command is this: Love each other as I have loved you.' — Please respect the privacy of their family. Unless you have something positive to say, please keep it to yourself."
https://www.instagram.com/p/B3sZ82BH-Pg/
It's not clear what motivated Benjamin's post, though there has been quite a bit of chatter about Akinyi's family since their debut on Season 3 of 90 Day Fiance: Before the 90 Days. With reports that Benjamin has already filed for Akinyi's K-1 Visa, it sounds like the two are planning to tie the knot soon. He certainly doesn't want to upset his future in-laws.
90 Day Fiance: Before the 90 Days airs Sundays at 8/7c on TLC.
Shaunee Flowers
Shaunee Flowers is an editor and a writer for Monsters & Critics. She primarily writes about reality TV and has watched it since the very... read more
Latest posts by Shaunee Flowers (see all)
Married at First Sight exclusive: The new brides talk lingerie - 12th January 2021
Emily Maynard reveals Bell's Palsy diagnosis, explains why she kept fifth pregnancy a secret - 2nd January 2021
Peter Weber starting 2021 single: The Bachelor star announces surprise breakup with Kelley Flanagan - 1st January 2021
If you like this story then follow us on Google News or Flipboard.
Tags 90 Day Fiance, 90 Day Fiance: Before The 90 Days, Benjamin Taylor
Deavan Clegg claims Topher Park is a better dad than Jihoon Lee,...
Lisa Hamme claims Sojaboy used her to sell music, 90 Day Fiance...
Are Corey and Evelin from 90 Day Fiance: The Other Way still...


text:
Q: O que é compilador? O que é compilador? Poderiam exemplificar? E qual é a diferença entre compilador e gramática?

A: Um compilador é um programa que recebe código-fonte, escrito em uma linguagem de programação, e retorna um programa em outra linguagem, geralmente um executável, em linguagem de máquina, para ser executado depois.
Uma gramática é o conjunto de regras de sintaxe usado para validar o código-fonte de uma determinada linguagem de programação; cada linguagem tem sua gramática.
Uma das tarefas do compilador é verificar se o código-fonte passado para ele atende às regras de sintaxe da linguagem. Caso o código-fonte tenha erros de sintaxe, o compilador avisa com mensagens de erro.
Para algumas linguagens, em vez de um compilador, há um interpretador: tem a mesma função de um compilador (gerar código de máquina), mas gera o código de máquina e o executa na hora, sem gravar um executável. JavaScript, por exemplo, é uma linguagem interpretada. Várias linguagens, como Java, PHP e C#, adotam uma abordagem híbrida, compilando o código-fonte para uma linguagem intermediária, mais simples, e interpretando o programa nessa linguagem.
Mais informação na Wikipedia (em inglês):

*

*Compiler

*Interpreted language

*Formal grammar

*Extended Backus–Naur Form

A: Compilador é uma software que pega um arquivo fonte e analisa a sintase do código-fonte. Caso o código-fonte esteja certo ele transformará o código fonte em linguagem de máquina (ou uma linguagem intermediaria que será interpretada, como no caso do Java). Caso tenha algum problema o compilador avisa sobre o problema encontrado no código-fonte