Why Buy Wormeries From Us?
Since we started the domestic Wormery business back in the 1980's, we have been flattered (and challenged) that numerous others have copied our ideas and/or come up with similar concepts across the UK, Europe and indeed the world. To be frank, several of our competitors now offer good quality products that, as the Ronseal advert has it, do what is says on the tin and we view this growth in the Wormery world and multiplicity of availability of a variety of Wormeries with some pleasure and dare we admit, some pride.
Mind you for basic commercial reasons we are however still more than happy to bang our own drum and extol the manifest, absolute and relative benefits of our particular products against all-comers – well so far and as long as we come out top at least.
When I set up the business it was as much about a change of lifestyle for me and my family as it was about trying to do something constructive and positive, as it was about making my millions. Still - I guess one out of three is not too bad in the overall scheme of things! I work as long now as ever I did working for others and I still haven't achieved the millions from my Wormeries – well not yet at least. But, I am my own man in the fascinating and wonderful world of domestic recycling in general and Wormeries in particular.
After a 20 year successful career in HR and general management what more natural than to switch careers and spend the next 20 years researching, developing, sourcing, manufacturing and selling Wormeries to the great British public? Well actually we export our world beating Wormeries to the USA, France, Australia, Belgium, Germany, Canada, South Africa, the Netherlands, Greece and in simple truth most of Europe. Moreover, we even first coined and indeed trade marked the word Wormery as it pertains to composting and were granted the first ever Wormery design patent in the world, so at least our pedigree is good.
With some good competitor products now about what makes us still stand out from the crowd and more specifically why should you buy Wormeries from us rather than anyone else? So what that we were the first are we still the best is the question?
Well thankfully I believe I can, hand on heart and with utter sincerity and integrity say yes we are still the best for many reasons: Our Wormeries are well made, have achieved best buy status from Gardening Which? Magazine (the Consumers Association); are proven, independently acclaimed and efficacious; they have clear, helpful, informative yet simple and well written instructions. Indeed we continue to effectively write and update the text book from which others simply crib.
We offer a range of Wormeries which differ in size and design. Our Classic Wormeries comprise our dual chamber design with patented separating and drainage platform, fine mesh brass aeration vents and lockable lids with industry unique rubberised foam compression seals. The range comprises a 21, 35 and 94 Litre model so can cater for organic kitchen waste generated by a single person households up to the full family. Practical, simple and economic they offer tremendous and unrivalled value, simplicity of use and excellent results.
Our Tiger Wormeries are an excellent combination of the aesthetically pleasing and the practical and incorporate some exciting design improvements on other models. The main benefit of Multi tray systems is the easier harvesting of the compost once the worms have done their work. With our design each tray sits on the surface of the compost or waste in the lower layer rather than clip or slot fit at a pre-determined position. This eliminates the problem of gaps from shrinkage and makes for the far easier upward migration of the worms to the new food. With aeration holes in the vertical plane of the lid (rather than some competitor Wormeries which have holes in the near horizontal plane of the lid), ventilation is achieved whilst avoiding the risk of waterlogging in heavy rain. Tiger Wormeries are available in two, three, four and five tray models which range in capacity from C. 40 Litres to C. 88+ Litres and colour wise they are offered in black, terracotta or British Racing green.
Perhaps the true and greatest benefit of buying from us though, is the sure and certain knowledge and the accompanying peace of mind, that comes from dealing with true experts (I do hope this doesn't sound too immodest). As the leading Wormery designers and developers in the country (world?) we have developed a unique knowledge base and expertise in our chosen field. This in turn leads to a well -trained and highly knowledgeable customer service team I(with expert back up) dedicated, ready and able to professionally answer any product or process related questions that our customers may have as well as efficiently and speedily process your order.
Moving on to the worms we use, Tiger worms cost more are significantly less widely available than the dendrobaena variety which virtually all of our competitors opt for; but they are quite simply the best for the job, no if's or buts or maybe's. Some years ago we sponsored a post graduate student to do their doctoral thesis on worms and worm composting working under Dr Jim Fredrickson a widely acknowledged world class leading expert in the field and this strongly endorsed the efficacy of our chosen worm as not just ' fit for purpose' but also as ' best for job'. When it comes to domestic Wormeries they are the bees knees, so we say why compromise on the best? A word of caution here though on how to buy worms. Worms can be purchased by species and/or weight and/or size and/ or age. What you really want are a good number of young tiger worms. Dendrobaena are cheaper but so what, margarine is cheaper than butter and keg beer cheaper than real ale. Young because (alas) it is the teenager equivalent age of most species which are the most virile and can breed most prolifically! It's not the weight that counts. A kilogram of large older dendrobaena just won't be as good as 250 grams of cool, active, young and wriggly tigers when it comes to sorting out your organic kitchen waste in your Wormery.
So why buy from us then? Well if I haven't convinced you so far, I am not sure I will so I simply suggest you visit our competitor's websites or get their catalogues or brochures, thoroughly research and read about their products, features and benefits, compare with our products, prices and service and then make your decision. In all honesty there are some good Wormeries out there.
But I still expect to see you back soon!


NOC Leadership Academy provides professionals with access to the centers of influence throughout the region and how best to utilize these resources for the benefit of themselves and their business. The curriculum will focus on core areas throughout NOC. Individuals may choose to participate in the full certificate program or may purchase seminars individually, based on their interests and needs.
The certificate program cost is $1,200 and includes the 11 seminars, an optional leadership development class, and 2 tickets to the graduation reception with elected officials, alumni of Leadership Fullerton and YOU!


text:
//===----------------------------------------------------------------------===//
//
//                         Peloton
//
// tpch_database.cpp
//
// Identification: src/main/tpch/tpch_database.cpp
//
// Copyright (c) 2015-17, Carnegie Mellon University Database Group
//
//===----------------------------------------------------------------------===//

#include "benchmark/tpch/tpch_database.h"

#include "benchmark/tpch/tpch_workload.h"
#include "catalog/catalog.h"

namespace peloton {
namespace benchmark {
namespace tpch {

// The TPCH database ID and each of the tables it owns
static constexpr oid_t kTPCHDatabaseId = 44;

//===----------------------------------------------------------------------===//
// Utility function to run a function over every line in the given file
//===----------------------------------------------------------------------===//
void ForEachLine(const std::string fname, std::function<void(char *)> cb) {
  // Open the file and advise the kernel of sequential access pattern
  int input_fd = open(fname.c_str(), O_RDONLY);

  const uint32_t BUFFER_SIZE = 16 * 1024;
  char buffer[BUFFER_SIZE] = {0};
  char *buf_pos = buffer;

  size_t bytes_to_read = BUFFER_SIZE;
  ssize_t bytes_read;
  while ((bytes_read = read(input_fd, buf_pos, bytes_to_read)) != 0) {
    if (bytes_read == -1) {
      perror("Error reading from input file");
      close(input_fd);
      exit(errno);
    }

    char *end = buf_pos + bytes_read;

    char *line_start = buffer;
    char *next_line_start;
    while ((next_line_start = strchr(line_start, '\n')) != nullptr &&
           next_line_start < end) {
      // Invoke callback on start of line
      cb(line_start);

      if (next_line_start == end - 1) {
        line_start = end;
        break;
      }

      line_start = next_line_start + 1;
    }

    bytes_to_read = BUFFER_SIZE;
    buf_pos = buffer;

    size_t tail_size = end - line_start;
    if (tail_size > 0) {
      PELOTON_MEMCPY(buffer, line_start, tail_size);
      buf_pos = buffer + tail_size;
      bytes_to_read -= tail_size;
    }
  }
  close(input_fd);
}

// Convert the given string into a i32 date
uint32_t ConvertDate(char *p) {
  std::tm t_shipdate;
  PELOTON_MEMSET(&t_shipdate, 0, sizeof(std::tm));
  strptime(p, "%Y-%m-%d", &t_shipdate);
  t_shipdate.tm_isdst = -1;
  return static_cast<uint32_t>(mktime(&t_shipdate));
}

//===----------------------------------------------------------------------===//
// TPCH DATABASE
//===----------------------------------------------------------------------===//

TPCHDatabase::TPCHDatabase(const Configuration &c) : config_(c) {
  // Create database instance
  auto *database = new storage::Database(kTPCHDatabaseId);

  // Add databse instance to catalog
  catalog::Catalog::GetInstance()->AddDatabase(database);

  // Create all the test table
  CreateTables();

  // Mark all tables as not loaded
  for (uint32_t i = 0; i < 8; i++) {
    loaded_tables_[i] = false;
  }
}

TPCHDatabase::~TPCHDatabase() {
  auto &txn_manager = concurrency::TransactionManagerFactory::GetInstance();
  auto *txn = txn_manager.BeginTransaction();
  catalog::Catalog::GetInstance()->DropDatabaseWithOid(kTPCHDatabaseId, txn);
  txn_manager.CommitTransaction(txn);
}

// Create all the TPCH tables
void TPCHDatabase::CreateTables() const {
  // Create all table instances
  CreateCustomerTable();
  CreateLineitemTable();
  CreateNationTable();
  CreateOrdersTable();
  CreatePartTable();
  CreatePartSupplierTable();
  CreateRegionTable();
  CreateSupplierTable();
}

storage::Database &TPCHDatabase::GetDatabase() const {
  auto *catalog = catalog::Catalog::GetInstance();
  return *catalog->GetDatabaseWithOid(kTPCHDatabaseId);
}

storage::DataTable &TPCHDatabase::GetTable(TableId table_id) const {
  return *GetDatabase().GetTableWithOid(static_cast<uint32_t>(table_id));
}

uint32_t TPCHDatabase::DictionaryEncode(Dictionary &dict,
                                        const std::string &val) {
  auto iter = dict.find(val);
  if (iter == dict.end()) {
    uint32_t code = dict.size();
    dict.insert(std::make_pair(val, code));
    return code;
  } else {
    return iter->second;
  }
}

uint32_t TPCHDatabase::CodeForMktSegment(const std::string mktsegment) const {
  auto iter = c_mktsegment_dict_.find(mktsegment);
  return iter != c_mktsegment_dict_.end() ? iter->second : 0;
}

//===----------------------------------------------------------------------===//
// TABLE CREATORS
//===----------------------------------------------------------------------===//

void TPCHDatabase::CreateCustomerTable() const {
  catalog::Column c_custkey = {type::TypeId::INTEGER, kIntSize,
                               "c_custkey", true};
  catalog::Column c_name = {type::TypeId::VARCHAR, 25, "c_name", false};
  catalog::Column c_address = {type::TypeId::VARCHAR, 40, "c_address",
                               false};
  catalog::Column c_nationkey = {type::TypeId::INTEGER, kIntSize,
                                 "c_nationkey", true};
  catalog::Column c_phone = {type::TypeId::VARCHAR, 15, "c_phone", false};
  catalog::Column c_acctbal = {type::TypeId::DECIMAL, kDecimalSize,
                               "c_acctbal", true};
  catalog::Column c_mktsegment;
  if (config_.dictionary_encode) {
    c_mktsegment = {type::TypeId::INTEGER, kIntSize, "c_mktsegment",
                    true};
  } else {
    c_mktsegment = {type::TypeId::VARCHAR, 10, "c_mktsegment", true};
  }
  catalog::Column c_comment = {type::TypeId::VARCHAR, 117, "c_comment",
                               false};

  auto customer_cols = {c_custkey, c_name,    c_address,    c_nationkey,
                        c_phone,   c_acctbal, c_mktsegment, c_comment};

  // Create the schema
  std::unique_ptr<catalog::Schema> customer_schema{
      new catalog::Schema{customer_cols}};

  // Create the table!
  bool owns_schema = true;
  bool adapt_table = true;
  storage::DataTable *customer_table = storage::TableFactory::GetDataTable(
      kTPCHDatabaseId, (uint32_t)TableId::Customer, customer_schema.release(),
      "Customer", config_.tuples_per_tile_group, owns_schema, adapt_table);

  // Add the table to the database (we're releasing ownership at this point)
  GetDatabase().AddTable(customer_table);
}

void TPCHDatabase::CreateLineitemTable() const {
  // Define columns
  catalog::Column l_orderkey = {type::TypeId::INTEGER, kIntSize, "l_orderkey"};
  catalog::Column l_partkey = {type::TypeId::INTEGER, kIntSize, "l_partkey"};
  catalog::Column l_suppkey = {type::TypeId::INTEGER, kIntSize, "l_suppkey"};
  catalog::Column l_linenumber = {type::TypeId::INTEGER, kIntSize, "l_linenumber"};
  catalog::Column l_quantity = {type::TypeId::INTEGER, kIntSize, "l_quantity"};
  catalog::Column l_extendedprice = {type::TypeId::DECIMAL, kDecimalSize, "l_extendedprice"};
  catalog::Column l_discount = {type::TypeId::DECIMAL, kDecimalSize, "l_discount"};
  catalog::Column l_tax = {type::TypeId::DECIMAL, kDecimalSize, "l_tax"};

  catalog::Column l_returnflag;
  if (config_.dictionary_encode) {
    l_returnflag = {type::TypeId::INTEGER, kIntSize, "l_returnflag"};
  } else {
    l_returnflag = {type::TypeId::VARCHAR, 1, "l_returnflag"};
  };

  catalog::Column l_linestatus;
  if (config_.dictionary_encode) {
    l_linestatus = {type::TypeId::INTEGER, kIntSize, "l_linestatus"};
  } else {
    l_linestatus = {type::TypeId::VARCHAR, 1, "l_returnflag"};
  }

  catalog::Column l_shipdate = {type::TypeId::DATE, kDateSize, "l_shipdate"};
  catalog::Column l_commitdate = {type::TypeId::DATE, kDateSize, "l_commitdate"};
  catalog::Column l_receiptdate = {type::TypeId::DATE, kDateSize, "l_receiptdate"};
  catalog::Column l_shipinstruct = {type::TypeId::INTEGER, kIntSize, "l_shipinstruct"};
  catalog::Column l_shipmode = {type::TypeId::INTEGER, kIntSize, "l_shipmode"};
  catalog::Column l_comment = {type::TypeId::VARCHAR, 44, "l_comment"};

  auto lineitem_cols = {
      l_orderkey,    l_partkey,       l_suppkey,  l_linenumber,
      l_quantity,    l_extendedprice, l_discount, l_tax,
      l_returnflag,  l_linestatus,    l_shipdate, l_commitdate,
      l_receiptdate, l_shipinstruct,  l_shipmode, l_comment};

  // Create the schema
  std::unique_ptr<catalog::Schema> lineitem_schema{
      new catalog::Schema{lineitem_cols}};

  // Create the table!
  bool owns_schema = true;
  bool adapt_table = true;
  storage::DataTable *lineitem_table = storage::TableFactory::GetDataTable(
      kTPCHDatabaseId, (uint32_t)TableId::Lineitem, lineitem_schema.release(),
      "Line Item", config_.tuples_per_tile_group, owns_schema, adapt_table);

  // Add the table to the database (we're releasing ownership at this point)
  GetDatabase().AddTable(lineitem_table);
}

void TPCHDatabase::CreateNationTable() const {
  catalog::Column n_nationkey = {type::TypeId::INTEGER, kIntSize,
                                 "n_nationkey", true};
  catalog::Column n_name = {type::TypeId::VARCHAR, 25, "n_name", false};
  catalog::Column n_regionKey = {type::TypeId::INTEGER, kIntSize, "n_regionkey",
                                 true};

  catalog::Column n_comment = {type::TypeId::VARCHAR, 152, "n_comment",
                               false};

  // Create the schema
  auto nation_cols = {n_nationkey, n_name, n_regionKey, n_comment};
  std::unique_ptr<catalog::Schema> nation_schema{new catalog::Schema{nation_cols}};

  // Create the table!
  bool owns_schema = true;
  bool adapt_table = true;
  storage::DataTable *nation_table = storage::TableFactory::GetDataTable(
      kTPCHDatabaseId, (uint32_t)TableId::Nation, nation_schema.release(), "Nation",
      config_.tuples_per_tile_group, owns_schema, adapt_table);

  // Add the table to the database (we're releasing ownership at this point)
  GetDatabase().AddTable(nation_table);
}

void TPCHDatabase::CreateOrdersTable() const {
  catalog::Column o_orderkey = {type::TypeId::INTEGER, kIntSize,
                                "o_orderkey", true};
  catalog::Column o_custkey = {type::TypeId::INTEGER, kIntSize,
                               "o_custkey", true};
  catalog::Column o_orderstatus = {type::TypeId::VARCHAR, 1,
                                   "o_orderstatus", true};
  catalog::Column o_totalprice = {type::TypeId::DECIMAL, kDecimalSize,
                                  "o_totalprice", true};
  catalog::Column o_orderdate = {type::TypeId::DATE, kDateSize,
                                 "o_orderdate", true};
  catalog::Column o_orderpriority = {type::TypeId::VARCHAR, 15,
                                     "o_orderpriority", false};
  catalog::Column o_clerk = {type::TypeId::VARCHAR, 15, "o_clerk", false};
  catalog::Column o_shippriority = {type::TypeId::INTEGER, kIntSize,
                                    "o_shippriority", true};
  catalog::Column o_comment = {type::TypeId::VARCHAR, 79, "o_comment",
                               true};

  // Create the schema
  auto orders_cols = {o_orderkey,   o_custkey,      o_orderstatus,
                      o_totalprice, o_orderdate,    o_orderpriority,
                      o_clerk,      o_shippriority, o_comment};
  std::unique_ptr<catalog::Schema> order_schema{
      new catalog::Schema{orders_cols}};

  // Create the table!
  bool owns_schema = true;
  bool adapt_table = true;
  storage::DataTable *order_table = storage::TableFactory::GetDataTable(
      kTPCHDatabaseId, (uint32_t)TableId::Orders, order_schema.release(),
      "Orders", config_.tuples_per_tile_group, owns_schema, adapt_table);

  // Add the table to the database (we're releasing ownership at this point)
  GetDatabase().AddTable(order_table);
}

void TPCHDatabase::CreatePartTable() const {
  catalog::Column p_parkey = {type::TypeId::INTEGER, kIntSize,
                              "p_partkey", true};
  catalog::Column p_name = {type::TypeId::VARCHAR, 55, "p_name", false};
  catalog::Column p_mfgr = {type::TypeId::VARCHAR, 25, "p_mfgr", false};

  catalog::Column p_brand;
  if (config_.dictionary_encode) {
    p_brand = {type::TypeId::INTEGER, kIntSize, "p_brand", true};
  } else {
    p_brand = {type::TypeId::VARCHAR, 10, "p_brand", true};
  }

  catalog::Column p_type = {type::TypeId::VARCHAR, 25, "p_type", true};
  catalog::Column p_size = {type::TypeId::INTEGER, kIntSize, "p_size",
                            true};

  catalog::Column p_container;
  if (config_.dictionary_encode) {
    p_container = {type::TypeId::INTEGER, kIntSize, "p_container", true};
  } else {
    p_container = {type::TypeId::VARCHAR, 10, "p_container", true};
  }

  catalog::Column p_retailprice = {type::TypeId::DECIMAL, kDecimalSize,
                                   "p_retailprice", true};
  catalog::Column p_comment = {type::TypeId::VARCHAR, 23, "p_comment",
                               false};

  // Create the schema
  auto part_cols = {p_parkey, p_name,      p_mfgr,        p_brand,  p_type,
                    p_size,   p_container, p_retailprice, p_comment};
  std::unique_ptr<catalog::Schema> part_schema{new catalog::Schema{part_cols}};

  // Create the table!
  bool owns_schema = true;
  bool adapt_table = true;
  storage::DataTable *part_table = storage::TableFactory::GetDataTable(
      kTPCHDatabaseId, (uint32_t)TableId::Part, part_schema.release(), "Part",
      config_.tuples_per_tile_group, owns_schema, adapt_table);

  // Add the table to the database (we're releasing ownership at this point)
  GetDatabase().AddTable(part_table);
}

void TPCHDatabase::CreatePartSupplierTable() const {}

void TPCHDatabase::CreateRegionTable() const {}

void TPCHDatabase::CreateSupplierTable() const {}

//===----------------------------------------------------------------------===//
// TABLE LOADERS
//===----------------------------------------------------------------------===//

void TPCHDatabase::LoadTable(TableId table_id) {
  switch (table_id) {
    case TableId::Customer: LoadCustomerTable(); break;
    case TableId::Lineitem: LoadLineitemTable(); break;
    case TableId::Nation:   LoadNationTable(); break;
    case TableId::Orders:   LoadOrdersTable(); break;
    case TableId::Part:     LoadPartTable(); break;
    case TableId::PartSupp: LoadPartSupplierTable(); break;
    case TableId::Region:   LoadRegionTable(); break;
    case TableId::Supplier: LoadSupplierTable(); break;
  }
}

void TPCHDatabase::LoadPartTable() {
  if (TableIsLoaded(TableId::Part)) {
    return;
  }

  const std::string filename = config_.GetPartPath();

  LOG_INFO("Loading Part ['%s']\n", filename.c_str());

  auto &table = GetTable(TableId::Part);

  Timer<std::ratio<1, 1000>> timer;
  timer.Start();

  auto &txn_manager = concurrency::TransactionManagerFactory::GetInstance();
  auto *txn = txn_manager.BeginTransaction();

  uint64_t num_tuples = 0;
  std::unique_ptr<type::AbstractPool> pool{new type::EphemeralPool()};

  ForEachLine(filename, [&](char *p){
    storage::Tuple tuple{table.GetSchema(), true /* allocate */};

    tuple.SetValue(0, type::ValueFactory::GetIntegerValue(std::atoi(p)));

    p = strchr(p, '|') + 1;
    char *p_end = strchr(p, '|');
    tuple.SetValue(1, type::ValueFactory::GetVarcharValue(std::string{p, p_end}), pool.get());

    p = p_end + 1;
    p_end = strchr(p, '|');
    tuple.SetValue(2, type::ValueFactory::GetVarcharValue(std::string{p, p_end}), pool.get());

    p = p_end + 1;
    p_end = strchr(p, '|');
    std::string p_brand{p, p_end};
    if (config_.dictionary_encode) {
      uint32_t code = DictionaryEncode(p_brand_dict_, p_brand);
      tuple.SetValue(3, type::ValueFactory::GetIntegerValue(code));
    } else {
      tuple.SetValue(3, type::ValueFactory::GetVarcharValue(p_brand), pool.get());
    }

    p = p_end + 1;
    p_end = strchr(p, '|');
    tuple.SetValue(4, type::ValueFactory::GetVarcharValue(std::string{p, p_end}), pool.get());

    p = p_end + 1;
    tuple.SetValue(5, type::ValueFactory::GetIntegerValue(std::atoi(p)));

    p = p_end + 1;
    p_end = strchr(p, '|');
    std::string p_container{p, p_end};
    if (config_.dictionary_encode) {
      uint32_t code = DictionaryEncode(p_container_dict_, p_brand);
      tuple.SetValue(6, type::ValueFactory::GetIntegerValue(code));
    } else {
      tuple.SetValue(6, type::ValueFactory::GetVarcharValue(p_container), pool.get());
    }

    p = p_end + 1;
    tuple.SetValue(7, type::ValueFactory::GetDecimalValue(std::atof(p)));

    p = p_end + 1;
    p_end = strchr(p, '|');
    tuple.SetValue(8, type::ValueFactory::GetVarcharValue(std::string{p, p_end}), pool.get());

    // Insert into table
    ItemPointer tuple_slot_id = table.InsertTuple(&tuple);
    PELOTON_ASSERT(tuple_slot_id.block != INVALID_OID);
    PELOTON_ASSERT(tuple_slot_id.offset != INVALID_OID);
    txn_manager.PerformInsert(txn, tuple_slot_id);

    num_tuples++;

  });

  // Commit
  PELOTON_ASSERT(txn_manager.CommitTransaction(txn) == ResultType::SUCCESS);

  timer.Stop();
  LOG_INFO("Loading Part finished: %.2f ms (%lu tuples)\n",
           timer.GetDuration(), num_tuples);

  // Set table as loaded
  SetTableIsLoaded(TableId::Part);
}

void TPCHDatabase::LoadSupplierTable() {}

void TPCHDatabase::LoadPartSupplierTable() {}

void TPCHDatabase::LoadCustomerTable() {
  if (TableIsLoaded(TableId::Customer)) {
    return;
  }

  const std::string filename = config_.GetPartPath();

  LOG_INFO("Loading Customer ['%s']\n", filename.c_str());

  auto &table = GetTable(TableId::Customer);

  Timer<std::ratio<1, 1000>> timer;
  timer.Start();

  auto &txn_manager = concurrency::TransactionManagerFactory::GetInstance();
  auto *txn = txn_manager.BeginTransaction();

  uint64_t num_tuples = 0;
  std::unique_ptr<type::AbstractPool> pool{new type::EphemeralPool()};

  ForEachLine(filename, [&](char *p) {
    storage::Tuple tuple{table.GetSchema(), true /* allocate */};

    // C_CUSTKEY
    int32_t c_custkey = std::atoi(p);
    tuple.SetValue(0, type::ValueFactory::GetIntegerValue(c_custkey));

    // C_NAME
    p = strchr(p, '|') + 1;
    char *p_end = strchr(p, '|');

    std::string c_name{p, p_end};
    tuple.SetValue(1, type::ValueFactory::GetVarcharValue(c_name), pool.get());

    // C_ADDRESS
    p = p_end + 1;
    p_end = strchr(p, '|');

    std::string c_address{p, p_end};
    tuple.SetValue(2, type::ValueFactory::GetVarcharValue(c_address), pool.get());

    // C_NATIONKEY
    p = p_end + 1;

    int32_t c_nationkey = std::atoi(p);
    tuple.SetValue(3, type::ValueFactory::GetIntegerValue(c_nationkey));

    // C_PHONE
    p = strchr(p, '|') + 1;
    p_end = strchr(p, '|');
    std::string c_phone{p, p_end};
    tuple.SetValue(4, type::ValueFactory::GetVarcharValue(c_phone), pool.get());

    // C_ACCTBA
    p = p_end + 1;
    double c_acctba = std::atof(p);
    tuple.SetValue(5, type::ValueFactory::GetDecimalValue(c_acctba));

    // C_MKTSEGMENT
    p = strchr(p, '|') + 1;
    p_end = strchr(p, '|');
    std::string c_mktsegment{p, p_end};
    if (config_.dictionary_encode) {
      uint32_t code = DictionaryEncode(c_mktsegment_dict_, c_mktsegment);
      tuple.SetValue(6, type::ValueFactory::GetIntegerValue(code));
    } else {
      tuple.SetValue(6, type::ValueFactory::GetVarcharValue(c_mktsegment), pool.get());
    }

    // C_COMMENT
    p = p_end + 1;
    p_end = strchr(p, '|');
    std::string c_comment{p, p_end};
    tuple.SetValue(7, type::ValueFactory::GetVarcharValue(c_comment), pool.get());

    // Insert into table
    ItemPointer tuple_slot_id = table.InsertTuple(&tuple);
    PELOTON_ASSERT(tuple_slot_id.block != INVALID_OID);
    PELOTON_ASSERT(tuple_slot_id.offset != INVALID_OID);
    txn_manager.PerformInsert(txn, tuple_slot_id);

    num_tuples++;
  });

  // Commit
  PELOTON_ASSERT(txn_manager.CommitTransaction(txn) == ResultType::SUCCESS);

  timer.Stop();
  LOG_INFO("Loading Customer finished: %.2f ms (%lu tuples)\n",
           timer.GetDuration(), num_tuples);

  // Set table as loaded
  SetTableIsLoaded(TableId::Customer);
}

void TPCHDatabase::LoadNationTable() {}

void TPCHDatabase::LoadLineitemTable() {
  // Short-circuit if table is already loaded
  if (TableIsLoaded(TableId::Lineitem)) {
    return;
  }

  const std::string filename = config_.GetLineitemPath();

  LOG_INFO("Loading Lineitem ['%s']\n", filename.c_str());

  uint64_t num_tuples = 0;

  auto &table = GetTable(TableId::Lineitem);

  std::unique_ptr<type::AbstractPool> pool{new type::EphemeralPool()};

  auto &txn_manager = concurrency::TransactionManagerFactory::GetInstance();
  auto *txn = txn_manager.BeginTransaction();

  Timer<std::ratio<1, 1000>> timer;
  timer.Start();

  ForEachLine(filename, [&](char *p) {
    // The input tuple
    storage::Tuple tuple{table.GetSchema(), /*allocate*/ true};

    tuple.SetValue(0, type::ValueFactory::GetIntegerValue(std::atoi(p)));

    p = strchr(p, '|') + 1;
    tuple.SetValue(1, type::ValueFactory::GetIntegerValue(std::atoi(p)));

    p = strchr(p, '|') + 1;
    tuple.SetValue(2, type::ValueFactory::GetIntegerValue(std::atoi(p)));

    p = strchr(p, '|') + 1;
    tuple.SetValue(3, type::ValueFactory::GetIntegerValue(std::atoi(p)));

    p = strchr(p, '|') + 1;
    tuple.SetValue(4,
                   type::ValueFactory::GetIntegerValue((int32_t)std::atof(p)));

    p = strchr(p, '|') + 1;
    tuple.SetValue(5, type::ValueFactory::GetDecimalValue(std::atof(p)));

    p = strchr(p, '|') + 1;
    tuple.SetValue(6, type::ValueFactory::GetDecimalValue(std::atof(p)));

    p = strchr(p, '|') + 1;
    tuple.SetValue(7, type::ValueFactory::GetDecimalValue(std::atof(p)));

    p = strchr(p, '|') + 1;
    char returnflag = *p;
    tuple.SetValue(8, type::ValueFactory::GetIntegerValue(returnflag));

    p = strchr(p, '|') + 1;
    char linestatus = *p;
    tuple.SetValue(9, type::ValueFactory::GetIntegerValue(linestatus));

    p = strchr(p, '|') + 1;
    tuple.SetValue(10, type::ValueFactory::GetDateValue(ConvertDate(p)));

    p = strchr(p, '|') + 1;
    tuple.SetValue(11, type::ValueFactory::GetDateValue(ConvertDate(p)));

    p = strchr(p, '|') + 1;
    tuple.SetValue(12, type::ValueFactory::GetDateValue(ConvertDate(p)));

    p = strchr(p, '|') + 1;
    char *p_end = strchr(p, '|');
    std::string l_shipinstruct{p, p_end};
    if (config_.dictionary_encode) {
      uint32_t code = DictionaryEncode(l_shipinstruct_dict_, l_shipinstruct);
      tuple.SetValue(13, type::ValueFactory::GetIntegerValue(code), nullptr);
    } else {
      tuple.SetValue(13, type::ValueFactory::GetVarcharValue(l_shipinstruct),
                     pool.get());
    }

    p = p_end + 1;
    p_end = strchr(p, '|');
    std::string l_shipmode{p, p_end};
    if (config_.dictionary_encode) {
      uint32_t code = DictionaryEncode(l_shipmode_dict_, l_shipmode);
      tuple.SetValue(14, type::ValueFactory::GetIntegerValue(code));
    } else {
      tuple.SetValue(14, type::ValueFactory::GetVarcharValue(l_shipinstruct),
                     pool.get());
    }

    p = p_end + 1;
    p_end = strchr(p, '|');
    tuple.SetValue(15,
                   type::ValueFactory::GetVarcharValue(std::string{p, p_end}),
                   pool.get());

    // Insert into table
    ItemPointer tuple_slot_id = table.InsertTuple(&tuple);
    PELOTON_ASSERT(tuple_slot_id.block != INVALID_OID);
    PELOTON_ASSERT(tuple_slot_id.offset != INVALID_OID);
    txn_manager.PerformInsert(txn, tuple_slot_id);

    num_tuples++;
  });

  // Commit
  auto res = txn_manager.CommitTransaction(txn);
  PELOTON_ASSERT(res == ResultType::SUCCESS);
  if (res != ResultType::SUCCESS) {
    LOG_ERROR("Could not commit transaction during load!");
  }

  timer.Stop();
  LOG_INFO("Loading Lineitem finished: %.2f ms (%lu tuples)\n",
           timer.GetDuration(), num_tuples);

  // Set table as loaded
  SetTableIsLoaded(TableId::Lineitem);
}

void TPCHDatabase::LoadRegionTable() {}

void TPCHDatabase::LoadOrdersTable() {}

}  // namespace tpch
}  // namespace benchmark
}  // namespace peloton

redpajama_set_name: RedPajamaGithub


Inspiring kids to brush their teeth can be troublesome, frequently loaded with tears, fits or level out refusal. Notwithstanding, there are numerous ways you can make it a fun experience and begin them out with great oral cleanliness at a youthful age. Finding the best rotating brush for kids that is straightforward and enjoyable to utilize can go far in building up sound brushing propensities that endure forever.
Notwithstanding rotating brushes for grown-ups, Electric Toothbrush for Kids makes an entire line of children's oscillating brushes with exceptional highlights intended for offspring of 3+ years of age. While they have comparative brush developments and clocks to their grown-up partners, Electric Toothbrush for Kids Stages Power rotating brushes are accessible in brilliant hues highlighting their most loved characters to make brushing more fun. Every one of the Electric Toothbrush for Kids Stages children's toothbrushes (starting at 3+ years of age) are intended for offspring of particular age bunches with an extensive variety of character friends, from characters. So let us read more about Battery Operated Electric Toothbrush for Kids Online India India.
Each phase in a youngster's oral wellbeing advancement is essential, and that is the reason Electric Toothbrush for Kids's range can rouse fun and sound brushing propensities. You can discover decisions extending from manual toothbrushes for babies as far as possible up to more established children's electric toothbrushes.Electric Toothbrush for Kids for infant. Before you purchase your kid's first oscillating brush they can use alone, you'll have to brush your child's teeth for them.


text:
Home / The Abysmal Brute / VIII
The Abysmal Brute
That night, after receiving the editor's final dictum that there was not a square fighter in the game, Maud Sangster cried quietly for a moment on the edge of her bed, grew angry, and went to sleep hugely disgusted with herself, prize-fighters, and the world in general.
The next afternoon she began work on an interview with Henry Addison that was destined never to be finished. It was in the private room that was accorded her at the "Courier-Journal" office that the thing happened. She had paused in her writing to glance at a headline in the afternoon paper announcing that Glendon was matched with Tom Cannam, when one of the door-boys brought in a card. It was Glendon's.
"Tell him I can't be seen," she told the boy.
In a minute he was back.
"He says he's coming in anyway, but he'd rather have your permission."
"Did you tell him I was busy?" she asked.
"Yes'm, but he said he was coming just the same."
She made no answer, and the boy, his eyes shining with admiration for the importunate visitor, rattled on.
"I know'm. He's a awful big guy. If he started roughhousing he could clean the whole office out. He's young Glendon, who won the fight last night."
"Very well, then. Bring him in. We don't want the office cleaned out, you know."
No greetings were exchanged when Glendon entered. She was as cold and inhospitable as a gray day, and neither invited him to a chair nor recognized him with her eyes, sitting half turned away from him at her desk and waiting for him to state his business. He gave no sign of how this cavalier treatment affected him, but plunged directly into his subject.
"I want to talk to you," he said shortly. "That fight. It did end in that round."
She shrugged her shoulders.
"I knew it would."
"You didn't," he retorted. "You didn't. I didn't."
She turned and looked at him with quiet affectation of boredom.
"What is the use?" she asked. "Prize-fighting is prize-fighting, and we all know what it means. The fight did end in the round I told you it would."
"It did," he agreed. "But you didn't know it would. In all the world you and I were at least two that knew Powers wouldn't be knocked out in the sixteenth."
She remained silent.
"I say you knew he wouldn't." He spoke peremptorily, and, when she still declined to speak, stepped nearer to her. "Answer me," he commanded.
She nodded her head.
"But he was," she insisted.
"He wasn't. He wasn't knocked out at all. Do you get that? I am going to tell you about it, and you are going to listen. I didn't lie to you. Do you get that? I didn't lie to you. I was a fool, and they fooled me, and you along with me. You thought you saw him knocked out. Yet the blow I struck was not heavy enough. It didn't hit him in the right place either. He made believe it did. He faked that knockout."
He paused and looked at her expectantly. And somehow, with a leap and thrill, she knew that she believed him, and she felt pervaded by a warm happiness at the reinstatement of this man who meant nothing to her and whom she had seen but twice in her life.
"Well?" he demanded, and she thrilled anew at the compellingness of him.
She stood up, and her hand went out to his.
"I believe you," she said. "And I am glad, most glad."
It was a longer grip than she had anticipated. He looked at her with eyes that burned and to which her own unconsciously answered back. Never was there such a man, was her thought. Her eyes dropped first, and his followed, so that, as before, both gazed at the clasped hands. He made a movement of his whole body toward her, impulsive and involuntary, as if to gather her to him, then checked himself abruptly, with an unmistakable effort. She saw it, and felt the pull of his hand as it started to draw her to him. And to her amazement she felt the desire to yield, the desire almost overwhelmingly to be drawn into the strong circle of those arms. And had he compelled, she knew that she would not have refrained. She was almost dizzy, when he checked himself and with a closing of his fingers that half crushed hers, dropped her hand, almost flung it from him.
"God!" he breathed. "You were made for me."
He turned partly away from her, sweeping his hand to his forehead. She knew she would hate him forever if he dared one stammered word of apology or explanation. But he seemed to have the way always of doing the right thing where she was concerned. She sank into her chair, and he into another, first drawing it around so as to face her across the corner of the desk.
"I spent last night in a Turkish bath," he said. "I sent for an old broken-down bruiser. He was a friend of my father in the old days. I knew there couldn't be a thing about the ring he didn't know, and I made him talk. The funny thing was that it was all I could do to convince him that I didn't know the things I asked him about. He called me the babe in the woods. I guess he was right. I was raised in the woods, and woods is about all I know.
"Well, I received an education from that old man last night. The ring is rottener than you told me. It seems everybody connected with it is crooked. The very supervisors that grant the fight permits graft off of the promoters; and the promoters, managers, and fighters graft off of each other and off the public. It's down to a system, in one way, and on the other hand they're always—do you know what the double cross is?" (She nodded.) "Well, they don't seem to miss a chance to give each other the double cross.
"The stuff that old man told me took my breath away. And here I've been in the thick of it for several years and knew nothing of it. I was a real babe in the woods. And yet I can see how I've been fooled. I was so made that nobody could stop me. I was bound to win, and, thanks to Stubener, everything crooked was kept away from me. This morning I cornered Spider Walsh and made him talk. He was my first trainer, you know, and he followed Stubener's instructions. They kept me in ignorance. Besides, I didn't herd with the sporting crowd. I spent my time hunting and fishing and monkeying with cameras and such things. Do you know what Walsh and Stubener called me between themselves?—the Virgin. I only learned it this morning from Walsh, and it was like pulling teeth. And they were right. I was a little innocent lamb.
"And Stubener was using me for crookedness, too, only I didn't know it. I can look back now and see how it was worked. But you see, I wasn't interested enough in the game to be suspicious. I was born with a good body and a cool head, I was raised in the open, and I was taught by my father, who knew more about fighting than any man living or dead. It was too easy. The ring didn't absorb me. There was never any doubt of the outcome. But I'm done with it now."
She pointed to the headline announcing his match with Tom Cannam.
"That's Stubener's work," he explained. "It was programmed months ago. But I don't care. I'm heading for the mountains. I've quit."
She glanced at the unfinished interview on the desk and sighed.
"How lordly men are," she said. "Masters of destiny. They do as they please—"
"From what I've heard," he interrupted, "you've done pretty much as you please. It's one of the things I like about you. And what has struck me hard from the first was the way you and I understand each other."
He broke off and looked at her with burning eyes.
"Well, the ring did one thing for me," he went on. "It made me acquainted with you. And when you find the one woman, there's just one thing to do. Take her in your two hands and don't let go. Come on, let us start for the mountains."
It had come with the suddenness of a thunder-clap, and yet she felt that she had been expecting it. Her heart was beating up and almost choking her in a strangely delicious way. Here at least was the primitive and the simple with a vengeance. Then, too, it seemed a dream. Such things did not take place in modern newspaper offices. Love could not be made in such fashion; it only so occurred on the stage and in novels.
He had arisen, and was holding out both hands to her.
"I don't dare," she said in a whisper, half to herself. "I don't dare."
And thereat she was stung by the quick contempt that flashed in his eyes but that swiftly changed to open incredulity.
"You'd dare anything you wanted," he was saying. "I know that. It's not a case of dare, but of want. Do you want?"
She had arisen, and was now swaying as if in a dream. It flashed into her mind to wonder if it were hypnotism. She wanted to glance about her at the familiar objects of the room in order to identify herself with reality, but she could not take her eyes from his. Nor did she speak.
He had stepped beside her. His hand was on her arm, and she leaned toward him involuntarily. It was all part of the dream, and it was no longer hers to question anything. It was the great dare. He was right. She could dare what she wanted, and she did want. He was helping her into her jacket. She was thrusting the hat-pins through her hair. And even as she realized it, she found herself walking beside him through the opened door. The "Flight of the Duchess" and "The Statue and the Bust," darted through her mind. Then she remembered "Waring."
" 'What's become of Waring?' " she murmured.
" 'Land travel or sea-faring?' " he murmured back.
And to her this kindred sufficient note was a vindication of her madness.
At the entrance of the building he raised his hand to call a taxi, but was stopped by her touch on his arm.
"Where are we going?" she breathed.
"To the Ferry. We've just time to catch that Sacramento train."
"But I can't go this way," she protested. "I … I haven't even a change of handkerchiefs."
He held up his hand again before replying.
"You can shop in Sacramento. We'll get married there and catch the night overland north. I'll arrange everything by telegraph from the train."
As the cab drew to the curb, she looked quickly about her at the familiar street and the familiar throng, then, with almost a flurry of alarm, into Glendon's face.
"I don't know a thing about you," she said.
"We know everything about each other," was his answer.
She felt the support and urge of his arms, and lifted her foot to the step. The next moment the door had closed, he was beside her, and the cab was heading down Market Street. He passed his arm around her, drew her close, and kissed her. When next she glimpsed his face she was certain that it was dyed with a faint blush.
"I … I've heard there was an art in kissing," he stammered. "I don't know anything about it myself, but I'll learn. You see, you're the first woman I ever kissed."

redpajama_set_name: RedPajamaCommonCrawl


He poses as a barbarian chieftain, promising spoils of war from zero-sum conflicts pitting tribes against one another, both domestically and abroad. He has lamented the Bush administration's failure to steal Iraq's oil after the invasion, insists NATO allies should pay more for protection by the U.S., and maintains that he can force Mexico to pay for a border wall it does not want. Trump's veneration of strength not only fails to rely upon American ideals as justification but also treats those ideals with contempt, which is why the leaders he lavishes with the most fulsome praise are ruling from places like Moscow and Beijing. Trump's America is like Russia, but bigger and stronger and richer.
backing down: what a US President should never do. Always dominate, never apologize.
bullying: what Hillary does when she attacks the "deplorables".
equality of outcome: the holy grail to liberals, who are economic levelers. Tea Party/GOPers prefer equality of opportunity, and figure that outcomes will take their natural course as the winners separate themselves from the losers.
love of country: justification for violence at Trump rallies.
Obama: money launderer-in-chief for ISIS.
people: The voice of the people (aka, "the deplorables") will prevail in overcoming political correctness and electing Donald Trump. "People" are also,Trump's information sources–almost always unnamed. aka, "some say". They almost always traffic in innuendoes and rumors.
cultural condescension: Hillary's attacks on "the deplorables". Part of her relentless moral superciliousness and Obama's political narcissism.
political carve-outs: any Dem patronage.
politics: to Hillary, a market to be conquered.
reducing war. Under Obama, making war more likely. A key Tea Party/GOP meme: peace leads to war.
rules of engagement: onerous shackles making it impossible to win wars any more. Total war a more viable concept.
slush fund: any Dem foundation or political cause.
the truth: what the mainstream media never tells you, so the whole notion of "truth" doesn't matter any more.
This entry was posted in anchors, rhetoric, roles, scripts and tagged carve-out, cultural condescension, love of country, rules of engagement, slush fund, truth by suratsweet. Bookmark the permalink.


Followed that up with one of my favorites, fried catfish, two pieces. They use a corn meal batter that I just love. Even though I remove the breading, I can taste it in the fish. Removing most of the breading cuts the calories and fat content.
Some steamed broccoli. Excellent food, fiber and low in calories. Here is one of the traps to avoid on a buffet. I had the equivalent of two cups of broccoli. Immediately adjacent to it on the serving table is a giant bowl of some kind of liquified cheese. Now, the broccoli alone is less than 100 calories, but if you decide to drown it in cheese, you shoot the calories through the roof, not to mention the glob of bad fats you are putting into your system.
Next, was sweet corn. I had two half ears that were wonderful.
I enjoyed the cinnamon-sugar topping on the oatmeal so much that I had a second bowl for dessert, along with an apple.
The two bowls of oatmeal amounted to just over 300 calories, the catfish which I estimated at 6 ounces was another 250. (I scrape off the breading) The sweet corn amounted to 180 calories and the apple just under 100 calories.
I would be willing to bet that I ate less than 90% of the folks at the buffet, yet I still consumed a total of 930 calories. That is almost half my 2100 calorie budget for the day. I left the buffet satisfied and comfortable.
Must confess that one of my favorites on this particular buffet is their apple cobbler which is warm and melts in your mouth. I didn't have any on this trip because the weather here had been bad and I feared I would not be able to ride the bike and burn off the 300 odd calories from it.


Don died peacefully, surrounded by his family and friends, at Coming Home Hospice.
Don attended Mary E. Bennett School for the Deaf, Riverside School for the Deaf and Gallaudet College for the Deaf in Washington, D.C.
After his first bout with Pneumocystis in 1987, he was unable to continue his career as a typographer, but he continued to be an active volunteer in the deaf community, helping others to cope with AIDS.
He is survived by his loving family in Southern California: his parents, Mr. and Mrs. A.E. Wilkey; and his sisters, Donna Hamil and Barbara Robinson.
All of us who knew Don will never forget his dedication to taking care of our friend Lou Jemas. We will all miss his sense of humor and his treasured friendship. We love you Don.
The deaf community has lost its sign language interpreter, Jay Wilson, to AIDS complications. Born in Akron, Ohio, to deaf parents, Jay had been very active in this community, as well as a member of the Rainbow Society for the Deaf. He moved to San Francisco in 1978.
Jay was a founding member and on the board of the Deaf Community AIDS Project (DCAP). At every major event like the Gay and Lesbian Freedom Day Parade or the annual AIDS Candlelight March, Jay stood onstage and signed to the deaf.
A funeral Mass was held at Mission Dolores Basilica, and he was buried in the Colma Cemetery. Surviving are his parents, Clyde and Nellie Wilson; sisters, Priscilla Metzler and Gloria Roberts; brothers, Jerry and Windsor Wilson; nephews, Travis, Derrick and Jeremy; nieces, Nicole and Jacqueline; two dearest friends, John and Helen; and the others Jay shared his friendship with.
The memorial service will be at San Francisco Club, 530 Valencia St., SF, on Saturday, June 22, 1-5 p.m. For information about the memorial service, please call the California Relay Service (800/735-2922) or James at 510/261-9876 TDD or John at 415/323-0402 TDD.
Constante was a very good person who got along with everyone. He loved to dance and was very talented. We all looked up to him and his love of dance, he was deaf and could out dance all of us.
Ronald died in Connecticut after living in Seattle for many years.
If anyone has an obituary or additional information about Ronald, please submit it. If you knew Ronald, please consider sharing a memory about him in the comments area below.
Rosie Lanier Rodriquez was born on January 16, 1969, in Ft. Worth, Texas. Her parents were of Black, French, and White ancestry. She was assigned male at birth and given the name Marvin Earl Wilson.
In September 1996, while living in San Francisco, Rosie made one of her biggest dreams come true and began her transition from male to female. She no longer felt trapped in the wrong body. She also legally changed her name to Rosie Lanier Rodriguez.
Rosie was outgoing, enthusiastic, well educated and always up for an adventure. She loved art, cooking, gymnastics, and was a fierce advocate for the Deaf community.
Rosie also enjoyed performing (especially lip syncing) and performed at the 1994 Miss Gay Texas and 2004 Miss Deaf California Leather contests.
Rosie was the inspiration to us all. She was always full of laughter, life, happiness, and gave us new perspectives and an appreciation for the world of comedy. She departed from this Earth on July 20, 2006 and is dearly missed.
Greg Smith was a dear friend of mine, and beloved by many in the Deaf and Interpreter communities. Greg was funny, charming and extraordinarily bright, had a great interest in languages and linguistics, and a passion for Russian Literature and language which pre-dated his exposure to ASL.
He learned American Sign Language as a result of his relationship with his Deaf partner, and eventually become a skilled ASL/English Interpreter. At a time when there were few formal Interpreter Training Programs, Greg was committed to continually growing and learning as an Interpreter through his active involvement in Northern California Registry of Interpreters for the Deaf (NorCRID), and by taking classes and workshops that were offered in the community.
Like many of us who came into the field in the late 70's and early 80's, Greg was deeply involved in the social justice movements and the fight for civil rights in the Deaf Community, the LGBT Community and for people with disabilities. He often volunteered as an Interpreter at rallies and meetings, and was a participant in activities and gatherings sponsored by the Rainbow Deaf Society, the original SF Bay Area Deaf LGBT organization.
Greg was a Staff Interpreter at Laney College, Cal State University at Hayward (now East Bay), and at the Center for Independent Living and also worked as a freelance community Interpreter.
Greg was one of the first people in our community to be diagnosed with AIDS. Although treatment and medication has come a remarkably long way in the ensuing decades, in the early and mid-1980's, AIDS often resulted in severe illness, debilitation and death. As Greg had been such an active participant in our community, many Interpreters and Deaf people were involved in providing support and care to Greg during the course of his illness.
One of the most remarkable periods I remember from that time was Greg being so ill he needed to be hospitalized in the ICU. Greg's pneumonia required him to be intubated and he was thus unable to speak. We organized a group of his Interpreter friends to be in the hospital at his side around the clock to interpret for Greg during the weeks he spent in the ICU. Although he could not speak, he was able to sign, and thus could communicate via Interpreters with his doctors and nurses in the ICU. Before their eyes he transformed from a non-communicative "patient", to a human being who was able to display his sharp wit, sense of humor and keen intelligence. Greg often said after this how grateful he was to have learned Sign Language.
Although there were many poignant moments with Greg during the period of his illness, the most touching was seeing the impact the support of his "beloved community" had on his family. His parents in particular were so moved by the outpouring of love and care to their son from Greg's friends and colleagues.
After a long and courageous battle with AIDS, Greg passed away in December of 1984. Interpreter colleagues, members of the Deaf Community, family and friends overflowed at Greg's memorial gathering. Although there was tremendous sadness at his passing, the memorial was indeed a celebration of Greg's life, and a joyous and at times uproariously funny testimony to the impact he had made on all of our lives.
As a tribute to Greg, NorCRID set up the Greg Smith Memorial Fund in 1985 to help NorCRID members during emergencies, particularly medical emergencies. Every year the money raised at the silent auction at the Annual NorCRID Conference goes to replenish this fund. I was so delighted and touched to see all of the work that went into this year's auction, and the money raised in tribute to Greg.
Best of all was seeing the picture of my beloved friend, a "twinkle in his eye", that wonderful face, his smile. Gone far too soon, my dear Greg, but you are still having an impact on our community.
Terry Lewis Mackin, Jr., was from Charlotte, North Carolina. He was born on December 6, 1981, and passed away in Los Angeles, California on October 11, 2008, at the age of 26 years, from pneumonia-related complications of HIV.
Terry is and will always be fondly remembered by many people, especially those who attended Rochester Institute of Technology from 2000 – 2008. He formed excellent friendships with many Deaf students there. Terry was always there to listen to them, and was there for a lot of the fun and memories. He was one of the most genuine human beings you would ever meet, who could easily make you smile and laugh. He could easily connect with anybody. He never had an enemy, and had in himself a sincere kindness toward all. He saw everything without the slightest malice or reproach. He was one of those rare people who loved people in general with an amazingly positive energy constantly emanating from him – always smiling, always rolling on in pursuit of interesting goals. At RIT, Terry was part of the dance group Flux Fusion, and entertained many with his excellent dancing skills. He graduated with a degree in Business Management in 2008 and departed for Los Angeles with aspirations to become a career dancer. It was briefly after his arrival in Los Angeles that he passed away suddenly. It is exceedingly unfortunate that he never reached his dream in Los Angeles. Many of his friends have expressed the consensus opinion that they were fortunate to have experienced him as a wonderfully positive force in their lives. Terry is deeply missed by those many friends.
Erwin W. Michaels was born on March 29, 1944 in Chicago, IL and died on September 2, 1990 in Madison, WI.
If anyone has an obituary or additional information about Erwin, please submit it. If you knew Erwin, please share a memory about him in the comments area below.
John was born to a Deaf family on August 10, 1948 in East Los Angeles. John was named in honor of his grandfather. His mother found the name Darcy in a book of names. John went to the Mary Bennett oral school in Los Angeles. When he was nine years old, he transferred to the Riverside School for the Deaf. He graduated from there in 1967.
John went to Gallaudet University for two years and then transferred to California State University at Northridge, where he received a BA degree in 1975. He then moved to San Francisco and attended San Francisco State University. In order to fulfill the university's foreign language requirement John traveled to Taiwan to study Chinese. In 1979 John received a master's degree in fine arts from San Francisco State and accepted a position as an American Sign Language instructor there.
John was an independent and extremely creative man. He truly was an artist. He explored many different philosophies in his life. He lived his life in the manner that he wanted to and didn't worry about what other people thought of him. John was very involved in the Deaf community and a strong supporter of ASL. He believed ASL should be left alone to its own development and not controlled by English.
In April of 1989, John was diagnosed as having progressive multifocal leukoencephalopathy (PML). True to his nature, John chose the way in which he would live the little time he had and remained strong spirited as the illness rapidly progressed. John left his body on May 19, 1989 at 3:05 AM. He was in his home, as he had wanted to be. His friends were close by. John had a great and rich life. Our lives will be fuller and brighter for having known him. John will continue to live on in our hearts.
Oh Saturday, August 12 at 12:00 John's friends will gather to sew a Names quilt in his honor. Please join us at 2362 Market St. (across from Castro). You may bring materials for the quilt or share what we collectively have. We are planning to go out to a local restaurant after we finish. We hope to see you there. If you cannot make it, please join us with your spirit.
Contributions may be made in John's name to the Rainbow Deaf Society. Please detach the bottom part of this form and use the enclosed envelope. Please make checks payable to Rainbow Deaf Society for CAP, and note that the contribution is made in John's honor.
Buzzy Contrerio was one of first Deaf people in the Washington, D.C., area to pass away to AIDS. This was around 1988. Buzzy's real first name was Leo. He was my neighbor and he loved to walk his tiny dog everyday. He graduated from Michigan School for the Deaf around 1968.


Yesterday was the deadline for the #mtt2k contest and I don't have an entry. All summer, I waffled back and forth about doing an entry. I'd have a great idea one evening, start working on it, but by morning I was second guessing myself and the whole idea of the contest in general. Then a conversation on Twitter would spark another idea, only to be discarded the next day. Wash, rinse, repeat.
There's a playlist of unlisted videos produced by KA's President and COO Shantanu Sinha that (I assume) is used in training teachers at KA pilot schools. One of the videos is about how to use class time effectively. In it, Mr. Sinha discusses how there's a misconception that KA is about kids sitting in front of computers, but that the real power of KA is that it frees up class time for activities and projects.
However, KA recently had a series of 6 promotional videos produced, each featuring a different pilot school. And in all of those videos, we see kids in front of computers, watching videos and working through exercises. Student-student and student-teacher interaction only happen when a kid has a question about a problem. The only project/activity work that is shown is just one small portion of one video with kids working on some kind of geometry activity with string and drinking straws.
My entry would be a mashup juxtaposing clips from the "effective use of class time" video and the KA promotional videos of kids with laptops. I understand that when the mainstream media does a piece about KA, they tend to focus on the videos and exercises, and that is out of the KA team's control. But if KA says they are really about freeing up the classroom, why do their own promotional videos show kids working through modules on laptops in class?
Khan has a video where he gives a tour of the KA exercise modules and discusses its "motivating" point/badge system. However, as the summer winds down, there have been a lot of students tweeting about their dissatisfaction about doing KA work. My entry would be a mashup juxtaposing video clips of Khan's exhalations with frustrated student tweets. I think this speaks volumes about our country's approach to math education and that some computer exercises aren't really helping. I've been collecting the student tweets in a Storify, which you can see here (warning: teenagers using very NSFW language).
Before #mtt2k, I was toying with doing a video series aimed at teachers called "How I Used To Teach." The purpose was to help teachers incorporate specific mulitiple representation approaches in physics, like motion graphs, energy bar charts, momentum bar charts, system schema, and color-coded circuit diagrams. For example, for a video about teaching kinematics, I would present a typical textbook problem and how I used to teach it — making a table of knowns and unknowns and then choosing the Big 5 equation that would solve the problem. Then I'd follow up with how I teach it now — drawing a velocity-time graph for the scenario and using slope and area relations to find the answer.
The #mtt2k connection here is that many of Khan's video are perfect examples of how I used to teach, particularly in my first 3 years. So my #mtt2k entry would start with Khan solving a problem the traditional way, and then I would follow-up with solving it the multiple representational way.
Another mashup of Khan explaining concepts like Hooke's Law and Newton's Third Law with clips of physics demos that beautifully illustrate them. These would also double as a criticism of Khan deferring to authority in his explanations, rather then deferring to experiment.
A story about kids struggling to eat gross school food (rotting vegetables, mystery meat, etc.) for lunch. In a Cat-in-the-Hat-like fashion, a man named Al magically appears to coach kids on how to eat, working through different disgusting entrees one at a time. Al also brings over 3,000 different sauces to put on the gross food. He even rewards kids who eat it with energy points and badges. Soon, schools across America are using Al's sauces and badges to transform cafeterias into serving "world-class lunches." In the end, it's a silly approach — the real solution is to serve better food. Swap Al for Sal and swap food for math and you see the crux of my argument.
And if you haven't heard, Khan Academy just released a series of interactive computer science modules. They look pretty cool (like this bouncing ball one) and I'm wondering if the platform could be used in my college-prep level physics course. So there's that.
UPDATE Aug 18, 2012: At the request of a friend, I've decided to post the video I created for the first idea above (Khan Academy Classroom Mashup). I don't narrate any commentary, but rather let the words and actions of KA speak for themselves.


text:
Harvard Youth Violence Prevention Center
Harvard T.H. Chan School of Public Health > Harvard Youth Violence Prevention Center > Training and Courses > Students
HYVPC Home
Boston Data Project
Boston Youth Survey
Violence Courses
News & Research 2009
News & Research Pre-2005
Injury Center
Past and Present HYVPC Mentees
I. Ten David Hemenway Doctoral Mentees, and Current Positions (June 2010)
Deborah Azrael, PhD, MS. Associate Director, Harvard Youth Violence Prevention Center
Johanna Birckmayer, PhD Program Director, Pacific Institute for Research and Evaluation, Calverton, MD
Ruth Browne, ScD, MPH, Executive Director, Arthur Ashe Institute for Urban Health, NYC, Assistant Clinical Professor, Department of Preventive Medicine, SUNY
Eli Capilouto, DDS, ScD. Provost, University of Alabama-Birmingham
Michele R. Decker, ScD. Assistant Professor, Johns Hopkins Bloomberg School of Public Health
Jhumka Gupta, ScD. Assistant Professor, Yale School of Public Health
Christian Koeck, MD, DrPh. Professor, University of Witten-Herdecke, Germany
Matthew Miller, MD, ScD, MPH, Associate Professor, Harvard School of Public Health
Emily Rothman, ScD. Associate Professor, Boston University School of Public Health
Sara Solnick, PhD. Associate Professor, Department Chair, University of Vermont
II. Alonzo Yerby Youth Violence Post Doctoral Fellows
Renee M. Johnson, PhD, MPH 2004-06
Research Associate, Harvard Injury Control Research Center
Assistant Professor, Boston University School of Public Health
Glendene Lemard, PhD 2004-06
Research Assistant Professor, Health Policy & Management, University of Mass., Amherst
Shairi Turner, MD, MPH 2002-04
Chief Medical Director, Florida Department of Juvenile Justice
III. 2008-2010 Students Mentored by HYVPC
Joanna Almeida, ScD, a recent graduate of HSPH and current postdoctoral fellow at Northeastern University, worked with Renee M. Johnson at HYVPC to write a paper on peer maltreatment based on sexual orientation, and with Matthew Miller on a paper about self-injury among immigrants. The former paper was published in the Journal of Youth & Adolescence, and the latter has been accepted for publication in Suicide & Life-Threatening Behavior. Dr. Almeida and Dr. Johnson recently submitted a manuscript about peer violence among immigrants, it is currently under review at the Journal of Interpersonal Violence.
Suchita Batwara, MD, MPH wrote her thesis on the relationship between acculturation, adult support, and violence perpetration among immigrants using BYS 2008 data.
Heather McCauley, ScM, was supported and mentored to coordinate a large RCT study of violence prevention in family planning clinics in northern California.
Dan Dao, a 2009 graduate of the MPH at Boston University School of Public Health, completed a research practicum at HYVPC, with Renee M. Johnson as his supervisor. He helped clean data from the Boston Youth Survey and prepare it for analysis. Mr. Dao is currently working as an injury epidemiologist at the Kansas Department of Health and Environment.
Michele Decker, ScD, MPH, was mentored towards independent research in the areas of violence and sex trade among adolescents. She is currently an Assistant Professor at the Johns Hopkins Bloomberg School of Public Health, in the Dept. of Population, Family, and Reproductive Health.
Dustin Duncan, a doctoral candidate at HSPH, recently published a paper examining the association between exposure to neighborhood violence and BMI in BMC Public Health under the direction of Dr. Renee M. Johnson. Dustin served as a research assistant with HYVPC; in this role he delineated boundaries of neighborhood clusters. This involved interviewing the HYVPC community partners and other neighborhood informants, showing them maps of their neighborhood and getting their opinions on where to draw sub-neighborhood boundaries. Finally, Mr. Duncan is using data from the BYS 2008 in his dissertation, which will investigate neighborhood social disorder and BMI.
Erin Dunn, a doctoral candidate at HSPH, has collaborated with Dr. Renee M. Johnson on several papers and publications addressing bullying and depressive symptoms among adolescents, using data from the BYS 2008. Along with Dr. Jennifer Greif Green and Dr. Johnson, Ms. Dunn has two papers that have been conditionally accepted for publication in the Journal of School Violence, and one that is under review at Prevention Science.
Jennifer Greif Green, PhD, is currently finishing up a post-doctoral fellowship at Harvard Medical School, Dept. of Health Care Policy. She has accepted a position as Assistant Professor at Boston University School of Education, and will begin in the fall. Dr. Green has worked collaboratively with Dr. Johnson and Ms. Erin Dunn on papers addressing bullying and depressive symptoms, using data from the BYS 2008. Dr. Green has two papers that have been conditionally accepted for publication in the Journal of School Violence (she is the first author on one and Dr. Renee M. Johnson is the first author on the other); she is also a co-author on a manuscript led by Ms. Erin Dunn that is under review at Prevention Science.
Jhumka Gupta, ScD, MPH, Assistant Professor, Yale School of Public Health, graduated in 2007 from Harvard School of Public Health. Although she is at Yale, Dr. Gupta still collaborates with HYVPC investigators on manuscripts using BYS 2008 data. Most recently, she contributed to a paper, led by Dr. Joanna Almeida, that addressed violence perpetration among immigrants. That manuscript is currently under review at the Journal of Interpersonal Violence.
Eleonora Jimenez, SM student was advised regarding her work on violence and HIV in Mexico.
Courtenay Kessler, SM student was advised by Dr. Molnar in the Society, Human Development and Health department. She is currently a research fellow with the Milwaukee Department of Public Health. She is still collaborating on a paper on the association between sexual violence and violent behavior among adolescents in Boston using the Boston Youth Survey data.
Katelyn Mack, SM student, was funded and mentored regarding participation in research on sex trafficking and violence against young girls in Managua, Nicaragua.
Mariah McNamara MD, MPH Department of Emergency Medicine University of Massachusetts. Although she completed her MPH at HSPH in 2008, Dr. McNamara still collaborates with HYVPC investigators on manuscripts using BYS 2008 data. Most recently, she contributed to a paper, led by Dr. Joanna Almeida,that addressed violence perpetration among immigrants. That manuscript is currently under review at the Journal of Interpersonal Violence.
Bernice Raveche, doctoral candidate in the Department of Society, Human Development and Health is being mentored by Dr. Miller. She is exploring the relationship between weight-based discrimination and suicide related outcomes by analyzing data from the BYS 2008.
Elizabeth Reed ScD, post-doctorate, was mentored in her initial independent research efforts in the area of adolescent dating violence.
Shagun Sabarwal, MS, ScD student was funded and advised regarding both qualitative and quantitative analyses of data from a study of violence and maternal/child health in Mumbai, India.
Mary-Mildred Stith, a 2008 graduate of the MS program in quantitative sciences at Columbia University, used BYS 2006 data in her master's thesis. In it, she examined the association between family communication and adolescent risk behaviors (including violence). Dr. Renee M. Johnson was a second reader on her thesis. She is in the process of applying to several graduate programs for psychology.
Nancy Street, a doctoral candidate at HSPH, is using data from the BYS 2008 to examine the association of insufficient sleep with BMI and perpetration of youth violence.
Heather Zaykowski, a graduate student pursing a Ph.D. in criminology at the University of Delaware, used the BYS data for a paper on social disorganization presented at the American Society of Criminology, and possibly for her dissertation.
IV. Students who HYVPC recruited to work with our Community Partners (since 2005)
Dr. Adedeji Adeleke (HSPH practicum student)
Dr. Jacqueline A Mcleod (HSPH practicum student)
Debra Keller (HSPH practicum student)
Melissa Murrin (HSPH practicum student)
Marta Ramirez Gaite (HSPH practicum student)
Brianna Wadler (HSPH practicum student)
News from the School
Epstein-Barr virus may be leading cause of multiple sclerosis
Higher olive oil consumption linked with lower risk of premature death
Racial, ethnic minorities and low-income groups in U.S. exposed to higher levels of air pollution
Gauging global flourishing


Free Home Value Evaluation. Free to use. I respect your privacy.
Please explore my website. If you would like to see a home in person or to discuss your home's value, please give me a call today or text at 512-229-8055.


Our 4-year-old son is now six months into the ten month Yamaha Music Canada School piano program at the Tom Lee Music Learning Centre in downtown Vancouver. At this point we have transitioned to using both hands to play simultaneously on C major scale and we are working on simultaneous play on G major scale.
I am happy to report that in the last few weeks I have noticed a big positive change in our son's attitude towards piano practice. In the past I actually found it a bit difficult to set a practice routine at home as it was always me suggesting piano practice and him being somehow reluctant. Lately he has been the one suggesting piano practice and running towards the piano to play the songs.
Something else we are doing is practising every single day. I noticed that practising everyday really made a huge difference with his weekly progress and with creating a routine. He is more confident now and eager to practice and get better. I actually catch him singing the songs/notes while moving his fingers and playing on an imaginary piano at random times when we are in the car or waiting somewhere.
Practising everyday doesn't mean spending hours at the piano though, after all we are talking about a 4-year-old! Even short 5 minute practice sessions are great for us. We also play the DVDs and songs from the course, sing and dance along to them and just try to make it fun. He loves using the stickers from the back of the book once he has practiced a song playing both hands simultaneously as well. It's all about those little things.
Disclosure – I am participating in the Yamaha Music Canada Brand Ambassador program on behalf with Mom Central Canada. I received compensation as a thank you for participating and for sharing my honest opinion. The opinions on this blog are my own.
He's doing so well! I'm hoping our daughters will put their kidlets in piano lessons!
It's always great to hear when kids enjoy playing music, it certainly makes the experience more fun.
I loved the video. His fingers are obviously getting more flexible and, of course, he looks to you for approval. He obviously enjoys his playing and I agree with you that, at his tender age, five minutes is a long time. I have had several grandchildren take music lessons and it is a wonderful skill to have, both for yourself, and to entertain others.
I'm glad to hear he's enjoying it!


text:
No. 505 is first of season; third for female angler
by: Larry D. Hodge, TPWD,
Bobbie Gayle of Millersview caught her third career Toyota ShareLunker from O.H. Ivie Reservoir December 15. The fish weighed 14 pounds and was 25.5 inches long and 21.5 inches in girth.
Photo by TPWD Photo ? 2010, David Campbell
(Dec. 17, 2010 - Athens, TX) Bobbie Gayle of Millersview joined a very exclusive club December 15 when she caught Toyota ShareLunker 505 from O.H. Ivie Reservoir.
The fish was Gayle's third entry into the ShareLunker program, making her one of only five anglers to have achieved that distinction.
O.H. Ivie continued its remarkable run of Toyota ShareLunkers. Last season the West Texas lake produced 11 entries, including two on the last day of the season.
Gayle's fish weighed 14 pounds and was 25.5 inches long and 21.5 inches in girth. Gayle caught it in 16 feet of 52-degree water at 3:00 p.m. using a perch. The fish was weighed at Elm Creek Village, an official Toyota ShareLunker weigh and holding station.
Other anglers who have caught three ShareLunkers include Roy Greer, Bill Lozano and Richard McCarty. One angler, Jim Gore, has four fish entered in to the program, but one was a male fish weighing 6.5 pounds. All other entries into the program have been females.
Anyone legally catching a 13-pound or bigger largemouth bass from Texas waters, public or private, between October 1 and April 30 may submit the fish to the Toyota ShareLunker program by calling program manager David Campbell at (903) 681-0550 or paging him at (888) 784-0600 and leaving a phone number including area code. Fish will be picked up by TPWD personnel within 12 hours.
ShareLunker entries are used in a selective breeding program at the Texas Freshwater Fisheries Center (TFFC) in Athens. Some of the offspring from these fish are stocked back into the water body from which they were caught. Other ShareLunker offspring are stocked in public waters around the state in an attempt to increase the overall size and growth rate of largemouth bass in Texas.
Anglers entering fish into the Toyota ShareLunker program will receive a free replica of their fish, a certificate and ShareLunker clothing and be recognized at a banquet at the Texas Freshwater Fisheries Center in Athens. In addition, if a Texas angler catches the largest entry of the year, that person will receive a lifetime fishing license.
For complete information and rules of the ShareLunker program, tips on caring for big bass and a recap of last year's season, see tpwd.state.tx.us/sharelunker. The site also includes a searchable database of all fish entered into the program along with pictures where available.
Information on current catches, including short videos of interviews with anglers, is posted on facebook.com/sharelunkerprogram.
The Toyota ShareLunker Program is made possible by a grant to the Texas Parks & Wildlife Foundation from Gulf States Toyota. Toyota is a long-time supporter of the Foundation and Texas Parks and Wildlife Department, providing major funding for a wide variety of education, fish, parks and wildlife projects.


text:
Stocks to Watch: TCS, HDFC, ONGC, JSW Steel, Paytm, Tata Motors | Mint – Mint
Tata Consultancy Services: Tata Consultancy Services Ltd (TCS) on Monday reported a lower-than-expected 11% increase in fiscal third-quarter profit as customers tightened spending amid mounting concern about a worldwide economic recession. Net profit rose to ₹10,846 crore in the quarter ended 31 December from ₹9,769 crore a year earlier, the company said in a statement. The company also announced a dividend and special interim dividend of ₹75 per equity share for fiscal FY23.
HDFC Ltd: HDFC-backed HDFC Capital on Monday garnered $376 million from investors for scheme 2 of the HDFC Capital Affordable Real Estate Fund–3 (H-CARE 3). The latest fundraising has created a $3.1 billion platform for affordable housing. H-CARE 3 will provide long-term, flexible funding across the lifecycle of affordable and mid-income housing projects including early-stage funding. Additionally, in its statement, the company said, H-CARE 3 will also invest in technology companies (construction technology, fin-tech, sustainability-tech, etc.) engaged in the affordable housing ecosystem.
ONGC: Oil and Natural Gas (ONGC) overseas arm, ONGC Videsh Ltd, has re-taken a 20% stake in the Sakhalin-1 oil and gas fields in the far east region of Russia, said an official on Monday. Russian President Vladimir Putin in October last year disbanded Exxon Neftegaz, a regional subsidiary of US super major ExxonMobil, as operator of the Sakhalin-1 and transferred the project and all of its assets and equipment to a new operator. OVL applied and has been given the same shareholding as it had previously, the official said.
JSW Steel: India's second-largest private sector steel producer, JSW Steel recorded a combined crude steel production of t 6.24 million tonnes in the third quarter of FY23, rising by 17% year-on-year. Sequentially, the growth was around 10%. For the nine months period of FY23, the combined steel production is up by 15% year-on-year. During Q3FY23, the JSW Group flagship company posted a combined volume of 6.24 million tonnes versus 5.35 million tonnes in Q3FY22 and 5.68 million tonnes in Q2FY23.
Sona Blw Precision Forgings: Auto component maker Sona BLW Precision Forgings (Sona Comstar) on Monday said it will acquire a 54% stake in Serbia-based Novelic for 40.5 million euro (around ₹356 crore) enabling it to foray into the advanced driver assistance systems sensor market. In a regulatory filing, the company said it has inked an agreement to acquire a stake in the firm, which is a leading provider of mmWave radar sensors, perception solutions and full-stack embedded systems.
Paytm: Paytm, India's digital payments and financial services company, saw a four-fold jump in loan disbursals in December 2022, and the average monthly transacting number of users soared. According to a regulatory filing, One97 Communications Ltd, which operates Paytm, disbursed 3.7 million loans worth ₹3,665 crore in December, up 330 per cent year-on-year. "As a result, total disbursements for three months ended December 2022 was ₹9,958 crore, a growth of 357 per cent y-o-y," it said.
Tata Motors: Jaguar Land Rover (JLR) on Monday forecasted free cash flow for the third quarter at more than 400 million pounds ($485 million), after reporting a 15% rise in wholesale volumes for the period on strong demand and improved chip supply. The British automaker, in its earnings statement for the second quarter, had forecast a positive cash flow for the second half of the fiscal year 2023 and "near breakeven" for the full year. Tata Motors, which acquired JLR in 2008, had earlier set a target of 1 billion pounds of free cash flow for the fiscal year.
PVR: Multiplex operator PVR aims to operate 1,000 screens by the end of FY24, by adding 100 more screens in the next 15 months, the company's Joint Managing Director Sanjeev Kumar Bijli said. The company, which on Monday achieved the milestone of 900 screens, would invest around ₹300 crore to add another 100 screens, Bijli said. As part of the expansion, the company is entering into newer cities, especially in the south and east parts of the country, where it has a negligible presence.
IDBI Bank: The Central Government has received interest from both domestic and foreign investors to acquire a majority stake in IDBI Bank in the first such transaction in the banking sector. The government aims to complete the disinvestment process in IDBI Bank within the first half of the next financial year, said DIPAM secretary Tuhin Kanta Pandey. "We hope to conclude IDBI Bank sale by the first half of the next financial year," Pandey said. On Saturday, the government said it has received multiple preliminary bids for the strategic sale of about 61% stake in IDBI Bank.
Bandhan Bank: The collection efficiency ratio of private lender Bandhan Bank increased to 98 per cent at the end of December 2022 from 95 per cent at the end of the second quarter. An initial disclosure statement by the bank said that the ratio for micro-credit loans was 98 per cent at the end of December 2022, while for non-MFI loans, it was 99 per cent. Loans and advances of the bank at the end of December 2022 stood at 1,00,520 crore, registering a growth of 14 per cent year-on-year.
Published in News, Real Estate and Technology
Adani Group to release detailed reply on Hindenburg report post-FPO: Report – Moneycontrol
Exclusive: India's Adani says $2.5 billion share sale on track even as bankers mull changes – Reuters India
More from Real EstateMore posts in Real Estate »
DLF plans to launch ₹7,500 crore worth premium housing project in Gurugram – BusinessLine
View: What Adani short seller Hindenburg can learn from Elliott – Economic Times
Billionaire Gautam Adani loses over ₹48,000 crore in net worth in a day after Hindenburg report | Mint – Mint
Buzzing Stocks: Tata Motors, Bharti Airtel, Pidilite Industries, and others in news today – Moneycontrol
On India replacing China in influencing global economic growth, Raghuram says… – Hindustan Times


It struck me last night that I've had three fairly solid weeks on the bike and that this was shaping to be another.
The numbers I put together to guide myself each month don't allow for a slightly easy week to get back ahead of the recovery curve. As such I'm going to take the last week of each month a little easier, a little diligence should mean I'll still make my monthly totals.


text:
package org.ovirt.engine.api.resource;

import javax.ws.rs.GET;
import javax.ws.rs.Produces;

import org.ovirt.engine.api.model.VersionCaps;

@Produces({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON})
public interface CapabiliyResource {

    @GET
    public VersionCaps get();
}


Apropos academic perversity and the absolute bourgeois.
Struth's portraits, his best work, aren't perverse at all but humane in expressing an honest conservatism, slightly sad, with no pretense of radicality except in the sense perhaps that honestly is radical. Although he sees behind poses and postures he renders his subjects' humanity, not just their function, and this has the effect of humanizing the status quo. He's as respectful of his subjects as they are of themselves and most often they return that respect; even the arrogant ones express pride partly at being photographed. At the very least they return a gaze. A few show both arrogance and feigned indifference and these works suffer from a lack of cooperation, literally of communication and thus collaboration. The subjects look as if at themselves in a mirror. Most of these are Americans.
There's a control-freak quality to Clark's language and to Wall's photo-constructions; it began to bother me first in Clark. Both claim to represent the world, as we all do in our speech, but there's a hyper-determinism that's not so much conservative as brilliantly reactionary [a few years ago I would never have thought of linking those two words] in the sense that hypocrisy is reactive. But maybe it's just a contradiction heightened to the point of an electric buzz. Struth is less conflicted: he's warmer. I began to feel aware of this, and that I was beginning to tire of pure contradiction as a theme, only in the past few years. I've always hated Borges as an illustrator and a fascist, but I need to read Nabokov. I've read enough of him to recognize crystalline language but in the context of the literary academy it's a form of art. I've always hated conceptualism, but there is such a thing as the poetry of ideas. I'm growing tired of that, just as I've begun to realize that it's always been my major interest.


Beautiful and complex, the Neuron could be called the foundation of all human thought and action. You possess from 86 billion to 100 billion of them (depending who you ask). Now you can have one more. This pendant encases an archival-quality print of a pyramidal neuron (photo by MethoxyRoxy, design CC 2.5 licensed) under a 1 inch glass dome. The reflection of the dome gives it a three-dimensional feel, as if the neuron extends beyond the confines of the pendant. The metal in the pendant is a lead-free, nickel-free alloy, and it comes with an 18 inch steel snake chain.
Birthday gift for my sister who is a neurologist!


Poster designed by Mitch Dolan.
Bearacuda is the upcoming horror short from Vulgar Films and stars Brandy Mason.
It will be a comical approach to the bigfoot films of the 70s.
Stills and trailer will be available once filming is finished.