Emergency Locator Transmitter The ELT 345 boasts an industry low price for an ELT providing the same quality and performance on which the ARTEX brand was built.
The ELT 345 boasts an industry low price for an ELT providing the same quality and performance on which the ARTEX brand was built. GPS data is embedded within the first emergency transmission and provides Search and Rescue personnel with the aircraft location, within 100 meters, in less than a minute.
When an emergency happens, rely on the same brand that leading aircraft manufacturers trust for first-class quality, superior technology, and outstanding customer service. The new ARTEX ELT 345 is built to the industry's most stringent quality management standards to ensure the ELT works the first time, every time. The ARTEX ELT 345 transmits on 406 MHz and 121.5 MHz frequencies while providing positon accuracy thanks to the built-in GPS navigational interface. GPS data is embedded within the first emergency transmission and provides Search and Rescue personnel with the aircraft location, within 100 meters, in less than a minute. The ELT 345 boasts an industry low price for an ELT providing the same quality and performance on which the ARTEX brand was built.
The ARTEX ELT 345 can be activated manually (via cockpit remote switch or ELT switch) or automatically (the G-Switch senses a 2.3G or greater impact), and alerts the closest Search and Rescue agency of your emergency. The 406 MHz signal, containing your GPS coordinates, is transmitted to the Cospas-Sarsat satellites and relayed to the Mission Control Center where it is immediately routed to the nearest Search and Rescue agency. Your beacon's registration will tell first responders who you are and the beacon itself lets them know where you are to within 100 meters. Finally, the local 121.5 MHz homing signal assists Search and Rescue forces to identify your exact location.
The ARTEX ELT 345 provides a quick-and-easy retrofit opportunity with flexible installation options such as a two-wire remote switch that does not require any aircraft power. Because it is a single output ELT, the ELT 345 utilizes the same RF output and only one coax cable to transmit both 406 MHz and 121.5 MHz signals. The built-in navigational interface does not require aircraft power to operate which greatly reduces the cost of installation. The stainless steel mounting bracket has a multiple-hole pattern configuration which makes the replacement of legacy ARTEX ELTs or old ACK, Kannad and AmeriKing ELTs quick and easy.
Pair the ELT 345 with ARTEX's exclusive online satellite confirmation testing system, 406Test.com, and get real-time beacon testing results, from the same satellites used by Search and Rescue, to ensure your ELT system is functioning properly. There is a reason that ARTEX ELTs are the choice of more aircraft manufacturers than any other; they trust ARTEX to build the highest quality products knowing they are used to save lives.


Due to changes in the school calendar imposed by the Kenyan Government Friday 28th October was the last day of the 2016 Academic Year for staff & pupils of St Bernadette Mary School. It is very early compared to previous years giving the children nearly 10 weeks holiday but we have to adhere to the strict guidelines set by the government. As always the school is a hub of activity and excitement with many children receiving recognition for their achievements throughout the school year.
Celebrations started with a thanksgiving Mass with Father Matua, it was good to see a large number of parents also in attendance. Along with giving thanks for the previous year, the Standard 8 pupils who are sitting their K.C.P.E. Examinations next week are blessed, all pupils also get new stationary so they are fully prepared for three days of back to back examinations.
Madam Paula's KG2 with Lawrence as the Master of Ceremonies started the entertainment for the day, they performed a wonderful poem followed by a very energetic song. Class 2 also kept us all smiling with their verse followed by a wonderful performance by Carrie, Emi, Elle and some of our GLO children.The girls had been practicing with our children and for many this was the first time they had heard a ukulele, everyone clapped & cheered.
Madam Phelister led our KG3 onto the stage, it was their Graduation Day and their little faces lit up once they told us all of their hopes, it was indeed a joy to behold. Mama Waseema and Mama Carrie our visitors presented the Graduation Certificates, we were especially proud of our group of GLO children who have now graduated and will be joining Standard 1 in January 2017.
Many of our pupils received certificates as recognition for being part of our very active Sports Team, Art Class, Religious Instruction and our prizewinning choir. In four years SBM School has developed an award winning choir under the tutelage of Mr Stephen Kinyungu who earlier this year won a 1st & 2nd place at the National Music Competition in Nairobi. They brought back the prestigious Peter Sillingi Trophy to the coast for the first time ever. We were blessed to be able to listen to their two awarding winning songs, the whole audience were as quiet as mice whilst listening to our talented pupils.
The climax to the celebrations was the unveiling of The Spirit of SBM School Award, this award is sponsored by Eileen Frey and 2016 produced a very worthy winner, Harrison Mgoti. Harrison has transformed from being a troublesome boy to one of our best behaved pupils, he is a shining example to all our pupils of the true ethos of our Spirit of SBM School Award. The Mgoti Family were very happy to accept the gifts along with Harrison as they are a needy family but in spite of all the hurdles they have to overcome on a daily basis have produced hardworking, dedicated pupils such as Harrison and his older brother Sammy who is at secondary school in Gesusu.
With 2016 coming to a close soon, we wish to thank our SBM school Teachers, Support Staff and pupils for making this a very successful academic year, onwards & upwards for 2017.
Well done Harrison – great to see!


text:
application plan
Caprara srl for many years present in the Agriculture field with Physio-nutrition Special products, by perceiving the main importance of new fertilizer technologies, has searched for state-of-the-art products in the most advanced farming areas worldwide, managing to create one of the most updated and wide-ranging catalogues.
The approval achieved for every new fertilizing product for the Farm sector is the evidence of the high level of expertise of the company's technicians, together with the constant testing on farmland so to verify the actual validity of every fertlizer before proposing it to clients.
The success of the CAPRARA brandname, is not only to be considered national, since it has extended to the international market and in particular to the Countries of the Mediterranean Basin, and is the actual confirmation of the company's seriousness and reliability, a company which continues to believe in the future of agriculture.
CAPRARA – A PASSWORD TO REMEMBER
RESEARCH AND DEVELOPMENT OF NEW FERTLIZING PRODUCTS
By means of a well-articulated chain of international connections, the Company Caprara srl enacts a constant research in the Agronomic field which represents the base for the fulfillment of special fertilizers and nutrients, well-advanced and in respect of the environment. Thanks to the collaboration with official organizations the Company is acknowledged as Technical Establishment (Approval Number: ABP1199UFERT3), and is registered according to law D.Lgs. 217/06 and D.Lgs.75/2010 and later amendments, in the Manufacturers and Fertilizers Register at The Ministry of Agricultural, Food and Forestry Policies. Furthermore in order to guarantee products traceability, La CAPRARA srl realizes a series of specific internal procedures which enables to track down the origin and use of materials.
TECHNICAL AND COMPUTER SUPPORT FOR FACTORY FARMS, FARMERS AND RETAILERS
Caprara srl company offers technical support to farm factories and retailers, through its skilled staff with a wide range of experiences from the choice of a single product to the choice of a complete technical line in order to obtain maximum productivity on the crops treated.
Caprara srl provides a constantly updated website which offers complete information on the Company and on the wide range of products with contents both in Italian and in English.

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: How to handle multiple separators / empty statements? Let's say I want to have a file with a bunch of arithmetic statement, such as:
1+1
2+2; 2+4;
;

5+5
5+7

And statements are either separated by a ; or \n, and we don't care about empty statements (such as if we have multiple consecutive newlines or ; or whatever).
What would be the proper way to deal with this? Here was my attempt at doing it:
grammar Calc;

program
    : expressions
    ;

expressions
    : expression (SEPARATOR expression)* SEPARATOR*
    ;

expression
    : '(' expression ')'            // parenExpression has highest precedence
    | expression MULDIV expression  // then multDivExpression
    | expression ADDSUB expression  // then addSubExpression
    | OPERAND                       // finally the operand itself
    ;

MULDIV
    : [*/]
    ;

ADDSUB
    : [-+]
    ;

// 12 or .12 or 2. or 2.38
OPERAND
    : [0-9]+ ('.' [0-9]*)?
    | '.' [0-9]+
    ;

SEPARATOR
    : [\n;]+
    ;

I think maybe the way that I handle SEPARATOR is a bit of a hack, maybe a better way would be to say that a statement can be empty or it can be non-empty, or something along those lines? What might be a more clear grammar to describe what I want? Additionally, is expression (SEPARATOR expression)* SEPARATOR* a poor way to accomplish this, or does that seem like a valid parser rule for expressions: ?

A: Let me suggest a different approach: don't handle separators in the grammar, but instead split your input into single expressions before you actually parse them. This will simplify your grammar and you can easily tell if an expression is actually empty.
const expressions = input.split("\n").split(";");

expressions.forEach((expression) = {
    if (expression.length > 0) {
        myParser.expression(expression);
    }
});

With that loop you can even stop parsing a long expression list if you find an error. In general that's much more flexible.

redpajama_set_name: RedPajamaStackExchange


Minecraft Pocket Edition v1.1.0.4 is an Arcade game . Minecraft Pocket Edition v1.1.0.4 Final APK is biggest update . place blocks to build things . Also Download Mega mod version from market amazon . Price In Google Market 6.99 $ .
Download Minecraft Pocket Edition v1.1.0.4 Final APK + MEGA MOD Amazon (Immortality/Skins/Texture) Free on DownloadFreeAZ.Com.


text:
Značka: Pwc
PwC Hong Kong purchases land plot in The Sandbox
podľa Cointelegraph By Tom Farren | dec 23, 2021 | 0 |
PwC Hong Kong, an international subsidiary of the global PricewaterhouseCoopers (PwC) organization, announced Thursday its emergence in the metaverse space with the acquisition of LAND in the popular world The Sandbox.Though the cost of its LAND asset was undisclosed, it was noted that PwC Hong Kong intends to construct a Web 3.0 advisory hub to facilitate a new generation of professional services, including accounting and taxation.The global organization PwC, headquartered in London, United Kingdom, documented revenues of $45 billion from June 2020 to June 2021, up 2% from the previous year.William Gee, a partner at PwC Hong Kong, stated that the organization will seek to "leverage our expertise to advise clients" on the metaverse, calling the burgeoning technology a "digital phenomenon."Related: Virtual land in the metaverse dominated NFT sales over past weekIn July this year, PwC crypto leader Henri Arslanian stated that venture capital funds and similar conglomerates with large financial resources are curtailing opportunities for smaller, often family-run firms to invest and participate in the growth of promising crypto startups. Recently, Twitter CEO Jack Dorsey expressed similar concerns about the power of venture capital firms in preventing Web 3.0 developers from achieving their decentralized vision. Chief operating officer of The Sandbox Sebastien Borget shared his enthusiasm for the introduction of PwC Hong Kong to the platform:"The metaverse is open for business. We welcome PwC Hong Kong to experience how The Sandbox fosters new immersive experiences and ways for brands to connect with customers."According to data from DappRadar, The Sandbox has registered 4,450 unique users over the last 30 days, while the platform's native token, SAND, is priced at $5.84, having retraced almost 30% from all-time highs last month.


text:
Mitglied ist ein konstitutiver Angehöriger (natürliche oder juristische Person) eines Kollegialorgans.

Allgemeines
Konstitutiv bedeutet hier, dass es diese Personenvereinigung ohne Mitglieder gar nicht geben könnte, weil die Existenz einer Personenvereinigung nur durch ihre Mitglieder gewährleistet ist. Nach der Art der Freiwilligkeit gibt es freiwillige Mitglieder oder die Pflichtmitgliedschaft durch Zwang kraft Gesetzes oder öffentlicher Satzung. Während freiwillige Mitglieder durch eigene Entscheidung in das Kollegialorgan eintreten, geschieht dies bei Pflichtmitgliedern dadurch, dass sie bestimmte Eigenschaften aufweisen, die sie zur Mitgliedschaft zwingen. Wer diese Eigenschaften besitzt, ist automatisch Pflichtmitglied.

Neben ordentlichen Mitgliedern kann es Mitglieder mit geringeren Rechten geben (außerordentliche Mitglieder), bezeichnet zum Beispiel als fördernde Mitglieder, Mitglieder mit beratender Stimme oder korrespondierende Mitglieder, dazu Anwärter und Postulanten. Ist die Mitgliedschaft für bestimmte Mitglieder kostenlos, spricht man von Ehrenmitgliedern.

Im weiteren Sinne werden Personen aufgrund ihres Verhaltens, Aussehens oder ihrer Gesinnung zu Mitgliedern einer Gruppierung gerechnet.

Mitgliedschaft
Nach Niklas Luhmann ist Mitgliedschaft soziologisch eng mit der Rolle in einem System verbunden. So muss man erst Mitglied in einer Organisation sein, um die Möglichkeit zu erhalten, weitere ausdifferenzierte Rollen in der Organisation anzunehmen. Durch die Mitgliedschaftsfrage entsteht außerdem eine klare Trennung zwischen System und Umwelt. Allgemein lässt sich sagen, dass Eintritts- und Austrittsmöglichkeiten die Erwartungen der Organisation an ihre Mitglieder legitimieren, was in anderen sozialen Systemen, wie etwa in Familien, nicht möglich ist. Durch die Formulierung von Eintritts- und Austrittsmöglichkeiten ist es überhaupt erst möglich, Mitgliedschaftsbedingungen zu formulieren.

Bei der Entscheidung über den Beitritt in eine Organisation können verschiedenste Motive seitens der Handelnden eine Rolle spielen. Mit der Entscheidung für den Eintritt wird entscheidet die Person sich für die Anerkennung der Regeln, Strukturen, Zwecke und Erwartungen, die die Organisation vorgibt – sie akzeptiert die Mitgliedschaftsbedingungen. Also werden die Motivationen für den Eintritt mit der Entscheidung neutralisiert, sodass die beigetretenen Mitglieder die gleichen Interessen im Sinne der Organisation verfolgen können, bzw. sie können belangt werden, wenn sie sich nicht (mehr) an die Mitgliedschaftsbedingungen halten.

Luhmann betont darüber hinaus, dass ein zentraler Unterschied darin liegt, ob die Mitgliedschaft in einer Organisation per Zwang oder durch Freiwilligkeit besteht. Entscheiden sich Individuen freiwillig, einer Organisation anzugehören, erleichtert das den Zugriff der Organisation auf das Individuum immens. Die Drohung des Ausschlusses aus der Organisation bei Nicht-Einhaltung der Mitgliedschaftsbedingung ist eine der Sanktionsmöglichkeiten, die die freiwillige Mitgliedschaft eröffnet. Gerade weil die Mitglieder einer Organisation austauschbar sind, kann ihnen mit der Auswechslung gedroht werden. Vor dem Hintergrund dieser Drohung kann die Organisation auf effizienterem Wege mehr Macht über Individuen ausüben, als es in einer Zwangsorganisation, wie dem Militär, der Fall ist.

Der Mitgliedschaftsbegriff in den Rechtswissenschaften
Unter Mitgliedschaft versteht man das Rechtsverhältnis der Mitglieder zu einer Personenvereinigung. Dieses Rechtsverhältnis entsteht durch (schriftliche) Beitrittserklärung und Zulassung des Beitritts durch die Personenvereinigung (vgl.  GenG). Es handelt sich um einen Aufnahmevertrag. Die Mitgliedschaft entsteht auch durch Aufnahme (manchmal mit bestimmten Symbolhandlungen und Ritualen), von Amts wegen oder durch Geburt. Sie ist verbunden mit bestimmten Rechten, zum Beispiel der Teilnahme an eigens für Mitglieder geplanten Aktivitäten, als auch mit Pflichten, etwa der Entrichtung von festgesetzten Mitgliedsbeiträgen oder der Übernahme bestimmter Funktionen, die zur Organisation der jeweiligen Personenvereinigung dienen, so zum Beispiel Schriftführer, Presse- oder Kassenwarte/Kassenprüfer. Sie endet zum Beispiel durch Abwahl, Ausschluss, Austritt, Rücktritt, Tod des Mitglieds oder Auflösung der Personenvereinigung.

Manche Mitgliedschaften bei kommerziellen Klubs (etwa Buchgemeinschaften) bürden den Mitgliedern weitergehende Verpflichtungen auf und verlangen den regelmäßigen Kauf von Produkten, beispielsweise Büchern oder Tonträgern. Es handelt sich dabei aber nicht um Klubs im klassischen Sinne, sondern um Vertriebssysteme, die ein Abonnement anbieten. Bei solchen Mitgliedschaften ist das vorherige Studium des Kleingedruckten, insbesondere der Kündigungsfrist, ratsam.

Arten
Mitgliedschaften gibt es juristisch gesehen vor allem in folgenden Bereichen:
 Berufsständische Körperschaften:
 Gewerbetreibende: Industrie- und Handelskammer (in Österreich Wirtschaftskammer) gemäß  Abs. 1 IHKG.
 Handwerksbetriebe sind gemäß  Abs. 2 HandwO Mitglied der Handwerkskammer.
 Freie Berufe: Apothekerkammer, Architektenkammer, Ärztekammer, Landwirtschaftskammer, Notarkammer, Patentanwaltskammer, Rechtsanwaltskammer, Steuerberaterkammer u. ä. Die Berufsangehörigen sind hier Pflichtmitglieder.
 Arbeitnehmerkammern in Bremen und im Saarland.
 Die berufsständische Versorgung wird durch Versorgungskassen der Ärzte, Apotheker, Anwälte, Künstler usw. sichergestellt (etwa Bayerische Ärzteversorgung).
 Deichverbände: Verbandsmitglieder können unter anderem gemäß  Abs. 1 WVG die jeweiligen Eigentümer von Grundstücken und Anlagen, jeweilige Erbbauberechtigte sowie Inhaber von Bergwerkseigentum (dingliche Verbandsmitglieder) sein.
 Einlagensicherung:
 Voraussetzung für das Betreiben des Bankgeschäftes ist die Pflichtmitgliedschaft des Kreditinstituts in einer Einrichtung der Einlagensicherung ( Abs. 1 KWG).
 Für Versicherungsunternehmen (Lebensversicherung, Krankenversicherung, Sachversicherung) ist gemäß  Abs. 1 VAG die Mitgliedschaft in einem Sicherungsfonds Pflicht.
 Gebietskörperschaften (Bund, Länder, Gemeinden) haben Pflichtmitglieder gemäß Gemeindeordnung, und zwar die Einwohner mit Wohnsitz im Gebiet (§ 21 Abs. 1 GemO NRW).
 Genossenschaften: Die Inhaber von Geschäftsguthaben einer Genossenschaft werden als Mitglieder dieser Genossenschaft bezeichnet ( GenG). Die Pflichtmitgliedschaft im Prüfungsverband ( GenG) ist Voraussetzung für die Eintragung ins Genossenschaftsregister ( Abs. 2 Nr. 3 GenG). Man unterscheidet bei Genossenschaften zwischen dem ordentlichen und dem investierten Mitglied.
 Die Eigentümer von Feldern und Wäldern, die zusammen weniger als 75 ha ausmachen und einem gemeinschaftlichen Jagdbezirk angehören, bilden eine Jagdgenossenschaft ( BJagdG).
 Organmitglieder sind im Organisationsrecht natürliche Personen, welche die von der Rechtsordnung vorgesehenen Aufgaben eines Organs von juristischen Personen oder Personenvereinigungen wahrnehmen oder ausüben.
 Pflichtversicherungen sind Versicherungssysteme mit gesetzlicher Zwangsmitgliedschaft wie bei Sozialversicherung und Berufsgenossenschaft. Die Sozialversicherung umfasst Personen, die kraft Gesetzes oder Satzung (Versicherungspflicht) oder auf Grund freiwilligen Beitritts oder freiwilliger Fortsetzung der Versicherung (Versicherungsberechtigung) versichert sind ( Abs. 1 SGB IV). Der Gesetzgeber darf durch die Anordnung von Zwangsmitgliedschaft und Beitragspflichten in einem öffentlich-rechtlichen Verband der Sozialversicherung die allgemeine Betätigungsfreiheit des Einzelnen durch Einschränkung ihrer wirtschaftlichen Voraussetzungen nicht unerheblich einengen. Bei der Berufsgenossenschaft sind die Beschäftigten pflichtversichert ( Abs. 1 SGB VII).
 Politische Parteien haben Parteimitglieder, deren Aufnahme und Austritt sowie Rechte und Pflichten durch eine Satzung geregelt sein müssen ( Abs. 2 PartG).
 verfasste Studentenschaften (in Österreich: Hochschülerschaft) sind außer in Bayern, Baden-Württemberg und Sachsen-Anhalt Zwangskörperschaften, die an die Immatrikulation anknüpfen.
 Vereine haben gemäß  Abs. 1 BGB Vereinsmitglieder, deren Mitgliedschaft nach  BGB weder übertragbar noch vererblich ist. Erforderlich sind nach  BGB mindestens sieben Mitglieder. Der Deutsche Olympische Sportbund ist mit rund 27 Millionen Mitgliedern die größte Personenvereinigung Deutschlands.
 Versorgungskassen bestehen aus Pflichtmitgliedern für die Beamtenversorgung.
Körperschaftlich organisierte Organisationen erheben Umlagen, die übrigen Organisationen legen eine Beitragspflicht in ihren Satzungen fest oder sind kostenlos (Organmitglieder). Bei privatrechtlichen Gesellschaften gibt es keine Mitglieder, sondern Gesellschafter oder Aktionäre.

Besondere Formen der Mitgliedschaft

Akademien
Akademien sind Gelehrtengesellschaften zur Förderung der Wissenschaften, der Kunst und Kultur, sowie ihrer Erforschung. Sie sind keine Lehrinstitute, obwohl sie meist nach verschiedenen Fachrichtungen in Klassen organisiert sind. Ihre Arbeit vollzieht sich in gemeinsamen Sitzungen ihrer Mitglieder, während der die Forschungsergebnisse vorgetragen werden, die dann wiederum in Sitzungsberichten oder Abhandlungen veröffentlicht werden. Die Zahl ihrer lebenden Mitglieder ist in der Regel begrenzt, die jeweils durch Nachwahl und Neuberufung aufrechterhalten wird.

Politische Parteien
Nach  GG hat jeder das Recht, einer politischen Partei anzugehören. In der Praxis ist jedoch die Parteimitgliedschaft an bestimmte Bedingungen geknüpft (Alter, Zahlung eines Mitgliedbeitrages, keine Zugehörigkeit zu einer anderen politischen Partei). Grundsätzlich ist keine Partei verpflichtet, dem Aufnahmeantrag des Antragstellers nachzukommen. Eine bestehende Parteimitgliedschaft kann sowohl vom Mitglied als auch von der Partei beendet werden, wobei jedoch die Partei niemanden grundlos ausschließen kann (Parteiausschluss).

Parlamente
Abgeordnete des Deutschen Bundestages und der Landtage der Länder sind Mitglieder im Parlament ( AbgG). Sie verwenden auf offiziellen Briefen das Kürzel MdB bzw. MdL für Mitglied des Bundes-/Landtags.

In Österreich werden die Ländervertreter im Bundesrat nicht direkt gewählt und deshalb als Mitglieder des Bundesrates bezeichnet.

Religionsgemeinschaften
Nach  GG [Glaubens-, Gewissens- und Bekenntnisfreiheit] wird in Deutschland die ungestörte Religionsausübung gewährleistet. Das Vereinswesen wurde großenteils auf die christlichen Gemeinden (Kirchen) übertragen, die oftmals die äußere Form eines Vereins haben, aber öffentlich-rechtliche Religionsgesellschaften sind. Mitglied in einer christlichen Kirche wird man in der Regel durch die Taufe, häufig bereits als Kleinkind. Da ein Säugling bei der Taufe jedoch keine bewusste Entscheidung trifft, ist diese Form der Mitgliedschaft unfreiwillig. Sie kann vom Mitglied nur dann aufgehoben werden, wenn es die sogenannte Religionsmündigkeit erlangt hat, d. h. mindestens 14 Jahre alt ist. Andernfalls muss dies durch dessen Erziehungsberechtigten geschehen. Für Erwerbslose ist eine Mitgliedschaft in der Regel nicht mit Kosten verbunden, Erwerbstätige zahlen eine Kirchensteuer, die ihnen automatisch vom Gehalt abgezogen wird.

In der frühen Neuzeit war es mancherorts in reformierten und lutherischen Gemeinden üblich, von Reisenden und Neuzugezogenen ein Kirchenzeugnis zu verlangen, welches bestätigte, dass der Besitzer, auf den es namentlich ausgestellt war, bereits zuvor Mitglied einer protestantischen Gemeinde gewesen ist. Hierzu konnte eine Tauf- oder Heiratsurkunde dienen, aber auch eine vom Pfarrer der alten Gemeinde ausgestellte schriftliche Bestätigung, die dann im engeren Sinne als Kirchenzeugnis bezeichnet wurde.

Eine Mitgliedschaft in einer Freikirche erfolgt in der Regel durch freiwilligen Beitritt, sofern die Glaubenssätze der Kirche akzeptiert werden können. Die Aufnahme geschieht durch die Taufe. Einen verpflichtenden Mitgliedsbeitrag gibt es nicht, jedoch ist es üblich, den zehnten Teil seines Einkommens zu zahlen.

Religionsgemeinschaften können jedoch nicht verpflichtet werden, dem Antrag des Antragstellers nachzukommen. Eine Exkommunikation ist möglich, wenn das Mitglied gegen die geltenden Glaubenssätze lebt bzw. diese ablehnt.

Strafrecht
Ein in einer Tätergruppe handelnder Krimineller oder Terrorist kann nach deutschem Strafrecht als Mitglied einer kriminellen bzw. terroristischen Vereinigung gemäß ,  StGB bestraft werden. Andere Staaten kennen in ähnlicher Form den Straftatbestand der Mitgliedschaft in einer Verschwörung.

Vereine
Viele Personen sind Mitglied in einem Verein und üben ihre Rechte in der Mitgliederversammlung gemäß  Abs. 1 Satz 1 BGB aus. Dadurch zeigt das Vereinsmitglied seiner Umwelt, dass es seinen Verein und/oder seine Ziele unterstützt. Als Gegenleistung erhalten Vereinsmitglieder die Möglichkeit, zum Beispiel bei Sport- oder Musikvereinen, unter fachmännischer Aufsicht zu trainieren oder zu proben und in der Öffentlichkeit zu spielen bzw. aufzutreten. Mitglieder von Vereinen mit kulturellem Charakter wollen Traditionen aufrechterhalten und/oder verbreiten. Soziale Vereine und ihre Mitglieder wollen anderen helfen.

Genossenschaften
Die investierte Mitgliedschaft an einer Genossenschaft wurden 2006 zur Kapitalbeschaffung eingeführt und erfüllt den eigentlichen Förderzweck der Genossenschaft nicht, was laut Kritikern im Widerspruch zum Genossenschaftsgedanken steht. Investierte Mitglieder sehen die Genossenschaft als Finanzanlage.

Status

Ordentliche Mitglieder
Ordentliche Mitglieder sind Personen, die einem Organ (zum Beispiel Vorstand, Aufsichtsrat, Hauptversammlung oder Mitgliederversammlung) vollständig und mit Stimmrecht angehören. Daneben kann es "Mitglieder mit beratender Stimme" geben, also ohne das Recht, bei Abstimmungen oder Wahlen mitzuwirken. Ob Ehrenmitglieder zu den ordentlichen Mitgliedern gerechnet werden, wird unterschiedlich gehandhabt. In einigen Vereinigungen (z. B. Feuerwehr) werden aus dem aktiven Dienst ausgeschiedene ordentliche Mitglieder als passive Mitglieder bezeichnet, für die eigene Regelungen gelten.

Ordentliche Mitglieder im Deutschen Bundestag
Die Bezeichnung ordentliches Mitglied wird beispielsweise für Abgeordnete des Deutschen Bundestags verwendet in Bezug auf die Ausschüsse, wobei ordentliche Mitglieder in den einzelnen Ausschüssen ein Stimmrecht haben und ihm ständig angehören. Die stellvertretenden Mitglieder hingegen gehören dem Ausschuss nur an, wenn ein ordentliches Mitglied verhindert ist oder ausscheidet.

Fördermitglieder
Fördermitglieder sind natürliche oder juristische Personen, die unter bestimmten Voraussetzungen einer Körperschaft wie einem Verein angehören. Es gibt keine festgelegten Definitionen für Rechte und/oder Pflichten von Fördermitgliedern, sodass diese von jeder Körperschaft selbst festzulegen sind (bspw. in der Vereinssatzung). Typischerweise zahlen Fördermitglieder verpflichtend Mitgliedsbeiträge, erhalten im Gegensatz zu ordentlichen Mitgliedern aber kein Stimm- und/oder kein Wahlrecht.

Korrespondierende Mitglieder
"Korrespondierende Mitglieder" sind üblicherweise Mitglieder, die entweder den formalen Kriterien einer ordentlichen Mitgliedschaft nicht genügen, beispielsweise als auswärtige Mitglieder, oder durch eine korrespondierende Mitgliedschaft geehrt wurden. So vergibt der Verein Deutscher Ingenieure die Korrespondierende Mitgliedschaft an ausländische Ingenieure oder Vertreter nicht technischer Fachgebiete, die sich in besonderer Weise um die technisch-wissenschaftliche Gemeinschaftsarbeit des Vereins verdient gemacht haben.

Mitglieder von Amts wegen
Ein Mitglied von Amts wegen ist eine Person, die allein deshalb Mitglied des Gremiums wird, weil sie eine bestimmte Stellung außerhalb des Gremiums innehat.

So sind etwa die Mitglieder des Deutschen Bundestages von Amts wegen auch Mitglieder der Bundesversammlung, die den Bundespräsidenten wählt. Zusätzlich werden ebenso viele Mitglieder der Bundesversammlung von den Volksvertretungen der Länder gewählt.

Mitglieder von Amts wegen werden manchmal als geborene Mitglieder bezeichnet. Das ist ungenau; in manchem Adelsverein kann man durch Geburt Mitglied werden. Mit dem alten Wort küren (für wählen) kann man von geborenen und gekorenen Mitgliedern sprechen.

Investierte Mitglieder
Investierte Mitglieder treten einer Gemeinschaft primär mit einer Gewinnerzielungsabsicht bei, der eigentliche Zweck der Gemeinschaft steht nicht oder kaum im Vordergrund. Eine Organisation kann sich über investierte Mitglieder Kapital beschaffen, um dieses für ihre Zwecke einsetzen zu können. Wohnungsbaugenossenschaften bedienen sich investierter Mitglieder, um ihren wohnungswirtschaftlichen Zweck besser erfüllen zu können. Vereinsmitglieder, die einem Verein lediglich aus Prestigegründen beitreten und den Verein dadurch mit Kapital oder Beitragseinnahmen ausstatten, könnte man auch als investiertes Mitglied bezeichnen.

Trivia
 Von der grammatisch neutralen Sachbezeichnung das Mitglied finden sich gelegentlich falsch abgeleitete Wortformen wie Mitgliederinnen oder Liebe Mitgliederin, um sich auf Frauen zu beziehen. Die Gesellschaft für deutsche Sprache nennt solche geschlechtsspezifischen Ableitungen von geschlechtsindifferenten Personenbezeichnungen "bewusst überspitztes Gendern" (auch falsch: Personin, Menschin). Von geschlechtsneutralen Oberbegriffen können keine weiblichen (oder männlichen) Formen gebildet werden, weil sie aus sich heraus generisch sind und Personen beliebigen Geschlechts bezeichnen können (Sexus-indifferent). Die Pluralendung -er des grammatisch neutralen Substantivs Mitglied hat nichts mit der Endung -er eines maskulinen Nomen Agentis, also einer aus einem Verb abgeleiteten Personenbezeichnung (malen → der Maler / die Malerin), zu tun. Weil der Wortbestandteil "Glied" aber auch die Bezeichnung für das männliche Geschlechtsteil ist (siehe Penis des Menschen) und die Assoziation "mit Glied" anklingen lasse, wurde in feministischen Kreisen manchmal Mitklit ("mit Klitoris") als gegenderte Form für Frauen vorgeschlagen.

Anfang 2018 war die ARD-Moderatorin Anne Will in ihrer Talk-Sendung Anne Will mit der Wortbildung Mitgliederinnen aufgefallen. Auch aktuell findet sich diese Wortschöpfung in zahlreichen Dokumenten und Artikeln, beispielsweise im Februar 2020: "Liebe Mitgliederinnen und Mitglieder von Hertha BSC". Ein früher Gebrauch ist bereits für 2011 nachgewiesen, als beispielsweise die Bild-Zeitung bewusst über die Mitgliederinnen ihres Leserbeirats berichtete und selbst der Deutsche Germanistenverband die Form zur Ansprache seiner Mitglieder verwendete.

Literatur
 Stiftung für Zukunftsfragen: Immer mehr Vereine – immer weniger Mitglieder: Das Vereinswesen in Deutschland verändert sich. In: Forschung Aktuell. Jahrgang 35, Nr. 254, 16. April 2014 (online auf stiftungfuerzukunftsfragen.de).

Weblinks

 Bundesverband der Vereine und des Ehrenamtes: Vereine in Deutschland. In: bundesverband.bvve.de.
 Elizabeth Grenier: Meet the Germans: Die Deutschen und ihre Vereine. In: Deutsche Welle. 1. Mai 2019 ("Sportclubs, Umweltschutzorganisationen: Wer in Deutschland wohnt, kommt um Vereine nicht herum").
 Frida Thurm: Vereinsterben: Deutschlands Vereine sind auf Landflucht. In: Die Zeit. 5. September 2018 ("Kegeln oder Klimaschutz? Während in der Stadt viele Vereine gegründet werden, schließen sie in den Dörfern oft, zeigt eine Studie").

Einzelnachweise

Soziologie
Vereinswesen
Planung und Organisation

redpajama_set_name: RedPajamaWikipedia


text:
Daily/Weekly Schedule
MSPR Programs
A Time For Tales
Big Band Boulevard
Bluegrass Railroad
Bluegrass Sunday
Grant Alden's Field Notes
Live From The Jazz Lounge
Mountain Edition
Muddy Bottom Blues
Nothin' But The Blues
Odd Numbers
Reader's Notebook
Sounds of Our Heritage
Sunday Night Jazz Showcase
That Was Radio
Newscast Schedule
Feature Reports
NPR Ethics Handbook
Member Comments Form
About MSPR
Instructions for Submitting an Event to WMKY
Contests, Giveaways, Lotteries and Raffles Policy
WMKY Commentary & Essay Guidelines
Station Awards History
Student Awards History
CPB Station Activities Report
Related Program:
A Louisiana clinic struggles to absorb the surge created by Texas' new abortion law
By Sarah McCammon, Lauren Hodges & Jonaki Mehta • Oct 7, 2021
In Shreveport, La., the Hope Medical Group for Women is reporting more patients from nearby Texas after the passage of that state's Senate Bill 8.
Sarah McCammon / NPR
Originally published on October 8, 2021 8:27 am
The day before a federal judge blocked enforcement of Texas' restrictive new abortion law, the parking lot of Hope Medical Group for Women in Shreveport, La., was filled with Texas license plates. Women held the door open as the line spilled out onto the sidewalk and into the grass.
"I drove 6 hours and 58 minutes," said M. from Corpus Christi, who didn't want to give her full name for privacy reasons. "I got here at 8:55 a.m. this morning. So I have not ate, we can't bring in anything to drink. My boyfriend's in the car asleep."
M. is 20 years old and a college student. She says she worked double shifts at her service job all weekend to be able to afford the trip.
"Whenever we found out [about the pregnancy] ... I was five weeks and five days," she said. "So I was like, OK, I can, I'm under six weeks and everything. But it had a heartbeat." Under Texas Senate Bill 8, no clinic in the state could perform an abortion at that point in the pregnancy.
So she and her boyfriend told her family they were taking "a little trip" and drove through the night to make her first consultation at Hope Medical. She says her parents wouldn't support her decision, but she knows it's the right one for her.
"I feel like right now, I feel like I'm so mentally unstable, financially unstable," M. said. "It was really, really a hard decision. I just feel like it would have been a really big life-changing thing that I don't think that I could possibly get through right now."
Louisiana law also sets strict abortion requirements
For Texas women like M., Louisiana has become an unlikely backup plan for abortion services. And no one is more surprised than Hope Medical Clinic Administrator Kathaleen Pittman. Between answering a phone that scarcely stopped ringing all morning, Pittman said fighting for reproductive rights in Louisiana is a constant struggle.
"It's kind of ironic, really," she said. "Because aside from SB 8, our regulations are so horrific."
Currently, Louisiana law allows surgical abortion up to 20 weeks (5 months) into a pregnancy. The state also requires mandatory ultrasounds, state-directed counseling that may discourage an abortion and a 24-hour wait period before the procedure can be performed — a procedure which requires two separate appointments.
"We're doing a lot of reshuffling and trying to rearrange," she says. "We've increased our hours on consult days to try to accommodate as much as we can."
The same week SB 8 was enacted, Hurricane Ida was slamming into Louisiana's southern coast. Clinics in New Orleans and Baton Rouge were closed for several weeks, causing increased demand for Pittman and her staff. And they're still struggling to absorb the surge, especially as Texas clinics figure out what they can do.
"The Texas law does have the provision that people can sue abortion providers retroactively, even if the law is temporarily suspended, like it is now," said Michelle Erenberg, executive director of Lift Louisiana, a nonprofit that advocates for abortion access. "So I think that may make it difficult for some clinics and some providers to feel confident in starting to provide care to people that have pregnancies past the sixth week."
SB 8 allows individuals to file lawsuits against abortion providers or anyone else involved in illegal abortions in Texas. Penalties for violations start at $10,000. And that provision has made this law more difficult to challenge because it's harder to know who to target with pre-emptive legal action — since anyone can sue.
For now, this federal decision basically instructs state officials to have nothing to do with enforcing SB 8. The state of Texas said it would appeal.
Meanwhile, calls to several clinics in Texas had long wait times and a hold message stating that they were still complying with SB 8.
"Our facility will not be able to provide abortions to patients who have pregnancies with detectable embryonic or fetal cardiac activity, which typically starts at 6 weeks from the person's last menstrual period," says the automated message for Southwestern Women's Surgery Center in Dallas.
Traveling far for an abortion increases financial burdens
Sherie, a nurse at Hope Medical who is also not sharing her full name for privacy and legal reasons, says she sees the whole thing as an "unnecessary hardship" for so many families, especially if they have to travel a long distance.
"I don't know how they're doing this," Sherie said. "Because the payment itself is a great big lump sum of money. This is people's rent, their car payment, might be their groceries for the month, having to take off work, the travel, the expense."
And the stigma around abortion can be both emotionally and financially straining. Sherie says a lot of fathers can't or won't contribute to the cost. Like M., families can be unsupportive or just totally in the dark. So without the option to ask loved ones for help, many people take out pricey loans or sell personal belongings.
Even then, Louisiana's own strict abortion laws means the clinic can't help everyone. An available appointment may be too late for the 20-week mark. And in a state that consistently faces some of the highest poverty and maternal mortality rates in the country, the prospect of continuing a pregnancy is more than just inconvenient.
Sherie, the nurse, was herself a patient at this clinic 30 years ago. She said she can't imagine what she would have done if Hope Medical hadn't been able to help her then. So she feels the patients' pain when she has to tell them they can't get the procedure.
"To see the look on their faces — it's tough," Sherie said. "Sometimes you just want to cry with them."
Hope clinicians said that one of the most urgent concerns when talking to a desperate patient is making sure they don't resort to anything dangerous. Pittman says she's always worried that women may hurt themselves or try dangerous methods of self-induced abortion.
But the widest-reaching result of these legal hurdles and restrictions, she said, is that a lot of children will be born to parents who can't afford or aren't ready to raise them.
"My biggest concern is the extreme poverty we will see," she said. "If people can't access care one way or the other, they're going to have larger families that they struggle to take care of."
As M. headed into the clinic for her appointment, she said she knows her family will have questions when she and her boyfriend return home in a couple of days. "Then again, it's just like, I kind of live my own life already," she said, more to herself than anyone else.
That choice is exactly what Pittman said she is working hard to protect. And even with the legal stay of SB 8, she said there's always a dark cloud hanging over her work.
As her phone continued to ring with hopeful patients from both Texas and her hurricane-ravaged home state, she turned and read aloud a poster hanging on her office wall. An artist made it for her a few years ago, quoting Pittman herself:
"The coastline of Louisiana is not eroding nearly as fast as a woman's right to choose her own outcome."
For the past five weeks, most people seeking abortions in Texas have had no option but to travel out of state. Last night, in response to a request from the Biden administration, a federal judge blocked SB 8. That law banned abortions after about six weeks of pregnancy. That's before many women even know they're pregnant. NPR's Sarah McCammon is in Shreveport, La., where many Texans have been traveling to an abortion clinic just over the state line. One patient from Texas allowed us to sit in while she talked with one of the clinic's patient advocates.
SARAH MCCAMMON, BYLINE: Any nervousness, anxiety towards the process?
GABBY: I think my nervousness that I have comes just from ignorance at the moment...
MCCAMMON: OK.
GABBY: ...Because I don't know, like, what the procedure entails. Also, I'm traveling, too. So that's another thing that I'm also, like...
MCCAMMON: OK, yes.
GABBY: ...Kind of unsure.
MCCAMMON: Going through something you've never been through before.
GABBY: Yeah.
MCCAMMON: This is a whole process. This has already been more of a process than you should have to deal with.
CHANG: Sarah McCammon joins us now from Shreveport. Hi, Sarah.
MCCAMMON: Hi, Ailsa.
CHANG: So I want to talk about what you have been hearing from people at the clinic this week. But first, can you just very briefly explain what does this new order do exactly?
MCCAMMON: Well, at least for now, it blocks SB 8. In his decision, federal Judge Robert Pittman writes that women have been prevented by this law from exercising their constitutional rights. He says, quote, "this court will not sanction one more day of this offensive deprivation of such an important right." Now, the state of Texas said very quickly that it's appealing that decision. So reproductive rights advocates say while this is a victory for them, it may be a temporary one.
CHANG: Right. OK, so as long as this restraining order is in place, can abortion clinics in Texas just go back to the way things were and start offering abortions to people who are more than six weeks pregnant?
MCCAMMON: It's not quite that simple. A spokeswoman for Whole Women's Health, which operates four clinics in Texas, says they're trying to restore abortion services up to 18 weeks as soon as possible, but that will not happen right away. There are a lot of uncertainties right now. Michelle Erenberg is with a reproductive rights advocacy group here in Louisiana called Lift Louisiana, and she says it's partly because of the way the Texas law is written.
MICHELLE ERENBERG: The Texas law does have a provision that people can sue abortion providers retroactively if the law is temporarily suspended like it is now. I think that may make it difficult for some clinics and some providers to feel confident in starting to provide care to people that have pregnancies past the sixth week.
MCCAMMON: So that's one of several issues reproductive rights lawyers are sorting through.
CHANG: Right - so much to sort through. OK, so what does all of this ultimately mean for patients in Texas right now?
MCCAMMON: Well, the reality on the ground is about like it was before. For many women, the only option has been to travel to neighboring states like Louisiana. We spent the past couple of days in Shreveport, La., reporting on the impact of this law at a clinic here, about 25 minutes from the Texas border. That clinic is called Hope Medical Group for Women, and I visited yesterday.
I'm outside the Hope clinic now, and patients are coming in. They're lining up, really, out the door. And just looking around the parking lot, it's full of Texas license plates. I'm just looking here - Texas, Texas - a couple of cars, I can't see their plates - Texas again, Texas, Texas. Here's one from Louisiana. Here's another from Louisiana, another Texas. The vast majority of people here are from Texas.
Gabby, a patient who asked us to use just her first name to protect her privacy, came here from Austin. She says she found out she was pregnant just as SB 8 was about to take effect.
GABBY: The end of August, like, right at the beginning of September is around the time that I found out. I think around, like, the 26 or the 28 of August is when I took, like, an at-home test.
MCCAMMON: Just a few days later, starting on September 1, SB 8 banned abortion in Texas after any type of early cardiac activity could be detected, usually around six weeks or so. By the time a woman realizes she's pregnant, it's often too late under the law. Gabby says she started calling clinics in neighboring states until she could get an appointment at the Hope clinic. She drove close to three hours from Austin to Houston a couple of days ago to meet a friend, and they made the four-hour trip to Shreveport early yesterday morning. Another patient, a 20-year-old from Corpus Christi, asked us to call her by her middle initial, M, because her family doesn't know why she's here.
M: Whenever we found out, I was five weeks and five days. So I was like, OK, I can - I'm under six weeks and everything, but I had a heartbeat. So I was not able to do it anywhere, and I was scared. I feel like - right now I feel like I'm so mentally unstable, financially unstable. I just - it was really, really a hard decision.
MCCAMMON: The clinic's administrator is Kathaleen Pittman - no relation to Judge Robert Pittman.
KATHALEEN PITTMAN: Hope Medical. This is Kathaleen. May I help you?
MCCAMMON: She says it's been all hands on deck the past few weeks trying to take calls from women in Texas while still meeting the needs of patients here in Louisiana.
PITTMAN: We've gone from scheduling women who are, say, in a 200-mile radius to much further out. So we're doing a lot of reshuffling and trying to rearrange with increased hours on consult days to try to accommodate as much as we can.
MCCAMMON: As one of a shrinking number of clinics providing abortions in the region, Hope Medical has long served a large area. Pittman estimates about 2 in 10 patients normally come from Texas, but now it's well over half. And Planned Parenthood's clinics in neighboring states are also reporting an influx. Even if patients can get an appointment, Pittman says the cost of traveling out of state is insurmountable for some.
PITTMAN: The problem there is most of the women we normally serve don't have the means for all this travel since some women, unfortunately, will be bearing children that they cannot afford and were not ready to have.
(SOUNDBITE OF TELEPHONE RINGING)
MCCAMMON: Gabby is between jobs right now, but she's spending more than a thousand dollars - money she saved from her last job as a bartender.
GABBY: Between 7 and 900 for the procedure. Traveling - honestly, like, that's probably about 80 to a hundred and twenty bucks. Hotel is about a hundred bucks for the night that I'm here. That's not including if I have to stay longer.
MCCAMMON: Gabby says she's grateful she has the money, and she's worried about women who don't. M, the patient from Corpus Christi, told NPR producer Lauren Hodges that she was determined to find a way here because she's sure she's not ready to be a parent.
M: I drove six hours and 58 minutes, so I got here at 8:55 this morning. So I haven't even checked into my hotel yet. My boyfriend's in the car, asleep.
MCCAMMON: Was it hard coming up with the money to come all the way out here? That's such a long trip.
M: Yeah. I had to work. Well, I'm a college student, so I had to work doubles throughout the weekend because that's the only time I can work.
MCCAMMON: Some get help with the cost from abortion funds set up to help lower-income patients. But there's often more to figure out than just the money. M says she's worried about what her family might ask when she gets home from what she told them was just a little trip. That's a concern for many patients, says Cherie, a nurse at the clinic who asked us to call her by her middle name to protect her safety.
CHERIE: And they're having to say, I need you to watch my children for me for a few days. How do you explain that? What do you do? Your family's going to be suspicious.
MCCAMMON: Louisiana state law requires patients to wait at least 24 hours between their first consultation at the clinic and the procedure itself, further prolonging the time away. Cherie tries to offer as much support as she can. She tells the women about the abortion she had here at this very clinic about 30 years ago. Some come in and find out they're already past 16 weeks, the latest doctors at Hope will perform an abortion.
CHERIE: To see the look on their faces - you know, it's tough. You know, sometimes you just want to cry with them.
MCCAMMON: Kathaleen Pittman says between restrictive abortion laws and an increasingly conservative judiciary, this work has gotten more difficult over the three decades she's been here. She reads from a poster on her wall made by an artist who was quoting Pittman herself.
PITTMAN: The coastline of Louisiana is not eroding nearly as fast as a woman's right to determine her own outcome.
MCCAMMON: She says it's ironic that Louisiana, a state with a history of restrictive abortion laws, has become a place where women flock to exercise that right. Not long ago, this clinic was at the center of its own case before the U.S. Supreme Court, challenging a state law imposing new requirements on abortion providers which threaten to shut down clinics like hers. The court overturned that law, but Pittman says she knew the larger fight was far from over.
PITTMAN: I never thought it would get easier. I thought I would have more breathing room before it got worse.
MCCAMMON: The Supreme Court is set to hear a case from another neighboring state, Mississippi, later this year, which could further erode abortion rights.
UNIDENTIFIED PERSON: I'm sorry.
PITTMAN: No, you're good.
MCCAMMON: But when we went back to the clinic this morning, Pittman was feeling cautiously optimistic.
PITTMAN: The birds are chirping louder than usual this morning, it seemed. I was like - I woke up, and I was, like, in a good mood.
MCCAMMON: So you are feeling good about this.
PITTMAN: For now, yes. I'll take what I can when I can. You know, it's so rare for us to get good news.
MCCAMMON: But Pittman says nothing is changing today. She's still taking lots of calls and making no plans to scale back to normal hours.
You've been in this position before of waiting forever.
PITTMAN: Correct. Yes.
MCCAMMON: Have you not? I mean, how does this limbo feel?
PITTMAN: I'm afraid to say this, but almost normal because that is how providers spend their lives - in limbo, in a wait-and-see mode for so much of the care we provide. So it's almost normal. I would love to go back to a world where we can concentrate on simply providing care and not worrying about the latest judgment or the latest law.
MCCAMMON: Gabby, the patient from Austin, says she worries about other states taking cues from Texas.
GABBY: That's the very sad world, like, women live in that we have to experience and be challenged with. It's frustrating, you know?
MCCAMMON: Gabby says nothing has changed for her, either. After the decision was announced last night, she texted to say she's happy that other women in Texas could have the opportunities she didn't, and she was planning to move forward with her procedure today.
Sarah McCammon, NPR News, Shreveport, La.
(SOUNDBITE OF PHIL FRANCE'S "THE SWIMMER") Transcript provided by NPR, Copyright NPR.
© 2021 WMKY
WMKY Financial Statement
WMKY Station Activities Report
WMKY Quarterly Issues & Program Reports
FCC Form 990 and EEO Report


text:
Q: How to order, group, mutate in data.table? I am new to data.table & trying to replicate some dplyr code but not getting same results when I mutate columns.
libs
library(data.table)
library(lubridate)
library(tidyverse)

df
test_df <- data.frame(id = c(1234, 1234, 5678, 5678),
           date = c("2021-10-10","2021-10-10", "2021-8-10", "2021-8-15"),
           Amount  = c(54767, 96896, 34534, 79870)) %>%

  mutate(date = ymd(date))

dplyr code:
test_df %>%
  group_by(id) %>%
  arrange(date) %>%
  mutate(Amt_first = first(Amount),
         Amt_last = last(Amount)) %>%
  ungroup()

results:
# A tibble: 4 x 5
     id date       Amount Amt_first Amt_last
  <dbl> <date>      <dbl>     <dbl>    <dbl>
1  5678 2021-08-10  34534     34534    79870
2  5678 2021-08-15  79870     34534    79870
3  1234 2021-10-10  54767     54767    96896
4  1234 2021-10-10  96896     54767    96896

data.table attempt (returns me nothing):
setDT(test_df)[order(date),
             `:=`(Amt_first = data.table::first(Amount),
                   Amt_last = data.table::last(Amount)),
             by = id]

I am not sure what is wrong, it seems its not selecting any columns but I as am mutating columns so ideally it should return all the columns.

A: This is described in data.table's FAQ - 2.23.
You just need to add an extra [] at the end of your code:
setDT(test_df)[order(date),
             `:=`(Amt_first = data.table::first(Amount),
                   Amt_last = data.table::last(Amount)),
             by = id][]

     id       date Amount Amt_first Amt_last
1: 1234 2021-10-10  54767     54767    96896
2: 1234 2021-10-10  96896     54767    96896
3: 5678 2021-08-10  34534     34534    79870
4: 5678 2021-08-15  79870     34534    79870


text:
```js
var Minio = require('minio')

var minioClient = new Minio.Client({
    endPoint: 'play.minio.io',
    port: 9000,
    secure: true,
    accessKey: 'Q3AM3UQ867SPQQA43P2F',
    secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG'
});
```

## AWS S3

```js
var Minio = require('minio')

var s3Client = new Minio.Client({
    endPoint:  's3.amazonaws.com',
    accessKey: 'YOUR-ACCESSKEYID',
    secretKey: 'YOUR-SECRETACCESSKEY'
})
```
| Bucket operations       | Object operations      | Presigned operations | Bucket Policy & Notification operations |
| ------------- |-------------| -----| ----- |
| [`makeBucket`](#makeBucket)    | [`getObject`](#getObject) | [`presignedUrl`](#presignedUrl) | [`getBucketNotification`](#getBucketNotification) |
| [`listBuckets`](#listBuckets)  | [`getPartialObject`](#getPartialObject)    |   [`presignedGetObject`](#presignedGetObject) | [`setBucketNotification`](#setBucketNotification) |
| [`bucketExists`](#bucketExists) | [`fGetObject`](#fGetObject)    |    [`presignedPutObject`](#presignedPutObject) | [`removeAllBucketNotification`](#removeAllBucketNotification) |
| [`removeBucket`](#removeBucket)      | [`putObject`](#putObject) |    [`presignedPostPolicy`](#presignedPostPolicy) | [`getBucketPolicy`](#getBucketPolicy) |  |
| [`listObjects`](#listObjects) | [`fPutObject`](#fPutObject)   |   |   [`setBucketPolicy`](#setBucketPolicy)
| [`listObjectsV2`](#listObjectsV2) | [`copyObject`](#copyObject) | | [`listenBucketNotification`](#listenBucketNotification)|
| [`listIncompleteUploads`](#listIncompleteUploads) |  [`statObject`](#statObject) |
|     |  [`removeObject`](#removeObject)    |
|  | [`removeIncompleteUpload`](#removeIncompleteUpload)  |

## 1.  Constructor

###  new Minio.Client ({endPoint, port, secure, accessKey, secretKey})

|     |
| ---- |
|``new Minio.Client ({endPoint, port, secure, accessKey, secretKey})``|
|Initializes a new client object.|

__Parameters__

| Param  | Type  | Description  |
|---|---|---|
| `endPoint`  |  _string_ | endPoint is a host name or an IP address. |
| `port` | _number_  | TCP/IP port number. This input is optional. Default value set to 80 for HTTP and 443 for HTTPs. |
|`secure`    | _bool_    |If set to true, https is used instead of http. Default is true. |
|`accessKey`   | _string_   |accessKey is like user-id that uniquely identifies your account. |
|`secretKey`  |  _string_   | secretKey is the password to your account.|
|`region`    | _string_  |Set this value to override region cache. (Optional)|
|`transport`    | _string_  |Set this value to pass in a custom transport. (Optional)|
|`sessionToken`    | _string_  |Set this value to provide x-amz-security-token (AWS S3 specific). (Optional)|

__Example__

## Create client for Minio

```js
var Minio = require('minio')

var minioClient = new Minio.Client({
    endPoint: 'play.minio.io',
    port: 9000,
    secure: true,
    accessKey: 'Q3AM3UQ867SPQQA43P2F',
    secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG'
});
```

## Create client for AWS S3

```js
var Minio = require('minio')

var s3Client = new Minio.Client({
    endPoint:  's3.amazonaws.com',
    accessKey: 'YOUR-ACCESSKEYID',
    secretKey: 'YOUR-SECRETACCESSKEY'
})
```

## 2. Bucket operations

### makeBucket(bucketName, region[, callback])

Creates a new bucket.

__Parameters__

| Param  | Type  | Description  |
|---|---|---|
|`bucketName`  | _string_  | Name of the bucket. |
| `region`  |  _string_ | Region where the bucket is created. This parameter is optional. Default value is us-east-1. |
|`callback(err)`  |_function_   | Callback function with `err` as the error argument. `err` is null if the bucket is successfully created. If no callback is passed, a `Promise` is returned. |

__Example__

```js
minioClient.makeBucket('mybucket', 'us-east-1', function(err) {
  if (err) return console.log('Error creating bucket.', err)
  console.log('Bucket created successfully in "us-east-1".')
})
```

### listBuckets([callback])

Lists all buckets.

__Parameters__

| Param  | Type  | Description  |
|---|---|---|
|`callback(err, bucketStream) `  | _function_  | Callback function with error as the first argument. `bucketStream` is the stream emitting bucket information. If no callback is passed, a `Promise` is returned. |

bucketStream emits Object with the format:-

| Param  | Type  | Description  |
|---|---|---|
|`bucket.name`  | _string_ |bucket name |
|`bucket.creationDate`| _Date_ |date when bucket was created.  |

__Example__

```js
minioClient.listBuckets(function(err, buckets) {
  if (err) return console.log(err)
  console.log('buckets :', buckets)
})
```

#### bucketExists(bucketName, callback)

Checks if a bucket exists.

__Parameters__

| Param  | Type  | Description  |
|---|---|---|
| `bucketName`  |  _string_ | Name of the bucket.  |
| `callback(err, exists)`  | _function_  | `exists` is a boolean which indicates whether `bucketName` exists or not. `err` is set when an error occurs during the operation. |

__Example__

```js
minioClient.bucketExists('mybucket', function(err, exists) {
  if (err) {
    return console.log(err)
  }
  if (exists) {
    return console.log('Bucket exists.')
  }
})
```

### removeBucket(bucketName[, callback])

Removes a bucket.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  | _string_  | Name of the bucket.  |
| `callback(err)`  | _function_  |  `err` is `null` if the bucket is removed successfully. If no callback is passed, a `Promise` is returned. |

__Example__

```js
minioClient.removeBucket('mybucket', function(err) {
  if (err) return console.log('unable to remove bucket.')
  console.log('Bucket removed successfully.')
})
```

### listObjects(bucketName, prefix, recursive)

Lists all objects in a bucket.

__Parameters__

| Param | Type | Description |
| ---- | ---- | ---- |
| `bucketName` | _string_ | Name of the bucket. |
| `prefix`  | _string_  |  The prefix of the objects that should be listed (optional, default `''`). |
| `recursive`  | _bool_  | `true` indicates recursive style listing and `false` indicates directory style listing delimited by '/'. (optional, default `false`).  |

__Return Value__

| Param | Type | Description |
| ---- | ---- | ---- |
| `stream` | _Stream_ | Stream emitting the objects in the bucket. |

The object is of the format:

| Param | Type | Description |
| ---- | ---- | ---- |
| `obj.name` | _string_ | name of the object. |
| `obj.prefix` | _string_ | name of the object prefix. |
| `obj.size` | _number_ | size of the object. |
| `obj.etag` | _string_ |etag of the object. |
| `obj.lastModified` | _Date_ | modified time stamp. |

__Example__

```js
var stream = minioClient.listObjects('mybucket','', true)
stream.on('data', function(obj) { console.log(obj) } )
stream.on('error', function(err) { console.log(err) } )
```

### listObjectsV2(bucketName, prefix, recursive)

Lists all objects in a bucket using S3 listing objects V2 API

__Parameters__

| Param | Type | Description |
| ---- | ---- | ---- |
| `bucketName` | _string_ | Name of the bucket. |
| `prefix`  | _string_  |  The prefix of the objects that should be listed (optional, default `''`). |
| `recursive`  | _bool_  | `true` indicates recursive style listing and `false` indicates directory style listing delimited by '/'. (optional, default `false`).  |

__Return Value__

| Param | Type | Description |
| ---- | ---- | ---- |
| `stream` | _Stream_ | Stream emitting the objects in the bucket. |

The object is of the format:

| Param | Type | Description |
| ---- | ---- | ---- |
| `obj.name` | _string_ | name of the object. |
| `obj.prefix` | _string_ | name of the object prefix. |
| `obj.size` | _number_ | size of the object. |
| `obj.etag` | _string_ |etag of the object. |
| `obj.lastModified` | _Date_ | modified time stamp. |

__Example__

```js
var stream = minioClient.listObjectsV2('mybucket','', true)
stream.on('data', function(obj) { console.log(obj) } )
stream.on('error', function(err) { console.log(err) } )
```

### listIncompleteUploads(bucketName, prefix, recursive)

Lists partially uploaded objects in a bucket.

__Parameters__

| Param  |  Type | Description  |
| ---| ---|---|
| `bucketname`  | _string_  |  Name of the bucket. |
| `prefix`  | _string_  | Prefix of the object names that are partially uploaded. (optional, default `''`)  |
| `recursive`  | _bool_  | `true` indicates recursive style listing and `false` indicates directory style listing delimited by '/'. (optional, default `false`).  |

__Return Value__

| Param  |  Type | Description  |
| ---| ---|---|
| `stream`  | _Stream_  |  Emits objects of the format listed below:|

| Param  |  Type | Description  |
| ---| ---|---|
| `part.key`  | _string_  | name of the object.|
| `part.uploadId`  | _string_  | upload ID of the object.|
| `part.size`  | _Integer_  | size of the partially uploaded object.|

__Example__

```js
var Stream = minioClient.listIncompleteUploads('mybucket', '', true)
Stream.on('data', function(obj) {
  console.log(obj)
})
Stream.on('end', function() {
  console.log('End')
})
Stream.on('error', function(err) {
  console.log(err)
})
```

## 3.  Object operations

### getObject(bucketName, objectName[, callback])

Downloads an object as a stream.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
|`bucketName` | _string_ | Name of the bucket. |
|`objectName` | _string_ | Name of the object. |
|`callback(err, stream)` | _function_ | Callback is called with `err` in case of error. `stream` is the object content stream. If no callback is passed, a `Promise` is returned. |

__Example__

```js
var size = 0
minioClient.getObject('mybucket', 'photo.jpg', function(err, dataStream) {
  if (err) {
    return console.log(err)
  }
  dataStream.on('data', function(chunk) {
    size += chunk.length
  })
  dataStream.on('end', function() {
    console.log('End. Total size = ' + size)
  })
  dataStream.on('error', function(err) {
    console.log(err)
  })
})
```

### getPartialObject(bucketName, objectName, offset, length[, callback])

Downloads the specified range bytes of an object as a stream.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
|  `bucketName` | _string_  | Name of the bucket.  |
| `objectName`   | _string_  | Name of the object.  |
| `offset`   | _number_  | `offset` of the object from where the stream will start.  |
| `length`  | _number_  | `length` of the object that will be read in the stream (optional, if not specified we read the rest of the file from the offset).  |
|`callback(err, stream)` | _function_  | Callback is called with `err` in case of error. `stream` is the object content stream. If no callback is passed, a `Promise` is returned. |

__Example__

```js
var size = 0
// reads 30 bytes from the offset 10.
minioClient.getPartialObject('mybucket', 'photo.jpg', 10, 30, function(err, dataStream) {
  if (err) {
    return console.log(err)
  }
  dataStream.on('data', function(chunk) {
    size += chunk.length
  })
  dataStream.on('end', function() {
    console.log('End. Total size = ' + size)
  })
  dataStream.on('error', function(err) {
    console.log(err)
  })
})
```

### fGetObject(bucketName, objectName, filePath[, callback])

Downloads and saves the object as a file in the local filesystem.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  | _string_   | Name of the bucket.  |
| `objectName`  |_string_   | Name of the object.  |
| `filePath`  |  _string_ | Path on the local filesystem to which the object data will be written.  |
| `callback(err)`  | _function_  | Callback is called with `err` in case of error. If no callback is passed, a `Promise` is returned. |

__Example__

```js
var size = 0
minioClient.fGetObject('mybucket', 'photo.jpg', '/tmp/photo.jpg', function(err) {
  if (err) {
    return console.log(err)
  }
  console.log('success')
})
```

### putObject(bucketName, objectName, stream, size, contentType[, callback])

Uploads an object from a stream/Buffer.

##### From a stream

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  |_string_   | Name of the bucket.  |
| `objectName`  |_string_   | Name of the object.  |
| `stream`  | _Stream_  |Readable stream.   |
|`size`   | _number_  | Size of the object (optional).  |
|`contentType`   | _string_  | Content-Type of the object (optional, default `application/octet-stream`).  |
| `callback(err, etag)` | _function_ | Non-null `err` indicates error, `etag` _string_ is the etag of the object uploaded. If no callback is passed, a `Promise` is returned. |

__Example__

The maximum size of a single object is limited to 5TB. putObject transparently uploads objects larger than 5MiB in multiple parts. This allows failed uploads to resume safely by only uploading the missing parts. Uploaded data is carefully verified using MD5SUM signatures.

```js
var Fs = require('fs')
var file = '/tmp/40mbfile'
var fileStream = Fs.createReadStream(file)
var fileStat = Fs.stat(file, function(err, stats) {
  if (err) {
    return console.log(err)
  }
  minioClient.putObject('mybucket', '40mbfile', fileStream, stats.size, function(err, etag) {
    return console.log(err, etag) // err should be null
  })
})
```

##### From a "Buffer" or a "string"

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  |_string_   | Name of the bucket.  |
| `objectName`  |_string_   | Name of the object.  |
|`string or Buffer`   | _Stream_ or _Buffer_  |Readable stream.   |
| `contentType`  | _string_   | Content-Type of the object (optional, default `application/octet-stream`).  |
| `callback(err, etag)`  | _function_  |Non-null `err` indicates error, `etag` _string_ is the etag of the object uploaded.   |

__Example__

```js
var buffer = 'Hello World'
minioClient.putObject('mybucket', 'hello-file', buffer, function(err, etag) {
  return console.log(err, etag) // err should be null
})
```

### fPutObject(bucketName, objectName, filePath, contentType[, callback])

Uploads contents from a file to objectName.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  | _string_  | Name of the bucket.  |
|`objectName`   |_string_   | Name of the object.  |
| `filePath`  | _string_  | Path of the file to be uploaded.  |
| `contentType`  | _string_  | Content-Type of the object.  |
| `callback(err, etag)`  |  _function_ | Non-null `err` indicates error, `etag` _string_ is the etag of the object uploaded. If no callback is passed, a `Promise` is returned. |

__Example__

The maximum size of a single object is limited to 5TB. fPutObject transparently uploads objects larger than 5MiB in multiple parts. This allows failed uploads to resume safely by only uploading the missing parts. Uploaded data is carefully verified using MD5SUM signatures.

```js
var file = '/tmp/40mbfile'
minioClient.fPutObject('mybucket', '40mbfile', file, 'application/octet-stream', function(err, etag) {
  return console.log(err, etag) // err should be null
})
```

### copyObject(bucketName, objectName, sourceObject, conditions[, callback])

Copy a source object into a new object in the specied bucket.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  | _string_  | Name of the bucket.  |
|`objectName`   |_string_   | Name of the object.  |
| `sourceObject`  | _string_  | Path of the file to be copied.  |
| `conditions`  | _CopyConditions_  | Conditions to be satisfied before allowing object copy.  |
| `callback(err, {etag, lastModified})`  |  _function_ | Non-null `err` indicates error, `etag` _string_ and lastModified _Date_ are the etag and the last modified date of the object newly copied. If no callback is passed, a `Promise` is returned. |

__Example__

```js
var conds = new Minio.CopyConditions()
conds.setMatchETag('bd891862ea3e22c93ed53a098218791d')
minioClient.copyObject('mybucket', 'newobject', '/mybucket/srcobject', conds, function(e, data) {
  if (e) {
    return console.log(e)
  }
  console.log("Successfully copied the object:")
  console.log("etag = " + data.etag + ", lastModified = " + data.lastModified)
})
```

### statObject(bucketName, objectName[, callback])

Gets metadata of an object.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  | _string_  | Name of the bucket.  |
| `objectName`  | _string_  | Name of the object.  |
| `callback(err, stat)`  | _function_  |`err` is not `null` in case of error, `stat` contains the object information listed below. If no callback is passed, a `Promise` is returned. |

| Param  |  Type | Description  |
|---|---|---|
| `stat.size`  | _number_  | size of the object.  |
| `stat.etag`  | _string_  | etag of the object.  |
| `stat.contentType`  | _string_  | Content-Type of the object.|
| `stat.lastModified`  | _Date_  | Last Modified time stamp.|

__Example__

```js
minioClient.statObject('mybucket', 'photo.jpg', function(err, stat) {
  if (err) {
    return console.log(err)
  }
  console.log(stat)
})
```

### removeObject(bucketName, objectName[, callback])

Removes an object.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
|`bucketName`   |  _string_ | Name of the bucket.  |
| objectName  |  _string_ | Name of the object.  |
| `callback(err)`  | _function_  | Callback function is called with non `null` value in case of error. If no callback is passed, a `Promise` is returned. |

__Example__

```js
minioClient.removeObject('mybucket', 'photo.jpg', function(err) {
  if (err) {
    return console.log('Unable to remove object', err)
  }
  console.log('Removed the object')
})
```

### removeIncompleteUpload(bucketName, objectName[, callback])

Removes a partially uploaded object.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  |_string_   | Name of the bucket.  |
| `objectName`  | _string_  | Name of the object.  |
| `callback(err)`  | _function_  |Callback function is called with non `null` value in case of error. If no callback is passed, a `Promise` is returned.  |

__Example__

```js
minioClient.removeIncompleteUpload('mybucket', 'photo.jpg', function(err) {
  if (err) {
    return console.log('Unable to remove incomplete object', err)
  }
  console.log('Incomplete object removed successfully.')
})
```

## 4. Presigned operations

Presigned URLs are generated for temporary download/upload access to private objects.

### presignedUrl(httpMethod, bucketName, objectName, expiry[, reqParams, cb])

Generates a presigned URL for the provided HTTP method, 'httpMethod'. Browsers/Mobile clients may point to this URL to directly download objects even if the bucket is private. This presigned URL can have an associated expiration time in seconds after which the URL is no longer valid. The default value is 7 days.

__Parameters__

| Param | Type | Description  |
|---|---|---|
|`bucketName` | _string_ | Name of the bucket. |
|`objectName` | _string_ | Name of the object. |
|`expiry`     | _number_ | Expiry time in seconds. Default value is 7 days. |
|`reqParams`  | _object_ | request parameters. |
|`callback(err, presignedUrl)` | _function_ | Callback function is called with non `null` err value in case of error. `presignedUrl` will be the URL using which the object can be downloaded using GET request. If no callback is passed, a `Promise` is returned. |

__Example 1__

```js
// presigned url for 'getObject' method.
// expires in a day.
minioClient.presignedUrl('GET', 'mybucket', 'hello.txt', 24*60*60, function(err, presignedUrl) {
  if (err) return console.log(err)
  console.log(presignedUrl)
})
```

__Example 2__

```js
// presigned url for 'listObject' method.
// Lists objects in 'myBucket' with prefix 'data'.
// Lists max 1000 of them.
minioClient.presignedUrl('GET', 'mybucket', '', 1000, {'prefix': 'data', 'max-keys': 1000}, function(err, presignedUrl) {
  if (err) return console.log(err)
  console.log(presignedUrl)
})
```

### presignedGetObject(bucketName, objectName, expiry[, cb])

Generates a presigned URL for HTTP GET operations. Browsers/Mobile clients may point to this URL to directly download objects even if the bucket is private. This presigned URL can have an associated expiration time in seconds after which the URL is no longer valid. The default value is 7 days.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
|`bucketName` | _string_ | Name of the bucket. |
|`objectName` | _string_ | Name of the object. |
|`expiry`     | _number_ | Expiry time in seconds. Default value is 7 days. |
|`callback(err, presignedUrl)` | _function_ | Callback function is called with non `null` err value in case of error. `presignedUrl` will be the URL using which the object can be downloaded using GET request. If no callback is passed, a `Promise` is returned. |

__Example__

```js
// expires in a day.
minioClient.presignedGetObject('mybucket', 'hello.txt', 24*60*60, function(err, presignedUrl) {
  if (err) return console.log(err)
  console.log(presignedUrl)
})
```

### presignedPutObject(bucketName, objectName, expiry[, callback])

Generates a presigned URL for HTTP PUT operations. Browsers/Mobile clients may point to this URL to upload objects directly to a bucket even if it is private.  This presigned URL can have an associated expiration time in seconds after which the URL is no longer valid. The default value is 7 days.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
|`bucketName` | _string_ | Name of the bucket. |
|`objectName` | _string_ | Name of the object. |
|`expiry`     | _number_ | Expiry time in seconds. Default value is 7 days. |
|`callback(err, presignedUrl)` | _function_ | Callback function is called with non `null` err value in case of error. `presignedUrl` will be the URL using which the object can be uploaded using PUT request. If no callback is passed, a `Promise` is returned. |

__Example__

```js
// expires in a day.
minioClient.presignedPutObject('mybucket', 'hello.txt', 24*60*60, function(err, presignedUrl) {
  if (err) return console.log(err)
  console.log(presignedUrl)
})
```

### presignedPostPolicy(policy[, callback])

Allows setting policy conditions to a presigned URL for POST operations. Policies such as bucket name to receive object uploads, key name prefixes, expiry policy may be set.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `policy`  | _object_  | Policy object created by minioClient.newPostPolicy() |
| `callback(err, {postURL, formData})`  | _function_  | Callback function is called with non `null` err value in case of error. `postURL` will be the URL using which the object can be uploaded using POST request. `formData` is the object having key/value pairs for the Form data of POST body. If no callback is passed, a `Promise` is returned. |

Create policy:

```js
var policy = minioClient.newPostPolicy()
```

Apply upload policy restrictions:

```js
// Policy restricted only for bucket 'mybucket'.
policy.setBucket('mybucket')

// Policy restricted only for hello.txt object.
policy.setKey('hello.txt')
```
or

```js
// Policy restricted for incoming objects with keyPrefix.
policy.setKeyStartsWith('keyPrefix')

var expires = new Date
expires.setSeconds(24 * 60 * 60 * 10)
// Policy expires in 10 days.
policy.setExpires(expires)

// Only allow 'text'.
policy.setContentType('text/plain')

// Only allow content size in range 1KB to 1MB.
policy.setContentLengthRange(1024, 1024*1024)
```

POST your content from the browser using `superagent`:

```js
minioClient.presignedPostPolicy(policy, function(err, data) {
  if (err) return console.log(err)

  var req = superagent.post(data.postURL)
  _.each(data.formData, function(value, key) {
    req.field(key, value)
  })

  // file contents.
  req.attach('file', '/path/to/hello.txt', 'hello.txt')

  req.end(function(err, res) {
    if (err) {
      return console.log(err.toString())
    }
    console.log('Upload successful.')
  })
})
```

## 5. Bucket Policy & Notification operations

Buckets are configured to trigger notifications on specified types of events and paths filters.

### getBucketNotification(bucketName[, cb])

Fetch the notification configuration stored in the S3 provider and that belongs to the specified bucket name.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  | _string_  | Name of the bucket.  |
| `callback(err, bucketNotificationConfig)`  | _function_  | Callback function is called with non `null` err value in case of error. `bucketNotificationConfig` will be the object that carries all notification configurations associated to bucketName. If no callback is passed, a `Promise` is returned. |

__Example__

```js
minioClient.getBucketNotification('mybucket', function(err, bucketNotificationConfig) {
  if (err) return console.log(err)
  console.log(bucketNotificationConfig)
})
```

### setBucketNotification(bucketName, bucketNotificationConfig[, callback])

Upload a user-created notification configuration and associate it to the specified bucket name.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  | _string_  | Name of the bucket.  |
| `bucketNotificationConfig`  | _BucketNotification_   | Javascript object that carries the notification configuration.  |
| `callback(err)`  | _function_  | Callback function is called with non `null` err value in case of error. If no callback is passed, a `Promise` is returned. |

__Example__

```js
// Create a new notification object
var bucketNotification = new Minio.NotificationConfig();

// Setup a new topic configuration
var arn = Minio.buildARN('aws', 'sns', 'us-west-2', '408065449417', 'TestTopic')
var topic = new Minio.TopicConfig(arn)
topic.addFilterSuffix('.jpg')
topic.addFilterPrefix('myphotos/')
topic.addEvent(Minio.ObjectReducedRedundancyLostObject)
topic.addEvent(Minio.ObjectCreatedAll)

// Add the topic to the overall notification object
bucketNotification.add(topic)

minioClient.setBucketNotification('mybucket', bucketNotification, function(err) {
  if (err) return console.log(err)
  console.log('Success')
})
```

### removeAllBucketNotification(bucketName[, callback])

Remove the bucket notification configuration associated to the specified bucket.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  | _string_  | Name of the bucket |
| `callback(err)`  | _function_  | Callback function is called with non `null` err value in case of error. If no callback is passed, a `Promise` is returned. |

```js
minioClient.removeAllBucketNotification('my-bucketname', function(e) {
  if (e) {
    return console.log(e)
  }
  console.log("True")
})
```

### listenBucketNotification(bucketName, prefix, suffix, events)

Listen for notifications on a bucket. Additionally one can provider
filters for prefix, suffix and events. There is no prior set bucket notification
needed to use this API. This is an Minio extension API where unique identifiers
are regitered and unregistered by the server automatically based on incoming requests.

Returns an `EventEmitter`, which will emit a `notification` event carrying the record.

To stop listening, call `.stop()` on the returned `EventEmitter`.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  | _string_  | Name of the bucket |
| `prefix`  | _string_  | Object key prefix to filter notifications for. |
| `suffix`  | _string_  | Object key suffix to filter notifications for. |
| `events`  | _Array_ | Enables notifications for specific event types. |

See [here](https://github.com/minio/minio-js/blob/master/examples/minio/listen-bucket-notification.js) for a full example.

```js
var listener = minioClient.listenBucketNotification('my-bucketname', 'photos/', '.jpg', ['s3:ObjectCreated:*'])
listener.on('notification', function(record) {
  // For example: 's3:ObjectCreated:Put event occurred (2016-08-23T18:26:07.214Z)'
  console.log('%s event occurred (%s)', record.eventName, record.eventTime)
  listener.stop()
})
```

### getBucketPolicy(bucketName [, callback])

Get the bucket policy associated with the specified bucket. If `objectPrefix`
is not empty, the bucket policy will be filtered based on object permissions
as well.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  | _string_  | Name of the bucket |
| `callback(err, policy)`  | _function_  | Callback function is called with non `null` err value in case of error. `policy` is the [bucket policy](https://github.com/minio/minio/blob/master/docs/bucket/policy/README.md). If no callback is passed, a `Promise` is returned. |

```js
// Retrieve bucket policy of 'my-bucketname'
minioClient.getBucketPolicy('my-bucketname', function(err, policy) {
  if (err) throw err

  console.log(`Bucket policy file: ${policy}`)
})
```

### setBucketPolicy(bucketName, bucketPolicy[, callback])

Set the bucket policy on the specified bucket. [bucketPolicy](https://github.com/minio/minio/blob/master/docs/bucket/policy/README.md) is detailed here.

__Parameters__

| Param  |  Type | Description  |
|---|---|---|
| `bucketName`  | _string_  | Name of the bucket. |
| `bucketPolicy` | _string_ | bucket policy. |
| `callback(err)`  | _function_  | Callback function is called with non `null` err value in case of error. If no callback is passed, a `Promise` is returned. |

```js
// Set the bucket policy of `my-bucketname`
minioClient.setBucketPolicy('my-bucketname', JSON.stringify(policy), function(err) {
  if (err) throw err

  console.log('Bucket policy set')
})
```

## 6. HTTP request options
### setRequestOptions(options)

Set the HTTP/HTTPS request options. Supported options are `agent` ([http.Agent()](https://nodejs.org/api/http.html#http_class_http_agent)) and tls related options ('agent', 'ca', 'cert', 'ciphers', 'clientCertEngine', 'crl', 'dhparam', 'ecdhCurve', 'honorCipherOrder', 'key', 'passphrase', 'pfx', 'rejectUnauthorized', 'secureOptions', 'secureProtocol', 'servername', 'sessionIdContext') documented [here](https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options)

```js
// Do not reject self signed certificates.
minioClient.setRequestOptions({rejectUnauthorized: false})
```

## 7. Explore Further

- [Build your own Shopping App Example](https://docs.minio.io/docs/javascript-shopping-app)

redpajama_set_name: RedPajamaGithub


General Accounting and Administrative skills required. Ability to meet demanding work load and deadlines. Verify accuracy of production data. Coordinate production reporting to the appropriate EOG departments and outside agencies. Filing of production related data. Assist other Administrative Department personnel with special projects as needed.
Minimum of 2 years of experience in accounting/office administration - working knowledge of accounting practices. Exceptional office, computer (Microsoft Word and Excel), and math skills. A high school diploma/GED required, college degree preferred. Must be able to communicate effectively and have strong interpersonal and organizational skills. Must be able to handle a diverse and challenging work load. Required to have multi-tasking abilities to prioritize effectively and efficiently. Must be attentive to detail.


Adrian Aparicio Carmona spent his own money to buy supplies for a drywall job on a new home near Brenham several months ago. Then the contractor who hired him didn't pay him.
"Everything I had in savings I invested in the job," Aparicio said.
The theft of his wages only adds to the frustration of a tight job market, which forced him to accept lower pay than he is typically receives.
Aparicio has worked construction in the greater Houston area for seven years. He started out as an employee for a contracting firm, but in recent years, he's mostly found jobs as an independent contractor.
Aparicio is caught in a shadow world that feeds the state's housing market with cheap labor but often may violate workers' rights.
The Department of Labor is investigating pay practices of at least four of the nation's biggest home builders, according to recent reports by the Wall Street Journal and the Associated Press. None of the builders in the report was based in Houston.
The investigations center on possible violations of the Fair Labor Standards Act, which governs overtime pay and other hiring practices.
Pay problems among residential construction workers run the gamut from misclassifying employees as contractors to outright wage theft.
Most home builders, though, have little direct contact with the workers who build their homes. They hire a contractor, who works almost as a labor broker, hiring other contractors and subcontractors, with each layer creating more legal distance between the builder and any potential labor law violations.
"It's a big issue, especially when you have an industry where the jobs are just contracted down and down and down through this web," said Laura Boston, director of the Houston Interfaith Worker Justice Center, which helps educate low-wage workers about their rights. "Workers, no matter who they are, have a sense that they've been taken advantage of."
Companies that hire workers as employees are required to have an I-9 form verifying citizenship, and they must withhold income and payroll taxes. Under federal labor laws, employees in construction are supposed to be paid by the hour and are eligible for overtime.
Contractors, by contrast, are typically paid by the job or by some measure of their work. Workers who install drywall, for example, may be paid based on how many feet of wallboard they install.
In a drive to reduce costs, home builders have increasingly turned in recent years to contractors, whose ranks have swelled as the down economy has led to layoffs of employees at construction companies.
The result is a downward spiral of wages and working conditions.
The web of contractors also shields home builders from questions about the immigration status of workers.
Because most contractors are paid in cash, it's difficult to know how many pay taxes. Concerns about their immigration and tax situations make many workers reluctant to speak up about rights violations.
Boston said her agency helps aggrieved workers try to recover stolen pay through small claims court, but even if they win a judgment, they may be unable to collect because the contractors who hired them may be broke.
Caught in this netherworld of cash payments and questionable work practices, workers like Aparicio are left with few choices. He can accept lower and lower pay or not work at all.
"If you're choosing between half your pay and a quarter of your pay, your options are limited," he said.
Loren Steffy is the Chronicle's business columnist. His commentary appears Sundays, Wednesdays and Fridays. Contact him at loren.steffy@chron.com. His blog is at http://blogs.chron.com/lorensteffy. Follow him on Twitter at twitter.com/lsteffy.


text:
Q: Update Entire Collection In MongoDB Node Js I have a program that receive a New file from FTP server after some specific time , I insert the new updated file's data into my database MongoDB the fields remain same , only data changes in new file.. Now the problem is that EVERY TIME I have to insert whole new collection into database, and the collection increases accordingly.Forexample- first time data is of 20 records , second time 40 and then 60 and so on .The thing I want to do is I want to check which field's data is updated in New file before inserting new FILE's data , and should only update these field's data in database instead of inserting whole new document.Does MONGOOSE or MONGODB provide solution for this , means IF I PASS A DATA AS PARAMETER , IT SOULD COMPARE MY EXISTING COLLECTION WITH MY NEW DATA and then Update Only UPDATED FIELDS ..Please help me i,m stuck , thanks :) . I,m using NODE JS ...
var c = new Client();
            var connectionProperties = {
                host: 'ABC',
                user: 'ABC',
                port: 'ABC',
                password: 'ABC',
            };
            c.connect(connectionProperties);
          c.on('ready', function () {
                c.get('path-to-excel-file', function (err, stream) {
                    if (err) throw err;
                    stream.once('close', function () {
                        const workBook = XLSX.readFile('Convertedfile.xlsx');
                        XLSX.writeFile(workBook, 'Convertedfile', { bookType: "csv" });
                        csv()
                            .fromFile("Convertedfile")
                            .then((jsonObj) => {
                                Model.collection.insert(jsonObj, function (err, docs) {
                                    if (err) {
                                        return console.error(err);
                                    } else {
                                        console.log("All Documents insterted");
                                    }
                                });
                            })
                        c.end()
                    });
                    stream.pipe(fs.createWriteStream('ConvertedFile.xlsx'))
                })
          })

A: It looks like you need upsert means update if document/record exists or insert/create it.
So this can be done either 1 document at a moment or in bulk, but it would need a query to find the matching document(s) first.
Since you've not provided any sample data so I can't write a sample code snippet for you but here is the link to get you started, for bulk: Bulk.find.upsert and for single document this thread is good : how-do-i-update-upsert-a-document-in-mongoose
Update: here is the mongodb bulk upsert in action:
const mongo = require('mongodb');
const MongoClient = mongo.MongoClient;

const client = new MongoClient('mongodb://127.0.0.1:27017', { useUnifiedTopology: true });
client.connect(async err => {
    if (err) {
        console.log('DB Connection Error ', err);
    } else {
        const db = client.db('node-cheat-db');

        // lets assume you've read all file contents and data is now ready for db operation
        let records = [
            {first: 'john', last: 'doe', email: 'johen@doe.com'},
            {first: 'jack', last: 'doe', email: 'jack@doe.com'},
            {first: 'jill', last: 'doe_updated', email: 'jill@doe.com'}
        ];

        // prepare bulk upsert so that new records are created and existing are updated
        let bulk = db.collection('users').initializeOrderedBulkOp();
        for (var i = 0; i < records.length; i++) {
            bulk.find({
        "email": records[i].email // at least 1 key should be treated as PK; in this example email is PK
        }).upsert(records[i]).replaceOne(records[i]);
        }
        bulk.execute(function (err,updateResult) {
                if (updateResult.result.ok != 1) {
                    console.log('Bulk Upsert Error');
                } else {
                    console.log(`Inserted: ${updateResult.result.nUpserted} and Updated: ${updateResult.result.nModified}`);
                }
        });
    }
});

sample output looks like:

Inserted: 0 and Updated: 3

Further Details:
Clone node-cheat bulk-update, run node bulk-update.js followed by npm install mongodb.


What is extra virgin olive oil? How it´s made?
The extra virgin olive oil produced, traded, exported, imported and distributed by ILOVEACEITE in the US is obtained from the fruit of the olive tree called olive (aceituna in Spanish).
ILOVEACEITE produces 100% extra virgin olive oil from 'picual' and 'royal' varities. There are over 200 varieties of olives in Spain and more than 2.000 in the world.
These are collected by mechanical means to ensure that no deterioration of the oil occurs during its production. Our process ensures that the oil retains the full flavor, aroma and characteristics of the fruit from which it derives.
Extra virgin olive oil is 100% olive juice because its extraction only involves physical processes (picking, grinding/milling, spin/centrifugation) at low temperature. After it, we filtered and bottled.
Characteristically the extra virgin olive oil (called #evoo) is of a green colour with an intense, fruity aroma of fresh green grass.
The oil maintains its complete content of nutrients, vitamins, polyphenol-antioxidants, tocopherols, etc. and above all its smell and taste.
It has a high content of monounsaturated fats and natural antioxidants; an organoleptic assessment that ensures an excellent quality oil.


A man who allegedly attempted to skip out on his year-long jail sentence for drug possession could be facing significantly more time behind bars.
The Battle Creek Enquirer says that 43-year-old Edwin Walker was arraigned Wednesday on a charge related to his escape from jail, a charge that could carry up to six years in prison; he could get even more than that as several other crimes were committed during the alleged flight. Walker was a worker at the Calhoun County Jail who had access to non-secure areas of the facility.
On Saturday, authorities say he escaped by walking out of the kitchen and eventually stealing a running U-Haul truck from in front of a business on East Columbia Ave. In Emmett Township. Police in the Lansing area were notified to keep an eye out for Walker, as he had reportedly been in contact with a cousin there prior to the escape; as officers were parked near the cousin's apartment, they spotted the stolen U-Haul and eventually arrested Walker following a foot chase and scuffle.
If Walker is convicted in connection to these new charges, he will have to finish his current year long jail sentence for possession of oxycodone before he heads to prison.