text:
import { NameAddrHeader } from "../../grammar/name-addr-header.js";
import { URI } from "../../grammar/uri.js";
import { Body } from "../messages/body.js";
import { C } from "../messages/methods/constants.js";
import { IncomingRequestMessage } from "../messages/incoming-request-message.js";
import { IncomingResponseMessage } from "../messages/incoming-response-message.js";
import { OutgoingRequestMessage } from "../messages/outgoing-request-message.js";
import { UserAgentCore } from "../user-agent-core/user-agent-core.js";
import { DialogState } from "./dialog-state.js";

/**
 * Dialog.
 * @remarks
 * A key concept for a user agent is that of a dialog.  A dialog
 * represents a peer-to-peer SIP relationship between two user agents
 * that persists for some time.  The dialog facilitates sequencing of
 * messages between the user agents and proper routing of requests
 * between both of them.  The dialog represents a context in which to
 * interpret SIP messages.
 * https://tools.ietf.org/html/rfc3261#section-12
 * @public
 */
export class Dialog {
  /**
   * Dialog constructor.
   * @param core - User agent core.
   * @param dialogState - Initial dialog state.
   */
  protected constructor(protected core: UserAgentCore, protected dialogState: DialogState) {
    this.core.dialogs.set(this.id, this);
  }

  /**
   * When a UAC receives a response that establishes a dialog, it
   * constructs the state of the dialog.  This state MUST be maintained
   * for the duration of the dialog.
   * https://tools.ietf.org/html/rfc3261#section-12.1.2
   * @param outgoingRequestMessage - Outgoing request message for dialog.
   * @param incomingResponseMessage - Incoming response message creating dialog.
   */
  public static initialDialogStateForUserAgentClient(
    outgoingRequestMessage: OutgoingRequestMessage,
    incomingResponseMessage: IncomingResponseMessage
  ): DialogState {
    // If the request was sent over TLS, and the Request-URI contained a
    // SIPS URI, the "secure" flag is set to TRUE.
    // https://tools.ietf.org/html/rfc3261#section-12.1.2
    const secure = false; // FIXME: Currently no support for TLS.

    // The route set MUST be set to the list of URIs in the Record-Route
    // header field from the response, taken in reverse order and preserving
    // all URI parameters.  If no Record-Route header field is present in
    // the response, the route set MUST be set to the empty set.  This route
    // set, even if empty, overrides any pre-existing route set for future
    // requests in this dialog.  The remote target MUST be set to the URI
    // from the Contact header field of the response.
    // https://tools.ietf.org/html/rfc3261#section-12.1.2
    const routeSet = incomingResponseMessage.getHeaders("record-route").reverse();

    // When a UAS responds to a request with a response that establishes a
    // dialog (such as a 2xx to INVITE), the UAS MUST copy all Record-Route
    // header field values from the request into the response (including the
    // URIs, URI parameters, and any Record-Route header field parameters,
    // whether they are known or unknown to the UAS) and MUST maintain the
    // order of those values.  The UAS MUST add a Contact header field to
    // the response.
    // https://tools.ietf.org/html/rfc3261#section-12.1.1
    const contact = incomingResponseMessage.parseHeader("contact");
    if (!contact) {
      // TODO: Review to make sure this will never happen
      throw new Error("Contact undefined.");
    }
    if (!(contact instanceof NameAddrHeader)) {
      throw new Error("Contact not instance of NameAddrHeader.");
    }
    const remoteTarget = contact.uri;

    // The local sequence number MUST be set to the value of the sequence
    // number in the CSeq header field of the request.  The remote sequence
    // number MUST be empty (it is established when the remote UA sends a
    // request within the dialog).  The call identifier component of the
    // dialog ID MUST be set to the value of the Call-ID in the request.
    // The local tag component of the dialog ID MUST be set to the tag in
    // the From field in the request, and the remote tag component of the
    // dialog ID MUST be set to the tag in the To field of the response.  A
    // UAC MUST be prepared to receive a response without a tag in the To
    // field, in which case the tag is considered to have a value of null.
    //
    //    This is to maintain backwards compatibility with RFC 2543, which
    //    did not mandate To tags.
    //
    // https://tools.ietf.org/html/rfc3261#section-12.1.2
    const localSequenceNumber = outgoingRequestMessage.cseq;
    const remoteSequenceNumber = undefined;
    const callId = outgoingRequestMessage.callId;
    const localTag = outgoingRequestMessage.fromTag;
    const remoteTag = incomingResponseMessage.toTag;
    if (!callId) {
      // TODO: Review to make sure this will never happen
      throw new Error("Call id undefined.");
    }
    if (!localTag) {
      // TODO: Review to make sure this will never happen
      throw new Error("From tag undefined.");
    }
    if (!remoteTag) {
      // TODO: Review to make sure this will never happen
      throw new Error("To tag undefined."); // FIXME: No backwards compatibility with RFC 2543
    }

    // The remote URI MUST be set to the URI in the To field, and the local
    // URI MUST be set to the URI in the From field.
    // https://tools.ietf.org/html/rfc3261#section-12.1.2
    if (!outgoingRequestMessage.from) {
      // TODO: Review to make sure this will never happen
      throw new Error("From undefined.");
    }
    if (!outgoingRequestMessage.to) {
      // TODO: Review to make sure this will never happen
      throw new Error("To undefined.");
    }
    const localURI = outgoingRequestMessage.from.uri;
    const remoteURI = outgoingRequestMessage.to.uri;

    // A dialog can also be in the "early" state, which occurs when it is
    // created with a provisional response, and then transition to the
    // "confirmed" state when a 2xx final response arrives.
    // https://tools.ietf.org/html/rfc3261#section-12
    if (!incomingResponseMessage.statusCode) {
      throw new Error("Incoming response status code undefined.");
    }
    const early = incomingResponseMessage.statusCode < 200 ? true : false;

    const dialogState: DialogState = {
      id: callId + localTag + remoteTag,
      early,
      callId,
      localTag,
      remoteTag,
      localSequenceNumber,
      remoteSequenceNumber,
      localURI,
      remoteURI,
      remoteTarget,
      routeSet,
      secure
    };
    return dialogState;
  }

  /**
   * The UAS then constructs the state of the dialog.  This state MUST be
   * maintained for the duration of the dialog.
   * https://tools.ietf.org/html/rfc3261#section-12.1.1
   * @param incomingRequestMessage - Incoming request message creating dialog.
   * @param toTag - Tag in the To field in the response to the incoming request.
   */
  public static initialDialogStateForUserAgentServer(
    incomingRequestMessage: IncomingRequestMessage,
    toTag: string,
    early = false
  ): DialogState {
    // If the request arrived over TLS, and the Request-URI contained a SIPS
    // URI, the "secure" flag is set to TRUE.
    // https://tools.ietf.org/html/rfc3261#section-12.1.1
    const secure = false; // FIXME: Currently no support for TLS.

    // The route set MUST be set to the list of URIs in the Record-Route
    // header field from the request, taken in order and preserving all URI
    // parameters.  If no Record-Route header field is present in the
    // request, the route set MUST be set to the empty set.  This route set,
    // even if empty, overrides any pre-existing route set for future
    // requests in this dialog.  The remote target MUST be set to the URI
    // from the Contact header field of the request.
    // https://tools.ietf.org/html/rfc3261#section-12.1.1
    const routeSet = incomingRequestMessage.getHeaders("record-route");
    const contact = incomingRequestMessage.parseHeader("contact");
    if (!contact) {
      // TODO: Review to make sure this will never happen
      throw new Error("Contact undefined.");
    }
    if (!(contact instanceof NameAddrHeader)) {
      throw new Error("Contact not instance of NameAddrHeader.");
    }
    const remoteTarget = contact.uri;

    // The remote sequence number MUST be set to the value of the sequence
    // number in the CSeq header field of the request.  The local sequence
    // number MUST be empty.  The call identifier component of the dialog ID
    // MUST be set to the value of the Call-ID in the request.  The local
    // tag component of the dialog ID MUST be set to the tag in the To field
    // in the response to the request (which always includes a tag), and the
    // remote tag component of the dialog ID MUST be set to the tag from the
    // From field in the request.  A UAS MUST be prepared to receive a
    // request without a tag in the From field, in which case the tag is
    // considered to have a value of null.
    //
    //    This is to maintain backwards compatibility with RFC 2543, which
    //    did not mandate From tags.
    //
    // https://tools.ietf.org/html/rfc3261#section-12.1.1
    const remoteSequenceNumber = incomingRequestMessage.cseq;
    const localSequenceNumber = undefined;
    const callId = incomingRequestMessage.callId;
    const localTag = toTag;
    const remoteTag = incomingRequestMessage.fromTag;

    // The remote URI MUST be set to the URI in the From field, and the
    // local URI MUST be set to the URI in the To field.
    // https://tools.ietf.org/html/rfc3261#section-12.1.1
    const remoteURI = incomingRequestMessage.from.uri;
    const localURI = incomingRequestMessage.to.uri;

    const dialogState: DialogState = {
      id: callId + localTag + remoteTag,
      early,
      callId,
      localTag,
      remoteTag,
      localSequenceNumber,
      remoteSequenceNumber,
      localURI,
      remoteURI,
      remoteTarget,
      routeSet,
      secure
    };
    return dialogState;
  }

  /** Destructor. */
  public dispose(): void {
    this.core.dialogs.delete(this.id);
  }

  /**
   * A dialog is identified at each UA with a dialog ID, which consists of
   * a Call-ID value, a local tag and a remote tag.  The dialog ID at each
   * UA involved in the dialog is not the same.  Specifically, the local
   * tag at one UA is identical to the remote tag at the peer UA.  The
   * tags are opaque tokens that facilitate the generation of unique
   * dialog IDs.
   * https://tools.ietf.org/html/rfc3261#section-12
   */
  public get id(): string {
    return this.dialogState.id;
  }

  /**
   * A dialog can also be in the "early" state, which occurs when it is
   * created with a provisional response, and then it transition to the
   * "confirmed" state when a 2xx final response received or is sent.
   *
   * Note: RFC 3261 is concise on when a dialog is "confirmed", but it
   * can be a point of confusion if an INVITE dialog is "confirmed" after
   * a 2xx is sent or after receiving the ACK for the 2xx response.
   * With careful reading it can be inferred a dialog is always is
   * "confirmed" when the 2xx is sent (regardless of type of dialog).
   * However a INVITE dialog does have additional considerations
   * when it is confirmed but an ACK has not yet been received (in
   * particular with regard to a callee sending BYE requests).
   */
  public get early(): boolean {
    return this.dialogState.early;
  }

  /** Call identifier component of the dialog id. */
  public get callId(): string {
    return this.dialogState.callId;
  }

  /** Local tag component of the dialog id. */
  public get localTag(): string {
    return this.dialogState.localTag;
  }

  /** Remote tag component of the dialog id. */
  public get remoteTag(): string {
    return this.dialogState.remoteTag;
  }

  /** Local sequence number (used to order requests from the UA to its peer). */
  public get localSequenceNumber(): number | undefined {
    return this.dialogState.localSequenceNumber;
  }

  /** Remote sequence number (used to order requests from its peer to the UA). */
  public get remoteSequenceNumber(): number | undefined {
    return this.dialogState.remoteSequenceNumber;
  }

  /** Local URI. */
  public get localURI(): URI {
    return this.dialogState.localURI;
  }

  /** Remote URI. */
  public get remoteURI(): URI {
    return this.dialogState.remoteURI;
  }

  /** Remote target. */
  public get remoteTarget(): URI {
    return this.dialogState.remoteTarget;
  }

  /**
   * Route set, which is an ordered list of URIs. The route set is the
   * list of servers that need to be traversed to send a request to the peer.
   */
  public get routeSet(): Array<string> {
    return this.dialogState.routeSet;
  }

  /**
   * If the request was sent over TLS, and the Request-URI contained
   * a SIPS URI, the "secure" flag is set to true. *NOT IMPLEMENTED*
   */
  public get secure(): boolean {
    return this.dialogState.secure;
  }

  /** The user agent core servicing this dialog. */
  public get userAgentCore(): UserAgentCore {
    return this.core;
  }

  /** Confirm the dialog. Only matters if dialog is currently early. */
  public confirm(): void {
    this.dialogState.early = false;
  }

  /**
   * Requests sent within a dialog, as any other requests, are atomic.  If
   * a particular request is accepted by the UAS, all the state changes
   * associated with it are performed.  If the request is rejected, none
   * of the state changes are performed.
   *
   *    Note that some requests, such as INVITEs, affect several pieces of
   *    state.
   *
   * https://tools.ietf.org/html/rfc3261#section-12.2.2
   * @param message - Incoming request message within this dialog.
   */
  public receiveRequest(message: IncomingRequestMessage): void {
    // ACK guard.
    // By convention, the handling of ACKs is the responsibility
    // the particular dialog implementation. For example, see SessionDialog.
    // Furthermore, ACKs have same sequence number as the associated INVITE.
    if (message.method === C.ACK) {
      return;
    }

    // If the remote sequence number was not empty, but the sequence number
    // of the request is lower than the remote sequence number, the request
    // is out of order and MUST be rejected with a 500 (Server Internal
    // Error) response.  If the remote sequence number was not empty, and
    // the sequence number of the request is greater than the remote
    // sequence number, the request is in order.  It is possible for the
    // CSeq sequence number to be higher than the remote sequence number by
    // more than one.  This is not an error condition, and a UAS SHOULD be
    // prepared to receive and process requests with CSeq values more than
    // one higher than the previous received request.  The UAS MUST then set
    // the remote sequence number to the value of the sequence number in the
    // CSeq header field value in the request.
    //
    //    If a proxy challenges a request generated by the UAC, the UAC has
    //    to resubmit the request with credentials.  The resubmitted request
    //    will have a new CSeq number.  The UAS will never see the first
    //    request, and thus, it will notice a gap in the CSeq number space.
    //    Such a gap does not represent any error condition.
    //
    // https://tools.ietf.org/html/rfc3261#section-12.2.2
    if (this.remoteSequenceNumber) {
      if (message.cseq <= this.remoteSequenceNumber) {
        throw new Error("Out of sequence in dialog request. Did you forget to call sequenceGuard()?");
      }
      this.dialogState.remoteSequenceNumber = message.cseq;
    }

    // If the remote sequence number is empty, it MUST be set to the value
    // of the sequence number in the CSeq header field value in the request.
    // https://tools.ietf.org/html/rfc3261#section-12.2.2
    if (!this.remoteSequenceNumber) {
      this.dialogState.remoteSequenceNumber = message.cseq;
    }

    // When a UAS receives a target refresh request, it MUST replace the
    // dialog's remote target URI with the URI from the Contact header field
    // in that request, if present.
    // https://tools.ietf.org/html/rfc3261#section-12.2.2
    // Note: "target refresh request" processing delegated to sub-class.
  }

  /**
   * If the dialog identifier in the 2xx response matches the dialog
   * identifier of an existing dialog, the dialog MUST be transitioned to
   * the "confirmed" state, and the route set for the dialog MUST be
   * recomputed based on the 2xx response using the procedures of Section
   * 12.2.1.2.  Otherwise, a new dialog in the "confirmed" state MUST be
   * constructed using the procedures of Section 12.1.2.
   *
   * Note that the only piece of state that is recomputed is the route
   * set.  Other pieces of state such as the highest sequence numbers
   * (remote and local) sent within the dialog are not recomputed.  The
   * route set only is recomputed for backwards compatibility.  RFC
   * 2543 did not mandate mirroring of the Record-Route header field in
   * a 1xx, only 2xx.  However, we cannot update the entire state of
   * the dialog, since mid-dialog requests may have been sent within
   * the early dialog, modifying the sequence numbers, for example.
   *
   *  https://tools.ietf.org/html/rfc3261#section-13.2.2.4
   */
  public recomputeRouteSet(message: IncomingResponseMessage): void {
    this.dialogState.routeSet = message.getHeaders("record-route").reverse();
  }

  /**
   * A request within a dialog is constructed by using many of the
   * components of the state stored as part of the dialog.
   * https://tools.ietf.org/html/rfc3261#section-12.2.1.1
   * @param method - Outgoing request method.
   */
  public createOutgoingRequestMessage(
    method: string,
    options?: {
      cseq?: number;
      extraHeaders?: Array<string>;
      body?: Body;
    }
  ): OutgoingRequestMessage {
    // The URI in the To field of the request MUST be set to the remote URI
    // from the dialog state.  The tag in the To header field of the request
    // MUST be set to the remote tag of the dialog ID.  The From URI of the
    // request MUST be set to the local URI from the dialog state.  The tag
    // in the From header field of the request MUST be set to the local tag
    // of the dialog ID.  If the value of the remote or local tags is null,
    // the tag parameter MUST be omitted from the To or From header fields,
    // respectively.
    //
    //    Usage of the URI from the To and From fields in the original
    //    request within subsequent requests is done for backwards
    //    compatibility with RFC 2543, which used the URI for dialog
    //    identification.  In this specification, only the tags are used for
    //    dialog identification.  It is expected that mandatory reflection
    //    of the original To and From URI in mid-dialog requests will be
    //    deprecated in a subsequent revision of this specification.
    // https://tools.ietf.org/html/rfc3261#section-12.2.1.1
    const toUri = this.remoteURI;
    const toTag = this.remoteTag;
    const fromUri = this.localURI;
    const fromTag = this.localTag;

    // The Call-ID of the request MUST be set to the Call-ID of the dialog.
    // Requests within a dialog MUST contain strictly monotonically
    // increasing and contiguous CSeq sequence numbers (increasing-by-one)
    // in each direction (excepting ACK and CANCEL of course, whose numbers
    // equal the requests being acknowledged or cancelled).  Therefore, if
    // the local sequence number is not empty, the value of the local
    // sequence number MUST be incremented by one, and this value MUST be
    // placed into the CSeq header field.  If the local sequence number is
    // empty, an initial value MUST be chosen using the guidelines of
    // Section 8.1.1.5.  The method field in the CSeq header field value
    // MUST match the method of the request.
    // https://tools.ietf.org/html/rfc3261#section-12.2.1.1
    const callId = this.callId;
    let cseq: number;
    if (options && options.cseq) {
      cseq = options.cseq;
    } else if (!this.dialogState.localSequenceNumber) {
      cseq = this.dialogState.localSequenceNumber = 1; // https://tools.ietf.org/html/rfc3261#section-8.1.1.5
    } else {
      cseq = this.dialogState.localSequenceNumber += 1;
    }

    // The UAC uses the remote target and route set to build the Request-URI
    // and Route header field of the request.
    //
    // If the route set is empty, the UAC MUST place the remote target URI
    // into the Request-URI.  The UAC MUST NOT add a Route header field to
    // the request.
    //
    // If the route set is not empty, and the first URI in the route set
    // contains the lr parameter (see Section 19.1.1), the UAC MUST place
    // the remote target URI into the Request-URI and MUST include a Route
    // header field containing the route set values in order, including all
    // parameters.
    //
    // If the route set is not empty, and its first URI does not contain the
    // lr parameter, the UAC MUST place the first URI from the route set
    // into the Request-URI, stripping any parameters that are not allowed
    // in a Request-URI.  The UAC MUST add a Route header field containing
    // the remainder of the route set values in order, including all
    // parameters.  The UAC MUST then place the remote target URI into the
    // Route header field as the last value.
    // https://tools.ietf.org/html/rfc3261#section-12.2.1.1

    // The lr parameter, when present, indicates that the element
    // responsible for this resource implements the routing mechanisms
    // specified in this document.  This parameter will be used in the
    // URIs proxies place into Record-Route header field values, and
    // may appear in the URIs in a pre-existing route set.
    //
    // This parameter is used to achieve backwards compatibility with
    // systems implementing the strict-routing mechanisms of RFC 2543
    // and the rfc2543bis drafts up to bis-05.  An element preparing
    // to send a request based on a URI not containing this parameter
    // can assume the receiving element implements strict-routing and
    // reformat the message to preserve the information in the
    // Request-URI.
    // https://tools.ietf.org/html/rfc3261#section-19.1.1

    // NOTE: Not backwards compatible with RFC 2543 (no support for strict-routing).
    const ruri = this.remoteTarget;
    const routeSet = this.routeSet;

    const extraHeaders = options && options.extraHeaders;
    const body = options && options.body;

    // The relative order of header fields with different field names is not
    // significant.  However, it is RECOMMENDED that header fields which are
    // needed for proxy processing (Via, Route, Record-Route, Proxy-Require,
    // Max-Forwards, and Proxy-Authorization, for example) appear towards
    // the top of the message to facilitate rapid parsing.
    // https://tools.ietf.org/html/rfc3261#section-7.3.1
    const message = this.userAgentCore.makeOutgoingRequestMessage(
      method,
      ruri,
      fromUri,
      toUri,
      {
        callId,
        cseq,
        fromTag,
        toTag,
        routeSet
      },
      extraHeaders,
      body
    );

    return message;
  }

  /**
   * Increment the local sequence number by one.
   * It feels like this should be protected, but the current authentication handling currently
   * needs this to keep the dialog in sync when "auto re-sends" request messages.
   * @internal
   */
  public incrementLocalSequenceNumber(): void {
    if (!this.dialogState.localSequenceNumber) {
      throw new Error("Local sequence number undefined.");
    }
    this.dialogState.localSequenceNumber += 1;
  }

  /**
   * If the remote sequence number was not empty, but the sequence number
   * of the request is lower than the remote sequence number, the request
   * is out of order and MUST be rejected with a 500 (Server Internal
   * Error) response.
   * https://tools.ietf.org/html/rfc3261#section-12.2.2
   * @param request - Incoming request to guard.
   * @returns True if the program execution is to continue in the branch in question.
   *          Otherwise a 500 Server Internal Error was stateless sent and request processing must stop.
   */
  protected sequenceGuard(message: IncomingRequestMessage): boolean {
    // ACK guard.
    // By convention, handling of unexpected ACKs is responsibility
    // the particular dialog implementation. For example, see SessionDialog.
    // Furthermore, we cannot reply to an "out of sequence" ACK.
    if (message.method === C.ACK) {
      return true;
    }

    // Note: We are rejecting on "less than or equal to" the remote
    // sequence number (excepting ACK whose numbers equal the requests
    // being acknowledged or cancelled), which is the correct thing to
    // do in our case. The only time a request with the same sequence number
    // will show up here if is a) it is a very late retransmission of a
    // request we already handled or b) it is a different request with the
    // same sequence number which would be violation of the standard.
    // Request retransmissions are absorbed by the transaction layer,
    // so any request with a duplicate sequence number getting here
    // would have to be a retransmission after the transaction terminated
    // or a broken request (with unique via branch value).

    // Requests within a dialog MUST contain strictly monotonically
    // increasing and contiguous CSeq sequence numbers (increasing-by-one)
    // in each direction (excepting ACK and CANCEL of course, whose numbers
    // equal the requests being acknowledged or cancelled).  Therefore, if
    // the local sequence number is not empty, the value of the local
    // sequence number MUST be incremented by one, and this value MUST be
    // placed into the CSeq header field.
    // https://tools.ietf.org/html/rfc3261#section-12.2.1.1
    if (this.remoteSequenceNumber && message.cseq <= this.remoteSequenceNumber) {
      this.core.replyStateless(message, { statusCode: 500 });
      return false;
    }
    return true;
  }
}


text:
Vahida Ramujkic (Belgrad, 1973) és una artista resident a Hangar, Barcelona, des del 2002. El seu treball es desenvolupa en col·laboració amb Laia Sadurní. Juntes han exposat "Poble Now" a Can Felipa de Barcelona. El 2003 van presentar el llibre Guia d'escultures de Barcelona i el festival OVNI va mostrar un dels seus vídeos.

Vahida Ramujkic, junt amb Rotorrr, un col·lectiu fundat el 2001, ha iniciat i participat en una sèrie d'experiments per a la generació d'eines i espais per a la interacció social, l'autoorganització i la generació de comunitats. Les seves exploracions involucren tecnologies i metodologies com ara assignacions, jocs de col·laboració, manuals, guies i excursions. Ramujkic també ha completant una investigació a llarg termini en relació amb la burocràcia de les polítiques d'immigració de la Unió Europea.

Referències

Enllaços externs

Artistes europeus

redpajama_set_name: RedPajamaWikipedia


text:
Arts Briefs 2 16 2020
Dowagiac museum opens exhibit
DOWAGIAC — The Dowagiac Area History Museum opens the new permanent exhibit "Time Brings About a Change" with a reception at 3 p.m. Tuesday at 201 E. Division St.
The exhibit consists of artwork by Dowagiac artist O'Larry Collins and celebrates the accomplishments of three African Americans who had a significant impact on Dowagiac and Michigan history: Thomas Jefferson Martin, Chief George Grady and Sam Fowlkes.
Martin was a former slave granted his freedom as a teenager. After years working as a barber on the Mississippi and Ohio Rivers, he moved to Dowagiac and opened his own barber shop in 1855.
Grady, a Dowagiac native and decorated Korean War veteran, joined the Dowagiac Police Department in 1955 and became the first African American police chief in Michigan in 1965.
Fowlkes moved to Michigan from Tennessee in 1939 and eventually settled in Dowagiac, where he worked at Dowagiac Steel Furnace Company and became the first African American to serve on the Dowagiac City Council in 1965.
Hours are 10 a.m. to 5 p.m. Tuesdays through Fridays and 10 a.m. to 2 p.m. Saturdays.
Admission is free.
For more information, call 269-783-2560 or visit dowagiacmuseum.info.
'New Jim Crow' author speaks
GOSHEN — Michelle Alexander presents the Atlee and Winifred Beechy Peace, Justice and Reconciliation Lecture at 7:30 p.m. Wednesday at Goshen College's Music Center.
A writer, civil rights advocate and professor, Alexander is best known for her 2010 book, "The New Jim Crow: Mass Incarceration in the Age of Colorblindness," a bestseller that helped to transform the national debate on racial and criminal justice in the United States.
She previously taught at Stanford Law School, where she was an associate professor of law and directed the Civil Rights Clinic. Currently, she is a visiting professor at Union Theological Seminary in New York City and a contributing opinion writer for The New York Times.
Before she joined academia, she practiced civil rights litigation in both the private and nonprofit sector and served as the director of the Racial Justice Project for the ACLU of Northern California.
Alexander graduated from Stanford Law School and Vanderbilt University. She clerked for Justice Harry A. Blackmun on the U.S. Supreme Court and for Chief Judge Abner Mikva on the D.C. Circuit of the U.S. Court of Appeals.
For more information, visit goshen.edu/news.
Humanist Forum presents 'Evolution'
SOUTH BEND — The Humanist Forum presents the video program "Celebrating Charles Darwin and Evolution" at 6:30 p.m. Thursday at the River Park Branch Public Library, 2022 Mishawaka Ave.
The first video is a talk at the Center for Inquiry Conference by Nathan Lents, professor of biology at John Jay College and author of two recent books, "Not So Different" and "Human Errors."
A short video of Irish comedian Dara Ó Briain giving his take on creation and evolution follows, and the program concludes with a short TEDx talk by Chris Darwin, the great-great-grandson of Charles Darwin.
For more information, visit meetup.com/humanist-forum.

redpajama_set_name: RedPajamaCommonCrawl


When women can count on nutritious food for themselves, their infants and children, they have the peace of mind to concentrate on other aspects of their family's health.
The Basis of Health Many South Los Angeles residents can not afford to purchase enough nutritious food for themselves and their families. But those enrolled in WIC can receive valuable checks for food–such as milk, eggs, cereal, fruits and vegetables–to supplement what they are already able to spend on food.
Making Foods Available At our WIC centers we provide food checks—not the food itself—to anyone who is enrolled in our program: pregnant women, women who have given birth within the past six months, women who are breastfeeding, infants and children until their fifth birthday. These checks are issued at each scheduled visit.
What Is a Food Check? WIC food checks are not Food Stamps. Our checks list the exact foods that can be purchased, rather than a dollar amount. If a family includes a breastfeeding mother, an infant and a three-year-old, for example, each is considered a participant and each receives his or her own individualized food check.
Checks are made payable only to vendors authorized by the state. These food checks must be used within the month.
See a sample check here>>.
In special cases, especially if the participants have a high-risk condition, they or their parents are seen by one of our degreed nutritionists or dietitians for further assessment and follow-up.


text:
Keeping Money in Mind Makes People Less Helpful
By Ciara Curtin on November 16, 2006
Money is an incentive to work hard, but it also promotes selfish behavior. Those conclusions may not be surprising, but now researchers find that merely thinking of money makes people less likely to give help to others.
"Self-sufficient people are more diligent in their own goals," says Kathleen D. Vohs, a consumer psychologist at the University of Minnesota. "Money is cognitively and mentally linked to personal goals. It allows people to do things efficiently and not need other people."
Vohs and her colleagues performed a series of experiments to determine how money affects people's behavior. In a lab, they subconsciously reminded volunteers of money in different ways, either by showing them money-related words such as "salary," or by revealing a poster or screensaver with currency on it. The researchers primed other participants with play money or neutral stimuli, such as fish. After priming, the participants performed different tasks that were unrelated to money but that assessed their behavior in social situations.
When money is on the brain, people become disinclined to ask for help when faced with a difficult or even an impossible puzzle, Vohs and her colleagues report in this week's issue of Science. They tried to work on the task by themselves, she explains. Eventually most did ask for help--it just took them longer to come around.
People who think, even subconsciously, about money are also less helpful than others, the researchers say. After witnessing a pre-arranged accident in which someone walking through the testing area dropped a box of pencils, money-primed participants picked up fewer of the fallen pencils than the other subjects did.
Just being reminded of the concept of money "transforms people to capitalist individuals," says Drazen Prelec, a psychologist at the Massachusetts Institute of Technology who was not involved in the study. And, Vohs notes, "their behavior was not something they realized they were doing."
The U.S. and other Western societies value self-reliance, Prelec says. "This is less so in other cultures," he adds. The people in this study were from Asian-Canadian or European-Canadian backgrounds, and Vohs says country of origin had no effect on behavior, adding that many Eastern cultures are becoming more money-focused. So if you want to keep your employees fixed on their goals, keep a stack of money on their desks. Just don't expect them to help each other.
Recent Articles by Ciara Curtin
Scientific American MIND Reviews The Man Who Wasn't There
Do Living People Outnumber the Dead?
NASA Spent Millions on a Pen Able to Write in Space
The Dynamics of Social Dilemmas
Exploding the Self-Esteem Myth
Roy F. Baumeister, Jennifer D. Campbell, Joachim I. Krueger and Kathleen D. Vohs
Discover new insights into neuroscience, human behavior and mental health with Scientific American Mind.


text:
Home News Second stage is complete for Manchester precision medicine campus
Second stage is complete for Manchester precision medicine campus
The next stage of a Manchester-based life sciences campus has reached practical completion, despite the Covid-19 pandemic.
A joint venture between Manchester University NHS Foundation Trust (MFT) and Manchester Science Partnerships (MSP), Citylabs has been designed as a campus targeting companies within fields such as precision medicine and medtech.
The first phase of the development at MFT's Oxford Road hospital campus – Citylabs 1.0 – is already home to a number of life sciences businesses.
Now the next stage of the project has reached completion. Citylabs 2.0 is a £25 million, 92,000 sq ft build located directly opposite the Royal Manchester Children's Hospital, within the MFT campus. It's hoped that the new building will help support up to 1,500 jobs, while also adding an estimated £150 million to Manchester's economy over the next decade.
It forms part of a £95 million expansion which will also see the addition of Citylabs 4.0 to the campus sometime in 2022 – adding a further 1,200 jobs when complete.
The aim is to make the Citylabs campus a new national hub for precision medicine and data analytical businesses, helping bring diagnostics and treatments into Manchester's health system.
Businesses based at Citylabs have access to clinical and academic collaborators located on the campus, as well as business support such as advice on funding sources and professional services.
Life sciences company QIAEGN will occupy the whole of Citylabs 2.0 for its Global Centre of Excellence for Precision Medicine, relocating from its current location at the nearby Manchester Science Park.
The completion of Citylabs 2.0 represents another addition to Manchester's Oxford Road Corridor Innovation district. The district is home to 50% of Manchester's life science businesses and generates £3.6 billion gross valued added (GVA) every year.
Tom Renn, managing director of MSP and Bruntwood SciTech - Manchester, said: "Our long-term vision for the Citylabs campus is now one step closer in realising its goal to become a world-class centre for diagnostics and health innovation.
"The last few months have showcased the importance of the life sciences sector and particularly diagnostics to society, the jobs it creates and its role in driving the UK forward globally. QIAGEN has been at the forefront of the fight against Covid-19 as a leading developer and manufacturer of test kits to help track the virus. Their expansion into Citylabs 2.0 will act as a magnet for complementary businesses – from start-ups to scale-ups and R&D centres of excellence – helping strengthen the ecosystem of the Oxford Road Corridor innovation district.
"Despite the current challenges we're pleased to have reached Practical Completion at Citylabs 2.0 with minimal delay and can now swiftly progress QIAGEN's fit out. I'd like to thank all of the teams who have worked on Citylabs 2.0 for their ability to quickly adapt at the beginning of the pandemic to enable construction to continue, with a fantastic end result."
Sir Richard Leese, leader of Manchester City Council, said: "The development of this new health innovation and precision medicine campus and the practical completion of Citylabs 2.0 helps confirm Manchester as a world leader in this vital industry, creating a raft of highly skilled health science jobs and providing an all important economic boost to the city. Manchester's future success depends on building on our distinctive strengths of which life sciences is definitely one."
COVID-19 Manchester University NHS Foundation Trust Manchester Science Partnerships' (MSP) life sciences coronavirus precision medicine medtech Citylabs


text:
Marvel Studios Phase 2 Updates: Guardians of the Galaxy, Captain America: The Winter Soldier, The Avengers: Age of Ultron, Agents of S.H.I.E.L.D.
by Chris Walk | Sep 30, 2013 | News | 0 comments
Towelites! It's time once again to round-up the latest news and rumors surround Marvel Studios Phase 2!
Are you wondering how the upcoming Guardians of the Galaxy will compare to its comic book counterpart? Well in an interview with Comic Book Resources, Marvel Comics Editor-in-Chief, Axel Alonso, had the following to say about the upcoming James Gunn film!
Sticking with "Guardians" for the moment, I wanted to return to last week's topic on playing along with the movies to some extent. With this series, it feels like Brian is trying to lay some groundwork for the movie as opposed to playing with the ideas on the screen. Is there a way in which that series is meant to launch people towards the movie?
Alonso: With "Guardians," Brian is delivering a widescreen cosmic adventure on the comic book page. The Guardians have never been more relevant to the Marvel Universe. If the series provides a breadcrumb trail that leads readers to the movie, that's great, but our job is to make a great comic book — period. To create great stories featuring Starlord, Rocket, Groot and crew for anyone who wants to read them, before or after the movie hits.
Of course, many of us have read the movie script and seen stuff that hasn't been made public yet, so we know what a treat people are in for. I knew James Gunn before he was tapped to helm the movie — we've snowballed story ideas for comics — and I can tell you, he is a major talent with a great love and respect for the comic book medium. He is going to knock this movie out of the park.
Via: CBR
Guardians of the Galaxy is going to expand the Marvel Cinematic Universe in a major way. It will introduce many new races, and among them will be the well-known and fan-favorite, the Kree. Dijimon Hounsou (Constantine) will be playing Korath, alongside another Kree who will be making an appearance as well, Ronan the Accusar played by Lee Pace (The Hobbit). Get ready for the Inhumans at some point down the line if this movie does well.
SC: Guardians of the Galaxy is such a outlier for the Marvel Universe. Do you feel like that gives you a broader license to create a character that is your own, or is there a certain amount of obligation that you feel to make him fit alongside those maybe more conventional heroes?
DH: Not really, creatively not. I think that's what you're saying. Creatively not, but at the same time, it is a great place to be. [These are the] vehicles of today, making films of that nature – nobody's making nice, human stories anymore, it's all about superheroes. And I guess it's a period that we're going through, and that's all right – it's not to be cursed anyway. But at the same time, I've been wanting to enter the Marvel Comics world, and this was a nice opportunity, shooting this. And certainly my character in Guardians is pretty cool. So I like that.
Via: Screen Crush
I am really looking forward to the next installment in the Captain America films. Not only are we getting Winter Soldier but they are also introducing Sharon Carter in to the MCU. Also known as Agent 13, Carter is the niece of Peggy Carter, played by Hayley Atwell in the first film and also the star of her own Marvel One-Shot. You can find that on the Iron Man 3 Blu-ray, its pretty amazing. Anywho she becomes Steve Rogers main love interest in the comics, so look for Emily VanCamp and Chris Evans to be sharing some screen time.
[box_light]"There are so many different versions of the character, so really what you have to do is sort of take all of that information and make it your own and hope that the fans like it. It's a little bit of a gamble, and it's a little bit nerve-wracking at times, but that's also part of the fun. Researching my character, I started to get interested in a lot of other things that I was reading. It was just a really fun process."[/box_light]
Via: Fandango
It's one of the best comic book movie castings in a long while. James Spader (Stargate) is set to voice, and mo-cap by the sound of it, the evil robot Ultron in the upcoming sequel to The Avengers, Age of Ultron. Check these remarks on prepping for the role:
Thus he has just agreed to play Ultron, the villain in Joss Whedon's Avengers sequel because "I think it'll be a lot of fun and it's incredibly nostalgic for me. When I was a kid my best friend had trunks of comics and I didn't have any so I used to love going for sleepovers at his house. Also I have three sons and two of them have a great interest in comics so they're excited I'm playing the role."
Via: The Independent
Have you started preparing for the "Avengers" sequel?
I have spoken to Joss Whedon about it. And yes, actually, just this weekend I went in for them to take very extensive photographs, head scans, body scans, and all kinds of things in preparation for figuring out how the hell I'm gonna fit in this Ultron character!
Via: The Inquirer
Don't forget that Agents of S.H.I.E.L.D. airs at 8pm on Tuesdays on ABC, here's an extended clip from this week's episode!


Do not just attend an event - attend with purpose. To go with purpose means setting goals. Clearly, you want to enjoy your time but you hope to have ROI too. Look ahead to see what you need to accomplish before, during, and after the event and determine if it is a worthwhile investment of your time, money, and energy. Attending the actual event is just one piece of the master plan.
What kind of individuals will be attending (i.e. attorneys or sales people)?
With this information, you can be strategic. Think about the persons from your firm who should attend the event and whether you should invite others to sit at your firm's table. While you are in the planning stages, keep your team (marketing, legal assistants, etc.) in the know. They may be able help you with some of the pre-event to-dos.
Talk to at least one committee member or honoree.
Talk to people standing by themselves (be that lifesaver!).
You will make your goals a little more targeted if you have pre-identified marketing targets. Then a goal could be to introduce yourself to a business development target you know will be in attendance. (Because you did your research, you know who will be there). Many goals will require you to get up from your firm-sponsored table and mingle.
Add your goals to your Outlook calendar as a friendly reminder.
Should we play Darth Vader's entrance music for this tip? Everyone at your firm should already have an elevator pitch, a succinct description of your firm and your role. Use the research you did to fine-tune your pitch. It may only need tweaking depending on the specific event or a recent development at your firm (i.e. an award, a new practice area, a recent public trial in the media).
When you have a free moment a few days before the event, look up the location and what the parking situation will be. Knowing this in advance will make it easier to schedule the right amount of time for the drive and the parking. It will help you to feel less stressed and ready to be a networking rock star.
Yes, really. Don't show up hangry. You are there to socialize, which means shaking hands and talking with others. You cannot do this with an appetizer plate in your hand and food in your mouth. If it is a sit-down dinner, you never know how long it will take for the food to reach the table. Your brain needs fuel to stay sharp and focused on your conversation (not on how hungry you are).
Some people find comfort in getting a drink and holding it throughout the networking event. That's fine if it helps you interact with more people. However, always hold your drink in your left hand. This will keep your right hand free for handshake and avoid that weird moment of having to wipe your hand on your clothes from holding the cold/wet glass.
Some think business cards are old fashioned, but some fashion makes sense and never goes out of style. Have plenty of your business cards easily accessible. No digging through your purse or pocket and handing off a card that looks like it has been in there for weeks. Also, be sure you ask people for their business cards; they will appreciate it.
Never make people compete for your attention with your Smartphone. It's rude. Some may think it makes them "look important," but in reality, the important people are too busy talking to groups of attendees to peek at emails. The only time you should have your phone out is to take pictures, jot down a quote or note about the event, post on social media about the event, or in an emergency (of course).
What made you come to this event?
Did you see (sports game) last night?
How are you connected with the organization?
Always try to repeat the person's name during the conversation. This will help you remember the name, plus, it shows you care.
Let's not forget that our non-verbal actions sometimes speak louder than words. Practice the good table manners your mother taught you.
Image Credits: Eating icon made by Freepik from www.flaticon.com, okay, water, silverware, clock made by www.canva.com.
This system works well. You think you will remember specifics about the people you engage at an event, but some details will be forgotten unless you jot them down. Notes on the back of business cards may also serve as a reminder for you to follow up with your marketing team about the people you met.
Take the time to hand-write a thank you note and send it through the mail, type up a timely email, or even send a public or private thank you message on social media (when appropriate). A simple thank you in any form will be noticed, appreciated, and may even be shared with others in your network.
Your go-to follow-up goal should always be something social media related. Share pictures from the event (organizations love when guests do this), connect with someone you met at the event, like or share posts from those who already posted, etc. It's easy, fast, and effective.
Use your marketing team as a resource. Set up post-event meetings (just 15 minutes will do) to discuss how they may help you and the firm gain the most from your efforts. They can help you plot out your next steps. They may even suggest new items to help you connect with organizations or key targets from the event.
Armed with these helpful tips and tricks, you are ready to attend events with purpose. Make each event a success. And one last tip…don't forget to enjoy yourself.


In honor of Grandparents Day on September 12, the National Partnership for Women and Families has released a new fact sheet to remind us of the impact grandparents can have in the lives of working families.
Grandparents are often relied on as critical support systems to families with both parents in the workforce — to be the babysitters, shuttle to school, or stand-in nurse when a child is sick. But not all grandparents are able to provide care — and some are ailing themselves — putting the economic security of working families at risk when a child or aging parent needs care.
There is no federal law guaranteeing workers job-protected leave when they need to take time off to care for an ailing parent or child. In Washington state the Family Care Act allows workers to use sick leave to care or an ill child or ailing parent, but for the thousands of Washington workers without paid sick leave and their parents, this legislation provides no relief.
This fact sheet makes four recommendations for honoring our nation's grandparents, and fighting for workplace policies that will strengthen the economic security of all working families.


Remedial Massage incorporates deep friction and trigger point work on muscles which are chronically tense. It is also effective at breaking down scar tissue and adhesions and stimulates the removal of wastes via the blood and lymph circulation.
It stretches and mobilises the soft tissues, particularly helping muscles subjected to overuse. These techniques are recognised as being useful for those participating in sports and exercise since treatment at an early stage can prevent unnecessary complications and hastening the rehabilitation process.


I've started this post a handful of times and could never bring myself to finish it. I'm starting it over in real time, post-baby, 3 months after the room was completed.
I don't know why I'm quick to write about the great deals I find and the things I do on a minuscule budget, but when it comes to spending more I shy away. I've just decided to put it out there, though, because if anyone is looking to re-do their bathroom I want them to have an accurate depiction of what it takes!
So here are the numbers (yikes it makes me want to vomit divulging this info!)– the master bath renovation ended up costing us $16,500. And let me tell you, I got a few great deals along the way and it STILL costs that much. That's a lot of dollars for one small space that we only use morning and night.
"Emily, why didn't you DIY the room?" Well for one, there's a LOT of demo, tiling, electric work, & sheetrocking that neither Alex nor myself have any experience with. Second, it would take me a year, AT LEAST, to complete the job and it would likely look shoddy. I've learned when to call in the pros and when to learn to do something myself. A project such as this was not a good idea to tackle ourselves.
Quite the beauty, huh? The floor was uneven and slanted downhill towards the door. Several floor tiles were either missing or loose. The shower was tiny (3×3), stained, and moldy in the caulking. The vanity was extremely short with only one working sink and had a faucet that dripped constantly. The large jetted tub was in good condition, but just took up too much space and wasn't practical for us at all.
Another post is on its way with all of my sources and a cost breakdown. I can't wait to share the details of the tile and the clawfoot tub!
Oh wow Emily that looks amazing!!!
Wow! I would never want to leave my bathroom! This gives me so much inspiration for when we tackle ours. Love it!
My name is Katie. I was wondering, do you accept guest posts on http://whatemilydoes.com? It's about home improvement and stuff, so it would be a perfect fit for your blog and would greatly increase the traffic on your site. I'll gladly send you over some sample articles if you like.
Please tell me how much does the counter hang over the vanity?


text:
Christie Lenée | 50 Gifted Singer-Songwriters
50 Gifted Singer Songwriters June 4, 2019
Christie Lenée (by Alison Hasbach - TrueFire)
*SPECIAL BRAND NEW PREMIERE of Christie Lenee's video "Free World Citizen" featured in this edition of Riff Magazine. Watch below!
Singer, songwriter and renowned fingerstyle guitarist Christie Lenée is more than a musician – she's an experience. Symphonic compositions flow from her fingertips effortlessly, with sound ranging from transcendental folk-pop to virtuosic instrumentals.
Christie is often described as "Michael Hedges meets Joni Mitchell and Dave Matthews," integrating melodic pop lyricism with catchy hooks and percussive, harmonic textures. As an Official Showcase Artist at Folk Alliance International consistently logging a number of major festivals, events, opera houses and theaters nationwide, Christie Lenée performs with radiant joy that awes crowds and inspires fellow musicians. She recently told Digital Journal that "years ago, I set my intention to be an inspirational songwriter, though over time I've come to realize that inspiration comes in many forms. Talking about the dark and the light, the beauty and moments of pain are all forms of inspiration."
Christie has shared stages with Tommy Emmanuel, Tim Reynolds (Dave Matthews Band), Andy McKee, and Amy Ray (Indigo Girls) to name a few, who have all raved about her talents. Her first place victory in the acclaimed 2017 International Fingerstyle Guitar Championship has earned her featured coverage in Guitar Player Magazine, Acoustic Guitar Magazine, and Premier Guitar. She has released five albums, with STAYone of three finalists for "Best CD of 2016" (Indie Acoustic Project Awards). The album includes three instrumentals produced by Grammy Award Winning producer Will Ackerman, founder of Windham Hill Records, and a music video for the title track supporting a movement on suicide prevention.
"Songwriting is organic therapy for both writers and listeners. It is the story of our lives and the world around us transcending through music and melody. Simply listen, practice and keep showing up. The songs will come."
– Christie Lenée
Included in this Issue's Special Riffage Album
EXCLUSIVE TRUEFIRE PREVIEW "Free World Citizen"
Solo Instrumental "Song for Michael Pukac"
Breath of Spring Music City Roots
50 Gifted Singer Songwriters
Stephen Kellogg | 50 Gifted Singer-Songwriters
50 Gifted Singer Songwriters May 29, 2019
Cary Morin | 50 Gifted Singer-Songwriters


India has dragged the US to the World Trade Organisation's dispute settlement mechanism over the imposition of import duties on steel and aluminium, an official said.
"India has filed a dispute under the aegis of the WTO on the issue of imposing import duties by the US on certain steel and aluminium products," the official said.
The country has sought consultations with the US under the WTO's dispute settlement mechanism.
Biswajit Dhar, the professor of economics at Jawaharlal Nehru University, said the US decision would not only impact India's export of these goods but would also affect global trade.
India's exports of steel and aluminium products to America stood at about $1.5 billion every year.
India's exports to the US in 2016-17 stood at $42.21 billion, while imports were $22.3 billion.
The US recently filed a dispute against India on export incentives alleging these support measures harm its workers by creating an uneven playing field.


Victoria Police will be ramping up the focus on driver behaviour with Operation Roadwise reaching into every corner of the state. Work with us as we continue working Towards Zero this holiday period.
Slowing down and driving at a speed appropriate for the conditions. Some of us will travel on unfamiliar roads this Summer so it's important not to rush.
As little as one alcoholic drink may impair your judgement so plan your way home before you have a drink.
Always be present when you are driving. A phone message, a call or a song can be all it takes to pull our attention away from driving.
Where can we expect to see Victoria Police enforcing "Operation Roadwise" ?
Victoria Police will be enforcing against illegal behaviours on the roads across metro and regional Victoria.
How will Victoria Police enforce illegal behaviours such as drink driving, distractions and speed?
Victoria Police will enforce drink driving, speeding and distractions from unmarked police cars, marked police cars, drug and booze busses as well as police motorcycles and roadside intercepts.
Drivers face harsh penalties if they are caught affected by alcohol or over the legal limit. View them here.
Drivers face harsh penalties if they are caught speeding. View them here.
What are the penalties for being caught using your phone whilst driving?
The penalties are 4 demerit points and a $476 fine.
What is legal use of phones in cars?
In Victoria, using a handheld mobile phone while driving is prohibited – no matter your age or how long you have been driving for.
Probationary drivers cannot use a mobile phone at all, not even on Bluetooth.
If you have a full driver's licence you may make or receive a phone call or use its audio/music functions provided the phone is secured in a commercially designed holder fixed to the vehicle, or can be operated by the driver without touching any part of the phone, and the phone is not resting on any part of the driver's body.
What tips can I use to reduce distraction as a driver?
To make sure you're not putting yourself or others at risk on the roads, put your phone away where you can't be tempted to use it, for example in the glove box or in the boot.
Alternatively you could download an app such as VicRoads Road Mode which monitors incoming calls and lets callers know via text that you are driving and will return their call when you have finished.
4. Under Do Not Disturb While Driving make sure it is set to automatically.
Why do safe speeds matter?
Safe Speeds involves reconsidering speed limits to reflect the road quality and its surroundings.
In a crash, the vehicle's speed at the moment of impact and the weight of the vehicle determine how much force hits the human bodies involved.
The human body can only withstand certain amounts of force. If a car travelling at 30km/hr hits a pedestrian, the impact forces can be enough to kill that person.
The Safe Speed component of Towards Zero is concerned with setting appropriate speed limits and travelling at safe speeds that are right for the conditions. If speed limits are set appropriately and drivers travel within those limits, the effectiveness of initiatives implemented in the road or vehicle space are enhanced and help reduce road trauma.
Am I ok to drive after a couple of drinks?
Alcohol can affect us in different ways from one day to the next – this means there's never a 'safe' amount to drink when you're planning to drive.
The way to avoid drink driving is simple. If you're going to drink, plan not to drive and plan your transport options in advance. If people avoid driving after drinking, the number of road fatalities could be reduced by up to 20%.
The way to avoid drink driving is simple. If you're going to drink, plan not to drive and plan your transport options in advance. If people avoid drinking after driving, the number of road fatalities could be reduced by up to 20%.
Work with us as we continue Towards Zero this holiday period.


Emirates wet wipes is the largest wet wipes manufacturer in the GCC Incorported in 2001 EWW utilizes the state of the art facility and equipments along with the tents of ISO 9001-2008 ; ISO 14001; OHSAS 18001:2007; GMP and HACCP to ensure a range of world class products like Wet Wipes,baby wipes Body wipes, Premium Ultra Soft refreshing tissues,medicated wipes Foam hand wash/liquid soap Antiseptic hand gel/sanitizers, Body bath towels for sick &old people, Eye glass cleaner, Feminine hygienic wet wipes, after Shave & House hold wipes, interfolds napkins, dry tissues, Kitchen towels, toilet rolls perfumed tissues, car pack tissues, plastic cutlery items such as spoons, forks knives, etc. An in-house printing and laminate unit with latest technology is used for pet and metalized films, A variety of Arabic and Oriental scents with original perfumes imported from Europe are used to prevent allergies or dryness of skin.
E produce brands like dettol, Henkel-DAC skin Care Wipes & Hand Sanitizers. We cater to Emirates Airlines, Etihad Airline, KFC, Carrefour, Lulu Sharjah Co-op, No. 1, union Co-op, Godolphin (Zaabeel Palace), Emirates Palace etc, and major 5 star Hotels in the region for their private labels and are involved end to end;from concepts to commercialization.
Your response is but an impetus for us to come up with more and more innovative hygiene solutions.


Over the past few years there's been very little reveal as to what is going to be changed or what is going to be made. Historically any web-based projects have been kept tightly under wraps. But for what reason?
I'd like to make a plea to the web team. To start talking to us about their current and upcoming web projects. To include us in the various production stages. To gather our feedback. I understand that a number of the projects may be done for other departments, but I want to plea for the web team to encourage whoever they have to to let them talk about what projects are going out. The undisclosed MMO may of course be an exception here but the release of the mobile-friendly account recovery form is something that could have benefited with some user input.
At the moment (please correct me if I'm wrong) we don't seem to have the opportunity to feedback on how a new release looks. We can comment on things afterward, sure, but then realistically the web team will need to move on to a different project leaving only time to correct major issues and not to address other concerns or suggestions.
Looking over the events of the past year we have all learned that keeping things hidden from the players causes upset, disappointment and all sorts of negative emotions. The W&F forums have seen many passionate and enthusiastic contributors in its time but a lack of transparency and openness has, I'd argue, pushed those people away. Would you want to generate ideas for a project that you don't see any hope of becoming a reality?
Communication with the community is something which has been bolstered over the past few months - I think now is the time for the web team to follow suit.
Please be open with us and please fight for the right to talk about your projects.
nice speech. I agree with everything you said and therefore support your suggestion. I'd love to see the web team talking more about their plans and getting the community involved.
I too am beginning to wonder what part of RuneScape gets broken with each update.
So no, don't tell us. Keep us in the dark with the "surprises". This is what people aren't getting. Some ******* "coder" releases OSBuddy or some other "helper client", people get hyped because they're stupid like sheep, and then down the road once the "helper client" has a ton of downloads he releases an "update" to hijack everyone.
I agree with this, and support it.
Unfortunately, transparency is often hard to see coming, and thus it may not seem an issue to those who believe it's there.
Perhaps the lack of info on projects is due to them not wishing to promise something that they are aware they might not be able to deliver on (their joblist being erratically rearranged, re-prioritised, and added to, by those at the top; that and their jobs being the least secure, of any Mods' - or it seems so, from my perspective).
Because they barely have any projects... Web team? Jagex clearly has noone hired to work on the website, or if they do, is it some DIY dude?


This article discusses how to enable the Search + Discovery app to add a search bar and category filters to your My Courses page. This allows learners to easily find courses and content within courses.
On the Apps page, click Configure next to Search + Discovery.
Toggle the button to enable the app. Click Customize Categories.
Enter one or more category names and click Add Category. You can return to this page any time to add more categories or edit existing categories. Once done, click Close at the top right.
In the top navigation bar, click Content and select Courses. Open a course.
Click on the Settings tab. Click on the Category drop-down menu and select a category for the course. Click Update Course at the top right.


Life before Denver Children's Home was chaotic for Patrice. Born in Ethiopia, her parents and sister passed away when she was very young leaving Patrice vulnerable to trauma and abuse. At the age of seven, Patrice was adopted from an orphanage and moved to the United States.
Unfortunately, her early life experiences left Patrice unable to trust her new family. She acted explosively and unpredictably, often testing her family to see if they too would betray her. Patrice needed more support than her family could offer, and she was sent to multiple treatment centers with unsuccessful outcomes. When Patrice arrived at Denver Children's Home in the Spring of 2017 she felt scared and alone, but she wanted this placement to be different.
She worked closely with her therapist and the therapy dog and started to thrive during art therapy sessions. Before arriving at the Home, painting was something Patrice would do just for fun. Now, she uses art to help her cope and explore her feelings. Patrice now paints her vision of a life she hopes to have which includes going to college, playing volleyball, and being a fashion designer.
Patrice is preparing to discharge to a lower level of care, but first she is applying for Blue level, our highest behavior level which will make her a peer leader and allow her to gain special privileges.


text:
April 9, 2019 9:46AM PT
John Goodman, Billy Crystal to Reprise 'Monsters Inc.' Roles for Disney+ Series
By Will Thorne
Will Thorne
Staff Writer @https://twitter.com/WillHMThorne	FOLLOW
Will's Most Recent Stories
Meryl Streep to Narrate Apple Animated Short About Earth Day
'Limetown,' 'Sorry For Your Loss' Canceled at Facebook Watch
'Better Call Saul' Renewed for 6th and Final Season at AMC
CREDIT: Courtesy of Disney/Pixar
Several of the original "Monsters Inc." voice cast will once again lend their dulcet tones to the beloved characters for an animated series titled "Monsters At Work," which is in the works at Disney+, Variety has learned.
The show will follow Tylor Tuskmon (voiced by Ben Feldman), an eager and talented young mechanic on the Monsters, Inc. Facilities Team who dreams of working his way up to the factory Laugh Floor to become a Jokester alongside his idols Mike and Sulley. Billy Crystal and John Goodman will return as the monster best friend pairing for the series, which is slated to premiere on Disney+ in 2020.
Several other original cast members are returning, including John Ratzenberger (Yeti), Jennifer Tilly (Celia Mae) and Bob Peterson (Roz). They will be joined by newcomers Kelly Marie Tran as Val Little, Tylor's lifelong friend and confidante; Henry Winkler as Fritz, the scatterbrained boss of the operation; Lucas Neff who will voice Duncan, an opportunistic plumber; Alanna Ubach as Cutter, the officious rule follower; and Stephen Stanton as Smitty and Needleman, the bumbling custodial team. Aisha Tyler will voice Tylor's mom, Millie Tuskmon.
Produced by Disney Television Animation, the series picks up six months after the original movie's story, with the Monsters, Inc. power plant now harvesting the laughter of children to fuel the city of Monstropolis, thanks to Mike and Sulley's discovery that laughter generates ten times more energy than screams.
The series was developed and is executive produced by Disney animation veteran Bobs Gannaway, with Ferrell Barron serving as producer. Kat Good and Rob Gibbs will serve as directors on the series.
Meryl Streep is the latest big name heading to Apple. The acclaimed actor is attached to narrate a forthcoming animated short film about Earth Day, which is slated to premiere April 17 on Apple TV Plus. Titled "Here We Are: Notes for Living on Planet Earth," the short will also feature the voices of "State [...]
'Little America' Boss on Wanting to Tell Immigrant 'Stories That Had More Hope Than Anything'
"Little America" launches on Apple TV Plus at a time when the immigrant experience is a hot topic in the media, but the stories the writers and producers behind the new anthology series wanted to tell were not about race, says co-creator and showrunner Lee Eisenberg. "All of the stories are meant to be slices [...]
Why NATPE Miami Is a 'Booming Area for Media and Multiculturalism'
The NATPE conference will mark its tenth iteration of dealmaking, networking, brainstorming and ocean-gazing in Miami this year. The move of the association's annual market and conference to Miami Beach in 2011 was born out of desperate times, but the balmy setting has proven to be a boon for the National Assn. of Television Program [...]


Our story began thirty years ago. At that time our main focus was fishing and boat renting on a short strand strip. We started to develop the marina following our customers' demands and needs. The artificial bay was the first to serve the incoming small boats and yachts. Shortly after the houses on the shore began to accept guests. Our marina's beloved accommodations are the floating house accompanied by the lakeside cottages.
Our guests are happy to take advantage of our boat trips or rent a canoe or bike for taking some adventure in the surroundings. The thatched and shingled houses, the trees, the bushes all became an alluring location for our – mostly returning – guests to have fun, relax and recreate.


Cocktail historians have tried to track down the Negroni Zero for decades, but the still most-repeated story (possibly apocryphal) is that Count Camillo Negroni once asked a Café Casoni bartender to improve his Americano (Campari, sweet vermouth, and club soda) by using gin instead of soda water. A bit of a "bartender's handshake" back in the day, the drink is rife for creating inventive variants, thanks to its equal parts sweet, bitter, and boozy, and played a crucial role in our modern cocktail revival.
Some genius was the first to combine the two—in this case, the clever gents in the army of the British East India Company. It wasn't just a tasty way to get their jollies off while bored. The soldiers mixed the bitter cure-all quinine with water, sugar, lime, and, yes, gin.
How you prefer your Martini says a great deal about your character: are you the reserved type who takes yours extra dry? The dilettante who prefers a it stirred? A laid back lounger who likes it dirty?
In San Francisco, something called the Martinez was popular in libation. The Martinez not only had gin and vermouth, but also bitters and Maraschino. Once those latter two ingredients were stripped away, the classic Martini had come in. It's a drink so simple that every Martini lover eventually has their preferred recipe, whether it's super-dry, way-dirty, on the rocks or off.
We presume the cocktail was first poured in Manhattan. The drink has always had sweet vermouth, bitters, and whiskey, but over the years other ingredient have been around between bourbon, rye, and even Canadian Club. As rye made its triumphant return in the last decade, it has come to rule the roost. And new variants of the easily made cocktail have also emerged.
Stir the ingredients with cracked ice, then strain into in a chilled coupe. Garnish with an orange twist or brandied cherry.
It was said to be invented in the town of Santiago de Cuba by an American man during the Spanish and American War. By the early-1900s, it had come in to America where it became the favorite drink for Americans. It was likewise the favored drink of Sasha Petraske, one of the most influential personas in the modern cocktail revival, who helped his patrons learn how this drink should actually be made.
The exact origin of the sidecar is unclear, but it is thought to have been invented around the end of world war one in either London or Paris. The drink was directly named for the motorcycle attachment and the Ritz hotel in Paris claims origin of the drink.
Sprinkle sugar on a small plate. Wet half the rim of of a glass with a damp paper towel. Dip the wet rim in sugar to coat. Combine Cognac, orange-flavored liqueur, and lemon juice in a cocktail shaker. Add ice, cover, and shake until chilled. Strain into the chilled, sugar-rimmed coupe.


Companies, and the people in them, have a way of describing innovation that reflects their business need. It's subconscious and revealing. The hidden messages are there, but we must listen to hear them, and the trick is to focus on the adverbs.
How innovation is described is a signal to the real and underlying condition of a business. When staff talk to each other, there's an element of bias to try and please their peers. Describing a condition in a palatable way doesn't tell us what we need to know.
'Innovation' is talked about regularly without much attention paid to the meaning of the word. You get away with it, because it's a general term applied to a general problem affecting an entire company. Meetings that discuss innovation, but haven't first defined the issue to solve, may as well not take place.
To use innovation to solve a problem, you first need to understand it. Blindingly obvious perhaps, but it's true. It's why we take time to listen to the real story: the individual perspectives; the sum of the parts that make up more than the whole.
Your product has been doing well for years. Recently, your customers have started to pressure you for price reductions, and your marketing team has tried to support the selling process with new communications that re-state the product's features and benefits. You pick up signals of a new brand in the market, and the reaction from the sales team is to pick up the trade marketing effort.
The problem is seen as reduced revenues per unit and pressure on annual targets from a cash cow. In other words, falling sales. The standard response is to look at distribution gaps, latent customers and segments. Maybe you'll try some export activity. It rarely works quickly.
But the problem hasn't been adequately identified, so the solution can't be either.
This is where we listen hardest. Which adverb was most often used to describe the challenge people see? 'Quickly' implies that the core issue set in some time ago, but was ignored because the cash cow was doing OK. 'Desperately' suggests something similar, but to a greater degree. 'Creatively' says a lack of new ideas is an issue, or that management won't discuss them. And so on.
If there's a new competitor in the market that you didn't see coming, your focus has been too much on you. Look at what your customers want – this is your starting point for designing a solution. It's common for teams to assume their offering has legs, when the truth is they've been getting left behind for a long time already. Be honest here. Lose any misplaced loyalty and move on.
Noticing your adverbs (for instance) helps show how an innovation strategy can anticipate and mitigate against effective competition. Every company has a different culture, and your solution and strategy need to acknowledge yours.
Essentially, there are only two reasons why companies seek help to devise an innovation strategy: to stop a slide or underpin growth. Which one are you?
room44 insists on being called an innovation agency. Our value is delivered not just from sorting out the short term – you've already got people to do that – but we're not change managers or management consultants. Our mission is to go far, wide and deep, and to offer you options that don't exist in your business today.
We can mentor your people to do it for themselves; we can coach them away from the office or on-site. Whichever way you employ us, there are a few adverbs you'll hear us use often – like differently, consistently, effectively and now.


Created in 1970 by Henri Robert for Chanel Perfume, it is an Eau de Parfum destined for women.
The last perfume that will be inaugurated and will carry Gabrielle Chanel.
A fragrance that pays tribute to his date of birth. August 19, 1883.


Ian Hutchinson, the author of People Glue, once said "Your number one customers are your people. Look after employees first and then customers last." Forward-thinking and progressive employers will agree that no business can reach its full potential if its employees aren't motivated to perform at their best. For many businesses, revenue is directly linked to employee performance, and yet most of us have worked for one or more companies with bad or even toxic workplace cultures. This article explores the psychology of motivation and provides insight into how businesses should incentivise their employees, and how this approach can be extended to customers, to increase retention and revenue.
A recent article in HBR describes how many businesses invest heavily in team building exercises to improve workplace collaboration and performance, from bowling nights to obstacle courses. While these exercises do bring people together and help them bond, it rarely lasts beyond the exercise and has little effect on organisational results.
Instead, the author, Carlos Valdes-Dapena, suggests that rather than team-building exercises, collaboration should be incentivised and part of each individual performance objectives. When an expectation of collaboration is communicated clearly throughout a business and people are made accountable to live up to that expectation, productivity will flourish. And when productivity goes up, so does revenue.
For performance objectives to be met, however, people need to be held accountable and also incentivised. So, should you choose the carrot, or the stick to ensure performance objectives are met? The answer is neither, and the answer can also be applied to customers to increase their satisfaction and retention.
Two psychologists from Stanford and the University of Michigan ran an experiment to test the effect of incentives on motivation and what is known as the 'overjustification' hypothesis. They recruited a group of pre-schoolers whom all enjoyed drawing and had them draw for six minutes at a time. Each child was randomly assigned one of three conditions – either they were told they would get a reward at the end for drawing (and did), they weren't told anything but received a reward at the end, or they were told not to expect a reward at all (and didn't).
Over a few days of observation, unsurprisingly, those who continued to expect and receive rewards decreased the amount of interest they took in drawing. Surprisingly, however, they had less interest than the children who expected and received, no reward at all. The clear winner in motivation, however, was the group of children who received unexpected rewards.
The experiment concluded that "tangible rewards tend to have a substantially negative effect on intrinsic motivation (…) Even when tangible rewards are offered as indicators of good performance, they typically decrease intrinsic motivation for interesting activities." Additionally, rewarding people tend to make them less creative and worse at problem-solving.
By offering unexpected rewards to employees for performance objectives, businesses will see an improvement in the motivation and productivity of their staff and will benefit from business growth. Similarly, businesses who offer unexpected rewards to their customers can expect to motivate customers to spend more and be more loyal. This concept is further supported by the principle of reciprocity. According to Robert Cialdini, author of Influence: The Psychology of Persuasion, patrons at a restaurant will tip on average 3.3% more if they receive a mint and a whopping 20% more if they receive two mints. This is the principle of reciprocity at play – people are willing to give more if they receive something unexpected. More about that in our next article though so keep an eye out for it.
By practising the act of giving unexpected rewards to both employees and customers, your business will flourish. If you are looking for creative ways to reward your customers, book in for a complimentary strategy session with us and we can help you grow your business.


Do you know what the biggest difference is between fear vs excitement?
Listen in to this weeks podcast as I dive into these key emotions.
Once you discover the difference and how your brain interprets these two emotions, you will never see life the same way!
This could be just the ticket you have been looking for to achieve more success and happiness!
This week's podcast was inspired by Mel Robbins – One of my favorite speakers and author of The 5 Second Rule.
One of the most eye-opening things I have learned from Mel is that fear and excitement have the exact same physiological representation in the body, the only difference is how we label them.
Think about it. When you are afraid you may have chills, butterflies in your stomach, maybe you're sweating a little bit, etc. When you are excited you have very similar physical reactions.
What's really interesting is that when people were told to be excited vs. scared during a test, the people who were excited performed better on the test. When you think about it, this makes a lot of sense.
As entrepreneurs we spend 90% of our time outside of our comfort zones, in the place where fear lives. If we see this place as something to be afraid of, we're not going to be as successful as we could be. It feels different to be excited in these moments rather than afraid.
I want you to think about going through your day. Are you labeling the moments of your business with excitement or with fear? If you find you are afraid of certain things, try reframing them as something to be excited about.
The thing I've realized is that nothing is permanent. Things change. Nothing is constant. The more you can approach your business as a journey, the better off you will be.
Fear and excitement are similar, yet very different beasts when it comes to how your brain interprets them. When you can begin to approach all aspects of your business with a sense of excitement instead of fear, and you'll be surprised at the effect this has on your business (and your life!).
As always: Keep it simple, so you can grow.
An entrepreneur, author, and strategist junkie dedicated to helping you build the business you want by making strategy and online simple!
and get tips to grow your business straight to your inbox!
Let's help you make things simple, so you can grow!
3 Ways to Grow Your Business, Your Revenue, and Your Impact Today!
Ready to Create Lead Magnets Simply?


Premium EVEREST Aluminium side steps for the RAV4 are constructed of high quality light..
If you drive a RAV4 , EVEREST towbars will add versatility and value to your vehic..
Constructed from top quality aluminium, EVEREST roof rack rails with cross bars ..


text:
class Ghee

  # API module encapsulates all of API endpoints
  # implemented thus far
  #
  module API

    # The Repos module handles all of the Github Repo
    # API endpoints
    #
    module Repos

      # Gists::Proxy inherits from Ghee::Proxy and
      # enables defining methods on the proxy object
      #
      class Proxy < ::Ghee::ResourceProxy
        attr_accessor :repo_name
      end

      # Get repos
      #
      # name - String of the name of the repo
      #
      # Returns json
      #
      def repos(login,name = nil)
        repo = name.nil? ? login : "#{login}/#{name}"
        path_prefix = "./repos/#{repo}"
        proxy = Proxy.new(connection, path_prefix)
        proxy.repo_name = repo
        proxy
      end

    end
  end
end

redpajama_set_name: RedPajamaGithub


Missing Person Investigation in Scarborough from Private Investigator Scarborough has had enormous success in and around North Yorkshire re-joining families and introducing them in the event that they have never met.
It has been twenty years since a member of family went away in Falsgrave without a trace of his/her location and you have bad news this family member needs to know through personal contact.
You had a fight with a member of the family before inside Scarborough and in search of to keeping in touch with them.
You have dependably lived in East Ayton and have as of late discovered that you were received and might want In order to adhere to your natural mother however you don't know where to begin.
It's been incredible The idea of putting together your family tree within Danby however is here in a difficulty and in search of help.
Getting the details in North Yorkshire started with simply no challenges but and brought joy, however, the following methods toward getting in touch are usually unproductive and also annoying.
Private investigators at Private Investigator Scarborough can locate family members you may've lost links with several years ago in Scarborough.
Private Investigator Scarborough may do a Missing Persons Trace within Scarborough and round the United kingdom to specify your loved ones using the minor steps connected with fine detail.
Missing Individual Investigation Within Scarborough could be forwarded to uncover your own ancestors for the family tree or maybe hope to satisfy your own natural mom with out precedent in North Yorkshire.
Missing Persons Surveillance with Private Investigator Scarborough may always efficiently identify elements of the particular lost person's everyday living information from other pasts inside Carr End.
Lost People surveillance inside Scarborough delivers qualified prospects by means of collecting data from residents inside Scarborough whose background is familiar with the individual before.


text:
President Vladimir "Putt-Putt" Putin of Russia "obliquely" compared the United States to the Third Reich in a speech Wednesday. It sounds increasingly like he's trying to restart the good old days of the Cold War again, since Putt-Putt was a former KGB agent. Or he could be trying to curry favor with the Democrats in our country who still think the USA is under Nazi occupation.
About a dozen unnamed moderate Republicans had an "honest" heart to heart talk with President Bush about the war in Iraq. Probably worried that Bush will lose his re-election bid in 2008. Yes, I know Bush is not running in 2008, but the press and the Democrats don't know that. Shhh!
Flim-flam filmmaker Michael Moore is under investigation by the U.S. Treasury Department for taking 9-11 rescue workers to Cuba just to show how much the US healthcare system hates rescue workers. His new film "Sicko" starts its anti-American propoganda machine June 29th. That's not filmmaking - it's editing!
NASA thinks we will have 110-degree temps this summer in cities as far north as DC and Chicago. Buy those air conditioners and bags of ice while they're still cheap. Watch: We'll probably have one of the coolest summers this year. Every time we announce the end of the world something always interferes.
Lesbian couples are stirring up the pot, or at least the fertilized eggs. A state court in Pennsylvania has ordered a sperm donor to pay child support because he was so involved in the lives of the children even after the couple broke up. I say was because said sperm donor died of a stroke in March. What a tangled gay web we weave...
And finally, even though left-wing Democrat cowards are afraid of having a debate on a certain network, Republicans will have their debate on FOX NEWS Tuesday May 15th.


IN THE DESIGN AND CONSTRUCTION OF ARTIFICIAL ROCKWORK, CLIMBING WALLS, ROCK AND WATER FEATURES, STONE FACE CARVED PLASTER AND SPECIALIST MODULAR CONCRETE WORK.
Established in 1998, WILD EXPOSURE is the industry leader in Southern Africa in the design and construction of artificial rockwork, rock and water features, stone face carved plaster and specialist modular concrete work.
We guarantees all workmanship and we will assure the client of our continued service.
We are based widely throughout South Africa with offices in Pretoria, Durban and Cape Town.
We have also successfully completed projects in Botswana, Namibia, Mozambique, Egypt and the Emirates.


text:
Health e-News
A publication of the Faculty of Medicine and Health Sciences
Health e-News signup
Health in the Community
Leading-edge neuroscience network renews agreement
L-R (upper row) Dr. David Eidelman, Dean of Medicine; Dr. Urs Obrist, Senior Science and Technology Counsellor, Embassy of Switzerland; Prof. Jean-Marc Fritschy, Deputy Dean of the Faculty of Medicine of the University of Zürich, Co-Director, Neuroscience Center Zurich; Anne McKinney, Associate Vice-Principal, Research and Innovation and Chair, Brain@McGill; Elisabeth Bösch-Malinen, Swiss Consul General, Montreal; Nick Baker, British Consul General, Montreal. L-R (bottom row) Prof. Michael Hengartner, President, University of Zurich; Prof. Fritjof Helmchen, Director, Neuroscience Center Zurich; Anna Christina Nobre, Head of Oxford Neuroscience; Rosie Goldstein, Vice-Principal, Research and Innovation; Suzanne Fortier, Principal and Vice-Chancellor. / Photo: Owen Egan
McGill, Oxford and ZNZ renew tripartite partnership agreement at ceremony at McGill on May 29
By Meaghan Thurston, The McGill Reporter
The renewal of the tripartite partnership agreement between the Brain@McGill, the University of Oxford, and the University of Zurich and ETH Zurich (ZNZ) took place on May 29, amidst much excitement for what has been to date a fruitful and ambitious venture.
First signed in 2013, the three-way agreement has since supported over 60 collaborations, including research projects and research workshops in diverse areas; from work related to bilingualism, to that confronting Parkinson's and Alzheimer's disease. Projects have also focused on sleep and the influence of disrupted circadian rhythms, among other topics. The Velux Foundation, based in Switzerland, has awarded significant funding for three research projects investigating healthy aging under the tripartite agreement.
"The Tripartite partnership has engaged our respective research communities at all levels, as well as having led to new opportunities with the Velux Foundation," said Principal Suzanne Fortier, to open the event. "Projects that are intersectoral and international in scope – like those undertaken jointly by ZNZ, Oxford, and Brain@McGill – can only have a positive impact on our ability to overcome some of our most pressing challenges in neuroscience."
In addition, the partnership has facilitated mobility of students and staff between the four institutions and has promoted research initiatives bridging basic and clinical neuroscience, drawing on complementary expertise.
Following the signing, Adam Steinberg speaks with Suzanne Fortier at a lunch honouring his father, former Chancellor Arnold Steinberg. / Photo: Owen Egan
The tripartite agreement was renewed for five years and will provide funding opportunities for collaborative projects; facilitate mobility of students and staff between the three institutions; and promote research initiatives bridging basic and clinical neuroscience, based on complementary expertise. This will provide an unprecedented opportunity to enhance human health, particularly in neurological and psychiatric disorders.
"The tripartite partnership with Brain@McGill and Oxford Neuroscience is a cornerstone in the strategy of the Neuroscience Center Zurich to cooperate with world-leading institutions, providing our researchers and students with unique networking opportunities and state-of-the-art research collaborations," said Prof. Jean-Marc Fritschy, Deputy Dean of the Faculty of Medicine of the University of Zürich, Co-Director, Neuroscience Center Zurich. "We look forward to jointly furthering knowledge in Neuroscience, for the benefit of patients and society, and to contribute toward the international standing of our Universities."
"The remarkable success of this partnership stems from our shared commitment to delivering the best fundamental science and experimental research for the benefit of society," said Anna Christina (Kia) Nobre, Head of Oxford Neuroscience. "We are excited by the opportunities that the new agreement affords to build on our achievements, including promoting open science and the development of future leaders in neuroscience, as well as to address some of the most challenging health issues facing Europe and the world today."
Guests of the event, which included both international researchers and dignitaries, industry representatives as well as donors to the initiative, participated in a celebratory luncheon at which McGill's former Chancellor Arnold Steinberg was remembered for kick-starting this bold international collaboration.
"His vision and generosity have played a pivotal role in helping us establish McGill's excellence in health science and neuroscience, and he was, in many ways, a catalyst for this tripartite partnership," said McGill's Vice-Principal, University Advancement, Marc Weinstein. "It was he that made the first major donation to the Brain@McGill initiative, propelling it forward."
Adam Steinberg, the son of the former chancellor, attended the luncheon in his father's honour. Following the luncheon, guests participated in an afternoon devoted to research presentations by the partner-researchers.
Signatories of the renewed agreement included McGill's Principal and Vice-Chancellor Professor Suzanne Fortier, Dr. Rosie Goldstein, Vice-Principal, Research and Innovation, Prof. Anna Christina Nobre, Head of Oxford Neuroscience, Prof. Michael Hengartner, President of the University of Zurich, and Prof. Fritjof Helmchen, Director Neuroscience Center Zurich (in absentia, Prof. Detlef Günther, Vice President Research and Corporate Relations, ETH Zurich and Chris Kennard, Head of Medical Sciences Division, University of Oxford.)
Faculty tutor-led journal clubs close knowledge gaps for med students
Overcoming obstacles with adaptive learning
Searching for Calm in the Tsunami: Mindfulness in the Rehabilitation Professions
Fall Convocation 2021: The day in photos
Ingram School of Nursing
School of Physical and Occupational Therapy
School of Communication Sciences & Disorders
School of Population and Global Health
McGill Network
CIUSSS Montreal West Island
CIUSSS West-Central Montreal
RUISSS McGill
Other McGill Publications
FMHS Focus
McGill Newsroom
Copyright © McGill University. All rights reserved.


Asteroid Defense is an iOS iPad app that uses touch gestures in defending the earth from incoming asteroids by mining small asteroids for resources. These resources turn into nuclear missiles to be stored in preparation for "world killer" asteroids. The nuclear missiles can be used to either alter the course of incoming "world killers" or destroy them outright. The objective is to keep the earth alive as long as possible by keeping all asteroids from colliding with earth.
The main goal of this application is to increase engagement with the public, particularly youth, with regards to the untapped potential of asteroids as a resource, as well as bringing awareness to the slight possibility of danger that could result from asteroids colliding with earth. It also demonstrates some of the planetary physics involved with asteroids and their orbits.
With the recent announcements of two major companies, Planetary Resources and Deep Space Industries, announcing their investment in asteroid mining, proliferation of asteroid resources will be an inevitable future. We hope that this game would serve to spark some public interest within this field, especially with the youth.
The objective of the game is simple. Keep the earth alive for as long as possible by preventing asteroids from colliding with earth. In order to prevent collisions, projectiles are launched by swiping from the Earth towards the direction of the asteroid.
World killer sized asteroids, distinguished by their size, will appear from time to time and will require the use of nuclear missiles to either change its current trajectory, or destroy it completely.
These are the default projectiles which the user can launch infinitely.
Upon contact with an asteroid, asteroid will shrink and disappear which will yield resources based on the size of the asteroid.
The resources gained will go towards the acquisition of nuclear missiles.
Every 100 resources results in 1 nuclear missile.
If the Earth is damaged, mining asteroids will replenish its health.
Mining units do not affect "world killer" sized asteroids.
To launch a mining unit, swipe from the Earth towards any direction. A mining unit will be launched which will continue to travel in that direction until it collides with an asteroid.
These are explosive projectiles acquired from mining asteroids.
These are intended for use only with "world killers".
The number on "world killers" indicate the number of nuclear missiles required to destroy it.
If a nuclear missile does not hit an asteroid directly, it can still change the trajectory of that asteroid.
To launch a nuclear missile, swipe from the earth to a desired point of detonation. The nuclear missile will detonate where the swipe ends.
Built entirely in Objective-C, the application takes advantage of iOS's SpriteKit library. It is a 2D library that handles majority of the animations and physics. This engine was needed to be augmented to provide more realistic gravitational physics between the different elements in the game.
Add onboarding to inform user of gameplay & mechanics.