 real-time feedback to demonstrate how the technology works. As the app was a show piece, it was imperative that it remained robust, fast and most importantly react to the user’s slightest jest.
<reponame>CraigGiles/scala-free-monads
package com.gilesc

import cats.{Id, ~>}

object Main extends App with Testing {
  val interpreter01: FirstApp ~> Id = ConsoleLoggingInterpreter or ZonedDateTimeInterpreter
  val interpreter02: SecondApp ~> Id = TestRegistrationInterpreter or interpreter01
  val interpreter: MyApp ~> Id = BCryptPasswordInterpreter or interpreter02


  val prg = timingProgram("my message")
  val reg = registerNewUser("myusername", "myemail", "<PASSWORD>")
  prg.foldMap(interpreter)
  reg.foldMap(interpreter)

  val pass = "<PASSWORD>"
  val conf = "mypassword"
  val pw = hashThisPassword(pass, conf)
  val something = pw.foldMap(interpreter)
  println("Hashed Password: " + something)
}
/*
 * Copyright (c) 2009, <NAME>, Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *     * Neither the name of the <NAME>, Inc. nor the names of its
 *       contributors may be used to endorse or promote products derived from
 *       this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */


#include <OGRE/OgreSceneNode.h>
#include <OGRE/OgreSceneManager.h>

#include <tf/tf.h>
#include <tf/transform_listener.h>

#include "Displays/MarkerDisplay.h"

#include "Displays/Transformers/FrameTransformer.h"

#include "marker_base.h"

namespace rviz
{

MarkerBase::MarkerBase(MarkerDisplay* owner, Ogre::SceneManager* sceneMgr, FrameTransformer* frameTransformer, Ogre::SceneNode* parent_node)
: owner_(owner)
, sceneMgr(sceneMgr)
, frameTransformer(frameTransformer)
, parent_node_(parent_node->createChildSceneNode())
{}

MarkerBase::~MarkerBase()
{
  sceneMgr->destroySceneNode(parent_node_);
}

void MarkerBase::setMessage(const MarkerConstPtr& message)
{
  MarkerConstPtr old = message_;
  message_ = message;

  expiration_ = ros::Time::now() + message->lifetime;

  onNewMessage(old, message);
}

void MarkerBase::updateFrameLocked()
{
  ROS_ASSERT(message_ && message_->frame_locked);
  onNewMessage(message_, message_);
}

bool MarkerBase::expired()
{
  return ros::Time::now() >= expiration_;
}

bool MarkerBase::transform(const MarkerConstPtr& message, Ogre::Vector3& pos, Ogre::Quaternion& orient, Ogre::Vector3& scale)
{
  ros::Time stamp = message->header.stamp;
  if (message->frame_locked)
  {
    stamp = ros::Time();
  }

  if (!frameTransformer->transform(message->header.frame_id, stamp, message->pose, pos, orient))
  {
    std::string error;
    frameTransformer->transformHasProblems(message->header.frame_id, message->header.stamp, error);
    owner_->setMarkerStatus(getID(), eu::nifti::ocu::STATUS_LEVEL_ERROR, error);
    return false;
  }

  scale = Ogre::Vector3(message->scale.x, message->scale.y, message->scale.z);

  return true;
}

} // namespace rviz
Does iPadOS 16 support external webcams?

Haven’t been able to find a conclusive answer to this anywhere - has anyone been able to confirm if an external webcam will work with the new iPadOS 16 so you can have Teams or something on the monitor with a proper webcam tied to the iPad via USB C hub or something? Or will the iPad work with the new Continuity Camera concept so I can at least get the camera to be in the top of the iPad screen instead of on the side? 

And a related question to anyone with the develop preview running…will a MSFT Teams video call continue to run when multi-tasking in Stage Manager? In iPadOS 15 video cuts out as soon as you do something as simple as split screen, which basically makes the iPadPro nonfunctional for professional purposes (I’m in Teams mtgs all day). 

If I could use an external webcam with a monitor and actually keep Teams running while editing PowerPoint and using the browser and other apps, I could actually get by with just the iPadPro, which would be amazing. 

Please share - am dying to know!What is the MUST WIN game on the Denver Broncos’ 2013-14 schedule?
What is the biggest game on the Broncos’ schedule, due to be released Thursday? Let the argument begin. But, before we bicker, let us agree: This is most drama-packed scheduled in team history. If Notre Dame has its own network, then Broncos should be the featured game on national television almost every week of 2013 season.
Accessibility: Podcasts can be accessed on a wide range of devices, including smartphones, tablets, and computers. This makes them an accessible and convenient way to learn, especially for those who may not have access to traditional educational resources.
Flexibility: Podcasts can be listened to at any time and in any location, which makes them a flexible learning option. This is especially useful for busy individuals who may not have the time to commit to a traditional class schedule.
Variety: There are podcasts on a wide range of topics, from history to science to language learning, so there is something for everyone. This means that students can find content that aligns with their interests and goals.
Personalization: Many podcasts offer a more personalized learning experience, as listeners can pause, rewind, and repeat sections as needed. This can be especially helpful for those who may need extra time to understand certain concepts.
Engagement: Podcasts can be an engaging way to learn, as they often feature interesting stories and real-life examples that help to illustrate concepts in a more relatable way.
Overall, podcasts are a valuable resource for education and learning, offering convenience, flexibility, and engagement. Whether you are a student, teacher, or lifelong learner, podcasts can provide an accessible and enjoyable way to expand your knowledge and skills.
They write ads for a living, but can they ‘sell’ their idea for their own children’s story, while...
Read more: Once Upon a...
Welcome to Tsundoku – the podcast for addicted readers.
Read more: Tsundoku -...
Alex, Amy and Sean (aka Dr Alex Vickery-Howe, Dr Amy T Matthews and Dr Sean Williams)are...
Read more: Word Docs -...
Welcome to The Writers Read podcast - getting THAT book in children's hands.
Read more: Writers Read...
From big structural issues to hooks and semicolons, and everything in-between... the Word Docs are all over it....
Writers Read by LiTracey - Getting THAT book in children's hands. On this episode Tracey chats with Marlies Hobbs about the book she has co-written with her husband Jai, 'Financially Literate Youth -...
Podcasts have become an increasingly popular medium for education and learning, and for good reason. Here are a few benefits of using podcasts in education:...1. Mini me drinks [strawberry] milk only in a sippy cup, but, we were running out of the cups she