text:
Being Cleansed From SinSittingLikenessExpiationGod Made Visible In ChristGod's Glory RevealedPerfection, DivineGospel, Historical Foundation OfAdoration, Of ChristGod Is TranscendentLight, SpiritualExaltation Of ChristChrist's NatureAccuracyRevelation, In NtHoliness, Believers' Growth InGlory, Revelation OfGlory Of GodDivinity Of ChristEarth, God SustainingSelf ImageImage Of God Scripture Verse Gifts
"You shall make two cherubim of gold, make them of hammered work at the two ends of the mercy seat. "Make one cherub at one end and one cherub at the other end; you shall make the cherubim of one piece with the mercy seat at its two ends. "The cherubim shall have their wings spread upward, covering the mercy seat with their wings and facing one another; the faces of the cherubim are to be turned toward the mercy seat.read more. Scripture Verse Gifts
It was carved with cherubim and palm trees; and a palm tree was between cherub and cherub, and every cherub had two faces, a man's face toward the palm tree on one side and a young lion's face toward the palm tree on the other side; they were carved on all the house all around. From the ground to above the entrance cherubim and palm trees were carved, as well as on the wall of the nave. The doorposts of the nave were square; as for the front of the sanctuary, the appearance of one doorpost was like that of the other. The altar was of wood, three cubits high and its length two cubits; its corners, its base and its sides were of wood And he said to me, "This is the table that is before the LORD." The nave and the sanctuary each had a double door. Each of the doors had two leaves, two swinging leaves; two leaves for one door and two leaves for the other. Also there were carved on them, on the doors of the nave, cherubim and palm trees like those carved on the walls; and there was a threshold of wood on the front of the porch outside. There were latticed windows and palm trees on one side and on the other, on the sides of the porch; thus were the side chambers of the house and the thresholds. Scripture Verse Art
Being one of the industry leaders for over a decade, we know more about vinyl wall decal than most companies out there. We have learned by trial and error and from amazing feedback from our awesome customers. We are Amazon Professional Sellers, Ebay Power Sellers, and Ebay Top Sellers, and sell through at least 15 other sites online. However, you will typically get our best pricing here at our website plus it is definitely easier to find specific wall arts here than at most sites. Christian Canvas Art
There is not much happening in terms of home decor in my house during this stage of life, but I've just recently been trying to think harder about ways to make our living space feel more polished. I've always liked the use of inspirational home decor and Bible verses in the homes of others. It just adds small reminders of truth throughout the rooms you visit everyday. When I enter the home of someone with Bible verse home decor it also helps me quickly understand their faith lies. It may even be a conversation starter. Scripture Verse Art
Glory of ChristOther BlindingChrist's Own GloryAgeControlling Your ThoughtsUnbelieversPerfection, DivineCommitment, to the worldChrist, Names ForSatan, Kingdom OfSatan, Titles ForThe Light Of ChristDarkness, As A Symbol Of SinCultsRevelation, In Ntevil, origins ofSpiritual Warfare, Causes OfHeart, Fallen And RedeemedBlindingSpiritual Blindness, Results Of Sin Scripture Verse Gifts
The anger of the LORD burned against Israel, and He gave them into the hands of plunderers who plundered them; and He sold them into the hands of their enemies around them, so that they could no longer stand before their enemies. Wherever they went, the hand of the LORD was against them for evil, as the LORD had spoken and as the LORD had sworn to them, so that they were severely distressed. Then the LORD raised up judges who delivered them from the hands of those who plundered them. Christian Canvas Art
Being Cleansed From SinSittingLikenessExpiationGod Made Visible In ChristGod's Glory RevealedPerfection, DivineGospel, Historical Foundation OfAdoration, Of ChristGod Is TranscendentLight, SpiritualExaltation Of ChristChrist's NatureAccuracyRevelation, In NtHoliness, Believers' Growth InGlory, Revelation OfGlory Of GodDivinity Of ChristEarth, God SustainingSelf ImageImage Of God Bible Scripture Gifts
He made two cherubim of gold; he made them of hammered work at the two ends of the mercy seat; one cherub at the one end and one cherub at the other end; he made the cherubim of one piece with the mercy seat at the two ends. The cherubim had their wings spread upward, covering the mercy seat with their wings, with their faces toward each other; the faces of the cherubim were toward the mercy seat. Scripture Verse Gifts
Our Gift Shop is full of amazing products that we think you might like that compliment many of our wall arts. All the items in our Gift Shop are made by other companies. When you click on one to purchase you will be directed to Amazon to make the purchase. Please note that those purchases are not covered by our guarantees. All purchases, refunds, exchanges, or service issues must be dealt with through Amazon. However, at no cost to you, we make a small commission when you purchase through our links. We greatly appreciate that support as it allows us to help keep the price on our wall arts down. Thank you in advance for any purchases you make through our Gift Shop. Bible Scripture Gifts
Then Moses said to the people of Israel, "See, the Lord has called by name Bezalel the son of Uri, son of Hur, of the tribe of Judah; and he has filled him with the Spirit of God, with skill, with intelligence, with knowledge, and with all craftsmanship, to devise artistic designs, to work in gold and silver and bronze, in cutting stones for setting, and in carving wood, for work in every skilled craft. And he has inspired him to teach, both him and Oholiab the son of Ahisamach of the tribe of Dan. ... Christian Canvas Art
"You shall take two onyx stones and engrave on them the names of the sons of Israel, six of their names on the one stone and the names of the remaining six on the other stone, according to their birth. "As a jeweler engraves a signet, you shall engrave the two stones according to the names of the sons of Israel; you shall set them in filigree settings of gold.read more. Scripture Verse Art
He made an altar of bronze, twenty cubits long and twenty cubits wide and ten cubits high. Then he made the sea of cast metal. It was round, ten cubits from brim to brim, and five cubits high, and a line of thirty cubits measured its circumference. Under it were figures of gourds, for ten cubits, compassing the sea all around. The gourds were in two rows, cast with it when it was cast. It stood on twelve oxen, three facing north, three facing west, three facing south, and three facing east. The sea was set on them, and all their rear parts were inward. Its thickness was a handbreadth. And its brim was made like the brim of a cup, like the flower of a lily. It held 3,000 baths. ...
Solomon made all the furniture which was in the house of the LORD: the golden altar and the golden table on which was the bread of the Presence; and the lampstands, five on the right side and five on the left, in front of the inner sanctuary, of pure gold; and the flowers and the lamps and the tongs, of gold; and the cups and the snuffers and the bowls and the spoons and the firepans, of pure gold; and the hinges both for the doors of the inner house, the most holy place, and for the doors of the house, that is, of the nave, of gold. Scripture Verse Gifts
Art has been a part of human history since the beginning. It has been used to express how we feel, documentation of historical events, and to "simply" capture creativity. Art is the expression or application of human creative skill and imagination. It can take form of musical expression, sculptural design, painting and many more forms of creative expression. Scripture Verse Gifts
Scripture art, otherwise known as Bible verse art, is found in the households of Christian followers all over the world. This form of art has been embraced by contemporary artists of faith with an enthusiasm rarely seen in other categories of art. Unlike traditional artists, these artists aren't trying to depict stories of the Bible, although some may use biblical images that are associated with the work's theme, but they are trying to provide easily accessible inspiration for the everyday believer. Christian Canvas Art
Scripture Wall Art also has the freshest and most sought-after designs out there. Many companies try to illegally copy our designs. We always catch them and require them to stop. Sometimes they even say they are selling our products. Simply stated, they lie. We are that only company that sells our products. We do not wholesale to anyone and we have not licensed our designs to anybody. This ensures you the best product that will never look like what everyone else sells. Yes, we could design our wall arts to be faster to make by using boring fonts. Yes we could make them smaller to save money. Yes we could use cheaper materials. NO NO and NO is what we say. We design our products to be beautiful as the primary goal. We make them all in the size that years of customer feedback has told us is the most preferred size for our customers. And we use the best materials because we think you are worth it.
"You shall take two onyx stones and engrave on them the names of the sons of Israel, six of their names on the one stone and the names of the remaining six on the other stone, according to their birth. "As a jeweler engraves a signet, you shall engrave the two stones according to the names of the sons of Israel; you shall set them in filigree settings of gold.read more. Scripture Verse Gifts
Now the prophets, Haggai and Zechariah the son of Iddo, prophesied to the Jews who were in Judah and Jerusalem, in the name of the God of Israel who was over them. Then Zerubbabel the son of Shealtiel and Jeshua the son of Jozadak arose and began to rebuild the house of God that is in Jerusalem, and the prophets of God were with them, supporting them. At the same time Tattenai the governor of the province Beyond the River and Shethar-bozenai and their associates came to them and spoke to them thus: "Who gave you a decree to build this house and to finish this structure?" They also asked them this: "What are the names of the men who are building this building?" But the eye of their God was on the elders of the Jews, and they did not stop them until the report should reach Darius and then an answer be returned by letter concerning it. ... Christian Canvas Art
King Solomon was king over all Israel, and these were his high officials: Azariah the son of Zadok was the priest; Elihoreph and Ahijah the sons of Shisha were secretaries; Jehoshaphat the son of Ahilud was recorder; Benaiah the son of Jehoiada was in command of the army; Zadok and Abiathar were priests; Azariah the son of Nathan was over the officers; Zabud the son of Nathan was priest and king's friend; ... Bible Scripture Gifts
Now King Solomon sent and brought Hiram from Tyre. He was a widow's son from the tribe of Naphtali, and his father was a man of Tyre, a worker in bronze; and he was filled with wisdom and understanding and skill for doing any work in bronze So he came to King Solomon and performed all his work. He fashioned the two pillars of bronze; eighteen cubits was the height of one pillar, and a line of twelve cubits measured the circumference of both. read more. Christian Canvas Art
Now there were four supports at the four corners of each stand; its supports were part of the stand itself. On the top of the stand there was a circular form half a cubit high, and on the top of the stand its stays and its borders were part of it. He engraved on the plates of its stays and on its borders, cherubim, lions and palm trees, according to the clear space on each, with wreaths all around.read more. Christian Canvas Art
"The house which I am about to build will be great, for greater is our God than all the gods. "But who is able to build a house for Him, for the heavens and the highest heavens cannot contain Him? So who am I, that I should build a house for Him, except to burn incense before Him? "Now send me a skilled man to work in gold, silver, brass and iron, and in purple, crimson and violet fabrics, and who knows how to make engravings, to work with the skilled men whom I have in Judah and Jerusalem, whom David my father provided. Bible Scripture Gifts
Scripture Verse Art Contact us at [email protected] | Sitemap xml | Sitemap txt | Sitemap


text:
package org.apache.spark.sql.execution

import java.io.OutputStream
import java.util.{List => JList, Map => JMap}

import scala.collection.JavaConversions._

import net.razorvine.pickle._

import org.apache.spark.annotation.DeveloperApi
import org.apache.spark.api.python.{PythonRunner, PythonBroadcast, PythonRDD, SerDeUtil}
import org.apache.spark.broadcast.Broadcast
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.DataFrame
import org.apache.spark.sql.catalyst.{CatalystTypeConverters, InternalRow}
import org.apache.spark.sql.catalyst.expressions._
import org.apache.spark.sql.catalyst.plans.logical
import org.apache.spark.sql.catalyst.plans.logical.LogicalPlan
import org.apache.spark.sql.catalyst.rules.Rule
import org.apache.spark.sql.types._
import org.apache.spark.unsafe.types.UTF8String
import org.apache.spark.{Logging => SparkLogging, TaskContext, Accumulator}

/**
 * A serialized version of a Python lambda function.  Suitable for use in a [[PythonRDD]].
  * Python lambda函数的序列化版本,适用于[[PythonRDD]]
 */
private[spark] case class PythonUDF(
    name: String,
    command: Array[Byte],
    envVars: JMap[String, String],
    pythonIncludes: JList[String],
    pythonExec: String,
    pythonVer: String,
    broadcastVars: JList[Broadcast[PythonBroadcast]],
    accumulator: Accumulator[JList[Array[Byte]]],
    dataType: DataType,
    children: Seq[Expression]) extends Expression with Unevaluable with SparkLogging {

  override def toString: String = s"PythonUDF#$name(${children.mkString(",")})"

  override def nullable: Boolean = true
}

/**
 * Extracts PythonUDFs from operators, rewriting the query plan so that the UDF can be evaluated
 * alone in a batch.
  * 从运算符中提取PythonUDF,重写查询计划,以便可以批量单独评估UDF
 *
 * This has the limitation that the input to the Python UDF is not allowed include attributes from
 * multiple child operators.
  * 这具有以下限制:不允许对Python UDF的输入包括来自多个子运算符的属性
 */
private[spark] object ExtractPythonUDFs extends Rule[LogicalPlan] {
  def apply(plan: LogicalPlan): LogicalPlan = plan resolveOperators {
    // Skip EvaluatePython nodes.
    //跳过EvaluatePython节点
    case plan: EvaluatePython => plan

    case plan: LogicalPlan if plan.resolved =>
      // Extract any PythonUDFs from the current operator.
      //从当前运算符中提取任何PythonUDF
      val udfs = plan.expressions.flatMap(_.collect { case udf: PythonUDF => udf })
      if (udfs.isEmpty) {
        // If there aren't any, we are done.
        //如果没有,我们就完成了
        plan
      } else {
        // Pick the UDF we are going to evaluate (TODO: Support evaluating multiple UDFs at a time)
        // If there is more than one, we will add another evaluation operator in a subsequent pass.
        //如果有多个,我们将在后续传递中添加另一个评估运算符
        udfs.find(_.resolved) match {
          case Some(udf) =>
            var evaluation: EvaluatePython = null

            // Rewrite the child that has the input required for the UDF
            //重写具有UDF所需输入的子级
            val newChildren = plan.children.map { child =>
              // Check to make sure that the UDF can be evaluated with only the input of this child.
              //检查以确保只使用此子项的输入来评估UDF
              // Other cases are disallowed as they are ambiguous or would require a cartesian
              // product.
              //其他情况是不允许的,因为它们含糊不清或需要笛卡尔积
              if (udf.references.subsetOf(child.outputSet)) {
                evaluation = EvaluatePython(udf, child)
                evaluation
              } else if (udf.references.intersect(child.outputSet).nonEmpty) {
                sys.error(s"Invalid PythonUDF $udf, requires attributes from more than one child.")
              } else {
                child
              }
            }

            assert(evaluation != null, "Unable to evaluate PythonUDF.  Missing input attributes.")

            // Trim away the new UDF value if it was only used for filtering or something.
            //如果新UDF值仅用于过滤或其他内容,则将其删除
            logical.Project(
              plan.output,
              plan.transformExpressions {
                case p: PythonUDF if p.fastEquals(udf) => evaluation.resultAttribute
              }.withNewChildren(newChildren))

          case None =>
            // If there is no Python UDF that is resolved, skip this round.
            //如果没有解析的Python UDF,请跳过此轮
            plan
        }
      }
  }
}

object EvaluatePython {
  def apply(udf: PythonUDF, child: LogicalPlan): EvaluatePython =
    new EvaluatePython(udf, child, AttributeReference("pythonUDF", udf.dataType)())

  def takeAndServe(df: DataFrame, n: Int): Int = {
    registerPicklers()
    // This is an annoying hack - we should refactor the code so executeCollect and executeTake
    // returns InternalRow rather than Row.
    //这是一个烦人的黑客 - 我们应该重构代码,所以executeCollect和executeTake返回InternalRow而不是Row
    val converter = CatalystTypeConverters.createToCatalystConverter(df.schema)
    val iter = new SerDeUtil.AutoBatchedPickler(df.take(n).iterator.map { row =>
      EvaluatePython.toJava(converter(row).asInstanceOf[InternalRow], df.schema)
    })
    PythonRDD.serveIterator(iter, s"serve-DataFrame")
  }

  /**
   * Helper for converting from Catalyst type to java type suitable for Pyrolite.
    * 用于从Catalyst类型转换为适用于Pyrolite的java类型的Helper
   */
  def toJava(obj: Any, dataType: DataType): Any = (obj, dataType) match {
    case (null, _) => null

    case (row: InternalRow, struct: StructType) =>
      val values = new Array[Any](row.numFields)
      var i = 0
      while (i < row.numFields) {
        values(i) = toJava(row.get(i, struct.fields(i).dataType), struct.fields(i).dataType)
        i += 1
      }
      new GenericInternalRowWithSchema(values, struct)

    case (a: ArrayData, array: ArrayType) =>
      val values = new java.util.ArrayList[Any](a.numElements())
      a.foreach(array.elementType, (_, e) => {
        values.add(toJava(e, array.elementType))
      })
      values

    case (map: MapData, mt: MapType) =>
      val jmap = new java.util.HashMap[Any, Any](map.numElements())
      map.foreach(mt.keyType, mt.valueType, (k, v) => {
        jmap.put(toJava(k, mt.keyType), toJava(v, mt.valueType))
      })
      jmap

    case (ud, udt: UserDefinedType[_]) => toJava(ud, udt.sqlType)

    case (d: Decimal, _) => d.toJavaBigDecimal

    case (s: UTF8String, StringType) => s.toString

    case (other, _) => other
  }

  /**
   * Converts `obj` to the type specified by the data type, or returns null if the type of obj is
   * unexpected. Because Python doesn't enforce the type.
    * 将`obj`转换为数据类型指定的类型,如果obj的类型是意外的,则返回null,因为Python不强制执行该类型
   */
  def fromJava(obj: Any, dataType: DataType): Any = (obj, dataType) match {
    case (null, _) => null

    case (c: Boolean, BooleanType) => c

    case (c: Int, ByteType) => c.toByte
    case (c: Long, ByteType) => c.toByte

    case (c: Int, ShortType) => c.toShort
    case (c: Long, ShortType) => c.toShort

    case (c: Int, IntegerType) => c
    case (c: Long, IntegerType) => c.toInt

    case (c: Int, LongType) => c.toLong
    case (c: Long, LongType) => c

    case (c: Double, FloatType) => c.toFloat

    case (c: Double, DoubleType) => c

    case (c: java.math.BigDecimal, dt: DecimalType) => Decimal(c, dt.precision, dt.scale)

    case (c: Int, DateType) => c

    case (c: Long, TimestampType) => c

    case (c: String, StringType) => UTF8String.fromString(c)
    case (c, StringType) =>
      // If we get here, c is not a string. Call toString on it.
      //如果我们到这里,c不是一个字符串,在上面调用toString
      UTF8String.fromString(c.toString)

    case (c: String, BinaryType) => c.getBytes("utf-8")
    case (c, BinaryType) if c.getClass.isArray && c.getClass.getComponentType.getName == "byte" => c

    case (c: java.util.List[_], ArrayType(elementType, _)) =>
      new GenericArrayData(c.map { e => fromJava(e, elementType)}.toArray)

    case (c, ArrayType(elementType, _)) if c.getClass.isArray =>
      new GenericArrayData(c.asInstanceOf[Array[_]].map(e => fromJava(e, elementType)))

    case (c: java.util.Map[_, _], MapType(keyType, valueType, _)) =>
      val keys = c.keysIterator.map(fromJava(_, keyType)).toArray
      val values = c.valuesIterator.map(fromJava(_, valueType)).toArray
      ArrayBasedMapData(keys, values)

    case (c, StructType(fields)) if c.getClass.isArray =>
      new GenericInternalRow(c.asInstanceOf[Array[_]].zip(fields).map {
        case (e, f) => fromJava(e, f.dataType)
      })

    case (_, udt: UserDefinedType[_]) => fromJava(obj, udt.sqlType)

    // all other unexpected type should be null, or we will have runtime exception
      //所有其他意外类型应为null,否则我们将有运行时异常
    // TODO(davies): we could improve this by try to cast the object to expected type
    case (c, _) => null
  }

  private val module = "pyspark.sql.types"

  /**
   * Pickler for StructType
   */
  private class StructTypePickler extends IObjectPickler {

    private val cls = classOf[StructType]

    def register(): Unit = {
      Pickler.registerCustomPickler(cls, this)
    }

    def pickle(obj: Object, out: OutputStream, pickler: Pickler): Unit = {
      out.write(Opcodes.GLOBAL)
      out.write((module + "\n" + "_parse_datatype_json_string" + "\n").getBytes("utf-8"))
      val schema = obj.asInstanceOf[StructType]
      pickler.save(schema.json)
      out.write(Opcodes.TUPLE1)
      out.write(Opcodes.REDUCE)
    }
  }

  /**
   * Pickler for InternalRow
   */
  private class RowPickler extends IObjectPickler {

    private val cls = classOf[GenericInternalRowWithSchema]

    // register this to Pickler and Unpickler
    //将此注册到Pickler和Unpickler
    def register(): Unit = {
      Pickler.registerCustomPickler(this.getClass, this)
      Pickler.registerCustomPickler(cls, this)
    }

    def pickle(obj: Object, out: OutputStream, pickler: Pickler): Unit = {
      if (obj == this) {
        out.write(Opcodes.GLOBAL)
        out.write((module + "\n" + "_create_row_inbound_converter" + "\n").getBytes("utf-8"))
      } else {
        // it will be memorized by Pickler to save some bytes
        pickler.save(this)
        val row = obj.asInstanceOf[GenericInternalRowWithSchema]
        // schema should always be same object for memoization
        pickler.save(row.schema)
        out.write(Opcodes.TUPLE1)
        out.write(Opcodes.REDUCE)

        out.write(Opcodes.MARK)
        var i = 0
        while (i < row.values.size) {
          pickler.save(row.values(i))
          i += 1
        }
        out.write(Opcodes.TUPLE)
        out.write(Opcodes.REDUCE)
      }
    }
  }

  private[this] var registered = false
  /**
   * This should be called before trying to serialize any above classes un cluster mode,
   * this should be put in the closure
    * 这应该在尝试序列化任何上面的类un cluster模式之前调用,这应该放在闭包中
   */
  def registerPicklers(): Unit = {
    synchronized {
      if (!registered) {
        SerDeUtil.initialize()
        new StructTypePickler().register()
        new RowPickler().register()
        registered = true
      }
    }
  }

  /**
   * Convert an RDD of Java objects to an RDD of serialized Python objects, that is usable by
   * PySpark.
    * 将Java对象的RDD转换为可由PySpark使用的序列化Python对象的RDD
   */
  def javaToPython(rdd: RDD[Any]): RDD[Array[Byte]] = {
    rdd.mapPartitions { iter =>
      registerPicklers()  // let it called in executor
      new SerDeUtil.AutoBatchedPickler(iter)
    }
  }
}

/**
 * :: DeveloperApi ::
 * Evaluates a [[PythonUDF]], appending the result to the end of the input tuple.
  * 计算[[PythonUDF]],将结果追加到输入元组的末尾
 */
@DeveloperApi
case class EvaluatePython(
    udf: PythonUDF,
    child: LogicalPlan,
    resultAttribute: AttributeReference)
  extends logical.UnaryNode {

  def output: Seq[Attribute] = child.output :+ resultAttribute

  // References should not include the produced attribute.
  override def references: AttributeSet = udf.references
}

/**
 * :: DeveloperApi ::
 * Uses PythonRDD to evaluate a [[PythonUDF]], one partition of tuples at a time.
  * 使用PythonRDD来评估[[PythonUDF]],一次一个元组分区
 *
 * Python evaluation works by sending the necessary (projected) input data via a socket to an
 * external Python process, and combine the result from the Python process with the original row.
  *
  * Python评估的工作原理是通过套接字将必要的(投影的)输入数据发送到外部Python进程,并将Python进程的结果与原始行结合起来。
 *
 * For each row we send to Python, we also put it in a queue. For each output row from Python,
 * we drain the queue to find the original input row. Note that if the Python process is way too
 * slow, this could lead to the queue growing unbounded and eventually run out of memory.
  *
  * 对于我们发送给Python的每一行,我们也将它放入队列中,对于Python中的每个输出行,我们排空队列以查找原始输入行。
  * 请注意,如果Python进程太慢,这可能会导致队列无限制地增长并最终耗尽内存
 */
@DeveloperApi
case class BatchPythonEvaluation(udf: PythonUDF, output: Seq[Attribute], child: SparkPlan)
  extends SparkPlan {

  def children: Seq[SparkPlan] = child :: Nil

  protected override def doExecute(): RDD[InternalRow] = {
    val inputRDD = child.execute().map(_.copy())
    val bufferSize = inputRDD.conf.getInt("spark.buffer.size", 65536)
    val reuseWorker = inputRDD.conf.getBoolean("spark.python.worker.reuse", defaultValue = true)

    inputRDD.mapPartitions { iter =>
      EvaluatePython.registerPicklers()  // register pickler for Row

      // The queue used to buffer input rows so we can drain it to
      // combine input with output from Python.
      //该队列用于缓冲输入行,因此我们可以将其排出以将输入与Python的输出结合起来
      val queue = new java.util.concurrent.ConcurrentLinkedQueue[InternalRow]()

      val pickle = new Pickler
      val currentRow = newMutableProjection(udf.children, child.output)()
      val fields = udf.children.map(_.dataType)
      val schema = new StructType(fields.map(t => new StructField("", t, true)).toArray)

      // Input iterator to Python: input rows are grouped so we send them in batches to Python.
      // For each row, add it to the queue.
      //将输入迭代器输入到Python:输入行被分组,因此我们将它们批量发送到Python,对于每一行,将其添加到队列中。
      val inputIterator = iter.grouped(100).map { inputRows =>
        val toBePickled = inputRows.map { row =>
          queue.add(row)
          EvaluatePython.toJava(currentRow(row), schema)
        }.toArray
        pickle.dumps(toBePickled)
      }

      val context = TaskContext.get()

      // Output iterator for results from Python.
      //输出迭代器以获取Python的结果
      val outputIterator = new PythonRunner(
        udf.command,
        udf.envVars,
        udf.pythonIncludes,
        udf.pythonExec,
        udf.pythonVer,
        udf.broadcastVars,
        udf.accumulator,
        bufferSize,
        reuseWorker
      ).compute(inputIterator, context.partitionId(), context)

      val unpickle = new Unpickler
      val row = new GenericMutableRow(1)
      val joined = new JoinedRow

      outputIterator.flatMap { pickedResult =>
        val unpickledBatch = unpickle.loads(pickedResult)
        unpickledBatch.asInstanceOf[java.util.ArrayList[Any]]
      }.map { result =>
        row(0) = EvaluatePython.fromJava(result, udf.dataType)
        joined(queue.poll(), row)
      }
    }
  }
}

redpajama_set_name: RedPajamaGithub


Two University of Warwick graduates, Veronika Bondareva of Russia and Diana Trantina of Armenia are set to present their first book, released by their own indie publishing house of bilingual books for children, Lingua Patria Press.
Veronika and Diana met on the MA in Creative and Media Enterprises last year and are two of several graduates who are enjoying start-up success after completing the course. According to the CBI, creative businesses like Lingua Patria Press contribute 6% to GDP, with the sector forecast to play a bigger role in coming years.
Lingua Patria Press' first book is titled, Ole-luk-Oie, the Dream-God, by Hans Christian Andersen and is aimed at 6-10 year old children. This book is the first one in the series "Fairy Tales from Around the World". They have chosen this fairytale as their first publication because the main character - Ole-luk-Oie is a storyteller and they hope Lingua Patria Press will have a tale to tell as well.
Veronika and Diana successfully pitched their business idea to the University of Warwick's selection panel to gain two of 20 places available each year on the universities Tier 1 (Graduate Entrepreneur) Scheme. Creative Media Enterprise graduates have secured almost a third of the places awarded on the scheme since 2012.
Thanks to the scheme they are able to stay in London to pursue their business idea, conceived and developed on the MA in Creative and Media Enterprise while studying at the University of Warwick.
To apply for the scheme, following an initial discussion, Veronika and Diana submitted a business plan and presented their idea to the University's selection panel. The MA gave them the support and preparation they needed to succeed with their dragons den style pitch in addition to a 1:1 pitch training session through the Student Careers and Skills department.
Once successfully endorsed by the university they were eligible to apply for a Tier 1 (Graduate Entrepreneur) visa from the Home Office and were guided through this process by the University's International Office.
Following this successful application their business idea, Lingua Patria Press, is now operating in the UK and continues to be nurtured by the Warwick Enterprise Partnership. The company helps to create, customise and optimise bilingual books according to the needs of young bilingual readers and multicultural families. Their first book is due to be launched in October.


In our beauty salon our fully qualified beauty therapist offers a wide range of treatments from massage to waxing to provide the perfect place to be pampered in a soothing atmosphere.
Our beauty therapist is fully qualified to HND level and has the appropriate qualifications and/or certificates for all treatments offered within the salon as well as years of salon experience.
Download a copy of our beauty treatment list here.


With the Shanghai Majors ending in a really bitter note all eyes are on Manila as the third and final major before the International 2016, the annual Dota 2 tournament hosted by Valve.
In light on this recent update, tickets for the upcoming Manila Majors will now be on sale by this Saturday, March 12, 1:00 P.M. You can head to this site for the tickets.
Ticket prices are 200/100/50 php per day for the weekdays, and 400/200/100 php per day for the weekend days. The Manila Majors will be running from May 3-6 with the Open Qualifiers will be on April 29 – May 2. Teams will need to be finalized by March 27 and be registered here.


On the off chance that you need to play manages and decrease weight rapidly additionally, fat burners can be utilized effectively to help you. There are numerous sorts of fat killers that are ideal for ladies to make utilization of. There are numerous things that turned to shedding fats utilizing eco-accommodating tea separate. Green tea substance is not only valuable in consuming fat anyway it moreover helps to upgrade your wellbeing. It helps give mitigating protection, and is appropriate as a characteristic stimulant for control. In the event that you convey weight reduction problems, particularly zones in the upper legs and guts, you may need the fat killer Nutrex LIP 6. It is not only a fat burner for ladies; it is similarly a prominent supplement to the consuming of fats that are utilized by men. It is the primary fat killer available that makes utilization of containers that rapidly takes in overabundance lipids in the blood. Different people depend on lipo-suction as an answer. By the by, it is not just a fat burner, it destroys away a considerable measure of vitality and steady intrigue is expected to upkeep your fresh out of the plastic new found weight.
Some fat misfortune oxyelite pro Body building supplements may furthermore serve however needs physical exertion. On the off chance that you expect to dissolve fat and create bulk, going to Body building Supplement online discussions could help before you start anything. You additionally need to control your longings. On the off chance that you are hunting down working out supplements for Women, you may wish to look at the Opti-Women Multi-vitamins. This is particularly produced for Women to provide their body a decent balance of vitamins, minerals and herbs to supplement their drive. For perfect results, it is best to get the correct blend of Body building supplements with a sound and adjusted eating routine regimen and exercise. Albeit quick results would not occur, continuously, you will see that every one of your drives will be beneficial. With a proper fat consuming program, you can devour basically anything you want and still get in shape. Working out supplements may in like manner help bolster your weight and your destinations of best fat killer for ladies.


Boeing tanker: Why build planes of war?
Connie Niva suggests Boeing is best suited to build a new Air Force tanker in her guest column ["Boeing is the best company to build the Air Force tanker," Opinion, June 30].
Before anybody does so, I believe the Pentagon needs a full-blown review of its military strategy. It should be clear to our officials by now that the public is fed up with the U.S. engaging in foreign military ventures.
We are not the world's policemen. So why do we need new tankers if we no longer send armies overseas? Furthermore, who is going to attack us? Admittedly, the military-industrial complex provides jobs, but if that is what we are after, we can certainly create jobs without producing military goods.


text:
Female leadership lags at public colleges
By Laura Krantz
More than half of Massachusetts college students are women, and women earn the majority of doctoral degrees. But while nearly half of all private college presidents are women, just one of the 15 state universities has a female president, according to a new study released Wednesday.
Women serve as presidents of 48 percent of all private colleges in the state, the study of gender parity in Massachusetts higher education found. Community colleges are not far behind, with women holding 40 percent of their presidencies as of June 2018. (Since then, that figure has increased to 53 percent.)
Men are still in charge of the vast majority of college boards of trustees, however. Women lead just 20 percent of all the boards, including 31 percent of the boards of private colleges.

redpajama_set_name: RedPajamaCommonCrawl


Rustic country robe hook featuring a bull moose in a pine tree forest. Torch cut from heavy gauge steel. Available in our exclusive copper patina, matte black, or silver torch finish. Matching hardware included. 8"w x 8"h x 2.5"d.


text:
package org.kie.remote.services.rest;

import static org.kie.remote.services.rest.query.data.QueryResourceData.*;

import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Response;

import org.jbpm.services.task.commands.GetTasksByVariousFieldsCommand;
import org.kie.api.task.model.Status;
import org.kie.api.task.model.TaskSummary;
import org.kie.internal.identity.IdentityProvider;
import org.kie.remote.services.jaxb.JaxbTaskSummaryListResponse;
import org.kie.remote.services.rest.exception.KieRemoteRestOperationException;
import org.kie.remote.services.rest.query.data.QueryResourceData;
import org.kie.remote.services.rest.query.helpers.InternalProcInstQueryHelper;
import org.kie.remote.services.rest.query.helpers.InternalTaskQueryHelper;
import org.kie.services.client.serialization.jaxb.impl.query.JaxbQueryProcessInstanceResult;
import org.kie.services.client.serialization.jaxb.impl.query.JaxbQueryTaskResult;

/**
 * Resource that does various query operations
 */

@RequestScoped
@Path("/query/")
public class QueryResourceImpl extends ResourceBase {

    @Context
    private HttpHeaders headers;

    @Inject
    private IdentityProvider identityProvider;

    public void setIdentityProvider( IdentityProvider identityProvider ) {
        this.identityProvider = identityProvider;
    }

    public void setHeaders( HttpHeaders headers ) {
        this.headers = headers;
    }

    // REST operations -----------------------------------------------------------------------------------------------------------

    @GET
    @Path("/runtime/task")
    public Response queryTasks() {
        String oper = getRelativePath();
        Map<String, String[]> params = makeQueryParametersLowerCase(getRequestParams());
        checkIfParametersAreAllowed(params, QueryResourceData.getQueryParameters(), true, oper);

        int[] pageInfo = getPageNumAndPageSize(params, oper);

        InternalTaskQueryHelper queryHelper = new InternalTaskQueryHelper(this);
        JaxbQueryTaskResult result
            = queryHelper.queryTaskOrProcInstAndAssociatedVariables(identityProvider.getName(), params, pageInfo);
        queryHelper.dispose();

        return createCorrectVariant(result, headers);
    }

    @GET
    @Path("/runtime/process")
    public Response queryProcessInstances() {
        String oper = getRelativePath();
        Map<String, String[]> params = makeQueryParametersLowerCase(getRequestParams());
        checkIfParametersAreAllowed(params, QueryResourceData.getQueryParameters(), true, oper);

        int[] pageInfo = getPageNumAndPageSize(params, oper);

        String identityNotNeeded = null;
        InternalProcInstQueryHelper queryHelper = new InternalProcInstQueryHelper(this);
        JaxbQueryProcessInstanceResult result
            = queryHelper.queryTaskOrProcInstAndAssociatedVariables(identityNotNeeded, params, pageInfo);
        queryHelper.dispose();

        return createCorrectVariant(result, headers);
    }

    private static final String[] allowedQueryParams = {
        "workItemId",             // 0
        "taskId",                 // 1
        "businessAdministrator",  // 2
        "potentialOwner",         // 3
        "status",                 // 4
        "taskOwner",              // 5
        "processInstanceId",      // 6
        "language",               // 7
        "union"                   // 8
    };

    @GET
    @Path("/task")
    public Response taskSummaryQuery() {
        Map<String, String[]> params = getRequestParams();
        String oper = getRelativePath();

        checkIfParametersAreAllowed(params, Arrays.asList(allowedQueryParams), "task query");

        List<Long> workItemIds = getLongListParam(allowedQueryParams[0], false, params, "query", true);
        List<Long> taskIds = getLongListParam(allowedQueryParams[1], false, params, "query", true);
        List<Long> procInstIds = getLongListParam(allowedQueryParams[6], false, params, "query", true);
        List<String> busAdmins = getStringListParamAsList(allowedQueryParams[2], false, params, "query");
        List<String> potOwners = getStringListParamAsList(allowedQueryParams[3], false, params, "query");
        List<String> taskOwners = getStringListParamAsList(allowedQueryParams[5], false, params, "query");
        List<String> language = getStringListParamAsList(allowedQueryParams[7], false, params, "query");

        String unionStr = getStringParam(allowedQueryParams[8], false, params, "query");
        boolean union = Boolean.parseBoolean(unionStr); // null, etc == false

        List<String> statusStrList = getStringListParamAsList(allowedQueryParams[4], false, params, "query");
        List<Status> statuses = convertStringListToStatusList(statusStrList);

        int[] pageInfo = getPageNumAndPageSize(params, oper);
        int maxResults = getMaxNumResultsNeeded(pageInfo);
        GetTasksByVariousFieldsCommand queryCmd = new GetTasksByVariousFieldsCommand(workItemIds, taskIds, procInstIds, busAdmins,
                potOwners, taskOwners, statuses, language, union, maxResults);
        queryCmd.setUserId(identityProvider.getName());

        List<TaskSummary> results = doRestTaskOperationWithTaskId((Long) null, queryCmd);

        logger.debug("{} results found.", results.size());
        JaxbTaskSummaryListResponse resultList = paginateAndCreateResult(pageInfo, results, new JaxbTaskSummaryListResponse());
        logger.debug("Returning {} results after pagination.", resultList.getList().size());

        return createCorrectVariant(resultList, headers);
    }

    // helper methods -------------------------------------------------------------------------------------------------------------

    static Map<String, String[]> makeQueryParametersLowerCase(Map<String, String[]> params) {
        if( params == null || params.isEmpty() )  {
            return params;
        }
        Map<String, String[]> lowerCaseParams = new HashMap<String, String[]>(params.size());
        for( Entry<String, String[]> entry : params.entrySet() ) {
            String varName = entry.getKey();
            if( isNameValueParam(varName) ) {
                int _index = varName.indexOf('_');
                varName = varName.substring(0, _index).toLowerCase() + varName.substring(_index);
            } else {
                varName = varName.toLowerCase();
            }
            lowerCaseParams.put(varName, entry.getValue()) ;
        }
        return lowerCaseParams;
    }

    public static void checkIfParametersAreAllowed(Map<String, String[]> params, Collection<String> allowedParams, String oper) {
        checkIfParametersAreAllowed(params, allowedParams, false, oper);
    }

    public static void checkIfParametersAreAllowed(Map<String, String[]> params, Collection<String> allowedParams, boolean checkSpecial, String oper ) {
        if( params == null || params.isEmpty() )  {
            return;
        }

        EACHPARAM: for( String queryParam : params.keySet() ) {
            for( String allowedParam : allowedParams ) {
                if( allowedParam.equalsIgnoreCase(queryParam) || paginationParams.contains(queryParam) ) {
                    continue EACHPARAM;
                }
                if( checkSpecial && isSpecialParameter(queryParam) ) {
                    continue EACHPARAM;
                }
            }
            throw KieRemoteRestOperationException.badRequest(queryParam
                        + " is an unknown and unsupported query param for the " + oper + " operation.");
        }
    }

}


text:
Lou Mazzucchelli from Ridgewood Capital is a member of FundingPost online!
To list your Company on our website and make your profile available to Lou and 7,500+ other VCs and Angel Investors, Click Here.
Ridgewood Capital invests in expansion stage semiconductor, wireless, energy and software companies. Ridgewood Capital provides growth capital to these companies that are shipping products to rapidly growing markets. We invest at a company's inflection point, when a company has completed their R&D and can quickly grow to over $50 million in revenue.
Lou Mazzucchelli
Venture Partner
Ridgewood Capital
Lou Mazzucchelli is an internationally recognized figure in the technology business. He joined Ridgewood Capital in 2001 as a Venture Partner, helping to manage its existing portfolio and source new investments, including AudioAudit, Bluesocket, CleverSet and Peregrine Semiconductor. Lou is a Director of Forgent Networks (NASDAQ:FORG), and a Fellow of the Cutter Information Systems Business Technology Trends Council. Prior to joining Ridgewood, Lou was an investment banker at Gerard Klauer Mattison in New York, which he joined in 1996 as their PC and digital media technology analyst. He was named to the Wall St. Journal all-star team in his second year, and in his third was named one of nine "Home-Run Hitters" of 2,400 analysts analyzed for his stock-picking performance.
Peregrine Semiconductor Peregrine Semiconductor has secured design wins with the world�s major cellular phone manufacturers and is poised for explosive growth in 2005. Peregrine�s high-performance, sapphire semiconductors were originally developed for various military and satellite applications - NASA used Peregrine�s parts in the Mars rovers, Opportunity and Spirit. Today, Peregrine is the only company manufacturing patent-protected sapphire chips for the cellular and HDTV markets.
ORBCOMM ORBCOMM is a wireless telecommunications company that provides reliable, cost effective data communications services to customers around the world through its unique low-earth orbit (LEO) satellite network and global ground infrastructure. A diverse customer base, including industry leaders General Electric, Caterpillar Inc., Volvo Trucks, XATA and AirIQ, uses ORBCOMM services to track, monitor and control mobile and fixed assets including trucks, containers, marine vessels, locomotives, heavy machinery, pipelines, oil wells, utility meters and storage tanks anywhere in the world.
Volterra Semiconductor Corporation Volterra Semiconductor Corporation designs, develops and markets proprietary, high-performance analog and mixed-signal power management semiconductors for the computing, storage, networking and consumer markets. Its core products are integrated voltage regulator semiconductors and scalable voltage regulator semiconductor chipsets that transform, regulate, deliver and monitor the power consumed by digital semiconductors
ORYXE Energy International ORYXE Energy International develops and commercializes patented and patent-pending energy products and environmental solutions based on breakthrough research in combustion technology. These products, when added to diesel, gasoline and other fossil fuels, alter the combustion dynamics and allow fuels to burn more completely, thus reducing pollutants such as oxides of nitrogen, particulate matter, total hydrocarbons and carbon monoxide. Reduction of these pollutants is a major concern for regulators, refiners and the public on a global basis.
Lou participated in the FundingPost event: Perfect Venture Conference IV on November 3 and 4, 2008 in NY, Sponsored by Credit Suisse, Ross & Company, Wolf Block, Shelowitz & Associates, Geller & Company


Locals and visitors alike already know Shelby County as a hub for horses, shopping, and delicious cocktails. But did you know it's also a haven for deep relaxation and restoration? Ladies and gents, grab your yoga mats. I'm about to introduce you to my newest Shelbyville hidden-treasure.
Being good to my body has always been one of those things I come really close to doing; something I constantly recognize I need to do (thanks a heap, 4 p.m. crash time, dairy-imposed indigestion, and sporadic thoughts of anxiety and insecurity), but something I've become far too casual about making happen.
If I'm honest with you, it's hard to claim (and keep claiming) wellness for myself all on my own. Maybe you can relate?
Ball + Mat to the rescue!
To say Melanie Tinsley is the owner of Ball and Mat Studio is an understatement. Melanie and her team of amazing instructors are more like a beating-heart that set the studio's calming atmosphere into motion. And Melanie would be the first person to relate to the self-care struggle. In fact, this common tug-of-war we all feel between choosing wellness and falling into old habits is what inspired her to open Ball and Mat.
And that's exactly what you'll get when you visit Ball and Mat Studio. It invites people from all experience-levels, body-types, and walks of life to claim wellness for themselves through making available the practical tools to work towards healing and growing in a healthy mind, body, and spirit.
From daily yoga flow to Yamuna body-rolling classes, Ball and Mat will be ready to meet you wherever you are on your wellness-journey.
First timer? You'll be more than welcome at any of the special workshops offered each month. While the kids are on fall break, bring them to Kids' Yoga on Tuesday, October 16. Or partner with FIT 4 PREVENTION for a yoga class Friday, October 19th, in honor of Breast-Cancer Awareness Month. For more detailed class descriptions, visit their website!
A class at Ball and Mat is more than just a physical practice. What I've enjoyed most is being surrounded by people who, like me, want to learn to value rest and care for their body. There's something beautiful about people who have jobs, kids, and busy brains taking off socks together for an hour and recognizing collectively our need to recharge.
Find Ball and Mat Studio in historic downtown Shelbyville, along the intersection of Sixth Street and Henry Clay, and sign up for your first class, visit ballandmat.com !


text:
Feeding students to be hungry to learn
Insurance Services Group
Washington Kids in Transition
After launching a community-service referral program a couple of years ago, Insurance Services Group in Edmonds, Washington, was looking for a great nonprofit to support.
Washington Kids in Transition provides food, clothing and toiletries at local schools for kids who may otherwise go hungry or without basic necessities. That's why Insurance Services Group of Edmonds, WA made it their mission to volunteer, donating not only their time but also a $10,000 Make More Happen Award thanks to their commitment to service with the organization.
Starting out small
"We came across the parents behind Washington Kids in Transition in a local news article," said company president Trevor Campbell, "and we were amazed to learn how many students in our own community don't have anything to eat once they leave school for the day."
Since 2015, Insurance Services Group has been providing $10 to the Lake Forest Park organization for each referral they receive. But the company's support goes well beyond the financial. "When opportunities arise to help pack snacks, we encourage any and all team members to step away from their desk during the day," Campbell said. "Nobody is required to volunteer or give, but everyone has a desire to help any way they can."
The team will take an hour during the workday to pack snacks.
An invisible problem
The young people served by Washington Kids in Transition are in dire need of that help, according to executive director Kim Gorney, who helped found the organization in 2014 after learning about the scope of hunger in the area.
Since then, what started as a snack-packing group of parents has grown into much more. Today, Washington Kids in Transition provides emergency closets for clothing, food, and toiletries at local schools, along with rent and utilities assistance and even motel stays for homeless families or those fleeing domestic violence.
The organization also recently organized a resource fair and offered free dental kits, professional photos, and haircuts. This was all while continuing to stock more than 32,000 snack bags this school year alone, so students have food to eat when they are not at school.
"We saw the amazing work these parents were doing, and there was a real need for support and help," Campbell said.
"Our team thought we could make a difference in the lives of local students and their families."
They've already made a difference, but now their impact will get a boost, thanks to a 2017 Safeco Insurance Make More Happen Award. The honor comes with up to a $10,000 donation to Washington Kids in Transition from Safeco on behalf of Insurance Services Group.
That money means "We won't have to turn requests for help away," Gorney said.
"We are so blessed to have the support of Trevor and his staff," Gorney added. "Each month, they pack sacks to be distributed on school buses, and they come with big smiles and enthusiasm. Their partnership has played a big part in helping these vulnerable kids."
Learn more about these Make More Happen winners:
Insurance Services Group, Edmonds, Washington
Washington Kids in Transition, Lake Forest Park, Washington


The paths we choose to walk are unique to us as individuals. These paths are never straight, they twist and turn. They twist and turn, go up and down, there will even be obstacles and traps. Our paths are rarely easy and sometimes it's the hardest paths that bring us the best and most blessings. Adventure on!
This entry was posted in Thought for the Day and tagged lifes adventure, never give up, paths, Thought for the Day by Cat. Bookmark the permalink.
Reblogged this on The Affirmation Spot Blog.


Just like potato recipes and tomato recipes, pepper recipes would not be possible without the rich culinary history of South America. Most peppers that we use today derive from a single plant species that was cultivated by indigenous people in South America. Once trade began between Europe and the Americas, pepper recipes spread like wild fire across the globe. Tex Mex, Indian, and Thai cuisine all contain zesty pepper recipes. Find out for yourself why pepper recipes are so popular.


text:
Lepus othus este o specie de mamifere din familia iepurilor, Leporidae. Nu sapă vizuini și se găsește în tundra deschisă din vestul și sud-vestul Alaskăi și Peninsulei Alaska din Statele Unite. În cea mai mare parte a anului, iepurii din această specie sunt solitari, cu excepția perioadei de împerechere, în timpul căreia produc un singur rând de pui care poate consta în până la 8 pui. Printre prădători se numără păsări răpitoare și urși polari, precum și oameni care vânează specia în timpul vânătorilor sportive. Uniunea Internațională pentru Conservarea Naturii a clasificat această specie ca fiind neamenințată cu dispariția.

Taxonomie
Specia Lepus othus a fost descrisă în anul 1900 de către Clinton Hart Merriam. Speciile cu care Lepus othus este înrudită cel mai mult sunt iepurele arctic (Lepus arcticus) din nordul Canadei și Groenlanda și iepurele de munte (Lepus timidus) din nordul Eurasiei, de care Lepus othus este izolată din punct de vedere geografic. Face parte din subgenul Lepus și a fost anterior inclusă în L. arcticus sau în L. timidus. Mammal Species of the World identifică L. o. othus și L. o. tschuktschorum ca subspecii valide ale L. othus, dar Hall (1981) identifică subspeciile L. o. othus și L. o. poadromus.

Descriere
Lepus othus este una dintre cele mai mari specii din genul Lepus. Este una dintre cele două specii din genul Lepus originare din statul Alaska, Statele Unite, cealaltă fiind iepurele de zăpadă (Lepus americanus), care este o specie mai comună. Atât masculii adulți, cât și femelele adulte din specia Lepus othus au în mod normal lungimea între 50–70 cm, coada măsurând până la încă 8 cm. Labele picioarelor lor posterioare au 20 cm în lungime, despre care se crede că le permit să se miște ușor în caz de zăpadă. S-a raportat că aceștia își folosesc labele picioarelor și pentru a se apăra împotriva prădătorilor. Această specie cântărește de la 2,9 la 7,2 kg, în medie 4,8 kg, iar prin urmare este una dintre cele mai mari specii din ordinul Lagomorpha, alături de iepurele de câmp (Lepus europeaus) și iepurele arctic, care au dimensiuni similare. Comparativ cu urechile altor specii din Lepus, urechile acestor iepuri sunt mai scurte. Acestea sunt mai scurte pentru a conserva căldura pe parcursul lunilor de iarnă. Urechile acestora joacă un rol important în termoreglare, iar urechile lor fiind mici, previn pierderea căldurii în climatul rece. În timpul verii, acești iepuri au stratul de blană maro și părțile lor inferioare sunt albe. În timpul iernii, stratul lor de blană este alb, iar urechile au vârful negru. De asemenea, blana de vară din partea superioară de culoare maro-gri năpârlește, devenind toată albă în timpul iernii.

Răspândire și habitat
Acești iepuri nu trăiesc în vizuini, dar în schimb se adăpostesc în zone deschise. Habitatul lor este compus din tundră și zone stâncoase, precum și zone cu desișuri care le permit să se camufleze. Altitudinea la care se găsesc este de 0 m până la ~660 m. Arealul lor include vestul și sud-vestul Alaskăi, incluzând Peninsula Alaska.

Comportament și ecologie

Dietă
Sunt erbivori, hrănindu-se cu o varietate de frunziș și de fructe. Căutarea hranei are loc în principal în zori și pe la amurg. De asemenea, în timpul verii se hrănesc cu plante verzi, iar în timpul iernii cu scoarță și crenguțe.

Reproducere
Iepurii din specia Lepus othus sunt în cea mai mare parte solitari și de obicei se adună în grupuri numai în timpul sezonului de împerechere, în aprilie și mai. În mod normal, au anual doar un rând de pui care constă în 4–8 pui ce sunt născuți în perioada iunie-iulie. Aceștia sunt activi la scurt timp după naștere și se nasc cu stratul de blană întreg și cu ochii deschiși. Înțărcarea are loc pe la 5–9 săptămâni de la naștere.

Prădători și paraziți
Printre prădătorii acestei specii se numără vulpi, urși polari, glutoni, animale din genul Mustela și păsări răpitoare. Deși acești iepuri nu sunt vânați frecvent pentru hrană de către oameni, sunt prinși în capcană atât pentru blana lor, cât și în timpul vânătorilor sportive. Cu toate acestea, sunt prinși în capcană mai des pentru blana lor decât pentru carnea lor. În Alaska, blana lor poate fi și este utilizată la realizarea de papuci și veșminte.

Acești iepuri pot purta tularemia, o boală bacteriană ce poate fi transmisă animalelor de companie și oamenilor. Aceasta poate cauza răni infecțioase, inflamarea ganglionilor limfatici și febră sau simptome asemănătoare gripei.

Stare de conservare
Populația speciei Lepus othus pare sănătoasă per total, dar nu se știe dacă este în creștere sau în scădere. Nu există deloc sau există puțină monitorizare a acestei specii. Uniunea Internațională pentru Conservarea Naturii a clasificat această specie ca fiind neamenințată cu dispariția.

Note

Mamifere din Statele Unite
Lepus
Specii cu risc scăzut

redpajama_set_name: RedPajamaWikipedia


I'm always looking for simpler and more concise language to describe API, while writing stories and white papers for my audience. I recently used the phrase "library of modular web services", in a presentation outline at the Department of Veterans Affairs (VA). This white paper was intended for a non-technical, state government audience, and my collaborator on the presentation asked if I could dumb this phrase down a little for the audience, providing a simpler explanation.
In this case, I think certain phrases get co-opted by the developer and IT crowd, borrowing from the physical world, resulting in them having a perceived technical meaning, but when in reality they are still very rooted in their past, and can be easily explained by taking users back to their previous meanings. One perfect example of this is the phrase, a "Library of Modular Services".
Think of each book, in a physical library as an analogy of a single API service. Much like when building an application on top of API services, when you are developing a research paper in a library, you need a multitude of resources to bring your paper together. When you visit the library to conduct your research you can browse the library directory, find a wide variety of books you will need. Early on you will be testing out many of these books, then setting aside the books that do not deliver the value and information you are looking for.
When you find the specific resources you need, this is when the modular approach comes into play. For example, if you need a book on a specific artist from history, you aren't required to check-out the entire art history section, or even check-out all impressionists artists, you can go for a very specific artist like Monet or pick and choose from the impressionist resources you need.
Using this library analogy for API services works very well. As a company or organization, instead of just going to IT to get technical services, you can visit your library of modular services to find exactly the resources you need for your project. Maybe your project is just creating a quarterly report, or maybe you want to create a visualization of product sales, all the way to launching a new mobile application.
To support employess in their work, each company should have a library where anyone in the can visit, browse, search and discovery the resources they will need for any project. This library can then be extended to have more marketplace features allowing external partners or even the public to come and browse the library of modular resources, just like they would the public library--allowing them to find just the services they need.


text:
Charlie Hebdo Puts Muhammed on Cover of Post-Attack Issue
VIA "wsj.com" by Sam Schechner
The satirical magazine's post-attack issue will feature a caricature of the Prophet Muhammad on the cover, holding a "Je Suis Charlie" sign under the headline "All Is Forgiven."
PARIS—Since Charlie Hebdo lost eight staff members in a terrorist attack last week, millions of people have declared their support to the French satirical magazine with the slogan "Je Suis Charlie."
Now the often-caustic publication, faced with the challenge of reconciling its new status as a cause célèbre with its reflex to mock, ridicule and offend, is putting a caricature of the Prophet Muhammad on the cover of what is likely to be their most-read issue ever.
Flanked by two colleagues, cartoonist Rénald Luzier—known as Luz—gave a tearful account Tuesday of how he came to draw the cover illustration after hours of trying to strike the right tone.
"I looked at Muhammad. He was crying. And then, above, I wrote 'All is forgiven,' and I wept," he told a news conference. "And there it was. We had found our cover—not the one the world wanted us to make, but the one we wanted to make."
Mr. Luzier said the other magazine cartoonists all agreed that would be the cover for this week's issue, which will exceptionally stay on sale for two weeks to give the staff time to prepare the next one.
Distributors said Monday they were preparing to print as many as three million copies of Wednesday's issue, 50 times the normal circulation. That is raising pressure on a small outlet known for skewering all forms of authority—including some that have rushed to its defense.
Last week's attack has turned Charlie Hebdo into an emblem for freedom of expression. Millions of people took to the streets on Sunday across France, chanting the magazine's name. Production of the issue itself has become a media event, with other journalists gathering at the offices of left-wing daily Libération, which has hosted Charlie Hebdo since the attack.
"It's been extremely moving—and also hypocritical," said Laurent Léger, a reporter for the magazine who survived the shooting. "All of a sudden, we are supported by the entire world. Whereas for years we were completely alone."
Charlie Hebdo isn't pulling any punches. Putting a caricature of Muhammad on the cover is the same act that one of the assailants in last week's attack said motivated the killings. This time the prophet holds a sign saying "Je suis Charlie."
Contributors for the post-attack edition of Charlie Hebdo work on Friday at the offices of the newspaper Libération in Paris. Associated Press
The upcoming 'survivors' edition of Charlie Hebdo will have a cartoon on the cover of the Prophet Muhammad holding up a "Je suis Charlie" sign under the headline 'All is forgiven.' Agence France-Presse/Getty Images
Another target for this week's issue is likely to be Sunday's solidarity march in France, surviving staff members said. The massive rally became a magnet for French and international political figures that have been a mainstay in Charlie Hebdo's pages. Attendees included dignitaries from Turkey, Egypt, and Russia, countries that it has criticized for curbing free speech.
"All those dictators at a march celebrating liberty," Mr. Léger said. "We of course are going to continue the mockery. We'll see if it makes them jump."
'We've spent our time—20 years for us, 40 years for some—combating symbols […] And all of a sudden, we're the symbol.'
—Charlie Hebdo cartoonist Rénald Luzier
Support has poured in to help the small newspaper survive. Le Monde has offered computers and La Poste, France's government-owned postal service, has pledged the magazine a year of free delivery. Distributors are waiving their fees on distribution of the first million copies of Wednesday's issue, to allow almost all the €3 ($3.50) cover price in France to go to the magazine and victims' families.
On Sunday, state-owned France Télévisions aired a 3½ hour concert in support of Charlie Hebdo on channel France 2. The newspaper earlier this year ran a cover illustration that derided the broadcaster's coverage of the Winter Olympics.
"We've spent our time—20 years for us, 40 years for some—combating symbols," Mr. Luzier said Monday on radio station France Inter. "And all of a sudden, we're the symbol."
That shift began with tragedy. Last Wednesday at roughly 11:30 a.m., near the end of Charlie Hebdo's weekly editorial meeting, brothers Chérif and Said Kouachi allegedly forced their way into the office wearing body armor and toting AK-47 assault rifles.
"Charb!" one gunman demanded, as he stood at the door of the narrow conference room, using the nom de plume of editorial director Stéphane Charbonnier. Then, with just over a dozen people crammed around the rectangular meeting table, strewn with some newspapers and notes, the man opened fire, Mr. Léger recalled. Few who were present survived.
On their first day back on the job Friday, the 15 to 20 remaining editorial contributors scarcely had time to work. Prime Minister Manuel Valls showed up, along with French Culture Minister Fleur Pellerin, to offer encouragement. Family members of those who died stopped by as well for tearful exchanges.
"We would work a little. Then stop, and cry. Then work again," Mr. Léger said. "But we also managed to laugh. There were some very funny drawings."
In editorial meetings, cartoonists and journalists debated what they should include in the coming issue. They toyed with running memorials for their fallen friends, but the idea was quickly rejected in favor of a "normal" newspaper.
Some colleagues had initially pushed to print only an abridged eight-page issue. They were short-staffed, after all. But staffers decided they had enough material to run at full length. Charlie Hebdo will feature 16 pages on Wednesday, Mr. Léger said.
In intervening days, the newspaper has come together, and staffers say it will make people laugh.
French President François Hollande himself provided material when he met Charlie Hebdo survivors during Sunday's rally. Just before Mr. Hollande hugged contributor Patrick Pelloux in an emotional embrace on live television, a pigeon defecated on the president's shoulder. The rest of the Charlie Hebdo team burst into laughter.
"He can come to our office any time he wants," Mr. Luzier said of Mr. Hollande. "The pigeon can come too. It was the most beautiful joke."
—Inti Landauro
contributed to this article.


text:
'The View' adds CNN's Ana Navarro to cast
By Joe Concha - 11/02/18 11:21 AM EDT
GOP strategist and staunch President Trump Donald John TrumpPompeo changes staff for Russia meeting after concerns raised about top negotiator's ties: report House unravels with rise of 'Les Enfants Terrible' Ben Carson: Trump is not a racist and his comments were not racist MORE critic Ana Navarro will be joining ABC's "The View" on a full-time basis starting Friday, according to a Friday report tweeted by Navarro.
"Some personal news...stating today, I am happy to be joining the ladies around the table as a Friday co-host on "The View," Navarro, who also serves as a CNN contributor, tweeted to her more than one million followers.
Some personal news...stating today, I am happy to be joining the ladies around the table as a Friday Co-host on "The View".
'View' Adds Ana Navarro as Guest Host – Variety https://t.co/iu63Hq4wxk
— Ana Navarro (@ananavarro) November 2, 2018
Navarro, 46, will join the roundtable opinion program on Fridays, filling for moderator Whoopi Goldberg, who doesn't work that day.
She will join Joy Behar, Meghan McCain, Sunny Hostin and Abby Huntsman. McCain and Huntsman are former Fox News co-hosts, while Hostin is a former CNN contributor. Behar once served as a host on CNN's sister station, HLN.
Variety reports that Navarro had been in talks to join "The View" in this capacity in recent months, but say negotiations broke down due to salary demands.
Navarro, who supported Jeb Bush's failed run for president, is one of CNN's staunchest critics of the president. She once declared that Trump has turned the White House into a "s**thole," and also called the president "stupid, tone deaf, insensitive and offensive."
The View has thrived since Trump took office. The show wrapped up its 21st season in August with its best ratings since creator Barbara Walters' departure four years ago, averaging 2.9 million viewers.
Tags ABC Donald Trump The View


text:
RenovoRx, Inc. (RNXT)
NASDAQ: RNXT · IEX Real-Time Price · USD
1.9% (1D)
Market Cap 23.47M
Net Income (ttm) -10.09M
Forward PE n/a
Price Target 10.20 (+280.6%)
About RNXT
RenovoRx, Inc., a clinical-stage biopharmaceutical company, focuses on developing therapies for the treatment of solid tumors. Its lead product candidate is RenovoGem, a drug and device combination consisting of intra-arterial gemcitabine and RenovoCath that is in Phase III clinical trials for the locally advanced pancreatic cancer. RenovoRx, Inc. was founded in 2009 and is headquartered in Los Altos, California. [Read more]
IPO Date Aug 26, 2021
Employees 10
Ticker Symbol RNXT
According to 8 analysts, the average rating for RNXT stock is "Buy." The 12-month stock price forecast is $10.2, which is an increase of 280.60% from the latest price.
(280.60% upside)
RenovoRx to Present at the Sequire Biotechnology Virtual Conference on February 2, 2023
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. (Nasdaq: RNXT), a biopharmaceutical company focused on the localized treatment of solid tumors, today announced that Shaun Bagai, Chief Executive O...
RenovoRx Announces Initial Results in Pharmacokinetic (PK) Substudy: Data on RenovoGem™ Supports Potential for RenovoTAMP® Therapy Platform to Increase Local Gemcitabine (Chemotherapy) Delivery and Decrease Side Effects of Pancreatic Cancer Treatment
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. (Nasdaq: RNXT), a biopharmaceutical company focused on the localized treatment of solid tumors, today announced initial results from a pharmacokine...
2 weeks ago - Business Wire
RenovoRx Strengthens Intellectual Property (IP) Portfolio with Eighth US Patent
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. (Nasdaq: RNXT), a biopharmaceutical company focused on the localized treatment of difficult-to-treat solid tumors, today announced that on January ...
RenovoRx Announces Acceptance of Four Clinical Data Abstracts at the 2023 ASCO Gastrointestinal Cancers (ASCO GI) Symposium
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. (Nasdaq: RNXT), a biopharmaceutical company focused on the localized treatment of difficult-to-treat solid tumors, today announced the acceptance o...
1 month ago - Business Wire
RenovoRx Announces Presentations at the Advanced Interventional Management Symposium (AIMsymposium) Highlighting its Innovative RenovoTAMP® Therapy Platform for Targeted Treatment of Cancers
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. (Nasdaq: RNXT), a biopharmaceutical company focused on the localized treatment of difficult-to-treat solid tumors through its proprietary RenovoRx ...
RenovoRx Reports Third Quarter 2022 Financial Results
RenovoRx to Participate in ROTH Capital Deep Dive Webinar on October 27, 2022 at 1:00 P.M. ET
LOS ALTOS, Calif.
RenovoRx to Participate in Upcoming October 2022 Investor Conferences
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. (Nasdaq: RNXT), a biopharmaceutical company focused on the localized treatment of difficult-to-treat solid tumors through its proprietary RenovoRx Tr...
RenovoRx Announces Presentation at Symposium on Clinical Interventional Oncology (CIO) Highlighting its Innovative Therapy Platform for Targeted Treatment of Pancreatic Cancer
RenovoRx Appoints Angela Gill Nelms as Chief Operating Officer
RenovoRx to Participate in the H.C. Wainwright 24th Annual Global Investment Conference, September 12-14, 2022
RenovoRx Reports Second Quarter 2022 Financial Results
RenovoRx Appoints James Ahlers as Chief Financial Officer
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. (Nasdaq: RNXT), a biopharmaceutical company and innovator in targeted cancer therapy, today is announcing the appointment of James Ahlers as Chief Fi...
RenovoRx Launches "The RenovoRx Story" Video Series
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. ("RenovoRx" or the "Company") (Nasdaq: RNXT), a biopharmaceutical company and innovator in targeted cancer therapy, today announced the launch of a n...
RenovoRx and TIGeR-PaC Leadership to Host RenovoTAMP™ Webinar on June 21, 2022
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. (Nasdaq: RNXT), a biopharmaceutical company and innovator in targeted cancer therapy, today announced that they will host a webinar highlighting thei...
RenovoRx to Participate in the University of Cambridge's Academy of Therapeutic Sciences Gateway to Translation Seminar Series on June 8, 2022
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. (Nasdaq: RNXT), a biopharmaceutical company and innovator in targeted cancer therapy, today announced that it will participate in the Gateway to Tran...
RenovoRx to Present Preclinical Research Data Demonstrating its Innovative Therapy Platform's Potential Utility for the Treatment of Bile Duct Cancer
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. ("RenovoRx" or the "Company") (Nasdaq: RNXT), a biopharmaceutical company and innovator in targeted cancer therapy, today announces that it will pres...
RenovoRx to Participate in Upcoming H.C Wainwright Global Investment Conference in May 2022
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. ("RenovoRx" or the "Company") (Nasdaq: RNXT), a biopharmaceutical company and innovator in targeted cancer therapy, today announced management's part...
RenovoRx Reports First Quarter 2022 Financial Results
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. ("RenovoRx" or the "Company") (Nasdaq: RNXT), a biopharmaceutical company and innovator in targeted cancer therapy, today is reporting its financial ...
RenovoRx Sponsors Pancreatic Cancer Action Network's PurpleStride Event to End Pancreatic Cancer
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. ("RenovoRx" or the "Company") (Nasdaq: RNXT), a biopharmaceutical company and innovator in targeted cancer therapy, announced today it will join the ...
RenovoRx Reports Full Year 2021 Financial Results
RenovoRx to Participate in March 2022 Investor Conferences
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. ("RenovoRx" or the "Company") (Nasdaq: RNXT), a biopharmaceutical company and innovator in targeted cancer therapy, today announced its leadership's ...
RenovoRx Enrolls First Pancreatic Cancer Patient at Columbia University's New York-Presbyterian Hospital Irving Medical Center in Ongoing TIGeR-PaC Phase 3 Clinical Trial
NEW YORK & LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. ("RenovoRx" or the "Company") (Nasdaq: RNXT), a biopharmaceutical company and innovator in targeted cancer therapy, today announced enroll...
1 year ago - Business Wire
RenovoRx to Host "Delivering Therapy Where it Matters" Fireside Chat with CEO, Shaun Bagai, on February 23rd at 12 P.M. ET
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. ("RenovoRx" or the "Company") (Nasdaq: RNXT), a biopharmaceutical company and innovator in targeted cancer therapy, will host the "Delivering Therapy...
RenovoRx Announces Presentation at the 2022 SPECTRUM Conference Highlighting Its Innovative RenovoTAMP™ Therapy for Targeted Treatment of Cancer
LOS ALTOS, Calif.--(BUSINESS WIRE)--RenovoRx, Inc. ("RenovoRx" or the "Company") (Nasdaq: RNXT), a biopharmaceutical company and innovator in targeted cancer therapy, today announced that Dr. Ripal Ga...


text:
Anglo-Welsh Cup Final tickets details
Tickets for the Anglo-Welsh Cup Final at The Twickenham Stoop next Sunday will go on sale from the Leicester Tigers ticket office on Monday.
Leicester Tigers will face Exeter Chiefs in the Final after beating Saracens in the semi-final at Allianz Park on Saturday. Kick-off in the Final at The Stoop is at 3.00pm next Sunday.
The club will receive an allocation of 2,000 tickets to sell through the Tigers ticket office.
These tickets will be priced at £30 adults, £15 juniors in the central sections of the DHL Stand and in the IG Stand at The Stoop, and £20 adults, £10 juniors in the outer sections of the DHL Stand.
Coach travel is available at a cost of £25, with departure from Welford Road at 9.45am on matchday, to arrive at The Stoop for 1.00pm. The return journey is at 5.30pm.
Match tickets go on sale to Tigers season ticket holders from 9.00am on Monday, March 13, maximum two per season ticket.
Members and season ticket holders can also buy from 9.00am on Tuesday (March 14), maximum two per membership or season ticket.
General sales to all other supporters begin at 2.00pm on Tuesday, March 14, subject to availability.
Tickets will be on sale at the Tigers ticket office only until noon on Wednesday (March 15).
Book in person at Welford Road, phone 0116 319 8888 (option 2)(open 9.00am-5.00pm Monday-Saturday each week) or online at leicestertigers.com.


Item InformationSKU: #9012575View the size chartMake the most elegant of entrances in the striking C..
Item InformationSKU: #8939523View the size chartIf it's a goddess style you seek, look no further th..
Item InformationSKU: #8982319View the size chartTaryn Rose Comfort System DiagramEmbrace fashionable..
Item InformationSKU: #9014388View the size chartEmbrace glamour from the ground up in the effortless..
Item InformationSKU: #8965631View the size chartStand out from the crowd with the must-have Chinese ..
Item InformationSKU: #8592467View the size chartThe Stuart Weitzman® Nudistsong sandal offers a vers..
Item InformationSKU: #9013244View the size chartDress for any elegant occasion in this sophisticated..
Item InformationSKU: #8847605View the size chartAchieve an ultra-chic style when you step out in the..
Item InformationSKU: #9014386View the size chartEmbrace glamour from the ground up in the effortless..
Item InformationSKU: #8992039View the size chartThe Dalia Rose is part of the Clarks® Collection.Fla..
Item InformationSKU: #8562581View the size chartYou'll adore the versatile and stunning style of the..
Item InformationSKU: #8814129View the size chartThe sleek design of the Tory Burch® Elizabeth 65mm P..


We are committed to serve our customers with discount Handsfree Adapter deals. We have comprehensive list of Handsfree Adapter with detailed description and pictures.
Shop Handsfree Adapter on sale from Ebay.com.


text:
Masincokole: Talk to me!
Staff Reporter 21 Apr 2011 00:00
The minister of higher education and training, Blade Nzimande, recently called for all South African university graduates to learn at least one African language. To this there was a monolingual outcry, mainly from mlungus who won't be dictated to.
But this really is one of the few initiatives where our nation's idea of "social cohesion" could become a reality.
It does not take a communist to see that Russia and China fuel their economies in languages other than English. There are only a few countries in Africa in which English has effectively reached the masses as a language of learning and teaching, let alone communication and integration.
English remains a language of the elite, forbidding people from access to the first economy—as erstwhile president Thabo Mbeki referred to it—and relegating them to the second and, dare I suggest, third economy in which people have absolutely no knowledge of English.
With the exception of African languages such as Kiswahili, Arabic and Afrikaans (the third-biggest language in South Africa), the lack of use of African languages in high-status domains remains a reality.
Afrikaans is an example of a young African language that has been intellectualised and can be used as a model for the development of other African languages.
There is a strong link between Julius Malema's recent assertion to the Jewish community that the poor are coming to get "us" Gaddafi-style and how we use language to include and exclude people in this country. Today it is language that serves as a barrier to economic mobility, requiring us to think about how we can use language to transform class relations.
Language is crucial in creating understanding and linkages between the rich and poor. As Nelson Mandela once observed: "[I]f you talk to [a man] in his language, that goes to his heart."
Ask yourself this question: in what language do I dream? In my mother tongue, of course. Now ask yourself what would be the significance of the answer to this umbuzo (question)? You think best in a language that you know best. You should be taught in a language that you understand, allowing for cognition to take place easily. This is one side of the coin that we still miss in South Africa. We need to teach in African languages and teach effective English as a subject. It is not a question of choosing English only.
Not only should you be taught in your dream language but you should also take the initiative to learn other languages. Linguistic activists have been saying this for years.
In the process the mind is broadened and the barriers between linguistic and cultural groups are broken down. You step into the cultural and linguistic space of another human friend. Language is what drives culture and forms its central underpinnings: who are we and who am I if I remain my singular, monolingual, (un)comfortable self?
Now, what do we do in South Africa? We insist that the majority of our students are educated in a language that they often do not understand well. The result: global-language idiots are what we have become!
We don't teach African languages or English with any measure of competency. Furthermore, we insist that those who were privileged under apartheid remain privileged today—in other words, it is those who speak English and, to some extent, Afrikaans who are allowed to be taught in their mother tongues. What gives them this right?
They are also not required to learn another African language. This just does not make sense in a country in which professional services are largely delivered in English, even though arguably not even 40% of the population is functionally literate in this non-indigenous, ex-colonial language.
Imagine someone telling you to take three tablets five times per day in a language that you cannot understand.
And if we believe we should be using English for economic reasons, then should we not all be rushing to learn Mandarin, considering the new economic order in Africa?
Each university is supposed to have its own language policy and all universities should now be in the process of implementing such policies. According to research conducted by my colleague, Dr Pam Maseko, this is largely not happening. Some universities do not even have a language policy.
With the support of management, including vice-chancellor Dr Saleem Badat, Rhodes University is ahead of the pack. It already offers isiXhosa vocation-specific courses in disciplines related to delivery of services. There are now courses such as isiXhosa for pharmacy, law and education - and these form part of the curriculum.
All education students who do not have isiXhosa as a mother tongue are required to learn isiXhosa. We will soon pilot a course in isiXhosa for psychology. An isiXhosa journalism course (both second language and mother tongue) is being offered this year. In addition to the hundreds of undergraduates studying isiXhosa at Rhodes, there are 41 honours students, 20 master's and six PhD students, thanks to bursary funding from the national department of arts and culture.
It is true, too, that African-language teaching and learning should not only be developed at second-language level. There is a serious need to allow mother-tongue speakers enough information to make informed decisions concerning the virtues of being taught in, and the value of learning, their mother tongues.
Market-related courses such as isiXhosa for journalism are important if qualified mother-tongue journalists are to provide their services to radio stations such as Umhlobo Wenene and newspapers such as the isiZulu Isolezwe paper. Likewise, it is important for a journalist who does not speak an African language to learn such a language to gain more accurate information and be more culturally sensitive.
Nzimande, therefore, is quite correct. The only point of difference that I would have is that such vocation-specific African language courses must be taught rather than "should" or "could".
Vocation-specific, market-related African language mother-tongue and second-language courses must form part of the curriculum at universities.
In my view African languages hold the key to the Africanisation of the curriculum, which must be an integral part of transformation at universities.
Students need to learn African languages to enable them to function as better multilingual citizens in the workplace. That is just common sense.
We have found at Rhodes that students generally come to take a very positive view. As pharmacy students, for example, begin to work with patients who are not necessarily conversant in English, they see the benefits.
The argument that is sometimes used against learning an African language is: "Why must I learn this language if I am not going to work among Xhosa people?" The answer is simple: "You will be working among them for the years that you will be studying at Rhodes."
In a country where we remain obsessed with race, multilingualism will go a long way towards creating a measure of social cohesion. Can you imagine if all South Africans were fluent in English, Afrikaans, an Nguni language and a Sotho language? We would all be better citizens.
For so long now black people have had to grapple with learning the white people's English. Nzimande was correct when he observed, in isiZulu, that "we can't be expected to learn English and Afrikaans, yet they don't learn our languages".
As a multilingual mlungu, I can only wait for the day when I am not continually asked: "So where did you learn that Khoza language?" I wonder when last I asked a black person: "So where did you learn English?" If I had never spoken isiXhosa, I would not be the South African that I am today.
Oh, if only we lived in a society where we could thetha, praat, khuluma, talk in one another's languages, even code-switch and mix them together and camtha if need be.
Then we could begin to build a basis for a trusting, communicative nation, a trust based on effective communication and cultural sharing that I believe still eludes us today.
Russell H Kaschula is professor and head of African language studies at Rhodes University's school of languages
Julius MalemaAfrican languagesBlade NzimandeRhodes UniversityDepartment of Education
Battle of the higher education qualifications
UniZulu council lashes Blade
African language could be graduation requirement
'New education plan will ensure quality teachers'


- fire and rain chords - chordify fire and rain tab (ver 3) by james taylor @ ultimate sitemap indexPopularRandom Home james taylor fire rain PDF ePub Mobi Download james taylor fire rain PDF, ePub, Mobi Books james taylor fire rain PDF, ePub, Mobi Page 1. Title: James Taylor Fire Rain Author: Alfred A. Knopf Subject: James Taylor Fire Rain Keywords: Download Books James Taylor Fire Rain computer general knowledge questions and answers pdf in hindi 1/04/1993 · Fire and Rain is a love story filled w All he asks for is a place to stay and complete privacy. But he is too charismatic to maintain a low profile . . . and the adobe cottage he's given to live in is owned by an investigative TV reporter struggling to revive her career.
Fire and Rain When they walked in through the side doors of the big house, everyone got up and looked toward them both, smiling. "Well, you both certainly look better," a tall lanky man with black hair like Laurent's said with a wry grin.


Students using vouchers to attend private schools in Ohio performed significantly worse on state tests than their peers who remained in public schools, according to a new study.
That's even though students who chose to use vouchers were higher performing than eligible students who opted not to use vouchers—although most voucher-eligible students are low-income and, by definition, must be zoned to a poor-performing district schools.
The study was conducted by researchers David Figlio and Krzysztof Karbownik from Northwestern University for the Thomas B. Fordham Institute, a right-leaning think tank.
However, the researchers credited the competitive pressure put on public schools for slightly improving the test scores of low-income students who were eligible for vouchers, but remained in their district schools.
These findings from Ohio are similar to a another recent study of Louisiana's voucher program by Tulane University's Education Research Alliance.
"The disappointing participant results, albeit with a limited number of students, raises questions that deserve further exploration," said Chad Aldis, Vice President for Ohio Policy and Advocacy at the Fordham Institute in a statement. "This isn't the final word on the EdChoice program, but this suggests that further study on participating students' achievement test data and long-term outcomes would be wise."
Ohio's Educational Choice Scholarship Program was originally passed as a pilot program in 2005 for students assigned to consistently poor-performing public schools.
Starting next year, students in Ohio can receive as much as $6,000 a year in public money for tuition at a private school, including religiously affiliated schools. Close to 40 percent of Ohio's private schools participate in the program, according to a separate report by Fordham.