text:
HomeReversal of Obama Administration's Land Grabs in Utah
Reversal of Obama Administration's Land Grabs in Utah
February 20, 2020 February 10, 2020 usissuescom Energy Policy, RegulationBLM, Coal, Gas, Land, National Monuments, Oil, Utah
Re-Blogged From Liberty Headlines
'Any suggestion that these lands and resources will be adversely impacted…is simply not true…'
The U.S. government implemented final management plans Thursday for two national monuments in Utah that President Donald Trump restored to their original size more than two years ago, that ensure lands previously off-limits to energy development will be open to mining and drilling despite pending lawsuits.
The lands have generated little interest from energy companies in the two years since President Donald Trump cut the size of Bears Ears National Monument by 85% and Grand Staircase-Escalante National Monument by nearly half, said Casey Hammond, acting Assistant Secretary for Land and Minerals Management with the U. S. Department of the Interior.
AP Photo: "Moonhouse" in McLoyd Canyon.
Hammond said the department had a duty to work on the management plans after Trump signed his proclamations in December 2017, despite the pending lawsuits by conservation, tribal and paleontology groups aiming to restore the monuments to their original sizes.
"If we stopped and waited for every piece of litigation to be resolved we would never be able to do much of anything around here," he said.
Environmental pressure groups, that have called the decision the largest elimination of protected land in American history, criticized the administration on Thursday for spending time on management plans they believe will become moot. They contend Trump misused the Antiquities Act to reverse decisions by previous presidents.
A federal judge last year rejected the administration's bid to dismiss the lawsuits. In a recent court filing, tribal groups said the Bears Ears lands are "a living and vital place where ancestors passed from one world to the next, often leaving their mark in petroglyphs or painted handprints, and where modern day tribal members can still visit them."
It's unknown how long it will take before a judge rules on lawsuits that were filed two years ago.
"It's the height of arrogance for Trump to rush through final decisions on what's left of Bears Ears and Grand Staircase Escalante while we're fighting his illegal evisceration of these national monuments in court," said Randi Spivak, public lands director at the Center for Biological Diversity. "Trump is eroding vital protections for these spectacular landscapes. We won't rest until all of these public lands are safeguarded for future generations."
President Bill Clinton created the Grand Staircase-Escalante National Monument in 1996 on lands home to cliffs, canyons, waterfalls and arches in southern Utah. President Barack Obama created Bears Ears National Monument in 2016 on a swath of southern Utah with red rock plateaus, cliffs and ancient ruins on land considered sacred to tribes.
An economic analysis by the U.S. government estimates coal production could lead to $208 million in annual revenues and $16.6 million in royalties on lands cut from Grand Staircase. Oil and gas wells in that area could produce $4.1 million in annual revenues, the analysis says.
If interest comes as energy market forces shift, Hammond said the lands cut remain under federal control and governed by "time-tested laws" and subject to environmental regulations. He rebuffed the oft-repeated claim from conservation groups that there would be a "free-for-all" for mineral development.
"Any suggestion that these lands and resources will be adversely impacted by the mere act of being excluded from the monuments is simply not true," Hammond said.
Trump cut the size monuments following review of 27 national monuments by then-Interior Secretary Ryan Zinke. He recommended shrinking two other monuments as well, but Trump has yet to take action.
Trump said he scaled back the size of the monuments to reverse misuse of the Antiquities Act by previous Democratic presidents that he said led to oversized monuments that hinder energy development, grazing and other uses.
The move earned cheers from Republican leaders in Utah including former U.S. Sen. Orrin Hatch and current Gov. Gary Herbert.
U.S. Sen. Mitt Romney of Utah also offered praise to the Trump administration for moving ahead with the plans, one day after he earned the ire of the GOP and Trump by voting to convict the president in the impeachment trial.
"I appreciate the work that the president and Secretary Bernhardt have done with our state to develop plans that will allow more of our land to be used for recreation, grazing, and management practices," Romney said in a statement.
The Bureau of Land Management posted online the voluminous and detailed management plans for the monuments, and also created a "Myth vs Fact" web page about Bears Ears, in which it clarifies that no extraction or commercial logging is allowed within the changed boundaries.
The agency says it received about 250,500 comments about the plans, most of which were dismissed because they dealt with the size reduction, legality of that move or timing of the planning effort. Of the comments, the agency said four included valid protests that led to changes in the final plan.
← JPMorgan Chase Confirmed as Target of Metals Price Rigging Prosecution


Working under the supervision of the Head of Information Systems, will lead software development efforts to build and interconnect open source, commercial, and locally developed software systems that drive digital projects in the Research Institute. Work will center around repository development, ingest services, web services and middleware, user interface design and implementation, digital archiving and preservation, and metasearch issues.
Position will lead a small focused team of programmers in all phases of digital library project development, implementation, and support. Works with internal Getty staff, external open source community, and vendor support staff in a team based approach. Leads in the design and implementation efforts on database and user interface work for digital library projects; participates in committees and working groups to analyze and determine manual and automated workflow practices and procedures; and writes programs in Java, Perl, XSL, PHP, and other languages in support of digital library project implementation efforts.
Position requires a service oriented individual with the ability to work both independently under minimal supervision and as a member of a larger team. Excellent management and mentoring skills are required. Excellent customer relation skills, as well as the ability to accurately diagnose problems and convey/communicate information to staff and external sources are required.
Technical requirements include: Programming expertise in a variety of languages, e.g., Java, C#, C++, Perl, XML/XSL, PHP, etc., and unix shell languages; experience with relational, XML, and/or text based database systems; experience with implementing open source programs and tools; experience using unix (or linux) from the shell prompt; experience with HTML, web user interface design and web development tools; SQL knowledge; MS-Windows knowledge; excellent oral and written communication skills.
Desirable qualities include: MLS/MLIS/MIS degree or equivalent; familiarity with library automated systems and library workflows and practices; experience with multi-lingual content and database support of Unicode and/or UTF-8; knowledge of additional western European language(s); ability and interest in obtaining additional technical skills.
Please send resume and cover letter to The J. Paul Getty Trust, Attn: Human Resources/KK, 1200 Getty Center Drive, Suite 400, Los Angeles, CA 90049. Fax resume to (310) 440-7720 or email jobs@getty.edu indicating "KK-TS 2388" in the subject line. EOE.


For Ladies Who Like to Lunch!
Got a special girls day out planned? Need somewhere to lunch? We have just the thing for you. Every Saturday and Sunday between 12pm & 3pm Steersons Steakhouse will be offering ladies who like to lunch a Hendricks Tea Party for only $49pp. With a beautiful waterside location, contemporary open plan dining and fabulous food it really is the perfect place to enjoy your girls day out.


text:
namespace chromeos {

namespace {

const char kErrorNotActive[] = "IME is not active";
const char kErrorWrongContext[] = "Context is not active";
const char kCandidateNotFound[] = "Candidate not found";

// Notifies InputContextHandler that the composition is changed.
void UpdateComposition(const CompositionText& composition_text,
                       uint32 cursor_pos,
                       bool is_visible) {
  IMEInputContextHandlerInterface* input_context =
      IMEBridge::Get()->GetInputContextHandler();
  if (input_context)
    input_context->UpdateCompositionText(
        composition_text, cursor_pos, is_visible);
}

// Returns the length of characters of a UTF-8 string with unknown string
// length. Cannot apply faster algorithm to count characters in an utf-8
// string without knowing the string length,  so just does a full scan.
size_t GetUtf8StringLength(const char* s) {
  size_t ret = 0;
  while (*s) {
    if ((*s & 0xC0) != 0x80)
      ret++;
    ++s;
  }
  return ret;
}

std::string GetKeyFromEvent(const ui::KeyEvent& event) {
  const std::string code = event.GetCodeString();
  if (base::StartsWith(code, "Control", base::CompareCase::SENSITIVE))
    return "Ctrl";
  if (base::StartsWith(code, "Shift", base::CompareCase::SENSITIVE))
    return "Shift";
  if (base::StartsWith(code, "Alt", base::CompareCase::SENSITIVE))
    return "Alt";
  if (base::StartsWith(code, "Arrow", base::CompareCase::SENSITIVE))
    return code.substr(5);
  if (code == "Escape")
    return "Esc";
  if (code == "Backspace" || code == "Tab" ||
      code == "Enter" || code == "CapsLock" ||
      code == "Power")
    return code;
  // Cases for media keys.
  switch (event.key_code()) {
    case ui::VKEY_BROWSER_BACK:
    case ui::VKEY_F1:
      return "HistoryBack";
    case ui::VKEY_BROWSER_FORWARD:
    case ui::VKEY_F2:
      return "HistoryForward";
    case ui::VKEY_BROWSER_REFRESH:
    case ui::VKEY_F3:
      return "BrowserRefresh";
    case ui::VKEY_MEDIA_LAUNCH_APP2:
    case ui::VKEY_F4:
      return "ChromeOSFullscreen";
    case ui::VKEY_MEDIA_LAUNCH_APP1:
    case ui::VKEY_F5:
      return "ChromeOSSwitchWindow";
    case ui::VKEY_BRIGHTNESS_DOWN:
    case ui::VKEY_F6:
      return "BrightnessDown";
    case ui::VKEY_BRIGHTNESS_UP:
    case ui::VKEY_F7:
      return "BrightnessUp";
    case ui::VKEY_VOLUME_MUTE:
    case ui::VKEY_F8:
      return "AudioVolumeMute";
    case ui::VKEY_VOLUME_DOWN:
    case ui::VKEY_F9:
      return "AudioVolumeDown";
    case ui::VKEY_VOLUME_UP:
    case ui::VKEY_F10:
      return "AudioVolumeUp";
    default:
      break;
  }
  uint16 ch = 0;
  // Ctrl+? cases, gets key value for Ctrl is not down.
  if (event.flags() & ui::EF_CONTROL_DOWN) {
    ui::KeyEvent event_no_ctrl(event.type(),
                               event.key_code(),
                               event.flags() ^ ui::EF_CONTROL_DOWN);
    ch = event_no_ctrl.GetCharacter();
  } else {
    ch = event.GetCharacter();
  }
  return base::UTF16ToUTF8(base::string16(1, ch));
}

void GetExtensionKeyboardEventFromKeyEvent(
    const ui::KeyEvent& event,
    InputMethodEngine::KeyboardEvent* ext_event) {
  DCHECK(event.type() == ui::ET_KEY_RELEASED ||
         event.type() == ui::ET_KEY_PRESSED);
  DCHECK(ext_event);
  ext_event->type = (event.type() == ui::ET_KEY_RELEASED) ? "keyup" : "keydown";

  if (event.code() == ui::DomCode::NONE)
    ext_event->code = ui::KeyboardCodeToDomKeycode(event.key_code());
  else
    ext_event->code = event.GetCodeString();
  ext_event->key_code = static_cast<int>(event.key_code());
  ext_event->alt_key = event.IsAltDown();
  ext_event->ctrl_key = event.IsControlDown();
  ext_event->shift_key = event.IsShiftDown();
  ext_event->caps_lock = event.IsCapsLockDown();
  ext_event->key = GetKeyFromEvent(event);
}

}  // namespace

InputMethodEngine::InputMethodEngine()
    : current_input_type_(ui::TEXT_INPUT_TYPE_NONE),
      context_id_(0),
      next_context_id_(1),
      composition_text_(new CompositionText()),
      composition_cursor_(0),
      candidate_window_(new ui::CandidateWindow()),
      window_visible_(false),
      sent_key_event_(NULL),
      profile_(NULL) {
}

InputMethodEngine::~InputMethodEngine() {
}

void InputMethodEngine::Initialize(
    scoped_ptr<InputMethodEngineInterface::Observer> observer,
    const char* extension_id,
    Profile* profile) {
  DCHECK(observer) << "Observer must not be null.";

  // TODO(komatsu): It is probably better to set observer out of Initialize.
  observer_ = observer.Pass();
  extension_id_ = extension_id;
  profile_ = profile;
}

const std::string& InputMethodEngine::GetActiveComponentId() const {
  return active_component_id_;
}

bool InputMethodEngine::SetComposition(
    int context_id,
    const char* text,
    int selection_start,
    int selection_end,
    int cursor,
    const std::vector<SegmentInfo>& segments,
    std::string* error) {
  if (!IsActive()) {
    *error = kErrorNotActive;
    return false;
  }
  if (context_id != context_id_ || context_id_ == -1) {
    *error = kErrorWrongContext;
    return false;
  }

  composition_cursor_ = cursor;
  composition_text_.reset(new CompositionText());
  composition_text_->set_text(base::UTF8ToUTF16(text));

  composition_text_->set_selection_start(selection_start);
  composition_text_->set_selection_end(selection_end);

  // TODO: Add support for displaying selected text in the composition string.
  for (std::vector<SegmentInfo>::const_iterator segment = segments.begin();
       segment != segments.end(); ++segment) {
    CompositionText::UnderlineAttribute underline;

    switch (segment->style) {
      case SEGMENT_STYLE_UNDERLINE:
        underline.type = CompositionText::COMPOSITION_TEXT_UNDERLINE_SINGLE;
        break;
      case SEGMENT_STYLE_DOUBLE_UNDERLINE:
        underline.type = CompositionText::COMPOSITION_TEXT_UNDERLINE_DOUBLE;
        break;
      case SEGMENT_STYLE_NO_UNDERLINE:
        underline.type = CompositionText::COMPOSITION_TEXT_UNDERLINE_NONE;
        break;
      default:
        continue;
    }

    underline.start_index = segment->start;
    underline.end_index = segment->end;
    composition_text_->mutable_underline_attributes()->push_back(underline);
  }

  // TODO(nona): Makes focus out mode configuable, if necessary.
  UpdateComposition(*composition_text_, composition_cursor_, true);
  return true;
}

bool InputMethodEngine::ClearComposition(int context_id,
                                         std::string* error)  {
  if (!IsActive()) {
    *error = kErrorNotActive;
    return false;
  }
  if (context_id != context_id_ || context_id_ == -1) {
    *error = kErrorWrongContext;
    return false;
  }

  composition_cursor_ = 0;
  composition_text_.reset(new CompositionText());
  UpdateComposition(*composition_text_, composition_cursor_, false);
  return true;
}

bool InputMethodEngine::CommitText(int context_id, const char* text,
                                   std::string* error) {
  if (!IsActive()) {
    // TODO: Commit the text anyways.
    *error = kErrorNotActive;
    return false;
  }
  if (context_id != context_id_ || context_id_ == -1) {
    *error = kErrorWrongContext;
    return false;
  }

  IMEBridge::Get()->GetInputContextHandler()->CommitText(text);

  // Records histograms for committed characters.
  if (!composition_text_->text().empty()) {
    size_t len = GetUtf8StringLength(text);
    UMA_HISTOGRAM_CUSTOM_COUNTS("InputMethod.CommitLength",
                                len, 1, 25, 25);
    composition_text_.reset(new CompositionText());
  }
  return true;
}

bool InputMethodEngine::SendKeyEvents(
    int context_id,
    const std::vector<KeyboardEvent>& events) {
  if (!IsActive()) {
    return false;
  }
  // context_id  ==  0, means sending key events to non-input field.
  // context_id_ == -1, means the focus is not in an input field.
  if (context_id != 0 && (context_id != context_id_ || context_id_ == -1)) {
    return false;
  }

  ui::EventProcessor* dispatcher =
      ash::Shell::GetPrimaryRootWindow()->GetHost()->event_processor();

  for (size_t i = 0; i < events.size(); ++i) {
    const KeyboardEvent& event = events[i];
    const ui::EventType type =
        (event.type == "keyup") ? ui::ET_KEY_RELEASED : ui::ET_KEY_PRESSED;
    ui::KeyboardCode key_code = static_cast<ui::KeyboardCode>(event.key_code);
    if (key_code == ui::VKEY_UNKNOWN)
      key_code = ui::DomKeycodeToKeyboardCode(event.code);

    int flags = ui::EF_NONE;
    flags |= event.alt_key   ? ui::EF_ALT_DOWN       : ui::EF_NONE;
    flags |= event.ctrl_key  ? ui::EF_CONTROL_DOWN   : ui::EF_NONE;
    flags |= event.shift_key ? ui::EF_SHIFT_DOWN     : ui::EF_NONE;
    flags |= event.caps_lock ? ui::EF_CAPS_LOCK_DOWN : ui::EF_NONE;

    base::char16 ch = 0;
    // 4-bytes UTF-8 string is at least 2-characters UTF-16 string.
    // And Key char can only be single UTF-16 character.
    if (!event.key.empty() && event.key.size() < 4) {
      base::string16 key_char = base::UTF8ToUTF16(event.key);
      if (key_char.size() == 1)
        ch = key_char[0];
    }
    ui::KeyEvent ui_event(
        type, key_code,
        ui::KeycodeConverter::CodeStringToDomCode(event.code.c_str()), flags,
        ui::KeycodeConverter::KeyStringToDomKey(event.key.c_str()), ch,
        ui::EventTimeForNow());
    base::AutoReset<const ui::KeyEvent*> reset_sent_key(&sent_key_event_,
                                                        &ui_event);
    ui::EventDispatchDetails details = dispatcher->OnEventFromSource(&ui_event);
    if (details.dispatcher_destroyed)
      break;
  }

  return true;
}

const InputMethodEngine::CandidateWindowProperty&
InputMethodEngine::GetCandidateWindowProperty() const {
  return candidate_window_property_;
}

void InputMethodEngine::SetCandidateWindowProperty(
    const CandidateWindowProperty& property) {
  // Type conversion from InputMethodEngineInterface::CandidateWindowProperty to
  // CandidateWindow::CandidateWindowProperty defined in chromeos/ime/.
  ui::CandidateWindow::CandidateWindowProperty dest_property;
  dest_property.page_size = property.page_size;
  dest_property.is_cursor_visible = property.is_cursor_visible;
  dest_property.is_vertical = property.is_vertical;
  dest_property.show_window_at_composition =
      property.show_window_at_composition;
  dest_property.cursor_position =
      candidate_window_->GetProperty().cursor_position;
  dest_property.auxiliary_text = property.auxiliary_text;
  dest_property.is_auxiliary_text_visible = property.is_auxiliary_text_visible;

  candidate_window_->SetProperty(dest_property);
  candidate_window_property_ = property;

  if (IsActive()) {
    IMECandidateWindowHandlerInterface* cw_handler =
        IMEBridge::Get()->GetCandidateWindowHandler();
    if (cw_handler)
      cw_handler->UpdateLookupTable(*candidate_window_, window_visible_);
  }
}

bool InputMethodEngine::SetCandidateWindowVisible(bool visible,
                                                  std::string* error) {
  if (!IsActive()) {
    *error = kErrorNotActive;
    return false;
  }

  window_visible_ = visible;
  IMECandidateWindowHandlerInterface* cw_handler =
      IMEBridge::Get()->GetCandidateWindowHandler();
  if (cw_handler)
    cw_handler->UpdateLookupTable(*candidate_window_, window_visible_);
  return true;
}

bool InputMethodEngine::SetCandidates(
    int context_id,
    const std::vector<Candidate>& candidates,
    std::string* error) {
  if (!IsActive()) {
    *error = kErrorNotActive;
    return false;
  }
  if (context_id != context_id_ || context_id_ == -1) {
    *error = kErrorWrongContext;
    return false;
  }

  // TODO: Nested candidates
  candidate_ids_.clear();
  candidate_indexes_.clear();
  candidate_window_->mutable_candidates()->clear();
  for (std::vector<Candidate>::const_iterator ix = candidates.begin();
       ix != candidates.end(); ++ix) {
    ui::CandidateWindow::Entry entry;
    entry.value = base::UTF8ToUTF16(ix->value);
    entry.label = base::UTF8ToUTF16(ix->label);
    entry.annotation = base::UTF8ToUTF16(ix->annotation);
    entry.description_title = base::UTF8ToUTF16(ix->usage.title);
    entry.description_body = base::UTF8ToUTF16(ix->usage.body);

    // Store a mapping from the user defined ID to the candidate index.
    candidate_indexes_[ix->id] = candidate_ids_.size();
    candidate_ids_.push_back(ix->id);

    candidate_window_->mutable_candidates()->push_back(entry);
  }
  if (IsActive()) {
    IMECandidateWindowHandlerInterface* cw_handler =
        IMEBridge::Get()->GetCandidateWindowHandler();
    if (cw_handler)
      cw_handler->UpdateLookupTable(*candidate_window_, window_visible_);
  }
  return true;
}

bool InputMethodEngine::SetCursorPosition(int context_id, int candidate_id,
                                          std::string* error) {
  if (!IsActive()) {
    *error = kErrorNotActive;
    return false;
  }
  if (context_id != context_id_ || context_id_ == -1) {
    *error = kErrorWrongContext;
    return false;
  }

  std::map<int, int>::const_iterator position =
      candidate_indexes_.find(candidate_id);
  if (position == candidate_indexes_.end()) {
    *error = kCandidateNotFound;
    return false;
  }

  candidate_window_->set_cursor_position(position->second);
  IMECandidateWindowHandlerInterface* cw_handler =
      IMEBridge::Get()->GetCandidateWindowHandler();
  if (cw_handler)
    cw_handler->UpdateLookupTable(*candidate_window_, window_visible_);
  return true;
}

bool InputMethodEngine::SetMenuItems(const std::vector<MenuItem>& items) {
  return UpdateMenuItems(items);
}

bool InputMethodEngine::UpdateMenuItems(
    const std::vector<MenuItem>& items) {
  if (!IsActive())
    return false;

  ui::ime::InputMethodMenuItemList menu_item_list;
  for (std::vector<MenuItem>::const_iterator item = items.begin();
       item != items.end(); ++item) {
    ui::ime::InputMethodMenuItem property;
    MenuItemToProperty(*item, &property);
    menu_item_list.push_back(property);
  }

  ui::ime::InputMethodMenuManager::GetInstance()->
      SetCurrentInputMethodMenuItemList(
          menu_item_list);
  return true;
}

bool InputMethodEngine::IsActive() const {
  return !active_component_id_.empty();
}

bool InputMethodEngine::DeleteSurroundingText(int context_id,
                                              int offset,
                                              size_t number_of_chars,
                                              std::string* error) {
  if (!IsActive()) {
    *error = kErrorNotActive;
    return false;
  }
  if (context_id != context_id_ || context_id_ == -1) {
    *error = kErrorWrongContext;
    return false;
  }

  // TODO(nona): Return false if there is ongoing composition.

  IMEInputContextHandlerInterface* input_context =
      IMEBridge::Get()->GetInputContextHandler();
  if (input_context)
    input_context->DeleteSurroundingText(offset, number_of_chars);

  return true;
}

void InputMethodEngine::HideInputView() {
  keyboard::KeyboardController* keyboard_controller =
    keyboard::KeyboardController::GetInstance();
  if (keyboard_controller) {
    keyboard_controller->HideKeyboard(
        keyboard::KeyboardController::HIDE_REASON_MANUAL);
  }
}

void InputMethodEngine::SetCompositionBounds(
    const std::vector<gfx::Rect>& bounds) {
  if (!CheckProfile())
    return;
  observer_->OnCompositionBoundsChanged(bounds);
}

void InputMethodEngine::EnableInputView() {
  keyboard::SetOverrideContentUrl(input_method::InputMethodManager::Get()
                                      ->GetActiveIMEState()
                                      ->GetCurrentInputMethod()
                                      .input_view_url());
  keyboard::KeyboardController* keyboard_controller =
      keyboard::KeyboardController::GetInstance();
  if (keyboard_controller)
    keyboard_controller->Reload();
}

void InputMethodEngine::FocusIn(
    const IMEEngineHandlerInterface::InputContext& input_context) {
  if (!CheckProfile())
    return;
  current_input_type_ = input_context.type;

  if (!IsActive() || current_input_type_ == ui::TEXT_INPUT_TYPE_NONE)
    return;

  context_id_ = next_context_id_;
  ++next_context_id_;

  InputMethodEngineInterface::InputContext context;
  context.id = context_id_;
  switch (current_input_type_) {
    case ui::TEXT_INPUT_TYPE_SEARCH:
      context.type = "search";
      break;
    case ui::TEXT_INPUT_TYPE_TELEPHONE:
      context.type = "tel";
      break;
    case ui::TEXT_INPUT_TYPE_URL:
      context.type = "url";
      break;
    case ui::TEXT_INPUT_TYPE_EMAIL:
      context.type = "email";
      break;
    case ui::TEXT_INPUT_TYPE_NUMBER:
      context.type = "number";
      break;
    case ui::TEXT_INPUT_TYPE_PASSWORD:
      context.type = "password";
      break;
    default:
      context.type = "text";
      break;
  }

  context.auto_correct =
      !(input_context.flags & ui::TEXT_INPUT_FLAG_AUTOCORRECT_OFF);
  context.auto_complete =
      !(input_context.flags & ui::TEXT_INPUT_FLAG_AUTOCOMPLETE_OFF);
  context.spell_check =
      !(input_context.flags & ui::TEXT_INPUT_FLAG_SPELLCHECK_OFF);

  observer_->OnFocus(context);
}

void InputMethodEngine::FocusOut() {
  if (!CheckProfile())
    return;
  if (!IsActive() || current_input_type_ == ui::TEXT_INPUT_TYPE_NONE)
    return;

  current_input_type_ = ui::TEXT_INPUT_TYPE_NONE;

  int context_id = context_id_;
  context_id_ = -1;
  observer_->OnBlur(context_id);
}

void InputMethodEngine::Enable(const std::string& component_id) {
  if (!CheckProfile())
    return;
  DCHECK(!component_id.empty());
  active_component_id_ = component_id;
  observer_->OnActivate(component_id);
  const IMEEngineHandlerInterface::InputContext& input_context =
      IMEBridge::Get()->GetCurrentInputContext();
  current_input_type_ = input_context.type;
  FocusIn(input_context);
  EnableInputView();
}

void InputMethodEngine::Disable() {
  if (!CheckProfile())
    return;
  active_component_id_.clear();
  IMEBridge::Get()->GetInputContextHandler()->CommitText(
      base::UTF16ToUTF8(composition_text_->text()));
  observer_->OnDeactivated(active_component_id_);
}

void InputMethodEngine::PropertyActivate(const std::string& property_name) {
  if (!CheckProfile())
    return;
  observer_->OnMenuItemActivated(active_component_id_, property_name);
}

void InputMethodEngine::Reset() {
  if (!CheckProfile())
    return;
  composition_text_.reset(new CompositionText());
  observer_->OnReset(active_component_id_);
}

bool InputMethodEngine::IsInterestedInKeyEvent() const {
  return observer_->IsInterestedInKeyEvent();
}

void InputMethodEngine::ProcessKeyEvent(
    const ui::KeyEvent& key_event,
    const KeyEventDoneCallback& callback) {
  if (!CheckProfile())
    return;

  KeyEventDoneCallback* handler = new KeyEventDoneCallback();
  *handler = callback;

  KeyboardEvent ext_event;
  GetExtensionKeyboardEventFromKeyEvent(key_event, &ext_event);

  // If the given key event is equal to the key event sent by
  // SendKeyEvents, this engine ID is propagated to the extension IME.
  // Note, this check relies on that ui::KeyEvent is propagated as
  // reference without copying.
  if (&key_event == sent_key_event_)
    ext_event.extension_id = extension_id_;

  observer_->OnKeyEvent(
      active_component_id_,
      ext_event,
      reinterpret_cast<input_method::KeyEventHandle*>(handler));
}

void InputMethodEngine::CandidateClicked(uint32 index) {
  if (!CheckProfile())
    return;
  if (index > candidate_ids_.size()) {
    return;
  }

  // Only left button click is supported at this moment.
  observer_->OnCandidateClicked(
      active_component_id_, candidate_ids_.at(index), MOUSE_BUTTON_LEFT);
}

void InputMethodEngine::SetSurroundingText(const std::string& text,
                                           uint32 cursor_pos,
                                           uint32 anchor_pos,
                                           uint32 offset_pos) {
  if (!CheckProfile())
    return;
  observer_->OnSurroundingTextChanged(
      active_component_id_, text, static_cast<int>(cursor_pos),
      static_cast<int>(anchor_pos), static_cast<int>(offset_pos));
}

bool InputMethodEngine::CheckProfile() const {
  Profile* active_profile = ProfileManager::GetActiveUserProfile();
  return active_profile == profile_ || profile_->IsSameProfile(active_profile);
}

// TODO(uekawa): rename this method to a more reasonable name.
void InputMethodEngine::MenuItemToProperty(
    const MenuItem& item,
    ui::ime::InputMethodMenuItem* property) {
  property->key = item.id;

  if (item.modified & MENU_ITEM_MODIFIED_LABEL) {
    property->label = item.label;
  }
  if (item.modified & MENU_ITEM_MODIFIED_VISIBLE) {
    // TODO(nona): Implement it.
  }
  if (item.modified & MENU_ITEM_MODIFIED_CHECKED) {
    property->is_selection_item_checked = item.checked;
  }
  if (item.modified & MENU_ITEM_MODIFIED_ENABLED) {
    // TODO(nona): implement sensitive entry(crbug.com/140192).
  }
  if (item.modified & MENU_ITEM_MODIFIED_STYLE) {
    if (!item.children.empty()) {
      // TODO(nona): Implement it.
    } else {
      switch (item.style) {
        case MENU_ITEM_STYLE_NONE:
          NOTREACHED();
          break;
        case MENU_ITEM_STYLE_CHECK:
          // TODO(nona): Implement it.
          break;
        case MENU_ITEM_STYLE_RADIO:
          property->is_selection_item = true;
          break;
        case MENU_ITEM_STYLE_SEPARATOR:
          // TODO(nona): Implement it.
          break;
      }
    }
  }

  // TODO(nona): Support item.children.
}

}  // namespace chromeos

redpajama_set_name: RedPajamaGithub


Dr. Christina Scicluna is an advocate within GANADO Advocates' Corporate and Fintech teams. She advises a variety of multinational clients on international corporate structures, including the setting up of Maltese entities and redomiciliations of entities, M&A transactions and assisting clients on corporate governance matters. Christina has also been involved in the Fintech industry since 2017 and advises a number of clients on legal matters relating to Blockchain, virtual financial assets and distributed ledger technology projects.


text:
Germany joins commitment to end international oil, gas, coal finance, bringing total for potential finance shifted to USD 21.7 billion per year
November 9, 2021By LaurieBlog Post, News, Press Releases, Stop Funding Fossils
Laurie van der Burg, Oil Change International, laurie@priceofoil.org
Regine Richter, Urgewald (Germany), regine@urgewald.org
Anna-Lena Rebaud, Amis de la Terre (France), anna-lena.rebaud@amisdelaterre.org
Alexandra Goritz, Germanwatch e.V. (Germany), goritz@germanwatch.org
Germany joins commitment to end international oil, gas, and coal finance, bringing up figure for potential finance shifted to USD 21.7 billion a year
GLASGOW — Last Thursday on November 4, a group of countries and institutions committed to end international public finance for unabated oil, gas, and coal by the end of 2022 at the United Nations climate conference in Scotland (COP26). Yesterday the Netherlands joined the initiative and today Germany and El Salvador confirmed that they are joining too. This increases the number of signatories to 29 and the annual average of potential public finance shifted out of fossil fuels and into clean energy to at least USD 21.7 billion per year.
Today's announcement means that Germany's government-backed export finance (called Hermes Cover and administered by Euler Hermes Deutschland AG), the German development bank (KfW), and the German Investment and Development Corporation (DEG), jointly responsible for USD 2.8 billion a year in public finance for fossil fuels between 2018 and 2020, will need to end financing for fossil fuels by the end of 2022. This includes gas finance.
France has not yet signed the statement. If France does join, this would increase the potential amount of annual public finance directly shifted to USD 22.1 billion, an amount equal to 35% of annual public finance for fossil fuels provided by G20 countries and the Multilateral Development Banks (MDBs) between 2018 and 2020.
This would also help raise pressure on the countries that are lagging behind. Laggards include Japan ($10.9 bn/yr), Korea ($10.6 bn/yr), and China ($7.6 bn/yr), which are the largest providers of international public fossil fuel finance in the G20 and together account for 46% of G20 and MDB finance for fossil fuels. Spain, Belgium, and the European Bank for Reconstruction and Development (EBRD), some of other largest remaining EU fossil fuel financiers, are also missing.
Shifting public finance for energy out of all fossil fuels and into clean energy is an urgent task. The International Energy Agency (IEA) says that to limit global warming to 1.5°C, 2021 needs to mark the end of new investments in not just coal, but also new oil and gas supply. After a wave of commitments to end international coal finance this year, last week's commitment is the first international political commitment that also addresses public finance for oil and gas.
Laurie van der Burg, Global Public Finance Campaign Co-Manager at Oil Change International:
"It is great to hear that Germany today joined the commitment to end international public finance for oil, gas and coal after all. This means Germany will also need to end public support for gas infrastructure. The science is clear that without relying on large-scale deployment of unproven and expensive carbon removal technologies, expanding gas infrastructure is incompatible with limiting global heating to 1.5ºC."
Regine Richter, Public Bank Campaigns lead at Urgewald, said:
"It is good news that Germany decided not to become the last resort for fossil fuel support via public money and guarantees. The strength of this commitment will now depend on what the details will look like and how quickly Germany stops its support for fossil fuels."
Alexandra Goritz, Policy Advisor for Development Banks and Climate, GermanWatch:
"It is a strong signal that Germany is joining the coalition to end international fossil fuel financing. The immediate implication is that KFW and Hermes Cover will need to stop funding gas and revise their strategies. Particularly for developing countries it is important to not fund outdated fossil fuel technology but support them in a green and just transition."
Anna-Lena Rebaud, Climate and Just Transition Campaigner at Friends of the Earth France:
"Last week at the COP, Emmanuel Macron once more lectured other countries and presented France as a climate leader. Yet this government plans on supporting gas production until 2035, and is still considering supporting TotalEnergies' huge gas project in the Russian Arctic, Arctic LNG 2! If Macron really is as ambitious as he pretends, why is he not joining an initiative with the potential power to shift huge amounts of public finance towards clean energy? We urge the French government to follow Germany's example and commit to ending all public support to oil and gas by the end of 2022."
The joint statement was launched at the UK pavilion at 10.30 GMT 4 November 2021.
The countries and the institutions that have signed the joint statement include: Agence Française de Développement (AFD), Albania, Canada, Costa Rica, Denmark, Banco de Desenvolvimento de Minas Gerais (BDMG), The East African Development Bank (EADB), El Salvador, Ethiopia, Fiji, Finland, Financierings-Maatschappij voor Ontwikkelingslanden N.V. (FMO), Germany, Mali, Marshall Islands, New Zealand, Moldova, Portugal, Slovenia, South Sudan, Switzerland, the European Investment Bank, The Gambia, The United Kingdom, The United States and Zambia.
The estimate of a direct $21.7 billion shift is based on annual average international public finance for fossil fuels from the participating countries and institutions from 2016-2020. Data for Germany, Italy, AFD, Canada, EIB, the United Kingdom and the United States are from Oil Change International's Shift the Subsidies Database. Data for Denmark, Finland and Sweden is taken directly from government reporting. No data was available for other donor signatories. Due to incomplete reporting, this is very likely an underestimate.
"Past Last Call" is OCI and Friends of the Earth US's latest briefing analyzing G20 public finance figures and trends. It shows that between 2018 and 2020 G20 governments and public finance institutions provided at least USD 188 billion in public finance for fossil fuels.
In September 2021, 200+ CSOs launched a statement calling on world leaders to end public finance for fossil fuels in 2021 and launch a joint commitment to do so at COP26.
In June 2021, 100+ Economists called on the G7 to put an end to not only coal finance, but also oil and gas finance in 2021.
A legal opinion by Professor Jorge E Viñuales from the University of Cambridge and Barrister Kate Cook of Matrix Chambers argues that governments and public finance institutions that continue to finance fossil fuel infrastructure are potentially at risk of climate litigation.
A comment piece by Harro van Asselt, professor at University of Eastern-Finland Law School and affiliated researcher at Stockholm Environment Institute, and Gita Parihar, an environmental advocate and in-house consultant for environmental NGOs and the UN, and a board member of the Climate Justice Fund, suggests that the ruling in the Shell court case should be a wake-up call for governments to end fossil fuel support.
In October in the lead up to COP26, a global group of campaigners organized Climate Debt Justice Days of Action calling on governments and lenders to take decisive action to address the debt problem in the global south and to provide grants, not loans in order to free up resources to enable countries to respond to the climate crisis.

redpajama_set_name: RedPajamaCommonCrawl


Joni Mitchell sang a very popular song about love: "From both sides now". The lyrics " I've looked at love from both sides now", might just as well be translated into "I've looked at races from both sides now" for the purpose of this article.
As athletes, we sometimes forget about the hard work that goes into the organising of a race. We take for granted the fact that everything; from the entries, toilets, water points and traffic marshals, will be in place. We bargain on the fact that there will be a well-stocked water point every 3 km, and that there will be in fact water, cold drinks etc. What we often forget, (and by "we" I count myself as well!), is that the helpers at a water point are volunteers, who have no control over how much water there are, how cold the water is, etc. They are there to serve, and make the race more pleasurable for the athletes.
A: Get up at 4h30, get ready, drive to race, do all the necessary things to line up for a 6h00 start.
WPH: Get up at 3h30, get ready to be at water point at around 4h00. Put up tables, stack cups, pour cold drink into said cups; break big blocks of ice into plastic containers; cut open countless boxes of water sachets and throw them into the container. Ensure that all helpers know what to do, where to stand (out of athletes' way!) etc.
WPH: Depending on which point in the race your water point is, get ready to serve. Might take up to 40 minutes of waiting.
A: Get to table, grab some water sachets (or 2 or 4, or on some cases 8!), maybe drink some Coke. Thank or don't thank the WPH. May complain about water not being cold enough. Drop sachets in bin, next to bin, or in the vicinity of the water table. Carry on with race.
WPH: For the next 30-40 minutes, some or all of this happens: stand and hand out sachets. Pour cold drinks. Hand out sachets. Again. Explain why all the sachets aren't icy cold. Pour some more cold drinks. Try to keep the plastic container with the water sachets cold with extra ice, which you buy from the nearby garage. Use the rake to gather the discarded sachets together. Start picking up rubbish. If it is a double lap race (10/21 km, or 21/42 km), get ready to do it all over again in the next hour.
A: See point 3. May complain louder about the lack of water, or the coldness thereof. Discard sachets anywhere near the water point. Or not even near. Carry on with race.
WPH: See point 3. Give up trying to rake the sachets out of the way of the athletes. There are too many (sachets, and sometimes athletes..). Try to explain that it is not your fault that there is no water left, or that the water that is left, is not cold.
A: Finish the race. Collect medal. Rest. Go to club gazebo and complain loudly about the lack of water at some races, and the fact that you almost fell while slipping on "so many!" water sachets that are just lying on the ground at the water point. Go home.
WPH: After the last athlete has passed the water point, start to pack up, clean up, pick up, rake etc. Ensure that the area around the water point is completely clean. Chase a few stray water sachets that the wind blew into drains and neighboring gardens. Fold up the tables and pack away. Go home.
Although I may have over-dramatised some of the negative things happening, I must also say that most of the athletes that go through a water point are friendly, say "thank you", and try to throw their sachets in the bin. When running a race, I make a point of thanking the helpers, and try to throw my waste in one of the bins.
I wish every athlete gets a chance to serve at a water point. It is very rewarding to help, and also a great way of giving back.
Next Next post: A very hot Sunday!


customer base, a performance-led culture and the quality of our people. EBITDA of €1,545 million is materially better than 2017, representing a 25% increase, with a corresponding EBITDA margin of 17.3%.
"Our European business performed very strongly in 2018 with underlying revenue growth of 7%. This was driven by a combination of demand growth, input cost recovery and the benefits of our investment programme.
"The Americas region had underlying revenue growth of 8% and our business continued to improve as the year progressed with particularly strong performances in our major markets of Mexico and Colombia. Across the region, we have seen progress in input cost recovery, demand growth and, as with our European business, the benefits of our investment plans.
"The Group has made significant progress on its Medium-Term Plan since its announcement in February 2018, together with continued expansion of its geographic reach, including acquisitions in France, the Netherlands and Serbia. These acquisitions are well positioned in their respective markets and offer great opportunities for future growth, adding three paper machines and four converting sites to the Group's operational footprint.
biodegradable paper-based packaging as against less environmentally friendly materials. As the leader in our field, we launched our 'Better Planet Packaging' initiative, which will progressively promote our products and allow us to leverage our unique applications to capitalise on this opportunity and help us deliver a more sustainable world.
"After almost 65 years of successfully operating in Venezuela, due to the continuing actions and interference of the Government of Venezuela the Group deconsolidated its Venezuelan operations in August 2018. The Group has initiated international arbitration proceedings to protect the interests of its stakeholders and seek compensation from the Government of Venezuela for its unlawful actions.
"While we are always conscious of macro-economic risk, SKG is very well positioned to capitalise on industry opportunities and to deliver consistently excellent performance for all stakeholders. The current year has started positively, and together with the continued development of sustainable packaging, e-commerce and other demand drivers, SKG has an exciting future.
Some statements in this announcement are forward-looking. They represent expectations for the Group's business, and involve risks and uncertainties. These forward-looking statements are based on current expectations and projections about future events. The Group believes that current expectations and assumptions with respect to these forward-looking statements are reasonable. However, because they involve known and unknown risks, uncertainties and other factors, which are in some cases beyond the Group's control, actual results or performance may differ materially from those expressed or implied by such forward-looking statements.


text:
McNamara: Brady doesn't miss a beat in return
By Kevin McNamara@KevinMcNamara33
Oct 9, 2016 at 8:00 PM Oct 9, 2016 at 8:01 PM
So Rob Gronkowski, did you see any hesitation, any rust, in Tom Brady's repertoire in his ballyhooed return to the NFL Sunday? "Did you? Me neither," Gronk answered with a smile.
CLEVELAND — So Rob Gronkowski, did you see any hesitation, any rust, in Tom Brady's repertoire in his ballyhooed return to the NFL Sunday?
"Did you? Me neither," Gronk answered with a smile.
How about you Chris Hogan? You've never played a game with Brady before and somehow, some way the two of you looked like old friends.
"He didn't look rusty to me," Hogan said. "I'm not surprised at all. I expect that and I think he expects me to make those kinds of plays."
Brady and the Patriots made all sorts of plays as order was officially restored around the NFL at FirstEnergy Stadium. With Brady's Deflategate nightmare over, the Pats dominated the hapless Cleveland Browns (0-5) from the opening gun and rolled, 33-13.
With their leader sidelined for the season's opening four games, the Pats juggled two injured quarterbacks yet somehow emerged with a 3-1 record. But now this team is no longer just holding things together. An offense that couldn't score a point only as week ago in a 16-0 loss to the Bills reached the end zone on each of its first three tries against the Browns and went on to roll up 24 first downs and 501 total yards.
Brady picked apart the Browns to the tune of 28-for-40 passing for 406 yards and three touchdowns. It was the eighth 400-yard passing game of his Hall of Fame career, and for stretches you could close your eyes and think Randy Moss and Wes Welker were still running routes. Brady spread the ball around to seven receivers, hitting Gronkowski over the middle, Hogan deep, Julian Edelman all over, and the scary-talented Martellus Bennett (career-best three TD's) in the red zone.
"I tried to go out there and do the best I can do," Brady said. "That's what I try to do every week. It's what I always try to do. I know my teammates expect that of me, and that's what I expect out of them."
After what we saw transpire here, it's clear practice is vastly overrated. At least for the great ones like Brady.
Bill Belichick doesn't like hearing such blasphemy but what other conclusions can be drawn after seeing Brady slice-and-dice the Browns? In the last month, the QB was seen vacationing in Italy, hanging with friends at his alma mater (Michigan), and shooting commercials at a Boston-area prep school. He wasn't allowed to set foot in Foxboro, talk to any coaches, or even watch team-produced game film.
No biggy. Brady and the Pats seamlessly worked onto the same page in three practices this week and were certainly ready to throw a busy playbook at the Browns.
"Tom Brady is one of the best players in this league that's probably ever played," said Browns coach Hue Jackson. "Potentially he can go do that not just to us but he's done it to a lot of people before. We all know that. It's disappointing it happened but I'm not surprised by anything he does."
While Brady said he was happy to be back with his teammates and competing before thousands of Patriots fans, he deflected any and all Deflategate questions. As usual, his true feelings will stay locked in some memory bank back in Boston.
"This isn't the time for me to reflect," he said. "I'm just happy we won today. I have a job to do so there's no point in looking back at anything, whether we won Super Bowls or lost championship games or even the last four weeks. None of it matters."
It didn't take long to realize Brady and his teammates were in near-perfect sync. The team's first Brady-led drive of the season unfolded as if pulled from a Josh McDaniels' dream script. Brady completed his first three passes, to three different receivers, in easy fashion. After his first incompletion, Brady found Gronkowski over the middle for a 34-yard gain to the 2-yard line.
Two plays later LeGarrette Blount plunged into the end zone. Touchdown passes to Martellus Bennett followed on the next two Patriots possessions.
Brady certainly enjoyed himself. Late in third quarter he was forced to scramble and picked up a first down while getting smacked into the Browns' sideline. As he dusted himself off, Brady jumped to his feet and gave an emphatic first down signal to the delight of the thousands of visiting fans in the crowd.
Told he looked as sharp as ever, Brady wouldn't bite. He knows bigger tests await.
"I think there was plenty of rust out there. I can do better in a lot of areas," he said. "It was one game and at 4-1 is a good point to be at for us. We have a long road ahead."
Kevin McNamara writes for the Providence Journal of GateHouse Media.


UPDATE! I downloaded a little thing called bbMPeG aka AVI2MPG2 from Digital Digest. so now it's a small DivX movie! In fact, it's tiny.Download the low-quality movie or watch it here.
Well, it's 2:41 AM the day before Page 38 is due and I'm already done. Not only am I done, I have a full movie. I couldn't get my DivX encoder working, so you'll have to do with zipped full-frame (uncompressed) AVI. It's only 600 kb, quit your whining. The lesson is about how to make a dancer movie. First you need the dancer. Model the dancer and skin him/her. Then attach bones. This is a very complicated process, but I'll just assume that you've spent countless hours delving into the intricacies of 3d modelling and animation. Then you put the arms above the head, move each joint from right to left, up to down, in a clockwise circle as time goes from 0 to n. At n, it should be back at the start. You don't even have to make the last frame because the last frame is a copy of the first frame. It doesn't matter what you do, if it loops, it's the same. Make the hips follow the flow. Make the knees and ankles do the same. Everything in a hip dancer's body flows in a rhythm. Why is that? Because they're dancing to music. (At least I hope they are!) More on that in the next paragraph. The next step is to make sure it looks good. It should be smooth and natural. You should be able to take a camcorder to your next rave and get some girl to dance a lot like what you have in the animation. Next step is to do a printscreen of each frame (keyframes and interpolation frames). Then you use one of the plethora of programs that will take bitmaps and make an AVI or DivX of it. For me, that is Corel Photo-Paint 6. It's old and just slightly better than nothing, but that's what I'm using for now. A while back I was using a funny thing: pjBMP2AVI or something like that. I found that when I was doing Half-Life Movies. You see, half life had this awful format called RFMF or something like that. It's simple, so I guess they win. The Half-Life SDK came with a program that splits it into BMPs. Wonderful, now I have five hundred 400x300 BMPs for a twenty second 15 FPS clip. Fsck you HL! So then I put them all into this pjBMP2AVI and it makes an AVI. Even better, now I have a PoS full frame AVI!!! Might I suggest that these three total up to 1 GB per minute or something like that? Then I have to get it to DivX. Well, Flask MPeG does that if you have an MPeG. No, I don't have an MPeG. If I had an MPeG, I probably wouldn't want it to be DivX frankly. So, DirectShow can do that. So I write my own Visual Basic program that makes a DivX from an AVI. Wonderful, right? Well, it's not without problems: you can't change the compression, sometimes it likes to squish stuff, and sometimes it just plain fails. How do you make a DivX if you don't know what compression you're going to get? My answer: find a system that does it better. My solution: AltSci3D Anime Producer. AS3D AP will rock the market. I really think that it will. Using data from the Manga or the Anime Director, it'll compress the video in real time giving super-fast production time. Instead of saving all the data in full frame (uncompressed) AVI or RFMF file, AS3DAP will compress it sparing your hard drive and the time that extensive use of a hard drive takes. I know what you're thinking, you've written off AS3D because it requires a low poly count to run at real-time. Well, might I suggest that there's a high poly count solution. AltSci Character Studio will come with bezier curve system. Thus, you can increase the polygon count by a factor of 100 or so to get perfect curves. This will not run at real time, but you don't need real time if you're going to be saving it to a DivX or DVD. The frame will be saved and the file will be written in it's own time. People with a decent video card now will be able to use AltSci3D Anime Viewer to watch the Anime in 3d medium. Why is that so important? Might I suggest 1600x900 resolution at 60 fps against your television's 800x600 at 32 fps? When the GeForce 4 or so comes out, the Bezier models will allow everyone with a GeForce 4 card to watch the movie as it is presented in DVD and in high resolution. Talk about sweetness.
Back to the topic of techno. If you don't know how to dance at all, I suggest that you check out Digitally Imported or go directly to Trance (24 kbps). Then let your feet work into the groove. Your hands should try to feel up the keyboard. Then let your shoulders go. Your elbows can't stay in the same place. Then head starts bobbing. You jump from your seat and you land on the dance floor. You dream in techno. Your favorite color is neon cyan just because it sounds cool when you're on e at the trance rave. You stop taking e at trance raves because you need to focus more energy on dancing and feeling good. You stop drinking caffeinated drinks because nothing gets you hyper like a good hard beat. You give blood (on a day that you haven't had enough to eat) so that you can trip while listening to techno. You explain to your friends that techno is a ever-evolving quest that has no end, because the only thing that matters is the journey. Your "friends" abandon you saying that you've lost grip on reality. You're angered when you see your "friends" buying e. But you aren't angry for long because you're listening to another killer beat. You fall asleep in the middle of a traffic jam because you haven't slept in a week. You were walking in the middle of that traffic jam when you fell asleep. As cars drive above you, you press your ear to the ground because you hear a killer beat from all the cars' engines... Okay, enough tripping.


Children's sweaters sold at Burlington Coat Factory center of recall.
News for product liability attorneys – Children's sweaters with brand names Kani Gold and Road Block being recalled.
Washington, DC (www.NewYorkInjuryNews.com) – Haselson International Trading Inc., of New York, NY, and the US Consumer Product Safety Commission (CPSC) http://www.cpsc.gov, have issued a recall for hooded sweatshirts with drawstrings under the brand names of Kani Gold and Road Block, as reported by the CPSC.
The sweatshirts have a drawstring through the hood, which can lead to strangulation and entanglement of children. In February 1996, CPSC issued guidelines for production of upper body garments to help prevent children from strangling or getting entangled in the neck and waist drawstrings. These guidelines were voluntarily incorporated into an industry standard in 1997.
Approximately 23,000 units are involved in the recall. The sweatshirts were manufactured in Indonesia, Egypt, China, Pakistan and Korea and were being sold at Burling Coat Factory stores nationwide from July 2006 to September 2009. They retailed between $6 and $30 and were sold in sizes four through seven and small and medium.
Haselson International Trading and CPSC recommend immediately removing the drawstrings from the sweatshirts to eliminate the hazard or returning the tops to Burlington Coat Factory or Haselson for a full refund.
Any questions can be answered by contacting Haselson at (800) 217-4478 between 8 a.m. and 5 p.m. ET Monday through Thursday, or by visiting the store's website at www.burlingtoncoatfactory.com.


text:
The UnTied Kingdom
In this "original and exciting romantic adventure," a woman enters an alternate reality only to find love and danger in a dystopian England (The Bookbag).
When a paragliding stunt goes wrong, singer-turned-reality-show-star Eve Carpenter lands in the River Thames. And when she's pulled to safety by moody military man Will Harker, Eve is far from reality. This is no longer the London she knows: It's a war-torn third-world country where electricity is for the rich, the United Kingdom is under martial law, and nobody has heard of Shakespeare. Even worse, Eve is believed to be a spy.
Enemy infiltrator or not, Eve is the only one who can help Will on his mission to track down an elusive high-level secret weapon, because Eve is one of the privileged few who know what to make of it. It's called a "computer."
In a single splash, Eve has gone from spoiled celebutante to renegade freedom fighter. It might not be what she signed on for . . . but neither is falling in love with Will. All Eve has to figure out now is where in the world—or worlds—she really belongs.
OpenRoad Integrated Media, LLC
More Books by Kate Johnson
Impossible Things
Murder Most Cornish
Radical Friendship
Death Comes to Cornwall
Run Rabbit Run
Death on the Aisle


One of the best parts of being home with my kids is the play dates, laughs, bounce houses and snacks!
This post is sponsored by Luvs diapers. All opinions and photos are my own.
It was really hard transitioning to staying home with my kids. I was eight months pregnant when I stopped working and was placed on bed rest. At nine months, I started this blog and then had a preterm baby just a few weeks later. It was a whirlwind that took a long time to get used to! I had finally worked my way up to a director level and was a member of the senior leadership team, with a dotted line reporting structure right to the CEO. I managed a A$22MM budget. And then, all of a sudden, my day revolved around diapers and feedings. I didn't need to be dressed up. I didn't even need to be showered! I went from feeling so important in my career to feeling like a slob SAHM. It took a few months, but I realized that in fact, I was doing the most important job of my life: Raising my boys (well, just one at that point, but now there's two). It's a hard job with some very long days but there are some things I absolutely "Luv" about it!
Like getting to go to yoga at 9:30 in the morning almost everyday. That's my "me" time. The kids get to play in the care center with new toys. I get to chat with my yoga friends. I get to sweat and gain some mental clarity that helps me be a better mom for the rest of the day!
Play dates are the other thing I absolutely "Luv". I'm a social creature and love getting together with other moms while our kids burn off steam! My inlaws got us a blow up bounce house after we went to a friend's house who had one and Henry LUVED it. Turns out, they're not expensive and really easy to put up and take down, so we now have a fun bounce house for our play dates, too.
Luvs was kind enough to send me a full party package, so I knew we'd have to get the bounce house set up and get some friends over. I've got a few good girlfriends here who all have a two and a half to three year old so it's fun to get together and let them all play! We're all also struggling with potty training, so it's awesome that Luvs sent me some diapers to pass out to these momma's. Their diapers are super soft, have a contoured shape that hugs a baby's (or toddler, in our case!) bum and they have a money back guarantee - if you aren't happy with their leak protection from Luvs Ultra Leakguards with NightLock Plus™, they'll refund your money! All us moms were super excited to try these on our tots, especially since overnight diapers can be... Problematic. Moms, I know you get me on this. C'mon Henry, let's get moving on this potty training! Also problematic? Getting toddlers to pose for pics, as seen above.
Not only do my mom friends all have a "first child" the same age, but two of us have babies who are close in age and two are currently pregnant! Thanks to LUV's, I was able to gift the preggo mommies some infant sized diapers, along with some cute sippy cups for their older siblings.
Staying home with my kids has been the toughest job I've ever done. I lost a part of my identity when I stopped working in the "official workforce." But I also gained a new identity as a mom. And now I have a blog that provides income, it's like I have the best of both worlds! Time with my kids and a new profession. Time to host play dates and talk with other moms about diapers and snotty noses and potty training fails and time to write and take pictures and share stories. All of this is what I Luv, and as a family, it's what we Luv.
Awwwww I luv this post <-- see what I did there ;-) It has definitely been a big change in your life but isn't blogging amazing that you are able to generate a solid income and be able to be home with your boys. It is a powerful thing.
Yes just luvly :) Cute baby, cute party!
Thanks for the invite, Paige *rolling eyes* I also love how Otto is bundled up and it's probably like 80F. HA!
Aw what a sweet luvly post. I love that we can be home with our babies and still keep our identity as individuals through blogging.
Such sweet pictures and great post! I am always inspired by moms that are able to do so much for their children!
Your boys are so incredibly sweet. You're such a great mom!
I Luvvvvved this post and learning more about your path to where you are now. You're a great momma, friend, writer, yogi, and the list goes on.
Wait, this is wayyyy to cute! Can I come over to your house? It's only a flight away! We love Luvs diapers too! This is such an adorable idea for a fun play date! Who says it needs to be a birthday party to decorate?


The weather has been getting consistently hotter, so I need to avoid heating up the kitchen with the oven or long-simmering dishes. While I was trying to put my menu plan together, I realized that I need more crockpot recipes. My first stop was Stephanie O'Dea's A Year of Slow Cooking where I found a several recipes I'm going to try this week.
Do you have any tried & true slow cooker recipes?


EditCNC : สำหรับโปรแกรมเมอร์ที่กำลังมองหาโปรแกรมสำหรับเขียนภาษา CNC อยู่ล่ะก็ห้ามพลาดเลยนะครับ เพร..
English Description : EditCNC, a lightning fast text editor designed for CNC programmers has the features you"d expect from any quality text editor, such as search & replace, multiple undo/redo, multiple open files, file size limited only by the capacity of your computer, etc. In addition, EditCNC includes many powerful features designed purely for CNC programming and editing. Download your free thirty day trial now.


We do love us some fried chicken and a biscuit, y'all. And what else could be better than trying all those delicious Southern comfort foods right from the source?
While gallivanting 'round the American South, putting your best food forward during a line dance, getting drunk at a rodeo, and shopping for a pair of authentic cowboy boots, we urge you not to forget about true Southern soul food. Here are the top ten hangouts born to satisfy your food needs and turn yourself into a bit of a (curvy) Southern belle.
Head to Empire State South for authentic Southern dishes with a modern twist. The lunch menu is just as enticing, if not a little more casual than the dinner menu. We suggest you start your evening off with the GA Shrimp and the Farm egg and then move onto the Sockeye salmoncatfish cake, don't forget to add a side of roasted squash. For breakfast we suggest the fried chicken biscuit and the spicy chicken Po'boy for your lunch munchies.
For thirty years, only a stone's throw away from Myrtle Beach, Scott's Bar-B-Que has (famously) been serving up hand-pulled pork. Owner Rodney Scott slow cooks whole hogs overnight on a home-built wood-burning pit. Ask for a side of crispy skins and the family's secret sauce. Locals, love it, critics love it, and we love it too.
Everything you'd expect from a Southern eatery. You can literally start here for breakfast and end with dessert for dinner. From burgers, grits, soups, pastries, salads, pies, milkshakes, sundaes, waffles and beef briskets – you name it, they got it. First established in 1903, the place is quite legendary and the food is rather delish.
When #levitation2016 gets cancelled, hang out in Austin and eat Franklin Barbecue anyway like MUNCHIES associate editor @jaggedlittlehil.
Even if you get here at 7am, you'll find a queue stretching around the corner (the restaurant doesn't open till 11am). The only person to have ever skipped the wait was President Obama – even old mate Kanye was asked to get in line #lol. But, those who flock to Franklin's know, waiting and queuing are part of the experience, and believe us the light (read: food) at the end of the tunnel (read: queue) it so worth it. Some items might sell out by the time you reach the counter but if you can get your greedy paws on the brisket, ribs, pulled pork and sausage plus pecan pie dessert, then we strongly advise you do so. Oh yes!
While you're in New Orleans, we suggest you stop at Willie Mae's Scotch House to sink your teeth into some of the best fried chicken you'll ever have. To start, order America's Best Fried Chicken (yep, that's the name of the dish), then, order a side of mac n cheese, cornbread muffins and fried okra before washing it all down with a sweet ice tea.
A mere 15 miles from Great Smoky Mountain's National Park, you'll find Blackberry Farm. Here, you can eat yourself into a coma and then spend the night at the luxury resort. The Barn, a turn-of-the-century structure, houses the farmstead's fine dining experience. The seasonal tasting menu blends Appalachian ingredients with farm products harvested from the property.
Lovely setup for a party in Fred's room tonight!
For over 60 years, the Vergos family has been serving their signature dry rub ribs in the alley basement famously known as Rendezvous. The cosy restaurant is stuffed with Memphis memorabilia and serves a wide range of meaty dishes. For the ultimate experience, try the pork ribs and brisket combination with beans and slaw.
Acre dishes up Southern-inspired comfort food with a modern take. You can find anything from Fried green tomatoes, Brisket burger, Grilled Hereford ribeye steak and even Pecan fried florida frog legs on the menu. Try the Naughty Toddy from the cocktail list or pick one of the many, many wines from the drinks menu.
Once described as the "sacred ground for Southern foodies" by the New York Times, Crook's Corner welcomes with delicious food and a casual-relaxed vibe. You'll find Southern classics such as shrimp and grits, the Hoppin John and of course cornbread and okra on the menu. But it's the Atlantic beach lemon-lime pie that had us throw out all our bikini body goals. Pie is life.


This is an important question in every writer's life. At what moment in time can you actually refer to yourself as a writer?
When can you look in the mirror and call yourself a writer? And when can you call yourself a writer in front of several complete strangers at a party?
When can you call yourself a writer in private?
Tell yourself in the mirror before you brush your teeth, then again when you're driving home from work.
Say it so many times that you get exasperated looks from your spouse. Heck, get business cards printed, too. I remember reading somewhere that Robert De Niro will sometimes repeat his lines dozens of times before filming a scene, in an effort to make himself fully believe what he's saying. That's your goal: say it, then say it again until you believe it.
When you finally call yourself a writer, it drives home the fact that this is real. It's serious. We're no longer talking about some vague ambition. You're a professional writer who has to produce content, be that novels or nonfiction books or articles or whatever.
Go ahead and say it right now: "I am a writer." The more it becomes real for you, the more it will drive you to sit down as much as possible and put words on the page.
The answer to this question is also now — but this is a different matter altogether. The reason you want to take this step immediately in public is to apply pressure to yourself. If you start telling people that you're in the middle of a novel, then you darn well better be in the middle of a novel.
But here's the rub: there are two things that happen when you're in public and first start referring to yourself as a writer.
The first thing is your friends and spouse may have an irksome tendency to snicker or roll their eyes. The truth is that one cannot become a doctor or welder simply because they say they are. Such professions take degrees and certifications.
But writers don't need degrees or training, so it may seem like a "cheat" or "exaggeration" to others that you're suddenly calling yourself something as prestigious as "writer." So you don't want to call yourself a writer in public until you're fully ready to shrug off any silly passive-aggressive nonsense from college buddies.
Obviously, at the beginning of your career, with no real credits to speak of, you won't have much to say when people start asking for details. This can cause embarrassing moments of silence, or rambling explanations that reek of self-doubt. So don't refer to yourself as a writer in public until you have a plan to deal with follow-up questions.
So if you don't feel like you can confidently answer the question, or are embarrassed to say aloud that you haven't been published, think twice before mentioning your writerly aspirations at a soiree.
But don't forget that the sooner you start calling yourself a writer in private and in public, and the sooner you create a website and business cards, the sooner you will realize your career choice is a serious endeavor and demands your time and attention.
And that is what will drive you to sit down, put in the hard work and create.
The giveaway for Chuck's book Create Your Writer Platform is now over. Thanks for all your comments. Congrats to Teresa Bruce!
In this eguide, Alexis Grant explains how she turned her side business into a full income, with an emphasis on making money from ebooks.
I took the steps to create a social presence as a writers to build accountability. Between sharing a Facebook page, WordPress blog and Twitter account with friends and family, now that those around me have started asking me how my writing is going and I feel obligated to have a honest answer.
It's good to read your comments Mike about building a social presence as a writer via twitter or facebook. I was debating whether to call myself a writer on twitter, still am, sent four queries regarding my first YA novel which were rejected but not without some encouraging comments.
Am currently working on my second novel which is a ghost story and one which I feel more confident about. Although I currently have a 'day job,' after reading your post it makes me feel a sense of verification in calling myself a writer.
Great article, Chuck! Taking ownership of saying you're a writer has a profound effect. It really helped me and it's something I tell the writers in my writing group. If you don't believe you're a writer, no one else will either.
Well,put. I've been writing for years. Seriously more now. I've always enjoyed writing and creating. I live in my pages and breathe the ink. I need to express myself and it renews my spirit. Keep up the good work and thank you for the encouragement. We think what we become.
Great advice. I sometimes run and breathe to "I am a writer" so it sinks in. The tips for what to say when your clips are minimal or non existent are helpful. The first few times I was asked it felt awkward but each time I responded my confidence grew.
I've been calling myself a writer since my first article was published in a newspaper. Granted that was in a school newspaper back in high school – but the great part about the story – it wasn't changed from what I submitted. Since then I've worked on other papers, submitted to magazines, and have been participating in a writing challenge every November. I do call myself a writer.
I work with people helping them develop their writing, and the NUMBER ONE obstacle is they don't believe they're writers. It's so much easier to give up when even you don't believe in what you're doing.
The only thing you have to do to call yourself a writer is write. Simple.
I couldn't agree more, Leigh. I started thinking of myself as a writer and calling myself one when I began taking my writing seriously and writing every day. I think it's a combination of self-belief and action – it's no good believing you're a writer if you're not actually walking the walk. As you say – you have to write. If you're doing that, whether you've got a book published or not, I reckon you've every right to say you're a writer.
You are touching on one of the most important issues when saying I am a writer – confidence. It is the same thing needed to promote yourself, your work, and establish social media. I am a writer, even had a story published in an anthology. As I work on my memoir (second draft), I am beginning to shake in my boots thinking about the future of sending out a query and approaching agents. Granted I have to finish this revision and another one or two before that happens, but I lack confidence in selling myself.
Chuck makes an excellent point about responding with confidence when others approach you about your work. If you laugh off your own attempts at being a writer, who else is going to take you seriously?
Never apologize for being a writer. There is sometimes this stigma attached that you have to be have a book with your name on the shelf or have credits in these national publications in order to merit the title 'writer'. You don't. If you write articles, you're an article writer. If you write book reviews, you're a book reviewer/writer. If you write poems… you get the idea.
You can't control who everything about the publication process but one thing you can control is how you view yourself as an artist, as a creator, and making the time to do the work of writing itself, to constantly improve your craft. As Steven Pressfield says, "Do the work".
Well, I better say I'm a writer! I dedicate several hours each day to this endeavor either by doing research, editing, re-writing, or honing my craft with workshops, and writing groups. When I eventually read out loud to other than my mirror I know I'm a writer. Handing out business cards gives me a high.
Calling oneself a writer is a difficult decision. There's an even more difficult question to consider. When does a writer become an author?
one helpful thing I read is that most writers write because they MUST…it is an inborn sense of needing to express themselves, record what they see and feel, and to create with words. It is like an artist who picks up a pen to make a sketch…when is he/she an artist…?? Right then. With their first creation. As are we…writers, that is. Becoming a published writer is a thrill but it does not make you more of a writer. It just acknowledges you in a commercial way and is the frosting on the cake. One telling thing is that a person hearing that writers don't make what they used to and that it is "iffy" to be able to make a living as a writer can have two responses one being to stop writing because it is not worth it and the other is to write anyway. The latter is a writer!
Darlene, do you mind if I share your post with my classes? Certainly, I will credit you with the message…but you articulated so clearly the difference between being a published writer and not yet being published. Thank you so much for such a thoughtful, intelligent post!
I hope your class enjoys the article, JudiLeigh!
Great post. I've written as a journalist and then in communications/marketing roles for nonprofits for 20-plus years — so I've always called myself a writer/editor. Yet, just started writing fiction four years ago. For me, it's not a question of calling myself a writer, but calling myself an author (as Joel Heffner pointed out). Does the act of writing novels make one an author? Or does formal publication? I think the former.
Great advice! Keeps us accountable.
I am a writer when I have the time to pen my thoughts uninterrupted.
Great post! I'm still in high school, and a good way from being ready to publish anything, but I absolutely consider myself to be a writer. Then, as Mandy and Joel said, there's the question of what makes an author. I don't consider myself to be a novelist yet, because I'm still working on my first novel, but I'm committed to writing and to improving my work, and I love it, so that makes me a writer. Your point about confidence is really good. It's strange how people seem to think that being a "writer" means having written a book they can find in a bookstore or on Amazon, or having at least written a bunch of articles that everyone's read, but it's really so much deeper than that.
When can you call yourself a writer? When it hurts not to.
That's a pretty neat trick – applying pressure to yourself, but I have found that this works better if you do the exact opposite. I call myself a "word enthuziast" and I get more done with less pressure.
The answer is…. When you have written.
Right on, Chuck! Thanks for helping us to carry on!
Thank you Chuck. I can't help but be a writer. Having said that, when I settle into the seat of my soul, I don't write. I take dictation from the Divine universal spirit. I'm often blown away by what comes to me in my moments of inspiration.
I once told my mother I was a writer, and, at the time, I wondered at her lack of response. Two days later, I received a package containing a beautifully designed and embellished tinfoil hat. It was a thing of beauty.
I've been writing for many years as a marketing communications pro, but I never used that term until I began expanding into creative writing. Then, all of a sudden, it felt like I was an impostor when I did say it.
I finally became comfortable with it when I progressed far enough in my creative writing to be able to evaluate my drafts in a way that truly moved them forward.
I am a writer and poet because I think about writing all the time and I have published web content and poems in magazines. It is who I am and what I do, and without it I am denying who I am. When I tell people I am a writer, I still receive skeptical looks or dumb silence, but I don't care. Writing makes me whole and where I excel, even though, financially, I haven't gained much. I believe that part will be filled in sooner than later.
This was just what I was needing to hear. I have finally decided to start being more open about the fact that I am working on some writing projects with the goal of publishing eventually. Recently, my husband and I have been talking about this– and quite frankly, my confidence isn't there, but an opportunity came when talking to some friends, and I decided to divulge the secret… "I am a writer." There were some questions with me fumbling about how best to answer. But, for the first time, it is out there to someone I personally know, and it felt good. Though I wish I could have read this article beforehand….


Train schedule Kamysh-zorya. Buy railway tickets Kamysh-zorya online. Railway tickets Kamysh-zorya.
Book railway tickets from Kamysh-zorya at Pilot.ua.
Below you can find the whole list of available trains from Kamysh-zorya including information about the number of a train, its' route, frequency and time of departure and arrival.
Book railway tickets from Kamysh-zorya at Pilot.ua - it's convenient, easy and fast.


text:
Darren William Naish is a British vertebrate palaeontologist, author and science communicator.

As a researcher, he is best known for his work describing and reevaluating dinosaurs and other Mesozoic reptiles, including Eotyrannus, Xenoposeidon, and azhdarchid pterosaurs. Much of his research has focused on Wealden Group fossils from the Isle of Wight.

He is founder of the vertebrate palaeozoology blog Tetrapod Zoology, and has written several popular science books. Naish also makes frequent media appearances and is a scientific consultant and advisor for film, television, museums and exhibitions. Naish is also known for his skepticism and work examining cryptozoology and sea monster sightings and beliefs from a scientific perspective.

Research
He obtained a geology degree at the University of Southampton and later studied vertebrate palaeontology under British palaeontologist David Martill at the University of Portsmouth, where he obtained both an M. Phil. and PhD.

Though initially beginning his research career in palaeontology with the intention of working on fossil marine reptiles, Naish became known for his doctoral work on the basal tyrannosauroid theropod Eotyrannus, a dinosaur that he, together with Steve Hutt and colleagues, named in 2001. He has published articles on the Wealden Supergroup theropods Thecocoelurus, Calamospondylus and Aristosuchus. With Martill and "Dino" Frey, he named a new illegally acquired Brazilian compsognathid theropod Mirischia. In 2004, Naish and Gareth Dyke reinterpreted the controversial Romanian fossil Heptasteornis. Suggested by other authors to be a giant owl, troodontid or dromaeosaurid, it was argued by Naish and Dyke to be an alvarezsaurid, and as such is the first member of this group to be reported from Europe. Other fragmentary European alvarezsaurid specimens have since been reported.

Naish has also published work on sauropod dinosaurs, pterosaurs, fossil marine reptiles, turtles, marine mammals and other fossil vertebrates, and he has also produced articles on other aspects of zoology. He published a series of articles on poorly known cetaceans during the 1990s and in 2004 published a review article on the giant New Zealand gecko Hoplodactylus delcourti.

In 2004 Naish and colleagues described a giant Isle of Wight sauropod dinosaur that appears closely related to the North American brachiosaurid Sauroposeidon, and informally referred to as Angloposeidon. Prior to the 2006 description of Turiasaurus from Spain, this was the largest dinosaur reported from Europe. In 2005 he coauthored the description of the new Cretaceous turtle Araripemys arturi, and in 2006 he and David Martill published a revision of the South American crested pterosaurs Tupuxuara and Thalassodromeus. During 2007 and 2008, Naish and Martill published a major revision of British dinosaurs; Naish also published work with Barbara Sánchez-Hernández and Michael J. Benton on the vertebrate fossils of Galve in Spain. The Galve fossils are significant in including istiodactylid pterosaurs, heterodontosaurids and spinosaurines. In 2007, Naish co-authored the description of the new sauropod Xenoposeidon with fellow Portsmouth-based palaeontologist Mike P. Taylor. In 2008 he published an evaluation of azhdarchid pterosaurs with Mark Witton, in which they argued that azhdarchids were stork- or ground hornbill-like generalists, foraging in diverse environments for small animals and carrion. Along with his colleagues Mike Taylor and Matt Wedel he published a paper on sauropod neck posture in 2008. In 2010 Naish published a paper on the theoretical flotation abilities of giraffes. In 2011 Hone, Naish and Cuthill published a paper on mutual selection in dinosaurs and pterosaurs In 2013, Naish described Vectidraco daisymorrisae, a small azhdarchoid pterosaur from the Isle of Wight. Also in 2013 Naish and Witton published a follow-up to their 2008 paper on terrestrial stalking in azhdarchid pterosaurs. In 2015 Naish and colleagues published on a new, as yet unnamed, Transylvanian pterosaur taxon.

In 2017, a new species of pycnodont fish, Scalacurvichthys naishi, was named after Naish.

Publications

Naish has published several popular books on prehistoric animals including Dinosaurs: How They Lived and Evolved co-authored with Paul Barrett (Natural History Museum 2016) Dinosaur Record Breakers (Carlton Kids 2018), the Dorling Kindersley Encyclopedia of Dinosaurs and Prehistoric Life (2003, with David Lambert and Elizabeth Wyse), the Palaeontological Association book Dinosaurs of the Isle of Wight (2001, with David Martill) and the highly acclaimed BBC Walking with Dinosaurs: The Evidence (2000, with David Martill), produced to accompany the TV series Walking with Dinosaurs. In 2010, he published The Great Dinosaur Discoveries as sole author.

In 2012, he published All Yesterdays with John Conway and C. M. Kosemen. It examines the palaeontological reconstruction of dinosaurs by applying the same method to living animal skeletons.

In 2017 Naish published Evolution in Minutes a book answering fundamental questions on the topic of evolution through a collection of mini-essays.

In 2021, he published Dinopedia, a book covering a variety of topics ranging from general concepts of dinosaur anatomy, groups of dinosaurs, significant people, locations, etc.

Naish has also published several books on cryptozoology, including Hunting Monsters: Cryptozoology and the Reality Behind the Myths and Cryptozoologicon: Volume I with John Conway and C. M. Kosemen.

His name is also attached to several children's books on prehistoric animals. Naish is an associate editor for the journal Cretaceous Research and was also on the editorial board of the journal The Cryptozoology Review. He acts as a regular book reviewer for the Palaeontological Association.

Media
Naish has appeared widely on British television, having featured on BBC News 24, Channel 4's Sunday Brunch, Richard and Judy, and Live from Dinosaur Island, as well as the documentary How to build a dinosaur. He appeared on a Channel 4 discussion programme on cryptozoology, presented by journalist Jon Ronson, during the late 1990s. Naish's research on the giant Isle of Wight sauropod "Angloposeidon", on the pterosaur Tupuxuara, and on the sauropod Xenoposeidon was widely reported in the news media, as was his research paper on floating giraffes.

Naish was a scientific advisor for Impossible Pictures, for the 2020 Netflix series Alien Worlds, and for the Apple TV+ series Prehistoric Planet.

Naish has been featured in several stories about so-called mystery carcasses including the Montauk Monster, San Diego Demonoid, Beast of Exmoor, and a Russian mystery monster carcass. He emphasises the effects of taphonomy in making familiar animals unrecognisable.

Among the popular books by Naish that were widely featured in the media were the Cryptozoologicon and All Yesterdays.

In September 2022, Nash spoke at the United Nations Science Summit 2022.

Tetrapod Zoology

In 2006, Naish started a weblog, Tetrapod Zoology, that covered various aspects of zoology. In 2007 he joined the ScienceBlogs network. In July 2011, the blog moved to the Scientific American blog network, as of 31 July 2018 the blog has moved away from Scientific American and is hosted independently. Tetrapod Zoology covers various subjects concerning tetrapods. Topics have included frogs, reptiles, mammals, birds, dinosaurs, pterosaurs, and cryptozoology. Together with colleagues Michael P. Taylor and Mathew Wedel, Naish also contributes to the Sauropod Vertebra Picture of the Week blog.

In 2010, Naish published a collection of early articles from Tetrapod Zoology as a book titled Tetrapod Zoology Book One.

Tetrapod Zoology Podcast
The Tetrapod Zoology Podcast was launched on 1 February 2013 and is the official podcast of the TetZooVerse. The podcast covers all things tetrapod and vertebrate palaeontology. The podcast is hosted by Naish and co-host John Conway, For episode 15 the regular hosts were joined by Memo Kosemen, co-author and artist of Cryptozoologicon.

Tetrapod Zoology Convention
TetZooCon is an annual meeting themed around the contents of the Tetrapod Zoology blog. The convention was first held on 12 June 2014 and has taken places in various venues in London. The convention involves talks on a variety of subjects, ranging from palaeontology to cryptozoology, as well as workshops. The convention is organised by Naish and Conway; Darren traditionally gives a talk himself, whereas John Conway hosts a workshop.

Bibliography
 Naish, D. 2023. Ancient Sea Reptiles: Plesiosaurs, Ichthyosaurs, Mosasaurs, and More . Smithsonian Books.
 Naish, D. 2021. Dinopedia: A Brief Compendium of Dinosaur Lore. Princeton University Press.
 Naish, D. 2019. Hunting Monsters: Cryptozoology and the Reality Behind the Myths Sirius Publications.
 Naish, D. 2017. Evolution in Minutes. Quercus. London.
 Naish, D. 2017. Hunting Monsters: Cryptozoology and the Reality Behind the Myths. Sirius.
 Naish, D., Barrett, P. 2016. Dinosaurs: How They Lived and Evolved. Smithsonian Books.
 Naish, D. 2015. Jurassic Record Breakers, Carlton Kids. London.
 Conway, J., Kosemen, C. M. & Naish, D. 2013. Cryptozoologicon Volume I. Irregular Books.
 Conway, J., Kosemen, C. M. & Naish, D. 2012. All Yesterdays: Unique and Speculative Views of Dinosaurs and Other Prehistoric Animals. Irregular Books.
 Naish, D. 2011. Dinosaur Record Breakers. Carlton Books, London.
 Naish, D. 2010. Tetrapod Zoology Book One. CFZ Press, Bideford.
 Moody, R. T. J., Buffetaut, E., Naish, D. & Martill, D. M. 2010. Dinosaurs and Other Extinct Saurians: A Historical Perspective. Geological Society, London.
 Naish, D. 2010. Dinosaurs Life Size. Barron's Educational Series, New York.
 Naish, D. 2009. The Great Dinosaur Discoveries. A & C Black, London.
 Martill, D. M. & Naish, D. 2001. Dinosaurs of the Isle of Wight. The Palaeontological Association, London.
 Martill, D. M. & Naish, D. 2000. Walking With Dinosaurs: The Evidence. BBC Worldwide, London.

References

Further reading
 Hutt, S., Naish, D., Martill, D.M., Barker, M.J., and Newbery, P. (2001). A preliminary account of a new tyrannosauroid theropod from the Wessex Formation (Cretaceous) of southern England. Cretaceous Research, 22: 227–242.
 Naish, Darren & Dyke, Gareth J. (2004): Heptasteornis was no ornithomimid, troodontid, dromaeosaurid or owl: the first alvarezsaurid (Dinosauria: Theropoda) from Europe. Neues Jahrbuch für Geologie und Paläontologie – Monatshefte 7: 385–401.
 Naish, D. & Martill, D. M. 2007. Dinosaurs of Great Britain and the role of the Geological Society of London in their discovery: basal Dinosauria and Saurischia. Journal of the Geological Society, London 164, 493–510.
 Naish, D. & Martill, D. M. 2008. Dinosaurs of Great Britain and the role of the Geological Society of London in their discovery: Ornithischia. Journal of the Geological Society, London 165, 613–623.
 Naish, D., D.M. Martill, D. Cooper & K.A. Stevens 2004. Europe's largest dinosaur? A giant brachiosaurid cervical vertebra from the Wessex Formation (Early Cretaceous) of southern England. Cretaceous Research 25: 787–795.
 Naish, D., Martill, D.M. and Frey, E. 2004. Ecology, Systematics and Biogeographical Relationships of Dinosaurs, Including a New Theropod, from the Santana Formation (?Albian, Early Cretaceous) of Brazil. Historical Biology. 2004, 1–14.
 Naish, D., Conway, J., Koseman, C. M. All Yesterdays: Unique and Speculative Views of Dinosaurs and Other Prehistoric Animals. Irregular Books, 2012.
 Kosemen, C. M., Conway, J. Naish, D. (Foreword), 2013. All Your Yesterdays. Irregular Books.

External links
 Tetrapod Zoology Podcast and Blog

1975 births
Academics of the University of Portsmouth
Alumni of the University of Southampton
British palaeontologists
British sceptics
British science writers
Critics of cryptozoology
Living people

redpajama_set_name: RedPajamaWikipedia


text:
Government / Labor / Politics Jeff Adachi Says Proposition B Would Have Passed in Wisconsin
Posted By Peter Jamison on Fri, Feb 25, 2011 at 3:11 PM
Wisconsin: Fertile ground for pension reform?
Public Defender Jeff Adachi is firing back against local labor leaders and legislators trying to draw a link between his pension-reform efforts in San Francisco and the battle over the future of organized labor that is playing out in Wisconsin.
Adachi, a Democrat, says that efforts to compare him to Republican Gov. Scott Walker of Wisconsin -- including bizarre speculations that he is somehow connected to the Tea Party movement -- are "red-baiting" intended to obscure a serious conversation about the financial problems posed by current pension and health-care costs for city employees.
Exhibit A in his argument is a point he says his critics have ignored -- the fact that public employees in Wisconsin have already agreed to financial concessions similar to those Adachi is advocating.
"If we were in Wisconsin, the workers there would have agreed to the changes that Prop. B would have made," Adachi says. "The labor movement in Wisconsin is much more realistic and practical in dealing with its issues there."
Is he right? On pensions, it appears so.
Adachi -- who is crafting a new ballot measure that he calls "Son of B" -- is now calling for city workers to bear half the cost of their pension plans. Walker's budget plan calls for the same thing, and labor leaders in Wisconsin have said they're willing to agree.
The comparison gets tricky, however, when it comes to health care costs. The original Prop. B called for the city to contribute to the Health Service System at a rate pegged to the average amount paid by other populous counties, while slashing the amounts the city would pay for workers' family members. Walker has asked (and, again, workers have agreed) that state employees pay about 12 percent of their own health care premiums.
The big difference between his plan and Walker's, Adachi says, is that he has never called for any restriction of collective-bargaining rights. Such restrictions are the most controversial part of Walker's plan, and are the principal reason that labor leaders and Democratic legislators in Wisconsin are fiercely resisting his proposal.
Follow us on Twitter at @SFWeekly and @TheSnitchSF
Tags: collective bargaining, health care, Mayor Ed Lee, pension reform, Proposition B, Public Defender Jeff Adachi, Son of B, unions, Wisconsin, Image
Peter Jamison


text:
Local expert believes attack in Syria about more than retaliation
Dr. Robert Lloyd said the Biden administration is also looking at what happens next
Updated: 11:16 PM EST Feb 25, 2021
Ari Hait
ARI: YES, AND THAT PROFESSOR'S NAME IS DR. ROBERT LLOYD. HE IS A PROFESSOR AT PALM BEACH ATLANTIC, AN EXPERT ON INTERNATIONAL POLITICS. ONE THING HE STRESSED WHILE WE WERE TALKING TONIGHT IS ONE THING YOU HAVE TO KEEP IN MIND IS PERSPECTIVE. THE MIDDLE EAST IN GENERAL AND SYRIA SPECIFICALLY ARE, OF COURSE, COMMON PLACES FOR MILITARY ACTION FROM A NUMBER OF DIFFERENT NATIONS. SO DR. LLOYD SAYS YOU HAVE TO LOOK AT THIS ATTACK COMPARED TO OTHER ATTACKS IN THE AREA OVER THE LAST SEVERAL YEARS, AND HE SAYS THIS ONE WAS NOT NEARLY AS POWERFUL AS OTHER VIOLENCE WE HAVE SEEN THERE. THE U.S. CERTAINLY COULD HAVE DONE MORE DAMAGE. AND DR. LLOYD SAYS TO HIM THAT MEANS THERE'S NO QUESTION THAT BEFORE PRESIDENT BIDEN DECIDED TO LAUNCH THESE ATTACKS, HE TOOK INTO ACCOUNT THE IRAN NUCLEAR DEAL THAT PRESIDENT TRUMP PULLED US OUT OF, AND PRESIDENT BIDEN IS NOW TRYING TO RE-NEGOTIAT DR. LLOYD: IT DOES SHOW THAT THE BIDEN ADMINISTRATION IS INTERESTED IN DOING A DEAL ON THE ISSUE OF NUCLEAR WEAPONS OR POTENTIAL NUCLEAR WEAPONS IN IRAN, BUT AT THE SAME TIME IT'S NOT GOING INTO TO IT SAYING WE'LL GIVE AWAY THE BANK, WHATEVER YOU WANT. SO I THINK IT'S TRYING TO CALIBRATE IT A LITTLE BIT. AND WE'LL SEE HOW IT WORKS OU ARI: DR. LLOYD SAYS THERE IS,
A local expert on international politics believes the U.S. attack in Syria Thursday evening shows the White House was thinking about more than just retaliation.U.S. officials said the strike targeted structures that belong to Iranian-backed militias that have launched rocket attacks in the past against American facilities in Iraq.The Pentagon said the strike was in retaliation for a Feb. 15 attack against a U.S. base in the Iraqi city of Erbil that wounded several American contractors and a U.S. military service member.But Dr. Robert Lloyd said he believes retaliation is only one factor that went into the decision.Lloyd is a professor at Palm Beach Atlantic University.He said the strikes were powerful enough to do damage and send a message, but not nearly as powerful as they could have been.Lloyd said he believes the Biden administration launched these strikes with a potential Iran nuclear deal in mind."It does show that the Biden administration is interested in doing a deal on the issue of nuclear weapons, or potential nuclear weapons in Iran," Lloyd said. "But at the same time, it's not going into it saying we'll give away the bank, whatever you want. So, I think it's trying to calibrate it a little bit. And we'll see how it works out."Lloyd said the attack does come with risk, given how Iran may choose to respond.
A local expert on international politics believes the U.S. attack in Syria Thursday evening shows the White House was thinking about more than just retaliation.
U.S. officials said the strike targeted structures that belong to Iranian-backed militias that have launched rocket attacks in the past against American facilities in Iraq.
The Pentagon said the strike was in retaliation for a Feb. 15 attack against a U.S. base in the Iraqi city of Erbil that wounded several American contractors and a U.S. military service member.
But Dr. Robert Lloyd said he believes retaliation is only one factor that went into the decision.
Lloyd is a professor at Palm Beach Atlantic University.
He said the strikes were powerful enough to do damage and send a message, but not nearly as powerful as they could have been.
Lloyd said he believes the Biden administration launched these strikes with a potential Iran nuclear deal in mind.
"It does show that the Biden administration is interested in doing a deal on the issue of nuclear weapons, or potential nuclear weapons in Iran," Lloyd said. "But at the same time, it's not going into it saying we'll give away the bank, whatever you want. So, I think it's trying to calibrate it a little bit. And we'll see how it works out."
Lloyd said the attack does come with risk, given how Iran may choose to respond.