text:
/*
 * Original based on lift-mongodb-record
 * And lift-record
 */

package net.indoorlabs.neo4j
package record
package field

import org.neo4j.scala.Neo4jImplicits._
import scala.collection.JavaConversions._
import org.neo4j.graphdb._
import index.IndexManager
import net.indoorlabs.neo4j.Meta.Reflection._
import org.apache.lucene.search.TermQuery
import net.liftweb.util.ElemSelector
import net.liftweb.record.BaseField
import net.liftweb.json.JsonAST.{JObject, JNothing}
import net.liftweb.json.JValue
import net.liftweb.common.{Failure, Empty, Box, Full}
import net.liftweb.util._
import scala.collection.immutable.Queue
import net.liftweb.json.JsonAST._
import net.liftweb.json.JsonDSL._

class GuardedException(msg: String) extends Exception(msg)

trait BaseLink[OwnerType <: Neo4jRecord[OwnerType], LinkedType <: Neo4jRecord[LinkedType]] extends FieldIdentifier {
  private[record] var fieldName: String = _

  def owner: OwnerType

  def doDiff_? = false

  def name: String = fieldName
  def direction = Direction.OUTGOING
  def r_type: RelationshipType

  def anti_direction = if (direction == Direction.OUTGOING) Direction.INCOMING else Direction.OUTGOING

  private[record] final def setName_!(newName : String) : String = {
    fieldName = newName
    fieldName
  }

  override def uniqueFieldId: Box[String] = Full(name+"_id")

  def node_index: Seq[(String, Any)] = Nil //for multilang strings

  /** Validate this links settings, returning any errors found */
  def validate: List[FieldError] = Nil

  def save_cached: Unit

  def asJValue: JObject
  def asJValueLocaled(locale: String): JObject
  def setFromJValue(jv: JValue): List[LinkedType]
  def jval_to_add(jv: JValue): JObject
  def diff(that: BaseLink[OwnerType, _], filter: List[Any]): JObject
  def applyDiff(diff: JObject): Unit

  protected def metaFromRel(rel: Relationship): Option[LinkedType]
}

class Neo4jLink[OwnerType <: Neo4jRecord[OwnerType], LinkedType <: Neo4jRecord[LinkedType]]
    (rec: OwnerType, rel_type: RelationshipType, meta: Neo4jMetaRecord[LinkedType]) extends BaseLink[OwnerType, LinkedType] {
  protected def single_params: Map[String, List[Any]] = Map()

  private def check_single_params(params: Map[String, Any]) = {
    var ret = false
    if (single_params.size == 0) ret = true
    else {
      val params_query = single_params.filter(entry => {
        params.get(entry._1) match {
          case Some(p_val) => {
            if (entry._2.size > 0) entry._2.contains(p_val)
            else true
          }
          case _ => false
        }
      }).keySet.map(p_name => p_name -> params.get(p_name).get) toMap

      //println("P QUERY: " + params_query)
      //println("P QUERY: " + single_params.size)

      if (params_query.size != single_params.size) ret = false
      else {
        ret = (owner.node match {
          case Full(n) => (rels( params_query ).headOption.isEmpty || !get_cached_deleted( params_query ).isEmpty )
          case _ => true
        }) && get_cached_linked( params_query ).isEmpty
      }
      //println("RET: " + ret)
    }
    ret
  }

  protected def guard(from_node: Node, to_node: Node, params: Map[String, Any]) = {
    check_single_params(params)
  }
  protected def guard(to_rec: LinkedType, params: Map[String, Any]) = {
    check_single_params(params)
  }

  override def r_type = rel_type

  protected def index_name : String = ""

  private var cached_linked = Queue[(LinkedType, Map[String, Any])]()
  private var cached_deleted = Queue[(Map[String, Any], Boolean)]()

  def get_cached_linked() = cached_linked
  def get_cached_linked(param_map: Map[String, Any]) = cached_linked.filter(l => {
    param_map.find(p => l._2.get(p._1) != Some(p._2)).isEmpty
  })
  def get_cached_deleted() = cached_deleted
  def get_cached_deleted(param_map: Map[String, Any]) = cached_deleted.filter(d => {
    d._1.isEmpty || param_map.find(p => d._1.get(p._1) != Some(p._2)).isEmpty
  })

  protected def link_node(rec_node: LinkedType, param_map: Map[String, Any], do_guard: Boolean): Unit = {
    if (rec_node.node isEmpty) rec_node.save
    for (n <- owner.node;
         f_n <- rec_node.node) {
      if (do_guard && !guard(n, f_n, param_map)) throw new GuardedException("guarded")
      val new_rel = if (direction == Direction.OUTGOING) (n --> rel_type --> f_n).rel.get
      else (n <-- rel_type <-- f_n).rel.get

      for (param <- param_map) {
        new_rel(param._1) = any2neo4j(param._2.asInstanceOf[AnyRef])
        if (ind_props.contains(param._1)) {
          _rel_index.foreach(_.add(new_rel, param._1, param._2))
        }
      }
      return
    }
    throw new Exception("No n4j nodes to link")
  }

  protected def unlink_node(rel: Relationship, deleteNodes: Boolean) = {
    metaFromRel(rel).flatMap(m => {
      _rel_index.foreach(_.remove(rel))
      rel.delete
      if (deleteNodes) {
        m.delete_!
        None
      } else Some(m)
    })
  }

  private def unlink_nodes(param_map: Map[String, Any], deleteNodes: Boolean) = {
    internalGetRels(param_map).toList.map(unlink_node(_, deleteNodes)).filter(!_.isEmpty).map(_.get)
  }

  protected def save_cached_deleted = {
    cached_deleted.distinct.foreach(dltd => unlink_nodes(dltd._1, dltd._2))
    cached_deleted = Queue[(Map[String, Any], Boolean)]()
  }

  protected def save_cached_linked = {
    cached_linked.foreach(lnkd => link_node(lnkd._1, lnkd._2, false))
    cached_linked = Queue[(LinkedType, Map[String, Any])]()
  }

  override def save_cached = {
    save_cached_deleted
    save_cached_linked
  }

  protected lazy val _rel_index = if (index_name != "")
    Full(Neo4jDB.use( db => db.index().forRelationships("ft_"+index_name,
      Map[String, String](
        IndexManager.PROVIDER -> "lucene",
        "type" -> "fulltext")) )
    )
    else Empty

  protected lazy val ind_props: List[String] = Nil

  def owner = rec

  def get2(params: Seq[String] = Nil) = rels().toSeq.filter(rel => {
    !cached_deleted.map(_._1).exists(d => d.filter(p => rel(p._1) != Some(p._2)).isEmpty)
  }).map(rel => meta.fromNode(
      if (direction == Direction.OUTGOING) rel.getEndNode
      else rel.getStartNode
    ) -> params.map(p => p -> rel(p)).filter(!_._2.isEmpty).map(p => p._1 -> p._2.get)) ++
    get_cached_linked.map(x => x._1 -> params.map(p => p -> x._2.get(p)).filter(!_._2.isEmpty).map(p => p._1 -> p._2.get))

  def get2(params: Seq[String], param_map: Map[String, Any]) = rels(param_map).toSeq.filter(rel => {
    !cached_deleted.map(_._1).exists(d => d.filter(p => rel(p._1) != Some(p._2)).isEmpty)
  }).map(rel => meta.fromNode(
      if (direction == Direction.OUTGOING) rel.getEndNode
      else rel.getStartNode
    ) -> params.map(p => p -> rel(p)).filter(!_._2.isEmpty).map(p => p._1 -> p._2.get)) ++
    get_cached_linked(param_map).map(
        x => x._1 -> params.map(p => p -> x._2.get(p)).filter(!_._2.isEmpty).map(p => p._1 -> p._2.get))

  def get1 = rels().toSeq.filter(rel => {
    !cached_deleted.map(_._1).exists(d => d.filter(p => rel(p._1) != Some(p._2)).isEmpty)
  }).map(rel => meta.fromNode(
      if (direction == Direction.OUTGOING) rel.getEndNode
      else rel.getStartNode
    )) ++ get_cached_linked.map(_._1)

  def get1(param_map: Map[String, Any] = Map.empty) = rels(param_map).toSeq.filter(rel => {
    !cached_deleted.map(_._1).exists(d => d.filter(p => rel(p._1) != Some(p._2)).isEmpty)
  }).map(rel => meta.fromNode(
      if (direction == Direction.OUTGOING) rel.getEndNode
      else rel.getStartNode
    )) ++ get_cached_linked(param_map).map(_._1)

  def get_saved(): Iterable[LinkedType] = rels.map(rel => meta.fromNode(
      if (direction == Direction.OUTGOING) rel.getEndNode
      else rel.getStartNode
    ))

  def rels(): Iterable[Relationship] =
    if (owner.canRead_?) internalGetRels()
    else Iterable[Relationship]()

  protected def internalGetRels(): Iterable[Relationship] = owner.node match {
    case Full(n) => n.rels(rel_type, direction)
    case _ => Nil//throw new Exception("No n4j from node")
  }

  def get_saved(param_map: Map[String, Any]): Iterable[LinkedType] =
    rels(param_map).map(rel => meta.fromNode(
      if (direction == Direction.OUTGOING) rel.getEndNode
      else rel.getStartNode))

  def rels(param_map: Map[String, Any]): Iterable[Relationship] =
    if (owner.canRead_?) internalGetRels(param_map)
    else Iterable[Relationship]()

  protected def internalGetRels(param_map: Map[String, Any]): Iterable[Relationship] = owner.node match {
    case Full(n) => {
      var query: List[String] = List()

      val p_m = if (index_name != "") param_map.filter(p => {
        if (ind_props.contains(p._1)) {
          query ::= ( """%s:"%s"""" format (p._1, p._2.toString) )
          false
        }
        true
      })
      else param_map

      val rs = query match {
        case head :: tail => {
          _rel_index.get.query( tail.foldLeft(head)(_ + " AND " + _), owner.node.get, null )
        }
        case _ => n.rels(rel_type, direction)
      }

      if (p_m.size > 0) rs.toList.filter(r => {
        p_m.map(p => r(p._1) == Some(p._2)).find(!_).isEmpty
      })
      else rs
    }
    case _ => Nil//throw new Exception("No n4j from node")
  }

  def += (rec_node: LinkedType, param_map: Map[String, Any] = Map(), immediately: Boolean = false) : Unit = if (owner.canWrite_?) {
    if (immediately) {
      save_cached
      link_node(rec_node, param_map, true)
    } else {
      if (!guard(rec_node, param_map)) throw new GuardedException("guarded")
      cached_linked :+= (rec_node, param_map)
    }
  } else owner.writeException

  override protected def metaFromRel(rel: Relationship): Option[LinkedType] = Some(meta.fromNode(rel.getOtherNode(owner.node.get)))

  def deleteLinks(param_map: Map[String, Any], deleteNodes: Boolean = true, immediately: Boolean = false): List[Neo4jRecord[_]] = if (owner.canWrite_?) {
    var ret = List[LinkedType]()
    if (immediately) {
      save_cached
      ret = unlink_nodes(param_map, deleteNodes)
    }

    val spanned = cached_linked.partition(l => {
      param_map.find(p => l._2.get(p._1) != Some(p._2)).isEmpty
    })
    cached_linked = spanned._2
    if (!immediately) cached_deleted :+= (param_map, deleteNodes)
    ret
  } else owner.writeException

  //def delete_all_links(deleteNodes: Boolean = true) = internalGetLinks().foreach(unlink_node(_, deleteNodes))

  def asJValue: JObject = {
    val all_linked = get2()
    if (all_linked.isEmpty) Nil
    else JObject(JField("links", JArray( all_linked.map(lnkd => lnkd._1.asJValue).toList )) :: Nil)
  }
  def asJValueLocaled(locale: String): JObject = {
    val all_linked = get2()
    if (all_linked.isEmpty) Nil
    else JObject(JField("links", JArray( all_linked.map(lnkd => lnkd._1.asJValueLocaled(locale)).toList )) :: Nil)
  }

  def diff(that: BaseLink[OwnerType, _], filter: List[Any] = Nil): JObject = that match {
    case that: Neo4jLink[OwnerType, LinkedType] => internalDiff(that, filter)
    case _ => throw new Exception("Not the same LinkedType")
  }

  protected def internalDiff(that: Neo4jLink[OwnerType, LinkedType], filter: List[Any] = Nil): JObject = if (doDiff_?) {
    val initial = asJValue
    val d = initial.diff(that.asJValue)
    val ch_lang_fields: List[JField] = d.changed.children.map(_.asInstanceOf[JField])
    val changed = ch_lang_fields.map(f => JField(f.name, JField("update",
        JObject( f.value.children.map(_.asInstanceOf[JField]).map(val_f =>
          JField(val_f.name,
            JObject(JField("old", initial\f.name\val_f.name) :: JField("new", val_f.value) :: Nil)
          )
        ))
    ) :: Nil))
    val del_lang_fields: List[JField] = d.deleted.children.map(_.asInstanceOf[JField])
    val deleted = del_lang_fields.map(f => JField(f.name, JField("delete", f.value) :: Nil))
    val add_lang_fields: List[JField] = d.added.children.map(_.asInstanceOf[JField])
    val added = add_lang_fields.map(f => JField(f.name, JField("add", f.value) :: Nil))
    changed ::: deleted ::: added
  } else JObject(Nil)

  def applyDiff(diff: JObject): Unit = if (doDiff_?) {
    val links_fields = diff.children.filter(_.isInstanceOf[JField]).map(_.asInstanceOf[JField])

    links_fields.foreach(loc_f => {
      val id = loc_f.name
      val act_field = loc_f.value.asInstanceOf[JObject].children(0).asInstanceOf[JField]
      act_field.name match {
        case "update" => getObjById(id) match {
          case Some(obj) => {
            obj.applyDiff(JObject(act_field :: Nil))
            obj.save
          }
          case _ => throw new Exception("Meta object link does not exist: "+loc_f.name)
        }
        case "delete" => getObjById(id) match {
          case Some(obj) => {
            if (!obj.delete_!) throw new Exception("Deletion error: "+loc_f.name)
          }
          case _ => throw new Exception("Meta object link does not exist: "+loc_f.name)
        }
        case "add" => getObjById(id) match {
          case Some(_) => throw new Exception("Meta object link already exists: "+loc_f.name)
          case _ => {
            val rec = meta.createRecord
            rec.save
            rec.setFieldsFromJValue(act_field.value)
            rec.save
            this.+=(rec)
          }
        }
        case x => throw new Exception("Incorrect action field: "+x)
      }
    })
  }

  def jval_to_add(jv: JValue): JObject = jv match {
    case x: JObject => x.children.map(_.asInstanceOf[JField]).map(f => JField(f.name, JField("add", f.value) :: Nil))
    case _ => throw new Exception ("Input is not a JObject")
  }

  def setFromJValue(jv: JValue): List[LinkedType] = if (doDiff_?) {
    setFromJValueID(jv)
  } else {
    if (!jv.children.isEmpty) {
      owner.save
      deleteLinks(Map(), immediately = true)

      val linksArr = (jv\"links").asInstanceOf[JArray]
      linksArr.arr.map(jobj => {
        val obj = meta.createRecord
        obj runSafe{ obj.save; obj.setFieldsFromJValue(jobj); obj.save; }
        +=(obj, immediately = true)
        obj
      })
    } else Nil
  }

  protected def setFromJValueID(jv: JValue): List[LinkedType] = {
    val fields = jv.asInstanceOf[JObject].children.map(_.asInstanceOf[JField])
    save_cached
    var ids = Seq[String]()
    val ret = fields.map(f => {
      val id = f.name
      ids = ids :+ id
      getRelById(id) match {
        case Some(link) => {
          val rec = meta.fromNode(link.getEndNode())
          rec.setFieldsFromJValue(f.value)
          rec.save
          rec
        }
        case _ => {
          val rec = meta.createRecord
          rec.setFieldsFromJValue(f.value)
          setRecId(rec, id)
          rec.save
          owner.save
          this.+=(rec)
          rec
        }
      }
    })

    deleteLinksIds(ids)

    ret
  }

  protected def getObjById(id: String): Option[Neo4jRecord[LinkedType]] = None
  protected def setRecId(rec: LinkedType, id: String): Unit = {}
  protected def getRelById(id: String): Option[Relationship] = None
  protected def deleteLinksIds(ids: Seq[String]): Unit = {}
}

class Neo4jSingleLink[OwnerType <: Neo4jRecord[OwnerType], LinkedType <: Neo4jRecord[LinkedType]]
    (rec: OwnerType, rel_type: RelationshipType, meta: Neo4jMetaRecord[LinkedType])
    (implicit guardNode : (Node, Node) =>
        Boolean = (r_n: Node , n: Node) => true,
      guardLinked : (OwnerType, (LinkedType, Map[String, Any])) =>
        Boolean = (r_n: OwnerType , l: (LinkedType, Map[String, Any])) => true) extends BaseLink[OwnerType, LinkedType] {
  def owner = rec

  override def r_type = rel_type

  private var cached_linked : Option[(LinkedType, Map[String, Any])] = None
  private var cached_deleted : Option[(Boolean)] = None

  def get_cached_linked() = cached_linked
  def get_cached_deleted() = cached_deleted

  protected def link_node(rec_node: LinkedType, param_map: Map[String, Any], do_guard: Boolean): Unit = {
    if (rec_node.node isEmpty) rec_node.save
    for (n <- owner.node;
         f_n <- rec_node.node) {
      if (n.rels(rel_type, Direction.OUTGOING).size > 0) throw new Exception("Already has relationship")
      if (do_guard && !guardNode(n, f_n)) throw new GuardedException("guarded")
      val new_rel = (n --> rel_type --> f_n).rel.get

      for (param <- param_map) {
        new_rel(param._1) = any2neo4j(param._2.asInstanceOf[AnyRef])
      }
      return
    }
    throw new Exception("No n4j node to link")
  }

  private def unlink_node(deleteNode: Boolean): Option[Neo4jRecord[_]] = rel.flatMap(rel => {
    metaFromRel(rel).flatMap(m => {
      rel.delete()
      if (deleteNode) {
        m.delete_!
        None
      } else Some(m)
    })
  })

  private def save_cached_deleted = {
    cached_deleted.foreach(unlink_node(_))
    cached_deleted = None
  }

  private def save_cached_linked = {
    cached_linked.foreach(lnkd => link_node(lnkd._1, lnkd._2, false))
    cached_linked = None
  }

  override def save_cached = {
    save_cached_deleted
    save_cached_linked
  }

  def get_saved: Box[LinkedType] = rel.map(rel => meta.fromNode(rel.getEndNode))
  def get1: Box[LinkedType] = {
    cached_linked.map(_._1) orElse
    {if (!cached_deleted.getOrElse(false)) rel.map(rel => meta.fromNode(rel.getEndNode)) else None}
  }
  def get2(params: Seq[String] = Nil) = {
    cached_linked.map(
        x => x._1 -> params.map(p => p -> x._2.get(p)).filter(!_._2.isEmpty).map(p => p._1 -> p._2.get)) orElse
    {if (!cached_deleted.getOrElse(false))
      rel.map(rel => meta.fromNode(rel.getEndNode) -> params.map(p =>
        p -> rel(p)).filter(!_._2.isEmpty).map(p => p._1 -> p._2.get))
    else None
    }
  }

  def rel: Box[Relationship] = if (owner.canRead_?) owner.node match {
    case Full(n) => n.rels(rel_type, Direction.OUTGOING).headOption match {
      case Some(rel) => Full(rel)
      case _ => Empty
    }
    case _ => Empty
  } else Failure("Current user has no read permissions")

  def --> (rec_node: LinkedType, param_map: Map[String, Any] = Map(), immediately: Boolean = false) = if (owner.canWrite_?) {
    if (immediately) {
      cached_linked = None
      save_cached
      link_node(rec_node, param_map, true)
    } else {
      val l = (rec_node, param_map)
      if (!guardLinked(owner, l)) throw new GuardedException("guarded")
      cached_deleted = None
      cached_linked = Some(l)
    }
  } else owner.writeException

  protected def metaFromRel(rel: Relationship): Option[LinkedType] = Some(meta.fromNode(rel.getOtherNode(owner.node.get)))

  def deleteLink(deleteNodes: Boolean = true, immediately: Boolean = false): Option[Neo4jRecord[_]] = if (owner.canWrite_?) {
    var ret: Option[Neo4jRecord[_]] = None
    if (immediately) {
      save_cached
      ret = unlink_node(deleteNodes)
    }
    else cached_linked match {
      case Some(lnkd) => {
        cached_linked = None
        cached_deleted = None
      }
      case _ => cached_deleted = Some(deleteNodes)
    }

    ret
  } else owner.writeException

  def allLinked: Option[LinkedType] = {
    val l = get_cached_linked.map(_._1)
    if (l.isEmpty) get_saved else l
  }

  def asJValue: JObject = {
    val all_linked = allLinked
    all_linked.map(lnkd => lnkd.asJValue) getOrElse Nil
  }
  def asJValueLocaled(locale: String): JObject = {
    val all_linked = allLinked
    all_linked.map(lnkd => lnkd.asJValueLocaled(locale)) getOrElse Nil
  }

  def diff(that: BaseLink[OwnerType, _], filter: List[Any] = Nil): JObject = that match {
    case that: Neo4jSingleLink[OwnerType, LinkedType] => internalDiff(that/*, ignore*/)
    case _ => throw new Exception("Not the same LinkedType")
  }

  protected def internalDiff(that: Neo4jSingleLink[OwnerType, LinkedType]): JObject = if (doDiff_?) {
    val pre_ini = asJValue
    val initial: JObject = if (pre_ini.children.isEmpty) pre_ini else JField("link", pre_ini) :: Nil
    val pre_that = that.asJValue
    val that_val: JObject = if (pre_that.children.isEmpty) pre_that else JField("link", pre_that) :: Nil
    val d = initial.diff(that_val)

    val ch_lang_fields: List[JField] = d.changed.children.map(_.asInstanceOf[JField])
    val changed = ch_lang_fields.map(f => JField("update",
        JObject( f.value.children.map(_.asInstanceOf[JField]).map(val_f =>
          JField(val_f.name,
            JObject(JField("old", initial\f.name\val_f.name) :: JField("new", val_f.value) :: Nil)
          )
        ))
    ))
    val del_lang_fields: List[JField] = d.deleted.children.map(_.asInstanceOf[JField])
    val deleted = del_lang_fields.map(f => JField("delete", f.value))
    val add_lang_fields: List[JField] = d.added.children.map(_.asInstanceOf[JField])
    val added = add_lang_fields.map(f => JField("add", f.value))
    changed ::: deleted ::: added
  } else JObject(Nil)

  def applyDiff(diff: JObject) = if (doDiff_?) {
    val act_field = diff.children(0).asInstanceOf[JField]
    act_field.name match {
      case "update" => allLinked match {
        case Some(linked) => {
          linked.applyDiff(JObject(act_field :: Nil))
          linked.save
        }
        case _ => throw new Exception("Meta object link not exists")
      }
      case "delete" => allLinked match {
        case Some(linked) => {
          if (!linked.delete_!) throw new Exception("File deletion error")
        }
        case _ => throw new Exception("Meta object link not exists")
      }
      case "add" => allLinked match {
        case Some(_) => throw new Exception("Meta object link already exists")
        case _ => {
          val rec = meta.createRecord
          rec.save
          rec.setFieldsFromJValue(act_field.value)
          rec.save
          this.-->(rec)
        }
      }
      case x => throw new Exception("Incorrect action field: "+x)
    }
  }

  def jval_to_add(jv: JValue): JObject = jv match {
    case x: JObject => x.children.map(_.asInstanceOf[JField]).map(f => JField(f.name, JField("add", f.value) :: Nil))
    case _ => throw new Exception ("Input is not a JObject")
  }

  def setFromJValue(jv: JValue): List[LinkedType] = {
    if (!jv.children.isEmpty) {
      owner.save
      deleteLink()

      //val jobj = (jv\"link").asInstanceOf[JObject]
      val obj = meta.createRecord
      obj runSafe{ obj.save; obj.setFieldsFromJValue(jv); obj.save; }
      -->(obj, immediately = true)
      obj :: Nil
    } else Nil
  }
}

object Neo4jLink {
  implicit def n4jLink_to_iterable[OwnerType <: Neo4jRecord[OwnerType], LinkedType <: Neo4jRecord[LinkedType]](n4jlink: Neo4jLink[OwnerType, LinkedType]): Iterable[LinkedType] = n4jlink.get_saved

  implicit def n4jLink_to_box[OwnerType <: Neo4jRecord[OwnerType], LinkedType <: Neo4jRecord[LinkedType]](n4jlink: Neo4jSingleLink[OwnerType, LinkedType]): Box[LinkedType] = n4jlink.get_saved
}

class Neo4jOne2ManyLink[T <: Neo4jRecord[T], L <: Neo4jRecord[L]](f_n: T, r_t: RelationshipType, meta: Neo4jMetaRecord[L])
    extends Neo4jLink(f_n, r_t, meta) {
  override def r_type = r_t

  override protected def guard(from_node: Node, to_node: Node, params: Map[String, Any]) = {
    var ret = false
    //println("ONE 2 MANY")
    //println(ret)
	  if (to_node.rels(r_t, anti_direction).find(r => {
	    if (direction == Direction.OUTGOING) r.getStartNode == from_node
	    else r.getEndNode == to_node
	  }).isEmpty) {
	    //println("NO LINK")
	    ret = super.guard(from_node, to_node, params)
	  }
    //println("LAST RET: " + ret)
	  ret
  }

  override protected def guard(to_rec: L, params: Map[String, Any]) = {
    var ret = false
    if (!get_cached_linked.exists(_._1 eq to_rec) || (!to_rec.node.isEmpty && (owner.node match {
      case Full(n) => rels().toSeq.filter(rel => {
          !get_cached_deleted.map(_._1).exists(d => d.filter(p => rel(p._1) != Some(p._2)).isEmpty)
        }).exists(_.getOtherNode(n) == to_rec.node.get)
      case _ => false
    }))) {
      ret = super.guard(to_rec, params)
    }
    ret
  }
}

trait LinkLifecycleCallbacks {
  this: BaseLink[_, _] =>

  def beforeSave {}
  def afterSave {}

  def beforeDelete {}
  def afterDelete {}

  def beforeValidation {}
  def afterValidation {}
}

redpajama_set_name: RedPajamaGithub


text:
Q: Formula involving cross products $\nabla \times (F \times G)$? I was knowing this formula for vectors $a,b,c$:
$a \times (b \times c) = (a\cdot c)b - (a\cdot b)c$
But I was thinking of the differential operator as a vector and hence I thought the above formula would also work for
$\nabla \times (F \times G) $
but it did not rather we have the following:
$\nabla \times (F \times G)= (\nabla \cdot  G)F - (F\cdot \nabla)G + (G\cdot \nabla)F - (\nabla\cdot F)G$

A: To see why this fails, examine the Wikipedia proof of the triple product expansion. Writing their work in more detail, we find:
\begin{align}
(u\times (v\times w))_x &= u_y(v_xw_y - v_yw_x) - u_z(v_zw_x - v_xw_z)\\
&=u_yv_xw_y - u_yv_yw_x - u_zv_zw_x +u_zv_xw_z \\
&=u_y\color{red}{v_x}w_y + u_z\color{red}{v_x}w_z - u_yv_y\color{magenta}{w_x}-u_zv_z\color{magenta}{w_x} \\
&= \color{red}{v_x}(u_yw_y + u_zw_z) - \color{magenta}{w_x}(u_yv_y + u_zv_z)
\end{align}
You can see that they took advantage of the commutativity of products of scalars. But operators generally do not commute with other things! As an easy example, $\frac{d}{dx}f(x)g(x) \neq f(x)\frac{d}{dx}g(x)$. You will notice that when $u$ is replaced with the operator $\nabla$, we will instead obtain:
\begin{align}
(\nabla\times (v\times w))_x &= \partial_y (v_xw_y - v_yw_x) - \partial_z(v_zw_x - v_xw_z)\\
&=\partial_y(v_xw_y)-\partial_y(v_yw_x) - \partial_z(v_zw_x) + \partial_z(v_xw_z)\\
&= (\partial_yv_x) w_y+v_x(\partial_y w_y) - (\partial_yv_y)w_x-v_y(\partial_yw_x)-(\partial_zv_z)w_x - v_z(\partial_zw_x)\\&\qquad\qquad+(\partial_zv_x)w_z + v_x(\partial_zw_z) \\
&= v_x(\partial_y w_y) + v_x(\partial_zw_z) - (\partial_yv_y)w_x - (\partial_zv_z)w_x + (\partial_yv_x) w_y + (\partial_zv_x)w_z\\&\qquad\qquad -v_y(\partial_yw_x)-v_z(\partial_zw_x) \\
&=(\partial_yw_y+\partial_zw_z)v_x - (\partial_yv_y+\partial_zv_z)w_x+(w_y\partial_y + w_z\partial_z)v_x - (v_y\partial_y +v_z\partial_z)w_x \\
&\vdots\\
&=(\nabla\cdot w)v_x - (\nabla\cdot v)w_x+(w\cdot\nabla)v_x - (v\cdot\nabla)w_x
\end{align}
and similarly for the other components.

redpajama_set_name: RedPajamaStackExchange


MarkOlsen . TrinityTrueNoLim. crazycoupllexx. LunaBee.
markyhot18AliceVonDareYoungTomyEmporioDiamond .RalphiRedHeadMayaLunaBeautyMisssSexyySelena .CristalMorrison2PornLesbianXLELOHOTSEXYstephanyinlive .RoxyHoneyyJVBotelhoGlossyDiamondXXRalphiRedHead .2PornLesbianX2PornLesbianXAnna9TeenKatieRedfire .perfectloverfuLvlyMarioliveuncutxxxYoungTomy .liveuncutxxxRoxanneDebellaKatiaClausoncrazycoupllexx .KatieRedfireCANDYCUMHOTCANDYCUMHOTYerayStar .DhannaSweetEmporioDiamondmargaretSECRETxRoxanneDebella .teszmaster01HottieFillipoJenniferforwowHenry888 .IvyCandyGirlwildsapphiremargaretSECRETxClintDornan .
AliceVonDareLELOHOTSEXYKatieRedfireCurvyPrincess21 .KatiaClausonAmiraIsaHenry888tastysamantha .liveuncutxxxdirtyshow2MayaLunadirtyshow2 .flowerssssBeautyMisssGlossyDiamondXXAliyssalove .a0AlexMaddisonMoonShine888TScumxxxNiceboybigasshot .Sexyboyx1TScumxxxMisKiraLunaBee .healyandaliceBressedavehotxxxxperfectloverfu .CristalMorrisonAndreaLoveLSexyySelenaxULTIMATEDUOx .margaretSECRETxSeleniHotCum0nMyTits22JVBotelho .ViikiSecretsBresseYerayStarteszmaster01 .dollsexlatinaxxClintDornanHottieFillipoMissCavalli .


Cheap Hotels in Embankment: Best Value Offers, Selling fast!
Cheap Hotels in Embankment: Today's Best Sellers and Latest Offers! Book now from only £24.75!
Today's Deals on Cheap Hotels in Embankment: Book now from only £21.25!


Thanks to Cerebus.TV Technical Producer Oliver Simonsen for reporting that the latest episode, which will be online until Friday, February 11, includes an interview with David Mack (~ 16m:35s to ~ 33m:33s).
Thanks to Aki at AnimeHot.net for reporting that they will be giving away a Kabuki-themed hat in March to one of their Facebook, Twitter or MySpace followers.
#2: The gallery owner was filming the talk, so I'll send a link to it when I get it. For those that missed the exhibit, its up thru Feb 26.
#4: And all the kids (& parents) who came to The Shy Creatures reading at the Blue Manatee were adorable! Happy Birthday, Addison!
#5: Thanks to all of u who came to the gallery talk Saturday! It was a blast & you asked fantastic questions! I really enjoyed the discussion.
#6: Thnks! RT @dEnny_UK Back from David Mack gallery show @ PAC Gallery. Always a joy to hear about his creative process. A gentleman of comics.
#9: RT BlueManatee - Chilly? It's warm at blue manatee! Grab a hot chocolate at the decafe then join us for David Mack's signing of the Shy Creatures at 1pm!
#10: Always liked Lee Marvin because he looks, talks, acts exactly like my grandfather.
#11: Painting to commentary of Restored footage of Sam Fuller's The Big Red One w Lee Marvin.
#14: @AllredMD Really glad to see you here!
#16: Art exhibit up thru Feb. RT @Brad_Duncan #FF @davidmackkabuki art exhibit at the PAC in Cincy tinyurl.com/4uvr9le. go if you can.
#17: If U missed it- Follow my pal Mike Allred @AllredMD & his art blog allredart.blogspot.com He's new to twitter- give him a welcome!
#20: Follow my pal Mike Allred @AllredMD & his art blog here allredart.blogspot.com He's new to twitter- give him a welcome!
#24: RT JaminL - @davidmackkabuki Gor my brother hooked. Gave him Alchemy to read, now he's on metamorphosis.
#25: @mariinukai Do itashimashite, Mari!
#27: BTW, If you have not read SCARLET yet, it is incredibly amazing. Go read it.
#31: Try Davidmackguide.com -it often lists comic shops that sell Kabuki & online prs RT @Eleigh_K am I able to order missing comics that I need?
#32: RT PineapplePants - @davidmackkabuki I recently sent the singer of my favorite band, #Poetsofthefall your book, The Alchemy as a bday present.
#35: @mollycrabapple Word. I wrote a couple issues of Kabuki at the Zurich Airport.
#36: Signing & reading of THE SHY CREATURES children's book this Sat Feb 5 at 1pm at The Blue Manatee (kids book store) in Cincinnati.
The Tigerlily bust (SRP: $49.95) is available on eBay ($40.00).


Free Certified Diabetes Educator (CDE) test prep to help you pass your Certified Diabetes Educator (CDE) exam. The Certified Diabetes Educator (CDE) certification indicates specialization.
Ontario "I first got my Certified Diabetes Educator (CDE) title in 1998 and I remember how hard it was to prepare for the exam. As a pharmacist, our training in the day to day management of diabetes was minimal at best at the school level.
A number of free screenings will be available to the public, including vision, kidney screenings, diabetic foot exams, blood gluclose and.
Participants will be able to meet with certified diabetes educators and other health professionals who specialize.
Online Course Helps Clinical Nurse Specialists Prepare For ACCNS-AG Certification Exam – The ACCNS-AG certification.
for exam success through a question-and-answer format that reflects the style of actual test questions and provides the rationale behind correct answers. The course — which provides continuing nursing education hours.
A nurse practitioner and certified diabetes educator at Mount Sinai Diabetes Center.
while another 7 million remain undiagnosed and a whopping 79 million fall into the category of prediabetes. "There is a continuum between prediabetes and Type 2.
Maureen Mau, RN and Certified Diabetes Educator with the Riverwood Diabetes Center.
ups with their health care provider as well as getting their hemoglobin A1c test every 3-6 months. This "big picture test," as Mau described it, tells what.
Exam General FAQ's Applying to write the CDECB Examination? Here are some of the Frequently asked Questions that we have received about applying to write the CDECB Examination, They are organized into the following sections.
Get started studying with our free CNOR practice test questions. These questions will help you increase your CNOR exam score.
The Certified Diabetes Educator Exam is made up of 200 questions and 4 hours are allotted to complete the CDE exam. Twenty-five of these questions are.
"Women with diabetes are more likely to have a healthy pregnancy if they prepare for pregnancy before they conceive," says Lory Gonzalez, a nurse educator and certified diabetes.
Association diet and to ask any questions," recommends Dr. Lara.
Home Certification Info Exam Details Preparing for the Exam Sample Questions.
Get our free Certified Diabetes Educator Practice Test questions. Learn more about the Certified Diabetes Educator Test. Visit today!
The examination is prepared by NCBDE, with the advice and assistance of its contracted testing agency. Individual questions are developed by CDEs with.
Find helpful customer reviews and review ratings for Review Guide for the Certified Diabetes Educator® Exam, 3rd Edition at Amazon.com. Read honest and unbiased product reviews from our users.
How to Become a CDE HOW TO BECOME A CERTIFIED DIABETES EDUCATOR The Examination Handbook contains the necessary information you may require and should answer your questions regarding eligibility and process.


Earlier this year, Sonali Bendre announced on social media that she has been diagnosed with cancer and undergoing treatment in the U.S. While she found support in her family and friends from the fraternity too, the actress has now returned to the city. Although she asserts that her battle continues, she maintained that this is a happy interval where she gets to return home.
Besides her husband and son who have been her strongest pillars, Sonali Bendre also had the company of her girl gang which also included Hrithik Roshan's ex-wife Sussanne who stood by her during this battle.


text:
Q: Observed hidden variables in HMM I am studying Hidden Markov Models and I'm trying to understand the following exercise:
Consider Hidden Markov Model with hidden states $h_{1:T} = \{h_1,...,h_T\}$ and observed states $v_{1:T}=\{v_1,...,v_T\}$.
Let $v_t\in\{0,1,2\}, h_t\in\{0,1\}$ and the parameters of the model are as follows. $p(h_1=1)=0.5$, the transition matrix $T=\begin{pmatrix} 0.5 & 0.8 \\ 0.5 & 0.2 \end{pmatrix}$ and the emission matrix $\begin{pmatrix}0.3 & 0.5 \\ 0.6 & 0 \\ 0.1 & 0.5 \end{pmatrix}$.
Question 1: Suppose that you observe the sequence of outcomes $v_{1:10}=[0,1,0,2,0,2,1,0,2,0]$. Is $h_1$ independent of $h_{10}$ in $p(h_{1:10}|v_{1:10})$ given this particular sequence?
Question 2: Compute the filtering distributions $p(h_8|v_{1:8})$ and $p(h_9|v_{1:9})$ (Hint: you do not need to run the full Forward algorithm here.).
Answer to question 1: We notice in the emission matrix that $p(v_t=1|h_t=1)=0$, so it is certain that in this particular sequence, $h_2=0,h_7=0$. Since the distribution $p(h_{1:10}|v_{1:10})$ is a Markov chain, $h_{1:t-1} \perp\kern-5pt\perp h_{t+1:n} | h_t$, so we have that in this particular sequence, we $p(h_{1:10}|v_{1:10}) = p(h_{1:10}|v_{1:10},h_2,h_7)$, making $h_1$ and $h_{10}$ independent.
Answer to question 2: By the previous question we know that $p(h_8|v_{1:10},h_7,h_2) = p(h_8|h_7=0)$. Hence, by the transition matrix, $p(h_8|h_7=0) = \begin{pmatrix} 0.5 \\ 0.5 \end{pmatrix}$ and for $p(h_9|v_{1:10})$:
\begin{align}
p(h_9|v_{1:10}) & \propto p(v_9|h_9)\sum_{h_8}p(h_9|h_8)p(h_8|v_{1:8}) \\ & = \begin{pmatrix} p(v_9=2|h_9=0)\left(\frac{1}{2}p(h_9=0|h_8=0)+ \frac{1}{2} p(h_9=0|h_8=1)\right) \\ p(v_9=2|h_9=1)\left)\frac{1}{2} p(h_9=1|h_8=0)+\frac{1}{2}p(h_9=1|h_8=1)\right) \end{pmatrix} \\ & = \begin{pmatrix} 0.1(\frac{1}{2}\frac{1}{2}+0.8\frac{1}{2}) \\ \frac{1}{2}(\frac{1}{2}\frac{1}{2}+0.2\frac{1}{2}) \end{pmatrix}  = \begin{pmatrix} 0.065 \\ 0.175 \end{pmatrix}
\end{align}
After normalizing it becomes $0.27, 0.73$
Is my reasoning correct for these questions?


text:
UK National Law Societies
Law Society Scotland
The Law Society of Scotland monitors all solicitors who are permitted to practise law in Scotland. The law in Scotland differs somewhat to the rest of the UK and as such has its own legal jurisdiction..
Click to find the details of all solicitors practising in Scotland; including areas of expertise and geographical location.
UK National Law Societies. permalink.
Compensation Criminal Injury
Law Society Northern Ireland

redpajama_set_name: RedPajamaCommonCrawl


Okay, that title isn't totally true. First of all, I'm talking drinks today, not food. And I do like champagne sometimes. In a mimosa or a bellini, for example. On its own, though? Meh. I'd prefer sparkling grape juice.
When it comes to mixed drinks, my go-to choice is vodka cranberry with lime, because it's something you can nearly always get, and it's not bad even as a well drink. I'm good with margaritas of nearly any flavor (but not tequila shots), and I like most of the fruity-sweet drinks: daiquiris, Hurricanes, appletinis, things like that. But when I can get it, I like Fireball whisky, which is a very strong, sweet cinnamon flavor, or 3AM vodka, which is sweet and loaded with a lot of the same ingredients as energy drinks. Fireball and Coke, 3AM and Sprite. For shots: Jägermeister. No, really.
This post makes me sound like a lush, doesn't it? (And a snooty one at that!) In truth, I don't drink often, and I rarely have more than two drinks. That's why I can afford to be picky. My alcohol budget for the year is maybe a couple hundred bucks, even counting weekends when my place is full of guests.
When I'm writing, my characters nearly always have drinking habits far different from mine. Most of them drink beer, for starters, and many prefer liquors or mixed drinks that I can't stand. I've written two alcoholic characters (one unpublished), and a character in my current project is a complete teetotaler. But like me, and like most real people, most of my characters are social drinkers, even those who do occasionally overindulge.
Drinking habits are the kind of little character details that I love in a story. One of my all-time favorite books is Marie Sexton's Strawberries for Dessert, in large part because I fell in love with Cole right along with Jonathan. Cole is a lover of good wine who has a weakness for cheap bottles of Arbor Mist, a fact that seems small but that actually tells you a lot about him. It's a tidbit of perfection.
So I will leave you with some recommendations. If you haven't tried Fireball or 3AM, do. And if you haven't read Strawberries for Dessert, GO. NOW. READ. *taps toe impatiently* WHY AREN'T YOU READING YET??
This entry was posted in friday feedbag, recommendations. Bookmark the permalink.


Flower delivery to Roger Williams Medical Center by our local, premium flower shop in Providence, RI. If you know somebody recovering from illness or surgery, or would like to congratulate new parents of a baby boy or girl, send them a gift in minutes through FlowersNear! Browse our wonderful selection of bouquets, plants and assorted gift baskets. Note: Same day deliveries to 825 Chalkstone Ave should be placed before 2 PM and all deliveries are 100% satisfaction guaranteed throughout the city of Providence.
Flower delivery to Roger Williams Medical Center is a service provided by Flowers Nearâ"¢. Your order will be immediately fulfilled by our network flower shop in Providence, RI, and hand delivered to the hospitals main address at 825 Chalkstone Ave, Providence, RI, 02908, unless specified otherwise at checkout.


text:
www.pbs.org www.pbs.org
Bolivia's Morales Caught Between Indigenous Roots, Economic Demands
adasmoses 17 Nov 2015
Morales was born into the Aymara indigenous ethnic group in the Andean highlands, a group of people who tend to back roads, industry and economic development, said Tegel. But indigenous populations in the tropical part of the country, generally speaking, don't want that, he said. "They want to a certain degree to be left alone. That doesn't necessarily mean they don't want economic development, but they want a different model and they want it done much more at a community level." Economics is a huge issue in Bolivia — one of the poorest countries in Latin America — and a major driver in policy decisions, Tegel said. "That tension between his indigenous and environmental discourse and some of the projects he actually wants to do, including increasing mining in the country, is at the very least a paradox and something his critics are calling hypocritical."
Bolivia LAST245WES morales Indigenous Politics
Indigenous Politics
adasmoses
pbs.org/newshour/rundown/bolivia-morales/
www.nytimes.com www.nytimes.com
Bolivia's Fire-Proof President
adasmoses 29 Oct 2015
Mr. Morales is also the first indigenous president of Bolivia, where 48 percent of the population declared themselves indigenous in the last census, and his government has proven itself adept at reconciling ancestral knowledge with economic modernization.
morales bolivia LAST245WES Indigenous Politics
nytimes.com/2014/10/11/opinion/bolivias-fire-proof-president.html
www.telesurtv.net www.telesurtv.net
Decolonizing Bolivia's History of Indigenous Resistance
EV: Decolonization means a lot to me, it means recuperating… our own path, something which we've been forced to lose, this [indigenous] path, this wisdom, this knowledge has been devalued, minimized as though it weren't knowledge at all. And so now we are recuperated this, and we're doing so in our own way. This for us is decolonization, a process which is done via the state but also via the social organizations, because this is an issue of how to organize, how to speak of our ancestral technologies. Yes, many things have been modernized, but in many cases we have a necessity to recuperate our own principles and values as indigenous peoples.
LAST245WES MORALES Indigenous Politics Bolivia
telesurtv.net/english/opinion/Decolonizing-Bolivias-History-of-Indigenous-Resistance-20150217-0042.html
www.aljazeera.com www.aljazeera.com
Bolivia's Morales blames capitalism for climate change
Don't go against the natural world, natural law, go with Mother Earth. She has a certain way of doing things and when you start going against that there are no penalties or fines, there's only consequences when you go against natural law," Morales said.
morales bolivia LAST245WES
aljazeera.com/news/2015/10/bolivia-morales-blames-capitalism-climate-change-151013084626123.html
www.economist.com www.economist.com
The man who would be king
"Latin America has learnt to its cost what happens when presidents are allowed to perpetuate themselves in power," says Óscar Ortiz, an opposition senator.
morales LAST245WES Bolivia
economist.com/news/americas/21669963-evo-morales-backtracks-promise-not-seek-power-after-2019-man-who-would-be-king
www.ticotimes.net www.ticotimes.net
Bolivian Congress votes to let Evo Morales run for re-election again -
adasmoses 29 Sep 2015
Morales, the longest-serving president in South America, benefits from a fractured opposition that has failed to rally behind a single leader.
Reminiscent of 19th century Latin America we have discussed in class...
Morales LAST245 Bolivia Dictatorship
LAST245
ticotimes.net/2015/09/26/bolivian-congress-votes-to-let-president-evo-morales-run-for-re-election-again
Bolivia: President's Supporters Aim to Alter Constitution to Allow 4th Term
President Evo Morales's backers are seeking to amend Bolivia's Constitution so he can run for re-election in 2020. A plan finalized Tuesday night comes just eight months after Mr. Morales, Bolivia's first indigenous president, won a third term. He first took office in 2006. Mr. Morales's supporters control the two-thirds of Congress needed to pass such legislation. After that, voters would decide in a referendum. Gustavo Aliaga, the farmworkers union leader, said Wednesday that the bill would be sent to Congress next week. Mr. Morales, an Aymara Indian who was born into poverty, is a leftist who has often clashed with the United States. Former President Jorge Quiroga said allowing another term would create a monarchy.
Evo Morales - President between the years 2006 and 2020?!
nytimes.com/2015/09/10/world/americas/bolivia-presidents-supporters-aim-to-alter-constitution-to-allow-4th-term.html


text:
Q: JPA one-to-many join table with additional information I have these ER relations:
Person
ID_PERSON
NAME
Animal
ID_ANIMAL
NAME
Person_animal
ID_PERSON
ID_ANIMAL
DATE_OF_BUY
How to map the property DATE_OF_BUY in the association?

A: The best way is normally to map the join table to a relationship class.  i.e.
Person - OneToMany - AnimalOwnership - ManyToOne - Animal
See,
http://en.wikibooks.org/wiki/Java_Persistence/ManyToMany#Mapping_a_Join_Table_with_Additional_Columns
In JPA 2.0 you can also use a MapKey for some additional data, but this is normally more complex.


Colorado's governor signed bills Wednesday that place new restrictions on firearms, signaling a change for Democrats who have traditionally shied away from gun control in a state with a pioneer tradition of gun ownership and self-reliance.
The bills' approval came exactly eight months after dozens of people were shot in Aurora, and a day after the executive director of the state Corrections Department, Tom Clements, was shot and killed at his home. Hickenlooper signed the legislation right after speaking with reporters about Clements' slaying.
Hickenlooper said large-capacity magazines "have the potential to turn killers into killing machines." He also said he realized some gun owners may be inconvenienced but that "the potential for damage seems to outweigh, significantly, the inconvenience that people would have," he said.
The bills signal a historic change foals they took up this year.
Washington state's Democrat-controlled House failed this month to pass a universal background check bill. A bill requiring background checks at gun shows in New Mexico also stalled in that Democrat-led Legislature.
"The real solution here is at the ballot box in 2014," Brophy said.
Republicans have said limiting magazine sizes will drive jobs from the state, and ultimately won't prevent criminals from getting larger magazines in other states.
"This shouldn't be rural versus urban. We are one state," he said.


text:
Laurene M Mascola
Epidemic listeriosis associated with Mexican-style cheese.
Michael Linnan, Laurene M Mascola, +7 authors Roberte . Weaver
In Los Angeles County, California, 142 cases of human listeriosis were reported from January 1 through August 15, 1985. Ninety-three cases (65.5 percent) occurred in pregnant women or their… (More)
Increase in Clostridium difficile–related Mortality Rates, United States, 1999–2004
Matthew D. Redelings, Frank J. Sorvillo, Laurene M Mascola
Reported mortality rates from Clostridium difficile disease in the United States increased from 5.7 per million population in 1999 to 23.7 per million in 2004. Increased rates may be due to emergence… (More)
Varicella disease after introduction of varicella vaccine in the United States, 1995-2000.
Jane F. Seward, Barbara McNaught Watson, +9 authors Melinda Wharton
CONTEXT Before licensure of varicella vaccine in 1995, varicella was a universal childhood disease in the United States, causing 4 million cases, 11,000 hospitalizations, and 100 deaths every year.… (More)
Loss of vaccine-induced immunity to varicella over time.
Sandra S Chaves, Paul M. Gargiullo, +4 authors Jane F. Seward
BACKGROUND The introduction of universal varicella vaccination in 1995 has substantially reduced varicella-related morbidity and mortality in the United States. However, it remains unclear whether… (More)
Leptospirosis in "Eco-Challenge" Athletes, Malaysian Borneo, 2000
James Sejvar, Elizabeth A. Bancroft, +13 authors Nancy E. Rosenstein
Adventure travel is becoming more popular, increasing the likelihood of contact with unusual pathogens. We investigated an outbreak of leptospirosis in "Eco-Challenge" multisport race athletes to… (More)
An outbreak of febrile gastroenteritis associated with delicatessen meat contaminated with Listeria monocytogenes.
Douglas M. Frye, Rachael Zweig, +5 authors Laurene M Mascola
Clinical infectious diseases : an official…
In June 2001, the Los Angeles County Department of Health Services/Public Health conducted a cohort study of an outbreak of acute febrile gastroenteritis among 16 of 44 healthy attendees of a catered… (More)
The incidence and clinical characteristics of herpes zoster among children and adolescents after implementation of varicella vaccination.
Rachel H Civen, Sandra S Chaves, +4 authors Jane F. Seward
The Pediatric infectious disease journal
BACKGROUND The varicella-zoster virus (VZV) vaccine strain may reactivate to cause herpes zoster. Limited data suggest that the risk of herpes zoster in vaccinated children could be lower than in… (More)
Transmission of Trypanosoma cruzi by heart transplantation.
Heather M Kun, Anne K. Moore, +9 authors Matthew J. Kuehnert
BACKGROUND Trypanosoma cruzi infection (i.e., Chagas disease) is an unusual complication that can occur after solid-organ transplantation and that can result in severe illness or death. In 2006,… (More)
Haff disease: from the Baltic Sea to the U.S. shore.
U T Buchholz, Eric Mouzin, Robert Paul Dickey, Ron Moolenaar, Nelson Sass, Laurene M Mascola
Haff disease, identified in Europe in 1924, is unexplained rhabdomyolysis in a person who ate fish in the 24 hours before onset of illness. We describe a series of six U.S. patients from 1997 and… (More)
Role of Foods in Sporadic Listeriosis: I. Case-Control Study of Dietary Risk Factors
Anne Schuchat, Katherine A. Deaver, +27 authors Lewis B. Lefkowitz
Objective. —To identify dietary risk factors for sporadic listeriosis. Design. —Case-control study with blinded telephone interviews. Setting. —Multistate population of 18 million persons, November… (More)


1) Parents of 971 (46% of the sample of the survey) children report that they received instructions from a health professional to give a breast milk substitute to their baby whilst in hospital.
2) Parents of 1497 children (71%) report that a breast milk substitute was given to their baby whilst in hospital by hospital staff without asking for parental consent.
3) Parents of 1696 children (81%) state that infant formula was given to their baby without a written medical prescription to display the reason for its use.
4) Parents of 236 children (11%) report that they received instructions on preparation of infant formula together with other parents, lactating women or pregnant women. Parents of 1036 children (50%) report that whilst staying in the maternity ward, they had exposure to advertising material of infant formula – posters, leaflets with the logo of the company, cans of infant formula in common view inside the ward.
5) Parents of 1204 (58%) children report that they were given free samples of infant formula, dummies or baby bottles by manufacturers, directly or indirectly via a health professional. This is higher than the 35% at the National Study in 2009.
6) Parents of 1154 (56%) children report that they were given a written prescription at discharge for a specific brand of infant formula. This is comparable to the 65% found at the National Study in 2009.
8) Parents of 446 (22%) children report that, on visiting their paediatrician or other health professional, they were given a free sample of infant formula.
9) Parents of 1120 children (55%) report that they were given or have received discount coupons of infant formula.
10) Parents of 1244 children (61%) report that they have received in their mail material related to infant milk for babies 0 – 6 months or for babies 6 – 12 months of age.
11) Parents of 462 children report that they have received promotional emails about infant milk, with information about company websites and parental forums – clubs organized by companies.
12) Parents of 1186 children report that they have felt that the superiority of breastfeeding is disputes through advertisements of infant milks in magazines for parents and in television.
13) Parents of 1374 children (23%) report that they have been exposed to labeling of breast milk substitutes that idealize infant formula with inappropriate pictures and wording.
14) Parents of 1566 children (80%) report to have found in the market products of infant food that recommend in their labels to be used "from 4 months of age".
progress was made to promote breastfeeding in Greece in the almost 2 years after the publication of the National Study (June 2009).
1) 233 parents (11%) reported not receiving any information about breastfeeding. 558 parents (27%) had little information about breastfeeding.
2) 1128 parents (54%) reported to have gathered information on breastfeeding after doing their own personal research.
3) 1225 parents (62%) did not attend any breastfeeding education prior to delivery.
7) 164 parents (8%) gave infant formula to their baby because they were informed in the nursery that infant formula is the best way for infant feeding.
8) 286 parents (14%) received instructions to give a dummy to their child within the first 2 weeks after birth.
9) 547 parents (26%) reported that they did not receive any help within the first few days by hospital staff to start breastfeeding.
10) 965 parents (46%) were given instructions by health professionals to limit duration and frequency of breastfeeding in set times of the day.
11) 1946 parents (93%) did not receive any information about the risks of unnecessary or improper use of breast milk substitutes.
13) 1870 parents (91%) received no information by hospital staff about breastfeeding support groups in the community.
14) 42 parents (2%) reported that their paediatrician was hostile to breastfeeding. 445 parents (22%) reported that their paediatrician was indifferent to breastfeeding.
15) 53 parents (3%) reported that their obstetrician was hostile to breastfeeding. 756 parents (37%) reported that their obstetrician was indifferent to breastfeeding.
16) 1302 mothers (66%) received no instructions by health professionals on how to continue breastfeeding when returning to work.
17) 394 mothers (20%) were instructed by health professionals to breastfeed exclusively for less than 6 months.
18) 497 mothers (25%) were instructed by health professionals to stop breastfeeding before 12 months.
19) 452 mothers (23%) report having received negative comments or feeling like doing something bad when breastfeeding in public.


The JF Dance Company is made up of all the JF eisteddfod Crews, Troupes, Trios, Duos and Soloists for the year. Students must audition in order to be considered for the dance company. After students have auditioned and we have our final company, students will be divided into appropriate performance groups. Acceptance into the company indicates commitment for the full year, every Saturday for classes and every weekend during public school terms for all performances.
Dance company rehearsals will include lessons from guest teachers throughout the year in various styles of dance. Students must be enrolled in a minimum of 2 classes at The Jazz Factory to be eligible to audition, however students enrolled in multiple classes and styles will be at an advantage. Auditions for The JF Dance Co. are held in December and January each year.


text:
Overcoming Your Own Unconscious Biases
PivotTables and Advanced Charts in Excel 2016
Macros and Advanced Queries in Excel 2016
Working with Data in Excel 2016
Creating Custom Visual Effects in Excel 2016
Customizing Views, Styles, and Templates in Excel 2016
Navigating Your Own Emotions
The Many Approaches to Facing Workplace Conflict
Polishing Your Feedback Skills
Maximize Your Productivity by Managing Time and Tasks
Excel Financial Spreadsheets
Business planning: Why form should follow function
Business Achiever
By Tim Berry, founder of Palo Alto Software:
Your plan-as-you-go business plan is no more than what you need to run your business. In the beginning, it might be as simple as an elevator speech. Be able to talk through those key points: the customer story, what makes you unique, how you're focusing and on what you're focusing, and, if it comes to that, your close — what you want from whoever is listening.
Or it might be a simple sales forecast, and perhaps, a burn rate in the very beginning because you know what you're doing — maybe you've been doing it for years already and you don't need to verbalize it right at this moment — and you'll set those figures down and start tracking them
Planning comes in many forms Think of it as analogous to motion in athletics. In so many different sports, the winners practice economy of motion, repeated muscle memory. Another way to look at it: in design and mechanics, the fewer moving parts, the better. If you have to squint conceptually to see the key points, squint down on the elements you'll be able to track and then revisit.
It's not about the text, or the form of the thing, until that becomes related to the function. When you're doing a business plan as part of a graduate business school class, then yes, it has to be complete and look good and read well; editing and format matter. When you're doing a plan for an investment group that is going to pass it around among the partners, then it matters. But you don't want to get bogged down in format when it's just you and your spouse and you simply want to think through what's required.
So the plan is a collection of concepts in the middle, surrounded by specifics that have to be done. Around the core you put a collection of metrics to be measured and tracked (lots of them are sales, expenses, and the like, but not all), task assignments and responsibilities for different people, dates and deadlines, budgets, and so on. That's your plan.
60 second elevator speech From that core plan, you spin off various outputs. You take the highest highlights of the plan and 60 seconds or so to explain it in an elevator speech. That's one output. Or you write it all out carefully, and add supporting information about the market and the industry and the backgrounds of the management team, and it's a plan document. Or you create a 20-minute 10-slide summary with PowerPoint or Keynote slides, and that's a pitch presentation for potential investors. Or you create a cover letter or cover e-mail, about a page or so, along with a 5- to 10-page written summary, and that's a summary memo. Or you do none of these, you simply keep that plan as a collection of bullet points, of picture financial projections, and a list of things to be done by whom and when and for how much money, and share it with your team. In that last case you don't ever edit or polish it, or sweat the page headers and page footers or font size. You just use it to manage your company,
Notice that none of these outputs stands as something you do instead of the plan. And none of these outputs is really the plan. The plan exists at the core, and you create the outputs as needed.
With all of these various iterations and outputs, always keep assumptions on top, where you can see them for every review meeting. Minding the changing assumptions is one of the significant advantages of the plan-as-you-go approach over the more traditional methods.
I ran a business for years during which the plan was shared only between me and my wife, mostly, enhanced by sales forecasts and burn rate. During those formative years there was no need for anything else. When it was time for an elevator speech, either one of us could do it. When there was need for a written business plan — it came up first when we first set up the merchant account to be able to accept credit cards, in 1988 — then we settled down for a while and wrote it out as it was, conceptually, at that time. We always knew what we wanted to do, but we also knew our key assumptions, and we tracked them as they changed, and revised the plan. A lot of that was verbal, between two people.
A need for formal planing As the business grew, the verbal plan with the forecast stopped working. Things became more complicated. Employees needed to know about the plan and join in its formation and then its implementation. So we moved it into bullet points on the computer, and tied those to forecasts, and began tracking in a group, in more detail.
We then began to do annual plans more formally, writing out chapters, and conducting review meetings every month. With each annual plan we'd go out and take a new fresh look at the market. We had people doing nothing but marketing, and they developed segmentations and forecasts and supporting information. It was part of their job.
Are you recognizing yourself somewhere along this line?
Eventually we wanted to bring in outside investment. That was during the dotcom boom when valuations were very high, so we thought it would be a good time to lock in the value with some cash out. We produced very formal plans every three months during that period.
The speech isn't instead of the plan, and the pitch isn't instead of the plan, but that doesn't mean you plan or don't plan if nobody outside your company is going to read about it. Your plan should always be there as the source of these outputs, so you're ready to produce them when you need to.
This article originally appeared on BPlans.
How do you feel about this post?
(316 Points)
Subscribe to updates from author Unsubscribe to updates from author View author's profile More posts from author
Thursday, 18 July 2019 3 Key Questions to Ask Yourself as a Leader
Wednesday, 17 July 2019 What Every Small Business Owner Needs to Know About Finances
Tuesday, 16 July 2019 8 Simple Steps for Hosting a Successful Business Launch
If you'd like to register, please fill in the username, password and name fields.
Automatically register me as a user of this site
Business Insights & Tips
Latest Bloggers
Jayme Hammit
Izaak Crook
Stella Lincoln
Jill Holtz
Tena Glaser
Ron Immink
Fionan Murray
© 2018 Business Achievers. All Rights Reserved. Powered by Ulster Bank. Submission Guidelines | Terms of Use | Privacy Policy | GDPR Data Request
I forgot my username / password
Register For An Account Today
Sign up or login with your social accounts


text:
Whole Foods removes "offensive" Obama chicken ad
By Jake Miller
February 22, 2013 / 11:11 AM / CBS News
A Whole Foods supermarket in New York has removed a depiction of President Obama that several neighbors found offensive, WNBC reported.
A sign posted in front of a Whole Foods in Manhattan's Upper West Side advertised organic chicken using a rendering of Mr. Obama. The use of the president's image did not sit well with some who objected to the racial stereotypes at work behind the advertisement.
"There are certain things that have been used to put down black people - watermelon, fried chicken," neighbor Woody Henderson told WNBC.
Big Bird teams up with first lady MIchelle Obama to promote kids' health
Obama reaches out to Boehner, McConnell on sequester
Added Bronx resident Jason Nunez: "Even if he's not the president, you're going to have an African American promoting the sale of chicken? They can do better than that."
A Whole Foods spokesman explained that the supermarket chain creates a variety of images to promote store merchandise and that "there was no disrespect meant at all" in the decision to use Mr. Obama's likeness in an ad for chicken.
The sign was removed after "it was brought to our attention by a shopper that it may be perceived as offensive," the spokesman said.
It's not the first snafu involving the up-market grocery chain and Mr. Obama: Whole Foods CEO John Mackey unleashed controversy earlier this year when he compared the president's health care reform law to "fascism."
Mackey later said on "CBS This Morning" that his comparison was "a bad choice of words," but did not retract the substance of his criticism. "We no longer have free-enterprise capitalism in health care," he said. "The government is directing it. So we need a new word for it."
First published on February 22, 2013 / 11:11 AM


Meanwhile Drama's annual submission to Shakespeare Schools Festival was a 30 minute version of William Shakespeare's TWELFTH NIGHT, this year directed by Year 13 student Jennifer Canali. This has also been the first year that the show has also been performed to Year 7 & 8 students – an event we hope to continue in future years. Auditions for next year's submission will take place in July 2019.
The following article is written by Joshua Karian (Year 9) who was invited to join the Year 11 and Year 13 students on a workshop with Punchdrunk on Friday 27th January at their purpose built village in London.
Punchdrunk has pioneered a game changing form of theatre in which roaming audiences experience epic storytelling inside sensory theatrical worlds. Blending classic texts, physical performance, award-winning design installation and unexpected sites, the company's infectious format rejects the passive obedience usually expected of audiences. I was privileged to be one of three Year 9 students to attend a visit to Punchdrunk Theatre Company workshop located in London. They were operating in a warehouse that had been converted into a village, for performance practice. We worked in groups of three and were positioned around the village in the different buildings, including a church, a bar, an offlicence, an optician and many more. The surroundings helped us to be creative and innovative in our performance ideas. We were encouraged to use the space freely and we could even jump through windows and stand on desks. This allowed us to move freely without restraint, which is helpful in a drama workshop. For the first task, we created a sequence of movements that were to be combined into a visual routine.
On Wednesday 19th to Friday the 21st November, Herschel Grammar School performed a musical production called 'Bugsy Malone'. It consisted of a talented cast which illuminated this musical that is unlike any other show ever made. Set in the 1920's, New York City, Bugsy Malone captured a flashing essence of gangsters, showgirls, and dreamers. A battle for power between Fat Sam's and Dandy Dan's gang; innocent souls were forced to participate in a barbaric fight involving "splurge guns" supposed to real bullets. This covered the victim in cream which created a humorous atmosphere for the audience. The main school hall was transformed into an illegal speakeasy bar serving cocktails. Live music and dancing was presented by our gifted cast.
The play consisted of many outstanding props including a moving vehicle (1920's car) which was driven around the hall. The commitment of the cast and teachers made this show possible to perform. Without the dedication of the cast and the hard work from all the directors and the tech team, this show would have been beyond the bounds of possibilities to actually run.
To make the production even better, we hired brilliant costumes such as pinstripe gangster suits and sparkly showgirl dresses. They matched the era perfectly and stood on par with the great acting. Furthermore, Nicole Stevens (Tallulah) made her costumes, so it was bespoke and well fitted. She used this as part of her Textiles GCSE Work. In addition to the cast's hard work, they searched their homes to find costumes and props to fit the era and characters they were playing. They found various items of props and clothing that helped make the play more realistic and believable.
Also, along with the costumes, the play would need one key element. Splurge Guns. After looking at many Splurge Gun Hire websites, the technology department decided they could make much better guns themselves. The guns took many any hours to produce (roughly 30 hours per gun!) but looked really great in the end and worked brilliantly.
The 1920s era came alive with a cocktail bar, staged at the back of the hall. It offered drinks like 'Tallulah's Tickle', 'Bugsy on the Beach', and the 'Leena Morelli'.
"The drinks tasted really great. They were even dressed with cherries or lemons! It seemed like a real cocktail bar! My favourite was the Leena Morelli, because it looked like real wine but it tasted like lemonade!" The bar had working barmen, such as Jake Dawes (Joe the bar man), Mr Devereux, Mr Wilkins and Afkan (from the Languages Department). A lot of effort went into making the cocktails, as the 'Staccatto Steamer' which included homemade mulled apple juice!
As far as the staging went, the audience enjoyed a scene in the foyer which introduced some of the characters: Bugsy, Blousey, and Fizzy. To the audience's surprise they entered what seemed to be an ordinary bookcase, which turned out to be a secret passageway to the Hall, now transformed into Fat Sam's Speakeasy. The audience were greeted with singing and drinks before settling down on their tables, to enjoy the show.
Music played a big part in the show and was brought to life by our own live band! It consisted of some of our very own staff: Mr Piggott (Piano), Mr Torrent (Trumpet), Mr Noel (Guitar), Mr Smeath (Drums) and Byron (6th Form) was on the saxophone. They were loud and pitch perfect and really added to the 'vibe'. They accompanied the singing well, and helped to lift the mood.
To conclude, we would like to thank those who took part and a special well done to the Cast of this year's Bugsy Malone Performance and Good luck to all Shows in the future.
Other productions coming soon are to include an entrance into Maidenhead Drama Festival, Shakespeare Schools Festival 2015 where we are currently deciding on THE MERRY WIVES OF WINDSOR set in the 1950's or HAMLET in the style of Star Wars.
By Jake Dawes, Chantelle Canty, Jennifer Canali, Saba Ahmed, Kripa Shah.
On the 17th November 4 groups of 4-6 pupils were chosen from the whole of year 8 to open and to raise awareness for anti-bullying week at Godolphin Junior school. Each group had to perform at a different year group. The pupils previously prepared a piece that is suitable and would inform the children about anti-bullying. In our groups we performed in the style of Theatre in Education which encourages audience participation. Performing in this way allowed the audience to ask and answer questions. The use of asking questions helps to answer any queries about the performance which you normally cannot do. The questions would occur in the middle of the performance and also at the end. In our performances we used techniques like hot seating. We met in the hall at 12:05 and practised for a while and then made our journey to the school. After our walk to Godolphin, we met one of the teachers in the library were we were welcomed and then showed to the classrooms. We felt extremely welcomed and thought it was a fantastic opportunity and experience.
Shakespeare Schools Festival is a unique arts-education charity running the UK's biggest youth drama project. The charity inspire children of all backgrounds to challenge themselves through performing, giving the opportunity and support for school groups to perform abridged productions in their local professional theatre. In October 2014 Byron Jones, a Year 12 student directed and led a group of students in a 30 minute version of TAMING OF THE SHREW.
The performance ran from Tuesday 20 – Friday 23 May 2014 at 7pm. The show was a huge success. See videos below!!!
Sruthi Murthy, part of the 'Cadbury' cast, writes: From downright crazy behaviour to an increasing fantasy of chocolate, the school's fantastic, astounding production of Charlie and The Chocolate Factory has been weeks of accumulated fun, as auditions and rushed rehearsals took place, while Mrs Callender ran around in panic, trying to piece the chocolatey jigsaw puzzle together!
The weeks went by in a flash, as many grew hysterical due to the fact that they were unsure of or under confident in their roles, but it all came together easily; all thanks to Mrs. Callender, the technicians and the make-up artists.
Counting down to the number of days until the performance on Wednesday 21 and Friday 23 May for the Cadbury Cast, a veil of anxiety fell over us; everyone began to feel nervous, however a small spark, an ignition, was present, lightening up the whole mood of the busy weeks leading to the important event.
The show today (Wednesday) has just been fantastic, in a nutshell! Backstage, as the jolly music began with its staccato rhythm, the four TV newsmen (myself included) were blatantly dancing to the melody, having the time of our life! Encountering absolutely no mistakes, except for the odd noise that was uttered backstage, the whole show ran smoothly without any silly disruptions or embarrassing moments. Furthermore, this lower school production has given every individual participating in the show an opportunity to communicate and learn about others, who seem to be just as equally silly as they themselves are!
Therefore, we worked well together, making Charlie and the Chocolate Factory possible.To be honest, I don't think we've had many quitters during this production, suggesting that the whole cast has had a fantastic time, helping each other out during particular scenes, and in general just getting to know everyone through communication and positive attitudes. Finally, everyone has had a blast and if we were to go through this process again, I'd be the first one to audition. Why, you might ask? Well, all in all, the time spent with the others has created accumulated memories which will be with me for life. So, why wouldn't anyone audition for a great play just like this again?


LASER TATTOO REMOVAL Procedures and Businesses are growing at a very fast rate within Australia.
In some states high levels of legislation and licencing are in place. In other states of Australia, licencing is not in place, either for Laser Use or for Intense Pulse Light apparatus.
Legislation within Australia varies from State to State.
QLD, WA, & SA are fully legislated.
Professional Indemnity Standards will require that you have training and have a solid portfolio of studies in Laser Tattoo Removal.
Vocational Certificates may be obtained from Medilase in the following units.
Medilase will coordinate additional Nationally Recognized Modules for you.
To support what training you have had.
Documenting the procedure and Clinical Endpoint recording.
Clinical Practice and Ethics – Consultation's, Professional Indemnity, Ethical Standards, Post Care standards and client obligations.
Safe Handling, Adherence to Manufacturing Guidelines.
Before commencing any clinical procedures, all persons must consult their local government/health departments to ensure they meet will regulations.


text:
Ethics & Privacy
Supplier Requirements & Code of Conduct
OIP Sensor Systems
Westerring 21
F +32 55 33 38 02
E sales@oip.be
Solutions Defence
Solutions Space
Design, development & production of customised electro-optical solutions
Planetary Observation, Atmospheric Analysis, Space Monitoring, Navigation/Landing & Scientific Research
Why OIP
100 YEARS of experience
Mission critical electro-optical EXPERTISE
INNOVATIVE and cost effective approach
INTERNATIONAL development programs
WITH OVER A CENTURY OF EXPERIENCE, TODAY, OIP SENSOR SYSTEMS
SPECIALISES IN THE DESIGN, DEVELOPMENT & PRODUCTION OF CUSTOMISED ELECTRO-OPTICAL SYSTEMS FOR BOTH DEFENCE & SPACE
OIP N.V. was established in 1919 as 'Optique et Instruments de Précision' in Ghent and has been operating in Oudenaarde since 1988, under its trade name OIP Sensor Systems.
OIP Sensor Systems' application areas comprise Day/Night Observation, Targeting,
Sighting & Situational Awareness for Defence, Law Enforcement & Security.
Our company builds on its experience with the user, while paying special attention to precision, accuracy, reliability & cost effectiveness. We regularly participate in international development programs and provide our worldwide customers with flexible, customised solutions.
Our product range includes: Dismounted Soldier Equipment, Platform Mounted Systems, Thermal Imagers, Fire Control Systems for Armoured Vehicles & Remote Controlled Weapon Stations, Driver's Vision Enhancement Systems, 360° Multi-Camera Systems for Situational Awareness.
Engineering remains the major focus of OIP. The department consists of an extensive and specialised team of highly experienced and qualified engineers and scientists, who are working with the most advanced software for optical, mechanical and electronic design.
OIP Sensor Systems works according to the highest standards and uses a continuous improvement quality management system which meets the AS9100 requirements for design, development & manufacturing of optoelectronic systems. AS9100, the quality management standard for Aviation, Space & Defence Industries, fully incorporates all requirements of ISO 9001.
New Brochures
New Brochures: OIP Sensor Systems & OIP Land Systems Platform Mounted Systems - Platforms & Retrofit Capabilities - Dismounted Soldier Equipment
Read more All news items
OIP News Release
OIP wishes to react to the recent press reports stating that the company refused to approve the delivery of M109 self-propelled howitzers to Ukraine.
OIP nv • Westerring 21 • 9700 Oudenaarde • Belgium
+32 55 33 38 11 • +32 55 33 38 02 • sales@oip.be • Find us on
Company No. 0433.460.930 • Accreditation No. 2/4/2021/00107
Ethics and Privacy – Cookies
© Copyright 2023 OIP Sensor Systems | Website by
This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful. More information about which cookies this website used can you find here.


text:
Does the exit node see which second node transmitted the given traffic?
Does the exit node see which second node transmitted the given traffic, and do other nodes see the same thing? (Does node see the previous node that sent this traffic?) And do nodes see any nodes of the chain, except previous and/or next using in the transmission of this traffic (for example, does exit node see which first node sent this traffic, etc) and if yes, which nodes see and what?
Nodetor11133Nodetor11133
Each link in the "chain" of nodes that make up a circuit can see who the previous and next links are, but (absent misconfiguration or attack) no more than that. So the exit node know who sent it the cell, but it doesn't know who the entry node was. The middle node knows who the entry and exit nodes are, but doesn't know who connected to the entry node (the user) nor who the exit node is talking to (the destination).
womblewomble
Does the exit node see which second node transmitted the given traffic
Yes. It also knows where the traffic is going (e.g. which server the user wants to talk to). Generally speaking, every node in the network knows where it's traffic is coming from and where it is going. But as long as the nodes in the chain don't cooperate, it can't know anything beyond that.
Tor is an overlay network that sits on the public internet. On the internet, hosts communicate by sending packets to each other. All of them carry the sender and destination address (two IP addresses). The sender address is necessary so that the destination knows where to send the reply to, and the destination address is obviously necessary so the routers on the internet know where to send the packet to.
So a Tor node, which sits on a public internet host, can always figure out where traffic it gets came from by looking at the sender (source) IP address of the IP packets it gets. Conceptually, this happens at the IP layer of the TCP/IP reference model, while Tor sits at the application layer (two layers up), so it can't do anything about this.
Tor's reason of existence is to make it possible to hide the source IP addresses of a communication flow's packets, which isn't something the IP and TCP/IP protocols were designed to do. Since Tor uses these protocols, it's nodes can't hide from each other.
The exit node sees which relay node said traffic is coming from, but it doesn't know the guard node or end-user's identity. The relay node sees both the guard and relay node, but doesn't see the end-user or the destination of the traffic. The guard nodes sees the end-user and the relay node but doesn't know the exit node or the destination of the traffic.
Essentially by limiting who knows what, we're able to create a connection in which no one has enough information to properly identify or attack a specific user. Surely there are different ideas as to how Tor can be attacked, and some of these attacks can work quite well. But generally speaking, if a user is using Tor properly with good OpSec practices, they're probably going to be "safe enough".
Sr8120Sr8120
Not the answer you're looking for? Browse other questions tagged node or ask your own question.
Where can I find a specific node to exit from?
Why does TOR not intentionally choose nodes from different countries?
TOR How does middle node know which chain a packet belongs to?
How to see how many people are transmitting traffic through my entry or relay node now (live)?
Does tor and entry or relay node with nyx utility keep in save any logs that can deanonymize users of my node?
What is the purpose of the middle node?
Does connecting to a normal website using tor work the same way as connecting to a hidden website?


text:
For the first time in the U
Volvo Penta 8-liter diesel engine and new IPS drive make American debut
For the first time in the U.S., Volvo Penta is presenting its 8-liter diesel engine and a perfectly matched new IPS drive. These solutions, along with other innovations recently introduced by the company, will be showcased at the Fort Lauderdale International Boat Show in booth 1203/1204.
These new products are the latest example of Volvo Penta's Easy Boating initiative, featuring helm-to-prop integration, according to Ron Huibers, president of Volvo Penta of the Americas. "Our vision of Easy Boating is built on a proven track record of innovation and integration. Volvo Penta's leadership with integrated propulsion systems is the key to optimizing system performance and fuel efficiency while improving the customer experience. Boat-builders, dealers and end users know that they can look to Volvo Penta for a totally integrated solution, built and supported by a single trusted supplier," he said.
Introduction of the D8 engine
With the release of the D8 engine, available for both IPS and inboard shaft applications, Volvo Penta now offers an even broader selection of power systems and meets a growing demand for an engine with 550 to 600 horsepower. In line with Volvo Penta's other diesel engines, the D8 offers industry-leading torque across the full range of RPMs and ensures efficient cruising speed and maneuverability in all conditions. The modern technology and robust design of the engine enables low noise levels and minimal vibrations.
Expanded range of IPS
Building on more than a decade of success since first introducing the IPS, Volvo Penta has expanded this revolutionary product range through introduction of the D8-IPS700 and D8-IPS800. With this addition to the range, Volvo Penta is extending the benefits of IPS to an even greater variety of boats. With its unique forward-facing, twin counter-rotating propellers, combined with steerable pods, IPS continues to set the standard in handling, onboard comfort and maneuverability.
IPS continues to impress boat owners due to its compact design, high-performance, fuel efficiency and reduction in noise and vibration levels. Volvo Penta significantly changed the boating industry in 2005 when IPS was introduced and since then, over 20,000 IPS units have been delivered to 550 boat builders and are installed in over 1,100 different boat models.
"Introduction of the Volvo Penta D8, D8-IPS700 and D8-IPS800 fills a key niche in our marine leisure market line up. This exceptional package provides state-of-the-art fuel efficiency, classic Volvo Penta high torque at low RPMs and remarkably low NVH to powerboats in the 45-55 foot range. Our customers throughout North and South America are tremendously excited at the launch of these superior products designed to function seamlessly with demanded features like Glass Cockpit, Interceptor tabs and now Battery Management System," said Marcia Kull, vice president of marine sales for Volvo Penta of the Americas.
Key fob for remote power up
Volvo Penta is also showcasing its new Battery Management System, a fully integrated solution for monitoring, managing and maintaining all the boat's batteries from a central display at the helm station, replacing multiple separate voltage meters for each battery. The system works behind the scenes to monitor and manage the battery main switches and related functions and gives visibility into all the boat's batteries, showing voltages, current flows, time-to-full charge or discharge, state of charge and status of battery health in a single display at the helm station or integrated into the Glass Cockpit. Best of all for boat owners, the system's e-Key Remote is the first key on the market that is connected and integrated into the boat's entire driveline. The key fob allows users to switch on the battery supply, authorize the valid key and power up the EVC on the engines, and even energize the deck floodlights, electric gangway and anchor windlass – 300 feet away from the boat.
Availability of pioneering Joystick for Inboards
In 2006, Volvo Penta was the first to introduce joystick technology for leisure boating. Carrying on the tradition of industry firsts, Volvo Penta is once again breaking new ground with introduction of the Joystick Inboard solution for twin inboard shaft applications. This complete system is the first of its kind to integrate the rudder with the gear, throttle and thrusters for superior maneuverability.
Leveraging our joystick experience from IPS along with Volvo Penta's Electronic Vessel Control (EVC) platform that is based on the same CAN-bus technology used in ships and planes, the company now offers a complete helm-to-prop solution for inboard applications. With electronic steering and thrusters, the precision and reliability delivered via Joystick Inboard is exceptional for an inboard installation. Joystick Inboard can be paired with all electronically controlled Volvo Penta diesel engines from 110 hp to 900 hp in twin applications.
Volvo Penta Boating Challenge
To highlight the company's commitment to Easy Boating, Volvo Penta's Hanna Ljungqvist, marine product expert and co-host of the Volvo Penta Boating Challenge video series, will lead several sessions throughout the boat show that put the latest innovations to the test. These sessions are open to all attendees and will take place at the company's booth at the following times:
Thursday, November 3 – 12:00 and 4:00 p.m. ET
Friday, November 4 - 12:00 and 4:00 p.m. ET


text:
Pseudantechinus ningbing е вид бозайник от семейство Торбести мишки (Dasyuridae).

Разпространение
Видът е разпространен в Австралия.

Източници

Дебелоопашати торбести мишки

redpajama_set_name: RedPajamaWikipedia


This day is your Cairo romantic experience – a chance to see a wide variety of what this ancient and exotic city can offer. You'll begin with a visit to the pyramids, one of the most iconic and romantic icons of Egypt. Back in Cairo proper you'll visit Al Azhar Park where you can enjoy a romantic stroll through the beautiful gardens and maybe a juice at the café on the hill. You will take a look at the Nilometer and the nearby beautiful buildings on Rhoda Island before heading to the Cairo Opera House and the Museum of Art. As it gets towards sunset you can enjoy a trip up Cairo Tower and a caleche ride, or, if we can't find a caleche, a felucca ride on the Nile. Lunch along the Nile will taken where it best fits in on the day (depends a bit on traffic).
First you'll drive to the Giza Plateau to visit the incredible pyramids and the sphinx. The pyramids are, of course, usually the first thing most people want to see when they visit Egypt. You learn about them in school and, as one of the Wonders of the Ancient World, everyone knows something about them. With your guide to show you around, you'll learn much more. You'll need a couple of hours here to see everything. If you want to go inside one of the pyramids or visit the Solar Boat Museum please tell your guide so that they can arrange tickets for you as these are an additional cost.
From the outskirts of Cairo you will head into the city and enjoy Al Azhar Park with its spectacular view of the Citadel and the old city. You'll take a traditional Egyptian lunch and see some of the City's Islamic history before enjoy a look at the iconic Opera House and art museum. Hopefully you can be at Cairo Tower around sunset to see the city light up. We'll also fit in a caleche ride if we can find one, or a felucca ride on the Nile.
Back to your hotel in time to get ready for dinner.
Departs from your accommodation at 9.30am. Hotel pickups may commence prior to this time, exact pickup time will be advised on reconfirmation.
This tour is available each day of the year.
– Walking through the older parts of Cairo and the pyramids area, while on this tour should not be a problem, can be over uneven surfaces and sensible, comfortable footwear is advised.
– There are souvenir salesmen everywhere in Egypt and bazaar shop owners can be insistent; be polite but firm if you are not interested in purchasing. At the pyramids cameleers, sellers etc., can be persistent. Ask your guide for assistance if necessary.
– If required, wheelchair accessibility should be discussed when booking as many of these areas are not always easy with a chair or for people with disabilities. Some activities may not be available.
If you wish to book this tour please quote STT120. You may contact us by email at nilewavetravel@gmail.com or phone +2017 3338800.


A big haired antipodean, Serin joined The Really Useful Group in 2012. Her skills are heavily skewed towards touring and she works closely with the producing and licensing teams to oversee the development, planning and execution of global tours. She has a keen knowledge of Australasian territories and audiences and is passionate about audience development. She majored in Asian Studies with a particular interest in Japan, China and Indonesia economy and history. Serin works with business development to maximise presence in different and changing markets. Prior to joining RUG, Serin worked as a live entertainment publicist for 5 years before moving into production of live events.


RMA Car Sales, established in 1992, is a family-run business that has built and expanded into a company which prides itself on an outstanding reputation. Not only for the quality of the cars sold, but also for an after sales service that is second to none. All our vehicles are HPI checked and most have Service History & Low or average mileage. Fully Prepared, Serviced with New MOT's at purchase.


The Mir Castle Complex is a UNESCO World Heritage site in Belarus located in the town of Mir in the Karelichy District of the Hrodna region, 29 km to the north-west from another World Heritage site, Niasvizh Castle.
The castle was built in the late 15th or early 16th century (the first reference to it dates from 1531) by the Ilyinichi family. The initial work consisted of building the walls and towers in Gothic style, but work came to an end for some unknown reason. Building had been completed by the beginning of the 17th century with the addition of palatial accommodation, with some Renaissance features (including an Italian-style garden and a system of ponds), after it had passed to the Radzivill family in 1569.This work was probably supervised by the Italian architect Gian Maria Bernardoni.
Following sieges in 1655 and 1706 reconstruction work involved the addition of some Baroque features. It was badly damaged during the Napoleonic period, in 1794 and again in 1812, and it remained in a state of ruinous abandon until the late 19th century, when the complex was purchased by the Duke of Svyatopolk-Mirsky, who began laying out a landscape park with a lake. A new palace (destroyed in 1914) and other structures (chapel, watchman's house, etc) were erected within the grounds. The old castle survived as a romantic ruin. Some restoration work was carried out in the 1920s and 1930s, as a result of which some Secession and Romantic elements were added. During World War II it served as a prison camp and a ghetto. Between 1944 and 1956, the castle was used as a housing facility, which partially damaged the castle's interior.
Restoration did not start in earnest again until 1982.
Drawing by Napoleon Orda, 1876.


text:
St. Thomas student robbed at gunpoint on Grand Avenue
By Lindsey LaBelle
ST. PAUL, Minn. (KMSP) - The University of St. Thomas has issued a crime alert after a student was robbed at gunpoint on Grand Avenue late Wednesday night.
At about 11:55 p.m. a St. Thomas student said she was walking west on Grand Avenue when a suspect walking north on Finn Street stopped her on the southeast corner of the intersection. The student said the suspect pulled out a small handgun, demanded money, and took her phone and purse. The suspect turned and walked south on Finn Street, then took off running.
The crime alert offered the following suspect description:
"The suspect was described as a black male, approximately 6 feet tall, black hair with twists, no facial hair, and wearing a black or gray sweatshirt. The University of St. Thomas believes that descriptors alone are not a valid reason to profile or cast suspicion on any individual. They are included here because they may reasonably assist in identifying the perpetrator of this incident."
Anyone with information about this incident is encouraged to contact SPPD at 651 291-1111. Report crime confidentially or anonymously: by e-mailing PSTIPS@stthomas.edu, or calling 96(2-TIPS).


The Consulate General's Office of Public Affairs disseminates information about U.S. government policies and U.S. society, manages a variety of cultural exchange programs, and conducts public outreach activities. The Public Affairs Office at the U.S. Consulate General in Halifax is responsible for New Brunswick, Prince Edward Island, Nova Scotia, and Newfoundland and Labrador.
For more information about public affairs programs of United States Department of State, please visit the Department of State website.
The Political and Economic Section of the U.S. Consulate General in Halifax works to build and maintain strong relationships with political and business leaders throughout the Atlantic Canadian provinces of Nova Scotia, New Brunswick, Prince Edward Island, and Newfoundland and Labrador.
We follow key political and economic developments in the region in order to ensure that U.S. policy-makers are fully informed regarding events and issues of particular importance in Atlantic Canada as well as advocate for U.S. economic interests in the district.
It is through greater understanding of the regional dynamics that we can work with our Atlantic Canadian counterparts to foster stronger and more productive bilateral relations.
A key area of focus for the Political and Economic Section is monitoring the development of Atlantic Canada's significant energy sector, both in terms of oil and gas reserves, as well as emerging renewables technologies. In addition, we work to strengthen the Atlantic region's long-standing cooperative relationship with the New England states especially in areas relating to increasing regional bilateral trade and a regional approach to the issue of climate change.
The Political and Economic section's other priority issues include: U.S.-Canada trade relations, international fisheries policy, military cooperation, procurement, scientific and health developments, and facilitating cross-border security for both the movement of people and goods.


text:
Barry Manilow Performed With a Video of a Fake Whitney Houston
Filed to: the viewFiled to: the view
i believe in you and me
On Tuesday's episode of The View, Barry Manilow stopped by to promote his just-released duets album. This album is very special; it's entirely tracks of Manilow performing with people who are dead.
My Dream Duets
Before performing a version of "I Believe In You And Me," Manilow explained how this brilliant idea came about:
They asked me to do a duets album and I thought, 'how can I do my duets album different than everyone?' I picked all these people that I would have loved to sing with but they're all gone. So I did duets on this album with John Denver, Judy Garland, Whitney Houston, Louie Armstrong. I mean it's along list of famous, famous singers. And they've figured out a way of helping me make a beautiful album of these famous people singing famous songs.
Thanks to the miracle of modern technology, Manilow isolated the vocal tracks of dead performers and worked them into his own new arrangements.
You know it was really emotional hearing Whitney just by herself. You know, I had to push myself away from the speakers – [it felt like] she was standing right next to me. Really, I would sing with her, and then I would go for the Kleenex.
This performance in particular was really something: Manilow sang in front of a video that was supposed to look like Whitney singing the song with him – you know, Tupac hologram-style. What it actually seemed to be was a video of another black woman, her face masked with shadow and light, as Whitney's vocal track playing. Really moving stuff, especially the end, when Manilow and "Whitney" blew each other a kiss.
Recent from Kate Dries
Ex-NFLer Colton Underwood Learns The Rules Of The Bachelorette Fantasy Suite Fuck, Gets Sent Home
Bachelorette Contestant And Former NFLer Colton Underwood Eats Conch, Reveals He's A Virgin
The Football Player Flips A Log On The Bachelorette, And The Football Knower Gets Eliminated