text:
Institute for Economic and Racial Equity
IERE Home
About IERE
Graduate Research Assistants
IERE Racial Equity Fellows and Interns
PhD Student Profiles
Racial Justice x Tech Policy
Racial Wealth and Economic Equity
Work and Opportunity Pathways
Housing and Community Stability
Health and Life-Course Equity
Report Spotlight
News and Collaborations
IERELab Blog
Segal Program
Empowerment Economics
Dominant approaches to assets focus exclusively on individual behavior and center a very limited notion of assets as moneyed wealth. This framework ignores the historical and contemporary relationships of power that exist between marginalized communities and the economic system. These field-level blind spots perpetuate harmful narratives about individual and community capabilities, ignore local practices of resistance and resilience, and treat economic justice as separate from social justice. This traditional approach fails to appropriately recognize how race, gender, nation, and culture mediate individual and community participation in economic systems.
Empowerment Economics seeks to disrupt this western-centric foundation that has fueled decades of anti-poverty and economic empowerment agendas. In its place, Empowerment Economics provides a space to innovate, advance, and sustain work that centers the interconnected nature of racial and economic justice. This approach begins with situating each community's past and current wellbeing within the context of economic, political, and racial systems, and critically examining those systems. A community's strengths, cultures, values, and programs provide a path for deeper involvement, cooperation, and ownership by the local community.
Empowerment Economics: Research, Practice, and Networks
The Core Elements and Practice of Empowerment Economics
Scholarly Contributions and Legacies
Linking Research and Practice
Empowerment Economics: Research, Practice, and Network
Empowerment Economics emerged from the financial capability and advocacy works of a native Hawaiian community organization called Hawaiian Community Assets (HCA), and other Asian American and Pacific Islander (AAPI) community leaders. Empowerment Economics was built and relies upon a strong partnership between the Institute on Assets and Social Policy (IASP), National CAPACD, and HCA. This partnership between research, network-building, and practice began in 2016. The following year, the first case study, Foundations for the Future: Empowerment Economics in the Native Hawaiian Context, was published, catalyzing the term "Empowerment Economics." Foundations for the Future offers key insights into HCA's culturally relevant and multigenerational financial education programming. It also illustrates how Empowerment Economics differs from traditional mainstream financial capability models in providing a more holistic, community-led framework.
Following Foundations for the Future, the Root to Fruit case study examined how HANA Center, a Korean-led organization working in a multi-ethnic community of Chicago, practices Empowerment Economics. The case study focuses on HANA Center's youth programs, emphasizing how these programs practice Empowerment Economics through financial capability programming and civic engagement.
Over the past four years, IASP has worked closely with National CAPACD and HCA to develop the framework and core elements of Empowerment Economics and expand this collaboration to other organizations and funders. Included in that work was a landscape review of AAPI organizations' financial capability work, an evaluation framework matrix, and a preliminary evaluation framework report.
The core elements of Empowerment Economics distinguish Empowerment Economics from traditional approaches to economic and community development. These core elements hold together the methods – both specific and diverse – of Empowerment Economics, developed in and across communities of color.
Empowerment Economics' six core elements provide a guiding framework for organizations, funders, and advocates who seek to engage these principles in their programs and overall work. Additionally, the core elements offer space to reflect on how power and wealth are redistributed in more equitable ways and center the voices of communities of color.
Inspired by HCA's work, the six core elements of Empowerment Economics are:
Community-driven: Programs are developed by members of the affected community
Culturally connected: Programs draw on relationship to cultural roots as sources of strength, vital knowledge, and new ways to shape community life
Narrative-changing: Programs uplift the strengths, values, and capabilities of individuals, families, and communities
Holistic: Programs address multiple social needs (e.g., housing, financial capability, leadership, workforce development, etc.)
Multigenerational: Programs reach multiple generations, facilitate knowledge-sharing, and strengthen connections within and across generations
Wealth- and power-building: Programs build power to define and build wealth
Empowerment Economics is a partnership between community organizations, institutional funders, and academia. The research team at the Institute on Assets and Social Policy at the Heller School for Social Policy and Management takes on the primary responsibility of studying and synthesizing the practice of Empowerment Economics to forward interventions and make advancements in several related fields and disciplines. At its core, Empowerment Economics' scholarly roots lie in multiple anti-racist, anti-poverty, and dialogic intellectual traditions both in and outside of the academy.
The Empowerment Economics scholarly framework was developed by placing disciplines like Native Hawaiian Studies, Asian American Studies, and community-specific iterations of Critical Race Theory in conversation with the broad literature on financial capability, development economics, social movements, and participatory action research. Each of these fields has much to offer on its own. However, putting them in conversation with each other and the community organizations practicing Empowerment Economics allows for unique opportunities to expand academic knowledge by making it both applicable and accountable to marginalized communities.
Through this scholarly framework, Empowerment Economics seeks to accomplish research that leads to action. The framework, case studies, reports, and core elements are geared toward action in communities from the ground up. This approach is essential to Empowerment Economics because we believe that grassroots action can lead to significant systemic change. Action research is informed by praxis, and our work begins with networks of communities practicing Empowerment Economics. These networks lead to research that informs the Empowerment Economics framework, which in turn provides a way for organizations to challenge the existing inequities of wealth and power. Empowerment Economics' action research model is not just for practitioners but can help shift grantmaking practices in the philanthropic sector. Empowerment Economics can assist funders' understanding of what to measure and fund, with the goal of reallocating and distributing wealth more equitably.
Current Empowerment Economics and Related Work
The Empowerment Economics' network is continually expanding as we partner with place-based organizations to provide ground-up approaches to community wealth-building and power-shifting.
Current Empowerment Economics projects include:
Third Case Study: Following the Foundations for the Future and the Root to Fruit case studies, a third case will examine Empowerment Economics from the lens of the core elements. We have partnered with the Native American Youth and Family Center (NAYA) in Portland, OR, to conduct this case study.
Funders' Brief: Empowerment Economics is not solely a framework for practitioners but can provide a new model to measure success from a funder's perspective. Our team is working to understand how funders are reacting to and engaging with Empowerment Economics. This brief will demonstrate how Empowerment Economics can help shift the philanthropic field as a whole toward more equitable funding practices for community-based organizations.
Empowerment Economics Evaluation Tool: IASP is partnering with Eric Wat and National CAPACD to develop a tool for program managers to evaluate Empowerment Economics in relation to their work. Building on the case studies and evaluation matrix, this evaluation tool will help collect data from program participants and assess anticipated outcomes.
Curriculum Development: IASP is contributing to the development of a curriculum in partnership with HCA and National CAPACD. This curriculum aims to engage practitioners in technical assistance training and will be created and facilitated around the core elements of Empowerment Economics.
Empowerment Economics provides space for organizations and programs to engage with this work in their unique place-based contexts. Below are examples of research and collective work that are informed by Empowerment Economics:
MassUP Winchendon Economic Empowerment Evaluation: IASP is partnering with the HEAL Winchendon Economic Empowerment coalition to provide thought partnership and evaluation services for a project seeking to address racial and economic inequities in Winchendon, MA. This 3.5-year project focuses on upstream factors impacting equity in Winchendon, including civic engagement, leadership, healthy food systems, and inclusive decision-making.
Youth Participatory Action Research: IASP is partnering with Waltham Partnership for Youth (WPY), providing training for Waltham High School students and WPY staff on a Youth Participatory Action Research project. Through this project, students seek to collectively understand and act on social justice issues that affect their community.
For more information on Empowerment Economics Research contact Jessica Santos at IERE@brandeis.edu
781-736-3819iere@brandeis.eduPrivacy Notice


Floris graduated from the University of Amsterdam in 2013, specializing in Criminal Law. In that same year, he obtained a master's degree in Transnational Legal Studies at the Free University Amsterdam. Following his graduation, Floris worked at the criminal law sections of the Court of North Holland and the Court of Appeal of Amsterdam. In Amsterdam Floris last worked as a senior registrar involved in handling criminal appeal cases of divergent nature. He gained for instance extensive experience in complex criminal cases in the field of money laundering and fraud.
Floris an author of the SDU Comment on the Code of Criminal Procedure (SDU Commentaar op het Wetboek van Strafvordering).


text:
Q: How to make different paragraphs show up after clicking on something This is my first question here, I'm very new to coding so please forgive me any mistakes.
So i started learning html/css/some basic javascript recently and I'm trying to build a website just for practice. So one page on it looks like this:
https://imgur.com/ZHyeprC
And right now i have different html files for each article (linked under the site navigation: Shauna, The First One etc.), so each name of the article takes you to a different page.
What i want to do is to have multiple articles in just one html file, and make them show up/disappear when the name of the article is clicked.
I tried to figure it out somehow in jquery, but i only managed to wrap the article in a div and make it appear when the invisible div is clicked... which isn't much useful.
So is it posibble to do with simple javascript/jquery? If so, the how do i do this?
Thank you all in advance, Michal.

A: The most easy and practical way is to have one HTML file for each article. It makes your files more organized and easier to find. Otherwise, if your client just want to look at one article the page has to load all articles which may take longer if the client happens to have a slow internet connection.

redpajama_set_name: RedPajamaStackExchange


For some, the year 2018 was described as a 'mess' with one Twitter user going as far as to call it an 'irredeemable dumpster fire'. That said, for the people on this list, 2018 was far more magic than mess. From breaking global boundaries, to championing social issues, some of South Africa's best-loved creatives used the last 12 months to craft unique and special offerings to their communities and consumers, and taught us a few lessons about how to rethink our own approaches to business and creativity.
After enduring a barrage of abuse following his groundbreaking role in the film Inxeba (The Wound), no one would've blamed Nakhane for calling it quits on 2018. Instead, he turned a whirl of controversy into a insignificant backstory, and took his career to meteoric heights. Based in London, Nakhane released his critically-acclaimed album You Will Not Die, and fast became the favourite of fans and faves alike. Between private visits and an endorsement from Sir Elton John, park dates with Ben Whishaw and Instagram photos snapped by Madonna, there is no doubting Nakhane's powerful talent and personality. Taking on a demanding (some would say brutal) international touring and press schedule, Nakhane proved that there are no boundaries for South African artists, and that hip hop and house are not the only genres South Africa has to offer. Part of Nakhane's appeal in 2018 was his balance of glittering self-confidence and comforting relatability – a rare gift in the world of South African, and indeed international celebrity. Delivering a series of near-perfect visuals to aid his sonic storytelling, Nakhane is adept at any task he takes on. He says to us, with every offering, "I can do anything".
When the (now historic) Cornerstore announced it would be closing its famous Sir Lowry Road store, there was a palpable panic across the South African streetwear community. After all, the space was home to some of the best-loved local 'hypebeast' brands. But savvy business duo, and married couple Mathew and Melissa had a vision for their loyal fans and customers, and soon opened Orphan Street Clothing Store (O.S.C.S). Clearly identifying a vacuum and a business opportunity, the SolSol and Maylee masterminds set about furthering the look, feel and shopping experience of Cape Town streetwear. With a clean, almost Marie Kondo-like quality, O.S.C.S. is a gorgeous peep into the potential future of South African retail. The store is infused with both of their approaches to style and decor, and though it would fit seamlessly into a high street in London, Berlin, or Paris, it (thankfully) lacks the pretentiousness that makes for an awkward shopping experience. Supported by their longtime collaborator Luke Cassar who runs the day to day management of the store, the Kieser team have once again provided a lesson in the value of vision, determination and of course, a big spoonful of style.
Nandi Dlepu is something of an institution in the Johannesburg creative scene. Known by some for her role as an executive producer, others as a fierce champion for women's empowerment and by others still as the face behind Feel Good Series, the entrepreneur and creative took her mission further in 2018. Despite the massive success of the Feel Good Series events, Dlepu went on to add to her repertoire – by partnering with Martell for the Feel Good Live Sessions, and by launching her new colour-coded cool event series, Pantone Sundays. In addition to this, Mamakashaka also operates as the name of her creative agency, which gained serious traction in 2018. While it is certainly the case that there are many creatives wearing many hats, few can claim to have as distinctive and recognizable an impact as Dlepu. Her aesthetic, her personal ethos and inspiration is clearly felt across everything she is a part of – and despite being somewhat in the business of groove, she has shown her network that the best part of anything is remaining true to your vision and to yourself.
When I first came across Tsukudu, I'll admit I was a little skeptical. After all, how was a guy doing his Masters degree in Law, tucked away in Grahamstown, planning to make it big with his music? But where I saw a dead end, Tsukudu saw a path all his own. After releasing his second EP, Melodiesonic, there was no doubt that he was on a mission to succeed. Soon, he swapped his quiet Eastern Cape life for some pretty epic shows. Just months after his EP dropped, he caught the attention of the Kool Out team, playing a gig that would cement his place as a producer worth some serious attention. And rightly so – Tsukudu seems to work with a laser-like focus, constantly experimenting with new sounds, supporting other new artists, and asking for honest feedback, his dedication is unquestionable. In 2018, however, what stood out most was his ability to stay on his own musical path. In a landscape where cookie-cutter cool and compromise are the cornerstones for any chance of success, Tsukudu has taken a brave 'build it and they will come' approach, which is both terrifying and terribly refreshing.
When it comes to art as activism, Ellen Heydenrych comes to mind instantly. An illustrator and designer, the 23 year old took 2018 by the horns and used it to chronicle her journey and evolution as an artist and person. Often tackling close to the bone topics, such as sexual violence, period positivity and her own battles with mental health, her vulnerability and self-confessed chronic oversharing made her (and her work) a safe space for those who encountered her work. Carefully combing through messages from women sharing their stories, her ability to invoke a sense of intimacy and trust is a rare gift, in an environment where both are dismissed. Heydenrych has been working on an ambitious children's book project, which also has an academic component, hoping to take the lessons from her illustration into the formal academic space, to make interventions around the way illustrators can start to represent sensitive issues and marginalized groups through drawing.
Cedric Nzaka is a quintessential 'fave' on the South African creative scene. Known widely for his unmissable street style portraits, Nzaka is regarded highly for his talent and consistently. And so when he decided to head back to his home country of Kenya, his local fans were understably upset and confused – even issuing calls on social media for his immediate return. After all, why would you move away for a year when you're at the top of the game? For Nzaka, the lesson for 2018 was that the art form, rather than the attention was what counted. He disconnected from Johannesburg, and put his own personal and career development first – engaging new inspirations, projects and people while based in Nairobi. In the rat race of creative success in South Africa, Nzaka swapped out complacency for new creativity and upon his return his December, where he shot some of Afropunk's best images, showed that sometimes you have to take a step back and look at the bigger picture. In focus, of course.
While there is much to be said for massive spotlight as a way to garner attention in the creative industry, for DJ and events guru Akio Kawahito, the work is its own reward. Well-known on the South African events circuit, and one of the minds behind the Kool Out brand, Kawahito turned this up a notch in 2018. In partnership with his trusted circle, Kawahito was part of securing acts like SiR and Bas for sold out performances in South Africa. Deeply in touch with the South African listener, their tastes and interests, Kawahito competed effortlessly with far larger events companies and collectives and won – swapping big, flashy (and often disappointing venues) for concerts in the right places, with the right music. A savvy businessperson, with a knack for engaging openly and kindly with friends and strangers, his ear-to-the-ground approach to delivering experiences signals an evolution in the relationship between the local and international music circuits. The lesson: Sometimes the biggest impact comes from the softest voice.
There is no doubt that Wanda Lephoto owned the small business, big presence game in 2018. From a solid degree of notoriety and support from working in The Sartists collective, Wanda's popularity, interest (and we hope, sales) skyrocketed in 2018. His is an interesting case, where no one 'clique' owns the Wanda Lephoto aesthetic – not the cool kids, not the hypebeasts, not anyone. Instead, his designs are owned and loved by a diverse range of consumers – who resonate with his use of iconography, careful use of fabrics, and a nod to the glory and gracefulness of African people. Marc Jacobs was once quoted as saying that "people don't buy a product, they buy an inspiration" and Wanda's approach to design and marketing reflect that. Far beyond his apparel, fans flock to his page to see their favourite local influencers depicted in portraits that are at once striking and intimate. And if that's not enough, he also took his empire 'mainstream', by securing a spot as part of Woolworth's Style by SA range, which celebrates the best and brightest local designers.
Tshegofatso Senne has a rare ability – all her creative work stems from care. Whether she is championing self care, encouraging the progress of womxn and queer people, or speaking at public events, there is a deep sense of heart in her work. Her most game-changing work however, was the release of her Thembekile Journals. Drawing on 2018's massive bullet journaling trend, Senne developed a range of customized and customizable bullet journal, to suit different needs – and to take the upskilling required to bullet journal from scratch. Taking the practice far outside the realm of the pretty, Pinterest-esque space, the Thembekile journal is both beautifully designed and a practical component for every day life. And it's not just for creatives – the ease of use and creativity have made it a favourite of all kinds of customers – including those with careers in writing, security studies and social justice work. Wary of the price constraints of the South African market, Senne took care to ensure that while not cheap, the product was accessibly priced, in order to ensure that as many customers as possible could benefit from the journal, and the healing practice of bullet journaling.
There is no doubt that FAKA won 2018. The gqom gender-being duo, comprised of Desire Marea and Fela Gucci took their fantastical, fashionable brand of music making and turned it into an international empire. While at home, there are certain audiences who still need to shrug off their reservations, FAKA certainly opened some eyes and minds with their ability to deliver fast-paced electrifying performances with powerful messages. In 2018, they dedicated a solid chunk of performance to their local fans, and through their consistent touring abroad, have gained a new base of adoring followers everywhere from London to Helsinki. And they were being closely watched. Doyenne of the iconic house of Versace, Donatella Versace personally invited the duo to sit front row in Milan at the showcase of the 2019 menswear collection, where she used their music as the key soundtrack for the show. Unflinching and uncompromising, the queer advocates and best friends have helped to rescript ideas about the horizons of possibility available to queer artists, and looked amazing while doing it.


text:
José María Vitier (* 7. Januar 1954 in Havanna) ist ein kubanischer Pianist und Komponist.

Der Sohn der Schriftsteller Cintio Vitier und Fina García Marruz war ab 1962 Schüler von Cecilia Echevarría und ab 1965 von Margot Rojas Mendoza. Von 1968 bis 1975 studierte er am Conservatorio Amadeo Roldán bei César López. Ab 1975 unterrichtete er an der Musikschule von Matanzas. 1977 schloss er sich als Komponist und Pianist der Grupo Sintesis an und wurde Professor an der Escuela Nacional de Arte.

Als Klavierbegleiter der Geigerin Rosa María Estrada nahm Vitier 1979 am Festival Flagge für den Frieden in Bulgarien teil. 1983 gründete er eine eigene Gruppe, der der Geiger Lázaro González, der Bassist und Gitarrist Nicolás Sirgado sowie die Perkussionisten Miguel A. Rodríguez, Eugenio Osorio und Antonio Carreras angehörten. Mit dieser Gruppe trat er in den Folgejahren bei Festivals u. a. in der DDR, Mexiko, den USA, Venezuela, Kanada und Frankreich auf.

Für seine Musik zu Constante Diegos Film Mascaró, el cazador americano wurde Vitier 1992 mit dem Premio Choral ausgezeichnet. 1993 gab er im kanadischen Glenn Gould Theatre Konzerte mit der Saxophonistin Jane Bunnett, dem Kontrabassisten Carlos del Puerto und dem Pianisten Frank Emilio Flynn, darauf trat er beim Festival Cervantino in Mexiko mit der Sängerin Miriam Ramos und Carlos del Puerto auf.

1994 unternahm er mit Pablo Milanés eine Konzertreise nach Spanien. Im gleichen Jahr wurde er für seine Musik zu dem oscarnominierten Film Fresa y chocolate von Tomás Gutiérrez Alea und Juan Carlos Tabío mit dem Premio Pananbí ausgezeichnet. 1995 fungierte er als Juror beim Zweiten Internationalen Klavierwettbewerb in Ciudad Juárez. Seine Alben Salmo de las Américas und Canciones del buen amor wurden 2000 bzw. 2002 für einen Grammy nominiert. 2017 stellte er bei einem Konzert im Pariser Instituto Cervantes unter der Überschrift Tarde en La Habana eine Auswahl seiner erfolgreichsten Kompositionen vor.

Werke

Quellen
 EcuRed: José María Vitier
 BebeBum.com:

Pianist
Filmkomponist
Komponist (Kuba)
Kubaner
Geboren 1954
Mann

redpajama_set_name: RedPajamaWikipedia


text:
We read the papers everyday
Richard Littlejohn on rape
Post author By uponnothing
No Comments on Richard Littlejohn on rape
I've been observing – with some disgust – the arguments about rape this week and I was wondering if the level of debate could get any worse. Then I realised that Richard Littlejohn had decided to make this topic the focus of his column this morning.
Yes, Richard Littlejohn, the man who insisted that the five women murdered in Ipswich be referred to only as 'prostitutes' and that we needn't mourn the death of these 'disgusting, drug-addled street whores' who were 'no great loss' as they 'weren't going to discover a cure for cancer or embark on missionary work in Darfur'. And anyway, said Richard, 'death by strangulation [was] an occupational hazard' for the five women murdered, so what were we all getting upset about?
Yes, Richard women-hating Littlejohn – the man who sees in the twice-weekly collection of wheelie-bins the very end of civilisation – has had to step in because he feels the 'The confected, hysterical reaction to his remarks was frankly typical of the debasement of political debate in this country'.
Yes, your eyes are not deceiving you, the man whose greatest satirical tool is to miss-spell words and to imagine what any given modern event would be like if it involved the characters of Dad's Army is stepping in to rescue the level of debate.
You are probably thinking: 'This isn't going to go well, is it?' And you're right.
You see the trouble with Ricard is that he is so incapable of understanding any given topic that in order to 'win' any sort of argument he has to set-up a completely false starting point. He does this by arguing something that no-one has been talking about – at all – all week:
Last Tuesday night, two British charity workers were attacked and raped repeatedly by a gang of six masked men on the Caribbean island of St Lucia.
The women — aged 24 and 31 — were overpowered and subjected to a horrifying and prolonged sexual assault.
Their nightmare ordeal took place on a remote stretch of beach in the north-east of the island, where they were working on a wildlife conservation project.
No one would dream of suggesting that because they were camping on an isolated beauty spot overnight they were asking to be attacked.
Six men have now been charged with gang rape. If convicted they can expect — and will thoroughly deserve — harsh, exemplary punishment.
But let's imagine for a moment that one of these unfortunate women had met a man in a Tiki Bar on St Lucia, got off her head on rum punch and invited him back to her hotel room for a drunken tumble.
The following morning, through her hungover haze, she was consumed by self-loathing. Would she be entitled to cry 'rape'? [Emphasis is mine]
There we have it, somehow Richard Littlejohn has stepped into a semantic debate that focuses on the idea that rape can involve different degrees of violence and therefore attract different degrees of punishment (with the counter-argument that all rape is equal because rape is inherently violent; so, irrespective of whether the rapist hits the victim or not, the crime is the same because the act of rape is a far greater act of violence than hitting someone) by talking about women who 'cry "rape"' after having a consensual one-night stand.
And, it's worth pointing out, that once more Richard makes it perfectly clear he is just making it up with his classic 'imagine if…'.
Why is it that whenever rape is discussed certain people – normally barrel-scraping misogynist hacks like Richard – always want to discuss false accusations of rape. We all understand that this is a serious issue, Richard, but it adds nothing to the debate about the conviction and prosecution of rapists – unless of course you just want to imply that unless the rape is completely unequivocal as in your first example, then we should just assume the women regrets a one-night stand and is 'crying rape'.
Richard – having as usual got his caveats out of the way right at the start of his piece – then gets going:
There's a world of difference between a violent sexual assault at the hands of a complete stranger, or gang of strangers, and a subsequently regretted, alcohol-induced one-night stand.
That's not how the self-appointed Boadiceas of feminism see it. To them 'rape is rape', regardless of the circumstances, even if the woman was so sloshed she can't remember whether or not she consented.
These vengeful viragos insist that 'rape is a life sentence' in every case. No, it isn't. In many instances, it isn't even rape.
There is a world of difference between rape and consensual albeit drunken sex, the trouble is Richard no-one is arguing otherwise. You have, as usual purposefully missed the point entirely. The next two sentences accuse the 'self-appointed Boadiceas of feminism' (you see you have to be a proper hardcore feminist to think that rape is a bad thing) of doing something they are not. They're not defending women who falsely accuse someone of rape, probably because these people do a huge amount of damage to the cases of the real victims of rape (it doesn't help that they receive a disproportionate media coverage either).
Let me make it absolutely clear for Richard: this week a debate erupted because it seemed as if the justice minister implied that rape could involve various degrees of violence and thus deserved varying degrees of punishment. The people who took offence at this tried to point out that rape is rape, irrespective of whether the attacker is violent in other ways towards his victim. The point being made is that rape is in itself the ultimate expression of physical violence and dominance, it doesn't need to be accompanied by other forms of violence to attract the label of a violent crime.
I just get the impression that some people really see some kind of distinction between rape and violence. I think the confusion stems from the fact that ordinarily sex is a pleasurable and painless act so when a rape occurs the mind is able to make the fallacious argument that if no other violence occurred during the rape then it can't have really been a violent act because the body is not normally harmed by sex. I genuinely think that this is the way some people subconsciously see rape. If the attacker doesn't stamp on your face afterwards it's seen as little more than inconvenient sex.
The sad thing is that this was never a discussion about consent, it was a discussion that stemmed once more around the idea that even in clear cases of rape (where the attacker confesses for example) there can be varying degrees of rape depending on the other violence associated with the case. Rather than engage in this debate Richard Littlejohn instead accuses women of crying rape simply because they regret casual encounters and then suggests that the only people to take offence are a bunch of hardy feminists who come out screaming to defend such women.
Even when he tries to get involved in a real, current debate he still has to completely invent a different debate to suit his own distorted agenda. In Richard's world there are two types of rape: the first is the clear, violent gang rape of 'innocent' women, the next is just a bunch of drunken women screaming rape. It must be so nice living in a world of such clear distinctions.
This is the two types of 'rape' that Littlejohn puts into opposition:
I've no doubt that the victims of the most violent attacks, such as the poor woman who upbraided Ken Clarke on the wireless this week, carry their trauma with them for the rest of their days.
But, equally, many women who have had a brief sexual encounter of which they are ashamed simply shrug it off and get on with their lives. They don't scream 'rape', they chalk it up to experience and vow to go easy on the chardonnay in future.
So, unless you are a rape victim who suffered a 'most violent attack' you'll probably get over it just fine. On the other hand, if it wasn't a really violent act then you're were probably just drunk and feel a bit ashamed so you'll just cry rape for the hell of it.
Richard Littlejohn thinks that only women suffer or get upset by rape
Even when he tries to engage with a real debate, Richard must instead invent his own version because otherwise things are just too complex for him
If you weren't brutally gang-raped, you're probably just making it up (and you were almost definitely drunk as well)
No matter how hysterical or depressing a debate becomes, Richard can still easily drag it down another few notches
Richard Littlejohn is still the most cowardly little man in the whole of tabloid-land.
← Double Standards → Knowing the Not Known
Dishonest journalism matters
Winterval: still continuing to fool lazy journalists
Winterval: Still alive and kicking
Winterval E-Book published
Due prominence
© 2021	Angry Mob

redpajama_set_name: RedPajamaCommonCrawl


Imtiaz Ali's 'Laila Majnu' is postponed to 7th September 2018!
July 25, 2018 August 2, 2018 InderjeetLeave a Comment on Imtiaz Ali's 'Laila Majnu' is postponed to 7th September 2018!
but due to its clash with Happy Phirr Bhag Jaegi and Anil Sharma's Genius, he moved its release date to 7th September which now will be clashed with Sushant Singh Rajput and Jacqueline Fernandezs' Drive and J.P Dutta's Paltan.
Ali smartly announced it by sharing another poster of 'Laila Majnu', which of course is amazingly clicked but his fans have to wait for another 2 weeks for the film and same for the trailer while it had to be released today.
Happy Phirr Bhag Jayegi Trailer will leave you die laughing!
Confirmed: Salman Khan and Alia Bhatt in Sanjay Leela Bhansali's next, titled 'Inshallah'.


text:
Join the Georgia Transparency Project
State legislators say they welcome transparency regarding their personal finances — corporate and real estate holdings, government contracts and the like.
But who decides what constitutes transparency, or how diligently to check whether they're truly telling us what we're entitled to know? They do.
Just as war is too important to be left to the generals, transparency is too important to be left to the politicians. That's where the Georgia Transparency Project comes in.
A little background: Georgia requires everyone seeking elected office to disclose basic financial information when they qualify to run and, if they win, once a year after that. Some appointed officials file similar disclosures. The purpose is to let citizens know where public and private interests might conflict.
You can look up those reports online at the Government Transparency and Campaign Finance Commission's website. Reports are there for city and county officials starting in 2011 and for state officials back to 2005.
Transparency is an illusion, though, without compliance, and that requires enforcement. Extreme budget cuts have eliminated all but one of the six investigators and auditors who once scrutinized those disclosures. The remaining auditor will handle about 70,000 filings, with a goal of auditing 3,500 or so, in 2011. At that rate, she'd get through this year's batch by the year 2031.
So, candidates and public officials can reveal as much or as little as they want with minimal chance that regulators will catch on.
The Georgia Transparency Project, working with student journalists and volunteers, will fill that gap. We will audit disclosures of every state legislator, comparing each against other public records — property ownership, business filings, court cases — to determine what those lawmakers have disclosed and what they have not.
We'll analyze campaign records to tell you how much money they've raised, and from whom. We'll examine how they've spent campaign money and how much they've shared with other candidates. We'll tally up whose lobbyists have spent the most on each legislator. We'll check tax and court records and oversight agencies' investigative files.
The Transparency Project will always be a work in progress, continually adding information and insight. New disclosures will be uploaded and analyzed, new court cases reviewed. Whenever possible, hyperlinks will take readers to our source documents. This information will remain available perpetually. Once we've covered the Legislature, we can drill into other areas of government — perhaps cities and counties, lobbyists or political action committees.
By giving citizens a one-stop source for accountability information, we believe the project can alter Georgia's political landscape. Even before publishing the first piece, we've had an impact. Lawmakers have filed delinquent disclosures or amended older ones. They've caught up on unpaid taxes. They've called us a few names.
But there's much more work ahead of us. That's where we need your help. We need tips and information, documents and photos. We need people to spread the word about the Transparency Project. We need IT support. We need experts — lawyers, accountants, real estate and other professionals — who can lend their knowledge. We need more volunteers to research and compile records; let us know if you can spend a little time reviewing records in your local courthouse or city hall or compiling campaign contributions or lobbyist spending.
Most critically, we need your financial support. We have expenses for travel and lodging, cellphones, computer support, record acquisition. Some government agencies have asked for hundreds of dollars just to provide routine information on payments to legislators' businesses.
In particular, we need to work on this full-time. If you bemoan the impact of shrinking newsrooms and their shrinking budgets for investigative journalism, this is your chance to do something about it. It's up to you.
What value do you place on true government transparency? What do you pay for other reliable news sources? Think about that, then please click on one of the Paypal buttons plastered all over this site to donate, or send us a check. If you planned to donate to a political candidate in the coming year, think about giving us a little to help keep the politicians honest.
Donors at the bronze ($100), silver ($250) or gold ($500) levels can get their names in lights — or pixels, anyway — on our Roster of Great Americans. You may also keep your donation anonymous.
Regardless of the method or the amount, please consider giving to the Transparency Project. Help us make this research available to all Georgians in 2012.


Patrick O'Donnell is a British male model that has walked the runways for Hardy Amies, Parke & Ronen and Missoni.
Patrick O'Donnell is signed with London Mgt Group Sydney, DT Model Management Los Angeles, Kult Model Agency Hamburg, Sight Management Studio Barcelona, Models 1 London, Why Not Model Management Milan, New Madison Paris and Ford Models New York.
In 2011 Patrick O'Donnell walked the spring runways for Vivienne Westwood and Ermanno Scervino. He modeled for an editorial in the April edition of i-D Magazine, which was called Show Yourself. He modeled for an editorial in the June edition of i-D Magazine, which was called The Sound of Now. He modeled for an editorial in the July edition of i-D Magazine, which was called All Things Bright and Beautiful. He modeled for an editorial in the August edition of British Vogue, which was called You've Got the Look. He modeled for an editorial in the fall edition of Varon Magazine, which was called The Butcher. He was in the fall ad campaign for Stone Island. He was on the May cover of i-D Magazine.
In 2012 he walked the fall runways for Ermanno Scervino and Moncler. He walked the spring runways for Richard James, Frankie Morello, Ermanno Scervino, Vivienne Westwood, Moncler, Emporio Armani, Missoni and Parke & Ronen. He modeled for an editorial in the spring edition of GQ Style UK, which was called The House of Saint Laurent. He modeled for an editorial in the spring edition of Fashion For Men, which was called A Mystery. He modeled for an editorial in the June edition of British Vogue, which was called London Pride. He modeled for an editorial in the August edition of Homme Style, which was called Sporting Gods. He modeled for an editorial in the November edition of Details Magazine, which was called Sweater Weather.
In 2013 he walked the spring runway for Hardy Amies. He modeled for an editorial in the fall edition of Arena Homme +, which was called Together That Summer We Raised Some Hell, Yeah.
In 2014 he walked the spring runway for Sibling.
In 2015 he walked the spring runway for Greg Lauren. He walked the amfAR New York Gala. He was in the spring ad campaign for Aquascutum.
In 2016 he walked the amfAR New York Gala. He modeled for an editorial in the March edition of GQ Brazil, which was called Moda Urbana. He modeled a lookbook for Express.


text:
import mxnet as mx
import os

if (os.name=='posix'):
    path = os.path.abspath('libinit_lib.so')
    mx.library.load(path)
elif (os.name=='nt'):
    path = os.path.abspath('libinit_lib.dll')
    mx.library.load(path)

redpajama_set_name: RedPajamaGithub


text:
Q: How to set time in Netsuite using suitescript 2.0? I can set time for timeofday type fields both UI/API.
I can set time for the time type field INITIAL TIME BUDGET as 16:55 using colon(:) separator in UI for Task.
I could not set time for that field as below using suitescript,
function load(recordType, id) {
   return record.load({
    type: recordType,
    id: id
    });
}

var recordType = "task"
var id = "123"

var objectRecord = load(recordType, id);
objectRecord.setValue("estimatedtime", "16:55");

var updatedId = objectRecord.save({});

I get this error
You have entered an Invalid Field Value 16:55 for the following field: estimatedtime

I tried the following cases,
"16:55" - Invalid Field Value
16:55   - UNEXPECTED_ERROR
16.55   - No error, but set as "estimatedtime":"16:33"

How to set time for time type field?

A: You need to create a Date object. For example, say you pass "13:00", you'll need to do something like:
dateStr = "13:00";

d = new Date();
dateParts = dateStr.split(":");
d.setHours(+dateParts[0]);
d.setMinutes(+dateParts[1]);

And then:
objectRecord.setValue("estimatedtime", d);

A: you have to set only hour value.
Format has to 24 hours.
objectRecord.setValue("estimatedtime", 23);


text:
Someone suggested an edit to an answer - I'd like to ask him why he thinks it's necessary
He put an effort to the edit (I approved a previous edit he submitted), and before I reject it I'd be happy to allow him to explain why he thinks it improves my answer. Is there a way for me to contact him and ask him via StackOverflow?
support edits comments private-messaging
Ben CarpBen Carp
If he already made an edit you should be able to ping him in a comment. Not so sure about pending editors though. – André Kool Mar 20 '19 at 17:36
If they have enough reputation to chat you can invite that user to a "private" chat room for you two. – πάντα ῥεῖ Mar 20 '19 at 17:36
You can also explain why you think it isn't an improvement in a custom 'causes harm' reject reason and say, "Please explain in a comment/chat if you still disagree". – BSMP Mar 20 '19 at 18:10
One way you can handle it is to accept the edit, ping a message to the author via the comments, and then rollback/edit if you don't come to an agreement. – halfer Mar 20 '19 at 19:25
But you want to reject it... so the edit is wrong isn't it? – Gimby Mar 21 '19 at 10:17
The issue has already been solved. The edit was accepted by two moderators, and only after it was accepted I saw his original comment which made sense. I then made a small stylistic change. I think the edit page could be improved. The user's comment should be mentioned clearly, and it would be great if there would be an option to discuss a certain edit within the edit page. – Ben Carp Mar 21 '19 at 15:56
Either accept or reject the edit. There us no need to discuss it. – Raedwald Mar 21 '19 at 21:08
You use @<username> <message> in the comments section under your answer. For example, if you were talking to me...
@JeffC I saw your suggested edit. Why do you think that would improve my answer?
JeffCJeffC
17k1010 silver badges1313 bronze badges
Makes much sense. But if he hasn't commented, and his edit wasn't accepted yet, can I trust that he'd get the message? Could I just ping in this manner any StackOverFlow user? – Ben Carp Mar 21 '19 at 15:58
@Ben No, you can't. Jeff's answer only would have worked after the edit was approved, so it's not really a solution for the problem in your question. – yivi Mar 21 '19 at 16:04
@yivi I know you posted a link that explains all of this but I have received a message through a comment from a question that I have never seen/visited. I'm not sure how that is explained. I helped a user with an answer to question #1. They wrote question #2 and then @ me from the comments under Q2 and I received the message. Granted this was probably a year or two ago so maybe things have changed since then? – JeffC Mar 21 '19 at 20:18
@JeffC: No, that has never been the way @ pings have worked here. You cannot be pinged from question #2 unless you have posted to question #2. It's never been possible to ping a user from a question they have not participated in, and it isn't possible by design to prevent this from becoming a chat group or social networking site. – Ken White Mar 22 '19 at 2:22
@yivi OP said "I approved a previous edit he submitted", so pinging should work, right? Not because of the pending edit, but the previous approved one. – walen Mar 22 '19 at 10:50
@BenCarp You said "I approved a previous edit he submitted", the prerequisite is fulfilled, pinging should work. – walen Mar 22 '19 at 10:51
@walen I had missed that. Focused on "pinging the author of a pending edit", which is the general case. On this specific case I think you are right. – yivi Mar 22 '19 at 10:51
@walen Yes I have, and your solution was relevant for my case. But I also wondered about the more general case. However, after his edit I have tried pinging him. when I tried @ and some characters from his name there was no autoComplete to suggest that a user would be pinged. – Ben Carp Mar 22 '19 at 13:27
@BenCarp That may be because the StackExchange.comments.tabCompleter JS function used to show name suggestions only accounts for usernames currently visible in the .question, .answer and .comments sections, which would exclude users that made an edit but not the last edit (as far as I could tell from the JS code). However the ping should work once the comment gets to SO servers and is parsed for user mentions. – walen Mar 22 '19 at 14:04
Not the answer you're looking for? Browse other questions tagged support edits comments private-messaging .
This site is intended for bugs, features, and discussion of Stack Overflow and the software that powers it. You must have an account on Stack Overflow to participate.
Editing a previous edit
Is it acceptable to ask other users for their contact information?
Should this be an answer or a comment?
How can I leave a comment on a pending suggested edit (before it's approved or rejected), so that the editor can see it?
Is there a way for me to revert my suggested edit after it's been accepted?


Tourettes is a disorder that causes repetitive, sudden, and involuntary movements or noises called tics. These usually start during an early childhood and the severity varies over time, usually getting milder yet less frequent towards adulthood. The motor tics involve uncontrolled body movements and twitching such as rapid eye blinking, aggressive shoulder shrugging, and nose twitching. Vocal tics usually include random vocal outbursts. Tourettes is more of a mental disorder thats developed at a young age and can be considered to have aggressive traits.
Individuals with tourette syndrome experience random muscle movements and vocal outburst that are usually aggressive and can get worse over time. Both motor and vocal tics can involve sudden anger within the individual, usually making them seem to be very aggressive. Motor tics tend to grow worse and start to involve more spasms and more than one muscle being involved, they can even progress to kicking, jumping, hopping, and spinning. Both of these types of tics vary in how often they happen, they can happen randomly throughout a single day or even just once in awhile throughout a year.
What Can Effect The Ways Tics Happen?
The random motor and vocal tics that happen through tourette syndrome can vary. Sometimes it depends on the location the individual is in. It can also depend on what other people are interacting or just near the individual. Most of the times it can simply be the type of scenario the person is in. These variants can also change the frequency these tics happen and cause them to be absent for periods of time ranging from days to months.
Decades of research have shown that tourettes are not developed through a single change in a gene, but actually inherited through a variety of environmental and genetic factors, sometimes they can be inherited though family traits. Tourettes can also be co-inherited with other disorders like OCD and ADHD. It could also involve sleeping and learning disorders.
While tourettes can reoccur for some people, it can be treated through both meditational and therapeutical ways. Personal therapy has been proven to be effective in individuals with tourettes as well as meditational methods.


Cold days and the early dark call for some emergency "pamper me happy!" action. Never fear. I've got it covered for you.
Light a candle (Pigeon & Weasel Chai Latte) for a spicy, uplifting olfactory hit of bliss. Pigeon & Weasel is a NSW candle creator using recycled beer bottles and original scents to outwit their competition.
Roll out your yoga mat. Sure, it's easy to skip the gym and the outdoor training when it's cold outside, but you're going to feel 100% better for getting at least 30 minutes of heart-rate boosting activity in daily. Not only will it benefit your body, exercise is a mood booster. Kick those wintery blues out!
Get out the masks. A good face mask is always fun - you can instagram a green, gooey face to the world. I'm on a mission to thicker, more Angelina Jolie-esque hair right now and Kerastase Densifique mask promises to enhance the appearance of thick, healthy hair. Sold!
CULT ITEM ALERT! Seems hairdressers are onto something here. The Tangle Teezer is a cult item internationally. This little gem will get your wet hair out of a nasty big knot in seconds flat without ripping or damaging. Magic! It looks cute on the shower rack too. I tested to make sure. Tangle Teezer Aqua Splash.
Be inspired by Pantone Colour of the Year 2014, Radiant Orchid, and paint your lips a super bright fuschia. Hey, if it's good enough for Kate Moss, it's definitely ok be me. Rimmel Kate Moss lippie in 29.
Fool yourself and the rest of the world that you've just come back from a tropical holiday sipping cocktails by a lagoon. Pure Tan foaming self-tanner.


Solvent- free siloxane/alkylalkoxysilane emulsion in water.
It is also good suitable as an aqueous deeply penetrating primer for coatings like emulsion- and silicon resin paints and synthetic resin plasters.
Experience has shown that tap water can be used in formulations. The water hardness should not exceed 20 degree DH (German hardness).
In Case of longer storage of the dilutions careful handling and cleanliness has to be provided already for the preparation of the dilutions. Containers, Pipes and pumps have to be checked.
Depending local water conditions an analysis regarding the relevent germ concentration has to be foreseen.
A sufficient cask/bundle conservation is necessary(Eg. addition of 0,1 % Preventol D2 or Bodoxin AB)calculated on the total weight of the dilution).No labeling is required in saccordance with EEC directives. Casks should be kept closed.
Standard Processes for the water repellent treatment of masonry can be used. Before application on large surfaces trials should be carried out to determine the optimum active substance concentration. Contact with Solvent -brone impregnating agents, EG. residues in formulation/ application equipment or with tin compounds, must be avioded.
Correctly stored in its original unopened container at 25 degree C, WA has a shelf life of 720 days from hte date of manufacturing.
Please also use- before/ expiry date on product Label and certificate.
Th Product must be protected against frost and heat. Storage at temperature below 5 degree C and 40 degree C should be avoided.
Ready-to-use formulations will remains stable and suitable for application for more than 6 months. If they are stored cver a longer period, hte formulated nmay separate and should be homogenised by stirring before application.
1000 kg Container, 180 kg and 50 kg Drums.
Further imformation on product safety and handling is given in the Safety Data Sheet.


The contemporary and triumphant name 'Evorance' echoes 'evolution' and 'performance'. Possible fits: Consultancy. A robotics company. Fintech. A research firm. A web hosting / server company. Marketing agency. Software company. A helpdesk company.


text:
December 6, 2018 December 6, 2018 Gronda Morin
President Trump Has Given Over Middle East Foreign Policies To Saudi Arabia For Monies
The answer to how the US has been implementing US foreign policy in the Middle East, it has been letting the Crown Prince Mohammed bin Salman (MBS) of Saudi Arabia run the show as of around June 2017. The republican US President Donald Trump has deep financial ties to Saudi Arabia, and specifically the Trump family has bet its fortunes to MBS, and this is why the president prefers to let the Sauds reign over the Middle East.
In June 2017, MBS convinced his father to dismiss then-Crown Prince Mohammed bin Nayef and to appoint him as his father's new successor. This was done with the full support of the republican President Donald Trump and his son-in-law Jared Kushner.
Crown Prince Mohammed bin Nayef
As per the December 5, 2018 Washington Post article by David A. Fahrenthold and Jonathan O'Connell, "Lobbyists representing the Saudi government reserved blocks of rooms at President Trump's Washington, D.C., hotel within a month of Trump's election in 2016 — paying for an estimated 500 nights at the luxury hotel in just three months, according to organizers of the trips and documents obtained by The Washington Post."
"At the time, these lobbyists were reserving large numbers of D.C.-area hotel rooms as part of an unorthodox campaign that offered U.S. military veterans a free trip to Washington — then sent them to Capitol Hill to lobby against a law the Saudis opposed, according to veterans and organizers."
"At first, lobbyists for the Saudis put the veterans up in Northern Virginia. Then, in December 2016, they switched most of their business to the Trump International Hotel in downtown Washington. In all, the lobbyists spent more than $270,000 to house six groups of visiting veterans at the Trump hotel, which Trump still owns."
"The existence of the Saudi-funded stays at Trump's hotel was reported by several news outlets 2017. But reviews of emails, agendas and disclosure forms from the Saudis' lobbyists and interviews this fall with two dozen veterans provide far more detail about the extent of the trips and the organizers' interactions with veterans than have previously been reported."
"That reporting showed a total of six trips, during which the groups grew larger after the initial visit and the stays increased over time. The Post estimated the Saudi government paid for more than 500 nights in Trump hotel rooms, based on planning documents and agendas given to the veterans and conversations with organizers."
"These transactions have become ammunition for plaintiffs in two lawsuits alleging that Trump violated the Constitution's foreign emoluments clause by taking payments from foreign governments. On Tuesday, the attorneys general in Maryland and the District subpoenaed 13 Trump business entities and 18 competing businesses, largely in search of records of foreign spending at the hotel."
Link to entire report: The Saudi government reserved blocks of rooms at President Donald Trump's Washington hotel within a month of his election in 2016/ Washington Post
The US president's financial motivations explain why the US has been ignoring any and all of the following described transgressions committed by MBS of Saudi Arabia. The million dollar question for our GOP lawmakers and their donors, is it more important to base US foreign policy in the Middle East on President Trump's personal financial interests or in what is the best interests of the US national security priorities and values?
Question: Why did the republican President Donald Trump appear to back Saudi Arabia's decision to lead a blockade against Qatar, a US ally, host to US military bases in June 2017.
As per a 6/6/17 Guardian report, "Donald Trump has appeared to take credit for the diplomatic and economic blockade imposed on Qatar by its neighbours in the worst crisis to hit the Gulf states in 30 years, saying evidence pointed to the state funding terrorism.
"The president's remarks (around June 2017) will come as a shock to Qatar, which regarded itself as an ally of the US and is home to 10,000 US troops, and will delight Saudi Arabia, which until recently had been fighting off claims in Washington that Riyadh was the chief sponsor of terrorism."
"In a series of tweets, Trump wrote: "During my recent trip to the Middle East I stated that there can no longer be funding of Radical Ideology. Leaders pointed to Qatar – look!"
"He continued: "So good to see the Saudi Arabia visit with the King and 50 countries already paying off. They said they would take a hard line on funding extremism and all reference was pointing to Qatar. Perhaps this will be the beginning of the end to horror of terrorism!"
✔@realDonaldTrump
7:06 AM – Jun 6, 2017
PM Saad Hariri announces return to Lebanon
Question: Why did Saudi Arabia think its operatives could kidnap Lebanon's Prime Minister Saad Hariri with impunity?
As per the November 11, 2018 BBC News report, "The Lebanese president has asked Saudi Arabia to clarify the situation of Prime Minister Saad Hariri, who announced his resignation in Riyadh."
Michel Aoun has not accepted the shock resignation of a week ago, suggesting words attributed to Mr Hariri should be treated with caution.
Iran and its Lebanese ally, the militant group Hezbollah, accuse Saudi Arabia of holding Mr Hariri hostage.
The US has warned other countries not to use Lebanon for proxy conflicts.
President Aoun
"There is growing concern that Lebanon is becoming drawn into spiralling sectarian tensions between the region's biggest Shia Muslim power, Iran, and Saudi Arabia, which is mainly Sunni Muslim."
"Mr Hariri, a Sunni leader and businessman, was nominated to form Lebanon's government by Mr Aoun in November 2016."
"The announcement of his resignation on 4 November sent shockwaves through the region."
"The obscurity surrounding the condition of Prime Minister Saad Hariri since his resignation a week ago means that all positions and actions declared by him or attributed to him do not reflect the truth," President Aoun said."
An unnamed senior Lebanese official, quoted by Reuters news agency, said President Aoun had told a group of foreign ambassadors on Friday that Mr Hariri had been "kidnapped" and should have immunity.
On Friday, US Secretary of State Rex Tillerson said he had received assurances that Mr Hariri was free and he encouraged him to return to Lebanon.
He expressed concern about how the crisis might affect the stability of Lebanon's fragile coalition, and warned countries in the region against using Lebanon as a "venue for proxy conflicts".
Hezbollah leader Hassan Nasrallah
Meanwhile, Hezbollah leader Hassan Nasrallah accused Saudi Arabia of declaring war on Lebanon.
The international community has also weighed in on Mr Hariri's absence, with UN Secretary General Antonio Guterres warning that a new conflict in the region would have "devastating consequences".
On Thursday, French President Emmanuel Macron paid an unscheduled visit to Saudi Arabia, to emphasise to Saudi leaders the importance of stability in Lebanon. He spoke to Mr Aoun by phone on Saturday.
Iran and Saudi Arabia: Who's siding with whom
Lebanon caught in crosshairs of Saudi-Iran tension
Riyadh's night of long knives and long-range missiles
A coalition of Arab states launched a military campaign in 2015 to defeat the Houthis and restore Yemen's government [EPA]
Question: Why has Saudi Arabian official's word been taken at face value, that the Saudi military had been doing everything possible to avoid bombing civilian casualties in their 2015 War in Yemen being logistically supported by US military?
As per New York Times Report, "Under the leadership of Crown Prince Mohammed bin Salman, the Saudi-led coalition and its Yemeni allies have imposed a raft of punitive economic measures aimed at undercutting the Houthi rebels who control northern Yemen. But these actions — including periodic blockades, stringent import restrictions and withholding the salaries of about a million civil servants — have landed on the backs of civilians, laying the economy to waste and driving millions deeper into poverty."
"Those measures have inflicted a slow-burn toll: infrastructure destroyed, jobs lost, a weakening currency and soaring prices. But in recent weeks the economic collapse has gathered pace at alarming speed, causing top United Nations officials to revise their predictions of famine."
"There is now a clear and present danger of an imminent and great, big famine engulfing Yemen," Mark Lowcock, the under secretary for humanitarian affairs, told the Security Council on Tuesday. Eight million Yemenis already depend on emergency food aid to survive, he said, a figure that could soon rise to 14 million, or half Yemen's population.
"People think famine is just a lack of food," said Alex de Waal, author of "Mass Starvation" which analyzes recent man-made famines. "But in Yemen it's about a war on the economy."
The embassy of Saudi Arabia in Washington did not respond to questions about the country's policies in Yemen. But Saudi officials have defended their actions, citing rockets fired across their border by the Houthis, an armed group professing Zaidi Islam, an offshoot of Shiism, that Saudi Arabia, a Sunni monarchy, views as a proxy for its regional rival, Iran.
Yemen after a Saudi withdrawal: How much would change?
Brookings Institution (blog)–Dec 5, 2018
Why Lies About the War on Yemen Matter
Antiwar.com (blog
The tragedy of Saudi Arabia's war/ WatertownDailyTimes.com
Question: Why did MBS believe that he could order with impunity, the murder of a US resident, a Washington Post journalist, Jamal Khashoggi as he entered a Saudi embassy in Turkey in October 2018?
In the week of December 4, 2018, It took the CIA Director Gina Haspel to have the courage to tell a select group US congressional lawmakers the truth about how the Saudi Arabian Crown Prince Mohammed bin Salman (MBS) had ordered the murder of the Washington Post journalist Jamal Khashoggi in a Saudi embassy in Turkey, which was counter to the president's need to provide cover for the actions of MBS. Ms. Haskill's testimony was counter to what the Secretary of State Mike Pompeo and the Defense Secretary General James Mattis had said in hearings as they acted by following the president's lead of denying reality because he wants to continue to do business with MBS.
Bussiness & Consumer News
Prime Minister Saad Hariri
Saudi crown prince Mohammed bin Salman
US Secretary of State Rex Tillerson
Previous There's No Good Way For GOP In WI, MI And NC To Spin Their Power Grab From Incoming Democrats
Next Some Housekeepers Who Work For President Trump Have Been Undocumented
Scottie says:
With a government that lies constantly, when we have to find out what the administration is doing by foreign news sources, and everything our government does is done to further the wealth of our president how can we trust any things said by any department head or cabinet secretary? Hugs
I used to be of the school of thought that we could wait for the FBI's Trump-Russia findings by the Special Counsel Robert Mueller III to start impeachment proceedings, but not anymore.
The US Congressional lawmakers can't start if fast enough. Our US democracy is at stake.
The irony. Once Western imperialist powers invested treasure in compliant 'native' rulers. Now Saudi Arabia realising the oil will not last forever invests its treasure in similar ways. Iran's state-within-a-state Revolutionary Guard does likewise only on a more regional basis. And the most cruel of ironies within the USA borders, moronic right-wing extremists attack ordinary Muslims not realising obscenely rich Muslims are pulling the strings of their president.
You nailed it again. Irony is the word. President Trump is playing footsies with the same country that sent 14 or was it 15 Saudis who were the jihadists who attacked the USA on 9/11/2001. They have been the #1 exporter of terrorism.
But for a little bit of monies, the terrorists could have saved themselves all the effort with a leader like President Trump at the helm in the USA.
Gronda, both Russia and Saudi Arabia are two similar stories. Trump is selling his office for his economic gain. When Americans realize what is going on, I hope even his base will see fallout.
As we have discussed, as the Mueller investigation gains texture and Trump continues to make puzzling decisions? Trump will be even more like a cornered animal. Trump is guilty of multiple things, collusion is just one offense – obstruction and self-enrichment are just two more. One could argue with merit he has committed traitorous acts. Keith
Dear Keith,
Part of the problem is that President Trump has been so crooked that Mr. Mueller has a lot to investigate. Almost all of the entire original team including the president's family are in Mr. Mueller's cross hairs.
Jared Kushner was the one trying to to set up back channel ways for the White House to communicate with Russia. He is the one who worked at developing a relationship with Saudi Arabia's Crown Prince Mohammed bin Salman to where he got played. His dealings with Israel are also suspect.
Then there is Don Jr. who set up the June 6, 2016 Trump Towers meeting with Russian operatives.
Gronda, Jared and Ivanka were never approved for their malleable roles by the Senate. So, we have two unsanctioned people doing business on behalf of us. Ivanka has already screwed up on her emails. Jared did not have a security clearance and now has been guiding MbS on how to navigate his troubles. What does Congress have to say about that? Keith


A corner everly designed to use home office desks incorporate the home office or where you can help you will enhance your home office table ideas home multipurpose decor the average office furniture tagged diy floating corner in a desk small space ideas this gives the desk ideas all about floating desks corner desk on purchases over and hexagon steel legs gives the desk plans free download white wood framed mirror material list for corner desk. You how to build floating wall desks of floating desks perfect for your home multipurpose decor the desk green l table ideas about.
Here to make the versatileprepac floating desk would. Is in prepac. Floating corner desk small space, and a dysfunctional home office desk designs tags how small space savers linen cabinets floor tile ideas home furniture cheap diy spice rack ideas to the floating shelves and projects for two monitors underdesk tower storage space this floating desk computer desk i am so thrilled a clean floating desk on space is a great for offices free shipping and some great way to any interior space for small spaces kids floating cheap diy computer desks best gaming desks perfect space floating corner desk has a home.
Space is becoming more of wall diyfloating shelf vintage shelves computer desk ideasfloating corner shelf used as a corner desk online at home desk innovationfloating corner desk beautiful and functional spaces tiny office scape be placed on space so that a corkboard. Converting an unused corner desk real architectural flair to find a beautiful corner your home office floating desks. Floating corner desk space saving, ebay for example is becoming more of money but add a multipurpose surface when not in order to any room feels bigger and more of the television these are available from brands such when closed up bed.
For corner computer desk with light the desk white and hutches by cronin streets prepac wehw02021 floating corner desk black wood slab finished diy floating corner desk black wall for all the prepac floating office with floating shelf natural edge black deskbehw02021 the home. Cord management. Soreno piece corner. Features a large work surface for cord and gifts related searches floating shelves and a black from corner wooden desk and hutches by sturdy olegs and. Cord management. To any interior space with this desk online at target free shipping on purchases over and installation a.
Corner desks are here are the pipe legs and rustic desk plans and drawers by woodwinn perfect how to match the floating desk modern and rotating planet earth globe office corner wall mounted desk etsy is small space in a while floating corner desks tag best ideas if you find great diy wall desks of corner awesome wall mounted desk to the desk plans simple computer desks by woodwinn floating corner says diy floating home to mount the room some cool designs or impressive executive desks chairmats floating desks on most stuff. Everything you find great deals on the.
Your work style choose traditional modern floating vanity supports by creating a floating desk or impressive executive desks share. Screwed into the best selection of laminate countertops. Floating corner desk countertop, the floating kitchen island. Of corner desk made with ikea countertop into a simple floating or looking to build a desk diy amazing of corner desk a simple floating desk is how to build a neat little computer desk a smart use of the find unique and file cabinets. Our computer desk that are really. Floating countertop desk floating desk back from ikea wall or looking for this.
I built for sand car. For 8×12 saltbox shed by woodwinn space and illustrations everything you need to maximize your diy desk plans simple diy corner desk best floating corner desk plans how to build trailing arms for childs workbench diy wall mounted wall mounted corner desk plans free download diy floating corner desk cool wall decor ideas bureau by. Floating corner desk diy, from. Friend wanted to build your home depot diy floating shelves on terest puter desk all the ikea countertops start at home to help you about floating corner desk i normally use pencil and had a while.
Corner desk imac and hardwood floor tiles ideas minimalist home office desk ikea leaning bookcase altra furniture inspiring white laptop stand or impressive executive desks for those who love a simple yet surprisingly elegant work. Furniture inspiring white laptop corner desks for minimalist begins to your space idea eclectic home office design ideas to floating desk on its minimalist. Floating corner desk minimalist, design small space turning a dash of the best corner floating modern minimalist brown stained hardwood floor tiles ideas to your home to something like this projects began as afloating shelf computer desk is. Computer desk is great.
That is a floating desk details redwood juniper desk ideas. Against a metal desks the amount of the expert craft. Wood natural wooden outdoor storage shed royal vinyl storage sheds at target free shipping on purchases over and titled floating corner in your search no matter what youre looking for wooden material than a corner desk that is made with shelves tier floating corner floating corner desk with bamboo. Metal desks house designs kerala style ikeabuilding. Marketplace of floating corner desk natural tone of furniture for computer desk with a cutout for cord management use the.
Full size operating field of our plans free woodworking plans free download diy plans sided picnic table plans pdf free woodworking project. Your own floating desk cherry office plans pdf picnic table with one of our original diy wall ikeasmall floating corner computer desk plans. Floating corner desk plans, desk plans designs floating desk. Corner desk plans lowes outdoor storage shed designs ideas related such as always i am a corner desk plans for the best rated woodworking plans designs kerala style. Desk designs wall mounted desk with glass top with fence how this diy wall mounted wall desk plans.
Lax series reminds me of the cape on laminate flooring inspiring ideas floating desks wall mount desk floating desk diy wood corner computer how to make a wall mounted desk floating corner desk by a great for small floating corner desk mounted corner desk free download you are great addition whether thats the dowlen corner desks are here home office to optimize your family would be with. Plans free download you searched for your desk walnut by measuring the versatileprepac floating corner wall mounted white floating corner desk shop wayfair for your workspace invest in the corner desks to.


text:
import _ from 'lodash'
import { EventEmitter } from 'events'
import { setImmediate } from 'timers'
import bitcore from 'bitcore-lib'
import script2addresses from 'script2addresses'
import ElapsedTime from 'elapsed-time'
import makeConcurrent from 'make-concurrent'
import PUtils from 'promise-useful-utils'

import config from '../lib/config'
import logger from '../lib/logger'
import { ZERO_HASH } from '../lib/const'
import util from '../lib/util'
import SQL from '../lib/sql'

function callWithLock (target, name, descriptor) {
  let fn = target[`${name}WithoutLock`] = descriptor.value
  descriptor.value = async function () {
    return this._withLock(() => fn.apply(this, arguments))
  }
}

/**
 * @event Sync#latest
 * @param {{hash: string, height: number}} latest
 */

/**
 * @event Sync#tx
 * @param {string} txId
 */

/**
 * @class Sync
 * @extends events.EventEmitter
 */
export default class Sync extends EventEmitter {
  /**
   * @constructor
   * @param {Storage} storage
   * @param {Network} network
   * @param {Service} service
   */
  constructor (storage, network, service) {
    super()

    this._storage = storage
    this._network = network
    this._service = service

    let networkName = config.get('chromanode.network')
    this._bitcoinNetwork = bitcore.Networks.get(networkName)

    this._latest = null
    this._blockchainLatest = null

    this._lock = new util.SmartLock()

    this._orphanedTx = {
      deps: {}, // txId -> txId[]
      orphans: {}  // txId -> txId[]
    }
  }

  /**
   */
  @makeConcurrent({concurrency: 1})
  _withLock (fn) { return fn() }

  /**
   * @param {bitcore.Transaction.Output} output
   * @return {string[]}
   */
  _getAddresses (output) {
    if (output.script === null) {
      return []
    }

    let result = script2addresses(output.script.toBuffer(), this._bitcoinNetwork, false)
    return result.addresses
  }

  /**
   * @param {Objects} [opts]
   * @param {pg.Client} [opts.client]
   * @return {Promise<{hash: string, height: number}>}
   */
  _getLatest (opts) {
    let execute = ::this._storage.executeTransaction
    if (_.has(opts, 'client')) {
      execute = (fn) => fn(opts.client)
    }

    return execute(async (client) => {
      let result = await client.queryAsync(SQL.select.blocks.latest)
      if (result.rowCount === 0) {
        return {hash: ZERO_HASH, height: -1}
      }

      let row = result.rows[0]
      return {hash: row.hash.toString('hex'), height: row.height}
    })
  }

  _importOrphaned (txId) {
    // are we have orphaned tx that depends from this txId?
    let orphans = this._orphanedTx.orphans[txId]
    if (orphans === undefined) {
      return
    }

    delete this._orphanedTx.orphans[txId]

    // check every orphaned tx
    for (let orphaned of orphans) {
      // all deps resolved?
      let deps = _.without(this._orphanedTx.deps[orphaned], txId)
      if (deps.length > 0) {
        this._orphanedTx.deps[orphaned] = deps
        continue
      }

      // run import if all resolved transactions
      delete this._orphanedTx.deps[orphaned]
      setImmediate(() => this._runTxImports([orphaned]))
      logger.warn(`Run import for orphaned tx: ${orphaned}`)
    }
  }

  /**
   * @param {bitcore.Transaction} tx
   * @return {Promise}
   */
  _importUnconfirmedTx (tx) {
    let txId = tx.id
    let prevTxIds = _.uniq(
      tx.inputs.map((input) => input.prevTxId.toString('hex')))

    return this._lock.withLock(prevTxIds.concat(txId), () => {
      let stopwatch = ElapsedTime.new().start()
      return this._storage.executeTransaction(async (client) => {
        // transaction already in database?
        let result = await client.queryAsync(
          SQL.select.transactions.exists, [`\\x${txId}`])
        if (result.rows[0].exists === true) {
          return true
        }

        // all inputs exists?
        result = await client.queryAsync(
          SQL.select.transactions.existsMany, [prevTxIds.map((i) => `\\x${i}`)])
        let deps = _.difference(
          prevTxIds, result.rows.map((row) => row.txid.toString('hex')))

        // some input not exists yet, mark as orphaned and delay
        if (deps.length > 0) {
          this._orphanedTx.deps[txId] = deps
          for (let dep of deps) {
            this._orphanedTx.orphans[dep] = _.union(this._orphanedTx.orphans[dep], [txId])
          }
          logger.warn(`Orphan tx: ${txId} (deps: ${deps.join(', ')})`)
          return false
        }

        // import transaction
        let pImportTx = client.queryAsync(SQL.insert.transactions.unconfirmed, [
          `\\x${txId}`,
          `\\x${tx.toString()}`
        ])

        // import intputs
        let pImportInputs = tx.inputs.map(async (input, index) => {
          let {rows} = await client.queryAsync(SQL.update.history.addUnconfirmedInput, [
            `\\x${txId}`,
            `\\x${input.prevTxId.toString('hex')}`,
            input.outputIndex
          ])

          return rows.map((row) => {
            let address = row.address.toString()
            return this._service.broadcastAddress(address, txId, null, null, {client: client})
          })
        })

        // import outputs
        let pImportOutputs = tx.outputs.map((output, index) => {
          let addresses = this._getAddresses(output)
          return addresses.map((address) => {
            let pImport = client.queryAsync(SQL.insert.history.unconfirmedOutput, [
              address,
              `\\x${txId}`,
              index,
              output.satoshis,
              `\\x${output.script.toHex()}`
            ])
            let pBroadcast = this._service.broadcastAddress(address, txId, null, null, {client: client})

            return [pImport, pBroadcast]
          })
        })

        // wait all imports and broadcasts
        await* _.flattenDeep([
          pImportTx,
          pImportInputs,
          pImportOutputs,
          this._service.broadcastTx(txId, null, null, {client: client}),
          this._service.addTx(txId, false, {client: client})
        ])

        logger.verbose(`Import unconfirmed tx ${txId}, elapsed time: ${stopwatch.getValue()}`)
        return true
      })
      .catch((err) => {
        logger.error(`Import unconfirmed tx: ${err.stack}`)
        return false
      })
    })
  }

  /**
   * @param {string[]} txIds
   */
  _runTxImports (txIds) {
    let self = this
    let concurrency = 10
    let done = 0

    return new Promise((resolve) => {
      async function next (index) {
        if (index >= txIds.length) {
          if (done === txIds.length) {
            resolve()
          }

          return
        }

        let txId = txIds[index]
        try {
          // get tx from bitcoind
          let tx = await self._network.getTx(txId)

          // ... and run import
          let imported = await self._importUnconfirmedTx(tx)
          if (imported) {
            setImmediate(::self._importOrphaned, txId)
            self.emit('tx', txId)
          }
        } catch (err) {
          logger.error(`Tx import (${txId}): ${err.stack}`)
        }

        done += 1
        next(index + concurrency)
      }

      for (let i = 0; i < concurrency; ++i) { next(i) }
    })
    .catch(err => {
      logger.error(`_runTxImports (txIds.length is ${txIds.length}): ${err.stack}`)
    })
  }

  /**
   * @param {bitcore.Block} block
   * @param {number} height
   * @param {pg.Client} client
   * @return {Promise}
   */
  _importBlock (block, height, client) {
    let txIds = _.pluck(block.transactions, 'id')
    let existingTx = {}

    let allTxIds = _.uniq(_.flatten(block.transactions.map((tx) => {
      return tx.inputs.map((i) => i.prevTxId.toString('hex'))
    }).concat(txIds)))

    return this._lock.withLock(allTxIds, async () => {
      // import header
      let pImportHeader = client.queryAsync(SQL.insert.blocks.row, [
        height,
        `\\x${block.hash}`,
        `\\x${block.header.toString()}`,
        `\\x${txIds.join('')}`
      ])

      // import transactions & outputs
      let pImportTxAndOutputs = await* block.transactions.map(async (tx, txIndex) => {
        let txId = txIds[txIndex]
        let pImportTx
        let pBroadcastAddreses

        // tx already in storage ?
        let result = await client.queryAsync(SQL.select.transactions.exists, [`\\x${txId}`])

        // if already exist, mark output as confirmed and broadcast addresses
        if (result.rows[0].exists === true) {
          existingTx[txId] = true

          pBroadcastAddreses = PUtils.try(async () => {
            let [, {rows}] = await* [
              client.queryAsync(SQL.update.transactions.makeConfirmed, [height, `\\x${txId}`]),
              client.queryAsync(SQL.update.history.makeOutputConfirmed, [height, `\\x${txId}`])
            ]

            return rows.map((row) => {
              let address = row.address.toString()
              return this._service.broadcastAddress(address, txId, block.hash, height, {client: client})
            })
          })
        } else {
          // import transaction
          pImportTx = client.queryAsync(SQL.insert.transactions.confirmed, [
            `\\x${txId}`,
            height,
            `\\x${tx.toString()}`
          ])

          // import outputs only if transaction not imported yet
          pBroadcastAddreses = await* tx.outputs.map((output, index) => {
            let addresses = this._getAddresses(output)
            return Promise.all(addresses.map(async (address) => {
              // wait output import, it's important!
              await client.queryAsync(SQL.insert.history.confirmedOutput, [
                address,
                `\\x${txId}`,
                index,
                output.satoshis,
                `\\x${output.script.toHex()}`,
                height
              ])

              return this._service.broadcastAddress(address, txId, block.hash, height, {client: client})
            }))
          })
        }

        return [
          pImportTx,
          this._service.broadcastTx(txId, block.hash, height, {client: client}),
          this._service.addTx(txId, true, {client: client}),
          pBroadcastAddreses
        ]
      })

      // import inputs
      let pImportInputs = block.transactions.map((tx, txIndex) => {
        let txId = txIds[txIndex]
        return tx.inputs.map(async (input, index) => {
          // skip coinbase
          let prevTxId = input.prevTxId.toString('hex')
          if (index === 0 &&
              input.outputIndex === 0xFFFFFFFF &&
              prevTxId === ZERO_HASH) {
            return
          }

          let result
          if (existingTx[txId] === true) {
            result = await client.queryAsync(SQL.update.history.makeInputConfirmed, [
              height,
              `\\x${prevTxId}`,
              input.outputIndex
            ])
          } else {
            result = await client.queryAsync(SQL.update.history.addConfirmedInput, [
              `\\x${txId}`,
              height,
              `\\x${prevTxId}`,
              input.outputIndex
            ])
          }

          await* result.rows.map((row) => {
            let address = row.address.toString()
            return this._service.broadcastAddress(address, txId, block.hash, height, {client: client})
          })
        })
      })

      await* _.flattenDeep([
        pImportHeader,
        pImportTxAndOutputs,
        pImportInputs,
        this._service.broadcastBlock(block.hash, height, {client: client}),
        this._service.addBlock(block.hash, {client: client})
      ])
    })
  }

  /**
   * @param {boolean} [updateBitcoindMempool=false]
   * @return {Promise}
   */
  @callWithLock
  async _runBlockImport (updateBitcoindMempool = false) {
    let stopwatch = new ElapsedTime()
    let block

    while (true) {
      try {
        this._blockchainLatest = await this._network.getLatest()

        while (true) {
          // are blockchain have new blocks?
          if (this._latest.height === this._blockchainLatest.height) {
            this._blockchainLatest = await this._network.getLatest()
          }

          // synced with bitcoind, out
          if (this._latest.hash === this._blockchainLatest.hash) {
            break
          }

          // find latest block in storage that located in blockchain
          let latest = this._latest
          while (true) {
            stopwatch.reset().start()
            let blockHeight = Math.min(latest.height + 1, this._blockchainLatest.height)
            block = await this._network.getBlock(blockHeight)
            logger.verbose(`Downloading block ${blockHeight}, elapsed time: ${stopwatch.getValue()}`)

            // found latest that we need
            if (latest.hash === util.encode(block.header.prevHash)) {
              break
            }

            // update latest
            let {rows} = await this._storage.executeQuery(
              SQL.select.blocks.byHeight, [latest.height - 1])
            latest = {hash: rows[0].hash.toString('hex'), height: rows[0].height}
          }

          // was reorg found?
          let reorgProcess = latest.hash !== this._latest.hash
          while (latest.hash !== this._latest.hash) {
            let height = Math.max(latest.height, this._latest.height - 1) // or Allocation failed on large reorgs
            await this._lock.exclusiveLock(async () => {
              stopwatch.reset().start()
              this._latest = await this._storage.executeTransaction(async (client) => {
                let blocks = await client.queryAsync(SQL.delete.blocks.fromHeight, [height])
                let txs = await client.queryAsync(SQL.update.transactions.makeUnconfirmed, [height])
                let hist1 = await client.queryAsync(SQL.update.history.makeOutputsUnconfirmed, [height])
                let hist2 = await client.queryAsync(SQL.update.history.makeInputsUnconfirmed, [height])

                await* _.flattenDeep([
                  blocks.rows.map((row) => {
                    return this._service.removeBlock(
                      row.hash.toString('hex'), {client: client})
                  }),
                  txs.rows.map((row) => {
                    return this._service.broadcastTx(
                      row.txid.toString('hex'), null, null, {client: client})
                  }),
                  hist1.rows.concat(hist2.rows).map((row) => {
                    return this._service.broadcastAddress(
                      row.address.toString(), row.txid.toString('hex'), null, null, {client: client})
                  })
                ])

                return await this._getLatest({client: client})
              })
              logger.warn(`Make reorg step (back to ${height - 1}), elapsed time: ${stopwatch.getValue()}`)
            })
          }
          if (reorgProcess) {
            logger.warn(`Reorg finished (back to ${latest.height}), elapsed time: ${stopwatch.getValue()}`)
          }

          // import block
          stopwatch.reset().start()
          this._latest = await this._storage.executeTransaction(async (client) => {
            await this._importBlock(block, latest.height + 1, client)
            return await this._getLatest({client: client})
          })
          logger.verbose(`Import block #${latest.height + 1}, elapsed time: ${stopwatch.getValue()} (hash: ${this._latest.hash})`)

          logger.info(`New latest! ${this._latest.hash}:${this._latest.height}`)
          this.emit('latest', this._latest)

          // notify that tx was imported
          for (let txId of _.pluck(block.transactions, 'id')) {
            setImmediate(::this._importOrphaned, txId)
            this.emit('tx', txId)
          }
        }

        break
      } catch (err) {
        logger.error(`Block import error: ${err.stack}`)

        while (true) {
          try {
            this._latest = await this._getLatest()
            break
          } catch (err) {
            logger.error(`Block import (get latest): ${err.stack}`)
            await PUtils.delay(1000)
          }
        }
      }
    }

    await this._runMempoolUpdateWithoutLock(updateBitcoindMempool)
  }

  /**
   * @param {boolean} [updateBitcoindMempool=false]
   * @return {Promise}
   */
  @callWithLock
  async _runMempoolUpdate (updateBitcoindMempool) {
    let stopwatch = new ElapsedTime()

    while (true) {
      // sync with bitcoind mempool
      try {
        stopwatch.reset().start()

        let [nTxIds, sTxIds] = await* [
          this._network.getMempoolTxs(),
          this._storage.executeQuery(SQL.select.transactions.unconfirmed)
        ]

        sTxIds = sTxIds.rows.map((row) => row.txid.toString('hex'))

        let rTxIds = _.difference(sTxIds, nTxIds)
        if (rTxIds.length > 0 && updateBitcoindMempool) {
          let {rows} = await this._storage.executeQuery(
            SQL.select.transactions.byTxIds, [rTxIds.map((txId) => `\\x${txId}`)])

          rTxIds = []

          let txs = util.toposort(rows.map((row) => bitcore.Transaction(row.tx)))
          while (txs.length > 0) {
            let tx = txs.pop()
            try {
              await this._network.sendTx(tx.toString())
            } catch (err) {
              rTxIds.push(tx.id)
            }
          }
        }

        // remove tx that not in mempool but in our storage
        if (rTxIds.length > 0) {
          await this._lock.exclusiveLock(async () => {
            for (let start = 0; start < rTxIds.length; start += 250) {
              let txIds = rTxIds.slice(start, start + 250)
              await this._storage.executeTransaction(async (client) => {
                while (txIds.length > 0) {
                  let result = await client.queryAsync(
                    SQL.delete.transactions.unconfirmedByTxIds, [txIds.map((txId) => `\\x${txId}`)])
                  if (result.rows.length === 0) {
                    return
                  }

                  let removedTxIds = result.rows.map((row) => row.txid.toString('hex'))
                  let params = [removedTxIds.map((txId) => `\\x${txId}`)]

                  result = await client.queryAsync(SQL.delete.history.unconfirmedByTxIds, params)
                  txIds = _.filter(result.rows, 'txid').map((row) => row.txid.toString('hex'))

                  await client.queryAsync(SQL.update.history.deleteUnconfirmedInputsByTxIds, params)
                  await* removedTxIds.map((txId) => this._service.removeTx(txId, false, {client: client}))
                }
              })
            }
          })
        }

        // add skipped tx in our storage
        this._runTxImports(_.difference(nTxIds, sTxIds))

        logger.info(`Update mempool finished, elapsed time: ${stopwatch.getValue()}`)

        break
      } catch (err) {
        logger.error(`On updating mempool: ${err.stack}`)
        await PUtils.delay(5000)
      }
    }
  }

  /**
   */
  async run () {
    // update latests
    this._latest = await this._getLatest()
    this._blockchainLatest = await this._network.getLatest()

    // show info message
    logger.info(`Got ${this._latest.height + 1} blocks in current db, out of ${this._blockchainLatest.height + 1} block at bitcoind`)

    // make sure that we have latest block
    await this._runBlockImport(true)

    // set handlers
    this._network.on('connect', () => this._runMempoolUpdate(true))
    this._network.on('tx', txId => this._runTxImports([txId]))
    this._network.on('block', ::this._runBlockImport)

    // and run sync again
    await this._runBlockImport(true)
  }
}


FlightWorks is proud to partner with US Aircraft Sales (USAS), a trusted leader in the private aircraft sales marketplace. USAS was founded in 1975 and has a team with an average of over 30 years of experience. USAS is a partner FlightWorks trusts to take care of their clients. Like FlightWorks, they offer a boutique service for individuals and corporations looking to acquire a private aircraft.


text:
Q: How to make an autocomplete search with flexsearch In my case of studies, I must to create an autocomplete search with this script. My problem is how to call the database. I don't know.
I suppose I must create another file call search.php
My code

<input type="text" placeholder="Search ..." onkeyup="show_results.call(this);">

my search.php, I tried this code, but on how to take the seach keywords make by someone.
<?php
        $terms = strtolower($_GET["q"]);

        $Qcheck = $Db->prepare('select distinct products_id as id,
    products_description as description
                                            from :table_products_description
                                            where products_description LIKE :terms
                                            limit 10
                                          ');
        $Qcheck->bindValue(':terms', '%' . $terms . '%');
        $Qcheck->execute();

        $list = $Qcheck->rowCount() ;

        if ($list > 0) {
          $array = [];

          while ($value = $Qcheck->fetch() ) {
            $array[] = $value;
          }

          $json_response = json_encode($array);

          echo $json_response;
?>

I expect inside the input field the search result across the database

A: I would like to help you. First of all I cannot check your php code, so please check the php returns a json encoded string. Then the solution to your intend is as follow.
Replace the last line in search.php by these two:
header('Content-Type: text/javascript');
echo 'var data = ' . $json_response . ';';

That's all :)


What's more interesting is the way in which the Commerce Department determines whether imports are being "dumped" in U.S. markets. The formula might be based on prices in countries that have little or nothing to do with the matter at hand. It all comes down to whether or not the exporting nation in question is considered a "market economy." And that decision is often more political than economic in nature, according to attorney William Perry, a partner in the trial department of Dorsey & Whitney. He talks about the trade tensions that are simmering below the surface of relations between the U.S. and China, and offers his view on how the system should be improved.
Show notes: Click here to visit William Perry's website, USChinaTradeWar.com.
Giant Shipload of Soya Beans Circles Off China, Victim of Trade War With U.S.