By default, users will first be shown the Global settings when first arriving on the Settings page. Otherwise, Settings are organized in the left-hand menu alphabetically.
To access the "Settings" menu in AtoM, click on the Admin menu in the main menu located in the header bar and select "Settings" from the drop-down menu. You will be redirected to the "Site Settings", where a number of information areas, including the "Global" settings, which should be opened first by default.
This section will describe each setting in the "Global" information area.
Hovering over each setting field will also provide additional information on that field - it will appear in an "information box" below your cursor.
The second number after the dash represents the database schema version. This can be useful information to include in a support message if you are experiencing unexpected issues with your installation - if a system administrator forgets to run the upgrade task as part of a site upgrade this can lead to missing tables and/or columns in the database, which can cause unexpected errors later when trying to use AtoM.
If yes is selected, authenticated (i.e. logged in) users will automatically receive a notification if a newer version of the AtoM software has been released and can be installed. This notification will appear in the browser for authenticated (i.e. logged in) users, as an orange bar across the top of the application alerting users to the newest release available.
By default, AtoM lists objects in list pages and search results ten at a time, with a pager at the bottom of the page to allow users to navigate through long lists of objects. Administrators can increase or decrease this default number. Note that the minimum accepted value is 5 results per page, and the max value is 100.
Date modified: Will sort based on the date the records were created or last modified.
The Title/name, Identifier, and Reference code sorts are all based on what is sometimes known as ASCII sort - that is, the sort is not a true alphabetic sort as humans think of it, but rather as computers do.
Similar to the Default repository browse view setting, this setting will determine if the "card view" (used by default on the Digital object browse page) or the "results stub view" (the default description search/browse view in new AtoM installations - called "table" in the related setting) is used when users first arrive on the archival description search/browse page. By default in a new installation, this setting is set to "table" - aka the results stub view.
Note that this setting will not affect the use of the card view on the Digital object browse page - however, an administrator could change this by altering the path in the related node of the browse menu - for more information on editing menus, see: Manage Menus.
The "Archival institutions" link in the Browse menu will not be hidden by default when this setting is changed. However, an administrator can manually remove this link by editing the Browse menu via Admin > Menus. For more information, see: Manage Menus.
This setting will enable a basic audit log for archival descriptions in AtoM. When enabled, the log will capture basic information on creation and modification events related to archival descriptions, including date, type (creation or modification), username, and/or related description title, depending on where the information is viewed. Note that the contents of specific changes made are not currently captured as part of the modification history's audit trail.
This setting determines whether new archival descriptions will automatically appear as draft records or published records. By default, public users (i.e. those who are not logged into AtoM) cannot see draft descriptions.
This setting determines whether or not draft records and retrieval information is included in the reports generated or not - that is, physical storage information such as location, container type, and name.
When this setting is set to "Yes", then reports generated will not include draft descriptions. Additionally, if physical storage information is hidden via the Visible elements settings, then physical storage information will also be excluded from finding aids. When set to "No", then the reports and finding aids will include drafts and physical storage information.
Whenever a digital object is linked to an archival description, AtoM will generate two derivative copies from the master digital object (e.g. the original) - a reference display copy, used on the archival description view page, and a thumbnail, used in search and browse results, and in the digital object carousel.
The following settings affect the way that reference derivatives are generated in AtoM.
By default, AtoM will use the first page of multi-page content (such as a PDF) when generating the reference display copy and thumbnail images.
With each new major public release, we incorporate community-supplied translations of AtoM's user interface, which can easily be changed by end users by selecting a different language from the global language menu. The language menu will display the languages that are currently enabled in your AtoM application. This setting determines what languages appear in the language menu.
Settings in this section relate to archival description identifiers, as well as accession record numbers. AtoM can automatically generate unique identifiers for these entities based on a configurable mask. Users can also set reference code behavior for descriptions in this section of the settings.
If you change this setting, it will be applied immediately on view pages. However, to see these changes take effect in search and browse results pages, a system administrator will need to clear the application cache, restart services, and populate the search before they are visible.
If you continue to see the previous reference code separator in search/browse results after performing the above tasks, be sure to clear your web browser cache as well.
In AtoM, a reference code is a unique identifier string associated with an archival description, created through the combination of inherited identifiers from other related entities. While an individual description identifier is rarely globally unique (and is often not unique even in the same AtoM instance), by combining additional elements such as a the country code, repository code, and any parent identifiers, a unique reference code can be created, which facilitates international discovery and exchange.
Markdown is a lightweight markup syntax for text formatting, originally created by John Gruber. As of the 2.5 release, AtoM supports the use of Markdown in both edit pages and static pages, via a PHP library known as Parsedown.
This setting enables Markdown support in AtoM, which will allow for content added to edit and static pages to be styled using Markdown syntax. For more information on using Markdown in AtoM, see: Formatting.
To ensure you are seeing the most up-to-date results, you may also want to clear the application cache and restart services (such as PHP-FPM and Memcached if you are using it for additional caching), and clear your web browser cache.
Markdown is also used in the default text of the Privacy notification banner in new installations. If you are using the privacy notification and intend to disable Markdown in AtoM, be sure to review and update your notification message!
AtoM supports integration with Google Analytics for the purposes of gathering statistics on page views, site usage, user location, and other data on site visits. All data collected by Google Analytics are stored and processed by Google, according to the Google Ads Data Processing Terms.
By default in new installations, the Privacy notification banner will be turned off, meaning it will not display unless an administrator enables it. To enable the setting, log in and navigate to Admin > Settings > Privacy Notification.
In the Privacy notification settings page, set the radio button to "Yes" to enable the privacy notification banner. Once you click Save in the button block at the bottom of the settings, the banner will immediately become visible. When users visit the site, the banner will remain persistently visible until the "Ok" button in the notification banner is clicked.
This section includes settings that administrators can enable to enhance the security of AtoM.
To use this setting, you must first ensure that your server is configured to support SSL! If you enable this setting and haven't first acquired and installed and SSL certificate and updated your site to use HTTPS, then you will end up locking yourself out of your site!
The site title and description will appear in the AtoM header bar, if they are included in the default page elements. See Default page elements for an image of where the Title and description appear, and more about setting the visibility of default page elements. These are also used when your site is indexed by web crawlers for public results in search engines such as Google, Yahoo, Bing, etc. You can choose to hide them from public view via the Default page elements settings, but we recommending adding site information here even if you decide not to display the title and description publicly.
The base URL is used to create absolute URLs included in exports (e.g. MODS and EAD exports, and the digitalObjectURI column in CSV exports). For example, your AtoM site is made up a series of web pages. Each page has a full Uniform Resource Locator (URL) something like http://www.your-atom-site.com/your-description. The Base URL is the part of this URL that does not change - in this example, http://www.your-atom-site.com.
With the 2.5 release, administrators can also choose to show a browse hierarchy option on the archival descriptions browse page. This new feature will provide users with an additional way of browsing records held in AtoM - via a full-page version of the full-width treeview that contains all descriptions.
globalSearch: the placeholder help text that will appear in the global search box.


text:
package com.google.u2f.server.impl;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;

import java.security.cert.X509Certificate;
import java.util.HashSet;
import java.util.List;

import org.junit.Before;
import org.junit.Test;
import org.mockito.Matchers;
import org.mockito.Mock;

import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.u2f.TestVectors;
import com.google.u2f.U2FException;
import com.google.u2f.server.ChallengeGenerator;
import com.google.u2f.server.Crypto;
import com.google.u2f.server.DataStore;
import com.google.u2f.server.SessionIdGenerator;
import com.google.u2f.server.U2FServer;
import com.google.u2f.server.data.EnrollSessionData;
import com.google.u2f.server.data.SecurityKeyData;
import com.google.u2f.server.data.SignSessionData;
import com.google.u2f.server.messages.RegistrationRequest;
import com.google.u2f.server.messages.RegistrationResponse;
import com.google.u2f.server.messages.SignRequest;
import com.google.u2f.server.messages.SignResponse;

public class U2FServerReferenceImplTest extends TestVectors {
  @Mock ChallengeGenerator mockChallengeGenerator;
  @Mock SessionIdGenerator mockSessionIdGenerator;
  @Mock DataStore mockDataStore;

  private final Crypto cryto = new BouncyCastleCrypto();
  private U2FServer u2fServer;

  @Before
  public void setup() throws Exception {
    initMocks(this);

    HashSet<X509Certificate> trustedCertificates = new HashSet<X509Certificate>();
    trustedCertificates.add(VENDOR_CERTIFICATE);

    when(mockChallengeGenerator.generateChallenge(ACCOUNT_NAME))
    .thenReturn(SERVER_CHALLENGE_ENROLL);
    when(mockSessionIdGenerator.generateSessionId(ACCOUNT_NAME)).thenReturn(SESSION_ID);
    when(mockDataStore.storeSessionData(Matchers.<EnrollSessionData>any())).thenReturn(SESSION_ID);
    when(mockDataStore.getTrustedCertificates()).thenReturn(trustedCertificates);
    when(mockDataStore.getSecurityKeyData(ACCOUNT_NAME)).thenReturn(
        ImmutableList.of(new SecurityKeyData(0L, KEY_HANDLE, USER_PUBLIC_KEY_SIGN_HEX, VENDOR_CERTIFICATE, 0)));
  }

  @Test
  public void testSanitizeOrigin() {
    assertEquals("http://example.com", U2FServerReferenceImpl.canonicalizeOrigin("http://example.com"));
    assertEquals("http://example.com", U2FServerReferenceImpl.canonicalizeOrigin("http://example.com/"));
    assertEquals("http://example.com", U2FServerReferenceImpl.canonicalizeOrigin("http://example.com/foo"));
    assertEquals("http://example.com", U2FServerReferenceImpl.canonicalizeOrigin("http://example.com/foo?bar=b"));
    assertEquals("http://example.com", U2FServerReferenceImpl.canonicalizeOrigin("http://example.com/foo#fragment"));
    assertEquals("https://example.com", U2FServerReferenceImpl.canonicalizeOrigin("https://example.com"));
    assertEquals("https://example.com", U2FServerReferenceImpl.canonicalizeOrigin("https://example.com/foo"));
  }

  @Test
  public void testGetRegistrationRequest() throws U2FException {
    u2fServer = new U2FServerReferenceImpl(mockChallengeGenerator,
        mockDataStore, cryto, TRUSTED_DOMAINS);

    RegistrationRequest registrationRequest = u2fServer.getRegistrationRequest(ACCOUNT_NAME, APP_ID_ENROLL);

    assertEquals(new RegistrationRequest("U2F_V2", SERVER_CHALLENGE_ENROLL_BASE64, APP_ID_ENROLL,
        SESSION_ID), registrationRequest);
  }

  @Test
  public void testProcessRegistrationResponse() throws U2FException {
	when(mockDataStore.getEnrollSessionData(SESSION_ID)).thenReturn(
        new EnrollSessionData(ACCOUNT_NAME, APP_ID_ENROLL, SERVER_CHALLENGE_ENROLL));
    u2fServer = new U2FServerReferenceImpl(mockChallengeGenerator,
        mockDataStore, cryto, TRUSTED_DOMAINS);

    RegistrationResponse registrationResponse = new RegistrationResponse(REGISTRATION_DATA_BASE64,
        BROWSER_DATA_ENROLL_BASE64, SESSION_ID);

    u2fServer.processRegistrationResponse(registrationResponse, 0L);

    verify(mockDataStore).addSecurityKeyData(eq(ACCOUNT_NAME),
        eq(new SecurityKeyData(0L, KEY_HANDLE, USER_PUBLIC_KEY_ENROLL_HEX, VENDOR_CERTIFICATE, 0)));
  }

  @Test
  public void testProcessRegistrationResponse2() throws U2FException {
	when(mockDataStore.getEnrollSessionData(SESSION_ID)).thenReturn(
	     new EnrollSessionData(ACCOUNT_NAME, APP_ID_ENROLL, SERVER_CHALLENGE_ENROLL));
    HashSet<X509Certificate> trustedCertificates = new HashSet<X509Certificate>();
    trustedCertificates.add(VENDOR_CERTIFICATE);
    trustedCertificates.add(TRUSTED_CERTIFICATE_2);
    when(mockDataStore.getTrustedCertificates()).thenReturn(trustedCertificates);
    u2fServer = new U2FServerReferenceImpl(mockChallengeGenerator,
        mockDataStore, cryto, TRUSTED_DOMAINS);

    RegistrationResponse registrationResponse = new RegistrationResponse(REGISTRATION_DATA_2_BASE64,
        BROWSER_DATA_2_BASE64, SESSION_ID);

    u2fServer.processRegistrationResponse(registrationResponse, 0L);

    verify(mockDataStore).addSecurityKeyData(eq(ACCOUNT_NAME),
        eq(new SecurityKeyData(0L, KEY_HANDLE_2, USER_PUBLIC_KEY_2, TRUSTED_CERTIFICATE_2, 0)));
  }

  @Test
  public void testGetSignRequest() throws U2FException {
    u2fServer = new U2FServerReferenceImpl(mockChallengeGenerator,
        mockDataStore, cryto, TRUSTED_DOMAINS);
    when(mockChallengeGenerator.generateChallenge(ACCOUNT_NAME)).thenReturn(SERVER_CHALLENGE_SIGN);

    List<SignRequest> signRequest = u2fServer.getSignRequest(ACCOUNT_NAME, APP_ID_SIGN);

    assertEquals(new SignRequest("U2F_V2", SERVER_CHALLENGE_SIGN_BASE64, APP_ID_SIGN,
        KEY_HANDLE_BASE64, SESSION_ID), signRequest.get(0));
  }

  @Test
  public void testProcessSignResponse() throws U2FException {
	when(mockDataStore.getSignSessionData(SESSION_ID)).thenReturn(
	    new SignSessionData(ACCOUNT_NAME, APP_ID_SIGN, SERVER_CHALLENGE_SIGN, USER_PUBLIC_KEY_SIGN_HEX));
    u2fServer = new U2FServerReferenceImpl(mockChallengeGenerator,
        mockDataStore, cryto, TRUSTED_DOMAINS);
    SignResponse signResponse = new SignResponse(BROWSER_DATA_SIGN_BASE64,
        SIGN_RESPONSE_DATA_BASE64, SERVER_CHALLENGE_SIGN_BASE64, SESSION_ID, APP_ID_SIGN);

    u2fServer.processSignResponse(signResponse);
  }

  @Test
  public void testProcessSignResponse_badOrigin() throws U2FException {
    when(mockDataStore.getSignSessionData(SESSION_ID)).thenReturn(
        new SignSessionData(ACCOUNT_NAME, APP_ID_SIGN, SERVER_CHALLENGE_SIGN, USER_PUBLIC_KEY_SIGN_HEX));
    u2fServer = new U2FServerReferenceImpl(mockChallengeGenerator,
        mockDataStore, cryto, ImmutableSet.of("some-other-domain.com"));
    SignResponse signResponse = new SignResponse(BROWSER_DATA_SIGN_BASE64,
        SIGN_RESPONSE_DATA_BASE64, SERVER_CHALLENGE_SIGN_BASE64, SESSION_ID, APP_ID_SIGN);

    try {
      u2fServer.processSignResponse(signResponse);
      fail("expected exception, but didn't get it");
    } catch(U2FException e) {
      assertTrue(e.getMessage().contains("is not a recognized home origin"));
    }
  }

  // @Test
  // TODO: put test back in once we have signature sample on a correct browserdata json
  // (currently, this test uses an enrollment browserdata during a signature)
  public void testProcessSignResponse2() throws U2FException {
	when(mockDataStore.getSignSessionData(SESSION_ID)).thenReturn(
	    new SignSessionData(ACCOUNT_NAME, APP_ID_2, SERVER_CHALLENGE_SIGN, USER_PUBLIC_KEY_2));
    when(mockDataStore.getSecurityKeyData(ACCOUNT_NAME)).thenReturn(
        ImmutableList.of(new SecurityKeyData(0l, KEY_HANDLE_2, USER_PUBLIC_KEY_2, VENDOR_CERTIFICATE, 0)));
    u2fServer = new U2FServerReferenceImpl(mockChallengeGenerator,
        mockDataStore, cryto, TRUSTED_DOMAINS);
    SignResponse signResponse = new SignResponse(BROWSER_DATA_2_BASE64, SIGN_DATA_2_BASE64,
        CHALLENGE_2_BASE64, SESSION_ID, APP_ID_2);

    u2fServer.processSignResponse(signResponse);
  }
}

redpajama_set_name: RedPajamaGithub


text:
#ifndef OGR_GEOJSON_H_INCLUDED
#define OGR_GEOJSON_H_INCLUDED

#include <ogrsf_frmts.h>
#include <cstdio>
#include <vector> // used by OGRGeoJSONLayer

#define SPACE_FOR_BBOX  80

class OGRGeoJSONDataSource;

/************************************************************************/
/*                           OGRGeoJSONLayer                            */
/************************************************************************/

class OGRGeoJSONLayer : public OGRLayer
{
public:

    static const char* const DefaultName;
    static const char* const DefaultFIDColumn;
    static const OGRwkbGeometryType DefaultGeometryType;

    OGRGeoJSONLayer( const char* pszName,
                     OGRSpatialReference* poSRS,
                     OGRwkbGeometryType eGType,
                     char** papszOptions,
                     OGRGeoJSONDataSource* poDS );
    ~OGRGeoJSONLayer();

    //
    // OGRLayer Interface
    //
    OGRFeatureDefn* GetLayerDefn();
    OGRSpatialReference* GetSpatialRef();

    int GetFeatureCount( int bForce = TRUE );
    void ResetReading();
    OGRFeature* GetNextFeature();
    OGRFeature* GetFeature( long nFID );
    OGRErr CreateFeature( OGRFeature* poFeature );
    OGRErr CreateField(OGRFieldDefn* poField, int bApproxOK);
    int TestCapability( const char* pszCap );
    const char* GetFIDColumn();
    void SetFIDColumn( const char* pszFIDColumn );

    //
    // OGRGeoJSONLayer Interface
    //
    void AddFeature( OGRFeature* poFeature );
    void SetSpatialRef( OGRSpatialReference* poSRS );
    void DetectGeometryType();

private:

    typedef std::vector<OGRFeature*> FeaturesSeq;
    FeaturesSeq seqFeatures_;
    FeaturesSeq::iterator iterCurrent_;

    OGRGeoJSONDataSource* poDS_;
    OGRFeatureDefn* poFeatureDefn_;
    OGRSpatialReference* poSRS_;
    CPLString sFIDColumn_;
    int nOutCounter_;

    int bWriteBBOX;
    int bBBOX3D;
    OGREnvelope3D sEnvelopeLayer;

    int nCoordPrecision;
};

/************************************************************************/
/*                           OGRGeoJSONDataSource                       */
/************************************************************************/

class OGRGeoJSONDataSource : public OGRDataSource
{
public:

    OGRGeoJSONDataSource();
    ~OGRGeoJSONDataSource();

    //
    // OGRDataSource Interface
    //
    int Open( const char* pszSource );
    const char* GetName();
    int GetLayerCount();
    OGRLayer* GetLayer( int nLayer );
    OGRLayer* CreateLayer( const char* pszName,
                           OGRSpatialReference* poSRS = NULL,
                           OGRwkbGeometryType eGType = wkbUnknown,
                           char** papszOptions = NULL );
    int TestCapability( const char* pszCap );

    //
    // OGRGeoJSONDataSource Interface
    //
    int Create( const char* pszName, char** papszOptions );
    VSILFILE* GetOutputFile() const { return fpOut_; }

    enum GeometryTranslation
    {
        eGeometryPreserve,
        eGeometryAsCollection,
    };

    void SetGeometryTranslation( GeometryTranslation type );

    enum AttributesTranslation
    {
        eAtributesPreserve,
        eAtributesSkip
    };

    void SetAttributesTranslation( AttributesTranslation type );

    int  GetFpOutputIsSeekable() const { return bFpOutputIsSeekable_; }
    int  GetBBOXInsertLocation() const { return nBBOXInsertLocation_; }

private:

    //
    // Private data members
    //
    char* pszName_;
    char* pszGeoData_;
    OGRGeoJSONLayer** papoLayers_;
    int nLayers_;
    VSILFILE* fpOut_;

    //
    // Translation/Creation control flags
    //
    GeometryTranslation flTransGeom_;
    AttributesTranslation flTransAttrs_;

    int bFpOutputIsSeekable_;
    int nBBOXInsertLocation_;

    //
    // Priavte utility functions
    //
    void Clear();
    int ReadFromFile( const char* pszSource );
    int ReadFromService( const char* pszSource );
    OGRGeoJSONLayer* LoadLayer();
};

/************************************************************************/
/*                           OGRGeoJSONDriver                           */
/************************************************************************/

class OGRGeoJSONDriver : public OGRSFDriver
{
public:

    OGRGeoJSONDriver();
    ~OGRGeoJSONDriver();

    //
    // OGRSFDriver Interface
    //
    const char* GetName();
    OGRDataSource* Open( const char* pszName, int bUpdate );
    OGRDataSource* CreateDataSource( const char* pszName, char** papszOptions );
    OGRErr DeleteDataSource( const char* pszName );
    int TestCapability( const char* pszCap );

    //
    // OGRGeoJSONDriver Interface
    //
    // NOTE: New version of Open() based on Andrey's RFC 10.
    OGRDataSource* Open( const char* pszName, int bUpdate,
                         char** papszOptions );

};

#endif /* OGR_GEOJSON_H_INCLUDED */


In an age before satnav and Uber, the Knowledge was everything. A unique and complex route test, it was required by anyone who wanted to drive a registered taxicab in London.
Notoriously difficult to pass, it nonetheless offered the successful graduate a job for life and, in 1979, with unemployment at an all time high, this was understandably a Holy Grail. Jack Rosenthal's television film The Knowledge offered a light-hearted look at a group of hopefuls, struggling to hold their personal lives together, while under the constant pressure of the rigorous tests.
Simon Block's adaptation for the stage retains much of the charm and comedy of Rosenthal's original but it also appears reluctant to break free from its narrative constraints.
This problem is highlighted by director Maureen Lipman's fluid, if conventional staging and a fussy, composite set design that never quite pulls together. On television, our focus is guided but on stage some of the characters feel too thinly drawn and there are a few unsatisfying conclusions.
The warmth of Rosenthal's dialogue however is undeniable and Lipman has gathered a strong ensemble to allow the story to unfold. Alice Felgate proves a force to be reckoned with as Janet, driving Fabien Frankel's feckless Chris to make something of himself.
Steven Pacey is gloriously eccentric as the martinet examiner Mr Burgess, but the real star here is the script. A little dated in places, perhaps but an enjoyable reminder that a rites of passage story isn't necessarily the reserve of the young.


text:
Q: How to mock socket.io-client using jest/react-testing-library I am building a chat app and would like to write integration tests using react-testing-library and can not figure out how to mock socket.io-client's socket.on, socket.emit, etc.
I tried follow this article and tried using mock-socket.io and socket.io-mock all with no luck.
This is the component I am trying to test:
import React, { useEffect, useState } from 'react';
import io from 'socket.io-client';
import 'dotenv/config';
import ChatInput from './ChatInput';
import Messages from './Messages';

function App() {
  const [messages, setMessages] = useState([]);

  const port = process.env.REACT_APP_SERVER_PORT;
  const socket = io(`http://localhost:${port}`);

  useEffect(() => {
    socket
      .emit('app:load', messageData => {
        setMessages(messages => [...messages, ...messageData]);
      })
      .on('message:new', newMessage => {
        setMessages(messages => [...messages, newMessage]);
      });
  }, []);

  const postMessage = input => {
    socket.emit('message:post', input);
  };

  return (
    <div className="App">
      <Messages messages={messages} />
      <ChatInput postMessage={postMessage} />
    </div>
  );
}

export default App;

A: This is a late answer but maybe useful for others:
to mock socket.io-client library I used jest mock function and used a third party library socket.io-mock https://www.npmjs.com/package/socket.io-mock
You need to modify your connection function as follows in order to work with mocked socket:
const url= process.env.NODE_ENV==='test'?'':`http://localhost:${port}`;
const socket = io(url);

Implementation:
import socketIOClient from 'socket.io-client';
import MockedSocket from 'socket.io-mock';

jest.mock('socket.io-client');

describe('Testing connection', () => {
  let socket;

  beforeEach(() => {
    socket = new MockedSocket();
    socketIOClient.mockReturnValue(socket);
  });

  afterEach(() => {
    jest.restoreAllMocks();
  });

  it('should dispatch connect event', () => {
    /*socket should connect in App and
    Note that the url should be dummy string
    for test environment e.g.(const socket = io('', options);)*/
    const wrapper = (
      <Provider store={store}>
        <App />
      </Provider>
    );

    expect(socketIOClient.connect).toHaveBeenCalled();
  });

  it('should emit message:new', done  => {
    const wrapper = (
      <Provider store={store}>
        <App />
      </Provider>
    );
    ...
    socket.on('message:new', (data)=>{
        expect(data).toEqual(['message1', 'message2']);
        done();
    });

    socket.socketClient.emit('message:new', ['message1', 'message2']);
    ...
  });
});

redpajama_set_name: RedPajamaStackExchange


ESSENTIALS: Open daily 11:30 a.m. to 10 p.m., and until 11 p.m., Friday and Saturday. Reservations recommended, but not always honored on time. Challenging for wheelchairs; limited parking; cash only.
Of the thousands of people who drive by Robke's Country Inn each day, some might guess that it's a German place and one that has perhaps weathered many storms. The low-slung, oddly angled building on Route 25A in Northport has a vaguely Bavarian facade and the feel of another era.
While plenty of sausage is served here, it isn't bratwurst. Inside its string of tavern-like dining rooms, Robke's is a classic Italian osteria with heaping portions that has garnered a passionate following since 1978, when Bronx chef Louis Selvaggio took over the place from previous owner Ernest Robke, and began importing provisions and recipes from Arthur Avenue.
The cash-only Robke's has not only survived for 39 years, an eternity in the restaurant world, but is still flourishing. Arrive at 8 on Saturday night, and it feels like the rest of the world has descended on the place, too: The tiny parking lot is full, and the foyer is jammed with waiting couples. It's four deep at the bar as the hostess manages pages of names and servers squeeze by the standing-room crowd with plates held high. The clamor is deafening.
Partly responsible for these recent swarms is Selvaggio's son, Louis Selvaggio Jr. (called Louis Sel for short, and who manages the front of the house). Months ago, he posted a picture of Robke's fried mozzarella tower — a stack of golden-brown slabs of cheese, topped with sauce — to Instagram; it went viral and garnered national attention. Soon, even more people wanted in on Robke's generous plates, heavy pours and frenetic, friendly charms.
It takes wherewithal to arrive here at prime dinner time. It's not unheard of to wait 30 minutes or more, even with a reservation. You can while that time by grabbing a drink at the long, jammed bar, though if you're not a regular, making eye contact with a bartender is its own sport. (Don't bother asking for a cocktail or wine list — neither exists).
Once at a hard-won table, a dish of crumbled Parmesan, olives and soppressata will be plunked down, as will a basket of crusty Italian bread. These will steady you during the difficult decision-making ahead: In addition to the regular menu, there are board specials and even more specials that your server will recite as if sharing a secret.
Hits and misfires lurk on both menus. Robke's sells plenty of that mozzarella tower, but it's more a gooey novelty than anything. Eclipsing it is the crisp, clean, featherlight fried calamari, with Robke's excellent marinara, or a side dish of fork-tender meatballs. The Caesar salad is strangely sweet, best passed over in favor of pasta: A subtly creamy bucatini amatriciana punctuated by chunky tomatoes and just enough fat, or a velvety "secret" veal sauce slathered on pappardelle so wide you almost write a love letter on each ribbon. Conversely, cavatelli with eggplant and mozzarella, a special one night, was chewy and flavorless. A linguine with clam sauce loaded with meaty, fresh clams — plus whole cloves of garlic — suffered from grit, as did a baked-clams appetizer.
Other seafood dishes are sublime, however, such as a red-snapper al forno, a top-breaded fillet baked to suppleness and anointed with buttery cherry tomatoes, or orange roughy oreganata, delicate fillets under a sheath of nut-brown crunch.
Main-course territory can be uneven. Chicken scarpariello is offered both on the bone or off; we took it on, and while the bird was just shy of dry, the dish's heat was unbridled, and its sauce too vinegary. A lobster-shrimp risotto special arrived loaded with meat, but the dish's texture was more akin to a tomato-rice soup. Another special, osso buco, suffered from being both overcooked and then served lukewarm, so that its sauce had begun to coagulate.
On that same busy night, lukewarm dishes appeared at every course, rendering the soft ricotta inside an eggplant rollatini gummy, for instance. But redemption came via Robke's excellent cheeseburger, with delectable outside char and oceans of umami within. Robke's roughed-edged fries could be habit forming.
When Robke's is humming but not overrun, it's a place you can join in the rollicking vibe and indulge in ginormous portions. To dip your toes in its waters, consider visiting at lunch, or long before the dinnertime rush.


Charisma boyfriend will probably steer clear of legal trouble after her psychiatrist's confirmation, reports Megha Sood.
Nipun Doshi, the boyfriend of 25-year-old MBA graduate Charisma Kadakia who jumped to death at Malabar Hill on Saturday afternoon, will probably steer clear of legal trouble as psychiatrist Dr DT Lakdawala confirmed to the police on Monday that the girl was under his treatment for the last four years.
Charisma had jumped from the fourth floor of Navyug Sagar building at Malabar Hill where Doshi lived.
According to DCP Pratap Dighavkar (Zone II), Dr Lakdawala, in a statement to the Malabar Hill police, on Monday evening, told the police that Charisma was suffering from a psychological disorder for the past six years. "We have questioned Dr Lakdawala to understand the circumstances under which Charisma took such a drastic step. The doctor told us that Charisma used to have mood swings on a regular basis," said Dighavkar.
"We have registered a case of accidental death under Sections 174 of the Criminal Procedure Code (CrPC)," he added. Even though, Charisma jumped off the Navyug Sagar building, in the presence of Senior Inspector of Malabar Hill police station, Ishak Bagwan, the death is considered to be unnatural.
"We are also questioning Nipun and Charisma's neighbours to find out about the kind of relationship they shared. The investigations are on, although Charisma's parents do not want to blame anybody for their daughter's death," Dighavkar added.
He confirmed that the couple were seeing each other for the past three months and were planning to get married.
Neither of their parents had opposed the marriage. However, they had put the marriage on hold until Charisma's treatment was complete.
"This might possibly be the reason behind Charisma's depression that could have led her to take such an extreme step," Dighavkar said.


text:
Q: Computing Probabilities Given the joint density of two random variables $X$ and $Y$,
$f_{XY}(x,y)=2e^{-(x+y)}$ for $0<x<y$
How do I compute $P(Y<1|X<1)$?

A: $P(Y<1|X<1)=\frac {P(X<1,Y<1)} {P(X<1)}=\frac {\int_0^{1} \int_x^{1}2e^{-x-y} dydx} {\int_0^{1} \int_x^{\infty}2e^{-x-y} dydx}$. I will let you evaluate the integrals.


Last summer into fall was a difficult time for my wife and me as we spent much of that time period essentially reunderstanding the events that we had lived through the previous year. Two summers ago, our son Daniel, who was two and a half at the time, was going through what seemed like a difficult period. He was moody and unpredictable in his behavior, and often refused to eat his dinner.
We'd used an early intervention service to help him with some minor effects of torticollis, a misalignment of the neck bones and muscles caused by how he lay in utero, and we brought the service back in to see if they could help us understand what we were seeing as behavioral problems. Giving credit where credit is due, it was largely my wife who felt something was not right with Daniel and sought out the help. Early intervention thought he could be experiencing a sensory disorder, but the symptoms didn't quite fit.
Over the course of the next few months, the symptoms continued to get worse until Daniel suffered a few days of what seemed to be a stomach virus, and making a very long story short, was eventually diagnosed with a kidney tumor. The longer story, if you are interested, has been beautifully documented by my wife on Daniel's CaringBridge site. Daniel underwent surgery and eighteen weeks of chemotherapy and has, thank God, remained cancer-free since then.
The next year, through, was a very haunted time for us, as the following summer and fall contained many milestones for us, moments where we understood events in a much different light. Moments when we remembered being frustrated with him for being cranky or fussy, lost our patience with him–now knowing in hindsight that the tumor (which eventually grew to the size of a softball, small actually for the size of some Wilms' tumors believe it or not) was causing him pain and making it impossible for him to eat.
This is you, in sunshine, just before.
into the papery leaves, into the fruit.
for her turn by your mother.
your round belly. You are laughing.
and colored by the autumn sun.
For all that we know, this is danger.
This is the most that we fear.
gathered as winter draws near.
We had a guy in the office the other day learning more about OCW for a potential project at a well-regarded US institution. He happened to have a background in banking and had some interesting perspectives on the current financial crisis. He had in fact prepared a briefing on it, first for some friends and later his town asked him to give the presentation, and he'd most recently been asked by a few companies to give the speech. After our meeting, he was kind enough to share the slides and a few highlights from the talk, and it helped to crystailize a growing concern of mine–that we've entered an age where our problems are exponential.
It's a little hard to take in the scale of the economic meltdown we are experiencing, but a few data points stand out: As recently as 1990, total global GDP and the value of derivative markets were roughly equal at about 12 trillion dollars each; by 2007, the value of global GDP had increased to around 55 trillion dollars, while in the same span, derivatives had exploded to over 500 trillion, a wild escalation of poorly regulated activity that came crashing down. In Iceland, just one bank that collapsed was holding assets valued at 623% of Iceland's total GDP.
While I can't claim to have a solid grasp on many of the details of the financial mess, what is clear from these figures is that an important component of the problem was the exponential growth that fed it. What scares me is the prospect of runaway exponential growth of other problems, most obviously the environment. We're used to having linear effects on the environment, but climate change isn't happening in linear fashion. I think one of Tom Friedman's goals in Hot, Flat and Crowded was to scare the crap out of people with respect to the environment, and with me anyway, he succeeded. Do we really want to have and ecological crash on the scale of our current economic one? It may be more than possible at this point–it make be somewhere between likely and inevitiable, and sooner than we think if it is exponential.
We need to be thinking of exponential solutions to exponential problems, and that's one reason I think OpenCourseWare is important. We're going to need all the good ideas we can develop as fast as we can develop them in a wide range of disciplines if we are going to address climate change. It can be done, but it'll be the single biggest coordinated effort that humanity has ever undertaken, and we need to help everyone understand why, and access everyone's best ideas to figure out how. OCW puts resources out there in a scalable fashion to do both.


Robert Leon Robinson, 73, a native of Mississippi and a resident of Mobile, AL, passed away on Sunday, January 27, 2019. He was born on August 24, 1945 in Quitman, MS, served three years in the United States Army, is a Vietnam War veteran and a member of the Mobile Young Men's Christian Association (YMCA). Robert was an avid handball player, worked over thirty years in the construction flooring industry, and was former owner/operator of Mobile Tile Inc.
He is preceded in death by his parents, Leon and Jeraldine Robinson; brother, Dale Robinson, and daughter, Donna Beth Robinson.
Robert is survived by his wife of 35 years, Connie Robinson; children, Janet (and husband Steve) Lewis of Mobile, AL, Kimberly (and husband Mickey) Jones of Jasper, GA, Robert (and wife Aicha) Robinson of Great Falls, VA, Coleman Robinson of Jackson, MS, and Courtney Robinson of Mobile, AL; grandchildren, Ethan Jones, Evan Jones, Yusef Robinson, Layla Robinson, Ryan Robinson, and Sydney Robinson; brother, Lewis Robinson; many other relatives and friends.
A celebration of Robert's life will be held with visitation from 5:30 – 8:30 PM on Saturday, February 9, 2019 at The Aircraft Pavilion at Battleship Memorial Park, 2703 Battleship Parkway, Mobile, AL, 36602. In lieu of flowers, donations may be made at https://www.gofundme.com/survivor-benefit-fund-for-connie-robinson. Expressions of condolence may be offered at www.hughesfh.com. Hughes Funeral Home & Crematory, 7951 American Way, Daphne, AL, 36526, is assisting the family.
Our family is very saddened to learn of "Pop's" passing as we always knew him growing up, it is even sadder to know we lost contact in the later yrs. after his Mom's passing. Our sympathy and prayers go out to his family, God Bless and comfort each one.
My condolences and prayers to the family especially to Kim and her family as Kim and I have had many conversations and prayers for each other's family over the years. May God bless this family.
My condolences and prayers to the family especially to Kim as we have had many conversations and prayers for our families over the years. May God bless this family is my prayer as you say send your father to heaven.


MemberMouse is a WordPress membership plugin which integrates with almost any WordPress website. It supplies a full-featured alternative for memberships, including content restriction, flexible billing options, content dripping, restricting logins, and supports developer tweaks and adjustments. In addition, MemberMouse can provide upsells to members, or automatically offer downsells to customers that wish to cancel in order to improve client retention and maximize revenue. MemberMouse additionally allows members to upgrade or downgrade memberships .You may check out a full feature listing from MemberMouse to all the juicy details in one spot, or see our summary of some MemberMouse features.
Once products are made, you can then create membership accessibility levels to tie to any of your membership products. These membership levels will establish the content limitation principles for members. But, you can also edit the accessibility rules on a per-post or even per-page basis.When you make a membership level, you can assign that access level to a specific item. This is precisely what I had been talking about in terms of versatility — you can assign an access level for as many goods as you want, so if you provide promotional pricing for email readers or testimonials from the affiliates, you can tie the same access to each of these products.You will also select which categories will be protected for that access level from the same display. Multiple post categories can be selected for access. As a default, access will be limited for the whole post for every single post in the category. However, it is possible to get around this to exhibit post excerpts and teasers with Smart Tags. Access can also be set on a per-post or per-page basis while editing a page or post. The article / page editor is where you are going to handle content dripping. Dripping is flexible and super-simple, as you may specify a delay in access for every membership level concerning days.After content dripping is set up, it is possible to view schedules for each membership degree under Product Settings > Content Dripping Program to get a general view of if each access level can view content. This webpage will also enable you to mass edit access rights for each membership level, and customize content dripping times for each access level. It's really helpful for all those of you that currently have a good deal of content created, and just want to assign drip times and access rights from one display.Not sure how it will look to each member? MemberMouse includes a cool feature where you can preview articles from a certain access level's point of view, and even from a number of days into the membership (to determine the way your content dripping will affect what members view ). Look at the top of your screen when previewing your own site.
Before you start setting up your site to market membership products, you'll want to check out a few of the built-in shortcodes for MemberMouse, known as Smart Tags. It is possible to use smart tags to add buy links for your merchandise, selectively restrict (or eliminate restrictions from) certain pieces of content to create excerpts, and show member data. By way of example, you can show a member's name on mails or welcome pages, content according to their membership level, or display content based on which affiliate referred the member to your site.Bright tags also allow you to insert links that allow members to handle their own subscriptions, upgrade memberships, or purchase new products. As you can customize the member's"My Account Page", you can upsell bundles for all members, or dynamically display upsells for every membership level.
MemberMouse has another sales choice of which you can take advantage. Participants can't buy more than 1 membership level using MemberMouse. But, you may use a different content restriction tool, known as a bundle, to supply a topic-based membership. This is also the way you're able to offer upsells to present members. You can assign many goods to a bundle in the exact same way which it is possible to assign multiple goods to a membership accessibility level. Packages permit you to enlarge the content access that a product provides when used in this manner.Because Packages are tied to products in precisely the same way as membership accessibility, bundles may also take advantage of material dripping. The advantage to using packages is that members can purchase more than one package at one time.
While MemberMouse automatically creates a lot of pages, it does not create a catalog or sales page. For me personally this is a great thing, as I think selling memberships to potential users requires long-form content anyhow — members probably aren't going to visit your website and browse for memberships straight away.To sell memberships, you'll need to create pages or posts with purchase links. It's possible to copy purchase links from your merchandise settings for each product, or create a purchase link using a smart tag if the link has been posted in your WordPress site (which is what we've done in the screenshot). You can also utilize MemberMouse's built-in button styles instead of the ones out of your motif (mine are a bit lackluster since we are using the default theme).
MemberMouse costs are dependent on the amount of users for your membership website, yet MemberMouse isn't a genuine SaaS solution, since the MemberMouse plugin runs on your servers. You install the plugin on your site, but may also possess a MemberMouse account; your site then checks in with the MemberMouse licensing server to deliver data on site usage. Because of this, site performance is entirely determined by your hosting and surroundings.MemberMouse pricing ranges from $20 a month for 1,000 users as much as premium and professional plans at $300-600 a month for sites with more than 100,000 users (service is included for the majority of programs ). Each pricing tier provides different benefits (such as premium support starting with innovative plans), but here's a rough breakdown of price based on number of consumers.
Billing is extremely flexible with MemberMouse, and bicycles are totally customized. In addition, you are able to bill a one-time fee for memberships (though I would recommend avoiding this unless you are just beginning, as you'll always have to pursue new members, which kind of defeats the purpose of a recurring billing version ).You might also use coupons with MemberMouse, and determine whether to use them to the initial billing cycle or the life of this membership. Coupons can provide a percent a dollar-amount reduction. Coupons are also created to provide an entirely free membership, or you might create a membership for a client yourself and comp that subscription instead. Coupon use can be restricted to specific products or quite a few applications.The best part about billing is that you may control recurring billing actions, such as refunds, straight from MemberMouse rather than logging in to your account with your payment processor. It's possible to use one onsite payment system, for example Stripe or Authorize.net, and at the exact same time use PayPal or ClickBank to provide up to 3 payment options.As cards are tokenized and saved to get members, MemberMouse can also help automate late payment handling to save your client management team time and keep your revenue stream flowing. When MemberMouse detects that a card was declined, it marks the member's accounts as overdue, then sends the manhood and email requesting him to login and update the card info in the accounts. The member is then instantly charged the sum as a result of member account is reactivated.
MemberMouse isn't designed to be an eCommerce system, but it can permit you to promote some physical goods through your site and also to sell physical goods with subscriptions, such as magazines (though I think it does a much superior job with virtual products than physical goods ). When you create your product, you indicate it as"shippable", then set up basic shipping prices (such as regular and expedited shipping).Personally, I'd only include shipping as part of their membership prices a month (and promote this fact!) To simplify my shop management, however, the delivery methods can be useful for promoting'swag' items and other bodily products for your site.
MemberMouse includes a couple of integrations built in to assist you with your website management. First, email is essential for communication and participation. Rather than install an internal email system, MemberMouse integrates directly with email advertising companies like MailChimp and AWeber. You can take advantage of this integration to handle your relationship with members having an email platform you're already familiar with, and moving members between automatic lists to save you time.MemberMouse also incorporates with iDevAffiliate to handle affiliates for your membership site. When customers have been sent in an affiliate, this will be noted in the member account, and you'll be able to opt to dynamically display content or provides to associates based on which affiliate referred them to your site.
If you're an advanced user, or possess a programmer on staff, it's possible to further automate a good deal of MemberMouse functions. Besides clever tags (shortcodes in WordPress lingo), there are plenty of actions and filters available, as well as a well-documented collection of global purposes for use in templates and other customized code.In addition, it is possible to make push notifications for site administrators and associates for occasions such as new member signups or payment receipts. However, these push notifications can also be used to trigger actions in third-party integrations (i.e., sending information to an accounting program ). MemberMouse additionally has an API that programmers can use to incorporate MemberMouse with outside systems, which isn't true with all plugins. This permits you to create, get, and upgrade information about members.
MemberMouse provides huge functionality and will make it possible for you to treat your membership site like a business rather than a hobby. Establishing a website and basic material limitation is simple (especially with the help of this"Getting Started" videos), but far more personalization is possible in case you're willing to generate a time investment in website optimization and setup. There is definitely a learning curve involved with using MemberMouse, but it's in proportion to the sum of functionality you escape the plugin, as it has virtually everything you could want in a membership platform.


Achieving both a healthy and a responsible investment return can be a major challenge today. Yet there are still plenty of opportunities available, although all too often we assume they involve too many risks. This stigma affects securities lending. But in our opinion, this isn't justified because if you approach this in the right way you can generate extra income while minimizing risk. At the same time, you can recall securities at any time while also continuing to comply with your ESG policy.
Securities lending is a relatively easy way for investors to generate additional returns on stocks that are not being sold or that do not fit in with the long-term investment policy. And the returns generated are in addition to the current dividends and price gains you already receive.
Securities lending is the temporary lending of securities, whereby legal ownership is transferred to the borrower. However, economic ownership remains with the lender throughout the entire lending period. In other words, if you invest in shares, you can lend them to third parties while retaining the beneficial ownership. These shares are lent out against the payment of a "loan fee" and you receive security in the form of non-cash collateral.
The securities lending market continued to grow in 2018, particularly in the area of non-cash government bonds.
In today's market, with low interest rates, yields alone are often insufficient to support long-term strategies. Securities lending can be a good addition to your investment strategy, whereby you can achieve extra returns with a responsible level of risk. Many investors engage in securities lending, including the European Central Bank, which lends out the bonds it has bought.
For institutional investors, securities lending is a good tool, with a low risk profile, to generate additional returns on securities that remain in the portfolio for a long period of time. By lending them to carefully selected parties, you can generate additional income, while the securities lent out are available on demand at any time.
Assets are borrowed to make the settlement process run smoothly. Loaning securities provides more liquidity. It also has a risk mitigating effect. On the one hand, extra return is generated in a responsible manner; on the other hand, investment strategies can remain unchanged and you can meet the margin requirements at all times.
When securities are lent out, liquidity is exchanged between market participants in a fully collateralised manner. This offers market parties the opportunity to comply with a margin requirement driven by legislation and regulations, such as the European Market Infrastructure Regulation (EMIR). Or they can meet a delivery obligation towards the counterparty or the Collateral Support Annex (CSA).
What questions do you need to ask yourself if you want to lend stock?
For example, can you continue to exercise the voting rights on the lent shares yourself? The securities lending programme can be designed according to your wishes, including the possibility of using the voting right yourself.
Is the programme fully collated? The value of the collateral is always higher than the value of the securities lent out. You will receive collateral daily on the collateral account with which you are fully collated.
What consequences does lending securities have on my ESG policy? Your policy will also be applied to the collateral. You will not receive securities as collateral that do not fit in with your ESG policy.
Based on your answers to these questions, you can decide whether you want to lend out your securities and under what conditions you want to do so.
We can fully support you in lending your investment portfolio. Within a defined risk framework and under clear collateral conditions, you can thus generate an optimum return. Our global network enables us to lend your liquidity at low risk, without accepting cash or financial institutions as collateral. We also periodically check the creditworthiness of the counterparties or, if desirable, on an ad hoc basis.
We offer you a transparent and fully customised programme that complies with your ESG policy and principles. We also offer the possibility of providing customised reports on your securities lending activities. Our securities lending programme is an ISAE 3402 process and is therefore subject to both internal and external audit and we are a member of the International Securities Lending Association (ISLA).
We can help you set up a securities lending programme free of charge. We can create a low risk, safe, flexible and customised programme that enables you to generate extra returns or realise cost savings on securities in your portfolio that are held for a long period of time. If you want to learn more, please contact your relationship manager.


On Tuesday night, amid a nor'easter that dropped more than a foot of snow on the city, Queen Elsa of Arendelle sprang into action.
Boston resident Chris Haynes was eating tacos at South End restaurant The Gallows when he saw the winter-loving queen run outside from the gastropub to help free a Boston police wagon from the snow — to let it go, if you will.
As of this article's publication, the video had 3.2 million views.
The Elsa impersonator — who wore a blue and white dress and a silvery, braided wig — was Jason Triplett, a 37-year-old attorney from Boston, according to The Boston Globe. Triplett visited The Gallows Tuesday night dressed as Elsa to make his friends laugh, Triplett told the Globe.
In the video, Triplett repeatedly tries to free the wagon from the snow until he is finally successful.
Haynes said patrons inside the restaurant cheered Triplett on and then burst into applause when the wagon was freed. Triplett curtsied after the wagon drove away.
"The officers involved were especially grateful for the help and would like to thank the Elsa-impersonator for the assist," Boston Police Officer James Kenneally, a spokesman for the department, told the Globe.
Haynes, a restaurant publicist who represents The Gallows, said he had not met Triplett before Tuesday and that the video "was absolutely not staged." Haynes said he fielded media calls Wednesday morning from People, The Washington Post, TMZ, and from publications as far away as London, Brazil, and Ireland.


Increases hair thickness up to 96% after three applications. Protects against humidity and frizz for up to 48 hours. Significantly increases body for up to 24 hours. Non-flaking, brushable finish. Reactivates upon reapplication. Increases shine.
Directions: Shake well. Apply evenly to damp hair from roots to ends. Comb through to ensure even distribution. Blow dry and style as desired. Reapply on dry hair and comb through for a refresh.


Food: the last frontier of addiction. Tune in to hear more about the mental/psychological processes that go on while fasting. Let's be honest. Most humans on earth today have an eating disorder – or at least, disjointed, disordered eating. We have little idea where our food is coming from or often what's in it (think restaurants). Thus, we are left with a disconnection and imbalanced relationship to food. With added chemicals, flavoring agents and concentration of calories in non-natural foods, our brain is simply hard-wired to LOVE the experience of eating. Surely, food is fuel calorically. But on the level of stored energy (think: fat on thighs), stored minerals and nutrients? we are well-prepared to undergo a journey to break our addiction.


and The Voice for Practical Mortgage Lending in the State of Texas!
Decisions made by the State Legislature impact not only your livelihood, but your customer's access to mortgage money as well. In order for our voice to be effective in the legislature, we must be successful at raising funds. We have the ability to support candidates who share our industry views. Also, we have a responsibility to protect not only our businesses, but an availability of competitive mortgage money to consumers. TMBPAC is a vehicle for individuals to collectively become involved in the political process in support of issues important to their work and lives.
Defeated 2 bills that would have made Texas out of compliance with SAFE and potentially risking CFPB takeover of mortgage licensing for Texas originators.
Successfully defended mortgage lien priority in opposing and successfully modifying 3 separate bills.
Regislation requiring a new separate (and duplicative) disclosure of any prepayment penalty on a home loan.
TMBPAC's mission is to provide funds and direction for action to be taken on legislative initiatives. Our goal is to provide funds necessary to promote TMBA legislative objectives, while encouraging total member involvement of contributions from each mortgage banker in the State of Texas.
Your TMBPAC contribution works collectively with that of other mortgage industry professionals to help candidates favorable to our issues. Your contributions go directly to candidates who share our philosophies and listen to our viewpoints. Your contribution reflects the commitment of our industry statewide. Help protect the mortgage industry in Texas by making a contribution to the TMBPAC today!
All PAC contributions, like all other political contributions, must be made by individuals. Contributions can be accepted from individuals, sole proprietorships, partnerships and other political action committees. Corporation's cannot fund TMBPAC. Mortgage bankers who operate as an individual or on an entrepreneur basis can contribute in that individual capacity. All political contributions are of public record and all PAC's are required to make periodic reports to the Texas Ethic's Commission of all contributions received and all contributions made to candidates. A PAC can make a contribution to another PAC unless it is precluded by its bylaws or governing documents. Contributions made to the TMBPAC are neither deductible as a business expense nor as a charitable contribution. Make your contribution online today!
TMBA faces the challenge to protect Texans in the real estate finance industry by proactively supporting legislative initiatives that move us forward. It is important for us to draw upon our collective experience to educate the Texas Legislature about financial services that are beneficial to Texans, as well as the real estate finance industry. What happens in Austin is critical to the ability of mortgage lenders to engage in mortgage lending fairly and profitably in this State. Collectively, we can make a greater impact in shaping elections than we can individually. Make a contribution to the TMBPAC and join with mortgage bankers and other industry professionals to help determine who gets elected to public office in this State and who will make the crucial decisions that affect our business.


text:
Pumpkin Souffle Puddings
By Danielle, November 21, 2015
Thanksgiving is the one holiday that is completely and unapologetically about food. Ok, it's about being thankful for that food, but still. There's no other agenda except appreciating the sheer bounty on your plate.
But with so much cooking to do for the main event, many people opt to let the local bakeries handle dessert. That's all fine and good for non-bakers, but for me, making pie is my favorite part of Thanksgiving. I could happily skip the whole meal and just serve pie. So no matter how busy I am, no matter how many people are coming, and no matter how many dang side dishes I have to prepare, I will never outsource the dessert.
But I have figured out a little shortcut.
When there's a minimum of three pies on the menu (because apple, pecan and pumpkin are musts, of course) that's a lot of labor-intensive and, let's face it, fatty crust to contend with. Plus you've got to serve pies the day they're made or the crusts get stale and soggy. I couldn't help but think: Can't we do something crustless?
Since pumpkin pie filling is like custard, I figured it could stand alone. But when I baked the filling in ramekins, it kind of felt like, well, what it was: pumpkin pie without the crust. What I needed to do was change the texture just a little bit, to make it different enough so that it didn't seem like something was missing, but similar enough so that it still felt like I was getting my pumpkin pie fix.
The solution: dialing back the liquid, adding a little flour, and folding beaten egg whites into the batter. The result is a souffle-like pudding-cake of sorts with the exact flavor of a fabulous pumpkin pie.
Whether I'm baking a traditional pumpkin pie or making these puddings, I always go heavy on the spices, using hefty doses of cinnamon and ginger, then rounding things out with allspice, nutmeg and clove. I also precook the spices along with the pumpkin puree in a saucepan, so that the flavors can meld and deepen with the heat. It's a trick I learned from Cook's Illustrated. I also use dark brown sugar, because I think the molasses flavor works so well with those spices.
The best things about these little pudding cakes is they keep for days in the fridge, so you can cook them well in advance. And if you have some left over, no problem, because there's no crust to get soggy.
I will fully admit that I've eaten them for breakfast (they are made with eggs and a vegetable after all). But their highest calling is as an easy, make-ahead, elegant fall and winter dessert, especially when you add a dollop of spiced or boozy whipped cream and a thin ginger cookie.
When you want pumpkin pie, but not the pie part, make these. They're a great do-ahead dessert for Thanksgiving, or any fall and winter holiday, and won't disappoint anyone craving a traditional pumpkin pie.
1 (15-ounce) can unsweetened pumpkin puree
1 1/2 teaspoons ground ginger
3/4 cup packed dark brown sugar
Preheat oven to 350 degrees. Butter eight 6-ounce ramekins. Bring a kettle of water to a boil.
In a medium saucepan set over medium heat, combine the pumpkin, spices and salt. Cook, stirring, for 3 to 5 minutes, until the mixture is hot, fragrant and a little darkened. Remove from heat. Add the butter and brown sugar, stirring until melted and combined. Whisk in the milk, egg yolks and vanilla until combined, then stir in the flour.
In the bowl of a standing mixer fitted with the whisk attachment, beat the egg whites on high speed until soft peaks form. While beating, sprinkle in the granulated sugar, a little at a time, and continue beating until the whites form stiff peaks.
Fold one-third of the egg whites into the pumpkin mixture to lighten it, then fold in the remaining egg whites. Divide the mixture among the prepared ramekins, filling them all the way to the top (they won't puff too much).
Set the ramekins in a large roasting pan or baking dish and place on the middle rack of the oven. Pour the boiling water into the pan to make a water bath. Bake, uncovered, for 30 to 40 minutes until puffed and cooked through. Remove from heat and allow to cool. Refrigerate until ready to serve. (Pudding cakes will keep, refrigerated, for several days.)
To serve, add a dollop of sweetened whipped cream and a garnish with a thin ginger cookie.
Tagged: dessert, holidays, Recipes
Brussels Sprouts Everyone Will Love

redpajama_set_name: RedPajamaCommonCrawl


text:
Reasor's Foods
Oreo Stacking Contest 2017
Reasor's is challenging you to come test your OREO Stacking skills at ONEOK Field on select games throughout the season. Visit the Reasor's and Nabisco Oreo booth on April 30th, May 7th, May 21st, and June 4th to test your stacking skills at the 1:05 pm games. Everyone ages 6 to 11 is encouraged to compete with a parent or guardian to see who can create the tallest stack of OREO cookies in 30 seconds and become the Master Stacker… without the stack toppling over.
All you need are steady hands and, of course, OREO cookies to battle to become the Reasor's Oreo champion and WIN the opportunity to compete in the Ultimate Master stack off challenge at ONEOK field on June 25th at the 1:05 pm game, when the Tulsa Drillers take on Northwest Arkansas Naturals and compete to become the Reasor's Ultimate Master Stacker.
Who plays to be the OREO Stacking Challenge Ultimate Master Stacker?
Any kid 6+ (children ages 6-11 must participate with a parent/guardian)
Participation is in teams of 2. One will be the Cookie Distributor and one will be the Stacker.
How do you play?
Team has 30 seconds to stack OREO cookies as high as possible, without them toppling over
(Only 1 stack per team is allowed)
Prior to "GO", the Stacker (child between the age of 6-11 to qualify) may have one cookie
The Cookie Distributor (parent/guardian) will hand over cookies as needed
The Stacker may only stack one cookie at a time
After 30 seconds, all stacking must halt (time will be kept by the Engagement Specialist)
Cookie stack must stand for at least 3 seconds after the 30 second time limit has expired
(Engagement Specialist) will measure the height of the stack & marvel at the stacking talent of the team!
The top 5 finalists from each game will then move onto the championship game where they will once again compete to be the Ultimate Master Stacker.
Who WINS the OREO Stacking Challenge?
Five finalists and their guardian from each game will be chosen to compete at the Ultimate Master Stack-off game, totaling 20 finalists that will compete.
The finalists will receive a $25 Reasor's Gift Card and 2 tickets to the Sunday, June 25th, Tulsa Drillers game at 11:59 am taking place at ONEOK Field in Downtown Tulsa, OK.
The Reasor's Ultimate Master Stacker challenge will win:
$100 Reasor's gift card
Family Fun Pack for 4 to Incredible Pizza, valued at $80
Family 4-pack to the Oklahoma Aquarium, valued at over $60
Ultimate bragging rights!


text:
O Compact Disc Read Only Memory (sigla CD-ROM), em português: Disco Compacto - Memória Somente de Leitura, é um tipo de CD desenvolvido em 1985.

O termo compacto deve-se ao seu pequeno tamanho para os padrões vigentes, quando do seu lançamento, e memória apenas para leitura deve-se ao fato do seu conteúdo poder apenas ser lido e nunca alterado. O termo foi herdado da memória ROM, que contrasta com tipos de memória RW como memória flash.

A gravação era feita pelo seu fabricante. Existem outros tipos desses discos, como o CD-R e o CD-RW, que permitem ao utilizador normal fazer a suas próprias gravações uma ou várias vezes, respectivamente, caso possuísse o hardware e software necessários.

Os CD-ROMs podiam armazenar qualquer tipo de conteúdo, desde dados genéricos, vídeo e áudio, ou mesmo conteúdo misto. Os leitores de áudio normais, só podem interpretar um CD-ROM, caso este contenha áudio.

A norma que regulava o CD-ROM foi estabelecida em 1985 pela Sony e Philips.

Estrutura
Basicamente, um CD-ROM é constituído de um disco de plástico transparente com duas faces, e um orifício no centro. A uma das faces deste disco, é aplicada uma liga metálica de alumínio, onde serão efetivamente armazenados os dados, e que cobre a maioria da superfície. Por cima da outra face são geralmente impressas imagens ou caracteres. Ambas as faces devem ser tratadas com cuidado, mas esta última especialmente, pois o menor dano pode inutilizar todo o disco. A face oposta é deixada limpa e livre para que o disco possa ser lido.

Funcionamento

Na liga metálica que cobre uma das faces do disco, degraus microscópicos, intercaladas com espaços (sem ação do laser), são impressos de forma contínua e em espiral, desde o centro até o limite exterior. Estas depressões e espaços, correspondem a 0s e 1s - bits ou dígitos binários - que são posteriormente codificados em informação pelos leitores de CD-ROM.

Fabricação do CD

 O cliente manda para a fábrica o material da gravação de áudio ou dados em um CD-R, e envia mais um outro CD onde tem os arquivos das artes do material gráfico e do rótulo do CD.
 O CD-R será copiado e enviado ao setor de pré-masterização e o outro será encaminhado para o setor de pré-impressão, onde eles serão analisados.
 No setor de pré-masterização são verificadas fisicamente as condições do material enviado pelo cliente. Quando constatado que a informação pode ser "lida", o CD é enviado para a masterização.
 No setor de pré-impressão, os critérios das artes de material gráfico e rótulo são analisados. São verificados os dados como dimensões, localização das dobras, dados obrigatórios do solicitante e fabricante, etc. Quando aprovadas, as artes seguem para a produção.
 Seguindo da informação original e produzida a matriz (glass master) feita de vidro, com tamanho maior que o CD comum. No CD de vidro é colocada uma camada de fotossensível. Essa substância é aplicada a raio do laser e revelada como uma foto. Após o término do processo serão formadas micro cavidades, chamadas "pits". Na próxima etapa vai ser aplicada uma camada de níquel sobre o CD, terminando a masterização.
 No processo de eletroformação, o glass master é banhado através do processo eletroquímico, que torna a camada de níquel mais grossa, assim formando uma matriz metálica chamada de stamper.
 O stamper é separado do vidro, que serve para reaproveitamento. A matriz metálica passa por um processo de lixamento e corte, e vai para o setor de replicação.
 O stamper é posto em um molde na máquina que injeta policarbonato. Esse material se molda ao stamper, que forma um CD, e ainda recebe uma camada de alumínio e uma de verniz para proteger.
 Depois de replicado, o CD é transportado para o setor de silk screen, onde é impresso a arte do produto conforme as fotos enviadas pelo cliente.
 Depois de tudo isso o CD está pronto.

Capacidade
Alguns anos antes de 2005, os CD-ROMs com capacidade/tamanho de 650 megabytes (MB) foram substituídos pelos de 700 megabytes, passando então estes a ser os mais comuns, existindo, no entanto, outros formatos superiores. Mas, atualmente existem CDs de até 2 gigabytes (GB) de capacidade.

Ver também
 CD-R
 CD-RW
 DVD-ROM
 Blu-ray
 HD-DVD

Dispositivos de armazenamento
Mídia de armazenamento de computador com disco rotativo
Normas Ecma
Mídia de armazenamento óptico de computador
Armazenamento óptico de computador

redpajama_set_name: RedPajamaWikipedia


HB 2281 is a state law which outlawed public school classes that advocated "the overthrow of the U.S."
Tonight the Tucson Unified School District will reconvene for a second attempt at discussing a proposed resolution to strip the district's ethnic studies program of its accredidation. The meeting was rescheduled after students took over, and subsequently shut down, a scheduled meeting last week.
Some would have you believe this action was taken by a group of students who just made a plan to express their dissent. That is not accurate.
It is clear adults both helped to plan and influence the outcome of that night.
Pedicone is then both deeply insightful about and dismissive of the concerns students have.
In my opinion, students have been led to believe their basic rights to an honest discussion of their heritage are at risk. Students have been convinced the school district is attempting to eliminate a program that simply tells the truth and this action is associated with concerns about immigration and a broad range of issues at the state and federal levels.
Students have been exploited and are being used as pawns to serve a political agenda that threatens this district and our community.
Pedicone also said that the resolution, which would effectively dismantle the district's successful and long-running Mexican-American program, would allow students to only take the history courses for elective credit. Currently, they can be taken to satisfy the state's core Social Science requirements. Tucson educators have argued that students who move through the program do better in school and have higher graduation rates than students who don't take the courses.
The fight has bubbled over in the year since HB 2281 was passed. HB 2281 is a state law which outlawed public school classes that advocated "the overthrow of the U.S.," and whose proponents admitted was a bald attack on Tucson's ethnic studies program. The state of Arizona had ordered an audit of the Tucson program, though that's been mired in its own political baggage as well. Tucson also offers African-American and Native-American studies courses that have not been singled out for elimination in the same way.
Now, state legislators are stepping in and supporting students' demands to hold off on the resolution, KGUN9 reported.
"For the school district to move forward without having the audit and having to see what the superintendent is saying is just premature, so were saying hold off. Hold off," said Rep. Steve Gallardo.
Change.org has a petition up urging Tucson Unified to veto the proposed resolution.


I was trying to make a simple detector to find whether a wireless charger is defective or not. This detector is a voice coil from an old hard drive connected to a LED. This appears to detect power from an electric tooth brush charger and an Ecolite charger. A 30 turn coil made from magnet wire connected to LED also will work. The voice coil appears to have the right inductance to resonate to 30 Kc, the usual frequency of wireless chargers. I am not repeating the procedure to take the voice coil out because that can be found on the web in many postings. Please see the videos. The photo shows the location of the voice coil in the read/write head of the hard drive.
The 1st video is an electric tooth brush charger and the 2nd is an Ecolite charger.


text:
Q: Dart- getting unused variable notification even after using it What am I missing over here? I get this unused variable message even after using the variable. Here below the _userProfileImgae variable is used inside of the GestureDetector widget, but when I hover my mouse over the decalaration I get the unused variable message. Also, somebody please explain when I should be using the this prefix to a variable. I see some places it works without using the this prefix and some places not.
class _ProfilePictureState extends State<ProfilePicture> {
  late File _userProfileImage;
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        children: [
          Row(
            children: [
              GestureDetector(
                onTap: () async {
                  final _picker = ImagePicker();

                  PickedFile image = await _picker.pickImage(
                      source: ImageSource.gallery) as PickedFile;

                  if (image != null) {
                    setState(() {
                      this._userProfileImage = File(image.path);
                    });
                  }
                },
                child: Image(
                  image: AssetImage('assets/icons/plus_icon.png'),
                  width: 300,
                  height: 300,
                  fit: BoxFit.fill,
                ),
              ),
            ],
          ),
        ],
      ),
    );
  }
}

A:
I get this unused variable message even after using the variable.

Although you're writing to _userProfileImage, you don't read it anywhere. Here's an example where the variable is being written and read:
class _MyWidgetState extends State<MyWidget> {
  File? _userProfileImage;

  @override
  Widget build(BuildContext context) {
    final File? userProfileImage = _userProfileImage;
    return Column(
      children: [
        Image(
          // =====> READING <=====
          image: userProfileImage == null
            ? AssetImage('assets/icons/plus_icon.png')
            : FileImage(userProfileImage),
          width: 300,
          height: 300,
          fit: BoxFit.fill,
        ),
        TextButton(
          child: Text("Click me"),
          onPressed: () async {
            final XFile? image = await ImagePicker().pickImage(source: ImageSource.gallery);
            if (image == null) return;
            // =====> WRITING <=====
            setState(() => this._userProfileImage = File(image.path));
          },
        )
      ]
    );
  }
}

Also, somebody please explain when I should be using the this prefix to a variable. I see some places it works without using the this prefix and some places not.

Here's another example where using this and not matters:
class Foo {
  final int bar = 5;

  void f() {
    print(bar);           // Outputs 5
    print(this.bar);      // Outputs 5
  }

  void g() {
    final int bar = 10;
    print(bar);           // Outputs 10
    print(this.bar);      // Outputs 5
  }

  void h(int bar) {
    print(bar);           // Outputs the parameter `bar`
    print(this.bar);      // Outputs 5
  }
}


text:
Will Justin Mapp & Dilly Duka Return to the Impact in 2016?
Mapp and Duka - Will they stay or will they go?
By John_Richan@John_Richan Nov 30, 2015, 9:07pm EST
Share All sharing options for: Will Justin Mapp & Dilly Duka Return to the Impact in 2016?
With the Montreal Impact now firmly settled into their off-season the focus now turns to who will stay and who will go. The two players that stick out on the potential departure list are American midfielders Justin Mapp and Dilly Duka. Both players have been solid contributors for the Impact during their time in Montreal. However with the opportunity for a change of scenery and a pay increase these two may seek out new challenges elsewhere.
Mapp:
Justin Mapp is one of the few players left from the Impact's inaugural 2012 MLS season. The Mississippi native was picked up by Montreal in the 2011 MLS expansion draft and over time became a fan favourite. His ability to join the attack from the midfield is one of his hallmarks and what makes him such an exciting player to watch. Mapp has racked up four goals for the Impact in MLS play and has also won the George Gross Memorial trophy as the MVP of the Canadian Championship in both 2013 and 2014.
Although the majority of supporters no doubt hope to see the return of Justin Mapp in 2016, things were different after the 2012 season. After his first season in Montreal, many were hoping that the midfielder would not be resigned after streaky play and his inability to link up with striker Marco Di Vaio. However over time Mapp became more comfortable at the club and found himself as a regular in the starting lineup. Although 2015 was a difficult one for Mapp, due to a number of injuries, he did hit a milestone as the youngest MLS player to hit the 300 games played.
Duka:
Dilly Duka came to Montreal under very different circumstances. The midfielder was acquired by the Impact halfway through the 2014 in a trade with the Chicago Fire in exchange for Sanna Nyassi. In what was a disastrous 2014 campaign, Duka proved to be one of the few bright spots for Montreal. If 2015 was the last for Duka in La Belle Province, he will have the distinction of scoring the first and last goals for Montreal over the course of the season. Duka scored the opening goal of 2015 in the CONCACAF Champions League quarterfinals against Club Pachuca and the last goal during the second-leg of the MLS Eastern Conference semi-finals against the Crew. Dilly Duka always showed up for the important games over his time in Montreal, something that has endeared him to the Impact faithful.
If Mapp and Duka have played their last games for the Montreal Impact there will be a big gap for Adam Braz and Impact management to fill. Mapp and Duka are two players that have been committed to the Impact since day one and provided many memorable moments over the last number of seasons.


text:
Tuvalu: Beneath the Rising Tide
A young boy swims in a flooded area near the airport runway, in downtown Funafuti.
A local woman stands at the narrowest point of Fongafale island in the Funafuti atoll.
A Tuvaluan woman looks out from a boat as it passes through the Funafuti atoll, Tuvalu.
An aerial view of Fongafale island in the Funafuti atoll, Tuvalu.
People play volleyball next to a flooded area near the airport runway, in downtown Funafuti.
Just offshore one of Tuvalu's beaches, a piece of machinery has stood against the waves for more than 70 years. It is a piece of machinery left by American forces during their stationing on Tuvalu during World War 2. The island nation was a key position in the Pacific theatre and was home to some 6000 American troops who launched aerial raids against Japanese forces further north.
Fallen trees in the shallows of Funafuti atoll, Tuvalu. Erosion of land is an inevitable consequence of life in a coral atoll nation. As sea levels rise and increased threats from storm surges and extreme weather events occur, the land of Tuvalu will increasingly become fragile and prone to erosion.
A truck and motorbikes pass through a dumpsite at the northern end of Fongafale island. Waste management is a problem for an island nation such as Tuvalu that's located in a remote corner of the pacific Ocean.
A boy is seen from above as he rides a wave that is travelling in from the Pacific Ocean onto the Tuvaluan coastline.
A young boy swings from a tree on one of the islands in the Funafuti atoll.
An aerial view of an island in the Funafuti atoll, Tuvalu.
South Korean fishing vessels in the main lagoon at the centre of the Funafuti atoll.
Children play in abandoned home in central Funafuti. The Pacific island nation has seen an exodus of people who have already fled to countries such as New Zealand and Australia in search of better economic opportunities and less environmental threats.
A young boy puts his hands over his face near a dead fish on the shores of a beach in Funafuti.
An earth mover lies abandoned and prone to the waves of the Pacific Ocean in Funafuti.
A young boy plays outside a dilapidated church that is being flooded during the spring King Tides.
Tuvalu – 2019
Tuvalu is on the front line of climate change.
This unique country is made up of a series of nine islands and coral atolls totalling only 26 square kilometres in land area, spread out near the equator in the western Pacific Ocean.
With an average elevation of only one meter above sea level, the United Nations has predicted that it may be the first nation to disappear, as a result of rising sea levels.
The fourth smallest country in the world and one of the least visited, the plight of Tuvalu's 11,000 residents has been overlooked and underreported.
https://youtu.be/AHf7kjI3HgY
Video can't be loaded because JavaScript is disabled: Tuvalu – On the Front Line of Climate Change [2019] (https://youtu.be/AHf7kjI3HgY)
Each year, seasonal 'king tides' inundate the islands of Tuvalu, severely flooding large swathes of the country between the months of January and March.
Additionally, the erosion of land, saltwater encroachment during storm surges and difficulties with waste management, all exacerbate the problems Tuvalu faces.
Sean Gallagher travelled to Tuvalu in March 2019 to document the environmental challenges the country currently faces. This is the latest chapter in his long-term work chronicling the effects of climate change in the Asia-Pacific region.
Images from this story are available as prints for either HOME display, or OFFICE settings and exhibitions. Please click the links to learn more.
Bohai: China's Threatened Coastline →
← Uncaged: saving China's songbirds from the poachers' nets [Film]


text:
Tag Archives: 491871-58-0 IC50
14Jul / 2017
Study Goals: Obstructive sleep apnea (OSA) may be the single most
Study Goals: Obstructive sleep apnea (OSA) may be the single most significant preventable medical reason behind extreme daytime sleepiness (EDS) and driving a vehicle accidents. (OR) and 95% self-confidence intervals (CI). An assessment was manufactured from the methodological quality from the scholarly research. Moderator funnel and evaluation storyline evaluation were utilized to explore the resources of between-study heterogeneity. Results: In comparison to controls, the chances of function incident was found to become nearly dual in employees with OSA (OR = 2.18; 95% CI = 1.53C3.10). Occupational traveling was connected with a higher impact size. Conclusions: OSA can be an underdiagnosed non-occupational disease which has a solid adverse influence on function incidents. The almost twofold increased probability of function incidents in topics with OSA demands workplace testing in chosen safety-sensitive occupations. Commentary: A commentary upon this content appears in this issue on page 1171. Citation: Garbarino S, Guglielmi O, Sanna A, Mancardi GL, Magnavita N. Risk of occupational accidents in workers with obstructive sleep apnea: systematic review and meta-analysis. 2016;39(6):1211C1218. model were: type of occupational accident (traffic accident/other work injuries); type of work (commercial vehicle drivers/bus drivers/others); method of analysis (questionnaire/PSG). Publication bias was examined using the funnel storyline32 and was quantified from the Egger check.33 Analyses were performed with Extensive Meta-Analysis, version 2.2.064 (Biostat, Inc. Englewood, NJ 07631 USA) software program. Moderator publication and evaluation bias evaluation were conducted using the statistical R system. Outcomes Our search technique yielded a complete of just one 1,099 research (Shape 1). There have been 794 documents which were discarded because these were not really linked to the intensive study, 33 records had been duplicate documents, and 241 research weren't empirical. From the rest of the 31 papers we'd to discard 5 research because they didn't distinguish OSA from additional sleep problems, 7 because analysis was predicated on non-standardized questionnaires, 6 because they didn't report work-related incidents, and 3 because OR had not been calculable nor reported. The final test for systematic examine comprised 10 research, with a 491871-58-0 IC50 complete of 12,553 individuals. Seven research had been cross-sectional, 3 had been case-control. Test sizes ranged from 87 to 6,933 employees. Quality of research, evaluated with NOS technique, was frequently low (Desk 1). Desk 1 Organized evaluation and research features. Figure 1 Article selection algorithm. Most studies calculated the OR and 95% CI; some studies did not report the OR and 95% CI that 491871-58-0 IC50 were calculated from the number or the frequency of accidents in workers ZPK affected by OSA and in controls. One study evaluated the relative risk34 and another study reported the chi square value of a comparison of workers with OSA and those without OSA.35 In one study,36 an incorrect OR value was recalculated. The different effect sizes were then standardized to the unadjusted OR in the meta-analysis. Most of the included studies34C40 regarded work-related traffic accidents; the others41C43 comprised all occupational injuries. In most cases, the workers were professional drivers, and in one study they were firefighters.43 The three case-control studies38,44,45 recruited observations in outpatient clinics; occupations were then mixed and included both high- and low-risk jobs. The study of Horstmann et al.35 investigating traffic accidents occurring during the previous 3 y, observed up to a 15-fold increase of the accident rate per 1 million driven km in the group with severe OSA compared to normal, and dropping of the motor vehicle accident rate after appropriate treatment of OSA. In two other case-control studies, the increase of accident rate in the OSA group was not significant. The recall period 491871-58-0 IC50 significantly different, which range from 1 mo in the analysis of Barger et al.43 to more than 14 y41 or the whole working life in others.36,42 In addition, the accident rate greatly varied, from a low 1.74 per 100 workers per year in Italian white and blue collar workers,41 to approximately 10% per month in US firefighters.43 The occurrence of accidents was generally self-reported with reference to the previous 3 or 5 y, more rarely drawn from accident recording,40 or compared to them.43 All studies showed high prevalence of OSA and EDS, associated with higher odds of falling asleep at the wheel or having accidents and near-miss accidents (Table 1). One cross-sectional study38 defined cases as responsible for driving accidents; because of this it could not really be contained in the meta-analysis with all the current other research that defined situations as suffering from.
Tags: 491871-58-0 IC50, ZPK


Are you cheerful, enthusiastic, and a quick learner,? Then come join our busy optometry practice. We are looking to hire a full time technician who is willing to work on Saturday. Benefits are available. Experience is a plus however we are willing to teach the skills for the right person.


"The role of the compulsory school, in cooperation with the home, is to encourage pupils' general development." From Article 2 of the Compulsory School Act.
Primary school is the second level of schooling. Primary education is compulsory, meaning that children and young people between the ages of 6 and 16 must attend.
Parents are obligated to register their children at a primary school and are responsible for their attendance. Application forms and further information can be obtained from the websites of most primary schools and local communities.
According to the Primary School Act, children and adolescents who have difficulties studying because of social and emotional problems are entitled to receive special support with their education.
Local communities provide specialist services for primary schools in the form of psychological, student and educational counselling. Arrangements differ between local communities. Schools refer cases to different departments with the approval of parents, and parents may, moreover, apply directly for assistance.
If a dispute arises between the guardians of a child and the school concerning a student, and no agreement is reached, either party may refer the case to the school council and subsequently to the Ministry of Education for resolution.
Primary education is divided into three levels. At the youngest level the students are in first to fourth years; the mid-level has students in the fifth to the seventh years; and the highest level, the level for adolescents, has students in the eighth to tenth years.
At primary school children remain in school for the duration of the school day, which is continuous, with breaks between classes and a lunch break. The school term is a minimum of 9 months per year, 180 school days.
Students in the upper classes of primary school can study through distance learning at secondary schools concurrent with their primary-school education. Educational decisions are made in consultancy with the school administration. Further information on distance learning can be obtained from the websites of secondary schools.
The education of children and adolescents in primary schools operated by the local communities is free of charge. On the other hand, there is a special tuition fee for children and adolescents in private schools. There are no waiting lists in the primary schools.
Disabled children are entitled to primary school tuition where they are domiciled. Their education shall take place in the public schools with the necessary support service or in specialised school departments, according to the Primary School Act.


text:
Black Listed Entertainment Sports
Ariana Grande to Perform During 2015 NBA All-Star Game Halftime Show
Ariana Grande will continue a stellar year when she headlines the NBA All-Star Game halftime show during the Entertainment Series presented by JBL on Sunday, Feb. 15. Grande will take the stage live from New York City's Madison Square Garden at halftime of the game, which will air live at 8:00 pm ET on TNT.
Grande's halftime performance will occur one week after the pop singer takes the stage at the Grammys for the first time on Feb. 8. Grande is nominated for best pop duo/group performance for "Bang Bang" (with Jessie J and Nicki Minaj), as well as best pop vocal album for sophomore LP My Everything, which debuted at No. 1 on the Billboard 200 chart last September.
In this article:all star, ariana, game, grande, halftime, NBA, show
Dwyane Wade and Supporting Men on Paternity Leave
NBA Stardom Isn't a Cure for Mental Health Issues
Kings' De'Aaron Fox Honors His Mom's Breast Cancer Fight
Toronto Raptor Kyle Lowry Wants Fan Banned for Life After Being Shoved by Him During NBA Finals Game 3 [VIDEO]


Lionsgate Home Entertainment has officially announced and detailed the Academy Award Winning 'Room' starring Brie Larson, which interestingly will arrive home on Blu-ray and DVD on March 1, 2016 which for those not keeping track is tomorrow. You can read the full announcement below.
SANTA MONICA, CA (February 29, 2016) – Academy Award® and Golden Globe® winner Brie Larson (Best Actress, Room, 2015) and Screen Actors Guild Award nominee Jacob Tremblay (Best Supporting Actor, Room, 2015) bring to life the fearless determination of a mother and child who risk everything to break out of captivity and embrace their freedom in the critically acclaimed film ROOM, arriving on Blu-ray (plus Digital HD) and DVD (plus Digital) on March 1 from Lionsgate Home Entertainment. Adapted from The New York Times best-selling novel, and theatrically released by A24, the 2016 Oscar®-winning ROOM is a "one-of-a-kind, must-see experience…nothing short of astonishing!" (New York Post). Rotten Tomatoes Certified Fresh, the "extraordinary" (People) film has been named one of the best movies of the year by Vulture, Entertainment Weekly, IMDB, Indiewire, and the Los Angeles Times, among many others. Larson has won Best Actress awards from the Independent Spirit Awards, Screen Actors Guild, National Board of Review, and multiple film critics' societies for her portrayal of the fiercely protective Ma. Directed by Lenny Abrahamson (Frank), the "life-affirming and awe-inspiring" (Collider) story features heart-wrenching performances by Academy Award® nominees Joan Allen (Best Actress, The Contender, 2000; Best Supporting Actress, The Crucible, 1996; Best Supporting Actress, Nixon, 1995) and William H. Macy (Best Supporting Actor, Fargo, 1995) as parents who have finally been given back their daughter, and Sean Bridgers (HBO's "Deadwood") as the man who abducted her.
Winner of the People's Choice Award at the 2015 Toronto International Film Festival, the ROOM home entertainment release includes audio commentary with the director and production team along with three behind-the-scenes featurettes. ROOM will be available on Blu-ray and DVD for the suggested retail price of $24.99 and $19.98, respectively.
Title Copyright: Room© 2015 EP Room Ltd. and Room Productions Inc. All Rights Reserved. Artwork & Supplementary Materials © 2016 Lions Gate Entertainment Inc. All Rights Reserved.
Its feature film business has been fueled by such successes as the blockbuster Hunger Games franchise, the first two installments of the Divergent franchise, Sicario, The Age of Adaline, CBS/Lionsgate's The DUFF, John Wick, Now You See Me, Roadside Attractions' Love & Mercy and Mr. Holmes, Lionsgate/Codeblack Films' Addicted and Pantelion Films' Instructions Not Included, the highest-grossing Spanish-language film ever released in the U.S.