The findings of a recent CBC News investigation are drawing the ire of academics who are concerned about the use of corporate money to fund research at public universities.
Documents, obtained through the Access to Information Act, revealed that a University of Alberta study on the coal industry was paid for by energy giant TransAlta.
The study found that coal-fire power plants contributed a small amount of pollutants in the air. TransAlta used the findings to lobby the provincial government, CBC News reported. The university said it stands by the research, and the Alberta government continues its coal phase-out, which includes TransAlta's operations.
TransAlta says the research was produced independently and stands by it.
Although several academics question the ethics around relationships between industries and universities, the blurred lines are not a surprise.
"Governments have retreated from funding research and the result is that a lot of the research is corporate funded now," said Arthur Schafer, founding director of the Centre for Professional and Applied Ethics at the University of Manitoba.
"Big Pharma, big oil, the food industry, the tobacco industry have been moving in to fill the vacuum," he told The Current's guest host Megan Williams.
But there are critics who argue without corporate funding, a lot of research wouldn't happen at all.
"If it's a choice between no research or research funded by a company then I think we should have research funded by companies," said Colleen Collins, a former academic and university administrator who is now vice-president of the Canada West Foundation.
Schafer said this approach diminishes the public's trust in the integrity of universities as a source of independent research.
"If the existence and flourishing of universities hinges on pleasing corporate sponsors, we'll continue to get corporate science and the public will continue to pay the price," he told Williams.
2018-09-01 Arms industry spends millions to promote brands in schools, The Guardian 2018-09-12 SIGNIFICANT: World Mercury Project Relaunches as Children's Health Defense, Robert F Kennedy Jr.


Program: Improving Façade Designs by Comparing Automated vs. Manual Solar Shading. AIA/HSW, GBCI, AND IDCEC accredited.
**YOU MUST REGISTER ONLINE** Due to limited seating - 40 MAX. Register Early.
Jonathan R. Murawski Robert Juris & Associates Architects, Ltd.
Jose R. Pareja JP Architects, Ltd.
Ronald J. Weszelits Linden Group Inc.


text:
Day 2, Stream 4
George Legrady: University of California, Santa Barbara, US
Tega Brain: University of Technology, Australia
Tom Schofield: Culture Lab, Newcastle University, UK
Ann Finegan: Kandos Projects, Boston University, Australia
Brian House: The New York Times Research and Development Lab, US
Sarah Waterson: University of Western Sydney, Australia
Drew Hemment: FutureEverything/Lancaster University, UK
Tega Brain Environmental Data as Sensory Experience: Redesigning the Human-Infrastructure Interface
You know what they say about big data? Even bigger data visualisations. Driven by the quantification of almost all of our activities and our surroundings, data visualisation has emerged as a significant category of contemporary creative work. Visualisations typically present information with an agenda for catalysing changes in behaviour or practice, yet this activist agenda assumes a direct relationship between information and action, a relationship that has broken down in view of complex environmental issues and climate change. Contemporary climate change demonstrates that the production of information is often just one small part of what is required to motivate inconvenient change on both an individual and societal scale.
This paper explores this problem of information visualisation by discussing the informatic strategies deployed in the installation artwork, What the Frog's Nose tells the Frog's Brain. This work translates real-time electricity data into a sensory experience. Experimenting with smell, information is produced through the olfactory experience of the viewer. Smell is a primal mode of communication from which it is difficult to be intellectually distanced. By manifesting electricity information in this way, this work not only explores the mechanics of perceiving information, but also suggests new possibilities for designing a more responsive human-infrastructure interface.
Brian House OpenPaths: empowering personal geographic data
The collection of personal geographic data from mobile devices is a ubiquitous practice of service providers and application developers. These data are being stored, analyzed, and monetized primarily by corporate interests; there is limited agency for individuals over their own data. Awareness among the public regarding the value of their personal data is nascent. OpenPaths, created by the Research and Development Lab at the New York Times Company, is a platform and a model and a platform that demonstrates the collective value of personal data sovereignty. It was developed in response to widespread media coverage of the obfuscated but accessible location record generated by all Apple iOS devices. OpenPaths participants store their encrypted geographic data in a cloud infrastructure while maintaining ownership and programatic control. Projects of many kinds, from mobility research to expressive artwork, petition individuals for access to their data in exchange for a stake in the outcome of the project. Ultimately, we would like to activate the practice of "participatory sensing" on a large scale in a way that self-regulates the creation of ad-hoc geographic datasets. Furthermore, within a theoretical context, OpenPaths moves beyond locative media's primary concerns with connectivity, the coupling of data to place, and spatial representation to address the components of an ethical implementation of crowd-sourced geographic systems in the age of "big data". How can we seat the individual in a mode of control over personal geographic narratives in a society in which locative media has become banal?
Tom Schofield Repeating the Past: Lessons for Critical Data Visualisation from the History of Computer Art
This paper will explore the development of critical discourse in computer art of the 1960s and 1970s. It will then assess what parallels can be found to assist the still developing discussions which are emerging around data visualisation practices.
Data visualisation is both a language and context of representation and communication which has enjoyed a recent explosion out of its traditional fields of statistics and analysis into areas as diverse as advocacy, journalism, design and art. Recent accounts [Viégas and M. Wattenberg 2007] have highlighted a lack of critical discourse around visualisation. This lack implies that this is an area with the exciting potential to develop new implications and, potentially, directions for the field. There is also however, a risk that such a rapid expansion overlooks existing contributions, both theoretical and practical.
In the midst of this scramble for academic territory, what lessons can be learned from the past? The application of methods or technology to new fields is not a new phenomenon and media art can look to its own history to draw some parallels. For example, studies have examined the computer art of the 1960s and 1970s in particular to document the emergence of critical discourses (Brown, Gere et al 2008, Alt 2011). Such discourses were to a large degree born from the disciplines to which practitioners in this field belonged: the fine arts, computer science, engineering and to some degree, philosophy (in the case of Burnham). What legacy does this lineage leave for the domain and to what degree were such epistemologies useful?
This paper will examine the circumstances, relationships and technologies, which supported the development of a robust critical discourse for this period and ask what lessons can be drawn for the contemporary circumstances of data visualisation.
Ann Finegan & Ann Morrison The data wars: protest is increasingly an affair of incommensurables
In a world in which all entities are seemingly subsumed into the flow of data – economics, the real, things, money, people – under the various exchanges of Big – Big Mining, Big Capital, Big Economics – the resistance of protest often goes unheeded – people failing to call to account or articulate their protest in the commensurable terms of data. Protesters might be big in numbers, and ideas, but can they ever match the numbers – the plain simple data of economics – on which Big Decisions are based?
This provocation is about data-incommensurables in the protest game, where no matter how many online signatures, how many people in the street, the people will lose always to the lobbyists with their portfolios of data, and advantageous economic balance sheets. Big Mining it seems has the monopoly on water data, people data [how many new jobs created], production and profit. It is not in its interest to count the jobs and productivity lost as Big Mining buys up farms and ruins the water, the tourism, or raises rents. Local councils do not keep this data; all they can do is comment on various compliances, they might even protest with their constituents, but they have only energy and angst and are inevitably defeated because they cannot make a compelling case in data terms. Data costs money and technological access to reap, costs which billion dollar trans-national companies with billion dollar super profits can collate. The people, the protesters, the local councils, are data-poor, and need new wikis, new modes of data collection, in order to have a commensurate say when the Big Miners and Frackers put their proposals before State Government Ministers.
This provocation is a call to data mapping, to match the Big Mining and Big Economics at their game.
Sarah Waterson Data Ecologies: data-mapping as a representational strategy for communicating complexity and developing poetic systems of knowledge making.
Today the affordances of contemporary data representations and presentations allow for the reading of complex relational works, which I am classifying as data ecologies. Data ecologies can be performed with and across spatio-temporal networks of relations, and can be understood as assemblages of the agentic quality of flow. Data ecologies connect with the rise of statistical thinking throughout the 19th century, and developments in technology into the 20th and 21st centuries.
In this paper data mapping and data mining strategies are explored to develop a concept of data ecologies in interactive, reactive and generative new media works. These are located in current debates and discourse about representation (Visualisation/Software Studies) and intersect with concepts about the politics of representation in new media contexts. De Landa's (2006) perspective on the assemblage including the material role, expressive role, territorialisation and deterritorialisation aids as a starting point for locating the conceptual practice of using data streams as an ecology for producing emergent behaviours, patterns and affect. These flows allow for more complex readings and presentations than traditional data visualisation.
To advance how this new representational strategy performs, recent data ecology artworks are reviewed. Data ecologies enable a productive approach to thinking through non- Cartesian representations, from the flatness of data to the Baroque. Ultimately this paper advocates data ecologies as a representational strategy appropriate to an era of post-media aesthetics.
Drew Hemment, Moritz Stefaner, Stephan Thiel emoto – Truth and Beauty in the Data Dimension
This paper will explore how creative expression and meaning can be generated out of the everyday interactions of millions of people. Specifically it will explore how data visualisation is a creative practice based upon being 'true' to its materials of data and code. And by documenting the challenges and barriers encountered in the creation of a major data visualisation artwork for London 2012, it will also highlight the distance between the rhetoric of openness in today's social media world, and the reality of limits placed on access and creative reuse when the social web is dominated by a small number of corporate players.
Data Visualisation is an emergent area of design and art practice. It seeks to make visible the ever-expanding dimension of data which overlays our everyday. In recent years, a particular variation of the practice has emerged — one in which artists engage creatively with code, not only to reveal hidden truths but also as part of the pursuit of beauty. Research in this area can examine the novel and interesting techniques for data capture and representation, or how data visualisation contributes to the reordering of society in a data-driven age.
Tags: big big data Big Economics Big mining call to data mapping computer art criticism crowdsourcing data data sovereignty Data Visualisation data wars ecologies electricity Event infrastructure locative media London 2012 mapping mapping data mobile phones Olympics Openness participation participatory sensing perception personal data privacy resistance smell social media visualisation visualization

redpajama_set_name: RedPajamaCommonCrawl


text:
Industry & Real Estate
Tourism, Cars, Traffic
Latest South African press releases
Zimbabwean children held in Rustenberg for three months apart from their parents
The recent articles regarding this matter, bring to public attention the plight of foreigners, in this case a group of minor children and their parents, some of whom have official documents for South Africa and others who are without legal documentation. Many have family members and friends in the same position.This small group is a representation of approximately 1,5 m people from SADEC countries, the majority from Zimbabwe, who have lived here for the best part of 15 years and have studied, married and had children here. The fineries of the oratory regarding the legal difference between political asylum and persecution related asylum status and pure economic migration become irrelevant when an economy collapses and people have a choice between starvation and a possible migration to the south, where things may be better. Borders are meaningless in such situations. In the words of the renowned South African born scholar, Dr IanGoldin, "...as a principle, human beings migrate towards circumstances where things are better."
I hope we don't still reside in the dark ages where have to argue about simple observable truths, but sometimes I wonder when I hear about the inhumane treatment of people in our society. Without engaging in convoluted and technical legal arguments, I believe that it cannot be Constitutionally acceptable in South Africa for people to be treated in this way, even if they are foreigners who find themselves outside of the protection of our immigration laws. Having been peripherally involved with this issue after being contacted by the employer of one mother who was caught in the same vehicle with her child, it became clear to me that Home Affairs, the Police and Social Development are not equipped to handle these matters.
The driver has been apprehended and charged with human trafficking but is probably only guilty of transporting people without checking documentation. The children are being transported between parents and guardians between South Africa and Zimbabwe and it was clear to me that despite their efforts, they have never been allowed to obtain documents to make their stay legal.In this case we are talking about children between the ages of two and twelve years old whose parents travelled to Rustenburg in November 2017 and met with the officials from Social Development at their offices.
While the investigation was pending, it would have been humane to return the children to their parents and deal with whatever issues were outstanding. The values of the Constitution, while encapsulated in words on a document, should embody in us a basic humanity, common sense and practicality where there is human inconvenience and distress, such as in this case.
I hope that the new political era in South Africa which we heard about at SONA on 16 February, and the values uttered by the new President of our country, are overtly detectable in the way people are treated in our society by ordinary citizens and government officials alike.
For the full article see: http://ewn.co.za/2018/02/18/sa-yet-to-release-undocumented-zimbabwean-children-found-in-truck
Written by Leon Isaacson MD of Global Migration Group
www.globalimsa.com
Published in Politics, Law, Arts, Society
Leon Isaacson
Our Company provides advisory services for companies and individuals wanting to obtain work, investment, study visa for South Africa and African countries, the UK, US and Australia. We have offices in Cape Town, Johannesburg and Cairo, Egypt
South African Immigration Cases: Nandutu and Others v Minister of Home Affairs and Others (2019)
Online South African Immigration Handbook and Training Courses 2010
South African Immigration Review of 2019
Sole Representative's Visa for the UK- extend your business into the UK
Emigration opportunity for South Africans: Golden Visa for Portugal
South African Fintech in 2020 – What Can We Expect?
LIABILITY CLAIMS – WHEN TO NOTIFY?
Engen applauds top matrics and moves to include STEM subjects in 2020
The Wixworth guide to being a Classic in the new decade
Snupit Continues to Play a Crucial Role for South African SMEs in a Challenging Economy
A newsletter application which is easy to use, has extensive reporting with many powerful features. Learn more...
Why use MyPressportal ?
Automatic inclusion into google News
Targeted to South African Audience ONLY
Press Releases are South African related
Learn more about MyPressportal
pCloud - Access your Files Everywhere (review)
Reliable Server Monitoring at an Affordable Price - Nodeping
Safe and Global Browsing, unlocator.com
Backup to the Cloud, Restore to your Computer
About Pressportal
MyPressportal is geared towards the South African Market only. A press release can have a huge impact on the marketing of your company, as many journalist use press releases to communicate new happenings from all types of companies and NGO's. MyPressportal is FREE. We do not plan not to make this a paid service. If you would like to know more about the system, please read the FAQ.
Copyright © 2002 - 2020 raramuridesign. All rights reserved.
Design & Development by WorldWideMedia Consulting
Politics, Law, Arts, Society


Romance through the open clouds on this lovely iPad adventure from developer East Side Games in collaboration with publishing partner 6waves.
East Side Games is a proudly independent and profitable game studio creating humorous and addicting games for mobile and social platforms. The studio has a collaborative, creative, and fun culture that is focused on building hit titles in a great work environment. Located in Vancouver, Canada, the year old studio has over 100 years of combined experience working at AAA studios such as Blizzard/Activision, THQ, EA, Rockstar, Disney and Ubisoft. As well, we have over 60 years experience in the social/mobile space at studios such as DES Games, Hothead Games, Nexon America, Club Penguin (Disney) and Magellan Interactive.
6waves is a leading publisher of independent games on social networks and mobile platforms, partnering with developers all over the world to bring the best games to the millions of users in its gaming network. From its original roots on Facebook, the company has now expanded into iOS and Android, Yahoo! Mobage, Mixi and Hangame in Japan, and Tencent in China. Headquartered in Hong Kong with offices in San Francisco, Moscow, Beijing and Tokyo, the team has a uniquely international perspective and has forged successful partnerships with developers from across the globe. 6waves' investors include Insight Venture Partners and Nexon Co. Ltd.


An important aim in the development of the KURZ standard quality foils is the achievement of an optimum processing window with respect to outstanding foil properties like release, contour sharpness, adhesion, temperature behaviour, gloss, freedom from dust, etc..
KURZ's stringent quality management system based on DIN EN ISO 9001, regular internal audits and the Continuous Improvement Process (CIP) concept ensure that the quality targets set by company management are adhered to.
We have made the necessary investments in state-of-the-art spooling and cutting machinery. KURZ's roll packaging, specially adapted for the conditions of high-performance stamping machines, meets the highest possible quality demands and guarantees maximum roll lengths.
KURZ Fast Trak program prepositions standard foil products for urgent orders, even over large distances. Customers taking advantage of Fast Trak are supported by an implementation of their business goals with precise planning, minimization of stock levels by KURZ logistics.
In return, our customers benefit from a system of production planning, quality foil, storage, packaging and shipping organization.
KURZ technical support - more than a hotline. A dedicated team of professional technicians with many years of internation experience on all major machine types. As an extension of our manufacturing, our technicians are more than happy to support your operators to optimize your production!


Rodin JS Kumar is the co-founder of the KL International Jazz and Arts Festival with Ms. Maizon Omar. A bassist/composer, he has been leading two music projects since 2011, Fusion 5 and the KL Experimental Jazz Project. His interest includes Experimental music, Jazz Rock Fusion and Classic Rock. As the Festival Director since inception in 2011, he has worked with numerous international and local jazz artists including Grammy Award winners .
With a professional background in accounting, finance and audit he has worked in a number of industries both in Malaysia and abroad, and is presently the managing director of Candide Consulting, KL International Jazz, Asia World Events and Aaba Publishing. He is currently writing two books, which will be published soon.
He is a Certified Management Accountant (CMA, USA), Certified Internal Auditor (CIA, USA) and holds a Master's Degree in Finance from the University of Leceister, U.K.
When Eva Klesse and her quartet recorded its debut album Xenon in 2014, things were still quite new.
Just six month earlier, Klesse, Ring, Frischkorn, and Lucaciu met in Leipzig; they went on to play a handful of concerts together. Nevertheless, the band already displayed a remarkable diversity of musical styles and a strong creative drive. Essential characteristics remain: atmospheric original compositions in lieu of covers, a knack for interesting melodies, joyful improvisation, and nuanced acoustic arrangements.
In 2015, the band was awarded the Jazz Echo (German Music Award) in the category "Newcomer of the year". Since the release of Xenon, the quartet played among others the Berlin, Dortmund, and Leipzig jazz festivals, the "Rolf-Liebermann-Studio" in Hamburg (NDR) and the "Bayrisches Jazzweekend". They toured Chile in 2015, including concerts in Valparaiso, Concepcion and at the ChilEuropa Festival in Santiago de Chile, with support of the German cultural institution Goethe Institute.
On the new album Obenland, released in October 2016 on enja Records, the characteristic sound of the Eva Klesse quartet is now permanently present. All compositions have been penned specifically for this album and are custom-tailored to the four personalities, creating a stronger coherence and simultaneously opening new possibilities for exploring new directions. The aesthetics now sway between detailed chamber jazz and energetic peaks. The dynamic range is wider than ever, transparency and density are evenly balanced, the latter applied so skilfully that the listener can always retain orientation, even through wider musical arcs. During dynamic interplay and mounting free passages, Klesse and her musical partners allow their emotions exactly the right amount of space, in that improvisationconveys intensity instead of egocentric ecstasy. A balance of such subtlety reflects maturity.
"Xenon was somehow pictured from far away", Eva Klesse looks back and notices "Obenland is much more focused and closer to us". The vibrant yet concentrated new album confirms what London Jazz News already stated a while ago: "A rising star on the German jazz scene".


text:
#include <string.h>

#include <ssl.h>
#include <sslerr.h>

#include <misc/byteorder.h>
#include <security/BRandom.h>

#include "PeerChat.h"

#include <generated/blog_channel_PeerChat.h>

#define PeerLog(_o, ...) BLog_LogViaFunc((_o)->logfunc, (_o)->user, BLOG_CURRENT_CHANNEL, __VA_ARGS__)

static void report_error (PeerChat *o)
{
    DebugError_AssertNoError(&o->d_err);

    DEBUGERROR(&o->d_err, o->handler_error(o->user))
    return;
}

static void recv_job_handler (PeerChat *o)
{
    DebugObject_Access(&o->d_obj);
    DebugError_AssertNoError(&o->d_err);
    ASSERT(o->recv_data_len >= 0)
    ASSERT(o->recv_data_len <= SC_MAX_MSGLEN)

    int data_len = o->recv_data_len;

    // set no received data
    o->recv_data_len = -1;

#ifdef PEERCHAT_SIMULATE_ERROR
    uint8_t x;
    BRandom_randomize(&x, sizeof(x));
    if (x < PEERCHAT_SIMULATE_ERROR) {
        PeerLog(o, BLOG_ERROR, "simulate error");
        report_error(o);
        return;
    }
#endif

    if (o->ssl_mode != PEERCHAT_SSL_NONE) {
        // buffer data
        if (!SimpleStreamBuffer_Write(&o->ssl_recv_buf, o->recv_data, data_len)) {
            PeerLog(o, BLOG_ERROR, "out of recv buffer");
            report_error(o);
            return;
        }
    } else {
        // call message handler
        o->handler_message(o->user, o->recv_data, data_len);
        return;
    }
}

static void ssl_con_handler (PeerChat *o, int event)
{
    DebugObject_Access(&o->d_obj);
    DebugError_AssertNoError(&o->d_err);
    ASSERT(o->ssl_mode == PEERCHAT_SSL_CLIENT || o->ssl_mode == PEERCHAT_SSL_SERVER)
    ASSERT(event == BSSLCONNECTION_EVENT_ERROR)

    PeerLog(o, BLOG_ERROR, "SSL error");

    report_error(o);
    return;
}

static SECStatus client_auth_data_callback (PeerChat *o, PRFileDesc *fd, CERTDistNames *caNames, CERTCertificate **pRetCert, SECKEYPrivateKey **pRetKey)
{
    DebugObject_Access(&o->d_obj);
    ASSERT(o->ssl_mode == PEERCHAT_SSL_CLIENT)

    CERTCertificate *cert = CERT_DupCertificate(o->ssl_cert);
    if (!cert) {
        PeerLog(o, BLOG_ERROR, "CERT_DupCertificate failed");
        goto fail0;
    }

    SECKEYPrivateKey *key = SECKEY_CopyPrivateKey(o->ssl_key);
    if (!key) {
        PeerLog(o, BLOG_ERROR, "SECKEY_CopyPrivateKey failed");
        goto fail1;
    }

    *pRetCert = cert;
    *pRetKey = key;
    return SECSuccess;

fail1:
    CERT_DestroyCertificate(cert);
fail0:
    return SECFailure;
}

static SECStatus auth_certificate_callback (PeerChat *o, PRFileDesc *fd, PRBool checkSig, PRBool isServer)
{
    DebugObject_Access(&o->d_obj);
    ASSERT(o->ssl_mode == PEERCHAT_SSL_CLIENT || o->ssl_mode == PEERCHAT_SSL_SERVER)

    // This callback is used to bypass checking the server's domain name, as peers
    // don't have domain names. We byte-compare the certificate to the one reported
    // by the server anyway.

    SECStatus ret = SECFailure;

    CERTCertificate *cert = SSL_PeerCertificate(o->ssl_prfd);
    if (!cert) {
        PeerLog(o, BLOG_ERROR, "SSL_PeerCertificate failed");
        PORT_SetError(SSL_ERROR_BAD_CERTIFICATE);
        goto fail1;
    }

    SECCertUsage cert_usage = (o->ssl_mode == PEERCHAT_SSL_CLIENT ? certUsageSSLServer : certUsageSSLClient);

    if (CERT_VerifyCertNow(CERT_GetDefaultCertDB(), cert, PR_TRUE, cert_usage, SSL_RevealPinArg(o->ssl_prfd)) != SECSuccess) {
        goto fail2;
    }

    // compare to certificate provided by the server
    SECItem der = cert->derCert;
    if (der.len != o->ssl_peer_cert_len || memcmp(der.data, o->ssl_peer_cert, der.len)) {
        PeerLog(o, BLOG_ERROR, "peer certificate doesn't match");
        PORT_SetError(SSL_ERROR_BAD_CERTIFICATE);
        goto fail2;
    }

    ret = SECSuccess;

fail2:
    CERT_DestroyCertificate(cert);
fail1:
    return ret;
}

static void ssl_recv_if_handler_send (PeerChat *o, uint8_t *data, int data_len)
{
    DebugObject_Access(&o->d_obj);
    DebugError_AssertNoError(&o->d_err);
    ASSERT(o->ssl_mode == PEERCHAT_SSL_CLIENT || o->ssl_mode == PEERCHAT_SSL_SERVER)
    ASSERT(data_len >= 0)
    ASSERT(data_len <= SC_MAX_MSGLEN)

    // accept packet
    PacketPassInterface_Done(&o->ssl_recv_if);

    // call message handler
    o->handler_message(o->user, data, data_len);
    return;
}

static void ssl_recv_decoder_handler_error (PeerChat *o)
{
    DebugObject_Access(&o->d_obj);
    DebugError_AssertNoError(&o->d_err);
    ASSERT(o->ssl_mode == PEERCHAT_SSL_CLIENT || o->ssl_mode == PEERCHAT_SSL_SERVER)

    PeerLog(o, BLOG_ERROR, "decoder error");

    report_error(o);
    return;
}

int PeerChat_Init (PeerChat *o, peerid_t peer_id, int ssl_mode, int ssl_flags, CERTCertificate *ssl_cert, SECKEYPrivateKey *ssl_key,
                   uint8_t *ssl_peer_cert, int ssl_peer_cert_len, BPendingGroup *pg, BThreadWorkDispatcher *twd, void *user,
                   BLog_logfunc logfunc,
                   PeerChat_handler_error handler_error,
                   PeerChat_handler_message handler_message)
{
    ASSERT(ssl_mode == PEERCHAT_SSL_NONE || ssl_mode == PEERCHAT_SSL_CLIENT || ssl_mode == PEERCHAT_SSL_SERVER)
    ASSERT(ssl_mode == PEERCHAT_SSL_NONE || ssl_peer_cert_len >= 0)
    ASSERT(logfunc)
    ASSERT(handler_error)
    ASSERT(handler_message)

    // init arguments
    o->ssl_mode = ssl_mode;
    o->ssl_cert = ssl_cert;
    o->ssl_key = ssl_key;
    o->ssl_peer_cert = ssl_peer_cert;
    o->ssl_peer_cert_len = ssl_peer_cert_len;
    o->user = user;
    o->logfunc = logfunc;
    o->handler_error = handler_error;
    o->handler_message = handler_message;

    // init copier
    PacketCopier_Init(&o->copier, SC_MAX_MSGLEN, pg);

    // init SC encoder
    SCOutmsgEncoder_Init(&o->sc_encoder, peer_id, PacketCopier_GetOutput(&o->copier), pg);

    // init PacketProto encoder
    PacketProtoEncoder_Init(&o->pp_encoder, SCOutmsgEncoder_GetOutput(&o->sc_encoder), pg);

    // init recv job
    BPending_Init(&o->recv_job, pg, (BPending_handler)recv_job_handler, o);

    // set no received data
    o->recv_data_len = -1;

    PacketPassInterface *send_buf_output = PacketCopier_GetInput(&o->copier);

    if (o->ssl_mode != PEERCHAT_SSL_NONE) {
        // init receive buffer
        if (!SimpleStreamBuffer_Init(&o->ssl_recv_buf, PEERCHAT_SSL_RECV_BUF_SIZE, pg)) {
            PeerLog(o, BLOG_ERROR, "SimpleStreamBuffer_Init failed");
            goto fail1;
        }

        // init SSL StreamPacketSender
        StreamPacketSender_Init(&o->ssl_sp_sender, send_buf_output, pg);

        // init SSL bottom prfd
        if (!BSSLConnection_MakeBackend(&o->ssl_bottom_prfd, StreamPacketSender_GetInput(&o->ssl_sp_sender), SimpleStreamBuffer_GetOutput(&o->ssl_recv_buf), twd, ssl_flags)) {
            PeerLog(o, BLOG_ERROR, "BSSLConnection_MakeBackend failed");
            goto fail2;
        }

        // init SSL prfd
        if (!(o->ssl_prfd = SSL_ImportFD(NULL, &o->ssl_bottom_prfd))) {
            ASSERT_FORCE(PR_Close(&o->ssl_bottom_prfd) == PR_SUCCESS)
            PeerLog(o, BLOG_ERROR, "SSL_ImportFD failed");
            goto fail2;
        }

        // set client or server mode
        if (SSL_ResetHandshake(o->ssl_prfd, (o->ssl_mode == PEERCHAT_SSL_SERVER ? PR_TRUE : PR_FALSE)) != SECSuccess) {
            PeerLog(o, BLOG_ERROR, "SSL_ResetHandshake failed");
            goto fail3;
        }

        if (o->ssl_mode == PEERCHAT_SSL_SERVER) {
            // set server certificate
            if (SSL_ConfigSecureServer(o->ssl_prfd, o->ssl_cert, o->ssl_key, NSS_FindCertKEAType(o->ssl_cert)) != SECSuccess) {
                PeerLog(o, BLOG_ERROR, "SSL_ConfigSecureServer failed");
                goto fail3;
            }

            // set require client certificate
            if (SSL_OptionSet(o->ssl_prfd, SSL_REQUEST_CERTIFICATE, PR_TRUE) != SECSuccess) {
                PeerLog(o, BLOG_ERROR, "SSL_OptionSet(SSL_REQUEST_CERTIFICATE) failed");
                goto fail3;
            }
            if (SSL_OptionSet(o->ssl_prfd, SSL_REQUIRE_CERTIFICATE, PR_TRUE) != SECSuccess) {
                PeerLog(o, BLOG_ERROR, "SSL_OptionSet(SSL_REQUIRE_CERTIFICATE) failed");
                goto fail3;
            }
        } else {
            // set client certificate callback
            if (SSL_GetClientAuthDataHook(o->ssl_prfd, (SSLGetClientAuthData)client_auth_data_callback, o) != SECSuccess) {
                PeerLog(o, BLOG_ERROR, "SSL_GetClientAuthDataHook failed");
                goto fail3;
            }
        }

        // set verify peer certificate hook
        if (SSL_AuthCertificateHook(o->ssl_prfd, (SSLAuthCertificate)auth_certificate_callback, o) != SECSuccess) {
            PeerLog(o, BLOG_ERROR, "SSL_AuthCertificateHook failed");
            goto fail3;
        }

        // init SSL connection
        BSSLConnection_Init(&o->ssl_con, o->ssl_prfd, 0, pg, o, (BSSLConnection_handler)ssl_con_handler);

        // init SSL PacketStreamSender
        PacketStreamSender_Init(&o->ssl_ps_sender, BSSLConnection_GetSendIf(&o->ssl_con), sizeof(struct packetproto_header) + SC_MAX_MSGLEN, pg);

        // init SSL copier
        PacketCopier_Init(&o->ssl_copier, SC_MAX_MSGLEN, pg);

        // init SSL encoder
        PacketProtoEncoder_Init(&o->ssl_encoder, PacketCopier_GetOutput(&o->ssl_copier), pg);

        // init SSL buffer
        if (!SinglePacketBuffer_Init(&o->ssl_buffer, PacketProtoEncoder_GetOutput(&o->ssl_encoder), PacketStreamSender_GetInput(&o->ssl_ps_sender), pg)) {
            PeerLog(o, BLOG_ERROR, "SinglePacketBuffer_Init failed");
            goto fail4;
        }

        // init receive interface
        PacketPassInterface_Init(&o->ssl_recv_if, SC_MAX_MSGLEN, (PacketPassInterface_handler_send)ssl_recv_if_handler_send, o, pg);

        // init receive decoder
        if (!PacketProtoDecoder_Init(&o->ssl_recv_decoder, BSSLConnection_GetRecvIf(&o->ssl_con), &o->ssl_recv_if, pg, o, (PacketProtoDecoder_handler_error)ssl_recv_decoder_handler_error)) {
            PeerLog(o, BLOG_ERROR, "PacketProtoDecoder_Init failed");
            goto fail5;
        }

        send_buf_output = PacketCopier_GetInput(&o->ssl_copier);
    }

    // init send writer
    BufferWriter_Init(&o->send_writer, SC_MAX_MSGLEN, pg);

    // init send buffer
    if (!PacketBuffer_Init(&o->send_buf, BufferWriter_GetOutput(&o->send_writer), send_buf_output, PEERCHAT_SEND_BUF_SIZE, pg)) {
        PeerLog(o, BLOG_ERROR, "PacketBuffer_Init failed");
        goto fail6;
    }

    DebugError_Init(&o->d_err, pg);
    DebugObject_Init(&o->d_obj);
    return 1;

fail6:
    BufferWriter_Free(&o->send_writer);
    if (o->ssl_mode != PEERCHAT_SSL_NONE) {
        PacketProtoDecoder_Free(&o->ssl_recv_decoder);
fail5:
        PacketPassInterface_Free(&o->ssl_recv_if);
        SinglePacketBuffer_Free(&o->ssl_buffer);
fail4:
        PacketProtoEncoder_Free(&o->ssl_encoder);
        PacketCopier_Free(&o->ssl_copier);
        PacketStreamSender_Free(&o->ssl_ps_sender);
        BSSLConnection_Free(&o->ssl_con);
fail3:
        ASSERT_FORCE(PR_Close(o->ssl_prfd) == PR_SUCCESS)
fail2:
        StreamPacketSender_Free(&o->ssl_sp_sender);
        SimpleStreamBuffer_Free(&o->ssl_recv_buf);
    }
fail1:
    BPending_Free(&o->recv_job);
    PacketProtoEncoder_Free(&o->pp_encoder);
    SCOutmsgEncoder_Free(&o->sc_encoder);
    PacketCopier_Free(&o->copier);
    return 0;
}

void PeerChat_Free (PeerChat *o)
{
    DebugObject_Free(&o->d_obj);
    DebugError_Free(&o->d_err);

    // stop using any buffers before they get freed
    if (o->ssl_mode != PEERCHAT_SSL_NONE) {
        BSSLConnection_ReleaseBuffers(&o->ssl_con);
    }

    PacketBuffer_Free(&o->send_buf);
    BufferWriter_Free(&o->send_writer);
    if (o->ssl_mode != PEERCHAT_SSL_NONE) {
        PacketProtoDecoder_Free(&o->ssl_recv_decoder);
        PacketPassInterface_Free(&o->ssl_recv_if);
        SinglePacketBuffer_Free(&o->ssl_buffer);
        PacketProtoEncoder_Free(&o->ssl_encoder);
        PacketCopier_Free(&o->ssl_copier);
        PacketStreamSender_Free(&o->ssl_ps_sender);
        BSSLConnection_Free(&o->ssl_con);
        ASSERT_FORCE(PR_Close(o->ssl_prfd) == PR_SUCCESS)
        StreamPacketSender_Free(&o->ssl_sp_sender);
        SimpleStreamBuffer_Free(&o->ssl_recv_buf);
    }
    BPending_Free(&o->recv_job);
    PacketProtoEncoder_Free(&o->pp_encoder);
    SCOutmsgEncoder_Free(&o->sc_encoder);
    PacketCopier_Free(&o->copier);
}

PacketRecvInterface * PeerChat_GetSendOutput (PeerChat *o)
{
    DebugObject_Access(&o->d_obj);

    return PacketProtoEncoder_GetOutput(&o->pp_encoder);
}

void PeerChat_InputReceived (PeerChat *o, uint8_t *data, int data_len)
{
    DebugObject_Access(&o->d_obj);
    DebugError_AssertNoError(&o->d_err);
    ASSERT(o->recv_data_len == -1)
    ASSERT(data_len >= 0)
    ASSERT(data_len <= SC_MAX_MSGLEN)

    // remember data
    o->recv_data = data;
    o->recv_data_len = data_len;

    // set received job
    BPending_Set(&o->recv_job);
}

int PeerChat_StartMessage (PeerChat *o, uint8_t **data)
{
    DebugObject_Access(&o->d_obj);
    DebugError_AssertNoError(&o->d_err);

    return BufferWriter_StartPacket(&o->send_writer, data);
}

void PeerChat_EndMessage (PeerChat *o, int data_len)
{
    DebugObject_Access(&o->d_obj);
    DebugError_AssertNoError(&o->d_err);
    ASSERT(data_len >= 0)
    ASSERT(data_len <= SC_MAX_MSGLEN)

    BufferWriter_EndPacket(&o->send_writer, data_len);
}

redpajama_set_name: RedPajamaGithub


text:
Intensity of Lipid Lowering With Statin Therapy in Patients With Cerebrovascular Disease Versus Coronary Artery Disease: Insights from the PALM Registry
Ying Xian, Ann Marie Navar, Shuang Li, Zhuokai Li, Jennifer Robinson, Salim S. Virani, Michael J. Louie, Andrew Koren, Anne Goldberg, Veronique L. Roger, Peter W.F. Wilson, Eric D. Peterson, Tracy Y. Wang
Background: Current treatment guidelines strongly recommend statin therapy for secondary prevention. However, it remains unclear whether patients' perceptions of cardiovascular risk, beliefs on cholesterol, or the intensity of prescribed statin therapy differs for patients with coronary artery disease (CAD) versus cerebrovascular disease (CeVD) versus both CAD and CeVD (CAD&CeVD). Methods and Results: The PALM (Patient and Provider Assessment of Lipid Management) registry collected data on statin use, intensity, and core laboratory low-density lipoprotein cholesterol levels for 3232 secondary prevention patients treated at 133 US clinics. Among individuals with CeVD only (n=403), CAD only (n=2202), and CeVD&CAD (n=627), no significant differences were observed in patient-perceived cardiovascular disease risk, beliefs on cholesterol lowering, or perceived effectiveness and safety of statin therapy. However, patients with CeVD only were less likely to receive any statin therapy (76.2% versus 86.2%; adjusted odds ratio 0.64, 95% CI 0.45–0.91), or guideline-recommended statin intensity (34.6% versus 50.4%; adjusted odds ratio 0.60, 95% CI 0.45–0.81) than those with CAD only. Individuals with CeVD only were also less likely to achieve low-density lipoprotein cholesterol <100 mg/dL (59.2% versus 69.7%; adjusted odds ratio 0.79, 95% CI 0.64–0.99) than individuals with CAD alone. There were no significant differences in the use of any statin therapy or guideline-recommended statin intensity between individuals with CAD&CeVD and those with CAD only. Conclusions: Despite lack of significant differences in patient-perceived cardiovascular risk or statin beliefs, patients with CeVD were significantly less likely to receive higher intensity statin or achieve low-density lipoprotein cholesterol <100 mg/dL than those with CAD only.
secondary prevention
Fingerprint Dive into the research topics of 'Intensity of Lipid Lowering With Statin Therapy in Patients With Cerebrovascular Disease Versus Coronary Artery Disease: Insights from the PALM Registry'. Together they form a unique fingerprint.
Cerebrovascular Disorders Medicine & Life Sciences
Hydroxymethylglutaryl-CoA Reductase Inhibitors Medicine & Life Sciences
Coronary Artery Disease Medicine & Life Sciences
LDL Cholesterol Medicine & Life Sciences
Guidelines Medicine & Life Sciences
Xian, Y., Navar, A. M., Li, S., Li, Z., Robinson, J., Virani, S. S., Louie, M. J., Koren, A., Goldberg, A., Roger, V. L., Wilson, P. W. F., Peterson, E. D., & Wang, T. Y. (2019). Intensity of Lipid Lowering With Statin Therapy in Patients With Cerebrovascular Disease Versus Coronary Artery Disease: Insights from the PALM Registry. Journal of the American Heart Association, 8(19), [e013229]. https://doi.org/10.1161/JAHA.119.013229
Intensity of Lipid Lowering With Statin Therapy in Patients With Cerebrovascular Disease Versus Coronary Artery Disease : Insights from the PALM Registry. / Xian, Ying; Navar, Ann Marie; Li, Shuang; Li, Zhuokai; Robinson, Jennifer; Virani, Salim S.; Louie, Michael J.; Koren, Andrew; Goldberg, Anne; Roger, Veronique L.; Wilson, Peter W.F.; Peterson, Eric D.; Wang, Tracy Y.
In: Journal of the American Heart Association, Vol. 8, No. 19, e013229, 01.10.2019.
Xian, Y, Navar, AM, Li, S, Li, Z, Robinson, J, Virani, SS, Louie, MJ, Koren, A, Goldberg, A, Roger, VL, Wilson, PWF, Peterson, ED & Wang, TY 2019, 'Intensity of Lipid Lowering With Statin Therapy in Patients With Cerebrovascular Disease Versus Coronary Artery Disease: Insights from the PALM Registry', Journal of the American Heart Association, vol. 8, no. 19, e013229. https://doi.org/10.1161/JAHA.119.013229
Xian Y, Navar AM, Li S, Li Z, Robinson J, Virani SS et al. Intensity of Lipid Lowering With Statin Therapy in Patients With Cerebrovascular Disease Versus Coronary Artery Disease: Insights from the PALM Registry. Journal of the American Heart Association. 2019 Oct 1;8(19). e013229. https://doi.org/10.1161/JAHA.119.013229
Xian, Ying ; Navar, Ann Marie ; Li, Shuang ; Li, Zhuokai ; Robinson, Jennifer ; Virani, Salim S. ; Louie, Michael J. ; Koren, Andrew ; Goldberg, Anne ; Roger, Veronique L. ; Wilson, Peter W.F. ; Peterson, Eric D. ; Wang, Tracy Y. / Intensity of Lipid Lowering With Statin Therapy in Patients With Cerebrovascular Disease Versus Coronary Artery Disease : Insights from the PALM Registry. In: Journal of the American Heart Association. 2019 ; Vol. 8, No. 19.
@article{0ac5cd1f4e104ce98f6649f8bbb05ef3,
title = "Intensity of Lipid Lowering With Statin Therapy in Patients With Cerebrovascular Disease Versus Coronary Artery Disease: Insights from the PALM Registry",
abstract = "Background: Current treatment guidelines strongly recommend statin therapy for secondary prevention. However, it remains unclear whether patients{\textquoteright} perceptions of cardiovascular risk, beliefs on cholesterol, or the intensity of prescribed statin therapy differs for patients with coronary artery disease (CAD) versus cerebrovascular disease (CeVD) versus both CAD and CeVD (CAD&CeVD). Methods and Results: The PALM (Patient and Provider Assessment of Lipid Management) registry collected data on statin use, intensity, and core laboratory low-density lipoprotein cholesterol levels for 3232 secondary prevention patients treated at 133 US clinics. Among individuals with CeVD only (n=403), CAD only (n=2202), and CeVD&CAD (n=627), no significant differences were observed in patient-perceived cardiovascular disease risk, beliefs on cholesterol lowering, or perceived effectiveness and safety of statin therapy. However, patients with CeVD only were less likely to receive any statin therapy (76.2% versus 86.2%; adjusted odds ratio 0.64, 95% CI 0.45–0.91), or guideline-recommended statin intensity (34.6% versus 50.4%; adjusted odds ratio 0.60, 95% CI 0.45–0.81) than those with CAD only. Individuals with CeVD only were also less likely to achieve low-density lipoprotein cholesterol <100 mg/dL (59.2% versus 69.7%; adjusted odds ratio 0.79, 95% CI 0.64–0.99) than individuals with CAD alone. There were no significant differences in the use of any statin therapy or guideline-recommended statin intensity between individuals with CAD&CeVD and those with CAD only. Conclusions: Despite lack of significant differences in patient-perceived cardiovascular risk or statin beliefs, patients with CeVD were significantly less likely to receive higher intensity statin or achieve low-density lipoprotein cholesterol <100 mg/dL than those with CAD only.",
keywords = "coronary artery disease, quality of care, secondary prevention, statin, stroke",
author = "Ying Xian and Navar, {Ann Marie} and Shuang Li and Zhuokai Li and Jennifer Robinson and Virani, {Salim S.} and Louie, {Michael J.} and Andrew Koren and Anne Goldberg and Roger, {Veronique L.} and Wilson, {Peter W.F.} and Peterson, {Eric D.} and Wang, {Tracy Y.}",
note = "Funding Information: This study was supported by Sanofi Pharmaceuticals and Regeneron Pharmaceuticals. Dr Navar receives research grants from Amgen, Sanofi, Regeneron, Janssen, Amarin and NHLBI (K01HL133416), and acts as a consultant and advisory board member for Amgen, Amarin, Sanofi, Regeneron, Astra Zeneca, and Novo Nordisk. Dr Robinson receives research grants to Institution from Acasti, Amarin, Amgen, Astra-Zeneca, Esai, Esperion, Merck, Regeneron, Sanofi, Takeda and acts as a consultant for Amgen, Medicines Company, Merck, Novartis, Novo-Nordisk, Pfizer, Regeneron, Sanofi. Dr Virani receives research grants from the American Heart Association, American Diabetes Association, and Veterans Affairs; honoraria from American College of Cardiology and National Lipid Association. Dr Goldberg receives research grants to institution: Amarin, Amgen, IONIS, Pfizer, Regeneron, Sanofi. Consultant: Sanofi/Regeneron, AKCEA, Novartis, Esperion, 23andMe. Editorial: Merck Manual. Dr Koren is an employee of Sanofi. Dr Louie is an employee of Regeneron Pharmaceuticals Inc. Dr Peterson receives research grants from Amgen, Sanofi, AstraZeneca, and Merck and fees as a consultant and advisory board member to Amgen, AstraZeneca, Merck, and Sanofi Aventis. Dr Wang receives research grants from Amgen, AstraZeneca, Bristol Myers Squibb, Cryolife, Novartis, Pfizer, Portola, and Regeneron Pharmaceuticals and honoraria from Gilead, and Grifols. The remaining authors have no disclosures to report.",
T1 - Intensity of Lipid Lowering With Statin Therapy in Patients With Cerebrovascular Disease Versus Coronary Artery Disease
T2 - Insights from the PALM Registry
AU - Xian, Ying
AU - Navar, Ann Marie
AU - Li, Shuang
AU - Li, Zhuokai
AU - Robinson, Jennifer
AU - Virani, Salim S.
AU - Louie, Michael J.
AU - Koren, Andrew
AU - Goldberg, Anne
AU - Roger, Veronique L.
AU - Wilson, Peter W.F.
AU - Peterson, Eric D.
AU - Wang, Tracy Y.
N1 - Funding Information: This study was supported by Sanofi Pharmaceuticals and Regeneron Pharmaceuticals. Dr Navar receives research grants from Amgen, Sanofi, Regeneron, Janssen, Amarin and NHLBI (K01HL133416), and acts as a consultant and advisory board member for Amgen, Amarin, Sanofi, Regeneron, Astra Zeneca, and Novo Nordisk. Dr Robinson receives research grants to Institution from Acasti, Amarin, Amgen, Astra-Zeneca, Esai, Esperion, Merck, Regeneron, Sanofi, Takeda and acts as a consultant for Amgen, Medicines Company, Merck, Novartis, Novo-Nordisk, Pfizer, Regeneron, Sanofi. Dr Virani receives research grants from the American Heart Association, American Diabetes Association, and Veterans Affairs; honoraria from American College of Cardiology and National Lipid Association. Dr Goldberg receives research grants to institution: Amarin, Amgen, IONIS, Pfizer, Regeneron, Sanofi. Consultant: Sanofi/Regeneron, AKCEA, Novartis, Esperion, 23andMe. Editorial: Merck Manual. Dr Koren is an employee of Sanofi. Dr Louie is an employee of Regeneron Pharmaceuticals Inc. Dr Peterson receives research grants from Amgen, Sanofi, AstraZeneca, and Merck and fees as a consultant and advisory board member to Amgen, AstraZeneca, Merck, and Sanofi Aventis. Dr Wang receives research grants from Amgen, AstraZeneca, Bristol Myers Squibb, Cryolife, Novartis, Pfizer, Portola, and Regeneron Pharmaceuticals and honoraria from Gilead, and Grifols. The remaining authors have no disclosures to report.
N2 - Background: Current treatment guidelines strongly recommend statin therapy for secondary prevention. However, it remains unclear whether patients' perceptions of cardiovascular risk, beliefs on cholesterol, or the intensity of prescribed statin therapy differs for patients with coronary artery disease (CAD) versus cerebrovascular disease (CeVD) versus both CAD and CeVD (CAD&CeVD). Methods and Results: The PALM (Patient and Provider Assessment of Lipid Management) registry collected data on statin use, intensity, and core laboratory low-density lipoprotein cholesterol levels for 3232 secondary prevention patients treated at 133 US clinics. Among individuals with CeVD only (n=403), CAD only (n=2202), and CeVD&CAD (n=627), no significant differences were observed in patient-perceived cardiovascular disease risk, beliefs on cholesterol lowering, or perceived effectiveness and safety of statin therapy. However, patients with CeVD only were less likely to receive any statin therapy (76.2% versus 86.2%; adjusted odds ratio 0.64, 95% CI 0.45–0.91), or guideline-recommended statin intensity (34.6% versus 50.4%; adjusted odds ratio 0.60, 95% CI 0.45–0.81) than those with CAD only. Individuals with CeVD only were also less likely to achieve low-density lipoprotein cholesterol <100 mg/dL (59.2% versus 69.7%; adjusted odds ratio 0.79, 95% CI 0.64–0.99) than individuals with CAD alone. There were no significant differences in the use of any statin therapy or guideline-recommended statin intensity between individuals with CAD&CeVD and those with CAD only. Conclusions: Despite lack of significant differences in patient-perceived cardiovascular risk or statin beliefs, patients with CeVD were significantly less likely to receive higher intensity statin or achieve low-density lipoprotein cholesterol <100 mg/dL than those with CAD only.
AB - Background: Current treatment guidelines strongly recommend statin therapy for secondary prevention. However, it remains unclear whether patients' perceptions of cardiovascular risk, beliefs on cholesterol, or the intensity of prescribed statin therapy differs for patients with coronary artery disease (CAD) versus cerebrovascular disease (CeVD) versus both CAD and CeVD (CAD&CeVD). Methods and Results: The PALM (Patient and Provider Assessment of Lipid Management) registry collected data on statin use, intensity, and core laboratory low-density lipoprotein cholesterol levels for 3232 secondary prevention patients treated at 133 US clinics. Among individuals with CeVD only (n=403), CAD only (n=2202), and CeVD&CAD (n=627), no significant differences were observed in patient-perceived cardiovascular disease risk, beliefs on cholesterol lowering, or perceived effectiveness and safety of statin therapy. However, patients with CeVD only were less likely to receive any statin therapy (76.2% versus 86.2%; adjusted odds ratio 0.64, 95% CI 0.45–0.91), or guideline-recommended statin intensity (34.6% versus 50.4%; adjusted odds ratio 0.60, 95% CI 0.45–0.81) than those with CAD only. Individuals with CeVD only were also less likely to achieve low-density lipoprotein cholesterol <100 mg/dL (59.2% versus 69.7%; adjusted odds ratio 0.79, 95% CI 0.64–0.99) than individuals with CAD alone. There were no significant differences in the use of any statin therapy or guideline-recommended statin intensity between individuals with CAD&CeVD and those with CAD only. Conclusions: Despite lack of significant differences in patient-perceived cardiovascular risk or statin beliefs, patients with CeVD were significantly less likely to receive higher intensity statin or achieve low-density lipoprotein cholesterol <100 mg/dL than those with CAD only.
KW - coronary artery disease
KW - quality of care
KW - secondary prevention
KW - statin
KW - stroke
M1 - e013229


text:
Q: docker running npm install cause ERR_SOCKET_TIMEOUT When docker run npm install I have ERR_SOCKET_TIMEOUT
I already try : RUN npm config set registry="http://registry.npmjs.org
The command work when I'm using my phone network but not when I'm using my home wifi. I don't have proxy on both of them
7194 verbose type system
7195 verbose stack Fetch Error: request to http://registry.npmjs.org/workbox-streams/-/workbox-streams-5.1.4.tgz failed, reason: Socket timeout
7195 verbose stack     at ClientRequest.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/minipass-fetch/lib/index.js:97:14)
7195 verbose stack     at ClientRequest.emit (node:events:365:28)
7195 verbose stack     at Socket.socketErrorListener (node:_http_client:447:9)
7195 verbose stack     at Socket.emit (node:events:377:35)
7195 verbose stack     at emitErrorNT (node:internal/streams/destroy:193:8)
7195 verbose stack     at emitErrorCloseNT (node:internal/streams/destroy:158:3)
7195 verbose stack     at processTicksAndRejections (node:internal/process/task_queues:83:21)
7196 verbose cwd /usr/src/frontend_mak
7197 verbose Linux 5.8.0-53-generic
7198 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--verbose"
7199 verbose node v16.1.0
7200 verbose npm  v7.11.2
7201 error code ERR_SOCKET_TIMEOUT
7202 error errno ERR_SOCKET_TIMEOUT
7203 error request to http://registry.npmjs.org/workbox-streams/-/workbox-streams-5.1.4.tgz failed, reason: Socket timeout
7204 verbose exit 1

Dockerfile for my react app
1   FROM node:16.1-alpine3.11
  1
  2 WORKDIR /usr/src/frontend_mak
  3
  4 ENV PATH /usr/src/frontend_mak/node_modules/.bin:$PATH
  5
  6 COPY package.json ./
  7 COPY package-lock.json ./
  8
  9 RUN npm config set registry="http://registry.npmjs.org/"
 10 RUN npm config list
 11
 12 RUN npm install --verbose
 13
 14 COPY . ./
 15
 16 CMD ["npm", "start"]

redpajama_set_name: RedPajamaStackExchange